IyBKYXBhbmVzZSBtZXNzYWdlcyBmb3IgZ2NjIDMuMAojIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBEYWlzdWtlIFlhbWFzaGl0YSA8eWFtYWRAbWIuaW5mb3dlYi5uZS5qcD4sIDE5OTktMjAwMQojICAgIE1hc2FoaXRvIFlhbWFnYSA8eWFtYWdhQGlwYy5jaGliYS11LmFjLmpwPiwgMTk5OS4KIyAgICBJSURBIFlvc2lha2kgPGlpZGFAc2Vjb20ubmUuanA+LCAxOTk5LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBnY2MgMy4wXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDUtMDYtMDYgMjE6MzIrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0xMi0wNSAyMjo0NyswOTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IERhaXN1a2UgWWFtYXNoaXRhIDx5YW1hZEBtYi5pbmZvd2ViLm5lLmpwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogSmFwYW5lc2UgPGphQGxpLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9RVVDLUpQXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBjaGFyc2V0LmM6NjU1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHRvICVzIG5vdCBzdXBwb3J0ZWQgYnkgaWNvbnYiCm1zZ3N0ciAiTmFOIKSrpOnJ5LnnzLWkt8Cwv/Sk2KTOytG0uaTHpLkiCgojOiBjaGFyc2V0LmM6NjU4Cm1zZ2lkICJpY29udl9vcGVuIgptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo2NjYKIywgYy1mb3JtYXQKbXNnaWQgIm5vIGljb252IGltcGxlbWVudGF0aW9uLCBjYW5ub3QgY29udmVydCBmcm9tICVzIHRvICVzIgptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo3NDMKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjaGFyYWN0ZXIgMHglbHggaXMgbm90IGluIHRoZSBiYXNpYyBzb3VyY2UgY2hhcmFjdGVyIHNldFxuIgptc2dzdHIgInVuaXZlcnNhbC1jaGFyYWN0ZXItbmFtZSCkzyBgJWMnIKTyu9i8qKS3pN6kt6S/pKyhorTwy9zFqqTKyri7+r24ueekzrDsyfSkx6S5IgoKIzogY2hhcnNldC5jOjc2MCBjaGFyc2V0LmM6MTI0Mwptc2dpZCAiY29udmVydGluZyB0byBleGVjdXRpb24gY2hhcmFjdGVyIHNldCIKbXNnc3RyICIiCgojOiBjaGFyc2V0LmM6NzY2CiMsIGMtZm9ybWF0Cm1zZ2lkICJjaGFyYWN0ZXIgMHglbHggaXMgbm90IHVuaWJ5dGUgaW4gZXhlY3V0aW9uIGNoYXJhY3RlciBzZXQiCm1zZ3N0ciAiIgoKIzogY2hhcnNldC5jOjg2NQojLCBmdXp6eQptc2dpZCAidW5pdmVyc2FsIGNoYXJhY3RlciBuYW1lcyBhcmUgb25seSB2YWxpZCBpbiBDKysgYW5kIEM5OSIKbXNnc3RyICKl5qXLpdChvKW1pevKuLv6zL4gYFxcVSUwOHgnIKTPvLHKzLvSpM7D5qTHpM/Nrbj6pMekz6SipOqk3qS7pPMiCgojOiBjaGFyc2V0LmM6ODY4CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidGhlIG1lYW5pbmcgb2YgJ1xcJWMnIGlzIGRpZmZlcmVudCBpbiB0cmFkaXRpb25hbCBDIgptc2dzdHIgIidcXCVjJyCkzrDVzKOkzyAtdHJhZGl0aW9uYWwgpPKkxKSxpL++7LnnpMiw26TKpOqk3qS5IgoKIzogY2hhcnNldC5jOjg5NAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImluY29tcGxldGUgdW5pdmVyc2FsIGNoYXJhY3RlciBuYW1lICUuKnMiCm1zZ3N0ciAizLW4+qTKIKXmpcul0KG8pbWl68q4u/rMviIKCiM6IGNoYXJzZXQuYzo5MDYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlLipzIGlzIG5vdCBhIHZhbGlkIHVuaXZlcnNhbCBjaGFyYWN0ZXIiCm1zZ3N0ciAiydTFrMDapMql5qXLpdChvKW1peulraXjpemlr6W/zL4iCgojOiBjaGFyc2V0LmM6OTE2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidW5pdmVyc2FsIGNoYXJhY3RlciAlLipzIGlzIG5vdCB2YWxpZCBpbiBhbiBpZGVudGlmaWVyIgptc2dzdHIgIqXmpcul0KG8pbWl68q4u/rMviBgXFxVJTA4eCcgpM+8scrMu9KkzsPmpMekz82tuPqkx6TPpKKk6qTepLuk8yIKCiM6IGNoYXJzZXQuYzo5MjAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJ1bml2ZXJzYWwgY2hhcmFjdGVyICUuKnMgaXMgbm90IHZhbGlkIGF0IHRoZSBzdGFydCBvZiBhbiBpZGVudGlmaWVyIgptc2dzdHIgIqXmpcul0KG8pbWl68q4u/rMviBgXFxVJTA4eCcgpM+8scrMu9KkzsPmpMekz82tuPqkx6TPpKKk6qTepLuk8yIKCiM6IGNoYXJzZXQuYzo5NTMKbXNnaWQgImNvbnZlcnRpbmcgVUNOIHRvIHNvdXJjZSBjaGFyYWN0ZXIgc2V0Igptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzo5NTcKbXNnaWQgImNvbnZlcnRpbmcgVUNOIHRvIGV4ZWN1dGlvbiBjaGFyYWN0ZXIgc2V0Igptc2dzdHIgIiIKCiM6IGNoYXJzZXQuYzoxMDI5CiMsIGZ1enp5Cm1zZ2lkICJ0aGUgbWVhbmluZyBvZiAnXFx4JyBpcyBkaWZmZXJlbnQgaW4gdHJhZGl0aW9uYWwgQyIKbXNnc3RyICInXFxhJyCkzrDVzKOkzyAtdHJhZGl0aW9uYWwgpPKkxKSxpL++7LnnpMiw26TKpOqk3qS5IgoKIzogY2hhcnNldC5jOjEwNDYKbXNnaWQgIlxceCB1c2VkIHdpdGggbm8gZm9sbG93aW5nIGhleCBkaWdpdHMiCm1zZ3N0ciAiXFx4IKTLoaKkvaTspMvCs6SvpM+kuqTOIDE2IL/Kv/SkrKSipOqk3qS7pPMiCgojOiBjaGFyc2V0LmM6MTA1Mwptc2dpZCAiaGV4IGVzY2FwZSBzZXF1ZW5jZSBvdXQgb2YgcmFuZ2UiCm1zZ3N0ciAiMTYgv8qlqKW5pbGhvKXXpbehvKWxpfOluaSsyM+wz7OwpMekuSIKCiM6IGNoYXJzZXQuYzoxMDkyCm1zZ2lkICJvY3RhbCBlc2NhcGUgc2VxdWVuY2Ugb3V0IG9mIHJhbmdlIgptc2dzdHIgIjggv8qlqKW5pbGhvKXXpbehvKWxpfOluaSsyM+wz7OwpMekuSIKCiM6IGNoYXJzZXQuYzoxMTYwCiMsIGZ1enp5Cm1zZ2lkICJ0aGUgbWVhbmluZyBvZiAnXFxhJyBpcyBkaWZmZXJlbnQgaW4gdHJhZGl0aW9uYWwgQyIKbXNnc3RyICInXFxhJyCkzrDVzKOkzyAtdHJhZGl0aW9uYWwgpPKkxKSxpL++7LnnpMiw26TKpOqk3qS5IgoKIzogY2hhcnNldC5jOjExNjcKIywgYy1mb3JtYXQKbXNnaWQgIm5vbi1JU08tc3RhbmRhcmQgZXNjYXBlIHNlcXVlbmNlLCAnXFwlYyciCm1zZ3N0ciAiyPMgSVNPIMm4veCkzqWopbmlsaG8pdelt6G8pbGl86W5LCAnXFwlYyciCgojOiBjaGFyc2V0LmM6MTE3NQojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBlc2NhcGUgc2VxdWVuY2UgJ1xcJWMnIgptc2dzdHIgIsnUzMCkyqWopbmlsaG8pdelt6G8pbGl86W5ICdcXCVjJyIKCiM6IGNoYXJzZXQuYzoxMTc4CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcXCUwM28nIgptc2dzdHIgIsnUzMCkyqWopbmlsaG8pdelt6G8pbGl86W5ICdcXCVjJyIKCiM6IGNoYXJzZXQuYzoxMTg0CiMsIGZ1enp5Cm1zZ2lkICJjb252ZXJ0aW5nIGVzY2FwZSBzZXF1ZW5jZSB0byBleGVjdXRpb24gY2hhcmFjdGVyIHNldCIKbXNnc3RyICLKuLv6pMvC0KS5pOulqKW5pbGhvKXXpbehvKWxpfOluaSsyM+wz6Tys7Ck7KTGpKSk3qS5IgoKIzogY2hhcnNldC5jOjEzMDYgY2hhcnNldC5jOjEzNjkKIywgZnV6enkKbXNnaWQgImNoYXJhY3RlciBjb25zdGFudCB0b28gbG9uZyBmb3IgaXRzIHR5cGUiCm1zZ3N0ciAiyri7+sTqv/SkrMS5pLmkrqTepLkiCgojOiBjaGFyc2V0LmM6MTMwOQptc2dpZCAibXVsdGktY2hhcmFjdGVyIGNoYXJhY3RlciBjb25zdGFudCIKbXNnc3RyICLKo7/0yri7+qSrpOmkyqTryri7+sTqv/QiCgojOiBjaGFyc2V0LmM6MTQwMQptc2dpZCAiZW1wdHkgY2hhcmFjdGVyIGNvbnN0YW50Igptc2dzdHIgIrb1pM7KuLv6xOq/9CIKCiM6IGNoYXJzZXQuYzoxNDUwCiMsIGMtZm9ybWF0Cm1zZ2lkICJmYWlsdXJlIHRvIGNvbnZlcnQgJXMgdG8gJXMiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjIxNgojLCBjLWZvcm1hdAptc2dpZCAiZXh0cmEgdG9rZW5zIGF0IGVuZCBvZiAjJXMgZGlyZWN0aXZlIgptc2dzdHIgIs2+yqykyqXIobylr6XzpKwgIyVzIKXHpaOl7KWvpcalo6XWpM69qqTqpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzozMDMKIywgYy1mb3JtYXQKbXNnaWQgIiMlcyBpcyBhIEdDQyBleHRlbnNpb24iCm1zZ3N0ciAiIyVzIKTPIEdDQyCkzrPIxKWkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjMxNQptc2dpZCAic3VnZ2VzdCBub3QgdXNpbmcgI2VsaWYgaW4gdHJhZGl0aW9uYWwgQyIKbXNnc3RyICK4xaSkIEMgpMekzyAjZWxpZiCk8rvIpO+kyqSkyv2krKSkpKSkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjMxOAojLCBjLWZvcm1hdAptc2dpZCAidHJhZGl0aW9uYWwgQyBpZ25vcmVzICMlcyB3aXRoIHRoZSAjIGluZGVudGVkIgptc2dzdHIgIrjFpKQgQyCkx6TPoaKlpKXzpcel86XIpLWk7KS/ICMgpM4gIyVzIKTyzLW766S3pN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzozMjIKIywgYy1mb3JtYXQKbXNnaWQgInN1Z2dlc3QgaGlkaW5nICMlcyBmcm9tIHRyYWRpdGlvbmFsIEMgd2l0aCBhbiBpbmRlbnRlZCAjIgptc2dzdHIgIqWkpfOlx6XzpciktaTspL8gIyCkrKSipOu4xaSkIEMgpKuk6aTPICMlcyCk8rGjpLmks6TIpPKkqrSrpOGkt6TepLkiCgojOiBkaXJlY3RpdmVzLmM6MzQ4Cm1zZ2lkICJlbWJlZGRpbmcgYSBkaXJlY3RpdmUgd2l0aGluIG1hY3JvIGFyZ3VtZW50cyBpcyBub3QgcG9ydGFibGUiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjM2OAojLCBmdXp6eQptc2dpZCAic3R5bGUgb2YgbGluZSBkaXJlY3RpdmUgaXMgYSBHQ0MgZXh0ZW5zaW9uIgptc2dzdHIgIiMlcyCkzyBHQ0MgpM6zyMSlpMekuSIKCiM6IGRpcmVjdGl2ZXMuYzo0MTgKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgcHJlcHJvY2Vzc2luZyBkaXJlY3RpdmUgIyVzIgptc2dzdHIgIsy1uPqkyqXXpeql16XtpbuluaXHpaOl7KWvpcalo6X0ICMlcyIKCiM6IGRpcmVjdGl2ZXMuYzo0ODkKbXNnaWQgIlwiZGVmaW5lZFwiIGNhbm5vdCBiZSB1c2VkIGFzIGEgbWFjcm8gbmFtZSIKbXNnc3RyICJcImRlZmluZWRcIiCk8qXepa+l7cy+pMikt6TGpM+7yKSopN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjQ5NQojLCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIGNhbm5vdCBiZSB1c2VkIGFzIGEgbWFjcm8gbmFtZSBhcyBpdCBpcyBhbiBvcGVyYXRvciBpbiBDKysiCm1zZ3N0ciAiXCIlc1wiIKTPIEMrKyCkzrHpu7u70qTHpKKk6qGipd6lr6XtzL6kyKS3pMa7yM3RpLmk66SzpMikz6THpK2k3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6NDk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJubyBtYWNybyBuYW1lIGdpdmVuIGluICMlcyBkaXJlY3RpdmUiCm1zZ3N0ciAipd6lr6XtzL6krCAjJXMgpcelo6Xspa+lxqWjpdbD5qTLzb+kqKTppOykxqSkpN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjUwMQptc2dpZCAibWFjcm8gbmFtZXMgbXVzdCBiZSBpZGVudGlmaWVycyIKbXNnc3RyICKl3qWvpe3MvqTPvLHKzLvSpMekyqSvpMakz6TKpOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6NTQyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmRlZmluaW5nIFwiJXNcIiIKbXNnc3RyICJcIiVzXCIgpPIgdW5kZWYgpLek3qS5IgoKIzogZGlyZWN0aXZlcy5jOjU5Nwptc2dpZCAibWlzc2luZyB0ZXJtaW5hdGluZyA+IGNoYXJhY3RlciIKbXNnc3RyICK9qsO8yri7+iA+IKTyt+ekpKTGpKSk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjY1MAojLCBjLWZvcm1hdAptc2dpZCAiIyVzIGV4cGVjdHMgXCJGSUxFTkFNRVwiIG9yIDxGSUxFTkFNRT4iCm1zZ3N0ciAiIyVzIKTPIFwipdWloaWkpevMvlwiIKSipOukpKTPIDyl1aWhpaSl68y+PiCk8smszdekyKS3pN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzo2NzMKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJlbXB0eSBmaWxlbmFtZSBpbiAjJXMiCm1zZ3N0ciAiIyVzIKTHpM6l1aWhpaSl68y+pKy29aTHpLkiCgojOiBkaXJlY3RpdmVzLmM6NjgxCm1zZ2lkICIjaW5jbHVkZSBuZXN0ZWQgdG9vIGRlZXBseSIKbXNnc3RyICIjaW5jbHVkZSCkzqXNpbmlyKSsv7ykuaSupN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzo3MTkKbXNnaWQgIiNpbmNsdWRlX25leHQgaW4gcHJpbWFyeSBzb3VyY2UgZmlsZSIKbXNnc3RyICIjaW5jbHVkZV9uZXh0IKSsvOekv6Trpb2hvKW5pdWloaWkpeuky6SipOqk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjc0NQojLCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBmbGFnIFwiJXNcIiBpbiBsaW5lIGRpcmVjdGl2ZSIKbXNnc3RyICJcIiVzXCIgpM8gbGluZSClx6Wjpeylr6XGpaOl1qTHpM/Mtbj6pMql1aXppbCkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjc5NwojLCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIGFmdGVyICNsaW5lIGlzIG5vdCBhIHBvc2l0aXZlIGludGVnZXIiCm1zZ3N0ciAiI2xpbmUgpM645aTtpM4gXCIlc1wiIKSswLWkzsCwv/Skx6TPpKKk6qTepLuk8yIKCiM6IGRpcmVjdGl2ZXMuYzo4MDMKbXNnaWQgImxpbmUgbnVtYmVyIG91dCBvZiByYW5nZSIKbXNnc3RyICK51MjWueakrMjPsM+zsKTHpLkiCgojOiBkaXJlY3RpdmVzLmM6ODE2IGRpcmVjdGl2ZXMuYzo4OTMKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBpcyBub3QgYSB2YWxpZCBmaWxlbmFtZSIKbXNnc3RyICJcIiVzXCIgpM/Atb7vpMql1aWhpaSl68y+pMekz6SipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6ODUzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIGFmdGVyICMgaXMgbm90IGEgcG9zaXRpdmUgaW50ZWdlciIKbXNnc3RyICIjbGluZSCkzrjlpO2kziBcIiVzXCIgpKzAtaTOwLC/9KTHpM+koqTqpN6ku6TzIgoKIzogZGlyZWN0aXZlcy5jOjk1NQojLCBmdXp6eQptc2dpZCAiaW52YWxpZCAjaWRlbnQgZGlyZWN0aXZlIgptc2dzdHIgIsy1uPqkyiAjaWRlbnQiCgojOiBkaXJlY3RpdmVzLmM6MTA0MwojLCBjLWZvcm1hdAptc2dpZCAicmVnaXN0ZXJpbmcgXCIlc1wiIGFzIGJvdGggYSBwcmFnbWEgYW5kIGEgcHJhZ21hIG5hbWVzcGFjZSIKbXNnc3RyICIiCgojOiBkaXJlY3RpdmVzLmM6MTA0NgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiNwcmFnbWEgJXMgJXMgaXMgYWxyZWFkeSByZWdpc3RlcmVkIgptc2dzdHIgIqWvpemluSBgJXMnIKTPtPuky8K4ut+kt6TepLkiCgojOiBkaXJlY3RpdmVzLmM6MTA0OQojLCBjLWZvcm1hdAptc2dpZCAiI3ByYWdtYSAlcyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQiCm1zZ3N0ciAiIgoKIzogZGlyZWN0aXZlcy5jOjEyNDkKbXNnaWQgIiNwcmFnbWEgb25jZSBpbiBtYWluIGZpbGUiCm1zZ3N0ciAiI3ByYWdtYSBvbmNlIKSspeGlpKXzpdWloaWkpeuky6SipOqk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjEyNzIKbXNnaWQgImludmFsaWQgI3ByYWdtYSBHQ0MgcG9pc29uIGRpcmVjdGl2ZSIKbXNnc3RyICIjcHJhZ21hIEdDQyCx+MD3pcelo6Xspa+lxqWjpfSkrMy1uPqkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjEyODEKIywgYy1mb3JtYXQKbXNnaWQgInBvaXNvbmluZyBleGlzdGluZyBtYWNybyBcIiVzXCIiCm1zZ3N0ciAitPvCuKTOpd6lr6XtIFwiJXMnIKTysfjA96S3pN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxMzAyCm1zZ2lkICIjcHJhZ21hIHN5c3RlbV9oZWFkZXIgaWdub3JlZCBvdXRzaWRlIGluY2x1ZGUgZmlsZSIKbXNnc3RyICJpbmNsdWRlIKXVpaGlpKXrs7CkziAjcHJhZ21hIHN5c3RlbV9oZWFkZXIgpM/MtbvrpLWk7KTepLekvyIKCiM6IGRpcmVjdGl2ZXMuYzoxMzI2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGZpbmQgc291cmNlIGZpbGUgJXMiCm1zZ3N0ciAipb2hvKW5ICVzIKSsuKukxKSrpOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTMzMAojLCBjLWZvcm1hdAptc2dpZCAiY3VycmVudCBmaWxlIGlzIG9sZGVyIHRoYW4gJXMiCm1zZ3N0ciAiuL2636TOpdWloaWkpeukzyAlcyCk6KTquMWkpKTHpLkiCgojOiBkaXJlY3RpdmVzLmM6MTQ0NAptc2dpZCAiX1ByYWdtYSB0YWtlcyBhIHBhcmVudGhlc2l6ZWQgc3RyaW5nIGxpdGVyYWwiCm1zZ3N0ciAiX1ByYW1nYSCkrLPnuMykx7DPpN6k7KS/yri7+s7zpeqlxqXppeuk8rz1pLG86KTqpN6kt6S/IgoKIzogZGlyZWN0aXZlcy5jOjE1NTEKbXNnaWQgIiNlbHNlIHdpdGhvdXQgI2lmIgptc2dzdHIgIiNlbHNlIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTU1Ngptc2dpZCAiI2Vsc2UgYWZ0ZXIgI2Vsc2UiCm1zZ3N0ciAiI2Vsc2UgpKwgI2Vsc2UgpM645aTtpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxNTU4IGRpcmVjdGl2ZXMuYzoxNTkxCm1zZ2lkICJ0aGUgY29uZGl0aW9uYWwgYmVnYW4gaGVyZSIKbXNnc3RyICKkvaTOvvK376TPpLOks6SrpOm7z6TepOqk3qS5IgoKIzogZGlyZWN0aXZlcy5jOjE1ODQKbXNnaWQgIiNlbGlmIHdpdGhvdXQgI2lmIgptc2dzdHIgIiNlbGlmIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTU4OQptc2dpZCAiI2VsaWYgYWZ0ZXIgI2Vsc2UiCm1zZ3N0ciAiI2VsaWYgpKwgI2Vsc2UgpM645aTtpMukoqTqpN6kuSIKCiM6IGRpcmVjdGl2ZXMuYzoxNjE5Cm1zZ2lkICIjZW5kaWYgd2l0aG91dCAjaWYiCm1zZ3N0ciAiI2VuZGlmIKTLICNpZiCkrKSipOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTY5Ngptc2dpZCAibWlzc2luZyAnKCcgYWZ0ZXIgcHJlZGljYXRlIgptc2dzdHIgIr3SuOykzrjlpO2kziAnKCcgpPK356SkpMakpKTepLkiCgojOiBkaXJlY3RpdmVzLmM6MTcxMQptc2dpZCAibWlzc2luZyAnKScgdG8gY29tcGxldGUgYW5zd2VyIgptc2dzdHIgIrLypPLK5LSwpLmk6yAnKScgpPK356SkpMakpKTepLkiCgojOiBkaXJlY3RpdmVzLmM6MTczMQptc2dpZCAicHJlZGljYXRlJ3MgYW5zd2VyIGlzIGVtcHR5Igptc2dzdHIgIr3SuOykzrLypKy29aTHpLkiCgojOiBkaXJlY3RpdmVzLmM6MTc1OAptc2dpZCAiYXNzZXJ0aW9uIHdpdGhvdXQgcHJlZGljYXRlIgptc2dzdHIgIr3SuOykzqTKpKSloqW1obylt6XnpfOkx6S5IgoKIzogZGlyZWN0aXZlcy5jOjE3NjAKbXNnaWQgInByZWRpY2F0ZSBtdXN0IGJlIGFuIGlkZW50aWZpZXIiCm1zZ3N0ciAivdK47KTPvLHKzLvSpMekyqSxpOyk0KTKpOqk3qS7pPMiCgojOiBkaXJlY3RpdmVzLmM6MTg0NgojLCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIHJlLWFzc2VydGVkIgptc2dzdHIgIlwiJXNcIiCkrLrGpaKltaG8pciktaTspN6kt6S/IgoKIzogZGlyZWN0aXZlcy5jOjIwNjkKIywgYy1mb3JtYXQKbXNnaWQgInVudGVybWluYXRlZCAjJXMiCm1zZ3N0ciAivarDvKTOpMqkpCAjJXMiCgojOiBlcnJvcnMuYzoxMTgKbXNnaWQgIndhcm5pbmc6ICIKbXNnc3RyICK32bnwOiAiCgojOiBlcnJvcnMuYzoxMjAKbXNnaWQgImludGVybmFsIGVycm9yOiAiCm1zZ3N0ciAixuLJ9KWopemhvDogIgoKIzogZXJyb3JzLmM6MTIyCiMsIGZ1enp5Cm1zZ2lkICJlcnJvcjogIgptc2dzdHIgIsbiyfSlqKXpobw6ICIKCiM6IGVycm9ycy5jOjE4MQojLCBmdXp6eQptc2dpZCAic3Rkb3V0Igptc2dzdHIgIrm9wqTCziIKCiM6IGVycm9ycy5jOjE4MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzIgptc2dzdHIgIiVzOiAlcyIKCiM6IGV4cHIuYzoxOTIKIywgZnV6enkKbXNnaWQgInRvbyBtYW55IGRlY2ltYWwgcG9pbnRzIGluIG51bWJlciIKbXNnc3RyICJgYXNtJyDD5qTOwuXC2KWtobyl76G8pcmkrMK/pLmkrqTepLkiCgojOiBleHByLmM6MjEyCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBkaWdpdCBcIiVjXCIgaW4gb2N0YWwgY29uc3RhbnQiCm1zZ3N0ciAizLW4+qTKtufGycXAIGAlYycgpKzAqczzxuKky6SipOqk3qS5IgoKIzogZXhwci5jOjIxOAojLCBmdXp6eQptc2dpZCAidXNlIG9mIEM5OSBoZXhhZGVjaW1hbCBmbG9hdGluZyBjb25zdGFudCIKbXNnc3RyICIxNiC/ysnixrC+rr/0xOq/9KSspNmkrb7opPK7/aTBpN6ku6TzIgoKIzogZXhwci5jOjIyNwojLCBmdXp6eQptc2dpZCAiZXhwb25lbnQgaGFzIG5vIGRpZ2l0cyIKbXNnc3RyICLJ4sawvq6/9MTqv/SkzqTZpK2/9KSsoaKloqXppdOlor/0u/qk8rv9pMOkxqSkpN6ku6TzIgoKIzogZXhwci5jOjIzNAojLCBmdXp6eQptc2dpZCAiaGV4YWRlY2ltYWwgZmxvYXRpbmcgY29uc3RhbnRzIHJlcXVpcmUgYW4gZXhwb25lbnQiCm1zZ3N0ciAiMTYgv8rJ4sawvq6/9MTqv/SkrKTZpK2+6KTyu/2kwaTepLuk8yIKCiM6IGV4cHIuYzoyNDAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHN1ZmZpeCBcIiUuKnNcIiBvbiBmbG9hdGluZyBjb25zdGFudCIKbXNnc3RyICLA3Mj4vK0gJyUuKnMnIKTPwLC/9MTqv/Sky6TPzLW4+qTHpLkiCgojOiBleHByLmM6MjUwIGV4cHIuYzoyNzUKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlIFwiJS4qc1wiIHN1ZmZpeCIKbXNnc3RyICK4xaSkIEMgpMekzyAnZicgwNzI+LytpKy18cjdpLWk7KTepLkiCgojOiBleHByLmM6MjYxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBzdWZmaXggXCIlLipzXCIgb24gaW50ZWdlciBjb25zdGFudCIKbXNnc3RyICLA3Mj4vK0gJyUuKnMnIKTPwLC/9MTqv/Sky6TPzLW4+qTHpLkiCgojOiBleHByLmM6MjgzCiMsIGZ1enp5Cm1zZ2lkICJ1c2Ugb2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50Igptc2dzdHIgIklTTyBDODkgpMekzyBsb25nIGxvbmcgwLC/9MTqv/Sk8rbYpLik3qS5IgoKIzogZXhwci5jOjI5MAojLCBmdXp6eQptc2dpZCAiaW1hZ2luYXJ5IGNvbnN0YW50cyBhcmUgYSBHQ0MgZXh0ZW5zaW9uIgptc2dzdHIgIiNpZiC8sKTOw+akx6TPyri7+s7zxOq/9KSsu8ikqKTepLuk8yIKCiM6IGV4cHIuYzozNzYKIywgZnV6enkKbXNnaWQgImludGVnZXIgY29uc3RhbnQgaXMgdG9vIGxhcmdlIGZvciBpdHMgdHlwZSIKbXNnc3RyICLAsL/0xOq/9KSswuekraS5pK6k66TOpMcgdW5zaWduZWQgpMukyqTqpN6kt6S/IgoKIzogZXhwci5jOjM4OAptc2dpZCAiaW50ZWdlciBjb25zdGFudCBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHVuc2lnbmVkIgptc2dzdHIgIsCwv/TE6r/0pKzC56StpLmkrqTrpM6kxyB1bnNpZ25lZCCky6TKpOqk3qS3pL8iCgojOiBleHByLmM6NDcwCm1zZ2lkICJtaXNzaW5nICcpJyBhZnRlciBcImRlZmluZWRcIiIKbXNnc3RyICJcImRlZmluZWRcIiCkzrjlpO2kziAnKScgpKy356SxpMakpKTepLkiCgojOiBleHByLmM6NDc3Cm1zZ2lkICJvcGVyYXRvciBcImRlZmluZWRcIiByZXF1aXJlcyBhbiBpZGVudGlmaWVyIgptc2dzdHIgIlwiZGVmaW5lZFwiILHpu7u70qTPvLHKzLvSpPLN17XhpLek3qS5IgoKIzogZXhwci5jOjQ4NQojLCBjLWZvcm1hdAptc2dpZCAiKFwiJXNcIiBpcyBhbiBhbHRlcm5hdGl2ZSB0b2tlbiBmb3IgXCIlc1wiIGluIEMrKykiCm1zZ3N0ciAiocpDKysgpMekzyBcIiVzXCIgpKwgXCIlc1wiIKTOwuXC2KXIobylr6XzpMekuaHLIgoKIzogZXhwci5jOjQ5NQptc2dpZCAidGhpcyB1c2Ugb2YgXCJkZWZpbmVkXCIgbWF5IG5vdCBiZSBwb3J0YWJsZSIKbXNnc3RyICIiCgojOiBleHByLmM6NTM0CiMsIGZ1enp5Cm1zZ2lkICJmbG9hdGluZyBjb25zdGFudCBpbiBwcmVwcm9jZXNzb3IgZXhwcmVzc2lvbiIKbXNnc3RyICLAsL/0pKyl16Xqpdel7aW7pcOltbywxuKkx6Wqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojOiBleHByLmM6NTQwCiMsIGZ1enp5Cm1zZ2lkICJpbWFnaW5hcnkgbnVtYmVyIGluIHByZXByb2Nlc3NvciBleHByZXNzaW9uIgptc2dzdHIgIsCwv/SkrKXXpeql16Xtpbulw6W1vLDG4qTHpaqhvKXQobyl1aXtobykt6TepLekvyIKCiM6IGV4cHIuYzo1ODUKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiBpcyBub3QgZGVmaW5lZCIKbXNnc3RyICJcIiVzXCIgpM/E6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBleHByLmM6NzE2IGV4cHIuYzo3NDUKIywgYy1mb3JtYXQKbXNnaWQgIm1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiBcIiVzXCIiCm1zZ3N0ciAiIgoKIzogZXhwci5jOjczNgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInRva2VuIFwiJXNcIiBpcyBub3QgdmFsaWQgaW4gcHJlcHJvY2Vzc29yIGV4cHJlc3Npb25zIgptc2dzdHIgIsCwv/SkrKXXpeql16Xtpbulw6W1vLDG4qTHpaqhvKXQobyl1aXtobykt6TepLekvyIKCiM6IGV4cHIuYzo3NTMKbXNnaWQgIm1pc3NpbmcgZXhwcmVzc2lvbiBiZXR3ZWVuICcoJyBhbmQgJyknIgptc2dzdHIgIiIKCiM6IGV4cHIuYzo3NTYKIywgZnV6enkKbXNnaWQgIiNpZiB3aXRoIG5vIGV4cHJlc3Npb24iCm1zZ3N0ciAiICB0aHJvdyCktaTspL+8sKTOw+YiCgojOiBleHByLmM6NzU5CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAib3BlcmF0b3IgJyVzJyBoYXMgbm8gcmlnaHQgb3BlcmFuZCIKbXNnc3RyICLIv8n8u9IgYCVzJyCkz8jzwLC/9Le/pMekuSIKCiM6IGV4cHIuYzo3NjQKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJvcGVyYXRvciAnJXMnIGhhcyBubyBsZWZ0IG9wZXJhbmQiCm1zZ3N0ciAisr6w+r/0IGAlcycgpM/J1LSwwbS3v6THpLkiCgojOiBleHByLmM6NzkwCm1zZ2lkICIgJzonIHdpdGhvdXQgcHJlY2VkaW5nICc/JyIKbXNnc3RyICIiCgojOiBleHByLmM6ODE3CiMsIGZ1enp5Cm1zZ2lkICJ1bmJhbGFuY2VkIHN0YWNrIGluICNpZiIKbXNnc3RyICLC0LH+pLekxqSkpMqkpCAjZW5kaWYiCgojOiBleHByLmM6ODM2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaW1wb3NzaWJsZSBvcGVyYXRvciAnJXUnIgptc2dzdHIgIqSipOqkqKTKpKSx6bu7u9IgJyVzJyIKCiM6IGV4cHIuYzo5MjgKIywgZnV6enkKbXNnaWQgIm1pc3NpbmcgJyknIGluIGV4cHJlc3Npb24iCm1zZ3N0ciAixOq/9LywpKy356SxpMakpKTrpKvMtbj6pMekuSIKCiM6IGV4cHIuYzo5NDkKbXNnaWQgIic/JyB3aXRob3V0IGZvbGxvd2luZyAnOiciCm1zZ3N0ciAiIgoKIzogZXhwci5jOjk1OQptc2dpZCAiaW50ZWdlciBvdmVyZmxvdyBpbiBwcmVwcm9jZXNzb3IgZXhwcmVzc2lvbiIKbXNnc3RyICLAsL/0pKyl16Xqpdel7aW7pcOltbywxuKkx6Wqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojOiBleHByLmM6OTY0CiMsIGZ1enp5Cm1zZ2lkICJtaXNzaW5nICcoJyBpbiBleHByZXNzaW9uIgptc2dzdHIgIsTqv/S8sKSst+eksaTGpKSk66SrzLW4+qTHpLkiCgojOiBleHByLmM6OTk2CiMsIGMtZm9ybWF0Cm1zZ2lkICJ0aGUgbGVmdCBvcGVyYW5kIG9mIFwiJXNcIiBjaGFuZ2VzIHNpZ24gd2hlbiBwcm9tb3RlZCIKbXNnc3RyICIiCgojOiBleHByLmM6MTAwMQojLCBjLWZvcm1hdAptc2dpZCAidGhlIHJpZ2h0IG9wZXJhbmQgb2YgXCIlc1wiIGNoYW5nZXMgc2lnbiB3aGVuIHByb21vdGVkIgptc2dzdHIgIiIKCiM6IGV4cHIuYzoxMjYwCm1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlIHVuYXJ5IHBsdXMgb3BlcmF0b3IiCm1zZ3N0ciAiuMWkpCBDIKTHpM/Dsbngpdel6aW5sem7u7vSpPK18cjdpLek3qS5IgoKIzogZXhwci5jOjEzNTkKbXNnaWQgImNvbW1hIG9wZXJhdG9yIGluIG9wZXJhbmQgb2YgI2lmIgptc2dzdHIgIqWrpfOl3rHpu7u70qSsICNpZiCx6bu7u9KkzsPmpMukoqTqpN6kuSIKCiM6IGV4cHIuYzoxNDkxCm1zZ2lkICJkaXZpc2lvbiBieSB6ZXJvIGluICNpZiIKbXNnc3RyICIjaWYgpMelvKXtvfy7u6SsyK/AuKS3pN6kt6S/IgoKIzogZmlsZXMuYzo0MDEKbXNnaWQgIk5VTEwgZGlyZWN0b3J5IGluIGZpbmRfZmlsZSIKbXNnc3RyICIiCgojOiBmaWxlcy5jOjQ1NAptc2dpZCAib25lIG9yIG1vcmUgUENIIGZpbGVzIHdlcmUgZm91bmQsIGJ1dCB0aGV5IHdlcmUgaW52YWxpZCIKbXNnc3RyICIiCgojOiBmaWxlcy5jOjQ1Nwptc2dpZCAidXNlIC1XaW52YWxpZC1wY2ggZm9yIG1vcmUgaW5mb3JtYXRpb24iCm1zZ3N0ciAiIgoKIzogZmlsZXMuYzo1MjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzIGEgYmxvY2sgZGV2aWNlIgptc2dzdHIgIiVzIKTPpdal7aXDpa+lx6XQpaSluaTHpLkiCgojOiBmaWxlcy5jOjUzOQojLCBjLWZvcm1hdAptc2dpZCAiJXMgaXMgdG9vIGxhcmdlIgptc2dzdHIgIiVzIKTPwuekraS5pK6k3qS5IgoKIzogZmlsZXMuYzo1NzQKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGlzIHNob3J0ZXIgdGhhbiBleHBlY3RlZCIKbXNnc3RyICIlcyCkrMvczeik6KTqpOLDu6SkpMekuSIKCiM6IGZpbGVzLmM6ODAzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAibm8gaW5jbHVkZSBwYXRoIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgJXMiCm1zZ3N0ciAiJXMgpPK4q6TEpLGk66S/pOGkzqWkpfOlr6XrobylyaXRpbmkrKSipOqk3qS7pPMiCgojOiBmaWxlcy5jOjEwOTYKbXNnaWQgIk11bHRpcGxlIGluY2x1ZGUgZ3VhcmRzIG1heSBiZSB1c2VmdWwgZm9yOlxuIgptc2dzdHIgIsK/vcUgaW5jbHVkZSCkq6TppM7K3bjupKzNrbHXpMikyqTrpMekt6TnpKY6XG4iCgojOiBpbml0LmM6MzkzCiMsIGZ1enp5Cm1zZ2lkICJjcHBjaGFyX3QgbXVzdCBiZSBhbiB1bnNpZ25lZCB0eXBlIgptc2dzdHIgIr3SuOykz7yxysy70qTHpMqksaTspNCkyqTqpN6ku6TzIgoKIzogaW5pdC5jOjM5NwojLCBjLWZvcm1hdAptc2dpZCAicHJlcHJvY2Vzc29yIGFyaXRobWV0aWMgaGFzIG1heGltdW0gcHJlY2lzaW9uIG9mICVsdSBiaXRzOyB0YXJnZXQgcmVxdWlyZXMgJWx1IGJpdHMiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQwNAptc2dpZCAiQ1BQIGFyaXRobWV0aWMgbXVzdCBiZSBhdCBsZWFzdCBhcyBwcmVjaXNlIGFzIGEgdGFyZ2V0IGludCIKbXNnc3RyICIiCgojOiBpbml0LmM6NDA3Cm1zZ2lkICJ0YXJnZXQgY2hhciBpcyBsZXNzIHRoYW4gOCBiaXRzIHdpZGUiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQxMQptc2dpZCAidGFyZ2V0IHdjaGFyX3QgaXMgbmFycm93ZXIgdGhhbiB0YXJnZXQgY2hhciIKbXNnc3RyICIiCgojOiBpbml0LmM6NDE1Cm1zZ2lkICJ0YXJnZXQgaW50IGlzIG5hcnJvd2VyIHRoYW4gdGFyZ2V0IGNoYXIiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQyMAptc2dpZCAiQ1BQIGhhbGYtaW50ZWdlciBuYXJyb3dlciB0aGFuIENQUCBjaGFyYWN0ZXIiCm1zZ3N0ciAiIgoKIzogaW5pdC5jOjQyNAojLCBjLWZvcm1hdAptc2dpZCAiQ1BQIG9uIHRoaXMgaG9zdCBjYW5ub3QgaGFuZGxlIHdpZGUgY2hhcmFjdGVyIGNvbnN0YW50cyBvdmVyICVsdSBiaXRzLCBidXQgdGhlIHRhcmdldCByZXF1aXJlcyAlbHUgYml0cyIKbXNnc3RyICIiCgojOiBsZXguYzoyNzQKbXNnaWQgImJhY2tzbGFzaCBhbmQgbmV3bGluZSBzZXBhcmF0ZWQgYnkgc3BhY2UiCm1zZ3N0ciAipdClw6Wvpbml6aXDpbel5aTIsv651KSstvXH8qTHyqyz5KS1pOyk3qS3pL8iCgojOiBsZXguYzoyNzkKbXNnaWQgImJhY2tzbGFzaC1uZXdsaW5lIGF0IGVuZCBvZiBmaWxlIgptc2dzdHIgIqXVpaGlpKXrpM69qqTqpMul0KXDpa+luaXppcOlt6XlLbL+udSkrKSipOqk3qS5IgoKIzogbGV4LmM6Mjk0CiMsIGMtZm9ybWF0Cm1zZ2lkICJ0cmlncmFwaCA/PyVjIGNvbnZlcnRlZCB0byAlYyIKbXNnc3RyICKlyKXppaSlsKXppdUgPz8lYyCkzyAlYyCky8rRtLmktaTspN6kt6S/IgoKIzogbGV4LmM6MzAxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidHJpZ3JhcGggPz8lYyBpZ25vcmVkLCB1c2UgLXRyaWdyYXBocyB0byBlbmFibGUiCm1zZ3N0ciAipcil6aWkpbCl6aXVID8/JWMgpM/MtbvrpLWk7KTepLekvyIKCiM6IGxleC5jOjM0Nwptc2dpZCAiXCIvKlwiIHdpdGhpbiBjb21tZW50Igptc2dzdHIgIqWzpeGl86XIxuKkyyBcIi8qXCIgpKykoqTqpN6kuSIKCiM6IGxleC5jOjQwNQojLCBjLWZvcm1hdAptc2dpZCAiJXMgaW4gcHJlcHJvY2Vzc2luZyBkaXJlY3RpdmUiCm1zZ3N0ciAipdel6qXXpe2lu6W5zL/O4cPmpMsgJXMgpKykoqTqpN6kuSIKCiM6IGxleC5jOjQxNAptc2dpZCAibnVsbCBjaGFyYWN0ZXIocykgaWdub3JlZCIKbXNnc3RyICJudWxsIMq4u/qkz8y1u+uktaTspN6kt6S/IgoKIzogbGV4LmM6NDQ5Cm1zZ2lkICInJCcgaW4gaWRlbnRpZmllciBvciBudW1iZXIiCm1zZ3N0ciAiIgoKIzogbGV4LmM6NTEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJhdHRlbXB0IHRvIHVzZSBwb2lzb25lZCBcIiVzXCIiCm1zZ3N0ciAisfjA96S1pOykvyAnJXMnILvIpKqkpqTIpLekxqSkpN6kuSIKCiM6IGxleC5jOjUxOAptc2dpZCAiX19WQV9BUkdTX18gY2FuIG9ubHkgYXBwZWFyIGluIHRoZSBleHBhbnNpb24gb2YgYSBDOTkgdmFyaWFkaWMgbWFjcm8iCm1zZ3N0ciAiX19WQV9BUkdTX18gpM8gQzk5ILLEytGw+r/0pd6lr6Xts8jEpaTHpM6k373QuL2kx6StpN6kuSIKCiM6IGxleC5jOjYxNAptc2dpZCAibnVsbCBjaGFyYWN0ZXIocykgcHJlc2VydmVkIGluIGxpdGVyYWwiCm1zZ3N0ciAipeqlxqXppevD5qTHIG51bGwgyri7+qSss87K3aS1pOyk3qS3pL8iCgojOiBsZXguYzo4MDUKbXNnaWQgIm5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUiCm1zZ3N0ciAipdWloaWkpevL9sj4pMuy/rnUpKykoqTqpN6ku6TzIgoKIzogbGV4LmM6OTQ4IHRyYWRpdGlvbmFsLmM6MTYyCm1zZ2lkICJ1bnRlcm1pbmF0ZWQgY29tbWVudCIKbXNnc3RyICK9qsO8pLWk7KTGpKSkyqSkpbOl4aXzpcgiCgojOiBsZXguYzo5NTkKIywgZnV6enkKbXNnaWQgIkMrKyBzdHlsZSBjb21tZW50cyBhcmUgbm90IGFsbG93ZWQgaW4gSVNPIEM5MCIKbXNnc3RyICJDKysgpbmlv6WkpeukzqWzpeGl86XIpM8gSVNPIEM4OSCkx6TPtfaktaTspN6ku6TzIgoKIzogbGV4LmM6OTYxCm1zZ2lkICIodGhpcyB3aWxsIGJlIHJlcG9ydGVkIG9ubHkgb25jZSBwZXIgaW5wdXQgZmlsZSkiCm1zZ3N0ciAiKKSzpOykz8b+zs+l1aWhpaSl66TLpMSkrbDssvOkwKSxyvO58KS1pOyk3qS5KSIKCiM6IGxleC5jOjk2Ngptc2dpZCAibXVsdGktbGluZSBjb21tZW50Igptc2dzdHIgIsqjv/S51KTOpbOl4aXzpcgiCgojOiBsZXguYzoxMjMwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAidW5zcGVsbGFibGUgdG9rZW4gJXMiCm1zZ3N0ciAixNak7KTKpKSlyKG8pa+l8yAlcyCkx6S5IgoKIzogbGluZS1tYXAuYzozMTMKIywgYy1mb3JtYXQKbXNnaWQgIkluIGZpbGUgaW5jbHVkZWQgZnJvbSAlczoldSIKbXNnc3RyICIlczoldSCkq6TpIGluY2x1ZGUgpLWk7KS/pdWloaWkpevD5iIKCiM6IGxpbmUtbWFwLmM6MzMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIsXG4iCiIgICAgICAgICAgICAgICAgIGZyb20gJXM6JXUiCm1zZ3N0ciAiIgoiLFxuIgoiICAgICAgICAgICAgICAgICAlczoldSCkq6TpIgoKIzogbWFjcm8uYzo4NQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIm1hY3JvIFwiJXNcIiBpcyBub3QgdXNlZCIKbXNnc3RyICJcIiVzXCIgpM/E6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBtYWNyby5jOjEyNCBtYWNyby5jOjI4NwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgYnVpbHQtaW4gbWFjcm8gXCIlc1wiIgptc2dzdHIgIsHIpN+5/qTfpd6lr6XtIFwiJXNcIiCkz8y1uPqkx6S5IgoKIzogbWFjcm8uYzoyMjEKIywgZnV6enkKbXNnaWQgImNvdWxkIG5vdCBkZXRlcm1pbmUgZGF0ZSBhbmQgdGltZSIKbXNnc3RyICKwzcK4tNi3uKTOxMnA16TOpL+k4aTOpb+hvKWypcOlyMy+pKzGw8TqpMekraTepLuk86THpLekvyIKCiM6IG1hY3JvLmM6NDAwCm1zZ2lkICJpbnZhbGlkIHN0cmluZyBsaXRlcmFsLCBpZ25vcmluZyBmaW5hbCAnXFwnIgptc2dzdHIgIsq4u/rO86Xqpcal6aXrpKzMtbj6pMekuaGiuse45aTOICdcXCcgpPLMtbvrpLek3qS5IgoKIzogbWFjcm8uYzo0ODMKIywgYy1mb3JtYXQKbXNnaWQgInBhc3RpbmcgXCIlc1wiIGFuZCBcIiVzXCIgZG9lcyBub3QgZ2l2ZSBhIHZhbGlkIHByZXByb2Nlc3NpbmcgdG9rZW4iCm1zZ3N0ciAiXCIlc1wiIKTIIFwiJXNcIiCk8sW9ydWksaTepLekv6SswLW+76TKpdel6qXXpe2lu6XDpbWlyKG8pa+l86TIpMqk6qTepLuk8yIKCiM6IG1hY3JvLmM6NTIxCm1zZ2lkICJJU08gQzk5IHJlcXVpcmVzIHJlc3QgYXJndW1lbnRzIHRvIGJlIHVzZWQiCm1zZ3N0ciAiSVNPIEM5OSCkz7vIzdGktaTspOuk2aStu8Sk6qTOpM6w+r/0pPLN17XhpLek3qS5IgoKIzogbWFjcm8uYzo1MjYKIywgYy1mb3JtYXQKbXNnaWQgIm1hY3JvIFwiJXNcIiByZXF1aXJlcyAldSBhcmd1bWVudHMsIGJ1dCBvbmx5ICV1IGdpdmVuIgptc2dzdHIgIqXepa+l7SBcIiVzXCIgpM+w+r/0pPIgJXUgzde14aS3pN6kuaSsoaIldSC4xKS3pKvNv6SopOmk7KTGpKSk3qS7pPMiCgojOiBtYWNyby5jOjUzMQojLCBjLWZvcm1hdAptc2dpZCAibWFjcm8gXCIlc1wiIHBhc3NlZCAldSBhcmd1bWVudHMsIGJ1dCB0YWtlcyBqdXN0ICV1Igptc2dzdHIgIqXepa+l7SBcIiVzXCIgpMuw+r/0pKwgJXUgxc+ktaTspN6kt6S/pKyhoiV1IKS3pKu89aSxvOik6qTepLuk8yIKCiM6IG1hY3JvLmM6NjQyIHRyYWRpdGlvbmFsLmM6Njc1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYXJndW1lbnQgbGlzdCBpbnZva2luZyBtYWNybyBcIiVzXCIiCm1zZ3N0ciAivarDvKS1pOykxqSkpMqkpLD6v/Sl6qW5pcikrKXepa+l7SBcIiVzXCIgpPK1r8awpLek6KSmpMikt6TepLekvyIKCiM6IG1hY3JvLmM6NzQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICJmdW5jdGlvbi1saWtlIG1hY3JvIFwiJXNcIiBtdXN0IGJlIHVzZWQgd2l0aCBhcmd1bWVudHMgaW4gdHJhZGl0aW9uYWwgQyIKbXNnc3RyICK4xaSkIEMgpMekz6GitNi/9MWqpd6lr6XtIFwiJXNcIiCky7D6v/SkrM2/pKik6aTspM2k0KTKpOqk3qS7pPMiCgojOiBtYWNyby5jOjEyNjEKIywgYy1mb3JtYXQKbXNnaWQgImR1cGxpY2F0ZSBtYWNybyBwYXJhbWV0ZXIgXCIlc1wiIgptc2dzdHIgIqXepa+l7bK+sPq/9CBcIiVzXCIgpKy9xcqjpLekxqSkpN6kuSIKCiM6IG1hY3JvLmM6MTMwNgojLCBjLWZvcm1hdAptc2dpZCAiXCIlc1wiIG1heSBub3QgYXBwZWFyIGluIG1hY3JvIHBhcmFtZXRlciBsaXN0Igptc2dzdHIgIlwiJXNcIiCkz6Xepa+l7bK+sPq/9KXqpbmlyKTLuL2k7KTGpM+kyqTqpN6ku6TzIgoKIzogbWFjcm8uYzoxMzE0Cm1zZ2lkICJtYWNybyBwYXJhbWV0ZXJzIG11c3QgYmUgY29tbWEtc2VwYXJhdGVkIgptc2dzdHIgIqXepa+l7bK+sPq/9KTPpaul86XetujA2qTqpLWk7KTKpLGk7KTQpMqk6qTepLuk8yIKCiM6IG1hY3JvLmM6MTMzMQptc2dpZCAicGFyYW1ldGVyIG5hbWUgbWlzc2luZyIKbXNnc3RyICKyvrD6v/TMvqTyt+ekpKTGpKSk3qS5IgoKIzogbWFjcm8uYzoxMzQ4Cm1zZ2lkICJhbm9ueW1vdXMgdmFyaWFkaWMgbWFjcm9zIHdlcmUgaW50cm9kdWNlZCBpbiBDOTkiCm1zZ3N0ciAizLXMvrLEytGw+r/0pd6lr6XtpM8gQzk5IKTHus6k6sb+pOyk6aTspN6kt6S/IgoKIzogbWFjcm8uYzoxMzUzCm1zZ2lkICJJU08gQyBkb2VzIG5vdCBwZXJtaXQgbmFtZWQgdmFyaWFkaWMgbWFjcm9zIgptc2dzdHIgIklTTyBDIKTHpM/MvsGwpMSkrbLEytGw+r/0pd6lr6XtpPK19qS3pN6ku6TzIgoKIzogbWFjcm8uYzoxMzYyCm1zZ2lkICJtaXNzaW5nICcpJyBpbiBtYWNybyBwYXJhbWV0ZXIgbGlzdCIKbXNnc3RyICKl3qWvpe2yvrD6v/Sl6qW5pcikx6GiJyknIKTyt+ekpKTGpKSk3qS5IgoKIzogbWFjcm8uYzoxNDM5CiMsIGZ1enp5Cm1zZ2lkICJJU08gQzk5IHJlcXVpcmVzIHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIG1hY3JvIG5hbWUiCm1zZ3N0ciAiSVNPIEMgpMekz6Xepa+l7cy+pM645aTtpMu29cfypPLN17XhpLek3qS5IgoKIzogbWFjcm8uYzoxNDYzCiMsIGZ1enp5Cm1zZ2lkICJtaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIG1hY3JvIG5hbWUiCm1zZ3N0ciAiSVNPIEMgpMekz6Xepa+l7cy+pM645aTtpMu29cfypPLN17XhpLek3qS5IgoKIzogbWFjcm8uYzoxNDkzCm1zZ2lkICInIycgaXMgbm90IGZvbGxvd2VkIGJ5IGEgbWFjcm8gcGFyYW1ldGVyIgptc2dzdHIgIicjJyCky6Xepa+l7bK+sPq/9My+pKzCs6SkpMakpKTepLuk8yIKCiM6IG1hY3JvLmM6MTUxMgptc2dpZCAiJyMjJyBjYW5ub3QgYXBwZWFyIGF0IGVpdGhlciBlbmQgb2YgYSBtYWNybyBleHBhbnNpb24iCm1zZ3N0ciAiJyMjJyCkz6Xepa+l7cW4s6ukzs6+w7yky6TPvdC4vaTHpK2k3qS7pPMiCgojOiBtYWNyby5jOjE2MDgKIywgYy1mb3JtYXQKbXNnaWQgIlwiJXNcIiByZWRlZmluZWQiCm1zZ3N0ciAiXCIlc1wiIKSsusbE6rXBpLWk7KTepLekvyIKCiM6IG1hY3JvLmM6MTYxMwptc2dpZCAidGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24iCm1zZ3N0ciAipLOks6SssMrBsKTOwOu4wKSspKKk67DMw9akx6S5IgoKIzogbWFjcm8uYzoxNjYzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAibWFjcm8gYXJndW1lbnQgXCIlc1wiIHdvdWxkIGJlIHN0cmluZ2lmaWVkIGluIHRyYWRpdGlvbmFsIEMiCm1zZ3N0ciAipd6lr6XtsPq/9CBcIiVzXCIgpM8gLXRyYWRpdGlvbmFsIKTypMSksaTrpMjKuLv6zvOyvaS1pOykv7v2pMekt6TnpKYiCgojOiBtYWNyby5jOjE2ODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIGhhc2ggdHlwZSAlZCBpbiBjcHBfbWFjcm9fZGVmaW5pdGlvbiIKbXNnc3RyICJkdW1wX2RlZmluaXRpb24gpMsgzLW4+qTKpc+lw6W3peWlv6WkpdcgJWQiCgojOiBwY2guYzo4NCBwY2guYzozMzIgcGNoLmM6MzU0IHBjaC5jOjM2MAptc2dpZCAid2hpbGUgd3JpdGluZyBwcmVjb21waWxlZCBoZWFkZXIiCm1zZ3N0ciAiIgoKIzogcGNoLmM6NDY3CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IG5vdCB1c2VkIGJlY2F1c2UgYCUuKnMnIG5vdCBkZWZpbmVkIgptc2dzdHIgIqXppdml6yBgJXMnIKSsu8ik76TspN6kt6S/pKzE6rXBpLWk7KTGpKSk3qS7pPMiCgojOiBwY2guYzo0NzkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBub3QgdXNlZCBiZWNhdXNlIGAlLipzJyBkZWZpbmVkIGFzIGAlcycgbm90IGAlLipzJyIKbXNnc3RyICIiCgojOiBwY2guYzo1MjAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIlczogbm90IHVzZWQgYmVjYXVzZSBgJXMnIGlzIGRlZmluZWQiCm1zZ3N0ciAiYCVzJyCkrLvIpO+k7KTepLekv6SszKTE6rXBpMekuSIKCiM6IHBjaC5jOjUzMyBwY2guYzo2OTYKbXNnaWQgIndoaWxlIHJlYWRpbmcgcHJlY29tcGlsZWQgaGVhZGVyIgptc2dzdHIgIiIKCiM6IHRyYWRpdGlvbmFsLmM6NzQ1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiZGV0ZWN0ZWQgcmVjdXJzaW9uIHdoaWxzdCBleHBhbmRpbmcgbWFjcm8gXCIlc1wiIgptc2dzdHIgIr2qw7yktaTspMakpKTKpKSw+r/0peqluaXIpKyl3qWvpe0gXCIlc1wiIKTyta/GsKS3pOikpqTIpLek3qS3pL8iCgojOiB0cmFkaXRpb25hbC5jOjkxMgojLCBmdXp6eQptc2dpZCAic3ludGF4IGVycm9yIGluIG1hY3JvIHBhcmFtZXRlciBsaXN0Igptc2dzdHIgIlwiJXNcIiCkz6Xepa+l7bK+sPq/9KXqpbmlyKTLuL2k7KTGpM+kyqTqpN6ku6TzIgoKI34gbXNnaWQgIm9mZnNldCBvdXRzaWRlIGJvdW5kcyBvZiBjb25zdGFudCBzdHJpbmciCiN+IG1zZ3N0ciAipaql1aW7pcOlyKSsxOq/9Mq4u/rO86TOtq2zpqTOs7Cky6SipOqk3qS5IgoKI34gbXNnaWQgIl9fYnVpbHRpbl9zYXZlcmVncyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIl9fYnVpbHRpbl9zYXZlcmVncyCkz6SzpM6lv6G8pbKlw6XIpMekz7zCwfWktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCBvZiBgX19idWlsdGluX2FyZ3NfaW5mbycgbXVzdCBiZSBjb25zdGFudCIKI34gbXNnc3RyICJgX19idWlsdGluX2FyZ3NfaW5mbycgpM6w+r/0pM/E6r/0pMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgb2YgYF9fYnVpbHRpbl9hcmdzX2luZm8nIG91dCBvZiByYW5nZSIKI34gbXNnc3RyICJgX19idWlsdGluX2FyZ3NfaW5mbycgpM6w+r/0pKzIz7DPs7Ckx6S5IgoKI34gbXNnaWQgIm1pc3NpbmcgYXJndW1lbnQgaW4gYF9fYnVpbHRpbl9hcmdzX2luZm8nIgojfiBtc2dzdHIgImBfX2J1aWx0aW5fYXJnc19pbmZvJyCky7D6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYHZhX3N0YXJ0JyB1c2VkIGluIGZ1bmN0aW9uIHdpdGggZml4ZWQgYXJncyIKI34gbXNnc3RyICJgdmFfc3RhcnQnIKSsuMfE6rjEsPq/9KTOtNi/9MbipMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAic2Vjb25kIHBhcmFtZXRlciBvZiBgdmFfc3RhcnQnIG5vdCBsYXN0IG5hbWVkIGFyZ3VtZW50IgojfiBtc2dzdHIgImB2YV9zdGFydCcgpM7G88jWzNykzsPNpKyw+r/0pM66x7jlpM7MvsGwpMukyqTDpMakpKTepLuk8yIKCiN+IG1zZ2lkICJgX19idWlsdGluX25leHRfYXJnJyBjYWxsZWQgd2l0aG91dCBhbiBhcmd1bWVudCIKI34gbXNnc3RyICJgX19idWlsdGluX25leHRfYXJnJyCkrLD6v/TMtaS3pMekx7jGpNO90KS1pOyk3qS3pL8iCgojfiBtc2dpZCAidG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIGB2YV9zdGFydCciCiN+IG1zZ3N0ciAiYHZhX3N0YXJ0JyCky8LQpLmk67D6v/SkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiZmlyc3QgYXJndW1lbnQgdG8gYHZhX2FyZycgbm90IG9mIHR5cGUgYHZhX2xpc3QnIgojfiBtc2dzdHIgImB2YV9hcmcnIKTLwtCkuaTrwuiw7LD6v/SkrCBgdmFfbGlzdCcgt7+kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGlzIHByb21vdGVkIHRvIGAlcycgd2hlbiBwYXNzZWQgdGhyb3VnaCBgLi4uJyIKI34gbXNnc3RyICJgJXMnIKTPIGAuLi4nIKTOvejN/aTOsuHE+KTHIGAlcycgpMuzyr7lpLKktaTspN6kt6S/IgoKI34gbXNnaWQgIihzbyB5b3Ugc2hvdWxkIHBhc3MgYCVzJyBub3QgYCVzJyB0byBgdmFfYXJnJykiCiN+IG1zZ3N0ciAiKL2+pMOkxqGiYHZhX2FyZycgpMukzyBgJXMnIKTyKGAlcycgpMekyqSvKcXPpLWkyqSxpOyk0KTKpOqk3qS7pPMpIgoKI34gbXNnaWQgImludmFsaWQgYXJnIHRvIGBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyciCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzJyCk2KTOsPq/9KSsydTFrMDapMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGFyZyB0byBgX19idWlsdGluX3JldHVybl9hZGRyZXNzJyIKI34gbXNnc3RyICJgX19idWlsdGluX3JldHVybl9hZGRyZXNzJyCk2KTOsPq/9KSsydTFrMDapMekuSIKCiN+IG1zZ2lkICJ1bnN1cHBvcnRlZCBhcmcgdG8gYF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzJyIKI34gbXNnc3RyICKltaXdobylyKS1pOykxqSkpMqkpCBgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MnIKTYpM6w+r/0pMekuSIKCiN+IG1zZ2lkICJ1bnN1cHBvcnRlZCBhcmcgdG8gYF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyciCiN+IG1zZ3N0ciAipbWl3aG8pciktaTspMakpKTKpKQgYF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcycgpNiw+r/0pMekuSIKCiN+IG1zZ2lkICJzZWNvbmQgYXJnIHRvIGBfX2J1aWx0aW5fZXhwZWN0JyBtdXN0IGJlIGEgY29uc3RhbnQiCiN+IG1zZ3N0ciAiYF9fYnVpbHRpbl9leHBlY3QnIKTYpM7C6MbzsPq/9KTPxOq/9KTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIl9fYnVpbHRpbl9sb25nam1wIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIDEiCiN+IG1zZ3N0ciAiX19idWlsdGluX2xvbmdqbXAgwujG87D6v/SkzyAxIKTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIl9fYnVpbHRpbl90cmFwIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyB0YXJnZXQiCiN+IG1zZ3N0ciAiX19idWlsdGluX3RyYXAgpLOkzqW/obylsqXDpcikx6TPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImJ1aWx0LWluIGZ1bmN0aW9uIGAlcycgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiwcik37n+pN+02L/0IGAlcycgpM+4vbrfpbWl3aG8pciktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJzdHJpbmcgbGVuZ3RoIGAlZCcgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggYCVkJyBJU08gQyVkIGNvbXBpbGVycyBhcmUgcmVxdWlyZWQgdG8gc3VwcG9ydCIKI34gbXNnc3RyICLKuLv6zvPEuSBgJWQnIKTPoaLEuaS1IGAlZCcgKElTTyBDJWQgpbOl86XRpaSl6aTOpbWl3aG8pcjN17fvKaTopOrC56StpK+kyqTDpMakpKTepLkiCgojfiBtc2dpZCAiYCVzJyBhdHRyaWJ1dGUgZGlyZWN0aXZlIGlnbm9yZWQiCiN+IG1zZ3N0ciAiYCVzJyDCsMCtpM61v7v3zL/O4aSszLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiYCVzJyBhdHRyaWJ1dGUgZG9lcyBub3QgYXBwbHkgdG8gdHlwZXMiCiN+IG1zZ3N0ciAiYCVzJyDCsMCtpM+3v6TLpM/FrM3RpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJ3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIHNwZWNpZmllZCBmb3IgYCVzJyBhdHRyaWJ1dGUiCiN+IG1zZ3N0ciAiYCVzJyDCsMCtpMu72MTqpLWk7KS/sPq/9KTOuMS/9KSstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAiYCVzJyBhdHRyaWJ1dGUgaWdub3JlZCIKI34gbXNnc3RyICJgJXMnIMKwwK2kz8y1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgInVua25vd24gbWFjaGluZSBtb2RlIGAlcyciCiN+IG1zZ3N0ciAiydTMwKTKpd6lt6XzpeKhvKXJIGAlcyciCgojfiBtc2dpZCAibm8gZGF0YSB0eXBlIGZvciBtb2RlIGAlcyciCiN+IG1zZ3N0ciAipeKhvKXJIGAlcycgpMvC0KS5pOulx6G8pb+3v6SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0eXBlIHdpdGggbW9yZSBwcmVjaXNpb24gdGhhbiAlcyIKI34gbXNnc3RyICIlcyCk6KTqpOLAusyppMq3vyIKCiN+IG1zZ2lkICJzZWN0aW9uIGF0dHJpYnV0ZSBjYW5ub3QgYmUgc3BlY2lmaWVkIGZvciBsb2NhbCB2YXJpYWJsZXMiCiN+IG1zZ3N0ciAic2VjdGlvbiDCsMCtpM+l7aG8paul68rRv/Sky8LQpLekxqTPu9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAic2VjdGlvbiBvZiBgJXMnIGNvbmZsaWN0cyB3aXRoIHByZXZpb3VzIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgImAlcycgpM6lu6Wvpbel56XzpM/BsMr9pMeky8DruMCktaTspL+k4qTOpMi+18bNpLek3qS5IgoKI34gbXNnaWQgInNlY3Rpb24gYXR0cmlidXRlIG5vdCBhbGxvd2VkIGZvciBgJXMnIgojfiBtc2dzdHIgIqW7pa+lt6XnpfPCsMCtpM8gYCVzJyCky6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJzZWN0aW9uIGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIqW7pa+lt6XnpfPCsMCtpM+ks6TOpb+hvKWypcOlyKTHpM+8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAicmVxdWVzdGVkIGFsaWdubWVudCBpcyBub3QgYSBjb25zdGFudCIKI34gbXNnc3RyICLN17XhpLWk7KS/paKl6aWkpfOl4aXzpcikrMTqv/Skx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJyZXF1ZXN0ZWQgYWxpZ25tZW50IGlzIG5vdCBhIHBvd2VyIG9mIDIiCiN+IG1zZ3N0ciAizde14aS1pOykv6WipemlpKXzpeGl86XIpKwgMiCkzqTZpK2+6KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgdG9vIGxhcmdlIgojfiBtc2dzdHIgIs3XteGktaTspL+loqXppaSl86XhpfOlyKSswuekraS5pK6k3qS5IgoKI34gbXNnaWQgImFsaWdubWVudCBtYXkgbm90IGJlIHNwZWNpZmllZCBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkt6TGpM6loqXppaSl86XhpfOlyKTPu9jE6qTHpK2k3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBkZWZpbmVkIGJvdGggbm9ybWFsbHkgYW5kIGFzIGFuIGFsaWFzIgojfiBtc2dzdHIgImAlcycgpKzEzL7vpM6k4qTOpMilqKWkpeqloqW5pMikzs6+yv2kx8TqtcGktaTspN6kt6S/IgoKI34gbXNnaWQgImFsaWFzIGFyZyBub3QgYSBzdHJpbmciCiN+IG1zZ3N0ciAiYWxpYXMgsPq/9KSsyri7+s7zpMekz6TKpKQiCgojfiBtc2dpZCAiYCVzJyBhdHRyaWJ1dGUgYXBwbGllcyBvbmx5IHRvIGZ1bmN0aW9ucyIKI34gbXNnc3RyICJgJXMnIMKwwK2kz7TYv/Sky8LQpLekxqTOpN/FrM3RpLWk7KTepLkiCgojfiBtc2dpZCAiY2FuJ3Qgc2V0IGAlcycgYXR0cmlidXRlIGFmdGVyIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAixOq1waTOuOWkxyBgJXMnIMKwwK2k8qW7pcOlyKS5pOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIm92ZXJmbG93IGluIGNvbnN0YW50IGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAixOq/9LywpKylqqG8pdChvKXVpe2hvKS3pN6kt6S/IgoKI34gbXNnaWQgImludGVnZXIgb3ZlcmZsb3cgaW4gZXhwcmVzc2lvbiIKI34gbXNnc3RyICK8sKTOwLC/9KSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICJmbG9hdGluZyBwb2ludCBvdmVyZmxvdyBpbiBleHByZXNzaW9uIgojfiBtc2dzdHIgIrywpM7J4sawvq6/9MXAv/SkrKWqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojfiBtc2dpZCAibGFyZ2UgaW50ZWdlciBpbXBsaWNpdGx5IHRydW5jYXRlZCB0byB1bnNpZ25lZCB0eXBlIgojfiBtc2dzdHIgIsLnpK2kysCwv/SkrLDFzNuky8nkuefMtaS3t7+ky8DapOq1zaThpOmk7KTepLekvyIKCiN+IG1zZ2lkICJuZWdhdGl2ZSBpbnRlZ2VyIGltcGxpY2l0bHkgY29udmVydGVkIHRvIHVuc2lnbmVkIHR5cGUiCiN+IG1zZ3N0ciAiyemkzsCwv/SkrLDFzNuky8nkuefMtaS3t7+ky8rRtLmktaTspN6kt6S/IgoKI34gbXNnaWQgIm92ZXJmbG93IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24iCiN+IG1zZ3N0ciAisMXM26TOxOq/9MrRtLmkx6Wqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojfiBtc2dpZCAib3BlcmF0aW9uIG9uIGAlcycgbWF5IGJlIHVuZGVmaW5lZCIKI34gbXNnc3RyICJgJXMnIKTHpM6x6bu7pKzE6rXBpLWk7KTGpKSkyqSkpMi716TvpOyk3qS5IgoKI34gbXNnaWQgImV4cHJlc3Npb24gc3RhdGVtZW50IGhhcyBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAivLCkzsPmpM7KuKTLydS0sMG0t7+krKSipOqk3qS5IgoKI34gbXNnaWQgImNhc2UgbGFiZWwgZG9lcyBub3QgcmVkdWNlIHRvIGFuIGludGVnZXIgY29uc3RhbnQiCiN+IG1zZ3N0ciAiY2FzZSCl6aXZpeuk8sCwv/TE6r/0pMu01Li1pMekraTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHRydXRoLXZhbHVlIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiv7+1tsPNvLCkrMnUxazA2qTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgJXMiCiN+IG1zZ3N0ciAixvO54LHpu7u70iAlcyCkrMnUxazA2qTHpLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBpcyBhbHdheXMgZmFsc2UgZHVlIHRvIGxpbWl0ZWQgcmFuZ2Ugb2YgZGF0YSB0eXBlIgojfiBtc2dzdHIgIqXHobylv7e/pM7Iz7DPwKm4wqTLpOikw6TGoaLI5rPTpKy+76TLIGZhbHNlIKTIpMqk6qTepLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBpcyBhbHdheXMgdHJ1ZSBkdWUgdG8gbGltaXRlZCByYW5nZSBvZiBkYXRhIHR5cGUiCiN+IG1zZ3N0ciAipcehvKW/t7+kzsjPsM/AqbjCpMuk6KTDpMahosjms9OkrL7vpMsgdHJ1ZSCkyKTKpOqk3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gb2YgdW5zaWduZWQgZXhwcmVzc2lvbiA+PSAwIGlzIGFsd2F5cyB0cnVlIgojfiBtc2dzdHIgIsnkuefMtaS3pM68sCA+PSAwIKTIpKSkpsjms9Okz77vpMsgdHJ1ZSCkx6S5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gb2YgdW5zaWduZWQgZXhwcmVzc2lvbiA8IDAgaXMgYWx3YXlzIGZhbHNlIgojfiBtc2dzdHIgIsnkuefMtaS3pM68sCA8IDAgpMikpKSmyOaz06TPvu+kyyBmYWxzZSCkx6S5IgoKI34gbXNnaWQgInN0cnVjdCB0eXBlIHZhbHVlIHVzZWQgd2hlcmUgc2NhbGFyIGlzIHJlcXVpcmVkIgojfiBtc2dzdHIgIqW5paul6aG8pKzJrM3XpMq+7L3qpMu5vcKkws63v6TOw82krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJ1bmlvbiB0eXBlIHZhbHVlIHVzZWQgd2hlcmUgc2NhbGFyIGlzIHJlcXVpcmVkIgojfiBtc2dzdHIgIqW5paul6aG8pKzJrM3XpMq+7L3qpMu2ps3Rws63v6TOw82krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJhcnJheSB0eXBlIHZhbHVlIHVzZWQgd2hlcmUgc2NhbGFyIGlzIHJlcXVpcmVkIgojfiBtc2dzdHIgIqW5paul6aG8pKzJrM3XpMq+7L3qpMvH287zt7+kzsPNpKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgYXNzaWdubWVudCB1c2VkIGFzIHRydXRoIHZhbHVlIgojfiBtc2dzdHIgIr+/tbbDzaTIpLekxrvIpO+k7KTrwuXG/qTOpN6k76TqpMekz6GitN2z57jMpM67yM3RpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgYHJlc3RyaWN0JyIKI34gbXNnc3RyICJgcmVzdHJpY3QnIKTOzdHLoaSsydTFrMDapMekuSIKCiN+IG1zZ2lkICJ0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIrTYv/QgYCVzJyCk2KTOsPq/9KSsvq+kyqS5pK6k3qS5IgoKI34gbXNnaWQgInRvbyBtYW55IGFyZ3VtZW50cyB0byBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIrTYv/QgYCVzJyCky8LQpLmk67D6v/SkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAicG9pbnRlcnMgYXJlIG5vdCBwZXJtaXR0ZWQgYXMgY2FzZSB2YWx1ZXMiCiN+IG1zZ3N0ciAiY2FzZSCkzsPNpMikt6TGpM6l3aWkpfOlv6TPtfaktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgcmFuZ2UgZXhwcmVzc2lvbnMgaW4gc3dpdGNoIHN0YXRlbWVudHMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkx6TPIHN3aXRjaCDKuKTHpM7Iz7DPvLCkz7bYpLik6aTspMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyByYW5nZSBleHByZXNzaW9ucyBpbiBzd2l0Y2ggc3RhdGVtZW50cyIKI34gbXNnc3RyICJJU08gQyCkx6TPIHN3aXRjaCDKuKTHpM7Iz7DPvLCkz7bYpLik6aTspMakpKTepLkiCgojfiBtc2dpZCAiZW1wdHkgcmFuZ2Ugc3BlY2lmaWVkIgojfiBtc2dzdHIgIrb1pM7Iz7DPpKy72MTqpLWk7KTepLekvyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgKG9yIG92ZXJsYXBwaW5nKSBjYXNlIHZhbHVlIgojfiBtc2dzdHIgIsbzvcWkziikoqTrpKSkz73FyqOkt6TGpKSk6ykgY2FzZSCkzsPNIgoKI34gbXNnaWQgInRoaXMgaXMgdGhlIGZpcnN0IGVudHJ5IG92ZXJsYXBwaW5nIHRoYXQgdmFsdWUiCiN+IG1zZ3N0ciAipLOk7KSspL2kzsPNpMi9xcqjpLekv7rHvemkzrngzNykx6S5IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBjYXNlIHZhbHVlIgojfiBtc2dzdHIgIr3FyqOkt6S/IGNhc2UgpM7DzSIKCiN+IG1zZ2lkICJwcmV2aW91c2x5IHVzZWQgaGVyZSIKI34gbXNnc3RyICLBsKTLpLOks6THu8ik76TspN6kt6S/IgoKI34gbXNnaWQgIm11bHRpcGxlIGRlZmF1bHQgbGFiZWxzIGluIG9uZSBzd2l0Y2giCiN+IG1zZ3N0ciAisOykxKTOIHN3aXRjaCCky8qjv/SkziBkZWZhdWx0IKXppdml66SspKKk6qTepLkiCgojfiBtc2dpZCAidGhpcyBpcyB0aGUgZmlyc3QgZGVmYXVsdCBsYWJlbCIKI34gbXNnc3RyICKks6TspKy6x73ppM4gZGVmYXVsdCCl6aXZpeukx6S5IgoKI34gbXNnaWQgIi1XZm9ybWF0LXkyayBpZ25vcmVkIHdpdGhvdXQgLVdmb3JtYXQiCiN+IG1zZ3N0ciAiLVdmb3JtYXQteTJrIKTPzLW766S1pOyk3qS3pL+hyi1XZm9ybWF0IKSspKKk6qTepLuk86HLIgoKI34gbXNnaWQgIi1XZm9ybWF0LWV4dHJhLWFyZ3MgaWdub3JlZCB3aXRob3V0IC1XZm9ybWF0IgojfiBtc2dzdHIgIi1XZm9ybWF0LWV4dHJhLWFyZ3MgpM/MtbvrpLWk7KTepLekv6HKLVdmb3JtYXQgpKykoqTqpN6ku6TzocsiCgojfiBtc2dpZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCBpZ25vcmVkIHdpdGhvdXQgLVdmb3JtYXQiCiN+IG1zZ3N0ciAiLVdmb3JtYXQtbm9ubGl0ZXJhbCCkz8y1u+uktaTspN6kt6S/ocotV2Zvcm1hdCCkrKSipOqk3qS7pPOhyyIKCiN+IG1zZ2lkICItV2Zvcm1hdC1zZWN1cml0eSBpZ25vcmVkIHdpdGhvdXQgLVdmb3JtYXQiCiN+IG1zZ3N0ciAiLVdmb3JtYXQtc2VjdXJpdHkgpM/MtbvrpLWk7KTepLekv6HKLVdmb3JtYXQgpKykoqTqpN6ku6TzocsiCgojfiBtc2dpZCAiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgaWdub3JlZCB3aXRob3V0IC1XZm9ybWF0IgojfiBtc2dzdHIgIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIKTPzLW766S1pOyk3qS3pL+hyi1XZm9ybWF0IKSspKKk6qTepLuk86HLIgoKI34gbXNnaWQgInZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUiCiN+IG1zZ3N0ciAidm9pZCCkzsPNpKzL3M3opM6w1cyjxMyk6qTLzLW766S1pOyk3qS7pPOkx6S3pL8iCgojfiBtc2dpZCAiY29udmVyc2lvbiB0byBub24tc2NhbGFyIHR5cGUgcmVxdWVzdGVkIgojfiBtc2dzdHIgIsjzpbmlq6Xpoby3v6TYpM7K0bS5pKzN17XhpLWk7KTepLkiCgojfiBtc2dpZCAidW5rbm93biBDIHN0YW5kYXJkIGAlcyciCiN+IG1zZ3N0ciAiydTMwKTKIEMgybi94CBgJXMnIgoKI34gbXNnaWQgImFycmF5IGAlcycgYXNzdW1lZCB0byBoYXZlIG9uZSBlbGVtZW50IgojfiBtc2dzdHIgIsfbzvMgYCVzJyCkz7DszdfBx6Tyu/2kw6TGpKSk66TipM6kyLirpMqktaTspN6kuSIKCiN+IG1zZ2lkICJgc3RydWN0ICVzJyBpbmNvbXBsZXRlIGluIHNjb3BlIGVuZGluZyBoZXJlIgojfiBtc2dzdHIgIqW5pbOhvKXXpKy9qqTvpOuks6TOsMzD1qTHoaJgc3RydWN0ICVzJyCkrMnUtLDBtKTHpLkiCgojfiBtc2dpZCAiYHVuaW9uICVzJyBpbmNvbXBsZXRlIGluIHNjb3BlIGVuZGluZyBoZXJlIgojfiBtc2dzdHIgIqW5pbOhvKXXpKy9qqTvpOuks6TOyfTKrKTHIGB1bmlvbiAlcycgpKzJ1LSwwbSkx6S5IgoKI34gbXNnaWQgImBlbnVtICVzJyBpbmNvbXBsZXRlIGluIHNjb3BlIGVuZGluZyBoZXJlIgojfiBtc2dzdHIgIqW5pbOhvKXXpKy9qqTvpOuks6TOyfTKrKTHIGBlbnVtICVzJyCkrMnUtLDBtKTHpLkiCgojfiBtc2dpZCAibGFiZWwgYCVzJyBkZWZpbmVkIGJ1dCBub3QgdXNlZCIKI34gbXNnc3RyICKl6aXZpesgYCVzJyCkrMTqtcGktaTspN6kt6S/pKy7yKTvpOykxqSkpN6ku6TzIgoKI34gbXNnaWQgInNoYWRvd2luZyBidWlsdC1pbiBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIsHIpN+5/qTftNi/9CBgJXMnIKTyyqSkpLGjpLek3qS5IgoKI34gbXNnaWQgInNoYWRvd2luZyBsaWJyYXJ5IGZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAipemlpKXWpeml6rTYv/QgYCVzJyCk8sqkpKSxo6S3pN6kuSIKCiN+IG1zZ2lkICJsaWJyYXJ5IGZ1bmN0aW9uIGAlcycgZGVjbGFyZWQgYXMgbm9uLWZ1bmN0aW9uIgojfiBtc2dzdHIgIqXppaSl1qXppeq02L/0IGAlcycgpM/I87TYv/SkyKS3pMbA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJidWlsdC1pbiBmdW5jdGlvbiBgJXMnIGRlY2xhcmVkIGFzIG5vbi1mdW5jdGlvbiIKI34gbXNnc3RyICLByKTfuf6k37TYv/QgYCVzJyCkz8jztNi/9KTIpLekxsDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgcmVkZWNsYXJlZCBhcyBkaWZmZXJlbnQga2luZCBvZiBzeW1ib2wiCiN+IG1zZ3N0ciAiYCVzJyCkrMrMpM6lt6Xzpdyl67zvpMikt6TGusbA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgIsGwyv2kx6TOIGAlcycgpM7A67jAIgoKI34gbXNnaWQgImNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIsHIpN+5/qTftNi/9CBgJXMnIKTIt7+krMy3veKkt6TepLkiCgojfiBtc2dpZCAiY29uZmxpY3RpbmcgdHlwZXMgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkyLe/pKzMt73ipLek3qS5IgoKI34gbXNnaWQgIkEgcGFyYW1ldGVyIGxpc3Qgd2l0aCBhbiBlbGxpcHNpcyBjYW4ndCBtYXRjaCBhbiBlbXB0eSBwYXJhbWV0ZXIgbmFtZSBsaXN0IGRlY2xhcmF0aW9uLiIKI34gbXNnc3RyICK+ys6sta255snVpK2l0aXppeGlv6XqpbmlyKTPoaK29aTOsr6w+r/0zL6l6qW5pcjA67jApMiw7MPXpMekraTepLuk86GjIgoKI34gbXNnaWQgIkFuIGFyZ3VtZW50IHR5cGUgdGhhdCBoYXMgYSBkZWZhdWx0IHByb21vdGlvbiBjYW4ndCBtYXRjaCBhbiBlbXB0eSBwYXJhbWV0ZXIgbmFtZSBsaXN0IGRlY2xhcmF0aW9uLiIKI34gbXNnc3RyICKlx6XVpaml66XIpMezyr7lpLKktaTspOu3v6TOsPq/9KSsoaK29aTOsr6w+r/0zL6l6qW5pcjA67jApMjFrLnnpLek3qS7pPOhoyIKCiN+IG1zZ2lkICJyZWRlZmluaXRpb24gb2YgYCVzJyIKI34gbXNnc3RyICJgJXMnIKSsusbE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICJyZWRlY2xhcmF0aW9uIG9mIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkrLrGwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiY29uZmxpY3RpbmcgZGVjbGFyYXRpb25zIG9mIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkzsDruMCkrMy3veKkt6TGpKSk3qS5IgoKI34gbXNnaWQgImAlcycgcHJldmlvdXNseSBkZWZpbmVkIGhlcmUiCiN+IG1zZ3N0ciAiYCVzJyCkz8GwpMuks6SzpMfE6rXBpLWk7KTepLekvyIKCiN+IG1zZ2lkICJgJXMnIHByZXZpb3VzbHkgZGVjbGFyZWQgaGVyZSIKI34gbXNnc3RyICJgJXMnIKTPwbCky6SzpLOkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgInByb3RvdHlwZSBmb3IgYCVzJyBmb2xsb3dzIgojfiBtc2dzdHIgImAlcycgpM6l16Xtpcilv6WkpdekrLjlpO2ky6SipOqk3qS5IgoKI34gbXNnaWQgIm5vbi1wcm90b3R5cGUgZGVmaW5pdGlvbiBoZXJlIgojfiBtc2dzdHIgIsjzpdel7aXIpb+lpKXXxOq1waSspLOks6TLpKKk6qTepLkiCgojfiBtc2dpZCAicHJvdG90eXBlIGZvciBgJXMnIGZvbGxvd3MgYW5kIG51bWJlciBvZiBhcmd1bWVudHMgZG9lc24ndCBtYXRjaCIKI34gbXNnc3RyICJgJXMnIKTOpdel7aXIpb+lpKXXpKy45aTtpMukoqTqoaKw+r/0pM64xL/0pKyw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAicHJvdG90eXBlIGZvciBgJXMnIGZvbGxvd3MgYW5kIGFyZ3VtZW50ICVkIGRvZXNuJ3QgbWF0Y2giCiN+IG1zZ3N0ciAiYCVzJyCkzqXXpe2lyKW/paSl16SsuOWk7aTLpKKk6qGisPq/9CAlZCCkrLDsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGRlY2xhcmVkIGlubGluZSBhZnRlciBiZWluZyBjYWxsZWQiCiN+IG1zZ3N0ciAiYCVzJyCkz7jGpNO90KS1pOyk66TopOqk4rjlpO2kxyBpbmxpbmUgwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJgJXMnIGRlY2xhcmVkIGlubGluZSBhZnRlciBpdHMgZGVmaW5pdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPpL2kzsTqtcGk6KTqpOK45aTHIGlubGluZSDA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInN0YXRpYyBkZWNsYXJhdGlvbiBmb3IgYCVzJyBmb2xsb3dzIG5vbi1zdGF0aWMiCiN+IG1zZ3N0ciAiYCVzJyCkz8jzIHN0YXRpYyCkzrjlpMcgc3RhdGljIMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAibm9uLXN0YXRpYyBkZWNsYXJhdGlvbiBmb3IgYCVzJyBmb2xsb3dzIHN0YXRpYyIKI34gbXNnc3RyICJgJXMnIKTPIHN0YXRpYyCkzrjlpMfI8yBzdGF0aWMgwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJjb25zdCBkZWNsYXJhdGlvbiBmb3IgYCVzJyBmb2xsb3dzIG5vbi1jb25zdCIKI34gbXNnc3RyICJgJXMnIKTPyPMgY29uc3QgpM645aTHIGNvbnN0IMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAidHlwZSBxdWFsaWZpZXJzIGZvciBgJXMnIGNvbmZsaWN0IHdpdGggcHJldmlvdXMgZGVjbCIKI34gbXNnc3RyICJgJXMnIKTOt7+9pL7+u9KkrMGwyv2kzsDruMCkyMy3veKkt6TepLkiCgojfiBtc2dpZCAicmVkdW5kYW50IHJlZGVjbGFyYXRpb24gb2YgYCVzJyBpbiBzYW1lIHNjb3BlIgojfiBtc2dzdHIgImAlcycgpM6+6cS5pMq6xsDruMCkrMaxsOyluaWzobyl18bipMukoqTqpN6kuSIKCiN+IG1zZ2lkICJuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCkziBleHRlcm4gwOu4wKSspc2luaXIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJgJXMnIHVzZWQgcHJpb3IgdG8gZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz8DruMCk6KTqpOLA6KTLu8jN0aS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYCVzJyB3YXMgZGVjbGFyZWQgaW1wbGljaXRseSBgZXh0ZXJuJyBhbmQgbGF0ZXIgYHN0YXRpYyciCiN+IG1zZ3N0ciAiYCVzJyCkz7DFzNukyyBgZXh0ZXJuJyDA67jApLWk7KGiuOWkyyBgc3RhdGljJyDA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJ0eXBlIG1pc21hdGNoIHdpdGggcHJldmlvdXMgZXh0ZXJuYWwgZGVjbCIKI34gbXNnc3RyICK3v6SswbDK/aTOs7DJ9MDruMCkyLDsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJwcmV2aW91cyBleHRlcm5hbCBkZWNsIG9mIGAlcyciCiN+IG1zZ3N0ciAiwbDK/aTOIGAlcycgpM6zsMn0wOu4wCIKCiN+IG1zZ2lkICJ0eXBlIG1pc21hdGNoIHdpdGggcHJldmlvdXMgaW1wbGljaXQgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAit7+krMGwyv2kzrDFzNukzsDruMCkyLDsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJwcmV2aW91cyBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgIsGwyv2kx6TOIGAlcycgpM6wxczbxaqkysDruMAiCgojfiBtc2dpZCAidHlwZSBvZiBleHRlcm5hbCBgJXMnIGlzIG5vdCBnbG9iYWwiCiN+IG1zZ3N0ciAis7DJ9CBgJXMnIKTOt7+kz6Wwpe2hvKXQpeukx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIHdhcyBwcmV2aW91c2x5IGltcGxpY2l0bHkgZGVjbGFyZWQgdG8gcmV0dXJuIGBpbnQnIgojfiBtc2dzdHIgImAlcycgpM/BsMr9pMewxczbxaqkyyBgaW50JyCk8srWpLmkyMDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgd2FzIGRlY2xhcmVkIGBleHRlcm4nIGFuZCBsYXRlciBgc3RhdGljJyIKI34gbXNnc3RyICJgJXMnIKTPIGBleHRlcm4nIKTIwOu4wKS1pOyhorjlpMcgYHN0YXRpYycgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJleHRlcm4gZGVjbGFyYXRpb24gb2YgYCVzJyBkb2Vzbid0IG1hdGNoIGdsb2JhbCBvbmUiCiN+IG1zZ3N0ciAiYCVzJyCkzmV4dGVybiDA67jApM+lsKXtobyl0KXrpM6kvaTspMiw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAiYCVzJyBsb2NhbGx5IGV4dGVybmFsIGJ1dCBnbG9iYWxseSBzdGF0aWMiCiN+IG1zZ3N0ciAiYCVzJyCkz6Xtobylq6Xrxaqky6TPIGV4dGVybiCkx6S5pKyhoqWwpe2hvKXQpevFqqTLIHN0YXRpYyCkx6S5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgc2hhZG93cyBhIHBhcmFtZXRlciIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPsr6w+r/0pPLKpKSksaOkt6TepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBzaGFkb3dzIGEgc3ltYm9sIGZyb20gdGhlIHBhcmFtZXRlciBsaXN0IgojfiBtc2dzdHIgImAlcycgpM7A67jApM+yvrD6v/Sl6qW5pcikzqW3pfOl3KXrpPLKpKSksaOkt6TepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBzaGFkb3dzIHByZXZpb3VzIGxvY2FsIgojfiBtc2dzdHIgImAlcycgpM7A67jApM/BsMr9pM6l7aG8paul66W3pfOl3KXrpPLKpKSksaOkt6TepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBzaGFkb3dzIGdsb2JhbCBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPpbCl7aG8pdCl68DruMCk8sqkpKSxo6S3pN6kuSIKCiN+IG1zZ2lkICJmdW5jdGlvbiBgJXMnIHdhcyBwcmV2aW91c2x5IGRlY2xhcmVkIHdpdGhpbiBhIGJsb2NrIgojfiBtc2dzdHIgIrTYv/QgYCVzJyCkz6XWpe2lw6WvxuKkzsGwyv2kx8DruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICK02L/0IGAlcycgpM6wxczbpM7A67jAIgoKI34gbXNnaWQgImxhYmVsICVzIHJlZmVyZW5jZWQgb3V0c2lkZSBvZiBhbnkgZnVuY3Rpb24iCiN+IG1zZ3N0ciAipeml2aXrICVzIKSspKKk6aTmpOu02L/0pM6zsMKmpMe7sr7IpLWk7KTepLekvyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgbGFiZWwgZGVjbGFyYXRpb24gYCVzJyIKI34gbXNnc3RyICKl6aXZpeukzsDruMAgYCVzJyCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgInRoaXMgaXMgYSBwcmV2aW91cyBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICLBsMr9pMekziBgJXMnIKTOwOu4wCIKCiN+IG1zZ2lkICJ1bm5hbWVkIHN0cnVjdC91bmlvbiB0aGF0IGRlZmluZXMgbm8gaW5zdGFuY2VzIgojfiBtc2dzdHIgIsy1zL65vcKkws4vtqbN0cLOpKyhoqS9pM6lpKXzpbmlv6Xzpbmk8sTqtcGkt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAidXNlbGVzcyBrZXl3b3JkIG9yIHR5cGUgbmFtZSBpbiBlbXB0eSBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICK29aTOwOu4wKTOw+aky6GizLWw1cyjpMqlraG8pe+hvKXJy/Skz7e/zL6krKSipOqk3qS5IgoKI34gbXNnaWQgInR3byB0eXBlcyBzcGVjaWZpZWQgaW4gb25lIGVtcHR5IGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrDspMSkzrb1pM7A67jAw+aky6GixvOkxKTOt7+krLvYxOqktaTspMakpKTepLkiCgojfiBtc2dpZCAiZW1wdHkgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAitvWkzsDruMCkx6S5IgoKI34gbXNnaWQgImAlcycgaXMgdXN1YWxseSBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgImAlcycgpM/EzL7vpM+02L/0pMekuSIKCiN+IG1zZ2lkICJ0eXBlZGVmIGAlcycgaXMgaW5pdGlhbGl6ZWQiCiN+IG1zZ3N0ciAidHlwZWRlZiBgJXMnIKSsvem0/LK9pLWk7KTepLekvyIKCiN+IG1zZ2lkICJmdW5jdGlvbiBgJXMnIGlzIGluaXRpYWxpemVkIGxpa2UgYSB2YXJpYWJsZSIKI34gbXNnc3RyICK02L/0IGAlcycgpKzK0b/0pMekoqTrpKukzqTopKaky73ptPyyvaS1pOyk3qS3pL8iCgojfiBtc2dpZCAicGFyYW1ldGVyIGAlcycgaXMgaW5pdGlhbGl6ZWQiCiN+IG1zZ3N0ciAisr6w+r/0IGAlcycgpKy96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgInZhcmlhYmxlLXNpemVkIG9iamVjdCBtYXkgbm90IGJlIGluaXRpYWxpemVkIgojfiBtc2dzdHIgIrLEytHEuaWqpdaluKWnpa+lyKTPvem0/LK9pLWk7KTKpKSks6TIpMukyqTrpMekt6TnpKYiCgojfiBtc2dpZCAidmFyaWFibGUgYCVzJyBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLK0b/0IGAlcycgpMukz73ptPyyvbvSpKykoqTqpN6kuaSsoaLJ1LSwwbS3v6THpLkiCgojfiBtc2dpZCAiZWxlbWVudHMgb2YgYXJyYXkgYCVzJyBoYXZlIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLH287zIGAlcycgpM7N18HHpMvJ1LSwwbS3v6SspKKk6qTepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBoYXMgYGV4dGVybicgYW5kIGlzIGluaXRpYWxpemVkIgojfiBtc2dzdHIgImAlcycgpM7A67jApMsgYGV4dGVybicgpKykxKSkpMakqqTqoaK96bT8sr2k4qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBmYWlscyB0byBkZXRlcm1pbmUgc2l6ZSBvZiBgJXMnIgojfiBtc2dzdHIgIr3ptPyyvbvSpM8gYCVzJyCkzqW1paSluqTOxsPE6qTLvLrH1KS3pN6kt6S/IgoKI34gbXNnaWQgImFycmF5IHNpemUgbWlzc2luZyBpbiBgJXMnIgojfiBtc2dzdHIgImAlcycgpMekzsfbzvOltaWkpbqk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJ6ZXJvIG9yIG5lZ2F0aXZlIHNpemUgYXJyYXkgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOx9vO86W1paSluqSspbyl7cv0pM/J6aTHpLkiCgojfiBtc2dpZCAic3RvcmFnZSBzaXplIG9mIGAlcycgaXNuJ3Qga25vd24iCiN+IG1zZ3N0ciAiYCVzJyCkzs7OsOiltaWkpbqkrKTvpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJzdG9yYWdlIHNpemUgb2YgYCVzJyBpc24ndCBjb25zdGFudCIKI34gbXNnc3RyICJgJXMnIKTOzs6w6KW1paSluqSssOzE6qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImlnbm9yaW5nIGFzbS1zcGVjaWZpZXIgZm9yIG5vbi1zdGF0aWMgbG9jYWwgdmFyaWFibGUgYCVzJyIKI34gbXNnc3RyICLI8yBzdGF0aWMgpe2hvKWrpevK0b/0IGAlcycgpNikziBhc20gu9jE6rvSpM/MtbvrpLWk7KTepLkiCgojfiBtc2dpZCAiQU5TSSBDIGZvcmJpZHMgcGFyYW1ldGVyIGAlcycgc2hhZG93aW5nIHR5cGVkZWYiCiN+IG1zZ3N0ciAiQU5TSSBDIKTPIHR5cGVkZWYgpPLKpKSksaOkubK+sPq/9CBgJXMnIKTyttikuKTGpKSk3qS5IgoKI34gbXNnaWQgImBsb25nIGxvbmcgbG9uZycgaXMgdG9vIGxvbmcgZm9yIEdDQyIKI34gbXNnc3RyICJgbG9uZyBsb25nIGxvbmcnIKTPIEdDQyCky6TIpMOkxsS5pLmkrqTepLkiCgojfiBtc2dpZCAiSVNPIEM4OSBkb2VzIG5vdCBzdXBwb3J0IGBsb25nIGxvbmcnIgojfiBtc2dzdHIgIklTTyBDODkgpM8gYGxvbmcgbG9uZycgpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgYCVzJyIKI34gbXNnc3RyICJgJXMnIKSsvcXKo6S3pMakpKTepLkiCgojfiBtc2dpZCAidHdvIG9yIG1vcmUgZGF0YSB0eXBlcyBpbiBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM7A67jApMvG86TEsMq+5aTOpcehvKW/t7+krLvYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgZmFpbHMgdG8gYmUgYSB0eXBlZGVmIG9yIGJ1aWx0IGluIHR5cGUiCiN+IG1zZ3N0ciAiYCVzJyCk8iB0eXBlZGVmIKTepL+kz8HIpN+5/qTft7+ky6THpK2k3qS7pPMiCgojfiBtc2dpZCAidHlwZSBkZWZhdWx0cyB0byBgaW50JyBpbiBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM7A67jApMe3v6Sspcel1aWppeulyKTOIGBpbnQnIKTIpLWk7KTepLekvyIKCiN+IG1zZ2lkICJib3RoIGxvbmcgYW5kIHNob3J0IHNwZWNpZmllZCBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkt6TGIGxvbmcgpMggc2hvcnQgpM7Ovsr9pKy72MTqpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImxvbmcgb3Igc2hvcnQgc3BlY2lmaWVkIHdpdGggY2hhciBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkt6TGIGNoYXIgpMikyKTipMsgbG9uZyCk3qS/pM8gc2hvcnQgpKy72MTqpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImxvbmcgb3Igc2hvcnQgc3BlY2lmaWVkIHdpdGggZmxvYXRpbmcgdHlwZSBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkt6TGyeLGsL6uv/S3v6TIpMik4qTLIGxvbmcgpN6kv6TPIHNob3J0IKSsu9jE6qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJ0aGUgb25seSB2YWxpZCBjb21iaW5hdGlvbiBpcyBgbG9uZyBkb3VibGUnIgojfiBtc2dzdHIgIs2jsOykzs2tuPqkysHIueek76S7pM8gYGxvbmcgZG91YmxlJyCkx6S5IgoKI34gbXNnaWQgImJvdGggc2lnbmVkIGFuZCB1bnNpZ25lZCBzcGVjaWZpZWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxsnkueakoqTqpMjJ5LnmpMqkt6TOzr7K/aSsu9jE6qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJsb25nLCBzaG9ydCwgc2lnbmVkIG9yIHVuc2lnbmVkIGludmFsaWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLekxiBsb25nLCBzaG9ydCwgc2lnbmVkIKTepL+kzyB1bnNpZ25lZCCkz8nUxazA2qTHpLkiCgojfiBtc2dpZCAibG9uZywgc2hvcnQsIHNpZ25lZCBvciB1bnNpZ25lZCB1c2VkIGludmFsaWRseSBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkuaTrIGxvbmcsIHNob3J0LCBzaW5nZWQgpOQgdW5zaWduZWQgpM67yM3RpM/J1MWswNqkx6S5IgoKI34gbXNnaWQgImNvbXBsZXggaW52YWxpZCBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTLwtCkt6TGIGNvbXBsZXggpM/J1MWswNqkx6S5IgoKI34gbXNnaWQgIklTTyBDODkgZG9lcyBub3Qgc3VwcG9ydCBjb21wbGV4IHR5cGVzIgojfiBtc2dzdHIgIklTTyBDODkgpM8gY29tcGxleCC3v6TyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCBwbGFpbiBgY29tcGxleCcgbWVhbmluZyBgZG91YmxlIGNvbXBsZXgnIgojfiBtc2dzdHIgIklTTyBDIKTPIGBkb3VibGUgY29tcGxleCcgpPKw1cyjpLmk68y1vaS+/qTOIGBjb21wbGV4JyCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGRvZXMgbm90IHN1cHBvcnQgY29tcGxleCBpbnRlZ2VyIHR5cGVzIgojfiBtc2dzdHIgIklTTyBDIKTPwLC/9Le/pM4gY29tcGxleCCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBgY29uc3QnIgojfiBtc2dzdHIgIr3FyqOkt6S/IGBjb25zdCciCgojfiBtc2dpZCAiZHVwbGljYXRlIGByZXN0cmljdCciCiN+IG1zZ3N0ciAivcXKo6S3pL+l6aXZpesgYHJlc3RyaWN0JyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgYHZvbGF0aWxlJyIKI34gbXNnc3RyICK9xcqjpLekvyBgdm9sYXRpbGUnIgoKI34gbXNnaWQgIm11bHRpcGxlIHN0b3JhZ2UgY2xhc3NlcyBpbiBkZWNsYXJhdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM7A67jApMukqqSkpMbKo7/0pM7K3cK4pa+l6aW5IgoKI34gbXNnaWQgImZ1bmN0aW9uIGRlZmluaXRpb24gZGVjbGFyZWQgYGF1dG8nIgojfiBtc2dzdHIgIrTYv/SkzsTqtcGkrCBgYXV0bycgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJmdW5jdGlvbiBkZWZpbml0aW9uIGRlY2xhcmVkIGByZWdpc3RlciciCiN+IG1zZ3N0ciAitNi/9KTOxOq1waSsIGByZWdpc3RlcicgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJmdW5jdGlvbiBkZWZpbml0aW9uIGRlY2xhcmVkIGB0eXBlZGVmJyIKI34gbXNnc3RyICK02L/0pM7E6rXBpKwgYHR5cGVkZWYnIKTIwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBzcGVjaWZpZWQgZm9yIHN0cnVjdHVyZSBmaWVsZCBgJXMnIgojfiBtc2dzdHIgIrm9wqTCzqXVpaOhvKXrpckgYCVzJyCky7vYxOqktaTspL+1rbKxpa+l6aW5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVkIGZvciBwYXJhbWV0ZXIgYCVzJyIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkx7vYxOqktaTspL+1rbKxpa+l6aW5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVkIGZvciB0eXBlbmFtZSIKI34gbXNnc3RyICK3v8y+pMvC0KS3pMa72MTqpLWk7KS/ta2ysaWvpemluSIKCiN+IG1zZ2lkICJgJXMnIGluaXRpYWxpemVkIGFuZCBkZWNsYXJlZCBgZXh0ZXJuJyIKI34gbXNnc3RyICJgJXMnIKSsvem0/LK9pLWk7KTrpMiks6TtpMehomBleHRlcm4nIMDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImAlcycgaGFzIGJvdGggYGV4dGVybicgYW5kIGluaXRpYWxpemVyIgojfiBtc2dzdHIgImAlcycgpMsgYGV4dGVybicgpMi96bT8sr270qTOzr7K/aSspKKk6qTepLkiCgojfiBtc2dpZCAibmVzdGVkIGZ1bmN0aW9uIGAlcycgZGVjbGFyZWQgYGV4dGVybiciCiN+IG1zZ3N0ciAipc2luaXIpLekv7TYv/QgYCVzJyCkzyBgZXh0ZXJuJyCky8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgInRvcC1sZXZlbCBkZWNsYXJhdGlvbiBvZiBgJXMnIHNwZWNpZmllcyBgYXV0byciCiN+IG1zZ3N0ciAiYCVzJyCkzqXIpcOl16Xspdml66TOwOu4wKSsIGBhdXRvJyCk8rvYxOqkt6TepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBhcyBhcnJheSBvZiB2b2lkcyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTPIHZvaWQgpM7H287zIgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIG9mIGAlcycgYXMgYXJyYXkgb2YgZnVuY3Rpb25zIgojfiBtc2dzdHIgImAlcycgpM7A67jApM+02L/0pM7H287zIgoKI34gbXNnaWQgInNpemUgb2YgYXJyYXkgYCVzJyBoYXMgbm9uLWludGVnZXIgdHlwZSIKI34gbXNnc3RyICLH287zIGAlcycgpM7C56StpLWkz8jzwLC/9Le/IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgemVyby1zaXplIGFycmF5IGAlcyciCiN+IG1zZ3N0ciAiSVNPIEMgpM8gpbWlpKW6IDAgpM7H287zIGAlcycgpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJzaXplIG9mIGFycmF5IGAlcycgaXMgbmVnYXRpdmUiCiN+IG1zZ3N0ciAix9vO8yBgJXMnIKTOwuekraS1pKzJ6aTHpLkiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIGFycmF5IGAlcycgd2hvc2Ugc2l6ZSBjYW4ndCBiZSBldmFsdWF0ZWQiCiN+IG1zZ3N0ciAiSVNPIEM4OSCkz6W1paSluqSsyb6ywaTHpK2kyqSkx9vO8yBgJXMnIKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEM4OSBmb3JiaWRzIHZhcmlhYmxlLXNpemUgYXJyYXkgYCVzJyIKI34gbXNnc3RyICJJU08gQzg5IKTPssTK0cS5pbWlpKW6pM7H287zIGAlcycgpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJzaXplIG9mIGFycmF5IGAlcycgaXMgdG9vIGxhcmdlIgojfiBtc2dzdHIgIsfbzvMgYCVzJyCkzsLnpK2ktaSswuekraS5pK6k3qS5IgoKI34gbXNnaWQgIklTTyBDODkgZG9lcyBub3Qgc3VwcG9ydCBmbGV4aWJsZSBhcnJheSBtZW1iZXJzIgojfiBtc2dzdHIgIklTTyBDODkgpM+yxMrRx9vO86XhpfOl0KTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiYXJyYXkgdHlwZSBoYXMgaW5jb21wbGV0ZSBlbGVtZW50IHR5cGUiCiN+IG1zZ3N0ciAix9vO86TOt7+krMnUtLDBtM3Xwce3v6Tyu/2kw6TGpKSk3qS5IgoKI34gbXNnaWQgIkFOU0kgQyBmb3JiaWRzIGNvbnN0IG9yIHZvbGF0aWxlIGZ1bmN0aW9uIHR5cGVzIgojfiBtc2dzdHIgIkFOU0kgQyCkzyBjb25zdCCk5CB2b2xhdGlsZSC02L/0t7+k8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgImAlcycgZGVjbGFyZWQgYXMgZnVuY3Rpb24gcmV0dXJuaW5nIGEgZnVuY3Rpb24iCiN+IG1zZ3N0ciAiYCVzJyCkz7TYv/Sk8srWpLm02L/0pMikt6TGwOu4wKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJgJXMnIGRlY2xhcmVkIGFzIGZ1bmN0aW9uIHJldHVybmluZyBhbiBhcnJheSIKI34gbXNnc3RyICJgJXMnIKTPx9vO86TyytakubTYv/SkyKS3pMbA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgcXVhbGlmaWVkIHZvaWQgZnVuY3Rpb24gcmV0dXJuIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMgpM+9pL7+ydWkrSB2b2lkILe/pM7M4aTqw82k8rv9pMS02L/0pPK22KS4pN6kuSIKCiN+IG1zZ2lkICJ0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZSIKI34gbXNnc3RyICK02L/0zOGk6sPNpM63v72kvv670qTPzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBxdWFsaWZpZWQgZnVuY3Rpb24gdHlwZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+02L/0pM63v72kvv670qTyttikuKTepLkiCgojfiBtc2dpZCAiaW52YWxpZCB0eXBlIG1vZGlmaWVyIHdpdGhpbiBwb2ludGVyIGRlY2xhcmF0b3IiCiN+IG1zZ3N0ciAipd2lpKXzpb/A67jAu9Kky8nUxazA2qTKt7+9pL7+u9IiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBjb25zdCBvciB2b2xhdGlsZSBmdW5jdGlvbiB0eXBlcyIKI34gbXNnc3RyICJJU08gQyCkzyBjb25zdCCk5CB2b2xhdGlsZSCkzrTYv/S3v6TyttikuKTepLkiCgojfiBtc2dpZCAidmFyaWFibGUgb3IgZmllbGQgYCVzJyBkZWNsYXJlZCB2b2lkIgojfiBtc2dzdHIgIsrRv/Sk3qS/pM/OzrDoIGAlcycgpM8gdm9pZCCkyMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiZmllbGQgYCVzJyBkZWNsYXJlZCBhcyBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgIs7OsOggYCVzJyCkz7TYv/SkyKS3pMbA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImZpZWxkIGAlcycgaGFzIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICLOzrDoIGAlcycgpM/J1LSwwbSkyre/pMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIHN0b3JhZ2UgY2xhc3MgZm9yIGZ1bmN0aW9uIGAlcyciCiN+IG1zZ3N0ciAitNi/9CBgJXMnIKTLwtCkt6TGydTFrMDapMrK3cK4pa+l6aW5IgoKI34gbXNnaWQgImBub3JldHVybicgZnVuY3Rpb24gcmV0dXJucyBub24tdm9pZCB2YWx1ZSIKI34gbXNnc3RyICJgbm9yZXR1cm4nILTYv/SkrMjzIHZvaWQgw82k8srWpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJjYW5ub3QgaW5saW5lIGZ1bmN0aW9uIGBtYWluJyIKI34gbXNnc3RyICJgbWFpbicgpPIgaW5saW5lILTYv/Sky6TPpMekraTepLuk8yIKCiN+IG1zZ2lkICJ2YXJpYWJsZSBgJXMnIGRlY2xhcmVkIGBpbmxpbmUnIgojfiBtc2dzdHIgIsrRv/QgYCVzJyCkrCBgaW5saW5lJyCkyMDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzbid0IGEgcHJvdG90eXBlIgojfiBtc2dzdHIgIrTYv/TA67jApM+l16Xtpcilv6Wkpdekx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgbmFtZXMgKHdpdGhvdXQgdHlwZXMpIGluIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrTYv/TA67jAw+aky6HKt7+kzsy1pKShy7K+sPq/9My+pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgaGFzIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICKyvrD6v/SkrMnUtLDBtLe/pMekuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgYCVzJyBwb2ludHMgdG8gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIKTPydS0sMG0t7+k8rvYpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgcG9pbnRzIHRvIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICKyvrD6v/SkrMnUtLDBtLe/pPK72KS3pMakpKTepLkiCgojfiBtc2dpZCAicGFyYW1ldGVyIGAlcycgaGFzIGp1c3QgYSBmb3J3YXJkIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIL6vpLfBsMr9pMfA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJgdm9pZCcgaW4gcGFyYW1ldGVyIGxpc3QgbXVzdCBiZSB0aGUgZW50aXJlIGxpc3QiCiN+IG1zZ3N0ciAisr6w+r/0peqluaXIw+akziBgdm9pZCcgpM+l6qW5pcjBtMLOpPLA6qThpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImAlcyAlcycgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IgojfiBtc2dzdHIgImAlcyAlcycgpM+yvrD6v/Sl6qW5pcjG4qTHwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiYW5vbnltb3VzIHN0cnVjdCBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QiCiN+IG1zZ3N0ciAizLXMvrm9wqTCzqSssr6w+r/0peqluaXIxuKkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImFub255bW91cyB1bmlvbiBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QiCiN+IG1zZ3N0ciAizLXMvramzdHCzqSssr6w+r/0peqluaXIxuKkx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImFub255bW91cyBlbnVtIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCIKI34gbXNnc3RyICLMtcy+zvO187vSpKyyvrD6v/Sl6qW5pcjG4qTHwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudC4iCiN+IG1zZ3N0ciAipL2kzqW5pbOhvKXXpM/E6rXBpKvA67jApMCksaTHpLmhoraypOmkr8u+pPOkwKSzpMikyLDbpMqk66THpLek56SmoaMiCgojfiBtc2dpZCAicmVkZWZpbml0aW9uIG9mIGAlcyAlcyciCiN+IG1zZ3N0ciAiYCVzICVzJyCkzrrGxOq1wSIKCiN+IG1zZ2lkICIlcyBkZWZpbmVkIGluc2lkZSBwYXJtcyIKI34gbXNnc3RyICIlc6Sssr6w+r/0xuKkx8TqtcGktaTspN6kt6S/IgoKI34gbXNnaWQgInVuaW9uIgojfiBtc2dzdHIgIramzdHCziIKCiN+IG1zZ2lkICJzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAiub3CpMLOIgoKI34gbXNnaWQgIiVzIGhhcyBubyAlcyIKI34gbXNnc3RyICIlc6SsJXOk8rv9pMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgIm5hbWVkIG1lbWJlcnMiCiN+IG1zZ3N0ciAizL7BsMnVpK2l4aXzpdAiCgojfiBtc2dpZCAibWVtYmVycyIKI34gbXNnc3RyICKl4aXzpdAiCgojfiBtc2dpZCAibmVzdGVkIHJlZGVmaW5pdGlvbiBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM6lzaW5pcikt6S/usbE6rXBIgoKI34gbXNnaWQgImJpdC1maWVsZCBgJXMnIHdpZHRoIG5vdCBhbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpckgYCVzJyCkzsn9pKzAsL/0xOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImJpdC1maWVsZCBgJXMnIGhhcyBpbnZhbGlkIHR5cGUiCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulySBgJXMnIKTPydTFrMDapMq3v6Tyu/2kw6TGpKSk3qS5IgoKI34gbXNnaWQgImJpdC1maWVsZCBgJXMnIHR5cGUgaW52YWxpZCBpbiBJU08gQyIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJIGAlcycgt7+kzyBJU08gQyCkx6TPydTFrMDapMekuSIKCiN+IG1zZ2lkICJuZWdhdGl2ZSB3aWR0aCBpbiBiaXQtZmllbGQgYCVzJyIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJIGAlcycgpM7J/aSsyemkzr/0pMekuSIKCiN+IG1zZ2lkICJ3aWR0aCBvZiBgJXMnIGV4Y2VlZHMgaXRzIHR5cGUiCiN+IG1zZ3N0ciAiYCVzJyCkzsn9pM+kvaTOt7+kzqW1paSluqTyxLakqKTGpKSk3qS5IgoKI34gbXNnaWQgInplcm8gd2lkdGggZm9yIGJpdC1maWVsZCBgJXMnIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpckgYCVzJyCkzsn9pKwgMCCkx6S5IgoKI34gbXNnaWQgImAlcycgaXMgbmFycm93ZXIgdGhhbiB2YWx1ZXMgb2YgaXRzIHR5cGUiCiN+IG1zZ3N0ciAiYCVzJyCkz6S9pM63v6TOw82k6KTqpOK2uaSkpMekuSIKCiN+IG1zZ2lkICJmbGV4aWJsZSBhcnJheSBtZW1iZXIgaW4gdW5pb24iCiN+IG1zZ3N0ciAitqbN0cLOpMuyxMrRx9vO86XhpfOl0KSspKKk6qTepLkiCgojfiBtc2dpZCAiZmxleGlibGUgYXJyYXkgbWVtYmVyIG5vdCBhdCBlbmQgb2Ygc3RydWN0IgojfiBtc2dzdHIgIrm9wqTCzqTOuse45aTHpM+kyqSkveqky7LEytHH287zpeGl86XQpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJmbGV4aWJsZSBhcnJheSBtZW1iZXIgaW4gb3RoZXJ3aXNlIGVtcHR5IHN0cnVjdCIKI34gbXNnc3RyICK5vcKkws6ky7LEytHH287zpeGl86XQsMqzsKTOpeGl86XQpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImR1cGxpY2F0ZSBtZW1iZXIgYCVzJyIKI34gbXNnc3RyICK9xcqjpLekv6XhpfOl0CBgJXMnIgoKI34gbXNnaWQgInVuaW9uIGNhbm5vdCBiZSBtYWRlIHRyYW5zcGFyZW50IgojfiBtc2dzdHIgIramzdHCzqTyxqmy4cWqpMukx6StpN6ku6TzIgoKI34gbXNnaWQgInJlZGVjbGFyYXRpb24gb2YgYGVudW0gJXMnIgojfiBtc2dzdHIgImBlbnVtICVzJyCkzrrGwOu4wCIKCiN+IG1zZ2lkICJlbnVtIGRlZmluZWQgaW5zaWRlIHBhcm1zIgojfiBtc2dzdHIgIrK+sPq/9MbipMcgZW51bSCkrMTqtcGktaTspN6kt6S/IgoKI34gbXNnaWQgImVudW1lcmF0aW9uIHZhbHVlcyBleGNlZWQgcmFuZ2Ugb2YgbGFyZ2VzdCBpbnRlZ2VyIgojfiBtc2dzdHIgIs7ztfO70qTOw82krMCwv/SkzsjPsM+kzrrHwufDzaTyxLakqKTepLekvyIKCiN+IG1zZ2lkICJlbnVtZXJhdG9yIHZhbHVlIGZvciBgJXMnIG5vdCBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgImAlcycgpM7O87Xzw82krMCwv/TE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAib3ZlcmZsb3cgaW4gZW51bWVyYXRpb24gdmFsdWVzIgojfiBtc2dzdHIgIs7ztfPDzaSspaqhvKXQobyl1aXtobwiCgojfiBtc2dpZCAiSVNPIEMgcmVzdHJpY3RzIGVudW1lcmF0b3IgdmFsdWVzIHRvIHJhbmdlIG9mIGBpbnQnIgojfiBtc2dzdHIgIklTTyBDIKTPzvO187vSpM7DzaTyIGBpbnQnIKTOyM+wz6TLuMLE6qS3pMakpKTepLkiCgojfiBtc2dpZCAicmV0dXJuIHR5cGUgaXMgYW4gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIszhpOrDzaTOt7+krMnUtLDBtLe/pMekuSIKCiN+IG1zZ2lkICJyZXR1cm4gdHlwZSBkZWZhdWx0cyB0byBgaW50JyIKI34gbXNnc3RyICLM4aTqw82kzre/pPKlx6XVpaml66XIpM4gYGludCcgpMikt6TepLkiCgojfiBtc2dpZCAibm8gcHJldmlvdXMgcHJvdG90eXBlIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpM7BsMr9pdel7aXIpb+lpKXXpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImAlcycgd2FzIHVzZWQgd2l0aCBubyBwcm90b3R5cGUgYmVmb3JlIGl0cyBkZWZpbml0aW9uIgojfiBtc2dzdHIgImAlcycgpM+kvaTOxOq1waTOwbCky6XXpe2lyKW/paSl16TKpLekx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTOwbDK/cDruMCkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYCVzJyB3YXMgdXNlZCB3aXRoIG5vIGRlY2xhcmF0aW9uIGJlZm9yZSBpdHMgZGVmaW5pdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPpL2kzsTqtcGkzsGwpMfA67jApMqkt6THu8jN0aS1pOyk3qS3pL8iCgojfiBtc2dpZCAicmV0dXJuIHR5cGUgb2YgYCVzJyBpcyBub3QgYGludCciCiN+IG1zZ3N0ciAiYCVzJyCkzszhpOrDzaTOt7+krCBgaW50JyCkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJmaXJzdCBhcmd1bWVudCBvZiBgJXMnIHNob3VsZCBiZSBgaW50JyIKI34gbXNnc3RyICJgJXMnIKTOwuiw7LD6v/SkzyBgaW50JyCkyKS5pNmkraTHpLkiCgojfiBtc2dpZCAic2Vjb25kIGFyZ3VtZW50IG9mIGAlcycgc2hvdWxkIGJlIGBjaGFyICoqJyIKI34gbXNnc3RyICJgJXMnIKTOwujG87D6v/SkzyBgY2hhciAqKicgpMikuaTZpK2kx6S5IgoKI34gbXNnaWQgInRoaXJkIGFyZ3VtZW50IG9mIGAlcycgc2hvdWxkIHByb2JhYmx5IGJlIGBjaGFyICoqJyIKI34gbXNnc3RyICJgJXMnIKTOwui7sLD6v/Skz6SqpL2k6aSvIGBjaGFyICoqJyCkyKS5pNmkraTHpLek56SmIgoKI34gbXNnaWQgImAlcycgdGFrZXMgb25seSB6ZXJvIG9yIHR3byBhcmd1bWVudHMiCiN+IG1zZ3N0ciAiYCVzJyCkzyAwIKSrIDIguMSkzrD6v/Skt6SrpMik6qTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGlzIG5vcm1hbGx5IGEgbm9uLXN0YXRpYyBmdW5jdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPxMy+76GiyPMgc3RhdGljIKTKtNi/9KTHpLkiCgojfiBtc2dpZCAicGFybSB0eXBlcyBnaXZlbiBib3RoIGluIHBhcm1saXN0IGFuZCBzZXBhcmF0ZWx5IgojfiBtc2dzdHIgIrK+sPq/9KTOt7+krKGisr6w+r/0peqluaXIpMikz8rMpM6kyKSzpO2kq6TppOLNv6SopOmk7KTGpKSk3qS5IgoKI34gbXNnaWQgInBhcmFtZXRlciBuYW1lIG9taXR0ZWQiCiN+IG1zZ3N0ciAisr6w+r/0pKy+ys6spLWk7KTepLekvyIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgYCVzJyBkZWNsYXJlZCB2b2lkIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIKSsIHZvaWQgpMjA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInBhcmFtZXRlciBuYW1lIG1pc3NpbmcgZnJvbSBwYXJhbWV0ZXIgbGlzdCIKI34gbXNnc3RyICKyvrD6v/Sl6qW5pcikq6TppM6yvrD6v/TMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIm11bHRpcGxlIHBhcmFtZXRlcnMgbmFtZWQgYCVzJyIKI34gbXNnc3RyICK9xcqjpLekv7K+sPq/9My+IGAlcyciCgojfiBtc2dpZCAidHlwZSBvZiBgJXMnIGRlZmF1bHRzIHRvIGBpbnQnIgojfiBtc2dzdHIgImAlcycgpM63v6Typcel1aWppeulyKTOIGBpbnQnIKTIpLek3qS5IgoKI34gbXNnaWQgImRlY2xhcmF0aW9uIGZvciBwYXJhbWV0ZXIgYCVzJyBidXQgbm8gc3VjaCBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAisr6w+r/0IGAlcycgpM7A67jApKykoqTqpN6kuaSsoaKkvaTzpMqyvrD6v/Skz6SipOqk3qS7pPMiCgojfiBtc2dpZCAibnVtYmVyIG9mIGFyZ3VtZW50cyBkb2Vzbid0IG1hdGNoIHByb3RvdHlwZSIKI34gbXNnc3RyICKyvrD6v/Skzr/0pKyl16Xtpcilv6WkpdekyLDsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJwcm9tb3RlZCBhcmd1bWVudCBgJXMnIGRvZXNuJ3QgbWF0Y2ggcHJvdG90eXBlIgojfiBtc2dzdHIgIrPKvuWksqS1pOykv7K+sPq/9CBgJXMnIKTPpdel7aXIpb+lpKXXpMiw7MPXpLek3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgYCVzJyBkb2Vzbid0IG1hdGNoIHByb3RvdHlwZSIKI34gbXNnc3RyICKyvrD6v/QgYCVzJyCkz6XXpe2lyKW/paSl16TLsOzD16S3pN6ku6TzIgoKI34gbXNnaWQgInR5cGUgb2YgcGFyYW1ldGVyIGAlcycgaXMgbm90IGRlY2xhcmVkIgojfiBtc2dzdHIgIrK+sPq/9CBgJXMnIKTOt7+krMDruMCktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJ0aGlzIGZ1bmN0aW9uIG1heSByZXR1cm4gd2l0aCBvciB3aXRob3V0IGEgdmFsdWUiCiN+IG1zZ3N0ciAipLOkzrTYv/Skz8PNpPLK1qS3pL+k6srWpLWkyqSrpMOkv6TqpLmk66THpLek56SmIgoKI34gbXNnaWQgInNpemUgb2YgcmV0dXJuIHZhbHVlIG9mIGAlcycgaXMgJXUgYnl0ZXMiCiN+IG1zZ3N0ciAiYCVzJyCkzszhpOrDzaTOpbWlpKW6pKwgJXUgpdClpKXIpMekuSIKCiN+IG1zZ2lkICJzaXplIG9mIHJldHVybiB2YWx1ZSBvZiBgJXMnIGlzIGxhcmdlciB0aGFuICVkIGJ5dGVzIgojfiBtc2dzdHIgImAlcycgpM7M4aTqw82kzqW1paSluqSsICVkIKXQpaSlyKTopOqk4sLnpK2kr6TKpOqk3qS5IgoKI34gbXNnaWQgImBmb3InIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbiB1c2VkIG91dHNpZGUgQzk5IG1vZGUiCiN+IG1zZ3N0ciAiYGZvcicgpeuhvKXXpM696bT8sr3A67jApKwgQzk5IKXiobylybDKs7Ckx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJgJXMgJXMnIGRlY2xhcmVkIGluIGBmb3InIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICJgJXMgJXMnIKSsIGBmb3InIKXrobyl173ptPyyvcDruMDG4qTHwOu4wKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2Ygbm9uLXZhcmlhYmxlIGAlcycgaW4gYGZvcicgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIsjzytG/9CBgJXMnIKTOwOu4wKSsIGBmb3InIKXrobyl173ptPyyvcDruMCkzsPmpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJkZWNsYXJhdGlvbiBvZiBzdGF0aWMgdmFyaWFibGUgYCVzJyBpbiBgZm9yJyBsb29wIGluaXRpYWwgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAipbmlv6XGpaOlw6WvytG/9CBgJXMnIKTOwOu4wKSsIGBmb3InIKXrobyl173ptPyyvcDruMDG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYGV4dGVybicgdmFyaWFibGUgYCVzJyBpbiBgZm9yJyBsb29wIGluaXRpYWwgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiYGV4dGVybicgytG/9CBgJXMnIKTOwOu4wKSsIGBmb3InIKXrobyl173ptPyyvcDruMDG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAiY291bGQgbm90IG9wZW4gZHVtcCBmaWxlIGAlcyciCiN+IG1zZ3N0ciAipcCl86XXpdWloaWkpesgJXMgpPKzq6SxpN6ku6TzpMekt6S/IgoKI34gbXNnaWQgImlnbm9yaW5nIGAlcycgYXQgZW5kIG9mIGAtZiVzJyIKI34gbXNnc3RyICJgJXMnKGAtZiVzJyCkzr2qpOqky6SipOspIKTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICJhcmd1bWVudCBmb3JtYXQgc3BlY2lmaWVkIGZvciBub24tZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICLI87TYv/QgYCVzJyCkzrD6v/SkyyBmb3JtYXQgwrDAraSsu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCBzcGVjaWZpZXIiCiN+IG1zZ3N0ciAix6e8saTHpK2kyqSkpdWlqaG8pd6lw6XIu9jE6rvSIgoKI34gbXNnaWQgImAlcycgaXMgYW4gdW5yZWNvZ25pemVkIGZvcm1hdCBmdW5jdGlvbiB0eXBlIgojfiBtc2dzdHIgImAlcycgpM/Hp7yxpMekraTKpKSl1aWpobyl3qXDpci02L/0t7+kx6S5IgoKI34gbXNnaWQgImZvcm1hdCBzdHJpbmcgaGFzIGludmFsaWQgb3BlcmFuZCBudW1iZXIiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIyri7+s7zpMvJ1MWswNqkyqWqpdql6aXzpcm/9KSspKKk6qTepLkiCgojfiBtc2dpZCAiZm9ybWF0IHN0cmluZyBhcmcgZm9sbG93cyB0aGUgYXJncyB0byBiZSBmb3JtYXR0ZWQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIyri7+s7zsPq/9KSspdWlqaG8pd6lw6XIpLWk7KTrsPq/9KTOuOWky8KzpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJmb3JtYXQgc3RyaW5nIGFyZyBub3QgYSBzdHJpbmcgdHlwZSIKI34gbXNnc3RyICKl1aWpobyl3qXDpcjKuLv6zvOw+r/0pKzKuLv6zvO3v6THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3MgdG8gYmUgZm9ybWF0dGVkIGlzIG5vdCAnLi4uJyIKI34gbXNnc3RyICKl1aWpobyl3qXDpciktaTspOuw+r/0pKyhoicuLi4nIKTLpMqkw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAic3RyZnRpbWUgZm9ybWF0cyBjYW5ub3QgZm9ybWF0IGFyZ3VtZW50cyIKI34gbXNnc3RyICJzdHJmdGltZSCl1aWpobyl3qXDpcikz7D6v/Sk8qXVpamhvKXepcOlyKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIHN0cmluZyB0eXBlIgojfiBtc2dzdHIgIrTYv/SkrMq4u/rO87e/pPLK1qS3pN6ku6TzIgoKI34gbXNnaWQgImAgJyBmbGFnIgojfiBtc2dzdHIgImAgJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAgJyBwcmludGYgZmxhZyIKI34gbXNnc3RyICJwcmludGYgpM4gYCAnIKXVpemlsCIKCiN+IG1zZ2lkICJgKycgZmxhZyIKI34gbXNnc3RyICJgKycgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgKycgcHJpbnRmIGZsYWciCiN+IG1zZ3N0ciAicHJpbnRmIKTOIGArJyCl1aXppbAiCgojfiBtc2dpZCAiYCMnIGZsYWciCiN+IG1zZ3N0ciAiYCMnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCMnIHByaW50ZiBmbGFnIgojfiBtc2dzdHIgInByaW50ZiCkziBgIycgpdWl6aWwIgoKI34gbXNnaWQgImAwJyBmbGFnIgojfiBtc2dzdHIgImAwJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAwJyBwcmludGYgZmxhZyIKI34gbXNnc3RyICJwcmludGYgpM4gYDAnIKXVpemlsCIKCiN+IG1zZ2lkICJgLScgZmxhZyIKI34gbXNnc3RyICJgLScgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgLScgcHJpbnRmIGZsYWciCiN+IG1zZ3N0ciAicHJpbnRmIKTOIGAtJyCl1aXppbAiCgojfiBtc2dpZCAiYCcnIGZsYWciCiN+IG1zZ3N0ciAiYCcnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCcnIHByaW50ZiBmbGFnIgojfiBtc2dzdHIgInByaW50ZiCkziBgJycgpdWl6aWwIgoKI34gbXNnaWQgImBJJyBmbGFnIgojfiBtc2dzdHIgImBJJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGBJJyBwcmludGYgZmxhZyIKI34gbXNnc3RyICJwcmludGYgpM4gYEknIKXVpemlsCIKCiN+IG1zZ2lkICJmaWVsZCB3aWR0aCIKI34gbXNnc3RyICKl1aWjobyl66XJyf0iCgojfiBtc2dpZCAiZmllbGQgd2lkdGggaW4gcHJpbnRmIGZvcm1hdCIKI34gbXNnc3RyICJwcmludGYgpdWlqaG8pd6lw6XIpMekzqXVpaOhvKXrpcnJ/SIKCiN+IG1zZ2lkICJwcmVjaXNpb24iCiN+IG1zZ3N0ciAiwLrF2SIKCiN+IG1zZ2lkICJwcmVjaXNpb24gaW4gcHJpbnRmIGZvcm1hdCIKI34gbXNnc3RyICJwcmludGYgpdWlqaG8pd6lw6XIpMekzsC6xdkiCgojfiBtc2dpZCAibGVuZ3RoIG1vZGlmaWVyIgojfiBtc2dzdHIgIsS5pLW9pL7+u9IiCgojfiBtc2dpZCAibGVuZ3RoIG1vZGlmaWVyIGluIHByaW50ZiBmb3JtYXQiCiN+IG1zZ3N0ciAicHJpbnRmIKXVpamhvKXepcOlyKTOxLmktb2kvv670iIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IHN1cHByZXNzaW9uIgojfiBtc2dzdHIgIsLlxv6kzs3ewKkiCgojfiBtc2dpZCAiYGEnIGZsYWciCiN+IG1zZ3N0ciAiYGEnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYGEnIHNjYW5mIGZsYWciCiN+IG1zZ3N0ciAic2NhbmYgpM4gYGEnIKXVpemlsCIKCiN+IG1zZ2lkICJmaWVsZCB3aWR0aCBpbiBzY2FuZiBmb3JtYXQiCiN+IG1zZ3N0ciAic2NhbmYgpdWlqaG8pd6lw6XIpM6l1aWjobyl66XJyf0iCgojfiBtc2dpZCAibGVuZ3RoIG1vZGlmaWVyIGluIHNjYW5mIGZvcm1hdCIKI34gbXNnc3RyICJzY2FuZiCl1aWpobyl3qXDpcikzsS5pLW9pL7+u9IiCgojfiBtc2dpZCAidGhlIGAnJyBzY2FuZiBmbGFnIgojfiBtc2dzdHIgInNjYW5mIKTOIGAnJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGBJJyBzY2FuZiBmbGFnIgojfiBtc2dzdHIgInNjYW5mIKTOIGBJJyCl1aXppbAiCgojfiBtc2dpZCAiYF8nIGZsYWciCiN+IG1zZ3N0ciAiYF8nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYF8nIHN0cmZ0aW1lIGZsYWciCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYF8nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYC0nIHN0cmZ0aW1lIGZsYWciCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYC0nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYDAnIHN0cmZ0aW1lIGZsYWciCiN+IG1zZ3N0ciAic3RyZnRpbWUgpM4gYF4nIKXVpemlsCIKCiN+IG1zZ2lkICJgXicgZmxhZyIKI34gbXNnc3RyICJgXicgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgXicgc3RyZnRpbWUgZmxhZyIKI34gbXNnc3RyICJzdHJmdGltZSCkziBgXicgpdWl6aWwIgoKI34gbXNnaWQgInRoZSBgIycgc3RyZnRpbWUgZmxhZyIKI34gbXNnc3RyICJzdHJmdGltZSCkziBgIycgpdWl6aWwIgoKI34gbXNnaWQgImZpZWxkIHdpZHRoIGluIHN0cmZ0aW1lIGZvcm1hdCIKI34gbXNnc3RyICJzdHJmdGltZSCl1aWpobyl3qXDpcikzqXVpaOhvKXrpcnJ/SIKCiN+IG1zZ2lkICJgRScgbW9kaWZpZXIiCiN+IG1zZ3N0ciAiYEUnIL2kvv670iIKCiN+IG1zZ2lkICJ0aGUgYEUnIHN0cmZ0aW1lIG1vZGlmaWVyIgojfiBtc2dzdHIgInN0cmZ0aW1lIKTOIGBFJyC9pL7+u9IiCgojfiBtc2dpZCAiYE8nIG1vZGlmaWVyIgojfiBtc2dzdHIgImBPJyC9pL7+u9IiCgojfiBtc2dpZCAidGhlIGBPJyBzdHJmdGltZSBtb2RpZmllciIKI34gbXNnc3RyICJzdHJmdGltZSCkziBgTycgvaS+/rvSIgoKI34gbXNnaWQgInRoZSBgTycgbW9kaWZpZXIiCiN+IG1zZ3N0ciAidGhlIGBPJyC9pL7+u9IiCgojfiBtc2dpZCAiZmlsbCBjaGFyYWN0ZXIiCiN+IG1zZ3N0ciAitc2k4cq4u/oiCgojfiBtc2dpZCAiZmlsbCBjaGFyYWN0ZXIgaW4gc3RyZm1vbiBmb3JtYXQiCiN+IG1zZ3N0ciAic3RyZm1vbiCl1aWpobyl3qXDpcikzrXNpOHKuLv6IgoKI34gbXNnaWQgInRoZSBgXicgc3RyZm1vbiBmbGFnIgojfiBtc2dzdHIgInN0cmZtb24gpM4gYF4nIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCsnIHN0cmZtb24gZmxhZyIKI34gbXNnc3RyICJzdHJmbW9uIKTOIGArJyCl1aXppbAiCgojfiBtc2dpZCAiYCgnIGZsYWciCiN+IG1zZ3N0ciAiYCgnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCgnIHN0cmZtb24gZmxhZyIKI34gbXNnc3RyICJzdHJmbW9uIKTOIGAoJyCl1aXppbAiCgojfiBtc2dpZCAiYCEnIGZsYWciCiN+IG1zZ3N0ciAiYCEnIKXVpemlsCIKCiN+IG1zZ2lkICJ0aGUgYCEnIHN0cmZtb24gZmxhZyIKI34gbXNnc3RyICJzdHJmbW9uIKTOIGAhJyCl1aXppbAiCgojfiBtc2dpZCAidGhlIGAtJyBzdHJmbW9uIGZsYWciCiN+IG1zZ3N0ciAic3RyZm1vbiCkziBgLScgpdWl6aWwIgoKI34gbXNnaWQgImZpZWxkIHdpZHRoIGluIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM6l1aWjobyl66XJyf0iCgojfiBtc2dpZCAibGVmdCBwcmVjaXNpb24iCiN+IG1zZ3N0ciAiurjAusXZIgoKI34gbXNnaWQgImxlZnQgcHJlY2lzaW9uIGluIHN0cmZtb24gZm9ybWF0IgojfiBtc2dzdHIgInN0cmZtb24gpdWlqaG8pd6lw6XIpM66uMC6xdkiCgojfiBtc2dpZCAicmlnaHQgcHJlY2lzaW9uIgojfiBtc2dzdHIgIrGmwLrF2SIKCiN+IG1zZ2lkICJyaWdodCBwcmVjaXNpb24gaW4gc3RyZm1vbiBmb3JtYXQiCiN+IG1zZ3N0ciAic3RyZm1vbiCl1aWpobyl3qXDpcikzrGmwLrF2SIKCiN+IG1zZ2lkICJsZW5ndGggbW9kaWZpZXIgaW4gc3RyZm1vbiBmb3JtYXQiCiN+IG1zZ3N0ciAic3RyZm1vbiCl1aWpobyl3qXDpcikzsS5pLW9pL7+u9IiCgojfiBtc2dpZCAiZnVuY3Rpb24gbWlnaHQgYmUgcG9zc2libGUgY2FuZGlkYXRlIGZvciBgJXMnIGZvcm1hdCBhdHRyaWJ1dGUiCiN+IG1zZ3N0ciAitNi/9KTPtrKk6aSvIGAlcycgZm9ybWF0IMKwwK2kzrj1yuSkyLvXpO+k7KTepLkiCgojfiBtc2dpZCAibWlzc2luZyAkIG9wZXJhbmQgbnVtYmVyIGluIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcjG4qTHICQgsem7u7vSyNa55qTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgJSVuJCBvcGVyYW5kIG51bWJlciBmb3JtYXRzIgojfiBtc2dzdHIgIiVzIKTPICUlbiQgsem7u7vSyNa55qXVpamhvKXepcOlyKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAib3BlcmFuZCBudW1iZXIgb3V0IG9mIHJhbmdlIGluIGZvcm1hdCIKI34gbXNnc3RyICKx6bu7u9LI1rnmpKyl1aWpobyl3qXDpcikzsjPsM+zsKTHpLkiCgojfiBtc2dpZCAiZm9ybWF0IGFyZ3VtZW50ICVkIHVzZWQgbW9yZSB0aGFuIG9uY2UgaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIqXVpamhvKXepcOlyLD6v/QgJWQgpKwgJXMgpdWlqaG8pd6lw6XIw+akx8bzsvOwyr7lu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImZvcm1hdCBhcmd1bWVudCAlZCB1bnVzZWQgYmVmb3JlIHVzZWQgYXJndW1lbnQgJWQgaW4gJC1zdHlsZSBmb3JtYXQiCiN+IG1zZ3N0ciAiJC28sKXVpamhvKXepcOlyMbipM6l1aWpobyl3qXDpciw+r/0ICVkIKSssPq/9CAlZCCkrLvIpO+k7KTrwbCkx8yku8jN0aTHpLkiCgojfiBtc2dpZCAiZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBmb3JtYXQgc3RyaW5nIG5vdCBjaGVja2VkIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKSsyri7+s7zpeqlxqXppeukx6TPpKKk6qTepLuk86TOpMehoqXVpamhvKXepcOlyKTPuKG6uqS1pOyk3qS7pPMiCgojfiBtc2dpZCAiZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsIGFuZCBubyBmb3JtYXQgYXJndW1lbnRzIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKTPyPPKuLv6zvOl6qXGpeml66THoaKz7qTEpdWlqaG8pd6lw6XIsPq/9KTyu/2kwaTepLuk8yIKCiN+IG1zZ2lkICJmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwsIGFyZ3VtZW50IHR5cGVzIG5vdCBjaGVja2VkIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKTPyri7+s7zpeqlxqXppeukx6TPpKKk6qTepLuk86TOpMehorD6v/Skzre/pM+4obq6pLWk7KTepLuk8yIKCiN+IG1zZ2lkICJ0b28gbWFueSBhcmd1bWVudHMgZm9yIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcik2KTOsPq/9KSswr+kuaSupN6kuSIKCiN+IG1zZ2lkICJ1bnVzZWQgYXJndW1lbnRzIGluICQtc3R5bGUgZm9ybWF0IgojfiBtc2dzdHIgIiQtvLCkzqXVpamhvKXepcOlyKTHzKS7yM3RpM6w+r/0pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJ6ZXJvLWxlbmd0aCBmb3JtYXQgc3RyaW5nIgojfiBtc2dzdHIgIsS5pLUgMCCkzqXVpamhvKXepcOlyMq4u/rO8yIKCiN+IG1zZ2lkICJmb3JtYXQgaXMgYSB3aWRlIGNoYXJhY3RlciBzdHJpbmciCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpKyl76WkpcnKuLv6zvOkx6S5IgoKI34gbXNnaWQgInVudGVybWluYXRlZCBmb3JtYXQgc3RyaW5nIgojfiBtc2dzdHIgIr2qw7yktaTspMakpKTKpKSl1aWpobyl3qXDpcjKuLv6zvMiCgojfiBtc2dpZCAibnVsbCBmb3JtYXQgc3RyaW5nIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyMq4u/rO86SsIG51bGwgpMekuSIKCiN+IG1zZ2lkICJlbWJlZGRlZCBgXFwwJyBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpMsgYFxcMCcgpKzL5KThuf6k3qTspMakpKTepLkiCgojfiBtc2dpZCAic3B1cmlvdXMgdHJhaWxpbmcgYCUlJyBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIpMsgYCUlJyCkzrqvwNek6aS3pK2k4qTOpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJyZXBlYXRlZCAlcyBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIw+akxyAlcyCk8rerpOrK1qS3pMakpKTepLkiCgojfiBtc2dpZCAibWlzc2luZyBmaWxsIGNoYXJhY3RlciBhdCBlbmQgb2Ygc3RyZm1vbiBmb3JtYXQiCiN+IG1zZ3N0ciAic3RyZm1vbiCl1aWpobyl3qXDpcikzr2qpOqkx7XNpOHKuLv6pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAidG9vIGZldyBhcmd1bWVudHMgZm9yIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcik2KTOsPq/9KSsvq+kyqS5pK6k3qS5IgoKI34gbXNnaWQgInplcm8gd2lkdGggaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTHyf0gMCCkzqXVpamhvKXepcOlyKTHpLkiCgojfiBtc2dpZCAiZW1wdHkgbGVmdCBwcmVjaXNpb24gaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTHtvWkzrq4wLrF2aXVpamhvKXepcOlyKTHpLkiCgojfiBtc2dpZCAiZmllbGQgcHJlY2lzaW9uIgojfiBtc2dzdHIgIqXVpaOhvKXrpcnAusXZIgoKI34gbXNnaWQgImVtcHR5IHByZWNpc2lvbiBpbiAlcyBmb3JtYXQiCiN+IG1zZ3N0ciAiJXMgpMe29aTOwLrF2aXVpamhvKXepcOlyKTHpLkiCgojfiBtc2dpZCAiJXMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYCVzJyAlcyBsZW5ndGggbW9kaWZpZXIiCiN+IG1zZ3N0ciAiJXMgpM8gYCVzJyAlcyDEuaS1vaS+/rvSpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICJjb252ZXJzaW9uIGxhY2tzIHR5cGUgYXQgZW5kIG9mIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcikzr2qpOqkx7e/ytG0ucq4u/qkrLfnpLGkxqSkpN6kuSIKCiN+IG1zZ2lkICJ1bmtub3duIGNvbnZlcnNpb24gdHlwZSBjaGFyYWN0ZXIgYCVjJyBpbiBmb3JtYXQiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIxuKky8nUzMCkyre/ytG0ucq4u/ogYCVjJyCkrKSipOqk3qS5IgoKI34gbXNnaWQgInVua25vd24gY29udmVyc2lvbiB0eXBlIGNoYXJhY3RlciAweCV4IGluIGZvcm1hdCIKI34gbXNnc3RyICKl1aWpobyl3qXDpcjG4qTLydTMwKTKt7/K0bS5yri7+iAweCV4IKSspKKk6qTepLkiCgojfiBtc2dpZCAiJXMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYCUlJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkzyBgJSUlYycgJXMgpdWlqaG8pd6lw6XIpPK89aSxydWksaTepLuk8yIKCiN+IG1zZ2lkICIlcyB1c2VkIHdpdGggYCUlJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkrCBgJSUlYycgJXMgpdWlqaG8pd6lw6XIpMiw7L3vpMu7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiJXMgZG9lcyBub3Qgc3VwcG9ydCAlcyIKI34gbXNnc3RyICIlcyCkzyAlcyCk8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIiVzIGRvZXMgbm90IHN1cHBvcnQgJXMgd2l0aCB0aGUgYCUlJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkzyAlcyCk8iBgJSUlYycgJXMgpdWlqaG8pd6lw6XIpMiw7L3vpMu7yKSmu/ak8rz1pLHJ1aSxpN6ku6TzIgoKI34gbXNnaWQgIiVzIGlnbm9yZWQgd2l0aCAlcyBhbmQgYCUlJWMnICVzIGZvcm1hdCIKI34gbXNnc3RyICIlcyCkzyAlcyC12qTTIGAlJSVjJyAlcyCl1aWpobyl3qXDpcikyLDsve+ky7vIpKakyMy1u+uktaTspN6kuSIKCiN+IG1zZ2lkICIlcyBpZ25vcmVkIHdpdGggJXMgaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTPICVzIKTyICVzIKXVpamhvKXepcOlyKTHsOy976TLu8ikpqTIzLW766S1pOyk3qS5IgoKI34gbXNnaWQgInVzZSBvZiAlcyBhbmQgJXMgdG9nZXRoZXIgd2l0aCBgJSUlYycgJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTIICVzIKTIpPIgYCUlJWMnICVzIKXVpamhvKXepcOlyKTIsOy976TLu8ikw6TGpKSk3qS5IgoKI34gbXNnaWQgInVzZSBvZiAlcyBhbmQgJXMgdG9nZXRoZXIgaW4gJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTIICVzIKTIpPIgJXMgpdWlqaG8pd6lw6XIpM7D5qTHu8ikw6TGpKSk3qS5IgoKI34gbXNnaWQgImAlJSVjJyB5aWVsZHMgb25seSBsYXN0IDIgZGlnaXRzIG9mIHllYXIgaW4gc29tZSBsb2NhbGVzIgojfiBtc2dzdHIgImAlJSVjJyCkz6XtpbGhvKXrpMuk6KTDpMakz6Gix6+kzrK8xvO35aTApLGk8qTipL+k6aS3pN6kuSIKCiN+IG1zZ2lkICJgJSUlYycgeWllbGRzIG9ubHkgbGFzdCAyIGRpZ2l0cyBvZiB5ZWFyIgojfiBtc2dzdHIgImAlJSVjJyCkz8evpM6yvMbzt+WkwKSxpPKk4qS/pOmkt6TepLkiCgojfiBtc2dpZCAibm8gY2xvc2luZyBgXScgZm9yIGAlJVsnIGZvcm1hdCIKI34gbXNnc3RyICJgJSVbJyCl1aWpobyl3qXDpcik8srEpLik6yBgXScgpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgInVzZSBvZiBgJXMnIGxlbmd0aCBtb2RpZmllciB3aXRoIGAlYycgdHlwZSBjaGFyYWN0ZXIiCiN+IG1zZ3N0ciAiYCVzJyDEuaS1vaS+/rvSpPIgYCVjJyC3v8rRtLnKuLv6pMiw7L3vpMu7yKTDpMakpKTepLkiCgojfiBtc2dpZCAiJXMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYCUlJXMlYycgJXMgZm9ybWF0IgojfiBtc2dzdHIgIiVzIKTPIGAlJSVzJWMnICVzIKXVpamhvKXepcOlyKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAib3BlcmFuZCBudW1iZXIgc3BlY2lmaWVkIHdpdGggc3VwcHJlc3NlZCBhc3NpZ25tZW50IgojfiBtc2dzdHIgIrHpu7u70sjWueakrMLlxv6kzs3ewKmkyLampMu7yKTvpOykxqSkpN6kuSIKCiN+IG1zZ2lkICJvcGVyYW5kIG51bWJlciBzcGVjaWZpZWQgZm9yIGZvcm1hdCB0YWtpbmcgbm8gYXJndW1lbnQiCiN+IG1zZ3N0ciAisem7u7vSyNa55qSssPq/9KTyvOik6aTKpKSl1aWpobyl3qXDpcikx7vYxOqktaTspN6kt6S/IgoKI34gbXNnaWQgIndyaXRpbmcgdGhyb3VnaCBudWxsIHBvaW50ZXIgKGFyZyAlZCkiCiN+IG1zZ3N0ciAibnVsbCCl3aWkpfOlv6TyvfGkrbn+pPOkx6SkpN6kuSAosPq/9CAlZCkiCgojfiBtc2dpZCAicmVhZGluZyB0aHJvdWdoIG51bGwgcG9pbnRlciAoYXJnICVkKSIKI34gbXNnc3RyICJudWxsIKXdpaSl86W/pPLGybn+pPOkx6SkpN6kuSAosPq/9CAlZCkiCgojfiBtc2dpZCAid3JpdGluZyBpbnRvIGNvbnN0YW50IG9iamVjdCAoYXJnICVkKSIKI34gbXNnc3RyICLE6r/0paql1qW4paelr6XIpMu98aStuf6k86THpKSk3qS5ICiw+r/0ICVkKSIKCiN+IG1zZ2lkICJleHRyYSB0eXBlIHF1YWxpZmllcnMgaW4gZm9ybWF0IGFyZ3VtZW50IChhcmcgJWQpIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyLD6v/Sky82+yqykyre/vaS+/rvSpKykoqTqpN6kuSAosPq/9CAlZCkiCgojfiBtc2dpZCAiZm9ybWF0IGFyZ3VtZW50IGlzIG5vdCBhIHBvaW50ZXIgKGFyZyAlZCkiCiN+IG1zZ3N0ciAipdWlqaG8pd6lw6XIsPq/9KSspd2lpKXzpb+kx6TPpKKk6qTepLuk8yAosPq/9CAlZCkiCgojfiBtc2dpZCAiZm9ybWF0IGFyZ3VtZW50IGlzIG5vdCBhIHBvaW50ZXIgdG8gYSBwb2ludGVyIChhcmcgJWQpIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyLD6v/SkrKXdpaSl86W/pNikzqXdpaSl86W/pMekz6SipOqk3qS7pPMgKLD6v/QgJWQpIgoKI34gbXNnaWQgIiVzIGlzIG5vdCB0eXBlICVzIChhcmcgJWQpIgojfiBtc2dzdHIgIiVzIKTPt78gJXMgpMekz6SipOqk3qS7pPMgKLD6v/QgJWQpIgoKI34gbXNnaWQgIiVzIGZvcm1hdCwgJXMgYXJnIChhcmcgJWQpIgojfiBtc2dzdHIgIqXVpamhvKXepcOlyKTPICVzIKTHpLmkrKGisPq/9KTPICVzIKTHpLkgKLD6v/QgJWQpIgoKI34gbXNnaWQgImJhZGx5IG5lc3RlZCBDIGhlYWRlcnMgZnJvbSBwcmVwcm9jZXNzb3IiCiN+IG1zZ3N0ciAipdel6qXXpe2lu6XDpbWkq6TpsNu+76TLpc2luaXIpLWk7KS/IEMgpdilw6XApMekuSIKCiN+IG1zZ2lkICJsZWF2aW5nIG1vcmUgZmlsZXMgdGhhbiB3ZSBlbnRlcmVkIgojfiBtc2dzdHIgIsb+pMOkv6XVpaGlpKXrpOik6qTivdCkv6XVpaGlpKXrpM7K/aSswr+kr6TKpOqk3qS3pL8iCgojfiBtc2dpZCAiaWdub3JpbmcgI3ByYWdtYSAlcyAlcyIKI34gbXNnc3RyICIjcHJhZ21hICVzICVzIKTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICJpZ25vcmluZyAjcHJhZ21hICVzIgojfiBtc2dzdHIgIiNwcmFnbWEgJXMgpPLMtbvrpLek3qS5IgoKI34gbXNnaWQgIm5vbiBoZXggZGlnaXQgJyVjJyBpbiB1bml2ZXJzYWwtY2hhcmFjdGVyLW5hbWUiCiN+IG1zZ3N0ciAiyPMgMTYgv8q/9CAnJWMnIKSsIHVuaXZlcnNhbC1jaGFyYWN0ZXItbmFtZSDG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAidW5pdmVyc2FsLWNoYXJhY3Rlci1uYW1lIG9uIEVCQ0RJQyB0YXJnZXQiCiN+IG1zZ3N0ciAiRUJDRElDIKTOpb+hvKWypcOlyKTHIGAlYycgpMul5qXLpdChvKW1peulraXjpemlr6W/zL6krLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJ1bml2ZXJzYWwtY2hhcmFjdGVyLW5hbWUgdXNlZCBmb3IgJyVjJyIKI34gbXNnc3RyICJgJWMnIKTLpealy6XQobyltaXrpa2l46Xppa+lv8y+pKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAidGhlIG1lYW5pbmcgb2YgYFxceCcgdmFyaWVzIHdpdGggLXRyYWRpdGlvbmFsIgojfiBtc2dzdHIgImBcXHgnIKTOsNXMo6TPIC10cmFkaXRpb25hbCCk8qTEpLGkv77sueekyLDbpMqk6qTepLkiCgojfiBtc2dpZCAiaGV4IGVzY2FwZSBvdXQgb2YgcmFuZ2UiCiN+IG1zZ3N0ciAiMTYgv8qlqKW5pbGhvKXXpbehvKWxpfOluaSsyM+wz7OwpMekuSIKCiN+IG1zZ2lkICJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1xcJyBmb2xsb3dlZCBieSBjaGFyIDB4JXgiCiN+IG1zZ3N0ciAiydTMwKTKpailuaWxobyl16W3obylsaXzpbk6IMq4u/ogMHgleCCkrLjlpMvCs6SvICdcXCciCgojfiBtc2dpZCAidW5pdmVyc2FsLWNoYXJhY3Rlci1uYW1lICdcXHUlMDR4JyBub3QgdmFsaWQgaW4gaWRlbnRpZmllciIKI34gbXNnc3RyICKl5qXLpdChvKW1pevKuLv6zL4gYFxcdSUwNHgnIKTPvLHKzLvSpM7D5qTHpM/Nrbj6pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYm90aCAnZicgYW5kICdsJyBzdWZmaXhlcyBvbiBmbG9hdGluZyBjb25zdGFudCIKI34gbXNnc3RyICLJ4sawvq6/9MTqv/SkyyAnZicgpMggJ2wnIMDcyPi8raTOzr7K/aSspKKk6qTepLkiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGV4Y2VlZHMgcmFuZ2Ugb2YgJyVzJyIKI34gbXNnc3RyICLJ4sawvq6/9MXAv/SkrCAnJXMnIKTOyM+wz6TyxLakqKTepLekvyIKCiN+IG1zZ2lkICJzdHJheSAnJWMnIGluIHByb2dyYW0iCiN+IG1zZ3N0ciAipdel7aWwpeml4KTIpLekxrDvw6akt6S/yri7+iAnJWMnIgoKI34gbXNnaWQgInN0cmF5ICdcXCVvJyBpbiBwcm9ncmFtIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkyKS3pMaw78OmpLekv8q4u/ogJ1xcJW8nIgoKI34gbXNnaWQgImZsb2F0aW5nIGNvbnN0YW50IG1heSBub3QgYmUgaW4gcmFkaXggMTYiCiN+IG1zZ3N0ciAitPC/9CAxNiCkzsnixrC+r7/0xOq/9KTPtfaktaTspN6ku6TzIgoKI34gbXNnaWQgInRyYWRpdGlvbmFsIEMgcmVqZWN0cyB0aGUgJ2wnIHN1ZmZpeCIKI34gbXNnc3RyICK4xaSkIEMgpMekzyAnbCcgwNzI+LytpKy18cjdpLWk7KTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBpbWFnaW5hcnkgbnVtZXJpYyBjb25zdGFudHMiCiN+IG1zZ3N0ciAiSVNPIEMgpMekz7X1v/TE6r/0pPK22KS4pMakpKTepLkiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGV4Y2VlZHMgcmFuZ2Ugb2YgJ2RvdWJsZSciCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwL/0pKwgJ2RvdWJsZScgpM7Iz7DPpPLEtqSopMakpKTepLkiCgojfiBtc2dpZCAidHdvICd1JyBzdWZmaXhlcyBvbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIjIgpMSkziAndScgwNzI+LytpKzAsL/0xOq/9KTLpMSkpKTGpKSk3qS5IgoKI34gbXNnaWQgInRyYWRpdGlvbmFsIEMgcmVqZWN0cyB0aGUgJ3UnIHN1ZmZpeCIKI34gbXNnc3RyICLFwcX9xaqkyiBDIKTHpM8gJ3UnIMDcyPi8raSstfHI3aS1pOyk3qS5IgoKI34gbXNnaWQgInRocmVlICdsJyBzdWZmaXhlcyBvbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIjMgpMSkziAnbCcgwNzI+LytpKzAsL/0xOq/9KTLpMSkpKTGpKSk3qS5IgoKI34gbXNnaWQgIidsdWwnIGlzIG5vdCBhIHZhbGlkIGludGVnZXIgc3VmZml4IgojfiBtc2dzdHIgIidsdWwnIKTPwLW+76TKwLC/9MDcyPi8raTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIidMbCcgYW5kICdsTCcgYXJlIG5vdCB2YWxpZCBpbnRlZ2VyIHN1ZmZpeGVzIgojfiBtc2dzdHIgIidMbCcgpMggJ2xMJyCkz8C1vu+kysCwv/TA3Mj4vK2kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJtb3JlIHRoYW4gb25lICdpJyBvciAnaicgc3VmZml4IG9uIGludGVnZXIgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyqO/9KTOICdpJyCk5CAnaicgwNzI+LytpKzAsL/0xOq/9KTLpMSkpKTGpKSk3qS5IgoKI34gbXNnaWQgImludGVnZXIgY29uc3RhbnQgaXMgdG9vIGxhcmdlIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGNvbXBpbGVyIC0gdHJ1bmNhdGVkIHRvICVkIGJpdHMiCiN+IG1zZ3N0ciAiwLC/9MTqv/SkrKWzpfOl0aWkpemkzri9ut+kzsDfxOqk6KTqwuekraS5pK6k66S/pOGhoiVkIKXTpcOlyKTLwNqk6rXNpOGk3qS3pL8iCgojfiBtc2dpZCAid2lkdGggb2YgaW50ZWdlciBjb25zdGFudCBjaGFuZ2VzIHdpdGggLXRyYWRpdGlvbmFsIgojfiBtc2dzdHIgIi10cmFkaXRpb25hbCCk8qTEpLGk66TIwLC/9MTqv/Skzsn9pKzK0aTvpOqk3qS5IgoKI34gbXNnaWQgImludGVnZXIgY29uc3RhbnQgaXMgdW5zaWduZWQgaW4gSVNPIEMsIHNpZ25lZCB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICLAsL/0xOq/9KTPIElTTyBDIKTHpM/J5LnnzLWkt6THoaItdHJhZGl0aW9uYWwgpPKkxKSxpOukyMnkuefJ1aStpMekuSIKCiN+IG1zZ2lkICJ3aWR0aCBvZiBpbnRlZ2VyIGNvbnN0YW50IG1heSBjaGFuZ2Ugb24gb3RoZXIgc3lzdGVtcyB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICLAsL/0xOq/9KTOyf2kz8K+pM6lt6W5pcal4KTHIC10cmFkaXRpb25hbCCk8qTEpLGk66TIytGk76TrpMekt6TnpKYiCgojfiBtc2dpZCAiaW50ZWdlciBjb25zdGFudCBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSB2YWx1ZSBvZiAlcyIKI34gbXNnc3RyICIlcyCkzrrHwufDzaTopOqk4sLnpK2kysPNpM7AsL/0xOq/9KTHpLkiCgojfiBtc2dpZCAiZGVjaW1hbCBjb25zdGFudCBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHVuc2lnbmVkIgojfiBtc2dzdHIgIr29v8rE6r/0pKykyKTGpOLC56StpKSkzqTHyeS558y1pLekyKS3pN6kt6S/IgoKI34gbXNnaWQgImludGVnZXIgY29uc3RhbnQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgZm9yIGl0cyB0eXBlIgojfiBtc2dzdHIgIqS9pM63v6TOusfC58PNpOik6qTiwuekraTKw82kzsCwv/TE6r/0pMekuSIKCiN+IG1zZ2lkICJtaXNzaW5nIHdoaXRlIHNwYWNlIGFmdGVyIG51bWJlciAnJS4qcyciCiN+IG1zZ3N0ciAiv/S7+iAnJS4qcycgpM645aTLtvXH8qTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIklnbm9yaW5nIGludmFsaWQgbXVsdGlieXRlIGNoYXJhY3RlciIKI34gbXNnc3RyICLMtbj6pMql3qXrpcGl0KWkpcjKuLv6pPLMtbvrpLek3qS5IgoKI34gbXNnaWQgInN5bnRheCBlcnJvciIKI34gbXNnc3RyICLKuMuhpail6aG8IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgYW4gZW1wdHkgc291cmNlIGZpbGUiCiN+IG1zZ3N0ciAiSVNPIEMgpM+29aTOpb2hvKW5pdWloaWkpeuk8rbYpLik3qS5IgoKI34gbXNnaWQgImFyZ3VtZW50IG9mIGBhc20nIGlzIG5vdCBhIGNvbnN0YW50IHN0cmluZyIKI34gbXNnc3RyICJgYXNtJyCkzrD6v/SkrMTqv/TKuLv6zvOkx6TPpKKk6qTepLuk8yAiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBkYXRhIGRlZmluaXRpb24gd2l0aCBubyB0eXBlIG9yIHN0b3JhZ2UgY2xhc3MiCiN+IG1zZ3N0ciAiSVNPIEMgpM+3v6Tkta2ysaWvpemluaTOpMqkpKXHobylv8TqtcGk8rbYpLik3qS5IgoKI34gbXNnaWQgImRhdGEgZGVmaW5pdGlvbiBoYXMgbm8gdHlwZSBvciBzdG9yYWdlIGNsYXNzIgojfiBtc2dzdHIgIqXHobylv8TqtcGkrLe/pOS1rbKxpa+l6aW5pPK7/aTDpMakpKTepLuk8yIKCiN+IG1zZ2lkICJJU08gQyBkb2VzIG5vdCBhbGxvdyBleHRyYSBgOycgb3V0c2lkZSBvZiBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgIklTTyBDIKTHpM+02L/0s7Ckx6TOzb7KrKTKIGA7JyCk8rX2pLek3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBgJiYnIgojfiBtc2dzdHIgIklTTyBDIKTPIGAmJicgpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJgc2l6ZW9mJyBhcHBsaWVkIHRvIGEgYml0LWZpZWxkIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmky8WszdGktaTspL8gYHNpemVvZiciCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBvbWl0dGluZyB0aGUgbWlkZGxlIHRlcm0gb2YgYSA/OiBleHByZXNzaW9uIgojfiBtc2dzdHIgIklTTyBDIKTPw+a01rngpKy+ys6spLWk7KS/ID86ILywpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQzg5IGZvcmJpZHMgY29tcG91bmQgbGl0ZXJhbHMiCiN+IG1zZ3N0ciAiSVNPIEM4OSCkz8qjueel6qXGpeml66TyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBicmFjZWQtZ3JvdXBzIHdpdGhpbiBleHByZXNzaW9ucyIKI34gbXNnc3RyICJJU08gQyCkz6XWpeyhvKW5pMek3qTIpOGk6aTspL+8sKTyttikuKTepLkiCgojfiBtc2dpZCAidHJhZGl0aW9uYWwgQyByZWplY3RzIHN0cmluZyBjb25jYXRlbmF0aW9uIgojfiBtc2dzdHIgIrjFpKQgQyCkx6TPyri7+s7zt+u556TytfHI3aS3pN6kuSIKCiN+IG1zZ2lkICJJU08gQyBkb2VzIG5vdCBwZXJtaXQgdXNlIG9mIGB2YXJhcmdzLmgnIgojfiBtc2dzdHIgIklTTyBDIKTHpM8gYHZhcmFyZ3MuaCcgpM7N+M3RpPK19qS3pN6ku6TzIgoKI34gbXNnaWQgImAlcycgaXMgbm90IGF0IGJlZ2lubmluZyBvZiBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICJgJXMnIKTPwOu4wKTOu8+k3qTqpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBlbXB0eSBpbml0aWFsaXplciBicmFjZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpMekz7b1pM696bT8sr3N0aXWpeyhvKW5pPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQzg5IGZvcmJpZHMgc3BlY2lmeWluZyBzdWJvYmplY3QgdG8gaW5pdGlhbGl6ZSIKI34gbXNnc3RyICJJU08gQzg5IKTPvem0/LK9zdGkzsn7paql1qW4paelr6XIu9jE6qTyttikuKTepLkiCgojfiBtc2dpZCAib2Jzb2xldGUgdXNlIG9mIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXIgd2l0aG91dCBgPSciCiN+IG1zZ3N0ciAiYD0nIKTOpMqkpKXhpfOl0LvYzL696bT8sr270qTPx9Gk7KTepLekvyIKCiN+IG1zZ2lkICJvYnNvbGV0ZSB1c2Ugb2YgZGVzaWduYXRlZCBpbml0aWFsaXplciB3aXRoIGA6JyIKI34gbXNnc3RyICJgOicgpPKkxKSxpOul4aXzpdC72My+vem0/LK9u9Kkz8fRpOyk3qS3pL8iCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBzcGVjaWZ5aW5nIHJhbmdlIG9mIGVsZW1lbnRzIHRvIGluaXRpYWxpemUiCiN+IG1zZ3N0ciAiSVNPIEMgpM+96bT8sr3N0aTOzdfBx8jPsM+72MTqpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIG5lc3RlZCBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gpc2luaXIpLWk7KS/tNi/9KTyttikuKTepLkiCgojfiBtc2dpZCAiYFsqXScgaW4gcGFyYW1ldGVyIGRlY2xhcmF0aW9uIG9ubHkgYWxsb3dlZCBpbiBJU08gQyA5OSIKI34gbXNnc3RyICKyvrD6v/TA67jAw+akziBgWypdJyCkzyBJU08gQyA5OSCkx6TOpN+19qS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIGZvcndhcmQgcmVmZXJlbmNlcyB0byBgZW51bScgdHlwZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gYGVudW0nILe/pM7BsMr9u7K+yKTyttikuKTepLkiCgojfiBtc2dpZCAiY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdCIKI34gbXNnc3RyICLO87Xzu9Kl6qW5pcikzrrHuOWky6WrpfOl3qSspKKk6qTepLkiCgojfiBtc2dpZCAibm8gc2VtaWNvbG9uIGF0IGVuZCBvZiBzdHJ1Y3Qgb3IgdW5pb24iCiN+IG1zZ3N0ciAic3RydWN0IKTkIHVuaW9uIKTOuse45aTLpbul36Wzpe2l86SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJleHRyYSBzZW1pY29sb24gaW4gc3RydWN0IG9yIHVuaW9uIHNwZWNpZmllZCIKI34gbXNnc3RyICJzdHJ1Y3QgpOQgdW5pb24gpM7D5qTHzb7KrKTKpbul36Wzpe2l86Ssu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiSVNPIEMgZG9lc24ndCBzdXBwb3J0IHVubmFtZWQgc3RydWN0cy91bmlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgpMekz8y1zL65vcKkws6k5LamzdHCzqTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBtZW1iZXIgZGVjbGFyYXRpb25zIHdpdGggbm8gbWVtYmVycyIKI34gbXNnc3RyICJJU08gQyCkz6XhpfOl0KTOpMqkpKXhpfOl0MDruMCk8rbYpLik3qS5IgoKI34gbXNnaWQgImRlcHJlY2F0ZWQgdXNlIG9mIGxhYmVsIGF0IGVuZCBvZiBjb21wb3VuZCBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAiyqO558q4pM69qqTqpMel6aXZpeuk8rvIpKaks6TIpM+/5L6ppLWk7KTepLuk8yIKCiN+IG1zZ2lkICJJU08gQzg5IGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIgojfiBtc2dzdHIgIklTTyBDODkgpM/A67jApMils6G8pcmkyKTOuq6556TyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBsYWJlbCBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+l6aXZpevA67jApPK22KS4pN6kuSIKCiN+IG1zZ2lkICJicmFjZWQtZ3JvdXAgd2l0aGluIGV4cHJlc3Npb24gYWxsb3dlZCBvbmx5IGluc2lkZSBhIGZ1bmN0aW9uIgojfiBtc2dzdHIgIqXWpeyhvKW5pMek3qTIpOGk6aTspL+8sKTPtNi/9KTOxuLCpqTHpM6k37X2pLWk7KTepLkiCgojfiBtc2dpZCAiZW1wdHkgYm9keSBpbiBhbiBlbHNlLXN0YXRlbWVudCIKI34gbXNnc3RyICJlbHNlIMq4pM7D5r/IpKy29aTHpLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBgZ290byAqZXhwcjsnIgojfiBtc2dzdHIgIklTTyBDIGBnb3RvICq8sDsnIKTOvfGkrcr9pPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIGZvcndhcmQgcGFyYW1ldGVyIGRlY2xhcmF0aW9ucyIKI34gbXNnc3RyICJJU08gQyCkz8Gwyv2yvrD6v/TA67jApPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQyByZXF1aXJlcyBhIG5hbWVkIGFyZ3VtZW50IGJlZm9yZSBgLi4uJyIKI34gbXNnc3RyICJJU08gQyCkzyBgLi4uJyCkzsGwpMvMvsGwpPKkxKSxpOmk7KS/sPq/9KTyzde14aS3pN6kuSIKCiN+IG1zZ2lkICJgLi4uJyBpbiBvbGQtc3R5bGUgaWRlbnRpZmllciBsaXN0IgojfiBtc2dzdHIgIrjFpKSluaW/paSl66TOvLHKzLvSpeqluaXIpMekziBgLi4uJyIKCiN+IG1zZ2lkICIlcyBhdCBlbmQgb2YgaW5wdXQiCiN+IG1zZ3N0ciAixv7Oz6TOuse45aTLICVzIgoKI34gbXNnaWQgIiVzIGJlZm9yZSAlcyclYyciCiN+IG1zZ3N0ciAiJXMgpKwgJXMnJWMnIKTOwbCky6SipOqk3qS5IgoKI34gbXNnaWQgIiVzIGJlZm9yZSAlcydcXHgleCciCiN+IG1zZ3N0ciAiJXMgpKwgJXMnXFx4JXgnIKTOwbCky6SipOqk3qS5IgoKI34gbXNnaWQgIiVzIGJlZm9yZSBzdHJpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+s7zxOq/9KTOwbCkyyAlcyIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgbnVtZXJpYyBjb25zdGFudCIKI34gbXNnc3RyICK/9MPNxOq/9KTOwbCkyyAlcyIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgXCIlc1wiIgojfiBtc2dzdHIgIiVzIKSsIFwiJXNcIiCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgJyVzJyB0b2tlbiIKI34gbXNnc3RyICIlcyCkrCAnJXMnIKXIobylr6XzpM7BsKTLpKKk6qTepLkiCgojfiBtc2dpZCAic3ludGF4IGVycm9yIGF0ICclcycgdG9rZW4iCiN+IG1zZ3N0ciAiJyVzJyClyKG8pa+l86TOveqkx8q4y6GlqKXpobwiCgojfiBtc2dpZCAiWVlERUJVRyBub3QgZGVmaW5lZC4iCiN+IG1zZ3N0ciAiWVlERUJVRyCkrMTqtcGktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICIjcHJhZ21hIHBhY2sgKHBvcCkgZW5jb3VudGVyZWQgd2l0aG91dCBtYXRjaGluZyAjcHJhZ21hIHBhY2sgKHB1c2gsIDxuPikiCiN+IG1zZ3N0ciAiI3ByYWdtYSBwYWNrIChwb3ApIKSsoaLC0LH+pLmk6yAjcHJhZ21hIHBhY2sgKHB1c2gsIDxuPikgpMqkt6TLvdC4vaS3pN6kt6S/IgoKI34gbXNnaWQgIiNwcmFnbWEgcGFjayhwb3AsICVzKSBlbmNvdW50ZXJlZCB3aXRob3V0IG1hdGNoaW5nICNwcmFnbWEgcGFjayhwdXNoLCAlcywgPG4+KSIKI34gbXNnc3RyICIjcHJhZ21hIHBhY2socG9wLCAlcykgpKyhosLQsf6kuaTrICNwcmFnbWEgcGFjayhwdXNoLCAlcykgpMqkt6TLvdC4vaS3pN6kt6S/IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICcjcHJhZ21hIHBhY2snIgojfiBtc2dzdHIgIicjcHJhZ21hIHBhY2snIKTOy/bI+KTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSB3ZWFrIgojfiBtc2dzdHIgIiNwcmFnbWEgd2VhayCkzsv2yPiky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImJyZWFrIHN0YXRlbWVudCBub3Qgd2l0aGluIGxvb3Agb3Igc3dpdGNoIgojfiBtc2dzdHIgImJyZWFrIMq4pKwgbG9vcCCk3qS/pM8gc3dpdGNoIKTOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAiY29udGludWUgc3RhdGVtZW50IG5vdCB3aXRoaW4gYSBsb29wIgojfiBtc2dzdHIgImNvbnRpbnVlIMq4pKwgbG9vcCCkzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgImRlc3RydWN0b3IgbmVlZGVkIGZvciBgJSNEJyIKI34gbXNnc3RyICJgJSNEJyCkzqS/pOGkzqXHpbmlyKXppa+lv6SsyazN16THpLkiCgojfiBtc2dpZCAid2hlcmUgY2FzZSBsYWJlbCBhcHBlYXJzIGhlcmUiCiN+IG1zZ3N0ciAiY2FzZSCl6aXZpeukrLi9pOykv6TOpM+ks6SzpMekuSIKCiN+IG1zZ2lkICIoZW5jbG9zZSBhY3Rpb25zIG9mIHByZXZpb3VzIGNhc2Ugc3RhdGVtZW50cyByZXF1aXJpbmcgZGVzdHJ1Y3RvcnMgaW4gdGhlaXIgb3duIHNjb3BlLikiCiN+IG1zZ3N0ciAiKMGwpM4gY2FzZSDKuKTOsM+kpLn+pN6k7KS/xrC67qTPpL2k7Lyrv8ikzqW5pbOhvKXXpMelx6W5pcil6aWvpb+k8s3XteGkt6TepLkpIgoKI34gbXNnaWQgIiVzIHF1YWxpZmllciBpZ25vcmVkIG9uIGFzbSIKI34gbXNnc3RyICJhc20gpMekzyAlcyC9pL7+u9KkrMy1u+uktaTspN6kuSIKCiN+IG1zZ2lkICJgJXMnIGhhcyBhbiBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAiYCVzJyCkz8nUtLDBtLe/pMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiB2b2lkIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAidm9pZCC8sKTOydTFrMDapMq7yM3RIgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGFycmF5IHdpdGggdW5zcGVjaWZpZWQgYm91bmRzIgojfiBtc2dzdHIgIrats6akrLvYxOqktaTspMqkpMfbzvOkzsnUxazA2qTKzfjN0SIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiB1bmRlZmluZWQgdHlwZSBgJXMgJXMnIgojfiBtc2dzdHIgIsykxOq1waTOt78gYCVzICVzJyCkzrvIzdGkz8nUxazA2qTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgaW5jb21wbGV0ZSB0eXBlZGVmIGAlcyciCiN+IG1zZ3N0ciAiydS0sMG0pMogdHlwZWRlZiBgJXMnIKTOu8jN0aTPydTFrMDapMekuSIKCiN+IG1zZ2lkICJmdW5jdGlvbiB0eXBlcyBub3QgdHJ1bHkgY29tcGF0aWJsZSBpbiBJU08gQyIKI34gbXNnc3RyICK02L/0t7+krCBJU08gQyCkyLSwwbS437S5pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidHlwZXMgYXJlIG5vdCBxdWl0ZSBjb21wYXRpYmxlIgojfiBtc2dzdHIgIre/pM/BtKSvuN+0uaSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJzaXplb2YgYXBwbGllZCB0byBhIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAic2l6ZW9mIKSstNi/9Le/pMvFrM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICJzaXplb2YgYXBwbGllZCB0byBhIHZvaWQgdHlwZSIKI34gbXNnc3RyICJzaXplb2YgpKwgdm9pZCC3v6TLxazN0aS1pOyk3qS3pL8iCgojfiBtc2dpZCAic2l6ZW9mIGFwcGxpZWQgdG8gYW4gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgInNpemVvZiCkrMnUtLDBtKTKt7+ky8WszdGktaTspN6kt6S/IgoKI34gbXNnaWQgImFyaXRobWV0aWMgb24gcG9pbnRlciB0byBhbiBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAiydS0sMG0t7+k2KTOpd2lpKXzpb+ky8LQpLmk67Hpu7siCgojfiBtc2dpZCAiX19hbGlnbm9mX18gYXBwbGllZCB0byBhbiBpbmNvbXBsZXRlIHR5cGUiCiN+IG1zZ3N0ciAiX19hbGlnbm9mX18gpKzJ1LSwwbSkyre/pMvFrM3RpLWk7KTepLekvyIKCiN+IG1zZ2lkICJgX19hbGlnbm9mJyBhcHBsaWVkIHRvIGEgYml0LWZpZWxkIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmkyyBgX19hbGlnbm9mJyCkrMWszdGktaTspN6kt6S/IgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIG5vbi1sdmFsdWUgYXJyYXkiCiN+IG1zZ3N0ciAiyPO6uMrVw83H287zpM7Mtbj6pMrN+M3RIgoKI34gbXNnaWQgIiVzIGhhcyBubyBtZW1iZXIgbmFtZWQgYCVzJyIKI34gbXNnc3RyICIlcyCkyyBgJXMnIKTIpKSkpsy+wbCkzqXhpfOl0KTPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJyZXF1ZXN0IGZvciBtZW1iZXIgYCVzJyBpbiBzb21ldGhpbmcgbm90IGEgc3RydWN0dXJlIG9yIHVuaW9uIgojfiBtc2dzdHIgIrm9wqTCzqTHpOK2ps3Rws6kx6TipMqkpLK/pKukx6GipeGl86XQIGAlcycgpPLN17XhpLWk7KTepLekvyIKCiN+IG1zZ2lkICJkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIsnUtLDBtLe/pM6l3aWkpfOlv6TYpM601sDcu7K+yCIKCiN+IG1zZ2lkICJkZXJlZmVyZW5jaW5nIGB2b2lkIConIHBvaW50ZXIiCiN+IG1zZ3N0ciAiYHZvaWQgKicgpd2lpKXzpb+k2KTOtNbA3Luyvsikx6S5IgoKI34gbXNnaWQgImludmFsaWQgdHlwZSBhcmd1bWVudCBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM6w+r/0pMikt6TGzLW4+qTKt78iCgojfiBtc2dpZCAic3Vic2NyaXB0IG1pc3NpbmcgaW4gYXJyYXkgcmVmZXJlbmNlIgojfiBtc2dzdHIgIsfbzvO7sr7IpMekzsW6u/qk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJhcnJheSBzdWJzY3JpcHQgaGFzIHR5cGUgYGNoYXInIgojfiBtc2dzdHIgIsfbzvOkzsW6u/qkrCBgY2hhcicgt7+kx6S5IgoKI34gbXNnaWQgImFycmF5IHN1YnNjcmlwdCBpcyBub3QgYW4gaW50ZWdlciIKI34gbXNnc3RyICLH287zpM7Furv6pKzAsL/0t7+kx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIHN1YnNjcmlwdGluZyBgcmVnaXN0ZXInIGFycmF5IgojfiBtc2dzdHIgIklTTyBDIKTPIGByZWdpc3Rlcicgx9vO86TYpM7Furv6pPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQzg5IGZvcmJpZHMgc3Vic2NyaXB0aW5nIG5vbi1sdmFsdWUgYXJyYXkiCiN+IG1zZ3N0ciAiSVNPIEM4OSDI87q4ytXDzcfbzvOk2KTOxbq7+qTyttikuKTepLkiCgojfiBtc2dpZCAic3Vic2NyaXB0IGhhcyB0eXBlIGBjaGFyJyIKI34gbXNnc3RyICLFurv6pKwgYGNoYXInILe/pPKk4qTBpN6kuSIKCiN+IG1zZ2lkICJzdWJzY3JpcHRlZCB2YWx1ZSBpcyBuZWl0aGVyIGFycmF5IG5vciBwb2ludGVyIgojfiBtc2dzdHIgIsW6u/qk8qTEpLGk6aTspL/DzaSsx9vO86THpOKl3aWkpfOlv6THpOKkoqTqpN6ku6TzIgoKI34gbXNnaWQgImAlcycgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbikiCiN+IG1zZ3N0ciAiYCVzJyCkrKSzpLOkx6TPxOq1waS1pOykxqSkpN6ku6TzICi02L/0pM7D5qTHpM+kyqSkKSIKCiN+IG1zZ2lkICJgJXMnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKSIKI34gbXNnc3RyICJgJXMnIKSswOu4wKS1pOykxqSkpN6ku6TzICiks6TOtNi/9MbipMe6x73ppMvN+M3RKSIKCiN+IG1zZ2lkICIoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIgojfiBtc2dzdHIgIijMpMDruMCkzrPGytG/9KTLpMSkpKTGpM+hoqS9pOykrLrHvemky7i9pO+k7KS/pL2k7KS+pOykzrTYv/QiCgojfiBtc2dpZCAiZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pIgojfiBtc2dzdHIgIiCky8LQpLekxrDsxdmkwKSxyvO58KS1pOyk3qS5oaMpIgoKI34gbXNnaWQgImxvY2FsIGRlY2xhcmF0aW9uIG9mIGAlcycgaGlkZXMgaW5zdGFuY2UgdmFyaWFibGUiCiN+IG1zZ3N0ciAiYCVzJyCkzqXtobylq6XrwOu4wKTHoaKlpKXzpbmlv6XzpbnK0b/0pKyxo6S1pOyk3qS5IgoKI34gbXNnaWQgImNhbGxlZCBvYmplY3QgaXMgbm90IGEgZnVuY3Rpb24iCiN+IG1zZ3N0ciAiuMak073QpLWk7KS/paql1qW4paelr6XIpM+02L/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrTYv/Sky8LQpLmk67D6v/SkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAidHlwZSBvZiBmb3JtYWwgcGFyYW1ldGVyICVkIGlzIGluY29tcGxldGUiCiN+IG1zZ3N0ciAiwLW8sKTKsr6w+r/0ICVkIKTOt7+krMnUtLDBtKTHpLkiCgojfiBtc2dpZCAiJXMgYXMgaW50ZWdlciByYXRoZXIgdGhhbiBmbG9hdGluZyBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPyeLGsL6uv/S3v6THpM+kyqSvwLC/9Le/pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgaW50ZWdlciByYXRoZXIgdGhhbiBjb21wbGV4IGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpMuk6KTrpMggJXMgpM/Ko8HHv/Skx6TPpMqkr8Cwv/S3v6TIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIGNvbXBsZXggcmF0aGVyIHRoYW4gZmxvYXRpbmcgZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOukyCAlcyCkz8nixrC+rr/0t7+kx6TPpMqkr8qjwce/9Le/pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgZmxvYXRpbmcgcmF0aGVyIHRoYW4gaW50ZWdlciBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPwLC/9Le/pMekz6TKpK/J4sawvq6/9Le/pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgY29tcGxleCByYXRoZXIgdGhhbiBpbnRlZ2VyIGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpMuk6KTrpMggJXMgpM/AsL/0t7+kx6TPpMqkr8qjwce/9Le/pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgZmxvYXRpbmcgcmF0aGVyIHRoYW4gY29tcGxleCBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPyqPBx7/0pMekz6TKpK/J4sawvq6/9Le/pMiktaTspMakpKTepLkiCgojfiBtc2dpZCAiJXMgYXMgYGZsb2F0JyByYXRoZXIgdGhhbiBgZG91YmxlJyBkdWUgdG8gcHJvdG90eXBlIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16TLpOik66TIICVzIKTPIGBkb3VibGUnIKTHpMqkryBgZmxvYXQnIKTIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIiVzIHdpdGggZGlmZmVyZW50IHdpZHRoIGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAiJXMgpM+l16Xtpcilv6Wkpdekx6TOt7+kzsn9pMikz7DbpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgIiVzIGFzIHVuc2lnbmVkIGR1ZSB0byBwcm90b3R5cGUiCiN+IG1zZ3N0ciAipdel7aXIpb+lpKXXpMuk6KTqICVzIKTPyeS556TKpLekyKS1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICIlcyBhcyBzaWduZWQgZHVlIHRvIHByb3RvdHlwZSIKI34gbXNnc3RyICKl16Xtpcilv6Wkpdeky6TopOogJXMgpM/J5LnnydWkraTIpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrTYv/Sk2KTOsPq/9KSsvq+kyqS5pK6k3qS5IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kICsgb3IgLSBpbnNpZGUgc2hpZnQiCiN+IG1zZ3N0ciAipbel1aXIw+akziArIKTkIC0gpM68/qTqpMekz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCAmJiB3aXRoaW4gfHwiCiN+IG1zZ3N0ciAifHwgpMi2pqTLu8ik76TspOsgJiYgpM68/qTqpMekz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCBhcml0aG1ldGljIGluIG9wZXJhbmQgb2YgfCIKI34gbXNnc3RyICK317u7pKwgfCCx6bu7u9KkzrngpMikyqTrvuy556TLpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgY29tcGFyaXNvbiBpbiBvcGVyYW5kIG9mIHwiCiN+IG1zZ3N0ciAiyOaz06SsIHwgsem7u7vSpM654KTIpMqk677sueeky6TPs+e4zKTypMSksaTrpLOkyKTypKq0q6ThpLek3qS5IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGFyaXRobWV0aWMgaW4gb3BlcmFuZCBvZiBeIgojfiBtc2dzdHIgIrfXu7ukrCBeILHpu7u70qTOueCkyKTKpOu+7LnnpMukz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCBjb21wYXJpc29uIGluIG9wZXJhbmQgb2YgXiIKI34gbXNnc3RyICK317u7pKwgXiCx6bu7u9KkzrngpMikyqTrvuy556TLpM+z57jMpPKkxKSxpOuks6TIpPKkqrSrpOGkt6TepLkiCgojfiBtc2dpZCAic3VnZ2VzdCBwYXJlbnRoZXNlcyBhcm91bmQgKyBvciAtIGluIG9wZXJhbmQgb2YgJiIKI34gbXNnc3RyICImILHpu7u70qTOvP6k6qTOICsgpOQgLSCkzrz+pOqky6TPs+e4zKTypMSksaTrpLOkyKTypKq0q6ThpLek3qS5IgoKI34gbXNnaWQgInN1Z2dlc3QgcGFyZW50aGVzZXMgYXJvdW5kIGNvbXBhcmlzb24gaW4gb3BlcmFuZCBvZiAmIgojfiBtc2dzdHIgIsjms9OkrCAmILHpu7u70qTOueCkyKTKpOu+7LnnpMukz7PnuMyk8qTEpLGk66SzpMik8qSqtKuk4aS3pN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29ucyBsaWtlIFg8PVk8PVogZG8gbm90IGhhdmUgdGhlaXIgbWF0aGVtYXRpY2FsIG1lYW5pbmciCiN+IG1zZ3N0ciAiWDw9WTw9WiCkzs3NpMrI5rPTpM+/9LPYxaqkyrDVzKOkx6TOt+uyzKTypOKkv6TppLek3qS7pPMiCgojfiBtc2dpZCAicmlnaHQgc2hpZnQgY291bnQgaXMgbmVnYXRpdmUiCiN+IG1zZ3N0ciAisaalt6XVpciy87/0pKzJ6aTOv/Skx6S5IgoKI34gbXNnaWQgInJpZ2h0IHNoaWZ0IGNvdW50ID49IHdpZHRoIG9mIHR5cGUiCiN+IG1zZ3N0ciAisaalt6XVpciy87/0ID49ILe/pM7J/aTIpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgImxlZnQgc2hpZnQgY291bnQgaXMgbmVnYXRpdmUiCiN+IG1zZ3N0ciAiurilt6XVpciy87/0pKzJ6aTOv/Skx6S5IgoKI34gbXNnaWQgImxlZnQgc2hpZnQgY291bnQgPj0gd2lkdGggb2YgdHlwZSIKI34gbXNnc3RyICK6uKW3pdWlyLLzv/QgPj0gt7+kzsn9pMikyqTDpMakpKTepLkiCgojfiBtc2dpZCAic2hpZnQgY291bnQgaXMgbmVnYXRpdmUiCiN+IG1zZ3N0ciAipbel1aXIsvO/9KSsyemkzsPNpMekuSIKCiN+IG1zZ2lkICJzaGlmdCBjb3VudCA+PSB3aWR0aCBvZiB0eXBlIgojfiBtc2dzdHIgIqW3pdWlyLLzv/QgPj0gt7+kzsn9pMikyqTDpMakpKTepLkiCgojfiBtc2dpZCAiY29tcGFyaW5nIGZsb2F0aW5nIHBvaW50IHdpdGggPT0gb3IgIT0gaXMgdW5zYWZlIgojfiBtc2dzdHIgIsnixrC+rr/0xcCkzsjms9OkxyA9PSCk5CAhPSCk8rvIpKakzqTPsMLBtKTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgY29tcGFyaXNvbiBvZiBgdm9pZCAqJyB3aXRoIGZ1bmN0aW9uIHBvaW50ZXIiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gYHZvaWQgKicgpMi02L/0pd2lpKXzpb+kyKTOyOaz06TyttikuKTepLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBvZiBkaXN0aW5jdCBwb2ludGVyIHR5cGVzIGxhY2tzIGEgY2FzdCIKI34gbXNnc3RyICK3v6SswbSkr7DbpMqk66XdpaSl86W/pM7I5rPTpMelraXjpbmlyKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyIgojfiBtc2dzdHIgIqXdpaSl86W/pMjAsL/0pMikzsjms9Ok8rnUpMqkw6TGpKSk3qS5IgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgb3JkZXJlZCBjb21wYXJpc29ucyBvZiBwb2ludGVycyB0byBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMgtNi/9KXdpaSl86W/pM695734yOaz06TyttikuKTepLkiCgojfiBtc2dpZCAiY29tcGFyaXNvbiBvZiBjb21wbGV0ZSBhbmQgaW5jb21wbGV0ZSBwb2ludGVycyIKI34gbXNnc3RyICK0sMG0pMql3aWkpfOlv6TIydS0sMG0pMql3aWkpfOlv6TIpM7I5rPTpMekuSIKCiN+IG1zZ2lkICJvcmRlcmVkIGNvbXBhcmlzb24gb2YgcG9pbnRlciB3aXRoIGludGVnZXIgemVybyIKI34gbXNnc3RyICLAsL/0IDAgpMil3aWkpfOlv6TIpM695734yOaz06THpLkiCgojfiBtc2dpZCAidW5vcmRlcmVkIGNvbXBhcmlzb24gb24gbm9uLWZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IgojfiBtc2dzdHIgIsjzyeLGsL6uv/TFwLD6v/Skx6TOvee9+MnVpLGk6aTspMqkpMjms9Okx6S5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIgojfiBtc2dzdHIgIsnkuefJ1aStpMjJ5LnnzLWkt6TIpM7I5rPTpMekuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIG9mIHByb21vdGVkIH51bnNpZ25lZCB3aXRoIGNvbnN0YW50IgojfiBtc2dzdHIgIn6kx8i/xb6ktaTspL+zyr7lpLLJ5LnnzLWkt7e/pMjE6r/0pMikzsjms9Okx6S5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gb2YgcHJvbW90ZWQgfnVuc2lnbmVkIHdpdGggdW5zaWduZWQiCiN+IG1zZ3N0ciAifqTHyL/FvqS1pOykv8nkuefMtaS3t7+kyMnkuefMtaS3t7+kyKTOyOaz06THpLkiCgojfiBtc2dpZCAicG9pbnRlciBvZiB0eXBlIGB2b2lkIConIHVzZWQgaW4gYXJpdGhtZXRpYyIKI34gbXNnc3RyICJgdm9pZCAqJyC3v6TOpd2lpKXzpb+krLfXu7ukx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJwb2ludGVyIHRvIGEgZnVuY3Rpb24gdXNlZCBpbiBhcml0aG1ldGljIgojfiBtc2dzdHIgIrTYv/Sl3aWkpfOlv6Sst9e7u6THu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInBvaW50ZXIgb2YgdHlwZSBgdm9pZCAqJyB1c2VkIGluIHN1YnRyYWN0aW9uIgojfiBtc2dzdHIgImB2b2lkIConILe/pM6l3aWkpfOlv6TOurmk8rXhpOGk6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgInBvaW50ZXIgdG8gYSBmdW5jdGlvbiB1c2VkIGluIHN1YnRyYWN0aW9uIgojfiBtc2dzdHIgIrTYv/Sl3aWkpfOlv6TOurmk8rXhpOGk6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgIndyb25nIHR5cGUgYXJndW1lbnQgdG8gdW5hcnkgcGx1cyIKI34gbXNnc3RyICLDsbngpdel6aW5pNikzrD6v/Skzre/pKy01rDjpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJ3cm9uZyB0eXBlIGFyZ3VtZW50IHRvIHVuYXJ5IG1pbnVzIgojfiBtc2dzdHIgIsOxueCl3qWkpcqluaTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCBgficgZm9yIGNvbXBsZXggY29uanVnYXRpb24iCiN+IG1zZ3N0ciAiSVNPIEMgpM/Ko8HHtqbM8s3RpM4gYH4nIKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byBiaXQtY29tcGxlbWVudCIKI34gbXNnc3RyICKl06XDpcjIv8W+pNikzrD6v/Skzre/pKy01rDjpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJ3cm9uZyB0eXBlIGFyZ3VtZW50IHRvIGFicyIKI34gbXNnc3RyICJhYnMgpNikzrD6v/Skzre/pKy01rDjpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJ3cm9uZyB0eXBlIGFyZ3VtZW50IHRvIGNvbmp1Z2F0aW9uIgojfiBtc2dzdHIgIsqjwce2pszyKH4ppNikzrD6v/Skzre/pKy01rDjpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJ3cm9uZyB0eXBlIGFyZ3VtZW50IHRvIHVuYXJ5IGV4Y2xhbWF0aW9uIG1hcmsiCiN+IG1zZ3N0ciAiw7G54LS2w7LJ5CghKaTYpM6w+r/0pM63v6SstNaw46TDpMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZG9lcyBub3Qgc3VwcG9ydCBgKysnIGFuZCBgLS0nIG9uIGNvbXBsZXggdHlwZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gY29tcGxleCC3v6THpM4gYCsrJyCkyCBgLS0nIKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAid3JvbmcgdHlwZSBhcmd1bWVudCB0byAlcyIKI34gbXNnc3RyICIlcyCk2KTOsPq/9KTOt7+krLTWsOOkw6TGpKSk3qS5IgoKI34gbXNnaWQgIiVzIG9mIHBvaW50ZXIgdG8gdW5rbm93biBzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAiydTMwKTKub3CpMLOpMvC0KS5pOul3aWkpfOlv6TOJXMiCgojfiBtc2dpZCAiaW52YWxpZCBsdmFsdWUgaW4gaW5jcmVtZW50IgojfiBtc2dzdHIgIqWkpfOlr6XqpeGl86XIpM7D5qTHpM66uMrVw82krMy1uPqkx6S5IgoKI34gbXNnaWQgImludmFsaWQgbHZhbHVlIGluIGRlY3JlbWVudCIKI34gbXNnc3RyICKlx6Wvpeql4aXzpcikzsPmpMekzrq4ytXDzaSszLW4+qTHpLkiCgojfiBtc2dpZCAiaW5jcmVtZW50IgojfiBtc2dzdHIgIqWkpfOlr6XqpeGl86XIIgoKI34gbXNnaWQgImRlY3JlbWVudCIKI34gbXNnc3RyICKlx6Wvpeql4aXzpcgiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyB0aGUgYWRkcmVzcyBvZiBhIGNhc3QgZXhwcmVzc2lvbiIKI34gbXNnc3RyICJJU08gQyCkz6WtpeOluaXIvLCkzqWipcml7KW5yb6ywaTyttikuKTepLkiCgojfiBtc2dpZCAiaW52YWxpZCBsdmFsdWUgaW4gdW5hcnkgYCYnIgojfiBtc2dzdHIgIsOxueCkziBgJicgpMekzrq4ytXDzaSszLW4+qTHpLkiCgojfiBtc2dpZCAiYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0LWZpZWxkIHN0cnVjdHVyZSBtZW1iZXIgYCVzJyIKI34gbXNnc3RyICK5vcKkws6l4aXzpdAgYCVzJyCkzqXTpcOlyKXVpaOhvKXrpcmkzqWipcml7KW5pPK86MbApLek6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgIiVzIgojfiBtc2dzdHIgIiVzIgoKI34gbXNnaWQgIklTTyBDIGZvcmJpZHMgdXNlIG9mIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIGFzIGx2YWx1ZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+6uMrVw82kyKS3pMakzr7yt++8sKTOzfjN0aTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyB1c2Ugb2YgY29tcG91bmQgZXhwcmVzc2lvbnMgYXMgbHZhbHVlcyIKI34gbXNnc3RyICJJU08gQyCkz7q4ytXDzaTIpLekxqTOyqO557ywpM7N+M3RpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIHVzZSBvZiBjYXN0IGV4cHJlc3Npb25zIGFzIGx2YWx1ZXMiCiN+IG1zZ3N0ciAiSVNPIEMgpM+6uMrVw82kyKS3pMakzqWtpeOluaXIvLCkzs34zdGk8rbYpLik3qS5IgoKI34gbXNnaWQgIiVzIG9mIHJlYWQtb25seSBtZW1iZXIgYCVzJyIKI34gbXNnc3RyICIlc6Ssxsmk37n+pN/A7M3RpeGl86XQIGAlcycgpMu51KTvpOyk3qS3pL8iCgojfiBtc2dpZCAiJXMgb2YgcmVhZC1vbmx5IHZhcmlhYmxlIGAlcyciCiN+IG1zZ3N0ciAiJXOkrMbJpN+5/qTfwOzN0crRv/QgYCVzJyCky7nUpO+k7KTepLekvyIKCiN+IG1zZ2lkICIlcyBvZiByZWFkLW9ubHkgbG9jYXRpb24iCiN+IG1zZ3N0ciAiJXOkrMbJpN+5/qTfwOzN0c7OsOikx7nUpO+k7KTepLekvyIKCiN+IG1zZ2lkICJjYW5ub3QgdGFrZSBhZGRyZXNzIG9mIGJpdGZpZWxkIGAlcyciCiN+IG1zZ3N0ciAipdOlw6XIpdWlo6G8peulySBgJXMnIKTOpaKlyaXspbmk8rzoxsCkx6StpN6ku6TzIgoKI34gbXNnaWQgImdsb2JhbCByZWdpc3RlciB2YXJpYWJsZSBgJXMnIHVzZWQgaW4gbmVzdGVkIGZ1bmN0aW9uIgojfiBtc2dzdHIgIsLnsOil7KW4pbmlv8rRv/QgYCVzJyCkrMb+pOy70rTYv/SkzsPmpMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAicmVnaXN0ZXIgdmFyaWFibGUgYCVzJyB1c2VkIGluIG5lc3RlZCBmdW5jdGlvbiIKI34gbXNnc3RyICKl7KW4pbmlv8rRv/QgYCVzJyCkrMb+pOy70rTYv/SkzsPmpMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiYWRkcmVzcyBvZiBnbG9iYWwgcmVnaXN0ZXIgdmFyaWFibGUgYCVzJyByZXF1ZXN0ZWQiCiN+IG1zZ3N0ciAizde14aS1pOykv8LnsOil7KW4pbmlv8rRv/QgYCVzJyCkzqWipcml7KW5IgoKI34gbXNnaWQgImNhbm5vdCBwdXQgb2JqZWN0IHdpdGggdm9sYXRpbGUgZmllbGQgaW50byByZWdpc3RlciIKI34gbXNnc3RyICJ2b2xhdGlsZSCl1aWjobyl66XJpPKl7KW4pbmlv6TLu/2kw6TGpKSk66TopKakyqWqpdaluKWnpa+lyKTyw9aksaTepLuk8yIKCiN+IG1zZ2lkICJhZGRyZXNzIG9mIHJlZ2lzdGVyIHZhcmlhYmxlIGAlcycgcmVxdWVzdGVkIgojfiBtc2dzdHIgInJlZ2lzdGVyIMrRv/QgYCVzJyCkzqWipcml7KW5pKzN17XhpLWk7KTepLekvyIKCiN+IG1zZ2lkICJzaWduZWQgYW5kIHVuc2lnbmVkIHR5cGUgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKI34gbXNnc3RyICK+8rfvvLCky8nkuefJ1aStt7+kyMnkuefMtaS3t7+kyKSspKKk6qTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIgojfiBtc2dzdHIgIklTTyBDIKTPytLCpqTApLGkrCB2b2lkIKTIpMqk677yt++8sKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIGJldHdlZW4gYHZvaWQgKicgYW5kIGZ1bmN0aW9uIHBvaW50ZXIiCiN+IG1zZ3N0ciAiSVNPIEMgpM8gYHZvaWQgKicgpMi02L/0pd2lpKXzpb+kyKTyvvK377ywpMikuaTrpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivvK377ywpMekzqXdpaSl86W/pM63v6Ssxay556S3pN6ku6TzIgoKI34gbXNnaWQgInBvaW50ZXIvaW50ZWdlciB0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivvK377ywpMel3aWkpfOlv7e/pMjAsL/0t7+krMWsueekt6TepLuk8yIKCiN+IG1zZ2lkICJ0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAivvK377ywpMekzre/pM7ByLnnpO+ku6Ssxay556S3pN6ku6TzIgoKI34gbXNnaWQgImxlZnQtaGFuZCBvcGVyYW5kIG9mIGNvbW1hIGV4cHJlc3Npb24gaGFzIG5vIGVmZmVjdCIKI34gbXNnc3RyICKlq6Xzpd6x6bu7u9Kkzrq4wqakzrywpMu4+s7PpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImNhc3Qgc3BlY2lmaWVzIGFycmF5IHR5cGUiCiN+IG1zZ3N0ciAipa2l46W5pcikrMfbzvO3v6Tyu9jE6qS3pMakpKTepLkiCgojfiBtc2dpZCAiY2FzdCBzcGVjaWZpZXMgZnVuY3Rpb24gdHlwZSIKI34gbXNnc3RyICKlraXjpbmlyKTPtNi/9Le/pPK72MTqpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJJU08gQyBmb3JiaWRzIGNhc3Rpbmcgbm9uc2NhbGFyIHRvIHRoZSBzYW1lIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMgpM/I86W5paul6aG8pKuk6caxpLi3v6TYpM6lraXjpbmlyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyBjYXN0cyB0byB1bmlvbiB0eXBlIgojfiBtc2dzdHIgIklTTyBDIKTPtqbN0cLOt7+k2KTOpa2l46W5pcik8rbYpLik3qS5IgoKI34gbXNnaWQgImNhc3QgdG8gdW5pb24gdHlwZSBmcm9tIHR5cGUgbm90IHByZXNlbnQgaW4gdW5pb24iCiN+IG1zZ3N0ciAitqbN0cLOpM7D5qTLpMqkpLe/pKuk6bamzdHCzre/pNilraXjpbmlyKS3pMakpKTepLkiCgojfiBtc2dpZCAiY2FzdCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZSIKI34gbXNnc3RyICKlraXjpbmlyKTLpOikw6TGpd2lpKXzpb+krLyopLm3v6SrpOm9pL7+u9KkrMDapOq8zqTGpOmk7KTepLkiCgojfiBtc2dpZCAiY2FzdCBpbmNyZWFzZXMgcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRhcmdldCB0eXBlIgojfiBtc2dzdHIgIqWtpeOluaXIpMuk6KTDpMal3aWkpfOlv6SsvKikube/pM7N17XhpaKl6aWkpfOl4aXzpcikrMH9ssOkt6TepLkiCgojfiBtc2dpZCAiY2FzdCBmcm9tIHBvaW50ZXIgdG8gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSIKI34gbXNnc3RyICKlraXjpbmlyKTLpOikw6TGpd2lpKXzpb+kq6TpsNukyqTrpbWlpKW6pM7AsL/0pMikyqTqpN6kuSIKCiN+IG1zZ2lkICJjYXN0IGRvZXMgbm90IG1hdGNoIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAipa2l46W5pciky6TopOu02L/0pM63v6Ssxay556S3pN6ku6TzIgoKI34gbXNnaWQgImNhc3QgdG8gcG9pbnRlciBmcm9tIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUiCiN+IG1zZ3N0ciAisNukyqTrpbWlpKW6pM7AsL/0pKuk6aXdpaSl86W/pMulraXjpbmlyKS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW52YWxpZCBsdmFsdWUgaW4gYXNzaWdubWVudCIKI34gbXNnc3RyICLC5cb+pMikt6TGzLW4+qTKurjK1cPNpMekuSIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IgojfiBtc2dzdHIgIsLlxv4iCgojfiBtc2dpZCAiJXMgbWFrZXMgcXVhbGlmaWVkIGZ1bmN0aW9uIHBvaW50ZXIgZnJvbSB1bnF1YWxpZmllZCIKI34gbXNnc3RyICIlc6TLpOik6qGivaS+/qS1pOykyqSktNi/9KXdpaSl86W/pKuk6aGivaS+/qS1pOykv7TYv/Sl3aWkpfOlv6Tyuu6k6qTepLkiCgojfiBtc2dpZCAiJXMgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUiCiN+IG1zZ3N0ciAiJXOky6TopOqhoqXdpaSl86W/pM68qKS5t7+kq6TppM69pL7+u9KkrMDapOq8zqTGpOmk7KTepLkiCgojfiBtc2dpZCAiSVNPIEMgcHJvaGliaXRzIGFyZ3VtZW50IGNvbnZlcnNpb24gdG8gdW5pb24gdHlwZSIKI34gbXNnc3RyICJJU08gQyCkx6TPsPq/9KSrpOm2ps3Rws6k2KTOytG0uaTytti736S3pMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMgZm9yYmlkcyAlcyBiZXR3ZWVuIGZ1bmN0aW9uIHBvaW50ZXIgYW5kIGB2b2lkIConIgojfiBtc2dzdHIgIklTTyBDIKTPtNi/9KXdpaSl86W/pMggYHZvaWQgKicgpMikziVzpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJwb2ludGVyIHRhcmdldHMgaW4gJXMgZGlmZmVyIGluIHNpZ25lZG5lc3MiCiN+IG1zZ3N0ciAiJXMgpMel3aWkpfOlv6TOvKikucLQvt2kzsnkueakzs2tzLWkrLDbpMqk6qTepLkiCgojfiBtc2dpZCAiJXMgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIgojfiBtc2dzdHIgIrjftLnAraTOpMqkpKXdpaSl86W/t7+kq6TppM4lc6THpLkiCgojfiBtc2dpZCAiJXMgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QiCiN+IG1zZ3N0ciAiJXOky6TopOqhoqWtpeOluaXIpMqkt6THwLC/9KSrpOml3aWkpfOlv6Tyuu6k6qTepLekvyIKCiN+IG1zZ2lkICIlcyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdCIKI34gbXNnc3RyICIlc6TLpOik6qGipa2l46W5pcikyqS3pMel3aWkpfOlv6SrpOnAsL/0pPK67qTqpN6kt6S/IgoKI34gbXNnaWQgImluY29tcGF0aWJsZSB0eXBlIGZvciBhcmd1bWVudCAlZCBvZiBgJXMnIgojfiBtc2dzdHIgIiVkIMjWzNykzrD6v/SkrCBgJXMnIKTOt7+kyLjftLnAraSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbmNvbXBhdGlibGUgdHlwZSBmb3IgYXJndW1lbnQgJWQgb2YgaW5kaXJlY3QgZnVuY3Rpb24gY2FsbCIKI34gbXNnc3RyICK01sDcxaqkyrTYv/S4xqTTvdCkt6TOwuggJWQgsPq/9KTLwtCkt6TGuN+0ucCtpM6kyqSkt7+kx6S5IgoKI34gbXNnaWQgImluY29tcGF0aWJsZSB0eXBlcyBpbiAlcyIKI34gbXNnc3RyICIlcyCky7jftLnAraTOpMqkpLe/IgoKI34gbXNnaWQgInBhc3NpbmcgYXJnICVkIG9mIGAlcyciCiN+IG1zZ3N0ciAisPq/9CAlZCC4xKTOIGAlcycgpPLFz6S3pN6kuSIKCiN+IG1zZ2lkICJwYXNzaW5nIGFyZyAlZCBvZiBwb2ludGVyIHRvIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrD6v/QgJWQguMSkzrTYv/Sl3aWkpfOlv6Tyxc+kt6TepLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZm9yIHN0YXRpYyB2YXJpYWJsZSBpcyBub3QgY29uc3RhbnQiCiN+IG1zZ3N0ciAic3RhdGljIMrRv/Skzr3ptPyyvbvSpKzE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZm9yIHN0YXRpYyB2YXJpYWJsZSB1c2VzIGNvbXBsaWNhdGVkIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAic3RhdGljIMrRv/Skzr3ptPyyvbvSpKzKo7uopMq317u7pPK7yKTDpMakpKTepLkiCgojfiBtc2dpZCAiYWdncmVnYXRlIGluaXRpYWxpemVyIGlzIG5vdCBjb25zdGFudCIKI34gbXNnc3RyICK9uLnnws6kzr3ptPyyvbvSpKzE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYWdncmVnYXRlIGluaXRpYWxpemVyIHVzZXMgY29tcGxpY2F0ZWQgYXJpdGhtZXRpYyIKI34gbXNnc3RyICK9uLnnws6kzr3ptPyyvbvSpMfKo7uopMq317u7pPK51KTDpMakpKTepLkiCgojfiBtc2dpZCAidHJhZGl0aW9uYWwgQyByZWplY3RzIGF1dG9tYXRpYyBhZ2dyZWdhdGUgaW5pdGlhbGl6YXRpb24iCiN+IG1zZ3N0ciAiuMWkpCBDIKTHpM+8q8awxaqkyr24uefCzqTOvem0/LK9pPK18cDkpLek3qS5IgoKI34gbXNnaWQgIihuZWFyIGluaXRpYWxpemF0aW9uIGZvciBgJXMnKSIKI34gbXNnc3RyICIoYCVzJyCkzr3ptPyyvaTPydS0sMG0pMekuSkiCgojfiBtc2dpZCAiY2hhci1hcnJheSBpbml0aWFsaXplZCBmcm9tIHdpZGUgc3RyaW5nIgojfiBtc2dzdHIgIqXvpaSlycq4u/rO86SrpOkgY2hhciCkzsfbzvOkrL3ptPyyvaS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW50LWFycmF5IGluaXRpYWxpemVkIGZyb20gbm9uLXdpZGUgc3RyaW5nIgojfiBtc2dzdHIgIsjzpe+lpKXJyri7+s7zpKuk6SBpbnQgpM7H287zpKy96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgImluaXRpYWxpemVyLXN0cmluZyBmb3IgYXJyYXkgb2YgY2hhcnMgaXMgdG9vIGxvbmciCiN+IG1zZ3N0ciAiY2hhciCkzsfbzvOky6TIpMOkxr3ptPyyvbvSyri7+s7zpKzEuaS5pK6k3qS5IgoKI34gbXNnaWQgImFycmF5IGluaXRpYWxpemVkIGZyb20gbm9uLWNvbnN0YW50IGFycmF5IGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiyPPE6r/0x9vO87ywpKuk6cfbzvOkrL3ptPyyvaS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29uc3RhbnQiCiN+IG1zZ3N0ciAivem0/LK9u9Kkzs3XwcekrMTqv/Skx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbml0aWFsaXphdGlvbiIKI34gbXNnc3RyICK96bT8sr0iCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29tcHV0YWJsZSBhdCBsb2FkIHRpbWUiCiN+IG1zZ3N0ciAivem0/LK9u9Kkzs3Xwcekz6Xtobylybv+pMu317u7pLWk7MbApN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAizLW4+qTKvem0/LK9u9IiCgojfiBtc2dpZCAiZXh0cmEgYnJhY2UgZ3JvdXAgYXQgZW5kIG9mIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIr3ptPyyvbvSpM69qqTvpOqky82+yqykyqXWpeyhvKW5pM6lsKXrobyl1yIKCiN+IG1zZ2lkICJtaXNzaW5nIGJyYWNlcyBhcm91bmQgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivem0/LK9u9KkzqTepO+k6qTOpdal7KG8pbmk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJicmFjZXMgYXJvdW5kIHNjYWxhciBpbml0aWFsaXplciIKI34gbXNnc3RyICKluaWrpemhvL3ptPyyvbvSpKyl1qXsobyluaTHsM+k3qTspMakpKTepLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6YXRpb24gb2YgZmxleGlibGUgYXJyYXkgbWVtYmVyIGluIGEgbmVzdGVkIGNvbnRleHQiCiN+IG1zZ3N0ciAipc2luaXIpLekv8q4zK6kx7LEytHH287zpeGl86XQpPK96bT8sr2kt6TGpKSk3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemF0aW9uIG9mIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIgojfiBtc2dzdHIgIrLEytHH287zpeGl86XQpPK96bT8sr2kt6TGpKSk3qS5IgoKI34gbXNnaWQgImRlcHJlY2F0ZWQgaW5pdGlhbGl6YXRpb24gb2YgemVyby1sZW5ndGggYXJyYXkiCiN+IG1zZ3N0ciAixLmktSAwIKTOvem0/LK9pM+/5L6ppLWk7KTepLuk8yIKCiN+IG1zZ2lkICJpbml0aWFsaXphdGlvbiBvZiB6ZXJvLWxlbmd0aCBhcnJheSBiZWZvcmUgZW5kIG9mIHN0cnVjdHVyZSIKI34gbXNnc3RyICK5vcKkws6kzrrHuOWk6KTqwbCkx8S5pLUgMCCkzsfbzvOk8r3ptPyyvaS3pMakpKTepLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6YXRpb24gb2YgemVyby1sZW5ndGggYXJyYXkgaW5zaWRlIGEgbmVzdGVkIGNvbnRleHQiCiN+IG1zZ3N0ciAipc2luaXIpLekv8q4zK6kzsbiwqakx8S5pLUgMCCkzsfbzvOk8r3ptPyyvaS3pMakpKTepLkiCgojfiBtc2dpZCAibWlzc2luZyBpbml0aWFsaXplciIKI34gbXNnc3RyICK96bT8sr270qTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgImVtcHR5IHNjYWxhciBpbml0aWFsaXplciIKI34gbXNnc3RyICK29aTOpbmlq6Xpoby96bT8sr270iIKCiN+IG1zZ2lkICJleHRyYSBlbGVtZW50cyBpbiBzY2FsYXIgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAipbmlq6Xpoby96bT8sr270qTLzb7KrKTKzdfBxyIKCiN+IG1zZ2lkICJpbml0aWFsaXphdGlvbiBkZXNpZ25hdG9ycyBtYXkgbm90IG5lc3QiCiN+IG1zZ3N0ciAivem0/LK9u9jMvrvSpMekz6XNpbmlyKS1pLuk66SzpMikrKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiYXJyYXkgaW5kZXggaW4gbm9uLWFycmF5IGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsjzx9vO86TOvem0/LK9u9Kky8fbzvOlpKXzpcelw6WvpbmkrLvIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJmaWVsZCBuYW1lIG5vdCBpbiByZWNvcmQgb3IgdW5pb24gaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAipeyls6G8pcmk5LamzdHCzqTLpdWlo6G8peulycy+pKykyqSkvem0/LK9u9Kkx6S5IgoKI34gbXNnaWQgIm5vbmNvbnN0YW50IGFycmF5IGluZGV4IGluIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIr3ptPyyvbvSxuKky8jzxOq/9KTOx9vO86WkpfOlx6XDpa+luaSspKKk6qTepLkiCgojfiBtc2dpZCAiYXJyYXkgaW5kZXggaW4gaW5pdGlhbGl6ZXIgZXhjZWVkcyBhcnJheSBib3VuZHMiCiN+IG1zZ3N0ciAivem0/LK9u9LG4qTOx9vO86WkpfOlx6XDpa+luaSsx9vO86TOtq2zpqTyxLakqKTepLekvyIKCiN+IG1zZ2lkICJlbXB0eSBpbmRleCByYW5nZSBpbiBpbml0aWFsaXplciIKI34gbXNnc3RyICK96bT8sr270sbipMu29aTOyM+wz6WkpfOlx6XDpa+luaSspKKk6qTepLkiCgojfiBtc2dpZCAiYXJyYXkgaW5kZXggcmFuZ2UgaW4gaW5pdGlhbGl6ZXIgZXhjZWVkcyBhcnJheSBib3VuZHMiCiN+IG1zZ3N0ciAivem0/LK9u9KkzsjPsM+lpKXzpcelw6WvpbmkrMfbzvOkzrats6ak8sS2pKik3qS3pL8iCgojfiBtc2dpZCAidW5rbm93biBmaWVsZCBgJXMnIHNwZWNpZmllZCBpbiBpbml0aWFsaXplciIKI34gbXNnc3RyICLJ1MzApMql1aWjobyl66XJIGAlcycgpKy96bT8sr270qTHu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW5pdGlhbGl6ZWQgZmllbGQgd2l0aCBzaWRlLWVmZmVjdHMgb3ZlcndyaXR0ZW4iCiN+IG1zZ3N0ciAivem0/LK9pLWk7KS/pdWlo6G8peulyaSsyfu67s3RpMe+5b3xpK2ktaTspN6kuSIKCiN+IG1zZ2lkICJleGNlc3MgZWxlbWVudHMgaW4gY2hhciBhcnJheSBpbml0aWFsaXplciIKI34gbXNnc3RyICJjaGFyIMfbzvO96bT8sr270sbipM7N18HHpKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgImV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAiub3CpMLOvem0/LK9u9LG4qTOzdfBx6Sswr+kuaSupN6kuSIKCiN+IG1zZ2lkICJleGNlc3MgZWxlbWVudHMgaW4gdW5pb24gaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAitqbN0cLOvem0/LK9u9LG4qTOzdfBx6Sswr+kuaSupN6kuSIKCiN+IG1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgaW5pdGlhbGl6YXRpb24gb2YgdW5pb25zIgojfiBtc2dzdHIgIrjFpKQgQyCkz7amzdHCzqTOvem0/KTytfHA5KS3pN6kuSIKCiN+IG1zZ2lkICJleGNlc3MgZWxlbWVudHMgaW4gYXJyYXkgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAix9vO873ptPyyvbvSxuKkzs3XwcekrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiZXhjZXNzIGVsZW1lbnRzIGluIHNjYWxhciBpbml0aWFsaXplciIKI34gbXNnc3RyICKluaWrpemhvL3ptPyyvbvSxuKkzs3XwcekrMK/pLmkrqTepLkiCgojfiBtc2dpZCAiYXNtIHRlbXBsYXRlIGlzIG5vdCBhIHN0cmluZyBjb25zdGFudCIKI34gbXNnc3RyICJhc20gpcal86XXpeyhvKXIpKzKuLv6zvPE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBsdmFsdWUgaW4gYXNtIHN0YXRlbWVudCIKI34gbXNnc3RyICJhc20gyrikzsPmpMvMtbj6pMq6uMrVw80iCgojfiBtc2dpZCAibW9kaWZpY2F0aW9uIGJ5IGBhc20nIgojfiBtc2dzdHIgImBhc20nIKTLpOik672kwLUiCgojfiBtc2dpZCAiZnVuY3Rpb24gZGVjbGFyZWQgYG5vcmV0dXJuJyBoYXMgYSBgcmV0dXJuJyBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAiYG5vcmV0dXJuJyCkzsDruMCktaTspL+02L/0pMsgYHJldHVybicgyrikrKSipOqk3qS5IgoKI34gbXNnaWQgImByZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZCIKI34gbXNnc3RyICLM4aTqt7+krLTYv/Skx6GiYHJldHVybicgpMvDzaSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJgcmV0dXJuJyB3aXRoIGEgdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyB2b2lkIgojfiBtc2dzdHIgIszhpOq3v6SsIHZvaWQgpM602L/0pMehomByZXR1cm4nIKTLw82krKSipOqk3qS5IgoKI34gbXNnaWQgInJldHVybiIKI34gbXNnc3RyICJyZXR1cm4iCgojfiBtc2dpZCAiZnVuY3Rpb24gcmV0dXJucyBhZGRyZXNzIG9mIGxvY2FsIHZhcmlhYmxlIgojfiBtc2dzdHIgIrTYv/SkrKXtobylq6XrytG/9KTOpaKlyaXspbmk8srWpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJzd2l0Y2ggcXVhbnRpdHkgbm90IGFuIGludGVnZXIiCiN+IG1zZ3N0ciAic3dpdGNoIKTOxuLNxqSswLC/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImBsb25nJyBzd2l0Y2ggZXhwcmVzc2lvbiBub3QgY29udmVydGVkIHRvIGBpbnQnIGluIElTTyBDIgojfiBtc2dzdHIgIklTTyBDIKTHpM8gYGxvbmcnIKTOIHN3aXRjaCC8sKTPIGBpbnQnIKTLytG0uaS1pOyk3qS7pPMiCgojfiBtc2dpZCAiY2FzZSBsYWJlbCBub3Qgd2l0aGluIGEgc3dpdGNoIHN0YXRlbWVudCIKI34gbXNnc3RyICJjYXNlIKXppdml66SsIHN3aXRjaCDKuKTOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYGRlZmF1bHQnIGxhYmVsIG5vdCB3aXRoaW4gYSBzd2l0Y2ggc3RhdGVtZW50IgojfiBtc2dzdHIgImBkZWZhdWx0JyCl6aXZpeukrCBzd2l0Y2ggyrikzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgImlubGluaW5nIGZhaWxlZCBpbiBjYWxsIHRvIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOuMak073QpLekzqWkpfOl6aWkpfOyvaTLvLrH1KS3pN6kt6S/IgoKI34gbXNnaWQgImNhbGxlZCBmcm9tIGhlcmUiCiN+IG1zZ3N0ciAipLOks6SrpOm4xqTQpOyk3qS3pL8iCgojfiBtc2dpZCAiY2FuJ3QgaW5saW5lIGNhbGwgdG8gYCVzJyIKI34gbXNnc3RyICJgJXMnIKTYpM64xqTTvdCkt6TPpaSl86XppaSl87K9pMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiBjYWxsIGhhcyBhZ2dyZWdhdGUgdmFsdWUiCiN+IG1zZ3N0ciAitNi/9LjGpNO90KS3pKy9uLnnws6kzsPNpPK7/aTDpMakpKTepLkiCgojfiBtc2dpZCAidmFyaWFibGUgb2Zmc2V0IGlzIHBhc3NlZCBwYXJpdGlhbGx5IGluIHN0YWNrIGFuZCBpbiByZWciCiN+IG1zZ3N0ciAiytG/9KWqpdWlu6XDpcikrKW5pb+lw6WvpMil7KW4pbmlv6THxfmywaTLxc+ktaTspN6kt6S/IgoKI34gbXNnaWQgInZhcmlhYmxlIHNpemUgaXMgcGFzc2VkIHBhcnRpYWxseSBpbiBzdGFjayBhbmQgaW4gcmVnIgojfiBtc2dzdHIgIsrRv/SltaWkpbqkrKW5pb+lw6WvpMil7KW4pbmlv6THxfmywaTLxc+ktaTspN6kt6S/IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yIgojfiBtc2dzdHIgIsbiyfSlqKXpobwiCgojfiBtc2dpZCAibm8gYXJndW1lbnRzIgojfiBtc2dzdHIgIrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiZm9wZW4gJXMiCiN+IG1zZ3N0ciAiZm9wZW4gJXMiCgojfiBtc2dpZCAiZmNsb3NlICVzIgojfiBtc2dzdHIgImZjbG9zZSAlcyIKCiN+IG1zZ2lkICJjb2xsZWN0MiB2ZXJzaW9uICVzIgojfiBtc2dzdHIgImNvbGxlY3QyIHZlcnNpb24gJXMiCgojfiBtc2dpZCAiJWQgY29uc3RydWN0b3IocykgZm91bmRcbiIKI34gbXNnc3RyICIlZCC4xKTOpbOl86W5pcil6aWvpb+krLirpMSkq6TqpN6kt6S/XG4iCgojfiBtc2dpZCAiJWQgZGVzdHJ1Y3RvcihzKSAgZm91bmRcbiIKI34gbXNnc3RyICIlZCC4xKTOpceluaXIpemlr6W/pKy4q6TEpKuk6qTepLekv1xuIgoKI34gbXNnaWQgIiVkIGZyYW1lIHRhYmxlKHMpIGZvdW5kXG4iCiN+IG1zZ3N0ciAiJWQguMSkzqXVpeyhvKXgpcahvKXWpeukrLirpMSkq6TqpN6kt6S/XG4iCgojfiBtc2dpZCAiJXMgdGVybWluYXRlZCB3aXRoIHNpZ25hbCAlZCBbJXNdJXMiCiN+IG1zZ3N0ciAiJXMgpbelsKXKpesgJWQgWyVzXSVzIKTHvarOu6S1pLuk6aTspN6kt6S/IgoKI34gbXNnaWQgIiVzIHJldHVybmVkICVkIGV4aXQgc3RhdHVzIgojfiBtc2dzdHIgIiVzIKTPIGV4aXQgvvXC1iAlZCCk8srWpLek3qS3pL8iCgojfiBtc2dpZCAiW2Nhbm5vdCBmaW5kICVzXSIKI34gbXNnc3RyICJbJXMgpKy4q6TEpKuk6qTepLuk810iCgojfiBtc2dpZCAiY2Fubm90IGZpbmQgYCVzJyIKI34gbXNnc3RyICJgJXMnIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAicmVkaXJlY3Rpbmcgc3Rkb3V0OiAlcyIKI34gbXNnc3RyICJzdGRvdXQgpNikzqXqpcClpKXspa+lyDogJXMiCgojfiBtc2dpZCAiW0xlYXZpbmcgJXNdXG4iCiN+IG1zZ3N0ciAiWyVzIKTyzqWk7KTepLldXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJ3cml0ZV9jX2ZpbGUgLSBvdXRwdXQgbmFtZSBpcyAlcywgcHJlZml4IGlzICVzXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICJ3cml0ZV9jX2ZpbGUgLSC90M7PzL6kzyAlc6Gipdel7KXVpaOlr6W5pM8gJXNcbiIKCiN+IG1zZ2lkICJjYW5ub3QgZmluZCBgbm0nIgojfiBtc2dzdHIgImBubScgpKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJwaXBlIgojfiBtc2dzdHIgInBpcGUiCgojfiBtc2dpZCAiZmRvcGVuIgojfiBtc2dzdHIgImZkb3BlbiIKCiN+IG1zZ2lkICJkdXAyICVkIDEiCiN+IG1zZ3N0ciAiZHVwMiAlZCAxIgoKI34gbXNnaWQgImNsb3NlICVkIgojfiBtc2dzdHIgImNsb3NlICVkIgoKI34gbXNnaWQgImV4ZWN2cCAlcyIKI34gbXNnc3RyICJleGVjdnAgJXMiCgojfiBtc2dpZCAiaW5pdCBmdW5jdGlvbiBmb3VuZCBpbiBvYmplY3QgJXMiCiN+IG1zZ3N0ciAiaW5pdCC02L/0pPKlqqXWpbilp6WvpcggJXMgpMe4q6TEpLGk3qS3pL8iCgojfiBtc2dpZCAiZmluaSBmdW5jdGlvbiBmb3VuZCBpbiBvYmplY3QgJXMiCiN+IG1zZ3N0ciAiZmluaSC02L/0pPKlqqXWpbilp6WvpcggJXMgpMe4q6TEpLGk3qS3pL8iCgojfiBtc2dpZCAiZmNsb3NlIgojfiBtc2dzdHIgImZjbG9zZSIKCiN+IG1zZ2lkICJ1bmFibGUgdG8gb3BlbiBmaWxlICclcyciCiN+IG1zZ3N0ciAipdWloaWkpesgJyVzJyCk8iBvcGVuIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAidW5hYmxlIHRvIHN0YXQgZmlsZSAnJXMnIgojfiBtc2dzdHIgIqXVpaGlpKXrICclcycgpPIgc3RhdCCkx6StpN6ku6TzIgoKI34gbXNnaWQgInVuYWJsZSB0byBtbWFwIGZpbGUgJyVzJyIKI34gbXNnc3RyICKl1aWhpaSl6yAnJXMnIKTyIG1tYXAgpMekraTepLuk8yIKCiN+IG1zZ2lkICJub3QgZm91bmRcbiIKI34gbXNnc3RyICK4q6TEpKuk6qTepLuk81xuIgoKI34gbXNnaWQgImR5bmFtaWMgZGVwZW5kZW5jeSAlcyBub3QgZm91bmQiCiN+IG1zZ3N0ciAixrDFqrDNwri02Le4ICVzIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBmaWxlICclcyciCiN+IG1zZ3N0ciAipdWloaWkpesgJyVzJyCky8nUwLWkyqXepbilw6Wvpcql86XQIgoKI34gbXNnaWQgImR5bmFtaWMgZGVwZW5kZW5jaWVzLlxuIgojfiBtc2dzdHIgIsawxaqwzcK4tNi3uKGjXG4iCgojfiBtc2dpZCAiY2Fubm90IGZpbmQgYGxkZCciCiN+IG1zZ3N0ciAiYGxkZCcgpKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJleGVjdiAlcyIKI34gbXNnc3RyICJleGVjdiAlcyIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gImxkZCBvdXRwdXQgd2l0aCBjb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMuXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICJsZGQgvdDOz6SspbOl86W5pcil6aWvpb8vpceluaXIpemlr6W/pPLIvKSkpN6kuaGjXG4iCgojfiBtc2dpZCAidW5hYmxlIHRvIG9wZW4gZHluYW1pYyBkZXBlbmRlbmN5ICclcyciCiN+IG1zZ3N0ciAixrDFqrDNwri02Le4ICclcycgpPKzq6SxpN6ku6TzIgoKI34gbXNnaWQgIiVzOiBub3QgYSBDT0ZGIGZpbGUiCiN+IG1zZ3N0ciAiJXM6IENPRkYgpdWloaWkpeukx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICIlczogY2Fubm90IG9wZW4gYXMgQ09GRiBmaWxlIgojfiBtc2dzdHIgIiVzOiBDT0ZGIKXVpaGlpKXrpMikt6TGs6uksaTepLuk8yIKCiN+IG1zZ2lkICJMaWJyYXJ5IGxpYiVzIG5vdCBmb3VuZCIKI34gbXNnc3RyICKl6aWkpdal6aXqIGxpYiVzIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAib3BlbiAlcyIKI34gbXNnc3RyICJvcGVuICVzIgoKI34gbXNnaWQgImluY29tcGF0aWJpbGl0aWVzIGJldHdlZW4gb2JqZWN0IGZpbGUgJiBleHBlY3RlZCB2YWx1ZXMiCiN+IG1zZ3N0ciAizr7OqaS3pMqkpKWqpdaluKWnpa+lyKXVpaGlpKXrpMi0/MLUw80iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJQcm9jZXNzaW5nIHN5bWJvbCB0YWJsZSAjJWQsIG9mZnNldCA9IDB4JS44bHgsIGtpbmQgPSAlc1xuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAipbel86XcpeulxqG8pdal6yAjJWQgpPK96M39pLek3qS5oaKlqqXVpbulw6XIID0gMHglLjhseCwgvO/O4CA9ICVzXG4iCgojfiBtc2dpZCAic3RyaW5nIHNlY3Rpb24gbWlzc2luZyIKI34gbXNnc3RyICLKuLv6zvOlu6Wvpbel56XzpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAic2VjdGlvbiBwb2ludGVyIG1pc3NpbmciCiN+IG1zZ3N0ciAipbulr6W3peel86XdpaSl86W/pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAibm8gc3ltYm9sIHRhYmxlIGZvdW5kIgojfiBtc2dzdHIgIqW3pfOl3KXrpcahvKXWpeukrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIm5vIGNtZF9zdHJpbmdzIGZvdW5kIgojfiBtc2dzdHIgImNtZF9zdHJpbmdzIKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJVcGRhdGluZyBoZWFkZXIgYW5kIGxvYWQgY29tbWFuZHMuXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIqXYpcOlwKTIIGxvYWQgpbOl3qXzpcmk8rm5v7ekt6TepLmho1xuIgoKI34gbXNnaWQgImxvYWQgY29tbWFuZCBtYXAsICVkIGNtZHMsIG5ldyBzaXplICVsZC5cbiIKI34gbXNnc3RyICJsb2FkIKWzpd6l86XJpd6lw6XXoaIlZCC4xKTOpbOl3qXzpcmhor+3pL+kyqW1paSluiAlbGSho1xuIgoKI34gbXNnaWQgIiIKI34gIndyaXRpbmcgbG9hZCBjb21tYW5kcy5cbiIKI34gIlxuIgojfiBtc2dzdHIgIiIKI34gImxvYWQgpbOl3qXzpcmk8r3xpK25/qTfpN6kuaGjXG4iCiN+ICJcbiIKCiN+IG1zZ2lkICJjbG9zZSAlcyIKI34gbXNnc3RyICJjbG9zZSAlcyIKCiN+IG1zZ2lkICJjb3VsZCBub3QgY29udmVydCAweCVsLjh4IGludG8gYSByZWdpb24iCiN+IG1zZ3N0ciAiMHglbC44eCCk8s7OsOiky8rRtLmkx6StpN6ku6TzIgoKI34gbXNnaWQgIiVzIGZ1bmN0aW9uLCByZWdpb24gJWQsIG9mZnNldCA9ICVsZCAoMHglLjhseClcbiIKI34gbXNnc3RyICIlcyC02L/0LCDOzrDoICVkLCClqqXVpbulw6XIID0gJWxkICgweCUuOGx4KVxuIgoKI34gbXNnaWQgImJhZCBtYWdpYyBudW1iZXIiCiN+IG1zZ3N0ciAiydTAtaTKpd6luKXDpa+lyqXzpdAiCgojfiBtc2dpZCAiYmFkIGhlYWRlciB2ZXJzaW9uIgojfiBtc2dzdHIgIsnUwLWkyqXYpcOlwKXQobyluKXnpfMiCgojfiBtc2dpZCAiYmFkIHJhdyBoZWFkZXIgdmVyc2lvbiIKI34gbXNnc3RyICLJ1MC1pMrAuKTOpdilw6XApdChvKW4peel8yIKCiN+IG1zZ2lkICJyYXcgaGVhZGVyIGJ1ZmZlciB0b28gc21hbGwiCiN+IG1zZ3N0ciAivq6ktaS5pK6k68C4pM6l2KXDpcCl0KXDpdWloSIKCiN+IG1zZ2lkICJvbGQgcmF3IGhlYWRlciBmaWxlIgojfiBtc2dzdHIgIrjFpKTAuKTOpdilw6XApdWloaWkpesiCgojfiBtc2dpZCAidW5zdXBwb3J0ZWQgdmVyc2lvbiIKI34gbXNnc3RyICKltaXdobylyKS1pOykxqSkpMqkpKXQobyluKXnpfOkx6S5IgoKI34gbXNnaWQgInVua25vd24ge2RlLGVufWNvZGVfbWFjaF9vX2hkciByZXR1cm4gdmFsdWUgJWQiCiN+IG1zZ3N0ciAiydTMwKTKIHtkZSxlbn1jb2RlX21hY2hfb19oZHIgzOGk6sPNICVkIgoKI34gbXNnaWQgImZzdGF0ICVzIgojfiBtc2dzdHIgImZzdGF0ICVzIgoKI34gbXNnaWQgImxzZWVrICVzIDAiCiN+IG1zZ3N0ciAibHNlZWsgJXMgMCIKCiN+IG1zZ2lkICJyZWFkICVzIgojfiBtc2dzdHIgInJlYWQgJXMiCgojfiBtc2dpZCAicmVhZCAlbGQgYnl0ZXMsIGV4cGVjdGVkICVsZCwgZnJvbSAlcyIKI34gbXNnc3RyICIlbGQgpdClpKXIxsm5/qTfoaMlbGQgKCVzIKSrpOkpxsm5/qTgpM+kuqTHpLkiCgojfiBtc2dpZCAibXN5bmMgJXMiCiN+IG1zZ3N0ciAibXN5bmMgJXMiCgojfiBtc2dpZCAibXVubWFwICVzIgojfiBtc2dzdHIgIm11bm1hcCAlcyIKCiN+IG1zZ2lkICJ3cml0ZSAlcyIKI34gbXNnc3RyICJ3cml0ZSAlcyIKCiN+IG1zZ2lkICJ3cm90ZSAlbGQgYnl0ZXMsIGV4cGVjdGVkICVsZCwgdG8gJXMiCiN+IG1zZ3N0ciAiJWxkIKXQpaSlyL3xuf6k36GjJWxkICglcyCk2Cm98bn+pOCkz6S6pMekuSIKCiN+IG1zZ2lkICIiCiN+ICI7OyBDb21iaW5lciBzdGF0aXN0aWNzOiAlZCBhdHRlbXB0cywgJWQgc3Vic3RpdHV0aW9ucyAoJWQgcmVxdWlyaW5nIG5ldyBzcGFjZSksXG4iCiN+ICI7OyAlZCBzdWNjZXNzZXMuXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICI7OyC367nnxf231zogJWQgu+651CwgJWQgwuXC2CAoJWQgv7ekv6TKtvW01qTyzde14SksXG4iCiN+ICI7OyAlZCDArrj5oaNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIjs7IENvbWJpbmVyIHRvdGFsczogJWQgYXR0ZW1wdHMsICVkIHN1YnN0aXR1dGlvbnMgKCVkIHJlcXVpcmluZyBuZXcgc3BhY2UpLFxuIgojfiAiOzsgJWQgc3VjY2Vzc2VzLlxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiOzsgt+u557nnt9c6ICVkILvuudQsICVkIMLlwtggKCVkIL+3pL+kyrb1tNak8s3XteEpLFxuIgojfiAiOzsgJWQgwK64+aGjXG4iCgojfiBtc2dpZCAiVXNlIFZBWC1DIGFsaWdubWVudCIKI34gbXNnc3RyICJWQVgtQyCloqXppaSl86XhpfOlyKTyu8jN0SIKCiN+IG1zZ2lkICJpbnZhbGlkICUlUSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVRIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVDIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUMgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJU4gdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlTiDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlTSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVNIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVtIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJW0gw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJUwgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlTCDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlTyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVPIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVQIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVAgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJVYgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlViDDzSIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGFzc3VtaW5nIERXIGJpdCBpcyBzZXQiCiN+IG1zZ3N0ciAiRFcgpdOlw6XIpKylu6XDpciktaTspL+kyLirpMqkt6TGpbOhvKXJwLjAriIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGFzc3VtaW5nIERXIGJpdCBpcyBub3Qgc2V0IgojfiBtc2dzdHIgIkRXIKXTpcOlyKSspbulw6XIpLWk7KTGpKSkyqSkpMi4q6TKpLekxqWzobylycC4wK4iCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSB1c2luZyBieXRlIHdyaXRlcyIKI34gbXNnc3RyICKl0KWkpci98aStuf6k36Tyu8ikw6TGpbOhvKXJwLjAriIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgYnl0ZSB3cml0ZXMiCiN+IG1zZ3N0ciAipdClpKXIvfGkrbn+pN+k8rvIpO+kuqTLpbOhvKXJwLjAriIKCiN+IG1zZ2lkICJVc2Ugc21hbGwgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqW5peKhvKXrpeGl4qXqpeKlx6XrpPLN+M3RIgoKI34gbXNnaWQgIlVzZSBub3JtYWwgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqXOobyl3qXrpeGl4qXqpeKlx6XrpPLN+M3RIgoKI34gbXNnaWQgIlVzZSBsYXJnZSBtZW1vcnkgbW9kZWwiCiN+IG1zZ3N0ciAipemhvKW4peGl4qXqpeKlx6XrpPLN+M3RIgoKI34gbXNnaWQgIkdlbmVyYXRlIDI5MDUwIGNvZGUiCiN+IG1zZ3N0ciAiMjkwNTAgpbOhvKXJpPLAuMCuIgoKI34gbXNnaWQgIkdlbmVyYXRlIDI5MDAwIGNvZGUiCiN+IG1zZ3N0ciAiMjkwMDAgpbOhvKXJpPLAuMCuIgoKI34gbXNnaWQgIlVzZSBrZXJuZWwgZ2xvYmFsIHJlZ2lzdGVycyIKI34gbXNnc3RyICKlq6G8pc2l66Wwpe2hvKXQpeul7KW4pbmlv6TyzfjN0SIKCiN+IG1zZ2lkICJVc2UgdXNlciBnbG9iYWwgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIqXmobyltqWwpe2hvKXQpeul7KW4pbmlv6TyzfjN0SIKCiN+IG1zZ2lkICJFbWl0IHN0YWNrIGNoZWNraW5nIGNvZGUiCiN+IG1zZ3N0ciAipbmlv6XDpa+lwaWnpcOlr83RpbOhvKXJpPLFx6SvIgoKI34gbXNnaWQgIkRvIG5vdCBlbWl0IHN0YWNrIGNoZWNraW5nIGNvZGUiCiN+IG1zZ3N0ciAipbmlv6XDpa+lwaWnpcOlr83RpbOhvKXJpPLFx6SrpMqkpCIKCiN+IG1zZ2lkICJXb3JrIGFyb3VuZCBzdG9yZW0gaGFyZHdhcmUgYnVnIgojfiBtc2dzdHIgInN0b3JlbSClz6G8pcmlpqWnpaKl0KWwpM7C0L3opPK51KTKpKYiCgojfiBtc2dpZCAiRG8gbm90IHdvcmsgYXJvdW5kIHN0b3JlbSBoYXJkd2FyZSBidWciCiN+IG1zZ3N0ciAic3RvcmVtIKXPobylyaWmpaeloqXQpbCkzsLQveik8rnUpMqk76TKpKQiCgojfiBtc2dpZCAiU3RvcmUgbG9jYWxzIGluIGFyZ3VtZW50IHJlZ2lzdGVycyIKI34gbXNnc3RyICKw+r/0peyluKW5pb+ky6Xtobylq6XrpM6k4qTOpPKzyse8pLmk6yIKCiN+IG1zZ2lkICJEbyBub3Qgc3RvcmUgbG9jYWxzIGluIGFyZyByZWdpc3RlcnMiCiN+IG1zZ3N0ciAisPq/9KXspbiluaW/pMul7aG8paul66TOpOKkzqTys8rHvKS3pMqkpCIKCiN+IG1zZ2lkICJVc2Ugc29mdHdhcmUgZmxvYXRpbmcgcG9pbnQiCiN+IG1zZ3N0ciAipb2l1aXIyeLGsL6uv/TFwKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIG11bHRtIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJtdWx0bSDMv87hpPLAuMCupLekyqSkIgoKI34gbXNnaWQgImJhZCB2YWx1ZSBgJXMnIGZvciAtbXRyYXAtcHJlY2lzaW9uIHN3aXRjaCIKI34gbXNnc3RyICItbXRyYXAtcHJlY2lzaW9uIKW5paSlw6XBpMukyKTDpMakzsnUwLWkysPNIGAlcyciCgojfiBtc2dpZCAiYmFkIHZhbHVlIGAlcycgZm9yIC1tZnAtcm91bmRpbmctbW9kZSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1mcC1yb3VuZGluZy1tb2RlIKW5paSlw6XBpMukyKTDpMakzsnUwLWkysPNIGAlcyciCgojfiBtc2dpZCAiYmFkIHZhbHVlIGAlcycgZm9yIC1tZnAtdHJhcC1tb2RlIHN3aXRjaCIKI34gbXNnc3RyICItbWZwLXRyYXAtbW9kZSCluaWkpcOlwaTLpMikw6TGpM7J1MC1pMrDzSBgJXMnIgoKI34gbXNnaWQgImJhZCB2YWx1ZSBgJXMnIGZvciAtbWNwdSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1jcHUgpbmlpKXDpcGky6TIpMOkxqTOydTAtaTKw80gYCVzJyIKCiN+IG1zZ2lkICJmcCBzb2Z0d2FyZSBjb21wbGV0aW9uIHJlcXVpcmVzIC1tdHJhcC1wcmVjaXNpb249aSIKI34gbXNnc3RyICLJ4sawvq6/9MXAyuS0sKTPIC1tdHJhcC1wcmVjaXNpb249aSCk8smszdekyKS3pN6kuSIKCiN+IG1zZ2lkICJyb3VuZGluZyBtb2RlIG5vdCBzdXBwb3J0ZWQgZm9yIFZBWCBmbG9hdHMiCiN+IG1zZ3N0ciAiVkFYIMnixrC+rr/0pMekz7TdpOGl4qG8pcmk8s34zdGkx6StpN6ku6TzIgoKI34gbXNnaWQgInRyYXAgbW9kZSBub3Qgc3VwcG9ydGVkIGZvciBWQVggZmxvYXRzIgojfiBtc2dzdHIgIlZBWCDJ4sawvq6/9KTHpM+lyKXppcOl16XiobylyaTyzfjN0aTHpK2k3qS7pPMiCgojfiBtc2dpZCAiTCVkIGNhY2hlIGxhdGVuY3kgdW5rbm93biBmb3IgJXMiCiN+IG1zZ3N0ciAiTCVkIKWtpeOlw6W3peWl7KWkpcal86W3pM8gJXMgpMukyKTDpMbJ1MzApMekuSIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgYCVzJyBmb3IgLW1tZW1vcnktbGF0ZW5jeSIKI34gbXNnc3RyICJgJXMnIKTPIC1tbWVtb3J5LWxhdGVuY3kgpMukyKTDpMbJ1MC1pMrDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlJXIgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlciDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlUiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVSIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVoIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJWggw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJVUgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlVSDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlcyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVzIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVFIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUUgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJXhuIGNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKICUleG4gpbOhvKXJIgoKI34gbXNnaWQgIlVzZSBoYXJkd2FyZSBmcCIKI34gbXNnc3RyICKlz6G8pcmlpqWnpaLJ4sawvq6/9MXApPLN+M3RIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgaGFyZHdhcmUgZnAiCiN+IG1zZ3N0ciAipc+hvKXJpaalp6WiyeLGsL6uv/TFwKTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgZnAgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIsnixrC+rr/0xcCl7KW4pbmlv6TyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBmcCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKXspbiluaW/pPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBhc3N1bWUgR0FTIgojfiBtc2dzdHIgIkdBUyCkzs34zdGk8sGwxPOkyKS3pMqkpCIKCiN+IG1zZ2lkICJBc3N1bWUgR0FTIgojfiBtc2dzdHIgIkdBUyCkzs34zdGk8sGwxPOkyKS5pOsiCgojfiBtc2dpZCAiUmVxdWVzdCBJRUVFLWNvbmZvcm1hbnQgbWF0aCBsaWJyYXJ5IHJvdXRpbmVzIChPU0YvMSkiCiN+IG1zZ3N0ciAiSUVFRSC94LXypM6/9LPYpemlpKXWpeml6qXrobylwaXzIChPU0YvMSkgpPLN17XhpLmk6yIKCiN+IG1zZ2lkICJFbWl0IElFRUUtY29uZm9ybWFudCBjb2RlLCB3aXRob3V0IGluZXhhY3QgZXhjZXB0aW9ucyIKI34gbXNnc3RyICLJ1MWswNqkys7js7Ck8r38pKSkxiBJRUVFIL3gtfKkzqWzobylyaTyyK+51KS5pOsiCgojfiBtc2dpZCAiRW1pdCBJRUVFLWNvbmZvcm1hbnQgY29kZSwgd2l0aCBpbmV4YWN0IGV4Y2VwdGlvbnMiCiN+IG1zZ3N0ciAiydTFrMDapMrO47OwpPK03qThpMYgSUVFRSC94LXypM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBlbWl0IGNvbXBsZXggaW50ZWdlciBjb25zdGFudHMgdG8gcmVhZC1vbmx5IG1lbW9yeSIKI34gbXNnc3RyICLKo8HHv/SkzsCwv/TE6r/0pPLGyaTfuf6k38DszdGl4aXipeqky8W4s6uktaS7pMqkpCIKCiN+IG1zZ2lkICJVc2UgVkFYIGZwIgojfiBtc2dzdHIgIlZBWCDJ4sawvq6/9MXApPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIFZBWCBmcCIKI34gbXNnc3RyICJWQVggyeLGsL6uv/TFwKTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJFbWl0IGNvZGUgZm9yIHRoZSBieXRlL3dvcmQgSVNBIGV4dGVuc2lvbiIKI34gbXNnc3RyICKl0KWkpcgvpe+hvKXJIElTQSCzyMSlzdGkzqWzobylyaTyyK+51KS5pOsiCgojfiBtc2dpZCAiRW1pdCBjb2RlIGZvciB0aGUgbW90aW9uIHZpZGVvIElTQSBleHRlbnNpb24iCiN+IG1zZ3N0ciAipeKhvKW3peel86XTpcelqiBJU0Egs8jEpc3RpM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29kZSBmb3IgdGhlIGZwIG1vdmUgYW5kIHNxcnQgSVNBIGV4dGVuc2lvbiIKI34gbXNnc3RyICLJ4sawvq6/9MXAIG1vdmUgpMggc3FydCBJU0Egs8jEpc3RpM6ls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29kZSBmb3IgdGhlIGNvdW50aW5nIElTQSBleHRlbnNpb24iCiN+IG1zZ3N0ciAipaulpqXzpcggSVNBILPIxKXN0aTOpbOhvKXJpPLIr7nUpLmk6yIKCiN+IG1zZ2lkICJVc2UgZmVhdHVyZXMgb2YgYW5kIHNjaGVkdWxlIGdpdmVuIENQVSIKI34gbXNnc3RyICJDUFUgpMvNv6SopOmk7KS/xsPEp6TkpbmlsaW4peWhvKXrpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJTY2hlZHVsZSBnaXZlbiBDUFUiCiN+IG1zZ3N0ciAiQ1BVIKTLzb+kqKTppOykv6W5pbGluKXlobyl66TyzfjN0aS5pOsiCgojfiBtc2dpZCAiQ29udHJvbCB0aGUgZ2VuZXJhdGVkIGZwIHJvdW5kaW5nIG1vZGUiCiN+IG1zZ3N0ciAiwLjArqS1pOykv8nixrC+rr/0xcC03aThpeKhvKXJpPLAqbjmpLmk6yIKCiN+IG1zZ2lkICJDb250cm9sIHRoZSBJRUVFIHRyYXAgbW9kZSIKI34gbXNnc3RyICJJRUVFIKXIpemlw6XXpeKhvKXJpPLAqbjmpLmk6yIKCiN+IG1zZ2lkICJDb250cm9sIHRoZSBwcmVjaXNpb24gZ2l2ZW4gdG8gZnAgZXhjZXB0aW9ucyIKI34gbXNnc3RyICLJ4sawvq6/9MXAzuOzsKTLzb+kqKTppOykv8C6xdmk8sCpuOakuaTrIgoKI34gbXNnaWQgIlR1bmUgZXhwZWN0ZWQgbWVtb3J5IGxhdGVuY3kiCiN+IG1zZ3N0ciAizb20/KS1pOyk66XhpeKl6qXspaSlxqXzpbek8sS0wLCkuaTrIgoKI34gbXNnaWQgIiVzIGNhdXNlcyBhIHNlY3Rpb24gdHlwZSBjb25mbGljdCIKI34gbXNnc3RyICIlcyCkz6W7pa+lt6XnpfOlv6Wkpdekzralueek8rD6pK21r6SzpLek3qS5IgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWNwdSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1jcHUgpbmlpKXDpcGky8LQpLmk68nUwLWkysPNICglcykiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVSIGNvZGUiCiN+IG1zZ3N0ciAiJVIgpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlSC8lTCBjb2RlIgojfiBtc2dzdHIgIiVILyVMIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhbmQgdG8gJVUgY29kZSIKI34gbXNnc3RyICIlVSCls6G8pcmky8LQpLmk68y1uPqkyqWqpdql6aXzpckiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVWIGNvZGUiCiN+IG1zZ3N0ciAiJVYgpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCBvdXRwdXQgY29kZSIKI34gbXNnc3RyICLMtbj6pMqlqqXapeml86XJvdDOz6WzobylySIKCiN+IG1zZ2lkICJzd2l0Y2ggLW1jcHU9JXMgY29uZmxpY3RzIHdpdGggLW1hcmNoPSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1jcHU9JXMgpbmlpKXDpcGkzyAtbWFyY2g9IKW5paSlw6XBpMi2pbnnpLek3qS5IgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAlcyBzd2l0Y2giCiN+IG1zZ3N0ciAiw80gKCVzKSCkzyAlcyBzd2l0Y2ggpMukyKTDpMbAtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBBUENTLTMyIgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKTPIEFQQ1MtMzIgpPKltaXdobylyKS3pN6ku6TzIgoKI34gbXNnaWQgInRhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBBUENTLTI2IgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKTPIEFQQ1MtMjYgpPKltaXdobylyKS3pN6ku6TzIgoKI34gbXNnaWQgInRhcmdldCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcndvcmtpbmciCiN+IG1zZ3N0ciAipb+hvKWypcOlyCBDUFUgpM8gaW50ZXJ3b3JraW5nIKTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICJ0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgVEhVTUIgaW5zdHJ1Y3Rpb25zLiIKI34gbXNnc3RyICKlv6G8pbKlw6XIIENQVSCkzyBUSFVNQiDMv87hpPKltaXdobylyKS3pN6ku6TzIgoKI34gbXNnaWQgImVuYWJsaW5nIGJhY2t0cmFjZSBzdXBwb3J0IGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuIGNvbXBpbGluZyBmb3IgdGhlIFRodW1iLiIKI34gbXNnc3RyICJUaHVtYiDN0aTLpbOl86XRpaSl66S3pL+kyKStpM6k36GisNXMo6TOpKKk66XQpcOlr6XIpeyhvKW5pPLNrbj6pMukt6TepLkiCgojfiBtc2dpZCAiZW5hYmxpbmcgY2FsbGVlIGludGVyd29ya2luZyBzdXBwb3J0IGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuIGNvbXBpbGluZyBmb3IgdGhlIFRodW1iLiIKI34gbXNnc3RyICJUaHVtYiDN0aTLpbOl86XRpaSl66S3pL+kyKStpM6k36GiyO+4xqTTvdCkt8KmIGludGVyd29ya2luZyCk8s2tuPqky6S3pN6kuSIKCiN+IG1zZ2lkICJlbmFibGluZyBjYWxsZXIgaW50ZXJ3b3JraW5nIHN1cHBvcnQgaXMgb25seSBtZWFuaW5nZnVsIHdoZW4gY29tcGlsaW5nIGZvciB0aGUgVGh1bWIuIgojfiBtc2dzdHIgIlRodW1iIM3RpMuls6XzpdGlpKXrpLekv6TIpK2kzqTfoaK4xqTTvdCkt8KmIGludGVyd29ya2luZyCk8s2tuPqky6S3pN6kuSIKCiN+IG1zZ2lkICJpbnRlcndvcmtpbmcgZm9yY2VzIEFQQ1MtMzIgdG8gYmUgdXNlZCIKI34gbXNnc3RyICJpbnRlcndvcmtpbmcgpM8gQVBDUy0zMiCkzrvIzdGk8ravzdekt6TepLkiCgojfiBtc2dpZCAiLW1hcGNzLXN0YWNrLWNoZWNrIGluY29tcGF0aWJsZSB3aXRoIC1tbm8tYXBjcy1mcmFtZSIKI34gbXNnc3RyICItbWFwY3Mtc3RhY2stY2hlY2sgpM8gLW1uby1hcGNzLWZyYW1lIKTItqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLWZwaWMgYW5kIC1tYXBjcy1yZWVudCBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1mcGljIKTIIC1tYXBjcy1yZWVudCCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIkFQQ1MgcmVlbnRyYW50IGNvZGUgbm90IHN1cHBvcnRlZC4gIElnbm9yZWQiCiN+IG1zZ3N0ciAiQVBDUyC6xsb+ssTHvaWzobylyaTPpbWl3aG8pciktaTspN6ku6TzoaPMtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICItZyB3aXRoIC1tbm8tYXBjcy1mcmFtZSBtYXkgbm90IGdpdmUgc2Vuc2libGUgZGVidWdnaW5nIgojfiBtc2dzdHIgIi1nIKTLIC1tbm8tYXBjcy1mcmFtZSCk8qTEpLGk66TIoaKkraThutmkq6TKpcel0KXDpbCkz6THpK2kyqSkpMekt6TnpKYiCgojfiBtc2dpZCAiUGFzc2luZyBmbG9hdGluZyBwb2ludCBhcmd1bWVudHMgaW4gZnAgcmVncyBub3QgeWV0IHN1cHBvcnRlZCIKI34gbXNnc3RyICLJ4sawvq6/9MXAsPq/9KTyyeLGsL6uv/TFwKXspbiluaW/pMfFz6S5pLOkyKTPoaKk3qTApbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgZmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uIG9wdGlvbjogLW1mcGUtJXMiCiN+IG1zZ3N0ciAizLW4+qTKyeLGsL6uv/TFwKWopd+l5aXsobylyKWqpdelt6XnpfM6IC1tZnBlLSVzIgoKI34gbXNnaWQgIlN0cnVjdHVyZSBzaXplIGJvdW5kYXJ5IGNhbiBvbmx5IGJlIHNldCB0byA4IG9yIDMyIgojfiBtc2dzdHIgIrm9wqTCzqTOpbWlpKW6tq2zpqTPIDggy/SkzyAzMiCky6S3pKvA38TqpMekraTepLuk8yIKCiN+IG1zZ2lkICItbXBpYy1yZWdpc3Rlcj0gaXMgdXNlbGVzcyB3aXRob3V0IC1mcGljIgojfiBtc2dzdHIgIi1tcGljLXJlZ2lzdGVyPSCkzyAtZnBpYyCk8qTEpLGkyqSkpMjM8qTLzqmkwaTepLuk8yIKCiN+IG1zZ2lkICJVbmFibGUgdG8gdXNlICclcycgZm9yIFBJQyByZWdpc3RlciIKI34gbXNnc3RyICInJXMnIKTyIFBJQyCkzqXspbiluaW/pMikt6TGu8ikpqSzpMikrKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiVW5hYmxlIHRvIGZpbmQgYSB0ZW1wb3JhcnkgbG9jYXRpb24gZm9yIHN0YXRpYyBjaGFpbiByZWdpc3RlciIKI34gbXNnc3RyICLAxcWqpcGlp6WkpfOl7KW4pbmlv83RpM6w7Lv+zs6w6KTyuKukxKSxpOmk7KTepLuk8yIKCiN+IG1zZ2lkICJVbmFibGUgdG8gY29tcHV0ZSByZWFsIGxvY2F0aW9uIG9mIHN0YWNrZWQgcGFyYW1ldGVyIgojfiBtc2dzdHIgIqW5pb+lw6WvpMvA0aTepOykv7K+sPq/9KTOvMK63aTOzs6w6KTyt9e7u6THpK2k3qS7pPMiCgojfiBtc2dpZCAibm8gbG93IHJlZ2lzdGVycyBhdmFpbGFibGUgZm9yIHBvcHBpbmcgaGlnaCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiueKwzKXspbiluaW/pPIgcG9wIKS5pOuw2aTLu8jN0aTHpK2k68TjsMyl7KW4pbmlv6SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJJbnRlcnJ1cHQgU2VydmljZSBSb3V0aW5lcyBjYW5ub3QgYmUgY29kZWQgaW4gVGh1bWIgbW9kZS4iCiN+IG1zZ3N0ciAiVGh1bWIgpeKhvKXJpMekz7PkpOq5/qTfpbWhvKXTpbml66G8pcGl86TypbOhvKXJsr2kx6StpN6ku6TzIgoKI34gbXNnaWQgIkdlbmVyYXRlIEFQQ1MgY29uZm9ybWFudCBzdGFjayBmcmFtZXMiCiN+IG1zZ3N0ciAiQVBDUyDFrLnnpLekv6W5pb+lw6WvpdWl7KG8peCk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlN0b3JlIGZ1bmN0aW9uIG5hbWVzIGluIG9iamVjdCBjb2RlIgojfiBtc2dzdHIgIqWqpdaluKWnpa+lyKWzobylyaTLtNi/9My+pPKzyse8pLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIDMyLWJpdCB2ZXJzaW9uIG9mIHRoZSBBUENTIgojfiBtc2dzdHIgIkFQQ1MgpM4gMzIgpdOlw6XIyMek8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSB0aGUgMjYtYml0IHZlcnNpb24gb2YgdGhlIEFQQ1MiCiN+IG1zZ3N0ciAiQVBDUyCkziAyNiCl06XDpcjIx6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiUGFzcyBGUCBhcmd1bWVudHMgaW4gRlAgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIkZQIKXspbiluaW/pMcgRlAgsPq/9KTyxc+kuSIKCiN+IG1zZ2lkICJHZW5lcmF0ZSByZS1lbnRyYW50LCBQSUMgY29kZSIKI34gbXNnc3RyICK6xsb+ssTHvaTKIFBJQyCls6G8pcmk8sC4wK6kt6TepLkiCgojfiBtc2dpZCAiVGhlIE1NVSB3aWxsIHRyYXAgb24gdW5hbGlnbmVkIGFjY2Vzc2VzIgojfiBtc2dzdHIgIk1NVSCkz6WipemlpKXzpeGl86XIpLWk7KTKpKSloqWvpbuluaTHpcil6aXDpdek8sivpLmk66THpLek56SmIgoKI34gbXNnaWQgIlVzZSBsaWJyYXJ5IGNhbGxzIHRvIHBlcmZvcm0gRlAgb3BlcmF0aW9ucyIKI34gbXNnc3RyICLJ4sawvq6/9MXAsem7u6TyudSkpqXppaSl1qXppeq4xqTTvdCkt6TyzfjN0aS5pOsiCgojfiBtc2dpZCAiVXNlIGhhcmR3YXJlIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9ucyIKI34gbXNnc3RyICKlz6G8pcmlpqWnpaLJ4sawvq6/9MXAzL/O4aTyu8jN0aS5pOsiCgojfiBtc2dpZCAiQXNzdW1lIHRhcmdldCBDUFUgaXMgY29uZmlndXJlZCBhcyBiaWcgZW5kaWFuIgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKSspdOlw6Wvpail86XHpaOloqXzpMikt6TGwN/E6qS1pOykxqSkpOukyKTfpMqkuSIKCiN+IG1zZ2lkICJBc3N1bWUgdGFyZ2V0IENQVSBpcyBjb25maWd1cmVkIGFzIGxpdHRsZSBlbmRpYW4iCiN+IG1zZ3N0ciAipb+hvKWypcOlyCBDUFUgpKyl6qXIpeulqKXzpcelo6WipfOkyKS3pMbA38TqpLWk7KTGpKSk66TIpN+kyqS5IgoKI34gbXNnaWQgIkFzc3VtZSBiaWcgZW5kaWFuIGJ5dGVzLCBsaXR0bGUgZW5kaWFuIHdvcmRzIgojfiBtc2dzdHIgImJ5dGUgpKyl06XDpbClqKXzpcelo6WipfOkxyB3b3JkIKSspeqlyKXrpail86XHpaOloqXzpMik36TKpLkiCgojfiBtc2dpZCAiU3VwcG9ydCBjYWxscyBiZXR3ZWVuIFRodW1iIGFuZCBBUk0gaW5zdHJ1Y3Rpb24gc2V0cyIKI34gbXNnc3RyICJUaHVtYiCkyCBBUk0gzL/O4aW7pcOlyLTWpM64xqTTvdCkt6TypbWl3aG8pcikuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGEgY2FsbCB0byBhYm9ydCBpZiBhIG5vcmV0dXJuIGZ1bmN0aW9uIHJldHVybnMiCiN+IG1zZ3N0ciAibm9yZXR1cm4gtNi/9KSsIHJldHVybiCkuaTrpMikrSBhYm9ydCCkzrjGpNO90KS3pPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgbW92ZSBpbnN0cnVjdGlvbnMgaW50byBhIGZ1bmN0aW9uJ3MgcHJvbG9ndWUiCiN+IG1zZ3N0ciAitNi/9KTOs6u7z8n0yqyky8y/zuGk8rDcxrCkt6TKpKQiCgojfiBtc2dpZCAiRG8gbm90IGxvYWQgdGhlIFBJQyByZWdpc3RlciBpbiBmdW5jdGlvbiBwcm9sb2d1ZXMiCiN+IG1zZ3N0ciAitNi/9KTOwbDD1qStyfTKrKTLIFBJQyCl7KW4pbmlv6Type2hvKXJpLekyqSkIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNhbGwgaW5zbnMgYXMgaW5kaXJlY3QgY2FsbHMsIGlmIG5lY2Vzc2FyeSIKI34gbXNnc3RyICLJrM3XpKykoqTspNChosy/zuG4xqTTvdCkt6TytNbA3LjGpNO90KS3pMikt6TGwLjArqS5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgdGhlIFRodW1iIG5vdCB0aGUgQVJNIgojfiBtc2dzdHIgIkFSTSCkx6TPpMqkryBUaHVtYiDN0aTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiVGh1bWI6IEdlbmVyYXRlIChub24tbGVhZikgc3RhY2sgZnJhbWVzIGV2ZW4gaWYgbm90IG5lZWRlZCIKI34gbXNnc3RyICJUaHVtYjogydTN16TKvuy556THpOIoyPPL9sO8KaW5pb+lw6WvpdWl7KG8peCk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlRodW1iOiBHZW5lcmF0ZSAobGVhZikgc3RhY2sgZnJhbWVzIGV2ZW4gaWYgbm90IG5lZWRlZCIKI34gbXNnc3RyICJUaHVtYjogydTN16TKvuy556THpOIoy/bDvCmluaW/pcOlr6XVpeyhvKXgpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJUaHVtYjogQXNzdW1lIG5vbi1zdGF0aWMgZnVuY3Rpb25zIG1heSBiZSBjYWxsZWQgZnJvbSBBUk0gY29kZSIKI34gbXNnc3RyICJUaHVtYjogyPPAxcWqtNi/9KSsIEFSTSCls6G8pcmkq6TpuMak073QpLWk7KTrssTHvcCtpKykoqTrpMik36TKpLkiCgojfiBtc2dpZCAiVGh1bWI6IEFzc3VtZSBmdW5jdGlvbiBwb2ludGVycyBtYXkgZ28gdG8gbm9uLVRodW1iIGF3YXJlIGNvZGUiCiN+IG1zZ3N0ciAiVGh1bWI6ILTYv/Sl3aWkpfOlv6SsyPMgVGh1bWIgpMjHp7yxpLmk66WzobylyaTLxs3G/qS5pOuyxMe9wK2krKSipOukyKTfpMqkuSIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgQ1BVIgojfiBtc2dzdHIgIqW/obylsqXDpcggQ1BVIKTOzL7BsKTyu9jE6qS5pOsiCgojfiBtc2dpZCAiU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSIKI34gbXNnc3RyICKlv6G8pbKlw6XIpaKhvKWtpcalr6XBpeOkzsy+wbCk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIHZlcnNpb24gb2YgdGhlIGZsb2F0aW5nIHBvaW50IGVtdWxhdG9yIgojfiBtc2dzdHIgIsnixrC+rr/0xcClqKXfpeWl7KG8pb+kzqXQobyluKXnpfOk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIG1pbmltdW0gYml0IGFsaWdubWVudCBvZiBzdHJ1Y3R1cmVzIgojfiBtc2dzdHIgIrm9wqTCzqWipemlpKXzpeGl86XIpM66x76updOlw6XIv/Sk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIHJlZ2lzdGVyIHRvIGJlIHVzZWQgZm9yIFBJQyBhZGRyZXNzaW5nIgojfiBtc2dzdHIgIlBJQyCloqXJpeylt6XzpbCky834zdGktaTspOul7KW4pbmlv6Tyu9jE6qS5pOsiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZWQgdmFyaWFibGUgYCVzJyBpcyBtYXJrZWQgZGxsaW1wb3J0IgojfiBtc2dzdHIgIr3ptPyyvaS1pOykv8rRv/QgYCVzJyCkzyBkbGxpbXBvcnQgpd6hvKWvpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInN0YXRpYyB2YXJpYWJsZSBgJXMnIGlzIG1hcmtlZCBkbGxpbXBvcnQiCiN+IG1zZ3N0ciAiwMXFqsrRv/QgYCVzJyCkzyBkbGxpbXBvcnQgpMil3qG8pa+ktaTspMakpKTepLkiCgojfiBtc2dpZCAiSWdub3JlIGRsbGltcG9ydCBhdHRyaWJ1dGUgZm9yIGZ1bmN0aW9ucyIKI34gbXNnc3RyICK02L/0pM4gZGxsaW1wb3J0IMKwwK2k8sy1u+ukuaTrIgoKI34gbXNnaWQgIkRvIHN5bWJvbCByZW5hbWluZyBmb3IgQlNEIgojfiBtc2dzdHIgIkJTRCDN0aTLpbel86XcpevMvqTyytG5uaS5pOsiCgojfiBtc2dpZCAiRG8gc3ltYm9sIHJlbmFtaW5nIGZvciBYL09QRU4iCiN+IG1zZ3N0ciAiWC9PUEVOIM3RpMult6Xzpdyl68y+pPLK0bm5pLmk6yIKCiN+IG1zZ2lkICJEb24ndCBkbyBzeW1ib2wgcmVuYW1pbmciCiN+IG1zZ3N0ciAipbel86XcpevMvqTOytG5uaTyudSk76TKpKQiCgojfiBtc2dpZCAiTUNVIGAlcycgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICJNQ1UgYCVzJyCkz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJsYXJnZSBmcmFtZSBwb2ludGVyIGNoYW5nZSAoJWQpIHdpdGggLW10aW55LXN0YWNrIgojfiBtc2dzdHIgIi1tdGlueS1zdGFjayCky6TopOql6aG8pbil1aXsobyl4KXdpaSl86W/pKzK0bm5pLWk7KTepLkoJWQpIgoKI34gbXNnaWQgIk9ubHkgaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGNhbiBiZSBwbGFjZWQgaW50byBwcm9ncmFtIG1lbW9yeSBhcmVhLiIKI34gbXNnc3RyICKl16XtpbCl6aXgpeGl4qXqzs6w6MbipMvH28PWpMekraTrytG/9KTApLGk8r3ptPyyvaS3pN6kt6S/IgoKI34gbXNnaWQgIkFzc3VtZSBpbnQgdG8gYmUgOCBiaXQgaW50ZWdlciIKI34gbXNnc3RyICJpbnQgpPIgOCCl06XDpcjAsL/0pMik36TKpLkiCgojfiBtc2dpZCAiQ2hhbmdlIHRoZSBzdGFjayBwb2ludGVyIHdpdGhvdXQgZGlzYWJsaW5nIGludGVycnVwdHMiCiN+IG1zZ3N0ciAis+Sk6rn+pN+kzsy1uPqyvaTKpLekx6W5pb+lw6Wvpd2lpKXzpb+k8srRubmkuaTrIgoKI34gbXNnaWQgIlVzZSBzdWJyb3V0aW5lcyBmb3IgZnVuY3Rpb24gcHJvbG9ndWUvZXBpbG9ndWUiCiN+IG1zZ3N0ciAitNi/9KTOwbDD1qStL7frpNOkzqS/pOGkzqW1pdal66G8pcGl86TyzfjN0aS5pOsiCgojfiBtc2dpZCAiQ2hhbmdlIG9ubHkgdGhlIGxvdyA4IGJpdHMgb2YgdGhlIHN0YWNrIHBvaW50ZXIiCiN+IG1zZ3N0ciAipbmlv6XDpa+l3aWkpfOlv6TOsrywzCA4IKXTpcOlyKTApLGk8srRubmkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSB0YWJsZWp1bXAgaW5zbnMiCiN+IG1zZ3N0ciAipcahvKXWpeuluKXjpfOl18y/zuGk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiT3V0cHV0IGluc3RydWN0aW9uIHNpemVzIHRvIHRoZSBhc20gZmlsZSIKI34gbXNnc3RyICJhc20gpdWloaWkpeuky8y/zuGltaWkpbqk8r3Qzs+kuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIGluaXRpYWwgc3RhY2sgYWRkcmVzcyIKI34gbXNnc3RyICK96bT8pbmlv6XDpa+loqXJpeyluaTyu9jE6qS5pOsiCgojfiBtc2dpZCAiU3BlY2lmeSB0aGUgTUNVIG5hbWUiCiN+IG1zZ3N0ciAiTUNVIMy+pPK72MTqpLmk6yIKCiN+IG1zZ2lkICJUcmFtcG9saW5lcyBub3Qgc3VwcG9ydGVkXG4iCiN+IG1zZ3N0ciAipcil6aXzpd2l6qXzpM+ltaXdobylyKS1pOyk3qS7pPNcbiIKCiN+IG1zZ2lkICJVbmtub3duIENQVSB2ZXJzaW9uICVkLCB1c2luZyA0MC5cbiIKI34gbXNnc3RyICLJ1MzApMogQ1BVIKXQobyluKXnpfMgJWShojQwIKTyu8jN0aS3pN6kuaGjXG4iCgojfiBtc2dpZCAiSVNSICVzIHJlcXVpcmVzICVkIHdvcmRzIG9mIGxvY2FsIHZhcnMsIG1heCBpcyAzMjc2Ny4iCiN+IG1zZ3N0ciAiSVNSICVzIKTPICVkIKXvobylyaTOpe2hvKWrpevK0b/0pPLN17XhpLehorrHwuekzyAzMjc2NyCkx6S5oaMiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgJyNwcmFnbWEgJXMnIgojfiBtc2dzdHIgIicjcHJhZ21hICVzJyCkzrrHuOWky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgIlNtYWxsIG1lbW9yeSBtb2RlbCIKI34gbXNnc3RyICKluaXiobyl66XhpeKl6qXipcel6yIKCiN+IG1zZ2lkICJCaWcgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqXTpcOlsKXhpeKl6qXipcel6yIKCiN+IG1zZ2lkICJVc2UgTVBZSSBpbnN0cnVjdGlvbiBmb3IgQzN4IgojfiBtc2dzdHIgIk1QWUkgzL/O4aTyIEMzeCDN0aTLu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBNUFlJIGluc3RydWN0aW9uIGZvciBDM3giCiN+IG1zZ3N0ciAiTVBZSSDMv87hpPIgQzN4IM3RpMu7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBmYXN0IGJ1dCBhcHByb3hpbWF0ZSBmbG9hdCB0byBpbnRlZ2VyIGNvbnZlcnNpb24iCiN+IG1zZ3N0ciAiueLCrqTApKy24bv3w82kyKTKpOvJ4sawvq6/9KSrpOnAsL/0pNikzsrRtLmk8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBzbG93IGJ1dCBhY2N1cmF0ZSBmbG9hdCB0byBpbnRlZ2VyIGNvbnZlcnNpb24iCiN+IG1zZ3N0ciAixOPCrqTApKzAtbPOpMrJ4sawvq6/9KSrpOnAsL/0pNikzsrRtLmk8s34zdGkuaTrIgoKI34gbXNnaWQgIkVuYWJsZSB1c2Ugb2YgUlRQUyBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJSVFBTIMy/zuGkzs34zdGk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSB1c2Ugb2YgUlRQUyBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJSVFBTIMy/zuGkzs34zdGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIHVzZSBvZiBSVFBCIGluc3RydWN0aW9uIgojfiBtc2dzdHIgIlJUUEIgzL/O4aTOzfjN0aTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIHVzZSBvZiBSVFBCIGluc3RydWN0aW9uIgojfiBtc2dzdHIgIlJUUEIgzL/O4aTOzfjN0aTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBDMzAgQ1BVIgojfiBtc2dzdHIgIkMzMCBDUFUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgQzMxIENQVSIKI34gbXNnc3RyICJDMzEgQ1BVIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEMzMiBDUFUiCiN+IG1zZ3N0ciAiQzMyIENQVSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBDMzMgQ1BVIgojfiBtc2dzdHIgIkMzMyBDUFUgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgQzQwIENQVSIKI34gbXNnc3RyICJDNDAgQ1BVIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEM0NCBDUFUiCiN+IG1zZ3N0ciAiQzQ0IENQVSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNvZGUgY29tcGF0aWJsZSB3aXRoIFRJIHRvb2xzIgojfiBtc2dzdHIgIlRJIKXEobyl67jftLmkzqWzobylyaTyyK+51KS5pOsiCgojfiBtc2dpZCAiRW1pdCBjb2RlIHRvIHVzZSBHQVMgZXh0ZW5zaW9ucyIKI34gbXNnc3RyICJHQVMgs8jEpaTyzfjN0aS5pOuls6G8pcmk8sivudSkuaTrIgoKI34gbXNnaWQgIlNhdmUgRFAgYWNyb3NzIElTUiBpbiBzbWFsbCBtZW1vcnkgbW9kZWwiCiN+IG1zZ3N0ciAipbml4qG8peul4aXipeql4qXHpeukxyBJU1IgpPK42aTrIERQIKTypbuhvKXWpLmk6yIKCiN+IG1zZ2lkICJEb24ndCBzYXZlIERQIGFjcm9zcyBJU1IgaW4gc21hbGwgbWVtb3J5IG1vZGVsIgojfiBtc2dzdHIgIqW5peKhvKXrpeKlx6XrpMcgSVNSIKTyuNmk6yBEUCCk8qW7obyl1qS3pMqkpCIKCiN+IG1zZ2lkICJQYXNzIGFyZ3VtZW50cyBvbiB0aGUgc3RhY2siCiN+IG1zZ3N0ciAisPq/9KTypbmlv6XDpa/Fz6S3pMukuaTrIgoKI34gbXNnaWQgIlBhc3MgYXJndW1lbnRzIGluIHJlZ2lzdGVycyIKI34gbXNnc3RyICKw+r/0pPKl7KW4pbmlv8XPpLeky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIG5ldyBmZWF0dXJlcyB1bmRlciBkZXZlbG9wbWVudCIKI34gbXNnc3RyICKzq8ivw+akzr+3taHHvaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIG5ldyBmZWF0dXJlcyB1bmRlciBkZXZlbG9wbWVudCIKI34gbXNnc3RyICKzq8ivw+akzr+3taHHvaTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIEJLIHJlZ2lzdGVyIGFzIGEgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVyIgojfiBtc2dzdHIgIkJLIKXspbiluaW/pPLIxs3RpeyluKW5pb+kyKS3pMa7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgYWxsb2NhdGUgQksgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAiQksgpeyluKW5pb+k8rPOyt2kt6TKpKQiCgojfiBtc2dpZCAiRW5hYmxlIHVzZSBvZiBEQiBpbnN0cnVjdGlvbiIKI34gbXNnc3RyICJEQiDMv87hpM67yM3RpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgdXNlIG9mIERCIGluc3RydWN0aW9uIgojfiBtc2dzdHIgIkRCIMy/zuGkzrvIzdGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIGRlYnVnZ2luZyIKI34gbXNnc3RyICKlx6XQpcOlsKTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIGRlYnVnZ2luZyIKI34gbXNnc3RyICKlx6XQpcOlsKTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJGb3JjZSBjb25zdGFudHMgaW50byByZWdpc3RlcnMgdG8gaW1wcm92ZSBob2lzdGluZyIKI34gbXNnc3RyICK0rKStvuWksihob2lzdCmk8rL+wbGkuaTrpL+k4cTqv/Sk8qXspbiluaW/pMuz5KTqxfakxqTrpLOkyKTytq/N16S5pOsiCgojfiBtc2dpZCAiRG9uJ3QgZm9yY2UgY29uc3RhbnRzIGludG8gcmVnaXN0ZXJzIgojfiBtc2dzdHIgIsTqv/SkzqXspbiluaW/s+Sk6sX2pMak8ravzdekt6TKpKQiCgojfiBtc2dpZCAiRm9yY2UgUlRMIGdlbmVyYXRpb24gdG8gZW1pdCB2YWxpZCAzIG9wZXJhbmQgaW5zbnMiCiN+IG1zZ3N0ciAiUlRMIMC4wK6ky6TEpKSkxqGiwLW+76TKIDMgpaql2qXppfOlycy/zuGk8ravzdekuaTrIgoKI34gbXNnaWQgIkFsbG93IFJUTCBnZW5lcmF0aW9uIHRvIGVtaXQgaW52YWxpZCAzIG9wZXJhbmQgaW5zbnMiCiN+IG1zZ3N0ciAiUlRMIMC4wK6ky6TEpKSkxqGizLW4+qTKIDMgpaql2qXppfOlycy/zuGk8rX2zcakuaTrIgoKI34gbXNnaWQgIkFsbG93IHVuc2lnbmVkIGludGVyYXRpb24gY291bnRzIGZvciBSUFRCL0RCIgojfiBtc2dzdHIgIsnkuefMtaS3pM4gUlBUQi9EQiDN0aTOyL/J/KWrpaal86XIpPK19s3GpLmk6yIKCiN+IG1zZ2lkICJEaXNhbGxvdyB1bnNpZ25lZCBpdGVyYXRpb24gY291bnRzIGZvciBSUFRCL0RCIgojfiBtc2dzdHIgIsnkuefMtaS3pM4gUlBUQi9EQiDN0aTOyL/J/KWrpaal86XIpPK19s3GpLekyqSkIgoKI34gbXNnaWQgIlByZXNlcnZlIGFsbCA0MCBiaXRzIG9mIEZQIHJlZyBhY3Jvc3MgY2FsbCIKI34gbXNnc3RyICK4xqTTvdCkt6TOtNYgRlAgpeyluKW5pb+kziA0MCCl06XDpcjBtKTGpPLK3cK4pLmk6yIKCiN+IG1zZ2lkICJPbmx5IHByZXNlcnZlIDMyIGJpdHMgb2YgRlAgcmVnIGFjcm9zcyBjYWxsIgojfiBtc2dzdHIgIrjGpNO90KS3pM601iBGUCCl7KW4pbmlv6TOIDMyIKXTpcOlyKTApLGk8srdwrikuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBwYXJhbGxlbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiysLO88y/zuGk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBwYXJhbGxlbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiysLO88y/zuGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIE1QWXx8QUREIGFuZCBNUFl8fFNVQiBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiTVBZfHxBREQgpKqk6KTTIE1QWXx8U1VCIMy/zuGk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBNUFl8fEFERCBhbmQgTVBZfHxTVUIgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIk1QWXx8QUREIKSqpOik0yBNUFl8fFNVQiDMv87hpPLMtbj6pMukuaTrIgoKI34gbXNnaWQgIkFzc3VtZSB0aGF0IHBvaW50ZXJzIG1heSBiZSBhbGlhc2VkIgojfiBtc2dzdHIgIqXdpaSl86W/pKzKzMy+pMikyqTqpKak66SzpMik8sGwxPOkyKS5pOsiCgojfiBtc2dpZCAiQXNzdW1lIHRoYXQgcG9pbnRlcnMgbm90IGFsaWFzZWQiCiN+IG1zZ3N0ciAipd2lpKXzpb+kz8rMzL6ky6TKpOmkyqSkpMik36TKpLkiCgojfiBtc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIGZvciBSUFRTIgojfiBtc2dzdHIgIlJQVFMgzdGkzrrHwufIv8n8v/Sk8rvYxOqkuaTrIgoKI34gbXNnaWQgIlNlbGVjdCBDUFUgdG8gZ2VuZXJhdGUgY29kZSBmb3IiCiN+IG1zZ3N0ciAipbOhvKXJpKzAuMCupLWk7KTrIENQVSCk8sGqwvKkuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBDNDAwIgojfiBtc2dzdHIgIkM0MDAgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgdGhlIEMzMDAiCiN+IG1zZ3N0ciAiQzMwMCDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBjMSIKI34gbXNnc3RyICJjMSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBjMiIKI34gbXNnc3RyICJjMiDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBjMzIiCiN+IG1zZ3N0ciAiYzMyIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIGMzNCIKI34gbXNnc3RyICJjMzQgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiVXNlIHN0YW5kYXJkIGNhbGxpbmcgc2VxdWVuY2UsIHdpdGggYXJnIGNvdW50IHdvcmQiCiN+IG1zZ3N0ciAiybi94MWquMak073QpLe86r3npPK7yKSkoaKw+r/0paulpqXzpcggd29yZCCk8qTEpLGk6yIKCiN+IG1zZ2lkICJQbGFjZSBhcmcgY291bnQgaW4gYSBub3AgaW5zdHJ1Y3Rpb24gKGZhc3RlciB0aGFuIHB1c2gpIgojfiBtc2dzdHIgIm5vcCDMv87hxuKky7D6v/Slq6WmpfOlyKTyw9akryAocHVzaCCk6KTqueLCrikiCgojfiBtc2dpZCAiRG9uJ3QgcHVzaCBhcmcgY291bnQsIGRlcGVuZCBvbiBzeW1ib2wgdGFibGUiCiN+IG1zZ3N0ciAisPq/9KWrpaal86XIpPIgcHVzaCCku6S6oaKlt6Xzpdyl66XGobyl1qXrpPKkoqTGpMukuaTrIgoKI34gbXNnaWQgIlVzZSBkYXRhIGNhY2hlIGZvciB2b2xhdGlsZSBtZW0gcmVmcyAoZGVmYXVsdCkiCiN+IG1zZ3N0ciAidm9sYXRpbGUgpeGl4qXqu7K+yM3RpcehvKW/pa2l46XDpbel5aTyzfjN0aS5pOsopcel1aWppeulyCkiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIGRhdGEgY2FjaGUgZm9yIHZvbGF0aWxlIG1lbSByZWZzIgojfiBtc2dzdHIgInZvbGF0aWxlIKXhpeKl6ruyvsjN0aTLpM+lx6G8pb+lraXjpcOlt6XlpPK51KTvpMqkpCIKCiN+IG1zZ2lkICJCeXBhc3MgZGF0YSBjYWNoZSBmb3Igdm9sYXRpbGUgbWVtIHJlZnMiCiN+IG1zZ3N0ciAidm9sYXRpbGUgpeGl4qXqu7K+yM3RpMukzyBjYWNoZSCktaTspL+lx6G8pb+k8rLzyPKkuaTrIgoKI34gbXNnaWQgIlVzZSA2NC1iaXQgbG9uZ3MiCiN+IG1zZ3N0ciAiNjQgpdOlw6XIIGxvbmcgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgY2MtIGFuZCBsaWJjLWNvbXBhdGlibGUgMzItYml0IGxvbmdzIgojfiBtc2dzdHIgImNjLSCkyCBsaWJjILjftLmkziAzMiCl06XDpcggbG9uZyCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkJhZCBtb2Rlc190aWVhYmxlX3AgZm9yIHJlZ2lzdGVyICVzLCBtb2RlMSAlcywgbW9kZTIgJXMiCiN+IG1zZ3N0ciAipeyluKW5pb8gJXMgpMukyKTDpMbJ1MC1pMogbW9kZXNfdGllYWJsZV9wLCBtb2RlMSAlcywgbW9kZTIgJXMiCgojfiBtc2dpZCAiRW5hYmxlIHVzZSBvZiBjb25kaXRpb25hbCBtb3ZlIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICK+8rfvxaogbW92ZSDMv87hpM7N+M3RpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgdXNlIG9mIGNvbmRpdGlvbmFsIG1vdmUgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIr7yt+/FqiBtb3ZlIMy/zuGkzs34zdGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRGVidWcgYXJndW1lbnQgc3VwcG9ydCBpbiBjb21waWxlciIKI34gbXNnc3RyICKls6XzpdGlpKXpxuKkzqXHpdClw6WwsPq/9KTypbWl3aG8pcikuaTrIgoKI34gbXNnaWQgIkRlYnVnIHN0YWNrIHN1cHBvcnQgaW4gY29tcGlsZXIiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cbipM6lx6XQpcOlsKW5pb+lw6WvpPKltaXdobylyKS5pOsiCgojfiBtc2dpZCAiRGVidWcgbWVtb3J5IGFkZHJlc3Mgc3VwcG9ydCBpbiBjb21waWxlciIKI34gbXNnc3RyICKls6XzpdGlpKXpxuKkzqXHpdClw6WwpeGl4qXqpaKlyaXspbmk8qW1pd2hvKXIpLmk6yIKCiN+IG1zZ2lkICJNYWtlIGFkamFjZW50IHNob3J0IGluc3RydWN0aW9ucyBwYXJhbGxlbCBpZiBwb3NzaWJsZS4iCiN+IG1zZ3N0ciAissTHvaTKpOmk0M7ZwNykuaTrw7ukpMy/zuGk8srCzvOyvaS5pOsiCgojfiBtc2dpZCAiRG8gbm90IG1ha2UgYWRqYWNlbnQgc2hvcnQgaW5zdHJ1Y3Rpb25zIHBhcmFsbGVsLiIKI34gbXNnc3RyICLO2cDcpLmk68O7pKTMv87hpPLKws7zsr2kt6TKpKQiCgojfiBtc2dpZCAiTGluayBwcm9ncmFtcy9kYXRhIHRvIGJlIGluIGV4dGVybmFsIG1lbW9yeSBieSBkZWZhdWx0IgojfiBtc2dzdHIgIqXXpe2lsKXppeAvpcehvKW/pPKlx6XVpaml66XIpMezsMn0peGl4qXqxuKky6XqpfOlr6S5pOsiCgojfiBtc2dpZCAiTGluayBwcm9ncmFtcy9kYXRhIHRvIGJlIGluIG9uY2hpcCBtZW1vcnkgYnkgZGVmYXVsdCIKI34gbXNnc3RyICKl16XtpbCl6aXgL6XHobylv6Typcel1aWppeulyKTHpcGlw6XXvuWkzqXhpeKl6sbipMul6qXzpa+kuaTrIgoKI34gbXNnaWQgIkNoYW5nZSB0aGUgYnJhbmNoIGNvc3RzIHdpdGhpbiB0aGUgY29tcGlsZXIiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cbiyfSkx6TOyqy09KWzpbmlyKTyytG5uaS5pOsiCgojfiBtc2dpZCAiQ2hhbmdlIHRoZSB0aHJlc2hvbGQgZm9yIGNvbnZlcnNpb24gdG8gY29uZGl0aW9uYWwgZXhlY3V0aW9uIgojfiBtc2dzdHIgIr7yt+/FqqTKvMK51KTYpM7K0bm5pM6kv6ThpM7v58PNpPLK0bm5pLmk6yIKCiN+IG1zZ2lkICJTdGFjayBzaXplID4gMzJrIgojfiBtc2dzdHIgIqW5pb+lw6WvpbWlpKW6ID4gMzJrIgoKI34gbXNnaWQgImlubGluZSBmbG9hdCBjb25zdGFudHMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGhvc3QiCiN+IG1zZ3N0ciAipLOkzqXbpbmlyKTHpM+lpKXzpemlpKXzyeLGsL6uv/TE6r/0pPKltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIlByb2ZpbGluZyBub3QgaW1wbGVtZW50ZWQgeWV0LiIKI34gbXNnc3RyICKl16XtpdWloaWkpeql86WwpM+hoqTepMC8wsH1pLWk7KTGpKSk3qS7pPOhoyIKCiN+IG1zZ2lkICJUcmFtcG9saW5lcyBub3QgeWV0IGltcGxlbWVudGVkIgojfiBtc2dzdHIgIlRyYW1wb2xpbmUgpM+hoqTepMC8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSB0aGUgdW5peCBhc3NlbWJsZXIgY2FuIGhhbmRsZSIKI34gbXNnc3RyICJ1bml4IKWipbul86XWpemkrL3ozf2kx6StpOuls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgYW4gZW1iZWRkZWQgYXNzZW1ibGVyIGNhbiBoYW5kbGUiCiN+IG1zZ3N0ciAiy+Sk4bn+pN+loqW7pfOl1qXppKy96M39pMekraTrpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmRfYWRkcmVzczogdW5oYW5kbGVkIGFkZHJlc3MiCiN+IG1zZ3N0ciAiZnIzMF9wcmludF9vcGVyYW5kX2FkZHJlc3M6IL3ozf2ktaTspMqkpKWipcml7KW5pMekuSIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmQ6IHVucmVjb2duaXNlZCAlcCBjb2RlIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogx6e8saTHpK2kyqSkICVwIKWzobylyaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiB1bnJlY29nbmlzZWQgJWIgY29kZSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6IMenvLGkx6StpMqkpCAlYiCls6G8pcmkx6S5IgoKI34gbXNnaWQgImZyMzBfcHJpbnRfb3BlcmFuZDogdW5yZWNvZ25pc2VkICVCIGNvZGUiCiN+IG1zZ3N0ciAiZnIzMF9wcmludF9vcGVyYW5kOiDHp7yxpMekraTKpKQgJUIgpbOhvKXJpMekuSIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmQ6IGludmFsaWQgb3BlcmFuZCB0byAlQSBjb2RlIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogJUEgpbOhvKXJpMvC0KS5pOvMtbj6pMqx6bu7u9Kkx6S5IgoKI34gbXNnaWQgImZyMzBfcHJpbnRfb3BlcmFuZDogaW52YWxpZCAleCBjb2RlIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogzLW4+qTKICV4IKWzobylyaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiBpbnZhbGlkICVGIGNvZGUiCiN+IG1zZ3N0ciAiZnIzMF9wcmludF9vcGVyYW5kOiDMtbj6pMogJUYgpbOhvKXJpMekuSIKCiN+IG1zZ2lkICJmcjMwX3ByaW50X29wZXJhbmQ6IHVua25vd24gY29kZSIKI34gbXNnc3RyICJmcjMwX3ByaW50X29wZXJhbmQ6IMnUzMCkyqWzobylyaTHpLkiCgojfiBtc2dpZCAiZnIzMF9wcmludF9vcGVyYW5kOiB1bmhhbmRsZWQgTUVNIgojfiBtc2dzdHIgImZyMzBfcHJpbnRfb3BlcmFuZDogvejN/aS1pOykyqSkIE1FTSCkx6S5IgoKI34gbXNnaWQgIkFzc3VtZSBzbWFsbCBhZGRyZXNzIHNwYWNlIgojfiBtc2dzdHIgIqW5peKhvKXrpaKlyaXspbm29bTWpMik36TKpLkiCgojfiBtc2dpZCAiLW1zMjYwMCBpcyB1c2VkIHdpdGhvdXQgLW1zLiIKI34gbXNnc3RyICItbXMyNjAwIKSsIC1tcyCkyqS3pMe7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiT25seSBpbml0aWFsaXplZCB2YXJpYWJsZXMgY2FuIGJlIHBsYWNlZCBpbnRvIHRoZSA4LWJpdCBhcmVhLiIKI34gbXNnc3RyICI4IKXTpcOlyM7OsOjG4qTLx9vD1qTHpK2k68rRv/SkwKSxpKy96bT8sr2ktaTspN6kt6S/IgoKI34gbXNnaWQgIkdlbmVyYXRlIEg4L1MgY29kZSIKI34gbXNnc3RyICJIOC9TIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIEg4L1MgY29kZSIKI34gbXNnc3RyICJIOC9TIKWzobylyaTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBIOC9TMjYwMCBjb2RlIgojfiBtc2dzdHIgIkg4L1MyNjAwIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIEg4L1MyNjAwIGNvZGUiCiN+IG1zZ3N0ciAiSDgvUzI2MDAgpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIk1ha2UgaW50ZWdlcnMgMzIgYml0cyB3aWRlIgojfiBtc2dzdHIgIsCwv/Sk8iAzMiCl06XDpcjJ/aTIpLmk6yIKCiN+IG1zZ2lkICJVc2UgcmVnaXN0ZXJzIGZvciBhcmd1bWVudCBwYXNzaW5nIgojfiBtc2dzdHIgIrD6v/Sk8qXspbiluaW/xc+kt6TLpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIHJlZ2lzdGVycyBmb3IgYXJndW1lbnQgcGFzc2luZyIKI34gbXNnc3RyICKw+r/0pPKl7KW4pbmlv8XPpLeky6S3pMqkpCIKCiN+IG1zZ2lkICJDb25zaWRlciBhY2Nlc3MgdG8gYnl0ZSBzaXplZCBtZW1vcnkgc2xvdyIKI34gbXNnc3RyICKl0KWkpciltaWkpbrDsbDMpM6l4aXipeqloqWvpbuluaSsw9mkpKSzpMik8rnNzrikuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBsaW5rZXIgcmVsYXhpbmciCiN+IG1zZ3N0ciAipeql86WrpM4gLXJlbGF4IKWqpdelt6XnpfOk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgSDgvMzAwSCBjb2RlIgojfiBtc2dzdHIgIkg4LzMwMEggpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgSDgvMzAwSCBjb2RlIgojfiBtc2dzdHIgIkg4LzMwMEggpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIlVzZSBIOC8zMDAgYWxpZ25tZW50IHJ1bGVzIgojfiBtc2dzdHIgIkg4LzMwMCCloqXppaSl86XhpfOlyLWswqek8rvIzdGkuaTrIgoKI34gbXNnaWQgInJlYWwgbmFtZSBpcyB0b28gbG9uZyAtIGFsaWFzIGlnbm9yZWQiCiN+IG1zZ3N0ciAiy9zN6KTOzL7BsKSsxLmkuaSupN6kuSAtIMrMzL6kz8y1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgImFsaWFzIG5hbWUgaXMgdG9vIGxvbmcgLSBhbGlhcyBpZ25vcmVkIgojfiBtc2dzdHIgIsrMzL6krMS5pLmkrqTepLkgLSDKzMy+pM/MtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIG1hcCIKI34gbXNnc3RyICIjcHJhZ21hIG1hcCCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgIm1hbGZvcm1lZCAjcHJhZ21hIG1hcCwgaWdub3JlZCIKI34gbXNnc3RyICKkqqSrpLekyiAjcHJhZ21hIG1hcKGizLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiR2VuZXJhdGUgY2hhciBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyri7+sy/zuGk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBjaGFyIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICLKuLv6zL/O4aTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgdGhlIEN5Z3dpbiBpbnRlcmZhY2UiCiN+IG1zZ3N0ciAiQ3lnd2luIKWkpfOlv6G8pdWlp6Wkpbmk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSB0aGUgTWluZ3czMiBpbnRlcmZhY2UiCiN+IG1zZ3N0ciAiTWluZ3czMiClpKXzpb+hvKXVpaelpKW5pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJDcmVhdGUgR1VJIGFwcGxpY2F0aW9uIgojfiBtc2dzdHIgIkdVSSCloqXXpeqlsaG8pbel56XzpPK67qTrIgoKI34gbXNnaWQgIkRvbid0IHNldCBXaW5kb3dzIGRlZmluZXMiCiN+IG1zZ3N0ciAiV2luZG93cyCkziBkZWZpbmUgpPLA38TqpLekyqSkIgoKI34gbXNnaWQgIlNldCBXaW5kb3dzIGRlZmluZXMiCiN+IG1zZ3N0ciAiV2luZG93cyCkziBkZWZpbmUgpPLA38TqpLmk6yIKCiN+IG1zZ2lkICJDcmVhdGUgY29uc29sZSBhcHBsaWNhdGlvbiIKI34gbXNnc3RyICKls6Xzpb2hvKXrpaKl16XqpbGhvKW3peel86Tyuu6k6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBhIERMTCIKI34gbXNnc3RyICJETEwgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiSWdub3JlIGRsbGltcG9ydCBmb3IgZnVuY3Rpb25zIgojfiBtc2dzdHIgIrTYv/Sk2KTOIGRsbGltcG9ydCCk8sy1u+ukuaTrIgoKI34gbXNnaWQgIlVzZSBNaW5ndy1zcGVjaWZpYyB0aHJlYWQgc3VwcG9ydCIKI34gbXNnc3RyICJNaW5ndyC4x82tpM6luaXspcOlyaW1pd2hvKXIpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICItZiVzIGlnbm9yZWQgZm9yIHRhcmdldCAoYWxsIGNvZGUgaXMgcG9zaXRpb24gaW5kZXBlbmRlbnQpIgojfiBtc2dzdHIgIi1mJXMgpM+lv6G8pbKlw6XIpMfMtbvrpLWk7KTepLkgKMG0pMakzqWzobylyaTPsMzD1sjzsM3CuKTHpLkpIgoKI34gbXNnaWQgIkludGVybmFsIGdjYyBhYm9ydCBmcm9tICVzOiVkIgojfiBtc2dzdHIgImdjYyDG4sn0pMfD5sPHICVzOiVkIgoKI34gbXNnaWQgIlRoZSBsb2NhbCB2YXJpYWJsZSBgaW5zbicgaGFzIHRoZSB2YWx1ZToiCiN+IG1zZ3N0ciAipL2kzqXtobylq6XrytG/9CBgaW5zbicgpKzDzaTyu/2kw6TGpKSk3qS5OiIKCiN+IG1zZ2lkICJSZXRhaW4gc3RhbmRhcmQgTVhEQiBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICLJuL3gIE1YREIgvvDK86Tyyt27/aS5pOsiCgojfiBtc2dpZCAiUmV0YWluIGxlZ2VuZCBpbmZvcm1hdGlvbiIKI34gbXNnc3RyICJsZWdlbmQgvvDK86TysN27/aS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgZXh0ZXJuYWwgbGVnZW5kIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIrOwyfQgbGVnZW5kIL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkVtaXQgaWRlbnRpZnlpbmcgaW5mbyBpbiAucyBmaWxlIgojfiBtc2dzdHIgIi5zIKXVpaGlpKXrxuKky7yxysy70r7wyvOk8sH3vdCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGZ1bmN0aW9uIGFyZyBpcyBhIHN0cnVjdHVyZSIKI34gbXNnc3RyICK02L/0pM6w+r/0pKy5vcKkws6kwKTDpL+k6bfZufCkuaTrIgoKI34gbXNnaWQgImFyZ3VtZW50IGlzIGEgc3RydWN0dXJlIgojfiBtc2dzdHIgIrD6v/SkrLm9wqTCzqTHpLkiCgojfiBtc2dpZCAiLW1ibnUyMTAgaXMgaWdub3JlZCAob3B0aW9uIGlzIG9ic29sZXRlKS4iCiN+IG1zZ3N0ciAiLW1ibnUyMTAgpM/MtbvrpLWk7KTepLekvyjH0aTspL+lqqXXpbel56XzpMekuSkiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tYXJjaD0gc3dpdGNoIgojfiBtc2dzdHIgIi1tYXJjaD0gpbmlpKXDpcGky8LQpLmk68nUwLWkysPNICglcykiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tY3B1PSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1jcHU9IKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgIlJlZ2lzdGVyICclYycgaXMgdW5rbm93biIKI34gbXNnc3RyICKl7KW4pbmlvyAnJWMnIKSsydTMwKTHpLkiCgojfiBtc2dpZCAiUmVnaXN0ZXIgJyVjJyBhbHJlYWR5IHNwZWNpZmllZCBpbiBhbGxvY2F0aW9uIG9yZGVyIgojfiBtc2dzdHIgIqXspbiluaW/ICclYycgpM+0+6TLs87K3b3npMe72MTqpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgIi1tcmVncGFybT0lZCBpcyBub3QgYmV0d2VlbiAwIGFuZCAlZCIKI34gbXNnc3RyICItbXJlZ3Bhcm09JWQgpKwgMCCkq6TpICVkIKTOtNakx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItbWFsaWduLWxvb3BzPSVkIGlzIG5vdCBiZXR3ZWVuIDAgYW5kICVkIgojfiBtc2dzdHIgIi1tYWxpZ24tbG9vcHM9JWQgpKwgMCCkq6TpICVkIKTOtNakx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItbWFsaWduLWp1bXBzPSVkIGlzIG5vdCBiZXR3ZWVuIDAgYW5kICVkIgojfiBtc2dzdHIgIi1tYWxpZ24tanVtcHM9JWQgpKwgMCCkq6TpICVkIKTOtNakx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItbWFsaWduLWZ1bmN0aW9ucz0lZCBpcyBub3QgYmV0d2VlbiAwIGFuZCAlZCIKI34gbXNnc3RyICItbWFsaWduLWZ1bmN0aW9ucz0lZCCkrCAwIKSrpOkgJWQgpM601qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PSVkIGlzIG5vdCBiZXR3ZWVuIDIgYW5kIDMxIgojfiBtc2dzdHIgIi1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PSVkIKSsIDIgpKuk6SAzMSCkzrTWpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1icmFuY2gtY29zdD0lZCBpcyBub3QgYmV0d2VlbiAwIGFuZCA1IgojfiBtc2dzdHIgIi1tYnJhbmNoLWNvc3Q9JWQgpKwgMCCkq6TpIDUgpM601qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImZsb2F0aW5nIGNvbnN0YW50IG1pc3VzZWQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TE6r/0pPK7yKSkwrukzaTepLekvyIKCiN+IG1zZ2lkICJpbnZhbGlkIFVOU1BFQyBhcyBvcGVyYW5kIgojfiBtc2dzdHIgIqWqpdql6aXzpcmkyKS3pMbMtbj6pMogVU5TUEVDIgoKI34gbXNnaWQgImludmFsaWQgZXhwcmVzc2lvbiBhcyBvcGVyYW5kIgojfiBtc2dzdHIgIqWqpdql6aXzpcmkyKS3pMbMtbj6pMq8sCIKCiN+IG1zZ2lkICJzZWxlY3RvciBtdXN0IGJlIGFuIGltbWVkaWF0ZSIKI34gbXNnc3RyICKlu6Xspa+lv6TPwqjDzaTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIm1hc2sgbXVzdCBiZSBhbiBpbW1lZGlhdGUiCiN+IG1zZ3N0ciAipd6luaWvpM/CqMPNpMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiaGFsZi1waWMgaW5pdCBjYWxsZWQgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgaXQuIgojfiBtc2dzdHIgImhhbGYtcGljIL3ptPyyvaTypbWl3aG8pcikt6TGpKSkyqSkpbeluaXGpeCkx7jGpNO90KS1pOyk3qS3pL+hoyIKCiN+IG1zZ2lkICJTYW1lIGFzIC1tY3B1PWkzODYiCiN+IG1zZ3N0ciAiLW1jcHU9aTM4NiCkyMaxpLgiCgojfiBtc2dpZCAiU2FtZSBhcyAtbWNwdT1pNDg2IgojfiBtc2dzdHIgIi1tY3B1PWk0ODYgpMjGsaS4IgoKI34gbXNnaWQgIlNhbWUgYXMgLW1jcHU9cGVudGl1bSIKI34gbXNnc3RyICItbWNwdT1wZW50aXVtIKTIxrGkuCIKCiN+IG1zZ2lkICJTYW1lIGFzIC1tY3B1PXBlbnRpdW1wcm8iCiN+IG1zZ3N0ciAiLW1jcHU9cGVudGl1bXBybyCkyMaxpLgiCgojfiBtc2dpZCAiQWx0ZXJuYXRlIGNhbGxpbmcgY29udmVudGlvbiIKI34gbXNnc3RyICK4xqTTvdCkt7WszPOk8sb+pOzC2KSopOsiCgojfiBtc2dpZCAiVXNlIG5vcm1hbCBjYWxsaW5nIGNvbnZlbnRpb24iCiN+IG1zZ3N0ciAiyeHEzKTOuMak073QpLe1rMzzpPK7yKSmIgoKI34gbXNnaWQgIkFsaWduIHNvbWUgZG91YmxlcyBvbiBkd29yZCBib3VuZGFyeSIKI34gbXNnc3RyICJkb3VibGUgpPIgZHdvcmQgtq2zpqTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIkFsaWduIGRvdWJsZXMgb24gd29yZCBib3VuZGFyeSIKI34gbXNnc3RyICJkb3VibGUgpPIgd29yZCC2rbOmpMuloqXppaSl86XhpfOlyKS5pOsiCgojfiBtc2dpZCAiVW5pbml0aWFsaXplZCBsb2NhbHMgaW4gLmJzcyIKI34gbXNnc3RyICIuYnNzIKTLpKKk66Xtobylq6XrpMqk4qTOpM+96bT8sr2ktaTspMqkpCIKCiN+IG1zZ2lkICJVbmluaXRpYWxpemVkIGxvY2FscyBpbiAuZGF0YSIKI34gbXNnc3RyICIuZGF0YSCky6SipOul7aG8paul66TKpOKkzqTPvem0/LK9pLWk7KTKpKQiCgojfiBtc2dpZCAiVXNlIElFRUUgbWF0aCBmb3IgZnAgY29tcGFyaXNvbnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwMjms9OkyyBJRUVFILWss8qk8rvIpKYiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBJRUVFIG1hdGggZm9yIGZwIGNvbXBhcmlzb25zIgojfiBtc2dzdHIgIsnixrC+rr/0xcDI5rPTpMsgSUVFRSC1rLPKpPK7yKTvpMqkpCIKCiN+IG1zZ2lkICJSZXR1cm4gdmFsdWVzIG9mIGZ1bmN0aW9ucyBpbiBGUFUgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIkZQVSCl7KW4pbmlv8bipM61oce9pM7DzaTyytakuSIKCiN+IG1zZ2lkICJEbyBub3QgcmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMgaW4gRlBVIHJlZ2lzdGVycyIKI34gbXNnc3RyICJGUFUgpeyluKW5pb/G4qTOtaHHvaTOw82k8srWpLWkyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBzaW4sIGNvcywgc3FydCBmb3IgRlBVIgojfiBtc2dzdHIgIkZQVSDN0aTOIHNpbiwgY29zLCBzcXJ0IKTywLjArqS3pMqkpCIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBzaW4sIGNvcywgc3FydCBmb3IgRlBVIgojfiBtc2dzdHIgIkZQVSDN0aTOIHNpbiwgY29zLCBzcXJ0IKTywLjArqS5pOsiCgojfiBtc2dpZCAiT21pdCB0aGUgZnJhbWUgcG9pbnRlciBpbiBsZWFmIGZ1bmN0aW9ucyIKI34gbXNnc3RyICLL9sO8pM602L/0pMekz6XVpeyhvKXgpd2lpKXzpb+k8r7KzqykuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBzdGFjayBwcm9iaW5nIgojfiBtc2dzdHIgIqW5pb+lw6Wvw7W696Tyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJFbWl0IEludGVsIHN5bnRheCBhc3NlbWJsZXIgb3Bjb2RlcyIKI34gbXNnc3RyICJJbnRlbCClt6Xzpb+lw6WvpbmkzqWipbul86XWpenMv87hpPLFx6StvdCkuSIKCiN+IG1zZ2lkICJBbGlnbiBkZXN0aW5hdGlvbiBvZiB0aGUgc3RyaW5nIG9wZXJhdGlvbnMiCiN+IG1zZ3N0ciAiyri7+s7zweC67qTOvfG5/qTfwOik8qWipemlpKXzpeGl86XIpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgYWxpZ24gZGVzdGluYXRpb24gb2YgdGhlIHN0cmluZyBvcGVyYXRpb25zIgojfiBtc2dzdHIgIsq4u/rO88Hguu6kzr3xuf6k38DopPKloqXppaSl86XhpfOlyKS3pMqkpCIKCiN+IG1zZ2lkICJJbmxpbmUgYWxsIGtub3duIHN0cmluZyBvcGVyYXRpb25zIgojfiBtc2dzdHIgIrT7w86kzsG0pMakzsq4u/rO88Hguu6k8iBpbmxpbmUgpMukuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBpbmxpbmUgYWxsIGtub3duIHN0cmluZyBvcGVyYXRpb25zIgojfiBtc2dzdHIgIrT7w86kzsG0pMakzsq4u/rO88Hguu6k8iBpbmxpbmUgpMukt6TKpKQiCgojfiBtc2dpZCAiVXNlIHB1c2ggaW5zdHJ1Y3Rpb25zIHRvIHNhdmUgb3V0Z29pbmcgYXJndW1lbnRzIgojfiBtc2dzdHIgIr3Qzs+kuaTrsPq/9KTypbuhvKXWpLmk66S/pOEgcHVzaCDMv87hpPK7yKSmIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgcHVzaCBpbnN0cnVjdGlvbnMgdG8gc2F2ZSBvdXRnb2luZyBhcmd1bWVudHMiCiN+IG1zZ3N0ciAivdDOz6S5pOuw+r/0pPKlu6G8pdakuaTrpL+k4aTLpM8gcHVzaCDMv87hpPK7yKTvpMqkpCIKCiN+IG1zZ2lkICJzaXplb2YobG9uZyBkb3VibGUpIGlzIDE2LiIKI34gbXNnc3RyICJzaXplb2YobG9uZyBkb3VibGUpIKTPIDE2IKTIpLmk66GjIgoKI34gbXNnaWQgInNpemVvZihsb25nIGRvdWJsZSkgaXMgMTIuIgojfiBtc2dzdHIgInNpemVvZihsb25nIGRvdWJsZSkgpM8gMTIgpMikuaTroaMiCgojfiBtc2dpZCAiU2NoZWR1bGUgY29kZSBmb3IgZ2l2ZW4gQ1BVIgojfiBtc2dzdHIgIr3qzb+kziBDUFUgzdGkzqWzobylyaTypbmlsaW4peWhvKXrpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBnaXZlbiBDUFUiCiN+IG1zZ3N0ciAiverNv6TOIENQVSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJDb250cm9sIGFsbG9jYXRpb24gb3JkZXIgb2YgaW50ZWdlciByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiwLC/9KXspbiluaW/pM6zzsrdveek8sCpuOakuaTrIgoKI34gbXNnaWQgIk51bWJlciBvZiByZWdpc3RlcnMgdXNlZCB0byBwYXNzIGludGVnZXIgYXJndW1lbnRzIgojfiBtc2dzdHIgIqXspbiluaW/pM6/9KSswLC/9KTysPq/9KTyxc+kuaS/pOGky7vIpO+k7KTrIgoKI34gbXNnaWQgIkxvb3AgY29kZSBhbGlnbmVkIHRvIHRoaXMgcG93ZXIgb2YgMiIKI34gbXNnc3RyICKl66G8pdels6G8pcmk8qSzpM7DzaTOxvO+6KTLpaKl6aWkpfOl4aXzpcikuaTrIgoKI34gbXNnaWQgIkp1bXAgdGFyZ2V0cyBhcmUgYWxpZ25lZCB0byB0aGlzIHBvd2VyIG9mIDIiCiN+IG1zZ3N0ciAipbil46XzpdfA6KTypLOkzsPNpM7G877opMuloqXppaSl86XhpfOlyKS5pOsiCgojfiBtc2dpZCAiRnVuY3Rpb24gc3RhcnRzIGFyZSBhbGlnbmVkIHRvIHRoaXMgcG93ZXIgb2YgMiIKI34gbXNnc3RyICK02L/0pM6zq7vPsMzD1qTypLOkzsPNpM7G877opMuloqXppaSl86XhpfOlyKS5pOsiCgojfiBtc2dpZCAiQXR0ZW1wdCB0byBrZWVwIHN0YWNrIGFsaWduZWQgdG8gdGhpcyBwb3dlciBvZiAyIgojfiBtc2dzdHIgIqTHpK2k66TApLGluaW/pcOlr6TypLOkzsPNpM7G877opMuloqXppaSl86XhpfOlyKS5pOsiCgojfiBtc2dpZCAiQnJhbmNoZXMgYXJlIHRoaXMgZXhwZW5zaXZlICgxLTUsIGFyYml0cmFyeSB1bml0cykiCiN+IG1zZ3N0ciAipdal6aXzpcGkzqWzpbmlyKTyu9i8qKS5pOsgKDEtNSwgx6Sw1aTOuMS/9CkiCgojfiBtc2dpZCAiUHJvZmlsaW5nIHVzZXMgbWNvdW50IgojfiBtc2dzdHIgIqXXpe2l1aWhpaSl66THIG1jb3VudCCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkVtaXQgaGFsZi1QSUMgY29kZSIKI34gbXNnc3RyICLIviBQSUMgpbOhvKXJpPLB973QpLmk6yIKCiN+IG1zZ2lkICJFbWl0IEVMRiBvYmplY3QgY29kZSIKI34gbXNnc3RyICJFTEYgpaql1qW4paelr6XIpbOhvKXJpPLB973QpLmk6yIKCiN+IG1zZ2lkICJFbWl0IFJPU0Ugb2JqZWN0IGNvZGUiCiN+IG1zZ3N0ciAiUk9TRSClqqXWpbilp6Wvpcils6G8pcmk8sH3vdCkuaTrIgoKI34gbXNnaWQgIlN5bWJvbHMgaGF2ZSBhIGxlYWRpbmcgdW5kZXJzY29yZSIKI34gbXNnc3RyICKlt6Xzpdyl66TOxqyky6WipfOlwKG8pbmls6WipPKkxKSxpOsiCgojfiBtc2dpZCAiQWxpZ24gdG8gPndvcmQgYm91bmRhcmllcyIKI34gbXNnc3RyICKl76G8pcm2rbOmpOik6sLnpK2k4aTLpaKl6aWkpfOkuaTrIgoKI34gbXNnaWQgIlVzZSBtY291bnQgZm9yIHByb2ZpbGluZyIKI34gbXNnc3RyICKl16XtpdWloaWkpevN0aTLIG1jb3VudCCk8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBtY291bnRfcHRyIGZvciBwcm9maWxpbmciCiN+IG1zZ3N0ciAipdel7aXVpaGlpKXrpM6kv6ThpMsgbWNvdW50X3B0ciCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIEVMRiBvdXRwdXQiCiN+IG1zZ3N0ciAiRUxGIL3Qzs+k8sC4wK6kuaTrIgoKI34gbXNnaWQgIlVzZSBNaW5ndzMyIGludGVyZmFjZSIKI34gbXNnc3RyICJNaW5ndzMyIKWkpfOlv6G8pdWlp6Wkpbmk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBDeWd3aW4gaW50ZXJmYWNlIgojfiBtc2dzdHIgIkN5Z3dpbiClpKXzpb+hvKXVpaelpKW5pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgYmFyZSBXaW5kb3dzIGludGVyZmFjZSIKI34gbXNnc3RyICLBx6TOIFdpbmRvd3MgpaSl86W/obyl1aWnpaSluaTyu8jN0aS5pOsiCgojfiBtc2dpZCAiYCVzJyBkZWNsYXJlZCBhcyBib3RoIGV4cG9ydGVkIHRvIGFuZCBpbXBvcnRlZCBmcm9tIGEgRExMLiIKI34gbXNnc3RyICJgJXMnIKSsIERMTCCkq6TpIGltcG9ydKGiRExMIKTLIGV4cG9ydCCkzs6+yv2kyKS3pMbA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJFbnZpcm9ubWVudCB2YXJpYWJsZSBESkdQUCBub3QgZGVmaW5lZC4iCiN+IG1zZ3N0ciAitMS2rcrRv/QgREpHUFAgpKzE6rXBpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiRW52aXJvbm1lbnQgdmFyaWFibGUgREpHUFAgcG9pbnRzIHRvIG1pc3NpbmcgZmlsZSAnJXMnLiIKI34gbXNnc3RyICK0xLatytG/9CBESkdQUCCkrKGiuKukxKSrpOmkyqSkpdWloaWkpesgJyVzJyCk8ryopLekxqSkpN6kuaGjIgoKI34gbXNnaWQgIkVudmlyb25tZW50IHZhcmlhYmxlIERKR1BQIHBvaW50cyB0byBjb3JydXB0IGZpbGUgJyVzJy4iCiN+IG1zZ3N0ciAitMS2rcrRv/QgREpHUFAgpKyhorL1pOykv6XVpaGlpKXrICclcycgpPK8qKS3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIHdoaWNoIHVzZXMgdGhlIEZQVSIKI34gbXNnc3RyICLJ4sawvq6/9MXApealy6XDpcik8s34zdGkuaTrpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBnZW5lcmF0ZSBjb2RlIHdoaWNoIHVzZXMgdGhlIEZQVSIKI34gbXNnc3RyICLJ4sawvq6/9MXApealy6XDpcik8s34zdGkuaTrpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgInNvcnJ5LCBub3QgaW1wbGVtZW50ZWQ6ICNwcmFnbWEgYWxpZ24gTkFNRT1TSVpFIgojfiBtc2dzdHIgIrvEx7ChorzCwfWktaTspMakpKTepLuk8zogI3ByYWdtYSBhbGlnbiBOQU1FPVNJWkUiCgojfiBtc2dpZCAibWFsZm9ybWVkICNwcmFnbWEgYWxpZ24gLSBpZ25vcmVkIgojfiBtc2dzdHIgIqSqpKukt6TKICNwcmFnbWEgYWxpZ24gLSDMtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJzb3JyeSwgbm90IGltcGxlbWVudGVkOiAjcHJhZ21hIG5vYWxpZ24gTkFNRSIKI34gbXNnc3RyICK7xMewoaK8wsH1pLWk7KTGpKSk3qS7pPM6ICNwcmFnbWEgbm9hbGlnbiBOQU1FIgoKI34gbXNnaWQgInN0YWNrIGxpbWl0IGV4cHJlc3Npb24gaXMgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICKluaW/pcOlr8CpuMK8sKTyvPWkscnVpLGk3qS7pPMiCgojfiBtc2dpZCAiR2VuZXJhdGUgU0EgY29kZSIKI34gbXNnc3RyICJTQSCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIFNCIGNvZGUiCiN+IG1zZ3N0ciAiU0IgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBLQSBjb2RlIgojfiBtc2dzdHIgIktBIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgS0IgY29kZSIKI34gbXNnc3RyICJLQiCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIEpBIGNvZGUiCiN+IG1zZ3N0ciAiSkEgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBKRCBjb2RlIgojfiBtc2dzdHIgIkpEIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgSkYgY29kZSIKI34gbXNnc3RyICJKRiCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgImdlbmVyYXRlIFJQIGNvZGUiCiN+IG1zZ3N0ciAiUlAgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBNQyBjb2RlIgojfiBtc2dzdHIgIk1DIKWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgQ0EgY29kZSIKI34gbXNnc3RyICJDQSCls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIENGIGNvZGUiCiN+IG1zZ3N0ciAiQ0YgpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJVc2UgYWx0ZXJuYXRlIGxlYWYgZnVuY3Rpb24gZW50cmllcyIKI34gbXNnc3RyICK02L/0ueDM3KTOwuWk76TqpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGFsdGVybmF0ZSBsZWFmIGZ1bmN0aW9uIGVudHJpZXMiCiN+IG1zZ3N0ciAitNi/9LngzNzL9sj4pM7C5aTvpOqkz834zdGkt6TKpKQiCgojfiBtc2dpZCAiUGVyZm9ybSB0YWlsIGNhbGwgb3B0aW1pemF0aW9uIgojfiBtc2dzdHIgIsv2yPi4xqTTvdCkt7rHxayyvaTyudSkpiIKCiN+IG1zZ2lkICJEbyBub3QgcGVyZm9ybSB0YWlsIGNhbGwgb3B0aW1pemF0aW9uIgojfiBtc2dzdHIgIsv2yPi4xqTTvdCkt7rHxayyvaTyudSk76TKpKQiCgojfiBtc2dpZCAiVXNlIGNvbXBsZXggYWRkcmVzc2luZyBtb2RlcyIKI34gbXNnc3RyICLKo7uopMqloqXJpeylt6XzpbCl4qG8pcmk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgY29tcGxleCBhZGRyZXNzaW5nIG1vZGVzIgojfiBtc2dzdHIgIsqju6ikyqWipcml7KW3pfOlsKXiobylyaTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJBbGlnbiBjb2RlIHRvIDggYnl0ZSBib3VuZGFyeSIKI34gbXNnc3RyICKls6G8pcmk8iA4IKXQpaSlyLats6aky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgYWxpZ24gY29kZSB0byA4IGJ5dGUgYm91bmRhcnkiCiN+IG1zZ3N0ciAipbOhvKXJpPIgOCBiaXQgpbOhvKXJpMuloqXppaSl86S3pMqkpCIKCiN+IG1zZ2lkICJFbmFibGUgY29tcGF0aWJpbGl0eSB3aXRoIGlDOTYwIHYyLjAiCiN+IG1zZ3N0ciAiaUM5NjAgdjIuMCCkyKTOuN+0ucCtpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBjb21wYXRpYmlsaXR5IHdpdGggaUM5NjAgdjMuMCIKI34gbXNnc3RyICJpQzk2MCB2My4wIKTIpM6437S5wK2k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIGNvbXBhdGliaWxpdHkgd2l0aCBpYzk2MCBhc3NlbWJsZXIiCiN+IG1zZ3N0ciAiaWM5NjAgpaKlu6Xzpdal6aTIpM6437S5wK2k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRG8gbm90IHBlcm1pdCB1bmFsaWduZWQgYWNjZXNzZXMiCiN+IG1zZ3N0ciAipaKl6aWkpfOktaTspMqkpKWipa+lu6W5pPK19rLEpLekyqSkIgoKI34gbXNnaWQgIlBlcm1pdCB1bmFsaWduZWQgYWNjZXNzZXMiCiN+IG1zZ3N0ciAipaKl6aWkpfOktaTspMqkpKWipa+lu6W5pPK19rLEpLmk6yIKCiN+IG1zZ2lkICJMYXlvdXQgdHlwZXMgbGlrZSBJbnRlbCdzIHYxLjMgZ2NjIgojfiBtc2dzdHIgIkludGVsIKTOIHYxLjMgZ2NjIKTOzc2kyqW/paSl16TLx9vD1qS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGxheW91dCB0eXBlcyBsaWtlIEludGVsJ3MgdjEuMyBnY2MiCiN+IG1zZ3N0ciAiSW50ZWwgdjEuMyBnY2MgpM7NzaTKpb+lpKXXpM7H28PWpPK51KTKpO+kyqSkIgoKI34gbXNnaWQgIlVzZSA2NCBiaXQgbG9uZyBkb3VibGVzIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBsb25nIGRvdWJsZSCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBsaW5rZXIgcmVsYXhhdGlvbiIKI34gbXNnc3RyICKl6qXzpaukzrTLz8Kk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRG8gbm90IGVuYWJsZSBsaW5rZXIgcmVsYXhhdGlvbiIKI34gbXNnc3RyICKl6qXzpaukzrTLz8Kk8s2tuPqky6S3pMqkpCIKCiN+IG1zZ2lkICJjb25mbGljdGluZyBhcmNoaXRlY3R1cmVzIGRlZmluZWQgLSB1c2luZyBDIHNlcmllcyIKI34gbXNnc3RyICK2pbnnpLmk6yBhcmNoaXRlY3R1cmUgpKzE6rXBpLWk7KTepLekvyAtIEMgpbel6qG8pbq7yM3RIgoKI34gbXNnaWQgImNvbmZsaWN0aW5nIGFyY2hpdGVjdHVyZXMgZGVmaW5lZCAtIHVzaW5nIEsgc2VyaWVzIgojfiBtc2dzdHIgIralueekuaTrIGFyY2hpdGVjdHVyZSCkrMTqtcGktaTspN6kt6S/IC0gSyClt6XqobylurvIzdE8IgoKI34gbXNnaWQgImlDMi4wIGFuZCBpQzMuMCBhcmUgaW5jb21wYXRpYmxlIC0gdXNpbmcgaUMzLjAiCiN+IG1zZ3N0ciAiaUMyLjAgpMggaUMzLjAgpMikz7jftLnAraSspKKk6qTepLuk8yAtIGlDMy4wIKTyu8jN0aS3pN6kuSIKCiN+IG1zZ2lkICJUaGUgLW1sb25nLWRvdWJsZS02NCBvcHRpb24gZG9lcyBub3Qgd29yayB5ZXQuIgojfiBtc2dzdHIgIi1tbG9uZy1kb3VibGUtNjQgpaql16W3peel86TPpN6kwMawuu6kt6TepLuk8yIKCiN+IG1zZ2lkICJpYTY0X3ByaW50X29wZXJhbmQ6IHVua25vd24gY29kZSIKI34gbXNnc3RyICJpYTY0X3ByaW50X29wZXJhbmQ6IMnUzMCkyqWzobylyaTHpLkiCgojfiBtc2dpZCAidmFsdWUgb2YgLW1maXhlZC1yYW5nZSBtdXN0IGhhdmUgZm9ybSBSRUcxLVJFRzIiCiN+IG1zZ3N0ciAiLW1maXhlZC1yYW5nZSCkzsPNpM8gUkVHMS1SRUcyILfBvLCk8rv9pL+kzaTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJ1bmtub3duIHJlZ2lzdGVyIG5hbWU6ICVzIgojfiBtc2dzdHIgIsnUzMCkyqXspbiluaW/zL6kx6S5OiAlcyIKCiN+IG1zZ2lkICIlcy0lcyBpcyBhbiBlbXB0eSByYW5nZSIKI34gbXNnc3RyICIlcy0lcyCkrLb1pM7Iz7DPpMekuSIKCiN+IG1zZ2lkICJjYW5ub3Qgb3B0aW1pemUgZGl2aXNpb24gZm9yIGJvdGggbGF0ZW5jeSBhbmQgdGhyb3VnaHB1dCIKI34gbXNnc3RyICKl7KWkpcal86W3pMiluaXrobyl16XDpcjOvsr9pM7KrLPkusfFrLK9pM+51KTKpKik3qS7pPMiCgojfiBtc2dpZCAiR2VuZXJhdGUgYmlnIGVuZGlhbiBjb2RlIgojfiBtc2dzdHIgIqXTpcOlsKWopfOlx6WjpaKl86TOpbOhvKXJpPLAuMCuIgoKI34gbXNnaWQgIkdlbmVyYXRlIGxpdHRsZSBlbmRpYW4gY29kZSIKI34gbXNnc3RyICKl6qXIpeulqKXzpcelo6WipfOkzqWzobylyaTywLjAriIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBHTlUgYXMiCiN+IG1zZ3N0ciAiR05VIGFzIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEludGVsIGFzIgojfiBtc2dzdHIgIkludGVsIGFzIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEdOVSBsZCIKI34gbXNnc3RyICJHTlUgbGQgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgSW50ZWwgbGQiCiN+IG1zZ3N0ciAiSW50ZWwgbGQgzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSB3aXRob3V0IEdQIHJlZyIKI34gbXNnc3RyICJHUCCl7KW4pbmlv8nUu8jN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbWl0IHN0b3AgYml0cyBiZWZvcmUgYW5kIGFmdGVyIHZvbGF0aWxlIGV4dGVuZGVkIGFzbXMiCiN+IG1zZ3N0ciAis8jEpaWipbul86XWpeogdm9sYXRpbGUgpM7BsLjlpMsgc3RvcCCl06XDpcik8sH3vdCkuaTrIgoKI34gbXNnaWQgIkRvbid0IGVtaXQgc3RvcCBiaXRzIGJlZm9yZSBhbmQgYWZ0ZXIgdm9sYXRpbGUgZXh0ZW5kZWQgYXNtcyIKI34gbXNnc3RyICKzyMSlpaKlu6Xzpdal6iB2b2xhdGlsZSCkzsGwuOWkyyBzdG9wIKXTpcOlyKTywfe90KS5pOsiCgojfiBtc2dpZCAiRW1pdCBjb2RlIGZvciBJdGFuaXVtIChUTSkgcHJvY2Vzc29yIEIgc3RlcCIKI34gbXNnc3RyICJJdGFuaXVtIChUTSkgpdel7aW7pcOltSBCIHN0ZXAgzdGls6G8pcmk8sH3vdCkuaTrIgoKI34gbXNnaWQgIlVzZSBpbi9sb2Mvb3V0IHJlZ2lzdGVyIG5hbWVzIgojfiBtc2dzdHIgImluL2xvYy9vdXQgpeyluKW5pb/MvqTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSB1c2Ugb2Ygc2RhdGEvc2NvbW1vbi9zYnNzIgojfiBtc2dzdHIgInNkYXRhL3Njb21tb24vc2JzcyCkzrvIzdGk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIHVzZSBvZiBzZGF0YS9zY29tbW9uL3Nic3MiCiN+IG1zZ3N0ciAic2RhdGEvc2NvbW1vbi9zYnNzIKTOu8jN0aTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJncCBpcyBjb25zdGFudCAoYnV0IHNhdmUvcmVzdG9yZSBncCBvbiBpbmRpcmVjdCBjYWxscykiCiN+IG1zZ3N0ciAiZ3AgpPLE6r/0pMikuaTrocrDoqGitNbA3LjGpNO90KS3pMekzyBncCCk8iBzYXZlL3Jlc3RvcmUgpLmk66HLIgoKI34gbXNnaWQgIkdlbmVyYXRlIHNlbGYtcmVsb2NhdGFibGUgY29kZSIKI34gbXNnc3RyICK8q7jKusbH28PWssTHvaWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgaW5saW5lIGRpdmlzaW9uLCBvcHRpbWl6ZSBmb3IgbGF0ZW5jeSIKI34gbXNnc3RyICKl7KWkpcal86W3pPK6x8Wssr2kuaTrpaSl86XppaSl87boyqyk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGlubGluZSBkaXZpc2lvbiwgb3B0aW1pemUgZm9yIHRocm91Z2hwdXQiCiN+IG1zZ3N0ciAipbml66G8pdelw6XIpPK6x8Wssr2kuaTrpaSl86XppaSl87boyqyk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBEd2FyZiAyIGxpbmUgZGVidWcgaW5mbyB2aWEgR05VIGFzIgojfiBtc2dzdHIgIkdOVSBhcyCk8sTMpLikvyBEd2FyZjIgpM651KXHpdClw6WwpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgRHdhcmYgMiBsaW5lIGRlYnVnIGluZm8gdmlhIEdOVSBhcyIKI34gbXNnc3RyICJHTlUgYXMgpPLEzKS4pL8gRHdhcmYyIKTOudSlx6XQpcOlsKTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHJhbmdlIG9mIHJlZ2lzdGVycyB0byBtYWtlIGZpeGVkLiIKI34gbXNnc3RyICK4x8TqpLmk66S/pOGkzqXspbiluaW/pM7Iz7DPpPK72MTqpLmk6yIKCiN+IG1zZ2lkICItbXN5c3RlbS12IGFuZCAtcCBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1tc3lzdGVtLXYgpMggLXAgpM+437S5wK2krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1zeXN0ZW0tdiBhbmQgLW10aHJlYWRzIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW1zeXN0ZW0tdiCkyCAtbXRocmVhZHMgpM+437S5wK2krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tbW9kZWwgc3dpdGNoIgojfiBtc2dzdHIgIi1tbW9kZWwgpbmlpKXDpcGky8LQpLmk68nUwLWkysPNICglcykiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tc2RhdGEgc3dpdGNoIgojfiBtc2dzdHIgIi1tc2RhdGEgpbmlpKXDpcGky8LQpLmk68nUwLWkysPNICglcykiCgojfiBtc2dpZCAiY29uc3Qgb2JqZWN0cyBjYW5ub3QgZ28gaW4gLnNkYXRhLy5zYnNzIgojfiBtc2dzdHIgImNvbnN0IKWqpdaluKWnpa+lyKTPIC5zZGF0YS8uc2JzcyCky8PWpLGk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVzIGNvZGUiCiN+IG1zZ3N0ciAiJXMgpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmFuZCB0byAlcCBjb2RlIgojfiBtc2dzdHIgIiVwIKWzobylyaTLwtCkuaTrzLW4+qTKpaql2qXppfOlySIKCiN+IG1zZ2lkICJpbnZhbGlkIG9wZXJhbmQgdG8gJVQvJUIgY29kZSIKI34gbXNnc3RyICIlVC8lQiCls6G8pcmky8LQpLmk68y1uPqkyqWqpdql6aXzpckiCgojfiBtc2dpZCAiaW52YWxpZCBvcGVyYW5kIHRvICVOIGNvZGUiCiN+IG1zZ3N0ciAiJU4gpbOhvKXJpMvC0KS5pOvMtbj6pMqlqqXapeml86XJIgoKI34gbXNnaWQgIkRpc3BsYXkgY29tcGlsZSB0aW1lIHN0YXRpc3RpY3MiCiN+IG1zZ3N0ciAipbOl86XRpaSl67v+tNbF/bfXw82k8sm9vKikuaTrIgoKI34gbXNnaWQgIkFsaWduIGFsbCBsb29wcyB0byAzMiBieXRlIGJvdW5kYXJ5IgojfiBtc2dzdHIgIsG0pMakzqXrobyl16TyIDMyIKXQpaSlyLats6aky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJPbmx5IGlzc3VlIG9uZSBpbnN0cnVjdGlvbiBwZXIgY3ljbGUiCiN+IG1zZ3N0ciAipbWlpKWvpevL6KTLsOykxKTOzL/O4aTApLGk8sivudSkuaTrIgoKI34gbXNnaWQgIlByZWZlciBicmFuY2hlcyBvdmVyIGNvbmRpdGlvbmFsIGV4ZWN1dGlvbiIKI34gbXNnc3RyICK+8rfvpM68wrnUpOik6qTPyqy09KTOwLjArqTyzaXA6KS5pOsiCgojfiBtc2dpZCAiQ29kZSBzaXplOiBzbWFsbCwgbWVkaXVtIG9yIGxhcmdlIgojfiBtc2dzdHIgIqWzobylyaW1paSlujogc21hbGwsIG1lZGl1bSDL9KTPIGxhcmdlIgoKI34gbXNnaWQgIlNtYWxsIGRhdGEgYXJlYTogbm9uZSwgc2RhdGEsIHVzZSIKI34gbXNnc3RyICKluaXiobyl66XHobylv87OsOg6IG5vbmUsIHNkYXRhLCB1c2UiCgojfiBtc2dpZCAiLWYlcyBpZ25vcmVkIGZvciA2OEhDMTEvNjhIQzEyIChub3Qgc3VwcG9ydGVkKSIKI34gbXNnc3RyICItZiVzIKTPIDY4SEMxMS82OEhDMTIgzdGkyKS3pMakz8y1u+uktaTspN6kt6S/ICiltaXdobylyKS1pOyk3qS7pPMpIgoKI34gbXNnaWQgIkNvbXBpbGUgd2l0aCAxNi1iaXQgaW50ZWdlciBtb2RlIgojfiBtc2dzdHIgIjE2IKXTpcOlyMCwv/Sl4qG8pcmkx6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIkNvbXBpbGUgd2l0aCAzMi1iaXQgaW50ZWdlciBtb2RlIgojfiBtc2dzdHIgIjMyIKXTpcOlyMCwv/Sl4qG8pcmkx6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIkF1dG8gcHJlL3Bvc3QgZGVjcmVtZW50IGluY3JlbWVudCBhbGxvd2VkIgojfiBtc2dzdHIgIryrxrAgcHJlL3Bvc3Qgpcelr6XqpeGl86XIIKWkpfOlr6XqpeGl86XIpPK19s3GpLmk6yIKCiN+IG1zZ2lkICJBdXRvIHByZS9wb3N0IGRlY3JlbWVudCBpbmNyZW1lbnQgbm90IGFsbG93ZWQiCiN+IG1zZ3N0ciAivKvGsCBwcmUvcG9zdCClx6Wvpeql4aXzpcggpaSl86Wvpeql4aXzpcik8rX2zcakt6TKpKQiCgojfiBtc2dpZCAiQ29tcGlsZSBmb3IgYSA2OEhDMTEiCiN+IG1zZ3N0ciAiNjhIQzExIM3RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIGZvciBhIDY4SEMxMiIKI34gbXNnc3RyICI2OEhDMTIgzdGky6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gb3JkZXIiCiN+IG1zZ3N0ciAipeyluKW5pb+zzsrdveek8rvYxOqkuaTrIgoKI34gbXNnaWQgIkluZGljYXRlIHRoZSBudW1iZXIgb2Ygc29mdCByZWdpc3RlcnMgYXZhaWxhYmxlIgojfiBtc2dzdHIgIs34zdGyxMe9pb2l1aXIpeyluKW5pb+kzr/0pPK8qKS5IgoKI34gbXNnaWQgIi1tYWxpZ24tbG9vcHM9JWQgaXMgbm90IGJldHdlZW4gMSBhbmQgJWQiCiN+IG1zZ3N0ciAiLW1hbGlnbi1sb29wcz0lZCCkrCAxIKSrpOkgJWQgpM601qTLpMqkw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiLW1hbGlnbi1qdW1wcz0lZCBpcyBub3QgYmV0d2VlbiAxIGFuZCAlZCIKI34gbXNnc3RyICItbWFsaWduLWp1bXBzPSVkIKSsIDEgpKuk6SAlZCCkzrTWpMukyqTDpMakpKTepLuk8yIKCiN+IG1zZ2lkICItbWFsaWduLWZ1bmN0aW9ucz0lZCBpcyBub3QgYmV0d2VlbiAxIGFuZCAlZCIKI34gbXNnc3RyICItbWFsaWduLWZ1bmN0aW9ucz0lZCCkrCAxIKSrpOkgJWQgpM601qTLpMqkw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiLWZQSUMgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gdGhlIDY4MDAwIG9yIDY4MDEwXG4iCiN+IG1zZ3N0ciAiuqOkzqTIpLOk7SA2ODAwMCCk5CA2ODAxMCCkx6TPIC1mUElDIKSspbWl3aG8pciktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgIkludGVybmFsIGdjYyBtb25pdG9yOiBzaG9ydC1icmFuY2goJXgpIgojfiBtc2dzdHIgIsbiyfQgZ2NjIKXipculvzogpbel56G8pcil1qXppfOlwSgleCkiCgojfiBtc2dpZCAiSW50ZXJuYWwgZ2NjIGVycm9yOiBDYW4ndCBleHByZXNzIHN5bWJvbGljIGxvY2F0aW9uIgojfiBtc2dzdHIgIsbiyfQgZ2NjIKWopemhvDogsMzD1qTypbel86XcpevJvbi9pMekraTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCAjJWQgaXMgYSBzdHJ1Y3R1cmUiCiN+IG1zZ3N0ciAisPq/9CAjJWQgpM+5vcKkws6kx6S5IgoKI34gbXNnaWQgIiVSIG5vdCBmb2xsb3dlZCBieSAlQi9DL0QvRSIKI34gbXNnc3RyICIlUiCkzrjlpMsgJUIvQy9EL0UgpM/D1qSxpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgJXgvWCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJXgvWCDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlSCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJUggw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJWggdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVoIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVRIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlUSDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlcSB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJXEgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJW8gdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVvIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVwIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlcCDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlcy9TIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlcy9TIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVQIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICVQIKWqpdql6aXzpcmkx6S5IgoKI34gbXNnaWQgImludmFsaWQgJUIgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVCIMPNpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICVDIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlQyDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlRCB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJUQgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJUUgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICVFIMPNpMekuSIKCiN+IG1zZ2lkICJgJWQnIG9wZXJhbmQgaXNuJ3QgYSByZWdpc3RlciIKI34gbXNnc3RyICJgJWQnIKWqpdql6aXzpcmkrKXspbiluaW/pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCAlciB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJXIgw82kx6S5IgoKI34gbXNnaWQgIm9wZXJhbmQgaXMgcjAiCiN+IG1zZ3N0ciAipaql2qXppfOlyaTPIHIwIKTHpLkiCgojfiBtc2dpZCAib3BlcmFuZCBpcyBjb25zdF9kb3VibGUiCiN+IG1zZ3N0ciAipaql2qXppfOlyaTPIGNvbnN0X2RvdWJsZSCkx6S5IgoKI34gbXNnaWQgImludmFsaWQgY29kZSIKI34gbXNnc3RyICLMtbj6pMqls6G8pcmkx6S5IgoKI34gbXNnaWQgIi1tdHJhcC1sYXJnZS1zaGlmdCBhbmQgLW1oYW5kbGUtbGFyZ2Utc2hpZnQgYXJlIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbXRyYXAtbGFyZ2Utc2hpZnQgpMggLW1oYW5kbGUtbGFyZ2Utc2hpZnQgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkIG9wdGlvbiBgLW1zaG9ydC1kYXRhLSVzJyIKI34gbXNnc3RyICLMtbj6pMqlqqXXpbel56XzIGAtbXNob3J0LWRhdGEtJXMnIgoKI34gbXNnaWQgIi1tc2hvcnQtZGF0YS0lcyBpcyB0b28gbGFyZ2UgIgojfiBtc2dzdHIgIi1tc2hvcnQtZGF0YS0lcyCkrMLnpK2kuaSupN6kuaGjIgoKI34gbXNnaWQgIi1tc2hvcnQtZGF0YS0lcyBhbmQgUElDIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW1zaG9ydC1kYXRhLSVzIKTIIFBJQyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgb3B0aW9uIGAtbXN0YWNrLWluY3JlbWVudD0lcyciCiN+IG1zZ3N0ciAiYC1tc3RhY2staW5jcmVtZW50PSVzJyCkz8y1uPqkyqWqpdelt6XnpfOkx6S5IgoKI34gbXNnaWQgIklubGluZSBjb25zdGFudHMgaWYgaXQgY2FuIGJlIGRvbmUgaW4gMiBpbnNucyBvciBsZXNzIgojfiBtc2dzdHIgIjIgzL/O4bDKsrykx7nUpMqkqKTrydTK0b3ozf2k8qWkpfOl6aWkpfOky6S5pOsiCgojfiBtc2dpZCAiaW5saW5lIGNvbnN0YW50cyBpZiBpdCBvbmx5IHRha2VzIDEgaW5zdHJ1Y3Rpb24iCiN+IG1zZ3N0ciAiMSDMv87hpMCksaTypMik68nUytG96M39pPKlpKXzpemlpKXzpMukuaTrIgoKI34gbXNnaWQgIlNldCBtYXhpbXVtIGFsaWdubWVudCB0byA0IgojfiBtc2dzdHIgIrrHwueloqXppaSl86XhpfOlyKTyIDQgpMvA38TqpLmk6yIKCiN+IG1zZ2lkICJTZXQgbWF4aW11bSBhbGlnbm1lbnQgdG8gOCIKI34gbXNnc3RyICK6x8LnpaKl6aWkpfOl4aXzpcik8iA4IKTLwN/E6qS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSB0aGUgZGl2aWRlIGluc3RydWN0aW9uIgojfiBtc2dzdHIgIsqss+TMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCBhcmJpdGFyeSBzaXplZCBpbW1lZGlhdGVzIGluIGJpdCBvcGVyYXRpb25zIgojfiBtc2dzdHIgIqXTpcOlyLHpu7ukx6TOwqjDzaW1paSluqTyxLTE5KS3pMqkpCIKCiN+IG1zZ2lkICJBbHdheXMgdHJlYXQgYml0ZmllbGQgYXMgaW50LXNpemVkIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmk8r7vpMsgaW50IKTOpbWlpKW6pMikt6TGsLekpiIKCiN+IG1zZ2lkICJGb3JjZSBmdW5jdGlvbnMgdG8gYmUgYWxpZ25lZCB0byBhIDQgYnl0ZSBib3VuZGFyeSIKI34gbXNnc3RyICK02L/0pPK2r8CpxaqkyyA0IKXQpaSlyLats6aky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJGb3JjZSBmdW5jdGlvbnMgdG8gYmUgYWxpZ25lZCB0byBhIDIgYnl0ZSBib3VuZGFyeSIKI34gbXNnc3RyICK02L/0pPK2r8CpxaqkyyAyIKXQpaSlyLats6aky6WipemlpKXzpLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNhbGwgZ3JhcGggaW5mb3JtYXRpb24iCiN+IG1zZ3N0ciAiuMak073QpLelsKXppdW+8MrzpPLB973QpLmk6yIKCiN+IG1zZ2lkICJQcmVmZXIgd29yZCBhY2Nlc3NlcyBvdmVyIGJ5dGUgYWNjZXNzZXMiCiN+IG1zZ3N0ciAipdClpKXIpaKlr6W7pbmk6KTqpe+hvKXJpaKlr6W7pbmk8sGqpNYiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgdGhlIE0qQ29yZSBNMzQwIgojfiBtc2dzdHIgIk0qQ29yZSBNMzQwIM3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIk1heGltdW0gYW1vdW50IGZvciBhIHNpbmdsZSBzdGFjayBpbmNyZW1lbnQgb3BlcmF0aW9uIgojfiBtc2dzdHIgIsOxsOyluaW/pcOlr6WkpfOlr6XqpeGl86XIweC67qTOusfC58PNIgoKI34gbXNnaWQgIi1taXBzJWQgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICItbWlwcyVkIKTPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgImJhZCB2YWx1ZSAoJXMpIGZvciAtbWlwcyBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1pcHMgpbmlpKXDpcGky8LQpLmk68nUwLWkysPNICglcykiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tYWJpPSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1hYmk9IKW5paSlw6XBpMvC0KS5pOvJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgIi1tYWJpPSVzIGRvZXMgbm90IHN1cHBvcnQgLW1pcHMlZCIKI34gbXNnc3RyICItbWFiaT0lcyCkzyAtbWlwcyVkIKTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICJUaGUgLW1hYmk9MzIgc3VwcG9ydCBkb2VzIG5vdCB3b3JrIHlldC4iCiN+IG1zZ3N0ciAiLW1hYmk9MzIgpbWl3aG8pcikz6TepMDGsLrupLek3qS7pPMiCgojfiBtc2dpZCAiVGhpcyB0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgLW1hYmkgc3dpdGNoLiIKI34gbXNnc3RyICKks6TOpb+hvKWypcOlyKTPIC1tYWJpIKW5paSlw6XBpPKltaXdobylyKS3pN6ku6TzIgoKI34gbXNnaWQgIi1tY3B1PSVzIGRvZXMgbm90IHN1cHBvcnQgLW1pcHMlZCIKI34gbXNnc3RyICItbWNwdT0lcyCkzyAtbWlwcyVkIKTypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICItbWlwcyVkIGRvZXMgbm90IHN1cHBvcnQgNjQgYml0IGZwIHJlZ2lzdGVycyIKI34gbXNnc3RyICItbWlwcyVkIKTPIDY0IGJpdCBmcCCl7KW4pbmlv6TypbWl3aG8pcikt6TepLuk8yIKCiN+IG1zZ2lkICItbWlwcyVkIGRvZXMgbm90IHN1cHBvcnQgNjQgYml0IGdwIHJlZ2lzdGVycyIKI34gbXNnc3RyICItbWlwcyVkIKTPIDY0IGJpdCBncCCl7KW4pbmlv6TypbWl3aG8pcikt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiLUcgaXMgaW5jb21wYXRpYmxlIHdpdGggUElDIGNvZGUgd2hpY2ggaXMgdGhlIGRlZmF1bHQiCiN+IG1zZ3N0ciAiLUcgpM+lx6XVpaml66XIpM4gUElDIKWzobylyaTItqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1lbWJlZGRlZC1waWMgYW5kIC1tYWJpY2FsbHMgYXJlIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbWVtYmVkZGVkLXBpYyCkyCAtbWFiaWNhbGxzIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLUcgYW5kIC1tZW1iZWRkZWQtcGljIGFyZSBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLUcgpMggLW1lbWJlZGRlZC1waWMgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkIG9wdGlvbiBgZW50cnklcyciCiN+IG1zZ3N0ciAizLW4+qTKpaql16W3peel8yBgZW50cnklcyciCgojfiBtc2dpZCAiLW1lbnRyeSBpcyBvbmx5IG1lYW5pbmdmdWwgd2l0aCAtbWlwcy0xNiIKI34gbXNnc3RyICItbWVudHJ5IKTPIC1taXBzLTE2IKTyu9jE6qS3pL+kyKStpMCksbDVzKOk8rv9pMGk3qS5IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yOiAlJSkgZm91bmQgd2l0aG91dCBhICUlKCBpbiBhc3NlbWJsZXIgcGF0dGVybiIKI34gbXNnc3RyICLG4sn0pail6aG8OiCloqW7pfOl1qXppdGlv6G8pfOkxyAlJSggpMqkt6TOICUlKSCkrLirpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yOiAlJV0gZm91bmQgd2l0aG91dCBhICUlWyBpbiBhc3NlbWJsZXIgcGF0dGVybiIKI34gbXNnc3RyICLG4sn0pail6aG8OiCloqW7pfOl1qXppdGlv6G8pfOkxyAlJVsgpMqkt6TOICUlXSCkrLirpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yOiAlJT4gZm91bmQgd2l0aG91dCBhICUlPCBpbiBhc3NlbWJsZXIgcGF0dGVybiIKI34gbXNnc3RyICLG4sn0pail6aG8OiCloqW7pfOl1qXppdGlv6G8pfOkxyAlJTwgpMqkt6TOICUlPiCkrLirpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgImludGVybmFsIGVycm9yOiAlJX0gZm91bmQgd2l0aG91dCBhICUleyBpbiBhc3NlbWJsZXIgcGF0dGVybiIKI34gbXNnc3RyICLG4sn0pail6aG8OiCloqW7pfOl1qXppdGlv6G8pfOkxyAlJXsgpMqkt6TOICUlfSCkrLirpMSkq6TqpN6kt6S/IgoKI34gbXNnaWQgIlBSSU5UX09QRVJBTkQ6IFVua25vd24gcHVuY3R1YXRpb24gJyVjJyIKI34gbXNnc3RyICJQUklOVF9PUEVSQU5EOiDJ1MzApMq258bJxcAgJyVjJyIKCiN+IG1zZ2lkICJQUklOVF9PUEVSQU5EIG51bGwgcG9pbnRlciIKI34gbXNnc3RyICJQUklOVF9PUEVSQU5EIE5VTEwgpd2lpKXzpb8iCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgJSVkLCAlJXgsIG9yICUlWCIKI34gbXNnc3RyICLMtbj6pMrN0cuhpM4gb2YgJSVkLCAlJXgsIMv0pM8gJSVYIgoKI34gbXNnaWQgIlBSSU5UX09QRVJBTkRfQUREUkVTUywgbnVsbCBwb2ludGVyIgojfiBtc2dzdHIgIlBSSU5UX09QRVJBTkRfQUREUkVTUywgbnVsbCCl3aWkpfOlvyIKCiN+IG1zZ2lkICJjYW4ndCBvcGVuICVzIgojfiBtc2dzdHIgIiVzIKTys6uksaTepLuk8yIKCiN+IG1zZ2lkICJNSVBTIEVDT0ZGIGZvcm1hdCBkb2VzIG5vdCBhbGxvdyBjaGFuZ2luZyBmaWxlbmFtZXMgd2l0aGluIGZ1bmN0aW9ucyB3aXRoICNsaW5lIgojfiBtc2dzdHIgIk1JUFMgRUNPRkYgt8G8sKTHpM8gI2xpbmUgpPK7/aTEtNi/9KTHpM6l1aWhpaSl68y+ytG5uaTPtfayxKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgcmV3aW5kICVzIgojfiBtc2dzdHIgIiVzIKTyIHJld2luZCCkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IHdyaXRlIHRvICVzIgojfiBtc2dzdHIgIiVzIKTYvfGkrbn+pOGk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgcmVhZCBmcm9tICVzIgojfiBtc2dzdHIgIiVzIKSrpOnGybn+pOGk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgY2xvc2UgJXMiCiN+IG1zZ3N0ciAiJXMgpPIgY2xvc2UgpMekraTepLuk8yIKCiN+IG1zZ2lkICJncF9vZmZzZXQgKCVsZCkgb3IgZW5kX29mZnNldCAoJWxkKSBpcyBsZXNzIHRoYW4gemVyby4iCiN+IG1zZ3N0ciAiZ3Bfb2Zmc2V0ICglbGQpIMv0pM8gZW5kX29mZnNldCAoJWxkKSCkrKW8pe2k6KTqpOK+rqS1pK+kyqTDpMakpKTepLkiCgojfiBtc2dpZCAiZnBfb2Zmc2V0ICglbGQpIG9yIGVuZF9vZmZzZXQgKCVsZCkgaXMgbGVzcyB0aGFuIHplcm8uIgojfiBtc2dzdHIgImZwX29mZnNldCAoJWxkKSDL9KTPIGVuZF9vZmZzZXQgKCVsZCkgpKylvKXtpOik6qTivq6ktaSvpMqkw6TGpKSk3qS5oaMiCgojfiBtc2dpZCAiY2FuIG5vdCBoYW5kbGUgaW5jb25zaXN0ZW50IGNhbGxzIHRvIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOzLe94qS3pL+4xqTTvdCkt6TyyuHCqqTHpK2k3qS7pPMiCgojfiBtc2dpZCAiTm8gZGVmYXVsdCBjcnQwLm8iCiN+IG1zZ3N0ciAiY3J0MC5vIKTypcel1aWppeulyKTIpLekyqSkIgoKI34gbXNnaWQgIlVzZSA2NC1iaXQgaW50IHR5cGUiCiN+IG1zZ3N0ciAiNjQgpdOlw6XIIGludCC3v6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDY0LWJpdCBsb25nIHR5cGUiCiN+IG1zZ3N0ciAiNjQgpdOlw6XIIGxvbmcgt7+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSAzMi1iaXQgbG9uZyB0eXBlIgojfiBtc2dzdHIgIjMyIKXTpcOlyCBsb25nILe/pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBsdWkvYWRkaXUgYWRkcmVzcyBsb2FkcyIKI34gbXNnc3RyICJsdWkvYWRkaXUgpaKlyaXspbml7aG8pcmk8rrHxayyvaS5pOsiCgojfiBtc2dpZCAiRG9uJ3Qgb3B0aW1pemUgbHVpL2FkZGl1IGFkZHJlc3MgbG9hZHMiCiN+IG1zZ3N0ciAibHVpL2FkZGl1IKWipcml7KW5pe2hvKXJpPK6x8Wssr2kt6TKpKQiCgojfiBtc2dpZCAiVXNlIE1JUFMgYXMiCiN+IG1zZ3N0ciAiTUlQUyBhcyCk8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSBHTlUgYXMiCiN+IG1zZ3N0ciAiR05VIGFzIKTyzfjN0aS5pOsiCgojfiBtc2dpZCAiVXNlIHN5bWJvbGljIHJlZ2lzdGVyIG5hbWVzIgojfiBtc2dzdHIgIqW3pfOl3KXqpcOlr6XspbiluaW/zL6k8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBzeW1ib2xpYyByZWdpc3RlciBuYW1lcyIKI34gbXNnc3RyICKlt6Xzpdyl6qXDpa+l7KW4pbmlv8y+pPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBHUCByZWxhdGl2ZSBzZGF0YS9zYnNzIHNlY3Rpb25zIgojfiBtc2dzdHIgIkdQILTYz6Igc2RhdGEvc2JzcyClu6Wvpbel56XzpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgR1AgcmVsYXRpdmUgc2RhdGEvc2JzcyBzZWN0aW9ucyIKI34gbXNnc3RyICJHUCC02M+iIHNkYXRhL3Nic3Mgpbulr6W3peel86Tyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJPdXRwdXQgY29tcGlsZXIgc3RhdGlzdGljcyIKI34gbXNnc3RyICKls6XzpdGlpKXpxf2316TyvdDOz6S5pOsiCgojfiBtc2dpZCAiRG9uJ3Qgb3V0cHV0IGNvbXBpbGVyIHN0YXRpc3RpY3MiCiN+IG1zZ3N0ciAipbOl86XRpaSl6cX9t9ek8r3Qzs+kt6TKpKQiCgojfiBtc2dpZCAiRG9uJ3Qgb3B0aW1pemUgYmxvY2sgbW92ZXMiCiN+IG1zZ3N0ciAipdal7aXDpa+w3MawpPK6x8Wssr2kt6TKpKQiCgojfiBtc2dpZCAiT3B0aW1pemUgYmxvY2sgbW92ZXMiCiN+IG1zZ3N0ciAipdal7aXDpa+w3MawpPK6x8Wssr2kuaTrIgoKI34gbXNnaWQgIlVzZSBtaXBzLXRmaWxlIGFzbSBwb3N0cGFzcyIKI34gbXNnc3RyICJhc20guOWy4cT4pMcgbWlwcy10ZmlsZSCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBtaXBzLXRmaWxlIGFzbSBwb3N0cGFzcyIKI34gbXNnc3RyICJhc20guOWy4cT4pMcgbWlwcy10ZmlsZSCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIGhhcmR3YXJlIGZsb2F0aW5nIHBvaW50IgojfiBtc2dzdHIgIqXPobylyaWmpaelosnixrC+rr/0xcCk8s34zdGkuaTrIgoKI34gbXNnaWQgIlVzZSA2NC1iaXQgRlAgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBGUCCl7KW4pbmlv6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDMyLWJpdCBGUCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiMzIgpdOlw6XIIEZQIKXspbiluaW/pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgNjQtYml0IGdlbmVyYWwgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIjY0IKXTpcOlyLDsyMyl7KW4pbmlv6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIDMyLWJpdCBnZW5lcmFsIHJlZ2lzdGVycyIKI34gbXNnc3RyICIzMiCl06XDpciw7MjMpeyluKW5pb+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBJcml4IFBJQyIKI34gbXNnc3RyICJJcml4IFBJQyCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBJcml4IFBJQyIKI34gbXNnc3RyICJJcml4IFBJQyCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIE9TRiBQSUMiCiN+IG1zZ3N0ciAiT1NGIFBJQyCk8s34zdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBPU0YgUElDIgojfiBtc2dzdHIgIk9TRiBQSUMgpPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIlVzZSBpbmRpcmVjdCBjYWxscyIKI34gbXNnc3RyICK01sDcuMak073QpLek8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBpbmRpcmVjdCBjYWxscyIKI34gbXNnc3RyICK01sDcuMak073QpLek8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIGVtYmVkZGVkIFBJQyIKI34gbXNnc3RyICLL5KThuf6k3yBQSUMgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgZW1iZWRkZWQgUElDIgojfiBtc2dzdHIgIsvkpOG5/qTfIFBJQyCk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIFJPTSBpbnN0ZWFkIG9mIFJBTSIKI34gbXNnc3RyICJSQU0gpM7C5aTvpOqkyyBST00gpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB1c2UgUk9NIGluc3RlYWQgb2YgUkFNIgojfiBtc2dzdHIgIlJBTSCkzsLlpO+k6qTLIFJPTSCk8s34zdGkt6TKpKQiCgojfiBtc2dpZCAiUHV0IHVuaW5pdGlhbGl6ZWQgY29uc3RhbnRzIGluIFJPTSAobmVlZHMgLW1lbWJlZGRlZC1kYXRhKSIKI34gbXNnc3RyICLMpL3ptPyyvcTqv/Sk8iBST00gpMvD1qSvKM3XIC1tZW1iZWRkZWQtZGF0YSkiCgojfiBtc2dpZCAiRG9uJ3QgcHV0IHVuaW5pdGlhbGl6ZWQgY29uc3RhbnRzIGluIFJPTSIKI34gbXNnc3RyICLMpL3ptPyyvcTqv/Sk8iBST00gpMvD1qSrpMqkpCIKCiN+IG1zZ2lkICJVc2UgYmlnLWVuZGlhbiBieXRlIG9yZGVyIgojfiBtc2dzdHIgIqXTpcOlsKWopfOlx6WjpaKl86TOpdClpKXIveek8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBsaXR0bGUtZW5kaWFuIGJ5dGUgb3JkZXIiCiN+IG1zZ3N0ciAipeqlyKXrpail86XHpaOloqXzpM6l0KWkpci956Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiVXNlIHNpbmdsZSAoMzItYml0KSBGUCBvbmx5IgojfiBtc2dzdHIgIsOxwLrF2SgzMmJpdCkgRlAgpM6k36TyzfjN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIHNpbmdsZSAoMzItYml0KSBGUCBvbmx5IgojfiBtc2dzdHIgIsOxwLrF2SgzMmJpdCkgRlAgsMqzsKTizfjN0aS5pOsiCgojfiBtc2dpZCAiVXNlIG11bHRpcGx5IGFjY3VtdWxhdGUiCiN+IG1zZ3N0ciAivui7u8y/zuGk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBtdWx0aXBseSBhY2N1bXVsYXRlIgojfiBtc2dzdHIgIr7ou7uhprLDu7vMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIldvcmsgYXJvdW5kIGVhcmx5IDQzMDAgaGFyZHdhcmUgYnVnIgojfiBtc2dzdHIgIr3ptPykziA0MzAwIKXPobylyaWmpaeloqXQpbCkzsLQveik8rnUpKYiCgojfiBtc2dpZCAiRG9uJ3Qgd29yayBhcm91bmQgZWFybHkgNDMwMCBoYXJkd2FyZSBidWciCiN+IG1zZ3N0ciAivem0/KTOIDQzMDAgpc+hvKXJpaalp6WipdClsKTOwtC96KTyudSk76TKpKQiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIDQ2NTAiCiN+IG1zZ3N0ciAiNDY1MCDN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgMzkwMCIKI34gbXNnc3RyICIzOTAwIM3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIlRyYXAgb24gaW50ZWdlciBkaXZpZGUgYnkgemVybyIKI34gbXNnc3RyICLAsL/0pM6lvKXtvfy7u6Typcil6aXDpdekuaTrIgoKI34gbXNnaWQgIkRvbid0IHRyYXAgb24gaW50ZWdlciBkaXZpZGUgYnkgemVybyIKI34gbXNnc3RyICLAsL/0pM6lvKXtvfy7u6Typcil6aXDpdekt6TKpKQiCgojfiBtc2dpZCAiVHJhcCBvbiBpbnRlZ2VyIGRpdmlkZSBvdmVyZmxvdyIKI34gbXNnc3RyICLAsL/0vfy7u6TOpaqhvKXQobyl1aXtobyk8qXIpemlw6XXpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB0cmFwIG9uIGludGVnZXIgZGl2aWRlIG92ZXJmbG93IgojfiBtc2dzdHIgIsCwv/S9/Lu7pM6lqqG8pdChvKXVpe2hvKTypcil6aXDpdekt6TKpKQiCgojfiBtc2dpZCAiU3BlY2lmeSBDUFUgZm9yIHNjaGVkdWxpbmcgcHVycG9zZXMiCiN+IG1zZ3N0ciAizL/O4aW5pbGluKXlobyl6qXzpbCkzqS/pOGkyyBDUFUgpPK72MTqpLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IE1JUFMgSVNBIgojfiBtc2dzdHIgIk1JUFMgSVNBIKTyu9jE6qS5pOsiCgojfiBtc2dpZCAiVXNlIG1pcHMxNiBlbnRyeS9leGl0IHBzdWVkbyBvcHMiCiN+IG1zZ3N0ciAibWlwczE2IKTOIGVudHJ5L2V4aXQgtb+796Wqpdql6aXzpcmk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBNSVBTMTYgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIk1JUFMxNiDMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIm1pcHMxNiBmdW5jdGlvbiBwcm9maWxpbmciCiN+IG1zZ3N0ciAibWlwczE2ILTYv/Sl16XtpdWloaWkpesiCgojfiBtc2dpZCAiV29yayBhcm91bmQgaGFyZHdhcmUgbXVsdGlwbHkgYnVnIgojfiBtc2dzdHIgIqXPobylyaWmpaelor7ou7ul0KWwpMvC0L3opLmk6yIKCiN+IG1zZ2lkICJEbyBub3Qgd29yayBhcm91bmQgaGFyZHdhcmUgbXVsdGlwbHkgYnVnIgojfiBtc2dzdHIgIqXPobylyaWmpaelor7ou7ul0KWwpMvC0L3opLekyqSkIgoKI34gbXNnaWQgIlRhcmdldCB0aGUgQU0zMyBwcm9jZXNzb3IiCiN+IG1zZ3N0ciAiQU0zMyCl16Xtpbulw6W1pPKlv6G8pbKlw6XIpMikuaTrIgoKI34gbXNnaWQgIm9wdGltaXphdGlvbiB0dXJuZWQgb24iCiN+IG1zZ3N0ciAiusfFrLK9pPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIm9wdGltaXphdGlvbiB0dXJuZWQgb2ZmIgojfiBtc2dzdHIgIrrHxayyvaTyzLW4+qTLpLmk6yIKCiN+IG1zZ2lkICJvcHRpbWl6YXRpb24gbGV2ZWwgcmVzdG9yZWQiCiN+IG1zZ3N0ciAiusfFrLK9peyl2aXrpPK4taTLzOGkt6TepLekvyIKCiN+IG1zZ2lkICJEb24ndCB1c2UgaGFyZHdhcmUgZnAiCiN+IG1zZ3N0ciAipc+hvKXJpaalp6WiyeLGsL6uv/TFwKTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJBbHRlcm5hdGl2ZSBjYWxsaW5nIGNvbnZlbnRpb24iCiN+IG1zZ3N0ciAiysykzrjGpNO90KS3tazM86Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiUGFzcyBzb21lIGFyZ3VtZW50cyBpbiByZWdpc3RlcnMiCiN+IG1zZ3N0ciAipKSkr6TEpKukzrD6v/Skz6XspbiluaW/xc+kt6TLpLmk6yIKCiN+IG1zZ2lkICJQYXNzIGFsbCBhcmd1bWVudHMgb24gc3RhY2siCiN+IG1zZ3N0ciAiwbSkxqTOsPq/9KTypbmlv6XDpa/Fz6S3pMukuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciAzMjUzMiBjcHUiCiN+IG1zZ3N0ciAiMzI1MzIgY3B1IM3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciAzMjMzMiBjcHUiCiN+IG1zZ3N0ciAiMzIzMzIgY3B1IM3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciAzMjAzMiIKI34gbXNnc3RyICIzMjAzMiDN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJSZWdpc3RlciBzYiBpcyB6ZXJvLiBVc2UgZm9yIGFic29sdXRlIGFkZHJlc3NpbmciCiN+IG1zZ3N0ciAic2IgpeyluKW5pb+k8qW8pe2kyKS5pOuho8DkwtCloqXJpeyluaTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSByZWdpc3RlciBzYiIKI34gbXNnc3RyICJzYiCl7KW4pbmlv6Tyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIGJpdGZpZWxkIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgYml0ZmllbGQgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcnMv87hpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBoaWdoIG1lbW9yeSIKI34gbXNnc3RyICK54rDMpaKlyaXspbml4aXiperN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBsb3cgbWVtb3J5IgojfiBtc2dzdHIgIsTjsMyloqXJpeyluaXhpeKl6s3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIjMyMzgxIGZwdSIKI34gbXNnc3RyICIzMjM4MSDJ4sawvq6/9MXApealy6XDpcgiCgojfiBtc2dpZCAiVXNlIG11bHRpcGx5LWFjY3VtdWxhdGUgZnAgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIr7ou7stssO7u8nixrC+rr/0xcDMv87hpPKk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgbXVsdGlwbHktYWNjdW11bGF0ZSBmcCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAivui7uy2yw7u7yeLGsL6uv/TFwMy/zuGk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiXCJTbWFsbCByZWdpc3RlciBjbGFzc2VzXCIga2x1ZGdlIgojfiBtc2dzdHIgIlwipbml4qG8peul7KW4pbmlv6WvpemluVwiIKTOpcSlrqXPpa4oa2x1ZGdlKaTyudSkyqSmIgoKI34gbXNnaWQgIk5vIFwiU21hbGwgcmVnaXN0ZXIgY2xhc3Nlc1wiIGtsdWRnZSIKI34gbXNnc3RyICJcIqW5peKhvKXrpeyluKW5pb+lr6XppblcIiCkzqXEpa6lz6WuKGtsdWRnZSmk8rnUpMqk76TKpKQiCgojfiBtc2dpZCAiIgojfiAiVW5rbm93biAtbXNjaGVkdWxlPSBvcHRpb24gKCVzKS5cbiIKI34gIlZhbGlkIG9wdGlvbnMgYXJlIDcwMCwgNzEwMCwgNzEwMExDLCA3MjAwLCBhbmQgODAwMFxuIgojfiBtc2dzdHIgIiIKI34gIsnUzMCkyiAtbXNjaGVkdWxlPSClqqXXpbel56XzICglcykuXG4iCiN+ICLAtb7vpMqlqqXXpbel56XzpM8gNzAwLCA3MTAwLCA3MTAwTEMsIDcyMDAsILXapNMgODAwMCCkx6S5XG4iCgojfiBtc2dpZCAiIgojfiAiVW5rbm93biAtbWFyY2g9IG9wdGlvbiAoJXMpLlxuIgojfiAiVmFsaWQgb3B0aW9ucyBhcmUgMS4wLCAxLjEsIGFuZCAyLjBcbiIKI34gbXNnc3RyICIiCiN+ICLJ1MzApMogLW1hcmNoPSClqqXXpbel56XzICglcykuXG4iCiN+ICLAtb7vpMqlqqXXpbel56XzpM8gMS4wLCAxLjEsILXapNMgMi4wXG4iCgojfiBtc2dpZCAiUElDIGNvZGUgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBwb3J0YWJsZSBydW50aW1lIG1vZGVsXG4iCiN+IG1zZ3N0ciAiUElDIKWzobylycC4wK6kz7LEyMK8wrnUu/6l4qXHpeukx6TPpbWl3aG8pciktaTspN6ku6TzXG4iCgojfiBtc2dpZCAiUElDIGNvZGUgZ2VuZXJhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGZhc3QgaW5kaXJlY3QgY2FsbHNcbiIKI34gbXNnc3RyICJQSUMgpbOhvKXJwLjArqTPueLCrrTWwNy4xqTTvdCkt6TIwerNxqTspN6ku6TzXG4iCgojfiBtc2dpZCAiUElDIGNvZGUgZ2VuZXJhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByb2ZpbGluZ1xuIgojfiBtc2dzdHIgIlBJQyCls6G8pcnAuMCupM+l16XtpdWloaWkpeql86WwpMikz8Hqzcak7KTepLuk81xuIgoKI34gbXNnaWQgIi1nIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gdXNpbmcgR0FTIG9uIHRoaXMgcHJvY2Vzc29yLCIKI34gbXNnc3RyICItZyCkz6SzpM6l16Xtpbulw6W1pMekzyBHQVMgpPK7yM3RpLmk67v+pMCksaW1pd2hvKXIpLWk7KTepLkiCgojfiBtc2dpZCAiLWcgb3B0aW9uIGRpc2FibGVkLiIKI34gbXNnc3RyICItZyClqqXXpbel56XzpPLMtbj6sr2kt6TepLekv6GjIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgaGFyZHdhcmUgZmxvYXRpbmcgcG9pbnQiCiN+IG1zZ3N0ciAipc+hvKXJpaalp6WiyeLGsL6uv/TFwKTyzfjN0aS3pMqkpCIKCiN+IG1zZ2lkICJSZXR1cm4gZmxvYXRpbmcgcG9pbnQgcmVzdWx0cyBpbiBhYzAiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKTOt+uyzKTyIGFjMCCkx8rWpLkiCgojfiBtc2dpZCAiUmV0dXJuIGZsb2F0aW5nIHBvaW50IHJlc3VsdHMgaW4gbWVtb3J5IgojfiBtc2dzdHIgIsnixrC+rr/0xcCkzrfrssyk8qXhpeKl6qTHytakuSIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBhbiAxMS80MCIKI34gbXNnc3RyICIxMS80MCDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBhbiAxMS80NSIKI34gbXNnc3RyICIxMS80NSDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBhbiAxMS8xMCIKI34gbXNnc3RyICIxMS8xMCDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJVc2UgMzIgYml0IGludCIKI34gbXNnc3RyICIzMiCl06XDpcjAsL/0pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgMTYgYml0IGludCIKI34gbXNnc3RyICIxNiCl06XDpcjAsL/0pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgMzIgYml0IGZsb2F0IgojfiBtc2dzdHIgIjMyIKXTpcOlyMnixrC+rr/0pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgNjQgYml0IGZsb2F0IgojfiBtc2dzdHIgIjY0IKXTpcOlyMnixrC+rr/0pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJUYXJnZXQgaGFzIHNwbGl0IEkmRCIKI34gbXNnc3RyICKlv6G8pbKlw6XIpM8gc3BsaXQgzL/O4aTIpcehvKW/peGl4qXqpPK7/aTEIgoKI34gbXNnaWQgIlRhcmdldCBkb2VzIG5vdCBoYXZlIHNwbGl0IEkmRCIKI34gbXNnc3RyICKlv6G8pbKlw6XIpM8gc3BsaXQgzL/O4aTIpcehvKW/peGl4qXqpPK7/aS/pMqkpCIKCiN+IG1zZ2lkICJVc2UgVU5JWCBhc3NlbWJsZXIgc3ludGF4IgojfiBtc2dzdHIgIlVOSVggpaKlu6Xzpdal6cq4y6Gk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBERUMgYXNzZW1ibGVyIHN5bnRheCIKI34gbXNnc3RyICJERUMgpaKlu6Xzpdal6cq4y6Gk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGxpdHRsZSBlbmRpYW4gZGF0YSIKI34gbXNnc3RyICKl6qXIpeulqKXzpcelo6WipfOlx6G8pb+k8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGJpZyBlbmRpYW4gZGF0YSIKI34gbXNnc3RyICKl06XDpbClqKXzpcelo6WipfOlx6G8pb+k8sC4wK6kuaTrIgoKI34gbXNnaWQgIlR1cm4gb24gbWFpbnRhaW5lciB0ZXN0aW5nIGNvZGUiCiN+IG1zZ3N0ciAipeGl86XGpcqlxqW5pcils6G8pcmk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIFRyYW5zbWV0YSBwaWNvSmF2YSBleHRlbnNpb25zIgojfiBtc2dzdHIgIlRyYW5zbWV0YSBwaWNvSmF2YSCzyMSlpPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgVHJhbnNtZXRhIHBpY29KYXZhIGV4dGVuc2lvbnMiCiN+IG1zZ3N0ciAiVHJhbnNtZXRhIHBpY29KYXZhILPIxKWk8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSByZW9yZ2FuaXphdGlvbiBwYXNzIgojfiBtc2dzdHIgIrrGytTArrmpxPik8sy1uPqky6S5pOsiCgojfiBtc2dpZCAiaW52YWxpZCAlJUIgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlQiDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlUyB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVTIMPNIgoKI34gbXNnaWQgImludmFsaWQgJSViIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJWIgw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJUggdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlSCDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUleiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSV6IMPNIgoKI34gbXNnaWQgImludmFsaWQgJSVaIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJVogw80iCgojfiBtc2dpZCAiaW52YWxpZCAlJWsgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlayDDzSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlaiB2YWx1ZSIKI34gbXNnc3RyICLMtbj6pMogJSVqIMPNIgoKI34gbXNnaWQgImNhbid0IGhhdmUgdmFyYXJncyB3aXRoIC1tZnAtYXJnLWluLWZwLXJlZ3MiCiN+IG1zZ3N0ciAiLW1mcC1hcmctaW4tZnAtcmVncyCk8rvIpKakyLLEytG4xLD6v/Sk8rv9pMak3qS7pPMiCgojfiBtc2dpZCAiQWx3YXlzIHBhc3MgZmxvYXRpbmctcG9pbnQgYXJndW1lbnRzIGluIG1lbW9yeSIKI34gbXNnc3RyICLJ4sawvq6/9MXAsPq/9KTPvu+ky6XhpeKl6sXPpLekyKS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgYWx3YXlzIHBhc3MgZmxvYXRpbmctcG9pbnQgYXJndW1lbnRzIGluIG1lbW9yeSIKI34gbXNnc3RyICLJ4sawvq6/9MXAsPq/9KTPvu+ky6XhpeKl6sXPpLekyKS3pMqkpCIKCiN+IG1zZ2lkICJTdXBwb3J0IG1lc3NhZ2UgcGFzc2luZyB3aXRoIHRoZSBQYXJhbGxlbCBFbnZpcm9ubWVudCIKI34gbXNnc3RyICLKws7ztMS2raTHpM6l4aXDpbuhvKW4pdGlw6W3pfOlsKTypbWl3aG8pcikuaTrIgoKI34gbXNnaWQgIkNvbXBpbGUgZm9yIDY0LWJpdCBwb2ludGVycyIKI34gbXNnc3RyICI2NCCl06XDpcil3aWkpfOlv83RpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIGZvciAzMi1iaXQgcG9pbnRlcnMiCiN+IG1zZ3N0ciAiMzIgpdOlw6XIpd2lpKXzpb/N0aTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiLW1haXg2NCBhbmQgUE9XRVIgYXJjaGl0ZWN0dXJlIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1tYWl4NjQgpMggUE9XRVIgpaKhvKWtpcalr6XBpeOkyKTHpM+437S5wK2krKSipOqk3qS7pPMiCgojfiBtc2dpZCAiLW1haXg2NCByZXF1aXJlcyBQb3dlclBDNjQgYXJjaGl0ZWN0dXJlIHJlbWFpbiBlbmFibGVkLiIKI34gbXNnc3RyICJQb3dlclBDNjQgpaKhvKWtpcalr6XBpeOkx6TKpKSkyCAtbWFpeDY0IKTyza24+qTLpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tYWl4NjQgcmVxdWlyZWQ6IDY0LWJpdCBjb21wdXRhdGlvbiB3aXRoIDMyLWJpdCBhZGRyZXNzaW5nIG5vdCB5ZXQgc3VwcG9ydGVkLiIKI34gbXNnc3RyICItbWFpeDY0IM3XteE6IDMyIGJpdCCloqXJpeylt6XzpbCyvKTOIDY0IGJpdCC317u7pM+k3qTAzfjN0aTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1tdWx0aXBsZSBpcyBub3Qgc3VwcG9ydGVkIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyIKI34gbXNnc3RyICItbW11bHRpcGxlIKTPpeqlyKXrpail86XHpaOloqXzpbeluaXGpeC+5aTHpM+89aSxxv6k7KTppOyk3qS7pPMiCgojfiBtc2dpZCAiLW1zdHJpbmcgaXMgbm90IHN1cHBvcnRlZCBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMiCiN+IG1zZ3N0ciAiLW1zdHJpbmcgpM+l6qXIpeulqKXzpcelo6WipfOlt6W5pcal4L7lpMekz7z1pLHG/qTspOmk7KTepLuk8yIKCiN+IG1zZ2lkICItZiVzIGlnbm9yZWQgZm9yIEFJWCAoYWxsIGNvZGUgaXMgcG9zaXRpb24gaW5kZXBlbmRlbnQpIgojfiBtc2dzdHIgIkFJWCDN0aTLIC1mJXMgpM/MtbvrpLWk7KTepLekv6HKwbSkxqTOpbOhvKXJpM+wzMPWyPOwzcK4pMekuaHLIgoKI34gbXNnaWQgIi1mZnVuY3Rpb24tc2VjdGlvbnMgZGlzYWJsZWQgb24gQUlYIHdoZW4gZGVidWdnaW5nIgojfiBtc2dzdHIgIkFJWCCkx6TPpcel0KXDpbC7/qTOIC1mZnVuY3Rpb24tc2VjdGlvbnMgpM/Mtbj6pMiktaTspN6kuSIKCiN+IG1zZ2lkICItZmRhdGEtc2VjdGlvbnMgbm90IHN1cHBvcnRlZCBvbiBBSVgiCiN+IG1zZ3N0ciAiQUlYIKTHpM8gLWZkYXRhLXNlY3Rpb25zIKTPvPWkscb+pOyk6aTspN6ku6TzIgoKI34gbXNnaWQgIlVua25vd24gLW1kZWJ1Zy0lcyBzd2l0Y2giCiN+IG1zZ3N0ciAiydTMwKTKIC1tZGVidWctJXMgpbmlpKXDpcGkx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVmIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJWYgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVGIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUYgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVHIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUcgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVqIGNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKICUlaiCls6G8pcmkx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVKIGNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKICUlSiCls6G8pcmkx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVLIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJUsgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVwIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXAgw82kx6S5IgoKI34gbXNnaWQgImludmFsaWQgJSVxIHZhbHVlIgojfiBtc2dzdHIgIsy1uPqkyiAlJXEgw82kx6S5IgoKI34gbXNnaWQgIiUlUyBjb21wdXRlZCBhbGwgMSdzIG1hc2siCiN+IG1zZ3N0ciAiJSVTIKTPwbSkxqSsIDEgpM6l3qW5pa+k8rfXu7ukt6TepLekvyIKCiN+IG1zZ2lkICIlJVMgY29tcHV0ZWQgYWxsIDAncyBtYXNrIgojfiBtc2dzdHIgIiUlUyCkz8G0pMakrCAwIKTOpd6luaWvpPK317u7pLek3qS3pL8iCgojfiBtc2dpZCAiaW52YWxpZCAlJVQgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlVCDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlJXUgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUldSDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlJXYgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUldiDDzaTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCAlJVcgdmFsdWUiCiN+IG1zZ3N0ciAizLW4+qTKICUlVyDDzaTHpLkiCgojfiBtc2dpZCAiVXNlIFBPV0VSIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQT1dFUiDMv87hpbulw6XIpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgUE9XRVIyIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQT1dFUjIgzL/O4aW7pcOlyKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBQT1dFUjIgaW5zdHJ1Y3Rpb24gc2V0IgojfiBtc2dzdHIgIlBPV0VSMiDMv87hpbulw6XIpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgUE9XRVIgaW5zdHJ1Y3Rpb24gc2V0IgojfiBtc2dzdHIgIlBPV0VSIMy/zuGlu6XDpcik8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIFBvd2VyUEMgaW5zdHJ1Y3Rpb24gc2V0IgojfiBtc2dzdHIgIlBvd2VyUEMgzL/O4aW7pcOlyKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBQb3dlclBDIGluc3RydWN0aW9uIHNldCIKI34gbXNnc3RyICJQb3dlclBDIMy/zuGlu6XDpcik8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIFBvd2VyUEMgR2VuZXJhbCBQdXJwb3NlIGdyb3VwIG9wdGlvbmFsIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJQb3dlclBDILDsyMzN0cXTpbCl66G8pdelqqXXpbel56XzzL/O4aTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIFBvd2VyUEMgR2VuZXJhbCBQdXJwb3NlIGdyb3VwIG9wdGlvbmFsIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJQb3dlclBDILDsyMzN0cXTpbCl66G8pdelqqXXpbel56XzzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgUG93ZXJQQyBHcmFwaGljcyBncm91cCBvcHRpb25hbCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiUG93ZXJQQyClsKXppdWlo6WvpbmlsKXrobyl16Wqpdelt6XnpfPMv87hpPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIkRvbid0IHVzZSBQb3dlclBDIEdyYXBoaWNzIGdyb3VwIG9wdGlvbmFsIGluc3RydWN0aW9ucyIKI34gbXNnc3RyICJQb3dlclBDIKWwpeml1aWjpa+luaWwpeuhvKXXpaql16W3peel88y/zuGk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIFBvd2VyUEMtNjQgaW5zdHJ1Y3Rpb24gc2V0IgojfiBtc2dzdHIgIlBvd2VyUEMtNjQgzL/O4aW7pcOlyKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIFBvd2VyUEMtNjQgaW5zdHJ1Y3Rpb24gc2V0IgojfiBtc2dzdHIgIlBvd2VyUEMtNjQgzL/O4aW7pcOlyKTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2UgbmV3IG1uZW1vbmljcyBmb3IgUG93ZXJQQyBhcmNoaXRlY3R1cmUiCiN+IG1zZ3N0ciAiUG93ZXJQQyCloqG8pa2lxqWvpcGl483RpM6/t6S3pKSly6G8peKly6XDpa+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSBvbGQgbW5lbW9uaWNzIGZvciBQb3dlclBDIGFyY2hpdGVjdHVyZSIKI34gbXNnc3RyICJQb3dlclBDIKWiobylraXGpa+lwaXjzdGkzrjFpKSly6G8peKly6XDpa+k8rvIzdGkuaTrIgoKI34gbXNnaWQgIlB1dCBldmVyeXRoaW5nIGluIHRoZSByZWd1bGFyIFRPQyIKI34gbXNnc3RyICLBtKTGpPLEzL7vIFRPQyDG4qTLx9vD1qS5pOsiCgojfiBtc2dpZCAiUGxhY2UgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnRzIGluIFRPQyIKI34gbXNnc3RyICLJ4sawvq6/9MXAxOq/9KTyIFRPQyDG4qTLx9vD1qS5pOsiCgojfiBtc2dpZCAiRG9uJ3QgcGxhY2UgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnRzIGluIFRPQyIKI34gbXNnc3RyICLJ4sawvq6/9MXAxOq/9KTyIFRPQyDG4qTLx9vD1qS3pMqkpCIKCiN+IG1zZ2lkICJQbGFjZSBzeW1ib2wrb2Zmc2V0IGNvbnN0YW50cyBpbiBUT0MiCiN+IG1zZ3N0ciAipbel86Xcpesrpaql1aW7pcOlyMTqv/Sk8iBUT0MgxuKky8fbw9akuaTrIgoKI34gbXNnaWQgIkRvbid0IHBsYWNlIHN5bWJvbCtvZmZzZXQgY29uc3RhbnRzIGluIFRPQyIKI34gbXNnc3RyICKlt6Xzpdyl6yulqqXVpbulw6XIxOq/9KTyIFRPQyDG4qTLx9vD1qS3pMqkpCIKCiN+IG1zZ2lkICJQbGFjZSB2YXJpYWJsZSBhZGRyZXNzZXMgaW4gdGhlIHJlZ3VsYXIgVE9DIgojfiBtc2dzdHIgIsrRv/SloqXJpeyluaTyxMy+7yBUT0MgxuKky8fbw9akuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGxvYWQvc3RvcmUgbXVsdGlwbGUgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsqjv/TMv87hpM6l7aG8pckvpbmlyKWipPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgbG9hZC9zdG9yZSBtdWx0aXBsZSBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyqO/9My/zuGkzqXtobylyS+luaXIpaKk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiR2VuZXJhdGUgc3RyaW5nIGluc3RydWN0aW9ucyBmb3IgYmxvY2sgbW92ZXMiCiN+IG1zZ3N0ciAipdal7aXDpa+w3MawzdGkziBzdHJpbmcgzL/O4aTywLjArqS5pOsiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIHN0cmluZyBpbnN0cnVjdGlvbnMgZm9yIGJsb2NrIG1vdmVzIgojfiBtc2dzdHIgIqXWpe2lw6WvsNzGsM3RpM4gc3RyaW5nIMy/zuGk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiR2VuZXJhdGUgbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZSBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAidXBkYXRlIMy/zuGkyLDsve+ky6XtobylyS+luaXIpaLMv87hpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZSBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAidXBkYXRlIMy/zuGkyLDsve+ky6XtobylyS+luaXIpaLMv87hpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIkdlbmVyYXRlIGZ1c2VkIG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/Skzr7ou7svssO7u8y/zuGk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvbid0IGdlbmVyYXRlIGZ1c2VkIG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/Skzr7ou7svssO7u8y/zuGk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiRG9uJ3Qgc2NoZWR1bGUgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHByb2NlZHVyZSIKI34gbXNnc3RyICKl16XtpbehvKW4peOzq7vPpMi9qs67pM6luaWxpbil5aG8peuk8rnUpMqk76TKpKQiCgojfiBtc2dpZCAiVXNlIGZlYXR1cmVzIG9mIGFuZCBzY2hlZHVsZSBjb2RlIGZvciBnaXZlbiBDUFUiCiN+IG1zZ3N0ciAizb+kqKTppOykvyBDUFUgzdGkzrWhx72kyKW5pbGluKXlobyl66WzobylyaTyzfjN0aS5pOsiCgojfiBtc2dpZCAiRW5hYmxlIGRlYnVnIG91dHB1dCIKI34gbXNnc3RyICKlx6XQpcOlsL3Qzs+k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiUkVUVVJOX0FERFJFU1NfT0ZGU0VUIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiUkVUVVJOX0FERFJFU1NfT0ZGU0VUIKTPpbWl3aG8pciktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJTZWxlY3QgQUJJIGNhbGxpbmcgY29udmVudGlvbi4iCiN+IG1zZ3N0ciAiQUJJILjGpNO90KS3tazM86TywarC8qS5pOsiCgojfiBtc2dpZCAiU2VsZWN0IG1ldGhvZCBmb3Igc2RhdGEgaGFuZGxpbmcuIgojfiBtc2dzdHIgInNkYXRhILzopOqwt6SkpM6kv6ThpM6l4aW9pcOlyaTywarC8qS5pOsiCgojfiBtc2dpZCAiQWxpZ24gdG8gdGhlIGJhc2UgdHlwZSBvZiB0aGUgYml0ZmllbGQuIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmkzqXZobyluaW/paSl16TLpaKl6aWkpfOkuaTrIgoKI34gbXNnaWQgIkRvbid0IGFsaWduIHRvIHRoZSBiYXNlIHR5cGUgb2YgdGhlIGJpdGZpZWxkLiIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpM6l2aG8pbmlv6Wkpdeky6WipemlpKXzpLekyqSkIgoKI34gbXNnaWQgIkRvbid0IGFzc3VtZSB0aGF0IHVuYWxpZ25lZCBhY2Nlc3NlcyBhcmUgaGFuZGxlZCBieSB0aGUgc3lzdGVtIgojfiBtc2dzdHIgIqWipemlpKXzpLWk7KTKpKSloqWvpbuluaSspbeluaXGpeCky6TopMOkxqXPpfOlyaXrpLWk7KTrpMikz6TfpMqktaTKpKQiCgojfiBtc2dpZCAiQXNzdW1lIHRoYXQgdW5hbGlnbmVkIGFjY2Vzc2VzIGFyZSBoYW5kbGVkIGJ5IHRoZSBzeXN0ZW0iCiN+IG1zZ3N0ciAipaKl6aWkpfOktaTspMqkpKWipa+lu6W5pKylt6W5pcal4KTLpOikw6TGpc+l86XJpeuktaTspOukyKTfpMqkuSIKCiN+IG1zZ2lkICJQcm9kdWNlIGNvZGUgcmVsb2NhdGFibGUgYXQgcnVudGltZS4iCiN+IG1zZ3N0ciAivMK51Lv+pMu6xsfbw9ayxMe9pMqls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkRvbid0IHByb2R1Y2UgY29kZSByZWxvY2F0YWJsZSBhdCBydW50aW1lLiIKI34gbXNnc3RyICK8wrnUu/6ky7rGx9vD1rLEx72kyqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiUHJvZHVjZSBsaXR0bGUgZW5kaWFuIGNvZGUuIgojfiBtc2dzdHIgIqXqpcil66WopfOlx6WjpaKl86WzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiUHJvZHVjZSBiaWcgZW5kaWFuIGNvZGUuIgojfiBtc2dzdHIgIqXTpcOlsKWopfOlx6WjpaKl86WzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiVXNlIDEyOCBiaXQgbG9uZyBkb3VibGVzIgojfiBtc2dzdHIgIjEyOCCl06XDpcikziBsb25nIGRvdWJsZSCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIm5vIGRlc2NyaXB0aW9uIHlldCIKI34gbXNnc3RyICLA4szApM+k3qTApKKk6qTepLuk8yIKCiN+IG1zZ2lkICJVc2UgRUFCSS4iCiN+IG1zZ3N0ciAiRUFCSSCk8s34zdGkuaTroaMiCgojfiBtc2dpZCAiRG9uJ3QgdXNlIEVBQkkuIgojfiBtc2dzdHIgIkVBQkkgpPLN+M3RpLekyqSkoaMiCgojfiBtc2dpZCAiVXNlIGFsdGVybmF0ZSByZWdpc3RlciBuYW1lcy4iCiN+IG1zZ3N0ciAiwuXC2KXspbiluaW/zL6k8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvbid0IHVzZSBhbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMuIgojfiBtc2dzdHIgIsLlwtil7KW4pbmlv8y+pPK7yM3RpLekyqSkIgoKI34gbXNnaWQgIkxpbmsgd2l0aCBsaWJzaW0uYSwgbGliYy5hIGFuZCBzaW0tY3J0MC5vLiIKI34gbXNnc3RyICJsaWJzaW0uYSwgbGliYy5hILXapNMgc2ltLWNydDAubyCkyKXqpfOlr6S5pOuhoyIKCiN+IG1zZ2lkICJMaW5rIHdpdGggbGliYWRzLmEsIGxpYmMuYSBhbmQgY3J0MC5vLiIKI34gbXNnc3RyICJsaWJhZHMuYSwgbGliYy5hILXapNMgY3J0MC5vIKTIpeql86WvpLmk66GjIgoKI34gbXNnaWQgIkxpbmsgd2l0aCBsaWJ5ay5hLCBsaWJjLmEgYW5kIGNydDAuby4iCiN+IG1zZ3N0ciAibGlieWsuYSwgbGliYy5hILXapNMgY3J0MC5vIKTIpeql86WvpLmk66GjIgoKI34gbXNnaWQgIkxpbmsgd2l0aCBsaWJtdm1lLmEsIGxpYmMuYSBhbmQgY3J0MC5vLiIKI34gbXNnc3RyICJsaWJtdm1lLmEsIGxpYmMuYSC12qTTIGNydDAubyCkyKXqpfOlr6S5pOuhoyIKCiN+IG1zZ2lkICJTZXQgdGhlIFBQQ19FTUIgYml0IGluIHRoZSBFTEYgZmxhZ3MgaGVhZGVyIgojfiBtc2dzdHIgIlBQQ19FTUIgpdOlw6XIpPIgRUxGIKXVpemlsKXYpcOlwMbipMulu6XDpcikuaTrIgoKI34gbXNnaWQgIkJhZCB2YWx1ZSBmb3IgLW1jYWxsLSVzIgojfiBtc2dzdHIgIi1tY2FsbC0lcyCluaWkpcOlwaTLpMikw6TGpM7J1MC1pMrDzSIKCiN+IG1zZ2lkICJCYWQgdmFsdWUgZm9yIC1tc2RhdGE9JXMiCiN+IG1zZ3N0ciAiLW1zZGF0YT0lcyCluaWkpcOlwaTLwtCkuaTrydTAtaTKw80iCgojfiBtc2dpZCAiLW1yZWxvY2F0YWJsZSBhbmQgLW1zZGF0YT0lcyBhcmUgaW5jb21wYXRpYmxlLiIKI34gbXNnc3RyICItbXJlbG9jYXRhYmxlIKTIIC1tc2RhdGE9JXMgpMikz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1mJXMgYW5kIC1tc2RhdGE9JXMgYXJlIGluY29tcGF0aWJsZS4iCiN+IG1zZ3N0ciAiLWYlcyCkyCAtbXNkYXRhPSVzIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1zZGF0YT0lcyBhbmQgLW1jYWxsLSVzIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1tc2RhdGE9JXMgpMggLW1jYWxsLSVzIKTIpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItbXJlbG9jYXRhYmxlIGFuZCAtbW5vLW1pbmltYWwtdG9jIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1tcmVsb2NhdGFibGUgpMggLW1uby1taW5pbWFsLXRvYyCkyKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1yZWxvY2F0YWJsZSBhbmQgLW1jYWxsLSVzIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1tcmVsb2NhdGFibGUgpMggLW1jYWxsLSVzIKTIpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItZlBJQyBhbmQgLW1jYWxsLSVzIGFyZSBpbmNvbXBhdGlibGUuIgojfiBtc2dzdHIgIi1mUElDIKTIIC1tY2FsbC0lcyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1tY2FsbC1haXhkZXNjIG11c3QgYmUgYmlnIGVuZGlhbiIKI34gbXNnc3RyICItbWNhbGwtYWl4ZGVzYyCkz6XTpcOlsKWopfOlx6WjpaKl86THpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIGJpZyBlbmRpYW4iCiN+IG1zZ3N0ciAipdOlw6Wwpail86XHpaOloqXzzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSBmb3IgbGl0dGxlIGVuZGlhbiIKI34gbXNnc3RyICKl6qXIpeulqKXzpcelo6WipfPN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJVc2UgbGl0dGxlLWVuZGlhbiBieXRlIG9yZGVyIGZvciBkYXRhIgojfiBtc2dzdHIgIqXHobylv6TOpdClpKXIveeky6Xqpcil66WopfOlx6WjpaKl86Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiJXMgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvbmZpZ3VyYXRpb24iCiN+IG1zZ3N0ciAiJXMgpM+ks6TOpbOl86XVpaOlrqXlpeyhvKW3peel86THpM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiLW1sb25nLWRvdWJsZS02NCBub3QgYWxsb3dlZCB3aXRoIC1tNjQiCiN+IG1zZ3N0ciAiLW02NCC72MTqpeKhvKXJpMekzyAtbWxvbmctZG91YmxlLTY0IKTPtfayxKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiYmFkIHZhbHVlICglcykgZm9yIC1tY21vZGVsPSBzd2l0Y2giCiN+IG1zZ3N0ciAiLW1jbW9kZWw9IKW5paSlw6XBpMukyKTDpMbJ1MC1pMrDzSAoJXMpIgoKI34gbXNnaWQgIi1tY21vZGVsPSBpcyBub3Qgc3VwcG9ydGVkIG9uIDMyIGJpdCBzeXN0ZW1zIgojfiBtc2dzdHIgIi1tY21vZGVsPSCkzyAzMiBiaXQgpbeluaXGpeC+5aTHpM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAicHJvZmlsaW5nIGRvZXMgbm90IHN1cHBvcnQgY29kZSBtb2RlbHMgb3RoZXIgdGhhbiBtZWRsb3ciCiN+IG1zZ3N0ciAipdel7aXVpaGlpKXqpfOlsKTPIG1lZGxvdyCwyrOwpM6ls6G8pcml4qXHpeukx6TPpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgJSVZIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlWSClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVBIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlQSClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVCIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlQiClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVjIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlYyClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVDIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlQyClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVkIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlZCClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVEIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlRCClqqXapeml86XJIgoKI34gbXNnaWQgIkludmFsaWQgJSVmIG9wZXJhbmQiCiN+IG1zZ3N0ciAizLW4+qTKICUlZiClqqXapeml86XJIgoKI34gbXNnaWQgImxvbmcgbG9uZyBjb25zdGFudCBub3QgYSB2YWxpZCBpbW1lZGlhdGUgb3BlcmFuZCIKI34gbXNnc3RyICJsb25nIGxvbmcgxOq/9KTPwLW+76TKwqjDzaWqpdql6aXzpcmkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJmbG9hdGluZyBwb2ludCBjb25zdGFudCBub3QgYSB2YWxpZCBpbW1lZGlhdGUgb3BlcmFuZCIKI34gbXNnc3RyICLJ4sawvq6/9MTqv/Skz8C1vu+kysKow82lqqXapeml86XJpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiJXMgYW5kIHByb2ZpbGluZyBjb25mbGljdDogZGlzYWJsaW5nICVzIgojfiBtc2dzdHIgIiVzIKTIpdel7aXVpaGlpKXqpfOlsKTPtqW556S3pN6kuTogJXMgpPLMtbj6sr2kt6TepLkiCgojfiBtc2dpZCAiVXNlIEZVTkNUSU9OX0VQSUxPR1VFIgojfiBtc2dzdHIgIkZVTkNUSU9OX0VQSUxPR1VFIKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBGVU5DVElPTl9FUElMT0dVRSIKI34gbXNnc3RyICJGVU5DVElPTl9FUElMT0dVRSCk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiQXNzdW1lIHBvc3NpYmxlIGRvdWJsZSBtaXNhbGlnbm1lbnQiCiN+IG1zZ3N0ciAiZG91YmxlIKSsuO2kw6S/paKl6aWkpfOl4aXzpcikyKTKpOuyxMe9wK2krKSipOukyKTfpMqkuSIKCiN+IG1zZ2lkICJBc3N1bWUgYWxsIGRvdWJsZXMgYXJlIGFsaWduZWQiCiN+IG1zZ3N0ciAiwbSkxqTOIGRvdWJsZSCk8qWipemlpKXzpLWk7KS/pOKkzqTIpN+kyqS5IgoKI34gbXNnaWQgIlBhc3MgLWFzc2VydCBwdXJlLXRleHQgdG8gbGlua2VyIgojfiBtc2dzdHIgIqXqpfOlq6TLIC1hc3NlcnQgcHVyZS10ZXh0IKTyxc+kuSIKCiN+IG1zZ2lkICJEbyBub3QgcGFzcyAtYXNzZXJ0IHB1cmUtdGV4dCB0byBsaW5rZXIiCiN+IG1zZ3N0ciAipeql86WrpMsgLWFzc2VydCBwdXJlLXRleHQgpPLFz6S1pMqkpCIKCiN+IG1zZ2lkICJVc2UgZmxhdCByZWdpc3RlciB3aW5kb3cgbW9kZWwiCiN+IG1zZ3N0ciAipdWl6aXDpcil7KW4pbmlv6WmpaOl86XJpaal4qXHpeuk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgZmxhdCByZWdpc3RlciB3aW5kb3cgbW9kZWwiCiN+IG1zZ3N0ciAipdWl6aXDpcil7KW4pbmlv6WmpaOl86XJpaal4qXHpeuk8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIEFCSSByZXNlcnZlZCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiQUJJIM29zPOl7KW4pbmlv6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHVzZSBBQkkgcmVzZXJ2ZWQgcmVnaXN0ZXJzIgojfiBtc2dzdHIgIkFCSSDNvczzpeyluKW5pb+k8rvIzdGkt6TKpKQiCgojfiBtc2dpZCAiVXNlIGhhcmR3YXJlIHF1YWQgZnAgaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIrvNx9zAusXZyeLGsL6uv/TFwMy/zuGk8rvIzdGkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB1c2UgaGFyZHdhcmUgcXVhZCBmcCBpbnN0cnVjdGlvbnMiCiN+IG1zZ3N0ciAiu83H3MC6xdnJ4sawvq6/9MXAzL/O4aTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJDb21waWxlIGZvciB2OHBsdXMgQUJJIgojfiBtc2dzdHIgInY4cGx1cyBBQkkgzdGky6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBjb21waWxlIGZvciB2OHBsdXMgQUJJIgojfiBtc2dzdHIgInY4cGx1cyBBQkkgzdGky6WzpfOl0aWkpeukt6TKpKQiCgojfiBtc2dpZCAiVXRpbGl6ZSBWaXN1YWwgSW5zdHJ1Y3Rpb24gU2V0IgojfiBtc2dzdHIgIlZpc3VhbCDMv87hpbulw6XIpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXRpbGl6ZSBWaXN1YWwgSW5zdHJ1Y3Rpb24gU2V0IgojfiBtc2dzdHIgIlZpc3VhbCDMv87hpbulw6XIpPLN+M3RpLekyqSkIgoKI34gbXNnaWQgIk9wdGltaXplIGZvciBDeXByZXNzIHByb2Nlc3NvcnMiCiN+IG1zZ3N0ciAiQ3lwcmVzcyCl16Xtpbulw6W1zdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIFNwYXJjTGl0ZSBwcm9jZXNzb3JzIgojfiBtc2dzdHIgIlNwYXJjTGl0ZSCl16Xtpbulw6W1zdGky7rHxayyvaS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIEY5MzAgcHJvY2Vzc29ycyIKI34gbXNnc3RyICJGOTMwIKXXpe2lu6XDpbXN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJPcHRpbWl6ZSBmb3IgRjkzNCBwcm9jZXNzb3JzIgojfiBtc2dzdHIgIkY5MzQgpdel7aW7pcOltc3RpMu6x8Wssr2kuaTrIgoKI34gbXNnaWQgIlVzZSBWOCBTcGFyYyBJU0EiCiN+IG1zZ3N0ciAiVjggU3BhcmMgSVNBIKTyu8jN0aS5pOsiCgojfiBtc2dpZCAiT3B0aW1pemUgZm9yIFN1cGVyU3BhcmMgcHJvY2Vzc29ycyIKI34gbXNnc3RyICJTdXBlclNwYXJjIKXXpe2lu6XDpbXN0aTLusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJQb2ludGVycyBhcmUgNjQtYml0IgojfiBtc2dzdHIgIqXdpaSl86W/pPIgNjQgpdOlw6XIpMikuaTrIgoKI34gbXNnaWQgIlBvaW50ZXJzIGFyZSAzMi1iaXQiCiN+IG1zZ3N0ciAipd2lpKXzpb+k8iAzMiCl06XDpcikyKS5pOsiCgojfiBtc2dpZCAiVXNlIDMyLWJpdCBBQkkiCiN+IG1zZ3N0ciAiMzIgpdOlw6XIIEFCSSCk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlVzZSA2NC1iaXQgQUJJIgojfiBtc2dzdHIgIjY0IKXTpcOlyCBBQkkgpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2Ugc3RhY2sgYmlhcyIKI34gbXNnc3RyICKluaW/pcOlr6XQpaSloqW5pPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIHN0YWNrIGJpYXMiCiN+IG1zZ3N0ciAipbmlv6XDpa+l0KWkpaKluaTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJVc2Ugc3RydWN0cyBvbiBzdHJvbmdlciBhbGlnbm1lbnQgZm9yIGRvdWJsZS13b3JkIGNvcGllcyIKI34gbXNnc3RyICKlwKXWpeul76G8pcmls6XUobzN0aTOtq+kr6WipemlpKXzpLWk7KS/ub3CpMLOpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgdXNlIHN0cnVjdHMgb24gc3Ryb25nZXIgYWxpZ25tZW50IGZvciBkb3VibGUtd29yZCBjb3BpZXMiCiN+IG1zZ3N0ciAipcCl1qXrpe+hvKXJpbOl1KG8zdGkzravpK+loqXppaSl86S1pOykv7m9wqTCzqTyu8jN0aS3pMqkpCIKCiN+IG1zZ2lkICJPcHRpbWl6ZSB0YWlsIGNhbGwgaW5zdHJ1Y3Rpb25zIGluIGFzc2VtYmxlciBhbmQgbGlua2VyIgojfiBtc2dzdHIgIqWipbul86XWpemkyKXqpfOlq6THy/bI+LjGpNO90KS3zL/O4aTyusfFrLK9pLmk6yIKCiN+IG1zZ2lkICJEbyBub3Qgb3B0aW1pemUgdGFpbCBjYWxsIGluc3RydWN0aW9ucyBpbiBhc3NlbWJsZXIgb3IgbGlua2VyIgojfiBtc2dzdHIgIqWipbul86XWpemkyKXqpfOlq6THy/bI+LjGpNO90KS3zL/O4aTyusfFrLK9pLekyqSkIgoKI34gbXNnaWQgIlVzZSBnaXZlbiBTcGFyYyBjb2RlIG1vZGVsIgojfiBtc2dzdHIgIs2/pKik6aTspL8gU3BhcmMgpbOhvKXJpeKlx6XrpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICIjcHJhZ21hIEdIUyBlbmRYWFhYIGZvdW5kIHdpdGhvdXQgcHJldmlvdXMgc3RhcnRYWFgiCiN+IG1zZ3N0ciAiI3ByYWdtYSBHSFMgZW5kWFhYWCCkrMGwpM4gc3RhcnRYWFggzLWkt6THuKukxKSrpOqk3qS3pL8iCgojfiBtc2dpZCAiI3ByYWdtYSBHSFMgZW5kWFhYIGRvZXMgbm90IG1hdGNoIHByZXZpb3VzIHN0YXJ0WFhYIgojfiBtc2dzdHIgIiNwcmFnbWEgR0hTIGVuZFhYWCCkrMGwpM4gc3RhcnRYWFggpMjFrLnnpLek3qS7pPMiCgojfiBtc2dpZCAiQ2Fubm90IHNldCBpbnRlcnJ1cHQgYXR0cmlidXRlOiBubyBjdXJyZW50IGZ1bmN0aW9uIgojfiBtc2dzdHIgImludGVycnVwdCDCsMCtpPLA38TqpMekraTepLuk8zoguL2636TOtNi/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJDYW5ub3Qgc2V0IGludGVycnVwdCBhdHRyaWJ1dGU6IG5vIHN1Y2ggaWRlbnRpZmllciIKI34gbXNnc3RyICJpbnRlcnJ1cHQgwrDAraTywN/E6qTHpK2k3qS7pPM6IKS9pM7NzaTKvLHKzLvSpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgZ2hzIHNlY3Rpb24iCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgc2VjdGlvbiCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgInVucmVjb2duaXNlZCBzZWN0aW9uIG5hbWUgXCIlc1wiIgojfiBtc2dzdHIgIsenvLGkx6StpMqkpKW7pa+lt6XnpfPMviBcIiVzXCIiCgojfiBtc2dpZCAibWFsZm9ybWVkICNwcmFnbWEgZ2hzIHNlY3Rpb24iCiN+IG1zZ3N0ciAipKqkq6S3pMogI3ByYWdtYSBnaHMgc2VjdGlvbiIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBpbnRlcnJ1cHQiCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgaW50ZXJydXB0IKTOvaqk6qTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBnaHMgc3RhcnR0ZGEiCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgc3RhcnR0ZGEgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBzdGFydHNkYSIKI34gbXNnc3RyICIjcHJhZ21hIGdocyBzdGFydHNkYSCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgZ2hzIHN0YXJ0emRhIgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIHN0YXJ0emRhIKTOvaqk6qTLpbSl36SspKKk6qTepLkiCgojfiBtc2dpZCAianVuayBhdCBlbmQgb2YgI3ByYWdtYSBnaHMgZW5kdGRhIgojfiBtc2dzdHIgIiNwcmFnbWEgZ2hzIGVuZHRkYSCkzr2qpOqky6W0pd+krKSipOqk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgZ2hzIGVuZHNkYSIKI34gbXNnc3RyICIjcHJhZ21hIGdocyBlbmRzZGEgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJqdW5rIGF0IGVuZCBvZiAjcHJhZ21hIGdocyBlbmR6ZGEiCiN+IG1zZ3N0ciAiI3ByYWdtYSBnaHMgpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICIlcz0lcyBpcyBub3QgbnVtZXJpYy4iCiN+IG1zZ3N0ciAiJXM9JXMgpM+/9MPNpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiJXM9JXMgaXMgdG9vIGxhcmdlLiIKI34gbXNnc3RyICIlcz0lcyCkz8LnpK2kuaSupN6kuaGjIgoKI34gbXNnaWQgImEgZGF0YSBhcmVhIGF0dHJpYnV0ZSBjYW5ub3QgYmUgc3BlY2lmaWVkIGZvciBsb2NhbCB2YXJpYWJsZXMiCiN+IG1zZ3N0ciAipcehvKW/zs6w6MKwwK2k8qXtobylq6XrytG/9KTLpM+72MTqpMekraTepLuk8yIKCiN+IG1zZ2lkICJkYXRhIGFyZWEgb2YgJyVzJyBjb25mbGljdHMgd2l0aCBwcmV2aW91cyBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICKlx6G8pb/OzrDoICclcycgpM/BsKTOwOu4wKTIzLe94qS3pN6kuSIKCiN+IG1zZ2lkICJCb2d1cyBKUiBjb25zdHJ1Y3Rpb246ICVkXG4iCiN+IG1zZ3N0ciAiuO3L4rK9pLWk7KS/IEpSILm9wqQ6ICVkXG4iCgojfiBtc2dpZCAiQmFkIGFtb3VudCBvZiBzdGFjayBzcGFjZSByZW1vdmFsOiAlZCIKI34gbXNnc3RyICKluaW/pcOlr7b1tNa67738zsykrMnUwLWkx6S5OiAlZCIKCiN+IG1zZ2lkICJCb2d1cyBKQVJMIGNvbnN0cnVjdGlvbjogJWRcbiIKI34gbXNnc3RyICK47cvisr2ktaTspL8gSkFSTCC5vcKkOiAlZFxuIgoKI34gbXNnaWQgIlN1cHBvcnQgR3JlZW4gSGlsbHMgQUJJIgojfiBtc2dzdHIgIkdyZWVuIEhpbGwgpM4gQUJJIKTypbWl3aG8pcikuaTrIgoKI34gbXNnaWQgIlByb2hpYml0IFBDIHJlbGF0aXZlIGZ1bmN0aW9uIGNhbGxzIgojfiBtc2dzdHIgIlBDILTYz6KkzrTYv/S4xqTTvdCkt6TyttikuKTrIgoKI34gbXNnaWQgIlJldXNlIHIzMCBvbiBhIHBlciBmdW5jdGlvbiBiYXNpcyIKI34gbXNnc3RyICK02L/0pM68583XyfTKrMvopMsgcjMwIKTyusbN+M3RpLmk6yIKCiN+IG1zZ2lkICJVc2Ugc3R1YnMgZm9yIGZ1bmN0aW9uIHByb2xvZ3VlcyIKI34gbXNnc3RyICK02L/0s6u7z8n0yqzN0aTOpbmlv6XWpPK7yM3RpLmk6yIKCiN+IG1zZ2lkICJTYW1lIGFzOiAtbWVwIC1tcHJvbG9nLWZ1bmN0aW9uIgojfiBtc2dzdHIgIi1tZXAgLW1wcm9sb2ctZnVuY3Rpb24gpMjGsc3NIgoKI34gbXNnaWQgIkVuYWJsZSBiYWNrZW5kIGRlYnVnZ2luZyIKI34gbXNnc3RyICKl0KXDpa+lqKXzpcmlx6XQpcOlsKTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIGZvciB0aGUgdjg1MCBwcm9jZXNzb3IiCiN+IG1zZ3N0ciAidjg1MCCl16Xtpbulw6W1zdGky6WzpfOl0aWkpeukuaTrIgoKI34gbXNnaWQgIlVzZSA0IGJ5dGUgZW50cmllcyBpbiBzd2l0Y2ggdGFibGVzIgojfiBtc2dzdHIgInN3aXRjaCClxqG8pdal66THIDQgpdClpKXIpail86XIpeqk8rvIzdGkuaTrIgoKI34gbXNnaWQgIlNldCB0aGUgbWF4IHNpemUgb2YgZGF0YSBlbGlnaWJsZSBmb3IgdGhlIFREQSBhcmVhIgojfiBtc2dzdHIgIlREQSDOzrDopMukyKTDpMbLvqTepLekpLrHwuelx6G8pb+ltaWkpbqk8sDfxOqkuaTrIgoKI34gbXNnaWQgIlNldCB0aGUgbWF4IHNpemUgb2YgZGF0YSBlbGlnaWJsZSBmb3IgdGhlIFNEQSBhcmVhIgojfiBtc2dzdHIgIlNEQSDOzrDopMukyKTDpMbLvqTepLekpLrHwuelx6G8pb+ltaWkpbqk8sDfxOqkuaTrIgoKI34gbXNnaWQgIlNldCB0aGUgbWF4IHNpemUgb2YgZGF0YSBlbGlnaWJsZSBmb3IgdGhlIFpEQSBhcmVhIgojfiBtc2dzdHIgIlpEQSDOzrDopMukyKTDpMbLvqTepLekpLrHwuelx6G8pb+ltaWkpbqk8sDfxOqkuaTrIgoKI34gbXNnaWQgImNhbm5vdCBjb252ZXJ0IHRvIGEgcG9pbnRlciB0eXBlIgojfiBtc2dzdHIgIqXdpaSl86W/t7+ky8rRtLmkx6StpN6ku6TzIgoKI34gbXNnaWQgInBvaW50ZXIgdmFsdWUgdXNlZCB3aGVyZSBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIHdhcyBleHBlY3RlZCIKI34gbXNnc3RyICLJ4sawvq6/9MXAv/SkrKSipOuk2aStstW96qTHoaKl3aWkpfOlv8PNpKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiYWdncmVnYXRlIHZhbHVlIHVzZWQgd2hlcmUgYSBmbG9hdCB3YXMgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwLe/pKykoqTrpNmkrbLVveqkx6Givbi558LOpM7DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImNvbnZlcnNpb24gdG8gaW5jb21wbGV0ZSB0eXBlIgojfiBtc2dzdHIgIsnUtLDBtLe/pNikzsrRtLmkx6S5IgoKI34gbXNnaWQgImNhbid0IGNvbnZlcnQgYmV0d2VlbiB2ZWN0b3IgdmFsdWVzIG9mIGRpZmZlcmVudCBzaXplIgojfiBtc2dzdHIgIsLnpK2ktaTOsNukyqTrpdmlr6XIpevDzcaxu86kzsrRtLmkz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiYWdncmVnYXRlIHZhbHVlIHVzZWQgd2hlcmUgYW4gaW50ZWdlciB3YXMgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiwLC/9Le/pKykoqTrpNmkrbLVveqkx6Givbi558LOpM7DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgInBvaW50ZXIgdmFsdWUgdXNlZCB3aGVyZSBhIGNvbXBsZXggd2FzIGV4cGVjdGVkIgojfiBtc2dzdHIgIsqjwce/9Le/pKykoqTrpNmkrbLVveqkx6Gipd2lpKXzpb/DzaSsu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImFnZ3JlZ2F0ZSB2YWx1ZSB1c2VkIHdoZXJlIGEgY29tcGxleCB3YXMgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiyqPBx7/0t7+krKSipOuk2aStstW96qTHoaK9uLnnws6kzsPNpKy7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiY2FuJ3QgY29udmVydCB2YWx1ZSB0byBhIHZlY3RvciIKI34gbXNnc3RyICLDzaTypdmlr6XIpeuky6TPytG0uaTHpK2k3qS7pPMiCgojfiBtc2dpZCAidW5hYmxlIHRvIGNhbGwgcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24gaGVyZSIKI34gbXNnc3RyICKks6SzpMekz6XhpfOl0LTYv/Sl3aWkpfOlv7jGpNO90KS3pKykx6StpN6ku6TzIgoKI34gbXNnaWQgImRlc3RydWN0b3JzIHRha2Ugbm8gcGFyYW1ldGVycyIKI34gbXNnc3RyICKlx6W5pcil6aWvpb+kz7K+sPq/9KTyvOik6qTepLuk8yIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgb21pdHRpbmcgdGhlIG1pZGRsZSB0ZXJtIG9mIGEgPzogZXhwcmVzc2lvbiIKI34gbXNnc3RyICJJU08gQysrIKTPw+a01rngpKy+ys6spLWk7KS/ID86ILywpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJjb25mbGljdGluZyBhY2Nlc3Mgc3BlY2lmaWNhdGlvbnMgZm9yIGZpZWxkIGAlcycsIGlnbm9yZWQiCiN+IG1zZ3N0ciAipdWlo6G8peulySBgJXMnIKTLwtCkuaTrpaKlr6W7pbm72MTqu9KkrLalueekt6S/pL+k4aGizLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAidHJ5aW5nIHRvIGZpbmlzaCBzdHJ1Y3QsIGJ1dCBraWNrZWQgb3V0IGR1ZSB0byBwcmV2aW91cyBwYXJzZSBlcnJvcnMuIgojfiBtc2dzdHIgIrm9yriy8sDPpKy5vcKkws6kzr2qpOqky7q5pLez3aSrpOqk3qS3pL+krKGiwbCkzqWopemhvKTOpLukpKTHyrjMrqTyuKu8uqSkpN6kt6S/IgoKI34gbXNnaWQgImxhbmd1YWdlIHN0cmluZyBgXCIlc1wiJyBub3QgcmVjb2duaXplZCIKI34gbXNnc3RyICK4wLjsyri7+s7zIGBcIiVzXCInIKTPx6e8saS1pOyk3qS7pPMiCgojfiBtc2dpZCAibm90IGVub3VnaCB0eXBlIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIsnUvb3KrKTKt7++8MrzIgoKI34gbXNnaWQgImludmFsaWQgb3BlcmF0aW9uIG9uIHVuaW5zdGFudGlhdGVkIHR5cGUiCiN+IG1zZ3N0ciAipaSl86W5pb+l86W5sr2ktaTspMqkpLe/pMvC0KS5pOvMtbj6pMrB4LrupMekuSIKCiN+IG1zZ2lkICJvYmplY3Qgc2l6ZSBleGNlZWRzIGJ1aWx0LWluIGxpbWl0IGZvciB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxlIGltcGxlbWVudGF0aW9uIgojfiBtc2dzdHIgIqWqpdaluKWnpa+lyKW1paSluqSsoaKyvsHbtNi/9KXGobyl1qXrvMLB9aTLwcik37n+pLOk3qTspL+ltaWkpbqk8sS2suGkt6TepLekvyIKCiN+IG1zZ2lkICJvYmplY3Qgc2l6ZSBleGNlZWRzIG5vcm1hbCBsaW1pdCBmb3IgdmlydHVhbCBmdW5jdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbiwgcmVjb21waWxlIGFsbCBzb3VyY2UgYW5kIHVzZSAtZmh1Z2Utb2JqZWN0cyIKI34gbXNnc3RyICKlqqXWpbilp6WvpciltaWkpbqkrKGisr7B27TYv/SlxqG8pdal67zCwfWkzsTMvu+kzsCpuMKk8sS2suGkt6S/pL+k4aGiwbSkxqTOpb2hvKW5pPIgLWZodWdlLW9iamVjdHMgpPK7yKTDpMa6xqWzpfOl0aWkpeukt6TGpK+kwKS1pKQiCgojfiBtc2dpZCAiZGVjbGFyYXRpb24gb2YgYCVzJyBzaGFkb3dzIGEgbWVtYmVyIG9mIGB0aGlzJyIKI34gbXNnc3RyICJgJXMnIKTOwOu4wKTLpOik6iBgdGhpcycgpM6l4aXzpdCkrMqkpKSxo6S1pOyk3qS5IgoKI34gbXNnaWQgImxhYmVsIGAlcycgcmVmZXJlbmNlZCBvdXRzaWRlIG9mIGFueSBmdW5jdGlvbiIKI34gbXNnc3RyICKl6aXZpesgYCVzJyCkrLTYv/SkzrOwwqakzrK/pKuk8ruyvsikt6TepLekvyIKCiN+IG1zZ2lkICJqdW1wIHRvIGNhc2UgbGFiZWwiCiN+IG1zZ3N0ciAiY2FzZSCl6aXZpeuky6W4peOl86XXpLekxqSkpN6kuSIKCiN+IG1zZ2lkICIgIGVudGVycyB0cnkgYmxvY2siCiN+IG1zZ3N0ciAiICB0cnkgpdal7aXDpa+ky8b+pOqk3qS5IgoKI34gbXNnaWQgIiAgZW50ZXJzIGNhdGNoIGJsb2NrIgojfiBtc2dzdHIgIiAgY2F0Y2ggpdal7aXDpa+ky8b+pOqk3qS5IgoKI34gbXNnaWQgIiAgZnJvbSBoZXJlIgojfiBtc2dzdHIgIiAgpLOks6SrpOkiCgojfiBtc2dpZCAidGhlIEFCSSByZXF1aXJlcyB2dGFibGUgdGh1bmtzIgojfiBtc2dzdHIgIkFCSSCkz7K+wdu02L/0pcahvKXWpeultaXzpa+k8s3XteGkt6TepLkiCgojfiBtc2dpZCAibXVsdGlwbGUgdHlwZXMgaW4gb25lIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrDspMSkzsDruMCky8qjv/Skzre/pKykoqTqpN6kuSIKCiN+IG1zZ2lkICJkZWNsYXJhdGlvbiBkb2VzIG5vdCBkZWNsYXJlIGFueXRoaW5nIgojfiBtc2dzdHIgIsDruMCkrLK/pOLA67jApLekxqSkpN6ku6TzIgoKI34gbXNnaWQgIk1pc3NpbmcgdHlwZS1uYW1lIGluIHR5cGVkZWYtZGVjbGFyYXRpb24uIgojfiBtc2dzdHIgInR5cGRlZiDA67jApMe3v8y+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBwcm9oaWJpdHMgYW5vbnltb3VzIHN0cnVjdHMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz8y1zL65vcKkws6k8rbYu9+kt6TGpKSk3qS5IgoKI34gbXNnaWQgImFzc2lnbm1lbnQgKG5vdCBpbml0aWFsaXphdGlvbikgaW4gZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiwOu4wKTOw+aky8Llxv4ovem0/LK9pMekz6TKpK8ppKykoqTqpN6kuSIKCiN+IG1zZ2lkICJpbnZhbGlkIGNhdGNoIHBhcmFtZXRlciIKI34gbXNnc3RyICLMtbj6pMogY2F0Y2ggpM6w+r/0IgoKI34gbXNnaWQgImNhbm5vdCBkZWNsYXJlIGA6Om1haW4nIHRvIGJlIGEgdGVtcGxhdGUiCiN+IG1zZ3N0ciAiYDo6bWFpbicgpPIgdGVtcGxhdGUgpMikt6TGpM/A67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJjYW5ub3QgZGVjbGFyZSBgOjptYWluJyB0byBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAiYDo6bWFpbicgpPIgaW5saW5lIKTIpLekxqTPwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgYDo6bWFpbicgdG8gYmUgc3RhdGljIgojfiBtc2dzdHIgImA6Om1haW4nIKTyIHN0YXRpYyCkyKS3pMakz8DruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgImBtYWluJyBtdXN0IHJldHVybiBgaW50JyIKI34gbXNnc3RyICJgbWFpbicgpM8gYGludCcgpPLK1qS1pMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIm92ZXJmbG93IGluIGFycmF5IGRpbWVuc2lvbiIKI34gbXNnc3RyICLH287zpM68obi1pKylqqG8pdChvKXVpe2hvKS3pN6kt6S/IgoKI34gbXNnaWQgImRlc3RydWN0b3JzIG11c3QgYmUgbWVtYmVyIGZ1bmN0aW9ucyIKI34gbXNnc3RyICKlx6W5pcil6aWvpb+kz6XhpfOl0LTYv/Skx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJgYm9vbCcgaXMgbm93IGEga2V5d29yZCIKI34gbXNnc3RyICJgYm9vbCcgpM+6o6Tkpa2hvKXvobylyaTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBkb2VzIG5vdCBzdXBwb3J0IGBsb25nIGxvbmcnIgojfiBtc2dzdHIgIklTTyBDKysgpM8gYGxvbmcgbG9uZycgpPK89aSxxv6k7KTepLuk8yIKCiN+IG1zZ2lkICJzaG9ydCwgc2lnbmVkIG9yIHVuc2lnbmVkIGludmFsaWQgZm9yIGAlcyciCiN+IG1zZ3N0ciAic2hvcnQsIMnkueekxKStpN6kv6TPyeS556TKpLekzyBgJXMnIKTLpMikw6TGzLW4+qTHpLkiCgojfiBtc2dpZCAibG9uZyBhbmQgc2hvcnQgc3BlY2lmaWVkIHRvZ2V0aGVyIGZvciBgJXMnIgojfiBtc2dzdHIgImxvbmcgpMggc2hvcnQgpKwgYCVzJyCky8LQpLekxrDsve+ky7vYxOqktaTspMakpKTepLkiCgojfiBtc2dpZCAic2lnbmVkIGFuZCB1bnNpZ25lZCBnaXZlbiB0b2dldGhlciBmb3IgYCVzJyIKI34gbXNnc3RyICLJ5LnnydWkraTIyeS558y1pLekrCBgJXMnIKTLwtCkt6TGsOy976TLzb+kqKTppOykxqSkpN6kuSIKCiN+IG1zZ2lkICJzdG9yYWdlIGNsYXNzIHNwZWNpZmllcnMgaW52YWxpZCBpbiBwYXJhbWV0ZXIgZGVjbGFyYXRpb25zIgojfiBtc2dzdHIgIrK+sPq/9MDruMCkzsPmpM61rbKxpa+l6aW5u9jE6rvSpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJ0eXBlZGVmIGRlY2xhcmF0aW9uIGludmFsaWQgaW4gcGFyYW1ldGVyIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIrK+sPq/9MDruMCkzsPmpM4gdHlwZWRlZiDA67jApM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJ2aXJ0dWFsIG91dHNpZGUgY2xhc3MgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAipa+l6aW5wOu4wKTOs7DCpqTHIHZpcnR1YWwgu9jE6qS3pMakpKTepLkiCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBzcGVjaWZpZWQgZm9yICVzIGAlcyciCiN+IG1zZ3N0ciAiJXMgpMvC0KS5pOu1rbKxpa+l6aW5u9jE6rvSIGAlcyciCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBzcGVjaWZpZXJzIGludmFsaWQgaW4gZnJpZW5kIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyIKI34gbXNnc3RyICJmcmllbmQgtNi/9MDruMDG4qTOta2ysaWvpemlubvYxOq70qTPzLW4+qTHpLkiCgojfiBtc2dpZCAiZGVzdHJ1Y3RvciBjYW5ub3QgYmUgc3RhdGljIG1lbWJlciBmdW5jdGlvbiIKI34gbXNnc3RyICKlx6W5pcil6aWvpb+k8sDFxaql4aXzpdC02L/0pMikuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJjb25zdHJ1Y3RvciBjYW5ub3QgYmUgc3RhdGljIG1lbWJlciBmdW5jdGlvbiIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TywMXFqqXhpfOl0LTYv/SkyKS5pOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgImNvbnN0cnVjdG9ycyBjYW5ub3QgYmUgZGVjbGFyZWQgdmlydHVhbCIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TPIHZpcnR1YWwgwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAicmV0dXJuIHZhbHVlIHR5cGUgc3BlY2lmaWVyIGZvciBjb25zdHJ1Y3RvciBpZ25vcmVkIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pMvC0KS5pOvM4aTqw82kzre/u9jE6qTPzLW766S1pOyk3qS3pL8iCgojfiBtc2dpZCAiY2FuJ3QgaW5pdGlhbGl6ZSBmcmllbmQgZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICJmcmllbmQgtNi/9CBgJXMnIKTyvem0/LK9pMekraTepLuk8yIKCiN+IG1zZ2lkICJ2aXJ0dWFsIGZ1bmN0aW9ucyBjYW5ub3QgYmUgZnJpZW5kcyIKI34gbXNnc3RyICKyvsHbtNi/9KTPIGZyaWVuZCCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiZnJpZW5kIGRlY2xhcmF0aW9uIG5vdCBpbiBjbGFzcyBkZWZpbml0aW9uIgojfiBtc2dzdHIgImZyaWVuZCDA67jApKylr6XppbnE6rXBpM7D5qTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJjYW5ub3QgZGVjbGFyZSAlcyB0byByZWZlcmVuY2VzIgojfiBtc2dzdHIgIiVzIKTyu7K+yKTIpLekxsDruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgdHlwZTogYHZvaWQgJiciCiN+IG1zZ3N0ciAizLW4+qTKt786IGB2b2lkICYnIgoKI34gbXNnaWQgImRpc2NhcmRpbmcgYGNvbnN0JyBhcHBsaWVkIHRvIGEgcmVmZXJlbmNlIgojfiBtc2dzdHIgIruyvsiky83RpKSk6aTspL8gYGNvbnN0JyCkz7zOpMak6aTspN6kuSIKCiN+IG1zZ2lkICJkaXNjYXJkaW5nIGB2b2xhdGlsZScgYXBwbGllZCB0byBhIHJlZmVyZW5jZSIKI34gbXNnc3RyICK7sr7IpMvN0aSkpOmk7KS/IGB2b2xhdGlsZScgpM+8zqTGpOmk7KTepLkiCgojfiBtc2dpZCAib25seSBkZWNsYXJhdGlvbnMgb2YgY29uc3RydWN0b3JzIGNhbiBiZSBgZXhwbGljaXQnIgojfiBtc2dzdHIgImBleHBsaWNpdCcgpMukx6StpOukzqTPoaKls6XzpbmlyKXppa+lv6TApLGkx6S5IgoKI34gbXNnaWQgIm5vbi1tZW1iZXIgYCVzJyBjYW5ub3QgYmUgZGVjbGFyZWQgYG11dGFibGUnIgojfiBtc2dzdHIgIsjzpeGl86XQIGAlcycgpPIgYG11dGFibGUnIKTIpM/A67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJub24tb2JqZWN0IG1lbWJlciBgJXMnIGNhbm5vdCBiZSBkZWNsYXJlZCBgbXV0YWJsZSciCiN+IG1zZ3N0ciAiyPOlqqXWpbilp6Wvpcil4aXzpdAgYCVzJyCk8iBgbXV0YWJsZScgpMikz8DruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIGAlcycgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJyIKI34gbXNnc3RyICK02L/0IGAlcycgpPIgYG11dGFibGUnIKTIpLekxqTPwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAic3RhdGljIGAlcycgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJyIKI34gbXNnc3RyICJzdGF0aWMgYCVzJyCk8iBtdXRhYmxlIKTIpLekxsDruMCkx6StpN6ku6TzIgoKI34gbXNnaWQgImNvbnN0IGAlcycgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJyIKI34gbXNnc3RyICJjb25zdCBgJXMnIKTyIGBtdXRhYmxlJyCkyKS3pMbA67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJ0eXBlZGVmIGRlY2xhcmF0aW9uIGluY2x1ZGVzIGFuIGluaXRpYWxpemVyIgojfiBtc2dzdHIgInR5cGVkZWYgwOu4wKSsvem0/MDfxOq70qTytN6k86THpKSk3qS5IgoKI34gbXNnaWQgInVubmFtZWQgdmFyaWFibGUgb3IgZmllbGQgZGVjbGFyZWQgdm9pZCIKI34gbXNnc3RyICLMtcy+ytG/9KTkpdWlo6G8peulyaSsIHZvaWQgpMjA67jApLWk7KTepLekvyIKCiN+IG1zZ2lkICJ2YXJpYWJsZSBvciBmaWVsZCBkZWNsYXJlZCB2b2lkIgojfiBtc2dzdHIgIsrRv/Sk3qS/pM+l1aWjobyl66XJpKwgdm9pZCCkyMDruMCktaTspN6kt6S/IgoKI34gbXNnaWQgImNhbm5vdCB1c2UgYDo6JyBpbiBwYXJhbWV0ZXIgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAisr6w+r/0wOu4wKTOw+akxyBgOjonIKTyu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGlzIG5laXRoZXIgZnVuY3Rpb24gbm9yIG1lbWJlciBmdW5jdGlvbjsgY2Fubm90IGJlIGRlY2xhcmVkIGZyaWVuZCIKI34gbXNnc3RyICJgJXMnIKTPtNi/9KTHpOKl4aXzpdC02L/0pMek4qSipOqk3qS7pPMgLS0gZnJpZW5kIKTIpM/A67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJtZW1iZXIgZnVuY3Rpb25zIGFyZSBpbXBsaWNpdGx5IGZyaWVuZHMgb2YgdGhlaXIgY2xhc3MiCiN+IG1zZ3N0ciAipeGl86XQtNi/9KTPsMXM28WqpMukvaTOpa+l6aW5pM4gZnJpZW5kIKTHpLkiCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBgYXV0bycgaW52YWxpZCBmb3IgZnVuY3Rpb24gYCVzJyIKI34gbXNnc3RyICK02L/0IGAlcycgpMvC0KS5pOu1rbKxpa+l6aW5IGBhdXRvJyCkz8y1uPqkx6S5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3MgYHJlZ2lzdGVyJyBpbnZhbGlkIGZvciBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgIrTYv/QgYCVzJyCky8LQpLmk67WtsrGlr6XppbkgYHJlZ2lzdGVyJyCkz8y1uPqkx6S5IgoKI34gbXNnaWQgInN0b3JhZ2UgY2xhc3MgYHN0YXRpYycgaW52YWxpZCBmb3IgZnVuY3Rpb24gYCVzJyBkZWNsYXJlZCBvdXQgb2YgZ2xvYmFsIHNjb3BlIgojfiBtc2dzdHIgIsLnsOiluaWzobyl17OwpM602L/0IGAlcycgpMvC0KS5pOu1rbKxpa+l6aW5IGBzdGF0aWMnIKTPzLW4+qTHpLkiCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBgaW5saW5lJyBpbnZhbGlkIGZvciBmdW5jdGlvbiBgJXMnIGRlY2xhcmVkIG91dCBvZiBnbG9iYWwgc2NvcGUiCiN+IG1zZ3N0ciAiwuew6KW5pbOhvKXXs7CkzrTYv/QgYCVzJyCky8LQpLmk67WtsrGlr6XppbkgYGlubGluZScgpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJ2aXJ0dWFsIG5vbi1jbGFzcyBmdW5jdGlvbiBgJXMnIgojfiBtc2dzdHIgInZpcnR1YWwgpMrI86WvpemlubTYv/QgYCVzJyIKCiN+IG1zZ2lkICJjYW5ub3QgZGVjbGFyZSBzdGF0aWMgZnVuY3Rpb24gaW5zaWRlIGFub3RoZXIgZnVuY3Rpb24iCiN+IG1zZ3N0ciAiwr6kzrTYv/TG4qTHIHN0YXRpYyC02L/0pPLA67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIGludGVnZXIgY29uc3RhbnQgaW4gcGFyYW1ldGVyIGxpc3QsIGRpZCB5b3UgZm9yZ2V0IHRvIGdpdmUgcGFyYW1ldGVyIG5hbWU/IgojfiBtc2dzdHIgIrK+sPq/9KXqpbmlyKTLzLW4+qTKwLC/9MTqv/SkrKSipOqk3qS5oaOyvrD6v/TMvqTyzb+kqMu6pOykv6TOpMekz6GpIgoKI34gbXNnaWQgImNvbnZlcnNpb24gdG8gJXMlcyB3aWxsIG5ldmVyIHVzZSBhIHR5cGUgY29udmVyc2lvbiBvcGVyYXRvciIKI34gbXNnc3RyICIlcyVzIKTYpM7K0bS5pMe3v8rRtLmx6bu7u9KkrM34zdGktaTspOuks6TIpM+36KS3pMakoqTqpN6ku6TzIgoKI34gbXNnaWQgInJldHVybiB0eXBlIGZvciBgbWFpbicgY2hhbmdlZCB0byBgaW50JyIKI34gbXNnc3RyICJgbWFpbicgpM4gcmV0dXJuILe/pM8gYGludCcgpMvK0aSopN6kt6S/IgoKI34gbXNnaWQgIi1mJXMgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIKI34gbXNnc3RyICItZiVzIKTPpOKkz6TkpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIi1maGFuZGxlLWV4Y2VwdGlvbnMgaGFzIGJlZW4gcmVuYW1lZCB0byAtZmV4Y2VwdGlvbnMgKGFuZCBpcyBub3cgb24gYnkgZGVmYXVsdCkiCiN+IG1zZ3N0ciAiLWZoYW5kbGUtZXhjZXB0aW9ucyCkzyAtZmV4Y2VwdGlvbiCky8rRubmktaTspN6kt6S/KKS1pOmky6XHpdWlqaXrpcikx82tuPqkx6S5KSIKCiN+IG1zZ2lkICItZm5hbWUtbWFuZ2xpbmctdmVyc2lvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIgojfiBtc2dzdHIgIi1mbmFtZS1tYW5nbGluZy12ZXJzaW9uIKTPpOKkz6TkpbWl3aG8pciktaTspN6ku6TzIgoKI34gbXNnaWQgIi1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgaXMgbm90IHN1cHBvcnRlZCBpbiBDKysiCiN+IG1zZ3N0ciAiLVduby1zdHJpY3QtcHJvdG90eXBlcyCkzyBDKysgpMekz7z1pLHJ1aSxpOmk7KTepLuk8yIKCiN+IG1zZ2lkICJuYW1lIG1pc3NpbmcgZm9yIG1lbWJlciBmdW5jdGlvbiIKI34gbXNnc3RyICKl4aXzpdC02L/0pM7MvsGwpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiYF9fYWxpZ25vZl9fJyBhcHBsaWVkIHRvIGEgYml0LWZpZWxkIgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmky8LQpLekxsWszdGktaTspL8gYF9fYWxpZ25vZl9fJyIKCiN+IG1zZ2lkICJwYXJzZXIgbWF5IGJlIGxvc3Q6IGlzIHRoZXJlIGEgJ3snIG1pc3Npbmcgc29tZXdoZXJlPyIKI34gbXNnc3RyICK5vcq4svLAz7TvpKzMwrvSpMukyqTDpL+k6KSmpMekuTogpMmks6SrpMcgJ3snIKTyy7qk7KTGpKSk66TOpMekz6GpIgoKI34gbXNnaWQgImFtYmlndW91cyBjb252ZXJzaW9uIGZvciBhcnJheSBzdWJzY3JpcHQiCiN+IG1zZ3N0ciAix9vO86TOxbq7+qTLwtCkuaTr26PL5qTKytG0uSIKCiN+IG1zZ2lkICJhbmFjaHJvbmlzdGljIHVzZSBvZiBhcnJheSBzaXplIGluIHZlY3RvciBkZWxldGUiCiN+IG1zZ3N0ciAipdmlr6XIpeukziBkZWxldGUgpMfH287zpbWlpKW6pPK7yKSmpM6kz8Gwu/7C5cWqpMekuSIKCiN+IG1zZ2lkICJjYW5ub3QgZGVsZXRlIGEgZnVuY3Rpb24uICBPbmx5IHBvaW50ZXItdG8tb2JqZWN0cyBhcmUgdmFsaWQgYXJndW1lbnRzIHRvIGBkZWxldGUnIgojfiBtc2dzdHIgIrTYv/SkzyBkZWxldGUgpMekraTepLuk86GjIKWqpdaluKWnpa+lyKTYpM6l3aWkpfOlv6TApLGkrCBgZGVsZXRlJyCw+r/0pMikt6TGza24+qTHpLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgaW52YWxpZCBmb3Igc3RhdGljIG1lbWJlciB3aXRoIGNvbnN0cnVjdG9yIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pM7AxcWqpeGl86XQvem0/LK9u9Kkz8y1uPqkx6S5IgoKI34gbXNnaWQgIihhbiBvdXQgb2YgY2xhc3MgaW5pdGlhbGl6YXRpb24gaXMgcmVxdWlyZWQpIgojfiBtc2dzdHIgIiilr6XppbmzsKTHpM696bT8sr2k8smszdekyKS3pN6kuSkiCgojfiBtc2dpZCAiZmllbGQgaW5pdGlhbGl6ZXIgaXMgbm90IGNvbnN0YW50IgojfiBtc2dzdHIgIqXVpaOhvKXrpcm96bT8wN/E6rvSpKzE6r/0pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiYW5vbnltb3VzIHN0cnVjdCBub3QgaW5zaWRlIG5hbWVkIHR5cGUiCiN+IG1zZ3N0ciAizLXMvrm9wqTCzqSszL7BsKTEpK23v6TOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAibmFtZXNwYWNlLXNjb3BlIGFub255bW91cyBhZ2dyZWdhdGVzIG11c3QgYmUgc3RhdGljIgojfiBtc2dzdHIgImFub251bW91cyDMvsGwtvW01qTOvbi558LOpM8gc3RhdGljIKTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImFub255bW91cyBhZ2dyZWdhdGUgd2l0aCBubyBtZW1iZXJzIgojfiBtc2dzdHIgIsy1zL62ps3Rws6ky6XhpfOl0KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0b28gbWFueSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgcmVxdWlyZWQiCiN+IG1zZ3N0ciAiyazN16TIpLWk7KTrvem0/LK9tNi/9KTOv/SkrMK/pLmkrqTepLkiCgojfiBtc2dpZCAidXNlIG9mIG9sZC1zdHlsZSBjYXN0IgojfiBtc2dzdHIgIrjFpKSluaW/paSl66TOpa2l46W5pcik8rvIzdGkt6TGpKSk3qS5IgoKI34gbXNnaWQgImAlcycgbm90IHN1cHBvcnRlZCBieSAlcyIKI34gbXNnc3RyICJgJXMnIKTPICVzIKTHpM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiPGFub255bW91cyAlcz4iCiN+IG1zZ3N0ciAiPMy1zL4gJXM+IgoKI34gbXNnaWQgIihzdGF0aWMgJXMgZm9yICVzKSIKI34gbXNnc3RyICIowMXFqiVzOiAlcyDN0SkiCgojfiBtc2dpZCAiSW4gJXMgYCVzJzoiCiN+IG1zZ3N0ciAiJXMgxuKkziBgJXMnOiIKCiN+IG1zZ2lkICIlczogSW4gaW5zdGFudGlhdGlvbiBvZiBgJXMnOlxuIgojfiBtc2dzdHIgIiVzOiBgJXMnIKTOvem0/LK9OlxuIgoKI34gbXNnaWQgIiVzOiVkOiAgIGluc3RhbnRpYXRlZCBmcm9tIGAlcydcbiIKI34gbXNnc3RyICIlczolZDogICBgJXMnIKSrpOm8wsLOsr2ktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiJXM6JWQ6ICAgaW5zdGFudGlhdGVkIGZyb20gaGVyZVxuIgojfiBtc2dzdHIgIiVzOiVkOiAgIKSzpLOkx7zCws6yvaS1pOyk3qS3pL9cbiIKCiN+IG1zZ2lkICJjYWxsIHRvIEphdmEgYGNhdGNoJyBvciBgdGhyb3cnIHdpdGggYGp0aHJvd2FibGUnIHVuZGVmaW5lZCIKI34gbXNnc3RyICJKYXZhIGBjYXRjaCcgpOQgYHRocm93JyCkrLjGpNCk7KTepLekv6SsoaJganRocm93YWJsZScgpM/MpMTqtcGkx6S5IgoKI34gbXNnaWQgIm1peGluZyBDKysgYW5kIEphdmEgY2F0Y2hlcyBpbiBhIHNpbmdsZSB0cmFuc2xhdGlvbiB1bml0IgojfiBtc2dzdHIgIkMrKyCkyCBKYXZhIKTOIGBjYXRjaCcgpPKw7KTEpM7L3cz1pealy6XDpciky6TepMik4aTepLkiCgojfiBtc2dpZCAiKGlmIHRoaXMgaXMgbm90IHdoYXQgeW91IGludGVuZGVkLCBtYWtlIHN1cmUgdGhlIGZ1bmN0aW9uIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQgYW5kIGFkZCA8PiBhZnRlciB0aGUgZnVuY3Rpb24gbmFtZSBoZXJlKSAtV25vLW5vbi10ZW1wbGF0ZS1mcmllbmQgZGlzYWJsZXMgdGhpcyB3YXJuaW5nLiIKI34gbXNnc3RyICKhyqTipLeks6TspKykoqTKpL+kzrDVv96kt6S/pOKkzqTHpMqksaTspNChorTYv/SlxqXzpdel7KG8pcikz7T7pMvA67jAutGkx6SipOu79qTys87Hp6S3oaKks6SzpM602L/0zL6kzrjlpO2kyyA8PiCk8snVpLHCraS3pMakr6TApLWkpKHLIC1Xbm8tbm9uLXRlbXBsYXRlLWZyaWVuZCCkx6SzpM632bnwyb28qKTyzLW4+qTLpLek3qS5IgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAlcycgbWlzc2luZ1xuIgojfiBtc2dzdHIgImAlcycgpNikzrD6v/Sk8rfnpKSkxqSkpN6kuVxuIgoKI34gbXNnaWQgImluaXRpYWxpemVyIGxpc3QgdHJlYXRlZCBhcyBjb21wb3VuZCBleHByZXNzaW9uIgojfiBtc2dzdHIgIr3ptPyyvbvSpeqluaXIpM/Ko7nnvLCkyKS3pMa86KTqsLek76TspN6kt6S/IgoKI34gbXNnaWQgIiAgd2lsbCBiZSByZS1vcmRlcmVkIHRvIG1hdGNoIGRlY2xhcmF0aW9uIG9yZGVyIgojfiBtc2dzdHIgIiAgwOu4wL3npMiw7MPXpLmk66TopKaky8rCpNPC2KSopOmk7KTepLkiCgojfiBtc2dpZCAiICB3aWxsIGJlIHJlLW9yZGVyZWQgdG8gbWF0Y2ggaW5oZXJpdGFuY2Ugb3JkZXIiCiN+IG1zZ3N0ciAiICDHycC4veekyLDsw9ekuaTrpOikpqTLysKk2cLYpKik6aTspN6kuSIKCiN+IG1zZ2lkICJiYXNlIGNsYXNzIGluaXRpYWxpemVyIHNwZWNpZmllZCwgYnV0IG5vIGJhc2UgY2xhc3MgdG8gaW5pdGlhbGl6ZSIKI34gbXNnc3RyICK08MTspa+l6aW5vem0/MDfxOq70qSsu9jE6qS1pOyk3qS3pL+krKGivem0/LK9pLmk2aSttPDE7KWvpemluaSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBmb3IgdW5uYW1lZCBiYXNlIGNsYXNzIGFtYmlndW91cyIKI34gbXNnc3RyICLMtcy+tPDE7KWvpemluaTOvem0/MDfxOq70qSs26PL5qTHpLkiCgojfiBtc2dpZCAibm8gYmFzZSBjbGFzcyB0byBpbml0aWFsaXplIgojfiBtc2dzdHIgIr3ptPyyvaS5pNmkrbTwxOylr6XppbmkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAib2JqZWN0IG1pc3NpbmcgaW4gdXNlIG9mIHBvaW50ZXItdG8tbWVtYmVyIGNvbnN0cnVjdCIKI34gbXNnc3RyICKl4aXzpdCk2KTOpd2lpKXzpb+5vcPbpM67yM3RpMelqqXWpbilp6Wvpcik8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJhdCB0aGlzIHBvaW50IGluIGZpbGUiCiN+IG1zZ3N0ciAipdWloaWkpeukzqSzpM6wzMPWIgoKI34gbXNnaWQgIm5ldyBvZiBhcnJheSB0eXBlIGZhaWxzIHRvIHNwZWNpZnkgc2l6ZSIKI34gbXNnc3RyICLH287zt7+kziBuZXcgpM+ltaWkpbqkzrvYxOqky7y6x9Skt6TepLkiCgojfiBtc2dpZCAic2l6ZSBpbiBhcnJheSBuZXcgbXVzdCBoYXZlIGludGVncmFsIHR5cGUiCiN+IG1zZ3N0ciAix9vO8yBuZXcgpMekzqW1paSluqTPtLDBtKTKt7+k8rv9pL+kzaTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJ6ZXJvIHNpemUgYXJyYXkgcmVzZXJ2ZXMgbm8gc3BhY2UiCiN+IG1zZ3N0ciAipbWlpKW6pbyl7aTOx9vO86TPtvW01qTys87K3aS3pN6ku6TzIgoKI34gbXNnaWQgIm5ldyBjYW5ub3QgYmUgYXBwbGllZCB0byBhIHJlZmVyZW5jZSB0eXBlIgojfiBtc2dzdHIgIruyvsi3v6TLwtCkt6TGIG5ldyCk8sWszdGkx6StpN6ku6TzIgoKI34gbXNnaWQgIm5ldyBjYW5ub3QgYmUgYXBwbGllZCB0byBhIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAitNi/9Le/pMvC0KS3pMYgbmV3IKTyxazN0aTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2FsbCB0byBKYXZhIGNvbnN0cnVjdG9yLCB3aGlsZSBgamNsYXNzJyB1bmRlZmluZWQiCiN+IG1zZ3N0ciAiSmF2YSCls6XzpbmlyKXppa+lv6SsuMak0KTspN6kt6S/pKyhomBqY2xhc3MnIKTPzKTE6rXBpMekuSIKCiN+IG1zZ2lkICJDYW4ndCBmaW5kIGNsYXNzJCIKI34gbXNnc3RyICJjbGFzcyQgpKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIHR5cGUgYHZvaWQnIGZvciBuZXciCiN+IG1zZ3N0ciAibmV3IKTLwtCkt6TGzLW4+qTKt7+kx6SipOsgYHZvaWQnIgoKI34gbXNnaWQgImNhbGwgdG8gSmF2YSBjb25zdHJ1Y3RvciB3aXRoIGAlcycgdW5kZWZpbmVkIgojfiBtc2dzdHIgIkphdmEgpbOl86W5pcil6aWvpb+krLjGpNCk7KTepLekv6SsoaJgJXMnIKTPzKTE6rXBpMekuSIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBsaXN0IGJlaW5nIHRyZWF0ZWQgYXMgY29tcG91bmQgZXhwcmVzc2lvbiIKI34gbXNnc3RyICK96bT8sr270qXqpbmlyKSsyqO557ywpMikt6TGvOik6rC3pO+k7KTopKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGFnZ3JlZ2F0ZSBpbml0aWFsaXplciB0byBuZXciCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyBuZXcgpNikzr24uefCzr3ptPyyvbvSpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBlbmRzIHByZW1hdHVyZWx5IgojfiBtc2dzdHIgIr3ptPzA38Tqu9Kkzsv2yPikrMvczeik6KTqweGkr73QuL2kt6TepLekvyIKCiN+IG1zZ2lkICJjYW5ub3QgaW5pdGlhbGl6ZSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheSB3aXRoIGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsK/vKG4tcfbzvOkz73ptPyyvbvSpMe96bT8sr2kuaTrpLOkyKSspMekraTepLuk8yIKCiN+IG1zZ2lkICJ1bmtub3duIGFycmF5IHNpemUgaW4gZGVsZXRlIgojfiBtc2dzdHIgImRlbGV0ZSCkx6TOx9vO86W1paSluqSsydTMwKTHpLkiCgojfiBtc2dpZCAidHlwZSB0byB2ZWN0b3IgZGVsZXRlIGlzIG5laXRoZXIgcG9pbnRlciBvciBhcnJheSB0eXBlIgojfiBtc2dzdHIgIqXZpa+lyKXrt7+kziBkZWxldGUgpMekuaSsoaKl3aWkpfOlv6THpOLH287zt7+kx6TipKKk6qTepLuk8yIKCiN+IG1zZ2lkICJEbyBub3Qgb2JleSBhY2Nlc3MgY29udHJvbCBzZW1hbnRpY3MiCiN+IG1zZ3N0ciAipaKlr6W7pbnAqbjmpM6w1cyjpMu9vqTvpMqkpCIKCiN+IG1zZ2lkICJDaGFuZ2Ugd2hlbiB0ZW1wbGF0ZSBpbnN0YW5jZXMgYXJlIGVtaXR0ZWQiCiN+IG1zZ3N0ciAipcal86XXpeyhvKXIpaSl86W5pb+l86W5pKzB973QpLWk7KS/u/6ky8rRubmkuaTrIgoKI34gbXNnaWQgIkNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgbmV3IgojfiBtc2dzdHIgIm5ldyCkzszhpOrDzaTyuKG6uqS5pOsiCgojfiBtc2dpZCAiUmVkdWNlIHNpemUgb2Ygb2JqZWN0IGZpbGVzIgojfiBtc2dzdHIgIqWqpdaluKWnpa+lyKXVpaGlpKXrpM6ltaWkpbqk8r6upLWkr6S5pOsiCgojfiBtc2dpZCAiTWFrZSBzdHJpbmcgbGl0ZXJhbHMgYGNoYXJbXScgaW5zdGVhZCBvZiBgY29uc3QgY2hhcltdJyIKI34gbXNnc3RyICLKuLv6zvOl6qXGpeml66TyIGBjb25zdCBjaGFyW10nIKTOwuWk76TqpMsgYGNoYXJbXScgpMikuaTrIgoKI34gbXNnaWQgIkR1bXAgdGhlIGVudGlyZSB0cmFuc2xhdGlvbiB1bml0IHRvIGEgZmlsZSIKI34gbXNnc3RyICLL3cz1w7GwzMG0ws6k8qXVpaGlpKXrpMulwKXzpdekuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBpbmxpbmUgbWVtYmVyIGZ1bmN0aW9ucyBieSBkZWZhdWx0IgojfiBtc2dzdHIgIqXhpfOl0LTYv/Sk8qXHpdWlqaXrpcikx6WkpfOl6aWkpfOkyKS3pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgZ2VuZXJhdGUgcnVuIHRpbWUgdHlwZSBkZXNjcmlwdG9yIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIrzCudS7/re/ta290r7wyvOk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIGNvZGUgdG8gY2hlY2sgZXhjZXB0aW9uIHNwZWNpZmljYXRpb25zIgojfiBtc2dzdHIgIs7js7C7xc3NpM64obq6pPKkuaTrpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIlNjb3BlIG9mIGZvci1pbml0LXN0YXRlbWVudCB2YXJzIGV4dGVuZHMgb3V0c2lkZSIKI34gbXNnc3RyICJmb3Igvem0/LK9yrikzsrRv/Sk8qW5pbOhvKXXs7Cky7PIwuekuaTrIgoKI34gbXNnaWQgIkRvIG5vdCByZWNvZ25pc2UgR05VIGRlZmluZWQga2V5d29yZHMiCiN+IG1zZ3N0ciAiR05VIMTqtcGkzs29zPO47KTyx6e8saS1pLukyqSkIgoKI34gbXNnaWQgIkRvIG5vdCB0cmVhdCB0aGUgbmFtZXNwYWNlIGBzdGQnIGFzIGEgbm9ybWFsIG5hbWVzcGFjZSIKI34gbXNnc3RyICLMvsGwtvW01iBgc3RkJyCk8sTMvu+kzsy+wbC29bTWpMikt6TGvOik6rC3pO+kyqSkIgoKI34gbXNnaWQgIkVuYWJsZSBzdXBwb3J0IGZvciBodWdlIG9iamVjdHMiCiN+IG1zZ3N0ciAiwuekraTKpaql1qW4paelr6XIpM6ltaXdobylyCIKCiN+IG1zZ2lkICJFeHBvcnQgZnVuY3Rpb25zIGV2ZW4gaWYgdGhleSBjYW4gYmUgaW5saW5lZCIKI34gbXNnc3RyICKlpKXzpemlpKXzpMukx6StpOu02L/0pMek4iBleHBvcnQgpLmk6yIKCiN+IG1zZ2lkICJPbmx5IGVtaXQgZXhwbGljaXQgdGVtcGxhdGUgaW5zdGF0aWF0aW9ucyIKI34gbXNnc3RyICLMwLyoxaqkyqXGpfOl16XsobylyLzCws6yvaTOpN+k8sC4wK6kuaTrIgoKI34gbXNnaWQgIk9ubHkgZW1pdCBleHBsaWNpdCBpbnN0YXRpYXRpb25zIG9mIGlubGluZSB0ZW1wbGF0ZXMiCiN+IG1zZ3N0ciAipaSl86XppaSl86XGpfOl16XsobylyKTOzMC8qMWqpMq8wsLOsr2kzqTfpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEb24ndCBwZWR3YXJuIGFib3V0IHVzZXMgb2YgTWljcm9zb2Z0IGV4dGVuc2lvbnMiCiN+IG1zZ3N0ciAiTWljcm9zb2Z0ILPIxKWkzs34zdGky7TYpLekxiBwZWRhbnRpYyC32bnwpPK51KTvpMqkpCIKCiN+IG1zZ2lkICJSZWNvZ25pc2UgYW5kL2JpdGFuZC9iaXRvci9jb21wbC9ub3Qvb3IveG9yIgojfiBtc2dzdHIgImFuZC9iaXRhbmQvYml0b3IvY29tcGwvbm90L29yL3hvciCk8senvLGkuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgb3B0aW9uYWwgZGlhZ25vc3RpY3MiCiN+IG1zZ3N0ciAipaql16W3peel86TOv8fDx6XhpcOlu6G8pbik8sm9vKikt6TKpKQiCgojfiBtc2dpZCAiRG93bmdyYWRlIGNvbmZvcm1hbmNlIGVycm9ycyB0byB3YXJuaW5ncyIKI34gbXNnc3RyICK1rLPKxay558Ctpail6aG8pPK32bnwpMuzyrK8pLKkuaTrIgoKI34gbXNnaWQgIkVuYWJsZSBhdXRvbWF0aWMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbiIKI34gbXNnc3RyICK8q8awpcal86XXpeyhvKXIvMLCzrK9pPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIkRpc3BsYXkgc3RhdGlzdGljcyBhY2N1bXVsYXRlZCBkdXJpbmcgY29tcGlsYXRpb24iCiN+IG1zZ3N0ciAipbOl86XRpaSl68PmpMvD38DRpLWk7KS/xf23177wyvOk8sm9vKikuaTrIgoKI34gbXNnaWQgIlNwZWNpZnkgbWF4aW11bSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIGRlcHRoIgojfiBtc2dzdHIgIqXGpfOl16XsobylyLzCws6yvaTOv7yktaTOusfC58PNpPK72MTqpLmk6yIKCiN+IG1zZ2lkICJVc2UgX19jeGFfYXRleGl0IHRvIHJlZ2lzdGVyIGRlc3RydWN0b3JzLiIKI34gbXNnc3RyICKlx6W5pcil6aWvpb+kzsXQz7+kyyBfX2N4YV9hdGV4aXQgpPLN+M3RpLmk6yIKCiN+IG1zZ2lkICJEaXNjYXJkIHVudXNlZCB2aXJ0dWFsIGZ1bmN0aW9ucyIKI34gbXNnc3RyICK7yKTvpOykyqSksr7B27TYv/Sk8sDapOq8zqTGpOsiCgojfiBtc2dpZCAiSW1wbGVtZW50IHZ0YWJsZXMgdXNpbmcgdGh1bmtzIgojfiBtc2dzdHIgInRodW5rIKTyu8ikw6TGIHZ0YWJsZSCk8rzCwfWkuaTrIgoKI34gbXNnaWQgIkVtaXQgY29tbW9uLWxpa2Ugc3ltYm9scyBhcyB3ZWFrIHN5bWJvbHMiCiN+IG1zZ3N0ciAipbOl4qXzpbel86Xcpeuk8qWmpaOhvKWvpbel86Xcpeukzs3NpMvAuMCupLmk6yIKCiN+IG1zZ2lkICJFbWl0IGNyb3NzIHJlZmVyZW5jaW5nIGluZm9ybWF0aW9uIgojfiBtc2dzdHIgIsHquN+7sr7IvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBpbmNvbnNpc3RlbnQgcmV0dXJuIHR5cGVzIgojfiBtc2dzdHIgIszhpOrDzaTOt7+kyLDsw9ekt6TKpKSk4qTOpMukxKSkpMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IG92ZXJsb2FkZWQgdmlydHVhbCBmdW5jdGlvbiBuYW1lcyIKI34gbXNnc3RyICKlqqG8pdChvKXtobylyaS1pOykv7K+wdu02L/0zL6ky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIkRvbid0IHdhcm4gd2hlbiBhbGwgY3RvcnMvZHRvcnMgYXJlIHByaXZhdGUiCiN+IG1zZ3N0ciAiwbSkxqTOpbOl86W5pcil6aWvpb8vpceluaXIpemlr6W/pKwgcHJpdmF0ZSCkx6Tit9m58KS3pMqkpCIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IG5vbiB2aXJ0dWFsIGRlc3RydWN0b3JzIgojfiBtc2dzdHIgIsjzsr7B26XHpbmlyKXppa+lv6TLpMSkpKTGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGEgZnVuY3Rpb24gaXMgZGVjbGFyZWQgZXh0ZXJuLCB0aGVuIGlubGluZSIKI34gbXNnc3RyICK02L/0pKwgZXh0ZXJuIMDruMCktaTspL+45aGiaW5saW5lIKTIpLWk7KS/vuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIHRoZSBjb21waWxlciByZW9yZGVycyBjb2RlIgojfiBtc2dzdHIgIqWzpfOl0aWkpemkrKWzobylyaTyysKk2cLYpKik66TIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBzeW50aGVzaXMgYmVoYXZpb3VyIGRpZmZlcnMgZnJvbSBDZnJvbnQiCiN+IG1zZ3N0ciAiuefArqTOv7ak68nxpKSkrCBDZnJvbnQgpMiw26TKpOu+7LnnpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB3YXJuIHdoZW4gdHlwZSBjb252ZXJ0aW5nIHBvaW50ZXJzIHRvIG1lbWJlciBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAipd2lpKXzpb+kq6TppeGl86XQtNi/9KTYpM63v8rRtLmkzr7sueekx6Tit9m58KS3pMqkpCIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHZpb2xhdGlvbnMgb2YgRWZmZWN0aXZlIEMrKyBzdHlsZSBydWxlcyIKI34gbXNnc3RyICJFZmZlY3RpdmUgQysrILywpM672L/LpKuk6aTPpLqk7KTrpOKkzqTLpMSkpKTGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIG92ZXJsb2FkIHByb21vdGVzIGZyb20gdW5zaWduZWQgdG8gc2lnbmVkIgojfiBtc2dzdHIgIqWqobyl0KG8pe2hvKXJpKzJ5LnnzLWkt6SrpOnJ5LnnydWkraTLs8q+5aSypMikyqTrvuy556TLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBpZiBhIEMgc3R5bGUgY2FzdCBpcyB1c2VkIGluIGEgcHJvZ3JhbSIKI34gbXNnc3RyICJDILywpM6lraXjpbmlyKSspdel7aWwpeml4KTHu8ik76TspL+k6bfZufCkuaTrIgoKI34gbXNnaWQgIkRvbid0IHdhcm4gd2hlbiBub24tdGVtcGxhdGl6ZWQgZnJpZW5kIGZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgd2l0aGluIGEgdGVtcGxhdGUiCiN+IG1zZ3N0ciAidGVtcGxhdGUgxuKkx8jzIHRlbXBsYXRlIKTOIGZyaWVuZCC02L/0pKzA67jApLWk7KS/vuy556THpOK32bnwpLekyqSkIgoKI34gbXNnaWQgIkRvbid0IGFubm91bmNlIGRlcHJlY2F0aW9uIG9mIGNvbXBpbGVyIGZlYXR1cmVzIgojfiBtc2dzdHIgIr/kvqmktaTspMqkpKWzpfOl0aWkpemkzrWhx72k8rnww86kt6TKpKQiCgojfiBtc2dpZCAidHlwZSBuYW1lIGV4cGVjdGVkIGJlZm9yZSBgKiciCiN+IG1zZ3N0ciAiYConIKTOwbCky7e/pM7MvsGwpKykoqTrpNmkraTHpLkiCgojfiBtc2dpZCAiY2Fubm90IGRlY2xhcmUgcmVmZXJlbmNlcyB0byByZWZlcmVuY2VzIgojfiBtc2dzdHIgIruyvsik8ruyvsikyKS3pMbA67jApMekraTepLuk8yIKCiN+IG1zZ2lkICJjYW5ub3QgZGVjbGFyZSBwb2ludGVycyB0byByZWZlcmVuY2VzIgojfiBtc2dzdHIgIqXdpaSl86W/pPK7sr7IpMikt6TGwOu4wKTHpK2k3qS7pPMiCgojfiBtc2dpZCAidHlwZSBuYW1lIGV4cGVjdGVkIGJlZm9yZSBgJiciCiN+IG1zZ3N0ciAiYCYnIKTOwbCky7e/pM7MvsGwpKykoqTrpNmkraTHpLkiCgojfiBtc2dpZCAic2VtaWNvbG9uIG1pc3NpbmcgYWZ0ZXIgJXMgZGVjbGFyYXRpb24iCiN+IG1zZ3N0ciAiJXMgwOu4wKTOuOWk7aTOpbul36Wzpe2l86Tyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgJXMiCiN+IG1zZ3N0ciAiI3ByYWdtYSAlcyCkzsv2yPiky6W0pd8iCgojfiBtc2dpZCAiaW52YWxpZCAjcHJhZ21hICVzIgojfiBtc2dzdHIgIsy1uPqkyiAjcHJhZ21hICVzIKTHpLkiCgojfiBtc2dpZCAiI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiBmb3IgJXMgYXBwZWFycyBhZnRlciBmaWxlIGlzIGluY2x1ZGVkIgojfiBtc2dzdHIgIiVzIKTYpM4gI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiCkz6XVpaGlpKXrpKwgaW5jbHVkZSCktaTspL+45aTHvdC4vaS3pN6kt6S/IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mICNwcmFnbWEgR0NDIGphdmFfZXhjZXB0aW9ucyIKI34gbXNnc3RyICIjcHJhZ21hIEdDQyBqYXZhX2V4Y2VwdGlvbnMgpM7L9sj4pMultKXfIgoKI34gbXNnaWQgIihFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pIgojfiBtc2dzdHIgIijMpMDruMDK0b/0pMukxKSkpMakz6GipL2k7KSstNi/9MbipMe6x73ppMu4vaTvpOykv7v+pMCkscrzufCktaTspN6kuaGjKSIKCiN+IG1zZ2lkICJuYW1lIGxvb2t1cCBvZiBgJXMnIGNoYW5nZWQiCiN+IG1zZ3N0ciAiYCVzJyCkzsy+wbCw+qStpM/K0bm5pLWk7KTepLekvyIKCiN+IG1zZ2lkICJuYW1lIGxvb2t1cCBvZiBgJXMnIGNoYW5nZWQgZm9yIG5ldyBJU08gYGZvcicgc2NvcGluZyIKI34gbXNnc3RyICJgJXMnIKTOzL7BsLD6pK2kz7+3pL+kyiBJU08gYGZvcicgpbmls6G8pdeky8rRpO+k6qTepLekvyIKCiN+IG1zZ2lkICJyZWFsLXZhbHVlZCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIgojfiBtc2dzdHIgIqWvpe2luaWzpfOl0aWkpeu7/qTOvMK/9MPNpcal86XXpeyhvKXIsr6w+r/0IgoKI34gbXNnaWQgIm1ldGhvZHMgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBmdW5jdGlvbiBwb2ludGVycyIKI34gbXNnc3RyICKl4aW9pcOlyaTPtNi/9KXdpaSl86W/pMvK0bS5pMekraTepLuk8yIKCiN+IG1zZ2lkICJhbWJpZ3VvdXMgcmVxdWVzdCBmb3IgbWV0aG9kIHBvaW50ZXIgYCVzJyIKI34gbXNnc3RyICKl4aW9pcOlyaXdpaSl86W/IGAlcycgpNikzs3XteGkrNujy+akx6S5IgoKI34gbXNnaWQgImludmFsaWQgZGVmYXVsdCB0ZW1wbGF0ZSBhcmd1bWVudCIKI34gbXNnc3RyICLMtbj6pMqlx6XVpaml66XIpcal86XXpeyhvKXIsPq/9CIKCiN+IG1zZ2lkICJubyBiYXNlIG9yIG1lbWJlciBpbml0aWFsaXplcnMgZ2l2ZW4gZm9sbG93aW5nICc6JyIKI34gbXNnc3RyICK08MTspOSl4aXzpdC96bT8sr270qXqpbmlyKSsICc6JyCkzrjlpMvCs6SkpMakpKTepLuk8yIKCiN+IG1zZ2lkICJiYXNlIGluaXRpYWxpemVycyBub3QgYWxsb3dlZCBmb3Igbm9uLW1lbWJlciBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAivem0/LK9u9Kl6qW5pcikz8jzpeGl86XQtNi/9KTHpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgIm9ubHkgY29uc3RydWN0b3JzIHRha2UgYmFzZSBpbml0aWFsaXplcnMiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kt6SrtPDE7L3ptPyyvbvSpeqluaXIpPKkyKTqpN6ku6TzIgoKI34gbXNnaWQgImFuYWNocm9uaXN0aWMgb2xkIHN0eWxlIGJhc2UgY2xhc3MgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAiwbC7/sLlxaqkyrjFpKSluaW/paSl66TOtPDE7KWvpemlub3ptPyyvbvSpMekuSIKCiN+IG1zZ2lkICJgPj4nIHNob3VsZCBiZSBgPiA+JyBpbiB0ZW1wbGF0ZSBjbGFzcyBuYW1lIgojfiBtc2dzdHIgImA+PicgpM+lxqXzpdel7KG8pcilr6XppbnMvqTPIGA+ID4nIKTIpLmk2aStpMekuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYW4gZW1wdHkgY29uZGl0aW9uIGZvciBgJXMnIgojfiBtc2dzdHIgIklTTyBDKysgpM8gYCVzJyCky8LQpLmk67b1pM6+8rfvpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYCYmJyIKI34gbXNnc3RyICJJU08gQysrIKTPIGAmJicgpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgaW5pdGlhbGl6YXRpb24gb2YgbmV3IGV4cHJlc3Npb24gd2l0aCBgPSciCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyBuZXcgvLCkzr3ptPyyvaTHpM4gYD0nIKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNvbXBvdW5kIGxpdGVyYWxzIgojfiBtc2dzdHIgIklTTyBDKysgpM/Ko7nnpeqlxqXppeuk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBicmFjZWQtZ3JvdXBzIHdpdGhpbiBleHByZXNzaW9ucyIKI34gbXNnc3RyICJJU08gQysrIKTPpdal7KG8pbmkx6TepMik4aTppOykv7ywpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJzaWdvZiB0eXBlIHNwZWNpZmllciIKI34gbXNnc3RyICK3v7vYxOq70qTOIHNpZ29mIKTHpLkiCgojfiBtc2dpZCAiYHNpZ29mJyBhcHBsaWVkIHRvIG5vbi1hZ2dyZWdhdGUgZXhwcmVzc2lvbiIKI34gbXNnc3RyICLI8724uefCzrywpMvC0KS3pMbFrM3RpLWk7KS/IGBzaWdvZiciCgojfiBtc2dpZCAiYHNpZ29mJyBhcHBsaWVkIHRvIG5vbi1hZ2dyZWdhdGUgdHlwZSIKI34gbXNnc3RyICLI8724uefCzre/pMvC0KS3pMbFrM3RpLWk7KS/IGBzaWdvZiciCgojfiBtc2dpZCAic3RvcmFnZSBjbGFzcyBzcGVjaWZpZXIgYCVzJyBub3QgYWxsb3dlZCBhZnRlciBzdHJ1Y3Qgb3IgY2xhc3MiCiN+IG1zZ3N0ciAita2ysaWvpemlubvYxOq70iBgJXMnIKTPIHN0cnVjdCCk5CBjbGFzcyCkzrjlpMukz7vIpKik3qS7pPMiCgojfiBtc2dpZCAidHlwZSBzcGVjaWZpZXIgYCVzJyBub3QgYWxsb3dlZCBhZnRlciBzdHJ1Y3Qgb3IgY2xhc3MiCiN+IG1zZ3N0ciAit7+72MTqu9IgYCVzJyCkzyBzdHJ1Y3QgpOQgY2xhc3MgpM645aTLpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgInR5cGUgcXVhbGlmaWVyIGAlcycgbm90IGFsbG93ZWQgYWZ0ZXIgc3RydWN0IG9yIGNsYXNzIgojfiBtc2dzdHIgIre/vaS+/rvSIGAlcycgpM8gc3RydWN0IKTkIGNsYXNzIKTOuOWky6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJubyBib2R5IG5vciAnOycgc2VwYXJhdGVzIHR3byBjbGFzcywgc3RydWN0IG9yIHVuaW9uIGRlY2xhcmF0aW9ucyIKI34gbXNnc3RyICLL3MLOpKykyqSvoaJjbGFzcywgc3RydWN0ILC/pKSkzyB1bmlvbiDA67jApPK26MDapOsgJzsnIKTipKKk6qTepLuk8yIKCiN+IG1zZ2lkICJtdWx0aXBsZSBhY2Nlc3Mgc3BlY2lmaWVycyIKI34gbXNnc3RyICK9xcqjpLmk66Wipa+lu6W5u9jE6rvSIgoKI34gbXNnaWQgIm11bHRpcGxlIGB2aXJ0dWFsJyBzcGVjaWZpZXJzIgojfiBtc2dzdHIgIr3FyqOkuaTrIGB2aXJ0dWFsJyC72MTqu9IiCgojfiBtc2dpZCAibWlzc2luZyAnOycgYmVmb3JlIHJpZ2h0IGJyYWNlIgojfiBtc2dzdHIgIrGmwqal1qXsobyluaTOwbCkziAnOycgpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGFycmF5IGRpbWVuc2lvbnMgd2l0aCBwYXJlbnRoZXNpemVkIHR5cGUgaW4gbmV3IgojfiBtc2dzdHIgIklTTyBDKysgpM8gbmV3IMPmpMekz6Gis+e4zKTOpMSkpKS/x9vO87yhuLWk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBsYWJlbCBkZWNsYXJhdGlvbnMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6Xppdml68DruMCk8rbYpLikxqSkpN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgY29tcHV0ZWQgZ290b3MiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7fXu7u3vyBnb3RvIKTyttikuKTepLkiCgojfiBtc2dpZCAibGFiZWwgbXVzdCBiZSBmb2xsb3dlZCBieSBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAipeml2aXrpM645aTtpMukz8q4pKzJrM3XpMekuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgY29tcG91bmQgc3RhdGVtZW50cyBpbnNpZGUgZm9yIGluaXRpYWxpemF0aW9ucyIKI34gbXNnc3RyICJJU08gQysrIL3ptPyyvbvSpM7G4sn0pMekz8qjyrikrLbYpLik6aTspMakpKTepLkiCgojfiBtc2dpZCAicG9zc2libHkgbWlzc2luZyAnKSciCiN+IG1zZ3N0ciAipKqkvaTppK8gJyknIKTyy7qk7KTGpKSk3qS5IgoKI34gbXNnaWQgInR5cGUgc3BlY2lmaWVyIG9taXR0ZWQgZm9yIHBhcmFtZXRlciIKI34gbXNnc3RyICK3v7vYxOq70qTPsr6w+r/0zdGky77KzqyktaTspN6kt6S/IgoKI34gbXNnaWQgImNyZWF0aW5nIGFycmF5IHdpdGggc2l6ZSB6ZXJvIgojfiBtc2dzdHIgIsLnpK2ktaW8pe2kzsfbzvOk8rrupO2kpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJ1c2Ugb2YgYCVzJyBpbiB0ZW1wbGF0ZSIKI34gbXNnc3RyICKlxqXzpdel7KG8pcjG4qTHIGAlcycgpPK7yM3RpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJpbmNvbXBsZXRlIHR5cGUgdW5pZmljYXRpb24iCiN+IG1zZ3N0ciAiydS0sMG0pMq3v6TOw7Gw7LK9IgoKI34gbXNnaWQgInVzZSBvZiBgJXMnIGluIHRlbXBsYXRlIHR5cGUgdW5pZmljYXRpb24iCiN+IG1zZ3N0ciAipcal86XXpeyhvKXIt7/F/bDsw+YgYCVzJyCkrLvIzdGktaTspN6kt6S/IgoKI34gbXNnaWQgIi1mcmVwbyBtdXN0IGJlIHVzZWQgd2l0aCAtYyIKI34gbXNnc3RyICItZnJlcG8gpM8gLWMgydWkraTHpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgIm15c3RlcmlvdXMgcmVwb3NpdG9yeSBpbmZvcm1hdGlvbiBpbiAlcyIKI34gbXNnc3RyICIlcyCky8nUssSy8qTKpeql3aW4pcil6r7wyvOkrKSipOqk3qS5IgoKI34gbXNnaWQgImNhbid0IGNyZWF0ZSByZXBvc2l0b3J5IGluZm9ybWF0aW9uIGZpbGUgYCVzJyIKI34gbXNnc3RyICKl1aWhpaSl6yBgJXMnIKTLpeql3aW4pcil6r7wyvOk8rruwK6kx6StpN6ku6TzIgoKI34gbXNnaWQgInRha2luZyBkeW5hbWljIHR5cGVpZCBvZiBvYmplY3Qgd2l0aCAtZm5vLXJ0dGkiCiN+IG1zZ3N0ciAiLWZuby1ydHRpIKTOu9jE6qTIsOy976TLpaql1qW4paelr6XIpM7GsMWqIHR5cGVpZCCk8rzopO2kpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJjYW5ub3QgdXNlIHR5cGVpZCB3aXRoIC1mbm8tcnR0aSIKI34gbXNnc3RyICItZm5vLXJ0dGkgpKy72MTqpLWk7KTrpMggdHlwZWlkIKTyu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJtdXN0ICNpbmNsdWRlIDx0eXBlaW5mbz4gYmVmb3JlIHVzaW5nIHR5cGVpZCIKI34gbXNnc3RyICJ0eXBlaWQgpPK7yKSmwbCkyyAjaW5jbHVkZSA8dHlwZWluZm8+IKTIpLekyqSkpMikpKSxpN6ku6TzIgoKI34gbXNnaWQgImFkanVzdGluZyBwb2ludGVycyBmb3IgY292YXJpYW50IHJldHVybnMiCiN+IG1zZ3N0ciAitqbK0Shjb3ZhcmlhbnQpzOGk6sPNpNikzqXdpaSl86W/pPLEtMCwpLek3qS5IgoKI34gbXNnaWQgInJlY292ZXJhYmxlIGNvbXBpbGVyIGVycm9yLCBmaXh1cHMgZm9yIHZpcnR1YWwgZnVuY3Rpb24iCiN+IG1zZ3N0ciAisvPJ/LLEx72kyqWzpfOl0aWkpemkzqWopemhvKGisr7B27TYv/Skzr2kwLUiCgojfiBtc2dpZCAiSVNPIEMrKyBkb2VzIG5vdCBwZXJtaXQgbmFtZWQgcmV0dXJuIHZhbHVlcyIKI34gbXNnc3RyICJJU08gQysrIKTPzL7BsKTEpK3M4aTqw82k8rX2ssSkt6TepLuk8yIKCiN+IG1zZ2lkICJjYW4ndCByZWRlZmluZSBkZWZhdWx0IHJldHVybiB2YWx1ZSBmb3IgY29uc3RydWN0b3JzIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/zdGkzqXHpdWlqaXrpcjM4aTqw82k8rrGxOq1waS5pOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIiAgIHdpbGwgYmUgcmUtb3JkZXJlZCB0byBwcmVjZWRlIG1lbWJlciBpbml0aWFsaXphdGlvbnMiCiN+IG1zZ3N0ciAiICAgwOiky6SipOul4aXzpdC96bT8sr270qTIysKk08LYpKik6aTspN6kuSIKCiN+IG1zZ2lkICJgdGhpcycgaXMgdW5hdmFpbGFibGUgZm9yIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zIgojfiBtc2dzdHIgImB0aGlzJyCkz8DFxaql4aXzpdC02L/0pKuk6bvIzdGkx6StpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGB0aGlzJyBpbiBub24tbWVtYmVyIGZ1bmN0aW9uIgojfiBtc2dzdHIgIsjzpeGl86XQtNi/9KTHpM4gYHRoaXMnIKTOu8jN0aTPzLW4+qTHpLkiCgojfiBtc2dpZCAiaW52YWxpZCB1c2Ugb2YgYHRoaXMnIGF0IHRvcCBsZXZlbCIKI34gbXNnc3RyICKlyKXDpdel7KXZpeukx6TOIGB0aGlzJyCkzrvIzdGkz8y1uPqkx6S5IgoKI34gbXNnaWQgInRlbXBsYXRlIHR5cGUgcGFyYW1ldGVycyBtdXN0IHVzZSB0aGUga2V5d29yZCBgY2xhc3MnIG9yIGB0eXBlbmFtZSciCiN+IG1zZ3N0ciAipcal86XXpeyhvKXIt7+yvrD6v/Sky6TPIGBjbGFzcycgpOQgYHR5cGVuYW1lJyDNvczzuOyk8rvIpO+kzaTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJpZGVudGlmaWVyIG5hbWUgYCVzJyBjb25mbGljdHMgd2l0aCBHTlUgQysrIGludGVybmFsIG5hbWluZyBzdHJhdGVneSIKI34gbXNnc3RyICK8scrMu9LMviBgJXMnIKTPIEdOVSBDKysgxuLJ9KTOpc2hvKXfpfOlsMDvzqykyLalueekt6TepLkiCgojfiBtc2dpZCAicGFyc2UgZXJyb3IiCiN+IG1zZ3N0ciAiub3KuLLywM+lqKXpobwiCgojfiBtc2dpZCAicGFyc2UgZXJyb3IgYXQgZW5kIG9mIHNhdmVkIGZ1bmN0aW9uIHRleHQiCiN+IG1zZ3N0ciAiyt3CuLrRpN+02L/0pcalraW5pcikzsv2yPikx7m9yriy8sDPpail6aG8IgoKI34gbXNnaWQgInBhcnNlIGVycm9yIGluIG1ldGhvZCBzcGVjaWZpY2F0aW9uIgojfiBtc2dzdHIgIqXhpb2lw6XJu8XNzcbipMekzrm9yriy8sDPpail6aG8IgoKI34gbXNnaWQgImZ1bmN0aW9uIGJvZHkgZm9yIGNvbnN0cnVjdG9yIG1pc3NpbmciCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kzrTYv/TL3MLOpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiJXMgYmVmb3JlIGAlcyciCiN+IG1zZ3N0ciAiJXMgpKwgYCVzJyCkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgYCVjJyIKI34gbXNnc3RyICIlcyCkrCBgJWMnIKTOwbCky6SipOqk3qS5IgoKI34gbXNnaWQgIiVzIGJlZm9yZSBgXFwlbyciCiN+IG1zZ3N0ciAiJXMgpKwgYFxcJW8nIKTOwbCky6SipOqk3qS5IgoKI34gbXNnaWQgIiVzIGJlZm9yZSBgJXMnIHRva2VuIgojfiBtc2dzdHIgIiVzIKSsIGAlcycgpcihvKWvpfOkzsGwpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJub24tbHZhbHVlIGluICVzIgojfiBtc2dzdHIgIiVzIKTLurjK1cPNpMekz6TKpKTDzSIKCiN+IG1zZ2lkICJgamF2YV9pbnRlcmZhY2UnIGF0dHJpYnV0ZSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIEphdmEgY2xhc3MgZGVmaW5pdGlvbnMiCiN+IG1zZ3N0ciAiYGphdmFfaW50ZXJmYWNlJyDCsMCtpM8gSmF2YSClr6XppbnE6rXBpMvC0KS3pMakzqTfzdGkpKTru/akrKTHpK2k3qS5IgoKI34gbXNnaWQgImBjb21faW50ZXJmYWNlJyBvbmx5IHN1cHBvcnRlZCB3aXRoIC1mdnRhYmxlLXRodW5rcyIKI34gbXNnc3RyICJgY29tX2ludGVyZmFjZScgpM8gLWZ2dGFibGUtdGh1bmtzIKTyu9jE6qS3pL+kyKStpMCksaW1pd2hvKXIpLWk7KTepLkiCgojfiBtc2dpZCAiYGNvbV9pbnRlcmZhY2UnIGF0dHJpYnV0ZSBjYW4gb25seSBiZSBhcHBsaWVkIHRvIGNsYXNzIGRlZmluaXRpb25zIgojfiBtc2dzdHIgImBjb21faW50ZXJmYWNlJyDCsMCtpM+lr6XppbnE6rXBpMukzqTfzdGkpKTru/akrKTHpK2k3qS5IgoKI34gbXNnaWQgInJlcXVlc3RlZCBpbml0X3ByaW9yaXR5IGlzIG5vdCBhbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIs3XteGktaTspL8gaW5pdF9wcmlvcml0eSCkz8Cwv/S3v6TOxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImNhbiBvbmx5IHVzZSBpbml0X3ByaW9yaXR5IGF0dHJpYnV0ZSBvbiBmaWxlLXNjb3BlIGRlZmluaXRpb25zIG9mIG9iamVjdHMgb2YgY2xhc3MgdHlwZSIKI34gbXNnc3RyICJpbml0X3ByaW9yaXR5IMKwwK2kz6Wvpemlube/paql1qW4paelr6XIpM6l1aWhpaSl66W5pbOhvKXXxOq1waTHpM6k37vIpKik3qS5IgoKI34gbXNnaWQgInJlcXVlc3RlZCBpbml0X3ByaW9yaXR5IGlzIG91dCBvZiByYW5nZSIKI34gbXNnc3RyICLN17XhpLWk7KS/IGluaXRfcHJpb3JpdHkgpKzIz7DPs7Ckx6S5IgoKI34gbXNnaWQgInJlcXVlc3RlZCBpbml0X3ByaW9yaXR5IGlzIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2UiCiN+IG1zZ3N0ciAizde14aS1pOykvyBpbml0X3ByaW9yaXR5IKTPxuLJ9KTHu8jN0aS5pOukv6ThpMvNvczzpLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgImluaXRfcHJpb3JpdHkgYXR0cmlidXRlIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIKI34gbXNnc3RyICJpbml0X3ByaW9yaXR5IMKwwK2kz6SzpM6l16XppcOlyKXVpamhvKXgpMekz6W1pd2hvKXIpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzICVzIGJldHdlZW4gcG9pbnRlciBvZiB0eXBlIGB2b2lkIConIGFuZCBwb2ludGVyLXRvLWZ1bmN0aW9uIgojfiBtc2dzdHIgIklTTyBDKysgpM8gYHZvaWQgKicgt7+l3aWkpfOlv6TItNi/9KXdpaSl86W/pMikziAlcyCk8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhcHBseWluZyBgc2l6ZW9mJyB0byBhIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7TYv/S3v6TYpM4gYHNpemVvZicgpM7FrM3RpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgYXBwbHlpbmcgYHNpemVvZicgdG8gYSBtZW1iZXIgZnVuY3Rpb24iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XhpfOl0LTYv/Sk2KTOIGBzaXplb2YnIKTOxazN0aTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGFwcGx5aW5nIGBzaXplb2YnIHRvIHR5cGUgYHZvaWQnIHdoaWNoIGlzIGFuIGluY29tcGxldGUgdHlwZSIKI34gbXNnc3RyICJJU08gQysrIKTPydS0sMG0t7+kx6SipOsgYHZvaWQnILe/pNikziBgc2l6ZW9mJyCkzsWszdGk8rbYpLik3qS5IgoKI34gbXNnaWQgInNpemVvZiBhcHBsaWVkIHRvIGEgYml0LWZpZWxkIgojfiBtc2dzdHIgInNpemVvZiCkrKXTpcOlyKXVpaOhvKXrpcmky8WszdGktaTspN6kt6S/IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhcHBseWluZyBgc2l6ZW9mJyB0byBhbiBleHByZXNzaW9uIG9mIGZ1bmN0aW9uIHR5cGUiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7TYv/S3v6TOvLCk2KTOIGBzaXplb2YnIKTOxazN0aTyttikuKTepLkiCgojfiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2UgdG8gTlVMTCBwdHIsIHVzZSBwdHItdG8tbWVtYmVyIGluc3RlYWQiCiN+IG1zZ3N0ciAiTlVMTCCl3aWkpfOlv6TYpM7Mtbj6pMq7sr7IoaLC5aTvpOqky6XhpfOl0KTYpM6l3aWkpfOlv6Tyu8ikpKTepLek56SmIgoKI34gbXNnaWQgImludmFsaWQgdXNlIG9mIGAlcycgb24gcG9pbnRlciB0byBtZW1iZXIiCiN+IG1zZ3N0ciAipeGl86XQpNikzqXdpaSl86W/pMekzsy1uPqkyiBgJXMnIKTOu8jN0SIKCiN+IG1zZ2lkICJpbnZhbGlkIHR5cGUgYXJndW1lbnQiCiN+IG1zZ3N0ciAizLW4+qTKt7+w+r/0pMekuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgc3Vic2NyaXB0aW5nIG5vbi1sdmFsdWUgYXJyYXkiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7q4ytXDzaTHpM+kyqSkx9vO86TOxbq7+qTyttikuKTepLkiCgojfiBtc2dpZCAic3Vic2NyaXB0aW5nIGFycmF5IGRlY2xhcmVkIGByZWdpc3RlciciCiN+IG1zZ3N0ciAiYHJlZ2lzdGVyJyCkyMDruMCktaTspL/H287zpMvFurv6pPKkxKSxpOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJwb2ludGVyIHRvIG1lbWJlciBmdW5jdGlvbiBjYWxsZWQsIGJ1dCBub3QgaW4gY2xhc3Mgc2NvcGUiCiN+IG1zZ3N0ciAipeGl86XQtNi/9KTYpM6l3aWkpfOlv6SsuMak0KTspN6kt6S/pKyhoqWvpemluaW5pbOhvKXXxuKkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIGNhbGwgdG8gbWVtYmVyIGZ1bmN0aW9uIG5lZWRpbmcgYHRoaXMnIGluIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gc2NvcGUiCiN+IG1zZ3N0ciAiwMXFqqXhpfOl0LTYv/SluaWzobyl18bipMekzyBgdGhpcycgpPLN16S5pOul4aXzpdC02L/0pM64xqTTvdCkt6TPzLW4+qTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNhbGxpbmcgYDo6bWFpbicgZnJvbSB3aXRoaW4gcHJvZ3JhbSIKI34gbXNnc3RyICJJU08gQysrIKTPpdel7aWwpeml4KTOw+akq6TpIGA6Om1haW4nIKTyuMak073QpLmks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgdHlwZSBvZiBjYWxsZWQgZnVuY3Rpb24gaXMgaW5jb21wbGV0ZSIKI34gbXNnc3RyICK4xqTQpOykv7TYv/SkzrK+sPq/9KTOt7+krMnUtLDBtKTHpLkiCgojfiBtc2dpZCAiJXMgcm90YXRlIGNvdW50IGlzIG5lZ2F0aXZlIgojfiBtc2dzdHIgIiVzIKXtobylxqG8pciy87/0pKzJ6aTOw82kx6S5IgoKI34gbXNnaWQgIiVzIHJvdGF0ZSBjb3VudCA+PSB3aWR0aCBvZiB0eXBlIgojfiBtc2dzdHIgIiVzIKXtobylxqG8pciy87/0ID49ILe/pM7J/aTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIGNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyIgojfiBtc2dzdHIgIklTTyBDKysgpM+l3aWkpfOlv6TIwLC/9KTIpM7I5rPTpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIgojfiBtc2dzdHIgIsnkuefJ1aStpMjJ5LnnzLWkt6TOwLC/9LywxrG7zqTOyOaz06THpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHVzaW5nIHBvaW50ZXIgb2YgdHlwZSBgdm9pZCAqJyBpbiBwb2ludGVyIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XdpaSl86W/t9e7u6TLIGB2b2lkIConILe/pM6l3aWkpfOlv6Tyu8ikpqSzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBhIHBvaW50ZXItdG8tZnVuY3Rpb24gaW4gcG9pbnRlciBhcml0aG1ldGljIgojfiBtc2dzdHIgIklTTyBDKysgpM+l3aWkpfOlv7fXu7uky7TYv/Sk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgYSBwb2ludGVyIHRvIG1lbWJlciBmdW5jdGlvbiBpbiBwb2ludGVyIGFyaXRobWV0aWMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz6XdpaSl86W/t9e7u6TLpeGl86XQtNi/9KTYpM6l3aWkpfOlv6Tyu8ikpqSzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBwb2ludGVyIHRvIGEgbWVtYmVyIGluIHBvaW50ZXIgYXJpdGhtZXRpYyIKI34gbXNnc3RyICJJU08gQysrIKTPpd2lpKXzpb+317u7pMul4aXzpdCk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdXNpbmcgcG9pbnRlciBvZiB0eXBlIGB2b2lkIConIGluIHN1YnRyYWN0aW9uIgojfiBtc2dzdHIgIklTTyBDKysgpM+4uru7pMsgYHZvaWQgKicgt7+kzqXdpaSl86W/pPK7yKSmpLOkyKTyttikuKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHVzaW5nIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBpbiBzdWJ0cmFjdGlvbiIKI34gbXNnc3RyICJJU08gQysrIKTPuLq7u6TLtNi/9KTYpM6l3aWkpfOlv6Tyu8ikpqSzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBwb2ludGVyIHRvIGEgbWV0aG9kIGluIHN1YnRyYWN0aW9uIgojfiBtc2dzdHIgIklTTyBDKysgpM+4uru7pMul4aW9pcOlyaTYpM6l3aWkpfOlv6Tyu8ikpqSzpMik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyB1c2luZyBwb2ludGVyIHRvIGEgbWVtYmVyIGluIHN1YnRyYWN0aW9uIgojfiBtc2dzdHIgIklTTyBDKysgpM+4uru7pMul4aXzpdCk2KTOpd2lpKXzpb+k8rvIpKaks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJpbnZhbGlkIHVzZSBvZiBhIHBvaW50ZXIgdG8gYW4gaW5jb21wbGV0ZSB0eXBlIGluIHBvaW50ZXIgYXJpdGhtZXRpYyIKI34gbXNnc3RyICKl3aWkpfOlv7Hpu7ukx8nUtLDBtLe/pNikzqXdpaSl86W/pPK7yKSmpLOkyKTPzLW4+qTHpLkiCgojfiBtc2dpZCAidGFraW5nIGFkZHJlc3Mgb2YgdGVtcG9yYXJ5IgojfiBtc2dzdHIgIrDsu/6lqqXWpbilp6WvpcikzqWipcml7KW5pPK86KTtpKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzICVzaW5nIGFuIGVudW0iCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyBlbnVtIKTOICVzIKTyttikuKTepLkiCgojfiBtc2dpZCAiY2FzdCB0byBub24tcmVmZXJlbmNlIHR5cGUgdXNlZCBhcyBsdmFsdWUiCiN+IG1zZ3N0ciAiurjK1cPNpMikt6TGu8ik76TspOvI87uyvsi3v6TYpM6lraXjpbmlyKTHpLkiCgojfiBtc2dpZCAiSVNPIEMrKyBmb3JiaWRzIHRha2luZyBhZGRyZXNzIG9mIGZ1bmN0aW9uIGA6Om1haW4nIgojfiBtc2dzdHIgIklTTyBDKysgpM8gYDo6bWFpbicgtNi/9KTOpaKlyaXspbmk8rzopOuks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgdGFraW5nIHRoZSBhZGRyZXNzIG9mIGEgY2FzdCB0byBhIG5vbi1sdmFsdWUgZXhwcmVzc2lvbiIKI34gbXNnc3RyICJJU08gQysrIKTPyPO6uMrVw828sKTYpM6lraXjpbmlyKTOpaKlyaXspbmk8rzopOuks6TIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJ1bmFyeSBgJiciCiN+IG1zZ3N0ciAiw7G54KTOIGAmJyIKCiN+IG1zZ2lkICJjYW5ub3QgdGFrZSB0aGUgYWRkcmVzcyBvZiBgdGhpcycsIHdoaWNoIGlzIGFuIHJ2YWx1ZSBleHByZXNzaW9uIgojfiBtc2dzdHIgImB0aGlzJyCkz7GmytXDzbywpMekoqTqoaKkvaTOpaKlyaXspbmk8rzopOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBjYXN0aW5nIGJldHdlZW4gcG9pbnRlci10by1mdW5jdGlvbiBhbmQgcG9pbnRlci10by1vYmplY3QiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7TYv/Sl3aWkpfOlv6TIpaql1qW4paelr6XIpd2lpKXzpb+kzrTWpMekzqWtpeOluaXIpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJJU08gQysrIGZvcmJpZHMgY2FzdCB0byBub24tcmVmZXJlbmNlIHR5cGUgdXNlZCBhcyBsdmFsdWUiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkz7q4ytXDzaTIpLekxrvIpO+k7KTryPO7sr7It7+k2KTOpa2l46W5pcik8rbYpLik3qS5IgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBhc3NpZ25tZW50IG9mIGFycmF5cyIKI34gbXNnc3RyICJJU08gQysrIKTPx9vO86TOwuXG/qTyttikuKTepLkiCgojfiBtc2dpZCAicmV0dXJuIHZhbHVlIGZyb20gZnVuY3Rpb24gcmVjZWl2ZXMgbXVsdGlwbGUgaW5pdGlhbGl6YXRpb25zIgojfiBtc2dzdHIgIrTYv/Skq6TppM7M4aTqw82krMqjv/Skzr3ptPyyvaTyvPWksbzopOqk3qS3pL8iCgojfiBtc2dpZCAiICAgaW4gcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24gY29udmVyc2lvbiIKI34gbXNnc3RyICIgICCl3aWkpfOlv6SrpOml4aXzpdC02L/0pNikzsrRtLmkxyIKCiN+IG1zZ2lkICIgICBpbiBwb2ludGVyIHRvIG1lbWJlciBjb252ZXJzaW9uIgojfiBtc2dzdHIgIiAgIKXdpaSl86W/pKuk6aXhpfOl0KTYpM7K0bS5pMciCgojfiBtc2dpZCAicmV0dXJuaW5nIHJlZmVyZW5jZSB0byB0ZW1wb3JhcnkiCiN+IG1zZ3N0ciAisOy7/qWqpdaluKWnpa+lyKTYpM67sr7IpPLK1qS9pKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAicmVmZXJlbmNlIHRvIG5vbi1sdmFsdWUgcmV0dXJuZWQiCiN+IG1zZ3N0ciAiyPO6uMrVw82k2KTOu7K+yKSsytaktaTspN6kt6S/IgoKI34gbXNnaWQgInJldHVybmluZyBhIHZhbHVlIGZyb20gYSBkZXN0cnVjdG9yIgojfiBtc2dzdHIgIqXHpbmlyKXppa+lv6SrpOnDzaTyytakvaSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgImNhbm5vdCByZXR1cm4gZnJvbSBhIGhhbmRsZXIgb2YgYSBmdW5jdGlvbi10cnktYmxvY2sgb2YgYSBjb25zdHJ1Y3RvciIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6TOtNi/9CB0cnkgpdal7aXDpa+kzqXPpfOlyaXppKuk6aTPIHJldHVybiCkx6StpN6ku6TzIgoKI34gbXNnaWQgInJldHVybmluZyBhIHZhbHVlIGZyb20gYSBjb25zdHJ1Y3RvciIKI34gbXNnc3RyICKls6XzpbmlyKXppa+lv6SrpOnDzaTyytakvaSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgInJldHVybi1zdGF0ZW1lbnQgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gZGVjbGFyZWQgd2l0aCBhIG5vbi12b2lkIHJldHVybiB0eXBlIgojfiBtc2dzdHIgInJldHVybiDKuKSsw82k8rv9pMGk3qS7pPOho7TYv/TA67jApMekz8jzIHZvaWQgpM7M4aTqw82k8rv9pMGk3qS5IgoKI34gbXNnaWQgInJldHVybi1zdGF0ZW1lbnQgd2l0aCBhIHZhbHVlLCBpbiBmdW5jdGlvbiBkZWNsYXJlZCB3aXRoIGEgdm9pZCByZXR1cm4gdHlwZSIKI34gbXNnc3RyICJyZXR1cm4gyrikrMPNpPK7/aTBpN6kuaGjtNi/9MDruMCkx6TPzOGk6re/pKwgdm9pZCCkyKTKpMOkxqSkpN6kuSIKCiN+IG1zZ2lkICIgIGJlY2F1c2UgdGhlIGZvbGxvd2luZyB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgYWJzdHJhY3Q6IgojfiBtc2dzdHIgIiAgsMqyvKTOsr7B27TYv/SkrMPqvt2kx6SipOukv6ThpMekuToiCgojfiBtc2dpZCAiSW50ZXJuYWwgZXJyb3IgIyVkLiIKI34gbXNnc3RyICLG4sn0pail6aG8OiAjJWShoyIKCiN+IG1zZ2lkICJkdWUgdG8gdGhlIHByZXNlbmNlIG9mIGEgY29uc3RydWN0b3IiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+krKSipOuks6TIpMuk6KTrIgoKI34gbXNnaWQgImNvbW1hIGV4cHJlc3Npb24gdXNlZCB0byBpbml0aWFsaXplIHJldHVybiB2YWx1ZSIKI34gbXNnc3RyICKlq6Xzpd6x6bu7u9KkrMzhpOrDzaTyvem0/LK9pLmk66S/pOGky7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJjYW5ub3QgaW5pdGlhbGl6ZSBhcnJheXMgdXNpbmcgdGhpcyBzeW50YXgiCiN+IG1zZ3N0ciAipLOkzsq4y6Gk8rvIpMOkxsfbzvOk8r3ptPyyvaS5pOuks6TIpM+kx6StpN6ku6TzIgoKI34gbXNnaWQgIkFOU0kgQysrIGZvcmJpZHMgbm9uLWNvbnN0YW50IGFnZ3JlZ2F0ZSBpbml0aWFsaXplciBleHByZXNzaW9ucyIKI34gbXNnc3RyICJBTlNJIEMrKyCkz8Tqv/Skx6TKpKS9uLnnws6kzr3ptPyyvbvSvLCk8rbYpLik3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemluZyBhcnJheSB3aXRoIHBhcmFtZXRlciBsaXN0IgojfiBtc2dzdHIgIsfbzvOk8rK+sPq/9KXqpbmlyKTLpOikw6TGvem0/LK9pLek6KSmpMikt6TGpKSk3qS5IgoKI34gbXNnaWQgImluaXRpYWxpemVyIGZvciBzY2FsYXIgdmFyaWFibGUgcmVxdWlyZXMgb25lIGVsZW1lbnQiCiN+IG1zZ3N0ciAipbmlq6XpobzK0b/0pM696bT8sr270qTPsOykxKTOzdfBx6Tyzde14aS3pN6kuSIKCiN+IG1zZ2lkICJhZ2dyZWdhdGUgaGFzIGEgcGFydGx5IGJyYWNrZXRlZCBpbml0aWFsaXplciIKI34gbXNnc3RyICK9uLnnws6krMn0yqzFqqTLpdal6aWxpcOlyKTOvem0/LK9u9Kk8rv9pMGk3qS5IgoKI34gbXNnaWQgIm5vbi10cml2aWFsIGxhYmVsZWQgaW5pdGlhbGl6ZXJzIgojfiBtc2dzdHIgIryrzMCkx6TKpKSl6aXZpeukzqTEpKSkv73ptPyyvbvSpMekuSIKCiN+IG1zZ2lkICJub24tZW1wdHkgaW5pdGlhbGl6ZXIgZm9yIGFycmF5IG9mIGVtcHR5IGVsZW1lbnRzIgojfiBtc2dzdHIgIs3XwcekzqTKpKTH287zpMvC0KS5pOuhorb1pMekz6TKpKS96bT8sr270qTHpLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgbGlzdCBmb3Igb2JqZWN0IG9mIGNsYXNzIHdpdGggdmlydHVhbCBiYXNlIGNsYXNzZXMiCiN+IG1zZ3N0ciAisr7B27TwxOylr6Xppbmk8rv9pMSlr6XppbmkzqWqpdaluKWnpa+lyM3RpM696bT8sr270qXqpbmlyKTHpLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgbGlzdCBmb3Igb2JqZWN0IG9mIGNsYXNzIHdpdGggYmFzZSBjbGFzc2VzIgojfiBtc2dzdHIgIrTwxOylr6Xppbmk8rv9pMSlr6XppbmkzqWqpdaluKWnpa+lyM3RpM696bT8sr270qXqpbmlyKTHpLkiCgojfiBtc2dpZCAiaW5pdGlhbGl6ZXIgbGlzdCBmb3Igb2JqZWN0IHVzaW5nIHZpcnR1YWwgZnVuY3Rpb25zIgojfiBtc2dzdHIgIrK+wdu02L/0pPK7yM3RpLmk66WqpdaluKWnpa+lyM3RpM696bT8sr270qXqpbmlyKTHpLkiCgojfiBtc2dpZCAiaW5kZXggdmFsdWUgaW5zdGVhZCBvZiBmaWVsZCBuYW1lIGluIHVuaW9uIGluaXRpYWxpemVyIgojfiBtc2dzdHIgInVuaW9uIL3ptPyyvbvSpKyl1aWjobyl66XJzL6kx6TPpMqkr6WkpfOlx6XDpa+lucPNpMukyqTDpMakpKTepLkiCgojfiBtc2dpZCAiZXhjZXNzIGVsZW1lbnRzIGluIGFnZ3JlZ2F0ZSBpbml0aWFsaXplciIKI34gbXNnc3RyICK9uLnnws696bT8sr270sbipMekvaTOzdfBx6SssO6k7KTepLekvyIKCiN+IG1zZ2lkICJjaXJjdWxhciBwb2ludGVyIGRlbGVnYXRpb24gZGV0ZWN0ZWQiCiN+IG1zZ3N0ciAivdu0xKXdpaSl86W/pM7C5cm9pPK4ob3QpLek3qS3pL8iCgojfiBtc2dpZCAicmVzdWx0IG9mIGBvcGVyYXRvci0+KCknIHlpZWxkcyBub24tcG9pbnRlciByZXN1bHQiCiN+IG1zZ3N0ciAiYG9wZXJhdG9yLT4oKSekzrfrssykrMjzpd2lpKXzpb+kzrfrssyk8qTipL+k6aS3pN6kuSIKCiN+IG1zZ2lkICJiYXNlIG9wZXJhbmQgb2YgYC0+JyBpcyBub3QgYSBwb2ludGVyIgojfiBtc2dzdHIgImAtPicgpM6l2aG8pbmlqqXapeml86XJpKyl3aWkpfOlv6THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIklTTyBDKysgZm9yYmlkcyBkZWZpbmluZyB0eXBlcyB3aXRoaW4gJXMiCiN+IG1zZ3N0ciAiSVNPIEMrKyCkzyAlcyDD5qTOt7/E6rXBpPK22KS4pN6kuSIKCiN+IG1zZ2lkICJDYW4ndCBjcmVhdGUgY3Jvc3MtcmVmZXJlbmNlIGZpbGUgYCVzJyIKI34gbXNnc3RyICLB6rjfu7K+yKXVpaGlpKXrIGAlcycgpPK67qTrpLOkyKSspMekraTepLuk8yIKCiN+IG1zZ2lkICJ0cmFkaXRpb25hbCBDIHJlamVjdHMgdGhlIGBVJyBzdWZmaXgiCiN+IG1zZ3N0ciAiuMWkpCBDIKTHpM8gYFUnIMDcyPi8raSstfHA5KS1pOyk3qS5IgoKI34gbXNnaWQgInRvbyBtYW55ICdsJyBzdWZmaXhlcyBpbiBpbnRlZ2VyIGNvbnN0YW50IgojfiBtc2dzdHIgIsCwv/TE6r/0pM6ltaXVpaOlw6WvpbkgJ2wnIKSswr+kuaSupN6kuSIKCiN+IG1zZ2lkICJpbnRlZ2VyIGNvbnN0YW50IGNvbnRhaW5zIGRpZ2l0cyBiZXlvbmQgdGhlIHJhZGl4IgojfiBtc2dzdHIgIsCwv/TE6r/0pKy08L/0pPLEtqSopL+/9MPNpPK03qTzpMekpKTepLkiCgojfiBtc2dpZCAiaW50ZWdlciBjb25zdGFudCBvdXQgb2YgcmFuZ2UiCiN+IG1zZ3N0ciAiwLC/9MTqv/SkrMjPsM+k8rOwpOykxqSkpN6kuSIKCiN+IG1zZ2lkICJcImRlZmluZWRcIiBvcGVyYXRvciBhcHBlYXJzIGR1cmluZyBtYWNybyBleHBhbnNpb24iCiN+IG1zZ3N0ciAiXCJkZWZpbmVkXCIgsem7u7vSpKyl3qWvpe3FuLOrw+aky7i9pOyk3qS3pL8iCgojfiBtc2dpZCAiSVNPIEMrKyBkb2VzIG5vdCBwZXJtaXQgXCIlc1wiIGluICNpZiIKI34gbXNnc3RyICJJU08gQysrIKTPICNpZiDG4qTOIFwiJXNcIiCk8rX2pLek3qS7pPMiCgojfiBtc2dpZCAiYWJzb2x1dGUgZmlsZSBuYW1lIGluIHJlbWFwX2ZpbGVuYW1lIgojfiBtc2dzdHIgIsDkwtCl0aW5pdWloaWkpevMvqSsIHJlbWFwX2ZpbGVuYW1lIKTLpKKk6qTepLkiCgojfiBtc2dpZCAiaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5IFwiJXNcIlxuIgojfiBtc2dzdHIgIsK4ut+kt6TKpKSlx6Wjpeylr6XIpeogXCIlc1wiIKTyzLW766S3pN6kuVxuIgoKI34gbXNnaWQgIiVzOiBOb3QgYSBkaXJlY3RvcnkiCiN+IG1zZ3N0ciAiJXM6IKXHpaOl7KWvpcil6qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImlnbm9yaW5nIGR1cGxpY2F0ZSBkaXJlY3RvcnkgXCIlc1wiXG4iCiN+IG1zZ3N0ciAivcXKo6S3pL+lx6Wjpeylr6XIpeogXCIlc1wiIKTyzLW766S3pN6kuVxuIgoKI34gbXNnaWQgIi1pbmNsdWRlIGFuZCAtaW1hY3JvcyBjYW5ub3QgYmUgdXNlZCB3aXRoIC1mcHJlcHJvY2Vzc2VkIgojfiBtc2dzdHIgIi1pbmNsdWRlIKTkIC1pbWFjcm9zIKTPIC1mcHJlcHJvY2Vzc2VkIKTIsOy976TLu8ikpqSzpMikz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiI2luY2x1ZGUgXCIuLi5cIiBzZWFyY2ggc3RhcnRzIGhlcmU6XG4iCiN+IG1zZ3N0ciAiI2luY2x1ZGUgXCIuLi5cIiCkzsO1uvekz6SzpLOkq6Tpu8+k3qTqpN6kuTpcbiIKCiN+IG1zZ2lkICIjaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6XG4iCiN+IG1zZ3N0ciAiI2luY2x1ZGUgPC4uLj4gpM7Dtbr3pM+ks6SzpKuk6bvPpN6k6qTepLk6XG4iCgojfiBtc2dpZCAiRW5kIG9mIHNlYXJjaCBsaXN0LlxuIgojfiBtc2dzdHIgIsO1uvel6qW5pcikzr2qpO+k6lxuIgoKI34gbXNnaWQgIkkvTyBlcnJvciBvbiBvdXRwdXQiCiN+IG1zZ3N0ciAivdDOz8PmpMsgSS9PIKWopemhvKSsyK/AuCIKCiN+IG1zZ2lkICJidWZmZXJzIHN0aWxsIHN0YWNrZWQgaW4gY3BwX2ZpbmlzaCIKI34gbXNnc3RyICJjcHBfZmluaXNoIKTHpdClw6XVpaGkrKTepMCluaW/pcOlr6S1pOykxqSkpN6kuSIKCiN+IG1zZ2lkICJBcmd1bWVudCBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOsPq/9KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkFzc2VydGlvbiBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOpaKltaG8pbel56XzpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiRGlyZWN0b3J5IG5hbWUgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzqXHpaOl7KWvpcil6sy+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiRmlsZSBuYW1lIG1pc3NpbmcgYWZ0ZXIgJXMiCiN+IG1zZ3N0ciAiJXMgpM645aTtpM6l1aWhpaSl68y+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWFjcm8gbmFtZSBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOpd6lr6XtzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJQYXRoIG5hbWUgbWlzc2luZyBhZnRlciAlcyIKI34gbXNnc3RyICIlcyCkzrjlpO2kzqXRpbnMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk51bWJlciBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOv/S7+qTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIlRhcmdldCBtaXNzaW5nIGFmdGVyICVzIgojfiBtc2dzdHIgIiVzIKTOuOWk7aTOpb+hvKWypcOlyKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIlRvbyBtYW55IGZpbGVuYW1lcy4gVHlwZSAlcyAtLWhlbHAgZm9yIHVzYWdlIGluZm8iCiN+IG1zZ3N0ciAipdWloaWkpevMvqSswr+kuaSupN6kuaGjJXMgLS1oZWxwIKTIpb+lpKXXpLekxrvIpKTK/aTyuKuk3qS3pOekpiIKCiN+IG1zZ2lkICJPdXRwdXQgZmlsZW5hbWUgc3BlY2lmaWVkIHR3aWNlIgojfiBtc2dzdHIgIr3Qzs+l1aWhpaSl68y+pKzG87Lzu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiLUktIHNwZWNpZmllZCB0d2ljZSIKI34gbXNnc3RyICItSS0gpKzG87Lzu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiR05VIENQUCB2ZXJzaW9uICVzIChjcHBsaWIpIgojfiBtc2dzdHIgIkdOVSBDUFAgdmVyc2lvbiAlcyAoY3BwbGliKSIKCiN+IG1zZ2lkICJ5b3UgbXVzdCBhZGRpdGlvbmFsbHkgc3BlY2lmeSBlaXRoZXIgLU0gb3IgLU1NIgojfiBtc2dzdHIgIi1NIKSrIC1NTSCkzqSkpLqk7KSrpPLEybLDxaqky7vYxOqkt6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJVc2FnZTogJXMgW3N3aXRjaGVzXSBpbnB1dCBvdXRwdXRcbiIKI34gbXNnc3RyICK7yKSkyv06ICVzIFuluaWkpcOlwV0gxv7OzyC90M7PXG4iCgojfiBtc2dpZCAiIgojfiAiU3dpdGNoZXM6XG4iCiN+ICIgIC1pbmNsdWRlIDxmaWxlPiAgICAgICAgICAgSW5jbHVkZSB0aGUgY29udGVudHMgb2YgPGZpbGU+IGJlZm9yZSBvdGhlciBmaWxlc1xuIgojfiAiICAtaW1hY3JvcyA8ZmlsZT4gICAgICAgICAgIEFjY2VwdCBkZWZpbml0aW9uIG9mIG1hY3JvcyBpbiA8ZmlsZT5cbiIKI34gIiAgLWlwcmVmaXggPHBhdGg+ICAgICAgICAgICBTcGVjaWZ5IDxwYXRoPiBhcyBhIHByZWZpeCBmb3IgbmV4dCB0d28gb3B0aW9uc1xuIgojfiAiICAtaXdpdGhwcmVmaXggPGRpcj4gICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBzeXN0ZW0gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1pd2l0aHByZWZpeGJlZm9yZSA8ZGlyPiAgQWRkIDxkaXI+IHRvIHRoZSBlbmQgb2YgdGhlIG1haW4gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1pc3lzdGVtIDxkaXI+ICAgICAgICAgICAgQWRkIDxkaXI+IHRvIHRoZSBzdGFydCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiBtc2dzdHIgIiIKI34gIqW5paSlw6XBOlxuIgojfiAiICAtaW5jbHVkZSA8ZmlsZT4gICAgICAgICAgIMK+pM6l1aWhpaSl66TOwbCkyyA8ZmlsZT4gpM7G4s3GpPK03qThpOtcbiIKI34gIiAgLWltYWNyb3MgPGZpbGU+ICAgICAgICAgICA8ZmlsZT4gpM6l3qWvpe3E6rXBpPK89aSxxv6k7KTrXG4iCiN+ICIgIC1pcHJlZml4IDxwYXRoPiAgICAgICAgICAgvKGkzsbzpMSkzqWqpdelt6XnpfPN0aXXpeyl1aWjpa+luaTLIDxwYXRoPiCk8rvYxOpcbiIKI34gIiAgLWl3aXRocHJlZml4IDxkaXI+ICAgICAgICA8ZGlyPiCk8qW3pbmlxqXgIGluY2x1ZGUgpdGluaTOvaqk6qTLxMmyw6S5pOtcbiIKI34gIiAgLWl3aXRocHJlZml4YmVmb3JlIDxkaXI+ICA8ZGlyPiCk8qXhpaSl8yBpbmNsdWRlIKXRpbmkzr2qpOqky8TJssOkuaTrXG4iCiN+ICIgIC1pc3lzdGVtIDxkaXI+ICAgICAgICAgICAgPGRpcj4gpPKlt6W5pcal4CBpbmNsdWRlIKXRpbmkzrrHvemky8TJssOkuaTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtaWRpcmFmdGVyIDxkaXI+ICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBzeXN0ZW0gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1JIDxkaXI+ICAgICAgICAgICAgICAgICAgQWRkIDxkaXI+IHRvIHRoZSBlbmQgb2YgdGhlIG1haW4gaW5jbHVkZSBwYXRoXG4iCiN+ICIgIC1JLSAgICAgICAgICAgICAgICAgICAgICAgRmluZS1ncmFpbmVkIGluY2x1ZGUgcGF0aCBjb250cm9sOyBzZWUgaW5mbyBkb2NzXG4iCiN+ICIgIC1ub3N0ZGluYyAgICAgICAgICAgICAgICAgRG8gbm90IHNlYXJjaCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3Rvcmllc1xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlycyBzcGVjaWZpZWQgd2l0aCAtaXN5c3RlbSB3aWxsIHN0aWxsIGJlIHVzZWQpXG4iCiN+ICIgIC1ub3N0ZGluYysrICAgICAgICAgICAgICAgRG8gbm90IHNlYXJjaCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3RvcmllcyBmb3IgQysrXG4iCiN+ICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgICAgUHV0IG91dHB1dCBpbnRvIDxmaWxlPlxuIgojfiBtc2dzdHIgIiIKI34gIiAgLWlkaXJhZnRlciA8ZGlyPiAgICAgICAgICA8ZGlyPiCk8qW3pbmlxqXgIGluY2x1ZGUgpdGluaTOvaqk6qTLxMmyw6S5pOtcbiIKI34gIiAgLUkgPGRpcj4gICAgICAgICAgICAgICAgICA8ZGlyPiCk8qXhpaSl8yBpbmNsdWRlIKXRpbmkzr2qpOqky8TJssOkuaTrXG4iCiN+ICIgIC1JLSAgICAgICAgICAgICAgICAgICAgICAgpK2k4brZpKukyiBpbmNsdWRlIKXRpbnAqbjmIC0tIGluZm8gyri98aTyu7K+yFxuIgojfiAiICAtbm9zdGRpbmMgICAgICAgICAgICAgICAgIKW3pbmlxqXgIGluY2x1ZGUgpcelo6Xspa+lyKXqpPLDtbr3pLekyqSkXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtc3lzdGVtIKTHu9jE6qS1pOykv6XHpaOl7KWvpcil6qTPw7W696S1pOyk6ylcbiIKI34gIiAgLW5vc3RkaW5jKysgICAgICAgICAgICAgICBDKysgzdGlt6W5pcal4CBpbmNsdWRlIKXHpaOl7KWvpcil6qTyw7W696S3pMqkpFxuIgojfiAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgIDxmaWxlPiCk2L3Qzs+kuaTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtcGVkYW50aWMgICAgICAgICAgICAgICAgIElzc3VlIGFsbCB3YXJuaW5ncyBkZW1hbmRlZCBieSBzdHJpY3QgSVNPIENcbiIKI34gIiAgLXBlZGFudGljLWVycm9ycyAgICAgICAgICBJc3N1ZSAtcGVkYW50aWMgd2FybmluZ3MgYXMgZXJyb3JzIGluc3RlYWRcbiIKI34gIiAgLXRyaWdyYXBocyAgICAgICAgICAgICAgICBTdXBwb3J0IElTTyBDIHRyaWdyYXBoc1xuIgojfiAiICAtbGFuZy1jICAgICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDXG4iCiN+ICIgIC1sYW5nLWM4OSAgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIEM4OVxuIgojfiBtc2dzdHIgIiIKI34gIiAgLXBlZGFudGljICAgICAgICAgICAgICAgICC4t8yppMogSVNPIEMgpMfN17XhpLWk7KTrwbSkxqTOt9m58KTyyK+51KS5pOtcbiIKI34gIiAgLXBlZGFudGljLWVycm9ycyAgICAgICAgICAtcGVkYW50aWMgt9m58KTOwuWk6qTLpail6aG8pPLIr7nUpLmk61xuIgojfiAiICAtdHJpZ3JhcGhzICAgICAgICAgICAgICAgIElTTyBDIKXIpemlpKWwpeml1aTyvPWkscb+pOyk61xuIgojfiAiICAtbGFuZy1jICAgICAgICAgICAgICAgICAgIMb+zs+lvaG8pbmk8iBDIKTIpN+kyqS5XG4iCiN+ICIgIC1sYW5nLWM4OSAgICAgICAgICAgICAgICAgxv7Oz6W9obyluaTyIEM4OSCkyKTfpMqkuVxuIgoKI34gbXNnaWQgIiIKI34gIiAgLWxhbmctYysrICAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gQysrXG4iCiN+ICIgIC1sYW5nLW9iamMgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIE9iamVjdGl2ZUNcbiIKI34gIiAgLWxhbmctb2JqYysrICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gT2JqZWN0aXZlQysrXG4iCiN+ICIgIC1sYW5nLWFzbSAgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIGFzc2VtYmxlclxuIgojfiBtc2dzdHIgIiIKI34gIiAgLWxhbmctYysrICAgICAgICAgICAgICAgICDG/s7Ppb2hvKW5pPIgQyCkyKTfpMqkuVxuIgojfiAiICAtbGFuZy1vYmpjICAgICAgICAgICAgICAgIMb+zs+lvaG8pbmk8iBPYmplY3RpdmVDIKTIpN+kyqS5XG4iCiN+ICIgIC1sYW5nLW9iamMrKyAgICAgICAgICAgICAgxv7Oz6W9obyluaTyIE9iamVjdGl2ZUMrKyCkyKTfpMqkuVxuIgojfiAiICAtbGFuZy1hc20gICAgICAgICAgICAgICAgIMb+zs+lvaG8pbmk8qWipbul86XWpeq4wLjspMik36TKpLlcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1zdGQ9PHN0ZCBuYW1lPiAgICAgICAgICAgU3BlY2lmeSB0aGUgY29uZm9ybWFuY2Ugc3RhbmRhcmQ7IG9uZSBvZjpcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbnU4OSwgZ251OTksIGM4OSwgYzk5LCBpc285ODk5OjE5OTAsXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvOTg5OToxOTk0MDksIGlzbzk4OTk6MTk5OVxuIgojfiAiICAtKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93IHBhcnNpbmcgb2YgQysrIHN0eWxlIGZlYXR1cmVzXG4iCiN+ICIgIC13ICAgICAgICAgICAgICAgICAgICAgICAgSW5oaWJpdCB3YXJuaW5nIG1lc3NhZ2VzXG4iCiN+ICIgIC1XdHJpZ3JhcGhzICAgICAgICAgICAgICAgV2FybiBpZiB0cmlncmFwaHMgYXJlIGVuY291bnRlcmVkXG4iCiN+ICIgIC1Xbm8tdHJpZ3JhcGhzICAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgdHJpZ3JhcGhzXG4iCiN+ICIgIC1XY29tbWVudHtzfSAgICAgICAgICAgICAgV2FybiBpZiBvbmUgY29tbWVudCBzdGFydHMgaW5zaWRlIGFub3RoZXJcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1zdGQ9PHN0ZCBuYW1lPiAgICAgICAgICAgxay556S1pLuk68m4veCk8rvYxOogLS0gsMqyvKTopOqw7KTEXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ251ODksIGdudTk5LCBjODksIGM5OSwgaXNvOTg5OToxOTkwLFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzbzk4OTk6MTk5NDA5LCBpc285ODk5OjE5OTlcbiIKI34gIiAgLSsgICAgICAgICAgICAgICAgICAgICAgICBDKysgvLCkzrm9yriy8sDPpPK19rLEpLmk61xuIgojfiAiICAtdyAgICAgICAgICAgICAgICAgICAgICAgILfZufCl4aXDpbuhvKW4pPLN3sCppLmk61xuIgojfiAiICAtV3RyaWdyYXBocyAgICAgICAgICAgICAgIKXIpemlpKWwpeml1aTLvdCkr6TvpLekv6Tpt9m58KS5pOtcbiIKI34gIiAgLVduby10cmlncmFwaHMgICAgICAgICAgICClyKXppaSlsKXppdWky6TEpKSkxqTOt9m58KTyudSkyqTvpMqkpFxuIgojfiAiICAtV2NvbW1lbnR7c30gICAgICAgICAgICAgIKWzpeGl86XIpKzCvqTOpbOl4aXzpcjG4qTHu8+k3qTDpMakpKS/pOm32bnwpLmk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLVduby1jb21tZW50e3N9ICAgICAgICAgICBEbyBub3Qgd2FybiBhYm91dCBjb21tZW50c1xuIgojfiAiICAtV3RyYWRpdGlvbmFsICAgICAgICAgICAgIFdhcm4gYWJvdXQgZmVhdHVyZXMgbm90IHByZXNlbnQgaW4gdHJhZGl0aW9uYWwgQ1xuIgojfiAiICAtV25vLXRyYWRpdGlvbmFsICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRyYWRpdGlvbmFsIENcbiIKI34gIiAgLVd1bmRlZiAgICAgICAgICAgICAgICAgICBXYXJuIGlmIGFuIHVuZGVmaW5lZCBtYWNybyBpcyB1c2VkIGJ5ICNpZlxuIgojfiAiICAtV25vLXVuZGVmICAgICAgICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRlc3RpbmcgdW5kZWZpbmVkIG1hY3Jvc1xuIgojfiAiICAtV2ltcG9ydCAgICAgICAgICAgICAgICAgIFdhcm4gYWJvdXQgdGhlIHVzZSBvZiB0aGUgI2ltcG9ydCBkaXJlY3RpdmVcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1Xbm8tY29tbWVudHtzfSAgICAgICAgICAgpbOl4aXzpciky7TYpLmk67fZufCk8rnUpMqk76TKpKRcbiIKI34gIiAgLVd0cmFkaXRpb25hbCAgICAgICAgICAgICC4vbrfpMikz7DbpMqk67jFpKQgQyCkx6TOtaHHvaTLpMSkpKTGt9m58KS5pOtcbiIKI34gIiAgLVduby10cmFkaXRpb25hbCAgICAgICAgICC4xaSkIEMgpMu02KS5pOu32bnwpPK51KTKpO+kyqSkXG4iCiN+ICIgIC1XdW5kZWYgICAgICAgICAgICAgICAgICAgzKTE6rXBpM6l3qWvpe2krCAjaWYgpMe7yKTvpOykxqSkpOyk0LfZufCkuaTrXG4iCiN+ICIgIC1Xbm8tdW5kZWYgICAgICAgICAgICAgICAgzKTE6rXBpd6lr6XtpM7JvrLBpMu02KS5pOu32bnwpPK51KTKpO+kyqSkXG4iCiN+ICIgIC1XaW1wb3J0ICAgICAgICAgICAgICAgICAgI2ltcG9ydCClx6Wjpeylr6XGpaOl1qTOzfjN0aTLtNikt6TGt9m58KS5pOtcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1Xbm8taW1wb3J0ICAgICAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgdGhlIHVzZSBvZiAjaW1wb3J0XG4iCiN+ICIgIC1XZXJyb3IgICAgICAgICAgICAgICAgICAgVHJlYXQgYWxsIHdhcm5pbmdzIGFzIGVycm9yc1xuIgojfiAiICAtV25vLWVycm9yICAgICAgICAgICAgICAgIERvIG5vdCB0cmVhdCB3YXJuaW5ncyBhcyBlcnJvcnNcbiIKI34gIiAgLVdzeXN0ZW0taGVhZGVycyAgICAgICAgICBEbyBub3Qgc3VwcHJlc3Mgd2FybmluZ3MgZnJvbSBzeXN0ZW0gaGVhZGVyc1xuIgojfiAiICAtV25vLXN5c3RlbS1oZWFkZXJzICAgICAgIFN1cHByZXNzIHdhcm5pbmdzIGZyb20gc3lzdGVtIGhlYWRlcnNcbiIKI34gIiAgLVdhbGwgICAgICAgICAgICAgICAgICAgICBFbmFibGUgYWxsIHByZXByb2Nlc3NvciB3YXJuaW5nc1xuIgojfiBtc2dzdHIgIiIKI34gIiAgLVduby1pbXBvcnQgICAgICAgICAgICAgICAjaW1wb3J0IKTOzfjN0aTLtNikuaTrt9m58KTyudSkyqTvpMqkpFxuIgojfiAiICAtV2Vycm9yICAgICAgICAgICAgICAgICAgIMG0pMakzrfZufCk8qWopemhvKTIpLekxrzopOqwt6SmXG4iCiN+ICIgIC1Xbm8tZXJyb3IgICAgICAgICAgICAgICAgt9m58KTypail6aG8pMikt6TGvOik6rC3pO+kyqSkXG4iCiN+ICIgIC1Xc3lzdGVtLWhlYWRlcnMgICAgICAgICAgpbeluaXGpeCl2KXDpcCkq6TppM632bnwpPLN3sCppLekyqSkXG4iCiN+ICIgIC1Xbm8tc3lzdGVtLWhlYWRlcnMgICAgICAgpbeluaXGpeCl2KXDpcCkq6TppM632bnwpPLN3sCppLmk61xuIgojfiAiICAtV2FsbCAgICAgICAgICAgICAgICAgICAgIMG0pMakzqXXpeql16Xtpbulw6W1t9m58KTyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiIKI34gIiAgLU0gICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBtYWtlIGRlcGVuZGVuY2llc1xuIgojfiAiICAtTU0gICAgICAgICAgICAgICAgICAgICAgIEFzIC1NLCBidXQgaWdub3JlIHN5c3RlbSBoZWFkZXIgZmlsZXNcbiIKI34gIiAgLU1GIDxmaWxlPiAgICAgICAgICAgICAgICBXcml0ZSBkZXBlbmRlbmN5IG91dHB1dCB0byB0aGUgZ2l2ZW4gZmlsZVxuIgojfiAiICAtTUcgICAgICAgICAgICAgICAgICAgICAgIFRyZWF0IG1pc3NpbmcgaGVhZGVyIGZpbGUgYXMgZ2VuZXJhdGVkIGZpbGVzXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtTSAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UgsM3CuLTYt7ik8sC4wK6kuaTrXG4iCiN+ICIgIC1NTSAgICAgICAgICAgICAgICAgICAgICAgLU0gxrHNzaGiw6Kkt6W3pbmlxqXgpdilw6XApdWloaWkpeuk8sy1u+ukuaTrXG4iCiN+ICIgIC1NRiA8ZmlsZT4gICAgICAgICAgICAgICAgsM3CuLTYt7ikzr3Qzs+k8s2/pKik6aTspL+l1aWhpaSl66TLvfGkrbn+pOBcbiIKI34gIiAgLU1HICAgICAgICAgICAgICAgICAgICAgICC4q6TEpKuk6aTKpKSl2KXDpcCk8sC4wK6ktaTspOul1aWhpaSl66TIpLekxrC3pKZcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1NUFx0XHRcdCAgICBHZW5lcmF0ZSBwaG9ueSB0YXJnZXRzIGZvciBhbGwgaGVhZGVyc1xuIgojfiAiICAtTVEgPHRhcmdldD4gICAgICAgICAgICAgIEFkZCBhIE1BS0UtcXVvdGVkIHRhcmdldFxuIgojfiAiICAtTVQgPHRhcmdldD4gICAgICAgICAgICAgIEFkZCBhbiB1bnF1b3RlZCB0YXJnZXRcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1NUFx0XHRcdCAgICDBtKTGpM6l2KXDpcCky6TEpKSkxiBwaG9ueSClv6G8pbKlw6XIpPLAuMCupLmk61xuIgojfiAiICAtTVEgPHRhcmdldD4gICAgICAgICAgICAgIE1BS0UgpMekzqWvpaqhvKXIpLWk7KS/pb+hvKWypcOlyKTyxMmyw6S5pOtcbiIKI34gIiAgLU1UIDx0YXJnZXQ+ICAgICAgICAgICAgICClr6WqobylyKS1pOykyqSkpb+hvKWypcOlyKTyxMmyw6S5pOtcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1EPG1hY3JvPiAgICAgICAgICAgICAgICAgRGVmaW5lIGEgPG1hY3JvPiB3aXRoIHN0cmluZyAnMScgYXMgaXRzIHZhbHVlXG4iCiN+ICIgIC1EPG1hY3JvPj08dmFsPiAgICAgICAgICAgRGVmaW5lIGEgPG1hY3JvPiB3aXRoIDx2YWw+IGFzIGl0cyB2YWx1ZVxuIgojfiAiICAtQTxxdWVzdGlvbj4gKDxhbnN3ZXI+KSAgIEFzc2VydCB0aGUgPGFuc3dlcj4gdG8gPHF1ZXN0aW9uPlxuIgojfiAiICAtQS08cXVlc3Rpb24+ICg8YW5zd2VyPikgIERpc2FibGUgdGhlIDxhbnN3ZXI+IHRvIDxxdWVzdGlvbj5cbiIKI34gIiAgLVU8bWFjcm8+ICAgICAgICAgICAgICAgICBVbmRlZmluZSA8bWFjcm8+IFxuIgojfiAiICAtdiAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgdGhlIHZlcnNpb24gbnVtYmVyXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtRDxtYWNybz4gICAgICAgICAgICAgICAgIDxtYWNybz4gpPLE6rXBpLehoqS9pM7DzaTyyri7+s7zpM4gJzEnIKTIpLmk61xuIgojfiAiICAtRDxtYWNybz49PHZhbD4gICAgICAgICAgIDxtYWNybz4gpPLE6rXBpLehoqS9pM7DzaTyIDx2YWw+IKTIpLmk61xuIgojfiAiICAtQTxxdWVzdGlvbj4gKDxhbnN3ZXI+KSAgIDxxdWVzdGlvbj4gpMsgPGFuc3dlcj4gpMjAvMzApLmk61xuIgojfiAiICAtQS08cXVlc3Rpb24+ICg8YW5zd2VyPikgIDxxdWVzdGlvbj4gpPIgPGFuc3dlcj4gpMikt6TKpKRcbiIKI34gIiAgLVU8bWFjcm8+ICAgICAgICAgICAgICAgICA8bWFjcm8+IMTqtcGk8rLyvfykuaTrXG4iCiN+ICIgIC12ICAgICAgICAgICAgICAgICAgICAgICAgpdChvKW4peel88jWueak8sm9vKikuaTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtSCAgICAgICAgICAgICAgICAgICAgICAgIFByaW50IHRoZSBuYW1lIG9mIGhlYWRlciBmaWxlcyBhcyB0aGV5IGFyZSB1c2VkXG4iCiN+ICIgIC1DICAgICAgICAgICAgICAgICAgICAgICAgRG8gbm90IGRpc2NhcmQgY29tbWVudHNcbiIKI34gIiAgLWRNICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGEgbGlzdCBvZiBtYWNybyBkZWZpbml0aW9ucyBhY3RpdmUgYXQgZW5kXG4iCiN+ICIgIC1kRCAgICAgICAgICAgICAgICAgICAgICAgUHJlc2VydmUgbWFjcm8gZGVmaW5pdGlvbnMgaW4gb3V0cHV0XG4iCiN+ICIgIC1kTiAgICAgICAgICAgICAgICAgICAgICAgQXMgLWREIGV4Y2VwdCB0aGF0IG9ubHkgdGhlIG5hbWVzIGFyZSBwcmVzZXJ2ZWRcbiIKI34gIiAgLWRJICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlICNpbmNsdWRlIGRpcmVjdGl2ZXMgaW4gdGhlIG91dHB1dFxuIgojfiBtc2dzdHIgIiIKI34gIiAgLUggICAgICAgICAgICAgICAgICAgICAgICC7yKTvpOykv6XYpcOlwKXVpaGlpKXrpPLJvbyopLmk61xuIgojfiAiICAtQyAgICAgICAgICAgICAgICAgICAgICAgIKWzpeGl86XIpPLHy7T+pLekyqSkXG4iCiN+ICIgIC1kTSAgICAgICAgICAgICAgICAgICAgICAguse45aTLza24+qTKpd6lr6XtxOq1waXqpbmlyKTyyb28qKS5pOtcbiIKI34gIiAgLWREICAgICAgICAgICAgICAgICAgICAgICC90M7PpMul3qWvpe3E6rXBpPLK3cK4pLmk61xuIgojfiAiICAtZE4gICAgICAgICAgICAgICAgICAgICAgIC1kRCCkyMaxzc2kwKSsoaLMvsGwpMCksaTyyt3CuKS5pOtcbiIKI34gIiAgLWRJICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSClx6Wjpeylr6XGpaOl1qTyvdDOz6TLtN6k4aTrXG4iCgojfiBtc2dpZCAiIgojfiAiICAtZnByZXByb2Nlc3NlZCAgICAgICAgICAgIFRyZWF0IHRoZSBpbnB1dCBmaWxlIGFzIGFscmVhZHkgcHJlcHJvY2Vzc2VkXG4iCiN+ICIgIC1mdGFic3RvcD08bnVtYmVyPiAgICAgICAgRGlzdGFuY2UgYmV0d2VlbiB0YWIgc3RvcHMgZm9yIGNvbHVtbiByZXBvcnRpbmdcbiIKI34gIiAgLVAgICAgICAgICAgICAgICAgICAgICAgICBEbyBub3QgZ2VuZXJhdGUgI2xpbmUgZGlyZWN0aXZlc1xuIgojfiAiICAtJCAgICAgICAgICAgICAgICAgICAgICAgIERvIG5vdCBhbGxvdyAnJCcgaW4gaWRlbnRpZmllcnNcbiIKI34gIiAgLXJlbWFwICAgICAgICAgICAgICAgICAgICBSZW1hcCBmaWxlIG5hbWVzIHdoZW4gaW5jbHVkaW5nIGZpbGVzLlxuIgojfiAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgIERpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgojfiAiICAtaCBvciAtLWhlbHAgICAgICAgICAgICAgIERpc3BsYXkgdGhpcyBpbmZvcm1hdGlvblxuIgojfiBtc2dzdHIgIiIKI34gIiAgLWZwcmVwcm9jZXNzZWQgICAgICAgICAgICDG/s7PpdWloaWkpeuk8rT7pMul16Xqpdel7aW7pbm60aTIpLekxrC3pKZcbiIKI34gIiAgLWZ0YWJzdG9wPTxudW1iZXI+ICAgICAgICClq6XppeCkzqW/pda01rPWpPLK87nwpLmk61xuIgojfiAiICAtUCAgICAgICAgICAgICAgICAgICAgICAgICNsaW5lIKXHpaOl7KWvpcalo6XWpPLAuMCupLekyqSkXG4iCiN+ICIgIC0kICAgICAgICAgICAgICAgICAgICAgICAgvLHKzLvSpMekziAnJCcgpPK19rLEpLekyqSkXG4iCiN+ICIgIC1yZW1hcCAgICAgICAgICAgICAgICAgICAgpdWloaWkpeulpKXzpa+l66G8pcm7/qTLpdWloaWkpevMvqTyusal3qXDpdekuaTrXG4iCiN+ICIgIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgpdChvKW4peel877wyvOk8sm9vKikuaTrXG4iCiN+ICIgIC1oIG9yIC0taGVscCAgICAgICAgICAgICAgpLOkzr7wyvOk8sm9vKikuaTrXG4iCgojfiBtc2dpZCAiJyQnIGNoYXJhY3RlcihzKSBpbiBpZGVudGlmaWVyIgojfiBtc2dzdHIgIickJyDKuLv6pKy8scrMu9Kky8b+pMOkxqSkpN6kuSIKCiN+IG1zZ2lkICJtaXNzaW5nIHRlcm1pbmF0aW5nICVjIGNoYXJhY3RlciIKI34gbXNnc3RyICIlYyDKuLv6pMekzr2qw7yk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJwb3NzaWJsZSBzdGFydCBvZiB1bnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwiCiN+IG1zZ3N0ciAivarDvKTOpMqkpMq4u/rO86Xqpcal6aXrpM6/5MTqs6u7z7DMw9YiCgojfiBtc2dpZCAibXVsdGktbGluZSBzdHJpbmcgbGl0ZXJhbHMgYXJlIGRlcHJlY2F0ZWQiCiN+IG1zZ3N0ciAiyqO/9LnUyri7+s7zpeqlxqXppeukz7/kvqmktaTspN6ku6TzIgoKI34gbXNnaWQgImRpcmVjdGl2ZXMgbWF5IG5vdCBiZSB1c2VkIGluc2lkZSBhIG1hY3JvIGFyZ3VtZW50IgojfiBtc2dzdHIgIqXepa+l7bD6v/TG4qTHpcelo6Xspa+lyKXqpPK7yKSmpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICIjIGZvbGxvd2VkIGJ5IGludGVnZXIiCiN+IG1zZ3N0ciAiwLC/9KSsICMgpMvCs6SkpMakpKTepLkiCgojfiBtc2dpZCAiXCIlc1wiIGNhbm5vdCBiZSB1c2VkIGFzIGEgbWFjcm8gbmFtZSIKI34gbXNnc3RyICJcIiVzXCIgpM+l3qWvpe3MvqTIpLekxqTPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJhdHRlbXB0IHRvIHB1c2ggZmlsZSBidWZmZXIgd2l0aCBjb250ZXh0cyBzdGFja2VkIgojfiBtc2dzdHIgIqW5pb+lw6WvpLWk7KS/pbOl86XGpa+luaXIpMiw7L3vpMul1aWhpaSl66XQpcOl1aWhpPIgcHVzaCCkt6TopKakyKS3pMakpKTepLkiCgojfiBtc2dpZCAiI2ltcG9ydCBpcyBvYnNvbGV0ZSwgdXNlIGFuICNpZm5kZWYgd3JhcHBlciBpbiB0aGUgaGVhZGVyIGZpbGUiCiN+IG1zZ3N0ciAiI2ltcG9ydCCkz7jFpKTJvbi9pMekuS4gpdilw6XApdWloaWkpevD5qTHICNpZm5kZWYgpM6l6aXDpdGhvKTyu8ikw6TGpK+kwKS1pKQiCgojfiBtc2dpZCAiZmlsZSBcIiVzXCIgbGVmdCBidXQgbm90IGVudGVyZWQiCiN+IG1zZ3N0ciAipdWloaWkpesgXCIlc1wiIKSrpOm90KTepLekv6Ssxv6kw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiZXhwZWN0ZWQgdG8gcmV0dXJuIHRvIGZpbGUgXCIlc1wiIgojfiBtc2dzdHIgIqXVpaGlpKXrIFwiJXNcIiCky8zhpOukz6S6pMekt6S/IgoKI34gbXNnaWQgImV4cGVjdGVkIHRvIHJldHVybiB0byBsaW5lIG51bWJlciAldSIKI34gbXNnc3RyICK51MjWueYgJXUgpMvM4aTrpM+kuqTHpLekvyIKCiN+IG1zZ2lkICJoZWFkZXIgZmxhZ3MgZm9yIFwiJXNcIiBoYXZlIGNoYW5nZWQiCiN+IG1zZ3N0ciAiXCIlc1wiIKTOpdilw6XApdWl6aWwpKzK0bm5pLWk7KTepLekvyIKCiN+IG1zZ2lkICJ1bmtub3duICNwcmFnbWEgbmFtZXNwYWNlICVzIgojfiBtc2dzdHIgIsnUzMCkyiAjcHJhZ21hIG5hbWVzcGFjZSAlcyCkx6S5IgoKI34gbXNnaWQgIiNwcmFnbWEgb25jZSBpcyBvYnNvbGV0ZSIKI34gbXNnc3RyICIjcHJhZ21hIG9uY2UgpM+k4qSmu8ik76TspMakpKTepLuk8yIKCiN+IG1zZ2lkICI8YnVpbHRpbj4iCiN+IG1zZ3N0ciAiPMHIpN+5/qTfPiIKCiN+IG1zZ2lkICI8Y29tbWFuZCBsaW5lPiIKI34gbXNnc3RyICI8pbOl3qXzpcml6aWkpfM+IgoKI34gbXNnaWQgIjxzdGRpbj4iCiN+IG1zZ3N0ciAiPMm4veDG/s7PPiIKCiN+IG1zZ2lkICJmaWxlIFwiJXNcIiBlbnRlcmVkIGJ1dCBub3QgbGVmdCIKI34gbXNnc3RyICKl1aWhpaSl6yBcIiVzXCIgpMvG/qTqpN6kt6S/pKy90KTepLuk86THpLekvyIKCiN+IG1zZ2lkICJJbnZhbGlkIG9wdGlvbiAlcyIKI34gbXNnc3RyICLMtbj6pMqlqqXXpbel56XzICVzIgoKI34gbXNnaWQgIlwiJXNcIiBpcyBub3QgYSB2YWxpZCBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3NvciIKI34gbXNnc3RyICJcIiVzXCIgpM+l16Xqpdel7aW7pcOltaTLwtCkuaTrwLW+76TKpaql16W3peel86THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRvbyBtYW55IGlucHV0IGZpbGVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl66Sswr+kuaSupN6kuSIKCiN+IG1zZ2lkICI7OyBQcm9jZXNzaW5nIGJsb2NrIGZyb20gJWQgdG8gJWQsICVkIHNldHMuXG4iCiN+IG1zZ3N0ciAiOzsgJWQgpKuk6SAlZCCk3qTHpM696M39pdal7aXDpa+hoiVkIKW7pcOlyKGjXG4iCgojfiBtc2dpZCAiJXM6JWQ6IHdhcm5pbmc6ICIKI34gbXNnc3RyICIlczolZDogt9m58DogIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiAiCiN+IG1zZ3N0ciAiJXM6ILfZufA6ICIKCiN+IG1zZ2lkICIoKGFub255bW91cykpIgojfiBtc2dzdHIgIigozLXMvikpIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9yc1xuIgojfiBtc2dzdHIgIiVzOiC32bnwpM+lqKXpobykyKS3pMa86KTqsLek76TspN6kuVxuIgoKI34gbXNnaWQgIiVzOiAlczogIgojfiBtc2dzdHIgIiVzOiAlczogIgoKI34gbXNnaWQgInNvcnJ5LCBub3QgaW1wbGVtZW50ZWQ6ICIKI34gbXNnc3RyICK7xMewpMqkrKTpuKu8wsH1pMekuTogIgoKI34gbXNnaWQgIiVzICIKI34gbXNnc3RyICIlcyAiCgojfiBtc2dpZCAiICVzIgojfiBtc2dzdHIgIiAlcyIKCiN+IG1zZ2lkICJBdCB0b3AgbGV2ZWw6IgojfiBtc2dzdHIgIqXIpcOl16Xspdml6zoiCgojfiBtc2dpZCAiSW4gbWV0aG9kIGAlcyc6IgojfiBtc2dzdHIgIqXhpb2lw6XJIGAlcycgxuI6IgoKI34gbXNnaWQgIkluIGZ1bmN0aW9uIGAlcyc6IgojfiBtc2dzdHIgIrTYv/QgYCVzJyDG4joiCgojfiBtc2dpZCAiY29tcGlsYXRpb24gdGVybWluYXRlZC5cbiIKI34gbXNnc3RyICKls6XzpdGlpKXrpKzD5sPHpLWk7KTepLekv6GjXG4iCgojfiBtc2dpZCAiJXM6JWQ6IGNvbmZ1c2VkIGJ5IGVhcmxpZXIgZXJyb3JzLCBiYWlsaW5nIG91dFxuIgojfiBtc2dzdHIgIiVzOiVkOiDBsKTOpail6aG8pMuk6KTquq7N8KS3pMakpKTepLmkzqTHoaLDpr3QpLek3qS5XG4iCgojfiBtc2dpZCAiIgojfiAiUGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCxcbiIKI34gIndpdGggcHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS5cbiIKI34gIlNlZSAlcyBmb3IgaW5zdHJ1Y3Rpb25zLlxuIgojfiBtc2dzdHIgIiIKI34gIrSwwbSkyqXQpbDK87nwpPLB96TDpMayvKS1pKSho1xuIgojfiAixazA2qTKpOmk0KXXpeql16XtpbulubjlpM6lvaG8pbmk8qTEpLGkxqSvpMCktaSkoaNcbiIKI34gIiVzIKTyuKuk7KTQyv3LoaSsvfGkpKTGpKKk6qTepLmho1xuIgoKI34gbXNnaWQgIlVucmVjb2duaXphYmxlIGluc246IgojfiBtc2dzdHIgIsenvLHJ1Me9pMrMv87hOiIKCiN+IG1zZ2lkICJJbnNuIGRvZXMgbm90IHNhdGlzZnkgaXRzIGNvbnN0cmFpbnRzOiIKI34gbXNnc3RyICLMv87hpKykvaTOwKnM86Tyy/6kv6S3pN6ku6TzIgoKI34gbXNnaWQgIkludGVybmFsIGNvbXBpbGVyIGVycm9yOiBFcnJvciByZXBvcnRpbmcgcm91dGluZXMgcmUtZW50ZXJlZC5cbiIKI34gbXNnc3RyICLG4sn0pbOl86XRpaSl66WopemhvDogpail6aG8yvO58KXrobylwaXzpMu6xsb+pLek3qS3pL+ho1xuIgoKI34gbXNnaWQgIkludGVybmFsIGNvbXBpbGVyIGVycm9yIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICIlcyCkx8biyfSls6XzpdGlpKXppail6aG8ICglczolZCkiCgojfiBtc2dpZCAiSW4gZmlsZSBpbmNsdWRlZCBmcm9tICVzOiVkIgojfiBtc2dzdHIgIiVzOiVkIKSrpOkgaW5jbHVkZSCktaTspL+l1aWhpaSl68biIgoKI34gbXNnaWQgIiIKI34gIixcbiIKI34gIiAgICAgICAgICAgICAgICAgZnJvbSAlczolZCIKI34gbXNnc3RyICIiCiN+ICIsXG4iCiN+ICIgICAgICAgICAgICAgICAgICVzOiVkIKSrpOkiCgojfiBtc2dpZCAiOlxuIgojfiBtc2dzdHIgIjpcbiIKCiN+IG1zZ2lkICJEV19MT0NfT1AgJXMgbm90IGltcGxlbWVtbnRlZFxuIgojfiBtc2dzdHIgIkRXX0xPQ19PUCAlcyCkz7zCwfWktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgImludGVybmFsIHJlZ25vIGJvdGNoOiByZWdubyA9ICVkXG4iCiN+IG1zZ3N0ciAixuLJ9MWqpMsgcmVnbm8gpM696M39pKzK0TogcmVnbm8gPSAlZFxuIgoKI34gbXNnaWQgImNhbid0IGdldCBjdXJyZW50IGRpcmVjdG9yeSIKI34gbXNnc3RyICKlq6XspfOlyKXHpaOl7KWvpcil6qTyvOjGwKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiQ2FuJ3QgYWNjZXNzIHJlYWwgcGFydCBvZiBjb21wbGV4IHZhbHVlIGluIGhhcmQgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAipc+hvKXJpeyluKW5pb/G4qTHyqPBx7/0pM68wr/0yfTKrKTLpaKlr6W7pbmkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IGFjY2VzcyBpbWFnaW5hcnkgcGFydCBvZiBjb21wbGV4IHZhbHVlIGluIGhhcmQgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAipc+hvKXJpeyluKW5pb/G4qTHyqPBx7/0pM619b/0yfTKrKTLpaKlr6W7pbmkx6StpN6ku6TzIgoKI34gbXNnaWQgIklDRTogZW1pdF9pbnNuIHVzZWQgd2hlcmUgZW1pdF9qdW1wX2luc24gbmVlZGVkOlxuIgojfiBtc2dzdHIgIklDRTogZW1pdF9pbnNuIKSsIGVtaXRfanVtcF9pbnNuIKTyzdekuaTrveqkx7vIpO+k7KTepLekvzpcbiIKCiN+IG1zZ2lkICJhYm9ydCBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiJXMgpMfD5sPHLCCwzMPWICVzOiVkIgoKI34gbXNnaWQgImV4Y2VwdGlvbiBoYW5kbGluZyBkaXNhYmxlZCwgdXNlIC1mZXhjZXB0aW9ucyB0byBlbmFibGUiCiN+IG1zZ3N0ciAizuOzsL3ozf2k8sy1uPqky6S3pN6kt6S/LiDNrbj6pMukuaTrpMukzyAtZmV4Y2VwdGlvbnMgpPK7yKTDpMakr6TApLWkpCIKCiN+IG1zZ2lkICJhcmd1bWVudCBvZiBgX19idWlsdGluX2VoX3JldHVybl9yZWdubycgbXVzdCBiZSBjb25zdGFudCIKI34gbXNnc3RyICJgX19idWlsdGluX2VoX3JldHVybl9yZWdubycgpM6w+r/0pM/E6r/0pMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiX19idWlsdGluX2VoX3JldHVybiBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIl9fYnVpbHRpbl9laF9yZXR1cm4gpM+ks6TOpb+hvKWypcOlyKTHpM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgInN0YWNrIGxpbWl0cyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IgojfiBtc2dzdHIgIqW5pb+lw6WvwKm4wqTPpLOkzqW/obylsqXDpcikx6TPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHVzaW5nIHNob3J0IGNvbXBsZXggdHlwZXMgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICJzaG9ydCBjb21wbGV4ILe/pPK7yKSmtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAidW5zdXBwb3J0ZWQgd2lkZSBpbnRlZ2VyIG9wZXJhdGlvbiIKI34gbXNnc3RyICKltaXdobylyKS1pOykxqSkpMqkpKXvpaSlycCwv/Sx6bu7IgoKI34gbXNnaWQgInByaW9yIHBhcmFtZXRlcidzIHNpemUgZGVwZW5kcyBvbiBgJXMnIgojfiBtc2dzdHIgIs2lwOikuaTrsr6w+r/0pM6ltaWkpbqkzyBgJXMnILyhwuikx6S5IgoKI34gbXNnaWQgInJldHVybmVkIHZhbHVlIGluIGJsb2NrX2V4aXRfZXhwciIKI34gbXNnc3RyICJibG9ja19leGl0X2V4cHIgpMfDzaTyIHJldHVybiCkt6TepLekvyIKCiN+IG1zZ2lkICJubyBJTlRFR0VSIHR5cGUgY2FuIGhvbGQgYSBwb2ludGVyIG9uIHRoaXMgY29uZmlndXJhdGlvbiIKI34gbXNnc3RyICK4vbrfpM7A38TqpMekz8jzIElOVEVHRVIgt7+krKXdpaSl86W/pPLK3bv9pMekraTepLkiCgojfiBtc2dpZCAiY29uZmlndXJhdGlvbjogUkVBTCwgSU5URUdFUiwgYW5kIExPR0lDQUwgYXJlICVkIGJpdHMgd2lkZSwiCiN+IG1zZ3N0ciAiwN/E6jogUkVBTCwgSU5URUdFUiC12qTTIExPR0lDQUwgpM8gJWQgpdOlw6XIyf2kx6GiIgoKI34gbXNnaWQgImFuZCBwb2ludGVycyBhcmUgJWQgYml0cyB3aWRlLCBidXQgZzc3IGRvZXNuJ3QgeWV0IHdvcmsiCiN+IG1zZ3N0ciAipd2lpKXzpb+kzyAlZCCl06XDpcjJ/aTHpLmkrKGipL2k7KTpwbSkxqSsIDMyIKXTpcOlyMn9IgoKI34gbXNnaWQgInByb3Blcmx5IHVubGVzcyB0aGV5IGFsbCBhcmUgMzIgYml0cyB3aWRlLiIKI34gbXNnc3RyICKkx6TKpKSkyCBnNzcgpM/Atb7vpMvGsLrupLek3qS7pPOhoyIKCiN+IG1zZ2lkICJQbGVhc2Uga2VlcCB0aGlzIGluIG1pbmQgYmVmb3JlIHlvdSByZXBvcnQgYnVncy4gIGc3NyBzaG91bGQiCiN+IG1zZ3N0ciAipdClsKXspd2hvKXIpPLB96TrwbCky6SzpM679qTyv7Sky86xpOGkxsPWpKSkxqSvpMCktaSkoaMiCgojfiBtc2dpZCAic3VwcG9ydCBub24tMzItYml0IG1hY2hpbmVzIGJldHRlciBhcyBvZiB2ZXJzaW9uIDAuNi4iCiN+IG1zZ3N0ciAiZzc3IKTPpKSkuqTsIHZlcnNpb24gMC42IMaxzc2ky8jzIDMyIKXTpcOlyLWhpMek4qW1pd2hvKXIpLWk7KTepLkiCgojfiBtc2dpZCAiY29uZmlndXJhdGlvbjogY2hhciAqIGhvbGRzICVkIGJpdHMsIGJ1dCBmdG5sZW4gb25seSAlZCIKI34gbXNnc3RyICLA38TqOiBjaGFyICogpM8gJWQgpdOlw6XIs87K3aS3pN6kuaSsoaJmdG5sZW4gpKykv6TDpL8gJWQgpdOlw6XIpMekuSIKCiN+IG1zZ2lkICIiCiN+ICJjb25maWd1cmF0aW9uOiBjaGFyICogaG9sZHMgJWQgYml0cywgYnV0IElOVEVHRVIgb25seSAlZCAtLVxuIgojfiAiIEFTU0lHTiBzdGF0ZW1lbnQgbWlnaHQgZmFpbCIKI34gbXNnc3RyICIiCiN+ICLA38TqOiBjaGFyICogpM8gJWQgpdOlw6XIs87K3aS3pN6kuaSsoaJJTlRFR0VSIKSspL+kw6S/ICVkIKXTpcOlyKTHpLkgLS1cbiIKI34gIiC2sqTppK8gQVNTSUdOIMq4pKy8usfUpLek3qS5IgoKI34gbXNnaWQgIkRpcmVjdG9yeSBuYW1lIG11c3QgaW1tZWRpYXRlbHkgZm9sbG93IC1JIgojfiBtc2dzdHIgIqXHpaSl7KWvpcil6sy+pM8gLUkgpM6kuaSwuOWk7aTLpMSksaTKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJvdmVyZmxvd2VkIG91dHB1dCBhcmcgbGlzdCBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIM3RpM690M7PsPq/9KXqpbmlyKSspaqhvKXQobyl1aXtobykt6TepLekvyIKCiN+IG1zZ2lkICItLWRyaXZlciBubyBsb25nZXIgc3VwcG9ydGVkIgojfiBtc2dzdHIgIi0tZHJpdmVyIKTPusfB4aW1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgJXMnIG1pc3NpbmciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOsPq/9KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk5vIGlucHV0IGZpbGVzOyB1bndpbGxpbmcgdG8gd3JpdGUgb3V0cHV0IGZpbGVzIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl66SspKKk6qTepLuk8yAtLSDJ1MvcsNWkyr3Qzs+l1aWhpaSl66TYpM698aStuf6k3yIKCiN+IG1zZ2lkICJQcmludCBnNzctc3BlY2lmaWMgY29tcGlsZXIgdmVyc2lvbiBpbmZvLCBydW4gaW50ZXJuYWwgdGVzdHMiCiN+IG1zZ3N0ciAiZzc3ILjHza2kzqWzpfOl0aWkpeml0KG8pbil56XzvvDK86Tyyb28qKGixuLJ9KXGpbmlyKTOvMK51CIKCiN+IG1zZ2lkICJQcm9ncmFtIGlzIHdyaXR0ZW4gaW4gdHlwaWNhbCBGT1JUUkFOIDY2IGRpYWxlY3QiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsxbW3v8WqpMogRk9SVFJBTiA2NiDK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiUHJvZ3JhbSBpcyB3cml0dGVuIGluIHR5cGljYWwgVW5peCBmNzcgZGlhbGVjdCIKI34gbXNnc3RyICKl16XtpbCl6aXgpKzFtbe/xaqkyiBVbml4IGY3NyDK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiUHJvZ3JhbSBkb2VzIG5vdCB1c2UgVW5peC1mNzcgZGlhbGVjdGFsIGZlYXR1cmVzIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkrCBVbml4LWY3NyDK/bjApM61oce9pPK7yKTDpMakpKTKpKQiCgojfiBtc2dpZCAiUHJvZ3JhbSBpcyB3cml0dGVuIGluIEZvcnRyYW4tOTAtaXNoIGRpYWxlY3QiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsIEZvcnRyYW4tOTAgxarK/bjApMe98aSrpOykxqSkpOsiCgojfiBtc2dpZCAiVHJlYXQgbG9jYWwgdmFycyBhbmQgQ09NTU9OIGJsb2NrcyBhcyBpZiB0aGV5IHdlcmUgbmFtZWQgaW4gU0FWRSBzdGF0ZW1lbnRzIgojfiBtc2dzdHIgIqXtobylq6XrytG/9KTIIENPTU1PTiCl1qXtpcOlr6TyIFNBVkUgyrikx8y+wbDJ1aSxpOmk7KS/pOikpqTLvOik6rC3pKYiCgojfiBtc2dpZCAiQWxsb3cgJCBpbiBzeW1ib2wgbmFtZXMiCiN+IG1zZ3N0ciAiJCCk8qW3pfOl3KXrzL6kyKS3pMa7yKSopOuk6KSmpMukuaTrIgoKI34gbXNnaWQgImYyYy1jb21wYXRpYmxlIGNvZGUgbmVlZCBub3QgYmUgZ2VuZXJhdGVkIgojfiBtc2dzdHIgImYyYyC437S5pbOhvKXJpPLAuMCupLmk68mszdekrKTKpKQiCgojfiBtc2dpZCAiVW5zdXBwb3J0ZWQ7IGRvIG5vdCBnZW5lcmF0ZSBsaWJmMmMtY2FsbGluZyBjb2RlIgojfiBtc2dzdHIgIqW1pd2hvKXIpLWk7KTKpKQgLS0gbGliZjJjLWNhbGxpbmcgpbOhvKXJpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIlVuc3VwcG9ydGVkOyBhZmZlY3RzIGNvZGUtZ2VuZXJhdGlvbiBvZiBhcnJheXMiCiN+IG1zZ3N0ciAipbWl3aG8pciktaTspMqkpCAtLSDH287zpM6ls6G8pcnAuMCupMuxxrbBpLmk6yIKCiN+IG1zZ2lkICJQcm9ncmFtIGlzIHdyaXR0ZW4gaW4gRm9ydHJhbi05MC1pc2ggZnJlZSBmb3JtIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkzyBGb3J0cmFuLTkwIMWqpdWl6qG8pdWlqaG8peCkx73xpKuk7KTGpKSk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHVzZSBvZiAob25seSBhIGZldyBmb3Igbm93KSBGb3J0cmFuIGV4dGVuc2lvbnMiCiN+IG1zZ3N0ciAiRm9ydHJhbiCzyMSlKLqjpM++r6TKpKSkrCmkzrvIzdGky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIlByb2dyYW0gaXMgd3JpdHRlbiBpbiBWWFQgKERpZ2l0YWwtbGlrZSkgRk9SVFJBTiIKI34gbXNnc3RyICKl16XtpbCl6aXgpM8gVlhUIChEaWdpdGFsKSBGT1JUUkFOIKTHvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIkRpc2FsbG93IGFsbCB1Z2x5IGZlYXR1cmVzIgojfiBtc2dzdHIgIsG0pMakzr25pKS1oce9pPK19rLEpLekyqSkIgoKI34gbXNnaWQgIkhvbGxlcml0aCBhbmQgdHlwZWxlc3MgY29uc3RhbnRzIG5vdCBwYXNzZWQgYXMgYXJndW1lbnRzIgojfiBtc2dzdHIgIkhvbGxlcml0aCCk5Le/pMqkt8Tqv/Sk8rD6v/SkyKS3pMbFz6S1pMqkpCIKCiN+IG1zZ2lkICJBbGxvdyBvcmRpbmFyeSBjb3B5aW5nIG9mIEFTU0lHTidlZCB2YXJzIgojfiBtc2dzdHIgIkFTU0lHTiCktaTspL/K0b/0pM7EzL7vpM6ls6XUobyk8rX2ssSkuaTrIgoKI34gbXNnaWQgIkR1bW15IGFycmF5IGRpbWVuc2lvbmVkIHRvICgxKSBpcyBhc3N1bWVkLXNpemUiCiN+IG1zZ3N0ciAipcCl36G8x9vO86TOvKG4taTyICgxKSCkyKTfpMqkuSIKCiN+IG1zZ2lkICJUcmFpbGluZyBjb21tYSBpbiBwcm9jZWR1cmUgY2FsbCBkZW5vdGVzIG51bGwgYXJndW1lbnQiCiN+IG1zZ3N0ciAipdel7aW3obyluKXjuMak073QpLfD5qTOz6LCs6WrpfOl3qTHIG51bGwgsPq/9KTyyb24vaS5pOsiCgojfiBtc2dpZCAiQWxsb3cgUkVBTChaKSBhbmQgQUlNQUcoWikgZ2l2ZW4gRE9VQkxFIENPTVBMRVggWiIKI34gbXNnc3RyICJET1VCTEUgQ09NUExFWCBaIKTHpM4gUkVBTChaKSCkyCBBSU1BRyhaKSCk8rX2ssSkuaTrIgoKI34gbXNnaWQgIkluaXRpYWxpemF0aW9uIHZpYSBEQVRBIGFuZCBQQVJBTUVURVIgaXMgdHlwZS1jb21wYXRpYmxlIgojfiBtc2dzdHIgIkRBVEEgpOQgUEFSQU1FVEVSILfQzbOkzr3ptPyyvaTPt7+437S5pMekoqTrIgoKI34gbXNnaWQgIkFsbG93IElOVEVHRVIgYW5kIExPR0lDQUwgaW50ZXJjaGFuZ2VhYmlsaXR5IgojfiBtc2dzdHIgIklOVEVHRVIgpMggTE9HSUNBTCCkz8HquN+ky8rRubmyxMe9pMekoqTrpMikuaTrIgoKI34gbXNnaWQgIlByaW50IGludGVybmFsIGRlYnVnZ2luZy1yZWxhdGVkIGluZm8iCiN+IG1zZ3N0ciAixuLJ9KXHpdClw6WwtNjPor7wyvOk8sm9vKikuaTrIgoKI34gbXNnaWQgIkluaXRpYWxpemUgbG9jYWwgdmFycyBhbmQgYXJyYXlzIHRvIHplcm8iCiN+IG1zZ3N0ciAipe2hvKWrpevK0b/0pOTH287zpPKlvKXtpMu96bT8sr2kuaTrIgoKI34gbXNnaWQgIkJhY2tzbGFzaGVzIGluIGNoYXJhY3Rlci9ob2xsZXJpdGggY29uc3RhbnRzIG5vdCBzcGVjaWFsIChDLXN0eWxlKSIKI34gbXNnc3RyICLKuLv6L2hvbGxlcml0aCDE6r/0pMekzqXQpcOlr6W5pemlw6W3peWk8sbDvOykyqTipM6kyKS3pMqkpCAoQyC8sCkiCgojfiBtc2dpZCAiSGF2ZSBmcm9udCBlbmQgZW11bGF0ZSBDT01QTEVYIGFyaXRobWV0aWMgdG8gYXZvaWQgYnVncyIKI34gbXNnc3RyICJDT01QTEVYILfXu7ukzqXQpbCk8rLzyPKk8qWopd+l5aXsobylyKS5pOul1aXtpfOlyKWopfOlyaTyu/2kxCIKCiN+IG1zZ2lkICJEaXNhYmxlIHRoZSBhcHBlbmRpbmcgb2YgdW5kZXJzY29yZXMgdG8gZXh0ZXJuYWxzIgojfiBtc2dzdHIgIrOwyfTK0b/0pMuloqXzpcChvKW5pbOloqTyydWkscKtpLWkyqSkIgoKI34gbXNnaWQgIk5ldmVyIGFwcGVuZCBhIHNlY29uZCB1bmRlcnNjb3JlIHRvIGV4dGVybmFscyIKI34gbXNnc3RyICKzsMn0ytG/9KTLxvOkxMzcpM6loqXzpcChvKW5pbOloqTyydWkscKtpLWkyqSkIgoKI34gbXNnaWQgIkludHJpbnNpY3Mgc3BlbGxlZCBhcyBlLmcuIFNxUnQiCiN+IG1zZ3N0ciAiaW50cmluc2ljIKSszuOkqKTQIFNxUnQgpM7N0aTLxNak6aTspOsiCgojfiBtc2dpZCAiSW50cmluc2ljcyBpbiB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAiaW50cmluc2ljIKTysdHC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiSW50cmluc2ljcyBsZXR0ZXJzIGluIGFyYml0cmFyeSBjYXNlcyIKI34gbXNnc3RyICJpbnRyaW5zaWMgyri7+qTPx6Sw1aTOpbGhvKW5pMikuaTrIgoKI34gbXNnaWQgIkxhbmd1YWdlIGtleXdvcmRzIHNwZWxsZWQgYXMgZS5nLiBJT1N0YXQiCiN+IG1zZ3N0ciAiuMC47M29zPO47KSszuOkqKTQIElPU3RhdCCkzs3RpMvE1qTppOyk6yIKCiN+IG1zZ2lkICJMYW5ndWFnZSBrZXl3b3JkcyBpbiB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAiuMC47M29zPO47KTPsdHC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiTGFuZ3VhZ2Uga2V5d29yZCBsZXR0ZXJzIGluIGFyYml0cmFyeSBjYXNlcyIKI34gbXNnc3RyICK4wLjszb3M87jsyri7+qTPx6Sw1aTOpbGhvKW5pMikuaTrIgoKI34gbXNnaWQgIkludGVybmFsbHkgY29udmVydCBtb3N0IHNvdXJjZSB0byB1cHBlcmNhc2UiCiN+IG1zZ3N0ciAixuLJ9MWqpMrK0bS5pMekz6W9obyluaTOy9ik86TJpPKx0cLnyri7+qTIpLmk6yIKCiN+IG1zZ2lkICJJbnRlcm5hbGx5IHByZXNlcnZlIHNvdXJjZSBjYXNlIgojfiBtc2dzdHIgIsbiyfTFqqTLpb2hvKW5pM6lsaG8pbmk8srdu/2kuaTrIgoKI34gbXNnaWQgIlN5bWJvbCBuYW1lcyBzcGVsbGVkIGluIG1peGVkIGNhc2UiCiN+IG1zZ3N0ciAipbel86XcpevMvqTPpbGhvKW5uq6636THxNak6aTspOsiCgojfiBtc2dpZCAiU3ltYm9sIG5hbWVzIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKlt6Xzpdyl68y+pPLC58q4u/qkyKS5pOsiCgojfiBtc2dpZCAiU3ltYm9sIG5hbWVzIGluIGxvd2VyY2FzZSIKI34gbXNnc3RyICKlt6Xzpdyl68y+pPK+rsq4u/qkyKS5pOsiCgojfiBtc2dpZCAiUHJvZ3JhbSB3cml0dGVuIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKl16XtpbCl6aXgpKyx0cLnyri7+qTHvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIlByb2dyYW0gd3JpdHRlbiBpbiBsb3dlcmNhc2UiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSssdG+rsq4u/qkx73xpKuk7KTGpKSk6yIKCiN+IG1zZ2lkICJQcm9ncmFtIHdyaXR0ZW4gaW4gc3RyaWN0IG1peGVkLWNhc2UiCiN+IG1zZ3N0ciAipdel7aWwpeml4KSsuLfMqaTLpbGhvKW5uq6636THvfGkq6TspMakpKTrIgoKI34gbXNnaWQgIkNvbXBpbGUgYXMgaWYgcHJvZ3JhbSB3cml0dGVuIGluIHVwcGVyY2FzZSIKI34gbXNnc3RyICKl16XtpbCl6aXgpKyx0cLnyri7+qTHvfGkq6TspL/NzaTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiQ29tcGlsZSBhcyBpZiBwcm9ncmFtIHdyaXR0ZW4gaW4gbG93ZXJjYXNlIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkrLHRvq7KuLv6pMe98aSrpOykv83NpMuls6XzpdGlpKXrpLmk6yIKCiN+IG1zZ2lkICJQcmVzZXJ2ZSBhbGwgc3BlbGxpbmcgKGNhc2UpIHVzZWQgaW4gcHJvZ3JhbSIKI34gbXNnc3RyICKl16XtpbCl6aXgpMe7yKTvpOykv8TWpOoopM6lsaG8pbkppPLBtKTGyt27/aS5pOsiCgojfiBtc2dpZCAiRGVsZXRlIGxpYlU3NyBpbnRyaW5zaWNzIHdpdGggYmFkIGludGVyZmFjZXMiCiN+IG1zZ3N0ciAibGliVTc3IGludHJpbnNpYyCk8snUwLWkyiBpbnRlcmZhY2UgpMi2pqTLuu+9/KS5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBsaWJVNzcgaW50cmluc2ljcyB3aXRoIGJhZCBpbnRlcmZhY2VzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLJ1MC1pMogaW50ZXJmYWNlIKTItqaky8y1uPqyvaS5pOsiCgojfiBtc2dpZCAiSGlkZSBsaWJVNzcgaW50cmluc2ljcyB3aXRoIGJhZCBpbnRlcmZhY2VzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLJ1MC1pMogaW50ZXJmYWNlIKTItqaky7GjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZjJjIHN1cHBvcnRzIgojfiBtc2dzdHIgImYyYyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBmMmMgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiZjJjIKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZjJjIHN1cHBvcnRzIgojfiBtc2dzdHIgImYyYyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgIkY5MCCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBGOTAgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiRjkwIKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgIkY5MCCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgZzc3IHN1cHBvcnRzIgojfiBtc2dzdHIgImc3NyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rrvvfykuaTrIgoKI34gbXNnaWQgIkRpc2FibGUgbm9uLUZPUlRSQU4gNzcgaW50cmluc2ljcyBGOTAgc3VwcG9ydHMiCiN+IG1zZ3N0ciAiZzc3IKSspbWl3aG8pcikuaTryPMgRk9SVFJBTi03NyBpbnRyaW5zaWNzIKTyzLW4+rK9pLmk6yIKCiN+IG1zZ2lkICJIaWRlIG5vbi1GT1JUUkFOIDc3IGludHJpbnNpY3MgRjkwIHN1cHBvcnRzIgojfiBtc2dzdHIgImc3NyCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIE1JTC1TVEQgMTc1MyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgIk1JTC1TVEQgMTc1MyBpbnRyaW5zaWMgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIE1JTC1TVEQgMTc1MyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgIk1JTC1TVEQgMTc1MyBpbnRyaW5zaWMgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgTUlMLVNURCAxNzUzIGludHJpbnNpY3MiCiN+IG1zZ3N0ciAiTUlMLVNURCAxNzUzIGludHJpbnNpYyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIGxpYlU3NyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIGxpYlU3NyBpbnRyaW5zaWNzIgojfiBtc2dzdHIgImxpYlU3NyBpbnRyaW5zaWMgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgbGliVTc3IGludHJpbnNpY3MiCiN+IG1zZ3N0ciAibGliVTc3IGludHJpbnNpYyCk8rGjpLkiCgojfiBtc2dpZCAiRGVsZXRlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgVlhUIEZPUlRSQU4gc3VwcG9ydHMiCiN+IG1zZ3N0ciAiVlhUIEZPUlRSQU4gpKyltaXdobylyKS5pOvI8yBGT1JUUkFOLTc3IGludHJpbnNpY3MgpPK67738pLmk6yIKCiN+IG1zZ2lkICJEaXNhYmxlIG5vbi1GT1JUUkFOLTc3IGludHJpbnNpY3MgVlhUIEZPUlRSQU4gc3VwcG9ydHMiCiN+IG1zZ3N0ciAiVlhUIEZPUlRSQU4gpKyltaXdobylyKS5pOvI8yBGT1JUUkFOLTc3IGludHJpbnNpY3MgpPLMtbj6sr2kuaTrIgoKI34gbXNnaWQgIkhpZGUgbm9uLUZPUlRSQU4tNzcgaW50cmluc2ljcyBWWFQgRk9SVFJBTiBzdXBwb3J0cyIKI34gbXNnc3RyICJWWFQgRk9SVFJBTiCkrKW1pd2hvKXIpLmk68jzIEZPUlRSQU4tNzcgaW50cmluc2ljcyCk8rGjpLkiCgojfiBtc2dpZCAiVHJlYXQgaW5pdGlhbCB2YWx1ZXMgb2YgMCBsaWtlIG5vbi16ZXJvIHZhbHVlcyIKI34gbXNnc3RyICIwIKTOvem0/LK9w82k8sjzpbyl7cPNpMikt6TGvOik6rC3pKYiCgojfiBtc2dpZCAiRW1pdCBzcGVjaWFsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgQ09NTU9OIGFuZCBFUVVJVkFMRU5DRSAoZGlzYWJsZWQpIgojfiBtc2dzdHIgIkNPTU1PTiCk5CBFUVVJVkFMRU5DRSDN0aTOxsPKzKTKpcel0KXDpbC+8MrzpPLIr7nUpLmk66HKzLW4+rK9pLWk7KTGpKSk66HLIgoKI34gbXNnaWQgIlRha2UgYXQgbGVhc3Qgb25lIHRyaXAgdGhyb3VnaCBlYWNoIGl0ZXJhdGl2ZSBETyBsb29wIgojfiBtc2dzdHIgIrrHxOOkx6TisOyy86TPs8bIv8n8IERPIKXrobyl16SsvejN/aS1pOyk66TIpLmk6yIKCiN+IG1zZ2lkICJQcmludCBuYW1lcyBvZiBwcm9ncmFtIHVuaXRzIGFzIHRoZXkgYXJlIGNvbXBpbGVkIgojfiBtc2dzdHIgIqWzpfOl0aWkpeuktaTspL+l16XtpbCl6aXgw7GwzKTOzL7BsKTyyb28qKS5pOsiCgojfiBtc2dpZCAiRGlzYWJsZSBmYXRhbCBkaWFnbm9zdGljcyBhYm91dCBpbnRlci1wcm9jZWR1cmFsIHByb2JsZW1zIgojfiBtc2dzdHIgImludGVyLXByb2NlZHVyYWwgzOTC6qTLpMSkpKTGpM7D18y/xaqkyr/Hw8fJvbyopPLJvbyopLekyqSkIgoKI34gbXNnaWQgIk1ha2UgcHJlZml4LXJhZGl4IG5vbi1kZWNpbWFsIGNvbnN0YW50cyBiZSB0eXBlbGVzcyIKI34gbXNnc3RyICLI88Cwv/TE6r/0pM7A3Mj4tPC/9KSst7+kyqS3pMekoqTrpMikuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgdG8gY2hlY2sgc3Vic2NyaXB0IGFuZCBzdWJzdHJpbmcgYm91bmRzIgojfiBtc2dzdHIgIsfbzvOkzsW6u/qkyMW6u/q2rbOmpPK4obq6pLmk66WzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRm9ydHJhbi1zcGVjaWZpYyBmb3JtIG9mIC1mYm91bmRzLWNoZWNrIgojfiBtc2dzdHIgIkZvcnRyYW4guMfNraTOIC1mYm91bmRzLWNoZWNrIKTOt8G8sCIKCiN+IG1zZ2lkICJEaXNhYmxlIHdhcm5pbmdzIGFib3V0IGludGVyLXByb2NlZHVyYWwgcHJvYmxlbXMiCiN+IG1zZ3N0ciAiaW50ZXItcHJvY2VkdXJhbCDM5MLqpMukxKSkpMakzrfZufDJvbyopPLJvbyopLekyqSkIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgY29uc3RydWN0cyB3aXRoIHN1cnByaXNpbmcgbWVhbmluZ3MiCiN+IG1zZ3N0ciAisvK84aTLuO2y8qTyvrekr6TipM6ky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIkFkZCBhIGRpcmVjdG9yeSBmb3IgSU5DTFVERSBzZWFyY2hpbmciCiN+IG1zZ3N0ciAiSU5DTFVERSDDtbr3zdGkzqXHpaOl7KWvpcil6qTyxMmyw6S5pOsiCgojfiBtc2dpZCAiU2V0IHRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIgojfiBtc2dzdHIgIrnUpM7EuaS1pM66x8Lnw82k8sDfxOqkuaTrIgoKI34gbXNnaWQgInRoZSBtZWFuaW5nIG9mIGBcXGEnIHZhcmllcyB3aXRoIC10cmFkaXRpb25hbCIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgpMekzyBgXFxhJyCkzrDVzKOkrLDbpMqk6qTepLkiCgojfiBtc2dpZCAibm9uLUFOU0ktc3RhbmRhcmQgZXNjYXBlIHNlcXVlbmNlLCBgXFwlYyciCiN+IG1zZ3N0ciAiyPMgQU5TSSDJuL3gpM6lqKW5pbGhvKXXpbehvKWxpfOluaGiYFxcJWMnIgoKI34gbXNnaWQgIm5vbi1BTlNJIGVzY2FwZSBzZXF1ZW5jZSBgXFwlYyciCiN+IG1zZ3N0ciAiyPMgQU5TSSCkzqWopbmlsaG8pdelt6G8pbGl86W5oaJgXFwlYyciCgojfiBtc2dpZCAidW5rbm93biBlc2NhcGUgc2VxdWVuY2UgYFxcJWMnIgojfiBtc2dzdHIgIsnUzMCkyqWopbmlsaG8pdelt6G8pbGl86W5IGBcXCVjJyIKCiN+IG1zZ2lkICJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogYFxcJyBmb2xsb3dlZCBieSBjaGFyIGNvZGUgMHgleCIKI34gbXNnc3RyICLJ1MzApMqlqKW5pbGhvKXXpbehvKWxpfOluTogYFxcJyCkzrjlpMvKuLv6pbOhvKXJIDB4JXgiCgojfiBtc2dpZCAiQmFkbHkgZm9ybWVkIGRpcmVjdGl2ZSAtLSBubyBjbG9zaW5nIHF1b3RlIgojfiBtc2dzdHIgIsnUwLWkyrfBpM6lx6Wjpeylr6XGpaOl1iAtLSDKxKS4pa+lqaG8pcikrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiIy1saW5lcyBmb3IgZW50ZXJpbmcgYW5kIGxlYXZpbmcgZmlsZXMgZG9uJ3QgbWF0Y2giCiN+IG1zZ3N0ciAipdWloaWkpeuk2KTOvdDG/qTquP2kyKTKpOsgIy251CCkrMCwueekt6TepLuk8yIKCiN+IG1zZ2lkICJCYWQgZGlyZWN0aXZlIC0tIG1pc3NpbmcgY2xvc2UtcXVvdGUiCiN+IG1zZ3N0ciAiydTAtaTKpcelo6Xspa+lxqWjpdYgLS0gysSkuKWvpamhvKXIpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiaWdub3JpbmcgcHJhZ21hOiAlcyIKI34gbXNnc3RyICJwcmFnbWEgpPLMtbvrpLek3qS5OiAlcyIKCiN+IG1zZ2lkICJ1bmRlZmluZWQgb3IgaW52YWxpZCAjIGRpcmVjdGl2ZSIKI34gbXNnc3RyICLMpMTqtcHL9KTPydTAtaTKICMgpcelo6Xspa+lxqWjpdakx6S5IgoKI34gbXNnaWQgImludmFsaWQgI2xpbmUiCiN+IG1zZ3N0ciAizLW4+qTKICNsaW5lIgoKI34gbXNnaWQgIlVzZSBgI2xpbmUgLi4uJyBpbnN0ZWFkIG9mIGAjIC4uLicgaW4gZmlyc3QgbGluZSIKI34gbXNnc3RyICK6x73ppM651KTHpM8gYCMgLi4uJyCkzsLlpOqkyyBgI2xpbmUgLi4uJyCk8rvIpKSk3qS3pOekpiIKCiN+IG1zZ2lkICJpbnZhbGlkICMtbGluZSIKI34gbXNnc3RyICLMtbj6pMogIy251CIKCiN+IG1zZ2lkICJBU1NJR05lZCBGT1JNQVQgc3BlY2lmaWVyIGlzIHRvbyBzbWFsbCIKI34gbXNnc3RyICJBU1NJR04gpLWk7KS/IEZPUk1BVCC72MTqu9KkrL6upLWkuaSupN6kuSIKCiN+IG1zZ2lkICJBU1NJR04gdG8gdmFyaWFibGUgdGhhdCBpcyB0b28gc21hbGwiCiN+IG1zZ3N0ciAiQVNTSUdOIMDopM7K0b/0pKy+rqS1pLmkrqTepLkiCgojfiBtc2dpZCAiQVNTSUdOZWQgR09UTyB0YXJnZXQgdmFyaWFibGUgaXMgdG9vIHNtYWxsIgojfiBtc2dzdHIgIkFTU0lHTiCktaTspL8gR09UTyDA6MrRv/SkrL6upLWkuaSupN6kuSIKCiN+IG1zZ2lkICIlcyBubyBsb25nZXIgc3VwcG9ydGVkIC0tIHRyeSAtZnZ4dCIKI34gbXNnc3RyICIlcyCkz7rHweGltaXdobylyKS1pOyk3qS7pPMgLS0gLWZ2eHQgpMikt6TGpN+kxqSvpMCktaSkIgoKI34gbXNnaWQgIiVzIG5vIGxvbmdlciBzdXBwb3J0ZWQgLS0gdHJ5IC1mbm8tdnh0IC1mZjkwIgojfiBtc2dzdHIgIiVzIKTPusfB4aW1pd2hvKXIpLWk7KTepLuk8yAtLSAtZm5vLXZ4dCAtZmY5MCCkyKS3pMak36TGpK+kwKS1pKQiCgojfiBtc2dpZCAiJXMgZGlzYWJsZWQsIHVzZSBub3JtYWwgZGVidWdnaW5nIGZsYWdzIgojfiBtc2dzdHIgIiVzIKSszLW4+qTHpLmho8TMvu+lx6XQpcOlsKXVpemlsKTyu8ikpKTepLek56SmIgoKI34gbXNnaWQgImludmFsaWQgYGFzbSc6ICVzIgojfiBtc2dzdHIgIsy1uPqkyiBgYXNtJzogJXMiCgojfiBtc2dpZCAib3V0cHV0X29wZXJhbmQ6ICVzIgojfiBtc2dzdHIgIm91dHB1dF9vcGVyYW5kOiAlcyIKCiN+IG1zZ2lkICJvcGVyYW5kIG51bWJlciBtaXNzaW5nIGFmdGVyICUtbGV0dGVyIgojfiBtc2dzdHIgIrHpu7u/9KSsICUtbGV0dGVyIKTOuOWky6SipOqk3qS7pPMiCgojfiBtc2dpZCAib3BlcmFuZCBudW1iZXIgb3V0IG9mIHJhbmdlIgojfiBtc2dzdHIgIrHpu7u/9KSsyM+wz7OwpMekuSIKCiN+IG1zZ2lkICJpbnZhbGlkICUlLWNvZGUiCiN+IG1zZ3N0ciAizLW4+qTKICUlLWNvZGUiCgojfiBtc2dpZCAiYCVsJyBvcGVyYW5kIGlzbid0IGEgbGFiZWwiCiN+IG1zZ3N0ciAiYCVsJyCx6bu7pM+l6aXZpeukx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiBtaWdodCBiZSBwb3NzaWJsZSBjYW5kaWRhdGUgZm9yIGF0dHJpYnV0ZSBgbm9yZXR1cm4nIgojfiBtc2dzdHIgIrTYv/Skz7aypOmkryBgbm9yZXR1cm4nIMKwwK2kzrj1yuSkyLvXpO+k7KTepLkiCgojfiBtc2dpZCAiYG5vcmV0dXJuJyBmdW5jdGlvbiBkb2VzIHJldHVybiIKI34gbXNnc3RyICJgbm9yZXR1cm4nILTYv/SkrCByZXR1cm4gpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIgojfiBtc2dzdHIgIsCpuOakrMjzIHZvaWQgtNi/9KTOvaqk6qTLxf7Do6S3pN6kt6S/IgoKI34gbXNnaWQgIkVuZCBpbnNuICVkIGZvciBibG9jayAlZCBub3QgZm91bmQgaW4gdGhlIGluc24gc3RyZWFtLiIKI34gbXNnc3RyICK9qs67zL/O4SAlZCil1qXtpcOlryAlZCkgpKyw7M+ipM7Mv87hzvOkzsPmpMu4q6TEpKuk6qTepLuk86GjIgoKI34gbXNnaWQgIkluc24gJWQgaXMgaW4gbXVsdGlwbGUgYmFzaWMgYmxvY2tzICglZCBhbmQgJWQpIgojfiBtc2dzdHIgIsy/zuEgJWQgpKzKo7/0pM608Mvcpdal7aXDpa8oJWQgpMggJWQppM7D5qTLpKKk6qTepLkiCgojfiBtc2dpZCAiSGVhZCBpbnNuICVkIGZvciBibG9jayAlZCBub3QgZm91bmQgaW4gdGhlIGluc24gc3RyZWFtLiIKI34gbXNnc3RyICKzq7vPzL/O4SAlZCil1qXtpcOlryAlZCkgpKyw7M+ipM7Mv87hzvOkzsPmpMu4q6TEpKuk6qTepLuk86GjIgoKI34gbXNnaWQgIkJhc2ljIGJsb2NrICVpIGVkZ2UgbGlzdHMgYXJlIGNvcnJ1cHRlZCIKI34gbXNnc3RyICK08Mvcpdal7aXDpa8gJWkgZWRnZSCl6qW5pcikrLWhx72kt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiQmFzaWMgYmxvY2sgJWQgcHJlZCBlZGdlIGlzIGNvcnJ1cHRlZCIKI34gbXNnc3RyICK08Mvcpdal7aXDpa8gJWQgcHJlZCBlZGdlIKXqpbmlyKSstaHHvaS3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJOT1RFX0lOU05fQkFTSUNfQkxPQ0sgaXMgbWlzc2luZyBmb3IgYmxvY2sgJWQiCiN+IG1zZ3N0ciAiTk9URV9JTlNOX0JBU0lDX0JMT0NLIKSspdal7aXDpa8gJWQgpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgIk5PVEVfSU5TTl9CQVNJQ19CTE9DSyBpcyBtaXNzaW5nIGZvciBibG9jayAlZFxuIgojfiBtc2dzdHIgIk5PVEVfSU5TTl9CQVNJQ19CTE9DSyCkrKXWpe2lw6WvICVkIKTLpKKk6qTepLuk81xuIgoKI34gbXNnaWQgIk5PVEVfSU5TTl9CQVNJQ19CTE9DSyAlZCBpbiB0aGUgbWlkZGxlIG9mIGJhc2ljIGJsb2NrICVkIgojfiBtc2dzdHIgIk5PVEVfSU5TTl9CQVNJQ19CTE9DSyAlZCCkrLTwy9yl1qXtpcOlryAlZCCkzsPmpNukyaTLpKKk6qTepLkiCgojfiBtc2dpZCAiSW4gYmFzaWMgYmxvY2sgJWQ6IgojfiBtc2dzdHIgIrTwy9yl1qXtpcOlryAlZCDG4joiCgojfiBtc2dpZCAibnVtYmVyIG9mIGJiIG5vdGVzIGluIGluc24gY2hhaW4gKCVkKSAhPSBuX2Jhc2ljX2Jsb2NrcyAoJWQpIgojfiBtc2dzdHIgIsy/zuHPorq/w+akziBiYiCkzr/0ICglZCkgpKwgbl9iYXNpY19ibG9ja3MgKCVkKSCkyLDjpKSk3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gaXMgYWx3YXlzICVkIGR1ZSB0byB3aWR0aCBvZiBiaXRmaWVsZCIKI34gbXNnc3RyICKl06XDpcil1aWjobyl66XJpM7J/aTOpLukpKTHyOaz06Ssvu+kyyAlZCCkyKTKpOqk3qS5IgoKI34gbXNnaWQgImNvbXBhcmlzb24gaXMgYWx3YXlzICVkIgojfiBtc2dzdHIgIsjms9OkrL7vpMsgJWQgpMikyqTqpN6kuSIKCiN+IG1zZ2lkICJgb3InIG9mIHVubWF0Y2hlZCBub3QtZXF1YWwgdGVzdHMgaXMgYWx3YXlzIDEiCiN+IG1zZ3N0ciAisOzD16S3pMqkpMPNxrG7zqTHpM7I88X5ssGkziBgb3InIKXGpbmlyKTPvu+kyyAxIKTHpLkiCgojfiBtc2dpZCAiYGFuZCcgb2YgbXV0dWFsbHkgZXhjbHVzaXZlIGVxdWFsLXRlc3RzIGlzIGFsd2F5cyAwIgojfiBtc2dzdHIgIsHquN/H08K+xaqkysPNpM7F+bLBpM4gYGFuZCcgpcaluaXIpM++76TLIDAgpMekuSIKCiN+IG1zZ2lkICJgJXMnIG1pZ2h0IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIgojfiBtc2dzdHIgImAlcycgpM+ks6TOtNi/9MbipMe96bT8sr2ktaTspLqky7vIzdGktaTspOuyxMe9wK2krKSipOqk3qS5IgoKI34gbXNnaWQgInZhcmlhYmxlIGAlcycgbWlnaHQgYmUgY2xvYmJlcmVkIGJ5IGBsb25nam1wJyBvciBgdmZvcmsnIgojfiBtc2dzdHIgIsrRv/QgYCVzJyCkzyBgbG9uZ2ptcCcgpOQgYHZmb3JrJyCky6TopMOkxrnzpKSks6TIpMukyqTrssTHvcCtpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJhcmd1bWVudCBgJXMnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSBgbG9uZ2ptcCcgb3IgYHZmb3JrJyIKI34gbXNnc3RyICKw+r/0IGAlcycgpM8gYGxvbmdqbXAnIKTkIGB2Zm9yaycgpMuk6KTDpMa586SkpLOkyKTLpMqk67LEx73AraSspKKk6qTepLkiCgojfiBtc2dpZCAiZnVuY3Rpb24gcmV0dXJucyBhbiBhZ2dyZWdhdGUiCiN+IG1zZ3N0ciAitNi/9KSsvbi558LOpPLK1qS3pMakpKTepLkiCgojfiBtc2dpZCAidW51c2VkIHBhcmFtZXRlciBgJXMnIgojfiBtc2dzdHIgIrD6v/QgYCVzJyCkrMyku8jN0aTHpLkiCgojfiBtc2dpZCAiQW1iaWd1b3VzIGFiYnJldmlhdGlvbiAlcyIKI34gbXNnc3RyICKkoqSkpN6kpKTKvsrOrCAlcyCkx6S5IgoKI34gbXNnaWQgIkluY29tcGxldGUgYCVzJyBvcHRpb24iCiN+IG1zZ3N0ciAiydS0sMG0pMogYCVzJyClqqXXpbel56XzpMekuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGFyZ3VtZW50IHRvIGAlcycgb3B0aW9uIgojfiBtc2dzdHIgImAlcycgpaql16W3peel86TLwtCkuaTrsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJFeHRyYW5lb3VzIGFyZ3VtZW50IHRvIGAlcycgb3B0aW9uIgojfiBtc2dzdHIgImAlcycgpaql16W3peel86TLwtCkt6TGzLW02Le4pMqw+r/0IgoKI34gbXNnaWQgIlVzaW5nIGJ1aWx0aW4gc3BlY3MuXG4iCiN+IG1zZ3N0ciAiwcik37n+pN8gc3BlYyCk8rvIzdEuXG4iCgojfiBtc2dpZCAiIgojfiAiU2V0dGluZyBzcGVjICVzIHRvICclcydcbiIKI34gIlxuIgojfiBtc2dzdHIgIiIKI34gInNwZWMgJXMgpPIgJyVzJyCky8DfxOrD5lxuIgojfiAiXG4iCgojfiBtc2dpZCAiUmVhZGluZyBzcGVjcyBmcm9tICVzXG4iCiN+IG1zZ3N0ciAiJXMgpKuk6SBzcGVjIKTyxsmk37n+pN/D5lxuIgoKI34gbXNnaWQgInNwZWNzICUlaW5jbHVkZSBzeW50YXggbWFsZm9ybWVkIGFmdGVyICVsZCBjaGFyYWN0ZXJzIgojfiBtc2dzdHIgInNwZWNzIKTOICVsZCDKuLv6zNywyrnfpM4gJSVpbmNsdWRlIKTOvfG8sKSsytGkx6S5IgoKI34gbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHNwZWNzIGZpbGUgJXNcbiIKI34gbXNnc3RyICJzcGVjIKXVpaGlpKXrICVzIKTyuKukxKSxpOuks6TIpKykx6StpN6ku6TzpMekt6S/XG4iCgojfiBtc2dpZCAic3BlY3MgJSVyZW5hbWUgc3ludGF4IG1hbGZvcm1lZCBhZnRlciAlbGQgY2hhcmFjdGVycyIKI34gbXNnc3RyICJzcGVjcyCkziAlbGQgyri7+szcsMq536TOICUlcmVuYW1lIKTOvfG8sKSsytGkx6S5IgoKI34gbXNnaWQgInNwZWNzICVzIHNwZWMgd2FzIG5vdCBmb3VuZCB0byBiZSByZW5hbWVkIgojfiBtc2dzdHIgInNwZWMgpdWloaWkpesgJXMgpMvMvsGwpPLK0bm5pLmk6yBzcGVjIKSsuKukxKSrpOqk3qS7pPOkx6S3pL8iCgojfiBtc2dpZCAicmVuYW1lIHNwZWMgJXMgdG8gJXNcbiIKI34gbXNnc3RyICJzcGVjICVzIKTyICVzIKTLzL7BsKTyytG5uVxuIgoKI34gbXNnaWQgIiIKI34gInNwZWMgaXMgJyVzJ1xuIgojfiAiXG4iCiN+IG1zZ3N0ciAiIgojfiAic3BlYyCkzyAnJXMnIKTHpLlcbiIKI34gIlxuIgoKI34gbXNnaWQgInNwZWNzIHVua25vd24gJSUgY29tbWFuZCBhZnRlciAlbGQgY2hhcmFjdGVycyIKI34gbXNnc3RyICJzcGVjIKXVpaGlpKXrw+akziAlbGQgyri7+qTOuOWky8nUzMCkyiAlJSCls6XepfOlySIKCiN+IG1zZ2lkICJzcGVjcyBmaWxlIG1hbGZvcm1lZCBhZnRlciAlbGQgY2hhcmFjdGVycyIKI34gbXNnc3RyICIlbGQgyri7+qTOuOWky6SqpKukt6TKIHNwZWMgpdWloaWkpesiCgojfiBtc2dpZCAic3BlYyBmaWxlIGhhcyBubyBzcGVjIGZvciBsaW5raW5nIgojfiBtc2dzdHIgInNwZWMgpdWloaWkpeuky6XqpfOlr6TLtNikuaTrIHNwZWMgpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIi1waXBlIG5vdCBzdXBwb3J0ZWQiCiN+IG1zZ3N0ciAiLXBpcGUgpM+8wsH1pLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJHbyBhaGVhZD8gKHkgb3IgbikgIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiwrOksaTepLmkqz8gKHkgpN6kv6TPIG4pICIKCiN+IG1zZ2lkICIiCiN+ICJJbnRlcm5hbCBlcnJvcjogJXMgKHByb2dyYW0gJXMpXG4iCiN+ICJQbGVhc2Ugc3VibWl0IGEgZnVsbCBidWcgcmVwb3J0LlxuIgojfiAiU2VlICVzIGZvciBpbnN0cnVjdGlvbnMuIgojfiBtc2dzdHIgIiIKI34gIsbiyfSlqKXpobw6ICVzICil16XtpbCl6aXgICVzKVxuIgojfiAitLDBtKTKpdClsKXspd2hvKXIpPLB96TDpMakr6TApLWkpKGjXG4iCiN+ICIlcyCky7zqveekrL3xpKSkxqSipOqk3qS5oaMiCgojfiBtc2dpZCAiIyAlcyAlLjJmICUuMmZcbiIKI34gbXNnc3RyICIjICVzICUuMmYgJS4yZlxuIgoKI34gbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZmlsZS4uLlxuIgojfiBtc2dzdHIgIrvIpKTK/TogJXMgW6Wqpdelt6XnpfNdIKXVpaGlpKXrLi4uXG4iCgojfiBtc2dpZCAiT3B0aW9uczpcbiIKI34gbXNnc3RyICKlqqXXpbel56XzOlxuIgoKI34gbXNnaWQgIiAgLXBhc3MtZXhpdC1jb2RlcyAgICAgICAgIEV4aXQgd2l0aCBoaWdoZXN0IGVycm9yIGNvZGUgZnJvbSBhIHBoYXNlXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtcGFzcy1leGl0LWNvZGVzICAgICAgICAgpdWlp6G8pbqkq6TppM6lqKXpobyls6G8pcmkzrrHwufDzaTyIGV4aXRcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCls6G8pcmkyKS3pMbK1qS5XG4iCgojfiBtc2dpZCAiICAtLWhlbHAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIGluZm9ybWF0aW9uXG4iCiN+IG1zZ3N0ciAiICAtLWhlbHAgICAgICAgICAgICAgICAgICAgpLOkzqXYpeul177wyvOk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC0tdGFyZ2V0LWhlbHAgICAgICAgICAgICBEaXNwbGF5IHRhcmdldCBzcGVjaWZpYyBjb21tYW5kIGxpbmUgb3B0aW9uc1xuIgojfiBtc2dzdHIgIiAgLS10YXJnZXQtaGVscCAgICAgICAgICAgIKW/obylsqXDpci4x82tpM6ls6XepfOlyaXppaSl86Wqpdelt6XnpfOk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIChVc2UgJy12IC0taGVscCcgdG8gZGlzcGxheSBjb21tYW5kIGxpbmUgb3B0aW9ucyBvZiBzdWItcHJvY2Vzc2VzKVxuIgojfiBtc2dzdHIgIihgLXYgLS1oZWxwJyCk8rvIpKakyKGiu9Kl16XtpbuluaTOpbOl3qXzpcml6aWkpfOlqqXXpbel56XzpPLJvbyoKVxuIgoKI34gbXNnaWQgIiAgLWR1bXBzcGVjcyAgICAgICAgICAgICAgIERpc3BsYXkgYWxsIG9mIHRoZSBidWlsdCBpbiBzcGVjIHN0cmluZ3NcbiIKI34gbXNnc3RyICIgIC1kdW1wc3BlY3MgICAgICAgICAgICAgICDByKTfuf6k3qTspL8gc3BlYyDKuLv6zvOk8sG0pMbJvbyoXG4iCgojfiBtc2dpZCAiICAtZHVtcHZlcnNpb24gICAgICAgICAgICAgRGlzcGxheSB0aGUgdmVyc2lvbiBvZiB0aGUgY29tcGlsZXJcbiIKI34gbXNnc3RyICIgIC1kdW1wdmVyc2lvbiAgICAgICAgICAgICCls6XzpdGlpKXppM6l0KG8pbil56XzpPLJvbyoXG4iCgojfiBtc2dpZCAiICAtZHVtcG1hY2hpbmUgICAgICAgICAgICAgRGlzcGxheSB0aGUgY29tcGlsZXIncyB0YXJnZXQgcHJvY2Vzc29yXG4iCiN+IG1zZ3N0ciAiICAtZHVtcG1hY2hpbmUgICAgICAgICAgICAgpbOl86XRpaSl6aTOpb+hvKWypcOlyKXXpe2lu6XDpbWk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC1wcmludC1zZWFyY2gtZGlycyAgICAgICBEaXNwbGF5IHRoZSBkaXJlY3RvcmllcyBpbiB0aGUgY29tcGlsZXIncyBzZWFyY2ggcGF0aFxuIgojfiBtc2dzdHIgIiAgLXByaW50LXNlYXJjaC1kaXJzICAgICAgIKWzpfOl0aWkpemkzqW1obylwaXRpbmky6SipOulx6Wjpeylr6XIpeqk8sm9vKhcbiIKCiN+IG1zZ2lkICIgIC1wcmludC1saWJnY2MtZmlsZS1uYW1lICBEaXNwbGF5IHRoZSBuYW1lIG9mIHRoZSBjb21waWxlcidzIGNvbXBhbmlvbiBsaWJyYXJ5XG4iCiN+IG1zZ3N0ciAiICAtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZSAgpbOl86XRpaSl6aTOpbOl86XRpculqqXzpemlpKXWpeml6sy+pPLJvbyoXG4iCgojfiBtc2dpZCAiICAtcHJpbnQtZmlsZS1uYW1lPTxsaWI+ICAgRGlzcGxheSB0aGUgZnVsbCBwYXRoIHRvIGxpYnJhcnkgPGxpYj5cbiIKI34gbXNnc3RyICIgIC1wcmludC1maWxlLW5hbWU9PGxpYj4gICCl6aWkpdal6aXqIDxsaWI+IKTYpM6l1aXrpdGluaTyyb28qFxuIgoKI34gbXNnaWQgIiAgLXByaW50LXByb2ctbmFtZT08cHJvZz4gIERpc3BsYXkgdGhlIGZ1bGwgcGF0aCB0byBjb21waWxlciBjb21wb25lbnQgPHByb2c+XG4iCiN+IG1zZ3N0ciAiICAtcHJpbnQtcHJvZy1uYW1lPTxwcm9nPiAgpbOl86XRpaSl6aTOyfTJyiA8cHJvZz4gpNikzqXVpeul0aW5pPLJvbyoXG4iCgojfiBtc2dpZCAiICAtcHJpbnQtbXVsdGktZGlyZWN0b3J5ICAgRGlzcGxheSB0aGUgcm9vdCBkaXJlY3RvcnkgZm9yIHZlcnNpb25zIG9mIGxpYmdjY1xuIgojfiBtc2dzdHIgIiAgLXByaW50LW11bHRpLWRpcmVjdG9yeSAgIGxpYmdjYyCkzqXQobyluKXnpfOlx6Wjpeylr6XIpeql66G8pcik8sm9vKhcbiIKCiN+IG1zZ2lkICIiCiN+ICIgIC1wcmludC1tdWx0aS1saWIgICAgICAgICBEaXNwbGF5IHRoZSBtYXBwaW5nIGJldHdlZW4gY29tbWFuZCBsaW5lIG9wdGlvbnMgYW5kXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSBsaWJyYXJ5IHNlYXJjaCBkaXJlY3Rvcmllc1xuIgojfiBtc2dzdHIgIiIKI34gIiAgLXByaW50LW11bHRpLWxpYiAgICAgICAgIKWzpd6l86XJpemlpKXzpaql16W3peel86TIyqO/9KTOpemlpKXWpeml6sO1uvdcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICClx6Wjpeylr6XIpeqkyKTOwtCx/qTyyb28qFxuIgoKI34gbXNnaWQgIiAgLVdhLDxvcHRpb25zPiAgICAgICAgICAgIFBhc3MgY29tbWEtc2VwYXJhdGVkIDxvcHRpb25zPiBvbiB0byB0aGUgYXNzZW1ibGVyXG4iCiN+IG1zZ3N0ciAiICAtV2EsPG9wdGlvbnM+ICAgICAgICAgICAgpaul86XetujA2qTqpM4gPG9wdGlvbnM+IKTypaKlu6Xzpdal6aTLxc+kuVxuIgoKI34gbXNnaWQgIiAgLVdwLDxvcHRpb25zPiAgICAgICAgICAgIFBhc3MgY29tbWEtc2VwYXJhdGVkIDxvcHRpb25zPiBvbiB0byB0aGUgcHJlcHJvY2Vzc29yXG4iCiN+IG1zZ3N0ciAiICAtV3AsPG9wdGlvbnM+ICAgICAgICAgICAgpaul86XetujA2qTqpM4gPG9wdGlvbnM+IKTypdel6qXXpe2lu6XDpbWky8XPpLlcbiIKCiN+IG1zZ2lkICIgIC1XbCw8b3B0aW9ucz4gICAgICAgICAgICBQYXNzIGNvbW1hLXNlcGFyYXRlZCA8b3B0aW9ucz4gb24gdG8gdGhlIGxpbmtlclxuIgojfiBtc2dzdHIgIiAgLVdsLDxvcHRpb25zPiAgICAgICAgICAgIKWrpfOl3rbowNqk6qTOIDxvcHRpb25zPiCk8qXqpfOlq6TLxc+kuVxuIgoKI34gbXNnaWQgIiAgLVhsaW5rZXIgPGFyZz4gICAgICAgICAgIFBhc3MgPGFyZz4gb24gdG8gdGhlIGxpbmtlclxuIgojfiBtc2dzdHIgIiAgLVhsaW5rZXIgPGFyZz4gICAgICAgICAgIDxhcmc+IKTypeql86WrpMvFz6S5XG4iCgojfiBtc2dpZCAiICAtc2F2ZS10ZW1wcyAgICAgICAgICAgICAgRG8gbm90IGRlbGV0ZSBpbnRlcm1lZGlhdGUgZmlsZXNcbiIKI34gbXNnc3RyICIgIC1zYXZlLXRlbXBzICAgICAgICAgICAgICDD5rTWpdWloaWkpeuk8rrvvfykt6TKpKRcbiIKCiN+IG1zZ2lkICIgIC1waXBlICAgICAgICAgICAgICAgICAgICBVc2UgcGlwZXMgcmF0aGVyIHRoYW4gaW50ZXJtZWRpYXRlIGZpbGVzXG4iCiN+IG1zZ3N0ciAiICAtcGlwZSAgICAgICAgICAgICAgICAgICAgw+a01qXVpaGlpKXrpMekz6TKpK+l0aWkpdek8rvIpKZcbiIKCiN+IG1zZ2lkICIgIC10aW1lICAgICAgICAgICAgICAgICAgICBUaW1lIHRoZSBleGVjdXRpb24gb2YgZWFjaCBzdWJwcm9jZXNzXG4iCiN+IG1zZ3N0ciAiICAtdGltZSAgICAgICAgICAgICAgICAgICAgu9Kl16XtpbuluaS0pMikzrzCudS7/rTWpPK318KspLmk61xuIgoKI34gbXNnaWQgIiAgLXNwZWNzPTxmaWxlPiAgICAgICAgICAgIE92ZXJyaWRlIGJ1aWx0aW4gc3BlY3Mgd2l0aCB0aGUgY29udGVudHMgb2YgPGZpbGU+XG4iCiN+IG1zZ3N0ciAiICAtc3BlY3M9PGZpbGU+ICAgICAgICAgICAgwcik37n+pN8gc3BlY3MgpPIgPGZpbGU+IKTOxuLNxqTHw9akrbS5pKik61xuIgoKI34gbXNnaWQgIiAgLXN0ZD08c3RhbmRhcmQ+ICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBmb3IgPHN0YW5kYXJkPlxuIgojfiBtc2dzdHIgIiAgLXN0ZD08c3RhbmRhcmQ+ICAgICAgICAgIMb+zs+lvaG8pbmk8iA8c3RhbmRhcmQ+IKTIuKukyqS5XG4iCgojfiBtc2dpZCAiICAtQiA8ZGlyZWN0b3J5PiAgICAgICAgICAgQWRkIDxkaXJlY3Rvcnk+IHRvIHRoZSBjb21waWxlcidzIHNlYXJjaCBwYXRoc1xuIgojfiBtc2dzdHIgIiAgLUIgPGRpcmVjdG9yeT4gICAgICAgICAgIDxkaXJlY3Rvcnk+IKTypbOl86XRpaSl6aTOw7W696XRpbmky8TJssOkuaTrXG4iCgojfiBtc2dpZCAiICAtYiA8bWFjaGluZT4gICAgICAgICAgICAgUnVuIGdjYyBmb3IgdGFyZ2V0IDxtYWNoaW5lPiwgaWYgaW5zdGFsbGVkXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtYiA8bWFjaGluZT4gICAgICAgICAgICAgpaSl86W5pcihvKXrpLWk7KTGpKSk7KTQpb+hvKWypcOlyCA8bWFjaGluZT4gpMikt6TGXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjIKTyvMK51KS5pOtcbiIKCiN+IG1zZ2lkICIgIC1WIDx2ZXJzaW9uPiAgICAgICAgICAgICBSdW4gZ2NjIHZlcnNpb24gbnVtYmVyIDx2ZXJzaW9uPiwgaWYgaW5zdGFsbGVkXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtViA8dmVyc2lvbj4gICAgICAgICAgICAgpaSl86W5pcihvKXrpLWk7KTGpKSk7KTQIDx2ZXJzaW9uPiCl0KG8pbil56XzyNa55qTOXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjIKTIpLekxrzCudSkuaTrXG4iCgojfiBtc2dpZCAiICAtdiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGUgcHJvZ3JhbXMgaW52b2tlZCBieSB0aGUgY29tcGlsZXJcbiIKI34gbXNnc3RyICIgIC12ICAgICAgICAgICAgICAgICAgICAgICCls6XzpdGlpKXppMuk6KTDpMa1r8awpLWk7KTrpdel7aWwpeml4KTyyb28qFxuIgoKI34gbXNnaWQgIiAgLUUgICAgICAgICAgICAgICAgICAgICAgIFByZXByb2Nlc3Mgb25seTsgZG8gbm90IGNvbXBpbGUsIGFzc2VtYmxlIG9yIGxpbmtcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1FICAgICAgICAgICAgICAgICAgICAgICCl16Xqpdel7aW7pbmkzqTfIC0tIKWzpfOl0aWkpeuhoqWipbul86XWpeuhoqXqpfOlr1xuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKTyudSkyqTvpMqkpFxuIgoKI34gbXNnaWQgIiAgLVMgICAgICAgICAgICAgICAgICAgICAgIENvbXBpbGUgb25seTsgZG8gbm90IGFzc2VtYmxlIG9yIGxpbmtcbiIKI34gbXNnc3RyICIgIC1TICAgICAgICAgICAgICAgICAgICAgICCls6XzpdGlpKXrpM6k3yAtLSCloqW7pfOl1qXroaKl6qXzpa+k8rnUpMqk76TKpKRcbiIKCiN+IG1zZ2lkICIgIC1jICAgICAgICAgICAgICAgICAgICAgICBDb21waWxlIGFuZCBhc3NlbWJsZSwgYnV0IGRvIG5vdCBsaW5rXG4iCiN+IG1zZ3N0ciAiICAtYyAgICAgICAgICAgICAgICAgICAgICAgpbOl86XRpaSl66GipaKlu6Xzpdal66S5pOukrKGipeql86WvpPK51KTKpO+kyqSkXG4iCgojfiBtc2dpZCAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgUGxhY2UgdGhlIG91dHB1dCBpbnRvIDxmaWxlPlxuIgojfiBtc2dzdHIgIiAgLW8gPGZpbGU+ICAgICAgICAgICAgICAgIDxmaWxlPiCky73Qzs+k8rnUpMqkplxuIgoKI34gbXNnaWQgIiIKI34gIiAgLXggPGxhbmd1YWdlPiAgICAgICAgICAgIFNwZWNpZnkgdGhlIGxhbmd1YWdlIG9mIHRoZSBmb2xsb3dpbmcgaW5wdXQgZmlsZXNcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcm1pc3NhYmxlIGxhbmd1YWdlcyBpbmNsdWRlOiBjIGMrKyBhc3NlbWJsZXIgbm9uZVxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmUnIG1lYW5zIHJldmVydCB0byB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2ZcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzaW5nIHRoZSBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgZmlsZSdzIGV4dGVuc2lvblxuIgojfiBtc2dzdHIgIiIKI34gIiAgLXggPGxhbmd1YWdlPiAgICAgICAgICAgILDKsrykzsb+zs+l1aWhpaSl66TOuMC47KTyu9jE6qS5pOtcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgILvYxOqkx6StpOu4wLjsOiBjIGMrKyBhc3NlbWJsZXIgbm9uZVxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmUnIKTyu9jE6qS5pOukyKXVpaGlpKXrs8jEpbvSpMuk6KTDpMa4wLjspPJcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgIL/kxOqkuaTroaKlx6XVpaml66XIpM6/tqTryfGkpKTLzOGk61xuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiT3B0aW9ucyBzdGFydGluZyB3aXRoIC1nLCAtZiwgLW0sIC1PLCAtVywgb3IgLS1wYXJhbSBhcmUgYXV0b21hdGljYWxseVxuIgojfiAiIHBhc3NlZCBvbiB0byB0aGUgdmFyaW91cyBzdWItcHJvY2Vzc2VzIGludm9rZWQgYnkgJXMuICBJbiBvcmRlciB0byBwYXNzXG4iCiN+ICIgb3RoZXIgb3B0aW9ucyBvbiB0byB0aGVzZSBwcm9jZXNzZXMgdGhlIC1XPGxldHRlcj4gb3B0aW9ucyBtdXN0IGJlIHVzZWQuXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICItZywgLWYsIC1tLCAtTywgLVcgpMe7z6TepOulqqXXpbel56XzpOShoi0tcGFyYW0gpM8gJXMgpKy1r8awpLmk66SipOmk5qTrXG4iCiN+ICK70qXXpe2lu6W5pMu8q8awxaqky8XPpLWk7KTepLmho6SzpKakpKTDpL+l16XtpbuluaTLpL2kzsK+pM6lqqXXpbel56XzpPLFz6S5XG4iCiN+ICKky6TPIC1XPGxldHRlcj4gpaql16W3peel86Tyu8ik76TKpLGk7KTQpMqk6qTepLuk86GjXG4iCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC1YbGlua2VyJyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAtWGxpbmtlcicgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAtc3BlY3MnIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC1zcGVjcycgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAtc3BlY3M9JyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAtc3BlY3M9JyCkzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiYXJndW1lbnQgdG8gYC1iJyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAtYicgpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAtQicgaXMgbWlzc2luZyIKI34gbXNnc3RyICJgLUInIKTOsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgLVYnIGlzIG1pc3NpbmciCiN+IG1zZ3N0ciAiYC1WJyCkzrD6v/SkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCB2ZXJzaW9uIG51bWJlciBmb3JtYXQiCiN+IG1zZ3N0ciAizLW4+qTKpdChvKW4peel88jWuea3wbywIgoKI34gbXNnaWQgImNhbm5vdCBzcGVjaWZ5IC1vIHdpdGggLWMgb3IgLVMgYW5kIG11bHRpcGxlIGNvbXBpbGF0aW9ucyIKI34gbXNnc3RyICItYyCk5CAtUyCkyLDsve+kyyAtbyCk8rvYxOqkuaTrpMihosqjv/Sls6XzpdGlpKXrpMekraTepLuk8yIKCiN+IG1zZ2lkICJXYXJuaW5nOiAtcGlwZSBpZ25vcmVkIGJlY2F1c2UgLXNhdmUtdGVtcHMgc3BlY2lmaWVkIgojfiBtc2dzdHIgIrfZufA6IC1zYXZlLXRlbXBzIKSsu9jE6qS1pOykv6TOpMcgLXBpcGUgpM/MtbvrpLWk7KTepLkiCgojfiBtc2dpZCAiV2FybmluZzogLXBpcGUgaWdub3JlZCBiZWNhdXNlIC10aW1lIHNwZWNpZmllZCIKI34gbXNnc3RyICK32bnwOiAtdGltZSCkrLvYxOqktaTspL+kzqTHIC1waXBlIKTPzLW766S1pOyk3qS5IgoKI34gbXNnaWQgImFyZ3VtZW50IHRvIGAteCcgaXMgbWlzc2luZyIKI34gbXNnc3RyICJgLXgnIKTOsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhcmd1bWVudCB0byBgLSVzJyBpcyBtaXNzaW5nIgojfiBtc2dzdHIgImAtJXMnIKTOsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJXYXJuaW5nOiBgLXggJXMnIGFmdGVyIGxhc3QgaW5wdXQgZmlsZSBoYXMgbm8gZWZmZWN0IgojfiBtc2dzdHIgIrfZufA6ILrHuOWkzsb+zs+l1aWhpaSl66TOuOWkziBgLXggJXMnIKTPsr+k4qS3pN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgc3BlY2lmaWNhdGlvbiEgIEJ1ZyBpbiBjYy4iCiN+IG1zZ3N0ciAizLW4+qTKu9jE6iEgY2MgpM6l0KWwLiIKCiN+IG1zZ2lkICIlc1xuIgojfiBtc2dzdHIgIiVzXG4iCgojfiBtc2dpZCAiU3BlYyBmYWlsdXJlOiAnJSUqJyBoYXMgbm90IGJlZW4gaW5pdGlhbGlzZWQgYnkgcGF0dGVybiBtYXRjaCIKI34gbXNnc3RyICJzcGVjIKWopemhvDogJyUlKicgpM+l0aW/obyl86XepcOlwaTHvem0/LK9pLWk7KTKpKSk3qTepMekuSIKCiN+IG1zZ2lkICJXYXJuaW5nOiB1c2Ugb2Ygb2Jzb2xldGUgJSVbIG9wZXJhdG9yIGluIHNwZWNzIgojfiBtc2dzdHIgIrfZufA6ILXsvLCkziAlJVsgsem7u7vSpKwgc3BlYyCkzsPmpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJQcm9jZXNzaW5nIHNwZWMgJWMlcyVjLCB3aGljaCBpcyAnJXMnXG4iCiN+IG1zZ3N0ciAic3BlYyAlYyVzJWMgpPK96M39w+YsIKSzpOykzyAnJXMnIKTHpLlcbiIKCiN+IG1zZ2lkICJTcGVjIGZhaWx1cmU6IFVucmVjb2duaXNlZCBzcGVjIG9wdGlvbiAnJWMnIgojfiBtc2dzdHIgInNwZWMgpail6aG8OiDHp7yxydTHvaTKIHNwZWMgpaql16W3peel8yAnJWMnIgoKI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYC0lcyciCiN+IG1zZ3N0ciAix6e8scnUx72kyqWqpdelt6XnpfMgYC0lcyciCgojfiBtc2dpZCAiaW5zdGFsbDogJXMlc1xuIgojfiBtc2dzdHIgIqWkpfOluaXIobyl6zogJXMlc1xuIgoKI34gbXNnaWQgInByb2dyYW1zOiAlc1xuIgojfiBtc2dzdHIgIqXXpe2lsKXppeA6ICVzXG4iCgojfiBtc2dpZCAibGlicmFyaWVzOiAlc1xuIgojfiBtc2dzdHIgIqXppaSl1qXppeo6ICVzXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJGb3IgYnVnIHJlcG9ydGluZyBpbnN0cnVjdGlvbnMsIHBsZWFzZSBzZWU6XG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICKl0KWwpeyl3aG8pcikzrzqveekz6GisMqyvKTyu7K+yFxuIgoKI34gbXNnaWQgIkNvbmZpZ3VyZWQgd2l0aDogJXNcbiIKI34gbXNnc3RyICKls6XzpdWlo6Wwpaql16W3peel8zogJXNcbiIKCiN+IG1zZ2lkICJUaHJlYWQgbW9kZWw6ICVzXG4iCiN+IG1zZ3N0ciAipbml7KXDpcml4qXHpes6ICVzXG4iCgojfiBtc2dpZCAiZ2NjIHZlcnNpb24gJXNcbiIKI34gbXNnc3RyICJnY2MgpdChvKW4peel8yAlc1xuIgoKI34gbXNnaWQgImdjYyBkcml2ZXIgdmVyc2lvbiAlcyBleGVjdXRpbmcgZ2NjIHZlcnNpb24gJXNcbiIKI34gbXNnc3RyICJnY2Mgpcml6aWkpdCl0KG8pbil56XzICVzILzCudQgZ2NjIKXQobyluKXnpfMgJXNcbiIKCiN+IG1zZ2lkICJObyBpbnB1dCBmaWxlcyIKI34gbXNnc3RyICLG/s7PpdWloaWkpeukrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiJXM6ICVzIGNvbXBpbGVyIG5vdCBpbnN0YWxsZWQgb24gdGhpcyBzeXN0ZW0iCiN+IG1zZ3N0ciAiJXM6ICVzIKWzpfOl0aWkpemkz6SzpM6lt6W5pcal4KTLpaSl86W5pcihvKXrpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiJXM6IGxpbmtlciBpbnB1dCBmaWxlIHVudXNlZCBiZWNhdXNlIGxpbmtpbmcgbm90IGRvbmUiCiN+IG1zZ3N0ciAiJXM6IKXqpfOlr6SstLDOu6S3pMqkq6TDpL+kzqTHpeql86WrpM7G/s7PpdWloaWkpeukz7vIpO+k7KTepLuk86THpLekvyIKCiN+IG1zZ2lkICJsYW5ndWFnZSAlcyBub3QgcmVjb2duaXplZCIKI34gbXNnc3RyICK4wLjsICVzIKTPx6e8saTHpK2k3qS7pPMiCgojfiBtc2dpZCAiSW50ZXJuYWwgZ2NjIGFib3J0LiIKI34gbXNnc3RyICLG4sn0IGdjYyDD5sPHIgoKI34gbXNnaWQgIkludGVybmFsIGdjb3YgYWJvcnQuXG4iCiN+IG1zZ3N0ciAixuLJ9CBnY2MgYWJvcnQuXG4iCgojfiBtc2dpZCAiZ2NvdiBbLWJdIFstdl0gWy1uXSBbLWxdIFstZl0gWy1vIE9CSkRJUl0gZmlsZVxuIgojfiBtc2dzdHIgImdjb3YgWy1iXSBbLXZdIFstbl0gWy1sXSBbLWZdIFstbyBPQkpESVJdIKXVpaGlpKXrXG4iCgojfiBtc2dpZCAiQ291bGQgbm90IG9wZW4gYmFzaWMgYmxvY2sgZmlsZSAlcy5cbiIKI34gbXNnc3RyICK08Mvcpdal7aXDpa+l1aWhpaSl6yAlcyCk8rOrpLGk3qS7pPOkx6S3pL+ho1xuIgoKI34gbXNnaWQgIkNvdWxkIG5vdCBvcGVuIGRhdGEgZmlsZSAlcy5cbiIKI34gbXNnc3RyICKlx6G8pb+l1aWhpaSl6yAlcyCk8rOrpK+ks6TIpKykx6StpN6ku6TzpMekt6S/oaNcbiIKCiN+IG1zZ2lkICJBc3N1bWluZyB0aGF0IGFsbCBleGVjdXRpb24gY291bnRzIGFyZSB6ZXJvLlxuIgojfiBtc2dzdHIgIsG0vMK51L/0pKylvKXtpMekoqTrpMiyvsTqpLek3qS5oaNcbiIKCiN+IG1zZ2lkICJDb3VsZCBub3Qgb3BlbiBwcm9ncmFtIGZsb3cgZ3JhcGggZmlsZSAlcy5cbiIKI34gbXNnc3RyICKl16XtpbCl6aXgpdWl7aG8pdWloaWkpesgJXMgpPKzq6SxpN6ku6TzpMekt6S/oaNcbiIKCiN+IG1zZ2lkICJObyBleGVjdXRhYmxlIGNvZGUgYXNzb2NpYXRlZCB3aXRoIGZpbGUgJXMuXG4iCiN+IG1zZ3N0ciAipdWloaWkpesgJXMgpMu366TTydWkr7zCudSls6G8pcmkrKSipOqk3qS7pPOho1xuIgoKI34gbXNnaWQgIi5kYSBmaWxlIGNvbnRlbnRzIGV4aGF1c3RlZCB0b28gZWFybHlcbiIKI34gbXNnc3RyICIuZGEgpdWloaWkpeukzsbizcak8qSipN6k6qTLweGkr7vIpKTA2qTDpMakt6TepKSk3qS3pL9cbiIKCiN+IG1zZ2lkICIuZGEgZmlsZSBjb250ZW50cyBub3QgZXhoYXVzdGVkXG4iCiN+IG1zZ3N0ciAiLmRhIKXVpaGlpKXrpM7G4s3GpPK7yKSkwNqkw6TGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIHNvdXJjZSBsaW5lcyBleGVjdXRlZCBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgudTD5ikgpM6lvaG8pbm51KSstNi/9CAlcyCkx7zCudSktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiTm8gZXhlY3V0YWJsZSBzb3VyY2UgbGluZXMgaW4gZnVuY3Rpb24gJXNcbiIKI34gbXNnc3RyICK02L/0ICVzIKTLvMK51LLEx72kyqW9obylubnUpKykoqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJTYuMmYlJSBvZiAlZCBicmFuY2hlcyBleGVjdXRlZCBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgy9zD5ikgpM6l1qXppfOlwaSstNi/9CAlcyDG4qTHvMK51KS1pOyk3qS3pL9cbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIGJyYW5jaGVzIHRha2VuIGF0IGxlYXN0IG9uY2UgaW4gZnVuY3Rpb24gJXNcbiIKI34gbXNnc3RyICIlNi4yZiUlKCVkIMvcw+YpIKTOpdal6aXzpcGkrL6vpMqkr6TIpOKw7MXZpM+02L/0ICVzIKTHvPW86KTppOyk3qS3pL9cbiIKCiN+IG1zZ2lkICJObyBicmFuY2hlcyBpbiBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIrTYv/QgJXMgpMukz8qstPSkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIGNhbGxzIGV4ZWN1dGVkIGluIGZ1bmN0aW9uICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCCy8ykgpM64xqTTvdCkt6SstNi/9CAlcyCkx7zCudSktaTspN6kt6S/XG4iCgojfiBtc2dpZCAiTm8gY2FsbHMgaW4gZnVuY3Rpb24gJXNcbiIKI34gbXNnc3RyICK02L/0ICVzIKTLuMak073QpLekrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICJkaWRuJ3QgdXNlIGFsbCBiYiBlbnRyaWVzIG9mIGdyYXBoLCBmdW5jdGlvbiAlc1xuIgojfiBtc2dzdHIgIqWwpeml1aTOIGJiIKWopfOlyKXqpM6w7Mn0pLekq7vIpKSk3qS7pPOkx6S3pL+horTYv/QgJXNcbiIKCiN+IG1zZ2lkICJibG9ja19udW0gPSAlbGQsIG51bV9ibG9ja3MgPSAlZFxuIgojfiBtc2dzdHIgIqXWpe2lw6Wvv/QgPSAlbGShosjWueal1qXtpcOlryA9ICVkXG4iCgojfiBtc2dpZCAiRVJST1I6IHRvbyBtYW55IGJhc2ljIGJsb2NrcyBpbiAuYmIgZmlsZSAlc1xuIgojfiBtc2dzdHIgIqWopemhvDogLmJiIKXVpaGlpKXrICVzIKTLtPDL3KXWpe2lw6WvpKzCv6S5pK6k3qS5XG4iCgojfiBtc2dpZCAiJTYuMmYlJSBvZiAlZCBzb3VyY2UgbGluZXMgZXhlY3V0ZWQgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgudTD5ikgpM6lvaG8pbm51KSspdWloaWkpesgJXMgpMe8wrnUpLWk7KTepLekv1xuIgoKI34gbXNnaWQgIk5vIGV4ZWN1dGFibGUgc291cmNlIGxpbmVzIGluIGZpbGUgJXNcbiIKI34gbXNnc3RyICKl1aWhpaSl6yAlcyCky7zCudSyxMe9pMqlvaG8pbm51KSspKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgYnJhbmNoZXMgZXhlY3V0ZWQgaW4gZmlsZSAlc1xuIgojfiBtc2dzdHIgIiU2LjJmJSUoJWQgy9zD5ikgpM6l1qXppfOlwaSspdWloaWkpesgJXMgpMe8wrnUpLWk7KTepLekv1xuIgoKI34gbXNnaWQgIiU2LjJmJSUgb2YgJWQgYnJhbmNoZXMgdGFrZW4gYXQgbGVhc3Qgb25jZSBpbiBmaWxlICVzXG4iCiN+IG1zZ3N0ciAiJTYuMmYlJSglZCDL3MPmKSCkzqXWpeml86XBpKy+r6TKpK+kyKTisOyy86TPpdWloaWkpesgJXMgpMe89bzopOmk7KTepLekv1xuIgoKI34gbXNnaWQgIk5vIGJyYW5jaGVzIGluIGZpbGUgJXNcbiIKI34gbXNnc3RyICKl1aWhpaSl6yAlcyCky6TPpdal6aXzpcGkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlNi4yZiUlIG9mICVkIGNhbGxzIGV4ZWN1dGVkIGluIGZpbGUgJXNcbiIKI34gbXNnc3RyICIlNi4yZiUlKCVkILLzw+YpIKTOuMak073QpLekrKXVpaGlpKXrICVzIMbipMe8wrnUpLWk7KTepLekv1xuIgoKI34gbXNnaWQgIk5vIGNhbGxzIGluIGZpbGUgJXNcbiIKI34gbXNnc3RyICKl1aWhpaSl6yAlcyCky7jGpNO90KS3pKykoqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiQ291bGQgbm90IG9wZW4gc291cmNlIGZpbGUgJXMuXG4iCiN+IG1zZ3N0ciAipb2hvKW5pdWloaWkpesgJXMgpPKzq6SxpN6ku6TzpMekt6S/LlxuIgoKI34gbXNnaWQgIkNvdWxkIG5vdCBvcGVuIG91dHB1dCBmaWxlICVzLlxuIgojfiBtc2dzdHIgIr3Qzs+l1aWhpaSl6yAlcyCk8rOrpLGk3qS7pPOkx6S3pL8uXG4iCgojfiBtc2dpZCAiQ3JlYXRpbmcgJXMuXG4iCiN+IG1zZ3N0ciAiJXMgpPK67sCuw+YuXG4iCgojfiBtc2dpZCAiY2FsbCAlZCBuZXZlciBleGVjdXRlZFxuIgojfiBtc2dzdHIgIrjGpNO90KS3ICVkIKTPsOzF2aTivMK51KS7pLpcbiIKCiN+IG1zZ2lkICJjYWxsICVkIHJldHVybnMgPSAlZFxuIgojfiBtc2dzdHIgIrjGpNO90KS3ICVkIKTOzOGk6iA9ICVkXG4iCgojfiBtc2dpZCAiY2FsbCAlZCByZXR1cm5zID0gJWQlJVxuIgojfiBtc2dzdHIgIrjGpNO90KS3ICVkIKTOzOGk6iA9ICVkJSVcbiIKCiN+IG1zZ2lkICJicmFuY2ggJWQgbmV2ZXIgZXhlY3V0ZWRcbiIKI34gbXNnc3RyICKl1qXppfOlwSAlZCCkz7Dsxdmk4rzCudSktaTspLpcbiIKCiN+IG1zZ2lkICJicmFuY2ggJWQgdGFrZW4gPSAlZFxuIgojfiBtc2dzdHIgIqXWpeml86XBICVkILz1zf0gPSAlZFxuIgoKI34gbXNnaWQgImJyYW5jaCAlZCB0YWtlbiA9ICVkJSVcbiIKI34gbXNnc3RyICKl1qXppfOlwSAlZCC89c39ID0gJWQlJVxuIgoKI34gbXNnaWQgIlVuZXhwZWN0ZWQgRU9GIHdoaWxlIHJlYWRpbmcgc291cmNlIGZpbGUgJXMuXG4iCiN+IG1zZ3N0ciAipb2hvKW5pdWloaWkpesgJXMgpPLGyaTfuf6k38PmpMvNvbT8pLukzCBFT0YuXG4iCgojfiBtc2dpZCAiR0NTRSBkaXNhYmxlZDogJWQgPiAxMDAwIGJhc2ljIGJsb2NrcyBhbmQgJWQgPj0gMjAgZWRnZXMvYmFzaWMgYmxvY2siCiN+IG1zZ3N0ciAiR0NTRSCk8sy1uPqyvTogJWQgPiAxMDAwILTwy9yl1qXtpcOlr6Gitdqk0yAlZCA+PSAyMCBlZGdlL7Twy9yl1qXtpcOlryIKCiN+IG1zZ2lkICJHQ1NFIGRpc2FibGVkOiAlZCBiYXNpYyBibG9ja3MgYW5kICVkIHJlZ2lzdGVycyIKI34gbXNnc3RyICJHQ1NFIKTyzLW4+rK9OiAlZCC08Mvcpdal7aXDpa+horXapNMgJWQguMSkzqXspbiluaW/IgoKI34gbXNnaWQgImZpeF9zY2hlZF9wYXJhbTogdW5rbm93biBwYXJhbTogJXMiCiN+IG1zZ3N0ciAiZml4X3NjaGVkX3BhcmFtOiDJ1MzApMql0aXppeGlvzogJXMiCgojfiBtc2dpZCAiZnVuY3Rpb24gY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICK02L/0pPIgaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJ2YXJhcmdzIGZ1bmN0aW9uIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAissTK0bD6v/S02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB1c2luZyBhbGxvY2EgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICJhbGxvY2EgpPK7yKTDpMakpKTrtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gdXNpbmcgc2V0am1wIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAic2V0am1wIKTyu8ikw6TGpKSk67TYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHVzZXMgX19idWlsdGluX2VoX3JldHVybiIKI34gbXNnc3RyICK02L/0pKwgX19idWlsdGluX2VoX3JldHVybiCk8rvIpKSk3qS5IgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggbmVzdGVkIGZ1bmN0aW9ucyBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIsb+pOy70rTYv/Sk8rv9pMS02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIGxhYmVsIGFkZHJlc3NlcyB1c2VkIGluIGluaXRpYWxpemVycyBjYW5ub3QgaW5saW5lIgojfiBtc2dzdHIgIqXppdml66Wipcml7KW5pPK7/aTBoaK96bT8sr270qTHu8ik76TspOu02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB0b28gbGFyZ2UgdG8gYmUgaW5saW5lIgojfiBtc2dzdHIgIrTYv/SkrMLnpK2kuaSupMYgaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJubyBwcm90b3R5cGUsIGFuZCBwYXJhbWV0ZXIgYWRkcmVzcyB1c2VkOyBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16SspMqkr6Gisr6w+r/0pM6loqXJpeyluaSsu8ik76TspMakpKTrIC0tIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiaW5saW5lIGZ1bmN0aW9ucyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHJldHVybiB2YWx1ZSB0eXBlIgojfiBtc2dzdHIgIqSzpM7M4aTqw823v6TOIGlubGluZSC02L/0pM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gd2l0aCB2YXJ5aW5nLXNpemUgcmV0dXJuIHZhbHVlIGNhbm5vdCBiZSBpbmxpbmUiCiN+IG1zZ3N0ciAissTK0cS5pM7M4aTqw82k8srWpLm02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIHZhcnlpbmctc2l6ZSBwYXJhbWV0ZXIgY2Fubm90IGJlIGlubGluZSIKI34gbXNnc3RyICKyxMrRxLmw+r/0pPK7/aTEtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gd2l0aCB0cmFuc3BhcmVudCB1bml0IHBhcmFtZXRlciBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIsapsuG2ps3Rws6kzrD6v/Sk8rv9pMS02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIGNvbXB1dGVkIGp1bXAgY2Fubm90IGlubGluZSIKI34gbXNnc3RyICK7u73QpLWk7KS/pbil46Xzpdek8rnUpMqkprTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImZ1bmN0aW9uIHdpdGggbm9ubG9jYWwgZ290byBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIsjzpe2hvKWrpesgZ290byCk8rvIpMOkxqSkpOu02L/0pM8gaW5saW5lIKTLpMekraTepLuk8yIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIHRhcmdldCBzcGVjaWZpYyBhdHRyaWJ1dGUocykgY2Fubm90IGJlIGlubGluZWQiCiN+IG1zZ3N0ciAipb+hvKWypcOlyLjHza3CsMCtydWkzrTYv/SkzyBpbmxpbmUgpMukx6StpN6ku6TzIgoKI34gbXNnaWQgImludGVybmFsIGVycm9yIGluIGNoZWNrLWluaXQ6IHRyZWUgY29kZSBub3QgaW1wbGVtZW50ZWQ6ICVzIgojfiBtc2dzdHIgImNoZWNrLWluaXQgpMfG4sn0pail6aG8OiClxKXqobyls6G8pcmkz7zCwfWktaTspMakpKTepLuk8zogJXMiCgojfiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgLSB0b28gbWFueSBpbnRlcmZhY2UgdHlwZSIKI34gbXNnc3RyICLG4sn0pail6aG8IC0gaW50ZXJmYWNlILe/pKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgImJhZCBtZXRob2Qgc2lnbmF0dXJlIgojfiBtc2dzdHIgIsnUwLWkyqXhpb2lw6XJpbelsKXNpaSlwaXjpMekuSIKCiN+IG1zZ2lkICJtaXNwbGFjZWQgQ29uc3RhbnRWYWx1ZSBhdHRyaWJ1dGUgKG5vdCBpbiBhbnkgZmllbGQpIgojfiBtc2dzdHIgIkNvbnN0YW50VmFsdWUgwrDAraTOvuy96qTytNaw46SopMakpKTepLmhyqTJpM6l1aWjobyl66XJpMek4qSipOqk3qS7pPOhyyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgQ29uc3RhblZhbHVlIGF0cmlidXRlIGZvciBmaWVsZCAnJXMnIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgJyVzJyCkziBDb25zdGFudFZhbHVlIMKwwK2krL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgImZpZWxkICclcycgbm90IGZvdW5kIGluIGNsYXNzIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgJyVzJyCkrKWvpemlucbipMu4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJhYnN0cmFjdCBtZXRob2QgaW4gbm9uLWFic3RyYWN0IGNsYXNzIgojfiBtc2dzdHIgImFic3RyYWN0IKXhpb2lw6XJpKzI88Pqvt2lr6Xppbmky6SipOqk3qS5IgoKI34gbXNnaWQgIm5vbi1zdGF0aWMgbWV0aG9kICclcycgb3ZlcnJpZGVzIHN0YXRpYyBtZXRob2QiCiN+IG1zZ3N0ciAiyPPAxcWqpeGlvaXDpckgJyVzJyCkrMDFxaql4aW9pcOlyaTypaqhvKXQobyl6aWkpcmkt6TGpKSk3qS5IgoKI34gbXNnaWQgIkluICVzOiBvdmVybGFwcGVkIHZhcmlhYmxlIGFuZCBleGNlcHRpb24gcmFuZ2VzIGF0ICVkIgojfiBtc2dzdHIgIiVzIMbiOiDK0b/0pMjO47OwyM+wz6SsICVkIKTHvcWkyqTDpMakpKTepLkiCgojfiBtc2dpZCAiYmFkIHR5cGUgaW4gcGFyYW1ldGVyIGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAisr6w+r/0pcel0KXDpbC+8MrzpMvJ1MC1pMq3v6SspKKk6qTepLkiCgojfiBtc2dpZCAiYmFkIFBDIHJhbmdlIGZvciBkZWJ1ZyBpbmZvIGZvciBsb2NhbCBgJXMnIgojfiBtc2dzdHIgIqXtobylq6XrpM4gYCVzJyDN0aXHpdClw6WwvvDK86TOpL+k4aTOIFBDIMjPsM+krMnUwLWkx6S5IgoKI34gbXNnaWQgInN0YWNrIHVuZGVyZmxvdyAtIGR1cCogb3BlcmF0aW9uIgojfiBtc2dzdHIgIqW5pb+lw6WvpaKl86XAobyl1aXtobwgLSBkdXAqIMHguu4iCgojfiBtc2dpZCAicmVmZXJlbmNlIGAlcycgaXMgYW1iaWd1b3VzOiBhcHBlYXJzIGluIGludGVyZmFjZSBgJXMnIGFuZCBpbnRlcmZhY2UgYCVzJyIKI34gbXNnc3RyICK7sr7IIGAlcycgpM/bo8vmpMekuTogaW50ZXJmYWNlIGAlcycgpMggaW50ZXJmYWNlIGAlcycgpMu4vaTspN6kt6S/IgoKI34gbXNnaWQgImZpZWxkIGAlcycgbm90IGZvdW5kIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgYCVzJyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgInJldCBpbnN0cnVjdGlvbiBub3QgaW1wbGVtZW50ZWQiCiN+IG1zZ3N0ciAicmV0IMy/zuGkz7zCwfWktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJtZXRob2QgJyVzJyBub3QgZm91bmQgaW4gY2xhc3MiCiN+IG1zZ3N0ciAipeGlvaXDpckgJyVzJyCkz6WvpemlucbipMu4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJmYWlsZWQgdG8gZmluZCBjbGFzcyAnJXMnIgojfiBtc2dzdHIgIiclcycgpa+l6aW5pPK4q6TEpLGk66TOpMu8usfUpLek3qS3pL8iCgojfiBtc2dpZCAiQ2xhc3MgJyVzJyBoYXMgbm8gbWV0aG9kIG5hbWVkICclcycgbWF0Y2hpbmcgc2lnbmF0dXJlICclcyciCiN+IG1zZ3N0ciAipa+l6aW5ICclcycgpM/MvsGwpKwgJyVzJyCkx6W3pbClzaWkpcGl4yAnJXMnIKTIsOzD16S5pOul4aW9pcOlyaTyu/2kw6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiaW52b2tlc3RhdGljIG9uIG5vbiBzdGF0aWMgbWV0aG9kIgojfiBtc2dzdHIgIsjzwMXFqqXhpb2lw6XJpMsgaW52b2tlc3RhdGljIKS3pN6kt6S/IgoKI34gbXNnaWQgImludm9rZXN0YXRpYyBvbiBhYnN0cmFjdCBtZXRob2QiCiN+IG1zZ3N0ciAiw+q+3aXhpb2lw6XJpMsgaW52b2tlc3RhdGljIKS3pN6kt6S/IgoKI34gbXNnaWQgImludm9rZVtub24tc3RhdGljXSBvbiBzdGF0aWMgbWV0aG9kIgojfiBtc2dzdHIgIsDFxaql4aW9pcOlyaTLIGludm9rZVvI8yBzdGF0aWNdIKS3pN6kt6S/IgoKI34gbXNnaWQgIk1pc3NpbmcgZmllbGQgJyVzJyBpbiAnJXMnIgojfiBtc2dzdHIgIqXVpaOhvKXrpckgJyVzJygnJXMnIMbiKSCk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJNaXNtYXRjaGluZyBzaWduYXR1cmUgZm9yIGZpZWxkICclcycgaW4gJyVzJyIKI34gbXNnc3RyICKl1aWjobyl66XJICclcycoJyVzJyDG4ikgpM6lt6Wwpc2lpKXBpeOkrLDsw9ekt6TepLuk8yIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IHRvIGZpbmFsIGZpZWxkIGAlcycgbm90IGluIGZpZWxkJ3MgY2xhc3MiCiN+IG1zZ3N0ciAiZmluYWwgpdWlo6G8peulySBgJXMnIKTYpM7C5cb+pMekuaSsoaKkvaTOpdWlo6G8peulyaTOpa+l6aW5xuKkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IHRvIGZpbmFsIHN0YXRpYyBmaWVsZCBgJXMnIG5vdCBpbiBjbGFzcyBpbml0aWFsaXplciIKI34gbXNnc3RyICJmaW5hbCBzdGF0aWMgpdWlo6G8peulySBgJXMnIKTYpM7C5cb+pMekuaSsoaKkvaTOpdWlo6G8peulyaTOpa+l6aW5xuKkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJhc3NpZ25tZW50IHRvIGZpbmFsIGZpZWxkIGAlcycgbm90IGluIGNvbnN0cnVjdG9yIgojfiBtc2dzdHIgImZpbmFsIKXVpaOhvKXrpckgYCVzJyCk2KTOwuXG/qTHpLmkrKGipbOl86W5pcil6aWvpb/G4qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgIkNhbid0IGV4cGFuZCAlcyIKI34gbXNnc3RyICIlcyCk8sW4s6ukx6StpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgUEMgaW4gbGluZSBudW1iZXIgdGFibGUiCiN+IG1zZ3N0ciAizLW4+qTKIFBDIKSsudTI1rnmpcahvKXWpeuky6SipOqk3qS5IgoKI34gbXNnaWQgIlVucmVhY2hhYmxlIGJ5dGVjb2RlIGZyb20gJWQgdG8gYmVmb3JlICVkLiIKI34gbXNnc3RyICIlZCCkq6TpICVkIKTOwbCk3qTHpM6l0KWkpcils6G8pcmky6TPxf7Do6THpK2k3qS7pPMiCgojfiBtc2dpZCAiVW5yZWFjaGFibGUgYnl0ZWNvZGUgZnJvbSAlZCB0byB0aGUgZW5kIG9mIHRoZSBtZXRob2QuIgojfiBtc2dzdHIgIiVkIKSrpOml4aW9pcOlyaTOvaqk6qTepMekzqXQpaSlyKWzobylyaTLpM/F/sOjpMekraTepLuk8yIKCiN+IG1zZ2lkICJ1bnJlY29naXplZCB3aWRlIHN1Yi1pbnN0cnVjdGlvbiIKI34gbXNnc3RyICLHp7yxpMekraTKpKQgd2lkZSBzdWIgzL/O4aTHpLkiCgojfiBtc2dpZCAiU291cmNlIGZpbGUgZm9yIGNsYXNzIGAlcycgaXMgbmV3ZXIgdGhhbiBpdHMgbWF0Y2hpbmcgY2xhc3MgZmlsZS4gU291cmNlIGZpbGUgdXNlZCBpbnN0ZWFkIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTOpb2hvKW5pdWloaWkpeukz6GisOzD16S5pOulr6Xppbml1aWhpaSl66TopOq/t6S3pKSkx6S5oaOlvaG8pbml1aWhpaSl66TywuWk6qTLu8ikpKTepLkiCgojfiBtc2dpZCAiYmFkIHN0cmluZyBjb25zdGFudCIKI34gbXNnc3RyICLJ1MC1pMrKuLv6zvPE6r/0pMekuSIKCiN+IG1zZ2lkICJiYWQgdmFsdWUgY29uc3RhbnQgdHlwZSAlZCwgaW5kZXggJWQiCiN+IG1zZ3N0ciAiydTAtaTKxOq/9MPNt78gJWQsIKWkpfOlx6XDpa+luSAlZCIKCiN+IG1zZ2lkICJjYW4ndCByZW9wZW4gJXMiCiN+IG1zZ3N0ciAiJXMgpPK6xiBvcGVuIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiQ2Fubm90IGZpbmQgZmlsZSBmb3IgY2xhc3MgJXMuIgojfiBtc2dzdHIgIqWvpemluSAlcyDN0aTOpdWloaWkpeuk8rirpMSksaTppOyk3qS7pPOhoyIKCiN+IG1zZ2lkICJub3QgYSB2YWxpZCBKYXZhIC5jbGFzcyBmaWxlIgojfiBtc2dzdHIgIsC1vu+kyiBKYXZhIC5jbGFzcyCl1aWhpaSl66THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgImVycm9yIHdoaWxlIHBhcnNpbmcgY29uc3RhbnQgcG9vbCIKI34gbXNnc3RyICJjb25zdGFudCCl16G8peukzrm9yriy8sDPw+aky6WopemhvKSsyK/AuKS3pN6kt6S/IgoKI34gbXNnaWQgImVycm9yIGluIGNvbnN0YW50IHBvb2wgZW50cnkgIyVkXG4iCiN+IG1zZ3N0ciAiY29uc3RhbnQgpdehvKXrueDM3CAjJWQgxuKkx6WopemhvKSsyK/AuKS3pN6kt6S/XG4iCgojfiBtc2dpZCAicmVhZGluZyBjbGFzcyAlcyBmb3IgdGhlIHNlY29uZCB0aW1lIGZyb20gJXMiCiN+IG1zZ3N0ciAiY2xhc3MgJXMgpPLGybn+pOCkzqTPICVzIKSrpOnG87LzzNyky6TKpOqk3qS5IgoKI34gbXNnaWQgImVycm9yIHdoaWxlIHBhcnNpbmcgZmllbGRzIgojfiBtc2dzdHIgIqXVpaOhvKXrpcmkzrm9yriy8sDPw+aky6WopemhvKSsyK/AuKS3pN6kt6S/IgoKI34gbXNnaWQgImVycm9yIHdoaWxlIHBhcnNpbmcgbWV0aG9kcyIKI34gbXNnc3RyICKl4aW9pcOlyaTOub3KuLLywM/D5qTLpail6aG8pKzIr8C4pLek3qS3pL8iCgojfiBtc2dpZCAiZXJyb3Igd2hpbGUgcGFyc2luZyBmaW5hbCBhdHRyaWJ1dGVzIgojfiBtc2dzdHIgImZpbmFsIMKwwK2kzrm9yriy8sDPw+aky6WopemhvKSsyK/AuKS3pN6kt6S/IgoKI34gbXNnaWQgIlRoZSBgamF2YS5sYW5nLk9iamVjdCcgdGhhdCB3YXMgZm91bmQgaW4gYCVzJyBkaWRuJ3QgaGF2ZSB0aGUgc3BlY2lhbCB6ZXJvLWxlbmd0aCBgZ251Lmdjai5nY2otY29tcGlsZWQnIGF0dHJpYnV0ZS4gVGhpcyBnZW5lcmFsbHkgbWVhbnMgdGhhdCB5b3VyIGNsYXNzcGF0aCBpcyBpbmNvcnJlY3Qgc2V0LiBVc2UgYGluZm8gZ2NqIFwiSW5wdXQgT3B0aW9uc1wiJyB0byBzZWUgdGhlIGluZm8gcGFnZSBkZXNjcmliaW5nIGhvdyB0byBzZXQgdGhlIGNsYXNzcGF0aC4iCiN+IG1zZ3N0ciAiYCVzJyDG4qTHuKukxKSrpMOkvyBgamF2YS5sYW5nLk9iamVjdCcgpM+hosS5pLWlvKXtpM7Gw8rMpMogYGdudS5nY2ouZ2NqLWNvbXBpbGVkJyDCsMCtpPK7/aTDpMakpKTepLuk86GjpLOk7KTPyeHEzKSipMqkv6TOpa+l6aW5pdGluaSswLWkt6SvwN/E6qS1pOykxqSkpMqkpLv2pPKw1cyjpLek3qS5oaNgaW5mbyBnY2ogXCJJbnB1dCBPcHRpb25zXCInIKTyu8ikw6TGoaKlr6Xppbml0aW5pM7A38Tqyv3LoaTywOLMwKS3pMakoqTrIGluZm8gpdqhvKW4pPK4q6TGsryktaSkIgoKI34gbXNnaWQgIm1pc3NpbmcgQ29kZSBhdHRyaWJ1dGUiCiN+IG1zZ3N0ciAiQ29kZSDCsMCtpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKI34gbXNnc3RyICKlqKXpobyky6TopOogJXMgpPLKxKS4pN6kuSIKCiN+IG1zZ2lkICJzb3VyY2UgZmlsZSBzZWVuIHR3aWNlIG9uIGNvbW1hbmQgbGluZSBhbmQgd2lsbCBiZSBjb21waWxlZCBvbmx5IG9uY2UuIgojfiBtc2dzdHIgIqW9obyluaXVpaGlpKXrpKyls6XepfOlyaXppaSl86TLusak07i9pOyk3qS3pL+krKGipbOl86XRpaSl66S1pOyk66TOpM+w7MXZpMCksaTHpLkiCgojfiBtc2dpZCAibm8gaW5wdXQgZmlsZSBzcGVjaWZpZWQiCiN+IG1zZ3N0ciAixv7Oz6XVpaGlpKXrpKy72MTqpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgY2xvc2UgaW5wdXQgZmlsZSAlcyIKI34gbXNnc3RyICLG/s7PpdWloaWkpesgJXMgpPIgY2xvc2UgpMekraTepLuk8yIKCiN+IG1zZ2lkICJQcmVtYXR1cmUgZW5kIG9mIGlucHV0IGZpbGUgJXMiCiN+IG1zZ3N0ciAixv7Oz6XVpaGlpKXrICVzIKTOvaqk6qTLw6OkuaTrpM6krMHhpLmkrqTepLkiCgojfiBtc2dpZCAiYmFkIHppcC9qYXIgZmlsZSAlcyIKI34gbXNnc3RyICJ6aXAvamFyIKXVpaGlpKXrICVzIKTPydTAtaTHpLkiCgojfiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gZ2VuZXJhdGVfYnl0ZWNvZGVfaW5zbiAtIHRyZWUgY29kZSBub3QgaW1wbGVtZW50ZWQ6ICVzIgojfiBtc2dzdHIgImdlbmVyYXRlX2J5dGVjb2RlX2luc24gpMfG4sn0pail6aG8IC0gpcSl6qG8pbOhvKXJpM+8wsH1pLWk7KTGpKSk3qS7pPM6ICVzIgoKI34gbXNnaWQgImNhbid0IGNyZWF0ZSBkaXJlY3RvcnkgJXMiCiN+IG1zZ3N0ciAipcelo6Xspa+lyKXqICVzIKTyuu7ArqTHpK2k3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgdG8gb3BlbiAlcyIKI34gbXNnc3RyICIlcyCk8iBvcGVuIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiT25seSBvbmUgb2YgYC0tcHJpbnQtbWFpbicsIGAtLWxpc3QtY2xhc3MnLCBhbmQgYC0tY29tcGxleGl0eScgYWxsb3dlZCIKI34gbXNnc3RyICJgLS1wcmludC1tYWluJywgYC0tbGlzdC1jbGFzcycsIGAtLWNvbXBsZXhpdHknIKSrpOmkz7DspMSkt6Srwaqk2aTepLuk8yIKCiN+IG1zZ2lkICJDYW4ndCBvcGVuIG91dHB1dCBmaWxlIGAlcyciCiN+IG1zZ3N0ciAivdDOz6XVpaGlpKXrIGAlcycgpPIgb3BlbiCkx6StpN6ku6TzIgoKI34gbXNnaWQgIkZpbGUgbm90IGZvdW5kIGAlcyciCiN+IG1zZ3N0ciAipdWloaWkpesgYCVzJyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgImNhbid0IHNwZWNpZnkgYC1EJyB3aXRob3V0IGAtLW1haW4nXG4iCiN+IG1zZ3N0ciAiYC0tbWFpbicgzLWkt6THpM8gYC1EJyCk8rvYxOqkx6StpN6ku6TzXG4iCgojfiBtc2dpZCAiV2FybmluZzogYWxyZWFkeS1jb21waWxlZCAuY2xhc3MgZmlsZXMgaWdub3JlZCB3aXRoIC1DIgojfiBtc2dzdHIgIrfZufA6IKWzpfOl0aWkpeu60SAuY2xhc3MgpdWloaWkpeukzyAtQyCky6TopOrMtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBib3RoIC1DIGFuZCAtbyIKI34gbXNnc3RyICItQyCkyCAtbyCkz86+yv2k8rDsve+ky7vYxOqkx6StpN6ku6TzIgoKI34gbXNnaWQgImNhbm5vdCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUiCiN+IG1zZ3N0ciAisOy7/qXVpaGlpKXrpPK67sCupMekraTepLuk8yIKCiN+IG1zZ2lkICJ1c2luZyBib3RoIEBGSUxFIHdpdGggbXVsdGlwbGUgZmlsZXMgbm90IGltcGxlbWVudGVkIgojfiBtc2dzdHIgIkBGSUxFIKTHpM7Ko7/0pdWloaWkpeukzrvIzdGkz7zCwfWktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBgbWFpbicgY2xhc3Mgd2hlbiBub3QgbGlua2luZyIKI34gbXNnc3RyICKl6qXzpa+7/rDKs7Cky6TPIGBtYWluJyClr6Xppbmk8rvYxOqkx6StpN6ku6TzIgoKI34gbXNnaWQgIkRpc2FibGUgYXV0b21hdGljIGFycmF5IGJvdW5kcyBjaGVja2luZyIKI34gbXNnc3RyICK8q8awxaqkysfbzvO2rbOmuKG6uqTyudSk76TKpKQiCgojfiBtc2dpZCAiTWFrZSBpc19jb21waWxlZF9jbGFzcyByZXR1cm4gMSIKI34gbXNnc3RyICJpc19jb21waWxlZF9jbGFzcyCkrCAxIKTyytakuaTopKaky6S5pOsiCgojfiBtc2dpZCAiRHVtcCBjbGFzcyBmaWxlcyB0byA8bmFtZT4uY2xhc3MiCiN+IG1zZ3N0ciAipa+l6aW5pPIgPG5hbWU+LmNsYXNzIKXVpaGlpKXrpNilwKXzpdekuaTrIgoKI34gbXNnaWQgImlucHV0IGZpbGUgaXMgbGlzdCBvZiBmaWxlIG5hbWVzIHRvIGNvbXBpbGUiCiN+IG1zZ3N0ciAixv7Oz6XVpaGlpKXrpPKls6XzpdGlpKXrpLmk66XVpaGlpKXrzL6kzqXqpbmlyKTIpLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBjb2RlIGZvciBCb2VobSBHQyIKI34gbXNnc3RyICJCb2VobSBHQyDN0aTOpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEb24ndCBwdXQgc3luY2hyb25pemF0aW9uIHN0cnVjdHVyZSBpbiBlYWNoIG9iamVjdCIKI34gbXNnc3RyICLGsbT8ub3CpMLOpPKzxqWqpdaluKWnpa+lyKTLwcik38b+pOykyqSkIgoKI34gbXNnaWQgIkFzc3VtZSBuYXRpdmUgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCB1c2luZyBKTkkiCiN+IG1zZ3N0ciAibmF0aXZlILTYv/SkrCBKTkkgpPLN+M3RpLekxrzCwfWkt6TGpKSk66TipM6kyKTfpMqkuSIKCiN+IG1zZ2lkICJTZXQgY2xhc3MgcGF0aCBhbmQgc3VwcHJlc3Mgc3lzdGVtIHBhdGgiCiN+IG1zZ3N0ciAipa+l6aW5pdGluaTywN/E6qS3pMalt6W5pcal4KXRpbmk8rGjpLkiCgojfiBtc2dpZCAiU2V0IGNsYXNzIHBhdGgiCiN+IG1zZ3N0ciAipa+l6aW5pdGluaTywN/E6qS5pOsiCgojfiBtc2dpZCAiQ2hvb3NlIGNsYXNzIHdob3NlIG1haW4gbWV0aG9kIHNob3VsZCBiZSB1c2VkIgojfiBtc2dzdHIgIm1haW4gpeGlvaXDpcmkrLvIpO+k7KTrpNmkraWvpemluaTywarC8qS5pOsiCgojfiBtc2dpZCAiQ2hvb3NlIGlucHV0IGVuY29kaW5nIChkZWZhdWx0IGlzIFVURi04KSIKI34gbXNnc3RyICLG/s7Ppail86Wzobylx6WjpfOlsKTywarC8qS5pOsopcel1aWppeulyKTHpM8gVVRGLTgpIgoKI34gbXNnaWQgIkFkZCBkaXJlY3RvcnkgdG8gY2xhc3MgcGF0aCIKI34gbXNnc3RyICKlr6Xppbml0aW5pMulx6Wjpeylr6XIpeqk8sTJssOkuaTrIgoKI34gbXNnaWQgIkRpcmVjdG9yeSB3aGVyZSBjbGFzcyBmaWxlcyBzaG91bGQgYmUgd3JpdHRlbiIKI34gbXNnc3RyICKlr6Xppbml1aWhpaSl66SsvfGkrbn+pN6k7KTrpcelo6Xspa+lyKXqIgoKI34gbXNnaWQgIlVzZSBidWlsdC1pbiBpbnN0cnVjdGlvbnMgZm9yIGRpdmlzaW9uIgojfiBtc2dzdHIgIsHIpN+5/qTfpM69/Lu7zL/O4aTyu8jN0aS5pOsiCgojfiBtc2dpZCAiV2FybiBpZiBtb2RpZmllcnMgYXJlIHNwZWNpZmllZCB3aGVuIG5vdCBuZWNlc3NhcnkiCiN+IG1zZ3N0ciAiu9jE6qS1pOykv72kvv670qSsydTN16TKpOKkzqTHpKKk7KTQt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBpZiBkZXByZWNhdGVkIGVtcHR5IHN0YXRlbWVudHMgYXJlIGZvdW5kIgojfiBtc2dzdHIgIr/kvqmktaTspMqkpLb1yrikrLirpMSkq6TspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGlmIC5jbGFzcyBmaWxlcyBhcmUgb3V0IG9mIGRhdGUiCiN+IG1zZ3N0ciAiLmNsYXNzIKXVpaGlpKXrpKylvaG8pbml1aWhpaSl66TopOq4xaSxpOyk0LfZufCkuaTrIgoKI34gbXNnaWQgIkFsd2F5cyBjaGVjayBmb3Igbm9uIGdjaiBnZW5lcmF0ZWQgY2xhc3NlcyBhcmNoaXZlcyIKI34gbXNnc3RyICJnY2ogpKzAuMCupLekxqSkpMqkpKWvpemluaWiobylq6Wkpdak8r7vpMu4obq6pLmk6yIKCiN+IG1zZ2lkICJjYW4ndCBkbyBkZXBlbmRlbmN5IHRyYWNraW5nIHdpdGggaW5wdXQgZnJvbSBzdGRpbiIKI34gbXNnc3RyICLJuL3gxv7Oz6SrpOmkzsb+zs+kx6TPsM3CuLTYt7ikzsTJwNekrKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiIgojfiAidW5rbm93biBlbmNvZGluZzogYCVzJ1xuIgojfiAiVGhpcyBtaWdodCBtZWFuIHRoYXQgeW91ciBsb2NhbGUncyBlbmNvZGluZyBpcyBub3Qgc3VwcG9ydGVkXG4iCiN+ICJieSB5b3VyIHN5c3RlbSdzIGljb252KDMpIGltcGxlbWVudGF0aW9uLiAgSWYgeW91IGFyZW4ndCB0cnlpbmdcbiIKI34gInRvIHVzZSBhIHBhcnRpY3VsYXIgZW5jb2RpbmcgZm9yIHlvdXIgaW5wdXQgZmlsZSwgdHJ5IHRoZVxuIgojfiAiYC0tZW5jb2Rpbmc9VVRGLTgnIG9wdGlvbi4iCiN+IG1zZ3N0ciAiIgojfiAiydTMwKTKpail86WzobylyTogYCVzJ1xuIgojfiAipLOk7KTPpKKkyqS/pM6l7aWxobyl66TOpail86WzobylyaSspbeluaXGpeCkziBpY29udigzKSC8wsH1pKxcbiIKI34gIqW1pd2hvKXIpLekxqSkpMqkpKTIsb6kprv2pPKw1cyjpLek3qS5oaOk4qS3pKKkyqS/pKzG/s7PpdWloaWkpetcbiIKI34gIqTOxsPE6qWopfOls6G8pcmk8rvIpKakzqTHpMqksaTspNChomAtLWVuY29kaW5nPVVURi04JyClqqXXpbel56XzXG4iCiN+ICKk8rvIpMOkxqTfpMakr6TApLWkpKGjIgoKI34gbXNnaWQgIkNhbid0IG1hbmdsZSAlcyIKI34gbXNnc3RyICIlcyCkzsy+wbDK0bS5KG1hbmdsZSkgpMekraTepLuk8yIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvciAtIGludmFsaWQgVXRmOCBuYW1lIgojfiBtc2dzdHIgIsbiyfSlqKXpobwgLSDMtbj6pMogVXRmOCDMvqTHpLkiCgojfiBtc2dpZCAiTWlzc2luZyBuYW1lIgojfiBtc2dzdHIgIsy+wbCk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICInOycgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJzsnIKSsyazN16THpLkiCgojfiBtc2dpZCAiJyonIGV4cGVjdGVkIgojfiBtc2dzdHIgIicqJyCkrMmszdekx6S5IgoKI34gbXNnaWQgIkNsYXNzIG9yIGludGVyZmFjZSBkZWNsYXJhdGlvbiBleHBlY3RlZCIKI34gbXNnc3RyICKlr6Xppbmk5KWkpfOlv6G8pdWlp6WkpbnA67jApKzJrM3XpMekuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGNsYXNzIG5hbWUiCiN+IG1zZ3N0ciAipa+l6aW5zL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICIneycgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJ3snIKSsyazN16THpLkiCgojfiBtc2dpZCAiTWlzc2luZyBzdXBlciBjbGFzcyBuYW1lIgojfiBtc2dzdHIgIqW5obyl0aG8pa+l6aW5zL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGludGVyZmFjZSBuYW1lIgojfiBtc2dzdHIgIqWkpfOlv6G8pdWlp6WkpbnMvqTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc3NpbmcgdGVybSIKI34gbXNnc3RyICK54KTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc3NpbmcgdmFyaWFibGUgaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAiytG/9L3ptPyyvbvSpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiSW52YWxpZCBkZWNsYXJhdGlvbiIKI34gbXNnc3RyICLMtbj6pMrA67jApMekuSIKCiN+IG1zZ2lkICJDYW4ndCBzcGVjaWZ5IGFycmF5IGRpbWVuc2lvbiBpbiBhIGRlY2xhcmF0aW9uIgojfiBtc2dzdHIgIsfbzvOkzryhuLWk8sDruMCkx7vYxOqkuaTrpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICInXScgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJ10nIKSsyazN16THpLkiCgojfiBtc2dpZCAiVW5iYWxhbmNlZCAnXSciCiN+IG1zZ3N0ciAiwtCx/qTOpMqkpCAnXScgpMekuSIKCiN+IG1zZ2lkICJJbnZhbGlkIG1ldGhvZCBkZWNsYXJhdGlvbiwgbWV0aG9kIG5hbWUgcmVxdWlyZWQiCiN+IG1zZ3N0ciAizLW4+qTKpeGlvaXDpcnA67jApMekuaGjpeGlvaXDpcnMvqSsyazN16THpLkiCgojfiBtc2dpZCAiSWRlbnRpZmllciBleHBlY3RlZCIKI34gbXNnc3RyICK8scrMu9KkrMmszdekx6S5IgoKI34gbXNnaWQgIkludmFsaWQgbWV0aG9kIGRlY2xhcmF0aW9uLCByZXR1cm4gdHlwZSByZXF1aXJlZCIKI34gbXNnc3RyICLMtbj6pMql4aW9pcOlycDruMCkx6S5oaOl4aW9pcOlycy+pKzJrM3XpMekuSIKCiN+IG1zZ2lkICInKScgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJyknIKSsyazN16THpLkiCgojfiBtc2dpZCAiTWlzc2luZyBmb3JtYWwgcGFyYW1ldGVyIHRlcm0iCiN+IG1zZ3N0ciAiwLW8sKTKsr6w+r/0ueCk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJNaXNzaW5nIGlkZW50aWZpZXIiCiN+IG1zZ3N0ciAivLHKzLvSpPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWlzc2luZyBjbGFzcyB0eXBlIHRlcm0iCiN+IG1zZ3N0ciAipa+l6aW5pb+lpKXXueCk8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJJbnZhbGlkIGludGVyZmFjZSB0eXBlIgojfiBtc2dzdHIgIqWkpfOlv6G8pdWlp6Wkpbm3v6SszLW4+qTHpLkiCgojfiBtc2dpZCAiJzonIGV4cGVjdGVkIgojfiBtc2dzdHIgIic6JyCkrMmszdekx6S5IgoKI34gbXNnaWQgIkludmFsaWQgZXhwcmVzc2lvbiBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAivLDKuKSszLW4+qTHpLkiCgojfiBtc2dpZCAiJygnIGV4cGVjdGVkIgojfiBtc2dzdHIgIicoJyCkrMmszdekx6S5IgoKI34gbXNnaWQgIk1pc3NpbmcgdGVybSBvciAnKSciCiN+IG1zZ3N0ciAiueCk3qS/pM8gJyknIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIk1pc3NpbmcgdGVybSBhbmQgJyknIGV4cGVjdGVkIgojfiBtc2dzdHIgIrngpMjJrL/cpM4gJyknIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIkludmFsaWQgY29udHJvbCBleHByZXNzaW9uIgojfiBtc2dzdHIgIsy1uPqkysCpuOa8sKTHpLkiCgojfiBtc2dpZCAiSW52YWxpZCB1cGRhdGUgZXhwcmVzc2lvbiIKI34gbXNnc3RyICLMtbj6pMq5ub+3vLCkx6S5IgoKI34gbXNnaWQgIkludmFsaWQgaW5pdCBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAizLW4+qTKvem0/LK9vLCkx6S5IgoKI34gbXNnaWQgIk1pc3NpbmcgdGVybSBvciAnKScgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiueCk3qS/pM/JrL/cpM4gJyknIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIidjbGFzcycgb3IgJ3RoaXMnIGV4cGVjdGVkIgojfiBtc2dzdHIgIidjbGFzcycgpN6kv6TPICd0aGlzJyCkrMmszdekx6S5IgoKI34gbXNnaWQgIidjbGFzcycgZXhwZWN0ZWQiCiN+IG1zZ3N0ciAiJ2NsYXNzJyCkrMmszdekx6S5IgoKI34gbXNnaWQgIicpJyBvciB0ZXJtIGV4cGVjdGVkIgojfiBtc2dzdHIgIicpJyCk3qS/pM+54KSsyazN16THpLkiCgojfiBtc2dpZCAiJ1snIGV4cGVjdGVkIgojfiBtc2dzdHIgIidbJyCkrMmszdekx6S5IgoKI34gbXNnaWQgIkZpZWxkIGV4cGVjdGVkIgojfiBtc2dzdHIgIqXVpaOhvKXrpcmkrMmszdekx6S5IgoKI34gbXNnaWQgIk1pc3NpbmcgdGVybSBhbmQgJ10nIGV4cGVjdGVkIgojfiBtc2dzdHIgIrngpMjJrL/cpM4gJ10nIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIiddJyBleHBlY3RlZCwgaW52YWxpZCB0eXBlIGV4cHJlc3Npb24iCiN+IG1zZ3N0ciAiJ10nIKSsyazN16THoaLMtbj6pMq3v8m9uL2kx6S5IgoKI34gbXNnaWQgIkludmFsaWQgdHlwZSBleHByZXNzaW9uIgojfiBtc2dzdHIgIsy1uPqkyre/yb24vaTHpLkiCgojfiBtc2dpZCAiSW52YWxpZCByZWZlcmVuY2UgdHlwZSIKI34gbXNnc3RyICLMtbj6pMq7sr7It7+kx6S5IgoKI34gbXNnaWQgIkNvbnN0cnVjdG9yIGludm9jYXRpb24gbXVzdCBiZSBmaXJzdCB0aGluZyBpbiBhIGNvbnN0cnVjdG9yIgojfiBtc2dzdHIgIqWzpfOluaXIpemlr6W/pM61r8awpM+ls6XzpbmlyKXppa+lv8bipMe6x73ppMu51KTKpO+kyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiT25seSBjb25zdHJ1Y3RvcnMgY2FuIGludm9rZSBjb25zdHJ1Y3RvcnMiCiN+IG1zZ3N0ciAipbOl86W5pcil6aWvpb+kwKSxpKyls6XzpbmlyKXppa+lv6Tyta/GsKTHpK2k3qS5IgoKI34gbXNnaWQgIjogYCVzJyBKREsxLjEoVE0pIGZlYXR1cmUiCiN+IG1zZ3N0ciAiOiBgJXMnIKTPIEpESzEuMShUTSkgpM61oce9pMekuSIKCiN+IG1zZ2lkICIiCiN+ICIlcy5cbiIKI34gIiVzIgojfiBtc2dzdHIgIiIKI34gIiVzLlxuIgojfiAiJXMiCgojfiBtc2dpZCAiQ2FuJ3QgdXNlICckJyBhcyBhIHNlcGFyYXRvciBmb3IgaW5uZXIgY2xhc3NlcyIKI34gbXNnc3RyICInJCcgpM/G4sn0pa+l6aW5pM626MDapOq70qTIpLekxrvIzdGkx6StpN6ku6TzIgoKI34gbXNnaWQgIm1hbGZvcm1lZCAuemlwIGFyY2hpdmUgaW4gQ0xBU1NQQVRIOiAlcyIKI34gbXNnc3RyICJDTEFTU1BBVEggxuKky8rRpMogLnppcCCloqG8paulpKXWpKykoqTqpN6kuTogJXMiCgojfiBtc2dpZCAiQ2FuJ3QgZmluZCBkZWZhdWx0IHBhY2thZ2UgYCVzJy4gQ2hlY2sgdGhlIENMQVNTUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgdGhlIGFjY2VzcyB0byB0aGUgYXJjaGl2ZXMuIgojfiBtc2dzdHIgIqXHpdWlqaXrpcil0aXDpbGhvKW4IGAlcycgpKy4q6TEpKuk6qTepLuk86GjQ0xBU1NQQVRIILTEtq3K0b/0pMiloqG8paulpKXWpNikzqWipa+lu6W5pPKzzqSrpOGkxqSvpMCktaSkoaMiCgojfiBtc2dpZCAibWlzc2luZyBzdGF0aWMgZmllbGQgYCVzJyIKI34gbXNnc3RyICJzdGF0aWMgpdWlo6G8peulySBgJXMnIKTyt+ekpKTGpKSk3qS5IgoKI34gbXNnaWQgIm5vdCBhIHN0YXRpYyBmaWVsZCBgJXMnIgojfiBtc2dzdHIgInN0YXRpYyCl1aWjobyl66XJIGAlcycgpMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAiTm8gY2FzZSBmb3IgJXMiCiN+IG1zZ3N0ciAiJXMgpM6kv6ThpM4gY2FzZSCkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAidW5yZWdpc3RlcmVkIG9wZXJhdG9yICVzIgojfiBtc2dzdHIgIsXQz7+ktaTspMakpKTKpKSx6bu7u9IgJXMgpMekuSIKCiN+IG1zZ2lkICJpbnRlcm5hbCBlcnJvciAtIHVzZSBvZiB1bmRlZmluZWQgdHlwZSIKI34gbXNnc3RyICLG4sn0pail6aG8IC0gzKTE6rXBt7+kzrvIzdGkx6S5IgoKI34gbXNnaWQgImp1bmsgYXQgZW5kIG9mIHNpZ25hdHVyZSBzdHJpbmciCiN+IG1zZ3N0ciAipbelsKXNpaSlwaXjyri7+s7zpM69qqTqpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJiYWQgcGMgaW4gZXhjZXB0aW9uX3RhYmxlIgojfiBtc2dzdHIgImV4Y2VwdGlvbl90YWJsZSCky8nUwLWkyiBwYyCkrKSipOqk3qS5IgoKI34gbXNnaWQgInVua25vd24gb3Bjb2RlICVkQHBjPSVkIGR1cmluZyB2ZXJpZmljYXRpb24iCiN+IG1zZ3N0ciAiydTMwKTKIG9wY29kZSAlZEBwYz0lZCCk8rihvtrD5qTLyK+4q6S3pN6kt6S/IgoKI34gbXNnaWQgInZlcmlmaWNhdGlvbiBlcnJvciBhdCBQQz0lZCIKI34gbXNnc3RyICK4ob7apail6aG8IChQQz0lZCkiCgojfiBtc2dpZCAiRHVtcCBkZWNscyB0byBhIC5kZWNsIGZpbGUiCiN+IG1zZ3N0ciAiwOu4wKTyIC5kZWNsIKXVpaGlpKXrpMulwKXzpdekuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIEdOVSBydW50aW1lIGVudmlyb25tZW50IgojfiBtc2dzdHIgIkdOVSC8wrnUtMS2rc3RpM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIE5lWFQgcnVudGltZSBlbnZpcm9ubWVudCIKI34gbXNnc3RyICJOZVhUILzCudS0xLatzdGkzqWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiV2FybiBpZiBhIHNlbGVjdG9yIGhhcyBtdWx0aXBsZSBtZXRob2RzIgojfiBtc2dzdHIgIqW7peylr6W/pKzKo7/0pM6l4aW9pcOlyaTyu/2kw6TGpKSk7KTQt9m58KS5pOsiCgojfiBtc2dpZCAiRG8gbm90IHdhcm4gaWYgaW5oZXJpdGVkIG1ldGhvZHMgYXJlIHVuaW1wbGVtZW50ZWQiCiN+IG1zZ3N0ciAix8nAuKXhpb2lw6XJpKzMpLzCwfWkzr7sueekx6Tit9m58KS3pMqkpCIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBDIGhlYWRlciBvZiBwbGF0Zm9ybSBzcGVjaWZpYyBmZWF0dXJlcyIKI34gbXNnc3RyICKl16XppcOlyKXVpamhvKXguMfNraTOtaHHvaTOIEMgpdilw6XApPLAuMCupLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyBmb3IgY29uc3RhbnQgc3RyaW5ncyIKI34gbXNnc3RyICLE6r/0yri7+s7zzdGkzqWvpemlucy+pPK72MTqpLmk6yIKCiN+IG1zZ2lkICJubyBjbGFzcyBuYW1lIHNwZWNpZmllZCBhcyBhcmd1bWVudCB0byAtZmNvbnN0YW50LXN0cmluZy1jbGFzcyIKI34gbXNnc3RyICItZmNvbnN0YW50LXN0cmluZy1jbGFzcyCky7D6v/SkyKS3pMa72MTqpLWk7KS/pa+l6aW5pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIm9iamVjdCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBgJXMnIHByb3RvY29sIgojfiBtc2dzdHIgIqWqpdaluKWnpa+lyKSsIGAlcycgpdel7aXIpbOl66TLxay556S3pN6ku6TzIgoKI34gbXNnaWQgImNsYXNzIGAlcycgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBgJXMnIHByb3RvY29sIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTPIGAlcycgpdel7aXIpbOl66TyvMLB9aS3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJgJXMnIGNhbm5vdCBiZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCIKI34gbXNnc3RyICJgJXMnIKTywMXFqqTLs87K3aTHpK2k3qS7pPMiCgojfiBtc2dpZCAiVW5leHBlY3RlZCB0eXBlIGZvciBgaWQnICglcykiCiN+IG1zZ3N0ciAizb20/KS3pMqkpLe/pKwgYGlkJyAoJXMpIKTLu9jE6qS1pOyk3qS3pL8iCgojfiBtc2dpZCAiVW5kZWZpbmVkIHR5cGUgYGlkJywgcGxlYXNlIGltcG9ydCA8b2JqYy9vYmpjLmg+IgojfiBtc2dzdHIgImBpZCcgt7+krMykxOq1waTHpLmhozxvYmpjL29iamMuaD4gpPIgaW1wb3J0IKS3pMayvKS1pKQiCgojfiBtc2dpZCAiQ2Fubm90IGZpbmQgcHJvdG9jb2wgZGVjbGFyYXRpb24gZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLmk66XXpe2lyKWzpevA67jApKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICJDYW5ub3QgZmluZCBpbnRlcmZhY2UgZGVjbGFyYXRpb24gZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCky8LQpLmk66WkpfOlv6XVpaehvKW5wOu4wKSsuKukxKSrpOqk3qS7pPMiCgojfiBtc2dpZCAiQ2Fubm90IGZpbmQgY2xhc3MgYCVzJyIKI34gbXNnc3RyICKlr6XppbkgYCVzJyCkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgIkNhbm5vdCBmaW5kIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgYCVzJywgc3VwZXJjbGFzcyBvZiBgJXMnIgojfiBtc2dzdHIgImAlcycgpM6lpKXzpb+hvKXVpaelpKW5wOu4wKSsuKukxKSrpOqk3qS7pPOhymAlcycgpM608MTspa+l6aW5pMekuaHLIgoKI34gbXNnaWQgIkNpcmN1bGFyIGluaGVyaXRhbmNlIGluIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgYCVzJyIKI34gbXNnc3RyICJgJXMnIKTYpM6lpKXzpb+hvKXVpaelpKW5wOu4wKSsvdu0xMWqpMq30b61pMikyqTDpMakpKTepLkiCgojfiBtc2dpZCAiaW5jb25zaXN0ZW50IGluc3RhbmNlIHZhcmlhYmxlIHNwZWNpZmljYXRpb24iCiN+IG1zZ3N0ciAipaSl86W5pb+l86W5ytG/9KTOu8XNzaSssOy006S3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJtdWx0aXBsZSBkZWNsYXJhdGlvbnMgZm9yIG1ldGhvZCBgJXMnIgojfiBtc2dzdHIgIqXhpb2lw6XJIGAlcycgpM7A67jApKy9xcqjpLekxqSkpN6kuaGjIgoKI34gbXNnaWQgImludmFsaWQgcmVjZWl2ZXIgdHlwZSBgJXMnIgojfiBtc2dzdHIgIqXspbehvKXQt78gYCVzJyCkrMy1uPqkx6S5IgoKI34gbXNnaWQgImAlcycgZG9lcyBub3QgcmVzcG9uZCB0byBgJXMnIgojfiBtc2dzdHIgImAlcycgpM8gYCVzJyCky7H+xfqkt6TepLuk8yIKCiN+IG1zZ2lkICJubyBzdXBlciBjbGFzcyBkZWNsYXJlZCBpbiBpbnRlcmZhY2UgZm9yIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk2KTOpaSl86W/obyl1aWnpaSluaTLtPDE7KWvpemluaSswOu4wKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImNhbm5vdCBmaW5kIGNsYXNzIChmYWN0b3J5KSBtZXRob2QuIgojfiBtc2dzdHIgIqWvpemluSAoZmFjdG9yeSkgpeGlvaXDpcmkrLirpMSkq6TqpN6ku6TzIgoKI34gbXNnaWQgInJldHVybiB0eXBlIGZvciBgJXMnIGRlZmF1bHRzIHRvIGlkIgojfiBtc2dzdHIgImAlcycgpM7M4aTqw82kzre/pM+lx6XVpaml66XIpM4gaWQgpMikt6TepLkiCgojfiBtc2dpZCAibWV0aG9kIGAlcycgbm90IGltcGxlbWVudGVkIGJ5IHByb3RvY29sLiIKI34gbXNnc3RyICKl4aW9pcOlySBgJXMnIKTPpdel7aXIpbOl66TLpOikw6TGvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgInJldHVybiB0eXBlIGRlZmF1bHRzIHRvIGlkIgojfiBtc2dzdHIgIszhpOrDzaTOt7+k8qXHpdWlqaXrpcikziBpZCCkyKS3pN6kuSIKCiN+IG1zZ2lkICJjYW5ub3QgZmluZCBtZXRob2QuIgojfiBtc2dzdHIgIqXhpb2lw6XJpKy4q6TEpKuk6qTepLuk86GjIgoKI34gbXNnaWQgImluc3RhbmNlIHZhcmlhYmxlIGAlcycgYWNjZXNzZWQgaW4gY2xhc3MgbWV0aG9kIgojfiBtc2dzdHIgIqWkpfOluaW/pfOlucrRv/QgYCVzJyCkrKWvpemluaXhpb2lw6XJpKuk6aWipa+lu6W5pLWk7KTepLekvyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBjbGFzcyBtZXRob2QgYCVzJy4iCiN+IG1zZ3N0ciAipa+l6aW5peGlvaXDpckgYCVzJyCkzsTqtcGkrL3FyqOkt6TGpKSk3qS5oaMiCgojfiBtc2dpZCAiZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIGNsYXNzIG1ldGhvZCBgJXMnLiIKI34gbXNnc3RyICKlr6Xppbml4aW9pcOlySBgJXMnIKTOwOu4wKSsvcXKo6S3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBpbnN0YW5jZSBtZXRob2QgYCVzJy4iCiN+IG1zZ3N0ciAipaSl86W5pb+l86W5peGlvaXDpckgYCVzJyCkzsTqtcGkrL3FyqOkt6TGpKSk3qS5oaMiCgojfiBtc2dpZCAiZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIGluc3RhbmNlIG1ldGhvZCBgJXMnLiIKI34gbXNnc3RyICKlpKXzpbmlv6Xzpbml4aW9pcOlySBgJXMnIKTOwOu4wKSsvcXKo6S3pMakpKTepLmhoyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIGZvciBjYXRlZ29yeSBgJXMoJXMpJyIKI34gbXNnc3RyICKlq6XGpbSl6iBgJXMoJXMpJyCk2KTOpaSl86W/obyl1aWnpaSlucDruMCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgImluc3RhbmNlIHZhcmlhYmxlIGAlcycgaXMgZGVjbGFyZWQgcHJpdmF0ZSIKI34gbXNnc3RyICKlpKXzpbmlv6XzpbnK0b/0IGAlcycgpM8gcHJpdmF0ZSCkyMDruMCktaTspMakpKTepLkiCgojfiBtc2dpZCAiaW5zdGFuY2UgdmFyaWFibGUgYCVzJyBpcyBkZWNsYXJlZCAlcyIKI34gbXNnc3RyICKlpKXzpbmlv6XzpbnK0b/0IGAlcycgpM8gJXMgpMjA67jApLWk7KTGpKSk3qS5IgoKI34gbXNnaWQgInN0YXRpYyBhY2Nlc3MgdG8gb2JqZWN0IG9mIHR5cGUgYGlkJyIKI34gbXNnc3RyICJgaWQnILe/pM6lqqXWpbilp6Wvpciky8LOpLmk68DFxaqloqWvpbuluaTHpLkiCgojfiBtc2dpZCAiaW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBgJXMnIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIKTOvMLB9aSsydS0sMG0pMekuSIKCiN+IG1zZ2lkICJpbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGNhdGVnb3J5IGAlcyciCiN+IG1zZ3N0ciAipaulxqW0peogYCVzJyCkzrzCwfWkrMnUtLDBtKTHpLkiCgojfiBtc2dpZCAibWV0aG9kIGRlZmluaXRpb24gZm9yIGAlYyVzJyBub3QgZm91bmQiCiN+IG1zZ3N0ciAiYCVjJXMnIKTOpeGlvaXDpcnE6rXBpKy4q6TEpKuk6qTepLuk8yIKCiN+IG1zZ2lkICIlcyBgJXMnIGRvZXMgbm90IGZ1bGx5IGltcGxlbWVudCB0aGUgYCVzJyBwcm90b2NvbCIKI34gbXNnc3RyICIlcyBgJXMnIKTPIGAlcycgpdel7aXIpbOl66TytLDBtKTLpM+8wsH1pLekxqSkpN6ku6TzIgoKI34gbXNnaWQgInJlaW1wbGVtZW50YXRpb24gb2YgY2xhc3MgYCVzJyIKI34gbXNnc3RyICKlr6XppbkgYCVzJyCkzrrGvMLB9aTHpLkiCgojfiBtc2dpZCAiY29uZmxpY3Rpbmcgc3VwZXIgY2xhc3MgbmFtZSBgJXMnIgojfiBtc2dzdHIgIrTwxOylr6XppbnMviBgJXMnIKSsvtfGzaS3pMakpKTepLkiCgojfiBtc2dpZCAiZHVwbGljYXRlIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgY2xhc3MgYCVzJyIKI34gbXNnc3RyICKlr6XppbkgYCVzJyCkzqWkpfOlv6G8pdWlp6WkpbnA67jApKy9xcqjpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgZGVjbGFyYXRpb24gZm9yIHByb3RvY29sIGAlcyciCiN+IG1zZ3N0ciAipdel7aXIpbOl6yAnJXMnIKTOwOu4wKSsvcXKo6S3pMakpKTepLkiCgojfiBtc2dpZCAiW3N1cGVyIC4uLl0gbXVzdCBhcHBlYXIgaW4gYSBtZXRob2QgY29udGV4dCIKI34gbXNnc3RyICJbc3VwZXIgLi4uXSCkz6Xhpb2lw6XJpbOl86XGpa2luaXIpMu4vaTspMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgInBvdGVudGlhbCBzZWxlY3RvciBjb25mbGljdCBmb3IgbWV0aG9kIGAlcyciCiN+IG1zZ3N0ciAissTHvcCtpM6koqTrpbul7KWvpb+krKXhpb2lw6XJIGAlcycgpMi2pbnnpLek3qS5IgoKI34gbXNnaWQgImBAZW5kJyBtdXN0IGFwcGVhciBpbiBhbiBpbXBsZW1lbnRhdGlvbiBjb250ZXh0IgojfiBtc2dzdHIgImBAZW5kJyCkz7zCwfWls6Xzpcalr6W5pciky7i9pOykyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAibWV0aG9kIGRlZmluaXRpb24gbm90IGluIGNsYXNzIGNvbnRleHQiCiN+IG1zZ3N0ciAipeGlvaXDpcnE6rXBpKylr6Xppbmls6XzpcalraW5pcjG4qTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInN5bnRheCBlcnJvciBhdCAnQCcgdG9rZW4iCiN+IG1zZ3N0ciAiJ0AnIKXIobylr6XzpMfKuMuhpail6aG8IgoKI34gbXNnaWQgImludmFsaWQgcGFyYW1ldGVyIGAlcyciCiN+IG1zZ3N0ciAisr6w+r/0IGAlcycgpM/Mtbj6pMekuSIKCiN+IG1zZ2lkICJBcmMgcHJvZmlsaW5nOiBzb21lIGVkZ2UgY291bnRzIHdlcmUgYmFkLiIKI34gbXNnc3RyICK4zChhcmMppdel7aXVpaGlpKXqpfOlsDogtPakxKSrpM4gZWRnZSClq6WmpfOlyKTPydTAtaTHpLmhoyIKCiN+IG1zZ2lkICJmaWxlICVzIG5vdCBmb3VuZCwgZXhlY3V0aW9uIGNvdW50cyBhc3N1bWVkIHRvIGJlIHplcm8uIgojfiBtc2dzdHIgIqXVpaGlpKXrICVzIKSsuKukxKSrpOqk3qS7pPOkzqTHoaK8wrnUpaulpqXzpcikz6W8pe2kyLirpMqkt6TepLkiCgojfiBtc2dpZCAiJXM6IGludGVybmFsIGFib3J0XG4iCiN+IG1zZ3N0ciAiJXM6IMbiyfTD5sPHXG4iCgojfiBtc2dpZCAiJXM6IGVycm9yIHdyaXRpbmcgZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTLvfGkrbn+pN/D5qTLpail6aG8OiAlc1xuIgoKI34gbXNnaWQgIiVzOiB1c2FnZSAnJXMgWyAtVnFmbmtOIF0gWyAtaSA8aXN0cmluZz4gXSBbIGZpbGVuYW1lIC4uLiBdJ1xuIgojfiBtc2dzdHIgIiVzOiC7yM3Ry6EgJyVzIFsgLVZxZm5rTiBdIFsgLWkgPGlzdHJpbmc+IF0gWyCl1aWhpaSl68y+IC4uLiBdJ1xuIgoKI34gbXNnaWQgIiVzOiB1c2FnZSAnJXMgWyAtVnFmbmtObGdDIF0gWyAtQiA8ZGlybmFtZT4gXSBbIGZpbGVuYW1lIC4uLiBdJ1xuIgojfiBtc2dzdHIgIiVzOiC7yM3Ry6EgJyVzIFsgLVZxZm5rTmxnQyBdIFsgLUIgPKXHpaOl7KWvpcil6sy+PiBdIFsgpdWloaWkpevMviAuLi4gXSdcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogbm8gcmVhZCBhY2Nlc3MgZm9yIGZpbGUgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiC32bnwOiCl1aWhpaSl6yBgJXMnIKTLwtCkt6TGxsmk373QpLe19rLEpKykoqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IHdhcm5pbmc6IG5vIHdyaXRlIGFjY2VzcyBmb3IgZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IKXVpaGlpKXrIGAlcycgpMvC0KS3pMa98aStuf6k37X2ssSkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogbm8gd3JpdGUgYWNjZXNzIGZvciBkaXIgY29udGFpbmluZyBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IGAlcycgpPK03qTgpcelo6Xspa+lyKXqpMvC0KS3pMa98aStuf6k37X2ssSkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogaW52YWxpZCBmaWxlIG5hbWU6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMy1uPqkyqXVpaGlpKXrzL46ICVzXG4iCgojfiBtc2dpZCAiJXM6ICVzOiBjYW4ndCBnZXQgc3RhdHVzOiAlc1xuIgojfiBtc2dzdHIgIiVzOiAlczogvvXC1qTyvOjGwKTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICIlczogZmF0YWwgZXJyb3I6IGF1eCBpbmZvIGZpbGUgY29ycnVwdGVkIGF0IGxpbmUgJWRcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIiVzOiDD18y/xaqlqKXpobw6IMn7IGluZm8gpdWloaWkpeukrCAlZCC51MzcpMey9aTspMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczolZDogZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gYCVzJyB0YWtlcyBkaWZmZXJlbnQgZm9ybXNcbiIKI34gbXNnc3RyICIlczolZDogtNi/9CBgJXMnIKTOwOu4wKSsysykzrfBpPK86KTDpMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczogY29tcGlsaW5nIGAlcydcbiIKI34gbXNnc3RyICIlczogYCVzJyCk8qWzpfOl0aWkpevD5lxuIgoKI34gbXNnaWQgIiVzOiB3YWl0OiAlc1xuIgojfiBtc2dzdHIgIiVzOiDC1KTBOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBzdWJwcm9jZXNzIGdvdCBmYXRhbCBzaWduYWwgJWRcbiIKI34gbXNnc3RyICIlczogpbWl1qXXpe2lu6W5pKzD18y/xaqlt6Wwpcql6yAlZCCk8rz1pLG86KTqpN6kt6S/XG4iCgojfiBtc2dpZCAiJXM6ICVzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZFxuIgojfiBtc2dzdHIgIiVzOiAlcyCkz6W5pcahvKW/pbkgJWQgpMe9qs67pLek3qS3pL9cbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogbWlzc2luZyBTWVNDQUxMUyBmaWxlIGAlcydcbiIKI34gbXNnc3RyICIlczogt9m58DogU1lTQ0FMTFMgpdWloaWkpesgYCVzJyCkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogY2FuJ3QgcmVhZCBhdXggaW5mbyBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMn7IGluZm8gpdWloaWkpesgYCVzJyCk8sbJpOCks6TIpKykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBnZXQgc3RhdHVzIG9mIGF1eCBpbmZvIGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogyfsgaW5mbyCl1aWhpaSl6yBgJXMnIKTOvvXC1qTyvOjGwKS5pOuks6TIpKykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBvcGVuIGF1eCBpbmZvIGZpbGUgYCVzJyBmb3IgcmVhZGluZzogJXNcbiIKI34gbXNnc3RyICIlczogyfsgaW5mbyCl1aWhpaSl6yBgJXMnIKTyxsmk37n+pN/N0aTLs6ukr6SzpMikrKTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGVycm9yIHJlYWRpbmcgYXV4IGluZm8gZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDJ+yBpbmZvIKXVpaGlpKXrIGAlcycgpPLGyaTfuf6k38PmpMulqKXpobw6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGVycm9yIGNsb3NpbmcgYXV4IGluZm8gZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDJ+yBpbmZvIKXVpaGlpKXrIGAlcycgpPLKxKS4pMakpKTrusfD5qTLpail6aG8OiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBkZWxldGUgYXV4IGluZm8gZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDJ+yBpbmZvIKXVpaGlpKXrIGAlcycgpPK67738pMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogY2FuJ3QgZGVsZXRlIGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogpdWloaWkpesgYCVzJyCk8rrvvfykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiB3YXJuaW5nOiBjYW4ndCByZW5hbWUgZmlsZSBgJXMnIHRvIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IKXVpaGlpKXrIGAlcycgpPIgYCVzJyDMvsGwytG5uaTHpK2k3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGNvbmZsaWN0aW5nIGV4dGVybiBkZWZpbml0aW9ucyBvZiAnJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ICclcycgpM6zsMn0xOq1waSszLe94qS3pMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczogZGVjbGFyYXRpb25zIG9mICclcycgd2lsbCBub3QgYmUgY29udmVydGVkXG4iCiN+IG1zZ3N0ciAiJXM6ICclcycgpM7A67jApM/K0bS5pLWk7KTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBjb25mbGljdCBsaXN0IGZvciAnJXMnIGZvbGxvd3M6XG4iCiN+IG1zZ3N0ciAiJXM6IGAlcycgpMvC0KS5pOvMt73isOzN96TPsMqyvKTOxMyk6qTHpLk6XG4iCgojfiBtc2dpZCAiJXM6IHdhcm5pbmc6IHVzaW5nIGZvcm1hbHMgbGlzdCBmcm9tICVzKCVkKSBmb3IgZnVuY3Rpb24gYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiC32bnwOiAlcyglZCkgpKuk6aTOt8G8sKXqpbmlyKTyoaK02L/0IGAlcycgpM6w2aTLu8ikpKTepLlcbiIKCiN+IG1zZ2lkICIlczogJWQ6IGAlcycgdXNlZCBidXQgbWlzc2luZyBmcm9tIFNZU0NBTExTXG4iCiN+IG1zZ3N0ciAiJXM6ICVkOiBgJXMnIKTPu8ik76TspMakpKTepLmkrCBTWVNDQUxMUyCky6SipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogJWQ6IHdhcm5pbmc6IG5vIGV4dGVybiBkZWZpbml0aW9uIGZvciBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ICVkOiC32bnwOiBgJXMnIKTLwtCkuaTrs7DJ9MTqtcGkrKSipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogbm8gc3RhdGljIGRlZmluaXRpb24gZm9yIGAlcycgaW4gZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IGAlcycgpM7AxcWqxOq1waSspdWloaWkpesgYCVzJyCkzsPmpMukoqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IG11bHRpcGxlIHN0YXRpYyBkZWZzIG9mIGAlcycgaW4gZmlsZSBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6IGAlcycgpM7AxcWqxOq1waSspdWloaWkpesgYCVzJyCkzsPmpMe9xcqjpLekxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiAlZDogd2FybmluZzogc291cmNlIHRvbyBjb25mdXNpbmdcbiIKI34gbXNnc3RyICIlczogJWQ6ILfZufA6IKW9obyluaSsuq7N8KS3pLmkrqTGpKSk3qS5XG4iCgojfiBtc2dpZCAiJXM6ICVkOiB3YXJuaW5nOiB2YXJhcmdzIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogJWQ6ILfZufA6IHZhcmFyZ3MgtNi/9MDruMCkrMrRtLmktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiBgJXMnIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogtNi/9CBgJXMnIKTOwOu4wKSsytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IHdhcm5pbmc6IHRvbyBtYW55IHBhcmFtZXRlciBsaXN0cyBpbiBkZWNsYXJhdGlvbiBvZiBgJXMnXG4iCiN+IG1zZ3N0ciAiJXM6ILfZufA6IGAlcycgpM7A67jApMekzrK+sPq/9KXqpbmlyKSswr+kuaSupN6kuVxuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiJXM6IHdhcm5pbmc6IHRvbyBmZXcgcGFyYW1ldGVyIGxpc3RzIGluIGRlY2xhcmF0aW9uIG9mIGAlcydcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIiVzOiC32bnwOiBgJXMnIKTOwOu4wKTHpM6yvrD6v/Sl6qW5pcikrL6vpMqkuaSupN6kuVxuIgoKI34gbXNnaWQgIiVzOiAlZDogd2FybmluZzogZm91bmQgYCVzJyBidXQgZXhwZWN0ZWQgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiAlZDogt9m58DogYCVzJyCkrLirpMSkq6TqpN6kt6S/pKwgYCVzJyCkrLT8wtSktaTspMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczogbG9jYWwgZGVjbGFyYXRpb24gZm9yIGZ1bmN0aW9uIGAlcycgbm90IGluc2VydGVkXG4iCiN+IG1zZ3N0ciAiJXM6ILTYv/QgYCVzJyCkzqXtobylq6XrwOu4wKSswd7G/qS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICIlczogJWQ6IHdhcm5pbmc6IGNhbid0IGFkZCBkZWNsYXJhdGlvbiBvZiBgJXMnIGludG8gbWFjcm8gY2FsbFxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiJXM6ICVkOiC32bnwOiBgJXMnIKTOwOu4wKTypd6lr6XtuMak073QpLeky8TJssOkx6StpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IGdsb2JhbCBkZWNsYXJhdGlvbnMgZm9yIGZpbGUgYCVzJyBub3QgaW5zZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogpdWloaWkpesgYCVzJyCkzsLnsOjA67jApKzB3sb+pLWk7KTGpKSk3qS7pPNcbiIKCiN+IG1zZ2lkICIlczogZGVmaW5pdGlvbiBvZiBmdW5jdGlvbiBgJXMnIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogtNi/9CBgJXMnIKTOxOq1waSsytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6ICVkOiB3YXJuaW5nOiBkZWZpbml0aW9uIG9mICVzIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogJWQ6ILfZufA6ICVzIKTOxOq1waSsytG0uaS1pOykxqSkpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IGZvdW5kIGRlZmluaXRpb24gb2YgYCVzJyBhdCAlcyglZClcbiIKI34gbXNnc3RyICIlczogYCVzJyCkzsTqtcGkrCAlcyglZCkgpMu4q6TEpKuk6qTepLekv1xuIgoKI34gbXNnaWQgIiVzOiAlZDogd2FybmluZzogYCVzJyBleGNsdWRlZCBieSBwcmVwcm9jZXNzaW5nXG4iCiN+IG1zZ3N0ciAiJXM6ICVkOiC32bnwOiBgJXMnIKTPpdel6qXXpe2lu6W5pKuk6b38s7CktaTspMakpKTepLlcbiIKCiN+IG1zZ2lkICIlczogZnVuY3Rpb24gZGVmaW5pdGlvbiBub3QgY29udmVydGVkXG4iCiN+IG1zZ3N0ciAiJXM6ILTYv/SkzsTqtcGkrMrRtLmktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBgJXMnIG5vdCBjb252ZXJ0ZWRcbiIKI34gbXNnc3RyICIlczogYCVzJyCkz8rRtLmktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgIiVzOiB3b3VsZCBjb252ZXJ0IGZpbGUgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiBgJXMnIKTyytG0uaS3pN6kuVxuIgoKI34gbXNnaWQgIiVzOiBjb252ZXJ0aW5nIGZpbGUgYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTyytG0ucPmXG4iCgojfiBtc2dpZCAiJXM6IGNhbid0IGdldCBzdGF0dXMgZm9yIGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIlczogpdWloaWkpesgYCVzJyCkzr71wtak8rzoxsCkuaTrpLOkyKSspMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogY2FuJ3Qgb3BlbiBmaWxlIGAlcycgZm9yIHJlYWRpbmc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IMbJpN+5/qTfzdGky6XVpaGlpKXrIGAlcycgpPKzq6SvpLOkyKSspMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIiVzOiBlcnJvciByZWFkaW5nIGlucHV0IGZpbGUgYCVzJzogJXNcbiIKI34gbXNnc3RyICIiCiN+ICJcbiIKI34gIiVzOiDG/s7PpdWloaWkpesgYCVzJyCk8sbJpN+5/qTfw+aky6WopemhvDogJXNcbiIKCiN+IG1zZ2lkICIlczogY2FuJ3QgY3JlYXRlL29wZW4gY2xlYW4gZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiCkraTspKSkyqXVpaGlpKXrIGAlcycgpPK67sCuL6Wqobyl16XzpMekraTepLuk8zogJXNcbiIKCiN+IG1zZ2lkICIlczogd2FybmluZzogZmlsZSBgJXMnIGFscmVhZHkgc2F2ZWQgaW4gYCVzJ1xuIgojfiBtc2dzdHIgIiVzOiC32bnwOiCl1aWhpaSl6yBgJXMnIKTPtPukyyBgJXMnIKTLyt3CuKS1pOykxqSkpN6kuVxuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBsaW5rIGZpbGUgYCVzJyB0byBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiCl1aWhpaSl6yBgJXMnIKTyIGAlcycgpMul6qXzpa+kx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBjcmVhdGUvb3BlbiBvdXRwdXQgZmlsZSBgJXMnOiAlc1xuIgojfiBtc2dzdHIgIiVzOiC90M7PpdWloaWkpesgYCVzJyCk8rruwK6kt6S/pOqzq6SkpL+k6qS5pOuks6TIpKykx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW4ndCBjaGFuZ2UgbW9kZSBvZiBmaWxlIGAlcyc6ICVzXG4iCiN+IG1zZ3N0ciAiJXM6IKXVpaGlpKXrIGAlcycgpM6l4qG8pcmk8srRubmkx6StpN6ku6TzOiAlc1xuIgoKI34gbXNnaWQgIiVzOiBjYW5ub3QgZ2V0IHdvcmtpbmcgZGlyZWN0b3J5OiAlc1xuIgojfiBtc2dzdHIgIiVzOiC67rbIpcelo6Xspa+lyKXqpKzKrKSrpOqk3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiJXM6IGlucHV0IGZpbGUgbmFtZXMgbXVzdCBoYXZlIC5jIHN1ZmZpeGVzOiAlc1xuIgojfiBtc2dzdHIgIiVzOiDG/s7PpdWloaWkpevMvqTLpM+zyMSlu9IgLmMgpKykyqSxpOyk0KSkpLGk3qS7pPM6ICVzXG4iCgojfiBtc2dpZCAiY29udmVyc2lvbiBmcm9tIE5hTiB0byBpbnQiCiN+IG1zZ3N0ciAiTmFOIKSrpOnAsL/0pNikzsrRtLmkx6S5IgoKI34gbXNnaWQgImZsb2F0aW5nIHBvaW50IG92ZXJmbG93IgojfiBtc2dzdHIgIsnixrC+rr/0xcCkrKWqobyl0KG8pdWl7aG8pLek3qS3pL8iCgojfiBtc2dpZCAib3ZlcmZsb3cgb24gdHJ1bmNhdGlvbiB0byBpbnRlZ2VyIgojfiBtc2dzdHIgIsCwv/Sk2KTOwNqk6rXNpOGkx6Wqobyl0KG8pdWl7aG8pKy1r6SzpOqk3qS3pL8iCgojfiBtc2dpZCAib3ZlcmZsb3cgb24gdHJ1bmNhdGlvbiB0byB1bnNpZ25lZCBpbnRlZ2VyIgojfiBtc2dzdHIgIsnkuefMtaS3wLC/9KTYpM7A2qTqtc2k4aTHpaqhvKXQobyl1aXtobykrLWvpLOk6qTepLekvyIKCiN+IG1zZ2lkICIlczogYXJndW1lbnQgZG9tYWluIGVycm9yIgojfiBtc2dzdHIgIiVzOiCw+r/0zs6w6KWopemhvKTHpLkiCgojfiBtc2dpZCAiJXM6IGZ1bmN0aW9uIHNpbmd1bGFyaXR5IgojfiBtc2dzdHIgIiVzOiC02L/0pM7DsbDswK0iCgojfiBtc2dpZCAiJXM6IG92ZXJmbG93IHJhbmdlIGVycm9yIgojfiBtc2dzdHIgIiVzOiClqqG8pdChvKXVpe2hvMjPsM+lqKXpobwiCgojfiBtc2dpZCAiJXM6IHVuZGVyZmxvdyByYW5nZSBlcnJvciIKI34gbXNnc3RyICIlczogpaKl86XAobyl1aXtobzIz7DPpail6aG8IgoKI34gbXNnaWQgIiVzOiB0b3RhbCBsb3NzIG9mIHByZWNpc2lvbiIKI34gbXNnc3RyICIlczogwbTCzsWqpMrAusXZpM7E47K8IgoKI34gbXNnaWQgIiVzOiBwYXJ0aWFsIGxvc3Mgb2YgcHJlY2lzaW9uIgojfiBtc2dzdHIgIiVzOiDJ9MqsxaqkysC6xdmkzsTjsrwiCgojfiBtc2dpZCAiJXM6IE5hTiAtIHByb2R1Y2luZyBvcGVyYXRpb24iCiN+IG1zZ3N0ciAiJXM6IE5hTiAtIMHguu6k8sC4pLik3qS5IgoKI34gbXNnaWQgIk91dHB1dCBjb25zdHJhaW50ICVkIG11c3Qgc3BlY2lmeSBhIHNpbmdsZSByZWdpc3RlciIKI34gbXNnc3RyICK90M7PwKnM8yAlZCCkz7DspMSkzqXspbiluaW/pPK72MTqpLekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiT3V0cHV0IHJlZ3MgbXVzdCBiZSBncm91cGVkIGF0IHRvcCBvZiBzdGFjayIKI34gbXNnc3RyICK90M7PpeyluKW5pb+kz6W5pb+lw6WvpM6lyKXDpdeky6WwpeuhvKXXpLWk7KTGpKSkyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiSW1wbGljaXRseSBwb3BwZWQgcmVncyBtdXN0IGJlIGdyb3VwZWQgYXQgdG9wIG9mIHN0YWNrIgojfiBtc2dzdHIgIrDFzNukyyBwb3AgpLWk7KTrpeyluKW5pb+kz6W5pb+lw6WvpM6lyKXDpdeky6WwpeuhvKXXpLWk7KTGpKSkyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiT3V0cHV0IG9wZXJhbmQgJWQgbXVzdCB1c2UgYCYnIGNvbnN0cmFpbnQiCiN+IG1zZ3N0ciAivdDOz6Wqpdql6aXzpckgJWQgpM8gYCYnIMCpzPOk8rvIpO+kyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiY2FuJ3QgdXNlICclcycgYXMgYSAlcyByZWdpc3RlciIKI34gbXNnc3RyICInJXMnIKTyICVzIKTOpeyluKW5pb+kyKS3pMa7yKSmpLOkyKSspMekraTepLuk8yIKCiN+IG1zZ2lkICJnbG9iYWwgcmVnaXN0ZXIgdmFyaWFibGUgZm9sbG93cyBhIGZ1bmN0aW9uIGRlZmluaXRpb24iCiN+IG1zZ3N0ciAiwuew6CByZWdpc3RlciDK0b/0pKy02L/0xOq1waTOuOWk7aTLpKKk6qTepLkiCgojfiBtc2dpZCAicmVnaXN0ZXIgdXNlZCBmb3IgdHdvIGdsb2JhbCByZWdpc3RlciB2YXJpYWJsZXMiCiN+IG1zZ3N0ciAipeyluKW5pb+krMbzpMSkzqWwpe2hvKXQpeul7KW4pbmlv8rRv/SkyKS3pMa7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiY2FsbC1jbG9iYmVyZWQgcmVnaXN0ZXIgdXNlZCBmb3IgZ2xvYmFsIHJlZ2lzdGVyIHZhcmlhYmxlIgojfiBtc2dzdHIgIrjGpNO90KS3pMfHy7L1pLWk7KTrpeyluKW5pb+krKWwpe2hvKXQpeul7KW4pbmlv8rRv/SkyKS3pMa7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAiY2Fubm90IHJlbG9hZCBpbnRlZ2VyIGNvbnN0YW50IG9wZXJhbmQgaW4gYGFzbSciCiN+IG1zZ3N0ciAiwLC/9MTqv/SlqqXapeml86XJpPIgYGFzbScgxuKkx7rGpe2hvKXJpMekraTepLuk8yIKCiN+IG1zZ2lkICJpbXBvc3NpYmxlIHJlZ2lzdGVyIGNvbnN0cmFpbnQgaW4gYGFzbSciCiN+IG1zZ3N0ciAiYGFzbScgxuKkx6TPpeyluKW5pb/AqczzpPK51KTKpKik3qS7pPMiCgojfiBtc2dpZCAiYCYnIGNvbnN0cmFpbnQgdXNlZCB3aXRoIG5vIHJlZ2lzdGVyIGNsYXNzIgojfiBtc2dzdHIgImAmJyDAqczzpKyl7KW4pbmlv6Wvpemlucy1pLekx7vIpO+k7KTepLekvyIKCiN+IG1zZ2lkICJpbmNvbnNpc3RlbnQgb3BlcmFuZCBjb25zdHJhaW50cyBpbiBhbiBgYXNtJyIKI34gbXNnc3RyICJgYXNtJyDG4qTHpM6lqqXapeml86XJwKnM86SszLe94qS3pMakpKTepLkiCgojfiBtc2dpZCAiZnJhbWUgc2l6ZSB0b28gbGFyZ2UgZm9yIHJlbGlhYmxlIHN0YWNrIGNoZWNraW5nIgojfiBtc2dzdHIgIqXVpeyhvKXgpbWlpKW6pKzC56StpLmkrqTGoaKluaW/pcOlr7ihurqkrL+uzeqkx6StpMqkr6TKpOqk3qS5IgoKI34gbXNnaWQgInRyeSByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIGxvY2FsIHZhcmlhYmxlcyIKI34gbXNnc3RyICKl7aG8paul68rRv/Skzr/0pPK677i6pLekxqTfpMakr6TApLWkpCIKCiN+IG1zZ2lkICJDYW4ndCBmaW5kIGEgcmVnaXN0ZXIgaW4gY2xhc3MgYCVzJyB3aGlsZSByZWxvYWRpbmcgYGFzbScuIgojfiBtc2dzdHIgIqWvpemluSBgJXMnIMbipM6l7KW4pbmlv6TyIGBhc20nILrGpe2hvKXJw+aky7irpMSksaTppOyk3qS7pPMiCgojfiBtc2dpZCAiVW5hYmxlIHRvIGZpbmQgYSByZWdpc3RlciB0byBzcGlsbCBpbiBjbGFzcyBgJXMnLiIKI34gbXNnc3RyICKlr6XppbkgYCVzJyDG4qTHpNWk66Skze6kyKS5peyluKW5pb+k8rirpMSksaTppOyk3qS7pPMiCgojfiBtc2dpZCAiYGFzbScgb3BlcmFuZCByZXF1aXJlcyBpbXBvc3NpYmxlIHJlbG9hZCIKI34gbXNnc3RyICJgYXNtJyClqqXapeml86XJpM+6xqXtobylyaTHpK2kyqSku/akrM3XteGktaTspN6kuSIKCiN+IG1zZ2lkICJgYXNtJyBvcGVyYW5kIGNvbnN0cmFpbnQgaW5jb21wYXRpYmxlIHdpdGggb3BlcmFuZCBzaXplIgojfiBtc2dzdHIgImBhc20nIKWqpdql6aXzpcnAqczzpKylqqXapeml86XJpbWlpKW6pMjAsLnnpLek3qS7pPMiCgojfiBtc2dpZCAib3V0cHV0IG9wZXJhbmQgaXMgY29uc3RhbnQgaW4gYGFzbSciCiN+IG1zZ3N0ciAivdDOz6Wqpdql6aXzpcmkrCBgYXNtJyDG4qTHxOq/9KTHpLkiCgojfiBtc2dpZCAiUlRMIGNoZWNrOiBhY2Nlc3Mgb2YgZWx0ICVkIG9mIGAlcycgd2l0aCBsYXN0IGVsdCAlZCBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiUlRMILihuro6IGVsdCAlZCglcykgpKy6x7jlpM4gZWx0ICVkKCVzIMPmKSCkyLDsve+ky6Wipa+lu6W5pLek3qS5ICglczolZCkiCgojfiBtc2dpZCAiUlRMIGNoZWNrOiBleHBlY3RlZCBlbHQgJWQgdHlwZSAnJWMnLCBoYXZlICclYycgKHJ0eCAlcykgaW4gJXMsIGF0ICVzOiVkIgojfiBtc2dzdHIgIlJUTCC4obq6OiBlbHQgJWQgt7+kzyAnJWMnIKTOpM+kuqTKpM6kyyAnJWMnIChydHggJXMsICVzIMPmKaTHpLkgKCVzOiVkKSIKCiN+IG1zZ2lkICJSVEwgY2hlY2s6IGV4cGVjdGVkIGVsdCAlZCB0eXBlICclYycgb3IgJyVjJywgaGF2ZSAnJWMnIChydHggJXMpIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJSVEwguKG6ujogZWx0ICVkILe/pM8gJyVjJyCkqyAnJWMnIKTOpM+kuqTKpM6kyyAnJWMnIChydHggJXMsICVzIMPmKSCkx6S5ICglczolZCkiCgojfiBtc2dpZCAiUlRMIGNoZWNrOiBleHBlY3RlZCBjb2RlIGAlcycsIGhhdmUgYCVzJyBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiUlRMILihuro6IKWzobylySBgJXMnIKTOpM+kuqTKpM6kyyBgJXMnICglcyDD5imkx6S5ICglczolZCkiCgojfiBtc2dpZCAiUlRMIGNoZWNrOiBleHBlY3RlZCBjb2RlIGAlcycgb3IgYCVzJywgaGF2ZSBgJXMnIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJSVEwguKG6ujogpbOhvKXJIGAlcycgpKsgYCVzJyCkzqTPpLqkyqTOpMsgYCVzJyAoJXMgw+YppMekuSAoJXM6JWQpIgoKI34gbXNnaWQgIlJUTCBjaGVjazogYWNjZXNzIG9mIGVsdCAlZCBvZiB2ZWN0b3Igd2l0aCBsYXN0IGVsdCAlZCBpbiAlcywgYXQgJXM6JWQiCiN+IG1zZ3N0ciAiUlRMIGNoZWNrOiCl2aWvpcil66TOIGVsdCAlZCCk8rrHuOWkziBlbHQgJWQgKCVzIMPmKaTIsOy976TLpaKlr6W7pbmkt6TepLkgKCVzOiVkKSIKCiN+IG1zZ2lkICJqdW1wIHRvIGAlcycgaW52YWxpZGx5IGp1bXBzIGludG8gYmluZGluZyBjb250b3VyIgojfiBtc2dzdHIgImAlcycgpNikzqW4peOl86XXpM/Fu6ThpOmk7KS/pdal7aXDpa/G4qTYoaLMtbj6pMuluKXjpfOl16S3pMakpKTepLkiCgojfiBtc2dpZCAibGFiZWwgYCVzJyB1c2VkIGJlZm9yZSBjb250YWluaW5nIGJpbmRpbmcgY29udG91ciIKI34gbXNnc3RyICKl6aXZpesgYCVzJyCkrMW7pOGk6aTspL+l1qXtpcOlr6Tyub3ArqS5pOvBsKTLu8ik76TspN6kt6S/IgoKI34gbXNnaWQgImBhc20nIGNhbm5vdCBiZSB1c2VkIGluIGZ1bmN0aW9uIHdoZXJlIG1lbW9yeSB1c2FnZSBpcyBjaGVja2VkIgojfiBtc2dzdHIgImBhc20nIKTPtNi/9KTHpeGl4qXqzfjN0aTyxLSk2aTrveqkx6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJgYXNtJyBjYW5ub3QgYmUgdXNlZCB3aXRoIGAtZmNoZWNrLW1lbW9yeS11c2FnZSciCiN+IG1zZ3N0ciAiYGFzbScgpM8gYC1mY2hlY2stbWVtb3J5LXVzYWdlJyCkyLDsve+ky7vIpKik3qS7pPMiCgojfiBtc2dpZCAidW5rbm93biByZWdpc3RlciBuYW1lIGAlcycgaW4gYGFzbSciCiN+IG1zZ3N0ciAiYGFzbScgw+aky8nUzMCkyqXspbiluaW/zL4gYCVzJyCkrKSipOqk3qS5IgoKI34gbXNnaWQgIm9wZXJhbmQgY29uc3RyYWludHMgZm9yIGBhc20nIGRpZmZlciBpbiBudW1iZXIgb2YgYWx0ZXJuYXRpdmVzIgojfiBtc2dzdHIgImBhc20nIKTOpaql2qXppfOlycCpzPOkrMLlwtjI1rnmpMikz7DbpMqk6qTepLkiCgojfiBtc2dpZCAib3V0cHV0IG9wZXJhbmQgY29uc3RyYWludCBsYWNrcyBgPSciCiN+IG1zZ3N0ciAivdDOz6Wqpdql6aXzpcnAqczzpMsgYD0nIKSst+eksaTGpKSk3qS5IgoKI34gbXNnaWQgIm91dHB1dCBjb25zdHJhaW50IGAlYycgZm9yIG9wZXJhbmQgJWQgaXMgbm90IGF0IHRoZSBiZWdpbm5pbmciCiN+IG1zZ3N0ciAivdDOz8CpzPMgYCVjJyAob3BlcmFuZCAlZCDN0SkgpKyzq7vPyfTKrKTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJvdXRwdXQgb3BlcmFuZCBjb25zdHJhaW50ICVkIGNvbnRhaW5zIGArJyIKI34gbXNnc3RyICK90M7Ppaql2qXppfOlycCpzPMgJWQgpM8gYCsnIKTytN6k86THpKSk3qS5IgoKI34gbXNnaWQgIm9wZXJhbmQgY29uc3RyYWludCBjb250YWlucyAnKycgb3IgJz0nIGF0IGlsbGVnYWwgcG9zaXRpb24uIgojfiBtc2dzdHIgIqWqpdql6aXzpcnAqczzw+ahosnUwLWkyrDMw9akyyAnKycgpOQgJz0nIKSstN6k3qTspMakpKTepLkiCgojfiBtc2dpZCAiYCUlJyBjb25zdHJhaW50IHVzZWQgd2l0aCBsYXN0IG9wZXJhbmQiCiN+IG1zZ3N0ciAiYCUlJyDAqczzpKy6x7jlpM6lqqXapeml86XJpMikyKTipMu7yKTvpOyk3qS3pL8iCgojfiBtc2dpZCAibWF0Y2hpbmcgY29uc3RyYWludCBub3QgdmFsaWQgaW4gb3V0cHV0IG9wZXJhbmQiCiN+IG1zZ3N0ciAivdDOz6Wqpdql6aXzpcnG4qTOwKnM86SswLWkt6SvpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJvdXRwdXQgbnVtYmVyICVkIG5vdCBkaXJlY3RseSBhZGRyZXNzYWJsZSIKI34gbXNnc3RyICK90M7PyNa55iAlZCCkz8S+wNyloqXJpeylubvYxOqkx6StpN6ku6TzIgoKI34gbXNnaWQgIm1vcmUgdGhhbiAlZCBvcGVyYW5kcyBpbiBgYXNtJyIKI34gbXNnc3RyICJgYXNtJyCkzsPmpMsgJWQgpPKx26SopOulqqXapeml86XJpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJoYXJkIHJlZ2lzdGVyIGAlcycgbGlzdGVkIGFzIGlucHV0IG9wZXJhbmQgdG8gYGFzbSciCiN+IG1zZ3N0ciAipc+hvKXJpeyluKW5pb8gYCVzJyCkrCBgYXNtJyCky8LQpLehosb+zs+lqqXapeml86XJpMikt6TGxdDPv6S1pOyk3qS3pL8iCgojfiBtc2dpZCAiaW5wdXQgb3BlcmFuZCBjb25zdHJhaW50IGNvbnRhaW5zIGAlYyciCiN+IG1zZ3N0ciAixv7Oz6Wqpdql6aXzpcnAqczzpKwgYCVjJyCk8rTepPOkx6SkpN6kuSIKCiN+IG1zZ2lkICJtYXRjaGluZyBjb25zdHJhaW50IHJlZmVyZW5jZXMgaW52YWxpZCBvcGVyYW5kIG51bWJlciIKI34gbXNnc3RyICLAqczzpMvFrLnnpLWku6Tru/6ky6GizLW4+qTKpaql2qXppfOlycjWueak8ruyvsikt6TepLekvyIKCiN+IG1zZ2lkICJhc20gb3BlcmFuZCAlZCBwcm9iYWJseSBkb2Vzbid0IG1hdGNoIGNvbnN0cmFpbnRzIgojfiBtc2dzdHIgImFzbSClqqXapeml86XJICVkIKTPtrKk6aSvwKnM86TLxay556S3pN6ku6TzIgoKI34gbXNnaWQgInVudXNlZCB2YXJpYWJsZSBgJXMnIgojfiBtc2dzdHIgIsrRv/QgYCVzJyCkz7vIpO+k7KTepLuk86THpLekvyIKCiN+IG1zZ2lkICJlbnVtZXJhdGlvbiB2YWx1ZSBgJXMnIG5vdCBoYW5kbGVkIGluIHN3aXRjaCIKI34gbXNnc3RyICLO87Xzw80gYCVzJyCkzyBzd2l0Y2ggxuKkx7C3pO+k7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiY2FzZSB2YWx1ZSBgJWxkJyBub3QgaW4gZW51bWVyYXRlZCB0eXBlIgojfiBtc2dzdHIgImNhc2Ugw80gYCVsZCcgpM/O87Xzt7+ky6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJjYXNlIHZhbHVlIGAlbGQnIG5vdCBpbiBlbnVtZXJhdGVkIHR5cGUgYCVzJyIKI34gbXNnc3RyICJjYXNlIMPNIGAlbGQnIKTPzvO187e/IGAlcycgpMukz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidHlwZSBzaXplIGNhbid0IGJlIGV4cGxpY2l0bHkgZXZhbHVhdGVkIgojfiBtc2dzdHIgIre/pM7C56StpLWkz8zAvKjFqqTLyb6ywaS1pOyk66TipM6kx6TPpKKk6qSopN6ku6TzIgoKI34gbXNnaWQgInZhcmlhYmxlLXNpemUgdHlwZSBkZWNsYXJlZCBvdXRzaWRlIG9mIGFueSBmdW5jdGlvbiIKI34gbXNnc3RyICLK0b/0pbWlpKW6t7+krLTYv/SkzrOwwqakx8DruMCktaTspN6kt6S/IgoKI34gbXNnaWQgInNpemUgb2YgYCVzJyBpcyAlZCBieXRlcyIKI34gbXNnc3RyICJgJXMnIKTOpbWlpKW6pKwgJWQgpdClpKXIpMekuSIKCiN+IG1zZ2lkICJzaXplIG9mIGAlcycgaXMgbGFyZ2VyIHRoYW4gJWQgYnl0ZXMiCiN+IG1zZ3N0ciAiYCVzJyCkzqW1paSluqSsICVkIKXQpaSlyKTopOrC56StpK+kyqTDpMakpKTepLkiCgojfiBtc2dpZCAicGFja2VkIGF0dHJpYnV0ZSBjYXVzZXMgaW5lZmZpY2llbnQgYWxpZ25tZW50IGZvciBgJXMnIgojfiBtc2dzdHIgInBhY2tlZCDCsMCtpM8gYCVzJyCky8LQpLekxsnUuPrOqKTKpaKl6aWkpfOl4aXzpcik8rD6pK21r6SzpLek3qS5IgoKI34gbXNnaWQgInBhY2tlZCBhdHRyaWJ1dGUgaXMgdW5uZWNlc3NhcnkgZm9yIGAlcyciCiN+IG1zZ3N0ciAicGFja2VkIMKwwK2kzyBgJXMnIKTLpM/JrM3XpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJwYWRkaW5nIHN0cnVjdCB0byBhbGlnbiBgJXMnIgojfiBtc2dzdHIgImAlcycgpPKloqXppaSl86S5pOukv6ThpMu5vcKkws6k8qXRpcelo6XzpbCkt6TepLkiCgojfiBtc2dpZCAicGFkZGluZyBzdHJ1Y3Qgc2l6ZSB0byBhbGlnbm1lbnQgYm91bmRhcnkiCiN+IG1zZ3N0ciAipaKl6aWkpfOl4aXzpci2rbOmpM6ltaWkpbqky7m9wqTCzqTypdGlx6WjpfOlsKS3pN6kuSIKCiN+IG1zZ2lkICJwYWNrZWQgYXR0cmlidXRlIGNhdXNlcyBpbmVmZmljaWVudCBhbGlnbm1lbnQiCiN+IG1zZ3N0ciAicGFja2VkIMKwwK2kz8nUuPrOqKTKpaKl6aWkpfOl4aXzpcik8rD6pK21r6SzpLek3qS5IgoKI34gbXNnaWQgInBhY2tlZCBhdHRyaWJ1dGUgaXMgdW5uZWNlc3NhcnkiCiN+IG1zZ3N0ciAicGFja2VkIMKwwK2kz8mszdekoqTqpN6ku6TzIgoKI34gbXNnaWQgIlwiJXNcIiBhbmQgXCIlc1wiIGlkZW50aWNhbCBpbiBmaXJzdCAlZCBjaGFyYWN0ZXJzIgojfiBtc2dzdHIgIlwiJXNcIiCkyCBcIiVzXCIgpM+6x73ppM4gJWQgyri7+qSswbSkr8axpLikx6S5IgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiRXhlY3V0aW9uIHRpbWVzIChzZWNvbmRzKVxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAivMK51LLzv/QgICjJwylcbiIKCiN+IG1zZ2lkICIgVE9UQUwgICAgICAgICAgICAgICAgIDoiCiN+IG1zZ3N0ciAiILnnt9cgICAgICAgICAgICAgICAgICA6IgoKI34gbXNnaWQgInRpbWUgaW4gJXM6ICVsZC4lMDZsZCAoJWxkJSUpXG4iCiN+IG1zZ3N0ciAiJXMgpMekzrv+tNY6ICVsZC4lMDZsZCAoJWxkJSUpXG4iCgojfiBtc2dpZCAiY29sbGVjdDogcmVhZGluZyAlc1xuIgojfiBtc2dzdHIgImNvbGxlY3Q6ICVzIKTyxsmk37n+pN+k3qS5XG4iCgojfiBtc2dpZCAiY29sbGVjdDogcmVjb21waWxpbmcgJXNcbiIKI34gbXNnc3RyICJjb2xsZWN0OiAlcyCk8rrGpbOl86XRpaSl66S3pN6kuVxuIgoKI34gbXNnaWQgImNvbGxlY3Q6IHR3ZWFraW5nICVzIGluICVzXG4iCiN+IG1zZ3N0ciAiY29sbGVjdDogJXMgpPKw+qTDxKWk6qTepLkoJXMgxuIpXG4iCgojfiBtc2dpZCAiY29sbGVjdDogcmVsaW5raW5nXG4iCiN+IG1zZ3N0ciAiY29sbGVjdDogusal6qXzpa+kt6TepLlcbiIKCiN+IG1zZ2lkICJsZCByZXR1cm5lZCAlZCBleGl0IHN0YXR1cyIKI34gbXNnc3RyICJsZCCkz6W5pcahvKW/pbkgJWQgpMe9qs67pLek3qS3pL8iCgojfiBtc2dpZCAiR2VuZXJhdGUgZGVidWdnaW5nIGluZm8gaW4gZGVmYXVsdCBmb3JtYXQiCiN+IG1zZ3N0ciAipcel1aWppeulyLfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgZGVidWdnaW5nIGluZm8gaW4gZGVmYXVsdCBleHRlbmRlZCBmb3JtYXQiCiN+IG1zZ3N0ciAipcel1aWppeulyLPIxKW3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIFNUQUJTIGZvcm1hdCBkZWJ1ZyBpbmZvIgojfiBtc2dzdHIgIlNUQUJTILfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgZXh0ZW5kZWQgU1RBQlMgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAis8jEpSBTVEFCUyC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIERXQVJGLTEgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAiRFdBUkYtMSC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGV4dGVuZGVkIERXQVJGLTEgZm9ybWF0IGRlYnVnIGluZm8iCiN+IG1zZ3N0ciAis8jEpSBEV0FSRi0xILfBvLCkzqXHpdClw6WwvvDK86TywLjArqS5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgRFdBUkYtMiBkZWJ1ZyBpbmZvIgojfiBtc2dzdHIgIkRXQVJGLTIgt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBYQ09GRiBmb3JtYXQgZGVidWcgaW5mbyIKI34gbXNnc3RyICJYQ09GRiC3wbywpM6lx6XQpcOlsL7wyvOk8sC4wK6kuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGV4dGVuZGVkIFhDT0ZGIGZvcm1hdCBkZWJ1ZyBpbmZvIgojfiBtc2dzdHIgIrPIxKUgWENPRkYgt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBDT0ZGIGZvcm1hdCBkZWJ1ZyBpbmZvIgojfiBtc2dzdHIgIkNPRkYgt8G8sKTOpcel0KXDpbC+8MrzpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJEbyBub3Qgc3RvcmUgZmxvYXRzIGluIHJlZ2lzdGVycyIKI34gbXNnc3RyICKl7KW4pbmlv6TLyeLGsL6uv/Sk8rPKx7ykt6TKpKQiCgojfiBtc2dpZCAiQ29uc2lkZXIgYWxsIG1lbSByZWZzIHRocm91Z2ggcG9pbnRlcnMgYXMgdm9sYXRpbGUiCiN+IG1zZ3N0ciAipd2lpKXzpb+30M2zpM6l4aXipeq7sr7IpPLBtKTGIHZvbGF0aWxlIKTIpN+kyqS5IgoKI34gbXNnaWQgIkNvbnNpZGVyIGFsbCBtZW0gcmVmcyB0byBnbG9iYWwgZGF0YSB0byBiZSB2b2xhdGlsZSIKI34gbXNnc3RyICLC57DopcehvKW/pNikzqXhpeKl6ruyvsik8sG0pMYgdm9sYXRpbGUgpMik36TKpLkiCgojfiBtc2dpZCAiQ29uc2lkZXIgYWxsIG1lbSByZWZzIHRvIHN0YXRpYyBkYXRhIHRvIGJlIHZvbGF0aWxlIgojfiBtc2dzdHIgIsDFxaqlx6G8pb+k2KTOpeGl4qXqu7K+yKTywbSkxiB2b2xhdGlsZSCkyKTfpMqkuSIKCiN+IG1zZ2lkICJEZWZlciBwb3BwaW5nIGZ1bmN0aW9ucyBhcmdzIGZyb20gc3RhY2sgdW50aWwgbGF0ZXIiCiN+IG1zZ3N0ciAitNi/9LD6v/Sk8qW5pb+lw6WvpKuk6SBwb3AgpLmk66TOpPK4xqTTvdCkt7jlpN6kx8PZpOmku6TrIgoKI34gbXNnaWQgIldoZW4gcG9zc2libGUgZG8gbm90IGdlbmVyYXRlIHN0YWNrIGZyYW1lcyIKI34gbXNnc3RyICKyxMe9pMq+7LnnoaKluaW/pcOlr6XVpeyhvKXgpPLAuMCupLekyqSkIgoKI34gbXNnaWQgIk9wdGltaXplIHNpYmxpbmcgYW5kIHRhaWwgcmVjdXJzaXZlIGNhbGxzIgojfiBtc2dzdHIgInNpYmxpbmcguMak073QpLek5Mv2yPi6xrWiuMak073QpLek8rrHxayyvaS5pOsiCgojfiBtc2dpZCAiV2hlbiBydW5uaW5nIENTRSwgZm9sbG93IGp1bXBzIHRvIHRoZWlyIHRhcmdldHMiCiN+IG1zZ3N0ciAiQ1NFIKTHxrC67qS5pOukyKStoaKkvaTspOmkzqW/obylsqXDpcik2KTOpbil46Xzpdeky8TJv++kuaTrIgoKI34gbXNnaWQgIldoZW4gcnVubmluZyBDU0UsIGZvbGxvdyBjb25kaXRpb25hbCBqdW1wcyIKI34gbXNnc3RyICJDU0UgpMfGsLrupLmk66TIpK2hor7yt++luKXjpfOl16TLxMm/76S5pOsiCgojfiBtc2dpZCAiUGVyZm9ybSBhIG51bWJlciBvZiBtaW5vciwgZXhwZW5zaXZlIG9wdGltaXNhdGlvbnMiCiN+IG1zZ3N0ciAizNzOqaS/pMqkpKGipbOluaXIpM6kq6SrpOu6x8Wssr2k8rnUpMqkpiIKCiN+IG1zZ2lkICJQZXJmb3JtIGp1bXAgdGhyZWFkaW5nIG9wdGltaXNhdGlvbnMiCiN+IG1zZ3N0ciAipbil46XzpdfKrLT0usfFrLK9pPK51KTKpKYiCgojfiBtc2dpZCAiUGVyZm9ybSBzdHJlbmd0aCByZWR1Y3Rpb24gb3B0aW1pc2F0aW9ucyIKI34gbXNnc3RyICK2r8XZuu+4urrHxayyvaTyudSkyqSmIgoKI34gbXNnaWQgIlBlcmZvcm0gbG9vcCB1bnJvbGxpbmcgd2hlbiBpdGVyYXRpb24gY291bnQgaXMga25vd24iCiN+IG1zZ3N0ciAiyL/J/LLzv/SkrLT7w86kzqTIpK2hoqXrobyl18W4s6uk8rnUpMqkpiIKCiN+IG1zZ2lkICJQZXJmb3JtIGxvb3AgdW5yb2xsaW5nIGZvciBhbGwgbG9vcHMiCiN+IG1zZ3N0ciAiwbSkxqTOpeuhvKXXpMel66G8pdfFuLOrpPK51KTKpKYiCgojfiBtc2dpZCAiRm9yY2UgYWxsIGxvb3AgaW52YXJpYW50IGNvbXB1dGF0aW9ucyBvdXQgb2YgbG9vcHMiCiN+IG1zZ3N0ciAipeuhvKXXw+aky8nUytGkyrfXu7uk8qXrobyl16TOs7Cky7DcxrCkuaTrIgoKI34gbXNnaWQgIlN0cmVuZ3RoIHJlZHVjZSBhbGwgbG9vcCBnZW5lcmFsIGluZHVjdGlvbiB2YXJpYWJsZXMiCiN+IG1zZ3N0ciAipeuhvKXXpM7D5qTOwbSkxqTOsOzIzM22xrPK0b/0pPK2r8XZuu+4uqS5pOsiCgojfiBtc2dpZCAiU3RvcmUgc3RyaW5ncyBpbiB3cml0YWJsZSBkYXRhIHNlY3Rpb24iCiN+IG1zZ3N0ciAiyri7+s7zpPK98aStuf6k37LEx72lx6G8pb+lu6Wvpbel56XzpMuzyse8pLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgbWFjaGluZSBzcGVjaWZpYyBwZWVwaG9sZSBvcHRpbWlzYXRpb25zIgojfiBtc2dzdHIgIrWhvO+4x82tpM7HwaStt+q6x8Wssr2k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiQ29weSBtZW1vcnkgb3BlcmFuZHMgaW50byByZWdpc3RlcnMgYmVmb3JlIHVzaW5nIgojfiBtc2dzdHIgIqXhpeKl6qWqpdql6aXzpcmk8s34zdGkuaTrwbCky6XspbiluaW/pNils6XUobykuaTrIgoKI34gbXNnaWQgIkNvcHkgbWVtb3J5IGFkZHJlc3MgY29uc3RhbnRzIGludG8gcmVncyBiZWZvcmUgdXNpbmciCiN+IG1zZ3N0ciAipeGl4qXqpaKlyaXspbnE6r/0pPLN+M3RpLmk68GwpMul7KW4pbmlv6TYpbOl1KG8pLmk6yIKCiN+IG1zZ2lkICJBbGxvdyBmdW5jdGlvbiBhZGRyZXNzZXMgdG8gYmUgaGVsZCBpbiByZWdpc3RlcnMiCiN+IG1zZ3N0ciAitNi/9KWipcml7KW5pPKl7KW4pbmlv6TLu/2kv6S7pOu79qTytfayxKS5pOsiCgojfiBtc2dpZCAiSW50ZWdyYXRlIHNpbXBsZSBmdW5jdGlvbnMgaW50byB0aGVpciBjYWxsZXJzIgojfiBtc2dzdHIgIsOxveOkyrTYv/Sk8rjGpNO90KS3wqaky8X9ueekuaTrIgoKI34gbXNnaWQgIkdlbmVyYXRlIGNvZGUgZm9yIGZ1bmNzIGV2ZW4gaWYgdGhleSBhcmUgZnVsbHkgaW5saW5lZCIKI34gbXNnc3RyICLBtKTGpaSl86XppaSl86TIpLWk7KS/pMikt6TGpOK02L/0pM6ls6G8pcmk8sC4wK6kuaTrIgoKI34gbXNnaWQgIlBheSBhdHRlbnRpb24gdG8gdGhlICdpbmxpbmUnIGtleXdvcmQiCiN+IG1zZ3N0ciAiJ2lubGluZScgpa2hvKXvobylyaTLw+2w1aTyyqekpiIKCiN+IG1zZ2lkICJFbWl0IHN0YXRpYyBjb25zdCB2YXJpYWJsZXMgZXZlbiBpZiB0aGV5IGFyZSBub3QgdXNlZCIKI34gbXNnc3RyICK7yM3RpLWk7KTKpKTAxcWqxOq/9MrRv/Skx6SipMOkxqTivdDOz6S5pOsiCgojfiBtc2dpZCAiQ2hlY2sgZm9yIHN5bnRheCBlcnJvcnMsIHRoZW4gc3RvcCIKI34gbXNnc3RyICLKuMuhpail6aG8pPK4ob3QpLekxqGipL2ks6THxOS736S5pOsiCgojfiBtc2dpZCAiTWFyayBkYXRhIGFzIHNoYXJlZCByYXRoZXIgdGhhbiBwcml2YXRlIgojfiBtc2dzdHIgIqXHobylv6Typdel6aWkpdmhvKXIpMekz6TKpK+2ps2tpLWk7KTrpOikpqXeobylr6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlIHNhdmluZyByZWdpc3RlcnMgYXJvdW5kIGZ1bmN0aW9uIGNhbGxzIgojfiBtc2dzdHIgIrTYv/S4xqTTvdCkt6TOwbC45aTHpeyluKW5pb+kzsrdwrik8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiUmV0dXJuICdzaG9ydCcgYWdncmVnYXRlcyBpbiBtZW1vcnksIG5vdCByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiJ76upLWkyicgvbi558LOpPKl7KW4pbmlv6THpM+kyqSvpeGl4qXqpMuzyse8pLekxsrWpLkiCgojfiBtc2dpZCAiUmV0dXJuICdzaG9ydCcgYWdncmVnYXRlcyBpbiByZWdpc3RlcnMiCiN+IG1zZ3N0ciAiJ76upLWkyicgvbi558LOpPKl7KW4pbmlv6TLs8rHvKS3pMbK1qS5IgoKI34gbXNnaWQgIkF0dGVtcHQgdG8gZmlsbCBkZWxheSBzbG90cyBvZiBicmFuY2ggaW5zdHJ1Y3Rpb25zIgojfiBtc2dzdHIgIsqstPTMv87hpM7D2bHkpbml7aXDpcik8rvIpKaks6TIpPK77qTfpOsiCgojfiBtc2dpZCAiUGVyZm9ybSB0aGUgZ2xvYmFsIGNvbW1vbiBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIgojfiBtc2dzdHIgIqWwpe2hvKXQpeu2psTMyfTKrLywpPK9/LXupLmk6yIKCiN+IG1zZ2lkICJSdW4gQ1NFIHBhc3MgYWZ0ZXIgbG9vcCBvcHRpbWlzYXRpb25zIgojfiBtc2dzdHIgIqXrobyl17rHxayyvbjlpMu2psTMyfTKrLywvfy17rLhxPik8rzCudQiCgojfiBtc2dpZCAiUnVuIHRoZSBsb29wIG9wdGltaXNlciB0d2ljZSIKI34gbXNnc3RyICKl66G8pde6x8Wssr2k8sbzsvO8wrnUpLmk6yIKCiN+IG1zZ2lkICJEZWxldGUgdXNlbGVzcyBudWxsIHBvaW50ZXIgY2hlY2tzIgojfiBtc2dzdHIgIsy1sNXMo6TKIG51bGwgpd2lpKXzpb+4obq6pPK67738pLmk6yIKCiN+IG1zZ2lkICJQcmV0ZW5kIHRoYXQgaG9zdCBhbmQgdGFyZ2V0IHVzZSB0aGUgc2FtZSBGUCBmb3JtYXQiCiN+IG1zZ3N0ciAipduluaXIpMilv6G8pbKlw6XIpKzGsaS4yeLGsL6uv/S3wbywpPK7yKSmv7ak68nxpKSk8qS1pLuk6yIKCiN+IG1zZ2lkICJSZXNjaGVkdWxlIGluc3RydWN0aW9ucyBiZWZvcmUgcmVnaXN0ZXIgYWxsb2NhdGlvbiIKI34gbXNnc3RyICKl7KW4pbmlv7POyt2kzsGwpMvMv87hpPLKwqTZxL6kuSIKCiN+IG1zZ2lkICJSZXNjaGVkdWxlIGluc3RydWN0aW9ucyBhZnRlciByZWdpc3RlciBhbGxvY2F0aW9uIgojfiBtc2dzdHIgIqXspbiluaW/s87K3aTOuOWkx8y/zuGk8srCpNnEvqS5IgoKI34gbXNnaWQgIkVuYWJsZSBzY2hlZHVsaW5nIGFjcm9zcyBiYXNpYyBibG9ja3MiCiN+IG1zZ3N0ciAitPDL3KXWpe2lw6WvpPK42aSwzL/O4cfbw9ak8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiQWxsb3cgc3BlY3VsYXRpdmUgbW90aW9uIG9mIG5vbi1sb2FkcyIKI34gbXNnc3RyICLI86XtobylyaTHpM7J1LPOvMKkysawuu6k8rX2ssSkuaTrIgoKI34gbXNnaWQgIkFsbG93IHNwZWN1bGF0aXZlIG1vdGlvbiBvZiBzb21lIGxvYWRzIgojfiBtc2dzdHIgIqSkpK+kxKSrpM6l7aG8pcmkx6TOydSzzrzCpMrGsLrupPK19rLEpLmk6yIKCiN+IG1zZ2lkICJBbGxvdyBzcGVjdWxhdGl2ZSBtb3Rpb24gb2YgbW9yZSBsb2FkcyIKI34gbXNnc3RyICKk6KTqwr+kr6TOpe2hvKXJpMekzsnUs868wqTKxrC67qTytfayxKS5pOsiCgojfiBtc2dpZCAiUmVwbGFjZSBhZGQsY29tcGFyZSxicmFuY2ggd2l0aCBicmFuY2ggb24gY291bnQgcmVnIgojfiBtc2dzdHIgIrLDu7uhosjms9Ol1qXppfOlwaTOwuWk76TqpMulq6WmpfOlyKXspbiluaW/pM6l1qXppfOlwaTyu8ikpiIKCiN+IG1zZ2lkICJHZW5lcmF0ZSBwb3NpdGlvbiBpbmRlcGVuZGVudCBjb2RlLCBpZiBwb3NzaWJsZSIKI34gbXNnc3RyICKyxMe9pMekoqTspNCwzMPWxsjOqaWzobylyaTywLjArqS5pOsiCgojfiBtc2dpZCAiRW5hYmxlIGV4Y2VwdGlvbiBoYW5kbGluZyIKI34gbXNnc3RyICLO47OwyuHCqqTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJKdXN0IGdlbmVyYXRlIHVud2luZCB0YWJsZXMgZm9yIGV4Y2VwdGlvbiBoYW5kbGluZyIKI34gbXNnc3RyICK0rKStzOGkt6TyudSkyqSmzuOzsMrkwq3N0aXGobyl1qXrpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJTdXBwb3J0IHN5bmNocm9ub3VzIG5vbi1jYWxsIGV4Y2VwdGlvbnMiCiN+IG1zZ3N0ciAixrG0/MjzuMak073QpLfO47OwpPKltaXdobylyKS5pOsiCgojfiBtc2dpZCAiSW5zZXJ0IGFyYyBiYXNlZCBwcm9ncmFtIHByb2ZpbGluZyBjb2RlIgojfiBtc2dzdHIgIqXXpe2lsKXppeCkrKWzobylyaXXpe2l1aWhpaSl66S5pOu4taTLpMqk67jMpPLB3sb+pLmk6yIKCiN+IG1zZ2lkICJDcmVhdGUgZGF0YSBmaWxlcyBuZWVkZWQgYnkgZ2NvdiIKI34gbXNnc3RyICJnY292IKSsyazN16TIpLmk66XHobylv6XVpaGlpKXrpPK67sCupLmk6yIKCiN+IG1zZ2lkICJVc2UgcHJvZmlsaW5nIGluZm9ybWF0aW9uIGZvciBicmFuY2ggcHJvYmFiaWxpdGllcyIKI34gbXNnc3RyICLKrLT0t9DPqb/kwqzN0aTOpdel7aXVpaGlpKXrvvDK86TyzfjN0aS5pOsiCgojfiBtc2dpZCAiUmVvcmRlciBiYXNpYyBibG9ja3MgdG8gaW1wcm92ZSBjb2RlIHBsYWNlbWVudCIKI34gbXNnc3RyICKls6G8pcnH28PWpPKy/sGxpLmk66S/pOGky7Twy9yl1qXtpcOlr6TyusbAsM39pLmk6yIKCiN+IG1zZ2lkICJEbyB0aGUgcmVnaXN0ZXIgcmVuYW1pbmcgb3B0aW1pemF0aW9uIHBhc3MiCiN+IG1zZ3N0ciAiusfFrLK9suHE+KTOpeyluKW5pb+kxKSxytGkqKTyudSkyqSmIgoKI34gbXNnaWQgIkltcHJvdmUgRlAgc3BlZWQgYnkgdmlvbGF0aW5nIEFOU0kgJiBJRUVFIHJ1bGVzIgojfiBtc2dzdHIgIkFOU0kgJiBJRUVFILWswqek8sfLpMOkxsnixrC+rr/0pM7CrsXZpPKy/sGxpLmk6yIKCiN+IG1zZ2lkICJEbyBub3QgcHV0IHVuaXRpYWxpc2VkIGdsb2JhbHMgaW4gdGhlIGNvbW1vbiBzZWN0aW9uIgojfiBtc2dzdHIgIsLnsOjK0b/0xfmk8r3ptPyyvaS1pOykyqSkpbOl4qXzpbulr6W3peel86TLw9akq6TKpKQiCgojfiBtc2dpZCAiRG8gbm90IGdlbmVyYXRlIC5zaXplIGRpcmVjdGl2ZXMiCiN+IG1zZ3N0ciAiLnNpemUgtb+798y/zuGk8sC4wK6kt6TKpKQiCgojfiBtc2dpZCAicGxhY2UgZWFjaCBmdW5jdGlvbiBpbnRvIGl0cyBvd24gc2VjdGlvbiIKI34gbXNnc3RyICKzxqG5pM602L/0pPKkvaTsvKu/yKTOpbulr6W3peel86TLx9vD1qS5pOsiCgojfiBtc2dpZCAicGxhY2UgZGF0YSBpdGVtcyBpbnRvIHRoZWlyIG93biBzZWN0aW9uIgojfiBtc2dzdHIgIqXHobylv7ngzNyk8qS9pOyk6byrv8ikzqW7pa+lt6XnpfOky8fbw9akuaTrIgoKI34gbXNnaWQgIkFkZCBleHRyYSBjb21tZW50cnkgdG8gYXNzZW1ibGVyIG91dHB1dCIKI34gbXNnc3RyICLNvsqspMqls6XhpfOlyKTypaKlu6Xzpdal6b3Qzs+ky8TJssOkuaTrIgoKI34gbXNnaWQgIk91dHB1dCBHTlUgbGQgZm9ybWF0dGVkIGdsb2JhbCBpbml0aWFsaXNlcnMiCiN+IG1zZ3N0ciAiR05VIGxkILfBvLCkzsLnsOi96bT8sr270qTyvdDOz6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlcyBhIHJlZ2lzdGVyIG1vdmUgb3B0aW1pc2F0aW9uIgojfiBtc2dzdHIgIrDcxrDMv87husfFrLK9peyluKW5pb+k8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRG8gdGhlIGZ1bGwgcmVnbW92ZSBvcHRpbWl6YXRpb24gcGFzcyIKI34gbXNnc3RyICK6x8Wssr2y4cT4pMe6x8LnuMKkziByZWdtb3ZlIKTyudSkyqSmIgoKI34gbXNnaWQgIlBhY2sgc3RydWN0dXJlIG1lbWJlcnMgdG9nZXRoZXIgd2l0aG91dCBob2xlcyIKI34gbXNnc3RyICK5vcKkws6l4aXzpdCk8rfqpKyzq6SrpMqkpKTopKaky6XRpcOlr6S5pOsiCgojfiBtc2dpZCAiSW5zZXJ0IHN0YWNrIGNoZWNraW5nIGNvZGUgaW50byB0aGUgcHJvZ3JhbSIKI34gbXNnc3RyICKl16XtpbCl6aXgpMuluaW/pcOlr7ats6a4ob3QpbOhvKXJpPLB3sb+pLmk6yIKCiN+IG1zZ2lkICJTcGVjaWZ5IHRoYXQgYXJndW1lbnRzIG1heSBhbGlhcyBlYWNoIG90aGVyICYgZ2xvYmFscyIKI34gbXNnc3RyICKw+r/0pMjC57DopcehvKW/pOTCvqTOsPq/9KTIyszMvqTLpMqk6qSmpOu79qTyu9jE6qS5pOsiCgojfiBtc2dpZCAiQXNzdW1lIGFyZ3VtZW50cyBtYXkgYWxpYXMgZ2xvYmFscyBidXQgbm90IGVhY2ggb3RoZXIiCiN+IG1zZ3N0ciAisPq/9KTIwuew6KXHobylv6TPyszMvqTLpMqk6qSmpOukrMK+pM6w+r/0pMikz8rMzL6kx6TPpMqkpKTIpN+kyqS5IgoKI34gbXNnaWQgIkFzc3VtZSBhcmd1bWVudHMgZG8gbm90IGFsaWFzIGVhY2ggb3RoZXIgb3IgZ2xvYmFscyIKI34gbXNnc3RyICKw+r/0pKzC57DopcehvKW/pOTCvqTOsPq/9KTIyszMvqTLpM+kyqTppMqkpKTIpN+kyqS5IgoKI34gbXNnaWQgIkFzc3VtZSBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgYXBwbHkiCiN+IG1zZ3N0ciAiuLfMqaTKyszMvrWswqeky8WsueekuaTrpMik36TKpLkiCgojfiBtc2dpZCAiQWxpZ24gdGhlIHN0YXJ0IG9mIGxvb3BzIgojfiBtc2dzdHIgIqXrobyl16TOs6u7z6TypaKl6aWkpfOkuaTrIgoKI34gbXNnaWQgIkFsaWduIGxhYmVscyB3aGljaCBhcmUgb25seSByZWFjaGVkIGJ5IGp1bXBpbmciCiN+IG1zZ3N0ciAipeml2aXrpM6kpqTBpbil46XzpdfF/sOjwOikyKTKpOuk4qTOpMCksaTypaKl6aWkpfOkuaTrIgoKI34gbXNnaWQgIkFsaWduIGFsbCBsYWJlbHMiCiN+IG1zZ3N0ciAiwbSkxqTOpeml2aXrpPKloqXppaSl86S5pOsiCgojfiBtc2dpZCAiQWxpZ24gdGhlIHN0YXJ0IG9mIGZ1bmN0aW9ucyIKI34gbXNnc3RyICK02L/0pM6zq7vPpPKloqXppaSl86S5pOsiCgojfiBtc2dpZCAiR2VuZXJhdGUgY29kZSB0byBjaGVjayBldmVyeSBtZW1vcnkgYWNjZXNzIgojfiBtc2dzdHIgIrPGpeGl4qXqpaKlr6W7pbmk8rihvdCkuaTrpbOhvKXJpPLAuMCupLmk6yIKCiN+IG1zZ2lkICJBZGQgYSBwcmVmaXggdG8gYWxsIGZ1bmN0aW9uIG5hbWVzIgojfiBtc2dzdHIgIsG0pMakzrTYv/TMvqTLwNzGrLytpPLEybLDpLmk6yIKCiN+IG1zZ2lkICJTdXBwcmVzcyBvdXRwdXQgb2YgaW5zdHJ1Y3Rpb24gbnVtYmVycyBhbmQgbGluZSBudW1iZXIgbm90ZXMgaW4gZGVidWdnaW5nIGR1bXBzIgojfiBtc2dzdHIgIqXHpdClw6WwpcCl86XXpMfMv87hyNa55qTIudTI1rnmpc6hvKXIpM690M7PpPLN3sCppLmk6yIKCiN+IG1zZ2lkICJJbnN0cnVtZW50IGZ1bmN0aW9uIGVudHJ5L2V4aXQgd2l0aCBwcm9maWxpbmcgY2FsbHMiCiN+IG1zZ3N0ciAitNi/9KTOxv6k6rj9L73QuP2kx6XXpe2l1aWhpaSl67jGpNO90KS3pPLAuMCupLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgU1NBIG9wdGltaXphdGlvbnMiCiN+IG1zZ3N0ciAiU1NBILrHxayyvaTyza24+qTLpLmk6yIKCiN+IG1zZ2lkICJFbmFibGUgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIgojfiBtc2dzdHIgIqXHpcOlyaWzobylyaTOvfy17qTyudSkyqSmIgoKI34gbXNnaWQgIkV4dGVybmFsIHN5bWJvbHMgaGF2ZSBhIGxlYWRpbmcgdW5kZXJzY29yZSIKI34gbXNnc3RyICKzsMn0pbel86Xcpeuky8asyri7+qWipfOlwKG8pbmls6WipPK7/aS/pLuk6yIKCiN+IG1zZ2lkICJQcm9jZXNzICNpZGVudCBkaXJlY3RpdmVzIgojfiBtc2dzdHIgIiNpZGVudCClx6Wjpeylr6XGpaOl1qTyvejN/aS5pOsiCgojfiBtc2dpZCAiRW5hYmxlcyBhbiBydGwgcGVlcGhvbGUgcGFzcyBydW4gYmVmb3JlIHNjaGVkMiIKI34gbXNnc3RyICLC6MbzzL/O4cfbw9akzsGwpMcgcnRsIMfBpK236rLhxPik8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiRW5hYmxlcyBndWVzc2luZyBvZiBicmFuY2ggcHJvYmFiaWxpdGllcyIKI34gbXNnc3RyICLKrLT0t9DPqb/kwqyk8s2tuPqky6S5pOsiCgojfiBtc2dpZCAiU2V0IGVycm5vIGFmdGVyIGJ1aWx0LWluIG1hdGggZnVuY3Rpb25zIgojfiBtc2dzdHIgIsHIpN+5/qTfv/Sz2LTYv/SkzrjlpMsgZXJybm8gpPKlu6XDpcikuaTrIgoKI34gbXNnaWQgIkNvbnZlcnQgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnQgdG8gc2luZ2xlIHByZWNpc2lvbiBjb25zdGFudCIKI34gbXNnc3RyICLJ4sawvq6/9MXAxOq/9KTyw7HAusXZxOq/9KTLytG0uaS5pOsiCgojfiBtc2dpZCAiUmVwb3J0IHRpbWUgdGFrZW4gYnkgZWFjaCBjb21waWxlciBwYXNzIGF0IGVuZCBvZiBydW4iCiN+IG1zZ3N0ciAivMK51L2qzru7/qTLpbOl86XRpaSl6aTOs8ay4cT4pMvN16S3pL+7/rTWpPLK87nwpLmk6yIKCiN+IG1zZ2lkICJSZXBvcnQgb24gcGVybWFuZW50IG1lbW9yeSBhbGxvY2F0aW9uIGF0IGVuZCBvZiBydW4iCiN+IG1zZ3N0ciAivMK51L2qzru7/qTLscrCs8WqpMuzzsrdpLWk7KS/peGl4qXqpPLK87nwpLmk6yIKCiN+IG1zZ2lkICJUcmFwIGZvciBzaWduZWQgb3ZlcmZsb3cgaW4gYWRkaXRpb24gLyBzdWJ0cmFjdGlvbiAvIG11bHRpcGxpY2F0aW9uLiIKI34gbXNnc3RyICLJ5LnnydWkraTOssO7uy+4uru7L77ou7ukx6TOt+WkoqTVpOyk8qXIpemlw6XXpLmk6yIKCiN+IG1zZ2lkICJDb21waWxlIGp1c3QgZm9yIElTTyBDODkiCiN+IG1zZ3N0ciAiSVNPIEM4OSDN0aTLpbOl86XRpaSl66S5pOsiCgojfiBtc2dpZCAiRG8gbm90IHByb21vdGUgZmxvYXRzIHRvIGRvdWJsZSBpZiB1c2luZyAtdHJhZGl0aW9uYWwiCiN+IG1zZ3N0ciAiLXRyYWRpdGlvbmFsILvIzdG7/qTLpM+hosnixrC+rr/0pMu02KS3IGZsb2F0IKSrpOkgZG91YmxlIKTLs8q+5aSypLekyqSkIgoKI34gbXNnaWQgIkRldGVybWluZSBsYW5ndWFnZSBzdGFuZGFyZCIKI34gbXNnc3RyICK4wLjspM7JuL3gpPK36MTqpLmk6yIKCiN+IG1zZ2lkICJNYWtlIGJpdGZpZWxkcyBieSB1bnNpZ25lZCBieSBkZWZhdWx0IgojfiBtc2dzdHIgIqXTpcOlyKXVpaOhvKXrpcmk8qXHpdWlqaXrpcikx8nkuefMtaS3pMikuaTrIgoKI34gbXNnaWQgIk1ha2UgJ2NoYXInIGJlIHNpZ25lZCBieSBkZWZhdWx0IgojfiBtc2dzdHIgIidjaGFyJyCk8qXHpdWlqaXrpcikx8nkuefJ1aStpMikuaTrIgoKI34gbXNnaWQgIk1ha2UgJ2NoYXInIGJlIHVuc2lnbmVkIGJ5IGRlZmF1bHQiCiN+IG1zZ3N0ciAiJ2NoYXInIKTypcel1aWppeulyKTHyeS558y1pLekyKS5pOsiCgojfiBtc2dpZCAiQXR0ZW1wdCB0byBzdXBwb3J0IHRyYWRpdGlvbmFsIEsmUiBzdHlsZSBDIgojfiBtc2dzdHIgIrjFpKQgSyZSILywpM4gQyCkzqW1pd2hvKXIpPK77qTfpOsiCgojfiBtc2dpZCAiRG8gbm90IHJlY29nbmlzZSB0aGUgJ2FzbScga2V5d29yZCIKI34gbXNnc3RyICInYXNtJyDNvczzuOyk8senvLGktaS7pMqkpCIKCiN+IG1zZ2lkICJEbyBub3QgcmVjb2duaXNlIGFueSBidWlsdCBpbiBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAipKSkr6TEpKukzsHIpN+5/qTftNi/9KTyx6e8saS1pLukyqSkIgoKI34gbXNnaWQgIkFzc3VtZSBub3JtYWwgQyBleGVjdXRpb24gZW52aXJvbm1lbnQiCiN+IG1zZ3N0ciAixMy+76TOIEMgvMK51LTEtq2k8sGwxPOkyKS5pOsiCgojfiBtc2dpZCAiQXNzdW1lIHRoYXQgc3RhbmRhcmQgbGlicmFyaWVzICYgbWFpbiBtaWdodCBub3QgZXhpc3QiCiN+IG1zZ3N0ciAiybi94KXppaSl1qXppeqk5CBtYWluIKSswri636S3pMqkpLLEx73AraSspKKk66TipM6kyKS5pOsiCgojfiBtc2dpZCAiQWxsb3cgZGlmZmVyZW50IHR5cGVzIGFzIGFyZ3Mgb2YgPyBvcGVyYXRvciIKI34gbXNnc3RyICI/ILHpu7u70qTOsPq/9KTIpLekxrDbpMqkw6S/t7+k8rX2zcakuaTrIgoKI34gbXNnaWQgIkFsbG93IHRoZSB1c2Ugb2YgJCBpbnNpZGUgaWRlbnRpZmllcnMiCiN+IG1zZ3N0ciAivLHKzLvSw+akx6TOICQgpM67yM3RpPK19s3GpLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIHNhbWUgc2l6ZSBmb3IgZG91YmxlIGFzIGZvciBmbG9hdCIKI34gbXNnc3RyICJkb3VibGUgpM6ltaWkpbqk8iBmbG9hdCCkyMaxpLikyKS3pMa7yM3RpLmk6yIKCiN+IG1zZ2lkICJVc2UgdGhlIHNtYWxsZXN0IGZpdHRpbmcgaW50ZWdlciB0byBob2xkIGVudW1zIgojfiBtc2dzdHIgIs7ztfO3v6Ssyt27/aTHpK2k67rHvq6kzsCwv/S3v6Tyu8jN0aS5pOsiCgojfiBtc2dpZCAiT3ZlcnJpZGUgdGhlIHVuZGVybHlpbmcgdHlwZSBmb3Igd2NoYXJfdCB0byBgdW5zaWduZWQgc2hvcnQnIgojfiBtc2dzdHIgIndjaGFyX3QgpM66rMvcxaqkyre/pPIgYHVuc2lnbmVkIHNob3J0JyCkyMqkpLkiCgojfiBtc2dpZCAiRW5hYmxlIG1vc3Qgd2FybmluZyBtZXNzYWdlcyIKI34gbXNnc3RyICLL2KTzpMmkzrfZufCl4aXDpbuhvKW4pPLNrbj6pMukuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgY2FzdGluZyBmdW5jdGlvbnMgdG8gaW5jb21wYXRpYmxlIHR5cGVzIgojfiBtc2dzdHIgIre/pMu437S5wK2kzqTKpKS02L/0pM6lraXjpbmlyKTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBmdW5jdGlvbnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBmb3IgZm9ybWF0IGF0dHJpYnV0ZXMiCiN+IG1zZ3N0ciAiZm9ybWF0IMKwwK2k8qTOuPXK5KTIpMqk6qS9pKakyrTYv/Sky6TEpKSkxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgY2FzdHMgd2hpY2ggZGlzY2FyZCBxdWFsaWZpZXJzIgojfiBtc2dzdHIgIr2kvv670qTyvOik6rXupOulraXjpbmlyKTLpMSkpKTGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBzdWJzY3JpcHRzIHdob3NlIHR5cGUgaXMgJ2NoYXInIgojfiBtc2dzdHIgIsW6u/qkzre/pKwgJ2NoYXInIKTHpKKk7KTQt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBpZiBuZXN0ZWQgY29tbWVudHMgYXJlIGRldGVjdGVkIgojfiBtc2dzdHIgIsb+pOy70qTLpMqkw6S/pbOl4aXzpcik8rihvdCkt6S/pMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBwb3NzaWJseSBjb25mdXNpbmcgdHlwZSBjb252ZXJzaW9ucyIKI34gbXNnc3RyICK3v8rRtLmkrLquzfCkuaTrssTHvcCtpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHByaW50Zi9zY2FuZi9zdHJmdGltZS9zdHJmbW9uIGZvcm1hdCBhbm9tYWxpZXMiCiN+IG1zZ3N0ciAicHJpbnRmL3NjYW5mL3N0cmZ0aW1lL3N0cmZtb24gt8G8sKTOytHCp8WqpMqk4qTOpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJEb24ndCB3YXJuIGFib3V0IHN0cmZ0aW1lIGZvcm1hdHMgeWllbGRpbmcgMiBkaWdpdCB5ZWFycyIKI34gbXNnc3RyICJzdHJmdGltZSC3wbywpKzG87flpMfHr6Tyyb2kt6TGpKSk67v+pM632bnwpLekyqSkIgoKI34gbXNnaWQgIkRvbid0IHdhcm4gYWJvdXQgdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZvcm1hdCBmdW5jdGlvbnMiCiN+IG1zZ3N0ciAiZm9ybWF0ILTYv/Sk2KTOwr+kuaSupOuw+r/0pMu02KS5pOu32bnwpLekyqSkIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgbm9uLXN0cmluZy1saXRlcmFsIGZvcm1hdCBzdHJpbmdzIgojfiBtc2dzdHIgIsjzyri7+s7zpeqlxqXppeukziBmb3JtYXQgyri7+s7zpMukxKSkpMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW1zIHdpdGggZm9ybWF0IGZ1bmN0aW9ucyIKI34gbXNnc3RyICKlu6WtpeWl6qXGpaPFqqTKzOTC6qTIpMqk6qSmpOsgZm9ybWF0ILTYv/Sky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgaW1wbGljaXQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIgojfiBtc2dzdHIgIrDFzNukzrTYv/TA67jApMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gYSBkZWNsYXJhdGlvbiBkb2VzIG5vdCBzcGVjaWZ5IGEgdHlwZSIKI34gbXNnc3RyICLA67jApKy3v6Tyu9jE6qS3pMakpKTKpKS+7LnnpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHRoZSB1c2Ugb2YgdGhlICNpbXBvcnQgZGlyZWN0aXZlIgojfiBtc2dzdHIgIiNpbXBvcnQgpcelo6Xspa+lxqWjpdakzs34zdGky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCB3YXJuIGFib3V0IHVzaW5nICdsb25nIGxvbmcnIHdoZW4gLXBlZGFudGljIgojfiBtc2dzdHIgIi1wZWRhbnRpYyC72MTqu/6kx6TiICdsb25nIGxvbmcnIKTOu8jN0aTLpMSkpKTGpM+32bnwpLekyqSkIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgc3VzcGljaW91cyBkZWNsYXJhdGlvbnMgb2YgbWFpbiIKI34gbXNnc3RyICK1v6TvpLekpCBtYWluIKTOwOu4wKTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBwb3NzaWJseSBtaXNzaW5nIGJyYWNlcyBhcm91bmQgaW5pdGlhbGlzZXJzIgojfiBtc2dzdHIgIr3ptPyyvbvSpM68/qTqpMul1qXsobyluaTyt+ekpKTGpKSk683NpMekoqTspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGdsb2JhbCBmdW5jcyB3aXRob3V0IHByZXZpb3VzIGRlY2xhcmF0aW9ucyIKI34gbXNnc3RyICK79sGwpM7A67jApMqkt6TOwuew6LTYv/Sky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgZ2xvYmFsIGZ1bmNzIHdpdGhvdXQgcHJvdG90eXBlcyIKI34gbXNnc3RyICKl16Xtpcilv6WkpdekyqS3pM7C57DotNi/9KTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCB1c2Ugb2YgbXVsdGljaGFyYWN0ZXIgbGl0ZXJhbHMiCiN+IG1zZ3N0ciAiyqO/9Mq4u/ql6qXGpeml66TOu8jN0aTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBleHRlcm5zIG5vdCBhdCBmaWxlIHNjb3BlIGxldmVsIgojfiBtc2dzdHIgIqXVpaGlpKXrpbmls6G8pdel7KXZpeukx6TKpKQgZXh0ZXJuIKTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBwb3NzaWJsZSBtaXNzaW5nIHBhcmVudGhlc2VzIgojfiBtc2dzdHIgIrPnuMyk8rfnpKSkxqSkpOuyxMe9wK2krKSipOu+7LnnpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvc3NpYmxlIHZpb2xhdGlvbnMgb2Ygc2VxdWVuY2UgcG9pbnQgcnVsZXMiCiN+IG1zZ3N0ciAiyfu67s3RtLDOu8XAtazCp6Tyx8uk67LEx73AraSspKKk677sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgZnVuY3Rpb24gcG9pbnRlciBhcml0aG1ldGljIgojfiBtc2dzdHIgIrTYv/Sl3aWkpfOlv6TOt9e7u6TLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBtdWx0aXBsZSBkZWNsYXJhdGlvbnMgb2YgdGhlIHNhbWUgb2JqZWN0IgojfiBtc2dzdHIgIsaxsOylqqXWpbilp6WvpcikzsDruMCkrMqjv/SkoqTspNC32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucyIKI34gbXNnc3RyICLJ5LnnydWkrS/J5LnnzLWkt6TOyOaz06TLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCB0ZXN0aW5nIGVxdWFsaXR5IG9mIGZsb2F0aW5nIHBvaW50IG51bWJlcnMiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwL/0pM7F+bLBpcaluaXIpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHVucmVjb2duaXplZCBwcmFnbWFzIgojfiBtc2dzdHIgIsenvLGkx6StpMqkpCBwcmFnbWEgpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IG5vbi1wcm90b3R5cGVkIGZ1bmN0aW9uIGRlY2xzIgojfiBtc2dzdHIgIqXXpe2lyKW/paSl16S1pOykxqSkpMqkpLTYv/TA67jApMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGNvbnN0cnVjdHMgd2hvc2UgbWVhbmluZyBjaGFuZ2UgaW4gSVNPIEMiCiN+IG1zZ3N0ciAiSVNPIEMgpMekvaTOsNXMo6SsytG5uaS1pOykv8bizcaky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiB0cmlncmFwaHMgYXJlIGVuY291bnRlcmVkIgojfiBtc2dzdHIgIqXIpemlpKWwpeml1aTyyK+4q6S3pL+kyKStpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJNYXJrIHN0cmluZ3MgYXMgJ2NvbnN0IGNoYXIgKiciCiN+IG1zZ3N0ciAiyri7+s7zpPIgJ2NvbnN0IGNoYXIgKicgpMikt6TGpd6hvKWvpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gYSBmdW5jdGlvbiBpcyB1bnVzZWQiCiN+IG1zZ3N0ciAitNi/9KSsu8ik76TspMqkpKTIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIGxhYmVsIGlzIHVudXNlZCIKI34gbXNnc3RyICKl6aXZpeukrLvIpO+k7KTKpKSkyKStpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gYSBmdW5jdGlvbiBwYXJhbWV0ZXIgaXMgdW51c2VkIgojfiBtc2dzdHIgIrTYv/SkzrK+sPq/9KSsu8ik76TspMqkpKTIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhIHZhcmlhYmxlIGlzIHVudXNlZCIKI34gbXNnc3RyICLK0b/0pKy7yKTvpOykyqSkpMikraTLt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiB3aGVuIGFuIGV4cHJlc3Npb24gdmFsdWUgaXMgdW51c2VkIgojfiBtc2dzdHIgIrywpM7DzaSsu8ik76TspMqkpKTIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIkRvIG5vdCBzdXBwcmVzcyB3YXJuaW5ncyBmcm9tIHN5c3RlbSBoZWFkZXJzIgojfiBtc2dzdHIgIqW3pbmlxqXgpdilw6XApKuk6aTOt9m58KTyzd7AqaS3pMqkpCIKCiN+IG1zZ2lkICJUcmVhdCBhbGwgd2FybmluZ3MgYXMgZXJyb3JzIgojfiBtc2dzdHIgIsG0pMakzrfZufCk8qWopemhvKTIpLekxrzopOqwt6SmIgoKI34gbXNnaWQgIldhcm4gd2hlbiBvbmUgbG9jYWwgdmFyaWFibGUgc2hhZG93cyBhbm90aGVyIgojfiBtc2dzdHIgIqSipOul7aG8paul68rRv/SkrMK+pM6k4qTOpPLKpKSksaOkuaTIpK2ky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gYWJvdXQgZW51bWVyYXRlZCBzd2l0Y2hlcyBtaXNzaW5nIGEgc3BlY2lmaWMgY2FzZSIKI34gbXNnc3RyICLO87XzxOq/9KTOIHN3aXRjaCCkxyBjYXNlILvYxOqkrLfnpLGkxqSkpOuk4qTOpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHJldHVybmluZyBzdHJ1Y3R1cmVzLCB1bmlvbnMgb3IgYXJyYXlzIgojfiBtc2dzdHIgIrm9wqTCzqGitqbN0cLOy/Skz8fbzvOk8srWpLmk4qTOpMu02KS3pMa32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IHBvaW50ZXIgY2FzdHMgd2hpY2ggaW5jcmVhc2UgYWxpZ25tZW50IgojfiBtc2dzdHIgIqXdpaSl86W/pM6lraXjpbmlyKTHpaKl6aWkpfOl4aXzpcikrMH9ssOkuaTrpOKkzqTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCBjb2RlIHRoYXQgd2lsbCBuZXZlciBiZSBleGVjdXRlZCIKI34gbXNnc3RyICK8wrnUpLWk7KTrpLOkyKSspMqkpKWzobylyaTLtNikt6TGt9m58KS5pOsiCgojfiBtc2dpZCAiV2FybiBhYm91dCB1bml0aWFsaXplZCBhdXRvbWF0aWMgdmFyaWFibGVzIgojfiBtc2dzdHIgIr3ptPyyvaS1pOykyqSkvKvGsMrRv/Sky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhbiBpbmxpbmVkIGZ1bmN0aW9uIGNhbm5vdCBiZSBpbmxpbmVkIgojfiBtc2dzdHIgIqWkpfOl6aWkpfO02L/0pPKlpKXzpemlpKXzsr2kx6StpMqkpL7sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiB0aGUgcGFja2VkIGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0IG9uIHN0cnVjdCBsYXlvdXQiCiN+IG1zZ3N0ciAicGFja2VkIMKwwK2krLm9wqTCzsfbw9aky7HGtsGkt6TKpKS+7LnnpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIHdoZW4gcGFkZGluZyBpcyByZXF1aXJlZCB0byBhbGlnbiBzdHJ1Y3QgbWVtYmVycyIKI34gbXNnc3RyICK5vcKkws6l4aXzpdCkzqWipemlpKXzpMehoqXRpcelo6XzpbCk8s3XpLmk677sueeky7fZufCkuaTrIgoKI34gbXNnaWQgIldhcm4gd2hlbiBhbiBvcHRpbWl6YXRpb24gcGFzcyBpcyBkaXNhYmxlZCIKI34gbXNnc3RyICK6x8Wssr2y4cT4pKzMtbj6sr2ktaTspL++7LnnpMu32bnwpLmk6yIKCiN+IG1zZ2lkICJXYXJuIGFib3V0IGZ1bmN0aW9ucyB3aGljaCBtaWdodCBiZSBjYW5kaWRhdGVzIGZvciBhdHRyaWJ1dGUgbm9yZXR1cm4iCiN+IG1zZ3N0ciAibm9yZXR1cm4gwrDAraTOuPXK5KTIpMqk6qS9pKakyrTYv/Sky7TYpLekxrfZufCkuaTrIgoKI34gbXNnaWQgIkludmFsaWQgb3B0aW9uIGAlcyciCiN+IG1zZ3N0ciAizLW4+qTKpaql16W3peel8yBgJXMnIgoKI34gbXNnaWQgIkludGVybmFsIGVycm9yOiAlcyIKI34gbXNnc3RyICLG4sn0pail6aG8OiAlcyIKCiN+IG1zZ2lkICJgJXMnIGRlY2xhcmVkIGBzdGF0aWMnIGJ1dCBuZXZlciBkZWZpbmVkIgojfiBtc2dzdHIgImAlcycgpKwgYHN0YXRpYycgpMjA67jApLWk7KTepLekv6SszKTE6rXBpMekuSIKCiN+IG1zZ2lkICJgJXMnIGRlZmluZWQgYnV0IG5vdCB1c2VkIgojfiBtc2dzdHIgImAlcycgpKzE6rXBpLWk7KTepLekv6Ssu8ik76TspN6ku6TzpMekt6S/IgoKI34gbXNnaWQgImNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmciCiN+IG1zZ3N0ciAiJXMgpPK98aStuf6k383RpMuzq6SxpN6ku6TzpMekt6S/IgoKI34gbXNnaWQgIi1mZnVuY3Rpb24tc2VjdGlvbnMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyB0YXJnZXQuIgojfiBtc2dzdHIgIi1mZnVuY3Rpb24tc2VjdGlvbnMgpM+ks6TOpb+hvKWypcOlyKTHvPWkscb+pOyk6aTspN6ku6TzIgoKI34gbXNnaWQgIi1mZGF0YS1zZWN0aW9ucyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHRhcmdldC4iCiN+IG1zZ3N0ciAiLWZkYXRhLXNlY3Rpb25zIKTPpLOkzqW/obylsqXDpcikx7z1pLHG/qTspOmk7KTepLuk8yIKCiN+IG1zZ2lkICItZmZ1bmN0aW9uLXNlY3Rpb25zIGRpc2FibGVkOyBpdCBtYWtlcyBwcm9maWxpbmcgaW1wb3NzaWJsZS4iCiN+IG1zZ3N0ciAiLWZmdW5jdGlvbi1zZWN0aW9ucyCkrMy1uPqkx6S5IC0tIKXXpe2l1aWhpaSl66TPydSyxMe9pMekuSIKCiN+IG1zZ2lkICItZmZ1bmN0aW9uLXNlY3Rpb25zIG1heSBhZmZlY3QgZGVidWdnaW5nIG9uIHNvbWUgdGFyZ2V0cy4iCiN+IG1zZ3N0ciAiLWZmdW5jdGlvbi1zZWN0aW9ucyCkz6W/obylsqXDpciky6TopMOkxqTPpcel0KXDpbCky7HGtsGkuaTrpKuk4qS3pOyk3qS7pPMiCgojfiBtc2dpZCAiRXJyb3JzIGRldGVjdGVkIGluIGlucHV0IGZpbGUgKHlvdXIgYmlzb24uc2ltcGxlIGlzIG91dCBvZiBkYXRlKVxuIgojfiBtc2dzdHIgIsb+zs+l1aWhpaSl68PmpMulqKXpobwgKKSipMqkv6TOIGJpc29uLnNpbXBsZSCkz7jFpLmkrqTepLkpXG4iCgojfiBtc2dpZCAiZXJyb3Igd3JpdGluZyB0byAlcyIKI34gbXNnc3RyICIlcyCk2KTOvfGkrbn+pN+lqKXpobykx6S5IgoKI34gbXNnaWQgImludmFsaWQgcmVnaXN0ZXIgbmFtZSBgJXMnIGZvciByZWdpc3RlciB2YXJpYWJsZSIKI34gbXNnc3RyICJgJXMnIKTPpeyluKW5pb/K0b/0pMikt6TGpM/Mtbj6pMql7KW4pbmlv8y+pMekuSIKCiN+IG1zZ2lkICIgIC1mZml4ZWQtPHJlZ2lzdGVyPiAgICAgIE1hcmsgPHJlZ2lzdGVyPiBhcyBiZWluZyB1bmF2YWlsYWJsZSB0byB0aGUgY29tcGlsZXJcbiIKI34gbXNnc3RyICIgIC1mZml4ZWQtPHJlZ2lzdGVyPiAgICAgIKWzpfOl0aWkpemky8LQpLcgPHJlZ2lzdGVyPiCk8rvIzdHJ1LLEpMil3qG8pa+kuaTrXG4iCgojfiBtc2dpZCAiICAtZmNhbGwtdXNlZC08cmVnaXN0ZXI+ICBNYXJrIDxyZWdpc3Rlcj4gYXMgYmVpbmcgY29ycnVwdGVkIGJ5IGZ1bmN0aW9uIGNhbGxzXG4iCiN+IG1zZ3N0ciAiICAtZmNhbGwtdXNlZC08cmVnaXN0ZXI+ICC02L/0uMak073QpLekx8fLsvWktaTspOsgPHJlZ2lzdGVyPiCkyKS3pMal3qG8pa+kuaTrXG4iCgojfiBtc2dpZCAiICAtZmNhbGwtc2F2ZWQtPHJlZ2lzdGVyPiBNYXJrIDxyZWdpc3Rlcj4gYXMgYmVpbmcgcHJlc2VydmVkIGFjcm9zcyBmdW5jdGlvbnNcbiIKI34gbXNnc3RyICIgIC1mY2FsbC1zYXZlZC08cmVnaXN0ZXI+IDxyZWdpc3Rlcj4gpKy02L/0pPLEzKS4pMbK3bv9pLWk7KTrpMil3qG8pa+kuaTrXG4iCgojfiBtc2dpZCAiICAtZmlubGluZS1saW1pdD08bnVtYmVyPiBMaW1pdHMgdGhlIHNpemUgb2YgaW5saW5lZCBmdW5jdGlvbnMgdG8gPG51bWJlcj5cbiIKI34gbXNnc3RyICIgIC1maW5saW5lLWxpbWl0PTxudW1iZXI+IKWkpfOl6aWkpfO02L/0pM6ltaWkpbqk8iA8bnVtYmVyPiCky8CpuMKkuaTrXG4iCgojfiBtc2dpZCAiICAtZm1lc3NhZ2UtbGVuZ3RoPTxudW1iZXI+IExpbWl0cyBkaWFnbm9zdGljcyBtZXNzYWdlcyBsZW5ndGhzIHRvIDxudW1iZXI+IGNoYXJhY3RlcnMgcGVyIGxpbmUuICAwIHN1cHByZXNzZXMgbGluZS13cmFwcGluZ1xuIgojfiBtc2dzdHIgIiAgLWZtZXNzYWdlLWxlbmd0aD08bnVtYmVyPiC/x8PHpeGlw6W7obyluKTOxLmktaTysOy51MrVpOogPG51bWJlcj4gyri7+qTLwKm4wqS5pOuhoyAwIKTApMiy/rnUpPLN3sCppLmk61xuIgoKI34gbXNnaWQgIiAgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPVtvbmNlIHwgZXZlcnktbGluZV0gSW5kaWNhdGVzIGhvdyBvZnRlbiBzb3VyY2UgbG9jYXRpb24gaW5mb3JtYXRpb24gc2hvdWxkIGJlIGVtaXR0ZWQsIGFzIHByZWZpeCwgYXQgdGhlIGJlZ2lubmluZyBvZiBkaWFnbm9zdGljcyB3aGVuIGxpbmUtd3JhcHBpbmdcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1mZGlhZ25vc3RpY3Mtc2hvdy1sb2NhdGlvbj1bb25jZSB8IGV2ZXJ5LWxpbmVdICC/x8PHpeGlw6W7obyluKTOsv651KTOut2kyyxcbiIKI34gIiClvaG8pbmwzMPWvvDK86SsudSkzrrHvemky8m9vKiktaTspOvJ0cXZpPK72MTqpLmk61xuIgoKI34gbXNnaWQgIiAgLU9bbnVtYmVyXSAgICAgICAgICAgICAgU2V0IG9wdGltaXNhdGlvbiBsZXZlbCB0byBbbnVtYmVyXVxuIgojfiBtc2dzdHIgIiAgLU9bbnVtYmVyXSAgICAgICAgICAgICAgusfFrLK9peyl2aXrpPIgW251bWJlcl0gpMvA38TqpLmk61xuIgoKI34gbXNnaWQgIiAgLU9zICAgICAgICAgICAgICAgICAgICAgT3B0aW1pc2UgZm9yIHNwYWNlIHJhdGhlciB0aGFuIHNwZWVkXG4iCiN+IG1zZ3N0ciAiICAtT3MgICAgICAgICAgICAgICAgICAgICDCrsXZpOik6qTipbWlpKW6pM66x8Wssr2k8rnUpMqkplxuIgoKI34gbXNnaWQgIiAgLXBlZGFudGljICAgICAgICAgICAgICAgSXNzdWUgd2FybmluZ3MgbmVlZGVkIGJ5IHN0cmljdCBjb21wbGlhbmNlIHRvIElTTyBDXG4iCiN+IG1zZ3N0ciAiICAtcGVkYW50aWMgICAgICAgICAgICAgICC4t8yppMogSVNPIEMgpNikzsWsueeky83XpLmk67fZufCk8sivpLmk61xuIgoKI34gbXNnaWQgIiAgLXBlZGFudGljLWVycm9ycyAgICAgICAgTGlrZSAtcGVkYW50aWMgZXhjZXB0IHRoYXQgZXJyb3JzIGFyZSBwcm9kdWNlZFxuIgojfiBtc2dzdHIgIiAgLXBlZGFudGljLWVycm9ycyAgICAgICAgLXBlZGFudGljIKTIxrHNzaTApKyhoqWopemhvKTyyK/AuKS1pLuk61xuIgoKI34gbXNnaWQgIiAgLXcgICAgICAgICAgICAgICAgICAgICAgU3VwcHJlc3Mgd2FybmluZ3NcbiIKI34gbXNnc3RyICIgIC13ICAgICAgICAgICAgICAgICAgICAgILfZufCk8s3ewKmkuaTrXG4iCgojfiBtc2dpZCAiICAtVyAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgZXh0cmEgd2FybmluZ3NcbiIKI34gbXNnc3RyICIgIC1XICAgICAgICAgICAgICAgICAgICAgIMbDysykyrfZufCk8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1XdW51c2VkICAgICAgICAgICAgICAgIEVuYWJsZSB1bnVzZWQgd2FybmluZ3NcbiIKI34gbXNnc3RyICIgIC1XdW51c2VkICAgICAgICAgICAgICAgIMyku8jN0aTLpMSkpKTGpM632bnwpPLNrbj6pMukuaTrXG4iCgojfiBtc2dpZCAiICAtV2lkLWNsYXNoLTxudW0+ICAgICAgICBXYXJuIGlmIDIgaWRlbnRpZmllcnMgaGF2ZSB0aGUgc2FtZSBmaXJzdCA8bnVtPiBjaGFyc1xuIgojfiBtc2dzdHIgIiAgLVdpZC1jbGFzaC08bnVtPiAgICAgICAgxvOkxKTOvLHKzLvSpKwgPG51bT4gyri7+sqssOzD16S3pMakpKTspNC32bnwpLmk61xuIgoKI34gbXNnaWQgIiAgLVdsYXJnZXItdGhhbi08bnVtYmVyPiAgV2FybiBpZiBhbiBvYmplY3QgaXMgbGFyZ2VyIHRoYW4gPG51bWJlcj4gYnl0ZXNcbiIKI34gbXNnc3RyICIgIC1XbGFyZ2VyLXRoYW4tPG51bWJlcj4gIKWqpdaluKWnpa+lyKSsIDxudW1iZXI+IKXQpaSlyKTopOrC56StpLGk7KTQt9m58KS5pOtcbiIKCiN+IG1zZ2lkICIgIC1wICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBmdW5jdGlvbiBwcm9maWxpbmdcbiIKI34gbXNnc3RyICIgIC1wICAgICAgICAgICAgICAgICAgICAgILTYv/Sl16XtpdWloaWkpeuk8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1hICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBibG9jayBwcm9maWxpbmcgXG4iCiN+IG1zZ3N0ciAiICAtYSAgICAgICAgICAgICAgICAgICAgICCl1qXtpcOlr6XXpe2l1aWhpaSl66Tyza24+qTLpLmk61xuIgoKI34gbXNnaWQgIiAgLWF4ICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGp1bXAgcHJvZmlsaW5nIFxuIgojfiBtc2dzdHIgIiAgLWF4ICAgICAgICAgICAgICAgICAgICAgpbil46Xzpdel16XtpdWloaWkpeuk8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgIFBsYWNlIG91dHB1dCBpbnRvIDxmaWxlPiBcbiIKI34gbXNnc3RyICIgIC1vIDxmaWxlPiAgICAgICAgICAgICAgIL3Qzs+k8iA8ZmlsZT4gpMu98aStuf6k4FxuIgoKI34gbXNnaWQgIiIKI34gIiAgLUcgPG51bWJlcj4gICAgICAgICAgICAgUHV0IGdsb2JhbCBhbmQgc3RhdGljIGRhdGEgc21hbGxlciB0aGFuIDxudW1iZXI+XG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzIGludG8gYSBzcGVjaWFsIHNlY3Rpb24gKG9uIHNvbWUgdGFyZ2V0cylcbiIKI34gbXNnc3RyICIiCiN+ICIgIC1HIDxudW1iZXI+ICAgICAgICAgICAgIDxudW1iZXI+IKXQpaSlyKTopOq+rqS1pMrC57DopKqk6KTTwMXFqqXHobylv6TyXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgIMbDysykyqW7pa+lt6XnpfOky8PWpK8gKKW/obylsqXDpci8ocLoKVxuIgoKI34gbXNnaWQgIiAgLWF1eC1pbmZvIDxmaWxlPiAgICAgICAgRW1pdCBkZWNsYXJhdGlvbiBpbmZvIGludG8gPGZpbGU+XG4iCiN+IG1zZ3N0ciAiICAtYXV4LWluZm8gPGZpbGU+ICAgICAgICDA67jAvvDK86TyIDxmaWxlPiCk2MivudSkuaTrXG4iCgojfiBtc2dpZCAiICAtcXVpZXQgICAgICAgICAgICAgICAgICBEbyBub3QgZGlzcGxheSBmdW5jdGlvbnMgY29tcGlsZWQgb3IgZWxhcHNlZCB0aW1lXG4iCiN+IG1zZ3N0ciAiICAtcXVpZXQgICAgICAgICAgICAgICAgICCls6XzpdGlpKXrpLWk7KS/tNi/9KTkt9Cy4bv+tNak8sm9vKikt6TKpKRcbiIKCiN+IG1zZ2lkICIgIC12ZXJzaW9uICAgICAgICAgICAgICAgIERpc3BsYXkgdGhlIGNvbXBpbGVyJ3MgdmVyc2lvblxuIgojfiBtc2dzdHIgIiAgLXZlcnNpb24gICAgICAgICAgICAgICAgpbOl86XRpaSl6aTOpdChvKW4peel86Tyyb28qKS5pOtcbiIKCiN+IG1zZ2lkICIgIC1kW2xldHRlcnNdICAgICAgICAgICAgIEVuYWJsZSBkdW1wcyBmcm9tIHNwZWNpZmljIHBhc3NlcyBvZiB0aGUgY29tcGlsZXJcbiIKI34gbXNnc3RyICIgIC1kW2xldHRlcnNdICAgICAgICAgICAgIKWzpfOl0aWkpemkzrLhxPikq6TppM6lwKXzpdek8s2tuPqky6S5pOtcbiIKCiN+IG1zZ2lkICIgIC1kdW1wYmFzZSA8ZmlsZT4gICAgICAgIEJhc2UgbmFtZSB0byBiZSB1c2VkIGZvciBkdW1wcyBmcm9tIHNwZWNpZmljIHBhc3Nlc1xuIgojfiBtc2dzdHIgIiAgLWR1bXBiYXNlIDxmaWxlPiAgICAgICAgsuHE+KSrpOmkzqXApfOl16TLu8ik76TspOvMvsGwpM6l2aG8pbmkyKS5pOtcbiIKCiN+IG1zZ2lkICIgIC1mc2NoZWQtdmVyYm9zZT08bnVtYmVyPiBTZXQgdGhlIHZlcmJvc2l0eSBsZXZlbCBvZiB0aGUgc2NoZWR1bGVyXG4iCiN+IG1zZ3N0ciAiICAtZnNjaGVkLXZlcmJvc2U9PG51bWJlcj4gpbmlsaW4peWhvKXppM7xwcDlpeyl2aXrpPLA38TqpLmk61xuIgoKI34gbXNnaWQgIiAgLS1oZWxwICAgICAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIGluZm9ybWF0aW9uXG4iCiN+IG1zZ3N0ciAiICAtLWhlbHAgICAgICAgICAgICAgICAgICCks6TOvvDK86Tyyb28qKS5pOtcbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIkxhbmd1YWdlIHNwZWNpZmljIG9wdGlvbnM6XG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICK4wLjsu8XNzaWqpdelt6XnpfM6XG4iCgojfiBtc2dpZCAiICAlLTIzLjIzcyBbdW5kb2N1bWVudGVkXVxuIgojfiBtc2dzdHIgIiAgJS0yMy4yM3MgW8q4vfGyvaS1pOykxqSkpMqkpF1cbiIKCiN+IG1zZ2lkICIiCiN+ICJcbiIKI34gIlRoZXJlIGFyZSB1bmRvY3VtZW50ZWQgJXMgc3BlY2lmaWMgb3B0aW9ucyBhcyB3ZWxsLlxuIgojfiBtc2dzdHIgIiIKI34gIlxuIgojfiAiyri98bK9pLWk7KTGpKSkyqSkICVzILvFzc2lqqXXpbel56XzpOKkoqTqpN6kuaGjXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICIgT3B0aW9ucyBmb3IgJXM6XG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICIgJXMgzdGlqqXXpbel56XzOlxuIgoKI34gbXNnaWQgIiIKI34gIlxuIgojfiAiVGFyZ2V0IHNwZWNpZmljIG9wdGlvbnM6XG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICKlv6G8pbKlw6XIu8XNzaWqpdelt6XnpfM6XG4iCgojfiBtc2dpZCAiICAtbSUtMjMuMjNzIFt1bmRvY3VtZW50ZWRdXG4iCiN+IG1zZ3N0ciAiICAtbSUtMjMuMjNzIFvKuL3xsr2ktaTspMakpKTKpKRdXG4iCgojfiBtc2dpZCAiIgojfiAiXG4iCiN+ICJUaGVyZSBhcmUgdW5kb2N1bWVudGVkIHRhcmdldCBzcGVjaWZpYyBvcHRpb25zIGFzIHdlbGwuXG4iCiN+IG1zZ3N0ciAiIgojfiAiXG4iCiN+ICLKuL3xsr2ktaTspMakpKTKpKSlv6G8pbKlw6XIu8XNzaWqpdelt6XnpfOk4qSipOqk3qS5oaNcbiIKCiN+IG1zZ2lkICIgIFRoZXkgZXhpc3QsIGJ1dCB0aGV5IGFyZSBub3QgZG9jdW1lbnRlZC5cbiIKI34gbXNnc3RyICIgIKSzpOyk6aTPwri636S3pN6kuaSsoaLKuL3xsr2ktaTspMakpKTepLuk81xuIgoKI34gbXNnaWQgInVucmVjb2duaXplZCBnY2MgZGVidWdnaW5nIG9wdGlvbjogJWMiCiN+IG1zZ3N0ciAix6e8saTHpK2kyqSkIGdjYyClx6XQpcOlsKWqpdelt6XnpfM6ICVjIgoKI34gbXNnaWQgInVucmVjb2duaXplZCByZWdpc3RlciBuYW1lIGAlcyciCiN+IG1zZ3N0ciAix6e8saTHpK2kyqSkpeyluKW5pb/MviBgJXMnIgoKI34gbXNnaWQgIlVucmVjb2duaXplZCBvcHRpb24gYCVzJyIKI34gbXNnc3RyICLHp7yxydTHvaTKpaql16W3peel8yBgJXMnIgoKI34gbXNnaWQgInVzZSAtZ2R3YXJmIC1nJWQgZm9yIERXQVJGIHYxLCBsZXZlbCAlZCIKI34gbXNnc3RyICItZ2R3YXJmIC1nJWQgpPK7yM3RIChEV0FSRiB2MSwgpeyl2aXrICVkKSIKCiN+IG1zZ2lkICJ1c2UgLWdkd2FyZi0yICAgZm9yIERXQVJGIHYyIgojfiBtc2dzdHIgIi1nZHdhcmYtMiCk8rvIzdEgKERXQVJGIHYyKSIKCiN+IG1zZ2lkICJpZ25vcmluZyBvcHRpb24gYCVzJyBkdWUgdG8gaW52YWxpZCBkZWJ1ZyBsZXZlbCBzcGVjaWZpY2F0aW9uIgojfiBtc2dzdHIgIsy1uPqkyqXHpdClw6Wwpeyl2aXru9jE6qTLpOik6qGipaql16W3peel8yBgJXMnIKTyzLW766S3pN6kuSIKCiN+IG1zZ2lkICJgJXMnOiB1bmtub3duIG9yIHVuc3VwcG9ydGVkIC1nIG9wdGlvbiIKI34gbXNnc3RyICJgJXMnOiDJ1MzApN6kv6TPpbWl3aG8pciktaTspMqkpCAtZyClqqXXpbel56XzpMekuSIKCiN+IG1zZ2lkICJgJXMnIGlnbm9yZWQsIGNvbmZsaWN0cyB3aXRoIGAtZyVzJyIKI34gbXNnc3RyICJgJXMnIKTPIGAtZyVzJyCkyLalueekuaTrpL+k4cy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgIi1wYXJhbSBvcHRpb24gbWlzc2luZyBhcmd1bWVudCIKI34gbXNnc3RyICItcGFyYW0gpaql16W3peel86TLsPq/9KSspKKk6qTepLuk8yIKCiN+IG1zZ2lkICJpbnZhbGlkIC0tcGFyYW0gb3B0aW9uOiAlcyIKI34gbXNnc3RyICLMtbj6pMogLS1wYXJhbSClqqXXpbel56XzOiAlcyIKCiN+IG1zZ2lkICJpbnZhbGlkIHBhcmFtZXRlciB2YWx1ZSBgJXMnIgojfiBtc2dzdHIgIsy1uPqkyqXRpeml4aW/w80gYCVzJyIKCiN+IG1zZ2lkICJgLWEnIG9wdGlvbiAoYmFzaWMgYmxvY2sgcHJvZmlsZSkgbm90IHN1cHBvcnRlZCIKI34gbXNnc3RyICJgLWEnIKWqpdelt6XnpfMotPDL3KXWpe2lw6Wvpdel7aXVpaGlpKXrKaTPpbWl3aG8pciktaTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJgLWF4JyBvcHRpb24gKGp1bXAgcHJvZmlsaW5nKSBub3Qgc3VwcG9ydGVkIgojfiBtc2dzdHIgImAtYXgnIKWqpdelt6XnpfMopbil46Xzpdel16XtpdWloaWkpesppM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIklnbm9yaW5nIGNvbW1hbmQgbGluZSBvcHRpb24gJyVzJyIKI34gbXNnc3RyICKls6XepfOlyaXppaSl86Wqpdelt6XnpfMgJyVzJyCk8sy1u+ukt6TepLkiCgojfiBtc2dpZCAiKEl0IGlzIHZhbGlkIGZvciAlcyBidXQgbm90IHRoZSBzZWxlY3RlZCBsYW5ndWFnZSkiCiN+IG1zZ3N0ciAiKCVzIM3RpMikt6TGpM/Atb7vpMekuaSsoaLBqsLypLWk7KS/uMC47KTIpLekxqTPzLW4+qTHpLkpIgoKI34gbXNnaWQgIi1XdW5pbml0aWFsaXplZCBpcyBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgLU8iCiN+IG1zZ3N0ciAiLVd1bmluaXRpYWxpemVkIKTPIC1PIMy1pLeky6TPvPWkscb+pOyk6aTspN6ku6TzIgoKI34gbXNnaWQgImAtYXgnIGFuZCBgLWEnIGFyZSBjb25mbGljdGluZyBvcHRpb25zLiBgLWEnIGlnbm9yZWQuIgojfiBtc2dzdHIgImAtYXgnIKTIIGAtYScgpM/Mt73ipLmk66Wqpdelt6XnpfOkx6S5oaNgLWEnIKTyzLW766S3pN6kt6S/oaMiCgojfiBtc2dpZCAiaW5zdHJ1Y3Rpb24gc2NoZWR1bGluZyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0IG1hY2hpbmUiCiN+IG1zZ3N0ciAizL/O4aW5pbGluKXlobyl6qXzpbCkz6SzpM6lv6G8pbKlw6XIpd6lt6XzpMekz6W1pd2hvKXIpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJ0aGlzIHRhcmdldCBtYWNoaW5lIGRvZXMgbm90IGhhdmUgZGVsYXllZCBicmFuY2hlcyIKI34gbXNnc3RyICKks6TOpb+hvKWypcOlyKXepbel86TPw9mx5MqstPSk8rv9pMOkxqSkpN6ku6TzIgoKI34gbXNnaWQgInByb2ZpbGluZyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSBmcmFtZSBwb2ludGVyIgojfiBtc2dzdHIgIqXXpe2l1aWhpaSl66TPpdWl7KG8peCl3aWkpfOlv6TKpLekx6TPxrC67qS3pN6ku6TzIgoKI34gbXNnaWQgIi1mJXNsZWFkaW5nLXVuZGVyc2NvcmUgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHRhcmdldCBtYWNoaW5lIgojfiBtc2dzdHIgIi1mJXNsZWFkaW5nLXVuZGVyc2NvcmUgpM+ks6TOpb+hvKWypcOlyKXepbel86THpM+ltaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiRGF0YSBzaXplICVsZC5cbiIKI34gbXNnc3RyICKlx6G8pb+ltaWkpbogJWxkLlxuIgoKI34gbXNnaWQgIiIKI34gIiVzJXMlcyB2ZXJzaW9uICVzICglcylcbiIKI34gIiVzXHRjb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uICVzLlxuIgojfiAiJXMlcyVzIHZlcnNpb24gJXMgKCVzKSBjb21waWxlZCBieSBDQy5cbiIKI34gbXNnc3RyICIiCiN+ICIlcyVzJXMgdmVyc2lvbiAlcyAoJXMpXG4iCiN+ICIlc1x0Y29tcGlsZWQgYnkgR05VIEMgdmVyc2lvbiAlcy5cbiIKI34gIiVzJXMlcyB2ZXJzaW9uICVzICglcykgY29tcGlsZWQgYnkgQ0MuXG4iCgojfiBtc2dpZCAib3B0aW9ucyBwYXNzZWQ6ICIKI34gbXNnc3RyICLFz6S1pOykv6Wqpdelt6XnpfM6ICIKCiN+IG1zZ2lkICJvcHRpb25zIGVuYWJsZWQ6ICIKI34gbXNnc3RyICLNrbj6paql16W3peel8zogIgoKI34gbXNnaWQgImZsb2F0aW5nIHBvaW50IG51bWJlcnMgbm90IGFsbG93ZWQgaW4gI2lmIGV4cHJlc3Npb25zIgojfiBtc2dzdHIgIiNpZiC8sKTOw+akx6TOyeLGsL6uv/TFwL/0pM+19rLEpLWk7KTepLuk8yIKCiN+IG1zZ2lkICJJbnZhbGlkIG51bWJlciBpbiAjaWYgZXhwcmVzc2lvbiIKI34gbXNnc3RyICIjaWYgvLCkzsPmpMvMtbj6pMq/9MPNIgoKI34gbXNnaWQgIkludmFsaWQgY2hhcmFjdGVyIGNvbnN0YW50IGluICNpZiIKI34gbXNnc3RyICLMtbj6pMrKuLv6xOq/9KSsICNpZiCky6SipOqk3qS5IgoKI34gbXNnaWQgImRvdWJsZSBxdW90ZWQgc3RyaW5ncyBub3QgYWxsb3dlZCBpbiAjaWYgZXhwcmVzc2lvbnMiCiN+IG1zZ3N0ciAixvO9xaTLpa+lqaG8pciktaTspL/KuLv6zvOkzyAjaWYgvLDG4qTHpM+7yKSopN6ku6TzIgoKI34gbXNnaWQgIkludmFsaWQgdG9rZW4gaW4gZXhwcmVzc2lvbiIKI34gbXNnc3RyICLMtbj6pMqlyKG8pa+l86SsvLCky6SipOqk3qS5IgoKI34gbXNnaWQgIm9jdGFsIGNoYXJhY3RlciBjb25zdGFudCBkb2VzIG5vdCBmaXQgaW4gYSBieXRlIgojfiBtc2dzdHIgIjggv8q/9Mq4u/rE6r/0pKwgMSCl0KWkpciky7z9pN6k6qTepLuk8yIKCiN+IG1zZ2lkICJoZXggY2hhcmFjdGVyIGNvbnN0YW50IGRvZXMgbm90IGZpdCBpbiBhIGJ5dGUiCiN+IG1zZ3N0ciAiMTYgv8q/9Mq4u/rE6r/0pKwgMSCl0KWkpciky7z9pN6k6qTepLuk8yIKCiN+IG1zZ2lkICJlbXB0eSAjaWYgZXhwcmVzc2lvbiIKI34gbXNnc3RyICK29aTOICNpZiC8sKTHpLkiCgojfiBtc2dpZCAiSnVuayBhZnRlciBlbmQgb2YgZXhwcmVzc2lvbi4iCiN+IG1zZ3N0ciAivLCkzr2qpOqwyrnfpMultKXfpKykoqTqpN6kuSIKCiN+IG1zZ2lkICJtYWNybyBvciAjaW5jbHVkZSByZWN1cnNpb24gdG9vIGRlZXAiCiN+IG1zZ3N0ciAipd6lr6XtpN6kv6TPICNpbmNsdWRlIKTOusa1oqSsv7ykuaSupN6kuSIKCiN+IG1zZ2lkICJVc2FnZTogJXMgW3N3aXRjaGVzXSBpbnB1dCBvdXRwdXQiCiN+IG1zZ3N0ciAiu8ikpMr9OiAlcyBbpbmlpKXDpcFdIMb+zs8gvdDOzyIKCiN+IG1zZ2lkICItdHJhZGl0aW9uYWwgaXMgbm90IHN1cHBvcnRlZCBpbiBDKysiCiN+IG1zZ3N0ciAiLXRyYWRpdGlvbmFsIKTPIEMrKyCkx6TPvPWkscnVpLGk6aTspN6ku6TzIgoKI34gbXNnaWQgIi10cmFkaXRpb25hbCBhbmQgLWFuc2kgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKI34gbXNnc3RyICItdHJhZGl0aW9uYWwgpMggLWFuc2kgpMikz8HquN/H08K+xaqkx6S5IgoKI34gbXNnaWQgIkZpbGVuYW1lIG1pc3NpbmcgYWZ0ZXIgLWkgb3B0aW9uIgojfiBtc2dzdHIgIi1pIKWqpdelt6XnpfOkzrjlpO2kzqXVpaGlpKXrzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJGaWxlbmFtZSBtaXNzaW5nIGFmdGVyIC1vIG9wdGlvbiIKI34gbXNnc3RyICItbyClqqXXpbel56XzpM645aTtpM6l1aWhpaSl68y+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiVGFyZ2V0IG1pc3NpbmcgYWZ0ZXIgJXMgb3B0aW9uIgojfiBtc2dzdHIgIiVzIKWqpdelt6XnpfOkzrjlpO2kzqW/obylsqXDpcik8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJGaWxlbmFtZSBtaXNzaW5nIGFmdGVyICVzIG9wdGlvbiIKI34gbXNnc3RyICIlcyClqqXXpbel56XzpM645aTtpM6l1aWhpaSl68y+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiTWFjcm8gbmFtZSBtaXNzaW5nIGFmdGVyIC0lYyBvcHRpb24iCiN+IG1zZ3N0ciAiLSVjIKWqpdelt6XnpfOkzrjlpO2kzqXepa+l7cy+pPK356SkpMakpKTepLkiCgojfiBtc2dpZCAiLXBlZGFudGljIGFuZCAtdHJhZGl0aW9uYWwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKI34gbXNnc3RyICItcGVkYW50aWMgpMggLXRyYWRpdGlvbmFsIKTIpM/B6rjfx9PCvsWqpMekuSIKCiN+IG1zZ2lkICItdHJpZ3JhcGhzIGFuZCAtdHJhZGl0aW9uYWwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKI34gbXNnc3RyICItdHJpZ3JhcGhzIKTIIC10cmFkaXRpb25hbCCkyKTPweq438fTwr7FqqTHpLkiCgojfiBtc2dpZCAiRGlyZWN0b3J5IG5hbWUgbWlzc2luZyBhZnRlciAtSSBvcHRpb24iCiN+IG1zZ3N0ciAiLUkgpaql16W3peel86TOuOWk7aTOpcelo6Xspa+lyKXqzL6k8rfnpKSkxqSkpN6kuSIKCiN+IG1zZ2lkICJgLyonIHdpdGhpbiBjb21tZW50IgojfiBtc2dzdHIgImAvKicgpKyls6XhpfOlyMbipMukoqTqpN6kuSIKCiN+IG1zZ2lkICJ1bnRlcm1pbmF0ZWQgIyVzIGNvbmRpdGlvbmFsIgojfiBtc2dzdHIgIr2qw7ykzqTKpKQgIyVzIL7yt+8iCgojfiBtc2dpZCAibm90IGluIGFueSBmaWxlPyEiCiN+IG1zZ3N0ciAiwbSkr6XVpaGlpKXrpKykyqSkPyEiCgojfiBtc2dpZCAiYGRlZmluZWQnIG11c3QgYmUgZm9sbG93ZWQgYnkgaWRlbnQgb3IgKGlkZW50KSIKI34gbXNnc3RyICJgZGVmaW5lZCcgpM645aTtpMsgaWRlbnQgpOQgKGlkZW50KSCkrKSzpMqksaTspNCkyqTqpN6ku6TzIgoKI34gbXNnaWQgImNjY3AgZXJyb3I6IGludmFsaWQgc3BlY2lhbCBoYXNoIHR5cGUiCiN+IG1zZ3N0ciAiY2NjcCClqKXpobw6IMbDvOylz6XDpbel5be/pKzMtbj6pMekuSIKCiN+IG1zZ2lkICIjaW5jbHVkZSBleHBlY3RzIFwiZm5hbWVcIiBvciA8Zm5hbWU+IgojfiBtc2dzdHIgIiNpbmNsdWRlIKTOuOWky6TPIFwiZm5hbWVcIiCk5CA8Zm5hbWU+IKSsyazN16THpLkiCgojfiBtc2dpZCAiTm8gaW5jbHVkZSBwYXRoIGluIHdoaWNoIHRvIGZpbmQgJS4qcyIKI34gbXNnc3RyICIlLipzIKSsuKukxKSrpOulpKXzpa+l66G8pcml0aW5pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgbWFjcm8gbmFtZSIKI34gbXNnc3RyICLMtbj6pMql3qWvpe3MviIKCiN+IG1zZ2lkICJpbnZhbGlkIG1hY3JvIG5hbWUgYCVzJyIKI34gbXNnc3RyICLMtbj6pMql3qWvpe3MviBgJXMnIgoKI34gbXNnaWQgInBhcmFtZXRlciBuYW1lIHN0YXJ0cyB3aXRoIGEgZGlnaXQgaW4gI2RlZmluZSIKI34gbXNnc3RyICIjZGVmaW5lIMPmpM6yvrD6v/TMvqSsv/S7+qTHu8+k3qTDpMakpKTepLkiCgojfiBtc2dpZCAiYmFkbHkgcHVuY3R1YXRlZCBwYXJhbWV0ZXIgbGlzdCBpbiAjZGVmaW5lIgojfiBtc2dzdHIgIiNkZWZpbmUgw+akzrK+sPq/9KXqpbmlyKSsytGky7bowNqk6aTspN6kt6S/IgoKI34gbXNnaWQgInVudGVybWluYXRlZCBwYXJhbWV0ZXIgbGlzdCBpbiAjZGVmaW5lIgojfiBtc2dzdHIgIiNkZWZpbmUgw+akzrK+sPq/9KXqpbmlyKSsvarDvKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIlwiJS4qc1wiIHJlZGVmaW5lZCIKI34gbXNnc3RyICJcIiUuKnNcIiCkrLrGxOq1waS1pOyk3qS3pL8iCgojfiBtc2dpZCAiIyBvcGVyYXRvciBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBtYWNybyBhcmd1bWVudCBuYW1lIgojfiBtc2dzdHIgIiMgsem7u7vSpM645aTtpMukz6Xepa+l7bD6v/TMvqSswrOkpKTGpKSkyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCBmb3JtYXQgI2xpbmUgY29tbWFuZCIKI34gbXNnc3RyICIjbGluZSCls6XepfOlyaTOvfG8sKSszLW4+qTHpLkiCgojfiBtc2dpZCAidW5kZWZpbmluZyBgZGVmaW5lZCciCiN+IG1zZ3N0ciAiYGRlZmluZWQnIKTyIHVuZGVmIKS3pN6kuSIKCiN+IG1zZ2lkICJ1bmRlZmluaW5nIGAlcyciCiN+IG1zZ3N0ciAiYCVzJyCk8iB1bmRlZiCkt6TepLkiCgojfiBtc2dpZCAiZXh0cmEgdGV4dCBhdCBlbmQgb2YgZGlyZWN0aXZlIgojfiBtc2dzdHIgIqXHpaOl7KWvpcalo6XWpM69qqTqpMvNvsqspMqlxqWvpbmlyKSspKKk6qTepLkiCgojfiBtc2dpZCAiI2Vycm9yJS4qcyIKI34gbXNnc3RyICIjZXJyb3IlLipzIgoKI34gbXNnaWQgIiN3YXJuaW5nJS4qcyIKI34gbXNnc3RyICIjd2FybmluZyUuKnMiCgojfiBtc2dpZCAiI2VsaWYgbm90IHdpdGhpbiBhIGNvbmRpdGlvbmFsIgojfiBtc2dzdHIgIiNlbGlmIKSsvvK378q4pM7D5qTLpKKk6qTepLuk8yIKCiN+IG1zZ2lkICIjJXMgbm90IHdpdGhpbiBhIGNvbmRpdGlvbmFsIgojfiBtc2dzdHIgIiMlcyCkrL7yt+/KuKTOw+aky6SipOqk3qS7pPMiCgojfiBtc2dpZCAiI2Vsc2Ugb3IgI2VsaWYgYWZ0ZXIgI2Vsc2UiCiN+IG1zZ3N0ciAiI2Vsc2UgpM645aTtpMsgI2Vsc2UgpOQgI2VsaWYgpKykoqTqpN6kuSIKCiN+IG1zZ2lkICIjZWxzZSBub3Qgd2l0aGluIGEgY29uZGl0aW9uYWwiCiN+IG1zZ3N0ciAiI2Vsc2UgpKy+8rfvyrikzsPmpMukoqTqpN6ku6TzIgoKI34gbXNnaWQgInVudGVybWluYXRlZCBzdHJpbmcgb3IgY2hhcmFjdGVyIGNvbnN0YW50IgojfiBtc2dzdHIgIr2qw7yktaTspMakpKTKpKTKuLv6zvPE6r/0y/Skz8q4u/rE6r/0IgoKI34gbXNnaWQgImFyZ3VtZW50cyBnaXZlbiB0byBtYWNybyBgJXMnIgojfiBtc2dzdHIgIqXepa+l7SBgJXMnIKTLsPq/9KSszb+kqKTppOyk3qS3pL8iCgojfiBtc2dpZCAibm8gYXJncyB0byBtYWNybyBgJXMnIgojfiBtc2dzdHIgIqXepa+l7SBgJXMnIKTYpM6w+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIm9ubHkgMSBhcmcgdG8gbWFjcm8gYCVzJyIKI34gbXNnc3RyICKl3qWvpe0gYCVzJyCk2KTOsPq/9KSssOy4xKS3pKukoqTqpN6ku6TzIgoKI34gbXNnaWQgIm9ubHkgJWQgYXJncyB0byBtYWNybyBgJXMnIgojfiBtc2dzdHIgIiVkILjEpM6w+r/0pLekq6Xepa+l7SBgJXMnIKTLxc+kt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAidG9vIG1hbnkgKCVkKSBhcmdzIHRvIG1hY3JvIGAlcyciCiN+IG1zZ3N0ciAisPq/9KTOv/QgKCVkKSCkrKXepa+l7SBgJXMnIKTLwtCkt6TGwr+kuaSupN6kuSIKCiN+IG1zZ2lkICIiCiN+ICJJbnRlcm5hbCBlcnJvciBpbiAlcywgYXQgdHJhZGNwcC5jOiVkXG4iCiN+ICJQbGVhc2Ugc3VibWl0IGEgZnVsbCBidWcgcmVwb3J0LlxuIgojfiAiU2VlICVzIGZvciBpbnN0cnVjdGlvbnMuIgojfiBtc2dzdHIgIiIKI34gIiVzIKTHxuLJ9KWopemhvKGiKHRyYWRjcHAuYzolZClcbiIKI34gIrSwwbSkyqXQpbCl7KXdobylyKTywfekw6TGpK+kwKS1pKSho1xuIgojfiAiJXMgpMekvaTOvOq956TyuKukxqSvpMCktaSkIgoKI34gbXNnaWQgImFycmF5cyBvZiBmdW5jdGlvbnMgYXJlIG5vdCBtZWFuaW5nZnVsIgojfiBtc2dzdHIgIrTYv/SkzsfbzvOkz7DVzKOkrKSipOqk3qS7pPMiCgojfiBtc2dpZCAiZnVuY3Rpb24gcmV0dXJuIHR5cGUgY2Fubm90IGJlIGZ1bmN0aW9uIgojfiBtc2dzdHIgIrTYv/SkzsrWpLm3v6SstNi/9KTHpKKkw6TGpM+kyqTqpN6ku6TzIgoKI34gbXNnaWQgImludmFsaWQgaW5pdGlhbGl6ZXIgZm9yIGJpdCBzdHJpbmciCiN+IG1zZ3N0ciAizLW4+qTKpdOlw6XIzvO96bT8sr270qTHpLkiCgojfiBtc2dpZCAiVHJlZSBjaGVjazogZXhwZWN0ZWQgJXMsIGhhdmUgJXMgaW4gJXMsIGF0ICVzOiVkIgojfiBtc2dzdHIgIlRyZWUguKG6ujogJXMgpKykoqTrpNmkrb3qpMsgJXMgpKykoqTqpN6kuSglcyDG4iwgJXM6JWQpIgoKI34gbXNnaWQgIlRyZWUgY2hlY2s6IGV4cGVjdGVkIGNsYXNzICclYycsIGhhdmUgJyVjJyAoJXMpIGluICVzLCBhdCAlczolZCIKI34gbXNnc3RyICJUcmVlILihuro6IKWvpemluSAnJWMnIKTOpM+kuqSsICclYycgKCVzKSCkx6S5KCVzIMbiLCAlczolZCkiCgojfiBtc2dpZCAicmVnaXN0ZXIgbmFtZSBub3Qgc3BlY2lmaWVkIGZvciBgJXMnIgojfiBtc2dzdHIgIqXspbiluaW/zL6krCBgJXMnIM3RpMu72MTqpLWk7KTGpKSk3qS7pPMiCgojfiBtc2dpZCAiaW52YWxpZCByZWdpc3RlciBuYW1lIGZvciBgJXMnIgojfiBtc2dzdHIgImAlcycgpMvC0KS5pOul7KW4pbmlv8y+pMikt6TGzLW4+qTHpLkiCgojfiBtc2dpZCAiZGF0YSB0eXBlIG9mIGAlcycgaXNuJ3Qgc3VpdGFibGUgZm9yIGEgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAiYCVzJyCkzqXHobylv7e/pM8gcmVnaXN0ZXIgpMukz6TVpLWk76S3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgInJlZ2lzdGVyIHNwZWNpZmllZCBmb3IgYCVzJyBpc24ndCBzdWl0YWJsZSBmb3IgZGF0YSB0eXBlIgojfiBtc2dzdHIgImAlcycgpMu72MTqpLWk7KS/IHJlZ2lzdGVyIKTPpcehvKW/t7+ky6TVpLWk76S3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgImdsb2JhbCByZWdpc3RlciB2YXJpYWJsZSBoYXMgaW5pdGlhbCB2YWx1ZSIKI34gbXNnc3RyICLC57DoIHJlZ2lzdGVyIMrRv/SkrL3ptPzDzaTyu/2kw6TGpKSk3qS5IgoKI34gbXNnaWQgInZvbGF0aWxlIHJlZ2lzdGVyIHZhcmlhYmxlcyBkb24ndCB3b3JrIGFzIHlvdSBtaWdodCB3aXNoIgojfiBtc2dzdHIgInZvbGF0aWxlIHJlZ2lzdGVyIMrRv/Skz7DVv96kt6S/pOikpqTLpM/GsLrupLek3qS7pPMiCgojfiBtc2dpZCAicmVnaXN0ZXIgbmFtZSBnaXZlbiBmb3Igbm9uLXJlZ2lzdGVyIHZhcmlhYmxlIGAlcyciCiN+IG1zZ3N0ciAipeyluKW5pb/MvqSsyPMgcmVnaXN0ZXIgytG/9CBgJXMnIKTLzb+kqKTppOyk3qS3pL8iCgojfiBtc2dpZCAic2l6ZSBvZiB2YXJpYWJsZSBgJXMnIGlzIHRvbyBsYXJnZSIKI34gbXNnc3RyICLK0b/0IGAlcycgpM6ltaWkpbqkrMLnpK2kuaSupN6kuSIKCiN+IG1zZ2lkICJhbGlnbm1lbnQgb2YgYCVzJyBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSBvYmplY3QgZmlsZSBhbGlnbm1lbnQuIFVzaW5nICVkLiIKI34gbXNnc3RyICJgJXMnIKTOpaKl6aWkpfOl4aXzpcikz6WqpdaluKWnpa+lyKXVpaGlpKXrpM66x8Lnw82k6KTqpOLC56StpKSkx6S5oaMgJWQgpPK7yKSkpN6kuaGjIgoKI34gbXNnaWQgInJlcXVlc3RlZCBhbGlnbm1lbnQgZm9yICVzIGlzIGdyZWF0ZXIgdGhhbiBpbXBsZW1lbnRlZCBhbGlnbm1lbnQgb2YgJWQuIgojfiBtc2dzdHIgIiVzIKTLzde14aS1pOykv6WipemlpKXzpeGl86XIpM+8wsH1pLWk7KS/paKl6aWkpfOl4aXzpcggJWQgpOik6sLnpK2kpKTHpLkiCgojfiBtc2dpZCAiZmxvYXRpbmcgcG9pbnQgdHJhcCBvdXRwdXR0aW5nIGEgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwKTOwqjDzaTyvdDOz6S5pOu63aTLpcil6aXDpdekrKSrpKuk6qTepLekvyIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBmb3IgaW50ZWdlciB2YWx1ZSBpcyB0b28gY29tcGxpY2F0ZWQiCiN+IG1zZ3N0ciAiwLC/9KTOvem0/MDfxOq70qTOw82krMqju6ikuaSupN6kuSIKCiN+IG1zZ2lkICJpbml0aWFsaXplciBmb3IgZmxvYXRpbmcgdmFsdWUgaXMgbm90IGEgZmxvYXRpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyeLGsL6uv/TFwL/0pM696bT8wN/E6rvSpM7DzaSsoaLJ4sawvq6/9MXAxOq/9KTHpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInVua25vd24gc2V0IGNvbnN0cnVjdG9yIHR5cGUiCiN+IG1zZ3N0ciAiydTMwKTKwN/E6rrRpbOl86W5pcil6aWvpb+3v6THpLkiCgojfiBtc2dpZCAiaW52YWxpZCBpbml0aWFsIHZhbHVlIGZvciBtZW1iZXIgYCVzJyIKI34gbXNnc3RyICKl4aXzpdAgYCVzJyCky8LQpLmk68y1uPqkyr3ptPzDzSIKCiN+IG1zZ2lkICJ3ZWFrIGRlY2xhcmF0aW9uIG9mIGAlcycgbXVzdCBiZSBwdWJsaWMiCiN+IG1zZ3N0ciAiYCVzJyCkziB3ZWFrIMDruMCkzyBwdWJsaWMgpMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAid2VhayBkZWNsYXJhdGlvbiBvZiBgJXMnIG11c3QgcHJlY2VkZSBkZWZpbml0aW9uIgojfiBtc2dzdHIgImAlcycgpM4gd2VhayDA67jApM/E6rXBpOik6qTiwOiky6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJvbmx5IHdlYWsgYWxpYXNlcyBhcmUgc3VwcG9ydGVkIGluIHRoaXMgY29uZmlndXJhdGlvbiIKI34gbXNnc3RyICK4vbrfpM7A38TqpMekzyB3ZWFrIGFsaWFzIKS3pKultaXdobylyKS1pOyk3qS7pPMiCgojfiBtc2dpZCAiYWxpYXMgZGVmaW5pdGlvbnMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGNvbmZpZ3VyYXRpb247IGlnbm9yZWQiCiN+IG1zZ3N0ciAiuL2636TOwN/E6qTHpM8gYWxpYXMgxOq1waTPpbWl3aG8pciktaTspN6ku6TzIC0tIMy1u+uktaTspN6kt6S/IgoKI34gbXNnaWQgIlZpcnR1YWwgYXJyYXkgJXNbJWx1XTogZWxlbWVudCAlbHUgb3V0IG9mIGJvdW5kcyIKI34gbXNnc3RyICKyvsHbpcahvKXWpesgJXNbJWx1XTogzdfBxyAlbHUgpKzIz7DPs7Ckx6S5IgoKI34gbXNnaWQgIk5vIHNjbGFzcyBmb3IgJXMgc3RhYiAoMHgleClcbiIKI34gbXNnc3RyICIlcyCluaW/pdbN0aTOIHNjbGFzcyCkrKSipOqk3qS7pPMgKDB4JXgpXG4iCgojfiBtc2dpZCAiYC1wJyBub3Qgc3VwcG9ydGVkOyB1c2UgYC1wZycgYW5kIGdwcm9mKDEpIgojfiBtc2dzdHIgImAtcCcgpM+8wsH1pLWk7KTGpKSk3qS7pPMuIGAtcGcnIKTIIGdwcm9mKDEpIKTyu8ikw6TGpK+kwKS1pKQiCgojfiBtc2dpZCAibWF5IG5vdCB1c2UgYm90aCAtRUIgYW5kIC1FTCIKI34gbXNnc3RyICItRUIgpMggLUVMIKTOzr7K/aTyu8ikpqSzpMikz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiLW1hcGNzLTI2IGFuZCAtbWFwY3MtMzIgbWF5IG5vdCBiZSB1c2VkIHRvZ2V0aGVyIgojfiBtc2dzdHIgIi1tYXBjcy0yNiCkyCAtbWFwY3MtMzIgpM/Gsbv+pMu7yKSopN6ku6TzIgoKI34gbXNnaWQgIi1tc29mdC1mbG9hdCBhbmQgLW1oYXJkX2Zsb2F0IG1heSBub3QgYmUgdXNlZCB0b2dldGhlciIKI34gbXNnc3RyICItbXNvZnQtZmxvYXQgpMggLW1oYXJkX2Zsb2F0IKTPxrG7/qTLu8ikqKTepLuk8yIKCiN+IG1zZ2lkICItbWJpZy1lbmRpYW4gYW5kIC1tbGl0dGxlLWVuZGlhbiBtYXkgbm90IGJlIHVzZWQgdG9nZXRoZXIiCiN+IG1zZ3N0ciAiLW1iaWctZW5kaWFuIKTIIC1tbGl0dGxlLWVuZGlhbiCkz8axu/6ky7vIpKik3qS7pPMiCgojfiBtc2dpZCAiSW5jb21wYXRpYmxlIGludGVyd29ya2luZyBvcHRpb25zIgojfiBtc2dzdHIgIrjftLnAraTOpMqkpCBpbnRlcndvcmtpbmcgpaql16W3peel8yIKCiN+IG1zZ2lkICItbWJzZCBhbmQgLXBlZGFudGljIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItbWJzZCCkyCAtcGVkYW50aWMgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItbWJzZCBhbmQgLW14b3BlbiBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW1ic2QgpMggLW14b3BlbiCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1teG9wZW4gYW5kIC1wZWRhbnRpYyBpbmNvbXBhdGlibGUiCiN+IG1zZ3N0ciAiLW14b3BlbiCkyCAtcGVkYW50aWMgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICJBIC1pZmlsZSBvcHRpb24gcmVxdWlyZXMgYSAtbWFwIG9wdGlvbiIKI34gbXNnc3RyICItaWZpbGUgpaql16W3peel86TLpM8gLW1hcCClqqXXpbel56XzpKzJrM3XpMekuSIKCiN+IG1zZ2lkICJtbm8tY3lnd2luIGFuZCBtbm8td2luMzIgYXJlIG5vdCBjb21wYXRpYmxlIgojfiBtc2dzdHIgIm1uby1jeWd3aW4gpMggbW5vLXdpbjMyIKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAic2hhcmVkIGFuZCBtZGxsIGFyZSBub3QgY29tcGF0aWJsZSIKI34gbXNnc3RyICJzaGFyZWQgpMggbWRsbCCkyKTPtqbCuKTHpK2k3qS7pPMiCgojfiBtc2dpZCAiLXN0YXRpYyBub3QgdmFsaWQgd2l0aCAtbWNvZmYiCiN+IG1zZ3N0ciAiLXN0YXRpYyCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1zaGFyZWQgbm90IHZhbGlkIHdpdGggLW1jb2ZmIgojfiBtc2dzdHIgIi1zaGFyZWQgpKwgLW1jb2ZmIKTIpMik4qTLu8ik76TspOukzqTPwLWkt6SvpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItc3ltYm9saWMgbm90IHZhbGlkIHdpdGggLW1jb2ZmIgojfiBtc2dzdHIgIi1zeW1ib2xpYyCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1mcGljIGlzIG5vdCB2YWxpZCB3aXRoIC1tY29mZiIKI34gbXNnc3RyICItZnBpYyCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1mUElDIGlzIG5vdCB2YWxpZCB3aXRoIC1tY29mZiIKI34gbXNnc3RyICItZlBJQyCkrCAtbWNvZmYgpMikyKTipMu7yKTvpOyk66TOpM/AtaS3pK+koqTqpN6ku6TzIgoKI34gbXNnaWQgIi1mcGljIG5vdCB2YWxpZCB3aXRoIC1tY29mZiIKI34gbXNnc3RyICItZnBpYyAgLW1jb2ZmIKTIpMik4qTLu8ik76TspOukzqTPwLWkt6SvpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItZlBJQyBub3QgdmFsaWQgd2l0aCAtbWNvZmYiCiN+IG1zZ3N0ciAiLWZQSUMgpKwgLW1jb2ZmIKTIpMik4qTLu8ik76TspOukzqTPwLWkt6SvpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJieF0iCiN+IG1zZ3N0ciAiYnhdIgoKI34gbXNnaWQgImJ4IgojfiBtc2dzdHIgImJ4IgoKI34gbXNnaWQgImN4IgojfiBtc2dzdHIgImN4IgoKI34gbXNnaWQgIi1wIG9wdGlvbiBub3Qgc3VwcG9ydGVkOiB1c2UgLXBnIGluc3RlYWQiCiN+IG1zZ3N0ciAiLXAgpaql16W3peel86TPpbWl3aG8pciktaTspMakpKTepLuk8y4gwuWk76TqpMsgLXBnIKTyu8ikw6TGpK+kwKS1pKQiCgojfiBtc2dpZCAiY2hvb3NlIGVpdGhlciBiaWcgb3IgbGl0dGxlIGVuZGlhbiwgbm90IGJvdGgiCiN+IG1zZ3N0ciAipdOlw6WwpN6kv6TPpeqlyKXrpail86XHpaOloqXzzr7K/aTHpM+kyqSvoaKkyaTBpOmkq6Tywaqk86THpK+kwKS1pKQiCgojfiBtc2dpZCAiY2hvb3NlIGVpdGhlciBtMzQwIG9yIG0yMTAgbm90IGJvdGgiCiN+IG1zZ3N0ciAibTM0MCCk3qS/pM8gbTIxMCCkzs6+yv2kx6TPpMqkr6GipMmkwaTppKuk8sGqpPOkx6SvpMCktaSkIgoKI34gbXNnaWQgInRoZSBtMjEwIGRvZXMgbm90IGhhdmUgbGl0dGxlIGVuZGlhbiBzdXBwb3J0IgojfiBtc2dzdHIgIm0yMTAgpM+l6qXIpeulqKXzpcelo6WipfOltaXdobylyKTyudSkyqSopN6ku6TzIgoKI34gbXNnaWQgIi1waXBlIGlzIG5vdCBzdXBwb3J0ZWQuIgojfiBtc2dzdHIgIi1waXBlIKTPvMLB9aS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIm1heSBub3QgdXNlIGJvdGggLW1mcDY0IGFuZCAtbXNpbmdsZS1mbG9hdCIKI34gbXNnc3RyICItbWZwNjQgpMggLW1zaW5nbGUtZmxvYXQgpM7Ovsr9pPK7yKSmpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICJtYXkgbm90IHVzZSBib3RoIC1tZnA2NCBhbmQgLW00NjUwIgojfiBtc2dzdHIgIi1tZnA2NCCkyCAtbTQ2NTAgpM7Ovsr9pPK7yKSmpLOkyKTPpMekraTepLuk8yIKCiN+IG1zZ2lkICItbWhhcmQtZmxvYXQgbm90IHN1cHBvcnRlZC4iCiN+IG1zZ3N0ciAiLW1oYXJkLWZsb2F0IKTPvMLB9aS1pOykxqSkpN6ku6TzLiIKCiN+IG1zZ2lkICItbXNpbmdsZS1mbG9hdCBhbmQgLW1zb2Z0LWZsb2F0IGNhbiBub3QgYm90aCBiZSBzcGVjaWZpZWQuIgojfiBtc2dzdHIgIi1tc2luZ2xlLWZsb2F0IKTIIC1tc29mdC1mbG9hdCCk8rDsxdmky7vYxOqkuaTrpLOkyKTPpMekraTepLuk86GjIgoKI34gbXNnaWQgIi1wIHByb2ZpbGluZyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiAgVXNlIC1wZyBpbnN0ZWFkLiIKI34gbXNnc3RyICItcCCkx6TOpdel7aXVpaGlpKXrpM+k4qSmxPO2oaS1pOyk3qS7pPOho8LlpO+k6qTLIC1wZyCk8rvIpKSk3qS3pOekpqGjIgoKI34gbXNnaWQgInByb2ZpbGluZyBub3Qgc3VwcG9ydGVkIHdpdGggLW1nXG4iCiN+IG1zZ3N0ciAiLW1nIKTHpM6l16XtpdWloaWkpeukz8TztqGktaTspN6ku6TzXG4iCgojfiBtc2dpZCAiR05VIEMgZG9lcyBub3Qgc3VwcG9ydCAtQyB3aXRob3V0IHVzaW5nIC1FIgojfiBtc2dzdHIgIkdOVSBDIKTPIC1FIKTyyLyk76TKpKQgLUMgpPK8wsH1pLekxqSkpN6ku6TzIgoKI34gbXNnaWQgIi1wZyBhbmQgLWZvbWl0LWZyYW1lLXBvaW50ZXIgYXJlIGluY29tcGF0aWJsZSIKI34gbXNnc3RyICItcGcgpMggLWZvbWl0LWZyYW1lLXBvaW50ZXIgpM+2psK4pMekraTepLuk8yIKCiN+IG1zZ2lkICItRSByZXF1aXJlZCB3aGVuIGlucHV0IGlzIGZyb20gc3RhbmRhcmQgaW5wdXQiCiN+IG1zZ3N0ciAixv7Oz6Ssybi94Mb+zs+kzr7sueekzyAtRSCkrMmszdekx6S5IgoKI34gbXNnaWQgIkNvbXBpbGF0aW9uIG9mIGhlYWRlciBmaWxlIHJlcXVlc3RlZCIKI34gbXNnc3RyICKl2KXDpcCl1aWhpaSl66TOpbOl86XRpaSl66Sszde14aS1pOyk3qS3pL8iCgojfiBtc2dpZCAiLWZqbmkgYW5kIC1mZW1pdC1jbGFzcy1maWxlcyBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1mam5pIKTIIC1mZW1pdC1jbGFzcy1maWxlcyCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIi1mam5pIGFuZCAtZmVtaXQtY2xhc3MtZmlsZSBhcmUgaW5jb21wYXRpYmxlIgojfiBtc2dzdHIgIi1mamluaSCkyCAtZmVtaXQtY2xhc3MtZmlsZSCkz7amwrikx6StpN6ku6TzIgoKI34gbXNnaWQgIml0ZXJhdG9yIGAlcycgaGFzIGRlcml2ZWQgdHlwZSIKI34gbXNnc3RyICLIv8n8u9IgYCVzJyCkz8fJwLi3v6THpLkiCgojfiBtc2dpZCAiJXMgYmVmb3JlIGNoYXJhY3RlciBjb25zdGFudCIKI34gbXNnc3RyICLKuLv6xOq/9KTOwbCkyyAlcyIKCiN+IG1zZ2lkICIlcyBiZWZvcmUgY2hhcmFjdGVyIDAlbyIKI34gbXNnc3RyICLKuLv6IDAlMiRvIKTOwbCkyyAlMSRzIgoKI34gbXNnaWQgIm1vcmUgdGhhbiBvbmUgYGYnIGluIG51bWVyaWMgY29uc3RhbnQiCiN+IG1zZ3N0ciAiv/TE6r/0pMsgMaTEsMq+5aTOIGBmJyIKCiN+IG1zZ2lkICJtb3JlIHRoYW4gb25lIGBsJyBpbiBudW1lcmljIGNvbnN0YW50IgojfiBtc2dzdHIgIr/0xOq/9KTLIDGkxLDKvuWkziBgbCciCgojfiBtc2dpZCAiaW52YWxpZCBpZGVudGlmaWVyIGAlcyciCiN+IG1zZ3N0ciAizLW4+qTKvLHKzLvSIGAlcyciCgojfiBtc2dpZCAicGFyc2UgZXJyb3IgYXQgYC4uJyIKI34gbXNnc3RyICJgLi4nIKTHub3KuLLywM+lqKXpobwiCgojfiBtc2dpZCAibm9uZGlnaXRzIGluIG51bWJlciBhbmQgbm90IGhleGFkZWNpbWFsIgojfiBtc2dzdHIgIr/0w82ky6Wipeml06Wiv/S7+qTHpMqkr6GiMTYgv8qkx6TipMqkpMq4u/oiCgojfiBtc2dpZCAibnVtZXJpYyBjb25zdGFudCBjb250YWlucyBkaWdpdHMgYmV5b25kIHRoZSByYWRpeCIKI34gbXNnc3RyICK/9MPNxOq/9KSstPC/9KTyxLakqKS/paKl6aXTpaK/9Lv6pPK03qTzpMekpKTepLkiCgojfiBtc2dpZCAidHdvIGB1J3MgaW4gaW50ZWdlciBjb25zdGFudCIKI34gbXNnc3RyICLAsL/0xOq/9MPmpMsgMqTEpM4gYHUnIgoKI34gbXNnaWQgIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+s7zxOq/9KSsvarOu6S3pMakpKTepLuk8yIKCiN+IG1zZ2lkICJzeW50YXggZXJyb3I6IGNhbm5vdCBiYWNrIHVwIgojfiBtc2dzdHIgIsq4y6GlqKXpobw6IMTJv++kx6StpN6ku6TzIgoKI34gbXNnaWQgInBhcnNlciBzdGFjayBvdmVyZmxvdyIKI34gbXNnc3RyICK5vcq4svLAz7TvpM6luaW/pcOlr6SssO6k7KTepLekvyIKCiN+IG1zZ2lkICJpbnZhbGlkIGBmb3IgKElURVJBVE9SKScgc3ludGF4IgojfiBtc2dzdHIgIsy1uPqkyiBgZm9yICjIv8n8u9IpJyC5vcq4pMekuSIKCiN+IG1zZ2lkICJgZm9yICglcyknIGluc2lkZSBleHBhbnNpb24gb2Ygc2FtZSBpdGVyYXRvciIKI34gbXNnc3RyICLGsaS4yL/J/LvSpM7G4sKmpMukoqTrIGBmb3IgKCVzKSciCgojfiBtc2dpZCAiY2FzZSBsYWJlbCB3aXRoaW4gc2NvcGUgb2YgY2xlYW51cCBvciB2YXJpYWJsZSBhcnJheSIKI34gbXNnc3RyICJjYXNlIKXppdml66SsoaKy8sLOpN6kv6TPssTK0cfbzvOkzqW5pbOhvKXXxuKky6SipOqk3qS5IgoKI34gbXNnaWQgInBhcnNlIGVycm9yOyBhbHNvIHZpcnR1YWwgbWVtb3J5IGV4Y2VlZGVkIgojfiBtc2dzdHIgIrm9yriy8sDPpail6aG8IC0tIKS1pOmky7K+wdul4aXipeqk8sS2suGkt6TepLekvyIKCiN+IG1zZ2lkICJkdXBsaWNhdGUgYXJyYXkgaW5kZXggaW4gaW5pdGlhbGl6ZXIiCiN+IG1zZ3N0ciAivem0/LK9u9LG4qTLvcXKo6S3pL/H287zpaSl86XHpcOlr6W5IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBpbml0aWFsaXplciIKI34gbXNnc3RyICK9xcqjpLekv73ptPyyvbvSIgoKI34gbXNnaWQgInRodW1iX2xvYWRfZG91YmxlX2Zyb21fYWRkcmVzczogZGVzdGluYXRpb24gaXMgbm90IGEgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiDC0L7dpKyl7KW4pbmlv6THpM+koqTqpN6ku6TzIgoKI34gbXNnaWQgInRodW1iX2xvYWRfZG91YmxlX2Zyb21fYWRkcmVzczogc291cmNlIGlzIG5vdCBhIGNvbXB1dGVkIG1lbW9yeSBhZGRyZXNzIgojfiBtc2dzdHIgInRodW1iX2xvYWRfZG91YmxlX2Zyb21fYWRkcmVzczoguLWkrLfXu7u60aTfpeGl4qXqpaKlyaXspbmkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJ0aHVtYl9sb2FkX2RvdWJsZV9mcm9tX2FkZHJlc3M6IGJhc2UgaXMgbm90IGEgcmVnaXN0ZXIiCiN+IG1zZ3N0ciAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiCl2aG8pbmkrKXspbiluaW/pMekz6SipOqk3qS7pPMiCgojfiBtc2dpZCAidGh1bWJfbG9hZF9kb3VibGVfZnJvbV9hZGRyZXNzOiBVbmhhbmRsZWQgYWRkcmVzcyBjYWxjdWxhdGlvbiIKI34gbXNnc3RyICJ0aHVtYl9sb2FkX2RvdWJsZV9mcm9tX2FkZHJlc3M6ILC3pO+k7KTKpKSloqXJpeylubfXu7siCgojfiBtc2dpZCAiQUNDVU1fSElHSF9SRUdTIGNsYXNzIGluIGxpbWl0X3JlbG9hZF9jbGFzcyIKI34gbXNnc3RyICJsaW1pdF9yZWxvYWRfY2xhc3MgpMsgQUNDVU1fSElHSF9SRUdTIKWvpemluSIKCiN+IG1zZ2lkICJZSF9PUl9BQ0NVTV9ISUdIX1JFR1MgZm91bmQgaW4gbGltaXRfcmVsb2FkX2NsYXNzIgojfiBtc2dzdHIgImxpbWl0X3JlbG9hZF9jbGFzcyCkxyBZSF9PUl9BQ0NVTV9ISUdIX1JFR1MgpKy4q6TEpKuk6qTepLekvyIKCiN+IG1zZ2lkICJZTCBmb3VuZCBpbiBsaW1pdF9yZWxvYWRfY2xhc3MiCiN+IG1zZ3N0ciAibGltaXRfcmVsb2FkX2NsYXNzIKTHIFlMIKSsuKukxKSrpOqk3qS3pL8iCgojfiBtc2dpZCAiQmFkIHJlZ2lzdGVyIGV4dGVuc2lvbiBjb2RlIgojfiBtc2dzdHIgIsnUwLWkyqXspbiluaW/s8jEpaWzobylySIKCiN+IG1zZ2lkICJJbnZhbGlkIG9mZnNldCBpbiB5YmFzZSBhZGRyZXNzaW5nIgojfiBtc2dzdHIgInliYXNlIKWipcml7KW3pfOlsKTLzLW4+qTKpaql1aW7pcOlyCIKCiN+IG1zZ2lkICJJbnZhbGlkIHNoaWZ0IG9wZXJhdG9yIGluIGVtaXRfMTYwMF9jb3JlX3NoaWZ0IgojfiBtc2dzdHIgImVtaXRfMTYwMF9jb3JlX3NoaWZ0IKTHpM7Mtbj6pMqlt6XVpcix6bu7u9IiCgojfiBtc2dpZCAiSW52YWxpZCBtb2RlIGZvciBnZW5fdHN0X3JlZyIKI34gbXNnc3RyICJnZW5fdHN0X3JlZyCky6TIpMOkxqTOzLW4+qTKpeKhvKXJIgoKI34gbXNnaWQgIkludmFsaWQgbW9kZSBmb3IgaW50ZWdlciBjb21wYXJpc29uIGluIGdlbl9jb21wYXJlX3JlZyIKI34gbXNnc3RyICJnZW5fY29tcGFyZV9yZWcgpMekzsCwv/TI5rPTpMukyKTDpMakzsy1uPqkyqXiobylySIKCiN+IG1zZ2lkICJJbnZhbGlkIHJlZ2lzdGVyIGZvciBjb21wYXJlIgojfiBtc2dzdHIgIsy1uPqkysjms9PN0aXspbiluaW/IgoKI34gbXNnaWQgIlBSSU5UX09QRVJBTkQ6IGxldHRlciAlYyB3YXMgZm91bmQgJiBpbnNuIHdhcyBub3QgQ09OU1RfSU5UIgojfiBtc2dzdHIgIlBSSU5UX09QRVJBTkQ6IMq4u/ogJWMgpKy4q6TEpKuk6qGizL/O4aTPIENPTlNUX0lOVCCkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICItbXB0ciVkIG5vdCBhbGxvd2VkIG9uIC1tJWQiCiN+IG1zZ3N0ciAiLW1wdHIlZCCkzyAtbSVkIKTOvuWkx6TPu8ikqKTepLuk8yIKCiN+IG1zZ2lkICJwYXJzZSBlcnJvcnMgaGF2ZSBjb25mdXNlZCBtZSB0b28gbXVjaCIKI34gbXNnc3RyICK5vcq4svLAz6WopemhvKTHoaKkq6TKpOq6rs3wpLekxqS3pN6kpKTepLekvyIKCiN+IG1zZ2lkICJ2aXJ0dWFsIG1lbW9yeSBleGhhdXN0ZWQiCiN+IG1zZ3N0ciAisr7B26XhpeKl6qTyu8ikpLLMpL+kt6TepLekvyIKCiN+IG1zZ2lkICJkZXN0cnVjdG9yIGZvciBhbGllbiBjbGFzcyBgJXMnIGNhbm5vdCBiZSBhIG1lbWJlciIKI34gbXNnc3RyICLCvqTOpa+l6aW5IGAlcycgpM6lx6W5pcil6aWvpb+k8qGipeGl86XQpMukz6THpK2k3qS7pPMiCgojfiBtc2dpZCAiY29uc3RydWN0b3IgZm9yIGFsaWVuIGNsYXNzIGAlcycgY2Fubm90IGJlIGEgbWVtYmVyIgojfiBtc2dzdHIgIsK+pM6lr6XppbkgYCVzJyCkzqXHpbmlyKXppa+lv6TyoaKl4aXzpdCky6TPpMekraTepLuk8yIKCiN+IG1zZ2lkICJ0cnlpbmcgdG8gbWFrZSBjbGFzcyBgJXMnIGEgZnJpZW5kIG9mIGdsb2JhbCBzY29wZSIKI34gbXNnc3RyICKlr6XppbkgYCVzJyCk8sLnsOiluaWzobyl16TOIGZyaWVuZCCky6S3pOikpqTIpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgaW52YWxpZGx5IGRlY2xhcmVkIG1ldGhvZCB0eXBlIgojfiBtc2dzdHIgIqXRpeml4aW/pM+l4aW9pcOlyaTOt7+k8snUwLWky8DruMCkt6TepLekvyIKCiN+IG1zZ2lkICJwYXJhbWV0ZXIgaW52YWxpZGx5IGRlY2xhcmVkIG9mZnNldCB0eXBlIgojfiBtc2dzdHIgIqXRpeml4aW/pKylqqXVpbulw6XIpM63v6TyydTAtaTLwOu4wKS3pN6kt6S/IgoKI34gbXNnaWQgImB2b2lkJyBpbiBwYXJhbWV0ZXIgbGlzdCBtdXN0IGJlIGVudGlyZSBsaXN0IgojfiBtc2dzdHIgIqXRpeml4aW/peqluaXIxuKkziBgdm9pZCcgpM+l6qW5pcjBtMLOpMekyqSxpOyk0KTKpOqk3qS7pPMiCgojfiBtc2dpZCAibm8gZmlsZSBzcGVjaWZpZWQgd2l0aCAtZmR1bXAtdHJhbnNsYXRpb24tdW5pdCIKI34gbXNnc3RyICItZmR1bXAtdHJhbnNsYXRpb24tdW5pdCCkx7vYxOqktaTspL+l1aWhpaSl66SspKKk6qTepLuk8yIKCiN+IG1zZ2lkICIoeW91IHJlYWxseSB3YW50IHRvIGluaXRpYWxpemUgaXQgc2VwYXJhdGVseSkiCiN+IG1zZ3N0ciAiKMvcxfaky6S9pKakt6S/pKSkzqTHpKKk7KTQoaLKrLPkpLekxr3ptPyyvaS3pMakr6TApLWkpCkiCgojfiBtc2dpZCAiYG9wZXJhdG9yIG5ldycgdGFrZXMgdHlwZSBgc2l6ZV90JyBwYXJhbWV0ZXIiCiN+IG1zZ3N0ciAiYG9wZXJhdG9yIG5ldycgpM8gYHNpemVfdCcgpdGl6aXhpb+k8qTIpOqk3qS5IgoKI34gbXNnaWQgImBvcGVyYXRvciBuZXcnIHRha2VzIHR5cGUgYHNpemVfdCcgYXMgZmlyc3QgcGFyYW1ldGVyIgojfiBtc2dzdHIgImBvcGVyYXRvciBuZXcnIKTPwuiw7LD6v/SkyKS3pMYgYHNpemVfdCcgpPKkyKTqpN6kuSIKCiN+IG1zZ2lkICJgb3BlcmF0b3IgZGVsZXRlJyBtdXN0IHJldHVybiB0eXBlIGB2b2lkJyIKI34gbXNnc3RyICJgb3BlcmF0b3IgZGVsZXRlJyCkzszhpOq3v6TPIGB2b2lkJyCkx6TKpLGk7KTQpMqk6qTepLuk8yIKCiN+IG1zZ2lkICJgb3BlcmF0b3IgZGVsZXRlJyB0YWtlcyB0eXBlIGB2b2lkIConIGFzIGZpcnN0IHBhcmFtZXRlciIKI34gbXNnc3RyICJgb3BlcmF0b3IgZGVsZXRlJyCkz8LosOyw+r/0pMikt6TGIGB2b2lkIConILe/pPKkyKTqpN6kuSIKCiN+IG1zZ2lkICJ0b28gbWFueSBhcmd1bWVudHMgaW4gZGVjbGFyYXRpb24gb2YgYG9wZXJhdG9yIGRlbGV0ZSciCiN+IG1zZ3N0ciAiYG9wZXJhdG9yIGRlbGV0ZScgpM7A67jAxuKky8K/pLmkrqTrsPq/9CIKCiN+IG1zZ2lkICJgLi4uJyBpbnZhbGlkIGluIHNwZWNpZmljYXRpb24gb2YgYG9wZXJhdG9yIGRlbGV0ZSciCiN+IG1zZ3N0ciAiYC4uLicgYG9wZXJhdG9yIGRlbGV0ZScgpM67xc3NxuKkx8y1uPqkx6S5IgoKI34gbXNnaWQgImBkZWZhdWx0JyBsYWJlbCB3aXRoaW4gc2NvcGUgb2YgY2xlYW51cCBvciB2YXJpYWJsZSBhcnJheSIKI34gbXNnc3RyICJgZGVmYXVsdCcgpeml2aXrpKyhorLyws6k3qS/pM+yxMrRx9vO86TOpbmls6G8pdfG4qTLpKKk6qTepLkiCgojfiBtc2dpZCAiYmFkIGFycmF5IGluaXRpYWxpemVyIgojfiBtc2dzdHIgIsfbzvOkzsnUwLWkyr3ptPyyvSIKCiN+IG1zZ2lkICJlbmQgb2YgZmlsZSBlbmNvdW50ZXJlZCBpbnNpZGUgc3RyaW5nIGNvbnN0YW50IgojfiBtc2dzdHIgIsq4u/rO88Tqv/SkzsPmpMel1aWhpaSl66TOvarDvKTyuKG90KS3pN6kt6S/IgoKI34gbXNnaWQgImVuZCBvZiBmaWxlIGVuY291bnRlcmVkIGluc2lkZSBjaGFyYWN0ZXIgY29uc3RhbnQiCiN+IG1zZ3N0ciAiyri7+sTqv/SkzsPmpMel1aWhpaSl66TOvarDvKTyuKG90KS3pN6kt6S/IgoKI34gbXNnaWQgImludmFsaWQgI3ByYWdtYSB2dGFibGUiCiN+IG1zZ3N0ciAizLW4+qTKICNwcmFnbWEgdnRhYmxlIgoKI34gbXNnaWQgImludmFsaWQgYCNwcmFnbWEgaW1wbGVtZW50YXRpb24nIgojfiBtc2dzdHIgIsy1uPqkyiBgI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiciCgojfiBtc2dpZCAiJXMgYXQgZW5kIG9mIHNhdmVkIHRleHQiCiN+IG1zZ3N0ciAiyt3CuLrRpN+lxqWtpbmlyKTOy/bI+KTHJXMiCgojfiBtc2dpZCAiY29tcGxleCBpbnRlZ2VyIGNvbnN0YW50IGlzIHRvbyB3aWRlIGZvciBgX19jb21wbGV4IGludCciCiN+IG1zZ3N0ciAiyqPBx7/0t7/AsL/0xOq/9KTPIGBfX2NvbXBsZXggaW50JyCky6TIpMOkxrmtpLmkrqTepLkiCgojfiBtc2dpZCAicmVxdWVzdCBmb3IgbWVtYmVyIGAlcycgaXMgYW1iaWd1b3VzIGluIG11bHRpcGxlIGluaGVyaXRhbmNlIGxhdHRpY2UiCiN+IG1zZ3N0ciAizde14aS1pOykv6XhpfOl0CBgJXMnIKTPwr+9xbfRvrWlsKXppdWkzsPmpMfbo8vmpMekuSIKCiN+IG1zZ2lkICJJbnRlcm5hbCBjb21waWxlciBlcnJvci4iCiN+IG1zZ3N0ciAixuLJ9KWzpfOl0aWkpemlqKXpobwuIgoKI34gbXNnaWQgIlBsZWFzZSBzdWJtaXQgYSBmdWxsIGJ1ZyByZXBvcnQuIgojfiBtc2dzdHIgIr7cpLekpL71trek8qXQpbCl7KXdobylyKTIpLekxsH3pMOkxqSvpMCktaSkoaMiCgojfiBtc2dpZCAiZHVwbGljYXRlIGxhYmVsIGAlcycgaW4gc3dpdGNoIHN0YXRlbWVudCIKI34gbXNnc3RyICJzd2l0Y2ggyrikzsPmpMel6aXZpesgYCVzJyCkrL3FyqOkt6TGpKSk3qS5IgoKI34gbXNnaWQgImR1cGxpY2F0ZSBsYWJlbCAoJWQpIGluIHN3aXRjaCBzdGF0ZW1lbnQiCiN+IG1zZ3N0ciAic3dpdGNoIMq4pM7D5qTHpeml2aXrICglZCkgpKy9xcqjpLekxqSkpN6kuSIKCiN+IG1zZ2lkICJyYW5nZSB2YWx1ZXMgYCVzJyBhbmQgYCVzJyByZXZlcnNlZCIKI34gbXNnc3RyICLIz7DPpM7DzSBgJXMnIKTIIGAlcycgpKy11aTHpLkiCgojfiBtc2dpZCAicmFuZ2UgdmFsdWVzIHJldmVyc2VkIgojfiBtc2dzdHIgIsjPsM+kzsPNpKy11aTHpLkiCgojfiBtc2dpZCAiYmFkIGlzX2Vycm9yKCVkKSBpbiB2X21lc3NhZ2UiCiN+IG1zZ3N0ciAidl9tZXNzYWdlIMPmIMnUwLWkyiBpc19lcnJvciglZCkiCgojfiBtc2dpZCAiJ2RlZmluZWQnIHdpdGhvdXQgYW4gaWRlbnRpZmllciIKI34gbXNnc3RyICK8scrMu9KkzqTKpKQgJ2RlZmluZWQnIgoKI34gbXNnaWQgImluY2x1ZGVkIGZpbGUgYCVzJyBleGlzdHMgYnV0IGlzIG5vdCByZWFkYWJsZSIKI34gbXNnc3RyICJpbmNsdWRlIKS1pOykv6XVpaGlpKXrIGAlcycgpM+hosK4ut+kt6TepLmkrMbJpOGk3qS7pPMiCgojfiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkiCiN+IG1zZ3N0ciAiJXMgpM+lx6Wjpeylr6XIpeqkx6S5IgoKI34gbXNnaWQgIm1hY3JvIGFyZ3VtZW50IFwiJXNcIiBpcyBzdHJpbmdpZmllZCIKI34gbXNnc3RyICKl3qWvpe2w+r/0IFwiJXNcIiCkz8q4u/rO87K9pLWk7KTepLkiCgojfiBtc2dpZCAiYCMjJyBhdCBzdGFydCBvZiBtYWNybyBkZWZpbml0aW9uIgojfiBtc2dzdHIgImAjIycgpKyl3qWvpe3E6rXBpM67z6ThpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJgIyMnIGF0IGVuZCBvZiBtYWNybyBkZWZpbml0aW9uIgojfiBtc2dzdHIgImAjIycgpKyl3qWvpe3E6rXBpM69qqTqpMukoqTqpN6kuSIKCiN+IG1zZ2lkICJlbXB0eSBvYmplY3QtbGlrZSBtYWNybyB3ZW50IHRocm91Z2ggZnVsbCAjZGVmaW5lIgojfiBtc2dzdHIgIrb1pM6lqqXWpbilp6WvpcikzqTopKakyqXepa+l7aTPICNkZWZpbmUgwbSkxqTyxMyk6si0pLGk3qS3pL8iCgojfiBtc2dpZCAiZmlyc3QgdG9rZW4gPSAlZCBub3QgJWQgaW4gY29sbGVjdF9mb3JtYWxfcGFyYW1ldGVycyIKI34gbXNnc3RyICJjb2xsZWN0X2Zvcm1hbF9wYXJhbWV0ZXJzIMPmuse96aTOpcihvKWvpfMgPSAlZCAoJWQgpMekz6TKpKQpIgoKI34gbXNnaWQgImltcG9zc2libGUgdG9rZW4gaW4gbWFjcm8gYXJndW1lbnQgbGlzdCIKI34gbXNnc3RyICKl3qWvpe2w+r/0peqluaXIpMukoqTqxsCkyqSkpcihvKWvpfMiCgojfiBtc2dpZCAiaWxsZWdhbCB0b2tlbiBpbiBtYWNybyBhcmd1bWVudCBsaXN0IgojfiBtc2dzdHIgIqXepa+l7bD6v/Sl6qW5pciky8nUwLWkyqXIobylr6XzIgoKI34gbXNnaWQgImFub3RoZXIgcGFyYW1ldGVyIGZvbGxvd3MgXCIuLi5cIiIKI34gbXNnc3RyICJcIi4uLlwiIKTOuOWhoqS1pOmky6XRpeml4aW/pKzCs6SkpMakpKTepLkiCgojfiBtc2dpZCAiY29sbGVjdF9wYXJhbXM6IGFyZ2M9JWQgYXJnc2xlbj0wIgojfiBtc2dzdHIgImNvbGxlY3RfcGFyYW1zOiBhcmdjPSVkIGFyZ3NsZW49MCIKCiN+IG1zZ2lkICJDOTkgZG9lcyBub3QgcGVybWl0IHVzZSBvZiBfX1ZBX0FSR1NfXyBhcyBhIG1hY3JvIGFyZ3VtZW50IG5hbWUiCiN+IG1zZ3N0ciAiQzk5IKTPpd6lr6XtsPq/9My+pMikt6TGIF9fVkFfQVJHU19fIKTOu8jN0aTPx6ek4aTppOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIkM4OSBkb2VzIG5vdCBwZXJtaXQgdmFyYXJncyBtYWNyb3MiCiN+IG1zZ3N0ciAiQzg5IKTHpM8gdmFyYXJncyCl3qWvpe2kz8enpOGk6aTspMakpKTepLuk8yIKCiN+IG1zZ2lkICJjb2xsZWN0X3BhcmFtczogaW1wb3NzaWJsZSB0b2tlbiB0eXBlICVkIgojfiBtc2dzdHIgImNvbGxlY3RfcGFyYW1zOiCkoqTqxsCkyqSkpcihvKWvpfO3vyAlZCIKCiN+IG1zZ2lkICJhdHRlbXB0IHRvIHVzZSBwb2lzb25lZCBgJXMnLiIKI34gbXNnc3RyICKx+MD3pLWk7KS/IGAlcycgpM7N+M3RpPK77qS3pN6kuaGjIgoKI34gbXNnaWQgIm1hY3JvZXhwYW5kOiB1bmV4cGVjdGVkIHRva2VuICVkICh3YW50ZWQgTFBBUkVOKSIKI34gbXNnc3RyICJtYWNyb2V4cGFuZDogzb20/KS3pMqkpKXIobylr6XzICVkIChMUEFSRU4gpM6kz6S6KSIKCiN+IG1zZ2lkICJ1bnRlcm1pbmF0ZWQgbWFjcm8gY2FsbCIKI34gbXNnc3RyICK9qsO8pLekxqSkpMqkpKXepa+l7bjGpNO90KS3IgoKI34gbXNnaWQgIm1hY3JvIGAlcycgdXNlZCB3aXRoIGp1c3Qgb25lIGFyZyIKI34gbXNnc3RyICKl3qWvpe0gYCVzJyCkzrD6v/SkrLDspMSkt6SrpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJtYWNybyBgJXMnIHVzZWQgd2l0aCBvbmx5ICVkIGFyZ3MiCiN+IG1zZ3N0ciAipd6lr6XtIGAlcycgpM6w+r/0KCVkILjEKaSsvq+kyqS5pK6k3qS5IgoKI34gbXNnaWQgIm1hY3JvIGAlcycgdXNlZCB3aXRoIHRvbyBtYW55ICglZCkgYXJncyIKI34gbXNnc3RyICKl3qWvpe0gYCVzJyCkzrD6v/QoJWQguMQppKzCv6S5pK6k3qS5IgoKI34gbXNnaWQgIiIKI34gIlN3aXRjaGVzOlxuIgojfiAiICAtaW5jbHVkZSA8ZmlsZT4gICAgICAgICAgIEluY2x1ZGUgdGhlIGNvbnRlbnRzIG9mIDxmaWxlPiBiZWZvcmUgb3RoZXIgZmlsZXNcbiIKI34gIiAgLWltYWNyb3MgPGZpbGU+ICAgICAgICAgICBBY2NlcHQgZGVmaW5pdGlvbiBvZiBtYWNyb3MgaW4gPGZpbGU+XG4iCiN+ICIgIC1pcHJlZml4IDxwYXRoPiAgICAgICAgICAgU3BlY2lmeSA8cGF0aD4gYXMgYSBwcmVmaXggZm9yIG5leHQgdHdvIG9wdGlvbnNcbiIKI34gIiAgLWl3aXRocHJlZml4IDxkaXI+ICAgICAgICBBZGQgPGRpcj4gdG8gdGhlIGVuZCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtaXdpdGhwcmVmaXhiZWZvcmUgPGRpcj4gIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBtYWluIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtaXN5c3RlbSA8ZGlyPiAgICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgc3RhcnQgb2YgdGhlIHN5c3RlbSBpbmNsdWRlIHBhdGhcbiIKI34gIiAgLWlkaXJhZnRlciA8ZGlyPiAgICAgICAgICBBZGQgPGRpcj4gdG8gdGhlIGVuZCBvZiB0aGUgc3lzdGVtIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtSSA8ZGlyPiAgICAgICAgICAgICAgICAgIEFkZCA8ZGlyPiB0byB0aGUgZW5kIG9mIHRoZSBtYWluIGluY2x1ZGUgcGF0aFxuIgojfiAiICAtSS0gICAgICAgICAgICAgICAgICAgICAgIEZpbmUtZ3JhaW5lZCBpbmNsdWRlIHBhdGggY29udHJvbDsgc2VlIGluZm8gZG9jc1xuIgojfiAiICAtbm9zdGRpbmMgICAgICAgICAgICAgICAgIERvIG5vdCBzZWFyY2ggc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3JpZXNcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpcnMgc3BlY2lmaWVkIHdpdGggLWlzeXN0ZW0gd2lsbCBzdGlsbCBiZSB1c2VkKVxuIgojfiAiICAtbm9zdGRpbmMrKyAgICAgICAgICAgICAgIERvIG5vdCBzZWFyY2ggc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIEMrK1xuIgojfiAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgIFB1dCBvdXRwdXQgaW50byA8ZmlsZT5cbiIKI34gIiAgLXBlZGFudGljICAgICAgICAgICAgICAgICBJc3N1ZSBhbGwgd2FybmluZ3MgZGVtYW5kZWQgYnkgc3RyaWN0IEFOU0kgQ1xuIgojfiAiICAtcGVkYW50aWMtZXJyb3JzICAgICAgICAgIElzc3VlIC1wZWRhbnRpYyB3YXJuaW5ncyBhcyBlcnJvcnMgaW5zdGVhZFxuIgojfiAiICAtdHJhZGl0aW9uYWwgICAgICAgICAgICAgIEZvbGxvdyBLJlIgcHJlLXByb2Nlc3NvciBiZWhhdmlvdXJcbiIKI34gIiAgLXRyaWdyYXBocyAgICAgICAgICAgICAgICBTdXBwb3J0IEFOU0kgQyB0cmlncmFwaHNcbiIKI34gIiAgLWxhbmctYyAgICAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gQ1xuIgojfiAiICAtbGFuZy1jODkgICAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDODlcbiIKI34gIiAgLWxhbmctYysrICAgICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gQysrXG4iCiN+ICIgIC1sYW5nLW9iamMgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIE9iamVjdGl2ZUNcbiIKI34gIiAgLWxhbmctb2JqYysrICAgICAgICAgICAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gT2JqZWN0aXZlQysrXG4iCiN+ICIgIC1sYW5nLWFzbSAgICAgICAgICAgICAgICAgQXNzdW1lIHRoYXQgdGhlIGlucHV0IHNvdXJjZXMgYXJlIGluIGFzc2VtYmxlclxuIgojfiAiICAtbGFuZy1mb3J0cmFuXHRcdCAgICBBc3N1bWUgdGhhdCB0aGUgaW5wdXQgc291cmNlcyBhcmUgaW4gRm9ydHJhblxuIgojfiAiICAtbGFuZy1jaGlsbCAgICAgICAgICAgICAgIEFzc3VtZSB0aGF0IHRoZSBpbnB1dCBzb3VyY2VzIGFyZSBpbiBDaGlsbFxuIgojfiAiICAtc3RkPTxzdGQgbmFtZT4gICAgICAgICAgIFNwZWNpZnkgdGhlIGNvbmZvcm1hbmNlIHN0YW5kYXJkOyBvbmUgb2Y6XG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ251ODksIGdudTk5LCBjODksIGM5OSwgaXNvOTg5OToxOTkwLFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzbzk4OTk6MTk5NDA5LCBpc285ODk5OjE5OTlcbiIKI34gIiAgLSsgICAgICAgICAgICAgICAgICAgICAgICBBbGxvdyBwYXJzaW5nIG9mIEMrKyBzdHlsZSBmZWF0dXJlc1xuIgojfiAiICAtdyAgICAgICAgICAgICAgICAgICAgICAgIEluaGliaXQgd2FybmluZyBtZXNzYWdlc1xuIgojfiAiICAtV3RyaWdyYXBocyAgICAgICAgICAgICAgIFdhcm4gaWYgdHJpZ3JhcGhzIGFyZSBlbmNvdW50ZXJlZFxuIgojfiAiICAtV25vLXRyaWdyYXBocyAgICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRyaWdyYXBoc1xuIgojfiAiICAtV2NvbW1lbnR7c30gICAgICAgICAgICAgIFdhcm4gaWYgb25lIGNvbW1lbnQgc3RhcnRzIGluc2lkZSBhbm90aGVyXG4iCiN+ICIgIC1Xbm8tY29tbWVudHtzfSAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgY29tbWVudHNcbiIKI34gIiAgLVd0cmFkaXRpb25hbCAgICAgICAgICAgICBXYXJuIGlmIGEgbWFjcm8gYXJndW1lbnQgaXMvd291bGQgYmUgdHVybmVkIGludG9cbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBzdHJpbmcgaWYgLXRyYWRpdGlvbmFsIGlzIHNwZWNpZmllZFxuIgojfiAiICAtV25vLXRyYWRpdGlvbmFsICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHN0cmluZ2lmaWNhdGlvblxuIgojfiAiICAtV3VuZGVmICAgICAgICAgICAgICAgICAgIFdhcm4gaWYgYW4gdW5kZWZpbmVkIG1hY3JvIGlzIHVzZWQgYnkgI2lmXG4iCiN+ICIgIC1Xbm8tdW5kZWYgICAgICAgICAgICAgICAgRG8gbm90IHdhcm4gYWJvdXQgdGVzdGluZyB1bmRlZmluZWQgbWFjcm9zXG4iCiN+ICIgIC1XaW1wb3J0ICAgICAgICAgICAgICAgICAgV2FybiBhYm91dCB0aGUgdXNlIG9mIHRoZSAjaW1wb3J0IGRpcmVjdGl2ZVxuIgojfiAiICAtV25vLWltcG9ydCAgICAgICAgICAgICAgIERvIG5vdCB3YXJuIGFib3V0IHRoZSB1c2Ugb2YgI2ltcG9ydFxuIgojfiAiICAtV2Vycm9yICAgICAgICAgICAgICAgICAgIFRyZWF0IGFsbCB3YXJuaW5ncyBhcyBlcnJvcnNcbiIKI34gIiAgLVduby1lcnJvciAgICAgICAgICAgICAgICBEbyBub3QgdHJlYXQgd2FybmluZ3MgYXMgZXJyb3JzXG4iCiN+ICIgIC1XYWxsICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGFsbCBwcmVwcm9jZXNzb3Igd2FybmluZ3NcbiIKI34gIiAgLU0gICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBtYWtlIGRlcGVuZGVuY2llc1xuIgojfiAiICAtTU0gICAgICAgICAgICAgICAgICAgICAgIEFzIC1NLCBidXQgaWdub3JlIHN5c3RlbSBoZWFkZXIgZmlsZXNcbiIKI34gIiAgLU1EICAgICAgICAgICAgICAgICAgICAgICBBcyAtTSwgYnV0IHB1dCBvdXRwdXQgaW4gYSAuZCBmaWxlXG4iCiN+ICIgIC1NTUQgICAgICAgICAgICAgICAgICAgICAgQXMgLU1ELCBidXQgaWdub3JlIHN5c3RlbSBoZWFkZXIgZmlsZXNcbiIKI34gIiAgLU1HICAgICAgICAgICAgICAgICAgICAgICBUcmVhdCBtaXNzaW5nIGhlYWRlciBmaWxlIGFzIGdlbmVyYXRlZCBmaWxlc1xuIgojfiAiICAtZzMgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGUgI2RlZmluZSBhbmQgI3VuZGVmIGRpcmVjdGl2ZXMgaW4gdGhlIG91dHB1dFxuIgojfiAiICAtRDxtYWNybz4gICAgICAgICAgICAgICAgIERlZmluZSBhIDxtYWNybz4gd2l0aCBzdHJpbmcgJzEnIGFzIGl0cyB2YWx1ZVxuIgojfiAiICAtRDxtYWNybz49PHZhbD4gICAgICAgICAgIERlZmluZSBhIDxtYWNybz4gd2l0aCA8dmFsPiBhcyBpdHMgdmFsdWVcbiIKI34gIiAgLUE8cXVlc3Rpb24+ICg8YW5zd2VyPikgICBBc3NlcnQgdGhlIDxhbnN3ZXI+IHRvIDxxdWVzdGlvbj5cbiIKI34gIiAgLUEtPHF1ZXN0aW9uPiAoPGFuc3dlcj4pICBEaXNhYmxlIHRoZSA8YW5zd2VyPiB0byA8cXVlc3Rpb24+XG4iCiN+ICIgIC1VPG1hY3JvPiAgICAgICAgICAgICAgICAgVW5kZWZpbmUgPG1hY3JvPiBcbiIKI34gIiAgLXYgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoZSB2ZXJzaW9uIG51bWJlclxuIgojfiAiICAtSCAgICAgICAgICAgICAgICAgICAgICAgIFByaW50IHRoZSBuYW1lIG9mIGhlYWRlciBmaWxlcyBhcyB0aGV5IGFyZSB1c2VkXG4iCiN+ICIgIC1DICAgICAgICAgICAgICAgICAgICAgICAgRG8gbm90IGRpc2NhcmQgY29tbWVudHNcbiIKI34gIiAgLWRNICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGEgbGlzdCBvZiBtYWNybyBkZWZpbml0aW9ucyBhY3RpdmUgYXQgZW5kXG4iCiN+ICIgIC1kRCAgICAgICAgICAgICAgICAgICAgICAgUHJlc2VydmUgbWFjcm8gZGVmaW5pdGlvbnMgaW4gb3V0cHV0XG4iCiN+ICIgIC1kTiAgICAgICAgICAgICAgICAgICAgICAgQXMgLWREIGV4Y2VwdCB0aGF0IG9ubHkgdGhlIG5hbWVzIGFyZSBwcmVzZXJ2ZWRcbiIKI34gIiAgLWRJICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlICNpbmNsdWRlIGRpcmVjdGl2ZXMgaW4gdGhlIG91dHB1dFxuIgojfiAiICAtZnRhYnN0b3A9PG51bWJlcj4gICAgICAgIERpc3RhbmNlIGJldHdlZW4gdGFiIHN0b3BzIGZvciBjb2x1bW4gcmVwb3J0aW5nXG4iCiN+ICIgIC1QICAgICAgICAgICAgICAgICAgICAgICAgRG8gbm90IGdlbmVyYXRlICNsaW5lIGRpcmVjdGl2ZXNcbiIKI34gIiAgLSQgICAgICAgICAgICAgICAgICAgICAgICBEbyBub3QgYWxsb3cgJyQnIGluIGlkZW50aWZpZXJzXG4iCiN+ICIgIC1yZW1hcCAgICAgICAgICAgICAgICAgICAgUmVtYXAgZmlsZSBuYW1lcyB3aGVuIGluY2x1ZGluZyBmaWxlcy5cbiIKI34gIiAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICBEaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKI34gIiAgLWggb3IgLS1oZWxwICAgICAgICAgICAgICBEaXNwbGF5IHRoaXMgaW5mb3JtYXRpb25cbiIKI34gbXNnc3RyICIiCiN+ICKluaWkpcOlwTpcbiIKI34gIiAgLWluY2x1ZGUgPGZpbGU+ICAgICAgICAgICDCvqTOpdWloaWkpeuwysGwpMsgPGZpbGU+IKTOxuLNxqTyIGluY2x1ZGVcbiIKI34gIiAgLWltYWNyb3MgPGZpbGU+ICAgICAgICAgICA8ZmlsZT4gw+al3qWvpe2kzsTqtcGk8rz1zf2kuaTrXG4iCiN+ICIgIC1pcHJlZml4IDxwYXRoPiAgICAgICAgICAgsMq536TOxvOkxKTOpaql16W3peel86TLIDxwYXRoPiDA3MasvK2k8qTEpLGk61xuIgojfiAiICAtaXdpdGhwcmVmaXggPGRpcj4gICAgICAgIKW3pbmlxqXgpaSl86WvpeuhvKXJpdGluaTOy/bI+KTLIDxkaXI+IKTyxMmyw1xuIgojfiAiICAtaXdpdGhwcmVmaXhiZWZvcmUgPGRpcj4gILznpaSl86WvpeuhvKXJpdGluaTOy/bI+KTLIDxkaXI+IKTyxMmyw1xuIgojfiAiICAtaXN5c3RlbSA8ZGlyPiAgICAgICAgICAgIKW3pbmlxqXgpaSl86WvpeuhvKXJpdGluaTOuse96aTLIDxkaXI+IKTyxMmyw1xuIgojfiAiICAtaWRpcmFmdGVyIDxkaXI+ICAgICAgICAgIKW3pbmlxqXgpaSl86WvpeuhvKXJpdGluaTOy/bI+KTLIDxkaXI+IKTyxMmyw1xuIgojfiAiICAtSSA8ZGlyPiAgICAgICAgICAgICAgICAgILznpaSl86WvpeuhvKXJpdGluaTOy/bI+KTLIDxkaXI+IKTyxMmyw1xuIgojfiAiICAtSS0gICAgICAgICAgICAgICAgICAgICAgIKStpOG62aSrpMqlpKXzpa+l66G8pcml0aW5wKm45jsgaW5mbyCk8rirpOhcbiIKI34gIiAgLW5vc3RkaW5jICAgICAgICAgICAgICAgICClt6W5pcal4KWkpfOlr6XrobylyaXHpaOl7KWvpcil6qTyw7WktaTKpKRcbiIKI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC1pc3lzdGVtIKTHu9jE6qS1pOykv6Tpu8jN0aS1pOyk3qS5KVxuIgojfiAiICAtbm9zdGRpbmMrKyAgICAgICAgICAgICAgIEMrKyDN0aW3pbmlxqXgpaSl86WvpeuhvKXJpcelo6Xspa+lyKXqpPLDtaS1pMqkpFxuIgojfiAiICAtbyA8ZmlsZT4gICAgICAgICAgICAgICAgIDxmaWxlPiCky8LQpLekxr3Qzs+kuaTrXG4iCiN+ICIgIC1wZWRhbnRpYyAgICAgICAgICAgICAgICAguLfMqaTKIEFOU0kgQyCkzs3XteGkuaTrt9m58KTyyK+51FxuIgojfiAiICAtcGVkYW50aWMtZXJyb3JzICAgICAgICAgIC1wZWRhbnRpYyCkzrfZufCk8qWopemhvKTIpLekxsivudRcbiIKI34gIiAgLXRyYWRpdGlvbmFsICAgICAgICAgICAgICBLJlIgpdel6qXXpe2lu6XDpbWkzr+2pOvJ8aSkpMvEyb/vXG4iCiN+ICIgIC10cmlncmFwaHMgICAgICAgICAgICAgICAgQU5TSSBDIKXIpemlpKWwpeml1aTypbWl3aG8pchcbiIKI34gIiAgLWxhbmctYyAgICAgICAgICAgICAgICAgICDG/s7PpPIgQyCkwKTIsr7E6qS5pOtcbiIKI34gIiAgLWxhbmctYzg5ICAgICAgICAgICAgICAgICDG/s7PpPIgQzg5IKTApMiyvsTqpLmk61xuIgojfiAiICAtbGFuZy1jKysgICAgICAgICAgICAgICAgIMb+zs+k8iBDKysgpMCkyLK+xOqkuaTrXG4iCiN+ICIgIC1sYW5nLW9iamMgICAgICAgICAgICAgICAgxv7Oz6TyIE9iamVjdGl2ZUMgpMCkyLK+xOqkuaTrXG4iCiN+ICIgIC1sYW5nLW9iamMrKyAgICAgICAgICAgICAgxv7Oz6TyIE9iamVjdGl2ZUMrKyCkwKTIsr7E6qS5pOtcbiIKI34gIiAgLWxhbmctYXNtICAgICAgICAgICAgICAgICDG/s7PpPIgYXNzZW1ibGVyIKTApMiyvsTqpLmk61xuIgojfiAiICAtbGFuZy1mb3J0cmFuICAgICAgICAgICAgIMb+zs+k8iBGb3J0cmFuIKTApMiyvsTqpLmk61xuIgojfiAiICAtbGFuZy1jaGlsbCAgICAgICAgICAgICAgIMb+zs+k8iBDaGlsbCCkwKTIsr7E6qS5pOtcbiIKI34gIiAgLXN0ZD08c3RkIG5hbWU+ICAgICAgICAgICDFrLnnpLmk68m4veCk8rDKsrykq6TpsOykxLvYxOo7XG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ251ODksIGdudTk5LCBjODksIGM5OSwgaXNvOTg5OToxOTkwLFxuIgojfiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzbzk4OTk6MTk5NDA5LCBpc285ODk5OjE5OTlcbiIKI34gIiAgLSsgICAgICAgICAgICAgICAgICAgICAgICBDKysgpbmlv6WkpeukzqXRobyluKXzpbCk8rX2ssRcbiIKI34gIiAgLXcgICAgICAgICAgICAgICAgICAgICAgICC32bnwpeGlw6W7obyluKTyzd7AqaS5pOtcbiIKI34gIiAgLVd0cmlncmFwaHMgICAgICAgICAgICAgICClyKXppaSlsKXppdWk8rirpMSksaS/pOm32bnwpLmk61xuIgojfiAiICAtV25vLXRyaWdyYXBocyAgICAgICAgICAgIKXIpemlpKWwpeml1aTyuKukxKSxpMak4rfZufCkt6TKpKRcbiIKI34gIiAgLVdjb21tZW50e3N9ICAgICAgICAgICAgICCls6XhpfOlyKTOw+aky6WzpeGl86XIpKykoqTspNC32bnwpLmk61xuIgojfiAiICAtV25vLWNvbW1lbnR7c30gICAgICAgICAgIKWzpeGl86XIpMu02KS5pOu32bnwpPKkt6TKpKRcbiIKI34gIiAgLVd0cmFkaXRpb25hbCAgICAgICAgICAgICAtdHJhZGl0aW9uYWwgpKy72MTqpLWk7KS/vuy556Gipd6lr6XtsPq/9KSsXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMq4u/rO86TLytG5uaS1pOyk66TopKakyqTpt9m58KS5pOtcbiIKI34gIiAgLVduby10cmFkaXRpb25hbCAgICAgICAgICDKuLv6zvO72MTqpMu02KS3pMa32bnwpLekyqSkXG4iCiN+ICIgIC1XdW5kZWYgICAgICAgICAgICAgICAgICAgI2lmIKTHzKTE6rXBpM6l3qWvpe2krLvIpO+k7KTGpKSkv6Tpt9m58KS5pOtcbiIKI34gIiAgLVduby11bmRlZiAgICAgICAgICAgICAgICDMpMTqtcGl3qWvpe2kzqXGpbmlyKTLpMSkpKTGt9m58KS3pMqkpFxuIgojfiAiICAtV2ltcG9ydCAgICAgICAgICAgICAgICAgICNpbXBvcnQgpM67yM3RpMukxKSkpMa32bnwpLmk61xuIgojfiAiICAtV25vLWltcG9ydCAgICAgICAgICAgICAgICNpbXBvcnQgpM67yM3RpMukxKSkpMa32bnwpLekyqSkXG4iCiN+ICIgIC1XZXJyb3IgICAgICAgICAgICAgICAgICAgwbSkxqTOt9m58KTypail6aG8pMikt6TGsLekplxuIgojfiAiICAtV25vLWVycm9yICAgICAgICAgICAgICAgILfZufCk8qWopemhvKTIpLekxrC3pO+kyqSkXG4iCiN+ICIgIC1XYWxsICAgICAgICAgICAgICAgICAgICAgwbSkxqTOpdel6qXXpe2lu6XDpbWkzrfZufCk8s2tuPqky6S5pOtcbiIKI34gIiAgLU0gICAgICAgICAgICAgICAgICAgICAgICBtYWtlIKTOsM3CuLTYt7ik8sC4wK6kuaTrXG4iCiN+ICIgIC1NTSAgICAgICAgICAgICAgICAgICAgICAgLU0gpMjGsaS4pMCkrKGipbeluaXGpeCl2KXDpcCkz8y1u+ukuaTrXG4iCiN+ICIgIC1NRCAgICAgICAgICAgICAgICAgICAgICAgLU0gpMjGsaS4pMCkrKGiLmQgpdWloaWkpeuky73Qzs+kuaTrXG4iCiN+ICIgIC1NTUQgICAgICAgICAgICAgICAgICAgICAgLU1EIKTIxrGkuKTApKyhoqW3pbmlxqXgpdilw6XApM/MtbvrpLmk61xuIgojfiAiICAtTUcgICAgICAgICAgICAgICAgICAgICAgILirpMSkq6TppMqkpKXYpcOlwKXVpaGlpKXrpM/AuMCupLWk7KTrpOKkzqTIpLmk61xuIgojfiAiICAtZzMgICAgICAgICAgICAgICAgICAgICAgICNkZWZpbmUgpMggI3VuZGVmILW/u/fMv87hpPK90M7PpMu03qThpOtcbiIKI34gIiAgLUQ8bWFjcm8+ICAgICAgICAgICAgICAgICA8bWFjcm8+IKTyxOq1waS3oaLKuLv6zvMgJzEnIKTypL2kzsPNpMikuaTrXG4iCiN+ICIgIC1EPG1hY3JvPj08dmFsPiAgICAgICAgICAgPG1hY3JvPiCk8sTqtcGkt6GiPHZhbD4gpPKkvaTOw82kyKS5pOtcbiIKI34gIiAgLUE8cXVlc3Rpb24+ICg8YW5zd2VyPikgICA8cXVlc3Rpb24+IKTPIDxhbnN3ZXI+IKTApMjDx7jApLmk61xuIgojfiAiICAtQS08cXVlc3Rpb24+ICg8YW5zd2VyPikgIDxxdWVzdGlvbj4gpM8gPGFuc3dlcj4gpMCkyKS3pMqkpFxuIgojfiAiICAtVTxtYWNybz4gICAgICAgICAgICAgICAgIDxtYWNybz4gxOq1waTypOSk4aTrXG4iCiN+ICIgIC12ICAgICAgICAgICAgICAgICAgICAgICAgpdChvKW4peel88jWueak8sm9vKikuaTrXG4iCiN+ICIgIC1IICAgICAgICAgICAgICAgICAgICAgICAgzfjN0aS1pOyk66XYpcOlwKXVpaGlpKXrpM7MvsGwpPLJvbyopLmk61xuIgojfiAiICAtQyAgICAgICAgICAgICAgICAgICAgICAgIKWzpeGl86XIpPLHy7T+pLekyqSkXG4iCiN+ICIgIC1kTSAgICAgICAgICAgICAgICAgICAgICAgy/bI+KTHza24+qTLpMqkw6TGpKSk66Xepa+l7cTqtcGl6qW5pcik8sm9vKikuaTrXG4iCiN+ICIgIC1kRCAgICAgICAgICAgICAgICAgICAgICAgvdDOz6TLpd6lr6XtxOq1waTyu8Skt6TGpKqkr1xuIgojfiAiICAtZE4gICAgICAgICAgICAgICAgICAgICAgIC1kRCCkyMaxpLikwKSsoaLMvsGwpMCksaTyu8Skt6TGpKqkr1xuIgojfiAiICAtZEkgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlILW/u/fMv87hpPK90M7PpMu03qThpOtcbiIKI34gIiAgLWZ0YWJzdG9wPTxudW1iZXI+ICAgICAgICDK87nwpaul6aXgpM6lv6XWtNaz1qTyu9jE6qS5pOtcbiIKI34gIiAgLVAgICAgICAgICAgICAgICAgICAgICAgICAjbGluZSC1v7v3zL/O4aTywLjArqS3pMqkpFxuIgojfiAiICAtJCAgICAgICAgICAgICAgICAgICAgICAgILyxysy70qTLICckJyCk8rX2pLWkyqSkXG4iCiN+ICIgIC1yZW1hcCAgICAgICAgICAgICAgICAgICAgpdWloaWkpeuk8iBpbmNsdWRlIKS5pOukyKStpdWloaWkpevMvqTyusal3qXDpddcbiIKI34gIiAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICCl0KG8pbil56XzvvDK86Tyyb28qKS5pOtcbiIKI34gIiAgLWggb3IgLS1oZWxwICAgICAgICAgICAgICCks6TOvvDK86Tyyb28qKS5pOtcbiIKCiN+IG1zZ2lkICJtYXJrIGFjdGl2ZSBpbiBjcHBfcG9wX2J1ZmZlciIKI34gbXNnc3RyICJjcHBfcG9wX2J1ZmZlciCkx6Xeobylr6SspaKlr6XGpaOl1iIKCiN+IG1zZ2lkICJsZW5ndGggPCAwIGluIGNwcF9leHBhbmRfdG9fYnVmZmVyIgojfiBtc2dzdHIgImNwcF9leHBhbmRfdG9fYnVmZmVyIMPmpMcgbGVuZ3RoIDwgMCIKCiN+IG1zZ2lkICJiYWNrc2xhc2gtbmV3bGluZSB3aXRoaW4gbGluZSBjb21tZW50IgojfiBtc2dzdHIgIrnUpbOl4aXzpcjG4qTLpdClw6Wvpbml6aXDpbel5bL+udQiCgojfiBtc2dpZCAiQysrIHN0eWxlIGNvbW1lbnRzIGFyZSBub3QgYWxsb3dlZCBpbiB0cmFkaXRpb25hbCBDIgojfiBtc2dzdHIgIkMrKyCluaW/paSl66TOpbOl4aXzpcikz8XBxf3FqiBDIKTHpM+19qS1pOyk3qS7pPMiCgojfiBtc2dpZCAiZW1iZWRkZWQgbnVsbCBjaGFyYWN0ZXIgaWdub3JlZCIKI34gbXNnc3RyICLL5KThuf6k3qTspL8gbnVsbCDKuLv6pM/MtbvrpLWk7KTepLekvyIKCiN+IG1zZ2lkICJzdHJpbmcgY29uc3RhbnQgcnVucyBwYXN0IGVuZCBvZiBsaW5lIgojfiBtc2dzdHIgIsq4u/rO88Tqv/SkrLnUpM69qqTvpOqkx72qw7ykt6TGpKSk3qS7pPMiCgojfiBtc2dpZCAiXFxyIGVzY2FwZSBpbnNpZGUgc3RyaW5nIGNvbnN0YW50IgojfiBtc2dzdHIgIsq4u/rO88Tqv/TD5qTOIFxcciClqKW5pbGhvKXXIgoKI34gbXNnaWQgIm51bGwgY2hhcmFjdGVycyBpbiBzdHJpbmcgb3IgY2hhcmFjdGVyIGNvbnN0YW50IgojfiBtc2dzdHIgIsq4u/rO88v0pM/KuLv6xOq/9MPmpMsgbnVsbCDKuLv6IgoKI34gbXNnaWQgIm1pc3NpbmcgJz4nIGluIGAjaW5jbHVkZSA8RklMRU5BTUU+JyIKI34gbXNnc3RyICJgI2luY2x1ZGUgPKXVpaGlpKXrzL4+JyCkyyAnPicgpKykoqTqpN6ku6TzIgoKI34gbXNnaWQgInVucmVjb2duaXplZCBlc2NhcGUgXFxyJWMiCiN+IG1zZ3N0ciAix6e8scnUx72kzqWopbmlsaG8pdcgXFxyJWMiCgojfiBtc2dpZCAidmVydGljYWwgdGFiIGluIHByZXByb2Nlc3NpbmcgZGlyZWN0aXZlIgojfiBtc2dzdHIgIqXXpeql16XtpbuluaXHpaOl7KWvpcalo6X0pMu/4sS+pb+l1sq4u/oiCgojfiBtc2dpZCAiZm9ybSBmZWVkIGluIHByZXByb2Nlc3NpbmcgZGlyZWN0aXZlIgojfiBtc2dzdHIgIqXXpeql16XtpbuluaXHpaOl7KWvpcalo6X0pMul1aWpobyl4KXVpaOhvKXJIgoKI34gbXNnaWQgIm51bGwgY2hhcmFjdGVyIHByZXNlcnZlZCIKI34gbXNnc3RyICKlzKXryri7+qSsyt2kv6TspN6kt6S/IgoKI34gbXNnaWQgImNvbW1lbnQgc3RhcnQgc3BsaXQgYWNyb3NzIGxpbmVzIgojfiBtc2dzdHIgIqWzpeGl86XIs6u7z6SsudSk8qTepL+kpKTHpKSk3qS5IgoKI34gbXNnaWQgImNvbW1lbnQgc3RhcnQgJy8qJyBzcGxpdCBhY3Jvc3MgbGluZXMiCiN+IG1zZ3N0ciAipbOl4aXzpcizq7vPICcvKicgpKy51KTypN6kv6SkpMekpKTepLkiCgojfiBtc2dpZCAiY29tbWVudCBlbmQgJyovJyBzcGxpdCBhY3Jvc3MgbGluZXMiCiN+IG1zZ3N0ciAipbOl4aXzpci9qsO8ICcqLycgpKy51KTypN6kv6SkpMekpKTepLkiCgojfiBtc2dpZCAiaGFuZGxlX2RpcmVjdGl2ZSBjYWxsZWQgb24gbWFjcm8gYnVmZmVyIgojfiBtc2dzdHIgIqXepa+l7aXQpcOl1aWhpMcgaGFuZGxlX2RpcmVjdGl2ZSCkrLjGpNCk7KTepLekvyIKCiN+IG1zZ2lkICJpZ25vcmluZyAjJXMgYmVjYXVzZSBvZiBpdHMgaW5kZW50ZWQgIyIKI34gbXNnc3RyICKlpKXzpcel86XIpLWk7KS/ICMgpMqkzqTHoaIjJXMgpM/MtbvrpLek3qS5IgoKI34gbXNnaWQgIklTTyBDIGRvZXMgbm90IGFsbG93ICMlcyIKI34gbXNnc3RyICJJU08gQyCkzyAjJXMgpPK19rLEpLek3qS7pPMiCgojfiBtc2dpZCAicmVkZWZpbmluZyBwb2lzb25lZCBgJS4qcyciCiN+IG1zZ3N0ciAisfjA96S1pOykvyBgJS4qcycgpPK6xsTqtcEiCgojfiBtc2dpZCAiZ2FyYmFnZSBhdCBlbmQgb2YgI2xpbmUiCiN+IG1zZ3N0ciAiI2xpbmUgpbOl3qXzpcmkzrrHuOWky6W0pd8iCgojfiBtc2dpZCAic2Vjb25kIHRva2VuIGFmdGVyICNsaW5lIGlzIG5vdCBhIHN0cmluZyIKI34gbXNnc3RyICIjbGluZSCkzrjlpM7G86TEzNykzqXIobylr6XzpKzKuLv6zvOkx6TPpKKk6qTepLuk8yIKCiN+IG1zZ2lkICJqdW5rIG9uIGxpbmUgYWZ0ZXIgI3VuZGVmIgojfiBtc2dzdHIgIiN1bmRlZiCkzrjlpM651KTLpbSl3yIKCiN+IG1zZ2lkICJjYW5ub3QgdW5kZWZpbmUgcG9pc29uZWQgXCIlc1wiIgojfiBtc2dzdHIgIrH4wPektaTspL8gXCIlc1wiIKTyIHVuZGVmaW5lIKTHpK2k3qS7pPMiCgojfiBtc2dpZCAibWFsZm9ybWVkICNwcmFnbWEgaW1wbGVtZW50YXRpb24iCiN+IG1zZ3N0ciAipKqkq6S3pMogI3ByYWdtYSBpbXBsZW1lbnRhdGlvbiIKCiN+IG1zZ2lkICIjJXMgd2l0aCBubyBhcmd1bWVudCIKI34gbXNnc3RyICIjJXMgpMuw+r/0pKykoqTqpN6ku6TzIgoKI34gbXNnaWQgIiMlcyB3aXRoIGludmFsaWQgYXJndW1lbnQiCiN+IG1zZ3N0ciAizLW4+qTKsPq/9KTyu/2kw6S/ICMlcyIKCiN+IG1zZ2lkICJDYW5ub3QgZHVwbGljYXRlIG5vbi1leGlzdGFudCBleGNlcHRpb24gcmVnaW9uLiIKI34gbXNnc3RyICLCuLrfpLekyqSkzuOzsM7OsOik8sqjwL2kuaTrpLOkyKTPpMekraTepLuk86GjIgoKI34gbXNnaWQgIk5ldmVyIGlzc3VlZCBwcmV2aW91cyBmYWxzZV9sYWJlbCIKI34gbXNnc3RyICLBsKTOIGZhbHNlX2xhYmVsIKTPt+ikt6TGyK+51KS1pOyk3qS7pPMiCgojfiBtc2dpZCAiQmFzaWMgYmxvY2tzIG5vdCBudW1iZXJlZCBjb25zZWN1dGl2ZWx5IgojfiBtc2dzdHIgIrTwy9yl1qXtpcOlr6Ssz6LCs8WqpMvI1rnmydWksaTppOykxqSkpN6ku6TzIgoKI34gbXNnaWQgImZpbGUgcGF0aCBwcmVmaXggYCVzJXMnIG5ldmVyIHVzZWQiCiN+IG1zZ3N0ciAipdWloaWkpeul0aW5pM6l16XspdWlo6XDpa+luSBgJXMlcycgpM/BtKSvu8ik76TspN6ku6TzIgoKI34gbXNnaWQgImZpbGUgcGF0aCBwcmVmaXggYCVzJyBuZXZlciB1c2VkIgojfiBtc2dzdHIgIqXVpaGlpKXrpdGluaTOpdel7KXVpaOlw6WvpbkgYCVzJyCkz8G0pK+7yKTvpOyk3qS7pPMiCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgJXMnIGlzIGFtYmlndW91c1xuIgojfiBtc2dzdHIgIiVzOiClqqXXpbel56XzIGAlcycgpM+koqSkpN6kpKTHpLlcbiIKCiN+IG1zZ2lkICIlczogb3B0aW9uIGAtLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfMgYC0tJXMnIKTLsPq/9KTPpKKk6qTepLuk81xuIgoKI34gbXNnaWQgIiVzOiBvcHRpb24gYCVjJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKI34gbXNnc3RyICIlczogpaql16W3peel8yBgJWMlcycgpMuw+r/0pM+koqTqpN6ku6TzXG4iCgojfiBtc2dpZCAiJXM6IG9wdGlvbiBgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfMgYCVzJyCky6TPsPq/9KSsyazN16THpLlcbiIKCiN+IG1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgLS0lcydcbiIKI34gbXNnc3RyICIlczogx6e8scnUx72kyqWqpdelt6XnpfMgYC0tJXMnXG4iCgojfiBtc2dpZCAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gYCVjJXMnXG4iCiN+IG1zZ3N0ciAiJXM6IMenvLHJ1Me9pMqlqqXXpbel56XzIGAlYyVzJ1xuIgoKI34gbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgojfiBtc2dzdHIgIiVzOiDJ1MC1pMqlqqXXpbel56XzIC0tICVjXG4iCgojfiBtc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIC0tICVjXG4iCiN+IG1zZ3N0ciAiJXM6IMy1uPqkyqWqpdelt6XnpfMgLS0gJWNcbiIKCiN+IG1zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVjXG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfOky6TPsPq/9KSsyazN16THpLkgLS0gJWNcbiIKCiN+IG1zZ2lkICIlczogb3B0aW9uIGAtVyAlcycgaXMgYW1iaWd1b3VzXG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfMgYC1XICVzJyCkz6SipKSk3qSkpMekuVxuIgoKI34gbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IKWqpdelt6XnpfMgYC1XICVzJyCky7D6v/Skz6SipOqk3qS7pPNcbiIKCiN+IG1zZ2lkICJmdW5jdGlvbiB3aXRoIGNvbXBsZXggcGFyYW1ldGVycyBjYW5ub3QgYmUgaW5saW5lIgojfiBtc2dzdHIgIsqju6ikyqXRpeml4aW/pPKk4qTEtNi/9KTPIGlubGluZSCky6THpK2k3qS7pPMiCgojfiBtc2dpZCAiT2JqZWN0aXZlLUMgdGV4dCBpbiBDIHNvdXJjZSBmaWxlIgojfiBtc2dzdHIgIkMgpM6lvaG8pbml1aWhpaSl68PmpMsgT2JqZWN0aXZlLUMgpM7KuLv6zvMiCgojfiBtc2dpZCAic3RhdGljYWxseSBhbGxvY2F0ZWQgb2JqZWN0cyBub3Qgc3VwcG9ydGVkIgojfiBtc2dzdHIgIqWqpdaluKWnpa+lyKTOwMXFqqTKs+TF9qTGpM+ltaXdobylyKS1pOykxqSkpN6ku6TzIgoKI34gbXNnaWQgIm91dHB1dCBwaXBlIGhhcyBiZWVuIGNsb3NlZCIKI34gbXNnc3RyICK90M7PpM6l0aWkpdekrMrEpLik6aTspN6kt6S/IgoKI34gbXNnaWQgIlVua25vd24gc3RhYiAlczogOiAweCV4XG4iCiN+IG1zZ3N0ciAiydTMwKTKpbmlv6XWICVzOiA6IDB4JXhcbiIK