LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiogRElTQ0xBSU1FUg0KKiBUaGlzIHNvZnR3YXJlIGlzIHN1cHBsaWVkIGJ5IFJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24gYW5kIGlzIG9ubHkNCiogaW50ZW5kZWQgZm9yIHVzZSB3aXRoIFJlbmVzYXMgcHJvZHVjdHMuIE5vIG90aGVyIHVzZXMgYXJlIGF1dGhvcml6ZWQuIFRoaXMNCiogc29mdHdhcmUgaXMgb3duZWQgYnkgUmVuZXNhcyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbiBhbmQgaXMgcHJvdGVjdGVkIHVuZGVyDQoqIGFsbCBhcHBsaWNhYmxlIGxhd3MsIGluY2x1ZGluZyBjb3B5cmlnaHQgbGF3cy4NCiogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBSRU5FU0FTIE1BS0VTIE5PIFdBUlJBTlRJRVMgUkVHQVJESU5HDQoqIFRISVMgU09GVFdBUkUsIFdIRVRIRVIgRVhQUkVTUywgSU1QTElFRCBPUiBTVEFUVVRPUlksIElOQ0xVRElORyBCVVQgTk9UDQoqIExJTUlURUQgVE8gV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQoqIEFORCBOT04tSU5GUklOR0VNRU5ULiBBTEwgU1VDSCBXQVJSQU5USUVTIEFSRSBFWFBSRVNTTFkgRElTQ0xBSU1FRC4NCiogVE8gVEhFIE1BWElNVU0gRVhURU5UIFBFUk1JVFRFRCBOT1QgUFJPSElCSVRFRCBCWSBMQVcsIE5FSVRIRVIgUkVORVNBUw0KKiBFTEVDVFJPTklDUyBDT1JQT1JBVElPTiBOT1IgQU5ZIE9GIElUUyBBRkZJTElBVEVEIENPTVBBTklFUyBTSEFMTCBCRSBMSUFCTEUNCiogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBGT1INCiogQU5ZIFJFQVNPTiBSRUxBVEVEIFRPIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgUkVORVNBUyBPUiBJVFMgQUZGSUxJQVRFUyBIQVZFDQoqIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLg0KKiBSZW5lc2FzIHJlc2VydmVzIHRoZSByaWdodCwgd2l0aG91dCBub3RpY2UsIHRvIG1ha2UgY2hhbmdlcyB0byB0aGlzIHNvZnR3YXJlDQoqIGFuZCB0byBkaXNjb250aW51ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsDQoqIHlvdSBhZ3JlZSB0byB0aGUgYWRkaXRpb25hbCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3VuZCBieSBhY2Nlc3NpbmcgdGhlDQoqIGZvbGxvd2luZyBsaW5rOg0KKiBodHRwOi8vd3d3LnJlbmVzYXMuY29tL2Rpc2NsYWltZXINCioNCiogQ29weXJpZ2h0IChDKSAyMDEyIFJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiogRmlsZSBOYW1lICAgICA6IGJzY19pb2RlZmluZS5oDQoqIFZlcnNpb24gICAgICAgOiAwLjAxDQoqIERldmljZShzKSAgICAgOiBBcmFnb24NCiogVG9vbC1DaGFpbiAgICA6IERTLTUgVmVyIDUuOA0KKiAgICAgICAgICAgICAgICAgQVJNIENvbXBsaWVyIA0KKiAgICAgICAgICAgICAgIDogDQoqIEgvVyBQbGF0Zm9ybSAgOiBBcmFnb24gQ1BVIEJvYXJkDQoqIERlc2NyaXB0aW9uICAgOiBBcmFnb24gU2FtcGxlIFByb2dyYW0gdmVjb3RyLnMNCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKiBIaXN0b3J5IDogREQuTU0uWVlZWSBWZXJzaW9uIERlc2NyaXB0aW9uDQoqICAgICAgICAgOiAyNy4wNy4yMDEyIDAuMDEJCY5RjWyOkZe/gUZzZWMwOF9CU0NfMjAxMjA2MTUuZG9jICEhIVRPU0NPUm6CyY5kl2yPkYLJgsiCooNyg2KDZ5a8gqCC6CEhIQ0KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiNpZm5kZWYgX19CU0NfSU9ERUZJTkVfSF9fDQojZGVmaW5lIF9fQlNDX0lPREVGSU5FX0hfXw0KDQojaW5jbHVkZSAidHlwZWRlZmluZS5oIg0KDQp0eXBlZGVmIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDU25CQ1IgICAgICAgKi8NCiAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgX1VEV09SRCA6OTsgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIEJTWjoyOyAgICAgICAgICAgICAgICAgICAgIC8qICAgQlNaICAgICAgICAqLw0KICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBUWVBFOjM7ICAgICAgICAgICAgICAgICAgICAvKiAgIFRZUEUgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIF9VRFdPUkQgSVdSUlM6MzsgICAgICAgICAgICAgICAgICAgLyogICBJV1JSUyAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBJV1JSRDozOyAgICAgICAgICAgICAgICAgICAvKiAgIElXUlJEICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIElXUldTOjM7ICAgICAgICAgICAgICAgICAgIC8qICAgSVdSV1MgICAgICAqLw0KICAgICAgICAgICAgIF9VRFdPUkQgSVdSV0Q6MzsgICAgICAgICAgICAgICAgICAgLyogICBJV1JXRCAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBJV1c6MzsgICAgICAgICAgICAgICAgICAgICAvKiAgIElXVyAgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQp9IENTbkJDUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCnR5cGVkZWYgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPU0NPUm4gICAgICAqLw0KICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIHh4eDoxNjsgICAgICAgICAgICAgICAgICAgIC8qICAgeHh4ICAgICAgICAqLwkvKiAhISGDcoNig2eWvIyIkuiOn5HmgUGS6ItggreC6SEhISAqLw0KICAgICAgICAgICAgIF9VRFdPUkQgOjE2OyAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCn0gVE9TQ09SbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KDQpzdHJ1Y3Qgc3RfYnNjIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdHJ1Y3QgQlNDICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENNTkNSICAgICAgICAqLw0KICAgICAgICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBISVpDTlQ6MTsgICAgICAgICAgIC8qICAgSElaQ05UICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEhJWk1FTToxOyAgICAgICAgICAgLyogICBISVpNRU0gICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjc7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBEUFJUWToyOyAgICAgICAgICAgIC8qICAgRFBSVFkgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMzsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQUwwOjE7ICAgICAgICAgICAgICAvKiAgIEFMMCAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFRMMDoxOyAgICAgICAgICAgICAgLyogICBUTDAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQ01OQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgQ1NuQkNSIENTMEJDUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDUzBCQ1IgICAgICAgKi8NCiAgICAgICBDU25CQ1IgQ1MxQkNSOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMUJDUiAgICAgICAqLw0KICAgICAgIENTbkJDUiBDUzJCQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MyQkNSICAgICAgICovDQogICAgICAgQ1NuQkNSIENTM0JDUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDUzNCQ1IgICAgICAgKi8NCiAgICAgICBDU25CQ1IgQ1M0QkNSOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTNEJDUiAgICAgICAqLw0KICAgICAgIENTbkJDUiBDUzVCQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1M1QkNSICAgICAgICovDQogICAgICAgX1VCWVRFIHdrMFsxMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMFdDUiAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MwV0NSKE5PUk1BTCkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEhXOjI7ICAgICAgICAvKiAgIEhXICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXTToxOyAgICAgICAgLyogICBXTSAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdSOjQ7ICAgICAgICAvKiAgIFdSICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgU1c6MjsgICAgICAgIC8qICAgU1cgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NzsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJBUzoxOyAgICAgICAvKiAgIEJBUyAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjExOyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gTk9STUFMOyAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMFdDUihCUk9NX0FTWSkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo2OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV006MTsgICAgICAgIC8qICAgV00gICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXOjQ7ICAgICAgICAgLyogICBXICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo1OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQlc6MjsgICAgICAgIC8qICAgQlcgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MjsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJTVDoyOyAgICAgICAvKiAgIEJTVCAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEwOyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQlJPTV9BU1k7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMFdDUihCUk9NX1NZKSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjY7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXTToxOyAgICAgICAgLyogICBXTSAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFc6NDsgICAgICAgICAvKiAgIFcgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjU7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBCVzoyOyAgICAgICAgLyogICBCVyAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxNDsgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJST01fU1k7ICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBDUzBXQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMVdDUiAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSFc6MjsgICAgICAgIC8qICAgSFcgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdNOjE7ICAgICAgICAvKiAgIFdNICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1I6NDsgICAgICAgIC8qICAgV1IgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBTVzoyOyAgICAgICAgLyogICBTVyAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDozOyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1c6MzsgICAgICAgIC8qICAgV1cgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJBUzoxOyAgICAgICAvKiAgIEJBUyAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjExOyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBDUzFXQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTMldDUiAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MyV0NSKE5PUk1BTCkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo2OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV006MTsgICAgICAgIC8qICAgV00gICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXUjo0OyAgICAgICAgLyogICBXUiAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo5OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQkFTOjE7ICAgICAgIC8qICAgQkFTICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTE7ICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBOT1JNQUw7ICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MyV0NSKFNEUkFNKSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjc7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBBMkNMOjI7ICAgICAgLyogICBBMkNMICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoyMzsgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IFNEUkFNOyAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBDUzJXQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTM1dDUiAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MzV0NSKE5PUk1BTCkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo2OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV006MTsgICAgICAgIC8qICAgV00gICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXUjo0OyAgICAgICAgLyogICBXUiAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo5OyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQkFTOjE7ICAgICAgIC8qICAgQkFTICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTE7ICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBOT1JNQUw7ICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1MzV0NSKFNEUkFNKSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1RSQzoyOyAgICAgIC8qICAgV1RSQyAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFRSV0w6MjsgICAgICAvKiAgIFRSV0wgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjI7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBBM0NMOjI7ICAgICAgLyogICBBM0NMICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1RSQ0Q6MjsgICAgIC8qICAgV1RSQ0QgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdUUlA6MjsgICAgICAvKiAgIFdUUlAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE3OyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gU0RSQU07ICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IENTM1dDUjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1M0V0NSICAgICAgICovDQogICAgICAgICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDUzRXQ1IoTk9STUFMKSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSFc6MjsgICAgICAgIC8qICAgSFcgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdNOjE7ICAgICAgICAvKiAgIFdNICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1I6NDsgICAgICAgIC8qICAgV1IgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBTVzoyOyAgICAgICAgLyogICBTVyAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDozOyAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgV1c6MzsgICAgICAgIC8qICAgV1cgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJBUzoxOyAgICAgICAvKiAgIEJBUyAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjExOyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gTk9STUFMOyAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTNFdDUihCUk9NX0FTWSkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEhXOjI7ICAgICAgICAvKiAgIEhXICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXTToxOyAgICAgICAgLyogICBXTSAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFc6NDsgICAgICAgICAvKiAgIFcgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgU1c6MjsgICAgICAgIC8qICAgU1cgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJXOjI7ICAgICAgICAvKiAgIEJXICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjI7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBCU1Q6MjsgICAgICAgLyogICBCU1QgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMDsgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJST01fQVNZOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBDUzRXQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENTNVdDUiAgICAgICAqLw0KICAgICAgICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1M1V0NSKE5PUk1BTCkgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEhXOjI7ICAgICAgICAvKiAgIEhXICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBXTToxOyAgICAgICAgLyogICBXTSAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdSOjQ7ICAgICAgICAvKiAgIFdSICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgU1c6MjsgICAgICAgIC8qICAgU1cgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzsgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFdXOjM7ICAgICAgICAvKiAgIFdXICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBNUFhXQkFTOjE7ICAgLyogICBNUFhXL0JBUyAgICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFNaU0VMOjE7ICAgICAvKiAgIFNaU0VMICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEwOyAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gTk9STUFMOyAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IENTNVdDUjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIF9VQllURSB3azFbMTJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRENSICAgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQTNDT0w6MjsgICAgICAgICAgICAvKiAgIEEzQ09MICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEEzUk9XOjI7ICAgICAgICAgICAgLyogICBBM1JPVyAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBCQUNUVjoxOyAgICAgICAgICAgIC8qICAgQkFDVFYgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFBET1dOOjE7ICAgICAgICAgICAgLyogICBQRE9XTiAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUk1PREU6MTsgICAgICAgICAgICAvKiAgIFJNT0RFICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSRlNIOjE7ICAgICAgICAgICAgIC8qICAgUkZTSCAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgREVFUDoxOyAgICAgICAgICAgICAvKiAgIERFRVAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MjsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEEyQ09MOjI7ICAgICAgICAgICAgLyogICBBMkNPTCAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBBMlJPVzoyOyAgICAgICAgICAgIC8qICAgQTJST1cgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMTsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IFNEQ1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUlRDU1IgICAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJSQzozOyAgICAgICAgICAgICAgLyogICBSUkMgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ0tTOjM7ICAgICAgICAgICAgICAvKiAgIENLUyAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDTUlFOjE7ICAgICAgICAgICAgIC8qICAgQ01JRSAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENNRjoxOyAgICAgICAgICAgICAgLyogICBDTUYgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjI0OyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gUlRDU1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSVENOVCAgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgRDozMjsgICAgICAgICAgICAgICAvKiAgIEQgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gUlRDTlQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSVENPUiAgICAgICAgKi8NCiAgICAgICAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgRDozMjsgICAgICAgICAgICAgICAvKiAgIEQgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gUlRDT1I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgX1VCWVRFIHdrMls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICBUT1NDT1JuIFRPU0NPUjA7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPU0NPUjAgICAgICAqLw0KICAgICAgIFRPU0NPUm4gVE9TQ09SMTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVE9TQ09SMSAgICAgICovDQogICAgICAgVE9TQ09SbiBUT1NDT1IyOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUT1NDT1IyICAgICAgKi8NCiAgICAgICBUT1NDT1JuIFRPU0NPUjM7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPU0NPUjMgICAgICAqLw0KICAgICAgIFRPU0NPUm4gVE9TQ09SNDsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVE9TQ09SNCAgICAgICovDQogICAgICAgVE9TQ09SbiBUT1NDT1I1OyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUT1NDT1I1ICAgICAgKi8NCiAgICAgICBfVUJZVEUgd2szWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVE9TVFIgICAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENTMFRPU1RGOjE7ICAgICAgICAgLyogICBDUzBUT1NURiAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ1MxVE9TVEY6MTsgICAgICAgICAvKiAgIENTMVRPU1RGICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDUzJUT1NURjoxOyAgICAgICAgIC8qICAgQ1MyVE9TVEYgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENTM1RPU1RGOjE7ICAgICAgICAgLyogICBDUzNUT1NURiAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ1M0VE9TVEY6MTsgICAgICAgICAvKiAgIENTNFRPU1RGICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDUzVUT1NURjoxOyAgICAgICAgIC8qICAgQ1M1VE9TVEYgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoyNjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IFRPU1RSOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVE9FTlIgICAgICAgICovDQogICAgICAgICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENTMFRPRU46MTsgICAgICAgICAgLyogICBDUzBUT0VOICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ1MxVE9FTjoxOyAgICAgICAgICAvKiAgIENTMVRPRU4gICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDUzJUT0VOOjE7ICAgICAgICAgIC8qICAgQ1MyVE9FTiAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENTM1RPRU46MTsgICAgICAgICAgLyogICBDUzNUT0VOICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ1M0VE9FTjoxOyAgICAgICAgICAvKiAgIENTNFRPRU4gICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDUzVUT0VOOjE7ICAgICAgICAgIC8qICAgQ1M1VE9FTiAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoyNjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IFRPRU5SOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQoNCiNkZWZpbmUJQlNDCQkoKih2b2xhdGlsZSBzdHJ1Y3Qgc3RfYnNjICopMHgzRkZGQzAwMCkgICAvKiBCU0MgQWRkcmVzcyAqLw0KDQoNCiNlbmRpZiAvKiBfX0JTQ19JT0RFRklORV9IX18gKi8NCg0KLyogRW5kIG9mIEZpbGUgKi8NCg==