LyoKICogQ29weXJpZ2h0IDE5OTkgRXJpYyBQb3VlY2gKICogQ29weXJpZ2h0IDIwMDMgSXZhbiBMZW8gUHVvdGkKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgIndpbmRlZi5oIgojaW5jbHVkZSAibW1kZGsuaCIKClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfSVRBTElBTiwgU1VCTEFOR19ORVVUUkFMCkJFR0lOCgovKiBNTVNZUyBlcnJvcnMgKi8KTU1TWVNFUlJfTk9FUlJPUiwgCQkiSWwgY29tYW5kbyBzcGVjaWZpY2F0byDoIHN0YXRvIGVzZWd1aXRvLiIKTU1TWVNFUlJfRVJST1IsIAkJIkVycm9yZSBlc3Rlcm5vIHNjb25vc2NpdXRvLiIKTU1TWVNFUlJfQkFEREVWSUNFSUQsIAkJIkUnIHN0YXRvIHVzYXRvIGwnSUQgZGkgdW4gZGlzcG9zaXRpdm8gY2hlIOggZnVvcmkgZGFsbGEgcG9ydGF0YSBkZWwgc2lzdGVtYS4iCk1NU1lTRVJSX05PVEVOQUJMRUQsIAkJIklsIGRyaXZlciBub24g6CBhYmlsaXRhdG8uIgpNTVNZU0VSUl9BTExPQ0FURUQsIAkJIklsIGRyaXZlciBzcGVjaWZpY2F0byDoIGdp4CBpbiB1c28uIEF0dGVuZGVyZSBjaGUgc2lhIG51b3ZhbWVudGUgZGlzcG9uaWJpbGUsIGUgcmlwcm92YXJlLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkJIklsIGhhbmRsZSBkZWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8g6CBpbnZhbGlkby4iCk1NU1lTRVJSX05PRFJJVkVSLCAJCSJOb24g6CBpbnN0YWxsYXRvIG5lc3N1biBkcml2ZXIgbmVsIHNpc3RlbWEgIVxuIgpNTVNZU0VSUl9OT01FTSwgCQkiTWVtb3JpYSBpbnN1ZmZpY2VudGUgcGVyIGVzZWd1aXJlIHF1ZXN0YSBvcGVyYXppb25lLiBDaGl1ZGVyZSB1bmEgbyBwafkgYXBwbGljYXppb25pIHBlciBhdW1lbnRhcmUgbGEgbWVtb3JpYSBkaXNwb25pYmlsZSwgZSByaXByb3ZhcmUuIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsIAkJIlF1ZXN0YSBmdW56aW9uZSBub24g6CBzdXBwb3J0YXRhLiBVc2FyZSBsYSBmdW56aW9uZSBDYXBhYmlsaXRpZXMgcGVyIGRldGVybWluYXJlIHF1YWxpIGZ1bnppb25pIGUgbWVzc2FnZ2kgc29ubyBzdXBwb3J0YXRpIGRhbCBkcml2ZXIuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIkUnIHN0YXRvIHNwZWNpZmljYXRvIHVuIG51bWVybyBkaSBlcnJvcmUgbm9uIGRlZmluaXRvIGRhbCBzaXN0ZW1hLiIKTU1TWVNFUlJfSU5WQUxGTEFHLCAJCSJVbiBmbGFnIGludmFsaWRvIOggc3RhdG8gcGFzc2F0byBhIHVuYSBmdW56aW9uZSBkaSBzaXN0ZW1hLiIKTU1TWVNFUlJfSU5WQUxQQVJBTSwgCQkiVW4gcGFyYW1ldHJvIGludmFsaWRvIOggc3RhdG8gcGFzYXRvIGEgdW5hIGZ1bnppb25lIGRpIHNpc3RlbWEuIgoKLyogV0FWRSBlcnJvcnMgKi8KV0FWRVJSX0JBREZPUk1BVCwgCQkiSWwgZm9ybWF0byBzcGVjaWZpY2F0byBub24g6CBzdXBwb3J0YXRvIG8gbm9uIHB18iBlc3NlcmUgdHJhZG90dG8uIFVzYXJlIGxhIGZ1bnppb25lIENhcGFiaWxpdGllcyBwZXIgZGV0ZXJtaW5hcmUgbGUgZnVuemlvbmkgc3VwcG9ydGF0ZSIKV0FWRVJSX1NUSUxMUExBWUlORywgCQkiTm9uIOggcG9zc2liaWxlIGVmZmV0dWFyZSBxdWVzdGEgb3BlcmF6aW9uZSBkdXJhbnRlIGwnZXNlY3V6aW9uZS4gUmVpbml6aWFsaXp6YXJlIGlsIGRpc3Bvc2l0aXZvLCBvIGF0dGVuZGVyZSBsYSBmaW5lIGRlbGwnZXNlY3V6aW9uZS4iCldBVkVSUl9VTlBSRVBBUkVELCAJCSJJbCBoZWFkZXIgd2F2ZSBub24g6CBzdGF0byBwcmVwYXJhdG8uIFVzYXJlIGxhIGZ1bnppb25lIFByZXBhcmUgcGVyIHByZXBhcmFsZSBsJ2hlYWRlciwgZSByaXByb3ZhcmUuIgpXQVZFUlJfU1lOQywgCQkJIk5vbiDoIHBvc3NpYmlsZSBhcHJpcmUgaWwgZGlzcG9zaXRpdm8gc2VuemEgdXNhcmUgaWwgZmxhZyBXQVZFX0FMTE9XU1lOQy4gVXNhcmUgaWwgZmxhZywgZSByaXByb3ZhcmUuIgoKLyogTUlESSBlcnJvcnMgKi8KTUlESUVSUl9VTlBSRVBBUkVELCAJCSJMJ2hlYWRlciBNSURJIG5vbiDoIHN0YXRvIHByZXBhcmF0by4gVXNhcmUgbGEgZnVuemlvbmUgUHJlcGFyZSBwZXIgcHJlcGFyYXJlIGwnaGVhZGVyLCBlIHJpcHJvdmFyZS4iCk1JRElFUlJfU1RJTExQTEFZSU5HLCAJCSJOb24g6CBwb3NzaWJpbGUgZWZmZXR1YXJlIHF1ZXN0YSBvcGVyYXppb25lIGR1cmFudGUgbCdlc2VjdXppb25lLiBSZWluaXppYWxpenphcmUgaWwgZGlzcG9zaXRpdm8sIG8gYXR0ZW5kZXJlIGxhIGZpbmUgZGVsbCdlc2VjdXppb25lLiIKTUlESUVSUl9OT01BUCwgCQkJIk5vbiDoIHN0YXRhIHRyb3ZhdGEgdW5hIG1hcHBhIE1JREkuIENpIHBvdHJlYmJlIGVzc2VyZSB1biBwcm9ibGVtYSBjb24gaWwgZHJpdmVyLCBvIGlsIGZpbGUgTUlESU1BUC5DRkcgcG90cmViYmUgZXNzZXJlIGRhbm5lZ2dpYXRvIG8gbWFuY2FudGUuIgpNSURJRVJSX05PVFJFQURZLCAJCSJMYSBwb3J0YSBzdGEgdHJhc21ldHRlbmRvIGRlaSBkYXRpIGFsIGRpc3Bvc2l0aXZvLiBBdHRlbmRlcmUgbGEgdHJhc21pc3Npb25lIGRpIHR1dHRpIGkgZGF0aSwgZSByaXByb3ZhcmUuIgpNSURJRVJSX05PREVWSUNFLCAJCSJMYSBjb25maWd1cmF6aW9uZSBhdHR1YWxlIGRlbCBNYXBwZXIgTUlESSBzaSByaWZlcmlzY2UgYSB1biBkaXNwb3NpdGl2byBNSURJIGNoZSBub24g6CBwcmVzZW50ZSBuZWwgc2lzdGVtYS4gVXNhcmUgaWwgTWFwcGVyIE1JREkgcGVyIG1vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUuIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiTGEgY29uZmlndXRhemlvbmUgTUlESSBhdHR1YWxlIOggZGFubmVnZ2lhdGEuIENvcGlhcmUgaWwgZmlsZSBNSURJTUFQLkNGRyBuZWxsYSBkaXJlY3RvcnkgU1lTVEVNIGRpIFdpbmRvd3MsIGUgcmlwcm92YXJlLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIklEIGRlbCBkaXNwb3NpdGl2byBNQ0kgaW52YWxpZG8uIFVzYXJlIGwnSUQgcmVzdGl0dWl0byBxdWFuZG8gc2kg6CBhcGVydG8gaWwgZGlzcG9zaXRpdm8gTUNJLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9LRVlXT1JELCAJIklsIGRyaXZlciBub24gcmljb25vc2NlIGlsIHBhcmFtZXRybyBkZWwgY29tYW5kbyBzcGVjaWZpY2F0by4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIklsIGRyaXZlciBub24gcmljb25vc2NlIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIkMn6CB1biBwcm9ibGVtYSBjb24gaWwgZGlzcG9zaXRpdm8gbXVsdGltZWRpYWxlLiBDb250cm9sbGFyZSBjaGUgaWwgZnVuemlvbmFtZW50byBkZWwgZGlzcG9zaXRpdm8gbyBjb250YXR0YXJlIGlsIHByb2R1dHRvcmUuIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJJbCBkaXNwb3NpdGl2byBzcGVjaWZpY2F0byBub24g6CBhcGVydG8gbyBub24g6CBzdXBwb3J0YXRvIGRhIE1DSS4iCk1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAJCSJNZW1vcmlhIGluc3VmZmljZW50ZSBwZXIgZXNlZ3VpcmUgcXVlc3RhIG9wZXJhemlvbmUuXG5DaGl1ZGVyZSB1bmEgbyBwafkgYXBwbGljYXppb25pIHBlciBhdW1lbnRhcmUgbGEgbWVtb3JpYSBkaXNwb25pYmlsZSwgZSByaXByb3ZhcmUuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIklsIG5vbWUgZGVsIGRpc3Bvc2l0aXZvIOggZ2ngIGluIHVzbyBjb21lIGFsaWFzIGRhIHBhcnRlIGRpIHF1ZXN0YSBhcHBsaWNhemlvbmUuIFVzYXJlIHVuIGFsaWFzIHVuaXZvY28uIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIlNpIOggdmVyaWZpY2F0byB1biBwcm9ibGVtYSBub24gcmlsZXZhYmlsZSBuZWwgY2FyaWNhbWVudG8gZGVsIGRyaXZlciBzcGVjaWZpY2F0by4iCk1DSUVSUl9NSVNTSU5HX0NPTU1BTkRfU1RSSU5HLCAJIk5vbiDoIHN0YXRvIHNwZWNpZmljYXRvIG5lc3N1biBjb21hbmRvLiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSJMYSBzdHJpbmdhIGRpIG91dHB1dCDoIHRyb3BwbyBncmFuZGUgcGVyIGVudHJhcmUgbmVsIGJ1ZmZlciBkaSByaXRvcm5vLiBBdW1lbnRhcmUgbGEgZGltZW5zaW9uZSBkZWwgYnVmZmVyLiIKTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiSWwgY29tYW5kbyBzcGVjaWZpY2F0byByaWNoaWVkZSB1biBwYXJhbWV0cm8gY2hlIHNpYSB1bmEgc3RyaW5nYSBkaSBjYXJhdHRlcmkuIEZvcm5pcm5lIHVuby4iCk1DSUVSUl9CQURfSU5URUdFUiwgCQkiSWwgbnVtZXJvIGludHJlbyBzcGVjaWZpY2F0byBub24g6CB2YWxpZG8gcGVyIHF1ZXN0byBjb21hbmRvLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJJbCBkcml2ZXIgaGEgcmVzdGl0dWl0byB1biB0aXBvIG5vbiB2YWxpZG8uIENvbnRhdHRhcmUgaWwgcHJvZHV0dG9yZSBkZWwgZGlzcG9zaXRpdm8gcGVyIG90dGVuZXJlIHVuIG51b3ZvIGRyaXZlci4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiQyfoIHVuIHByb2JsZW1hIGNvbiBpbCBkcml2ZXIuIENvbnRhdHRhcmUgaWwgcHJvZHV0dG9yZSBkZWwgZGlzcG9zaXRpdm8gcGVyIG90dGVuZXJlIHVuIG51b3ZvIGRyaXZlci4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJJbCBjb21hbmRvIHNwZWNpZmljYXRvIHJpY2hpZWRlIHVuIHBhcmFtZXRyby4gRm9ybmlybmUgdW5vLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIklsIGRpc3Bvc2l0aXZvIE1DSSBpbiB1c28gbm9uIHN1cHBvcnRhIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIklsIGZpbGUgc3BlY2lmaWNhdG8gbm9uIOggc3RhdG8gdHJvdmF0by4gQ29udHJvbGxhcmUgY2hlIGwnaW5kaXJpenpvIGUgaWwgbm9tZSBkZWwgZmlsZSBzaWFubyBjb3JyZXR0aS4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIklsIGRyaXZlciBub24g6CBwcm9udG8uIgpNQ0lFUlJfSU5URVJOQUwsIAkJIlNpIOggdmVyaWZpY2F0byB1biBwcm9ibGVtYSBuZWxsJ2luaXppYWxpemF6aW9uZSBkaSBNQ0kuIFByb3ZhcmUgYSByaWF2dmlhcmUgV2luZG93cy4iCk1DSUVSUl9EUklWRVIsIAkJCSJTaSDoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIG5lbCBkcml2ZXIuIElsIGRyaXZlciDoIHN0YXRvIGNoaXVzby4gRXJyb3JlIG5vbiBhY2Nlc3NpYmlsZS4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiTm9uIOggcG9zc2liaWxlIHVzYXJlICdhbGwnIGNvbWUgbm9tZSBkZWwgZGlzcG9zaXRpdm8gY29uIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIlNpIHNvbm8gdmVyaWZpY2F0aSBkZWdsaSBlcnJvcmkgaW4gcGn5IGRpIHVuIGRpc3Bvc2l0aXZvLiBTcGVjaWZpY2FyZSBvZ25pIGNvbWFuZG8gZSBkaXNwb3NpdGl2byBzZXBhcmF0YW1lbnRlIHBlciBkZXRlcm1pbmFyZSBxdWFsZSBkaXNwb3NpdGl2byBoYSBjYXVzYXRvIGwnZXJyb3JlIgpNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgCSJJbXBvc3NpYmlsZSBkZXRlcm1pbmFyZSBpbCB0aXBvIGRpIGRpc3Bvc2l0aXZvIGRhbGwnZXN0ZW5zaW9uZSBkYXRhLiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIklsIHBhcmFtZXRybyBzcGVjaWZpY2F0byDoIGZ1b3JpIGRhbGxhIHBvcnRhdGEgZGVsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsIAkiSSBwYXJhbWV0cmkgc3BlY2lmaWNhdGkgbm9uIHBvc3Nvbm8gZXNzZXJlIHVzYXRpIGluc2llbWUuIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIkltcG9zc2liaWxlIHNhbHZhcmUgaWwgZmlsZSBzcGVjaWZpY2F0by4gQ29udHJvbGxhcmUgZGkgYXZlcmUgYWJiYXN0YW56YSBzcGF6aW8gbGliZXJvIGUgZGkgZXNzZXJlIGFuY29yYSBjb25uZXNzaSBhbGxhIHJldGUuIgpNQ0lFUlJfREVWSUNFX1RZUEVfUkVRVUlSRUQsIAkiSW1wb3NzaWJpbGUgdHJvdmFyZSBpbCBkaXNwb3NpdGl2byBzcGVjaWZpY2F0by4gQ29udHJvbGxhcmUgY2hlIHNpYSBpbnN0YWxsYXRvIGUgY2hlIGlsIG5vbWUgc2lhIGRpZ2l0YXRvIGNvcnJldHRhbWVudGUuIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiSWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8gdmVycuAgY2hpdXNvLiBBdHRlbmRlcmUgYWxjdW5pIHNlY29uZGkgZSByaXByb3ZhcmUuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIkwnYWxpYXMgc3BlY2lmaWNhdG8g6CBnaeAgaW4gdXNvIGRhIHBhcnRlIGRpIHF1ZXN0YSBhcHBsaWNhemlvbmUuIFVzYXJlIHVuIGFsaWFzIHVuaXZvY28uIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJJbCBwYXJhbWV0cm8gc3BlY2lmaWNhdG8g6CBpbnZhbGlkbyBwZXIgcXVlc3RvIGNvbWFuZG8uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIklsIGRyaXZlciDoIGdp4CBpbiB1c28uIFBlciBjb25kaXZpZGVybG8sIHVzYXJlIGlsIHBhcmFtZXRybyAgJ3NoYXJlYWJsZScgY29uIG9nbmkgY29tYW5kbyAnb3BlbicuIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJJbCBjb21hbmRvIHNwZWNpZmljYXRvIHJpY2hpZWRlIHVuIGFsaWFzLCB1biBmaWxlLCB1biBkcml2ZXIgbyBpbCBub21lIGRpIHVuIGRpc3Bvc2l0aXZvLiBGb3JuaXJuZSB1bm8uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIklsIHZhbG9yZSBzcGVjaWZpY2F0byDoIGludmFsaWRvIHBlciBpbCBmb3JtYXRvIGRlbGwnb3JhcmlvLiBDb25zdWx0YXJlIGxhIGRvY3VtZW50YXppb25lIGRlbGwnTUNJIHBlciBpIGZvcm1hdGkgdmFsaWRpLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiTWFuY2EgdW5hIGRvcHBpYSB2b3Jnb2xldHRhIGRpIGNoaXVzdXJhIGRhbCB2YWxvcmUgZGVsIHBhcmFtZXRyby4gRm9ybmlybmUgdW5hLiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJVbiB2YWxvcmUgbyBwYXJhbWV0cm8g6CBzdGF0byBzcGVjaWZpY2F0byBkdWUgdm9sdGUuIFNwZWNpZmljYXJsbyBzb2xvIHVuYSB2b2x0YS4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIklsIGZpbGUgc3BlY2lmaWNhdG8gbm9uIHB18iBlc3NlcmUgYXBlcnRvIGNvbiBpbCBkaXNwb3NpdGl2byBNQ0kgc3BlY2lmaWNhdG8uIElsIGZpbGUgcG90cmViYmUgZXNzZXJlIGRhbmVnZ2lhdG8sIG8gaW4gdW4gZm9ybWF0byBlcnJhdG8uIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiVW4gbnVsbCBwYXJhbWV0ZXIgYmxvY2sg6CBzdGF0byBwYXNzYXRvIGEgTUNJLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiTm9uIOggcG9zc2liaWxlIHNhbHZhcmUgdW4gZmlsZSBzZW56YSBub21lLiBGb3JuaXJlIHVuIG5vbWUgYWwgZmlsZS4iCk1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsIAkiRScgbmVjZXNzYXJpbyBzcGVjaWZpY2FyZSB1biBhbGlhcyBxdWFuZG8gc2kgdXNhIGlsIHBhcmFtZXRybyAnbmV3Jy4iCk1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAJIk5vbiDoIHBvc3NpYmlsZSB1c2FyZSBpbCBmbGFnICdub3RpZnknIGNvbiBkaXNwb3NpdGl2aSBhdXRvLWFwZXJ0aS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiTm9uIOggcG9zc2liaWxlIHVzYXJlIHVuIG5vbWUgZmlsZSBjb24gaWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJOb24g6CBwb3NzaWJpbGUgZXNlZ3VpcmUgaSBjb21hbmRpIG5lbGwnb3JkaW5lIHNwZWNpZmljYXRvLiBDb3JyZWdnZXJlIGxhIHNlcXVlbnphLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiTm9uIOggcG9zc2liaWxlIGVzZWd1aXJlIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8gY29uIHVuIGRpc3Bvc2l0aXZvIGF1dG8tYXBlcnRvLiBBdHRlbmRlcmUgY2hlIGlsIGRpc3Bvc2l0aXZvIHNpIHNpYSBjaGl1c28sIGUgcmlwcm92YXJlLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIklsIG5vbWUgZGVsIGZpbGUg6CBpbnZhbGlkby4gQ29udHJvbGxhcmUgY2hlIGlsIG5vbWUgZGVsIGZpbGUgbm9uIHNpYSBwafkgbHVuZ28gZGkgOCBjYXJhdHRlcmksIHNlZ3VpdG8gZGEgdW4gcGVyaW9kbyBlIHVuJ2VzdGVuc2lvbmUuIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJOb24g6CBwb3NzaWJpbGUgc3BlY2lmaWNhcmUgYWx0cmkgY2FyYXR0ZXJpIGRvcG8gdW5hIHN0cmluZ2EgY29tcHJlc2EgdHJhIHZpcmdvbGV0dGUuIgpNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsIAkiSWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8gbm9uIOggaW5zdGFsbGF0byBuZWwgc2lzdGVtYS4gVXNhcmUgbCdvcHppb25lIERyaXZlcnMgbmVsIFBhbm5lbGxvIGRpIENvbnRyb2xsbyBwZXIgaW5zdGFsbGFyZSBpbCBkaXNwb3NpdGl2by4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJJbXBvc3NpYmlsZSBhY2NlZGVyZSBhbCBmaWxlIG8gZGlzcG9zaXRpdm8gTUNJIHNwZWNpZmljYXRvLiBQcm92YXJlIGEgY2FtYmlhcmUgZGlyZWN0b3J5IG8gcmlhdnZpYXJlIGlsIGNvbXB1dGVyLiIKTUNJRVJSX1NFVF9DRCwgCQkJIkltcG9zc2liaWxlIGFjY2VkZXJlIGFsIGZpbGUgbyBkaXNwb3NpdGl2byBNQ0kgc3BlY2lmaWNhdG8gcGVyY2joIGwnYXBwbGljYXppb25lIG5vbiBwdfIgY2FtYmlhcmUgZGlyZWN0b3J5LiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiSW1wb3NzaWJpbGUgYWNjZWRlcmUgYWwgZmlsZSBvIGRpc3Bvc2l0aXZvIE1DSSBzcGVjaWZpY2F0byBwZXJjaOggbCdhcHBsaWNhemlvbmUgbm9uIHB18iBjYW1iaWFyZSBkcml2ZS4iCk1DSUVSUl9ERVZJQ0VfTEVOR1RILCAJCSJTcGVjaWZpY2FyZSB1biBkcml2ZXIgbyBkaXNwb3NpdGl2byBjb24gbWVubyBkaSA3OSBjYXJhdHRlcmkuIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiU3BlY2lmaWNhcmUgdW4gZHJpdmVyIG8gZGlzcG9zaXRpdm8gY29uIG1lbm8gZGkgNjkgY2FyYXR0ZXJpLiIKTUNJRVJSX05PX0lOVEVHRVIsIAkJIklsIGNvbWFuZG8gc3BlY2lmaWNhdG8gcmljaGllZGUgdW4gbnVtZXJvIGludGVybyBjb21lIHBhcmFtZXRyby4gRm9ybmlybmUgdW5vLiIKTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAJIlR1dHRpIGkgZGlzcG9zaXRpdmkgd2F2ZSBjaGUgcG9zc29ubyBsZWdnZXJlIGlsIGZpbGUgbmVsIGZvcm1hdG8gYXR0dWFsZSBzb25vIGluIHVzby4gQXR0ZW5kZXJlIGNoZSB1biBkaXNwb3NpdGl2byB3YXZlIHNpYSBsaWJlcm8sIGUgcmlwcm92YXJlLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsIAkiTm9uIOggcG9zc2liaWxlIGltcG9zdGFyZSBpbCBkaXNwb3NpdGl2byB3YXZlIGF0dHVhbGUgcGVyIGlsIHBsYXkgYmFjayBwZXJjaOgg6CBpbiB1c28uIEF0dGVuZGVyZSBjaGUgaWwgZGlzcG9zaXRpdm8gc2lhIGxpYmVybywgZSByaXByb3ZhcmUuIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJUdXR0aSBpIGRpc3Bvc2l0aXZpIHdhdmUgY2hlIHBvc3Nvbm8gcmVnaXN0cmFyZSBuZWwgZm9ybWF0byBhdHR1YWxlIHNvbm8gaW4gdXNvLiBBdHRlbmRlcmUgY2hlIHVuIGRpc3Bvc2l0aXZvIHdhdmUgc2lhIGRpc3BvbmliaWxlLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiTm9uIOggcG9zc2liaWxlIGltcG9zdGFyZSBpbCBkaXNwb3NpdGl2byBwZXIgcmVnaXN0cmFyZSBwZXJjaOgg6CBpbiB1c28uIEF0dGVuZGVyZSBjaGUgaWwgZGlzcG9zaXRpdm8gc2lhIGRpc3BvbmliaWxlLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiUHXyIGVzc2VyZSB1c2F0byBxdWFsdW5xdWUgZGlzcG9zaXRpdm8gY29tcGF0aWJpbGUgd2F2ZWZvcm0gcGVyIGlsIHBsYXliYWNrLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJQdfIgZXNzZXJlIHVzYXRvIHF1YWx1bnF1ZSBkaXNwb3NpdGl2byBjb21wYXRpYmlsZSB3YXZlZm9ybSBwZXIgcmVnaXN0cmFyZS4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAJIk5lc3N1biBkaXNwb3NpdGl2byB3YXZlIGluc3RhbGxhdG8gcHXyIGxlZ2dlcmUgaSBmaWxlIG5lbCBmb3JtYXRvIGF0dHVhbGUuIFVzYXJlIGwnb3B6aW9uZSBkcml2ZXJzIHBlciBpbnN0YWxsYXJlIHVuIGRpc3Bvc2l0aXZvIHdhdmUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJJbCBkaXNwb3NpdGl2byBjaGUgc2kgc3RhIHVzYW5kbyBwZXIgbGVnZ2VyZSBpbCBmaWxlIG5vbiByaXNvbm9zY2UgaWwgZm9ybWF0byBkZWwgZmlsZSBhdHR1YWxlLiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJOb24g6CBpbnN0YWxsYXRvIG5lc3N1biBkaXBvc2l0aXZvIHdhdmUgY2hlIHBvc3NhIHJlZ2lzdHJhcmUgZGVpIGZpbGUgbmVsIGZvcm1hdG8gYXR0dWFsZS4gVXNhcmUgbCdvcHppb25lIERyaXZlcnMgcGVyIGluc3RhbGxhcmUgdW4gZGlzcG9zaXRpdm8gd2F2ZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIklsIGRpc3Bvc2l0aXZvIGNoZSBzaSBzdGEgdXNhbmRvIHBlciByZWdpc3RyYXJlIG5vbiByaXNvbm9zY2UgaWwgZm9ybWF0byBhdHR1YWxlLiIKTUNJRVJSX05PX1dJTkRPVywgCQkiTm9uIGMn6CBuZXNzdW5hIGZpbmVzdHJhIGRpIHZpc3VhbGl6emF6aW9uZS4iCk1DSUVSUl9DUkVBVEVXSU5ET1csIAkJIkltcG9zc2liaWxlIHVzYXJlIG8gY3JlYXJlIGxhIGZpbmVzdHJhLiIKTUNJRVJSX0ZJTEVfUkVBRCwgCQkiSW1wb3NzaWJpbGUgbGVnZ2VyZSBpbCBmaWxlIHNwZWNpZmljYXRvLiBBc3NpY3VyYXJzaSBjaGUgaWwgZmlsZSBzaWEgYW5jb3JhIHByZXNlbnRlLCBvIGNvbnRyb2xsYXJlIGlsIGRpc2NvIG8gbGEgY29ubmVzc2lvbmUgZGkgcmV0ZS4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJJbXBvc3NpYmlsZSBzY3JpdmVyZSBpbCBmaWxlIHNwZWNpZmljYXRvLiBDb250cm9sbGFyZSBkaSBhdmVyZSBzcGF6aW8gbGliZXJvIHN1ZmZpY2VudGUgc3VsIGRpc2NvIG8gZGkgZXNzZXJlIGFuY29yYSBjb25uZXNzaSBhbGxhIHJldGUuIgpNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsIAkiSSBmb3JtYXRpIGRlbGwnb3JhcmlvIGRlbCAiInNvbmcgcG9pbnRlciIiIGUgIFNNUFRFIHNpIGVzY2x1ZG9ubyB2aWNlbmRldm9sbWVudGUuIE5vbiBzaSBwb3Nzb25vIHVzYXJlIGluc2llbWUuIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiTmVsIHNpc3RlbWEgbm9uIHNvbm8gaW5zdGFsbGF0aSBkaXNwb3NpdGl2aSBNSURJLiBVc2FyZSBsJ29wemlvbmUgRHJpdmVycyBkYWwgUGFubmVsbG8gZGkgQ29udHJvbGxvIHBlciBpbnN0YWxsYXJlIHVuIGRyaXZlciBNSURJLiIKTUNJRVJSX1NFUV9QT1JUX0lOVVNFLCAJCSJMYSBwb3J0YSBNSURJIHNwZWNpZmljYXRhIOggZ2ngIGluIHVzby4gQXR0ZW5kZXJlIGNoZSBzaWEgbGliZXJhLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJMYSBjb25maWd1cmF6aW9uZSBkZWwgTWFwcGVyIE1JREkgc2kgcmlmZXJpc2NlIGEgdW4gZGlzcG9zaXRpdm8gTUlESSBjaGUgbm9uIOggaW5zdGFsbGF0byBuZWwgc2lzdGVtYS4gVXNhcmUgbCdvcHppb25lIE1hcHBlciBNSURJIG5lbCBQYW5uZWxsbyBkaSBDb250cm9sbG8gcGVyIGNhbWJpYXJlIGxhIGNvbmZpZ3VyYXppb25lLiIKTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgCSJTaSDoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIGNvbiBsYSBwb3J0YSBzcGVjaWZpY2F0YS4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJJbCBkaXNwb3NpdGl2byBNSURJIHNwZWNpZmljYXRvIG5vbiDoIGluc3RhbGxhdG8gbmVsIHNpc3RlbWEuIFVzYXJlIGwnb3B6aW9uZSBEUklWRVJTIG5lbCBQYW5uZWxsbyBkaSBDb250cm9sbG8gcGVyIGluc3RhbGxhcmUgdW4gZGlzcG9zaXRpdm8gTUlESS4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIk5vbiDoIHN0YXRhIHNwZWNpZmljYXRhIHVuYSBwb3J0YSBNSURJIG5lbCBzaXN0ZW1hLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiVHV0dGkgaSB0aW1lciBtdWx0aW1lZGlhbGkgc29ubyBpbiB1c28gZGEgcGFydGUgZGkgYWx0cmUgYXBwbGljYXppb25pLiBDaGl1ZGVyZSB1bmEgZGkgcXVlc3RhIGFwcGxpY2F6aW9uaSwgZSByaXByb3ZhcmUuIgoKRU5ECg==