IwojICAgIFRyYW5zbGF0b3JzLCBpZiB5b3UgYXJlIG5vdCBmYW1pbGlhciB3aXRoIHRoZSBQTyBmb3JtYXQsIGdldHRleHQKIyAgICBkb2N1bWVudGF0aW9uIGlzIHdvcnRoIHJlYWRpbmcsIGVzcGVjaWFsbHkgc2VjdGlvbnMgZGVkaWNhdGVkIHRvCiMgICAgdGhpcyBmb3JtYXQsIGUuZy4gYnkgcnVubmluZzoKIyAgICAgICAgIGluZm8gLW4gJyhnZXR0ZXh0KVBPIEZpbGVzJwojICAgICAgICAgaW5mbyAtbiAnKGdldHRleHQpSGVhZGVyIEVudHJ5JwojCiMgICAgU29tZSBpbmZvcm1hdGlvbiBzcGVjaWZpYyB0byBwby1kZWJjb25mIGFyZSBhdmFpbGFibGUgYXQKIyAgICAgICAgICAgIC91c3Ivc2hhcmUvZG9jL3BvLWRlYmNvbmYvUkVBRE1FLXRyYW5zCiMgICAgICAgICBvciBodHRwOi8vd3d3LmRlYmlhbi5vcmcvaW50bC9sMTBuL3BvLWRlYmNvbmYvUkVBRE1FLXRyYW5zCiMKIyAgICBEZXZlbG9wZXJzIGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGVkaXQgUE9UIG9yIFBPIGZpbGVzLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBmb250Y29uZmlnIDIuMi4zLTFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA1LTAzLTI5IDEzOjMzLTA4MDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDQtMTAtMjMgMTc6MDArMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQaGlsaXBwZSBCYXRhaWxsZXIgPHBoaWxpcHBlLmJhdGFpbGxlckBmcmVlLmZyPlxuIgoiTGFuZ3VhZ2UtVGVhbTogRnJlbmNoIDxkZWJpYW4tbDEwbi1mcmVuY2hAbGlzdHMuZGViaWFuLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTVcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiMuIFR5cGU6IHNlbGVjdAojLiBDaG9pY2VzCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjMKbXNnaWQgIk5hdGl2ZSwgQXV0b2hpbnRlciwgTm9uZSIKbXNnc3RyICIiCgojLiBUeXBlOiBzZWxlY3QKIy4gRGVzY3JpcHRpb24KIzogLi4vZm9udGNvbmZpZy50ZW1wbGF0ZXM6NQptc2dpZCAiSG93IHNob3VsZCBmb250cyBiZSB0dW5lZCBmb3IgdGhlIHNjcmVlbj8iCm1zZ3N0ciAiIgoKIy4gVHlwZTogc2VsZWN0CiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjUKbXNnaWQgIiIKIlNlbGVjdCBOYXRpdmUgaWYgeW91IG1vc3RseSB1c2UgQml0c3RyZWFtIFZlcmEgKHRoZSBkZWZhdWx0IGluIERlYmlhbikgb3IgIgoiYW55IG9mIHRoZSBNaWNyb3NvZnQgZm9udHMuICBTZWxlY3QgQXV0b2hpbnRlciBpZiB5b3UgbW9zdGx5IHVzZSBvdGhlciAiCiJUcnVlVHlwZSBmb250cy4gIFNlbGVjdCBOb25lIGlmIHlvdSB3YW50IGJsdXJyeSB0ZXh0LiIKbXNnc3RyICIiCgojLiBUeXBlOiBzZWxlY3QKIy4gQ2hvaWNlcwojOiAuLi9mb250Y29uZmlnLnRlbXBsYXRlczoxMgptc2dpZCAiQXV0b21hdGljLCBBbHdheXMsIE5ldmVyIgptc2dzdHIgIiIKCiMuIFR5cGU6IHNlbGVjdAojLiBEZXNjcmlwdGlvbgojOiAuLi9mb250Y29uZmlnLnRlbXBsYXRlczoxNAojLCBmdXp6eQptc2dpZCAiRW5hYmxlIHN1YnBpeGVsIHJlbmRlcmluZyBvZiB0ZXh0PyIKbXNnc3RyICJWb3VsZXotdm91cyBhY3RpdmVyIGxlIGxpc3NhZ2Ugc291cy1waXhlbCBwb3VyIGxlIHRleHRloD8iCgojLiBUeXBlOiBzZWxlY3QKIy4gRGVzY3JpcHRpb24KIzogLi4vZm9udGNvbmZpZy50ZW1wbGF0ZXM6MTQKbXNnaWQgIiIKIlJlbmRlcmluZyB0ZXh0IGF0IGEgc3VicGl4ZWwgbGV2ZWwgZ2VuZXJhbGx5IG1ha2VzIGl0IGxvb2sgYSBiaXQgYmV0dGVyIG9uICIKImZsYXQgKExDRCkgc2NyZWVucywgYnV0IGNhbiBzaG93IGNvbG9yIGFydGlmYWN0cyBvbiBDUlQgc2NyZWVucy4gVGhlICIKIlwiQXV0b21hdGljXCIgY2hvaWNlIHdpbGwgZW5hYmxlIGl0IG9ubHkgaWYgYSBMQ0Qgc2NyZWVuIGlzIGRldGVjdGVkLiIKbXNnc3RyICIiCgojLiBUeXBlOiBib29sZWFuCiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjIyCm1zZ2lkICJFbmFibGUgYml0bWFwcGVkIGZvbnRzIGJ5IGRlZmF1bHQ/Igptc2dzdHIgIlZvdWxlei12b3VzIGRlcyBwb2xpY2VzIGRlIHR5cGUgq6BiaXRtYXCguyBwYXIgZOlmYXV0oD8iCgojLiBUeXBlOiBib29sZWFuCiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjIyCm1zZ2lkICIiCiJCeSBkZWZhdWx0LCBvbmx5IG91dGxpbmUgZm9udHMgYXJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHdoaWNoIHN1cHBvcnQgIgoiZm9udGNvbmZpZy4gIE91dGxpbmUgZm9udHMgYXJlIGZvbnRzIHdoaWNoIHNjYWxlIHdlbGwgdG8gdmFyaW91cyBzaXplcy4gIEluICIKImNvbnRyYXN0LCBiaXRtYXBwZWQgZm9udHMgYXJlIG9mdGVuIGxvd2VyIHF1YWxpdHkuIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgIgoiYWZmZWN0IHRoZSBzeXN0ZW13aWRlIGRlZmF1bHQ7IHRoaXMgYW5kIG1hbnkgb3RoZXIgZm9udGNvbmZpZyBvcHRpb25zIG1heSBiZSAiCiJlbmFibGVkIG9yIGRpc2FibGVkIG9uIGEgcGVyLXVzZXIgYmFzaXMuIgptc2dzdHIgIiIKIlBhciBk6WZhdXQsIHNldWxlcyBsZXMgcG9saWNlcyBkZSB0eXBlIGNvbnRvdXIgKKugb3V0bGluZaC7KSBzb250IHV0aWxpc+llcyAiCiJwYXIgbGVzIGFwcGxpY2F0aW9ucyBxdWkgdXRpbGlzZW50IGZvbnRjb25maWcuIENlcyBwb2xpY2VzIGdhcmRlbnQgdG91dGVzICIKImxldXJzIHF1YWxpdOlzIGRhbnMgbGVzIGRpZmbpcmVudGVzIHRhaWxsZXMuIExlcyBwb2xpY2VzIGRlIHR5cGUgq6BiaXRtYXCguywgIgoiYXUgY29udHJhaXJlLCBvbnQgc291dmVudCB1bmUgcXVhbGl06SBtb2luZHJlLiBDZXR0ZSBvcHRpb24gYWZmZWN0ZXJhIGxhICIKInZhbGV1ciBwYXIgZOlmYXV0IHBvdXIgdG91dCBsZSBzeXN06G1loDsgY2hhcXVlIHV0aWxpc2F0ZXVyIHBldXQgYWN0aXZlciBvdSAiCiJk6XNhY3RpdmVyIGNldHRlIG9wdGlvbiBhaW5zaSBxdWUgZCdhdXRyZXMgb3B0aW9ucyBkZSBmb250Y29uZmlnLiIKCiMsIGZ1enp5CiN+IG1zZ2lkICJXaXRoIHdoYXQgbWV0aG9kIHNob3VsZCBmb250cyBiZSBoaW50ZWQ/IgojfiBtc2dzdHIgIk3pdGhvZGUg4CB1dGlsaXNlciBwb3VyIGxlIHJlbmR1IGRlcyB0ZXh0ZXMgOiIKCiN+IG1zZ2lkICIiCiN+ICJCeXRlY29kZSBpbnRlcnByZXRlciAoQ1JUIHNjcmVlbnMpLCBBdXRvaGludGVyLCBTdWJwaXhlbCByZW5kZXJpbmcgKExDRCAiCiN+ICJzY3JlZW5zKSIKI34gbXNnc3RyICIiCiN+ICJJbnRlcnBy6XRldXIgZGUgYnl0ZWNvZGUgKOljcmFucyBDUlQpLCBBdXRvaGludGVyLCBMaXNzYWdlIHNvdXMtcGl4ZWwgIgojfiAiKOljcmFucyBMQ0QpIgoKI34gbXNnaWQgIiIKI34gIlRoZSBGcmVldHlwZSBmb250IGxpYnJhcnkgaXMgYWJsZSB0byByZW5kZXIgZm9udHMgd2l0aCBkaWZmZXJlbnQgbWV0aG9kcy4gIgojfiAiRGVwZW5kaW5nIG9uIHlvdXIgaGFyZHdhcmUgYW5kIHRoZSBmb250cyB5b3UgZ2VuZXJhbGx5IHVzZSwgc29tZSB3aWxsICIKI34gImdpdmUgYmV0dGVyIHJlc3VsdHMuIgojfiBtc2dzdHIgIiIKI34gIkxhIGJpYmxpb3Ro6HF1ZSBGcmVldHlwZSB1dGlsaXNlIHBsdXNpZXVycyBt6XRob2RlcyBwb3VyIGxlIHJlbmR1IGRlcyAiCiN+ICJwb2xpY2VzLiBTZWxvbiB2b3RyZSBtYXTpcmllbCBldCBsZXMgcG9saWNlcyDgIGFmZmljaGVyLCBjZXJ0YWluZXMgc29udCAiCiN+ICJtZWlsbGV1cmVzIHF1ZSBkJ2F1dHJlcy4iCgojfiBtc2dpZCAiIgojfiAiVGhlIGF1dG9oaW50ZXIgbW9kdWxlIGlzIHRoZSBkZWZhdWx0OyBpdCBnaXZlcyBjb3JyZWN0IHJlc3VsdHMgb24gbW9zdCAiCiN+ICJjb25maWd1cmF0aW9ucy4gVGhlIGJ5dGVjb2RlIGludGVycHJldGVyIHJlbmRlcnMgZm9udHMgdmVyeSBzaGFycGx5LCBhbmQgIgojfiAiaXMgb2Z0ZW4gYSBiZXR0ZXIgY2hvaWNlIGlmIHlvdSBhcmUgdXNpbmcgYSBjYXRob2RlLXJheSBzY3JlZW4uIE9uIHRoZSAiCiN+ICJvdGhlciBoYW5kLCB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nIG1ldGhvZCBpcyBvcHRpbWl6ZWQgZm9yIGhpZ2gtcXVhbGl0eSAiCiN+ICJyZW5kZXJpbmcgb24gbW9zdCBsaXF1aWQgY3J5c3RhbCBkaXNwbGF5cy4iCiN+IG1zZ3N0ciAiIgojfiAiTGUgbW9kdWxlIGF1dG9oaW50ZXIgZXN0IGxhIG3pdGhvZGUgcGFyIGTpZmF1dC4gRWxsZSBkb25uZSBkZSBib25zICIKI34gInLpc3VsdGF0cyBzdXIgbGEgcGx1cGFydCBkZXMgY29uZmlndXJhdGlvbnMuIEwnaW50ZXJwcul0ZXVyIGRlIGJ5dGVjb2RlICIKI34gIm9mZnJlIHVuIHJlbmR1IHBy6WNpcywgYydlc3Qgc291dmVudCBsZSBtZWlsbGV1ciBjaG9peCBzaSB2b3VzIHBvc3PpZGV6ICIKI34gInVuIOljcmFuIENSVC4gRW5maW4sIGxhIG3pdGhvZGUgZHUgbGlzc2FnZSBzb3VzLXBpeGVsIG9mZnJlIHVuIHJlbmR1IGRlICIKI34gImhhdXRlIHF1YWxpdOkgc3VyIGxhIHBsdXBhcnQgZGVzIOljcmFucyBMQ0QuIgoKI34gbXNnaWQgIiIKI34gIklmIHlvdSBoYXZlIGFuIExDRCBkaXNwbGF5LCB0aGVuIHlvdSB3aWxsIHdhbnQgdG8gZW5hYmxlIHRoaXMgb3B0aW9uLiBJdCAiCiN+ICJhbGxvd3MgZm9yIGhpZ2hlci1xdWFsaXR5IHRleHQgcmVuZGVyaW5nLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSAiCiN+ICJzZWUgdGhlIGZvbnRjb25maWcgbWFudWFsIGluIC91c3Ivc2hhcmUvZG9jL2ZvbnRjb25maWcvIG9uIHlvdXIgRGViaWFuICIKI34gInN5c3RlbS4iCiN+IG1zZ3N0ciAiIgojfiAiU2kgdm91cyB1dGlsaXNleiB1biDpY3JhbiBMQ0QsIGNldHRlIG9wdGlvbiBlc3QgcG91ciB2b3VzLiBFbGxlIGRvbm5lIHVuZSAiCiN+ICJwbHVzIGdyYW5kZSBxdWFsaXTpIGF1IHJlbmR1IGRlcyB0ZXh0ZXMuIFBvdXIgZGF2YW50YWdlIGQnaW5mb3JtYXRpb25zLCAiCiN+ICJ2ZXVpbGxleiBjb25zdWx0ZXIgbGUgbWFudWVsIGRlIGZvbnRjb25maWcgZGFucyAvdXNyL3NoYXJlL2RvYy8iCiN+ICJmb250Y29uZmlnLy4iCgojfiBtc2dpZCAiRW5hYmxlIHRoZSBmcmVldHlwZSBhdXRvaGludGVyIG1vZHVsZT8iCiN+IG1zZ3N0ciAiVm91bGV6LXZvdXMgdXRpbGlzZXIgbGUgbW9kdWxlIGF1dG9oaW50ZXKgPyIKCiN+IG1zZ2lkICIiCiN+ICJEZXBlbmRpbmcgb24geW91ciBkaXNwbGF5IGFuZCBvbiB3aGljaCBmb250cyB5b3UgdXNlLCB0aGV5IGNhbiBsb29rICIKI34gImJldHRlciBvciB3b3JzZSB3aGVuIHVzaW5nIHRoZSBhdXRvaGludGVyIG1vZHVsZS4gRW5hYmxlIGl0IGlmIHlvdSBoYXBwZW4gIgojfiAidG8gcHJlZmVyIHRoZSBsb29rIGl0IGdpdmVzIHRvIHlvdXIgZm9udHMuIgojfiBtc2dzdHIgIiIKI34gIkxlIG1vZHVsZSBhdXRvaGludGVyIHBldXQsIG91IG5vbiwgYW3pbGlvcmVyIGwnYWZmaWNoYWdlIGRlcyBwb2xpY2VzIHF1ZSAiCiN+ICJ2b3VzIHV0aWxpc2V6LiBVdGlsaXNlei1sZSBzaSB2b3VzIHBlbnNleiBxdSdpbCBhbelsaW9yZSBsJ2FwcGFyZW5jZSBkZSAiCiN+ICJ2b3MgcG9saWNlcy4iCgojfiBtc2dpZCAiT3ZlcndyaXRlIGV4aXN0aW5nIC9ldGMvZm9udHMvbG9jYWwuY29uZj8iCiN+IG1zZ3N0ciAiRmF1dC1pbCBtb2RpZmllciBsZSBmaWNoaWVyIC9ldGMvZm9udHMvbG9jYWwuY29uZqA/IgoKI34gbXNnaWQgIiIKI34gIllvdSBhcHBlYXIgdG8gaGF2ZSBhbiBhbHJlYWR5IGV4aXN0aW5nIC9ldGMvZm9udHMvbG9jYWwuY29uZi4gQ2hvb3NpbmcgdG8gIgojfiAiY29udGludWUgYXQgdGhpcyBwb2ludCB3aWxsIG92ZXJ3cml0ZSBhbnkgY2hhbmdlcyB5b3UgaGF2ZSBtYWRlIGluIHRoaXMgIgojfiAiZmlsZS4gIFRoZSBjdXJlbnQgdmVyc2lvbiB3aWxsIGJlIGJhY2tlZCB1cCB0byAvZXRjL2ZvbnRzL2xvY2FsLmNvbmYub2xkLiIKI34gbXNnc3RyICIiCiN+ICJVbiBmaWNoaWVyIC9ldGMvZm9udHMvbG9jYWwuY29uZiBleGlzdGUgZOlq4C4gU2kgdm91cyBjb250aW51ZXogIgojfiAibCdpbnN0YWxsYXRpb24sIGxlcyBtb2RpZmljYXRpb25zIHF1ZSB2b3VzIGF2ZXogYXBwb3J06WVzIOAgY2UgZmljaGllciAiCiN+ICJzZXJvbnQgZWZmYWPpZXMuIExhIHZlcnNpb24gYWN0dWVsbGUgc2VyYSBzYXV2ZWdhcmTpZSBkYW5zIC9ldGMvZm9udHMvIgojfiAibG9jYWwuY29uZi5vbGQuIgo=