Q29udGVudC1sYW5ndWFnZTogY3MKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1jcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImNzIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmpla3QgbmVuYWxlemVuISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFBvvmFkb3ZhbukgVVJMIG5lYnlsbyBuYSB0b210byBzZXJ2ZXJ1IG5hbGV6ZW5vLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIFpk4SBzZSwgvmUgb2RrYXogbmEKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5vZGthenVq7WPtCiAgICBzdHLhbmNlPC9hPiBqZSBjaHlibv0gbmVibyB6YXN0YXJhbP0uIEluZm9ybXVqdGUsIHByb3PtbSwgYXV0b3JhCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+dOl0byBzdHLhbmt5PC9hPgogICAgbyZuYnNwO2NoeWLsLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgUG9rdWQganN0ZSB6YWRhbChhKSBVUkwgcnXobuwsIHprb250cm9sdWp0ZSwgcHJvc+1tLAogICAgemRhIGpzdGUgemFkYWwoYSkgVVJMIHNwcuF2buwsIGEgemt1c3RlIHRvIHpub3Z1LgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tY3MtLQoKQ29udGVudC1sYW5ndWFnZTogZGUKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1kZS0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImRlIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iT2JqZWt0IG5pY2h0IGdlZnVuZGVuISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIERlciBhbmdlZm9yZGVydGUgVVJMIGtvbm50ZSBhdWYgZGVtIFNlcnZlciBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4uCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgRGVyIExpbmsgYXVmIGRlcgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnZlcndlaXNlbmRlbgogICAgU2VpdGU8L2E+IHNjaGVpbnQgZmFsc2NoIG9kZXIgbmljaHQgbWVociBha3R1ZWxsIHp1IHNlaW4uCiAgICBCaXR0ZSBpbmZvcm1pZXJlbiBTaWUgZGVuIEF1dG9yCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+ZGllc2VyIFNlaXRlPC9hPgogICAgJnV1bWw7YmVyIGRlbiBGZWhsZXIuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBTb2Zlcm4gU2llIGRlbiBVUkwgbWFudWVsbCBlaW5nZWdlYmVuIGhhYmVuLAogICAgJnV1bWw7YmVycHImdXVtbDtmZW4gU2llIGJpdHRlIGRpZSBTY2hyZWlid2Vpc2UgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZGUtLQoKQ29udGVudC1sYW5ndWFnZTogZW4KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1lbi0tCjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmplY3Qgbm90IGZvdW5kISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFRoZSByZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgVGhlIGxpbmsgb24gdGhlCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+cmVmZXJyaW5nCiAgICBwYWdlPC9hPiBzZWVtcyB0byBiZSB3cm9uZyBvciBvdXRkYXRlZC4gUGxlYXNlIGluZm9ybSB0aGUgYXV0aG9yIG9mCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+dGhhdCBwYWdlPC9hPgogICAgYWJvdXQgdGhlIGVycm9yLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgSWYgeW91IGVudGVyZWQgdGhlIFVSTCBtYW51YWxseSBwbGVhc2UgY2hlY2sgeW91cgogICAgc3BlbGxpbmcgYW5kIHRyeSBhZ2Fpbi4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWVuLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGVzCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tZXMtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJlcyIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IiZpZXhjbDtPYmpldG8gbm8gZW5jb250cmFkbyEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBFbCBlbmxhY2UgcmVxdWVyaWRvIG5vIGhhIHNpZG8gbG9jYWxpemFkbyBlbgogICAgZXN0ZSBzZXJ2aWRvci4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBFbCBlbmxhY2UgZW4gbGEKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5wJmFhY3V0ZTtnaW5hCiAgICByZWZlcmVudGU8L2E+IHBhcmVjZSB0ZW5lciBhbGd1biBlcnJvciBvIGhhIGV4cGlyYWRvLiBQb3IgZmF2b3IKICAgIGNvbXVuaXF1ZSBhbCBhdXRvciBkZQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmxhCiAgICBwJmFhY3V0ZTtnaW5hPC9hPiBlbCBlcnJvci4KCiAgPCEtLSNlbHNlIC0tPgoKICAgIFNpIHVzdGVkIHByb3BvcmNpb24mb2FjdXRlOyBlbCBlbmxhY2UgZGUgbWFuZXJhIG1hbnVhbCBsZSBzb2xpY2l0YW1vcwogICAgcXVlIHBvciBmYXZvciByZXZpc2UgbG9zIGRhdG9zIGUgaW50ZW50ZWxvIGRlIG51ZXZvLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZXMtLQoKQ29udGVudC1sYW5ndWFnZTogZnIKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1mci0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImZyIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iT2JqZXQgbm9uIHRyb3V2JmVhY3V0ZTshIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgTCdVUkwgcmVxdWlzZSBuJ2EgcHUgZXRyZSB0cm91diZlYWN1dGU7ZSBzdXIgY2Ugc2VydmV1ci4KCiAgPCEtLSNpZiBleHByPSIkSFRUUF9SRUZFUkVSIiAtLT4KCiAgICBMYSByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZSBzdXIKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5sYSBwYWdlCiAgICBjaXQmZWFjdXRlO2U8L2E+CiAgICBzZW1ibGUgJmVjaXJjO3RyZSBlcnJvbiZlYWN1dGU7ZSBvdSBwZXJpbSZlYWN1dGU7ZS4gTm91cyB2b3VzIHByaW9ucwogICAgZCdpbmZvcm1lciBsJ2F1dGV1ciBkZQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmNldHRlIHBhZ2U8L2E+CiAgICBkZSBjZXR0ZSBlcnJldXIuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBTaSB2b3VzIGF2ZXogdGFwJmVhY3V0ZTsgbCdVUkwgJmFncmF2ZTsgbGEgbWFpbiwgdmV1aWxsZXogdiZlYWN1dGU7cmlmaWVyCiAgICBsJ29ydGhvZ3JhcGhlIGV0IHImZWFjdXRlO2Vzc2F5ZXIuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1mci0tCgpDb250ZW50LWxhbmd1YWdlOiBpdApDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWl0LS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iaXQiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPZ2dldHRvIG5vbiB0cm92YXRvISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIEwnVVJMIHJpY2hpZXN0byBub24gZXNpc3RlIHN1IHF1ZXN0byBzZXJ2ZXIuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgSWwgbGluayBkZWxsYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnBhZ2luYSBkYSBjdWkKICAgIHNlaSBhcnJpdmF0bzwvYT4gcG90cmViYmUgZXNzZXJlIGVycmF0byBvIG5vbiBlc3NlcmUgcGkmdWdyYXZlOyB2YWxpZG8uCiAgICBQZXIgZmF2b3JlLCBpbmZvcm1hIGRlbGwnZXJyb3JlIGwnYXV0b3JlIGRlbGxhCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+cGFnaW5hPC9hPi4KCiAgPCEtLSNlbHNlIC0tPgoKICAgIFNlIGhhaSBzY3JpdHRvIGwnVVJMIGEgbWFubywgcGVyIGZhdm9yZSBjb250cm9sbGEgY2hlCiAgICBub24gY2kgc2lhbm8gZXJyb3JpLgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0taXQtLQoKQ29udGVudC1sYW5ndWFnZToga28KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9RVVDLUtSCkJvZHk6LS0tLS0tLS0tLWtvLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ia28iCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSKwtMO8IL74wL0hIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IkVVQy1LUiIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIL/kw7vH0SBVUkzAuyDAzCC8rbn2v6G8rSDDo8C7ILz2IL74vcC0z7TZLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiItLT4iPsDMwPwKICAgIMbkwMzB9jwvYT6/oSDA1rTCILi1xamwoSDA37j4tce++rDFs6ogv8C3obXHvu4gvvi+7sH4ILDNILCwvcC0z7TZLgogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIi0tPiI+sdcgxuTAzMH2PC9hPrimCiAgICC4uLXnwMy/obDUIMDMILvnvcfAuyC+y7fBwda9w7HiILnZtvi0z7TZLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgVVJMwLsgwffBoiDA1LfCx8+8zLTZuOkgudm4o7DUIMDUt8LHz7zMtMLB9iDIrsDOx8+9w7DtILTZvcMgvcO1tcfPvcOx4gogICAgudm2+LTPtNkuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1rby0tCgpDb250ZW50LWxhbmd1YWdlOiBubApDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLW5sLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ibmwiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmplY3QgbmlldCBnZXZvbmRlbiEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBEZSBnZXZyYWFnZGUgVVJMIHdhcyBuaWV0IGdldm9uZGVuIG9wIGRlemUgc2VydmVyLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIERlIGxpbmsgb3AKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5kZXplIHBhZ2luYQogICAgcGFnaW5hPC9hPiBpcyB2ZXJrZWVyZCBvZiBhY2h0ZXJoYWFsZC4gR2VsaWV2ZSBkZSBhdXRldXIgdmFuCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+ZGllIHBhZ2luYTwvYT4KICAgIGluIHRlIGxpY2h0ZW4gb3ZlciBkZXplIGZvdXQuCgogIDwhLS0jZWxzZSAtLT4KCiAgICBJbmRpZW4gdSBkZSBVUkwgbWFudWVlbCBoZWJ0IGluZ2V2dWxkLCBnZWxpZXZlIHV3CiAgICBzcGVsbGluZyB0ZSBjb250cm9sZXJlbiBlbiBwcm9iZWVyIG9wbmlldXcuCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1ubC0tCgpDb250ZW50LWxhbmd1YWdlOiBwbApDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0yCkJvZHk6LS0tLS0tLS0tLXBsLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0icGwiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJOaWUgem5hbGV6aW9ubyBvYmlla3R1ISIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS0yIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgTmllIHpuYWxlemlvbm8gv7FkYW5lZ28gVVJMYSBuYSB0eW0gc2Vyd2VyemUuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgT2Rub7ZuaWsgbmEKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5yZWZlcnVqsWNlaiBzdHJvbmllCiAgICA8L2E+IHd5ZGFqZSBzaeogYnnmIG5pZXByYXdpZLNvd3kgbHViIG5pZWFrdHVhbG55LiBQb2luZm9ybXVqIGF1dG9yYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnRlaiBzdHJvbnk8L2E+CiAgICBvIHByb2JsZW1pZS4KCiAgPCEtLSNlbHNlIC0tPgogICAgSmW2bGkgd3Bpc2GzZbYgVVJMYSBy6mN6bmllLCBzcHJhd2S8LCBjenkgbmllIHNp6iBuaWUgcG9teWxps2W2LgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tcGwtLQoKQ29udGVudC1sYW5ndWFnZTogcHQtYnIKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS1wdC1ici0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InB0LWJyIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iT2JqZXRvIG4mYXRpbGRlO28gZW5jb250cmFkbyEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBBIFVSTCByZXF1aXNpdGFkYSBuJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRhIG5lc3RlIHNlcnZpZG9yLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIE8gbGluayBuYQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnAmYWFjdXRlO2dpbmEKICAgIHJlZmVyaWRhPC9hPiBwYXJlY2UgZXN0YXIgY29tIGFsZ3VtIGVycm8gb3UgZGVzYXR1YWxpemFkby4gUG9yIGZhdm9yIGluZm9ybWUgbwogICAgYXV0b3IgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmRlc3RhIAogICAgcCZhYWN1dGU7Z2luYTwvYT4gc29icmUgbyBlcnJvLgoKICAgPCEtLSNlbHNlIC0tPgoKICAgIFNlIHZvYyZlY2lyYzsgZGlnaXRvdSBvIGVuZGVyZSZjY2VkaWw7byAoVVJMKSBtYW51YWxtZW50ZSwKICAgIHBvciBmYXZvciB2ZXJpZmlxdWUgbm92YW1lbnRlIGEgc2ludGF4ZSBkbyBlbmRlcmUmY2NlZGlsO28uCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS1wdC1ici0tCgpDb250ZW50LWxhbmd1YWdlOiBybwpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLXJvLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0icm8iCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJPYmllY3R1bCBudSBhIGZvc3QgZ2FzaXQhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgVVJMLXVsIGNlcnV0IG51IGEgZm9zdCBnYXNpdCBwZSBhY2VzdCBzZXJ2ZXIuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgTGluay11bCBkZSBwZQogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPnBhZ2luYQogICAgZGUgdW5kZSBhdGkgdmVuaXQ8L2E+IHBhcmUgYSBmaSBncmVzaXQgc2F1IGludmVjaGl0LiBWYSBydWdhbSBpbmZvcm1hdGkgYXV0b3J1bAogICAgPGEgaHJlZj0iPCEtLSNlY2hvIGVuY29kaW5nPSJ1cmwiIHZhcj0iSFRUUF9SRUZFUkVSIiAtLT4iPmFjZXN0ZWkgcGFnaW5pPC9hPgogICAgZGVzcHJlIGVyb2FyZS4KCiAgPCEtLSNlbHNlIC0tPgoKICAgIERhY2EgYXRpIGludHJvZHVzIFVSTC11bCBtYW51YWwsIHZhIHJ1Z2FtIHZlcmlmaWNhdGkKICAgIGNvcmVjdGl0dWRpbmVhIHNpIGluY2VyY2F0aSBkaW4gbm91LgoKICA8IS0tI2VuZGlmIC0tPgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tcm8tLQoKQ29udGVudC1sYW5ndWFnZTogc3YKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1zdi0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InN2IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iT2JqZWt0ZXQgaGl0dGFzIGVqISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIERlbiBlZnRlcmZyJmFyaW5nO2dhZGUgYWRyZXNzZW4gaGl0dGFkZXMgaW50ZSBwJmFyaW5nOyBkZW5uYSBzZXJ2ZXIuCgogIDwhLS0jaWYgZXhwcj0iJEhUVFBfUkVGRVJFUiIgLS0+CgogICAgTCZhdW1sO25rZW4gcCZhcmluZzsgZGVuCiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+dGlkaWdhcmUgc2lkYW48L2E+IAogICAgdmVya2FyIHZhcmEgZmVsYWt0aWcgZWxsZXIgaW5ha3R1ZWxsLiBWJmF1bWw7bmxpZ2VuIGluZm9ybWVyYSBmJm91bWw7cmZhdHRhcmVuIGF2CiAgICA8YSBocmVmPSI8IS0tI2VjaG8gZW5jb2Rpbmc9InVybCIgdmFyPSJIVFRQX1JFRkVSRVIiIC0tPiI+c2lkYW48L2E+CiAgICBvbSBmZWxldC4KCiAgPCEtLSNlbHNlIC0tPgoKICAgIE9tIGR1IHNrcmV2IGluIGFkcmVzc2VuIG1hbnVlbGx0IHMmYXJpbmc7IGtvbnRyb2xsZXJhIGRpbiBzdGF2bmluZyBvY2gKICAgIGYmb3VtbDtycyZvdW1sO2sgaWdlbi4KCiAgPCEtLSNlbmRpZiAtLT4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXN2LS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHRyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTkKQm9keTotLS0tLS0tLS0tdHItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJ0ciIKLS0+PCEtLSNzZXQgdmFyPSJDSEFSQUNURVJfRU5DT0RJTkciIHZhbHVlPSJJU08tODg1OS05IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iT2JqZWN0IG5vdCBmb3VuZCEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBUYWxlcCBldHRpJiMyODc7aW5peiBVUkwsIHN1bnVjdSD8emVyaW5kZSBidWx1bm11eW9yLgoKICA8IS0tI2lmIGV4cHI9IiRIVFRQX1JFRkVSRVIiIC0tPgoKICAgIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5SZWZlcmFucyBzYXlmYTwvYT4KICAgIPx6ZXJpbmRla2kgYmEmIzI4NztsYW50JiMzMDU7IGf8bmNlbCBkZSYjMjg3O2lsLgogICAgTPx0ZmVuIDxhIGhyZWY9IjwhLS0jZWNobyBlbmNvZGluZz0idXJsIiB2YXI9IkhUVFBfUkVGRVJFUiIgLS0+Ij5yZWZlcmFucyBzYXlmYTwvYT4nbiYjMzA1O24KICAgIHlhemFyJiMzMDU7biYjMzA1OyBrb251eWxhIGlsZ2lsaSBiaWxnaWxlbmRpcmluLgoKICA8IS0tI2Vsc2UgLS0+CgogICAgVVJMJ2kga2VuZGluaXogZWxsZSBnaXJkaXlzZW5peiwgeWF6JiMzMDU7bSYjMzA1O24mIzMwNTt6JiMzMDU7IGRlbmV0bGV5aXAgdGVrcmFyIGRlbmV5aW4uCgogIDwhLS0jZW5kaWYgLS0+Cgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS10ci0tCg==