IwojICAgIFRyYW5zbGF0b3JzLCBpZiB5b3UgYXJlIG5vdCBmYW1pbGlhciB3aXRoIHRoZSBQTyBmb3JtYXQsIGdldHRleHQKIyAgICBkb2N1bWVudGF0aW9uIGlzIHdvcnRoIHJlYWRpbmcsIGVzcGVjaWFsbHkgc2VjdGlvbnMgZGVkaWNhdGVkIHRvCiMgICAgdGhpcyBmb3JtYXQsIGUuZy4gYnkgcnVubmluZzoKIyAgICAgICAgIGluZm8gLW4gJyhnZXR0ZXh0KVBPIEZpbGVzJwojICAgICAgICAgaW5mbyAtbiAnKGdldHRleHQpSGVhZGVyIEVudHJ5JwojCiMgICAgU29tZSBpbmZvcm1hdGlvbiBzcGVjaWZpYyB0byBwby1kZWJjb25mIGFyZSBhdmFpbGFibGUgYXQKIyAgICAgICAgICAgIC91c3Ivc2hhcmUvZG9jL3BvLWRlYmNvbmYvUkVBRE1FLXRyYW5zCiMgICAgICAgICBvciBodHRwOi8vd3d3LmRlYmlhbi5vcmcvaW50bC9sMTBuL3BvLWRlYmNvbmYvUkVBRE1FLXRyYW5zCiMKIyAgICBEZXZlbG9wZXJzIGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGVkaXQgUE9UIG9yIFBPIGZpbGVzLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBmb250Y29uZmlnXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNS0wMy0yOSAxMzozMy0wODAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDA0LTEwLTMwIDEzOjAxLTAzMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogQW5kcukgTHXtcyBMb3BlcyA8YW5kcmVsb3BAZGViaWFuLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IERlYmlhbi1CUiBQcm9qZWN0IDxkZWJpYW4tbDEwbi1wb3J0dWd1ZXNlQGxpc3RzLmRlYmlhbi5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiMuIFR5cGU6IHNlbGVjdAojLiBDaG9pY2VzCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjMKbXNnaWQgIk5hdGl2ZSwgQXV0b2hpbnRlciwgTm9uZSIKbXNnc3RyICIiCgojLiBUeXBlOiBzZWxlY3QKIy4gRGVzY3JpcHRpb24KIzogLi4vZm9udGNvbmZpZy50ZW1wbGF0ZXM6NQptc2dpZCAiSG93IHNob3VsZCBmb250cyBiZSB0dW5lZCBmb3IgdGhlIHNjcmVlbj8iCm1zZ3N0ciAiIgoKIy4gVHlwZTogc2VsZWN0CiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjUKbXNnaWQgIiIKIlNlbGVjdCBOYXRpdmUgaWYgeW91IG1vc3RseSB1c2UgQml0c3RyZWFtIFZlcmEgKHRoZSBkZWZhdWx0IGluIERlYmlhbikgb3IgIgoiYW55IG9mIHRoZSBNaWNyb3NvZnQgZm9udHMuICBTZWxlY3QgQXV0b2hpbnRlciBpZiB5b3UgbW9zdGx5IHVzZSBvdGhlciAiCiJUcnVlVHlwZSBmb250cy4gIFNlbGVjdCBOb25lIGlmIHlvdSB3YW50IGJsdXJyeSB0ZXh0LiIKbXNnc3RyICIiCgojLiBUeXBlOiBzZWxlY3QKIy4gQ2hvaWNlcwojOiAuLi9mb250Y29uZmlnLnRlbXBsYXRlczoxMgptc2dpZCAiQXV0b21hdGljLCBBbHdheXMsIE5ldmVyIgptc2dzdHIgIiIKCiMuIFR5cGU6IHNlbGVjdAojLiBEZXNjcmlwdGlvbgojOiAuLi9mb250Y29uZmlnLnRlbXBsYXRlczoxNAojLCBmdXp6eQptc2dpZCAiRW5hYmxlIHN1YnBpeGVsIHJlbmRlcmluZyBvZiB0ZXh0PyIKbXNnc3RyICJIYWJpbGl0YXIgcmVuZGVyaXph5+NvIGRlIHRleHRvIGRlIHN1Yi1waXhlbCA/IgoKIy4gVHlwZTogc2VsZWN0CiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjE0Cm1zZ2lkICIiCiJSZW5kZXJpbmcgdGV4dCBhdCBhIHN1YnBpeGVsIGxldmVsIGdlbmVyYWxseSBtYWtlcyBpdCBsb29rIGEgYml0IGJldHRlciBvbiAiCiJmbGF0IChMQ0QpIHNjcmVlbnMsIGJ1dCBjYW4gc2hvdyBjb2xvciBhcnRpZmFjdHMgb24gQ1JUIHNjcmVlbnMuIFRoZSAiCiJcIkF1dG9tYXRpY1wiIGNob2ljZSB3aWxsIGVuYWJsZSBpdCBvbmx5IGlmIGEgTENEIHNjcmVlbiBpcyBkZXRlY3RlZC4iCm1zZ3N0ciAiIgoKIy4gVHlwZTogYm9vbGVhbgojLiBEZXNjcmlwdGlvbgojOiAuLi9mb250Y29uZmlnLnRlbXBsYXRlczoyMgptc2dpZCAiRW5hYmxlIGJpdG1hcHBlZCBmb250cyBieSBkZWZhdWx0PyIKbXNnc3RyICJIYWJpbGl0YXIgZm9udGVzIGJpdG1hcHBlZCBwb3IgcGFkcuNvID8iCgojLiBUeXBlOiBib29sZWFuCiMuIERlc2NyaXB0aW9uCiM6IC4uL2ZvbnRjb25maWcudGVtcGxhdGVzOjIyCm1zZ2lkICIiCiJCeSBkZWZhdWx0LCBvbmx5IG91dGxpbmUgZm9udHMgYXJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHdoaWNoIHN1cHBvcnQgIgoiZm9udGNvbmZpZy4gIE91dGxpbmUgZm9udHMgYXJlIGZvbnRzIHdoaWNoIHNjYWxlIHdlbGwgdG8gdmFyaW91cyBzaXplcy4gIEluICIKImNvbnRyYXN0LCBiaXRtYXBwZWQgZm9udHMgYXJlIG9mdGVuIGxvd2VyIHF1YWxpdHkuIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgIgoiYWZmZWN0IHRoZSBzeXN0ZW13aWRlIGRlZmF1bHQ7IHRoaXMgYW5kIG1hbnkgb3RoZXIgZm9udGNvbmZpZyBvcHRpb25zIG1heSBiZSAiCiJlbmFibGVkIG9yIGRpc2FibGVkIG9uIGEgcGVyLXVzZXIgYmFzaXMuIgptc2dzdHIgIiIKIlBvciBwYWRy428sIHNvbWVudGUgZm9udGVzIGRlc2VuaGFkYXMgc+NvIHVzYWRhcyBwb3IgYXBsaWNh5/VlcyBxdWUgc3Vwb3J0YW0gIgoibyBmb250Y29uZmlnLiBGb250ZXMgZGVzZW5oYWRhcyAob3V0bGluZSkgc+NvIGZvbnRlcyBxdWUgZXNjYWxhbSBiZW0gZW0gIgoiZGl2ZXJzb3MgdGFtYW5ob3MuIEVtIGNvbnRyYXN0ZSwgZm9udGVzIGJpdG1hcHBlZCBz428gZ2VyYWxtZW50ZSBkZSB1bWEgIgoicXVhbGlkYWRlIG1lbm9yLiBBIGhhYmlsaXRh5+NvIGRlc3RhIG9w5+NvIGly4SBhZmV0YXIgbyBwYWRy428gZGUgdG9kbyBvICIKInNpc3RlbWE7IGVzc2EgZSBtdWl0YXMgb3V0cmFzIG9w5/VlcyBkbyBmb250Y29uZmlnIHBvZGVtIHNlciBoYWJpbGl0YWRhcyBvdSAiCiJkZXNhYmlsaXRhZGFzIHBhcmEgY2FkYSB1c3XhcmlvLiIKCiMsIGZ1enp5CiN+IG1zZ2lkICJXaXRoIHdoYXQgbWV0aG9kIHNob3VsZCBmb250cyBiZSBoaW50ZWQ/IgojfiBtc2dzdHIgIk9zIHRleHRvcyBkZXZlbSBzZXIgcmVuZGVyaXphZG9zIHVzYW5kbyBxdWFsIG3pdG9kbyA/IgoKI34gbXNnaWQgIiIKI34gIkJ5dGVjb2RlIGludGVycHJldGVyIChDUlQgc2NyZWVucyksIEF1dG9oaW50ZXIsIFN1YnBpeGVsIHJlbmRlcmluZyAoTENEICIKI34gInNjcmVlbnMpIgojfiBtc2dzdHIgIiIKI34gIkludGVycHJldGFkb3IgZGUgYnl0ZWNvZGUgKHRlbGFzIENSVCksIEF1dG9oaW50ZXIsIFJlbmRlcml6YefjbyBkZSAiCiN+ICJzdWJwaXhlbCAodGVsYXMgQ1JUKSIKCiN+IG1zZ2lkICIiCiN+ICJUaGUgRnJlZXR5cGUgZm9udCBsaWJyYXJ5IGlzIGFibGUgdG8gcmVuZGVyIGZvbnRzIHdpdGggZGlmZmVyZW50IG1ldGhvZHMuICIKI34gIkRlcGVuZGluZyBvbiB5b3VyIGhhcmR3YXJlIGFuZCB0aGUgZm9udHMgeW91IGdlbmVyYWxseSB1c2UsIHNvbWUgd2lsbCAiCiN+ICJnaXZlIGJldHRlciByZXN1bHRzLiIKI34gbXNnc3RyICIiCiN+ICJBIGJpYmxpb3RlY2EgZGUgZm9udGVzIEZyZWV0eXBlIOkgY2FwYXogZGUgcmVuZGVyaXphciBmb250ZXMgdXNhbmRvICIKI34gImRpZmVyZW50ZXMgbel0b2Rvcy4gRGVwZW5kZW5kbyBkZSBzZXUgaGFyZHdhcmUgZSBkYXMgZm9udGVzIHF1ZSB2b2PqICIKI34gImdlcmFsbWVudGUgdXRpbGl6YSwgYWxndW5zIG3pdG9kb3MgcG9kZXLjbyBvZmVyZWNlciBtZWxob3JlcyByZXN1bHRhZG9zLiIKCiN+IG1zZ2lkICIiCiN+ICJUaGUgYXV0b2hpbnRlciBtb2R1bGUgaXMgdGhlIGRlZmF1bHQ7IGl0IGdpdmVzIGNvcnJlY3QgcmVzdWx0cyBvbiBtb3N0ICIKI34gImNvbmZpZ3VyYXRpb25zLiBUaGUgYnl0ZWNvZGUgaW50ZXJwcmV0ZXIgcmVuZGVycyBmb250cyB2ZXJ5IHNoYXJwbHksIGFuZCAiCiN+ICJpcyBvZnRlbiBhIGJldHRlciBjaG9pY2UgaWYgeW91IGFyZSB1c2luZyBhIGNhdGhvZGUtcmF5IHNjcmVlbi4gT24gdGhlICIKI34gIm90aGVyIGhhbmQsIHRoZSBzdWJwaXhlbCByZW5kZXJpbmcgbWV0aG9kIGlzIG9wdGltaXplZCBmb3IgaGlnaC1xdWFsaXR5ICIKI34gInJlbmRlcmluZyBvbiBtb3N0IGxpcXVpZCBjcnlzdGFsIGRpc3BsYXlzLiIKI34gbXNnc3RyICIiCiN+ICJPIG3zZHVsbyBhdXRvaGludGVyIOkgbyBwYWRy428sIHBvaXMgZm9ybmVjZSByZXN1bHRhZG9zIGNvcnJldG9zIG5hICIKI34gIm1haW9yaWEgZGFzIGNvbmZpZ3VyYef1ZXMuIE8gaW50ZXJwcmV0YWRvciBkZSBieXRlY29kZSByZW5kZXJpemEgZm9udGVzICIKI34gImJhc3RhbnRlIGFmaWFkYXMgZSDpIGdlcmFsbWVudGUgdW1hIG1lbGhvciBlc2NvbGhhIGNhc28gdm9j6iBlc3RlamEgIgojfiAidXNhbmRvIHVtIG1vbml0b3IgZGUgcmFpb3MgY2F082RpY29zLiBQb3Igb3V0cm8gbGFkbywgbyBt6XRvZG8gZGUgIgojfiAicmVuZGVyaXph5+NvIGRlIHN1YnBpeGVsIOkgb3RpbWl6YWRvIHBhcmEgcmVuZGVyaXph5+NvIGRlIGFsdGEgcXVhbGlkYWRlICIKI34gIm5hIG1haW9yaWEgZG9zIGRpc3BsYXlzIGRlIGNyaXN0YWwgbO1xdWlkby4iCgojfiBtc2dpZCAiIgojfiAiSWYgeW91IGhhdmUgYW4gTENEIGRpc3BsYXksIHRoZW4geW91IHdpbGwgd2FudCB0byBlbmFibGUgdGhpcyBvcHRpb24uIEl0ICIKI34gImFsbG93cyBmb3IgaGlnaGVyLXF1YWxpdHkgdGV4dCByZW5kZXJpbmcuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlICIKI34gInNlZSB0aGUgZm9udGNvbmZpZyBtYW51YWwgaW4gL3Vzci9zaGFyZS9kb2MvZm9udGNvbmZpZy8gb24geW91ciBEZWJpYW4gIgojfiAic3lzdGVtLiIKI34gbXNnc3RyICIiCiN+ICJDYXNvIHZvY+ogcG9zc3VhIHVtIG1vbml0b3IgTENEIHZvY+ogaXLhIGRlc2VqYXIgaGFiaWxpdGFyIGVzdGEgb3Dn428uIEEgIgojfiAibWVzbWEgcHJvcG9yY2lvbmEgdW1hIHJlbmRlcml6YefjbyBkZSB0ZXh0byBkZSBhbHRhIHF1YWxpZGFkZS4gUGFyYSAiCiN+ICJtYWlvcmVzIGluZm9ybWHn9WVzLCBwb3IgZmF2b3IgY29uc3VsdGUgbyBtYW51YWwgZG8gZm9udGNvbmZpZyBlbSAvdXNyLyIKI34gInNoYXJlL2RvYy9mb250Y29uZmlnLyBlbSBzZXUgc2lzdGVtYSBEZWJpYW4uIgoKI34gbXNnaWQgIkVuYWJsZSB0aGUgZnJlZXR5cGUgYXV0b2hpbnRlciBtb2R1bGU/IgojfiBtc2dzdHIgIkhhYmlsaXRhciBvIG3zZHVsbyBmcmVldHlwZSBhdXRvaGludGVyID8iCgojfiBtc2dpZCAiIgojfiAiRGVwZW5kaW5nIG9uIHlvdXIgZGlzcGxheSBhbmQgb24gd2hpY2ggZm9udHMgeW91IHVzZSwgdGhleSBjYW4gbG9vayAiCiN+ICJiZXR0ZXIgb3Igd29yc2Ugd2hlbiB1c2luZyB0aGUgYXV0b2hpbnRlciBtb2R1bGUuIEVuYWJsZSBpdCBpZiB5b3UgaGFwcGVuICIKI34gInRvIHByZWZlciB0aGUgbG9vayBpdCBnaXZlcyB0byB5b3VyIGZvbnRzLiIKI34gbXNnc3RyICIiCiN+ICJEZXBlbmRlbmRvIGRlIHNldSBtb25pdG9yIGUgZGFzIGZvbnRlcyBxdWUgdm9j6iB1c2EsIGFzIG1lc21hcyBwb2RlbSB0ZXIgIgojfiAidW1hIG1lbGhvciBvdSBwaW9yIGFwYXLqbmNpYSBxdWFuZG8gdm9j6iB1dGlsaXphIG8gbfNkdWxvIGF1dG9oaW50ZXIuICIKI34gIkhhYmlsaXRlLW8gY2FzbyB2b2PqIHByZWZpcmEgYSBhcGFy6m5jaWEgcXVlIG8gbWVzbW8gb2ZlcmVjZSDgIHN1YXMgIgojfiAiZm9udGVzLiIK