From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v16] xen/sndif: Add sound-device ABI Date: Fri, 27 Jan 2017 15:03:32 +0200 Message-ID: <1485522212-9087-2-git-send-email-andr2000@gmail.com> References: <1485522212-9087-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cX6Bs-0007Bd-8H for xen-devel@lists.xenproject.org; Fri, 27 Jan 2017 13:03:44 +0000 Received: by mail-wm0-f65.google.com with SMTP id r144so58191375wme.0 for ; Fri, 27 Jan 2017 05:03:42 -0800 (PST) In-Reply-To: <1485522212-9087-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: iurii.konovalenko@globallogic.com, vlad.babchuk@gmail.com, oleksandr.dmytryshyn@globallogic.com, Oleksandr Andrushchenko , andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, Oleksandr Grytsov , joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVGhpcyBpcyB0aGUgQUJJIGZvciB0aGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmly dHVhbGl6ZWQKc291bmQgZHJpdmVyIHRvIGNvbW11bmljYXRlIHdpdGggZWFjaCBvdGhlci4KClRo ZSBBQkkgYWxsb3dzIGltcGxlbWVudGluZyBhdWRpbyBwbGF5YmFjayBhbmQgY2FwdHVyZSBhcwp3 ZWxsIGFzIHZvbHVtZSBjb250cm9sIGFuZCBwb3NzaWJpbGl0eSB0byBtdXRlL3VubXV0ZQphdWRp byBzb3VyY2VzLgoKTm90ZTogZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNrZW5kIGNhbiBl eHBvc2UgbW9yZSBzb3VuZApjYXJkcyBhbmQgUENNIGRldmljZXMvc3RyZWFtcyB0aGFuIHRoZSB1 bmRlcmx5aW5nIEhXIHBoeXNpY2FsbHkKaGFzIGJ5IGVtcGxveWluZyBTVyBtaXhlcnMsIGNvbmZp Z3VyaW5nIHZpcnR1YWwgc291bmQgc3RyZWFtcywKY2hhbm5lbHMgZXRjLiBUaHVzLCBhbGxvd2lu ZyBmaW5lIHR1bm5lZCBjb25maWd1cmF0aW9ucyBwZXIKZnJvbnRlbmQuCgpTaWduZWQtb2ZmLWJ5 OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5j b20+ClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2FuZHJfZ3J5dHNvdkBl cGFtLmNvbT4KU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIERteXRyeXNoeW4gPG9sZWtzYW5kci5k bXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KU2lnbmVkLW9mZi1ieTogSXVyaWkgS29ub3ZhbGVu a28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KCi0tLQpDaGFuZ2VzIHNpbmNl IHYxOgogKiByZW1vdmVkIF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKSBmcm9tIGFsbCBzdHJ1 Y3R1cmVzIGRlZmluaXRpb25zCgpDaGFuZ2VzIHNpbmNlIHYyOgogKiByZW1vdmVkIGFsbCBDIHN0 cnVjdHVyZXMKICogYWRkZWQgcHJvdG9jb2wgZGVzY3JpcHRpb24gYmV0d2VlbiBmcm9udGVuZCBh bmQgYmFja2VuZCBkcml2ZXJzCgpDaGFuZ2VzIHNpbmNlIHYzOgogKiBmaXhlZCBzb21lIHR5cG9z CiAqIHJlbmFtZWQgWEVOU05EX1BDTV9GT1JNQVRfRkxPQVRfKiogdG8gWEVOU05EX1BDTV9GT1JN QVRfRjMyXyoqCiAqIHJlbmFtZWQgWEVOU05EX1BDTV9GT1JNQVRfRkxPQVQ2NF8qKiB0byBYRU5T TkRfUENNX0ZPUk1BVF9GNjRfKioKICogYWRkZWQgJ2lkJyBmaWVsZCB0byB0aGUgcmVxdWVzdCBh bmQgcmVzcG9uc2UgcGFja2V0cwogKiByZW5hbWVkICdzdHJlYW1faWQnIHRvICdzdHJlYW0nIGlu IHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCiAqIHJlbmFtZWQgJ3BjbV9kYXRhX3JhdGUnIHRvICdw Y21fcmF0ZScgaW4gdGhlIHBhY2tldHMgZGVzY3JpcHRpb24KICogcmVuYW1lZCAncGNtX3N0cmVh bV90eXBlJyB0byAncGNtX3R5cGUnIGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCiAqIHJlbW92 ZWQgJ3N0cmVhbV9pZCcgZmllbGQgZnJvbSB0aGUgcmVzcG9uc2UgcGFja2V0cwoKQ2hhbmdlcyBz aW5jZSB2NDoKICogcmVuYW1lZCAnc3RyZWFtX2lkJyBiYWNrIHRvIHRoZSB0byAnc3RyZWFtJyBp biB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgogKiBtb3ZlZCAnaWQnIGZpZWxkIHRvIHRoZSB1cHBl ciBwb3NpdGlvbiBpbiB0aGUgcmVzcG9uc2UgcGFja2V0cwoKQ2hhbmdlcyBzaW5jZSB2NToKICog U2xpZ2h0bHkgcmV3b3JrZWQgcmVxdWVzdC9yZXNwb25zZSBwYWNrZXRzCiAqIFNpemUgb2YgdGhl IHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0IGlzIGNoYW5nZWQgdG8gdGhlIDY0IGJ5dGVzCiAqIE5v dyBwYXJhbWV0ZXJzIGZvciB0aGUgWEVOU05EX09QX1NFVF9WT0xVTUUvWEVOU05EX09QX0dFVF9W T0xVTUUgYXJlCiAgIHBhc3NlZCB2aWEgc2hhcmVkIHBhZ2UKICogQWRkZWQgcGFyYW1ldGVycyBm b3IgdGhlIFhlbkJ1cyBub2RlcyAobm93IGVhY2ggc3RyZWFtIGNhbiBiZSBtYXBwZWQKICAgdG8g dGhlIGRlZmluZWQgc291bmQgZGV2aWNlIGluIHRoZSBiYWNrZW5kIHVzaW5nIHRob3NlIHBhcmFt ZXRlcnMpCiAqIEFkZGVkIFhlbkJ1cyBzdGF0ZSBkaWFncmFtcyBkZXNjcmlwdGlvbgoKQ2hhbmdl cyBzaW5jZSB2NjoKICogUmV3b3JrZWQgc3RyZWFtcyBkZXNjcmlwdGlvbiAgaW4gdGhlIEJhY2tl bmQgWGVuQnVzIE5vZGVzCgpDaGFuZ2VzIHNpbmNlIHY3OgogKiByZS13b3JrZWQgYmFja2VuZCBk ZXZpY2UgcGFyYW1ldGVycyB0byBiZSBtb3JlIGdlbmVyaWMgYW5kIGZsZXhpYmxlCiAqIGV4dGVu ZGVkIGZyb250ZW5kIGRldmljZSBwYXJhbWV0ZXJzCiAqIHNsaWdodGx5IHVwZGF0ZWQgc3RhdGUg bWFjaGluZSBkZXNjcmlwdGlvbiBhZGRlZCBtdXRlL3VubXV0ZSBjb21tYW5kcwogKiBhZGRlZCBj b25zdGFudHMgZm9yIFhlblN0b3JlIGNvbmZpZ3VyYXRpb24gc3RyaW5ncwogICAoZmllbGRzLCBQ Q00gZm9ybWF0cyBldGMuKQogKiBjaGFuZ2VkIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlIHNp emUgZnJvbSA2NCBvY3RldHMgdG8gMTYKICogaW50cm9kdWNlZCBkeW5hbWljIGJ1ZmZlciBhbGxv Y2F0aW9uIGluc3RlYWQgb2YKICAgc3RhdGljIFhFTlNORF9NQVhfUEFHRVNfUEVSX1JFUVVFU1QK ICogcmUtd29ya2VkIG9wZW4gcmVxdWVzdCB0byBhbGxvdyBkeW5hbWljIGJ1ZmZlciBhbGxvY2F0 aW9uCiAqIHJlLXdvcmtlZCByZWFkL3dyaXRlL3ZvbHVtZSByZXF1ZXN0cywgc28gdGhleSBkb24n dCBwYXNzIGdyZWZzOgogICBidWZmZXIgZnJvbSB0aGUgb3BlbiByZXF1ZXN0IGlzIHVzZWQgZm9y IHRoZXNlIG9wZXJhdGlvbnMgdG8gcGFzcyBkYXRhCiAqIHNwZWNpZmllZCB0eXBlIG9mIHRoZSB2 b2x1bWUgdmFsdWUgdG8gYmUgYSBzaWduZWQgdmFsdWUgaW4gc3RlcHMKICAgb2YgMC4wMDEgZEJt LCB3aGlsZSAwIGJlaW5nIDBkQm0uCiAqIGFkZGVkIExpbnV4IGluY2x1ZGUgZmlsZSB3aXRoIHN0 cnVjdHVyZSBkZWZpbml0aW9ucwoKQ2hhbmdlcyBzaW5jZSB2ODoKICogY2hhbmdlZCBmcm9udGVu ZC1pZCB0byBmcm9udGVuZF9pZAogKiBzaW5nbGUgc291bmQgY2FyZCBzdXBwb3J0LCBjb25maWd1 cmVkIHdpdGggYnVuY2ggb2YKICAgZGV2aWNlcy9zdHJlYW1zCiAqIGNsYXJpZnVjYXRpb24gbWFk ZSBvbiBzYW1wbGUgcmF0ZXMgYW5kIGZvcm1hdHMgZXhwcmVzc2VkIGFzCiAgIGRlY2ltYWxzIHcv byBhbnkgcGFydGljdWxhciBvcmRlcmluZwogKiBwdXQgZGVzY3JpcHRpb24gb2YgbWlncmF0aW9u L2Rpc2Nvbm5lY3Rpb24gc3RhdGUKICogcmVwbGFjZWQgX19hdHRyaWJ1dGVfXygocGFja2VkKSkg dG8gX19wYWNrZWQKICogY2hhbmdlZCBwYWRkaW5nIG9mIHJpbmcgc3RydWN0dXJlcyB0byA2NCB0 byBmaXQgY2FjaGUgbGluZQogKiByZW1vdmVlZCAjaWZkZWYgX19LRVJORUwKICogZXhwbGljaXRs eSBzdGF0ZWQgd2hpY2ggaW5kaWNlcyBpbiBYZW5TdG9yZSBjb25maWd1cmF0aW9uCiAgIGFyZSBj b250aWd1b3VzCiAqIGFkZGVkIGRlc2NyaXB0aW9uIHRvIHdoYXQgZnJvbnRlbmQncyBkZWZhdWx0 cyBhcmUKICogbWFkZSBuYW1lcyBvZiB2aXJ0dWFsIGNhcmQvZGV2aWNlcyBvcHRpb25hbAogKiBy ZW1vdmVkIFBDTV9GT1JNQVRfU1BFQ0lBTAogKiBjaGFuZ2VkIHZvbHVtZSB1bml0cyBmcm9tIGRC bSB0byBkQgoKQ2hhbmdlcyBzaW5jZSB2OToKICogcmVtb3ZlZCBzbmRpZl9saW51eC5oCiAqIG1v dmVkIGFsbCBzdHJ1Y3R1cmVzIGZyb20gc25kaWZfbGludXguaCB0byBzbmRpZi5oCiAqIHN0cnVj dHVyZXMgcGFkZGVkIHdoZXJlIG5lZWRlZAogKiBmaXhlZCBIeiBjb21tZW50CgpDaGFuZ2VzIHNp bmNlIHYxMDoKICogZml4ZWQgdGFicyB0byA0IHNwYWNlcyB0byBjb21wbHkgd2l0aCBYZW4gY29k aW5nIHN0eWxlCiAqIGFkZGVkIHBsYWNlaG9sZGVycyB0byBlbXB0eSBzdHJ1Y3R1cmVzIChDODkg Y29uY2VybikKICogYWRkZWQgbWlzc2luZyBoZWFkZXIgaW5jbHVkZXMKCkNoYW5nZXMgc2luY2Ug djExOgogKiBhZGRlZCBYRU5TTkRfUlNQX05PVFNVUFAgZXJyb3IgY29kZQogKiBjaGFuZ2VkIGdy ZWZbMF0gdG8gZ3JlZlsxXSB3aXRoIGNvbW1lbnQKICogbW9kaWZpZWQgY29tbWVudHMgb24gZW1w dHkgc3RydWN0dXJlcwogKiByZW1vdmVkICJfXyIgZnJvbSBtZW1iZXIgbmFtZXMKICogZml4ZWQg aW5kZW50YXRpb24KICogYWRkZWQgcGFkZGluZyBpbiB1bmlvbiB4ZW5zbmRfcmVzcAogKiBjaGFu Z2VkIF9fWEVOX1BVQkxJQ19JT19YRU5TTkRfSF9fIHRvIF9fWEVOX1BVQkxJQ19JT19TTkRJRl9I X18KCkNoYW5nZXMgc2luY2UgdjEyOgogKiBjaGFuZ2VkIGluZGVudGF0aW9uIGZvciBkZWZpbmVz CiAqIG1pc3NlZCAiOyIgYWZ0ZXIgZ3JlZlsxXQogKiBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICog Y2hhbmdlZCByZXEvcmVzcCBzdHJ1Y3R1cmVzCiAqIGNoYW5nZWQgeGVuc25kX3BhZ2VfZGlyZWN0 b3J5IHN0cnVjdHVyZQogKiBwYXNzIGJ1ZmZlciBzaXplIGluIG9wZW4gcmVxdWVzdAoKQ2hhbmdl cyBzaW5jZSB2MTM6CiAqIG5vdGUgb24gdXNhZ2Ugb2YgZ3JhbnQgcmVmIDAKICogYWxsIHBhZ2Ug c2l6ZXMgYXJlIFhFTl9QQUdFX1NJWkUKICogcGFkZGluZy9yZXNlcnZlZCBjbGVhbnVwL2ZpeGVz CiAqIHJlbW92ZWQgZW1wdHkgc3RydWN0dXJlcwoKQ2hhbmdlcyBzaW5jZSB2MTQ6CiAqIHR1cm4g cGFkZGluZyBpbnRvIHJlc2VydmVkCgpDaGFuZ2VzIHNpbmNlIHYxNToKICogcHJvdG9jb2wgZGVz Y3JpcHRpb24gcmV3b3JrZWQKICogYWRkZWQgb2Zmc2V0IHRvIGJsb2NrIG5vdGF0aW9ucwogKiB1 c2VkIC1YRU5fRVhYIGZvciBzdGF0dXMgcmVwb3J0aW5nCiAqIGFkZGVkIHByb3RvY29sIHZlcnNp b25pbmcKICogcmVtb3ZlZCBzdHJlYW1faWR4IGZyb20gdGhlIHBhY2tldCBzdHJ1Y3R1cmUKICog Y2hhbmdlZCB4ZW5zdG9yZSBwYXRocwotLS0KClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRy dXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KLS0tCiB4ZW4vaW5j bHVkZS9wdWJsaWMvaW8vc25kaWYuaCB8IDcyNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3MjUgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oCgpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25k aWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVmN2IwNzhhYWI2 ZgotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oCkBAIC0w LDAgKzEsNzI1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzbmRpZi5oCisgKgorICog VW5pZmllZCBzb3VuZC1kZXZpY2UgSS9PIGludGVyZmFjZSBmb3IgWGVuIGd1ZXN0IE9TZXMuCisg KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwor ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEdsb2JhbExvZ2ljIEluYy4K KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEVQQU0gU3lzdGVtcyBJbmMuCisgKgorICogQXV0 aG9yczogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292 QGVwYW0uY29tPgorICogICAgICAgICAgT2xla3NhbmRyIERteXRyeXNoeW4gPG9sZWtzYW5kci5k bXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KKyAqICAgICAgICAgIEl1cmlpIEtvbm92YWxlbmtv IDxpdXJpaS5rb25vdmFsZW5rb0BnbG9iYWxsb2dpYy5jb20+CisgKi8KKworI2lmbmRlZiBfX1hF Tl9QVUJMSUNfSU9fU05ESUZfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19TTkRJRl9IX18K KworI2luY2x1ZGUgInJpbmcuaCIKKyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgorCisvKgor ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgIEZlYXR1cmUgYW5kIFBh cmFtZXRlciBOZWdvdGlhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRnJvbnQt PmJhY2sgbm90aWZpY2F0aW9uczogd2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVxdWVzdCwgc2VuZGlu ZyBhCisgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuc25kX3Jl cSAoaS5lLiwgdGhlIGdlbmVyaWMKKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0 aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAorICogeGVuc25kX3JlcSBhcHByb3By aWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KKyAq CisgKiBCYWNrLT5mcm9udCBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNw b25zZSwgc2VuZGluZyBhCisgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwg b24geGVuc25kX3Jlc3AgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9mZiBtZWNoYW5pc20g cHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0CisgKiB4ZW5z bmRfcmVzcCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9S RVNQT05TRVMoKSkuCisgKgorICogVGhlIHR3byBoYWx2ZXMgb2YgYSBwYXJhLXZpcnR1YWwgc291 bmQgY2FyZCBkcml2ZXIgdXRpbGl6ZSBub2RlcyB3aXRoaW4KKyAqIFhlblN0b3JlIHRvIGNvbW11 bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJz LgorICogVGhpcyBzZWN0aW9uIGVudW1lcmF0ZXMgdGhlc2Ugbm9kZXMgd2hpY2ggcmVzaWRlIGlu IHRoZSByZXNwZWN0aXZlIGZyb250IGFuZAorICogYmFja2VuZCBwb3J0aW9ucyBvZiBYZW5TdG9y ZSwgZm9sbG93aW5nIHRoZSBYZW5CdXMgY29udmVudGlvbi4KKyAqCisgKiBBbGwgZGF0YSBpbiBY ZW5TdG9yZSBpcyBzdG9yZWQgYXMgc3RyaW5ncy4gTm9kZXMgc3BlY2lmeWluZyBudW1lcmljCisg KiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1hbC4gSW50ZWdlciB2YWx1ZSByYW5nZXMgbGlz dGVkIGJlbG93IGFyZQorICogZXhwcmVzc2VkIGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlwZXMg Y2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uCisgKiBvZiBhIHByb3Blcmx5IGZvcm1h dGVkIG5vZGUgc3RyaW5nLCB3aXRob3V0IGxvc3Mgb2YgaW5mb3JtYXRpb24uCisgKgorICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICBFeGFtcGxlIGNvbmZp Z3VyYXRpb24KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBOb3RlOiBkZXBlbmRpbmcg b24gdGhlIHVzZS1jYXNlIGJhY2tlbmQgY2FuIGV4cG9zZSBtb3JlIHNvdW5kIGNhcmRzIGFuZAor ICogUENNIGRldmljZXMvc3RyZWFtcyB0aGFuIHRoZSB1bmRlcmx5aW5nIEhXIHBoeXNpY2FsbHkg aGFzIGJ5IGVtcGxveWluZworICogU1cgbWl4ZXJzLCBjb25maWd1cmluZyB2aXJ0dWFsIHNvdW5k IHN0cmVhbXMsIGNoYW5uZWxzIGV0Yy4KKyAqCisgKiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYmFj a2VuZCBhbmQgZnJvbnRlbmQgY29uZmlndXJhdGlvbjoKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAvZnJvbnRlbmQtaWQg PSAiMSIKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL2Zyb250ZW5kID0gIi9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wIgorICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQv dnNuZC8xLzAvc3RhdGUgPSAiNCIKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8w L3ZlcnNpb25zID0gIjEsMiIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSBGcm9udGVuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xv Y2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvYmFja2VuZC1pZCA9ICIwIgorICogL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92c25kLzAvYmFja2VuZCA9ICIvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92 c25kLzEvMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3N0YXRlID0gIjQiCisg KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXJkIGNvbmZpZ3VyYXRpb24gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dnNuZC8wL3ZlcnNpb24gPSAiMSIKKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQv MC9zaG9ydC1uYW1lID0gIkNhcmQgc2hvcnQgbmFtZSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp Y2UvdnNuZC8wL2xvbmctbmFtZSA9ICJDYXJkIGxvbmcgbmFtZSIKKyAqIC9sb2NhbC9kb21haW4v MS9kZXZpY2UvdnNuZC8wL3NhbXBsZS1yYXRlcyA9ICI4MDAwLDMyMDAwLDQ0MTAwLDQ4MDAwLDk2 MDAwIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvc2FtcGxlLWZvcm1hdHMgPSAi czgsdTgsczE2X2xlLHMxNl9iZSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2J1 ZmZlci1zaXplID0gIjI2MjE0NCIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gUENNIGRldmljZSAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvcGNtLWRldi8wL25hbWUgPSAiR2VuZXJhbCBh bmFsb2ciCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzAvY2hhbm5l bHMtbWF4ID0gIjUiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0g MCwgcGxheWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9k b21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1kZXYvMC9zdHJlYW0tMC90eXBlID0gInAiCisgKiAv bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzAvc3RyZWFtLTAvc2FtcGxlLWZv cm1hdHMgPSAiczgsdTgiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2 LzAvc3RyZWFtLTAvdW5pcXVlLWlkID0gIjAiCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2Rldmlj ZS92c25kLzAvcGNtLWRldi8wL3N0cmVhbS0wL3JpbmctcmVmID0gIjM4NiIKKyAqIC9sb2NhbC9k b21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1kZXYvMC9zdHJlYW0tMC9ldmVudC1jaGFubmVsID0g IjE1IgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAxLCBjYXB0 dXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzAvc3RyZWFtLTEvdHlwZSA9ICJjIgorICogL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92c25kLzAvcGNtLWRldi8wL3N0cmVhbS0xL2NoYW5uZWxzLW1heCA9ICIy IgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvcGNtLWRldi8wL3N0cmVhbS0xL3Vu aXF1ZS1pZCA9ICIxIgorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1k ZXYvMC9zdHJlYW0tMS9yaW5nLXJlZiA9ICIzODQiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZzbmQvMC9wY20tZGV2LzAvc3RyZWFtLTEvZXZlbnQtY2hhbm5lbCA9ICIxMyIKKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIGRldmljZSAzIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv cGNtLWRldi8zL25hbWUgPSAiSERNSS0wIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25k LzAvcGNtLWRldi8zL3NhbXBsZS1yYXRlcyA9ICI4MDAwLDMyMDAwLDQ0MTAwIgorICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBjYXB0dXJlIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9w Y20tZGV2LzMvc3RyZWFtLTAvdHlwZSA9ICJjIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 c25kLzAvcGNtLWRldi8zL3N0cmVhbS0wL3VuaXF1ZS1pZCA9ICIyIgorICoKKyAqIC9sb2NhbC9k b21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1kZXYvMy9zdHJlYW0tMC9yaW5nLXJlZiA9ICIzODci CisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzMvc3RyZWFtLTAvZXZl bnQtY2hhbm5lbCA9ICIxNTEiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IFBDTSBkZXZpY2UgNyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1kZXYvNy9uYW1lID0gIlNQRElGIgorICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIDAsIHBsYXliYWNrIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz bmQvMC9wY20tZGV2Lzcvc3RyZWFtLTAvdHlwZSA9ICJwIgorICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92c25kLzAvcGNtLWRldi83L3N0cmVhbS0wL3VuaXF1ZS1pZCA9ICIzIgorICoKKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3BjbS1kZXYvNy9zdHJlYW0tMC9yaW5nLXJlZiA9 ICIzODkiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2Lzcvc3RyZWFt LTAvZXZlbnQtY2hhbm5lbCA9ICIxNTIiCisgKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVzCisgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQ cm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHZl cnNpb25zCisgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgorICoKKyAqICAgICAgTGlz dCBvZiBYRU5TTkRfTElTVF9TRVBBUkFUT1Igc2VwYXJhdGVkIHByb3RvY29sIHZlcnNpb25zIHN1 cHBvcnRlZAorICogICAgICBieSB0aGUgYmFja2VuZC4gRm9yIGV4YW1wbGUgIjEsMiwzIi4KKyAq CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBG cm9udGVuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFkZHJlc3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogZGV2LWlkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8 dWludDhfdD4KKyAqCisgKiAgICAgIFVuaXF1ZSBkZXZpY2UgSUQuIERvZXNuJ3QgaGF2ZSB0byBi ZSB6ZXJvIGJhc2VkIGFuZC9vciB0byBiZSBjb250aWd1b3VzLgorICogICAgICBFeGFtcGxlOgor ICogICAgICAgICAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzxkZXYtaWQ+ Ly4uLgorICoKKyAqIHN0cmVhbS1pZHgKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90 PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWd1b3VzIGluZGV4IG9mIHRoZSBzdHJlYW0g b2YgdGhlIGRldmljZS4KKyAqICAgICAgRXhhbXBsZToKKyAqICAgICAgICAvbG9jYWwvZG9tYWlu LzEvZGV2aWNlL3ZzbmQvMC9wY20tZGV2LzxkZXYtaWQ+L3N0cmVhbS08c3RyZWFtLWlkeD4vLi4u CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHZlcnNpb24KKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxzdHJpbmc+CisgKgorICogICAgICBQcm90b2NvbCB2ZXJzaW9uLCBjaG9z ZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBiYWNrZW5kLgorICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBFdmVyeSB2aXJ0dWFsaXplZCBzb3VuZCBmcm9udGVuZCBo YXMgYSBzZXQgb2YgUENNIGRldmljZXMgYW5kIHN0cmVhbXMsIGVhY2gKKyAqIGNvdWxkIGJlIGlu ZGl2aWR1YWxseSBjb25maWd1cmVkLiBQYXJ0IG9mIHRoZSBQQ00gY29uZmlndXJhdGlvbiBjYW4g YmUKKyAqIGRlZmluZWQgYXQgaGlnaGVyIGxldmVsIG9mIHRoZSBoaWVyYXJjaHkgYW5kIGJlIGZ1 bGx5IG9yIHBhcnRpYWxseSByZS11c2VkCisgKiBieSB0aGUgdW5kZXJseWluZyBsYXllcnMuIFRo ZXNlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZToKKyAqICBvIG51bWJlciBvZiBjaGFubmVscyAo bWluL21heCkKKyAqICBvIHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMKKyAqICBvIHN1cHBvcnRlZCBz YW1wbGUgZm9ybWF0cy4KKyAqIEUuZy4gb25lIGNhbiBkZWZpbmUgdGhlc2UgdmFsdWVzIGZvciB0 aGUgd2hvbGUgY2FyZCwgZGV2aWNlIG9yIHN0cmVhbS4KKyAqIEV2ZXJ5IHVuZGVybHlpbmcgbGF5 ZXIgaW4gdHVybiBjYW4gcmUtZGVmaW5lIHNvbWUgb3IgYWxsIG9mIHRoZW0gdG8gYmV0dGVyCisg KiBmaXQgaXRzIG5lZWRzLiBGb3IgZXhhbXBsZSwgY2FyZCBtYXkgZGVmaW5lIG51bWJlciBvZiBj aGFubmVscyB0byBiZQorICogaW4gWzE7IDhdIHJhbmdlLCBhbmQgc29tZSBwYXJ0aWN1bGFyIHN0 cmVhbSBtYXkgYmUgbGltaXRlZCB0byBbMTsgMl0gb25seS4KKyAqIFRoZSBydWxlIGlzIHRoYXQg dGhlIHVuZGVybHlpbmcgbGF5ZXIgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUgdXBwZXIgbGF5ZXIK KyAqIHJhbmdlLgorICoKKyAqIGNoYW5uZWxzLW1pbgorICogICAgICBWYWx1ZXM6ICAgICAgICAg PHVpbnQ4X3Q+CisgKgorICogICAgICBUaGUgbWluaW11bSBhbW91bnQgb2YgY2hhbm5lbHMgdGhh dCBpcyBzdXBwb3J0ZWQsIFsxOyBjaGFubmVscy1tYXhdLgorICogICAgICBPcHRpb25hbCwgaWYg bm90IHNldCBvciBvbWl0dGVkIGEgdmFsdWUgb2YgMSBpcyB1c2VkLgorICoKKyAqIGNoYW5uZWxz LW1heAorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ4X3Q+CisgKgorICogICAgICBUaGUg bWF4aW11bSBhbW91bnQgb2YgY2hhbm5lbHMgdGhhdCBpcyBzdXBwb3J0ZWQuCisgKiAgICAgIE11 c3QgYmUgYXQgbGVhc3QgPGNoYW5uZWxzLW1pbj4uCisgKgorICogc2FtcGxlLXJhdGVzCisgKiAg ICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiB1aW50MzJfdD4KKyAqCisgKiAgICAgIExpc3Qg b2Ygc3VwcG9ydGVkIHNhbXBsZSByYXRlcyBzZXBhcmF0ZWQgYnkgWEVOU05EX0xJU1RfU0VQQVJB VE9SLgorICogICAgICBTYW1wbGUgcmF0ZXMgYXJlIGV4cHJlc3NlZCBhcyBhIGxpc3Qgb2YgZGVj aW1hbCB2YWx1ZXMgdy9vIGFueQorICogICAgICBvcmRlcmluZyByZXF1aXJlbWVudC4KKyAqCisg KiBzYW1wbGUtZm9ybWF0cworICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2YgWEVOU05E X1BDTV9GT1JNQVRfWFhYX1NUUj4KKyAqCisgKiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIHNhbXBs ZSBmb3JtYXRzIHNlcGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFUT1IuCisgKiAgICAgIEl0 ZW1zIG11c3Qgbm90IGV4Y2VlZCBYRU5TTkRfU0FNUExFX0ZPUk1BVF9NQVhfTEVOIGxlbmd0aC4K KyAqCisgKiBidWZmZXItc2l6ZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgor ICoKKyAqICAgICAgVGhlIG1heGltdW0gc2l6ZSBpbiBvY3RldHMgb2YgdGhlIGJ1ZmZlciB0byBh bGxvY2F0ZSBwZXIgc3RyZWFtLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVmlydHVh bCBzb3VuZCBjYXJkIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBzaG9y dC1uYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhclszMl0+CisgKgorICogICAgICBT aG9ydCBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqIGxv bmctbmFtZQorICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgorICoKKyAqICAgICAg TG9uZyBuYW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNlIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKiBuYW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hh cls4MF0+CisgKgorICogICAgICBOYW1lIG9mIHRoZSBzb3VuZCBkZXZpY2Ugd2l0aGluIHRoZSB2 aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gU3RyZWFtIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiB0eXBlCisgKiAgICAgIFZhbHVlczogICAgICAgICAicCIsICJjIgorICoKKyAqICAg ICAgU3RyZWFtIHR5cGU6ICJwIiAtIHBsYXliYWNrIHN0cmVhbSwgImMiIC0gY2FwdHVyZSBzdHJl YW0KKyAqCisgKiAgICAgIElmIGJvdGggY2FwdHVyZSBhbmQgcGxheWJhY2sgYXJlIG5lZWRlZCB0 aGVuIHR3byBzdHJlYW1zIG5lZWQgdG8gYmUKKyAqICAgICAgZGVmaW5lZCB1bmRlciB0aGUgc2Ft ZSBkZXZpY2UuCisgKgorICogdW5pcXVlLWlkCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu dDMyX3Q+CisgKgorICogICAgICBBZnRlciBzdHJlYW0gaW5pdGlhbGl6YXRpb24gaXQgaXMgYXNz aWduZWQgYSB1bmlxdWUgSUQgKHdpdGhpbiB0aGUgZnJvbnQKKyAqICAgICAgZHJpdmVyKSwgc28g ZXZlcnkgc3RyZWFtIG9mIHRoZSBmcm9udGVuZCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUKKyAq ICAgICAgYmFja2VuZCBieSB0aGlzIElELiBUaGlzIGlzIG5vdCBlcXVhbCB0byBzdHJlYW0taWR4 IGFzIHRoZSBsYXRlciBpcworICogICAgICB6ZXJvIGJhc2VkIHdpdGhpbiB0aGUgZGV2aWNlLCBi dXQgdGhpcyBpbmRleCBpcyBjb250aWdvdXMgd2l0aGluIHRoZQorICogICAgICBkcml2ZXIuCisg KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1l dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGV2ZW50LWNoYW5uZWwKKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlmaWVyIG9m IHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQorICogICAgICBp biB0aGUgcmluZyBidWZmZXIuCisgKgorICogcmluZy1yZWYKKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50 aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAorICogICAgICBhIHNvbGUgcGFn ZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVkIHJpbmcgYnVmZmVyLgorICoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRFIERJQUdSQU1T CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVG9vbCBzdGFjayBjcmVhdGVzIGZyb250 IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBzdGF0ZQorICogWGVuYnVzU3RhdGVJ bml0aWFsaXNpbmcuCisgKiBUb29sIHN0YWNrIGNyZWF0ZXMgYW5kIHNldHMgdXAgZnJvbnRlbmQg c291bmQgY29uZmlndXJhdGlvbiBub2RlcyBwZXIgZG9tYWluLgorICoKKyAqIEZyb250ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCisgKiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICog WGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlz aW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFj a2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNlLgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKKyAqCisg KiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRp YWxpemUKKyAqICAgZXZlbnQgY2hhbm5lbHMgcGVyIGNvbmZpZ3VyZWQKKyAqICAgcGxheWJhY2sv Y2FwdHVyZSBzdHJlYW0uCisgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKKyAqICAg dGhhdCB3aWxsIGJlIGluIGVmZmVjdCBkdXJpbmcKKyAqICAgdGhpcyBjb25uZWN0aW9uLgorICog ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICog WGVuYnVzU3RhdGVJbml0aWFsaXNlZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4KKyAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25uZWN0IHRvIHRoZSBldmVu dCBjaGFubmVscy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAqICBvIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBP UworICogIHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3RhbmNlcworICogIGFzIHBlciBjb25maWd1 cmF0aW9uLgorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAg ICAgICAgVgorICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKKyAqCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVVbmtub3duCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zZWQKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NpbmcKKyAqIG8gUmVtb3Zl IHZpcnR1YWwgc291bmQgZGV2aWNlCisgKiBvIFJlbW92ZSBldmVudCBjaGFubmVscworICogICAg ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgVgorICogWGVu YnVzU3RhdGVDbG9zZWQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENNIEZPUk1BVFMKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAq CisgKiBYRU5TTkRfUENNX0ZPUk1BVF88Zm9ybWF0PltfPGVuZGlhbj5dCisgKgorICogZm9ybWF0 OiA8Uy9VL0Y+PGJpdHM+IG9yIDxuYW1lPgorICogICAgIFMgLSBzaWduZWQsIFUgLSB1bnNpZ25l ZCwgRiAtIGZsb2F0CisgKiAgICAgYml0cyAtIDgsIDE2LCAyNCwgMzIKKyAqICAgICBuYW1lIC0g TVVfTEFXLCBHU00sIGV0Yy4KKyAqCisgKiBlbmRpYW46IDxMRS9CRT4sIG1heSBiZSBhYnNlbnQK KyAqICAgICBMRSAtIExpdHRsZSBlbmRpYW4sIEJFIC0gQmlnIGVuZGlhbgorICovCisjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1M4ICAgICAgICAgICAgMAorI2RlZmluZSBYRU5TTkRfUENNX0ZP Uk1BVF9VOCAgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0xFICAg ICAgICAyCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRSAgICAgICAgMworI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMTZfTEUgICAgICAgIDQKKyNkZWZpbmUgWEVOU05EX1BDTV9G T1JNQVRfVTE2X0JFICAgICAgICA1CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRSAg ICAgICAgNgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfQkUgICAgICAgIDcKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFICAgICAgICA4CisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX1UyNF9CRSAgICAgICAgOQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfTEUg ICAgICAgIDEwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9CRSAgICAgICAgMTEKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0xFICAgICAgICAxMgorI2RlZmluZSBYRU5TTkRf UENNX0ZPUk1BVF9VMzJfQkUgICAgICAgIDEzCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Yz Ml9MRSAgICAgICAgMTQgLyogNC1ieXRlIGZsb2F0LCBJRUVFLTc1NCAzMi1iaXQsICovCisjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9CRSAgICAgICAgMTUgLyogcmFuZ2UgLTEuMCB0byAx LjAgICAgICAgICAgICAgICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9MRSAgICAg ICAgMTYgLyogOC1ieXRlIGZsb2F0LCBJRUVFLTc1NCA2NC1iaXQsICovCisjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX0Y2NF9CRSAgICAgICAgMTcgLyogcmFuZ2UgLTEuMCB0byAxLjAgICAgICAg ICAgICAgICovCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRSAx OAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfQkUgMTkKKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFXICAgICAgICAyMAorI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9BX0xBVyAgICAgICAgIDIxCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lNQV9B RFBDTSAgICAgMjIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVBFRyAgICAgICAgICAyMwor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU00gICAgICAgICAgIDI0CisKKy8qCisgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVCBD T0RFUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisjZGVmaW5lIFhFTlNORF9PUF9PUEVO ICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBYRU5TTkRfT1BfQ0xPU0UgICAgICAgICAgICAg ICAgIDEKKyNkZWZpbmUgWEVOU05EX09QX1JFQUQgICAgICAgICAgICAgICAgICAyCisjZGVmaW5l IFhFTlNORF9PUF9XUklURSAgICAgICAgICAgICAgICAgMworI2RlZmluZSBYRU5TTkRfT1BfU0VU X1ZPTFVNRSAgICAgICAgICAgIDQKKyNkZWZpbmUgWEVOU05EX09QX0dFVF9WT0xVTUUgICAgICAg ICAgICA1CisjZGVmaW5lIFhFTlNORF9PUF9NVVRFICAgICAgICAgICAgICAgICAgNgorI2RlZmlu ZSBYRU5TTkRfT1BfVU5NVVRFICAgICAgICAgICAgICAgIDcKKworLyoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqICAgICAgICAgICAgICAgWEVOU1RPUkUgRklFTEQgQU5EIFBBVEggTkFNRSBT VFJJTkdTLCBIRUxQRVJTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyNkZWZpbmUgWEVO U05EX0RSSVZFUl9OQU1FICAgICAgICAgICAgICAidnNuZCIKKworI2RlZmluZSBYRU5TTkRfTElT VF9TRVBBUkFUT1IgICAgICAgICAgICIsIgorLyogUGF0aCBlbnRyaWVzICovCisjZGVmaW5lIFhF TlNORF9QQVRIX1BDTV9ERVZJQ0UgICAgICAgICAgInBjbS1kZXYiCisjZGVmaW5lIFhFTlNORF9Q QVRIX1NUUkVBTV9GTVQgICAgICAgICAgInN0cmVhbS0lZCIKKy8qIEZpZWxkIG5hbWVzICovCisj ZGVmaW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9TSE9SVF9OQU1FICAgInNob3J0LW5hbWUiCisjZGVm aW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9MT05HX05BTUUgICAgImxvbmctbmFtZSIKKyNkZWZpbmUg WEVOU05EX0ZJRUxEX1JJTkdfUkVGICAgICAgICAgICAicmluZy1yZWYiCisjZGVmaW5lIFhFTlNO RF9GSUVMRF9FVlRfQ0hOTCAgICAgICAgICAgImV2ZW50LWNoYW5uZWwiCisjZGVmaW5lIFhFTlNO RF9GSUVMRF9ERVZJQ0VfTkFNRSAgICAgICAgIm5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9U WVBFICAgICAgICAgICAgICAgInR5cGUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9TVFJFQU1fVU5J UVVFX0lEICAgInVuaXF1ZS1pZCIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01JTiAg ICAgICAiY2hhbm5lbHMtbWluIgorI2RlZmluZSBYRU5TTkRfRklFTERfQ0hBTk5FTFNfTUFYICAg ICAgICJjaGFubmVscy1tYXgiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfUkFURVMgICAg ICAgInNhbXBsZS1yYXRlcyIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1NBTVBMRV9GT1JNQVRTICAg ICAic2FtcGxlLWZvcm1hdHMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9CVUZGRVJfU0laRSAgICAg ICAgImJ1ZmZlci1zaXplIgorCisvKiBTdHJlYW0gdHlwZSBmaWVsZCB2YWx1ZXMuICovCisjZGVm aW5lIFhFTlNORF9TVFJFQU1fVFlQRV9QTEFZQkFDSyAgICAgInAiCisjZGVmaW5lIFhFTlNORF9T VFJFQU1fVFlQRV9DQVBUVVJFICAgICAgImMiCisvKiBTYW1wbGUgcmF0ZSBtYXggc3RyaW5nIGxl bmd0aCAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX1JBVEVfTUFYX0xFTiAgICAgIDExCisvKiBT YW1wbGUgZm9ybWF0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBYRU5TTkRfU0FNUExFX0ZPUk1B VF9NQVhfTEVOICAgIDI0CisKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzhfU1RSICAgICAg ICAiczgiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4X1NUUiAgICAgICAgInU4IgorI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEVfU1RSICAgICJzMTZfbGUiCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAgInMxNl9iZSIKKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfVTE2X0xFX1NUUiAgICAidTE2X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9VMTZfQkVfU1RSICAgICJ1MTZfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9M RV9TVFIgICAgInMyNF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0JFX1NUUiAg ICAiczI0X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMjRfTEVfU1RSICAgICJ1MjRf bGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRV9TVFIgICAgInUyNF9iZSIKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0xFX1NUUiAgICAiczMyX2xlIgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9TMzJfQkVfU1RSICAgICJzMzJfYmUiCisjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX1UzMl9MRV9TVFIgICAgInUzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfVTMyX0JFX1NUUiAgICAidTMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GMzJf TEVfU1RSICAgICJmbG9hdF9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFX1NU UiAgICAiZmxvYXRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9MRV9TVFIgICAg ImZsb2F0NjRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0Y2NF9CRV9TVFIgICAgImZs b2F0NjRfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9T VFIgImllYzk1OF9zdWJmcmFtZV9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4 X1NVQkZSQU1FX0JFX1NUUiAiaWVjOTU4X3N1YmZyYW1lX2JlIgorI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9NVV9MQVdfU1RSICAgICJtdV9sYXciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X0FfTEFXX1NUUiAgICAgImFfbGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JTUFfQURQ Q01fU1RSICJpbWFfYWRwY20iCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01QRUdfU1RSICAg ICAgIm1wZWciCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTV9TVFIgICAgICAgImdzbSIK KworCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg ICAgIFNUQVRVUyBSRVRVUk4gQ09ERVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBT dGF0dXMgcmV0dXJuIGNvZGUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCAtWEVOX0VYWCBvbiBmYWls dXJlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQXNzdW1wdGlvbnMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIG8gdXNhZ2Ug b2YgZ3JhbnQgcmVmZXJlbmNlIDAgYXMgaW52YWxpZCBncmFudCByZWZlcmVuY2U6CisgKiAgIGdy YW50IHJlZmVyZW5jZSAwIGlzIHZhbGlkLCBidXQgbmV2ZXIgZXhwb3NlZCB0byBhIFBWIGRyaXZl ciwKKyAqICAgYmVjYXVzZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5IGluIHVzZS9yZXNlcnZl ZCBieSB0aGUgUFYgY29uc29sZS4KKyAqIG8gYWxsIHJlZmVyZW5jZXMgaW4gdGhpcyBkb2N1bWVu dCB0byBwYWdlIHNpemVzIG11c3QgYmUgdHJlYXRlZAorICogICBhcyBwYWdlcyBvZiBzaXplIFhF Tl9QQUdFX1NJWkUgdW5sZXNzIG90aGVyd2lzZSBub3RlZC4KKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisgKiAgICAgICBEZXNjcmlwdGlvbiBvZiB0aGUgcHJvdG9jb2wgYmV0d2VlbiBmcm9u dGVuZCBhbmQgYmFja2VuZCBkcml2ZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBU aGUgdHdvIGhhbHZlcyBvZiBhIFBhcmEtdmlydHVhbCBzb3VuZCBkcml2ZXIgY29tbXVuaWNhdGUg d2l0aAorICogZWFjaCBvdGhlciB1c2luZyBzaGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5uZWxz LgorICogU2hhcmVkIHBhZ2UgY29udGFpbnMgYSByaW5nIHdpdGggcmVxdWVzdC9yZXNwb25zZSBw YWNrZXRzLgorICoKKyAqIEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVs b3cgbXVzdCBiZSAwLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBS ZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBBbGwgcmVx dWVzdCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICgzMiBvY3RldHMpCisgKiBBbGwgcmVx dWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKKyAqICAgICAgICAgMCAgICAgICAgICAg ICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAg b3BlcmF0aW9uICAgfCAgICByZXNlcnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogICBpZCAtIHVpbnQxNl90LCBwcml2YXRl IGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9uc2UKKyAqICAgb3BlcmF0aW9uIC0gdWludDhf dCwgb3BlcmF0aW9uIGNvZGUsIFhFTlNORF9PUF8/Pz8KKyAqCisgKiBSZXF1ZXN0IG9wZW4gLSBv cGVuIGEgUENNIHN0cmVhbSBmb3IgcGxheWJhY2sgb3IgY2FwdHVyZToKKyAqCisgKiAgICAgICAg IDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAg ICAgICAgICB8IFhFTlNORF9PUF9PUEVOIHwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBjbV9yYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICBwY21fZm9ybWF0ICAgIHwgIHBjbV9jaGFubmVs cyAgfCAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t KworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3N6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICBncmVmX2RpcmVjdG9yeV9zdGFydCAgICAgICAgICAgICAgICAgICAgICAgfCAy NAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgorICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCisgKgorICogcGNtX3JhdGUgLSB1aW50MzJfdCwgc3RyZWFtIGRhdGEgcmF0 ZSwgSHoKKyAqIHBjbV9mb3JtYXQgLSB1aW50OF90LCBYRU5TTkRfUENNX0ZPUk1BVF9YWFggdmFs dWUKKyAqIHBjbV9jaGFubmVscyAtIHVpbnQ4X3QsIG51bWJlciBvZiBjaGFubmVscyBvZiB0aGlz IHN0cmVhbSwKKyAqICAgW2NoYW5uZWxzLW1pbjsgY2hhbm5lbHMtbWF4XQorICogYnVmZmVyX3N6 IC0gdWludDMyX3QsIGJ1ZmZlciBzaXplIHRvIGJlIGFsbG9jYXRlZCwgb2N0ZXRzCisgKiBncmVm X2RpcmVjdG9yeV9zdGFydCAtIGdyYW50X3JlZl90LCBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qg c2hhcmVkIHBhZ2UKKyAqICAgZGVzY3JpYmluZyBzaGFyZWQgYnVmZmVyIHJlZmVyZW5jZXMuIEF0 IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYgc2hhcmVkCisgKiAgIGJ1ZmZlciBzaXplICAoYnVm ZmVyX3N6KSBleGNlZWRzIHdoYXQgY2FuIGJlIGFkZHJlc3NlZCBieSB0aGlzIHNpbmdsZSBwYWdl LAorICogICB0aGVuIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIG11c3QgYmUgc3VwcGxpZWQg KHNlZSBncmVmX2Rpcl9uZXh0X3BhZ2UKKyAqICAgYmVsb3cpCisgKi8KKworc3RydWN0IHhlbnNu ZF9vcGVuX3JlcSB7CisgICAgdWludDMyX3QgcGNtX3JhdGU7CisgICAgdWludDhfdCBwY21fZm9y bWF0OworICAgIHVpbnQ4X3QgcGNtX2NoYW5uZWxzOworICAgIHVpbnQxNl90IHJlc2VydmVkOwor ICAgIHVpbnQzMl90IGJ1ZmZlcl9zejsKKyAgICBncmFudF9yZWZfdCBncmVmX2RpcmVjdG9yeV9z dGFydDsKK307CisKKy8qCisgKiBTaGFyZWQgcGFnZSBmb3IgWEVOU05EX09QX09QRU4gYnVmZmVy IGRlc2NyaXB0b3IgKGdyZWZfZGlyZWN0b3J5IGluIHRoZQorICogICByZXF1ZXN0KSBlbXBsb3lz IGEgbGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJlZCBkYXRh CisgKiAgIGJ1ZmZlcjoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICog fCAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyX25leHRfcGFnZSAgICAgICAgICAgICAg ICAgICAgICAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdyZWZbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBncmVmW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBpKjQrOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZltOIC0gMV0gICAgICAg ICAgICAgICAgICAgICAgICAgICB8IE4qNCs4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBncmVm X2Rpcl9uZXh0X3BhZ2UgLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIHRoZSBuZXh0IHBhZ2Ug ZGVzY3JpYmluZworICogICBwYWdlIGRpcmVjdG9yeS4gTXVzdCBiZSAwIGlmIHRoZXJlIGFyZSBu byBtb3JlIHBhZ2VzIGluIHRoZSBsaXN0LgorICogZ3JlZltpXSAtIGdyYW50X3JlZl90LCByZWZl cmVuY2UgdG8gYSBzaGFyZWQgcGFnZSBvZiB0aGUgYnVmZmVyCisgKiAgIGFsbG9jYXRlZCBhdCBY RU5TTkRfT1BfT1BFTgorICoKKyAqIE51bWJlciBvZiBncmFudF9yZWZfdCBlbnRyaWVzIGluIHRo ZSB3aG9sZSBwYWdlIGRpcmVjdG9yeSBpcyBub3QKKyAqIHBhc3NlZCwgYnV0IGluc3RlYWQgY2Fu IGJlIGNhbGN1bGF0ZWQgYXM6CisgKiAgIG51bV9ncmVmc190b3RhbCA9IChYRU5TTkRfT1BfT1BF Ti5idWZmZXJfc3ogKyBYRU5fUEFHRV9TSVpFIC0gMSkgLworICogICAgICAgWEVOX1BBR0VfU0la RQorICovCisKK3N0cnVjdCB4ZW5zbmRfcGFnZV9kaXJlY3RvcnkgeworICAgIGdyYW50X3JlZl90 IGdyZWZfZGlyX25leHRfcGFnZTsKKyAgICBncmFudF9yZWZfdCBncmVmWzFdOyAvKiBWYXJpYWJs ZSBsZW5ndGggKi8KK307CisKKy8qCisgKiAgUmVxdWVzdCBjbG9zZSAtIGNsb3NlIGFuIG9wZW5l ZCBwY20gc3RyZWFtOgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg ICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCBYRU5TTkRfT1BfQ0xPU0V8ICAgIHJl c2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBSZXF1ZXN0IHJlYWQvd3JpdGUgLSB1c2Vk IGZvciByZWFkIChmb3IgY2FwdHVyZSkgb3Igd3JpdGUgKGZvciBwbGF5YmFjayk6CisgKiAgICAg ICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMg ICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAg ICAgICAgICAgICB8ICAgb3BlcmF0aW9uICAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv fAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICoKKyAqIG9wZXJhdGlvbiAtIFhFTlNORF9PUF9SRUFEIGZvciByZWFkIG9yIFhFTlNORF9PUF9X UklURSBmb3Igd3JpdGUKKyAqIG9mZnNldCAtIHVpbnQzMl90LCByZWFkIG9yIHdyaXRlIGRhdGEg b2Zmc2V0IHdpdGhpbiB0aGUgc2hhcmVkIGJ1ZmZlciwKKyAqICAgcGFzc2VkIHdpdGggWEVOU05E X09QX09QRU4gcmVxdWVzdCwgb2N0ZXRzLiBNdXN0IGJlIGxlc3MgdGhhbiBidWZmZXJfc3ouCisg KiBsZW5ndGggLSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIGxlbmd0aCwgb2N0ZXRzCisg Ki8KKworc3RydWN0IHhlbnNuZF9yd19yZXEgeworICAgIHVpbnQzMl90IG9mZnNldDsKKyAgICB1 aW50MzJfdCBsZW47Cit9OworCisvKgorICogUmVxdWVzdCBzZXQvZ2V0IHZvbHVtZSAtIHNldC9n ZXQgY2hhbm5lbHMnIHZvbHVtZSBvZiB0aGUgc3RyZWFtIGdpdmVuOgorICogICAgICAgICAwICAg ICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBv Y3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg ICAgfCAgIG9wZXJhdGlvbiAgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisg KiBvcGVyYXRpb24gLSBYRU5TTkRfT1BfU0VUX1ZPTFVNRSBmb3Igdm9sdW1lIHNldAorICogICBv ciBYRU5TTkRfT1BfR0VUX1ZPTFVNRSBmb3Igdm9sdW1lIGdldAorICogQnVmZmVyIHBhc3NlZCB3 aXRoIFhFTlNORF9PUF9PUEVOIGlzIHVzZWQgdG8gZXhjaGFuZ2Ugdm9sdW1lCisgKiB2YWx1ZXM6 CisgKgorICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAg ICAgICAgICAgICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFubmVsWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IGkqNAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbTiAt IDFdICAgICAgICAgICAgICAgICAgICAgICAgICB8IChOLTEpKjQKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICoKKyAqIE4gPSBYRU5TTkRfT1BfT1BFTi5wY21fY2hhbm5lbHMKKyAqIGkgLSB1aW50OF90LCBp bmRleCBvZiBhIGNoYW5uZWwKKyAqIGNoYW5uZWxbaV0gLSBzaW50MzJfdCwgdm9sdW1lIG9mIGkt dGggY2hhbm5lbAorICogVm9sdW1lIGlzIGV4cHJlc3NlZCBhcyBhIHNpZ25lZCB2YWx1ZSBpbiBz dGVwcyBvZiAwLjAwMSBkQiwKKyAqIHdoaWxlIDAgYmVpbmcgMCBkQi4KKyAqCisgKiBSZXF1ZXN0 IG11dGUvdW5tdXRlIC0gbXV0ZS91bm11dGUgc3RyZWFtOgorICogICAgICAgICAwICAgICAgICAg ICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAg IG9wZXJhdGlvbiAgICB8ICAgIHJlc2VydmVkICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBvcGVy YXRpb24gLSBYRU5TTkRfT1BfTVVURSBmb3IgbXV0ZSBvciBYRU5TTkRfT1BfVU5NVVRFIGZvciB1 bm11dGUKKyAqIEJ1ZmZlciBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BFTiBpcyB1c2VkIHRvIGV4 Y2hhbmdlIG11dGUvdW5tdXRlCisgKiB2YWx1ZXM6CisgKgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs WzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAr L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkqNAorICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbTiAtIDFdICAgICAgICAgICAgICAgICAgICAgICAg ICB8IChOLTEpKjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE4gPSBYRU5TTkRfT1BfT1BFTi5w Y21fY2hhbm5lbHMKKyAqIGkgLSB1aW50OF90LCBpbmRleCBvZiBhIGNoYW5uZWwKKyAqIGNoYW5u ZWxbaV0gLSB1aW50OF90LCBub24temVybyBpZiBpLXRoIGNoYW5uZWwgbmVlZHMgdG8gYmUgbXV0 ZWQvdW5tdXRlZAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNw b25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBBbGwgcmVzcG9u c2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoMzIgb2N0ZXRzKQorICoKKyAqIFJlc3Bv bnNlIGZvciBhbGwgcmVxdWVzdHM6CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAg ICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAg IHwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4 CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisg KiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVz dAorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05EX09QXyogLSBjb3BpZWQgZnJvbSByZXF1 ZXN0CisgKiBzdGF0dXMgLSBpbnQzMl90LCByZXNwb25zZSBzdGF0dXMsIHplcm8gb24gc3VjY2Vz cyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZQorICovCisKK3N0cnVjdCB4ZW5zbmRfcmVxIHsKKyAg ICB1aW50MTZfdCBpZDsKKyAgICB1aW50OF90IG9wZXJhdGlvbjsKKyAgICB1aW50OF90IHJlc2Vy dmVkWzVdOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHhlbnNuZF9vcGVuX3JlcSBvcGVu OworICAgICAgICBzdHJ1Y3QgeGVuc25kX3J3X3JlcSBydzsKKyAgICAgICAgdWludDhfdCByZXNl cnZlZFsyNF07CisgICAgfSBvcDsKK307CisKK3N0cnVjdCB4ZW5zbmRfcmVzcCB7CisgICAgdWlu dDE2X3QgaWQ7CisgICAgdWludDhfdCBvcGVyYXRpb247CisgICAgdWludDhfdCByZXNlcnZlZDsK KyAgICBpbnQzMl90IHN0YXR1czsKKyAgICB1aW50OF90IHJlc2VydmVkMVsyNF07Cit9OworCitE RUZJTkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVu c25kX3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX1NORElGX0hfXyAqLwotLSAK Mi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK