IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgR05VIGJhc2ggcGFja2FnZQojIOHOx8zJytPLycUg0MXSxdfPxNkgxMzRINDBy8XUwSBHTlUgYmFzaC4KIyBDb3B5cmlnaHQgKEMpIDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIEdOVSBiYXNoIHBhY2thZ2UuCiMgIDxkdXNoaXN0b3ZAbWFpbC5ydT4sIDIwMDYuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IEdOVSBiYXNoIDMuMS1yZWxlYXNlXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOS0wMi0xOSAxNDo1My0wNTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTAxLTA1IDIxOjI4KzAzMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogRXZnZW5peSBEdXNoaXN0b3YgPGR1c2hpc3RvdkBtYWlsLnJ1PlxuIgoiTGFuZ3VhZ2UtVGVhbTogUnVzc2lhbiA8cnVAbGkub3JnPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1LT0k4LVJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MzsgcGx1cmFsPShuJTEwPT0xICYmIG4lMTAwIT0xMSA/IDAgOiBuJTEwPj0yICYmIG4lIgoiMTA8PTQgJiYgKG4lMTAwPDEwIHx8IG4lMTAwPj0yMCkgPyAxIDogMik7XG4iCgojOiBhcnJheWZ1bmMuYzo1MAptc2dpZCAiYmFkIGFycmF5IHN1YnNjcmlwdCIKbXNnc3RyICLOxdDSwdfJzNjO2cogyc7ExcvTIM3B09PJ18EiCgojOiBhcnJheWZ1bmMuYzozMTMgYnVpbHRpbnMvZGVjbGFyZS5kZWY6NDc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGNvbnZlcnQgaW5kZXhlZCB0byBhc3NvY2lhdGl2ZSBhcnJheSIKbXNnc3RyICIiCgojOiBhcnJheWZ1bmMuYzo0NzkKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBhc3NvY2lhdGl2ZSBhcnJheSBrZXkiCm1zZ3N0ciAiJXM6IM7FxM/Q1dPUyc3PxSDJzdEgz9DDyckiCgojOiBhcnJheWZ1bmMuYzo0ODEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgYXNzaWduIHRvIG5vbi1udW1lcmljIGluZGV4Igptc2dzdHIgIiVzOyDOxSDNz8fVINDSydDJ08HU2CDOxSDeydPMz9fPyiDJzsTFy9MiCgojOiBhcnJheWZ1bmMuYzo1MTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogbXVzdCB1c2Ugc3Vic2NyaXB0IHdoZW4gYXNzaWduaW5nIGFzc29jaWF0aXZlIGFycmF5Igptc2dzdHIgIiIKCiM6IGJhc2hoaXN0LmM6Mzc5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGNyZWF0ZTogJXMiCm1zZ3N0ciAiJXM6IM7FIM3Px9Ug08/axMHU2DogJXMiCgojOiBiYXNobGluZS5jOjM0MTMKbXNnaWQgImJhc2hfZXhlY3V0ZV91bml4X2NvbW1hbmQ6IGNhbm5vdCBmaW5kIGtleW1hcCBmb3IgY29tbWFuZCIKbXNnc3RyICIiCgojOiBiYXNobGluZS5jOjM0OTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgbm90IGBcIiciCm1zZ3N0ciAiJXM6INDF0tfZyiDOxdDSz8LFzNjO2cog08nN18/MIM7FIGBcIiciCgojOiBiYXNobGluZS5jOjM1MjAKIywgYy1mb3JtYXQKbXNnaWQgIm5vIGNsb3NpbmcgYCVjJyBpbiAlcyIKbXNnc3RyICLOxdQg2sHL0tnXwcDdxcfPIGAlYycg1yAlcyIKCiM6IGJhc2hsaW5lLmM6MzU1NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG1pc3NpbmcgY29sb24gc2VwYXJhdG9yIgptc2dzdHIgIiVzOiDQ0s/Q1d3FziDSwdrExczJ1MXM2CDE18/F1M/eycUiCgojOiBidWlsdGlucy9iaW5kLmRlZjoxMjAgYnVpbHRpbnMvYmluZC5kZWY6MTIzCm1zZ2lkICJsaW5lIGVkaXRpbmcgbm90IGVuYWJsZWQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvYmluZC5kZWY6MjA2CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBpbnZhbGlkIGtleW1hcCBuYW1lIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2JpbmQuZGVmOjI0NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCByZWFkOiAlcyIKbXNnc3RyICIlczogzsUgzc/H1SDQ0s/eydTB1Ng6ICVzIgoKIzogYnVpbHRpbnMvYmluZC5kZWY6MjYwCiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBjYW5ub3QgdW5iaW5kIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2JpbmQuZGVmOjI5NSBidWlsdGlucy9iaW5kLmRlZjozMjUKIywgYy1mb3JtYXQKbXNnaWQgImAlcyc6IHVua25vd24gZnVuY3Rpb24gbmFtZSIKbXNnc3RyICJgJXMnOiDJzdEgxtXOy8PJySDOxcna18XT1M7PIgoKIzogYnVpbHRpbnMvYmluZC5kZWY6MzAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBub3QgYm91bmQgdG8gYW55IGtleXMuXG4iCm1zZ3N0ciAiJXMgzsUg0NLJ19Hawc7BIM7FIMsgz8TOz8ogydogy8zB18nbLlxuIgoKIzogYnVpbHRpbnMvYmluZC5kZWY6MzA3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBjYW4gYmUgaW52b2tlZCB2aWEgIgptc2dzdHIgIiVzIM3P1sXUIMLZ1Ngg19na18HOINMg0M/Nz93YwCIKCiM6IGJ1aWx0aW5zL2JyZWFrLmRlZjo3NyBidWlsdGlucy9icmVhay5kZWY6MTE3Cm1zZ2lkICJsb29wIGNvdW50Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2JyZWFrLmRlZjoxMzcKbXNnaWQgIm9ubHkgbWVhbmluZ2Z1bCBpbiBhIGBmb3InLCBgd2hpbGUnLCBvciBgdW50aWwnIGxvb3AiCm1zZ3N0ciAiyc3FxdQg083Z08wg1M/M2MvPINcgw8nLzMHIIGBmb3InLCBgd2hpbGUnLCDJzMkgYHVudGlsJyIKCiM6IGJ1aWx0aW5zL2NhbGxlci5kZWY6MTMzCm1zZ2lkICIiCiJSZXR1cm5zIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHN1YnJvdXRpbmUgY2FsbC5cbiIKIiAgICBcbiIKIiAgICBXaXRob3V0IEVYUFIsIHJldHVybnMgIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2NkLmRlZjoyMTUKbXNnaWQgIkhPTUUgbm90IHNldCIKbXNnc3RyICLQxdLFzcXOzsHRIEhPTUUgzsUg1dPUwc7P18zFzsEiCgojOiBidWlsdGlucy9jZC5kZWY6MjI3Cm1zZ2lkICJPTERQV0Qgbm90IHNldCIKbXNnc3RyICLQxdLFzcXOzsHRIE9MRFBXRCDOxSDV09TBzs/XzMXOwSIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjEwMQojLCBjLWZvcm1hdAptc2dpZCAibGluZSAlZDogIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjEzOSBlcnJvci5jOjI2MAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIndhcm5pbmc6ICIKbXNnc3RyICIlczog0NLFxNXQ0sXWxMXOycU6IgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MTUzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IHVzYWdlOiAiCm1zZ3N0ciAiJXM6INDSxcTV0NLF1sTFzsnFOiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjE2NiB0ZXN0LmM6ODIyCm1zZ2lkICJ0b28gbWFueSBhcmd1bWVudHMiCm1zZ3N0ciAi08zJ28vPzSDNzs/HzyDB0sfVzcXO1M/XIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MTkxIHNoZWxsLmM6NDkzIHNoZWxsLmM6Nzc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50Igptc2dzdHIgIiVzOiDP0MPJ0SDU0sXC1cXUIMHSx9XNxc7UwSIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjE5OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG51bWVyaWMgYXJndW1lbnQgcmVxdWlyZWQiCm1zZ3N0ciAiJXM6INTSxcLVxdTT0SDeydPMz9fPyiDB0sfVzcXO1CIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjIwNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vdCBmb3VuZCIKbXNnc3RyICIlczogzsUgzsHKxMXOIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjE0IHNoZWxsLmM6Nzg3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBvcHRpb24iCm1zZ3N0ciAiJXM6IM7F0NLB18nM2M7B0SDP0MPJ0SIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjIyMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIG5hbWUiCm1zZ3N0ciAiJXM6IM7FxM/Q1dPUyc3PxSDJzdEgz9DDyckiCgojOiBidWlsdGlucy9jb21tb24uYzoyMjggZ2VuZXJhbC5jOjIzMSBnZW5lcmFsLmM6MjM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBub3QgYSB2YWxpZCBpZGVudGlmaWVyIgptc2dzdHIgImAlcyc6IM7F0NLB18nM2M7ZyiDJxMXO1MnGycvB1M/SIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjM4CiMsIGZ1enp5Cm1zZ2lkICJpbnZhbGlkIG9jdGFsIG51bWJlciIKbXNnc3RyICLOxcTP0NXT1MnN2cogzs/NxdIg08nHzsHMwSIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI0MAojLCBmdXp6eQptc2dpZCAiaW52YWxpZCBoZXggbnVtYmVyIgptc2dzdHIgIs7FxM/Q1dPUyc3PxSDeydPMzyIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI0MiBleHByLmM6MTI1NQptc2dpZCAiaW52YWxpZCBudW1iZXIiCm1zZ3N0ciAizsXEz9DV09TJzc/FIN7J08zPIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjUwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBzaWduYWwgc3BlY2lmaWNhdGlvbiIKbXNnc3RyICIlczogzsXEz9DV09TJzcHRINPQxcPJxsnLwcPJ0SDTycfOwczBIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjU3CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJXMnOiBub3QgYSBwaWQgb3IgdmFsaWQgam9iIHNwZWMiCm1zZ3N0ciAiYCVzJzogzsUgycTFztTJxsnLwdTP0iAg0NLPw8XT08EgyczJINDSwdfJzNjOz8Ugyc3RINrBxMHeySIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI2NCBlcnJvci5jOjQ1MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJlYWRvbmx5IHZhcmlhYmxlIgptc2dzdHIgIiVzOiDEz9PU1dDOwdEg1M/M2MvPIM7BIN7Uxc7JxSDQxdLFzcXOzsHRIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjcyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXMgb3V0IG9mIHJhbmdlIgptc2dzdHIgIiVzOiAlcyDX2cjPxMnUINrBINDSxcTFzNkgxM/Q1dPUyc3ZyCDazsHexc7JyiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjI3MiBidWlsdGlucy9jb21tb24uYzoyNzQKbXNnaWQgImFyZ3VtZW50Igptc2dzdHIgIsHSx9XNxc7UIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6Mjc0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiJXMg19nIz8TJ1CDawSDQ0sXExczZIMTP0NXT1MnN2cgg2s7B3sXOycoiCgojOiBidWlsdGlucy9jb21tb24uYzoyODIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBubyBzdWNoIGpvYiIKbXNnc3RyICIlczogzsUg1MHLz8og2sHEwd7JIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjkwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm8gam9iIGNvbnRyb2wiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MjkyCm1zZ2lkICJubyBqb2IgY29udHJvbCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21tb24uYzozMDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByZXN0cmljdGVkIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMwNAptc2dpZCAicmVzdHJpY3RlZCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21tb24uYzozMTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgYSBzaGVsbCBidWlsdGluIgptc2dzdHIgIiVzOiDOxSDX09TSz8XOzsEg1yDPws/Mz97L1SIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMyMQojLCBjLWZvcm1hdAptc2dpZCAid3JpdGUgZXJyb3I6ICVzIgptc2dzdHIgIs/bycLLwSDawdDJ08k6ICVzIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6MzI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciBzZXR0aW5nIHRlcm1pbmFsIGF0dHJpYnV0ZXM6ICVzIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2NvbW1vbi5jOjMzMQojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3IgZ2V0dGluZyB0ZXJtaW5hbCBhdHRyaWJ1dGVzOiAlcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21tb24uYzo1NjMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBlcnJvciByZXRyaWV2aW5nIGN1cnJlbnQgZGlyZWN0b3J5OiAlczogJXNcbiIKbXNnc3RyICIlczogz9vJwsvBINDPzNXexc7J0SDUxcvV3cXKIMTJ0sXL1M/Syck6ICVzOiAlc1xuIgoKIzogYnVpbHRpbnMvY29tbW9uLmM6NjI5IGJ1aWx0aW5zL2NvbW1vbi5jOjYzMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGFtYmlndW91cyBqb2Igc3BlYyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21wbGV0ZS5kZWY6MjcwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBhY3Rpb24gbmFtZSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21wbGV0ZS5kZWY6NDMwIGJ1aWx0aW5zL2NvbXBsZXRlLmRlZjo2MTUKIzogYnVpbHRpbnMvY29tcGxldGUuZGVmOjgxMwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiIKbXNnc3RyICIiCgojOiBidWlsdGlucy9jb21wbGV0ZS5kZWY6NjY3Cm1zZ2lkICJ3YXJuaW5nOiAtRiBvcHRpb24gbWF5IG5vdCB3b3JrIGFzIHlvdSBleHBlY3QiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvY29tcGxldGUuZGVmOjY2OQptc2dpZCAid2FybmluZzogLUMgb3B0aW9uIG1heSBub3Qgd29yayBhcyB5b3UgZXhwZWN0Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2NvbXBsZXRlLmRlZjo3ODYKbXNnaWQgIm5vdCBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbXBsZXRpb24gZnVuY3Rpb24iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZGVjbGFyZS5kZWY6MTIyCm1zZ2lkICJjYW4gb25seSBiZSB1c2VkIGluIGEgZnVuY3Rpb24iCm1zZ3N0ciAizc/WxdQgwtnU2CDJ09DPzNjaz9fBzsEg1M/M2MvPINcgxtXOy8PJySIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjM1Mwptc2dpZCAiY2Fubm90IHVzZSBgLWYnIHRvIG1ha2UgZnVuY3Rpb25zIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjM2NSBleGVjdXRlX2NtZC5jOjQ4MTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByZWFkb25seSBmdW5jdGlvbiIKbXNnc3RyICIlczogxM/T1NXQzsHRINTPzNjLzyDOwSDe1MXOycUgxtXOy8PJ0SIKCiM6IGJ1aWx0aW5zL2RlY2xhcmUuZGVmOjQ2MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBkZXN0cm95IGFycmF5IHZhcmlhYmxlcyBpbiB0aGlzIHdheSIKbXNnc3RyICIlczogzsUgzc/H1SDVxMHMydTYINDF0sXNxc7O1cAtzcHT08nXINTBy8nNINPQz9PPws/NIgoKIzogYnVpbHRpbnMvZGVjbGFyZS5kZWY6NDY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGNvbnZlcnQgYXNzb2NpYXRpdmUgdG8gaW5kZXhlZCBhcnJheSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9lbmFibGUuZGVmOjEzNyBidWlsdGlucy9lbmFibGUuZGVmOjE0NQptc2dpZCAiZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZW5hYmxlLmRlZjozMTIKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBvcGVuIHNoYXJlZCBvYmplY3QgJXM6ICVzIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2VuYWJsZS5kZWY6MzM1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgZmluZCAlcyBpbiBzaGFyZWQgb2JqZWN0ICVzOiAlcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9lbmFibGUuZGVmOjQ1OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vdCBkeW5hbWljYWxseSBsb2FkZWQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZW5hYmxlLmRlZjo0NzQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgZGVsZXRlOiAlcyIKbXNnc3RyICIlczogzsUgzc/H1SDVxMHMydTYOiAgJXMiCgojOiBidWlsdGlucy9ldmFsZmlsZS5jOjEzNCBidWlsdGlucy9oYXNoLmRlZjoxNjkgZXhlY3V0ZV9jbWQuYzo0Njc1CiM6IHNoZWxsLmM6MTQzOQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGlzIGEgZGlyZWN0b3J5Igptc2dzdHIgIiVzOiDR18zRxdTT0SDEydLFy9TP0snFyiIKCiM6IGJ1aWx0aW5zL2V2YWxmaWxlLmM6MTM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IGEgcmVndWxhciBmaWxlIgptc2dzdHIgIiVzOiDOxSDR18zRxdTT0SDPwtneztnNIMbByszPzSIKCiM6IGJ1aWx0aW5zL2V2YWxmaWxlLmM6MTQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBpcyB0b28gbGFyZ2UiCm1zZ3N0ciAiJXM6INPMydvLz80gws/M2NvPyiDGwcrMIgoKIzogYnVpbHRpbnMvZXZhbGZpbGUuYzoxODUgZXhlY3V0ZV9jbWQuYzo0NzQ1IHNoZWxsLmM6MTQ0OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBleGVjdXRlIGJpbmFyeSBmaWxlIgptc2dzdHIgIiVzOiDOxSDNz8fVINrB0NXT1MnU2CDCyc7B0s7ZyiDGwcrMIgoKIzogYnVpbHRpbnMvZXhlYy5kZWY6MjEyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGV4ZWN1dGU6ICVzIgptc2dzdHIgIiVzOiDOxSDNz8fVINrB0NXT1MnU2DogJXMiCgojOiBidWlsdGlucy9leGl0LmRlZjo2NQojLCBjLWZvcm1hdAptc2dpZCAibG9nb3V0XG4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZXhpdC5kZWY6ODgKbXNnaWQgIm5vdCBsb2dpbiBzaGVsbDogdXNlIGBleGl0JyIKbXNnc3RyICIiCiLPws/Mz97LwSDOxSDR18zRxdTT0SDawdDV3cXOzs/KINDP08zFINfIz8TBINcg08nT1MXN1TogydPQz8zY2tXK1MUgYGV4aXQnICIKCiM6IGJ1aWx0aW5zL2V4aXQuZGVmOjEyMAojLCBjLWZvcm1hdAptc2dpZCAiVGhlcmUgYXJlIHN0b3BwZWQgam9icy5cbiIKbXNnc3RyICLl09TYINDSyc/T1MHOz9fMxc7O2cUg2sHEwd7JLlxuIgoKIzogYnVpbHRpbnMvZXhpdC5kZWY6MTIyCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiVGhlcmUgYXJlIHJ1bm5pbmcgam9icy5cbiIKbXNnc3RyICLl09TYINDSyc/T1MHOz9fMxc7O2cUg2sHEwd7JLlxuIgoKIzogYnVpbHRpbnMvZmMuZGVmOjI2MQptc2dpZCAibm8gY29tbWFuZCBmb3VuZCIKbXNnc3RyICLOxSDOwdvFzCDUwcvVwCDLz83BzsTVIgoKIzogYnVpbHRpbnMvZmMuZGVmOjM0MQptc2dpZCAiaGlzdG9yeSBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2ZjLmRlZjozNjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiB0ZW1wIGZpbGU6ICVzIgptc2dzdHIgIiVzOiDOxSDNz8fVIM/Uy9LZ1Ngg19LFzcXOztnKIMbBysw6ICVzIgoKIzogYnVpbHRpbnMvZmdfYmcuZGVmOjE0OSBidWlsdGlucy9qb2JzLmRlZjoyODIKbXNnaWQgImN1cnJlbnQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvZmdfYmcuZGVmOjE1OAojLCBjLWZvcm1hdAptc2dpZCAiam9iICVkIHN0YXJ0ZWQgd2l0aG91dCBqb2IgY29udHJvbCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9nZXRvcHQuYzoxMTAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgptc2dzdHIgIiVzOiDOxcTP0NXT1MnNwdEgz9DDydEgLS0gJWNcbiIKCiM6IGJ1aWx0aW5zL2dldG9wdC5jOjExMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlY1xuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hhc2guZGVmOjkyCm1zZ2lkICJoYXNoaW5nIGRpc2FibGVkIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hhc2guZGVmOjEzOAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGhhc2ggdGFibGUgZW1wdHlcbiIKbXNnc3RyICIiCgojOiBidWlsdGlucy9oYXNoLmRlZjoyNDQKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJoaXRzXHRjb21tYW5kXG4iCm1zZ3N0ciAi0M/TzMXEztHRIMvPzcHOxME6ICVzXG4iCgojOiBidWlsdGlucy9oZWxwLmRlZjoxMzAKIywgYy1mb3JtYXQKbXNnaWQgIlNoZWxsIGNvbW1hbmRzIG1hdGNoaW5nIGtleXdvcmQgYCIKbXNnaWRfcGx1cmFsICJTaGVsbCBjb21tYW5kcyBtYXRjaGluZyBrZXl3b3JkcyBgIgptc2dzdHJbMF0gIiIKbXNnc3RyWzFdICIiCm1zZ3N0clsyXSAiIgoKIzogYnVpbHRpbnMvaGVscC5kZWY6MTY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJubyBoZWxwIHRvcGljcyBtYXRjaCBgJXMnLiAgVHJ5IGBoZWxwIGhlbHAnIG9yIGBtYW4gLWsgJXMnIG9yIGBpbmZvICVzJy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvaGVscC5kZWY6MTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IG9wZW46ICVzIgptc2dzdHIgIiVzOiDOxSDNz8fVIM/Uy9LZ1Ng6ICVzIgoKIzogYnVpbHRpbnMvaGVscC5kZWY6MzM3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJUaGVzZSBzaGVsbCBjb21tYW5kcyBhcmUgZGVmaW5lZCBpbnRlcm5hbGx5LiAgVHlwZSBgaGVscCcgdG8gc2VlIHRoaXMgbGlzdC5cbiIKIlR5cGUgYGhlbHAgbmFtZScgdG8gZmluZCBvdXQgbW9yZSBhYm91dCB0aGUgZnVuY3Rpb24gYG5hbWUnLlxuIgoiVXNlIGBpbmZvIGJhc2gnIHRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgdGhlIHNoZWxsIGluIGdlbmVyYWwuXG4iCiJVc2UgYG1hbiAtaycgb3IgYGluZm8nIHRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgY29tbWFuZHMgbm90IGluIHRoaXMgbGlzdC5cbiIKIlxuIgoiQSBzdGFyICgqKSBuZXh0IHRvIGEgbmFtZSBtZWFucyB0aGF0IHRoZSBjb21tYW5kIGlzIGRpc2FibGVkLlxuIgoiXG4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvaGlzdG9yeS5kZWY6MTU0Cm1zZ2lkICJjYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgb2YgLWFucnciCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvaGlzdG9yeS5kZWY6MTg2Cm1zZ2lkICJoaXN0b3J5IHBvc2l0aW9uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2hpc3RvcnkuZGVmOjM2NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGhpc3RvcnkgZXhwYW5zaW9uIGZhaWxlZCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9pbmxpYi5kZWY6NzEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogaW5saWIgZmFpbGVkIgptc2dzdHIgIiVzOiDOxcTP0NXT1MnN2cog08XS18nTIgoKIzogYnVpbHRpbnMvam9icy5kZWY6MTA5Cm1zZ2lkICJubyBvdGhlciBvcHRpb25zIGFsbG93ZWQgd2l0aCBgLXgnIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL2tpbGwuZGVmOjE5NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGFyZ3VtZW50cyBtdXN0IGJlIHByb2Nlc3Mgb3Igam9iIElEcyIKbXNnc3RyICIiCgojOiBidWlsdGlucy9raWxsLmRlZjoyNjAKbXNnaWQgIlVua25vd24gZXJyb3IiCm1zZ3N0ciAi7sXJ2tfF09TOwdEgz9vJwsvBIgoKIzogYnVpbHRpbnMvbGV0LmRlZjo5NSBidWlsdGlucy9sZXQuZGVmOjEyMCBleHByLmM6NTAxIGV4cHIuYzo1MTYKbXNnaWQgImV4cHJlc3Npb24gZXhwZWN0ZWQiCm1zZ3N0ciAiz9bJxMHMz9PYINfZ0sHWxc7JxSIKCiM6IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjI0MSBidWlsdGlucy9yZWFkLmRlZjoyNzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIiVzOiDOxcTP0NXT1MnNz8Ugz9DJ08HOycUgxsHKzM/Xz8fPIMTF08vSydDUz9LBIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MjQ5IGJ1aWx0aW5zL3JlYWQuZGVmOjI3OQojLCBjLWZvcm1hdAptc2dpZCAiJWQ6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yOiAlcyIKbXNnc3RyICIlZDogzsXEz9DV09TJzdnKIMTF08vSydDUz9IgxsHKzME6ICVzIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MjU4IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjI5NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIGxpbmUgY291bnQiCm1zZ3N0ciAiJXM6IM7F0NLB18nM2M7B0SDP0MPJ0SIKCiM6IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjI2OQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIGFycmF5IG9yaWdpbiIKbXNnc3RyICIlczogzsXQ0sHXyczYzsHRIM/Qw8nRIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6Mjg2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgY2FsbGJhY2sgcXVhbnR1bSIKbXNnc3RyICIlczogzsXEz9DV09TJzc/FIN7J08zPIgoKIzogYnVpbHRpbnMvbWFwZmlsZS5kZWY6MzE4CiMsIGZ1enp5Cm1zZ2lkICJlbXB0eSBhcnJheSB2YXJpYWJsZSBuYW1lIgptc2dzdHIgIiVzOiDOxSDQxdLFzcXOzsHRLc3B09PJ1yIKCiM6IGJ1aWx0aW5zL21hcGZpbGUuZGVmOjMzOQptc2dpZCAiYXJyYXkgdmFyaWFibGUgc3VwcG9ydCByZXF1aXJlZCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9wcmludGYuZGVmOjM2NwojLCBjLWZvcm1hdAptc2dpZCAiYCVzJzogbWlzc2luZyBmb3JtYXQgY2hhcmFjdGVyIgptc2dzdHIgImAlcyc6INDSz9DV3cXOINPJzdfPzCDGz9LNwdTJ0s/Xwc7J0SIKCiM6IGJ1aWx0aW5zL3ByaW50Zi5kZWY6NTQ0CiMsIGMtZm9ybWF0Cm1zZ2lkICJgJWMnOiBpbnZhbGlkIGZvcm1hdCBjaGFyYWN0ZXIiCm1zZ3N0ciAiJWMnOiDOxcTP0NXT1MnN2cog08nN18/MIMbP0s3B1MnSz9fBzsnRIgoKIzogYnVpbHRpbnMvcHJpbnRmLmRlZjo1NzEKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJ3YXJuaW5nOiAlczogJXMiCm1zZ3N0ciAiJXM6INDSxcTV0NLF1sTFzsnFOiIKCiM6IGJ1aWx0aW5zL3ByaW50Zi5kZWY6NzUwCm1zZ2lkICJtaXNzaW5nIGhleCBkaWdpdCBmb3IgXFx4Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjoxOTUKbXNnaWQgIm5vIG90aGVyIGRpcmVjdG9yeSIKbXNnc3RyICLOxdQgxNLVx8/KIMTJ0sXL1M/SyckiCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NDYyCm1zZ2lkICI8bm8gY3VycmVudCBkaXJlY3Rvcnk+Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjo1MDYKbXNnaWQgImRpcmVjdG9yeSBzdGFjayBlbXB0eSIKbXNnc3RyICIiCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NTA4Cm1zZ2lkICJkaXJlY3Rvcnkgc3RhY2sgaW5kZXgiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvcHVzaGQuZGVmOjY4Mwptc2dpZCAiIgoiRGlzcGxheSB0aGUgbGlzdCBvZiBjdXJyZW50bHkgcmVtZW1iZXJlZCBkaXJlY3Rvcmllcy4gIERpcmVjdG9yaWVzXG4iCiIgICAgZmluZCB0aGVpciB3YXkgb250byB0aGUgbGlzdCB3aXRoIHRoZSBgcHVzaGQnIGNvbW1hbmQ7IHlvdSBjYW4gZ2V0XG4iCiIgICAgYmFjayB1cCB0aHJvdWdoIHRoZSBsaXN0IHdpdGggdGhlIGBwb3BkJyBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtY1x0Y2xlYXIgdGhlIGRpcmVjdG9yeSBzdGFjayBieSBkZWxldGluZyBhbGwgb2YgdGhlIGVsZW1lbnRzXG4iCiIgICAgICAtbFx0ZG8gbm90IHByaW50IHRpbGRlLXByZWZpeGVkIHZlcnNpb25zIG9mIGRpcmVjdG9yaWVzIHJlbGF0aXZlXG4iCiIgICAgXHR0byB5b3VyIGhvbWUgZGlyZWN0b3J5XG4iCiIgICAgICAtcFx0cHJpbnQgdGhlIGRpcmVjdG9yeSBzdGFjayB3aXRoIG9uZSBlbnRyeSBwZXIgbGluZVxuIgoiICAgICAgLXZcdHByaW50IHRoZSBkaXJlY3Rvcnkgc3RhY2sgd2l0aCBvbmUgZW50cnkgcGVyIGxpbmUgcHJlZml4ZWRcbiIKIiAgICBcdHdpdGggaXRzIHBvc2l0aW9uIGluIHRoZSBzdGFja1xuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICAgICtOXHREaXNwbGF5cyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3Qgc2hvd24gIgoiYnlcbiIKIiAgICBcdGRpcnMgd2hlbiBpbnZva2VkIHdpdGhvdXQgb3B0aW9ucywgc3RhcnRpbmcgd2l0aCB6ZXJvLlxuIgoiICAgIFxuIgoiICAgICAgLU5cdERpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gIgoiYnlcbiIKIlx0ZGlycyB3aGVuIGludm9rZWQgd2l0aG91dCBvcHRpb25zLCBzdGFydGluZyB3aXRoIHplcm8uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3B1c2hkLmRlZjo3MDUKbXNnaWQgIiIKIkFkZHMgYSBkaXJlY3RvcnkgdG8gdGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHN0YWNrLCBvciByb3RhdGVzXG4iCiIgICAgdGhlIHN0YWNrLCBtYWtpbmcgdGhlIG5ldyB0b3Agb2YgdGhlIHN0YWNrIHRoZSBjdXJyZW50IHdvcmtpbmdcbiIKIiAgICBkaXJlY3RvcnkuICBXaXRoIG5vIGFyZ3VtZW50cywgZXhjaGFuZ2VzIHRoZSB0b3AgdHdvIGRpcmVjdG9yaWVzLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtblx0U3VwcHJlc3NlcyB0aGUgbm9ybWFsIGNoYW5nZSBvZiBkaXJlY3Rvcnkgd2hlbiBhZGRpbmdcbiIKIiAgICBcdGRpcmVjdG9yaWVzIHRvIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJvdGF0ZXMgdGhlIHN0YWNrIHNvIHRoYXQgdGhlIE50aCBkaXJlY3RvcnkgKGNvdW50aW5nXG4iCiIgICAgXHRmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aFxuIgoiICAgIFx0emVybykgaXMgYXQgdGhlIHRvcC5cbiIKIiAgICBcbiIKIiAgICAgIC1OXHRSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZ1xuIgoiICAgIFx0ZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoXG4iCiIgICAgXHR6ZXJvKSBpcyBhdCB0aGUgdG9wLlxuIgoiICAgIFxuIgoiICAgICAgZGlyXHRBZGRzIERJUiB0byB0aGUgZGlyZWN0b3J5IHN0YWNrIGF0IHRoZSB0b3AsIG1ha2luZyBpdCB0aGVcbiIKIiAgICBcdG5ldyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuIgoiICAgIFxuIgoiICAgIFRoZSBgZGlycycgYnVpbHRpbiBkaXNwbGF5cyB0aGUgZGlyZWN0b3J5IHN0YWNrLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy9wdXNoZC5kZWY6NzMwCm1zZ2lkICIiCiJSZW1vdmVzIGVudHJpZXMgZnJvbSB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgV2l0aCBubyBhcmd1bWVudHMsIHJlbW92ZXNcbiIKIiAgICB0aGUgdG9wIGRpcmVjdG9yeSBmcm9tIHRoZSBzdGFjaywgYW5kIGNoYW5nZXMgdG8gdGhlIG5ldyB0b3AgZGlyZWN0b3J5LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtblx0U3VwcHJlc3NlcyB0aGUgbm9ybWFsIGNoYW5nZSBvZiBkaXJlY3Rvcnkgd2hlbiByZW1vdmluZ1xuIgoiICAgIFx0ZGlyZWN0b3JpZXMgZnJvbSB0aGUgc3RhY2ssIHNvIG9ubHkgdGhlIHN0YWNrIGlzIG1hbmlwdWxhdGVkLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICAgICtOXHRSZW1vdmVzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdFxuIgoiICAgIFx0c2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoIHplcm8uICBGb3IgZXhhbXBsZTogYHBvcGQgKzAnXG4iCiIgICAgXHRyZW1vdmVzIHRoZSBmaXJzdCBkaXJlY3RvcnksIGBwb3BkICsxJyB0aGUgc2Vjb25kLlxuIgoiICAgIFxuIgoiICAgICAgLU5cdFJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSByaWdodCBvZiB0aGUgbGlzdFxuIgoiICAgIFx0c2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoIHplcm8uICBGb3IgZXhhbXBsZTogYHBvcGQgLTAnXG4iCiIgICAgXHRyZW1vdmVzIHRoZSBsYXN0IGRpcmVjdG9yeSwgYHBvcGQgLTEnIHRoZSBuZXh0IHRvIGxhc3QuXG4iCiIgICAgXG4iCiIgICAgVGhlIGBkaXJzJyBidWlsdGluIGRpc3BsYXlzIHRoZSBkaXJlY3Rvcnkgc3RhY2suIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3JlYWQuZGVmOjI0OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgdGltZW91dCBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3JlYWQuZGVmOjU3NAojLCBjLWZvcm1hdAptc2dpZCAicmVhZCBlcnJvcjogJWQ6ICVzIgptc2dzdHIgIs/bycLLwSDe1MXOydE6ICVkOiAlcyIKCiM6IGJ1aWx0aW5zL3JldHVybi5kZWY6NzMKbXNnaWQgImNhbiBvbmx5IGByZXR1cm4nIGZyb20gYSBmdW5jdGlvbiBvciBzb3VyY2VkIHNjcmlwdCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zZXQuZGVmOjc2OAptc2dpZCAiY2Fubm90IHNpbXVsdGFuZW91c2x5IHVuc2V0IGEgZnVuY3Rpb24gYW5kIGEgdmFyaWFibGUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc2V0LmRlZjo4MDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgdW5zZXQiCm1zZ3N0ciAiJXM6IM7FIM3Px9Ug08LSz9PJ1NgiCgojOiBidWlsdGlucy9zZXQuZGVmOjgxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCB1bnNldDogcmVhZG9ubHkgJXMiCm1zZ3N0ciAiJXM6IM7FIM3Px9Ug08LSz9PJ1Ng6IMTP09TV0M7PINTPzNjLzyDEzNEg3tTFzsnRICVzIgoKIzogYnVpbHRpbnMvc2V0LmRlZjo4MjMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgYW4gYXJyYXkgdmFyaWFibGUiCm1zZ3N0ciAiJXM6IM7FINDF0sXNxc7OwdEtzcHT08nXIgoKIzogYnVpbHRpbnMvc2V0YXR0ci5kZWY6MTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IGEgZnVuY3Rpb24iCm1zZ3N0ciAiJXM6IM7FIMbVzsvDydEiCgojOiBidWlsdGlucy9zaGlmdC5kZWY6NzEgYnVpbHRpbnMvc2hpZnQuZGVmOjc3Cm1zZ2lkICJzaGlmdCBjb3VudCIKbXNnc3RyICIiCgojOiBidWlsdGlucy9zaG9wdC5kZWY6MjU0Cm1zZ2lkICJjYW5ub3Qgc2V0IGFuZCB1bnNldCBzaGVsbCBvcHRpb25zIHNpbXVsdGFuZW91c2x5Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3Nob3B0LmRlZjozMTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbnZhbGlkIHNoZWxsIG9wdGlvbiBuYW1lIgptc2dzdHIgIiVzOiDOxcTP0NXT1MnNz8Ugyc3RIM/Qw8nJIM/Cz8zP3svJIgoKIzogYnVpbHRpbnMvc291cmNlLmRlZjoxMjgKbXNnaWQgImZpbGVuYW1lIGFyZ3VtZW50IHJlcXVpcmVkIgptc2dzdHIgItTSxcLVxdTT0SDB0sfVzcXO1CDJzdEgxsHKzMEiCgojOiBidWlsdGlucy9zb3VyY2UuZGVmOjE1MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgbm90IGZvdW5kIgptc2dzdHIgIiVzOiDGwcrMIM7FIM7BysTFziIKCiM6IGJ1aWx0aW5zL3N1c3BlbmQuZGVmOjEwMQptc2dpZCAiY2Fubm90IHN1c3BlbmQiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvc3VzcGVuZC5kZWY6MTExCm1zZ2lkICJjYW5ub3Qgc3VzcGVuZCBhIGxvZ2luIHNoZWxsIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3R5cGUuZGVmOjIzNAojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgYWxpYXNlZCB0byBgJXMnXG4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvdHlwZS5kZWY6MjU1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBhIHNoZWxsIGtleXdvcmRcbiIKbXNnc3RyICIlcyDR18zRxdTT0SDLzMDexdfZzSDTzM/Xz80gz8LPzM/ey8lcbiIKCiM6IGJ1aWx0aW5zL3R5cGUuZGVmOjI3NAojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgYSBmdW5jdGlvblxuIgptc2dzdHIgIiVzINHXzNHF1NPRIMbVzsvDycXKXG4iCgojOiBidWlsdGlucy90eXBlLmRlZjoyOTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzIGEgc2hlbGwgYnVpbHRpblxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3R5cGUuZGVmOjMxNyBidWlsdGlucy90eXBlLmRlZjozOTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzICVzXG4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvdHlwZS5kZWY6MzM3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBpcyBoYXNoZWQgKCVzKVxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3VsaW1pdC5kZWY6MzcyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBsaW1pdCBhcmd1bWVudCIKbXNnc3RyICIiCgojOiBidWlsdGlucy91bGltaXQuZGVmOjM5OAojLCBjLWZvcm1hdAptc2dpZCAiYCVjJzogYmFkIGNvbW1hbmQiCm1zZ3N0ciAiYCVjJzog0MzPyMHRIMvPzcHOxMEiCgojOiBidWlsdGlucy91bGltaXQuZGVmOjQyNwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBnZXQgbGltaXQ6ICVzIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3VsaW1pdC5kZWY6NDUzCm1zZ2lkICJsaW1pdCIKbXNnc3RyICIiCgojOiBidWlsdGlucy91bGltaXQuZGVmOjQ2NSBidWlsdGlucy91bGltaXQuZGVmOjc2NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBtb2RpZnkgbGltaXQ6ICVzIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zL3VtYXNrLmRlZjoxMTgKbXNnaWQgIm9jdGFsIG51bWJlciIKbXNnc3RyICLeydPMzyDXINfP09jNxdLJ3s7PyiDTydPUxc3FIMnT3snTzMXOydEiCgojOiBidWlsdGlucy91bWFzay5kZWY6MjMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJgJWMnOiBpbnZhbGlkIHN5bWJvbGljIG1vZGUgb3BlcmF0b3IiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMvdW1hc2suZGVmOjI4NgojLCBjLWZvcm1hdAptc2dpZCAiYCVjJzogaW52YWxpZCBzeW1ib2xpYyBtb2RlIGNoYXJhY3RlciIKbXNnc3RyICIiCgojOiBlcnJvci5jOjg5IGVycm9yLmM6MzIwIGVycm9yLmM6MzIyIGVycm9yLmM6MzI0Cm1zZ2lkICIgbGluZSAiCm1zZ3N0ciAiIgoKIzogZXJyb3IuYzoxNjQKIywgYy1mb3JtYXQKbXNnaWQgImxhc3QgY29tbWFuZDogJXNcbiIKbXNnc3RyICLQz9PMxcTO0dEgy8/Nwc7EwTogJXNcbiIKCiM6IGVycm9yLmM6MTcyCiMsIGMtZm9ybWF0Cm1zZ2lkICJBYm9ydGluZy4uLiIKbXNnc3RyICL6wdfF0tvBwCDSwcLP1NUuLi4iCgojOiBlcnJvci5jOjQwNQptc2dpZCAidW5rbm93biBjb21tYW5kIGVycm9yIgptc2dzdHIgIs7FydrXxdPUzsHRIM/bycLLwSDLz83BzsTZIgoKIzogZXJyb3IuYzo0MDYKbXNnaWQgImJhZCBjb21tYW5kIHR5cGUiCm1zZ3N0ciAiIgoKIzogZXJyb3IuYzo0MDcKbXNnaWQgImJhZCBjb25uZWN0b3IiCm1zZ3N0ciAiIgoKIzogZXJyb3IuYzo0MDgKbXNnaWQgImJhZCBqdW1wIgptc2dzdHIgIiIKCiM6IGVycm9yLmM6NDQ2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5ib3VuZCB2YXJpYWJsZSIKbXNnc3RyICIiCgojOiBldmFsLmM6MTgxCiMsIGMtZm9ybWF0Cm1zZ2lkICJcYXRpbWVkIG91dCB3YWl0aW5nIGZvciBpbnB1dDogYXV0by1sb2dvdXRcbiIKbXNnc3RyICIiCgojOiBleGVjdXRlX2NtZC5jOjQ5MQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHJlZGlyZWN0IHN0YW5kYXJkIGlucHV0IGZyb20gL2Rldi9udWxsOiAlcyIKbXNnc3RyICIiCgojOiBleGVjdXRlX2NtZC5jOjExMTIKIywgYy1mb3JtYXQKbXNnaWQgIlRJTUVGT1JNQVQ6IGAlYyc6IGludmFsaWQgZm9ybWF0IGNoYXJhY3RlciIKbXNnc3RyICIiCgojOiBleGVjdXRlX2NtZC5jOjIwMTEKIywgZnV6enkKbXNnaWQgInBpcGUgZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINrB0MnTyTogJXMiCgojOiBleGVjdXRlX2NtZC5jOjQzNjMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByZXN0cmljdGVkOiBjYW5ub3Qgc3BlY2lmeSBgLycgaW4gY29tbWFuZCBuYW1lcyIKbXNnc3RyICIiCgojOiBleGVjdXRlX2NtZC5jOjQ0NTQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb21tYW5kIG5vdCBmb3VuZCIKbXNnc3RyICIlczogy8/Nwc7EwSDOxSDOwcrExc7BIgoKIzogZXhlY3V0ZV9jbWQuYzo0NzA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IGJhZCBpbnRlcnByZXRlciIKbXNnc3RyICIlczogJXM6INDMz8jPyiDJztTF0tDSxdTB1M/SIgoKIzogZXhlY3V0ZV9jbWQuYzo0ODU3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgZHVwbGljYXRlIGZkICVkIHRvIGZkICVkIgptc2dzdHIgIs7FIM3Px9UgxNXCzMnSz9fB1NggZmQgJWQg1yBmZCAlZCIKCiM6IGV4cHIuYzoyNDEKbXNnaWQgImV4cHJlc3Npb24gcmVjdXJzaW9uIGxldmVsIGV4Y2VlZGVkIgptc2dzdHIgIiIKCiM6IGV4cHIuYzoyNjUKbXNnaWQgInJlY3Vyc2lvbiBzdGFjayB1bmRlcmZsb3ciCm1zZ3N0ciAiIgoKIzogZXhwci5jOjM3OQptc2dpZCAic3ludGF4IGVycm9yIGluIGV4cHJlc3Npb24iCm1zZ3N0ciAi08nO1MHL08nexdPLwdEgz9vJwsvBINcg19nSwdbFzsnFIgoKIzogZXhwci5jOjQxOQptc2dpZCAiYXR0ZW1wdGVkIGFzc2lnbm1lbnQgdG8gbm9uLXZhcmlhYmxlIgptc2dzdHIgItDP0NnUy8Eg0NLJ09fPxc7J0SDOxS3QxdLFzcXOzs/KIgoKIzogZXhwci5jOjQ0MCBleHByLmM6NDQ1IGV4cHIuYzo3NTYKbXNnaWQgImRpdmlzaW9uIGJ5IDAiCm1zZ3N0ciAixMXMxc7JxSDOwSAwIgoKIzogZXhwci5jOjQ3MQptc2dpZCAiYnVnOiBiYWQgZXhwYXNzaWduIHRva2VuIgptc2dzdHIgIiIKCiM6IGV4cHIuYzo1MTMKbXNnaWQgImA6JyBleHBlY3RlZCBmb3IgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKbXNnc3RyICIiCgojOiBleHByLmM6NzgxCm1zZ2lkICJleHBvbmVudCBsZXNzIHRoYW4gMCIKbXNnc3RyICIiCgojOiBleHByLmM6ODI2Cm1zZ2lkICJpZGVudGlmaWVyIGV4cGVjdGVkIGFmdGVyIHByZS1pbmNyZW1lbnQgb3IgcHJlLWRlY3JlbWVudCIKbXNnc3RyICIiCgojOiBleHByLmM6ODU0Cm1zZ2lkICJtaXNzaW5nIGApJyIKbXNnc3RyICLQ0s/Q1d3FziBgKSciCgojOiBleHByLmM6ODk3IGV4cHIuYzoxMTc1Cm1zZ2lkICJzeW50YXggZXJyb3I6IG9wZXJhbmQgZXhwZWN0ZWQiCm1zZ3N0ciAiz9vJwsvBINPJztTBy9PJ08E6IM/WycTBxdTT0SDP0MXSwc7EIgoKIzogZXhwci5jOjExNzcKbXNnaWQgInN5bnRheCBlcnJvcjogaW52YWxpZCBhcml0aG1ldGljIG9wZXJhdG9yIgptc2dzdHIgIiIKCiM6IGV4cHIuYzoxMjAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyVzJXM6ICVzIChlcnJvciB0b2tlbiBpcyBcIiVzXCIpIgptc2dzdHIgIiIKCiM6IGV4cHIuYzoxMjU5Cm1zZ2lkICJpbnZhbGlkIGFyaXRobWV0aWMgYmFzZSIKbXNnc3RyICIiCgojOiBleHByLmM6MTI3OQptc2dpZCAidmFsdWUgdG9vIGdyZWF0IGZvciBiYXNlIgptc2dzdHIgIiIKCiM6IGV4cHIuYzoxMzI4CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IGV4cHJlc3Npb24gZXJyb3JcbiIKbXNnc3RyICLP1snEwczP09gg19nSwdbFzsnFIgoKIzogZ2VuZXJhbC5jOjYxCm1zZ2lkICJnZXRjd2Q6IGNhbm5vdCBhY2Nlc3MgcGFyZW50IGRpcmVjdG9yaWVzIgptc2dzdHIgIiIKCiM6IGlucHV0LmM6OTQgc3Vic3QuYzo0NTU5CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHJlc2V0IG5vZGVsYXkgbW9kZSBmb3IgZmQgJWQiCm1zZ3N0ciAizsUgzc/H1SDE1cLMydLP18HU2CBmZCAlZCDXIGZkICVkIgoKIzogaW5wdXQuYzoyNTgKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBhbGxvY2F0ZSBuZXcgZmlsZSBkZXNjcmlwdG9yIGZvciBiYXNoIGlucHV0IGZyb20gZmQgJWQiCm1zZ3N0ciAiIgoKIzogaW5wdXQuYzoyNjYKIywgYy1mb3JtYXQKbXNnaWQgInNhdmVfYmFzaF9pbnB1dDogYnVmZmVyIGFscmVhZHkgZXhpc3RzIGZvciBuZXcgZmQgJWQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjQ2Ngptc2dpZCAic3RhcnRfcGlwZWxpbmU6IHBncnAgcGlwZSIKbXNnc3RyICIiCgojOiBqb2JzLmM6ODg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJmb3JrZWQgcGlkICVkIGFwcGVhcnMgaW4gcnVubmluZyBqb2IgJWQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjEwMDUKIywgYy1mb3JtYXQKbXNnaWQgImRlbGV0aW5nIHN0b3BwZWQgam9iICVkIHdpdGggcHJvY2VzcyBncm91cCAlbGQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjExMTAKIywgYy1mb3JtYXQKbXNnaWQgImFkZF9wcm9jZXNzOiBwcm9jZXNzICU1bGQgKCVzKSBpbiB0aGVfcGlwZWxpbmUiCm1zZ3N0ciAiIgoKIzogam9icy5jOjExMTMKIywgYy1mb3JtYXQKbXNnaWQgImFkZF9wcm9jZXNzOiBwaWQgJTVsZCAoJXMpIG1hcmtlZCBhcyBzdGlsbCBhbGl2ZSIKbXNnc3RyICIiCgojOiBqb2JzLmM6MTQwMQojLCBjLWZvcm1hdAptc2dpZCAiZGVzY3JpYmVfcGlkOiAlbGQ6IG5vIHN1Y2ggcGlkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoxNDE2CiMsIGMtZm9ybWF0Cm1zZ2lkICJTaWduYWwgJWQiCm1zZ3N0ciAiIgoKIzogam9icy5jOjE0MzAgam9icy5jOjE0NTUKbXNnaWQgIkRvbmUiCm1zZ3N0ciAiIgoKIzogam9icy5jOjE0MzUgc2lnbGlzdC5jOjEyMgptc2dpZCAiU3RvcHBlZCIKbXNnc3RyICIiCgojOiBqb2JzLmM6MTQzOQojLCBjLWZvcm1hdAptc2dpZCAiU3RvcHBlZCglcykiCm1zZ3N0ciAiIgoKIzogam9icy5jOjE0NDMKbXNnaWQgIlJ1bm5pbmciCm1zZ3N0ciAiIgoKIzogam9icy5jOjE0NTcKIywgYy1mb3JtYXQKbXNnaWQgIkRvbmUoJWQpIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoxNDU5CiMsIGMtZm9ybWF0Cm1zZ2lkICJFeGl0ICVkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoxNDYyCm1zZ2lkICJVbmtub3duIHN0YXR1cyIKbXNnc3RyICIiCgojOiBqb2JzLmM6MTU0OQojLCBjLWZvcm1hdAptc2dpZCAiKGNvcmUgZHVtcGVkKSAiCm1zZ3N0ciAiIgoKIzogam9icy5jOjE1NjgKIywgYy1mb3JtYXQKbXNnaWQgIiAgKHdkOiAlcykiCm1zZ3N0ciAiIgoKIzogam9icy5jOjE3NzEKIywgYy1mb3JtYXQKbXNnaWQgImNoaWxkIHNldHBnaWQgKCVsZCB0byAlbGQpIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyMDk5IG5vam9icy5jOjU4NQojLCBjLWZvcm1hdAptc2dpZCAid2FpdDogcGlkICVsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIHNoZWxsIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyMzI2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ3YWl0X2ZvcjogTm8gcmVjb3JkIG9mIHByb2Nlc3MgJWxkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyNTk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJ3YWl0X2Zvcl9qb2I6IGpvYiAlZCBpcyBzdG9wcGVkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyODIwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogam9iIGhhcyB0ZXJtaW5hdGVkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzoyODI5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogam9iICVkIGFscmVhZHkgaW4gYmFja2dyb3VuZCIKbXNnc3RyICIiCgojOiBqb2JzLmM6MzQ5MgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiBsaW5lICVkOiAiCm1zZ3N0ciAiJXM6INDSxcTV0NLF1sTFzsnFOiIKCiM6IGpvYnMuYzozNTA2IG5vam9icy5jOjgxNAojLCBjLWZvcm1hdAptc2dpZCAiIChjb3JlIGR1bXBlZCkiCm1zZ3N0ciAiIgoKIzogam9icy5jOjM1MTggam9icy5jOjM1MzEKIywgYy1mb3JtYXQKbXNnaWQgIih3ZCBub3c6ICVzKVxuIgptc2dzdHIgIiIKCiM6IGpvYnMuYzozNTYzCm1zZ2lkICJpbml0aWFsaXplX2pvYl9jb250cm9sOiBnZXRwZ3JwIGZhaWxlZCIKbXNnc3RyICIiCgojOiBqb2JzLmM6MzYyMwptc2dpZCAiaW5pdGlhbGl6ZV9qb2JfY29udHJvbDogbGluZSBkaXNjaXBsaW5lIgptc2dzdHIgIiIKCiM6IGpvYnMuYzozNjMzCm1zZ2lkICJpbml0aWFsaXplX2pvYl9jb250cm9sOiBzZXRwZ2lkIgptc2dzdHIgIiIKCiM6IGpvYnMuYzozNjYxCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIHByb2Nlc3MgZ3JvdXAgKCVkKSIKbXNnc3RyICIiCgojOiBqb2JzLmM6MzY2Ngptc2dpZCAibm8gam9iIGNvbnRyb2wgaW4gdGhpcyBzaGVsbCIKbXNnc3RyICIiCgojOiBsaWIvbWFsbG9jL21hbGxvYy5jOjI5NgojLCBjLWZvcm1hdAptc2dpZCAibWFsbG9jOiBmYWlsZWQgYXNzZXJ0aW9uOiAlc1xuIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MzEyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcclxuIgoibWFsbG9jOiAlczolZDogYXNzZXJ0aW9uIGJvdGNoZWRcclxuIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MzEzCiMsIGZ1enp5Cm1zZ2lkICJ1bmtub3duIgptc2dzdHIgIiVzOiDIz9PUIM7FydrXxdPUxc4iCgojOiBsaWIvbWFsbG9jL21hbGxvYy5jOjc5Nwptc2dpZCAibWFsbG9jOiBibG9jayBvbiBmcmVlIGxpc3QgY2xvYmJlcmVkIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6ODc0Cm1zZ2lkICJmcmVlOiBjYWxsZWQgd2l0aCBhbHJlYWR5IGZyZWVkIGJsb2NrIGFyZ3VtZW50Igptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6ODc3Cm1zZ2lkICJmcmVlOiBjYWxsZWQgd2l0aCB1bmFsbG9jYXRlZCBibG9jayBhcmd1bWVudCIKbXNnc3RyICIiCgojOiBsaWIvbWFsbG9jL21hbGxvYy5jOjg5Ngptc2dpZCAiZnJlZTogdW5kZXJmbG93IGRldGVjdGVkOyBtaF9uYnl0ZXMgb3V0IG9mIHJhbmdlIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6OTAyCm1zZ2lkICJmcmVlOiBzdGFydCBhbmQgZW5kIGNodW5rIHNpemVzIGRpZmZlciIKbXNnc3RyICIiCgojOiBsaWIvbWFsbG9jL21hbGxvYy5jOjEwMDEKbXNnaWQgInJlYWxsb2M6IGNhbGxlZCB3aXRoIHVuYWxsb2NhdGVkIGJsb2NrIGFyZ3VtZW50Igptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MTAxNgptc2dpZCAicmVhbGxvYzogdW5kZXJmbG93IGRldGVjdGVkOyBtaF9uYnl0ZXMgb3V0IG9mIHJhbmdlIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvbWFsbG9jLmM6MTAyMgptc2dpZCAicmVhbGxvYzogc3RhcnQgYW5kIGVuZCBjaHVuayBzaXplcyBkaWZmZXIiCm1zZ3N0ciAiIgoKIzogbGliL21hbGxvYy90YWJsZS5jOjE3NwojLCBjLWZvcm1hdAptc2dpZCAicmVnaXN0ZXJfYWxsb2M6IGFsbG9jIHRhYmxlIGlzIGZ1bGwgd2l0aCBGSU5EX0FMTE9DP1xuIgptc2dzdHIgIiIKCiM6IGxpYi9tYWxsb2MvdGFibGUuYzoxODQKIywgYy1mb3JtYXQKbXNnaWQgInJlZ2lzdGVyX2FsbG9jOiAlcCBhbHJlYWR5IGluIHRhYmxlIGFzIGFsbG9jYXRlZD9cbiIKbXNnc3RyICIiCgojOiBsaWIvbWFsbG9jL3RhYmxlLmM6MjIwCiMsIGMtZm9ybWF0Cm1zZ2lkICJyZWdpc3Rlcl9mcmVlOiAlcCBhbHJlYWR5IGluIHRhYmxlIGFzIGZyZWU/XG4iCm1zZ3N0ciAiIgoKIzogbGliL3NoL2ZtdHVsb25nLmM6MTAxCm1zZ2lkICJpbnZhbGlkIGJhc2UiCm1zZ3N0ciAiIgoKIzogbGliL3NoL25ldG9wZW4uYzoxNjgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBob3N0IHVua25vd24iCm1zZ3N0ciAiJXM6IMjP09QgzsXJ2tfF09TFziIKCiM6IGxpYi9zaC9uZXRvcGVuLmM6MTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBzZXJ2aWNlIgptc2dzdHIgIiVzOiDOxcTP0NXT1MnN2cog08XS18nTIgoKIzogbGliL3NoL25ldG9wZW4uYzozMDYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBiYWQgbmV0d29yayBwYXRoIHNwZWNpZmljYXRpb24iCm1zZ3N0ciAiIgoKIzogbGliL3NoL25ldG9wZW4uYzozNDYKbXNnaWQgIm5ldHdvcmsgb3BlcmF0aW9ucyBub3Qgc3VwcG9ydGVkIgptc2dzdHIgIiIKCiM6IG1haWxjaGVjay5jOjQzMwptc2dpZCAiWW91IGhhdmUgbWFpbCBpbiAkXyIKbXNnc3RyICL1INfB0yDF09TYINDP3tTBINcgJF8iCgojOiBtYWlsY2hlY2suYzo0NTgKbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsIGluICRfIgptc2dzdHIgIvUg18HTIMXT1Nggzs/XwdEg0M/e1MEg1yAkXyIKCiM6IG1haWxjaGVjay5jOjQ3NAojLCBjLWZvcm1hdAptc2dpZCAiVGhlIG1haWwgaW4gJXMgaGFzIGJlZW4gcmVhZFxuIgptc2dzdHIgIvDP3tTBINcgJXMgwtnMwSDQ0s/eydTBzsFcbiIKCiM6IG1ha2VfY21kLmM6MzIyCm1zZ2lkICJzeW50YXggZXJyb3I6IGFyaXRobWV0aWMgZXhwcmVzc2lvbiByZXF1aXJlZCIKbXNnc3RyICIiCgojOiBtYWtlX2NtZC5jOjMyNAptc2dpZCAic3ludGF4IGVycm9yOiBgOycgdW5leHBlY3RlZCIKbXNnc3RyICLP28nCy8Eg08nO1MHL08nTwTogYDsnIM7FIM/WycTBxdTT0SIKCiM6IG1ha2VfY21kLmM6MzI1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3I6IGAoKCVzKSknIgptc2dzdHIgIs/bycLLwSDTyc7UwcvTydPBOiBgKCglcykpJyIKCiM6IG1ha2VfY21kLmM6NTY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJtYWtlX2hlcmVfZG9jdW1lbnQ6IGJhZCBpbnN0cnVjdGlvbiB0eXBlICVkIgptc2dzdHIgIiIKCiM6IG1ha2VfY21kLmM6NjUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJoZXJlLWRvY3VtZW50IGF0IGxpbmUgJWQgZGVsaW1pdGVkIGJ5IGVuZC1vZi1maWxlICh3YW50ZWQgYCVzJykiCm1zZ3N0ciAiIgoKIzogbWFrZV9jbWQuYzo3NDYKIywgYy1mb3JtYXQKbXNnaWQgIm1ha2VfcmVkaXJlY3Rpb246IHJlZGlyZWN0aW9uIGluc3RydWN0aW9uIGAlZCcgb3V0IG9mIHJhbmdlIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6Mjk4NiBwYXJzZS55OjMyMTgKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIG1hdGNoaW5nIGAlYyciCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozNzIyCm1zZ2lkICJ1bmV4cGVjdGVkIEVPRiB3aGlsZSBsb29raW5nIGZvciBgXV0nIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzcyNwojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb246IHVuZXhwZWN0ZWQgdG9rZW4gYCVzJyIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM3MzEKbXNnaWQgInN5bnRheCBlcnJvciBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzgwOQojLCBjLWZvcm1hdAptc2dpZCAidW5leHBlY3RlZCB0b2tlbiBgJXMnLCBleHBlY3RlZCBgKSciCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozODEzCm1zZ2lkICJleHBlY3RlZCBgKSciCm1zZ3N0ciAiz9bJxMHM09EgYCknIgoKIzogcGFyc2UueTozODQxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmV4cGVjdGVkIGFyZ3VtZW50IGAlcycgdG8gY29uZGl0aW9uYWwgdW5hcnkgb3BlcmF0b3IiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozODQ1Cm1zZ2lkICJ1bmV4cGVjdGVkIGFyZ3VtZW50IHRvIGNvbmRpdGlvbmFsIHVuYXJ5IG9wZXJhdG9yIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6Mzg4NQojLCBjLWZvcm1hdAptc2dpZCAidW5leHBlY3RlZCB0b2tlbiBgJXMnLCBjb25kaXRpb25hbCBiaW5hcnkgb3BlcmF0b3IgZXhwZWN0ZWQiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozODg5Cm1zZ2lkICJjb25kaXRpb25hbCBiaW5hcnkgb3BlcmF0b3IgZXhwZWN0ZWQiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozOTA2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmV4cGVjdGVkIGFyZ3VtZW50IGAlcycgdG8gY29uZGl0aW9uYWwgYmluYXJ5IG9wZXJhdG9yIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzkxMAptc2dpZCAidW5leHBlY3RlZCBhcmd1bWVudCB0byBjb25kaXRpb25hbCBiaW5hcnkgb3BlcmF0b3IiCm1zZ3N0ciAiIgoKIzogcGFyc2UueTozOTIxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmV4cGVjdGVkIHRva2VuIGAlYycgaW4gY29uZGl0aW9uYWwgY29tbWFuZCIKbXNnc3RyICIiCgojOiBwYXJzZS55OjM5MjQKIywgYy1mb3JtYXQKbXNnaWQgInVuZXhwZWN0ZWQgdG9rZW4gYCVzJyBpbiBjb25kaXRpb25hbCBjb21tYW5kIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6MzkyOAojLCBjLWZvcm1hdAptc2dpZCAidW5leHBlY3RlZCB0b2tlbiAlZCBpbiBjb25kaXRpb25hbCBjb21tYW5kIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6NTE5NQojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yIG5lYXIgdW5leHBlY3RlZCB0b2tlbiBgJXMnIgptc2dzdHIgIiIKCiM6IHBhcnNlLnk6NTIxMwojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yIG5lYXIgYCVzJyIKbXNnc3RyICLP28nCy8Eg08nO1MHL08nTwSDPy8/MzyBgJXMnIgoKIzogcGFyc2UueTo1MjIzCm1zZ2lkICJzeW50YXggZXJyb3I6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCm1zZ3N0ciAiz9vJwsvBINPJztTBy9PJ08E6IM7Fz9bJxMHOztnKIMvPzsXDIMbByszBIgoKIzogcGFyc2UueTo1MjIzCm1zZ2lkICJzeW50YXggZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINPJztTBy9PJ08EiCgojOiBwYXJzZS55OjUyODUKIywgYy1mb3JtYXQKbXNnaWQgIlVzZSBcIiVzXCIgdG8gbGVhdmUgdGhlIHNoZWxsLlxuIgptc2dzdHIgIunT0M/M2NrVytTFIFwiJXNcIiwg3tTPwtkg2sHXxdLbydTY09Eg0sHCz9TVINMgIM/Cz8zP3svPyi5cbiIKCiM6IHBhcnNlLnk6NTQ0Nwptc2dpZCAidW5leHBlY3RlZCBFT0Ygd2hpbGUgbG9va2luZyBmb3IgbWF0Y2hpbmcgYCknIgptc2dzdHIgIiIKCiM6IHBjb21wbGV0ZS5jOjEwMTgKIywgYy1mb3JtYXQKbXNnaWQgImNvbXBsZXRpb246IGZ1bmN0aW9uIGAlcycgbm90IGZvdW5kIgptc2dzdHIgIiIKCiM6IHBjb21wbGliLmM6MTc5CiMsIGMtZm9ybWF0Cm1zZ2lkICJwcm9nY29tcF9pbnNlcnQ6ICVzOiBOVUxMIENPTVBTUEVDIgptc2dzdHIgIiIKCiM6IHByaW50X2NtZC5jOjI4NQojLCBjLWZvcm1hdAptc2dpZCAicHJpbnRfY29tbWFuZDogYmFkIGNvbm5lY3RvciBgJWQnIgptc2dzdHIgIiIKCiM6IHByaW50X2NtZC5jOjEzNDgKIywgYy1mb3JtYXQKbXNnaWQgImNwcmludGY6IGAlYyc6IGludmFsaWQgZm9ybWF0IGNoYXJhY3RlciIKbXNnc3RyICIiCgojOiByZWRpci5jOjEwNQptc2dpZCAiZmlsZSBkZXNjcmlwdG9yIG91dCBvZiByYW5nZSIKbXNnc3RyICLGwcrMz9fZyiDExdPL0snQ1M/SINrBINDSxcTFzMHNySDEz9DV09TJzc/HzyDEycHQwdrPzsEiCgojOiByZWRpci5jOjE0OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGFtYmlndW91cyByZWRpcmVjdCIKbXNnc3RyICIiCgojOiByZWRpci5jOjE1MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbm5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZSIKbXNnc3RyICIlczogzsUgzc/H1SDQxdLF0MnTwdTYINXWxSDT1d3F09TX1cDdycogxsHKzCIKCiM6IHJlZGlyLmM6MTU3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcmVzdHJpY3RlZDogY2Fubm90IHJlZGlyZWN0IG91dHB1dCIKbXNnc3RyICIiCgojOiByZWRpci5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNyZWF0ZSB0ZW1wIGZpbGUgZm9yIGhlcmUtZG9jdW1lbnQ6ICVzIgptc2dzdHIgIiIKCiM6IHJlZGlyLmM6NTE3Cm1zZ2lkICIvZGV2Lyh0Y3B8dWRwKS9ob3N0L3BvcnQgbm90IHN1cHBvcnRlZCB3aXRob3V0IG5ldHdvcmtpbmciCm1zZ3N0ciAiIgoKIzogcmVkaXIuYzoxMDIzCm1zZ2lkICJyZWRpcmVjdGlvbiBlcnJvcjogY2Fubm90IGR1cGxpY2F0ZSBmZCIKbXNnc3RyICLP28nCy8Eg0MXSxc7B0NLB18zFzsnROiDOxSDNz8fVIMTVwszJ0s/XwdTYIGZkIgoKIzogc2hlbGwuYzozMjgKbXNnaWQgImNvdWxkIG5vdCBmaW5kIC90bXAsIHBsZWFzZSBjcmVhdGUhIgptc2dzdHIgIs7FIM3Px9UgzsHK1MkgL3RtcCwg0M/WwczVytPUwSDTz9rEwcrUxSEiCgojOiBzaGVsbC5jOjMzMgptc2dpZCAiL3RtcCBtdXN0IGJlIGEgdmFsaWQgZGlyZWN0b3J5IG5hbWUiCm1zZ3N0ciAiL3RtcCDEz8zWzsEgwtnU2CDExcrT1NfJ1MXM2M7ZzSDJzcXOxc0gxMnSxcvUz9LJySIKCiM6IHNoZWxsLmM6ODc2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlYyVjOiBpbnZhbGlkIG9wdGlvbiIKbXNnc3RyICIlYyVjOiDOxcTP0NXT1MnNwdEgz9DDydEiCgojOiBzaGVsbC5jOjE2MzgKbXNnaWQgIkkgaGF2ZSBubyBuYW1lISIKbXNnc3RyICL1IM3FztEgzsXUIMnNxc7JISIKCiM6IHNoZWxsLmM6MTc3OAojLCBjLWZvcm1hdAptc2dpZCAiR05VIGJhc2gsIHZlcnNpb24gJXMtKCVzKVxuIgptc2dzdHIgIiIKCiM6IHNoZWxsLmM6MTc3OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6XHQlcyBbR05VIGxvbmcgb3B0aW9uXSBbb3B0aW9uXSAuLi5cbiIKIlx0JXMgW0dOVSBsb25nIG9wdGlvbl0gW29wdGlvbl0gc2NyaXB0LWZpbGUgLi4uXG4iCm1zZ3N0ciAiIgoi6dPQz8zY2s/Xwc7JxTpcbiIKIiVzIFvEzMnOztnFIM/Qw8nJIMEtzNEgYEdOVSddIFvP0MPJyV0gLi4uXG4iCiJcdCVzIFvEzMnOztnFIM/Qw8nJIMEtzNEgYEdOVSddIFvP0MPJyV0gxsHKzF/Tz1/Ty9LJ0NTPzS4uLlxuIgoKIzogc2hlbGwuYzoxNzgxCm1zZ2lkICJHTlUgbG9uZyBvcHRpb25zOlxuIgptc2dzdHIgIuTMyc7O2cUgz9DDyckg1yDT1MXMxSBHTlU6XG4iCgojOiBzaGVsbC5jOjE3ODUKbXNnaWQgIlNoZWxsIG9wdGlvbnM6XG4iCm1zZ3N0ciAi79DDyckgz8LPzM/ey8k6XG4iCgojOiBzaGVsbC5jOjE3ODYKbXNnaWQgIlx0LWlyc0Qgb3IgLWMgY29tbWFuZCBvciAtTyBzaG9wdF9vcHRpb25cdFx0KGludm9jYXRpb24gb25seSlcbiIKbXNnc3RyICIiCgojOiBzaGVsbC5jOjE4MDEKIywgYy1mb3JtYXQKbXNnaWQgIlx0LSVzIG9yIC1vIG9wdGlvblxuIgptc2dzdHIgIlx0LSVzIMnMySDP0MPJ0SAtb1xuIgoKIzogc2hlbGwuYzoxODA3CiMsIGMtZm9ybWF0Cm1zZ2lkICJUeXBlIGAlcyAtYyBcImhlbHAgc2V0XCInIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNoZWxsIG9wdGlvbnMuXG4iCm1zZ3N0ciAiIgoKIzogc2hlbGwuYzoxODA4CiMsIGMtZm9ybWF0Cm1zZ2lkICJUeXBlIGAlcyAtYyBoZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzaGVsbCBidWlsdGluIGNvbW1hbmRzLlxuIgptc2dzdHIgIiIKCiM6IHNoZWxsLmM6MTgwOQojLCBjLWZvcm1hdAptc2dpZCAiVXNlIHRoZSBgYmFzaGJ1ZycgY29tbWFuZCB0byByZXBvcnQgYnVncy5cbiIKbXNnc3RyICIiCgojOiBzaWcuYzo1ODMKIywgYy1mb3JtYXQKbXNnaWQgInNpZ3Byb2NtYXNrOiAlZDogaW52YWxpZCBvcGVyYXRpb24iCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjQ3Cm1zZ2lkICJCb2d1cyBzaWduYWwiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjUwCm1zZ2lkICJIYW5ndXAiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjU0Cm1zZ2lkICJJbnRlcnJ1cHQiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjU4Cm1zZ2lkICJRdWl0Igptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzo2Mgptc2dpZCAiSWxsZWdhbCBpbnN0cnVjdGlvbiIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6NjYKbXNnaWQgIkJQVCB0cmFjZS90cmFwIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzo3NAptc2dpZCAiQUJPUlQgaW5zdHJ1Y3Rpb24iCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjc4Cm1zZ2lkICJFTVQgaW5zdHJ1Y3Rpb24iCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjgyCm1zZ2lkICJGbG9hdGluZyBwb2ludCBleGNlcHRpb24iCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjg2Cm1zZ2lkICJLaWxsZWQiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjkwCiMsIGZ1enp5Cm1zZ2lkICJCdXMgZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINPJztTBy9PJ08EiCgojOiBzaWdsaXN0LmM6OTQKbXNnaWQgIlNlZ21lbnRhdGlvbiBmYXVsdCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6OTgKbXNnaWQgIkJhZCBzeXN0ZW0gY2FsbCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTAyCm1zZ2lkICJCcm9rZW4gcGlwZSIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTA2Cm1zZ2lkICJBbGFybSBjbG9jayIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTEwCm1zZ2lkICJUZXJtaW5hdGVkIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxMTQKbXNnaWQgIlVyZ2VudCBJTyBjb25kaXRpb24iCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjExOAptc2dpZCAiU3RvcHBlZCAoc2lnbmFsKSIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTI2Cm1zZ2lkICJDb250aW51ZSIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTM0Cm1zZ2lkICJDaGlsZCBkZWF0aCBvciBzdG9wIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxMzgKbXNnaWQgIlN0b3BwZWQgKHR0eSBpbnB1dCkiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE0Mgptc2dpZCAiU3RvcHBlZCAodHR5IG91dHB1dCkiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE0Ngptc2dpZCAiSS9PIHJlYWR5Igptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxNTAKbXNnaWQgIkNQVSBsaW1pdCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTU0Cm1zZ2lkICJGaWxlIGxpbWl0Igptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxNTgKbXNnaWQgIkFsYXJtICh2aXJ0dWFsKSIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTYyCm1zZ2lkICJBbGFybSAocHJvZmlsZSkiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE2Ngptc2dpZCAiV2luZG93IGNoYW5nZWQiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE3MAptc2dpZCAiUmVjb3JkIGxvY2siCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE3NAptc2dpZCAiVXNlciBzaWduYWwgMSIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTc4Cm1zZ2lkICJVc2VyIHNpZ25hbCAyIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxODIKbXNnaWQgIkhGVCBpbnB1dCBkYXRhIHBlbmRpbmciCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE4Ngptc2dpZCAicG93ZXIgZmFpbHVyZSBpbW1pbmVudCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MTkwCm1zZ2lkICJzeXN0ZW0gY3Jhc2ggaW1taW5lbnQiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjE5NAptc2dpZCAibWlncmF0ZSBwcm9jZXNzIHRvIGFub3RoZXIgQ1BVIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoxOTgKbXNnaWQgInByb2dyYW1taW5nIGVycm9yIgptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoyMDIKbXNnaWQgIkhGVCBtb25pdG9yIG1vZGUgZ3JhbnRlZCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MjA2Cm1zZ2lkICJIRlQgbW9uaXRvciBtb2RlIHJldHJhY3RlZCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MjEwCm1zZ2lkICJIRlQgc291bmQgc2VxdWVuY2UgaGFzIGNvbXBsZXRlZCIKbXNnc3RyICIiCgojOiBzaWdsaXN0LmM6MjE0Cm1zZ2lkICJJbmZvcm1hdGlvbiByZXF1ZXN0Igptc2dzdHIgIiIKCiM6IHNpZ2xpc3QuYzoyMjIKbXNnaWQgIlVua25vd24gU2lnbmFsICMiCm1zZ3N0ciAiIgoKIzogc2lnbGlzdC5jOjIyNAojLCBjLWZvcm1hdAptc2dpZCAiVW5rbm93biBTaWduYWwgIyVkIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6MTE4MSBzdWJzdC5jOjEzMDIKIywgYy1mb3JtYXQKbXNnaWQgImJhZCBzdWJzdGl0dXRpb246IG5vIGNsb3NpbmcgYCVzJyBpbiAlcyIKbXNnc3RyICIiCgojOiBzdWJzdC5jOjI0NTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW5ub3QgYXNzaWduIGxpc3QgdG8gYXJyYXkgbWVtYmVyIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDQ1NiBzdWJzdC5jOjQ0NzIKbXNnaWQgImNhbm5vdCBtYWtlIHBpcGUgZm9yIHByb2Nlc3Mgc3Vic3RpdHV0aW9uIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDUwNAptc2dpZCAiY2Fubm90IG1ha2UgY2hpbGQgZm9yIHByb2Nlc3Mgc3Vic3RpdHV0aW9uIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDU0OQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IG9wZW4gbmFtZWQgcGlwZSAlcyBmb3IgcmVhZGluZyIKbXNnc3RyICLOxSDNz8fVIM/Uy9LZ1Nggyc3Fzs7PyiDLwc7BzCAlcyDEzNEg3tTFzsnRIgoKIzogc3Vic3QuYzo0NTUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgb3BlbiBuYW1lZCBwaXBlICVzIGZvciB3cml0aW5nIgptc2dzdHIgIs7FIM3Px9Ugz9TL0tnU2CDJzcXOzs/KIMvBzsHMICVzIMTM0SDawdDJ08kiCgojOiBzdWJzdC5jOjQ1NjkKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBkdXBsaWNhdGUgbmFtZWQgcGlwZSAlcyBhcyBmZCAlZCIKbXNnc3RyICIiCgojOiBzdWJzdC5jOjQ3NjUKbXNnaWQgImNhbm5vdCBtYWtlIHBpcGUgZm9yIGNvbW1hbmQgc3Vic3RpdHV0aW9uIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDc5OQptc2dpZCAiY2Fubm90IG1ha2UgY2hpbGQgZm9yIGNvbW1hbmQgc3Vic3RpdHV0aW9uIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NDgxNgptc2dpZCAiY29tbWFuZF9zdWJzdGl0dXRlOiBjYW5ub3QgZHVwbGljYXRlIHBpcGUgYXMgZmQgMSIKbXNnc3RyICIiCgojOiBzdWJzdC5jOjUzMTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBwYXJhbWV0ZXIgbnVsbCBvciBub3Qgc2V0Igptc2dzdHIgIiVzOiDQwdLBzcXU0iBudWxsIMnMySDOxSDV09TBzs/XzMXOIgoKIzogc3Vic3QuYzo1NjA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc3Vic3RyaW5nIGV4cHJlc3Npb24gPCAwIgptc2dzdHIgIiIKCiM6IHN1YnN0LmM6NjY2MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGJhZCBzdWJzdGl0dXRpb24iCm1zZ3N0ciAiIgoKIzogc3Vic3QuYzo2NzQwCiMsIGMtZm9ybWF0Cm1zZ2lkICIkJXM6IGNhbm5vdCBhc3NpZ24gaW4gdGhpcyB3YXkiCm1zZ3N0ciAiIgoKIzogc3Vic3QuYzo3NDk5CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiYmFkIHN1YnN0aXR1dGlvbjogbm8gY2xvc2luZyBcImBcIiBpbiAlcyIKbXNnc3RyICLOxdQg2sHL0tnXwcDdxcfPIGAlYycg1yAlcyIKCiM6IHN1YnN0LmM6ODM3NQojLCBjLWZvcm1hdAptc2dpZCAibm8gbWF0Y2g6ICVzIgptc2dzdHIgIs7F1CDTz9fQwcTFzsnRINM6ICVzIgoKIzogdGVzdC5jOjE0NQptc2dpZCAiYXJndW1lbnQgZXhwZWN0ZWQiCm1zZ3N0ciAi0NLFxNDPzMHHwcXU09Eg3tTPIMLVxMXUIMnT0M/M2NrP18HOIMHSx9XNxc7UIgoKIzogdGVzdC5jOjE1NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZCIKbXNnc3RyICIiCgojOiB0ZXN0LmM6MjYyCm1zZ2lkICJgKScgZXhwZWN0ZWQiCm1zZ3N0ciAiz9bJxMHF1NPRIGApJyAiCgojOiB0ZXN0LmM6MjY0CiMsIGMtZm9ybWF0Cm1zZ2lkICJgKScgZXhwZWN0ZWQsIGZvdW5kICVzIgptc2dzdHIgIs/WycTBzNPRIGApJywgzsHKxMXOICVzIgoKIzogdGVzdC5jOjI3OSB0ZXN0LmM6Njg4IHRlc3QuYzo2OTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmFyeSBvcGVyYXRvciBleHBlY3RlZCIKbXNnc3RyICIlczogz9bJxMHF1NPRIMnT0M/M2NrP18HOycUg1c7B0s7Px88gz9DF0sHUz9LBIgoKIzogdGVzdC5jOjQ0NCB0ZXN0LmM6NzMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYmluYXJ5IG9wZXJhdG9yIGV4cGVjdGVkIgptc2dzdHIgIiVzOiDP1snEwcXU09EgydPQz8zY2s/Xwc7JxSDCyc7B0s7Px88gz9DF0sHUz9LBIgoKIzogdGVzdC5jOjgwNgptc2dpZCAibWlzc2luZyBgXSciCm1zZ3N0ciAi0NLP0NXdxc4gYF0nIgoKIzogdHJhcC5jOjIwMQptc2dpZCAiaW52YWxpZCBzaWduYWwgbnVtYmVyIgptc2dzdHIgIs7FxM/Q1dPUyc3ZyiDOz83F0iDTycfOwczBIgoKIzogdHJhcC5jOjMyNAojLCBjLWZvcm1hdAptc2dpZCAicnVuX3BlbmRpbmdfdHJhcHM6IGJhZCB2YWx1ZSBpbiB0cmFwX2xpc3RbJWRdOiAlcCIKbXNnc3RyICIiCgojOiB0cmFwLmM6MzI4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJydW5fcGVuZGluZ190cmFwczogc2lnbmFsIGhhbmRsZXIgaXMgU0lHX0RGTCwgcmVzZW5kaW5nICVkICglcykgdG8gbXlzZWxmIgptc2dzdHIgIiIKCiM6IHRyYXAuYzozNzIKIywgYy1mb3JtYXQKbXNnaWQgInRyYXBfaGFuZGxlcjogYmFkIHNpZ25hbCAlZCIKbXNnc3RyICIiCgojOiB2YXJpYWJsZXMuYzozNTgKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIGltcG9ydGluZyBmdW5jdGlvbiBkZWZpbml0aW9uIGZvciBgJXMnIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjczNgojLCBjLWZvcm1hdAptc2dpZCAic2hlbGwgbGV2ZWwgKCVkKSB0b28gaGlnaCwgcmVzZXR0aW5nIHRvIDEiCm1zZ3N0ciAiIgoKIzogdmFyaWFibGVzLmM6MTg5OAptc2dpZCAibWFrZV9sb2NhbF92YXJpYWJsZTogbm8gZnVuY3Rpb24gY29udGV4dCBhdCBjdXJyZW50IHNjb3BlIgptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjMxMjcKbXNnaWQgImFsbF9sb2NhbF92YXJpYWJsZXM6IG5vIGZ1bmN0aW9uIGNvbnRleHQgYXQgY3VycmVudCBzY29wZSIKbXNnc3RyICIiCgojOiB2YXJpYWJsZXMuYzozMzQ0IHZhcmlhYmxlcy5jOjMzNTMKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgY2hhcmFjdGVyICVkIGluIGV4cG9ydHN0ciBmb3IgJXMiCm1zZ3N0ciAiIgoKIzogdmFyaWFibGVzLmM6MzM1OQojLCBjLWZvcm1hdAptc2dpZCAibm8gYD0nIGluIGV4cG9ydHN0ciBmb3IgJXMiCm1zZ3N0ciAiIgoKIzogdmFyaWFibGVzLmM6Mzc5NAptc2dpZCAicG9wX3Zhcl9jb250ZXh0OiBoZWFkIG9mIHNoZWxsX3ZhcmlhYmxlcyBub3QgYSBmdW5jdGlvbiBjb250ZXh0Igptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjM4MDcKbXNnaWQgInBvcF92YXJfY29udGV4dDogbm8gZ2xvYmFsX3ZhcmlhYmxlcyBjb250ZXh0Igptc2dzdHIgIiIKCiM6IHZhcmlhYmxlcy5jOjM4ODEKbXNnaWQgInBvcF9zY29wZTogaGVhZCBvZiBzaGVsbF92YXJpYWJsZXMgbm90IGEgdGVtcG9yYXJ5IGVudmlyb25tZW50IHNjb3BlIgptc2dzdHIgIiIKCiM6IHZlcnNpb24uYzo0Ngptc2dpZCAiQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKbXNnc3RyICIiCgojOiB2ZXJzaW9uLmM6NDcKbXNnaWQgIiIKIkxpY2Vuc2UgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8aHR0cDovL2dudS5vcmcvbGljZW5zZXMvZ3BsLiIKImh0bWw+XG4iCm1zZ3N0ciAiIgoKIzogdmVyc2lvbi5jOjg2CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgYmFzaCwgdmVyc2lvbiAlcyAoJXMpXG4iCm1zZ3N0ciAiIgoKIzogdmVyc2lvbi5jOjkxCiMsIGMtZm9ybWF0Cm1zZ2lkICJUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJlZGlzdHJpYnV0ZSBpdC5cbiIKbXNnc3RyICIiCgojOiB2ZXJzaW9uLmM6OTIKIywgYy1mb3JtYXQKbXNnaWQgIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoKIzogeG1hbGxvYy5jOjkyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ4bWFsbG9jOiBjYW5ub3QgYWxsb2NhdGUgJWx1IGJ5dGVzICglbHUgYnl0ZXMgYWxsb2NhdGVkKSIKbXNnc3RyICIiCgojOiB4bWFsbG9jLmM6OTQKIywgYy1mb3JtYXQKbXNnaWQgInhtYWxsb2M6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAiIgoKIzogeG1hbGxvYy5jOjExNAojLCBjLWZvcm1hdAptc2dpZCAieHJlYWxsb2M6IGNhbm5vdCByZWFsbG9jYXRlICVsdSBieXRlcyAoJWx1IGJ5dGVzIGFsbG9jYXRlZCkiCm1zZ3N0ciAiIgoKIzogeG1hbGxvYy5jOjExNgojLCBjLWZvcm1hdAptc2dpZCAieHJlYWxsb2M6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAiIgoKIzogeG1hbGxvYy5jOjE1MAojLCBjLWZvcm1hdAptc2dpZCAieG1hbGxvYzogJXM6JWQ6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMgKCVsdSBieXRlcyBhbGxvY2F0ZWQpIgptc2dzdHIgIiIKCiM6IHhtYWxsb2MuYzoxNTIKIywgYy1mb3JtYXQKbXNnaWQgInhtYWxsb2M6ICVzOiVkOiBjYW5ub3QgYWxsb2NhdGUgJWx1IGJ5dGVzIgptc2dzdHIgIiIKCiM6IHhtYWxsb2MuYzoxNzQKIywgYy1mb3JtYXQKbXNnaWQgInhyZWFsbG9jOiAlczolZDogY2Fubm90IHJlYWxsb2NhdGUgJWx1IGJ5dGVzICglbHUgYnl0ZXMgYWxsb2NhdGVkKSIKbXNnc3RyICIiCgojOiB4bWFsbG9jLmM6MTc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ4cmVhbGxvYzogJXM6JWQ6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo0Mwptc2dpZCAiYWxpYXMgWy1wXSBbbmFtZVs9dmFsdWVdIC4uLiBdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NDcKbXNnaWQgInVuYWxpYXMgWy1hXSBuYW1lIFtuYW1lIC4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1MQptc2dpZCAiIgoiYmluZCBbLWxwdnNQVlNdIFstbSBrZXltYXBdIFstZiBmaWxlbmFtZV0gWy1xIG5hbWVdIFstdSBuYW1lXSBbLXIga2V5c2VxXSBbLSIKIngga2V5c2VxOnNoZWxsLWNvbW1hbmRdIFtrZXlzZXE6cmVhZGxpbmUtZnVuY3Rpb24gb3IgcmVhZGxpbmUtY29tbWFuZF0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1NAptc2dpZCAiYnJlYWsgW25dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NTYKbXNnaWQgImNvbnRpbnVlIFtuXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjU4Cm1zZ2lkICJidWlsdGluIFtzaGVsbC1idWlsdGluIFthcmcgLi4uXV0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2MQptc2dpZCAiY2FsbGVyIFtleHByXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjY0Cm1zZ2lkICJjZCBbLUx8LVBdIFtkaXJdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NjYKbXNnaWQgInB3ZCBbLUxQXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjY4Cm1zZ2lkICI6Igptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NzAKbXNnaWQgInRydWUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3Mgptc2dpZCAiZmFsc2UiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3NAptc2dpZCAiY29tbWFuZCBbLXBWdl0gY29tbWFuZCBbYXJnIC4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3Ngptc2dpZCAiZGVjbGFyZSBbLWFBZkZpbHJ0dXhdIFstcF0gW25hbWVbPXZhbHVlXSAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NzgKbXNnaWQgInR5cGVzZXQgWy1hQWZGaWxydHV4XSBbLXBdIG5hbWVbPXZhbHVlXSAuLi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo4MAptc2dpZCAibG9jYWwgW29wdGlvbl0gbmFtZVs9dmFsdWVdIC4uLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjgzCm1zZ2lkICJlY2hvIFstbmVFXSBbYXJnIC4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo4Nwptc2dpZCAiZWNobyBbLW5dIFthcmcgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjkwCm1zZ2lkICJlbmFibGUgWy1hXSBbLWRucHNdIFstZiBmaWxlbmFtZV0gW25hbWUgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjkyCm1zZ2lkICJldmFsIFthcmcgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjk0Cm1zZ2lkICJnZXRvcHRzIG9wdHN0cmluZyBuYW1lIFthcmddIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6OTYKbXNnaWQgImV4ZWMgWy1jbF0gWy1hIG5hbWVdIFtjb21tYW5kIFthcmd1bWVudHMgLi4uXV0gW3JlZGlyZWN0aW9uIC4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo5OAptc2dpZCAiZXhpdCBbbl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMDAKbXNnaWQgImxvZ291dCBbbl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMDMKbXNnaWQgImZjIFstZSBlbmFtZV0gWy1sbnJdIFtmaXJzdF0gW2xhc3RdIG9yIGZjIC1zIFtwYXQ9cmVwXSBbY29tbWFuZF0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMDcKbXNnaWQgImZnIFtqb2Jfc3BlY10iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMTEKbXNnaWQgImJnIFtqb2Jfc3BlYyAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTE0Cm1zZ2lkICJoYXNoIFstbHJdIFstcCBwYXRobmFtZV0gWy1kdF0gW25hbWUgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExNwptc2dpZCAiaGVscCBbLWRzXSBbcGF0dGVybiAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTIxCm1zZ2lkICIiCiJoaXN0b3J5IFstY10gWy1kIG9mZnNldF0gW25dIG9yIGhpc3RvcnkgLWFucncgW2ZpbGVuYW1lXSBvciBoaXN0b3J5IC1wcyBhcmcgIgoiW2FyZy4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMjUKbXNnaWQgImpvYnMgWy1sbnByc10gW2pvYnNwZWMgLi4uXSBvciBqb2JzIC14IGNvbW1hbmQgW2FyZ3NdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTI5Cm1zZ2lkICJkaXNvd24gWy1oXSBbLWFyXSBbam9ic3BlYyAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTMyCm1zZ2lkICIiCiJraWxsIFstcyBzaWdzcGVjIHwgLW4gc2lnbnVtIHwgLXNpZ3NwZWNdIHBpZCB8IGpvYnNwZWMgLi4uIG9yIGtpbGwgLWwgIgoiW3NpZ3NwZWNdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTM0Cm1zZ2lkICJsZXQgYXJnIFthcmcgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjEzNgptc2dpZCAiIgoicmVhZCBbLWVyc10gWy1hIGFycmF5XSBbLWQgZGVsaW1dIFstaSB0ZXh0XSBbLW4gbmNoYXJzXSBbLXAgcHJvbXB0XSBbLXQgIgoidGltZW91dF0gWy11IGZkXSBbbmFtZSAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTM4Cm1zZ2lkICJyZXR1cm4gW25dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTQwCm1zZ2lkICJzZXQgWy0tYWJlZmhrbW5wdHV2eEJDSFBdIFstbyBvcHRpb24tbmFtZV0gW2FyZyAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTQyCm1zZ2lkICJ1bnNldCBbLWZdIFstdl0gW25hbWUgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0NAptc2dpZCAiZXhwb3J0IFstZm5dIFtuYW1lWz12YWx1ZV0gLi4uXSBvciBleHBvcnQgLXAiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNDYKbXNnaWQgInJlYWRvbmx5IFstYWZdIFtuYW1lWz12YWx1ZV0gLi4uXSBvciByZWFkb25seSAtcCIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0OAptc2dpZCAic2hpZnQgW25dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTUwCiMsIGZ1enp5Cm1zZ2lkICJzb3VyY2UgZmlsZW5hbWUgW2FyZ3VtZW50c10iCm1zZ3N0ciAi1NLFwtXF1NPRIMHSx9XNxc7UIMnN0SDGwcrMwSIKCiM6IGJ1aWx0aW5zLmM6MTUyCiMsIGZ1enp5Cm1zZ2lkICIuIGZpbGVuYW1lIFthcmd1bWVudHNdIgptc2dzdHIgItTSxcLVxdTT0SDB0sfVzcXO1CDJzdEgxsHKzMEiCgojOiBidWlsdGlucy5jOjE1NQptc2dpZCAic3VzcGVuZCBbLWZdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTU4Cm1zZ2lkICJ0ZXN0IFtleHByXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MAptc2dpZCAiWyBhcmcuLi4gXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2Mgptc2dpZCAidGltZXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNjQKbXNnaWQgInRyYXAgWy1scF0gW1thcmddIHNpZ25hbF9zcGVjIC4uLl0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNjYKbXNnaWQgInR5cGUgWy1hZnB0UF0gbmFtZSBbbmFtZSAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY5Cm1zZ2lkICJ1bGltaXQgWy1TSGFjZGVmaWxtbnBxcnN0dXZ4XSBbbGltaXRdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTcyCm1zZ2lkICJ1bWFzayBbLXBdIFstU10gW21vZGVdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTc1Cm1zZ2lkICJ3YWl0IFtpZF0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNzkKbXNnaWQgIndhaXQgW3BpZF0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxODIKbXNnaWQgImZvciBOQU1FIFtpbiBXT1JEUyAuLi4gXSA7IGRvIENPTU1BTkRTOyBkb25lIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTg0Cm1zZ2lkICJmb3IgKCggZXhwMTsgZXhwMjsgZXhwMyApKTsgZG8gQ09NTUFORFM7IGRvbmUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxODYKbXNnaWQgInNlbGVjdCBOQU1FIFtpbiBXT1JEUyAuLi4gO10gZG8gQ09NTUFORFM7IGRvbmUiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxODgKbXNnaWQgInRpbWUgWy1wXSBwaXBlbGluZSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5MAptc2dpZCAiY2FzZSBXT1JEIGluIFtQQVRURVJOIFt8IFBBVFRFUk5dLi4uKSBDT01NQU5EUyA7O10uLi4gZXNhYyIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5Mgptc2dpZCAiIgoiaWYgQ09NTUFORFM7IHRoZW4gQ09NTUFORFM7IFsgZWxpZiBDT01NQU5EUzsgdGhlbiBDT01NQU5EUzsgXS4uLiBbIGVsc2UgIgoiQ09NTUFORFM7IF0gZmkiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxOTQKbXNnaWQgIndoaWxlIENPTU1BTkRTOyBkbyBDT01NQU5EUzsgZG9uZSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5Ngptc2dpZCAidW50aWwgQ09NTUFORFM7IGRvIENPTU1BTkRTOyBkb25lIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTk4Cm1zZ2lkICJjb3Byb2MgW05BTUVdIGNvbW1hbmQgW3JlZGlyZWN0aW9uc10iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoyMDAKbXNnaWQgImZ1bmN0aW9uIG5hbWUgeyBDT01NQU5EUyA7IH0gb3IgbmFtZSAoKSB7IENPTU1BTkRTIDsgfSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIwMgptc2dpZCAieyBDT01NQU5EUyA7IH0iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoyMDQKbXNnaWQgImpvYl9zcGVjIFsmXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIwNgojLCBmdXp6eQptc2dpZCAiKCggZXhwcmVzc2lvbiApKSIKbXNnc3RyICLP1snEwczP09gg19nSwdbFzsnFIgoKIzogYnVpbHRpbnMuYzoyMDgKIywgZnV6enkKbXNnaWQgIltbIGV4cHJlc3Npb24gXV0iCm1zZ3N0ciAiz9bJxMHMz9PYINfZ0sHWxc7JxSIKCiM6IGJ1aWx0aW5zLmM6MjEwCm1zZ2lkICJ2YXJpYWJsZXMgLSBOYW1lcyBhbmQgbWVhbmluZ3Mgb2Ygc29tZSBzaGVsbCB2YXJpYWJsZXMiCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoyMTMKbXNnaWQgInB1c2hkIFstbl0gWytOIHwgLU4gfCBkaXJdIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MjE3Cm1zZ2lkICJwb3BkIFstbl0gWytOIHwgLU5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MjIxCm1zZ2lkICJkaXJzIFstY2xwdl0gWytOXSBbLU5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MjI0Cm1zZ2lkICJzaG9wdCBbLXBxc3VdIFstb10gW29wdG5hbWUgLi4uXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIyNgptc2dpZCAicHJpbnRmIFstdiB2YXJdIGZvcm1hdCBbYXJndW1lbnRzXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIyOQptc2dpZCAiIgoiY29tcGxldGUgWy1hYmNkZWZnamtzdXZdIFstcHJdIFstbyBvcHRpb25dIFstQSBhY3Rpb25dIFstRyBnbG9icGF0XSBbLVcgIgoid29yZGxpc3RdICBbLUYgZnVuY3Rpb25dIFstQyBjb21tYW5kXSBbLVggZmlsdGVycGF0XSBbLVAgcHJlZml4XSBbLVMgc3VmZml4XSAiCiJbbmFtZSAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MjMzCm1zZ2lkICIiCiJjb21wZ2VuIFstYWJjZGVmZ2prc3V2XSBbLW8gb3B0aW9uXSAgWy1BIGFjdGlvbl0gWy1HIGdsb2JwYXRdIFstVyB3b3JkbGlzdF0gICIKIlstRiBmdW5jdGlvbl0gWy1DIGNvbW1hbmRdIFstWCBmaWx0ZXJwYXRdIFstUCBwcmVmaXhdIFstUyBzdWZmaXhdIFt3b3JkXSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjIzNwptc2dpZCAiY29tcG9wdCBbLW98K28gb3B0aW9uXSBbbmFtZSAuLi5dIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MjQwCm1zZ2lkICIiCiJtYXBmaWxlIFstbiBjb3VudF0gWy1PIG9yaWdpbl0gWy1zIGNvdW50XSBbLXRdIFstdSBmZF0gWy1DIGNhbGxiYWNrXSBbLWMgIgoicXVhbnR1bV0gW2FycmF5XSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjI0Mgptc2dpZCAiIgoicmVhZGFycmF5IFstbiBjb3VudF0gWy1PIG9yaWdpbl0gWy1zIGNvdW50XSBbLXRdIFstdSBmZF0gWy1DIGNhbGxiYWNrXSBbLWMgIgoicXVhbnR1bV0gW2FycmF5XSIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjI1NAptc2dpZCAiIgoiRGVmaW5lIG9yIGRpc3BsYXkgYWxpYXNlcy5cbiIKIiAgICBcbiIKIiAgICBXaXRob3V0IGFyZ3VtZW50cywgYGFsaWFzJyBwcmludHMgdGhlIGxpc3Qgb2YgYWxpYXNlcyBpbiB0aGUgcmV1c2FibGVcbiIKIiAgICBmb3JtIGBhbGlhcyBOQU1FPVZBTFVFJyBvbiBzdGFuZGFyZCBvdXRwdXQuXG4iCiIgICAgXG4iCiIgICAgT3RoZXJ3aXNlLCBhbiBhbGlhcyBpcyBkZWZpbmVkIGZvciBlYWNoIE5BTUUgd2hvc2UgVkFMVUUgaXMgZ2l2ZW4uXG4iCiIgICAgQSB0cmFpbGluZyBzcGFjZSBpbiBWQUxVRSBjYXVzZXMgdGhlIG5leHQgd29yZCB0byBiZSBjaGVja2VkIGZvclxuIgoiICAgIGFsaWFzIHN1YnN0aXR1dGlvbiB3aGVuIHRoZSBhbGlhcyBpcyBleHBhbmRlZC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLXBcdFByaW50IGFsbCBkZWZpbmVkIGFsaWFzZXMgaW4gYSByZXVzYWJsZSBmb3JtYXRcbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBhbGlhcyByZXR1cm5zIHRydWUgdW5sZXNzIGEgTkFNRSBpcyBzdXBwbGllZCBmb3Igd2hpY2ggbm8gYWxpYXMgaGFzICIKImJlZW5cbiIKIiAgICBkZWZpbmVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjI3Ngptc2dpZCAiIgoiUmVtb3ZlIGVhY2ggTkFNRSBmcm9tIHRoZSBsaXN0IG9mIGRlZmluZWQgYWxpYXNlcy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHJlbW92ZSBhbGwgYWxpYXMgZGVmaW5pdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgUmV0dXJuIHN1Y2Nlc3MgdW5sZXNzIGEgTkFNRSBpcyBub3QgYW4gZXhpc3RpbmcgYWxpYXMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6Mjg5Cm1zZ2lkICIiCiJTZXQgUmVhZGxpbmUga2V5IGJpbmRpbmdzIGFuZCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgQmluZCBhIGtleSBzZXF1ZW5jZSB0byBhIFJlYWRsaW5lIGZ1bmN0aW9uIG9yIGEgbWFjcm8sIG9yIHNldCBhXG4iCiIgICAgUmVhZGxpbmUgdmFyaWFibGUuICBUaGUgbm9uLW9wdGlvbiBhcmd1bWVudCBzeW50YXggaXMgZXF1aXZhbGVudCB0b1xuIgoiICAgIHRoYXQgZm91bmQgaW4gfi8uaW5wdXRyYywgYnV0IG11c3QgYmUgcGFzc2VkIGFzIGEgc2luZ2xlIGFyZ3VtZW50OlxuIgoiICAgIGUuZy4sIGJpbmQgJ1wiXFxDLXhcXEMtclwiOiByZS1yZWFkLWluaXQtZmlsZScuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1tICBrZXltYXAgICAgICAgICBVc2UgS0VZTUFQIGFzIHRoZSBrZXltYXAgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGlzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC4gIEFjY2VwdGFibGUga2V5bWFwIG5hbWVzIGFyZSBlbWFjcyxcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICBlbWFjcy1zdGFuZGFyZCwgZW1hY3MtbWV0YSwgZW1hY3MtY3RseCwgdmksIHZpLSIKIm1vdmUsXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgdmktY29tbWFuZCwgYW5kIHZpLWluc2VydC5cbiIKIiAgICAgIC1sICAgICAgICAgICAgICAgICBMaXN0IG5hbWVzIG9mIGZ1bmN0aW9ucy5cbiIKIiAgICAgIC1QICAgICAgICAgICAgICAgICBMaXN0IGZ1bmN0aW9uIG5hbWVzIGFuZCBiaW5kaW5ncy5cbiIKIiAgICAgIC1wICAgICAgICAgICAgICAgICBMaXN0IGZ1bmN0aW9ucyBhbmQgYmluZGluZ3MgaW4gYSBmb3JtIHRoYXQgY2FuIGJlXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkIGFzIGlucHV0LlxuIgoiICAgICAgLVMgICAgICAgICAgICAgICAgIExpc3Qga2V5IHNlcXVlbmNlcyB0aGF0IGludm9rZSBtYWNyb3MgYW5kIHRoZWlyICIKInZhbHVlc1xuIgoiICAgICAgLXMgICAgICAgICAgICAgICAgIExpc3Qga2V5IHNlcXVlbmNlcyB0aGF0IGludm9rZSBtYWNyb3MgYW5kIHRoZWlyICIKInZhbHVlc1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgIGluIGEgZm9ybSB0aGF0IGNhbiBiZSByZXVzZWQgYXMgaW5wdXQuXG4iCiIgICAgICAtViAgICAgICAgICAgICAgICAgTGlzdCB2YXJpYWJsZSBuYW1lcyBhbmQgdmFsdWVzXG4iCiIgICAgICAtdiAgICAgICAgICAgICAgICAgTGlzdCB2YXJpYWJsZSBuYW1lcyBhbmQgdmFsdWVzIGluIGEgZm9ybSB0aGF0IGNhblxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHJldXNlZCBhcyBpbnB1dC5cbiIKIiAgICAgIC1xICBmdW5jdGlvbi1uYW1lICBRdWVyeSBhYm91dCB3aGljaCBrZXlzIGludm9rZSB0aGUgbmFtZWQgZnVuY3Rpb24uXG4iCiIgICAgICAtdSAgZnVuY3Rpb24tbmFtZSAgVW5iaW5kIGFsbCBrZXlzIHdoaWNoIGFyZSBib3VuZCB0byB0aGUgbmFtZWQgIgoiZnVuY3Rpb24uXG4iCiIgICAgICAtciAga2V5c2VxICAgICAgICAgUmVtb3ZlIHRoZSBiaW5kaW5nIGZvciBLRVlTRVEuXG4iCiIgICAgICAtZiAgZmlsZW5hbWUgICAgICAgUmVhZCBrZXkgYmluZGluZ3MgZnJvbSBGSUxFTkFNRS5cbiIKIiAgICAgIC14ICBrZXlzZXE6c2hlbGwtY29tbWFuZFx0Q2F1c2UgU0hFTEwtQ09NTUFORCB0byBiZSBleGVjdXRlZCB3aGVuXG4iCiIgICAgXHRcdFx0XHRLRVlTRVEgaXMgZW50ZXJlZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBiaW5kIHJldHVybnMgMCB1bmxlc3MgYW4gdW5yZWNvZ25pemVkIG9wdGlvbiBpcyBnaXZlbiBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MzI2Cm1zZ2lkICIiCiJFeGl0IGZvciwgd2hpbGUsIG9yIHVudGlsIGxvb3BzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgYSBGT1IsIFdISUxFIG9yIFVOVElMIGxvb3AuICBJZiBOIGlzIHNwZWNpZmllZCwgYnJlYWsgTiBlbmNsb3NpbmdcbiIKIiAgICBsb29wcy5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBUaGUgZXhpdCBzdGF0dXMgaXMgMCB1bmxlc3MgTiBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MzM4Cm1zZ2lkICIiCiJSZXN1bWUgZm9yLCB3aGlsZSwgb3IgdW50aWwgbG9vcHMuXG4iCiIgICAgXG4iCiIgICAgUmVzdW1lcyB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGVuY2xvc2luZyBGT1IsIFdISUxFIG9yIFVOVElMIGxvb3AuXG4iCiIgICAgSWYgTiBpcyBzcGVjaWZpZWQsIHJlc3VtZXMgdGhlIE50aCBlbmNsb3NpbmcgbG9vcC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBUaGUgZXhpdCBzdGF0dXMgaXMgMCB1bmxlc3MgTiBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MzUwCm1zZ2lkICIiCiJFeGVjdXRlIHNoZWxsIGJ1aWx0aW5zLlxuIgoiICAgIFxuIgoiICAgIEV4ZWN1dGUgU0hFTEwtQlVJTFRJTiB3aXRoIGFyZ3VtZW50cyBBUkdzIHdpdGhvdXQgcGVyZm9ybWluZyBjb21tYW5kXG4iCiIgICAgbG9va3VwLiAgVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2lzaCB0byByZWltcGxlbWVudCBhIHNoZWxsIGJ1aWx0aW5cbiIKIiAgICBhcyBhIHNoZWxsIGZ1bmN0aW9uLCBidXQgbmVlZCB0byBleGVjdXRlIHRoZSBidWlsdGluIHdpdGhpbiB0aGUgIgoiZnVuY3Rpb24uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgU0hFTEwtQlVJTFRJTiwgb3IgZmFsc2UgaWYgU0hFTEwtQlVJTFRJTiBpc1xuIgoiICAgIG5vdCBhIHNoZWxsIGJ1aWx0aW4uLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjM2NQptc2dpZCAiIgoiUmV0dXJuIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHN1YnJvdXRpbmUgY2FsbC5cbiIKIiAgICBcbiIKIiAgICBXaXRob3V0IEVYUFIsIHJldHVybnMgXCIkbGluZSAkZmlsZW5hbWVcIi4gIFdpdGggRVhQUiwgcmV0dXJuc1xuIgoiICAgIFwiJGxpbmUgJHN1YnJvdXRpbmUgJGZpbGVuYW1lXCI7IHRoaXMgZXh0cmEgaW5mb3JtYXRpb24gY2FuIGJlIHVzZWQgdG9cbiIKIiAgICBwcm92aWRlIGEgc3RhY2sgdHJhY2UuXG4iCiIgICAgXG4iCiIgICAgVGhlIHZhbHVlIG9mIEVYUFIgaW5kaWNhdGVzIGhvdyBtYW55IGNhbGwgZnJhbWVzIHRvIGdvIGJhY2sgYmVmb3JlIHRoZVxuIgoiICAgIGN1cnJlbnQgb25lOyB0aGUgdG9wIGZyYW1lIGlzIGZyYW1lIDAuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyAwIHVubGVzcyB0aGUgc2hlbGwgaXMgbm90IGV4ZWN1dGluZyBhIHNoZWxsIGZ1bmN0aW9uIG9yIEVYUFJcbiIKIiAgICBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjM4Mwptc2dpZCAiIgoiQ2hhbmdlIHRoZSBzaGVsbCB3b3JraW5nIGRpcmVjdG9yeS5cbiIKIiAgICBcbiIKIiAgICBDaGFuZ2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIERJUi4gIFRoZSBkZWZhdWx0IERJUiBpcyB0aGUgdmFsdWUgb2YgIgoidGhlXG4iCiIgICAgSE9NRSBzaGVsbCB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBUaGUgdmFyaWFibGUgQ0RQQVRIIGRlZmluZXMgdGhlIHNlYXJjaCBwYXRoIGZvciB0aGUgZGlyZWN0b3J5ICIKImNvbnRhaW5pbmdcbiIKIiAgICBESVIuICBBbHRlcm5hdGl2ZSBkaXJlY3RvcnkgbmFtZXMgaW4gQ0RQQVRIIGFyZSBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAiCiIoOikuXG4iCiIgICAgQSBudWxsIGRpcmVjdG9yeSBuYW1lIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIElmIERJUiAiCiJiZWdpbnNcbiIKIiAgICB3aXRoIGEgc2xhc2ggKC8pLCB0aGVuIENEUEFUSCBpcyBub3QgdXNlZC5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgZGlyZWN0b3J5IGlzIG5vdCBmb3VuZCwgYW5kIHRoZSBzaGVsbCBvcHRpb24gYGNkYWJsZV92YXJzJyBpcyAiCiJzZXQsXG4iCiIgICAgdGhlIHdvcmQgaXMgYXNzdW1lZCB0byBiZSAgYSB2YXJpYWJsZSBuYW1lLiAgSWYgdGhhdCB2YXJpYWJsZSBoYXMgYSAiCiJ2YWx1ZSxcbiIKIiAgICBpdHMgdmFsdWUgaXMgdXNlZCBmb3IgRElSLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAgIC1MXHRmb3JjZSBzeW1ib2xpYyBsaW5rcyB0byBiZSBmb2xsb3dlZFxuIgoiICAgICAgICAtUFx0dXNlIHRoZSBwaHlzaWNhbCBkaXJlY3Rvcnkgc3RydWN0dXJlIHdpdGhvdXQgZm9sbG93aW5nIHN5bWJvbGljXG4iCiIgICAgXHRsaW5rc1xuIgoiICAgIFxuIgoiICAgIFRoZSBkZWZhdWx0IGlzIHRvIGZvbGxvdyBzeW1ib2xpYyBsaW5rcywgYXMgaWYgYC1MJyB3ZXJlIHNwZWNpZmllZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIDAgaWYgdGhlIGRpcmVjdG9yeSBpcyBjaGFuZ2VkOyBub24temVybyBvdGhlcndpc2UuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NDExCm1zZ2lkICIiCiJQcmludCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLUxcdHByaW50IHRoZSB2YWx1ZSBvZiAkUFdEIGlmIGl0IG5hbWVzIHRoZSBjdXJyZW50IHdvcmtpbmdcbiIKIiAgICBcdGRpcmVjdG9yeVxuIgoiICAgICAgLVBcdHByaW50IHRoZSBwaHlzaWNhbCBkaXJlY3RvcnksIHdpdGhvdXQgYW55IHN5bWJvbGljIGxpbmtzXG4iCiIgICAgXG4iCiIgICAgQnkgZGVmYXVsdCwgYHB3ZCcgYmVoYXZlcyBhcyBpZiBgLUwnIHdlcmUgc3BlY2lmaWVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgMCB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5XG4iCiIgICAgY2Fubm90IGJlIHJlYWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NDI4CiMsIGZ1enp5Cm1zZ2lkICIiCiJOdWxsIGNvbW1hbmQuXG4iCiIgICAgXG4iCiIgICAgTm8gZWZmZWN0OyB0aGUgY29tbWFuZCBkb2VzIG5vdGhpbmcuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgQWx3YXlzIHN1Y2NlZWRzLiIKbXNnc3RyICIiCiIg7sXUIMvBy8/Hzy3MycLPINzGxsXL1ME7IMvPzcHOxMEgzsnexcfPIM7FIMTFzMHF1C4g7tXM2CDXz9rX0sHdwcXU09Eg1yAiCiLLwd7F09TXxSDSxdrVzNjUwdTBLiIKCiM6IGJ1aWx0aW5zLmM6NDM5Cm1zZ2lkICIiCiJSZXR1cm4gYSBzdWNjZXNzZnVsIHJlc3VsdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBBbHdheXMgc3VjY2VlZHMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NDQ4CiMsIGZ1enp5Cm1zZ2lkICIiCiJSZXR1cm4gYW4gdW5zdWNjZXNzZnVsIHJlc3VsdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBBbHdheXMgZmFpbHMuIgptc2dzdHIgIvfP2tfSwd3BxdQg0sXa1czY1MHUOiDOxdXEwd7BLiIKCiM6IGJ1aWx0aW5zLmM6NDU3Cm1zZ2lkICIiCiJFeGVjdXRlIGEgc2ltcGxlIGNvbW1hbmQgb3IgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5kcy5cbiIKIiAgICBcbiIKIiAgICBSdW5zIENPTU1BTkQgd2l0aCBBUkdTIHN1cHByZXNzaW5nICBzaGVsbCBmdW5jdGlvbiBsb29rdXAsIG9yIGRpc3BsYXlcbiIKIiAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIENPTU1BTkRzLiAgQ2FuIGJlIHVzZWQgdG8gaW52b2tlICIKImNvbW1hbmRzXG4iCiIgICAgb24gZGlzayB3aGVuIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0cy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLXBcdHVzZSBhIGRlZmF1bHQgdmFsdWUgZm9yIFBBVEggdGhhdCBpcyBndWFyYW50ZWVkIHRvIGZpbmQgYWxsIG9mXG4iCiIgICAgXHR0aGUgc3RhbmRhcmQgdXRpbGl0aWVzXG4iCiIgICAgICAtdlx0cHJpbnQgYSBkZXNjcmlwdGlvbiBvZiBDT01NQU5EIHNpbWlsYXIgdG8gdGhlIGB0eXBlJyBidWlsdGluXG4iCiIgICAgICAtVlx0cHJpbnQgYSBtb3JlIHZlcmJvc2UgZGVzY3JpcHRpb24gb2YgZWFjaCBDT01NQU5EXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBleGl0IHN0YXR1cyBvZiBDT01NQU5ELCBvciBmYWlsdXJlIGlmIENPTU1BTkQgaXMgbm90IGZvdW5kLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjQ3Ngptc2dpZCAiIgoiU2V0IHZhcmlhYmxlIHZhbHVlcyBhbmQgYXR0cmlidXRlcy5cbiIKIiAgICBcbiIKIiAgICBEZWNsYXJlIHZhcmlhYmxlcyBhbmQgZ2l2ZSB0aGVtIGF0dHJpYnV0ZXMuICBJZiBubyBOQU1FcyBhcmUgZ2l2ZW4sXG4iCiIgICAgZGlzcGxheSB0aGUgYXR0cmlidXRlcyBhbmQgdmFsdWVzIG9mIGFsbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1mXHRyZXN0cmljdCBhY3Rpb24gb3IgZGlzcGxheSB0byBmdW5jdGlvbiBuYW1lcyBhbmQgZGVmaW5pdGlvbnNcbiIKIiAgICAgIC1GXHRyZXN0cmljdCBkaXNwbGF5IHRvIGZ1bmN0aW9uIG5hbWVzIG9ubHkgKHBsdXMgbGluZSBudW1iZXIgYW5kXG4iCiIgICAgXHRzb3VyY2UgZmlsZSB3aGVuIGRlYnVnZ2luZylcbiIKIiAgICAgIC1wXHRkaXNwbGF5IHRoZSBhdHRyaWJ1dGVzIGFuZCB2YWx1ZSBvZiBlYWNoIE5BTUVcbiIKIiAgICBcbiIKIiAgICBPcHRpb25zIHdoaWNoIHNldCBhdHRyaWJ1dGVzOlxuIgoiICAgICAgLWFcdHRvIG1ha2UgTkFNRXMgaW5kZXhlZCBhcnJheXMgKGlmIHN1cHBvcnRlZClcbiIKIiAgICAgIC1BXHR0byBtYWtlIE5BTUVzIGFzc29jaWF0aXZlIGFycmF5cyAoaWYgc3VwcG9ydGVkKVxuIgoiICAgICAgLWlcdHRvIG1ha2UgTkFNRXMgaGF2ZSB0aGUgYGludGVnZXInIGF0dHJpYnV0ZVxuIgoiICAgICAgLWxcdHRvIGNvbnZlcnQgTkFNRXMgdG8gbG93ZXIgY2FzZSBvbiBhc3NpZ25tZW50XG4iCiIgICAgICAtclx0dG8gbWFrZSBOQU1FcyByZWFkb25seVxuIgoiICAgICAgLXRcdHRvIG1ha2UgTkFNRXMgaGF2ZSB0aGUgYHRyYWNlJyBhdHRyaWJ1dGVcbiIKIiAgICAgIC11XHR0byBjb252ZXJ0IE5BTUVzIHRvIHVwcGVyIGNhc2Ugb24gYXNzaWdubWVudFxuIgoiICAgICAgLXhcdHRvIG1ha2UgTkFNRXMgZXhwb3J0XG4iCiIgICAgXG4iCiIgICAgVXNpbmcgYCsnIGluc3RlYWQgb2YgYC0nIHR1cm5zIG9mZiB0aGUgZ2l2ZW4gYXR0cmlidXRlLlxuIgoiICAgIFxuIgoiICAgIFZhcmlhYmxlcyB3aXRoIHRoZSBpbnRlZ2VyIGF0dHJpYnV0ZSBoYXZlIGFyaXRobWV0aWMgZXZhbHVhdGlvbiAoc2VlXG4iCiIgICAgdGhlIGBsZXQnIGNvbW1hbmQpIHBlcmZvcm1lZCB3aGVuIHRoZSB2YXJpYWJsZSBpcyBhc3NpZ25lZCBhIHZhbHVlLlxuIgoiICAgIFxuIgoiICAgIFdoZW4gdXNlZCBpbiBhIGZ1bmN0aW9uLCBgZGVjbGFyZScgbWFrZXMgTkFNRXMgbG9jYWwsIGFzIHdpdGggdGhlICIKImBsb2NhbCdcbiIKIiAgICBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQgb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjUxMgptc2dpZCAiIgoiU2V0IHZhcmlhYmxlIHZhbHVlcyBhbmQgYXR0cmlidXRlcy5cbiIKIiAgICBcbiIKIiAgICBPYnNvbGV0ZS4gIFNlZSBgaGVscCBkZWNsYXJlJy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1MjAKbXNnaWQgIiIKIkRlZmluZSBsb2NhbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgQ3JlYXRlIGEgbG9jYWwgdmFyaWFibGUgY2FsbGVkIE5BTUUsIGFuZCBnaXZlIGl0IFZBTFVFLiAgT1BUSU9OIGNhblxuIgoiICAgIGJlIGFueSBvcHRpb24gYWNjZXB0ZWQgYnkgYGRlY2xhcmUnLlxuIgoiICAgIFxuIgoiICAgIExvY2FsIHZhcmlhYmxlcyBjYW4gb25seSBiZSB1c2VkIHdpdGhpbiBhIGZ1bmN0aW9uOyB0aGV5IGFyZSB2aXNpYmxlXG4iCiIgICAgb25seSB0byB0aGUgZnVuY3Rpb24gd2hlcmUgdGhleSBhcmUgZGVmaW5lZCBhbmQgaXRzIGNoaWxkcmVuLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQsIGFuIGVycm9yIG9jY3VycyxcbiIKIiAgICBvciB0aGUgc2hlbGwgaXMgbm90IGV4ZWN1dGluZyBhIGZ1bmN0aW9uLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjUzNwptc2dpZCAiIgoiV3JpdGUgYXJndW1lbnRzIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQuXG4iCiIgICAgXG4iCiIgICAgRGlzcGxheSB0aGUgQVJHcyBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0IGZvbGxvd2VkIGJ5IGEgbmV3bGluZS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLW5cdGRvIG5vdCBhcHBlbmQgYSBuZXdsaW5lXG4iCiIgICAgICAtZVx0ZW5hYmxlIGludGVycHJldGF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgYmFja3NsYXNoIGVzY2FwZXNcbiIKIiAgICAgIC1FXHRleHBsaWNpdGx5IHN1cHByZXNzIGludGVycHJldGF0aW9uIG9mIGJhY2tzbGFzaCBlc2NhcGVzXG4iCiIgICAgXG4iCiIgICAgYGVjaG8nIGludGVycHJldHMgdGhlIGZvbGxvd2luZyBiYWNrc2xhc2gtZXNjYXBlZCBjaGFyYWN0ZXJzOlxuIgoiICAgICAgXFxhXHRhbGVydCAoYmVsbClcbiIKIiAgICAgIFxcYlx0YmFja3NwYWNlXG4iCiIgICAgICBcXGNcdHN1cHByZXNzIGZ1cnRoZXIgb3V0cHV0XG4iCiIgICAgICBcXGVcdGVzY2FwZSBjaGFyYWN0ZXJcbiIKIiAgICAgIFxcZlx0Zm9ybSBmZWVkXG4iCiIgICAgICBcXG5cdG5ldyBsaW5lXG4iCiIgICAgICBcXHJcdGNhcnJpYWdlIHJldHVyblxuIgoiICAgICAgXFx0XHRob3Jpem9udGFsIHRhYlxuIgoiICAgICAgXFx2XHR2ZXJ0aWNhbCB0YWJcbiIKIiAgICAgIFxcXFxcdGJhY2tzbGFzaFxuIgoiICAgICAgXFwwbm5uXHR0aGUgY2hhcmFjdGVyIHdob3NlIEFTQ0lJIGNvZGUgaXMgTk5OIChvY3RhbCkuICBOTk4gY2FuIGJlXG4iCiIgICAgXHQwIHRvIDMgb2N0YWwgZGlnaXRzXG4iCiIgICAgICBcXHhISFx0dGhlIGVpZ2h0LWJpdCBjaGFyYWN0ZXIgd2hvc2UgdmFsdWUgaXMgSEggKGhleGFkZWNpbWFsKS4gIEhIXG4iCiIgICAgXHRjYW4gYmUgb25lIG9yIHR3byBoZXggZGlnaXRzXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhIHdyaXRlIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo1NzEKbXNnaWQgIiIKIldyaXRlIGFyZ3VtZW50cyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LlxuIgoiICAgIFxuIgoiICAgIERpc3BsYXkgdGhlIEFSR3Mgb24gdGhlIHN0YW5kYXJkIG91dHB1dCBmb2xsb3dlZCBieSBhIG5ld2xpbmUuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1uXHRkbyBub3QgYXBwZW5kIGEgbmV3bGluZVxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYSB3cml0ZSBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NTg2Cm1zZ2lkICIiCiJFbmFibGUgYW5kIGRpc2FibGUgc2hlbGwgYnVpbHRpbnMuXG4iCiIgICAgXG4iCiIgICAgRW5hYmxlcyBhbmQgZGlzYWJsZXMgYnVpbHRpbiBzaGVsbCBjb21tYW5kcy4gIERpc2FibGluZyBhbGxvd3MgeW91IHRvXG4iCiIgICAgZXhlY3V0ZSBhIGRpc2sgY29tbWFuZCB3aGljaCBoYXMgdGhlIHNhbWUgbmFtZSBhcyBhIHNoZWxsIGJ1aWx0aW5cbiIKIiAgICB3aXRob3V0IHVzaW5nIGEgZnVsbCBwYXRobmFtZS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHByaW50IGEgbGlzdCBvZiBidWlsdGlucyBzaG93aW5nIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgZW5hYmxlZFxuIgoiICAgICAgLW5cdGRpc2FibGUgZWFjaCBOQU1FIG9yIGRpc3BsYXkgYSBsaXN0IG9mIGRpc2FibGVkIGJ1aWx0aW5zXG4iCiIgICAgICAtcFx0cHJpbnQgdGhlIGxpc3Qgb2YgYnVpbHRpbnMgaW4gYSByZXVzYWJsZSBmb3JtYXRcbiIKIiAgICAgIC1zXHRwcmludCBvbmx5IHRoZSBuYW1lcyBvZiBQb3NpeCBgc3BlY2lhbCcgYnVpbHRpbnNcbiIKIiAgICBcbiIKIiAgICBPcHRpb25zIGNvbnRyb2xsaW5nIGR5bmFtaWMgbG9hZGluZzpcbiIKIiAgICAgIC1mXHRMb2FkIGJ1aWx0aW4gTkFNRSBmcm9tIHNoYXJlZCBvYmplY3QgRklMRU5BTUVcbiIKIiAgICAgIC1kXHRSZW1vdmUgYSBidWlsdGluIGxvYWRlZCB3aXRoIC1mXG4iCiIgICAgXG4iCiIgICAgV2l0aG91dCBvcHRpb25zLCBlYWNoIE5BTUUgaXMgZW5hYmxlZC5cbiIKIiAgICBcbiIKIiAgICBUbyB1c2UgdGhlIGB0ZXN0JyBmb3VuZCBpbiAkUEFUSCBpbnN0ZWFkIG9mIHRoZSBzaGVsbCBidWlsdGluXG4iCiIgICAgdmVyc2lvbiwgdHlwZSBgZW5hYmxlIC1uIHRlc3QnLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTkFNRSBpcyBub3QgYSBzaGVsbCBidWlsdGluIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2MTQKbXNnaWQgIiIKIkV4ZWN1dGUgYXJndW1lbnRzIGFzIGEgc2hlbGwgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBDb21iaW5lIEFSR3MgaW50byBhIHNpbmdsZSBzdHJpbmcsIHVzZSB0aGUgcmVzdWx0IGFzIGlucHV0IHRvIHRoZSAiCiJzaGVsbCxcbiIKIiAgICBhbmQgZXhlY3V0ZSB0aGUgcmVzdWx0aW5nIGNvbW1hbmRzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgZXhpdCBzdGF0dXMgb2YgY29tbWFuZCBvciBzdWNjZXNzIGlmIGNvbW1hbmQgaXMgbnVsbC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2MjYKbXNnaWQgIiIKIlBhcnNlIG9wdGlvbiBhcmd1bWVudHMuXG4iCiIgICAgXG4iCiIgICAgR2V0b3B0cyBpcyB1c2VkIGJ5IHNoZWxsIHByb2NlZHVyZXMgdG8gcGFyc2UgcG9zaXRpb25hbCBwYXJhbWV0ZXJzXG4iCiIgICAgYXMgb3B0aW9ucy5cbiIKIiAgICBcbiIKIiAgICBPUFRTVFJJTkcgY29udGFpbnMgdGhlIG9wdGlvbiBsZXR0ZXJzIHRvIGJlIHJlY29nbml6ZWQ7IGlmIGEgbGV0dGVyXG4iCiIgICAgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiwgdGhlIG9wdGlvbiBpcyBleHBlY3RlZCB0byBoYXZlIGFuIGFyZ3VtZW50LFxuIgoiICAgIHdoaWNoIHNob3VsZCBiZSBzZXBhcmF0ZWQgZnJvbSBpdCBieSB3aGl0ZSBzcGFjZS5cbiIKIiAgICBcbiIKIiAgICBFYWNoIHRpbWUgaXQgaXMgaW52b2tlZCwgZ2V0b3B0cyB3aWxsIHBsYWNlIHRoZSBuZXh0IG9wdGlvbiBpbiB0aGVcbiIKIiAgICBzaGVsbCB2YXJpYWJsZSAkbmFtZSwgaW5pdGlhbGl6aW5nIG5hbWUgaWYgaXQgZG9lcyBub3QgZXhpc3QsIGFuZFxuIgoiICAgIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBhcmd1bWVudCB0byBiZSBwcm9jZXNzZWQgaW50byB0aGUgc2hlbGxcbiIKIiAgICB2YXJpYWJsZSBPUFRJTkQuICBPUFRJTkQgaXMgaW5pdGlhbGl6ZWQgdG8gMSBlYWNoIHRpbWUgdGhlIHNoZWxsIG9yXG4iCiIgICAgYSBzaGVsbCBzY3JpcHQgaXMgaW52b2tlZC4gIFdoZW4gYW4gb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50LFxuIgoiICAgIGdldG9wdHMgcGxhY2VzIHRoYXQgYXJndW1lbnQgaW50byB0aGUgc2hlbGwgdmFyaWFibGUgT1BUQVJHLlxuIgoiICAgIFxuIgoiICAgIGdldG9wdHMgcmVwb3J0cyBlcnJvcnMgaW4gb25lIG9mIHR3byB3YXlzLiAgSWYgdGhlIGZpcnN0IGNoYXJhY3RlclxuIgoiICAgIG9mIE9QVFNUUklORyBpcyBhIGNvbG9uLCBnZXRvcHRzIHVzZXMgc2lsZW50IGVycm9yIHJlcG9ydGluZy4gIEluXG4iCiIgICAgdGhpcyBtb2RlLCBubyBlcnJvciBtZXNzYWdlcyBhcmUgcHJpbnRlZC4gIElmIGFuIGludmFsaWQgb3B0aW9uIGlzXG4iCiIgICAgc2VlbiwgZ2V0b3B0cyBwbGFjZXMgdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQgaW50byBPUFRBUkcuICBJZiBhXG4iCiIgICAgcmVxdWlyZWQgYXJndW1lbnQgaXMgbm90IGZvdW5kLCBnZXRvcHRzIHBsYWNlcyBhICc6JyBpbnRvIE5BTUUgYW5kXG4iCiIgICAgc2V0cyBPUFRBUkcgdG8gdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQuICBJZiBnZXRvcHRzIGlzIG5vdCBpblxuIgoiICAgIHNpbGVudCBtb2RlLCBhbmQgYW4gaW52YWxpZCBvcHRpb24gaXMgc2VlbiwgZ2V0b3B0cyBwbGFjZXMgJz8nIGludG9cbiIKIiAgICBOQU1FIGFuZCB1bnNldHMgT1BUQVJHLiAgSWYgYSByZXF1aXJlZCBhcmd1bWVudCBpcyBub3QgZm91bmQsIGEgJz8nXG4iCiIgICAgaXMgcGxhY2VkIGluIE5BTUUsIE9QVEFSRyBpcyB1bnNldCwgYW5kIGEgZGlhZ25vc3RpYyBtZXNzYWdlIGlzXG4iCiIgICAgcHJpbnRlZC5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgc2hlbGwgdmFyaWFibGUgT1BURVJSIGhhcyB0aGUgdmFsdWUgMCwgZ2V0b3B0cyBkaXNhYmxlcyB0aGVcbiIKIiAgICBwcmludGluZyBvZiBlcnJvciBtZXNzYWdlcywgZXZlbiBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mXG4iCiIgICAgT1BUU1RSSU5HIGlzIG5vdCBhIGNvbG9uLiAgT1BURVJSIGhhcyB0aGUgdmFsdWUgMSBieSBkZWZhdWx0LlxuIgoiICAgIFxuIgoiICAgIEdldG9wdHMgbm9ybWFsbHkgcGFyc2VzIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgKCQwIC0gJDkpLCBidXQgaWZcbiIKIiAgICBtb3JlIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIHRoZXkgYXJlIHBhcnNlZCBpbnN0ZWFkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyBpZiBhbiBvcHRpb24gaXMgZm91bmQ7IGZhaWxzIGlmIHRoZSBlbmQgb2Ygb3B0aW9ucyBpc1xuIgoiICAgIGVuY291bnRlcmVkIG9yIGFuIGVycm9yIG9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2NjgKbXNnaWQgIiIKIlJlcGxhY2UgdGhlIHNoZWxsIHdpdGggdGhlIGdpdmVuIGNvbW1hbmQuXG4iCiIgICAgXG4iCiIgICAgRXhlY3V0ZSBDT01NQU5ELCByZXBsYWNpbmcgdGhpcyBzaGVsbCB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbS5cbiIKIiAgICBBUkdVTUVOVFMgYmVjb21lIHRoZSBhcmd1bWVudHMgdG8gQ09NTUFORC4gIElmIENPTU1BTkQgaXMgbm90ICIKInNwZWNpZmllZCxcbiIKIiAgICBhbnkgcmVkaXJlY3Rpb25zIHRha2UgZWZmZWN0IGluIHRoZSBjdXJyZW50IHNoZWxsLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYSBuYW1lXHRwYXNzIE5BTUUgYXMgdGhlIHplcm90aCBhcmd1bWVudCB0byBDT01NQU5EXG4iCiIgICAgICAtY1x0XHRleGVjdXRlIENPTU1BTkQgd2l0aCBhbiBlbXB0eSBlbnZpcm9ubWVudFxuIgoiICAgICAgLWxcdFx0cGxhY2UgYSBkYXNoIGluIHRoZSB6ZXJvdGggYXJndW1lbnQgdG8gQ09NTUFORFxuIgoiICAgIFxuIgoiICAgIElmIHRoZSBjb21tYW5kIGNhbm5vdCBiZSBleGVjdXRlZCwgYSBub24taW50ZXJhY3RpdmUgc2hlbGwgZXhpdHMsICIKInVubGVzc1xuIgoiICAgIHRoZSBzaGVsbCBvcHRpb24gYGV4ZWNmYWlsJyBpcyBzZXQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBDT01NQU5EIGlzIG5vdCBmb3VuZCBvciBhIHJlZGlyZWN0aW9uIGVycm9yICIKIm9jY3Vycy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2ODkKbXNnaWQgIiIKIkV4aXQgdGhlIHNoZWxsLlxuIgoiICAgIFxuIgoiICAgIEV4aXRzIHRoZSBzaGVsbCB3aXRoIGEgc3RhdHVzIG9mIE4uICBJZiBOIGlzIG9taXR0ZWQsIHRoZSBleGl0IHN0YXR1c1xuIgoiICAgIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo2OTgKbXNnaWQgIiIKIkV4aXQgYSBsb2dpbiBzaGVsbC5cbiIKIiAgICBcbiIKIiAgICBFeGl0cyBhIGxvZ2luIHNoZWxsIHdpdGggZXhpdCBzdGF0dXMgTi4gIFJldHVybnMgYW4gZXJyb3IgaWYgbm90ICIKImV4ZWN1dGVkXG4iCiIgICAgaW4gYSBsb2dpbiBzaGVsbC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3MDgKbXNnaWQgIiIKIkRpc3BsYXkgb3IgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIHRoZSBoaXN0b3J5IGxpc3QuXG4iCiIgICAgXG4iCiIgICAgZmMgaXMgdXNlZCB0byBsaXN0IG9yIGVkaXQgYW5kIHJlLWV4ZWN1dGUgY29tbWFuZHMgZnJvbSB0aGUgaGlzdG9yeSAiCiJsaXN0LlxuIgoiICAgIEZJUlNUIGFuZCBMQVNUIGNhbiBiZSBudW1iZXJzIHNwZWNpZnlpbmcgdGhlIHJhbmdlLCBvciBGSVJTVCBjYW4gYmUgYVxuIgoiICAgIHN0cmluZywgd2hpY2ggbWVhbnMgdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgYmVnaW5uaW5nIHdpdGggdGhhdFxuIgoiICAgIHN0cmluZy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWUgRU5BTUVcdHNlbGVjdCB3aGljaCBlZGl0b3IgdG8gdXNlLiAgRGVmYXVsdCBpcyBGQ0VESVQsIHRoZW4gIgoiRURJVE9SLFxuIgoiICAgIFx0XHR0aGVuIHZpXG4iCiIgICAgICAtbCBcdGxpc3QgbGluZXMgaW5zdGVhZCBvZiBlZGl0aW5nXG4iCiIgICAgICAtblx0b21pdCBsaW5lIG51bWJlcnMgd2hlbiBsaXN0aW5nXG4iCiIgICAgICAtclx0cmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGxpbmVzIChuZXdlc3QgbGlzdGVkIGZpcnN0KVxuIgoiICAgIFxuIgoiICAgIFdpdGggdGhlIGBmYyAtcyBbcGF0PXJlcCAuLi5dIFtjb21tYW5kXScgZm9ybWF0LCBDT01NQU5EIGlzXG4iCiIgICAgcmUtZXhlY3V0ZWQgYWZ0ZXIgdGhlIHN1YnN0aXR1dGlvbiBPTEQ9TkVXIGlzIHBlcmZvcm1lZC5cbiIKIiAgICBcbiIKIiAgICBBIHVzZWZ1bCBhbGlhcyB0byB1c2Ugd2l0aCB0aGlzIGlzIHI9J2ZjIC1zJywgc28gdGhhdCB0eXBpbmcgYHIgY2MnXG4iCiIgICAgcnVucyB0aGUgbGFzdCBjb21tYW5kIGJlZ2lubmluZyB3aXRoIGBjYycgYW5kIHR5cGluZyBgcicgcmUtZXhlY3V0ZXNcbiIKIiAgICB0aGUgbGFzdCBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyBvciBzdGF0dXMgb2YgZXhlY3V0ZWQgY29tbWFuZDsgbm9uLXplcm8gaWYgYW4gZXJyb3IgIgoib2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjczOAptc2dpZCAiIgoiTW92ZSBqb2IgdG8gdGhlIGZvcmVncm91bmQuXG4iCiIgICAgXG4iCiIgICAgUGxhY2UgdGhlIGpvYiBpZGVudGlmaWVkIGJ5IEpPQl9TUEVDIGluIHRoZSBmb3JlZ3JvdW5kLCBtYWtpbmcgaXQgdGhlXG4iCiIgICAgY3VycmVudCBqb2IuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3Mgbm90aW9uIG9mIHRoZVxuIgoiICAgIGN1cnJlbnQgam9iIGlzIHVzZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgU3RhdHVzIG9mIGNvbW1hbmQgcGxhY2VkIGluIGZvcmVncm91bmQsIG9yIGZhaWx1cmUgaWYgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjc1Mwptc2dpZCAiIgoiTW92ZSBqb2JzIHRvIHRoZSBiYWNrZ3JvdW5kLlxuIgoiICAgIFxuIgoiICAgIFBsYWNlIHRoZSBqb2JzIGlkZW50aWZpZWQgYnkgZWFjaCBKT0JfU1BFQyBpbiB0aGUgYmFja2dyb3VuZCwgYXMgaWYgIgoidGhleVxuIgoiICAgIGhhZCBiZWVuIHN0YXJ0ZWQgd2l0aCBgJicuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3MgIgoibm90aW9uXG4iCiIgICAgb2YgdGhlIGN1cnJlbnQgam9iIGlzIHVzZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBqb2IgY29udHJvbCBpcyBub3QgZW5hYmxlZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6NzY3Cm1zZ2lkICIiCiJSZW1lbWJlciBvciBkaXNwbGF5IHByb2dyYW0gbG9jYXRpb25zLlxuIgoiICAgIFxuIgoiICAgIERldGVybWluZSBhbmQgcmVtZW1iZXIgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgZWFjaCBjb21tYW5kIE5BTUUuICBJZlxuIgoiICAgIG5vIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIGluZm9ybWF0aW9uIGFib3V0IHJlbWVtYmVyZWQgY29tbWFuZHMgaXMgIgoiZGlzcGxheWVkLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtZFx0XHRmb3JnZXQgdGhlIHJlbWVtYmVyZWQgbG9jYXRpb24gb2YgZWFjaCBOQU1FXG4iCiIgICAgICAtbFx0XHRkaXNwbGF5IGluIGEgZm9ybWF0IHRoYXQgbWF5IGJlIHJldXNlZCBhcyBpbnB1dFxuIgoiICAgICAgLXAgcGF0aG5hbWVcdHVzZSBQQVRITkFNRSBpcyB0aGUgZnVsbCBwYXRobmFtZSBvZiBOQU1FXG4iCiIgICAgICAtclx0XHRmb3JnZXQgYWxsIHJlbWVtYmVyZWQgbG9jYXRpb25zXG4iCiIgICAgICAtdFx0XHRwcmludCB0aGUgcmVtZW1iZXJlZCBsb2NhdGlvbiBvZiBlYWNoIE5BTUUsIHByZWNlZGluZ1xuIgoiICAgIFx0XHRlYWNoIGxvY2F0aW9uIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgTkFNRSBpZiBtdWx0aXBsZVxuIgoiICAgIFx0XHROQU1FcyBhcmUgZ2l2ZW5cbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBOQU1FXHRcdEVhY2ggTkFNRSBpcyBzZWFyY2hlZCBmb3IgaW4gJFBBVEggYW5kIGFkZGVkIHRvIHRoZSBsaXN0XG4iCiIgICAgXHRcdG9mIHJlbWVtYmVyZWQgY29tbWFuZHMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBOQU1FIGlzIG5vdCBmb3VuZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo3OTIKbXNnaWQgIiIKIkRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgYnVpbHRpbiBjb21tYW5kcy5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5cyBicmllZiBzdW1tYXJpZXMgb2YgYnVpbHRpbiBjb21tYW5kcy4gIElmIFBBVFRFUk4gaXNcbiIKIiAgICBzcGVjaWZpZWQsIGdpdmVzIGRldGFpbGVkIGhlbHAgb24gYWxsIGNvbW1hbmRzIG1hdGNoaW5nIFBBVFRFUk4sXG4iCiIgICAgb3RoZXJ3aXNlIHRoZSBsaXN0IG9mIGhlbHAgdG9waWNzIGlzIHByaW50ZWQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1kXHRvdXRwdXQgc2hvcnQgZGVzY3JpcHRpb24gZm9yIGVhY2ggdG9waWNcbiIKIiAgICAgIC1tXHRkaXNwbGF5IHVzYWdlIGluIHBzZXVkby1tYW5wYWdlIGZvcm1hdFxuIgoiICAgICAgLXNcdG91dHB1dCBvbmx5IGEgc2hvcnQgdXNhZ2Ugc3lub3BzaXMgZm9yIGVhY2ggdG9waWMgbWF0Y2hpbmdcbiIKIiAgICBcdFBBVFRFUk5cbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBQQVRURVJOXHRQYXR0ZXJuIHNwZWNpZml5aW5nIGEgaGVscCB0b3BpY1xuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgUEFUVEVSTiBpcyBub3QgZm91bmQgb3IgYW4gaW52YWxpZCBvcHRpb24gaXMgIgoiZ2l2ZW4uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6ODE2Cm1zZ2lkICIiCiJEaXNwbGF5IG9yIG1hbmlwdWxhdGUgdGhlIGhpc3RvcnkgbGlzdC5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5IHRoZSBoaXN0b3J5IGxpc3Qgd2l0aCBsaW5lIG51bWJlcnMsIHByZWZpeGluZyBlYWNoIG1vZGlmaWVkXG4iCiIgICAgZW50cnkgd2l0aCBhIGAqJy4gIEFuIGFyZ3VtZW50IG9mIE4gbGlzdHMgb25seSB0aGUgbGFzdCBOIGVudHJpZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1jXHRjbGVhciB0aGUgaGlzdG9yeSBsaXN0IGJ5IGRlbGV0aW5nIGFsbCBvZiB0aGUgZW50cmllc1xuIgoiICAgICAgLWQgb2Zmc2V0XHRkZWxldGUgdGhlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0IE9GRlNFVC5cbiIKIiAgICBcbiIKIiAgICAgIC1hXHRhcHBlbmQgaGlzdG9yeSBsaW5lcyBmcm9tIHRoaXMgc2Vzc2lvbiB0byB0aGUgaGlzdG9yeSBmaWxlXG4iCiIgICAgICAtblx0cmVhZCBhbGwgaGlzdG9yeSBsaW5lcyBub3QgYWxyZWFkeSByZWFkIGZyb20gdGhlIGhpc3RvcnkgZmlsZVxuIgoiICAgICAgLXJcdHJlYWQgdGhlIGhpc3RvcnkgZmlsZSBhbmQgYXBwZW5kIHRoZSBjb250ZW50cyB0byB0aGUgaGlzdG9yeVxuIgoiICAgIFx0bGlzdFxuIgoiICAgICAgLXdcdHdyaXRlIHRoZSBjdXJyZW50IGhpc3RvcnkgdG8gdGhlIGhpc3RvcnkgZmlsZVxuIgoiICAgIFx0YW5kIGFwcGVuZCB0aGVtIHRvIHRoZSBoaXN0b3J5IGxpc3RcbiIKIiAgICBcbiIKIiAgICAgIC1wXHRwZXJmb3JtIGhpc3RvcnkgZXhwYW5zaW9uIG9uIGVhY2ggQVJHIGFuZCBkaXNwbGF5IHRoZSByZXN1bHRcbiIKIiAgICBcdHdpdGhvdXQgc3RvcmluZyBpdCBpbiB0aGUgaGlzdG9yeSBsaXN0XG4iCiIgICAgICAtc1x0YXBwZW5kIHRoZSBBUkdzIHRvIHRoZSBoaXN0b3J5IGxpc3QgYXMgYSBzaW5nbGUgZW50cnlcbiIKIiAgICBcbiIKIiAgICBJZiBGSUxFTkFNRSBpcyBnaXZlbiwgaXQgaXMgdXNlZCBhcyB0aGUgaGlzdG9yeSBmaWxlLiAgT3RoZXJ3aXNlLFxuIgoiICAgIGlmICRISVNURklMRSBoYXMgYSB2YWx1ZSwgdGhhdCBpcyB1c2VkLCBlbHNlIH4vLmJhc2hfaGlzdG9yeS5cbiIKIiAgICBcbiIKIiAgICBJZiB0aGUgJEhJU1RUSU1FRk9STUFUIHZhcmlhYmxlIGlzIHNldCBhbmQgbm90IG51bGwsIGl0cyB2YWx1ZSBpcyB1c2VkXG4iCiIgICAgYXMgYSBmb3JtYXQgc3RyaW5nIGZvciBzdHJmdGltZSgzKSB0byBwcmludCB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkXG4iCiIgICAgd2l0aCBlYWNoIGRpc3BsYXllZCBoaXN0b3J5IGVudHJ5LiAgTm8gdGltZSBzdGFtcHMgYXJlIHByaW50ZWQgIgoib3RoZXJ3aXNlLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjg1Mgptc2dpZCAiIgoiRGlzcGxheSBzdGF0dXMgb2Ygam9icy5cbiIKIiAgICBcbiIKIiAgICBMaXN0cyB0aGUgYWN0aXZlIGpvYnMuICBKT0JTUEVDIHJlc3RyaWN0cyBvdXRwdXQgdG8gdGhhdCBqb2IuXG4iCiIgICAgV2l0aG91dCBvcHRpb25zLCB0aGUgc3RhdHVzIG9mIGFsbCBhY3RpdmUgam9icyBpcyBkaXNwbGF5ZWQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1sXHRsaXN0cyBwcm9jZXNzIElEcyBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIGluZm9ybWF0aW9uXG4iCiIgICAgICAtblx0bGlzdCBvbmx5IHByb2Nlc3NlcyB0aGF0IGhhdmUgY2hhbmdlZCBzdGF0dXMgc2luY2UgdGhlIGxhc3RcbiIKIiAgICBcdG5vdGlmaWNhdGlvblxuIgoiICAgICAgLXBcdGxpc3RzIHByb2Nlc3MgSURzIG9ubHlcbiIKIiAgICAgIC1yXHRyZXN0cmljdCBvdXRwdXQgdG8gcnVubmluZyBqb2JzXG4iCiIgICAgICAtc1x0cmVzdHJpY3Qgb3V0cHV0IHRvIHN0b3BwZWQgam9ic1xuIgoiICAgIFxuIgoiICAgIElmIC14IGlzIHN1cHBsaWVkLCBDT01NQU5EIGlzIHJ1biBhZnRlciBhbGwgam9iIHNwZWNpZmljYXRpb25zIHRoYXRcbiIKIiAgICBhcHBlYXIgaW4gQVJHUyBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aCB0aGUgcHJvY2VzcyBJRCBvZiB0aGF0IGpvYidzXG4iCiIgICAgcHJvY2VzcyBncm91cCBsZWFkZXIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbiBvciBhbiBlcnJvciBvY2N1cnMuXG4iCiIgICAgSWYgLXggaXMgdXNlZCwgcmV0dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgQ09NTUFORC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzo4NzkKbXNnaWQgIiIKIlJlbW92ZSBqb2JzIGZyb20gY3VycmVudCBzaGVsbC5cbiIKIiAgICBcbiIKIiAgICBSZW1vdmVzIGVhY2ggSk9CU1BFQyBhcmd1bWVudCBmcm9tIHRoZSB0YWJsZSBvZiBhY3RpdmUgam9icy4gIFdpdGhvdXRcbiIKIiAgICBhbnkgSk9CU1BFQ3MsIHRoZSBzaGVsbCB1c2VzIGl0cyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgam9iLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYVx0cmVtb3ZlIGFsbCBqb2JzIGlmIEpPQlNQRUMgaXMgbm90IHN1cHBsaWVkXG4iCiIgICAgICAtaFx0bWFyayBlYWNoIEpPQlNQRUMgc28gdGhhdCBTSUdIVVAgaXMgbm90IHNlbnQgdG8gdGhlIGpvYiBpZiB0aGVcbiIKIiAgICBcdHNoZWxsIHJlY2VpdmVzIGEgU0lHSFVQXG4iCiIgICAgICAtclx0cmVtb3ZlIG9ubHkgcnVubmluZyBqb2JzXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBvciBKT0JTUEVDIGlzIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjg5OAptc2dpZCAiIgoiU2VuZCBhIHNpZ25hbCB0byBhIGpvYi5cbiIKIiAgICBcbiIKIiAgICBTZW5kIHRoZSBwcm9jZXNzZXMgaWRlbnRpZmllZCBieSBQSUQgb3IgSk9CU1BFQyB0aGUgc2lnbmFsIG5hbWVkIGJ5XG4iCiIgICAgU0lHU1BFQyBvciBTSUdOVU0uICBJZiBuZWl0aGVyIFNJR1NQRUMgbm9yIFNJR05VTSBpcyBwcmVzZW50LCB0aGVuXG4iCiIgICAgU0lHVEVSTSBpcyBhc3N1bWVkLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtcyBzaWdcdFNJRyBpcyBhIHNpZ25hbCBuYW1lXG4iCiIgICAgICAtbiBzaWdcdFNJRyBpcyBhIHNpZ25hbCBudW1iZXJcbiIKIiAgICAgIC1sXHRsaXN0IHRoZSBzaWduYWwgbmFtZXM7IGlmIGFyZ3VtZW50cyBmb2xsb3cgYC1sJyB0aGV5IGFyZVxuIgoiICAgIFx0YXNzdW1lZCB0byBiZSBzaWduYWwgbnVtYmVycyBmb3Igd2hpY2ggbmFtZXMgc2hvdWxkIGJlIGxpc3RlZFxuIgoiICAgIFxuIgoiICAgIEtpbGwgaXMgYSBzaGVsbCBidWlsdGluIGZvciB0d28gcmVhc29uczogaXQgYWxsb3dzIGpvYiBJRHMgdG8gYmUgdXNlZFxuIgoiICAgIGluc3RlYWQgb2YgcHJvY2VzcyBJRHMsIGFuZCBhbGxvd3MgcHJvY2Vzc2VzIHRvIGJlIGtpbGxlZCBpZiB0aGUgbGltaXRcbiIKIiAgICBvbiBwcm9jZXNzZXMgdGhhdCB5b3UgY2FuIGNyZWF0ZSBpcyByZWFjaGVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjkyMQptc2dpZCAiIgoiRXZhbHVhdGUgYXJpdGhtZXRpYyBleHByZXNzaW9ucy5cbiIKIiAgICBcbiIKIiAgICBFdmFsdWF0ZSBlYWNoIEFSRyBhcyBhbiBhcml0aG1ldGljIGV4cHJlc3Npb24uICBFdmFsdWF0aW9uIGlzIGRvbmUgaW5cbiIKIiAgICBmaXhlZC13aWR0aCBpbnRlZ2VycyB3aXRoIG5vIGNoZWNrIGZvciBvdmVyZmxvdywgdGhvdWdoIGRpdmlzaW9uIGJ5IDBcbiIKIiAgICBpcyB0cmFwcGVkIGFuZCBmbGFnZ2VkIGFzIGFuIGVycm9yLiAgVGhlIGZvbGxvd2luZyBsaXN0IG9mIG9wZXJhdG9ycyBpc1xuIgoiICAgIGdyb3VwZWQgaW50byBsZXZlbHMgb2YgZXF1YWwtcHJlY2VkZW5jZSBvcGVyYXRvcnMuICBUaGUgbGV2ZWxzIGFyZSAiCiJsaXN0ZWRcbiIKIiAgICBpbiBvcmRlciBvZiBkZWNyZWFzaW5nIHByZWNlZGVuY2UuXG4iCiIgICAgXG4iCiIgICAgXHRpZCsrLCBpZC0tXHR2YXJpYWJsZSBwb3N0LWluY3JlbWVudCwgcG9zdC1kZWNyZW1lbnRcbiIKIiAgICBcdCsraWQsIC0taWRcdHZhcmlhYmxlIHByZS1pbmNyZW1lbnQsIHByZS1kZWNyZW1lbnRcbiIKIiAgICBcdC0sICtcdFx0dW5hcnkgbWludXMsIHBsdXNcbiIKIiAgICBcdCEsIH5cdFx0bG9naWNhbCBhbmQgYml0d2lzZSBuZWdhdGlvblxuIgoiICAgIFx0KipcdFx0ZXhwb25lbnRpYXRpb25cbiIKIiAgICBcdCosIC8sICVcdFx0bXVsdGlwbGljYXRpb24sIGRpdmlzaW9uLCByZW1haW5kZXJcbiIKIiAgICBcdCssIC1cdFx0YWRkaXRpb24sIHN1YnRyYWN0aW9uXG4iCiIgICAgXHQ8PCwgPj5cdFx0bGVmdCBhbmQgcmlnaHQgYml0d2lzZSBzaGlmdHNcbiIKIiAgICBcdDw9LCA+PSwgPCwgPlx0Y29tcGFyaXNvblxuIgoiICAgIFx0PT0sICE9XHRcdGVxdWFsaXR5LCBpbmVxdWFsaXR5XG4iCiIgICAgXHQmXHRcdGJpdHdpc2UgQU5EXG4iCiIgICAgXHReXHRcdGJpdHdpc2UgWE9SXG4iCiIgICAgXHR8XHRcdGJpdHdpc2UgT1JcbiIKIiAgICBcdCYmXHRcdGxvZ2ljYWwgQU5EXG4iCiIgICAgXHR8fFx0XHRsb2dpY2FsIE9SXG4iCiIgICAgXHRleHByID8gZXhwciA6IGV4cHJcbiIKIiAgICBcdFx0XHRjb25kaXRpb25hbCBvcGVyYXRvclxuIgoiICAgIFx0PSwgKj0sIC89LCAlPSxcbiIKIiAgICBcdCs9LCAtPSwgPDw9LCA+Pj0sXG4iCiIgICAgXHQmPSwgXj0sIHw9XHRhc3NpZ25tZW50XG4iCiIgICAgXG4iCiIgICAgU2hlbGwgdmFyaWFibGVzIGFyZSBhbGxvd2VkIGFzIG9wZXJhbmRzLiAgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlXG4iCiIgICAgaXMgcmVwbGFjZWQgYnkgaXRzIHZhbHVlIChjb2VyY2VkIHRvIGEgZml4ZWQtd2lkdGggaW50ZWdlcikgd2l0aGluXG4iCiIgICAgYW4gZXhwcmVzc2lvbi4gIFRoZSB2YXJpYWJsZSBuZWVkIG5vdCBoYXZlIGl0cyBpbnRlZ2VyIGF0dHJpYnV0ZVxuIgoiICAgIHR1cm5lZCBvbiB0byBiZSB1c2VkIGluIGFuIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgT3BlcmF0b3JzIGFyZSBldmFsdWF0ZWQgaW4gb3JkZXIgb2YgcHJlY2VkZW5jZS4gIFN1Yi1leHByZXNzaW9ucyBpblxuIgoiICAgIHBhcmVudGhlc2VzIGFyZSBldmFsdWF0ZWQgZmlyc3QgYW5kIG1heSBvdmVycmlkZSB0aGUgcHJlY2VkZW5jZVxuIgoiICAgIHJ1bGVzIGFib3ZlLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIElmIHRoZSBsYXN0IEFSRyBldmFsdWF0ZXMgdG8gMCwgbGV0IHJldHVybnMgMTsgbGV0IHJldHVybnMgMCBvdGhlcndpc2UuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjk2Ngptc2dpZCAiIgoiUmVhZCBhIGxpbmUgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQgYW5kIHNwbGl0IGl0IGludG8gZmllbGRzLlxuIgoiICAgIFxuIgoiICAgIFJlYWRzIGEgc2luZ2xlIGxpbmUgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQsIG9yIGZyb20gZmlsZSBkZXNjcmlwdG9yIEZEXG4iCiIgICAgaWYgdGhlIC11IG9wdGlvbiBpcyBzdXBwbGllZC4gIFRoZSBsaW5lIGlzIHNwbGl0IGludG8gZmllbGRzIGFzIHdpdGggIgoid29yZFxuIgoiICAgIHNwbGl0dGluZywgYW5kIHRoZSBmaXJzdCB3b3JkIGlzIGFzc2lnbmVkIHRvIHRoZSBmaXJzdCBOQU1FLCB0aGUgc2Vjb25kXG4iCiIgICAgd29yZCB0byB0aGUgc2Vjb25kIE5BTUUsIGFuZCBzbyBvbiwgd2l0aCBhbnkgbGVmdG92ZXIgd29yZHMgYXNzaWduZWQgdG9cbiIKIiAgICB0aGUgbGFzdCBOQU1FLiAgT25seSB0aGUgY2hhcmFjdGVycyBmb3VuZCBpbiAkSUZTIGFyZSByZWNvZ25pemVkIGFzICIKIndvcmRcbiIKIiAgICBkZWxpbWl0ZXJzLlxuIgoiICAgIFxuIgoiICAgIElmIG5vIE5BTUVzIGFyZSBzdXBwbGllZCwgdGhlIGxpbmUgcmVhZCBpcyBzdG9yZWQgaW4gdGhlIFJFUExZICIKInZhcmlhYmxlLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYSBhcnJheVx0YXNzaWduIHRoZSB3b3JkcyByZWFkIHRvIHNlcXVlbnRpYWwgaW5kaWNlcyBvZiB0aGUgYXJyYXlcbiIKIiAgICBcdFx0dmFyaWFibGUgQVJSQVksIHN0YXJ0aW5nIGF0IHplcm9cbiIKIiAgICAgIC1kIGRlbGltXHRjb250aW51ZSB1bnRpbCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIERFTElNIGlzIHJlYWQsIHJhdGhlclxuIgoiICAgIFx0XHR0aGFuIG5ld2xpbmVcbiIKIiAgICAgIC1lXHRcdHVzZSBSZWFkbGluZSB0byBvYnRhaW4gdGhlIGxpbmUgaW4gYW4gaW50ZXJhY3RpdmUgc2hlbGxcbiIKIiAgICAgIC1pIHRleHRcdFVzZSBURVhUIGFzIHRoZSBpbml0aWFsIHRleHQgZm9yIFJlYWRsaW5lXG4iCiIgICAgICAtbiBuY2hhcnNcdHJldHVybiBhZnRlciByZWFkaW5nIE5DSEFSUyBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHdhaXRpbmdcbiIKIiAgICBcdFx0Zm9yIGEgbmV3bGluZVxuIgoiICAgICAgLXAgcHJvbXB0XHRvdXRwdXQgdGhlIHN0cmluZyBQUk9NUFQgd2l0aG91dCBhIHRyYWlsaW5nIG5ld2xpbmUgYmVmb3JlXG4iCiIgICAgXHRcdGF0dGVtcHRpbmcgdG8gcmVhZFxuIgoiICAgICAgLXJcdFx0ZG8gbm90IGFsbG93IGJhY2tzbGFzaGVzIHRvIGVzY2FwZSBhbnkgY2hhcmFjdGVyc1xuIgoiICAgICAgLXNcdFx0ZG8gbm90IGVjaG8gaW5wdXQgY29taW5nIGZyb20gYSB0ZXJtaW5hbFxuIgoiICAgICAgLXQgdGltZW91dFx0dGltZSBvdXQgYW5kIHJldHVybiBmYWlsdXJlIGlmIGEgY29tcGxldGUgbGluZSBvZiBpbnB1dCAiCiJpc1xuIgoiICAgIFx0XHRub3QgcmVhZCB3aXRoaW50IFRJTUVPVVQgc2Vjb25kcy4gIFRoZSB2YWx1ZSBvZiB0aGUgVE1PVVRcbiIKIiAgICBcdFx0dmFyaWFibGUgaXMgdGhlIGRlZmF1bHQgdGltZW91dC4gIFRJTUVPVVQgbWF5IGJlIGFcbiIKIiAgICBcdFx0ZnJhY3Rpb25hbCBudW1iZXIuICBJZiBUSU1FT1VUIGlzIDAsIHJlYWQgcmV0dXJucyBzdWNjZXNzIG9ubHlcbiIKIiAgICBcdFx0aWYgaW5wdXQgaXMgYXZhaWxhYmxlIG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBkZXNjcmlwdG9yLiAgVGhlXG4iCiIgICAgXHRcdGV4aXQgc3RhdHVzIGlzIGdyZWF0ZXIgdGhhbiAxMjggaWYgdGhlIHRpbWVvdXQgaXMgZXhjZWVkZWRcbiIKIiAgICAgIC11IGZkXHRcdHJlYWQgZnJvbSBmaWxlIGRlc2NyaXB0b3IgRkQgaW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgaW5wdXRcbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBUaGUgcmV0dXJuIGNvZGUgaXMgemVybywgdW5sZXNzIGVuZC1vZi1maWxlIGlzIGVuY291bnRlcmVkLCByZWFkIHRpbWVzICIKIm91dCxcbiIKIiAgICBvciBhbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciBpcyBzdXBwbGllZCBhcyB0aGUgYXJndW1lbnQgdG8gLXUuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTAwNgptc2dpZCAiIgoiUmV0dXJuIGZyb20gYSBzaGVsbCBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBDYXVzZXMgYSBmdW5jdGlvbiBvciBzb3VyY2VkIHNjcmlwdCB0byBleGl0IHdpdGggdGhlIHJldHVybiB2YWx1ZVxuIgoiICAgIHNwZWNpZmllZCBieSBOLiAgSWYgTiBpcyBvbWl0dGVkLCB0aGUgcmV0dXJuIHN0YXR1cyBpcyB0aGF0IG9mIHRoZVxuIgoiICAgIGxhc3QgY29tbWFuZCBleGVjdXRlZCB3aXRoaW4gdGhlIGZ1bmN0aW9uIG9yIHNjcmlwdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIE4sIG9yIGZhaWx1cmUgaWYgdGhlIHNoZWxsIGlzIG5vdCBleGVjdXRpbmcgYSBmdW5jdGlvbiBvciBzY3JpcHQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTAxOQptc2dpZCAiIgoiU2V0IG9yIHVuc2V0IHZhbHVlcyBvZiBzaGVsbCBvcHRpb25zIGFuZCBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuXG4iCiIgICAgXG4iCiIgICAgQ2hhbmdlIHRoZSB2YWx1ZSBvZiBzaGVsbCBhdHRyaWJ1dGVzIGFuZCBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIG9yXG4iCiIgICAgZGlzcGxheSB0aGUgbmFtZXMgYW5kIHZhbHVlcyBvZiBzaGVsbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1hICBNYXJrIHZhcmlhYmxlcyB3aGljaCBhcmUgbW9kaWZpZWQgb3IgY3JlYXRlZCBmb3IgZXhwb3J0LlxuIgoiICAgICAgLWIgIE5vdGlmeSBvZiBqb2IgdGVybWluYXRpb24gaW1tZWRpYXRlbHkuXG4iCiIgICAgICAtZSAgRXhpdCBpbW1lZGlhdGVseSBpZiBhIGNvbW1hbmQgZXhpdHMgd2l0aCBhIG5vbi16ZXJvIHN0YXR1cy5cbiIKIiAgICAgIC1mICBEaXNhYmxlIGZpbGUgbmFtZSBnZW5lcmF0aW9uIChnbG9iYmluZykuXG4iCiIgICAgICAtaCAgUmVtZW1iZXIgdGhlIGxvY2F0aW9uIG9mIGNvbW1hbmRzIGFzIHRoZXkgYXJlIGxvb2tlZCB1cC5cbiIKIiAgICAgIC1rICBBbGwgYXNzaWdubWVudCBhcmd1bWVudHMgYXJlIHBsYWNlZCBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIGFcbiIKIiAgICAgICAgICBjb21tYW5kLCBub3QganVzdCB0aG9zZSB0aGF0IHByZWNlZGUgdGhlIGNvbW1hbmQgbmFtZS5cbiIKIiAgICAgIC1tICBKb2IgY29udHJvbCBpcyBlbmFibGVkLlxuIgoiICAgICAgLW4gIFJlYWQgY29tbWFuZHMgYnV0IGRvIG5vdCBleGVjdXRlIHRoZW0uXG4iCiIgICAgICAtbyBvcHRpb24tbmFtZVxuIgoiICAgICAgICAgIFNldCB0aGUgdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byBvcHRpb24tbmFtZTpcbiIKIiAgICAgICAgICAgICAgYWxsZXhwb3J0ICAgIHNhbWUgYXMgLWFcbiIKIiAgICAgICAgICAgICAgYnJhY2VleHBhbmQgIHNhbWUgYXMgLUJcbiIKIiAgICAgICAgICAgICAgZW1hY3MgICAgICAgIHVzZSBhbiBlbWFjcy1zdHlsZSBsaW5lIGVkaXRpbmcgaW50ZXJmYWNlXG4iCiIgICAgICAgICAgICAgIGVycmV4aXQgICAgICBzYW1lIGFzIC1lXG4iCiIgICAgICAgICAgICAgIGVycnRyYWNlICAgICBzYW1lIGFzIC1FXG4iCiIgICAgICAgICAgICAgIGZ1bmN0cmFjZSAgICBzYW1lIGFzIC1UXG4iCiIgICAgICAgICAgICAgIGhhc2hhbGwgICAgICBzYW1lIGFzIC1oXG4iCiIgICAgICAgICAgICAgIGhpc3RleHBhbmQgICBzYW1lIGFzIC1IXG4iCiIgICAgICAgICAgICAgIGhpc3RvcnkgICAgICBlbmFibGUgY29tbWFuZCBoaXN0b3J5XG4iCiIgICAgICAgICAgICAgIGlnbm9yZWVvZiAgICB0aGUgc2hlbGwgd2lsbCBub3QgZXhpdCB1cG9uIHJlYWRpbmcgRU9GXG4iCiIgICAgICAgICAgICAgIGludGVyYWN0aXZlLWNvbW1lbnRzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdyBjb21tZW50cyB0byBhcHBlYXIgaW4gaW50ZXJhY3RpdmUgY29tbWFuZHNcbiIKIiAgICAgICAgICAgICAga2V5d29yZCAgICAgIHNhbWUgYXMgLWtcbiIKIiAgICAgICAgICAgICAgbW9uaXRvciAgICAgIHNhbWUgYXMgLW1cbiIKIiAgICAgICAgICAgICAgbm9jbG9iYmVyICAgIHNhbWUgYXMgLUNcbiIKIiAgICAgICAgICAgICAgbm9leGVjICAgICAgIHNhbWUgYXMgLW5cbiIKIiAgICAgICAgICAgICAgbm9nbG9iICAgICAgIHNhbWUgYXMgLWZcbiIKIiAgICAgICAgICAgICAgbm9sb2cgICAgICAgIGN1cnJlbnRseSBhY2NlcHRlZCBidXQgaWdub3JlZFxuIgoiICAgICAgICAgICAgICBub3RpZnkgICAgICAgc2FtZSBhcyAtYlxuIgoiICAgICAgICAgICAgICBub3Vuc2V0ICAgICAgc2FtZSBhcyAtdVxuIgoiICAgICAgICAgICAgICBvbmVjbWQgICAgICAgc2FtZSBhcyAtdFxuIgoiICAgICAgICAgICAgICBwaHlzaWNhbCAgICAgc2FtZSBhcyAtUFxuIgoiICAgICAgICAgICAgICBwaXBlZmFpbCAgICAgdGhlIHJldHVybiB2YWx1ZSBvZiBhIHBpcGVsaW5lIGlzIHRoZSBzdGF0dXMgb2ZcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBsYXN0IGNvbW1hbmQgdG8gZXhpdCB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLFxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgemVybyBpZiBubyBjb21tYW5kIGV4aXRlZCB3aXRoIGEgbm9uLXplcm8gIgoic3RhdHVzXG4iCiIgICAgICAgICAgICAgIHBvc2l4ICAgICAgICBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGJhc2ggd2hlcmUgdGhlIGRlZmF1bHRcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBkaWZmZXJzIGZyb20gdGhlIFBvc2l4IHN0YW5kYXJkIHRvXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB0aGUgc3RhbmRhcmRcbiIKIiAgICAgICAgICAgICAgcHJpdmlsZWdlZCAgIHNhbWUgYXMgLXBcbiIKIiAgICAgICAgICAgICAgdmVyYm9zZSAgICAgIHNhbWUgYXMgLXZcbiIKIiAgICAgICAgICAgICAgdmkgICAgICAgICAgIHVzZSBhIHZpLXN0eWxlIGxpbmUgZWRpdGluZyBpbnRlcmZhY2VcbiIKIiAgICAgICAgICAgICAgeHRyYWNlICAgICAgIHNhbWUgYXMgLXhcbiIKIiAgICAgIC1wICBUdXJuZWQgb24gd2hlbmV2ZXIgdGhlIHJlYWwgYW5kIGVmZmVjdGl2ZSB1c2VyIGlkcyBkbyBub3QgbWF0Y2guXG4iCiIgICAgICAgICAgRGlzYWJsZXMgcHJvY2Vzc2luZyBvZiB0aGUgJEVOViBmaWxlIGFuZCBpbXBvcnRpbmcgb2Ygc2hlbGxcbiIKIiAgICAgICAgICBmdW5jdGlvbnMuICBUdXJuaW5nIHRoaXMgb3B0aW9uIG9mZiBjYXVzZXMgdGhlIGVmZmVjdGl2ZSB1aWQgYW5kXG4iCiIgICAgICAgICAgZ2lkIHRvIGJlIHNldCB0byB0aGUgcmVhbCB1aWQgYW5kIGdpZC5cbiIKIiAgICAgIC10ICBFeGl0IGFmdGVyIHJlYWRpbmcgYW5kIGV4ZWN1dGluZyBvbmUgY29tbWFuZC5cbiIKIiAgICAgIC11ICBUcmVhdCB1bnNldCB2YXJpYWJsZXMgYXMgYW4gZXJyb3Igd2hlbiBzdWJzdGl0dXRpbmcuXG4iCiIgICAgICAtdiAgUHJpbnQgc2hlbGwgaW5wdXQgbGluZXMgYXMgdGhleSBhcmUgcmVhZC5cbiIKIiAgICAgIC14ICBQcmludCBjb21tYW5kcyBhbmQgdGhlaXIgYXJndW1lbnRzIGFzIHRoZXkgYXJlIGV4ZWN1dGVkLlxuIgoiICAgICAgLUIgIHRoZSBzaGVsbCB3aWxsIHBlcmZvcm0gYnJhY2UgZXhwYW5zaW9uXG4iCiIgICAgICAtQyAgSWYgc2V0LCBkaXNhbGxvdyBleGlzdGluZyByZWd1bGFyIGZpbGVzIHRvIGJlIG92ZXJ3cml0dGVuXG4iCiIgICAgICAgICAgYnkgcmVkaXJlY3Rpb24gb2Ygb3V0cHV0LlxuIgoiICAgICAgLUUgIElmIHNldCwgdGhlIEVSUiB0cmFwIGlzIGluaGVyaXRlZCBieSBzaGVsbCBmdW5jdGlvbnMuXG4iCiIgICAgICAtSCAgRW5hYmxlICEgc3R5bGUgaGlzdG9yeSBzdWJzdGl0dXRpb24uICBUaGlzIGZsYWcgaXMgb25cbiIKIiAgICAgICAgICBieSBkZWZhdWx0IHdoZW4gdGhlIHNoZWxsIGlzIGludGVyYWN0aXZlLlxuIgoiICAgICAgLVAgIElmIHNldCwgZG8gbm90IGZvbGxvdyBzeW1ib2xpYyBsaW5rcyB3aGVuIGV4ZWN1dGluZyBjb21tYW5kc1xuIgoiICAgICAgICAgIHN1Y2ggYXMgY2Qgd2hpY2ggY2hhbmdlIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiIKIiAgICAgIC1UICBJZiBzZXQsIHRoZSBERUJVRyB0cmFwIGlzIGluaGVyaXRlZCBieSBzaGVsbCBmdW5jdGlvbnMuXG4iCiIgICAgICAtICAgQXNzaWduIGFueSByZW1haW5pbmcgYXJndW1lbnRzIHRvIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuXG4iCiIgICAgICAgICAgVGhlIC14IGFuZCAtdiBvcHRpb25zIGFyZSB0dXJuZWQgb2ZmLlxuIgoiICAgIFxuIgoiICAgIFVzaW5nICsgcmF0aGVyIHRoYW4gLSBjYXVzZXMgdGhlc2UgZmxhZ3MgdG8gYmUgdHVybmVkIG9mZi4gIFRoZVxuIgoiICAgIGZsYWdzIGNhbiBhbHNvIGJlIHVzZWQgdXBvbiBpbnZvY2F0aW9uIG9mIHRoZSBzaGVsbC4gIFRoZSBjdXJyZW50XG4iCiIgICAgc2V0IG9mIGZsYWdzIG1heSBiZSBmb3VuZCBpbiAkLS4gIFRoZSByZW1haW5pbmcgbiBBUkdzIGFyZSBwb3NpdGlvbmFsXG4iCiIgICAgcGFyYW1ldGVycyBhbmQgYXJlIGFzc2lnbmVkLCBpbiBvcmRlciwgdG8gJDEsICQyLCAuLiAkbi4gIElmIG5vXG4iCiIgICAgQVJHcyBhcmUgZ2l2ZW4sIGFsbCBzaGVsbCB2YXJpYWJsZXMgYXJlIHByaW50ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMTAxCm1zZ2lkICIiCiJVbnNldCB2YWx1ZXMgYW5kIGF0dHJpYnV0ZXMgb2Ygc2hlbGwgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgRm9yIGVhY2ggTkFNRSwgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHZhcmlhYmxlIG9yIGZ1bmN0aW9uLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtZlx0dHJlYXQgZWFjaCBOQU1FIGFzIGEgc2hlbGwgZnVuY3Rpb25cbiIKIiAgICAgIC12XHR0cmVhdCBlYWNoIE5BTUUgYXMgYSBzaGVsbCB2YXJpYWJsZVxuIgoiICAgIFxuIgoiICAgIFdpdGhvdXQgb3B0aW9ucywgdW5zZXQgZmlyc3QgdHJpZXMgdG8gdW5zZXQgYSB2YXJpYWJsZSwgYW5kIGlmIHRoYXQgIgoiZmFpbHMsXG4iCiIgICAgdHJpZXMgdG8gdW5zZXQgYSBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBTb21lIHZhcmlhYmxlcyBjYW5ub3QgYmUgdW5zZXQ7IGFsc28gc2VlIGByZWFkb25seScuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbiBvciBhIE5BTUUgaXMgcmVhZC1vbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExMjEKbXNnaWQgIiIKIlNldCBleHBvcnQgYXR0cmlidXRlIGZvciBzaGVsbCB2YXJpYWJsZXMuXG4iCiIgICAgXG4iCiIgICAgTWFya3MgZWFjaCBOQU1FIGZvciBhdXRvbWF0aWMgZXhwb3J0IHRvIHRoZSBlbnZpcm9ubWVudCBvZiBzdWJzZXF1ZW50bHlcbiIKIiAgICBleGVjdXRlZCBjb21tYW5kcy4gIElmIFZBTFVFIGlzIHN1cHBsaWVkLCBhc3NpZ24gVkFMVUUgYmVmb3JlICIKImV4cG9ydGluZy5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWZcdHJlZmVyIHRvIHNoZWxsIGZ1bmN0aW9uc1xuIgoiICAgICAgLW5cdHJlbW92ZSB0aGUgZXhwb3J0IHByb3BlcnR5IGZyb20gZWFjaCBOQU1FXG4iCiIgICAgICAtcFx0ZGlzcGxheSBhIGxpc3Qgb2YgYWxsIGV4cG9ydGVkIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zXG4iCiIgICAgXG4iCiIgICAgQW4gYXJndW1lbnQgb2YgYC0tJyBkaXNhYmxlcyBmdXJ0aGVyIG9wdGlvbiBwcm9jZXNzaW5nLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgTkFNRSBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExNDAKbXNnaWQgIiIKIk1hcmsgc2hlbGwgdmFyaWFibGVzIGFzIHVuY2hhbmdlYWJsZS5cbiIKIiAgICBcbiIKIiAgICBNYXJrIGVhY2ggTkFNRSBhcyByZWFkLW9ubHk7IHRoZSB2YWx1ZXMgb2YgdGhlc2UgTkFNRXMgbWF5IG5vdCBiZVxuIgoiICAgIGNoYW5nZWQgYnkgc3Vic2VxdWVudCBhc3NpZ25tZW50LiAgSWYgVkFMVUUgaXMgc3VwcGxpZWQsIGFzc2lnbiBWQUxVRVxuIgoiICAgIGJlZm9yZSBtYXJraW5nIGFzIHJlYWQtb25seS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWFcdHJlZmVyIHRvIGluZGV4ZWQgYXJyYXkgdmFyaWFibGVzXG4iCiIgICAgICAtQVx0cmVmZXIgdG8gYXNzb2NpYXRpdmUgYXJyYXkgdmFyaWFibGVzXG4iCiIgICAgICAtZlx0cmVmZXIgdG8gc2hlbGwgZnVuY3Rpb25zXG4iCiIgICAgICAtcFx0ZGlzcGxheSBhIGxpc3Qgb2YgYWxsIHJlYWRvbmx5IHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zXG4iCiIgICAgXG4iCiIgICAgQW4gYXJndW1lbnQgb2YgYC0tJyBkaXNhYmxlcyBmdXJ0aGVyIG9wdGlvbiBwcm9jZXNzaW5nLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgTkFNRSBpcyBpbnZhbGlkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjExNjEKbXNnaWQgIiIKIlNoaWZ0IHBvc2l0aW9uYWwgcGFyYW1ldGVycy5cbiIKIiAgICBcbiIKIiAgICBSZW5hbWUgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyAkTisxLCROKzIgLi4uIHRvICQxLCQyIC4uLiAgSWYgTiBpc1xuIgoiICAgIG5vdCBnaXZlbiwgaXQgaXMgYXNzdW1lZCB0byBiZSAxLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTiBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gJCMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTE3MyBidWlsdGlucy5jOjExODgKbXNnaWQgIiIKIkV4ZWN1dGUgY29tbWFuZHMgZnJvbSBhIGZpbGUgaW4gdGhlIGN1cnJlbnQgc2hlbGwuXG4iCiIgICAgXG4iCiIgICAgUmVhZCBhbmQgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIEZJTEVOQU1FIGluIHRoZSBjdXJyZW50IHNoZWxsLiAgVGhlXG4iCiIgICAgZW50cmllcyBpbiAkUEFUSCBhcmUgdXNlZCB0byBmaW5kIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBGSUxFTkFNRS5cbiIKIiAgICBJZiBhbnkgQVJHVU1FTlRTIGFyZSBzdXBwbGllZCwgdGhleSBiZWNvbWUgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVyc1xuIgoiICAgIHdoZW4gRklMRU5BTUUgaXMgZXhlY3V0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQgaW4gRklMRU5BTUU7IGZhaWxzIGlmXG4iCiIgICAgRklMRU5BTUUgY2Fubm90IGJlIHJlYWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTIwNAptc2dpZCAiIgoiU3VzcGVuZCBzaGVsbCBleGVjdXRpb24uXG4iCiIgICAgXG4iCiIgICAgU3VzcGVuZCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgc2hlbGwgdW50aWwgaXQgcmVjZWl2ZXMgYSBTSUdDT05UIHNpZ25hbC5cbiIKIiAgICBVbmxlc3MgZm9yY2VkLCBsb2dpbiBzaGVsbHMgY2Fubm90IGJlIHN1c3BlbmRlZC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWZcdGZvcmNlIHRoZSBzdXNwZW5kLCBldmVuIGlmIHRoZSBzaGVsbCBpcyBhIGxvZ2luIHNoZWxsXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBqb2IgY29udHJvbCBpcyBub3QgZW5hYmxlZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTIyMAptc2dpZCAiIgoiRXZhbHVhdGUgY29uZGl0aW9uYWwgZXhwcmVzc2lvbi5cbiIKIiAgICBcbiIKIiAgICBFeGl0cyB3aXRoIGEgc3RhdHVzIG9mIDAgKHRydWUpIG9yIDEgKGZhbHNlKSBkZXBlbmRpbmcgb25cbiIKIiAgICB0aGUgZXZhbHVhdGlvbiBvZiBFWFBSLiAgRXhwcmVzc2lvbnMgbWF5IGJlIHVuYXJ5IG9yIGJpbmFyeS4gIFVuYXJ5XG4iCiIgICAgZXhwcmVzc2lvbnMgYXJlIG9mdGVuIHVzZWQgdG8gZXhhbWluZSB0aGUgc3RhdHVzIG9mIGEgZmlsZS4gIFRoZXJlXG4iCiIgICAgYXJlIHN0cmluZyBvcGVyYXRvcnMgYXMgd2VsbCwgYW5kIG51bWVyaWMgY29tcGFyaXNvbiBvcGVyYXRvcnMuXG4iCiIgICAgXG4iCiIgICAgRmlsZSBvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAtYSBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzLlxuIgoiICAgICAgLWIgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGJsb2NrIHNwZWNpYWwuXG4iCiIgICAgICAtYyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgY2hhcmFjdGVyIHNwZWNpYWwuXG4iCiIgICAgICAtZCBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBkaXJlY3RvcnkuXG4iCiIgICAgICAtZSBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzLlxuIgoiICAgICAgLWYgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGV4aXN0cyBhbmQgaXMgYSByZWd1bGFyIGZpbGUuXG4iCiIgICAgICAtZyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgc2V0LWdyb3VwLWlkLlxuIgoiICAgICAgLWggRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGEgc3ltYm9saWMgbGluay5cbiIKIiAgICAgIC1MIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyBhIHN5bWJvbGljIGxpbmsuXG4iCiIgICAgICAtayBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaGFzIGl0cyBgc3RpY2t5JyBiaXQgc2V0LlxuIgoiICAgICAgLXAgRklMRSAgICAgICAgVHJ1ZSBpZiBmaWxlIGlzIGEgbmFtZWQgcGlwZS5cbiIKIiAgICAgIC1yIEZJTEUgICAgICAgIFRydWUgaWYgZmlsZSBpcyByZWFkYWJsZSBieSB5b3UuXG4iCiIgICAgICAtcyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgZXhpc3RzIGFuZCBpcyBub3QgZW1wdHkuXG4iCiIgICAgICAtUyBGSUxFICAgICAgICBUcnVlIGlmIGZpbGUgaXMgYSBzb2NrZXQuXG4iCiIgICAgICAtdCBGRCAgICAgICAgICBUcnVlIGlmIEZEIGlzIG9wZW5lZCBvbiBhIHRlcm1pbmFsLlxuIgoiICAgICAgLXUgRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBzZXQtdXNlci1pZC5cbiIKIiAgICAgIC13IEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgd3JpdGFibGUgYnkgeW91LlxuIgoiICAgICAgLXggRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBleGVjdXRhYmxlIGJ5IHlvdS5cbiIKIiAgICAgIC1PIEZJTEUgICAgICAgIFRydWUgaWYgdGhlIGZpbGUgaXMgZWZmZWN0aXZlbHkgb3duZWQgYnkgeW91LlxuIgoiICAgICAgLUcgRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBpcyBlZmZlY3RpdmVseSBvd25lZCBieSB5b3VyIGdyb3VwLlxuIgoiICAgICAgLU4gRklMRSAgICAgICAgVHJ1ZSBpZiB0aGUgZmlsZSBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZSBpdCB3YXMgbGFzdCAiCiJyZWFkLlxuIgoiICAgIFxuIgoiICAgICAgRklMRTEgLW50IEZJTEUyICBUcnVlIGlmIGZpbGUxIGlzIG5ld2VyIHRoYW4gZmlsZTIgKGFjY29yZGluZyB0b1xuIgoiICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gZGF0ZSkuXG4iCiIgICAgXG4iCiIgICAgICBGSUxFMSAtb3QgRklMRTIgIFRydWUgaWYgZmlsZTEgaXMgb2xkZXIgdGhhbiBmaWxlMi5cbiIKIiAgICBcbiIKIiAgICAgIEZJTEUxIC1lZiBGSUxFMiAgVHJ1ZSBpZiBmaWxlMSBpcyBhIGhhcmQgbGluayB0byBmaWxlMi5cbiIKIiAgICBcbiIKIiAgICBTdHJpbmcgb3BlcmF0b3JzOlxuIgoiICAgIFxuIgoiICAgICAgLXogU1RSSU5HICAgICAgVHJ1ZSBpZiBzdHJpbmcgaXMgZW1wdHkuXG4iCiIgICAgXG4iCiIgICAgICAtbiBTVFJJTkdcbiIKIiAgICAgICAgIFNUUklORyAgICAgIFRydWUgaWYgc3RyaW5nIGlzIG5vdCBlbXB0eS5cbiIKIiAgICBcbiIKIiAgICAgIFNUUklORzEgPSBTVFJJTkcyXG4iCiIgICAgICAgICAgICAgICAgICAgICBUcnVlIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbC5cbiIKIiAgICAgIFNUUklORzEgIT0gU1RSSU5HMlxuIgoiICAgICAgICAgICAgICAgICAgICAgVHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IGVxdWFsLlxuIgoiICAgICAgU1RSSU5HMSA8IFNUUklORzJcbiIKIiAgICAgICAgICAgICAgICAgICAgIFRydWUgaWYgU1RSSU5HMSBzb3J0cyBiZWZvcmUgU1RSSU5HMiAiCiJsZXhpY29ncmFwaGljYWxseS5cbiIKIiAgICAgIFNUUklORzEgPiBTVFJJTkcyXG4iCiIgICAgICAgICAgICAgICAgICAgICBUcnVlIGlmIFNUUklORzEgc29ydHMgYWZ0ZXIgU1RSSU5HMiBsZXhpY29ncmFwaGljYWxseS5cbiIKIiAgICBcbiIKIiAgICBPdGhlciBvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAtbyBPUFRJT04gICAgICBUcnVlIGlmIHRoZSBzaGVsbCBvcHRpb24gT1BUSU9OIGlzIGVuYWJsZWQuXG4iCiIgICAgICAhIEVYUFIgICAgICAgICBUcnVlIGlmIGV4cHIgaXMgZmFsc2UuXG4iCiIgICAgICBFWFBSMSAtYSBFWFBSMiBUcnVlIGlmIGJvdGggZXhwcjEgQU5EIGV4cHIyIGFyZSB0cnVlLlxuIgoiICAgICAgRVhQUjEgLW8gRVhQUjIgVHJ1ZSBpZiBlaXRoZXIgZXhwcjEgT1IgZXhwcjIgaXMgdHJ1ZS5cbiIKIiAgICBcbiIKIiAgICAgIGFyZzEgT1AgYXJnMiAgIEFyaXRobWV0aWMgdGVzdHMuICBPUCBpcyBvbmUgb2YgLWVxLCAtbmUsXG4iCiIgICAgICAgICAgICAgICAgICAgICAtbHQsIC1sZSwgLWd0LCBvciAtZ2UuXG4iCiIgICAgXG4iCiIgICAgQXJpdGhtZXRpYyBiaW5hcnkgb3BlcmF0b3JzIHJldHVybiB0cnVlIGlmIEFSRzEgaXMgZXF1YWwsIG5vdC1lcXVhbCxcbiIKIiAgICBsZXNzLXRoYW4sIGxlc3MtdGhhbi1vci1lcXVhbCwgZ3JlYXRlci10aGFuLCBvciBncmVhdGVyLXRoYW4tb3ItZXF1YWxcbiIKIiAgICB0aGFuIEFSRzIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIEVYUFIgZXZhbHVhdGVzIHRvIHRydWU7IGZhaWxzIGlmIEVYUFIgZXZhbHVhdGVzIHRvXG4iCiIgICAgZmFsc2Ugb3IgYW4gaW52YWxpZCBhcmd1bWVudCBpcyBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMjk2Cm1zZ2lkICIiCiJFdmFsdWF0ZSBjb25kaXRpb25hbCBleHByZXNzaW9uLlxuIgoiICAgIFxuIgoiICAgIFRoaXMgaXMgYSBzeW5vbnltIGZvciB0aGUgXCJ0ZXN0XCIgYnVpbHRpbiwgYnV0IHRoZSBsYXN0IGFyZ3VtZW50IG11c3RcbiIKIiAgICBiZSBhIGxpdGVyYWwgYF0nLCB0byBtYXRjaCB0aGUgb3BlbmluZyBgWycuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTMwNQptc2dpZCAiIgoiRGlzcGxheSBwcm9jZXNzIHRpbWVzLlxuIgoiICAgIFxuIgoiICAgIFByaW50cyB0aGUgYWNjdW11bGF0ZWQgdXNlciBhbmQgc3lzdGVtIHRpbWVzIGZvciB0aGUgc2hlbGwgYW5kIGFsbCBvZiAiCiJpdHNcbiIKIiAgICBjaGlsZCBwcm9jZXNzZXMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgQWx3YXlzIHN1Y2NlZWRzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjEzMTcKbXNnaWQgIiIKIlRyYXAgc2lnbmFscyBhbmQgb3RoZXIgZXZlbnRzLlxuIgoiICAgIFxuIgoiICAgIERlZmluZXMgYW5kIGFjdGl2YXRlcyBoYW5kbGVycyB0byBiZSBydW4gd2hlbiB0aGUgc2hlbGwgcmVjZWl2ZXMgIgoic2lnbmFsc1xuIgoiICAgIG9yIG90aGVyIGNvbmRpdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgQVJHIGlzIGEgY29tbWFuZCB0byBiZSByZWFkIGFuZCBleGVjdXRlZCB3aGVuIHRoZSBzaGVsbCByZWNlaXZlcyB0aGVcbiIKIiAgICBzaWduYWwocykgU0lHTkFMX1NQRUMuICBJZiBBUkcgaXMgYWJzZW50IChhbmQgYSBzaW5nbGUgU0lHTkFMX1NQRUNcbiIKIiAgICBpcyBzdXBwbGllZCkgb3IgYC0nLCBlYWNoIHNwZWNpZmllZCBzaWduYWwgaXMgcmVzZXQgdG8gaXRzIG9yaWdpbmFsXG4iCiIgICAgdmFsdWUuICBJZiBBUkcgaXMgdGhlIG51bGwgc3RyaW5nIGVhY2ggU0lHTkFMX1NQRUMgaXMgaWdub3JlZCBieSB0aGVcbiIKIiAgICBzaGVsbCBhbmQgYnkgdGhlIGNvbW1hbmRzIGl0IGludm9rZXMuXG4iCiIgICAgXG4iCiIgICAgSWYgYSBTSUdOQUxfU1BFQyBpcyBFWElUICgwKSBBUkcgaXMgZXhlY3V0ZWQgb24gZXhpdCBmcm9tIHRoZSBzaGVsbC4gICIKIklmXG4iCiIgICAgYSBTSUdOQUxfU1BFQyBpcyBERUJVRywgQVJHIGlzIGV4ZWN1dGVkIGJlZm9yZSBldmVyeSBzaW1wbGUgY29tbWFuZC5cbiIKIiAgICBcbiIKIiAgICBJZiBubyBhcmd1bWVudHMgYXJlIHN1cHBsaWVkLCB0cmFwIHByaW50cyB0aGUgbGlzdCBvZiBjb21tYW5kcyAiCiJhc3NvY2lhdGVkXG4iCiIgICAgd2l0aCBlYWNoIHNpZ25hbC5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLWxcdHByaW50IGEgbGlzdCBvZiBzaWduYWwgbmFtZXMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgbnVtYmVyc1xuIgoiICAgICAgLXBcdGRpc3BsYXkgdGhlIHRyYXAgY29tbWFuZHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggU0lHTkFMX1NQRUNcbiIKIiAgICBcbiIKIiAgICBFYWNoIFNJR05BTF9TUEVDIGlzIGVpdGhlciBhIHNpZ25hbCBuYW1lIGluIDxzaWduYWwuaD4gb3IgYSBzaWduYWwgIgoibnVtYmVyLlxuIgoiICAgIFNpZ25hbCBuYW1lcyBhcmUgY2FzZSBpbnNlbnNpdGl2ZSBhbmQgdGhlIFNJRyBwcmVmaXggaXMgb3B0aW9uYWwuICBBXG4iCiIgICAgc2lnbmFsIG1heSBiZSBzZW50IHRvIHRoZSBzaGVsbCB3aXRoIFwia2lsbCAtc2lnbmFsICQkXCIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhIFNJR1NQRUMgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyAiCiJnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMzQ5Cm1zZ2lkICIiCiJEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IGNvbW1hbmQgdHlwZS5cbiIKIiAgICBcbiIKIiAgICBGb3IgZWFjaCBOQU1FLCBpbmRpY2F0ZSBob3cgaXQgd291bGQgYmUgaW50ZXJwcmV0ZWQgaWYgdXNlZCBhcyBhXG4iCiIgICAgY29tbWFuZCBuYW1lLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtYVx0ZGlzcGxheSBhbGwgbG9jYXRpb25zIGNvbnRhaW5pbmcgYW4gZXhlY3V0YWJsZSBuYW1lZCBOQU1FO1xuIgoiICAgIFx0aW5jbHVkZXMgYWxpYXNlcywgYnVpbHRpbnMsIGFuZCBmdW5jdGlvbnMsIGlmIGFuZCBvbmx5IGlmXG4iCiIgICAgXHR0aGUgYC1wJyBvcHRpb24gaXMgbm90IGFsc28gdXNlZFxuIgoiICAgICAgLWZcdHN1cHByZXNzIHNoZWxsIGZ1bmN0aW9uIGxvb2t1cFxuIgoiICAgICAgLVBcdGZvcmNlIGEgUEFUSCBzZWFyY2ggZm9yIGVhY2ggTkFNRSwgZXZlbiBpZiBpdCBpcyBhbiBhbGlhcyxcbiIKIiAgICBcdGJ1aWx0aW4sIG9yIGZ1bmN0aW9uLCBhbmQgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZGlzayBmaWxlXG4iCiIgICAgXHR0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkXG4iCiIgICAgICAtcFx0cmV0dXJucyBlaXRoZXIgdGhlIG5hbWUgb2YgdGhlIGRpc2sgZmlsZSB0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkLFxuIgoiICAgIFx0b3Igbm90aGluZyBpZiBgdHlwZSAtdCBOQU1FJyB3b3VsZCBub3QgcmV0dXJuIGBmaWxlJy5cbiIKIiAgICAgIC10XHRvdXRwdXQgYSBzaW5nbGUgd29yZCB3aGljaCBpcyBvbmUgb2YgYGFsaWFzJywgYGtleXdvcmQnLFxuIgoiICAgIFx0YGZ1bmN0aW9uJywgYGJ1aWx0aW4nLCBgZmlsZScgb3IgYCcsIGlmIE5BTUUgaXMgYW4gYWxpYXMsIHNoZWxsXG4iCiIgICAgXHRyZXNlcnZlZCB3b3JkLCBzaGVsbCBmdW5jdGlvbiwgc2hlbGwgYnVpbHRpbiwgZGlzayBmaWxlLCBvciBub3RcbiIKIiAgICBcdGZvdW5kLCByZXNwZWN0aXZlbHlcbiIKIiAgICBcbiIKIiAgICBBcmd1bWVudHM6XG4iCiIgICAgICBOQU1FXHRDb21tYW5kIG5hbWUgdG8gYmUgaW50ZXJwcmV0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIGFsbCBvZiB0aGUgTkFNRXMgYXJlIGZvdW5kOyBmYWlscyBpZiBhbnkgYXJlIG5vdCAiCiJmb3VuZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxMzgwCm1zZ2lkICIiCiJNb2RpZnkgc2hlbGwgcmVzb3VyY2UgbGltaXRzLlxuIgoiICAgIFxuIgoiICAgIFByb3ZpZGVzIGNvbnRyb2wgb3ZlciB0aGUgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byB0aGUgc2hlbGwgYW5kICIKInByb2Nlc3Nlc1xuIgoiICAgIGl0IGNyZWF0ZXMsIG9uIHN5c3RlbXMgdGhhdCBhbGxvdyBzdWNoIGNvbnRyb2wuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1TXHR1c2UgdGhlIGBzb2Z0JyByZXNvdXJjZSBsaW1pdFxuIgoiICAgICAgLUhcdHVzZSB0aGUgYGhhcmQnIHJlc291cmNlIGxpbWl0XG4iCiIgICAgICAtYVx0YWxsIGN1cnJlbnQgbGltaXRzIGFyZSByZXBvcnRlZFxuIgoiICAgICAgLWJcdHRoZSBzb2NrZXQgYnVmZmVyIHNpemVcbiIKIiAgICAgIC1jXHR0aGUgbWF4aW11bSBzaXplIG9mIGNvcmUgZmlsZXMgY3JlYXRlZFxuIgoiICAgICAgLWRcdHRoZSBtYXhpbXVtIHNpemUgb2YgYSBwcm9jZXNzJ3MgZGF0YSBzZWdtZW50XG4iCiIgICAgICAtZVx0dGhlIG1heGltdW0gc2NoZWR1bGluZyBwcmlvcml0eSAoYG5pY2UnKVxuIgoiICAgICAgLWZcdHRoZSBtYXhpbXVtIHNpemUgb2YgZmlsZXMgd3JpdHRlbiBieSB0aGUgc2hlbGwgYW5kIGl0cyBjaGlsZHJlblxuIgoiICAgICAgLWlcdHRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIHNpZ25hbHNcbiIKIiAgICAgIC1sXHR0aGUgbWF4aW11bSBzaXplIGEgcHJvY2VzcyBtYXkgbG9jayBpbnRvIG1lbW9yeVxuIgoiICAgICAgLW1cdHRoZSBtYXhpbXVtIHJlc2lkZW50IHNldCBzaXplXG4iCiIgICAgICAtblx0dGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW4gZmlsZSBkZXNjcmlwdG9yc1xuIgoiICAgICAgLXBcdHRoZSBwaXBlIGJ1ZmZlciBzaXplXG4iCiIgICAgICAtcVx0dGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGluIFBPU0lYIG1lc3NhZ2UgcXVldWVzXG4iCiIgICAgICAtclx0dGhlIG1heGltdW0gcmVhbC10aW1lIHNjaGVkdWxpbmcgcHJpb3JpdHlcbiIKIiAgICAgIC1zXHR0aGUgbWF4aW11bSBzdGFjayBzaXplXG4iCiIgICAgICAtdFx0dGhlIG1heGltdW0gYW1vdW50IG9mIGNwdSB0aW1lIGluIHNlY29uZHNcbiIKIiAgICAgIC11XHR0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlciBwcm9jZXNzZXNcbiIKIiAgICAgIC12XHR0aGUgc2l6ZSBvZiB2aXJ0dWFsIG1lbW9yeVxuIgoiICAgICAgLXhcdHRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlIGxvY2tzXG4iCiIgICAgXG4iCiIgICAgSWYgTElNSVQgaXMgZ2l2ZW4sIGl0IGlzIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXNvdXJjZTsgdGhlXG4iCiIgICAgc3BlY2lhbCBMSU1JVCB2YWx1ZXMgYHNvZnQnLCBgaGFyZCcsIGFuZCBgdW5saW1pdGVkJyBzdGFuZCBmb3IgdGhlXG4iCiIgICAgY3VycmVudCBzb2Z0IGxpbWl0LCB0aGUgY3VycmVudCBoYXJkIGxpbWl0LCBhbmQgbm8gbGltaXQsIHJlc3BlY3RpdmVseS5cbiIKIiAgICBPdGhlcndpc2UsIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaXMgcHJpbnRlZC4gIElmXG4iCiIgICAgbm8gb3B0aW9uIGlzIGdpdmVuLCB0aGVuIC1mIGlzIGFzc3VtZWQuXG4iCiIgICAgXG4iCiIgICAgVmFsdWVzIGFyZSBpbiAxMDI0LWJ5dGUgaW5jcmVtZW50cywgZXhjZXB0IGZvciAtdCwgd2hpY2ggaXMgaW4gc2Vjb25kcyxcbiIKIiAgICAtcCwgd2hpY2ggaXMgaW4gaW5jcmVtZW50cyBvZiA1MTIgYnl0ZXMsIGFuZCAtdSwgd2hpY2ggaXMgYW4gdW5zY2FsZWRcbiIKIiAgICBudW1iZXIgb2YgcHJvY2Vzc2VzLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQgb3IgYW4gZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0MjUKbXNnaWQgIiIKIkRpc3BsYXkgb3Igc2V0IGZpbGUgbW9kZSBtYXNrLlxuIgoiICAgIFxuIgoiICAgIFNldHMgdGhlIHVzZXIgZmlsZS1jcmVhdGlvbiBtYXNrIHRvIE1PREUuICBJZiBNT0RFIGlzIG9taXR0ZWQsIHByaW50c1xuIgoiICAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBtYXNrLlxuIgoiICAgIFxuIgoiICAgIElmIE1PREUgYmVnaW5zIHdpdGggYSBkaWdpdCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYW4gb2N0YWwgbnVtYmVyO1xuIgoiICAgIG90aGVyd2lzZSBpdCBpcyBhIHN5bWJvbGljIG1vZGUgc3RyaW5nIGxpa2UgdGhhdCBhY2NlcHRlZCBieSBjaG1vZCgxKS5cbiIKIiAgICBcbiIKIiAgICBPcHRpb25zOlxuIgoiICAgICAgLXBcdGlmIE1PREUgaXMgb21pdHRlZCwgb3V0cHV0IGluIGEgZm9ybSB0aGF0IG1heSBiZSByZXVzZWQgYXMgaW5wdXRcbiIKIiAgICAgIC1TXHRtYWtlcyB0aGUgb3V0cHV0IHN5bWJvbGljOyBvdGhlcndpc2UgYW4gb2N0YWwgbnVtYmVyIGlzIG91dHB1dFxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTU9ERSBpcyBpbnZhbGlkIG9yIGFuIGludmFsaWQgb3B0aW9uIGlzIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0NDUKbXNnaWQgIiIKIldhaXQgZm9yIGpvYiBjb21wbGV0aW9uIGFuZCByZXR1cm4gZXhpdCBzdGF0dXMuXG4iCiIgICAgXG4iCiIgICAgV2FpdHMgZm9yIHRoZSBwcm9jZXNzIGlkZW50aWZpZWQgYnkgSUQsIHdoaWNoIG1heSBiZSBhIHByb2Nlc3MgSUQgb3IgYVxuIgoiICAgIGpvYiBzcGVjaWZpY2F0aW9uLCBhbmQgcmVwb3J0cyBpdHMgdGVybWluYXRpb24gc3RhdHVzLiAgSWYgSUQgaXMgbm90XG4iCiIgICAgZ2l2ZW4sIHdhaXRzIGZvciBhbGwgY3VycmVudGx5IGFjdGl2ZSBjaGlsZCBwcm9jZXNzZXMsIGFuZCB0aGUgcmV0dXJuXG4iCiIgICAgc3RhdHVzIGlzIHplcm8uICBJZiBJRCBpcyBhIGEgam9iIHNwZWNpZmljYXRpb24sIHdhaXRzIGZvciBhbGwgIgoicHJvY2Vzc2VzXG4iCiIgICAgaW4gdGhlIGpvYidzIHBpcGVsaW5lLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiBJRDsgZmFpbHMgaWYgSUQgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiAiCiJpc1xuIgoiICAgIGdpdmVuLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0NjMKbXNnaWQgIiIKIldhaXQgZm9yIHByb2Nlc3MgY29tcGxldGlvbiBhbmQgcmV0dXJuIGV4aXQgc3RhdHVzLlxuIgoiICAgIFxuIgoiICAgIFdhaXRzIGZvciB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgYW5kIHJlcG9ydHMgaXRzIHRlcm1pbmF0aW9uIHN0YXR1cy4gIElmXG4iCiIgICAgUElEIGlzIG5vdCBnaXZlbiwgYWxsIGN1cnJlbnRseSBhY3RpdmUgY2hpbGQgcHJvY2Vzc2VzIGFyZSB3YWl0ZWQgZm9yLFxuIgoiICAgIGFuZCB0aGUgcmV0dXJuIGNvZGUgaXMgemVyby4gIFBJRCBtdXN0IGJlIGEgcHJvY2VzcyBJRC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgSUQ7IGZhaWxzIGlmIElEIGlzIGludmFsaWQgb3IgYW4gaW52YWxpZCBvcHRpb24gIgoiaXNcbiIKIiAgICBnaXZlbi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNDc4Cm1zZ2lkICIiCiJFeGVjdXRlIGNvbW1hbmRzIGZvciBlYWNoIG1lbWJlciBpbiBhIGxpc3QuXG4iCiIgICAgXG4iCiIgICAgVGhlIGBmb3InIGxvb3AgZXhlY3V0ZXMgYSBzZXF1ZW5jZSBvZiBjb21tYW5kcyBmb3IgZWFjaCBtZW1iZXIgaW4gYVxuIgoiICAgIGxpc3Qgb2YgaXRlbXMuICBJZiBgaW4gV09SRFMgLi4uOycgaXMgbm90IHByZXNlbnQsIHRoZW4gYGluIFwiJEBcIicgaXNcbiIKIiAgICBhc3N1bWVkLiAgRm9yIGVhY2ggZWxlbWVudCBpbiBXT1JEUywgTkFNRSBpcyBzZXQgdG8gdGhhdCBlbGVtZW50LCBhbmRcbiIKIiAgICB0aGUgQ09NTUFORFMgYXJlIGV4ZWN1dGVkLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE0OTIKbXNnaWQgIiIKIkFyaXRobWV0aWMgZm9yIGxvb3AuXG4iCiIgICAgXG4iCiIgICAgRXF1aXZhbGVudCB0b1xuIgoiICAgIFx0KCggRVhQMSApKVxuIgoiICAgIFx0d2hpbGUgKCggRVhQMiApKTsgZG9cbiIKIiAgICBcdFx0Q09NTUFORFNcbiIKIiAgICBcdFx0KCggRVhQMyApKVxuIgoiICAgIFx0ZG9uZVxuIgoiICAgIEVYUDEsIEVYUDIsIGFuZCBFWFAzIGFyZSBhcml0aG1ldGljIGV4cHJlc3Npb25zLiAgSWYgYW55IGV4cHJlc3Npb24gaXNcbiIKIiAgICBvbWl0dGVkLCBpdCBiZWhhdmVzIGFzIGlmIGl0IGV2YWx1YXRlcyB0byAxLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE1MTAKbXNnaWQgIiIKIlNlbGVjdCB3b3JkcyBmcm9tIGEgbGlzdCBhbmQgZXhlY3V0ZSBjb21tYW5kcy5cbiIKIiAgICBcbiIKIiAgICBUaGUgV09SRFMgYXJlIGV4cGFuZGVkLCBnZW5lcmF0aW5nIGEgbGlzdCBvZiB3b3Jkcy4gIFRoZVxuIgoiICAgIHNldCBvZiBleHBhbmRlZCB3b3JkcyBpcyBwcmludGVkIG9uIHRoZSBzdGFuZGFyZCBlcnJvciwgZWFjaFxuIgoiICAgIHByZWNlZGVkIGJ5IGEgbnVtYmVyLiAgSWYgYGluIFdPUkRTJyBpcyBub3QgcHJlc2VudCwgYGluIFwiJEBcIidcbiIKIiAgICBpcyBhc3N1bWVkLiAgVGhlIFBTMyBwcm9tcHQgaXMgdGhlbiBkaXNwbGF5ZWQgYW5kIGEgbGluZSByZWFkXG4iCiIgICAgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQuICBJZiB0aGUgbGluZSBjb25zaXN0cyBvZiB0aGUgbnVtYmVyXG4iCiIgICAgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIGRpc3BsYXllZCB3b3JkcywgdGhlbiBOQU1FIGlzIHNldFxuIgoiICAgIHRvIHRoYXQgd29yZC4gIElmIHRoZSBsaW5lIGlzIGVtcHR5LCBXT1JEUyBhbmQgdGhlIHByb21wdCBhcmVcbiIKIiAgICByZWRpc3BsYXllZC4gIElmIEVPRiBpcyByZWFkLCB0aGUgY29tbWFuZCBjb21wbGV0ZXMuICBBbnkgb3RoZXJcbiIKIiAgICB2YWx1ZSByZWFkIGNhdXNlcyBOQU1FIHRvIGJlIHNldCB0byBudWxsLiAgVGhlIGxpbmUgcmVhZCBpcyBzYXZlZFxuIgoiICAgIGluIHRoZSB2YXJpYWJsZSBSRVBMWS4gIENPTU1BTkRTIGFyZSBleGVjdXRlZCBhZnRlciBlYWNoIHNlbGVjdGlvblxuIgoiICAgIHVudGlsIGEgYnJlYWsgY29tbWFuZCBpcyBleGVjdXRlZC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNTMxCm1zZ2lkICIiCiJSZXBvcnQgdGltZSBjb25zdW1lZCBieSBwaXBlbGluZSdzIGV4ZWN1dGlvbi5cbiIKIiAgICBcbiIKIiAgICBFeGVjdXRlIFBJUEVMSU5FIGFuZCBwcmludCBhIHN1bW1hcnkgb2YgdGhlIHJlYWwgdGltZSwgdXNlciBDUFUgdGltZSxcbiIKIiAgICBhbmQgc3lzdGVtIENQVSB0aW1lIHNwZW50IGV4ZWN1dGluZyBQSVBFTElORSB3aGVuIGl0IHRlcm1pbmF0ZXMuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1wXHRwcmludCB0aGUgdGltaW5nIHN1bW1hcnkgaW4gdGhlIHBvcnRhYmxlIFBvc2l4IGZvcm1hdFxuIgoiICAgIFxuIgoiICAgIFRoZSB2YWx1ZSBvZiB0aGUgVElNRUZPUk1BVCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBvdXRwdXQgZm9ybWF0LlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFRoZSByZXR1cm4gc3RhdHVzIGlzIHRoZSByZXR1cm4gc3RhdHVzIG9mIFBJUEVMSU5FLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE1NDgKbXNnaWQgIiIKIkV4ZWN1dGUgY29tbWFuZHMgYmFzZWQgb24gcGF0dGVybiBtYXRjaGluZy5cbiIKIiAgICBcbiIKIiAgICBTZWxlY3RpdmVseSBleGVjdXRlIENPTU1BTkRTIGJhc2VkIHVwb24gV09SRCBtYXRjaGluZyBQQVRURVJOLiAgVGhlXG4iCiIgICAgYHwnIGlzIHVzZWQgdG8gc2VwYXJhdGUgbXVsdGlwbGUgcGF0dGVybnMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTU2MAptc2dpZCAiIgoiRXhlY3V0ZSBjb21tYW5kcyBiYXNlZCBvbiBjb25kaXRpb25hbC5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGlmIENPTU1BTkRTJyBsaXN0IGlzIGV4ZWN1dGVkLiAgSWYgaXRzIGV4aXQgc3RhdHVzIGlzIHplcm8sIHRoZW4gIgoidGhlXG4iCiIgICAgYHRoZW4gQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQuICBPdGhlcndpc2UsIGVhY2ggYGVsaWYgQ09NTUFORFMnIGxpc3QgIgoiaXNcbiIKIiAgICBleGVjdXRlZCBpbiB0dXJuLCBhbmQgaWYgaXRzIGV4aXQgc3RhdHVzIGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nXG4iCiIgICAgYHRoZW4gQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQgYW5kIHRoZSBpZiBjb21tYW5kIGNvbXBsZXRlcy4gICIKIk90aGVyd2lzZSxcbiIKIiAgICB0aGUgYGVsc2UgQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQsIGlmIHByZXNlbnQuICBUaGUgZXhpdCBzdGF0dXMgb2YgIgoidGhlXG4iCiIgICAgZW50aXJlIGNvbnN0cnVjdCBpcyB0aGUgZXhpdCBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZCwgb3IgIgoiemVyb1xuIgoiICAgIGlmIG5vIGNvbmRpdGlvbiB0ZXN0ZWQgdHJ1ZS5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNTc3Cm1zZ2lkICIiCiJFeGVjdXRlIGNvbW1hbmRzIGFzIGxvbmcgYXMgYSB0ZXN0IHN1Y2NlZWRzLlxuIgoiICAgIFxuIgoiICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZVxuIgoiICAgIGB3aGlsZScgQ09NTUFORFMgaGFzIGFuIGV4aXQgc3RhdHVzIG9mIHplcm8uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTU4OQptc2dpZCAiIgoiRXhlY3V0ZSBjb21tYW5kcyBhcyBsb25nIGFzIGEgdGVzdCBkb2VzIG5vdCBzdWNjZWVkLlxuIgoiICAgIFxuIgoiICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZVxuIgoiICAgIGB1bnRpbCcgQ09NTUFORFMgaGFzIGFuIGV4aXQgc3RhdHVzIHdoaWNoIGlzIG5vdCB6ZXJvLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MDEKbXNnaWQgIiIKIkNyZWF0ZSBhIGNvcHJvY2VzcyBuYW1lZCBOQU1FLlxuIgoiICAgIFxuIgoiICAgIEV4ZWN1dGUgQ09NTUFORCBhc3luY2hyb25vdXNseSwgd2l0aCB0aGUgc3RhbmRhcmQgb3V0cHV0IGFuZCBzdGFuZGFyZFxuIgoiICAgIGlucHV0IG9mIHRoZSBjb21tYW5kIGNvbm5lY3RlZCB2aWEgYSBwaXBlIHRvIGZpbGUgZGVzY3JpcHRvcnMgYXNzaWduZWRcbiIKIiAgICB0byBpbmRpY2VzIDAgYW5kIDEgb2YgYW4gYXJyYXkgdmFyaWFibGUgTkFNRSBpbiB0aGUgZXhlY3V0aW5nIHNoZWxsLlxuIgoiICAgIFRoZSBkZWZhdWx0IE5BTUUgaXMgXCJDT1BST0NcIi5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHRoZSBleGl0IHN0YXR1cyBvZiBDT01NQU5ELiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MTUKbXNnaWQgIiIKIkRlZmluZSBzaGVsbCBmdW5jdGlvbi5cbiIKIiAgICBcbiIKIiAgICBDcmVhdGUgYSBzaGVsbCBmdW5jdGlvbiBuYW1lZCBOQU1FLiAgV2hlbiBpbnZva2VkIGFzIGEgc2ltcGxlIGNvbW1hbmQsXG4iCiIgICAgTkFNRSBydW5zIENPTU1BTkRzIGluIHRoZSBjYWxsaW5nIHNoZWxsJ3MgY29udGV4dC4gIFdoZW4gTkFNRSBpcyAiCiJpbnZva2VkLFxuIgoiICAgIHRoZSBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gYXMgJDEuLi4kbiwgYW5kIHRoZSBmdW5jdGlvbidzXG4iCiIgICAgbmFtZSBpcyBpbiAkRlVOQ05BTUUuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBOQU1FIGlzIHJlYWRvbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE2MjkKbXNnaWQgIiIKIkdyb3VwIGNvbW1hbmRzIGFzIGEgdW5pdC5cbiIKIiAgICBcbiIKIiAgICBSdW4gYSBzZXQgb2YgY29tbWFuZHMgaW4gYSBncm91cC4gIFRoaXMgaXMgb25lIHdheSB0byByZWRpcmVjdCBhblxuIgoiICAgIGVudGlyZSBzZXQgb2YgY29tbWFuZHMuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY0MQptc2dpZCAiIgoiUmVzdW1lIGpvYiBpbiBmb3JlZ3JvdW5kLlxuIgoiICAgIFxuIgoiICAgIEVxdWl2YWxlbnQgdG8gdGhlIEpPQl9TUEVDIGFyZ3VtZW50IHRvIHRoZSBgZmcnIGNvbW1hbmQuICBSZXN1bWUgYVxuIgoiICAgIHN0b3BwZWQgb3IgYmFja2dyb3VuZCBqb2IuICBKT0JfU1BFQyBjYW4gc3BlY2lmeSBlaXRoZXIgYSBqb2IgbmFtZVxuIgoiICAgIG9yIGEgam9iIG51bWJlci4gIEZvbGxvd2luZyBKT0JfU1BFQyB3aXRoIGEgYCYnIHBsYWNlcyB0aGUgam9iIGluXG4iCiIgICAgdGhlIGJhY2tncm91bmQsIGFzIGlmIHRoZSBqb2Igc3BlY2lmaWNhdGlvbiBoYWQgYmVlbiBzdXBwbGllZCBhcyBhblxuIgoiICAgIGFyZ3VtZW50IHRvIGBiZycuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSByZXN1bWVkIGpvYi4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxNjU2Cm1zZ2lkICIiCiJFdmFsdWF0ZSBhcml0aG1ldGljIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgVGhlIEVYUFJFU1NJT04gaXMgZXZhbHVhdGVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZm9yIGFyaXRobWV0aWNcbiIKIiAgICBldmFsdWF0aW9uLiAgRXF1aXZhbGVudCB0byBcImxldCBFWFBSRVNTSU9OXCIuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyAxIGlmIEVYUFJFU1NJT04gZXZhbHVhdGVzIHRvIDA7IHJldHVybnMgMCBvdGhlcndpc2UuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY2OAptc2dpZCAiIgoiRXhlY3V0ZSBjb25kaXRpb25hbCBjb21tYW5kLlxuIgoiICAgIFxuIgoiICAgIFJldHVybnMgYSBzdGF0dXMgb2YgMCBvciAxIGRlcGVuZGluZyBvbiB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgIgoiY29uZGl0aW9uYWxcbiIKIiAgICBleHByZXNzaW9uIEVYUFJFU1NJT04uICBFeHByZXNzaW9ucyBhcmUgY29tcG9zZWQgb2YgdGhlIHNhbWUgcHJpbWFyaWVzICIKInVzZWRcbiIKIiAgICBieSB0aGUgYHRlc3QnIGJ1aWx0aW4sIGFuZCBtYXkgYmUgY29tYmluZWQgdXNpbmcgdGhlIGZvbGxvd2luZyAiCiJvcGVyYXRvcnM6XG4iCiIgICAgXG4iCiIgICAgICAoIEVYUFJFU1NJT04gKVx0UmV0dXJucyB0aGUgdmFsdWUgb2YgRVhQUkVTU0lPTlxuIgoiICAgICAgISBFWFBSRVNTSU9OXHRcdFRydWUgaWYgRVhQUkVTU0lPTiBpcyBmYWxzZTsgZWxzZSBmYWxzZVxuIgoiICAgICAgRVhQUjEgJiYgRVhQUjJcdFRydWUgaWYgYm90aCBFWFBSMSBhbmQgRVhQUjIgYXJlIHRydWU7IGVsc2UgZmFsc2VcbiIKIiAgICAgIEVYUFIxIHx8IEVYUFIyXHRUcnVlIGlmIGVpdGhlciBFWFBSMSBvciBFWFBSMiBpcyB0cnVlOyBlbHNlIGZhbHNlXG4iCiIgICAgXG4iCiIgICAgV2hlbiB0aGUgYD09JyBhbmQgYCE9JyBvcGVyYXRvcnMgYXJlIHVzZWQsIHRoZSBzdHJpbmcgdG8gdGhlIHJpZ2h0IG9mXG4iCiIgICAgdGhlIG9wZXJhdG9yIGlzIHVzZWQgYXMgYSBwYXR0ZXJuIGFuZCBwYXR0ZXJuIG1hdGNoaW5nIGlzIHBlcmZvcm1lZC5cbiIKIiAgICBXaGVuIHRoZSBgPX4nIG9wZXJhdG9yIGlzIHVzZWQsIHRoZSBzdHJpbmcgdG8gdGhlIHJpZ2h0IG9mIHRoZSBvcGVyYXRvclxuIgoiICAgIGlzIG1hdGNoZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4iCiIgICAgXG4iCiIgICAgVGhlICYmIGFuZCB8fCBvcGVyYXRvcnMgZG8gbm90IGV2YWx1YXRlIEVYUFIyIGlmIEVYUFIxIGlzIHN1ZmZpY2llbnQgdG9cbiIKIiAgICBkZXRlcm1pbmUgdGhlIGV4cHJlc3Npb24ncyB2YWx1ZS5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICAwIG9yIDEgZGVwZW5kaW5nIG9uIHZhbHVlIG9mIEVYUFJFU1NJT04uIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTY5NAptc2dpZCAiIgoiQ29tbW9uIHNoZWxsIHZhcmlhYmxlIG5hbWVzIGFuZCB1c2FnZS5cbiIKIiAgICBcbiIKIiAgICBCQVNIX1ZFUlNJT05cdFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgQmFzaC5cbiIKIiAgICBDRFBBVEhcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoXG4iCiIgICAgXHRcdGZvciBkaXJlY3RvcmllcyBnaXZlbiBhcyBhcmd1bWVudHMgdG8gYGNkJy5cbiIKIiAgICBHTE9CSUdOT1JFXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIGRlc2NyaWJpbmcgZmlsZW5hbWVzIHRvXG4iCiIgICAgXHRcdGJlIGlnbm9yZWQgYnkgcGF0aG5hbWUgZXhwYW5zaW9uLlxuIgoiICAgIEhJU1RGSUxFXHRUaGUgbmFtZSBvZiB0aGUgZmlsZSB3aGVyZSB5b3VyIGNvbW1hbmQgaGlzdG9yeSBpcyBzdG9yZWQuXG4iCiIgICAgSElTVEZJTEVTSVpFXHRUaGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdGhpcyBmaWxlIGNhbiBjb250YWluLlxuIgoiICAgIEhJU1RTSVpFXHRUaGUgbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBsaW5lcyB0aGF0IGEgcnVubmluZ1xuIgoiICAgIFx0XHRzaGVsbCBjYW4gYWNjZXNzLlxuIgoiICAgIEhPTUVcdFRoZSBjb21wbGV0ZSBwYXRobmFtZSB0byB5b3VyIGxvZ2luIGRpcmVjdG9yeS5cbiIKIiAgICBIT1NUTkFNRVx0VGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgaG9zdC5cbiIKIiAgICBIT1NUVFlQRVx0VGhlIHR5cGUgb2YgQ1BVIHRoaXMgdmVyc2lvbiBvZiBCYXNoIGlzIHJ1bm5pbmcgdW5kZXIuXG4iCiIgICAgSUdOT1JFRU9GXHRDb250cm9scyB0aGUgYWN0aW9uIG9mIHRoZSBzaGVsbCBvbiByZWNlaXB0IG9mIGFuIEVPRlxuIgoiICAgIFx0XHRjaGFyYWN0ZXIgYXMgdGhlIHNvbGUgaW5wdXQuICBJZiBzZXQsIHRoZW4gdGhlIHZhbHVlXG4iCiIgICAgXHRcdG9mIGl0IGlzIHRoZSBudW1iZXIgb2YgRU9GIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgc2VlblxuIgoiICAgIFx0XHRpbiBhIHJvdyBvbiBhbiBlbXB0eSBsaW5lIGJlZm9yZSB0aGUgc2hlbGwgd2lsbCBleGl0XG4iCiIgICAgXHRcdChkZWZhdWx0IDEwKS4gIFdoZW4gdW5zZXQsIEVPRiBzaWduaWZpZXMgdGhlIGVuZCBvZiBpbnB1dC5cbiIKIiAgICBNQUNIVFlQRVx0QSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY3VycmVudCBzeXN0ZW0gQmFzaCBpcyBydW5uaW5nIG9uLlxuIgoiICAgIE1BSUxDSEVDS1x0SG93IG9mdGVuLCBpbiBzZWNvbmRzLCBCYXNoIGNoZWNrcyBmb3IgbmV3IG1haWwuXG4iCiIgICAgTUFJTFBBVEhcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZW5hbWVzIHdoaWNoIEJhc2ggY2hlY2tzXG4iCiIgICAgXHRcdGZvciBuZXcgbWFpbC5cbiIKIiAgICBPU1RZUEVcdFRoZSB2ZXJzaW9uIG9mIFVuaXggdGhpcyB2ZXJzaW9uIG9mIEJhc2ggaXMgcnVubmluZyBvbi5cbiIKIiAgICBQQVRIXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCB3aGVuXG4iCiIgICAgXHRcdGxvb2tpbmcgZm9yIGNvbW1hbmRzLlxuIgoiICAgIFBST01QVF9DT01NQU5EXHRBIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSBwcmludGluZyBvZiBlYWNoXG4iCiIgICAgXHRcdHByaW1hcnkgcHJvbXB0LlxuIgoiICAgIFBTMVx0XHRUaGUgcHJpbWFyeSBwcm9tcHQgc3RyaW5nLlxuIgoiICAgIFBTMlx0XHRUaGUgc2Vjb25kYXJ5IHByb21wdCBzdHJpbmcuXG4iCiIgICAgUFdEXHRcdFRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiIKIiAgICBTSEVMTE9QVFNcdEEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZW5hYmxlZCBzaGVsbCBvcHRpb25zLlxuIgoiICAgIFRFUk1cdFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHRlcm1pbmFsIHR5cGUuXG4iCiIgICAgVElNRUZPUk1BVFx0VGhlIG91dHB1dCBmb3JtYXQgZm9yIHRpbWluZyBzdGF0aXN0aWNzIGRpc3BsYXllZCBieSB0aGVcbiIKIiAgICBcdFx0YHRpbWUnIHJlc2VydmVkIHdvcmQuXG4iCiIgICAgYXV0b19yZXN1bWVcdE5vbi1udWxsIG1lYW5zIGEgY29tbWFuZCB3b3JkIGFwcGVhcmluZyBvbiBhIGxpbmUgYnlcbiIKIiAgICBcdFx0aXRzZWxmIGlzIGZpcnN0IGxvb2tlZCBmb3IgaW4gdGhlIGxpc3Qgb2YgY3VycmVudGx5XG4iCiIgICAgXHRcdHN0b3BwZWQgam9icy4gIElmIGZvdW5kIHRoZXJlLCB0aGF0IGpvYiBpcyBmb3JlZ3JvdW5kZWQuXG4iCiIgICAgXHRcdEEgdmFsdWUgb2YgYGV4YWN0JyBtZWFucyB0aGF0IHRoZSBjb21tYW5kIHdvcmQgbXVzdFxuIgoiICAgIFx0XHRleGFjdGx5IG1hdGNoIGEgY29tbWFuZCBpbiB0aGUgbGlzdCBvZiBzdG9wcGVkIGpvYnMuICBBXG4iCiIgICAgXHRcdHZhbHVlIG9mIGBzdWJzdHJpbmcnIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgd29yZCBtdXN0XG4iCiIgICAgXHRcdG1hdGNoIGEgc3Vic3RyaW5nIG9mIHRoZSBqb2IuICBBbnkgb3RoZXIgdmFsdWUgbWVhbnMgdGhhdFxuIgoiICAgIFx0XHR0aGUgY29tbWFuZCBtdXN0IGJlIGEgcHJlZml4IG9mIGEgc3RvcHBlZCBqb2IuXG4iCiIgICAgaGlzdGNoYXJzXHRDaGFyYWN0ZXJzIGNvbnRyb2xsaW5nIGhpc3RvcnkgZXhwYW5zaW9uIGFuZCBxdWlja1xuIgoiICAgIFx0XHRzdWJzdGl0dXRpb24uICBUaGUgZmlyc3QgY2hhcmFjdGVyIGlzIHRoZSBoaXN0b3J5XG4iCiIgICAgXHRcdHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIsIHVzdWFsbHkgYCEnLiAgVGhlIHNlY29uZCBpc1xuIgoiICAgIFx0XHR0aGUgYHF1aWNrIHN1YnN0aXR1dGlvbicgY2hhcmFjdGVyLCB1c3VhbGx5IGBeJy4gIFRoZVxuIgoiICAgIFx0XHR0aGlyZCBpcyB0aGUgYGhpc3RvcnkgY29tbWVudCcgY2hhcmFjdGVyLCB1c3VhbGx5IGAjJy5cbiIKIiAgICBISVNUSUdOT1JFXHRBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIHVzZWQgdG8gZGVjaWRlIHdoaWNoXG4iCiIgICAgXHRcdGNvbW1hbmRzIHNob3VsZCBiZSBzYXZlZCBvbiB0aGUgaGlzdG9yeSBsaXN0LlxuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTc1MQptc2dpZCAiIgoiQWRkIGRpcmVjdG9yaWVzIHRvIHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIEFkZHMgYSBkaXJlY3RvcnkgdG8gdGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHN0YWNrLCBvciByb3RhdGVzXG4iCiIgICAgdGhlIHN0YWNrLCBtYWtpbmcgdGhlIG5ldyB0b3Agb2YgdGhlIHN0YWNrIHRoZSBjdXJyZW50IHdvcmtpbmdcbiIKIiAgICBkaXJlY3RvcnkuICBXaXRoIG5vIGFyZ3VtZW50cywgZXhjaGFuZ2VzIHRoZSB0b3AgdHdvIGRpcmVjdG9yaWVzLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtblx0U3VwcHJlc3NlcyB0aGUgbm9ybWFsIGNoYW5nZSBvZiBkaXJlY3Rvcnkgd2hlbiBhZGRpbmdcbiIKIiAgICBcdGRpcmVjdG9yaWVzIHRvIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJvdGF0ZXMgdGhlIHN0YWNrIHNvIHRoYXQgdGhlIE50aCBkaXJlY3RvcnkgKGNvdW50aW5nXG4iCiIgICAgXHRmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aFxuIgoiICAgIFx0emVybykgaXMgYXQgdGhlIHRvcC5cbiIKIiAgICBcbiIKIiAgICAgIC1OXHRSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZ1xuIgoiICAgIFx0ZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoXG4iCiIgICAgXHR6ZXJvKSBpcyBhdCB0aGUgdG9wLlxuIgoiICAgIFxuIgoiICAgICAgZGlyXHRBZGRzIERJUiB0byB0aGUgZGlyZWN0b3J5IHN0YWNrIGF0IHRoZSB0b3AsIG1ha2luZyBpdCB0aGVcbiIKIiAgICBcdG5ldyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuIgoiICAgIFxuIgoiICAgIFRoZSBgZGlycycgYnVpbHRpbiBkaXNwbGF5cyB0aGUgZGlyZWN0b3J5IHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBhcmd1bWVudCBpcyBzdXBwbGllZCBvciB0aGUgZGlyZWN0b3J5XG4iCiIgICAgY2hhbmdlIGZhaWxzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE3ODUKbXNnaWQgIiIKIlJlbW92ZSBkaXJlY3RvcmllcyBmcm9tIHN0YWNrLlxuIgoiICAgIFxuIgoiICAgIFJlbW92ZXMgZW50cmllcyBmcm9tIHRoZSBkaXJlY3Rvcnkgc3RhY2suICBXaXRoIG5vIGFyZ3VtZW50cywgcmVtb3Zlc1xuIgoiICAgIHRoZSB0b3AgZGlyZWN0b3J5IGZyb20gdGhlIHN0YWNrLCBhbmQgY2hhbmdlcyB0byB0aGUgbmV3IHRvcCBkaXJlY3RvcnkuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1uXHRTdXBwcmVzc2VzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIHJlbW92aW5nXG4iCiIgICAgXHRkaXJlY3RvcmllcyBmcm9tIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdFJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCArMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGZpcnN0IGRpcmVjdG9yeSwgYHBvcGQgKzEnIHRoZSBzZWNvbmQuXG4iCiIgICAgXG4iCiIgICAgICAtTlx0UmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0XG4iCiIgICAgXHRzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCAtMCdcbiIKIiAgICBcdHJlbW92ZXMgdGhlIGxhc3QgZGlyZWN0b3J5LCBgcG9wZCAtMScgdGhlIG5leHQgdG8gbGFzdC5cbiIKIiAgICBcbiIKIiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgYXJndW1lbnQgaXMgc3VwcGxpZWQgb3IgdGhlIGRpcmVjdG9yeVxuIgoiICAgIGNoYW5nZSBmYWlscy4iCm1zZ3N0ciAiIgoKIzogYnVpbHRpbnMuYzoxODE1Cm1zZ2lkICIiCiJEaXNwbGF5IGRpcmVjdG9yeSBzdGFjay5cbiIKIiAgICBcbiIKIiAgICBEaXNwbGF5IHRoZSBsaXN0IG9mIGN1cnJlbnRseSByZW1lbWJlcmVkIGRpcmVjdG9yaWVzLiAgRGlyZWN0b3JpZXNcbiIKIiAgICBmaW5kIHRoZWlyIHdheSBvbnRvIHRoZSBsaXN0IHdpdGggdGhlIGBwdXNoZCcgY29tbWFuZDsgeW91IGNhbiBnZXRcbiIKIiAgICBiYWNrIHVwIHRocm91Z2ggdGhlIGxpc3Qgd2l0aCB0aGUgYHBvcGQnIGNvbW1hbmQuXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICAgIC1jXHRjbGVhciB0aGUgZGlyZWN0b3J5IHN0YWNrIGJ5IGRlbGV0aW5nIGFsbCBvZiB0aGUgZWxlbWVudHNcbiIKIiAgICAgIC1sXHRkbyBub3QgcHJpbnQgdGlsZGUtcHJlZml4ZWQgdmVyc2lvbnMgb2YgZGlyZWN0b3JpZXMgcmVsYXRpdmVcbiIKIiAgICBcdHRvIHlvdXIgaG9tZSBkaXJlY3RvcnlcbiIKIiAgICAgIC1wXHRwcmludCB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggb25lIGVudHJ5IHBlciBsaW5lXG4iCiIgICAgICAtdlx0cHJpbnQgdGhlIGRpcmVjdG9yeSBzdGFjayB3aXRoIG9uZSBlbnRyeSBwZXIgbGluZSBwcmVmaXhlZFxuIgoiICAgIFx0d2l0aCBpdHMgcG9zaXRpb24gaW4gdGhlIHN0YWNrXG4iCiIgICAgXG4iCiIgICAgQXJndW1lbnRzOlxuIgoiICAgICAgK05cdERpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biAiCiJieVxuIgoiICAgIFx0ZGlycyB3aGVuIGludm9rZWQgd2l0aG91dCBvcHRpb25zLCBzdGFydGluZyB3aXRoIHplcm8uXG4iCiIgICAgXG4iCiIgICAgICAtTlx0RGlzcGxheXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSByaWdodCBvZiB0aGUgbGlzdCBzaG93biAiCiJieVxuIgoiICAgIFx0ZGlycyB3aGVuIGludm9rZWQgd2l0aG91dCBvcHRpb25zLCBzdGFydGluZyB3aXRoIHplcm8uXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTg0NAptc2dpZCAiIgoiU2V0IGFuZCB1bnNldCBzaGVsbCBvcHRpb25zLlxuIgoiICAgIFxuIgoiICAgIENoYW5nZSB0aGUgc2V0dGluZyBvZiBlYWNoIHNoZWxsIG9wdGlvbiBPUFROQU1FLiAgV2l0aG91dCBhbnkgb3B0aW9uXG4iCiIgICAgYXJndW1lbnRzLCBsaXN0IGFsbCBzaGVsbCBvcHRpb25zIHdpdGggYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIG9yIG5vdCAiCiJlYWNoXG4iCiIgICAgaXMgc2V0LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtb1x0cmVzdHJpY3QgT1BUTkFNRXMgdG8gdGhvc2UgZGVmaW5lZCBmb3IgdXNlIHdpdGggYHNldCAtbydcbiIKIiAgICAgIC1wXHRwcmludCBlYWNoIHNoZWxsIG9wdGlvbiB3aXRoIGFuIGluZGljYXRpb24gb2YgaXRzIHN0YXR1c1xuIgoiICAgICAgLXFcdHN1cHByZXNzIG91dHB1dFxuIgoiICAgICAgLXNcdGVuYWJsZSAoc2V0KSBlYWNoIE9QVE5BTUVcbiIKIiAgICAgIC11XHRkaXNhYmxlICh1bnNldCkgZWFjaCBPUFROQU1FXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIGlmIE9QVE5BTUUgaXMgZW5hYmxlZDsgZmFpbHMgaWYgYW4gaW52YWxpZCBvcHRpb24gaXNcbiIKIiAgICBnaXZlbiBvciBPUFROQU1FIGlzIGRpc2FibGVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE4NjUKbXNnaWQgIiIKIkZvcm1hdHMgYW5kIHByaW50cyBBUkdVTUVOVFMgdW5kZXIgY29udHJvbCBvZiB0aGUgRk9STUFULlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtdiB2YXJcdGFzc2lnbiB0aGUgb3V0cHV0IHRvIHNoZWxsIHZhcmlhYmxlIFZBUiByYXRoZXIgdGhhblxuIgoiICAgIFx0XHRkaXNwbGF5IGl0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXRcbiIKIiAgICBcbiIKIiAgICBGT1JNQVQgaXMgYSBjaGFyYWN0ZXIgc3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIG9iamVjdHM6ICIKInBsYWluXG4iCiIgICAgY2hhcmFjdGVycywgd2hpY2ggYXJlIHNpbXBseSBjb3BpZWQgdG8gc3RhbmRhcmQgb3V0cHV0OyBjaGFyYWN0ZXIgIgoiZXNjYXBlXG4iCiIgICAgc2VxdWVuY2VzLCB3aGljaCBhcmUgY29udmVydGVkIGFuZCBjb3BpZWQgdG8gdGhlIHN0YW5kYXJkIG91dHB1dDsgYW5kXG4iCiIgICAgZm9ybWF0IHNwZWNpZmljYXRpb25zLCBlYWNoIG9mIHdoaWNoIGNhdXNlcyBwcmludGluZyBvZiB0aGUgbmV4dCAiCiJzdWNjZXNzaXZlXG4iCiIgICAgYXJndW1lbnQuXG4iCiIgICAgXG4iCiIgICAgSW4gYWRkaXRpb24gdG8gdGhlIHN0YW5kYXJkIGZvcm1hdCBzcGVjaWZpY2F0aW9ucyBkZXNjcmliZWQgaW4gcHJpbnRmIgoiKDEpXG4iCiIgICAgYW5kIHByaW50ZigzKSwgcHJpbnRmIGludGVycHJldHM6XG4iCiIgICAgXG4iCiIgICAgICAlYlx0ZXhwYW5kIGJhY2tzbGFzaCBlc2NhcGUgc2VxdWVuY2VzIGluIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50XG4iCiIgICAgICAlcVx0cXVvdGUgdGhlIGFyZ3VtZW50IGluIGEgd2F5IHRoYXQgY2FuIGJlIHJldXNlZCBhcyBzaGVsbCBpbnB1dFxuIgoiICAgIFxuIgoiICAgIEV4aXQgU3RhdHVzOlxuIgoiICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYSB3cml0ZSBvciAiCiJhc3NpZ25tZW50XG4iCiIgICAgZXJyb3Igb2NjdXJzLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE4OTIKbXNnaWQgIiIKIlNwZWNpZnkgaG93IGFyZ3VtZW50cyBhcmUgdG8gYmUgY29tcGxldGVkIGJ5IFJlYWRsaW5lLlxuIgoiICAgIFxuIgoiICAgIEZvciBlYWNoIE5BTUUsIHNwZWNpZnkgaG93IGFyZ3VtZW50cyBhcmUgdG8gYmUgY29tcGxldGVkLiAgSWYgbm8gIgoib3B0aW9uc1xuIgoiICAgIGFyZSBzdXBwbGllZCwgZXhpc3RpbmcgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9ucyBhcmUgcHJpbnRlZCBpbiBhIHdheSAiCiJ0aGF0XG4iCiIgICAgYWxsb3dzIHRoZW0gdG8gYmUgcmV1c2VkIGFzIGlucHV0LlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtcFx0cHJpbnQgZXhpc3RpbmcgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9ucyBpbiBhIHJldXNhYmxlIGZvcm1hdFxuIgoiICAgICAgLXJcdHJlbW92ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgZWFjaCBOQU1FLCBvciwgaWYgbm9cbiIKIiAgICBcdE5BTUVzIGFyZSBzdXBwbGllZCwgYWxsIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbnNcbiIKIiAgICBcbiIKIiAgICBXaGVuIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLCB0aGUgYWN0aW9ucyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgdGhlXG4iCiIgICAgdXBwZXJjYXNlLWxldHRlciBvcHRpb25zIGFyZSBsaXN0ZWQgYWJvdmUuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKCiM6IGJ1aWx0aW5zLmM6MTkxNQojLCBmdXp6eQptc2dpZCAiIgoiRGlzcGxheSBwb3NzaWJsZSBjb21wbGV0aW9ucyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMuXG4iCiIgICAgXG4iCiIgICAgSW50ZW5kZWQgdG8gYmUgdXNlZCBmcm9tIHdpdGhpbiBhIHNoZWxsIGZ1bmN0aW9uIGdlbmVyYXRpbmcgcG9zc2libGVcbiIKIiAgICBjb21wbGV0aW9ucy4gIElmIHRoZSBvcHRpb25hbCBXT1JEIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCBtYXRjaGVzICIKImFnYWluc3RcbiIKIiAgICBXT1JEIGFyZSBnZW5lcmF0ZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuIgptc2dzdHIgIiIKIvDPy8Ha2dfBxdQg18/azc/WztnFIMTP0M/MzsXOydEg1yDawdfJ08nNz9PUySDP0MPJyi4g8NLFxNDPzMHHwcXU09EsXG4iCiIgICAg3tTPIMLVxMXUIMnT0M/M2NrP18HU2NPRINfO1dTSySDG1c7Lw8nKIMvPzcHOxM7Px88gyc7UxdLQ0sXUwdTP0sEsICIKIsfFzsXSydLVwN3FyiDXz9rNz9bO2cUgxM/Qz8zOxc7J0S5cbiIKIiAgICDl08zJIM7Fz8LR2sHUxczYztnKIMHSx9XNxc7UIPPs7/fvIMLZzCDJ09DPzNjaz9fBziwg1M8gwtXE1dQgIgoi08fFzsXSydLP18HO2SDUz8zYy88g08/X0MHExc7J0SDTIPPs7/fvLiIKCiM6IGJ1aWx0aW5zLmM6MTkzMAptc2dpZCAiIgoiTW9kaWZ5IG9yIGRpc3BsYXkgY29tcGxldGlvbiBvcHRpb25zLlxuIgoiICAgIFxuIgoiICAgIE1vZGlmeSB0aGUgY29tcGxldGlvbiBvcHRpb25zIGZvciBlYWNoIE5BTUUsIG9yLCBpZiBubyBOQU1FcyBhcmUgIgoic3VwcGxpZWQsXG4iCiIgICAgdGhlIGNvbXBsZXRpb24gY3VycmVudGx5IGJlZ2luIGV4ZWN1dGVkLiAgSWYgbm8gT1BUSU9OcyBhcmUgZ2l2ZW5tLCAiCiJwcmludFxuIgoiICAgIHRoZSBjb21wbGV0aW9uIG9wdGlvbnMgZm9yIGVhY2ggTkFNRSBvciB0aGUgY3VycmVudCBjb21wbGV0aW9uICIKInNwZWNpZmljYXRpb24uXG4iCiIgICAgXG4iCiIgICAgT3B0aW9uczpcbiIKIiAgICBcdC1vIG9wdGlvblx0U2V0IGNvbXBsZXRpb24gb3B0aW9uIE9QVElPTiBmb3IgZWFjaCBOQU1FXG4iCiIgICAgXG4iCiIgICAgVXNpbmcgYCtvJyBpbnN0ZWFkIG9mIGAtbycgdHVybnMgb2ZmIHRoZSBzcGVjaWZpZWQgb3B0aW9uLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICBcbiIKIiAgICBFYWNoIE5BTUUgcmVmZXJzIHRvIGEgY29tbWFuZCBmb3Igd2hpY2ggYSBjb21wbGV0aW9uIHNwZWNpZmljYXRpb24gbXVzdFxuIgoiICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGRlZmluZWQgdXNpbmcgdGhlIGBjb21wbGV0ZScgYnVpbHRpbi4gIElmIG5vIE5BTUVzXG4iCiIgICAgYXJlIHN1cHBsaWVkLCBjb21wb3B0IG11c3QgYmUgY2FsbGVkIGJ5IGEgZnVuY3Rpb24gY3VycmVudGx5IGdlbmVyYXRpbmdcbiIKIiAgICBjb21wbGV0aW9ucywgYW5kIHRoZSBvcHRpb25zIGZvciB0aGF0IGN1cnJlbnRseS1leGVjdXRpbmcgY29tcGxldGlvblxuIgoiICAgIGdlbmVyYXRvciBhcmUgbW9kaWZpZWQuXG4iCiIgICAgXG4iCiIgICAgRXhpdCBTdGF0dXM6XG4iCiIgICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBOQU1FIGRvZXMgbm90XG4iCiIgICAgaGF2ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBkZWZpbmVkLiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5NTgKbXNnaWQgIiIKIlJlYWQgbGluZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQgaW50byBhbiBhcnJheSB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBSZWFkIGxpbmVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IGludG8gdGhlIGFycmF5IHZhcmlhYmxlIEFSUkFZLCBvciAiCiJmcm9tXG4iCiIgICAgZmlsZSBkZXNjcmlwdG9yIEZEIGlmIHRoZSAtdSBvcHRpb24gaXMgc3VwcGxpZWQuICBUaGUgdmFyaWFibGUgTUFQRklMRSAiCiJpc1xuIgoiICAgIHRoZSBkZWZhdWx0IEFSUkFZLlxuIgoiICAgIFxuIgoiICAgIE9wdGlvbnM6XG4iCiIgICAgICAtbiBjb3VudFx0Q29weSBhdCBtb3N0IENPVU5UIGxpbmVzLiAgSWYgQ09VTlQgaXMgMCwgYWxsIGxpbmVzIGFyZSAiCiJjb3BpZWQuXG4iCiIgICAgICAtTyBvcmlnaW5cdEJlZ2luIGFzc2lnbmluZyB0byBBUlJBWSBhdCBpbmRleCBPUklHSU4uICBUaGUgZGVmYXVsdCAiCiJpbmRleCBpcyAwLlxuIgoiICAgICAgLXMgY291bnQgXHREaXNjYXJkIHRoZSBmaXJzdCBDT1VOVCBsaW5lcyByZWFkLlxuIgoiICAgICAgLXRcdFx0UmVtb3ZlIGEgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGVhY2ggbGluZSByZWFkLlxuIgoiICAgICAgLXUgZmRcdFx0UmVhZCBsaW5lcyBmcm9tIGZpbGUgZGVzY3JpcHRvciBGRCBpbnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCAiCiJpbnB1dC5cbiIKIiAgICAgIC1DIGNhbGxiYWNrXHRFdmFsdWF0ZSBDQUxMQkFDSyBlYWNoIHRpbWUgUVVBTlRVTSBsaW5lcyBhcmUgcmVhZC5cbiIKIiAgICAgIC1jIHF1YW50dW1cdFNwZWNpZnkgdGhlIG51bWJlciBvZiBsaW5lcyByZWFkIGJldHdlZW4gZWFjaCBjYWxsIHRvICIKIkNBTExCQUNLLlxuIgoiICAgIFxuIgoiICAgIEFyZ3VtZW50czpcbiIKIiAgICAgIEFSUkFZXHRcdEFycmF5IHZhcmlhYmxlIG5hbWUgdG8gdXNlIGZvciBmaWxlIGRhdGEuXG4iCiIgICAgXG4iCiIgICAgSWYgLUMgaXMgc3VwcGxpZWQgd2l0aG91dCAtYywgdGhlIGRlZmF1bHQgcXVhbnR1bSBpcyA1MDAwLiAgV2hlblxuIgoiICAgIENBTExCQUNLIGlzIGV2YWx1YXRlZCwgaXQgaXMgc3VwcGxpZWQgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGFycmF5XG4iCiIgICAgZWxlbWVudCB0byBiZSBhc3NpZ25lZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50LlxuIgoiICAgIFxuIgoiICAgIElmIG5vdCBzdXBwbGllZCB3aXRoIGFuIGV4cGxpY2l0IG9yaWdpbiwgbWFwZmlsZSB3aWxsIGNsZWFyIEFSUkFZICIKImJlZm9yZVxuIgoiICAgIGFzc2lnbmluZyB0byBpdC5cbiIKIiAgICBcbiIKIiAgICBFeGl0IFN0YXR1czpcbiIKIiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIGdpdmVuIG9yIEFSUkFZIGlzIHJlYWRvbmx5LiIKbXNnc3RyICIiCgojOiBidWlsdGlucy5jOjE5OTAKbXNnaWQgIiIKIlJlYWQgbGluZXMgZnJvbSBhIGZpbGUgaW50byBhbiBhcnJheSB2YXJpYWJsZS5cbiIKIiAgICBcbiIKIiAgICBBIHN5bm9ueW0gZm9yIGBtYXBmaWxlJy4iCm1zZ3N0ciAiIgoKI34gbXNnaWQgIldpdGhvdXQgRVhQUiwgcmV0dXJucyByZXR1cm5zIFwiJGxpbmUgJGZpbGVuYW1lXCIuICBXaXRoIEVYUFIsIgojfiBtc2dzdHIgIuLF2iD3+fLh9iDXz9rX0sHdwcXUIFwiJNPU0s/LwSAkyc3RxsHKzMFcIi4g8yD3+fLh9iwiCgojfiBtc2dpZCAicmV0dXJucyBcIiRsaW5lICRzdWJyb3V0aW5lICRmaWxlbmFtZVwiOyB0aGlzIGV4dHJhIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIiIKI34gIvfP2tfSwd3BxdQgXCIk09TSz8vBICTQ0s/DxcTV0sEgJMnN0cbByszBXCI7INzUwSDEz9DPzM7J1MXM2M7B0SAiCiN+ICLJzsbP0s3Bw8nRICIKCiN+IG1zZ2lkICJjYW4gYmUgdXNlZCB1c2VkIHRvIHByb3ZpZGUgYSBzdGFjayB0cmFjZS4iCiN+IG1zZ3N0ciAizc/WxdQgwtnU2CDJ09DPzNjaz9fBzsEgxMzRINPP2sTBzsnRIGBzdGFjayB0cmFjZSciCgojfiBtc2dpZCAiYnVnOiB1bmtub3duIG9wZXJhdGlvbiIKI34gbXNnc3RyICLP28nCy8E6IM7FydrXxdPUzsHRIM/QxdLBw8nRIgoKIywgZnV6enkKI34gbXNnaWQgIlJldHVybiBhIHN1Y2Nlc3NmdWwgcmVzdWx0LiIKI34gbXNnc3RyICL3z9rX0sHdwcXUINLF2tXM2NTB1Dog19PFIMjP0s/bzy4iCgojLCBmdXp6eQojfiBtc2dpZCAiT2Jzb2xldGUuICBTZWUgYGRlY2xhcmUnLiIKI34gbXNnc3RyICIg99nbxcwgydog1dDP1NLFwszFzsnRLiDzzS4gYGRlY2xhcmUnLiIKCiMsIGZ1enp5CiN+IG1zZ2lkICJMb2dvdXQgb2YgYSBsb2dpbiBzaGVsbC4iCiN+IG1zZ3N0ciAiIgojfiAi+sHXxdLbxc7J0SDTxcHO08Egy8/Nwc7Ezs/HzyDJztTF0tDSxdTB1M/SwSDawdDV3cXOzs/HzyDQz9PMxSDXyM/EwSDXICIKI34gItPJ09TFzdUuIgo=