Path: csiph.com!aioe.org!news.mixmin.net!news.unit0.net!fu-berlin.de!uni-berlin.de!not-for-mail From: Bill Somerville Newsgroups: comp.lang.python Subject: RE: Issue with ctypes and callback functions Date: Wed, 3 Aug 2016 13:21:08 +0000 Lines: 46 Message-ID: References: <0E5668E32633FB4FBBA1709825C0EDFDD24AAE@SCHEXMB2.acresso.com> <0E5668E32633FB4FBBA1709825C0EDFDD24B77@SCHEXMB2.acresso.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Trace: news.uni-berlin.de vlDxqiczoizMCfh5pT6IhgZRNOnw25WW/67dXyjdBM5A== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '#include': 0.07; 'attributes': 0.07; 'classes.': 0.07; 'nicely': 0.07; 'wrapped': 0.07; 'wrapper': 0.07; 'api': 0.09; '*);': 0.09; 'already.': 0.09; 'callback': 0.09; 'called.': 0.09; 'res': 0.09; 'subject:ctypes': 0.09; 'typedef': 0.09; 'typeerror:': 0.09; 'python': 0.10; 'def': 0.13; 'wed,': 0.15; 'argument': 0.15; 'message-----': 0.15; 'prototype': 0.15; 'subject:Issue': 0.15; '(c_int,': 0.16; '2016': 0.16; 'above?': 0.16; 'ctypes.': 0.16; 'email addr:gmail.com]': 0.16; 'member;': 0.16; 'received:10.255': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'wrote:': 0.16; 'pointer': 0.18; 'aug': 0.20; 'extension': 0.20; 'to:name:python-list@python.org': 0.20; 'arguments': 0.22; 'ctypes': 0.22; 'parameter': 0.22; 'parsing': 0.22; 'struct': 0.22; 'trying': 0.22; 'am,': 0.23; 'errors': 0.23; 'passing': 0.23; 'skip:+ 30': 0.23; 'tried': 0.24; 'import': 0.24; 'header:In-Reply-To:1': 0.24; 'skip:- 40': 0.25; 'module': 0.25; 'defining': 0.27; 'function': 0.28; 'fine': 0.28; 'be:': 0.29; 'callable': 0.29; 'print': 0.30; 'code': 0.30; 'extend': 0.31; "can't": 0.32; 'skip:_ 10': 0.32; 'bill': 0.32; 'point': 0.33; 'class': 0.33; 'problem': 0.33; 'int': 0.33; 'interface,': 0.33; 'wrap': 0.33; 'skip:- 10': 0.34; 'changing': 0.34; 'handle': 0.34; 'sent:': 0.35; 'could': 0.35; 'cc:': 0.35; 'subject:': 0.35; 'but': 0.36; 'created': 0.36; 'email addr:python.org': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'received:10': 0.37; 'being': 0.37; 'thanks': 0.37; 'list.': 0.37; 'creation': 0.38; 'does': 0.39; 'easily': 0.39; 'from:': 0.39; 'build': 0.40; 'to:addr:python.org': 0.40; 'where': 0.40; 'subject:with': 0.40; 'questions': 0.40; 'address': 0.61; 'here.': 0.62; 'cast': 0.66; 'email name:python-list': 0.67; 'receive': 0.71; 'august': 0.75; 'received:104': 0.84; 'struct.': 0.84; 'shadow': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=FLEXERA.onmicrosoft.com; s=selector1-flexerasoftware-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=os16O2sDyAdSPBn6alTSTeZzDnsfsV79PFsyO/hcalI=; b=Mk+WOhoyBcNEYZIOOafVbZD2RbxYlIL++n7d8+APigDP3mOqqFxI/1D2WeV6ARYnoGr32B4zKSwOZY35cVbD7z+7jTvzFe6U+EAQLDeFZzEw5RacWxiH2IXT+KW5l5h/0WiSZkvWLeijTyyB//ziwwV4fGoHJR6elUmuLzlcTf4= Authentication-Results: spf=pass (sender IP is 162.244.223.1) smtp.mailfrom=flexerasoftware.com; python.org; dkim=none (message not signed) header.d=none;python.org; dmarc=bestguesspass action=none header.from=flexerasoftware.com; Received-SPF: Pass (protection.outlook.com: domain of flexerasoftware.com designates 162.244.223.1 as permitted sender) receiver=protection.outlook.com; client-ip=162.244.223.1; helo=smtp.flexerasoftware.com; Thread-Topic: Issue with ctypes and callback functions Thread-Index: AdHtasD2xLoVF7NDTBuKZ7W4tqHDjgAP/oqAAAhUUfA= In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.17.0.4] X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:162.244.223.1; IPV:CAL; SCL:-1; CTRY:; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(3000300001)(438002)(199003)(377454003)(24454002)(13464003)(189002)(86362001)(305945005)(54356999)(2920100001)(47776003)(189998001)(92566002)(23676002)(356003)(5250100002)(19580395003)(26826002)(50466002)(55846006)(81156014)(102836003)(8676002)(2950100001)(33656002)(97736004)(107886002)(2900100001)(9686002)(22756006)(7696003)(87936001)(5640700001)(2906002)(53416004)(19580405001)(7736002)(80792005)(2501003)(22746007)(81166006)(50986999)(104016004)(110136002)(76176999)(68736007)(69596002)(106466001)(450100001)(6116002)(8936002)(586003)(7846002)(3846002)(2351001)(7099028)(79686003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR05MB2769; H:smtp.flexerasoftware.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD009; 1:gFXLBWs0QbSmks3u10U/hUGodFxwg5hEtuZ1tGUCt/M7NbxLhwsiQMdlEX9TTZsKS8jv1C1NCkSSPuSxIyfeKGjhb0vEMeUcbYV806hDu1ddMfG9zwzaBTS1a78YUfvnZIaB+TlZDzMTqNc4RZEnWgf+JNnJ43DceoUx9fLarS0PCgXkre9QWN8Irrz3xF1+e6U+9kHvY9lcdK1ZrrEZADdvvorQVegVXjYepSZ9HejG719LJC+GmJMk7Bdc9ztj5lAtSio1vQeFupXa6v1xgk+h0Df8mQV9RyUMx6MMr35rN5EpNSKnMuccxQA318xHTgxLxInvzB0Ayo/cfO7UwG+JTypdHKLbKgQja+dxDZUCL6ZuA4K2zN8wmhkUmNQ3MCBETWSc/ayBrz3i9+/XpZ1YYuGceOoDVeyQzPR58gdvERghHHKCA2KajHEP00zU1akMzQcdUQ5/MKe0+9UjvrCN5AfEjBxOuuDjSUOd7M43G6dV1CmU22WlNbx4pqQF X-MS-Office365-Filtering-Correlation-Id: 28168e3d-b7d5-43e0-e3d4-08d3bba108b9 X-Microsoft-Exchange-Diagnostics: 1; BN3PR05MB2769; 2:nDgMyvr4+csIbvNxBimgDwsRT+anfLV9gW1u/tpQhix5ujdIOfTcC0eoCxdTJzhYPi+jIFy2l3Vjfv5JmCGSpwBHdMBsSoq6Tfed8JzFQHSG9HK2P0z+6GdO1Qvzirnk0aIH0EWKDQPnrxiqA0usgEfvovdR6yp1M86bRkDmd2qbJTDIOX3u2erl/Bzsb5uv; 3:MKDMxbZjrPx3mZ/DX7ZiRp9zwj51W61BFhFPzsH1gjub3qJS/+iA8zTBTfJ2gik79SNu0Gg0fuQfso+stPq1gPAzfw/kv0DqQ9ZO2btUnnKtxBQEWuot4uHCn8j9vgSrzaMDCXE8vrehGCROKRUHFAcz7VhFaxAfsxLXmfA9S0V/0V1KIMEd37pkU2wUrNdXf/RBM9gJZVP+Ra6VJV+k5Y0bILmzaiR+a5xU6jN1LDUqFbcHaOlXTqyWsQsudehbTKP/+Ovw/oUtoT4g/YMpYw== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:BN3PR05MB2769; X-Microsoft-Exchange-Diagnostics: 1; BN3PR05MB2769; 25:EPNBUST+f0cmLHwB+UaWsqaUE+bmk9nLgBHwncM0E06+9ICm30ug6Xf6tErG5wMuChnYEK1ZJx8zQ+a/ZL+lFJT/nmGwzhfx6xSqVxqVBOFvt8BU5ZoTHDkTloFqw3Ui2qeVngTunCOFB2G5A8Hyls6Uq1osrB9lF+SAgQKD6Zv2cWqKPpAcRHSpJEhlFyBOX97znYoJOCa7GG6bP7ZRMzl+HESHKCtjDa1IObvTyLQgwUr6Y6gCsHQkx1mXKjFe/ERx3InEhXsNHnCV+HbwppLelUgvbTYEL/0/0HFHbRzedZxWNtglXH40CGzvaTHVE3Kk04pGywc/Z0hyadUoSBqqftbRj8UygtorrUM2gHAmDyFrsLIO0yT/2e9bgMTiPWKH4NFU+OeSNL1nwF4FJRbfL20n8ZjL4LH5RhWBhoimTYZbPnmqYKPFWA+IP2PsX9c2xkQ1elSL4GqHw+zB3zYte3vNvu6otGfGasWI3DHBkdvGLfE6tV3R0EFhXULdCm5BPh7K2GHghpmhsS5OW1yNn4OV6zcwjVlPazx4egY71v4elN4sjuINttz6rJ99JbWUCRmep0fTm0FoLOpKOIZCoH/msb3hf8i98periFzHxDtCF2V6PFTAIKLQiiuXsqzH8QB6bs83+Hlsud1PEKoNIZD0MoqsWnAsdXJkAse1xVo52DZYF+kd4r2rIpwyHcdvd6kJJUqQ+vdcDJlsgDSkc7sB+qzPIlrcqLlnwx/SPZtCCi8R4Mid2rUNewmQ X-Microsoft-Exchange-Diagnostics: 1; BN3PR05MB2769; 31:C/BNGI2Lkk/vBtvopiA5gz+FoaDzExrmCc/4OOHBg10T3+kc0xFEZ/y90gnm/O1u1XNhFTSz9x2RuwK9NqCG1sYK5iARC2SDE531m1ppSWGI700VWB8nhx6QCV1dou7hB4l0PWBghXkoMXOFN5/OHG2UBJ5rI5n44HOVs1J+cU0LX1W23jmJH//7SQymN4wUR+yIrgC1NytIqaEScedjyUevLlKP8Uu6Ugojo573o9Y=; 20:lFhWAYL3P7Wxd9BkiRJ/X7Uaot3YhEXlq5aK4ibh+aA95bQaM2uTlCkep1Koo8kj1VLUkQud9gvfyBBKZYWV2C/yfFUCYYXKMSA4oxn63QjYSVQ1wesolOlh0p0UTMYpB/mUgPbJTwmesPinJqFsqq5Xyl20f+e3cG97RdZf+9+FdepxLtd67i2/F3StCJ6XrGOBCG/HSaiQZudXHFnn83H04wPVEFpNW9UTkmDmIFMGrRN0NEXCteMFn8Qfe1OItFjnbH1EcffgJ1zase7aeVow/8q4i5WaFLHV5+gnDUwfV9MBHhQ1UTV0VQVqR1Cy1cgInaeKvbZCgUFRGCFbnzi2TnT+wEW3nqqLeO/hHwoA1VUuHVLK5/rGGFa2A0w2AKgPyudo9h4V+GKWvUyUGSfDouU3ooNaKe4PhVb0l4VYi6zoG4d+GbSiDDU3DbtypYe29plpHo7LP8uPnYbVeqH4yjN2I9+6IDkrJdxmOgkdPdIGl8615PJD44n9C0J9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13020025)(13024025)(13013025)(13023025)(8121501046)(5005006)(10201501046)(3002001); SRVR:BN3PR05MB2769; BCL:0; PCL:0; RULEID:; SRVR:BN3PR05MB2769; X-Microsoft-Exchange-Diagnostics: 1; BN3PR05MB2769; 4:sgknMAjx1XnlD3RNtYkFahEQjlV/EvZbd3rc5tC57mRi2QeeZXX0o8IinsyJ97V/O9zNSqVo0Ctpc4e1QnS28I0W7LZyKsjtLua3gvqNcB9mQ3tEkJOQYfnJSJsLxGU64R1xh7dLjkitAvXppkIPvNLaswxTOnEWylKrXOpNuZhW/9OV003y62xjsxpGIIiqUEizghOXQSonQkay/mSFNEGED7Q813bU8/1snLuZSmue15HKoTyBk75FtzOV4V8HrUTB5aDszwUXOpfyj07tNngvC9+CqzMoDCSdp3/aKv0juiBmXQydFhkx8MAbPYjRA1Za5OBXMyJpAKBGB6o/KGiR70rpT9k6oXKCuKt2FPTSlTvpwqNkgTiR61i7fXulUqpbBtBe62jWyDNU5IezHWID8yO77cEWzh4xtsnSoQc4v/EKc7hPdJzczJYxSS/w X-Forefront-PRVS: 00235A1EEF X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjA1TUIyNzY5OzIzOi82RGVIaEJBRW52OTV1VFlGamxiaklGQ3Zh?= =?utf-8?B?MHZzb0kxZ1o1Vy9nQk50ZHFRNHF2RmpzU1pRRTVhUHZZbHBSMkZQTXRlbXZp?= =?utf-8?B?cjNFNHZGUWtRc01Bc0l0L0pnR3c4MU1IR2xJOEZzWjRTTWZLbGIvcWpkQXZC?= =?utf-8?B?RXEydGovUjZkbGJMcVZ3K2MrM1BzV1NPK04vcUJYUnUrU2R2RkFjVEpoODZE?= =?utf-8?B?U3l6R2U0VkVzWVJJWGQvY1JTZnl1QWVpQTR6SlgwYzdYZ3JOOVpIMlQvUGVu?= =?utf-8?B?M2pxc3dtcUtYckFabVhWcmRCVW81ZzVpbWs0cFAyU25OUTBDdWJIT2diNzZX?= =?utf-8?B?UVhWOGhDWWtBVFpSVjVqTXJrb3FId3Z3L3M5NEpteThuaGFJSFZiL2RIVW44?= =?utf-8?B?M1ZZSFl4RWxoYVJDNit0bnVtdGxLb2planVLNU1HV1MzbG5rTGwvL0s0L0NN?= =?utf-8?B?SkpSaWN2Vm85TmpRTzRlZndDa0o5SUVSVXNVWGhVWjlPWUI0b1Vselhibyt5?= =?utf-8?B?enNoMUs0SEZVZnpxcnUzbmUzZjd0VDY1VVh3K2t4MElhK2xoRVMrZlVrbG53?= =?utf-8?B?dmJHY2paT3Y3SUFtTmdSYzY5U1JON1doVFRzdTBsVmNXWjIxc1V0SG1MTDg0?= =?utf-8?B?dFZ4c1gvWVpxWGU2QVY0STFpTFJNNDFYekZNVTR4WVZTRE5oaXkzUnIvTXRn?= =?utf-8?B?a0ZqZ1dtZ1AwUVNWRnkrVDgxUEszN2dmVjlnUWpOeGZVdkRwUmhnbFdYQlM5?= =?utf-8?B?YUVUK2V4VWJ1dXRCYkRHeCtmR3BqY0MyRUozdnRkUDBYUnJXQ3FLdjhGOFBQ?= =?utf-8?B?MUtMSEpMT3haVzBQMlNsWDBtZ0tjRnBiMFJ1ZHB0U2NnQkx4V0VIZWpqSE5i?= =?utf-8?B?b1BoZmtjNGEvWjh6SnhTWWY3RnRWdjRUT0pCWHBoMS8xZU80aFo2NVFSZERk?= =?utf-8?B?c0tVRUNmZkZBVjd4eHR5WnM3bTI0WSs4MlRZVVRmZ2lzOXowd2MxTjhzZk16?= =?utf-8?B?VkpDRkhqVERZRzMwdzFoQmxUWWlxY3E0MFVaZGNXbkN2UjFHb1phUkhkSHdF?= =?utf-8?B?dy9HQlRyYytJNmZUZlNYZ2NNZkpDVEgweEF3dFhLYU4rU3pOLytuOHVRWFgr?= =?utf-8?B?a1FGTThFR3NQL1VJaU00d0ZOU2V0Zi9GUW1rOUk4ZlU5MXN0Q0VBRng3TFZo?= =?utf-8?B?VCtOQmJFZndBQWozMUIwVlFUZmRNc3RvYVI4RlBaOVdDTXk2NkRvZWpaWHdT?= =?utf-8?B?bkNqdERpQXowbk1MNnFNM0lURmlDb09Eb2tSdVV0U0xlRGIzR3F6ZTlOb2dT?= =?utf-8?B?K1NhSjFvZnkrdm4zUWlXcUZLQmtuZlc5dldodmt0akRhL1VOV3dFTWpvOFVk?= =?utf-8?B?d0F2bTV6N3VHTUZxOUZJemN5SGxwUDliTDNVSFFJUlhaWGYwaU5MKzdmMTY3?= =?utf-8?B?bmVXUGdZOWExS0xzaWtuL09RZy91bktGK0VIZ0RDQlZpYUI1TVdXaXN5Wi9S?= =?utf-8?B?UzljRncyRTF2WjlyUU9MelZqZlR5WUZ1UEFybUFHQlBqTWVSVjB2WlpVMGd5?= =?utf-8?B?bWNnSXZ3Y28wYVdja3RrWkVGeUFUQ1FGWTVlREl6MWFYMWRtZ2U4UkswemNx?= =?utf-8?B?U1hsOG1hT3J2bnk4aTVZTzdYYXpDMHdmdkRpYzlDWWY2RXYwTmdTZlZWeVRh?= =?utf-8?B?YVZxbU94WCs4RkhnVmhkTHViUDRzeEJFQkN3N0N4RU4xVEFuYVdFQUNEVGIr?= =?utf-8?B?YUxiSDh4alh6UG9iaEpxUGlkQUVucDNpVDVybTE1MkYzZTJxOUNJemEyME1Y?= =?utf-8?B?ZzJhWFY1a0xkUFNQbkloNUhidmFkY0p1YTJkci9wY2NzSkgwNmlVTmJ1cnBV?= =?utf-8?B?cHFDOHd3NFRLY0R2YmlsekVBbWNqazRlVEF4eEwzdWh0UlN1TjRhMlpiWWJF?= =?utf-8?Q?W+WKY103s+/UDSLMXPq7S9Ci0Nt3Mc=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR05MB2769; 6:EcBF6chA4Qq6X3BcDgF+7z7bQYMN3feVoDLW/rsbXGixdUDjqa19uuxETQ97yoTYYbSMS796PJ99mr64hUk87nXs2pOdSl8IEdmDMaW7+Tyr8+Y7Wc9EIUH989/Hi8lSWweiSf2nx99vEw+aiSBmNA5PMgi4DAYf1Zdl266HH9Thp0NFtZVyRoIAXGBd0me7ob+D6YPz8V6Ad+2lnswqr3YH6RSvMVOEr0Ac2YW6aCSG5CFgDPVw/iLTZINbWEejKYHWKnBzbBZwuaNFg3QdvvVfiVXCCWxPfV/MjJfKpfo=; 5:7in9mh/aT3Id/m2JQsQ7RE5gp6GLFTz2OY1PX9CUje9hoWI0/UcL+M2HiigyrEPCDBcjyAi+OHilAXjyrM+1UyywE9wNlr5M7cFHwfz5WfzrZZQkfmuIU4/4PoMigL1/ocGGvXgstWInIwwU168Hpg==; 24:eJKJwNlPDIKGTOm6wkoh3dzTCjb6GWBTHnhpfVkFvJpdk72hOMDbO20MCfV1gHYF46duOvFmayjbUu0V73QQacWJNm/OrCEj4QUy7i3BpQ0=; 7:2IgPzWKKyZaVDUqqEKUPn7f/TBErWL6KSp5xIMnD8tK714QMAsR3Lx730R0E5t5LgmUaBQlXMh7/cYQjDW1tx01lpHXyRR9A3Kb1qHcPxB3j/epzt1DVxOFqa2OtAu8vLhLKJj6ZyGf3FtmvPc3Of7QOfY4HQW0FA+Z2fhOYirjqMixzbhDqVgiAenlWpDaQKJIanyEbnHswCijoQj3BDTTkAr0850FjxFkxOjvpFkk3VfBUqecWUVaDUbCsm7Cv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: flexerasoftware.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2016 13:21:09.7248 (UTC) X-MS-Exchange-CrossTenant-Id: 91034d23-0b63-4943-b138-367d4dfac252 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=91034d23-0b63-4943-b138-367d4dfac252; Ip=[162.244.223.1]; Helo=[smtp.flexerasoftware.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR05MB2769 X-Mailman-Approved-At: Wed, 03 Aug 2016 09:35:41 -0400 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <0E5668E32633FB4FBBA1709825C0EDFDD24B77@SCHEXMB2.acresso.com> X-Mailman-Original-References: <0E5668E32633FB4FBBA1709825C0EDFDD24AAE@SCHEXMB2.acresso.com> Xref: csiph.com comp.lang.python:112290 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGVyeWsgc3VuIFttYWlsdG86ZXJ5a3N1 bkBnbWFpbC5jb21dIA0KU2VudDogMDMgQXVndXN0IDIwMTYgMTM6MTYNClRvOiBweXRob24tbGlz dEBweXRob24ub3JnDQpDYzogQmlsbCBTb21lcnZpbGxlIDxCU29tZXJ2aWxsZUBmbGV4ZXJhc29m dHdhcmUuY29tPg0KU3ViamVjdDogUmU6IElzc3VlIHdpdGggY3R5cGVzIGFuZCBjYWxsYmFjayBm dW5jdGlvbnMNCg0KT24gV2VkLCBBdWcgMywgMjAxNiBhdCA5OjM4IEFNLCBCaWxsIFNvbWVydmls bGUgPEJTb21lcnZpbGxlQGZsZXhlcmFzb2Z0d2FyZS5jb20+IHdyb3RlOg0KPg0KPiBJcyB0aGlz IGEgZ29vZCBwbGFjZSB0byBhc2sgcXVlc3Rpb25zIGFib3V0IHRoZSBhYm92ZT8NCg0KRGlzY3Vz c2luZyBjdHlwZXMgaXMgZmluZSBoZXJlLiBUaGVyZSdzIGFsc28gYSBjdHlwZXMtdXNlcnMgbGlz dC4NCg0KDQpUaGFua3MgRXJ5aywNCg0KSSBhbSB0cnlpbmcgdG8gaGFuZGxlIFB5dGhvbiBjYWxs YmFjayBmdW5jdGlvbnMgaW4gYSBTV0lHIGludGVyZmFjZSwgU1dJRyBkb2VzIG5vdCBzdXBwb3J0 IGNhbGxiYWNrcyB3aGVyZSB0aGUgdGFyZ2V0IGlzIGEgUHl0aG9uIGNhbGxhYmxlIGJ1dCBJIGNh biBkbyB0aGlzIHdpdGggY3R5cGVzLiBNeSBwcm9ibGVtIGlzIHRoYXQgSSBuZWVkIHRvIGhhdmUg dGhlIGNhbGxiYWNrIHJlY2VpdmUgYSBTV0lHIHdyYXBwZWQgdHlwZSBhcyBhbiBhcmd1bWVudCBi eSByZWZlcmVuY2UuIEkgc2VlIHRoYXQgaWYgSSB1c2UgYSBjdHlwZXMuU3RydWN0dXJlIHR5cGUg dGhlbiBpdCB3b3JrcyBuaWNlbHkgYnV0IEkgaGF2ZSBhIGh1Z2UgYW5kIGNoYW5naW5nIEFQSSB0 byB3cmFwIGFuZCBkbyBub3Qgd2FudCB0byBtYW51YWxseSBkZXNjcmliZSBldmVyeSBDIHN0cnVj dCB3aXRoIGN0eXBlcy5TdHJ1Y3R1cmUgd2hlbiBTV0lHIGhhcyBhbHJlYWR5IGF1dG9tYXRpY2Fs bHkgY3JlYXRlZCBpdHMgb3duIHNoYWRvdyBjbGFzc2VzLiBUaGUgU1dJRyBzdHJ1Y3Qgd3JhcHBl ciBpcyBqdXN0IGEgY2xhc3Mgd3JhcHBpbmcgYSBwb2ludGVyIHNvIGNhbiBiZSBlYXNpbHkgYmUg cGFzc2VkIGp1c3QgbGlrZSBjdHlwZXMuU3RydWN0dXJlIGNhbiBiZS4gSG93IGRvIEkgdGVsbCBj dHlwZXMgdGhhdCBpdCBuZWVkcyB0byByZWNvbnN0aXR1dGUgdGhlIHR5cGUgZnJvbSBhbiBhZGRy ZXNzIGluIHRoZSBjYWxsYmFjayB0aHVuayBpdCBnZW5lcmF0ZXM/DQoNCkkgaGF2ZSB0cmllZCBk ZWZpbmluZyBmcm9tX3BhcmFtKCkgYW5kIHNlbGYuX2FzX3BhcmFtZXRlcl8gZm9yIHRoZSB0eXBl cyB3aGljaCB3b3JrcyBmb3IgcGFzc2luZyB0byBhIGZ1bmN0aW9uIGJ1dCBJIGRvbid0IG5lZWQg dGhhdCBhcyBTV0lHIGRvZXMgdGhhdCBhbHJlYWR5LiBXaXRoIGNhbGxiYWNrIGFyZ3VtZW50cyBJ IGdldCB2YXJpb3VzIGVycm9ycyBkZXBlbmRpbmcgb24gd2hhdCBtZXRob2RzL2F0dHJpYnV0ZXMg SSBzdXBwbHkgbGlrZToNCg0KUGFyc2luZyBhcmd1bWVudCAwDQpUeXBlRXJyb3I6IGNhbm5vdCBi dWlsZCBwYXJhbWV0ZXINCg0KQXQgdGhlIHBvaW50IHdoZXJlIHRoZSBjYWxsYmFjayBpcyBiZWlu ZyBjYWxsZWQuDQoNClRvIHN1bW1hcml6ZToNCisrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KQyBBUEkgbGlrZToNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICAgIGludCBtZW1iZXI7 DQogICAgLyogLi4uICovDQp9IG15X3R5cGU7DQp0eXBlZGVmIGludCAoKnBmbikgKG15X3R5cGUg Y29uc3QgKik7DQppbnQgZm4gKHBmbik7DQoNCkltcGxlbWVudGF0aW9uIGNvdWxkIGJlOg0KDQoj aW5jbHVkZSAiYXBpLmgiDQppbnQgZm4gKHBmbiBjYikgew0KICAgIG15X3R5cGUgdCA9IHs0Miwg LyogLi4uICovfTsNCiAgICByZXR1cm4gY2IgKCZ0KTsNCn0NCg0KSSB3YW50IFB5dGhvbiBjb2Rl IGxpa2U6DQoNCmZyb20gY3R5cGVzIGltcG9ydCAqDQppbXBvcnQgYXBpICAjIFNXSUcgZXh0ZW5z aW9uIG1vZHVsZQ0KDQpkZWYgbXlfY2IgKHQpOg0KICAgIHByaW50ICgnaW4gY2FsbGJhY2sgd2l0 aDonLCB0Lm1lbWJlcikNCiAgICByZXR1cm4gMA0KDQpwcm90byA9IENGVU5DVFlQRSAoY19pbnQs IG15X3R5cGUpDQpjYiA9IHByb3RvIChteV9jYikNCnJlcyA9IGFwaS5mbiAoY2FzdCAoY2IsIGNf dm9pZF9wKS52YWx1ZSkNCnByaW50ICgnZm4gcmV0dXJuZWQ6JywgcmVzKQ0KDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KSSBjYW4gZXh0ZW5kIHRo ZSBTV0lHIHNoYWRvdyBjbGFzcyB0byBkbyB0aGUgY3JlYXRpb24gb2YgdGhlIHByb3RvdHlwZSBh bmQgdGh1bmssIHRoZSByZXF1aXJlZCBjYXN0IGFib3ZlIGFuZCBhbnkgZXh0cmEgYXR0cmlidXRl cyBvciBtZXRob2RzIGxpa2UgX2FzX3BhcmFtZXRlcl8gYW5kIGZyb21fcGFyYW0oKSBidXQgSSBj YW4ndCBzZWUgYW55IHdheSBvZiBoYXZpbmcgdGhlIFB5dGhvbiBjYWxsYmFjayAobXlfY2IpIG1h Z2ljYWxseSByZWNlaXZlIHRoZSBTV0lHIHdyYXBwZWQgJ215X3R5cGUnIHN0cnVjdC4NCg0KVElB DQpCaWxsLg0K