ZGlmZiAtLWdpdCBhL0NSRURJVFMgYi9DUkVESVRTCmluZGV4IDliZDA5OWQuLmQ2NWZmZTUgMTAwNjQ0Ci0tLSBhL0NSRURJVFMKKysrIGIvQ1JFRElUUwpAQCAtMjQ3NSwxMyArMjQ3NSw5IEBACiBTOiBVU0EKIAogTjogRGF2ZSBOZXVlcgotRTogZG5ldWVyQGlubm92YXRpb24tY2hhcnRlci5jb20KLUU6IG1yX2ZyZWRfc21vb3RoaWVAeWFob28uY29tCitFOiBkYXZlLm5ldWVyQHBvYm94LmNvbQogRDogSGVscGVkIGltcGxlbWVudCBzdXBwb3J0IGZvciBDb21wYXEncyBIMzF4eCBzZXJpZXMgaVBBUXMKIEQ6IE90aGVyIG1vc3RseSBtaW5vciB0d2Vha3MgJiBidWdmaXhlcwotUzogMzI1IEUuIE1haW4gU3QuLCBTdWl0ZSAzCi1TOiBDYXJuZWdpZSwgUEEgMTUxMDUKLVM6IFVTQQogCiBOOiBNaWNoYWVsIE5ldWZmZXIKIEU6IG1pa2VAaS1Db25uZWN0Lk5ldApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL01ha2VmaWxlIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL01ha2VmaWxlCmluZGV4IGU2OWIzZDIuLjg3ZGEzNDcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9NYWtlZmlsZQorKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svTWFrZWZpbGUKQEAgLTgsNyArOCw3IEBACiAKIERPQ0JPT0tTIDo9IHdhbmJvb2sueG1sIHo4NTMwYm9vay54bWwgbWNhYm9vay54bWwgdmlkZW9ib29rLnhtbCBcCiAJICAgIGtlcm5lbC1oYWNraW5nLnhtbCBrZXJuZWwtbG9ja2luZy54bWwgZGV2aWNlaW9ib29rLnhtbCBcCi0JICAgIHByb2Nmcy1ndWlkZS54bWwgd3JpdGluZ191c2JfZHJpdmVyLnhtbCBzY3NpZHJpdmVycy54bWwgXAorCSAgICBwcm9jZnMtZ3VpZGUueG1sIHdyaXRpbmdfdXNiX2RyaXZlci54bWwgXAogCSAgICBzaXM5MDAueG1sIGtlcm5lbC1hcGkueG1sIGpvdXJuYWwtYXBpLnhtbCBsc20ueG1sIHVzYi54bWwgXAogCSAgICBnYWRnZXQueG1sIGxpYmF0YS54bWwgbXRkbmFuZC54bWwgbGlicnMueG1sCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9zY3NpZHJpdmVycy50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL3Njc2lkcml2ZXJzLnRtcGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwNThlNjUuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL3Njc2lkcml2ZXJzLnRtcGwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBib29rIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgotCSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIgW10+Ci0KLTxib29rIGlkPSJzY3NpZHJpdmVycyI+Ci0gPGJvb2tpbmZvPgotICA8dGl0bGU+U0NTSSBTdWJzeXN0ZW0gSW50ZXJmYWNlczwvdGl0bGU+Ci0gIAotICA8YXV0aG9yZ3JvdXA+Ci0gICA8YXV0aG9yPgotICAgIDxmaXJzdG5hbWU+RG91Z2xhczwvZmlyc3RuYW1lPgotICAgIDxzdXJuYW1lPkdpbGJlcnQ8L3N1cm5hbWU+Ci0gICAgPGFmZmlsaWF0aW9uPgotICAgICA8YWRkcmVzcz4KLSAgICAgIDxlbWFpbD5kZ2lsYmVydEBpbnRlcmxvZy5jb208L2VtYWlsPgotICAgICA8L2FkZHJlc3M+Ci0gICAgPC9hZmZpbGlhdGlvbj4KLSAgIDwvYXV0aG9yPgotICA8L2F1dGhvcmdyb3VwPgotICA8cHViZGF0ZT4yMDAzLTA4LTExPC9wdWJkYXRlPgotCi0gIDxjb3B5cmlnaHQ+Ci0gICA8eWVhcj4yMDAyPC95ZWFyPgotICAgPHllYXI+MjAwMzwveWVhcj4KLSAgIDxob2xkZXI+RG91Z2xhcyBHaWxiZXJ0PC9ob2xkZXI+Ci0gIDwvY29weXJpZ2h0PgotCi0gIDxsZWdhbG5vdGljZT4KLSAgIDxwYXJhPgotICAgICBUaGlzIGRvY3VtZW50YXRpb24gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUKLSAgICAgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwotICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgotICAgICB2ZXJzaW9uLgotICAgPC9wYXJhPgotICAgICAgCi0gICA8cGFyYT4KLSAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZQotICAgICB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkCi0gICAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSAgICAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICAgPC9wYXJhPgotICAgICAgCi0gICA8cGFyYT4KLSAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gICAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSAgICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKLSAgICAgTUEgMDIxMTEtMTMwNyBVU0EKLSAgIDwvcGFyYT4KLSAgICAgIAotICAgPHBhcmE+Ci0gICAgIEZvciBtb3JlIGRldGFpbHMgc2VlIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIHNvdXJjZQotICAgICBkaXN0cmlidXRpb24gb2YgTGludXguCi0gICA8L3BhcmE+Ci0gIDwvbGVnYWxub3RpY2U+Ci0KLSA8L2Jvb2tpbmZvPgotCi08dG9jPjwvdG9jPgotCi0gIDxjaGFwdGVyIGlkPSJpbnRybyI+Ci0gICAgICA8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4KLSAgPHBhcmE+Ci1UaGlzIGRvY3VtZW50IG91dGxpbmVzIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgTGludXggc2NzaSBtaWQgbGV2ZWwKLWFuZCBsb3dlciBsZXZlbCBkcml2ZXJzLiBMb3dlciBsZXZlbCBkcml2ZXJzIGFyZSB2YXJpb3VzbHkgY2FsbGVkIEhCQQotKGhvc3QgYnVzIGFkYXB0ZXIpIGRyaXZlcnMsIGhvc3QgZHJpdmVycyAoSEQpIG9yIHBzZXVkbyBhZGFwdGVyIGRyaXZlcnMuCi1UaGUgbGF0dGVyIGFsbHVkZXMgdG8gdGhlIGZhY3QgdGhhdCBhIGxvd2VyIGxldmVsIGRyaXZlciBtYXkgYmUgYQotYnJpZGdlIHRvIGFub3RoZXIgSU8gc3Vic3lzdGVtIChhbmQgdGhlICJpZGUtc2NzaSIgZHJpdmVyIGlzIGFuIGV4YW1wbGUKLW9mIHRoaXMpLiBUaGVyZSBjYW4gYmUgbWFueSBsb3dlciBsZXZlbCBkcml2ZXJzIGFjdGl2ZSBpbiBhIHJ1bm5pbmcKLXN5c3RlbSwgYnV0IG9ubHkgb25lIHBlciBoYXJkd2FyZSB0eXBlLiBGb3IgZXhhbXBsZSwgdGhlIGFpYzd4eHggZHJpdmVyCi1jb250cm9scyBhZGFwdGVjIGNvbnRyb2xsZXJzIGJhc2VkIG9uIHRoZSA3eHh4IGNoaXAgc2VyaWVzLiBNb3N0IGxvd2VyCi1sZXZlbCBkcml2ZXJzIGNhbiBjb250cm9sIG9uZSBvciBtb3JlIHNjc2kgaG9zdHMgKGEuay5hLiBzY3NpIGluaXRpYXRvcnMpLgotICA8L3BhcmE+Ci08cGFyYT4KLVRoaXMgZG9jdW1lbnQgY2FuIGJlZW4gZm91bmQgaW4gYW4gQVNDSUkgdGV4dCBmaWxlIGluIHRoZSBsaW51eCBrZXJuZWwgCi1zb3VyY2U6IDxmaWxlbmFtZT5Eb2N1bWVudGF0aW9uL3Njc2kvc2NzaV9taWRfbG93X2FwaS50eHQ8L2ZpbGVuYW1lPiAuCi1JdCBjdXJyZW50bHkgaG9sZCBhIGxpdHRsZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhpcyBkb2N1bWVudC4gVGhlCi08ZmlsZW5hbWU+ZHJpdmVycy9zY3NpL2hvc3RzLmg8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPgotZHJpdmVycy9zY3NpL3Njc2kuaDwvZmlsZW5hbWU+IGhlYWRlcnMgY29udGFpbiBkZXNjcmlwdGlvbnMgb2YgbWVtYmVycwotb2YgaW1wb3J0YW50IHN0cnVjdHVyZXMgZm9yIHRoZSBzY3NpIHN1YnN5c3RlbS4KLTwvcGFyYT4KLSAgPC9jaGFwdGVyPgotCi0gIDxjaGFwdGVyIGlkPSJkcml2ZXItc3RydWN0Ij4KLSAgICAgIDx0aXRsZT5Ecml2ZXIgc3RydWN0dXJlPC90aXRsZT4KLSAgPHBhcmE+Ci1UcmFkaXRpb25hbGx5IGEgbG93ZXIgbGV2ZWwgZHJpdmVyIGZvciB0aGUgc2NzaSBzdWJzeXN0ZW0gaGFzIGJlZW4KLWF0IGxlYXN0IHR3byBmaWxlcyBpbiB0aGUgZHJpdmVycy9zY3NpIGRpcmVjdG9yeS4gRm9yIGV4YW1wbGUsIGEKLWRyaXZlciBjYWxsZWQgInh5eiIgaGFzIGEgaGVhZGVyIGZpbGUgInh5ei5oIiBhbmQgYSBzb3VyY2UgZmlsZQotInh5ei5jIi4gW0FjdHVhbGx5IHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uIHdoeSB0aGlzIGNvdWxkbid0IGFsbAotYmUgaW4gb25lIGZpbGUuXSBTb21lIGRyaXZlcnMgdGhhdCBoYXZlIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwgb3BlcmF0aW5nCi1zeXN0ZW1zIChlLmcuIGFpYzd4eHggd2hpY2ggaGFzIHNlcGFyYXRlICBmaWxlcyBmb3IgZ2VuZXJpYyBhbmQKLU9TLXNwZWNpZmljIGNvZGUpIGhhdmUgbW9yZSB0aGFuIHR3byBmaWxlcy4gU3VjaCBkcml2ZXJzIHRlbmQgdG8gaGF2ZQotdGhlaXIgb3duIGRpcmVjdG9yeSB1bmRlciB0aGUgZHJpdmVycy9zY3NpIGRpcmVjdG9yeS4KLSAgPC9wYXJhPgotICA8cGFyYT4KLXNjc2lfbW9kdWxlLmMgaXMgbm9ybWFsbHkgaW5jbHVkZWQgYXQgdGhlIGVuZCBvZiBhIGxvd2VyCi1sZXZlbCBkcml2ZXIuIEZvciBpdCB0byB3b3JrIGEgZGVjbGFyYXRpb24gbGlrZSB0aGlzIGlzIG5lZWRlZCBiZWZvcmUKLWl0IGlzIGluY2x1ZGVkOgotPHByb2dyYW1saXN0aW5nPgotICAgIHN0YXRpYyBTY3NpX0hvc3RfVGVtcGxhdGUgZHJpdmVyX3RlbXBsYXRlID0gRFJJVkVSX1RFTVBMQVRFOwotICAgIC8qIERSSVZFUl9URU1QTEFURSBzaG91bGQgY29udGFpbiBwb2ludGVycyB0byBzdXBwb3J0ZWQgaW50ZXJmYWNlCi0gICAgICAgZnVuY3Rpb25zLiBTY3NpX0hvc3RfVGVtcGxhdGUgaXMgZGVmaW5lZCBob3N0cy5oICovCi0gICAgI2luY2x1ZGUgInNjc2lfbW9kdWxlLmMiCi08L3Byb2dyYW1saXN0aW5nPgotICA8L3BhcmE+Ci0gIDxwYXJhPgotVGhlIHNjc2lfbW9kdWxlLmMgYXNzdW1lcyB0aGUgbmFtZSAiZHJpdmVyX3RlbXBsYXRlIiBpcyBhcHByb3ByaWF0ZWx5Ci1kZWZpbmVkLiBJdCBjb250YWlucyAyIGZ1bmN0aW9uczoKLTxvcmRlcmVkbGlzdD4KLTxsaXN0aXRlbT48cGFyYT4KLSAgICAgaW5pdF90aGlzX3Njc2lfZHJpdmVyKCkgY2FsbGVkIGR1cmluZyBidWlsdGluIGFuZCBtb2R1bGUgZHJpdmVyCi0gICAgIGluaXRpYWxpemF0aW9uOiBpbnZva2VzIG1pZCBsZXZlbCdzIHNjc2lfcmVnaXN0ZXJfaG9zdCgpCi08L3BhcmE+PC9saXN0aXRlbT4KLTxsaXN0aXRlbT48cGFyYT4KLSAgICAgZXhpdF90aGlzX3Njc2lfZHJpdmVyKCkgY2FsbGVkIGR1cmluZyBjbG9zZWRvd246IGludm9rZXMKLSAgICAgbWlkIGxldmVsJ3Mgc2NzaV91bnJlZ2lzdGVyX2hvc3QoKQotPC9wYXJhPjwvbGlzdGl0ZW0+Ci08L29yZGVyZWRsaXN0PgotICA8L3BhcmE+Ci08cGFyYT4KLVdoZW4gYSBuZXcsIGxvd2VyIGxldmVsIGRyaXZlciBpcyBiZWluZyBhZGRlZCB0byBMaW51eCwgdGhlIGZvbGxvd2luZyAKLWZpbGVzIChhbGwgZm91bmQgaW4gdGhlIGRyaXZlcnMvc2NzaSBkaXJlY3RvcnkpIHdpbGwgbmVlZCBzb21lIGF0dGVudGlvbjogCi1NYWtlZmlsZSwgQ29uZmlnLmhlbHAgYW5kIENvbmZpZy5pbiAuIEl0IGlzIHByb2JhYmx5IGJlc3QgdG8gbG9vayBhdCB3aGF0IAotYW4gZXhpc3RpbmcgbG93ZXIgbGV2ZWwgZHJpdmVyIGRvZXMgaW4gdGhpcyByZWdhcmQuCi08L3BhcmE+Ci0gIDwvY2hhcHRlcj4KLQotICA8Y2hhcHRlciBpZD0iaW50ZnVuY3Rpb25zIj4KLSAgICAgPHRpdGxlPkludGVyZmFjZSBGdW5jdGlvbnM8L3RpdGxlPgotIUVEb2N1bWVudGF0aW9uL3Njc2kvc2NzaV9taWRfbG93X2FwaS50eHQKLSAgPC9jaGFwdGVyPgotCi0gIDxjaGFwdGVyIGlkPSJsb2NrcyI+Ci0gICAgIDx0aXRsZT5Mb2NrczwvdGl0bGU+Ci08cGFyYT4KLUVhY2ggU2NzaV9Ib3N0IGluc3RhbmNlIGhhcyBhIHNwaW5fbG9jayBjYWxsZWQgU2NzaV9Ib3N0OjpkZWZhdWx0X2xvY2sKLXdoaWNoIGlzIGluaXRpYWxpemVkIGluIHNjc2lfcmVnaXN0ZXIoKSBbZm91bmQgaW4gaG9zdHMuY10uIFdpdGhpbiB0aGUKLXNhbWUgZnVuY3Rpb24gdGhlIFNjc2lfSG9zdDo6aG9zdF9sb2NrIHBvaW50ZXIgaXMgaW5pdGlhbGl6ZWQgdG8gcG9pbnQKLWF0IGRlZmF1bHRfbG9jayB3aXRoIHRoZSBzY3NpX2Fzc2lnbl9sb2NrKCkgZnVuY3Rpb24uIFRoZXJlYWZ0ZXIKLWxvY2sgYW5kIHVubG9jayBvcGVyYXRpb25zIHBlcmZvcm1lZCBieSB0aGUgbWlkIGxldmVsIHVzZSB0aGUKLVNjc2lfSG9zdDo6aG9zdF9sb2NrIHBvaW50ZXIuCi08L3BhcmE+Ci08cGFyYT4KLUxvd2VyIGxldmVsIGRyaXZlcnMgY2FuIG92ZXJyaWRlIHRoZSB1c2Ugb2YgU2NzaV9Ib3N0OjpkZWZhdWx0X2xvY2sgYnkKLXVzaW5nIHNjc2lfYXNzaWduX2xvY2soKS4gVGhlIGVhcmxpZXN0IG9wcG9ydHVuaXR5IHRvIGRvIHRoaXMgd291bGQKLWJlIGluIHRoZSBkZXRlY3QoKSBmdW5jdGlvbiBhZnRlciBpdCBoYXMgaW52b2tlZCBzY3NpX3JlZ2lzdGVyKCkuIEl0Ci1jb3VsZCBiZSByZXBsYWNlZCBieSBhIGNvYXJzZXIgZ3JhaW4gbG9jayAoZS5nLiBwZXIgZHJpdmVyKSBvciBhCi1sb2NrIG9mIGVxdWFsIGdyYW51bGFyaXR5IChpLmUuIHBlciBob3N0KS4gVXNpbmcgZmluZXIgZ3JhaW4gbG9ja3MKLShlLmcuIHBlciBzY3NpIGRldmljZSkgbWF5IGJlIHBvc3NpYmxlIGJ5IGp1Z2dsaW5nIGxvY2tzIGluCi1xdWV1ZWNvbW1hbmQoKS4KLTwvcGFyYT4KLSAgPC9jaGFwdGVyPgotCi0gIDxjaGFwdGVyIGlkPSJjaGFuZ2VzIj4KLSAgICAgPHRpdGxlPkNoYW5nZXMgc2luY2UgbGsgMi40IHNlcmllczwvdGl0bGU+Ci08cGFyYT4KLWlvX3JlcXVlc3RfbG9jayBoYXMgYmVlbiByZXBsYWNlZCBieSBzZXZlcmFsIGZpbmVyIGdyYWluZWQgbG9ja3MuIFRoZSBsb2NrCi1yZWxldmFudCB0byBsb3dlciBsZXZlbCBkcml2ZXJzIGlzIFNjc2lfSG9zdDo6aG9zdF9sb2NrIGFuZCB0aGVyZSBpcyBvbmUKLXBlciBzY3NpIGhvc3QuCi08L3BhcmE+Ci08cGFyYT4KLVRoZSBvbGRlciBlcnJvciBoYW5kbGluZyBtZWNoYW5pc20gaGFzIGJlZW4gcmVtb3ZlZC4gVGhpcyBtZWFucyB0aGUKLWxvd2VyIGxldmVsIGludGVyZmFjZSBmdW5jdGlvbnMgYWJvcnQoKSBhbmQgcmVzZXQoKSBoYXZlIGJlZW4gcmVtb3ZlZC4KLTwvcGFyYT4KLTxwYXJhPgotSW4gdGhlIDIuNCBzZXJpZXMgdGhlIHNjc2kgc3Vic3lzdGVtIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRpb25zIHdlcmUKLWFnZ3JlZ2F0ZWQgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBkZXNjcmlwdGlvbnMgZnJvbSBhbGwgb3RoZXIgTGludXgKLXN1YnN5c3RlbXMgaW4gdGhlIERvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAgZmlsZS4gSW4gdGhlIDIuNSBzZXJpZXMsCi10aGUgc2NzaSBzdWJzeXN0ZW0gbm93IGhhcyBpdHMgb3duIChtdWNoIHNtYWxsZXIpIGRyaXZlcnMvc2NzaS9Db25maWcuaGVscAotZmlsZS4KLTwvcGFyYT4KLSAgPC9jaGFwdGVyPgotCi0gIDxjaGFwdGVyIGlkPSJjcmVkaXRzIj4KLSAgICAgPHRpdGxlPkNyZWRpdHM8L3RpdGxlPgotPHBhcmE+Ci1UaGUgZm9sbG93aW5nIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoaXMgZG9jdW1lbnQ6Ci08b3JkZXJlZGxpc3Q+Ci08bGlzdGl0ZW0+PHBhcmE+Ci1NaWtlIEFuZGVyc29uIDxlbWFpbD5hbmRtaWtlQHVzLmlibS5jb208L2VtYWlsPgotPC9wYXJhPjwvbGlzdGl0ZW0+Ci08bGlzdGl0ZW0+PHBhcmE+Ci1KYW1lcyBCb3R0b21sZXkgPGVtYWlsPkphbWVzLkJvdHRvbWxleUBzdGVlbGV5ZS5jb208L2VtYWlsPgotPC9wYXJhPjwvbGlzdGl0ZW0+Ci08bGlzdGl0ZW0+PHBhcmE+Ci1QYXRyaWNrIE1hbnNmaWVsZCA8ZW1haWw+cGF0bWFuc0B1cy5pYm0uY29tPC9lbWFpbD4KLTwvcGFyYT48L2xpc3RpdGVtPgotPC9vcmRlcmVkbGlzdD4KLTwvcGFyYT4KLSAgPC9jaGFwdGVyPgotCi08L2Jvb2s+CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1N1Ym1pdHRpbmdQYXRjaGVzIGIvRG9jdW1lbnRhdGlvbi9TdWJtaXR0aW5nUGF0Y2hlcwppbmRleCA5ODM4ZDMyLi40ZDM1NTYyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1N1Ym1pdHRpbmdQYXRjaGVzCisrKyBiL0RvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMKQEAgLTI3MSw3ICsyNzEsNyBAQAogcGFzcyBpdCBvbiBhcyBhIG9wZW4tc291cmNlIHBhdGNoLiAgVGhlIHJ1bGVzIGFyZSBwcmV0dHkgc2ltcGxlOiBpZiB5b3UKIGNhbiBjZXJ0aWZ5IHRoZSBiZWxvdzoKIAotICAgICAgICBEZXZlbG9wZXIncyBDZXJ0aWZpY2F0ZSBvZiBPcmlnaW4gMS4wCisgICAgICAgIERldmVsb3BlcidzIENlcnRpZmljYXRlIG9mIE9yaWdpbiAxLjEKIAogICAgICAgICBCeSBtYWtpbmcgYSBjb250cmlidXRpb24gdG8gdGhpcyBwcm9qZWN0LCBJIGNlcnRpZnkgdGhhdDoKIApAQCAtMjkxLDYgKzI5MSwxMiBAQAogICAgICAgICAgICAgcGVyc29uIHdobyBjZXJ0aWZpZWQgKGEpLCAoYikgb3IgKGMpIGFuZCBJIGhhdmUgbm90IG1vZGlmaWVkCiAgICAgICAgICAgICBpdC4KIAorCShkKSBJIHVuZGVyc3RhbmQgYW5kIGFncmVlIHRoYXQgdGhpcyBwcm9qZWN0IGFuZCB0aGUgY29udHJpYnV0aW9uCisJICAgIGFyZSBwdWJsaWMgYW5kIHRoYXQgYSByZWNvcmQgb2YgdGhlIGNvbnRyaWJ1dGlvbiAoaW5jbHVkaW5nIGFsbAorCSAgICBwZXJzb25hbCBpbmZvcm1hdGlvbiBJIHN1Ym1pdCB3aXRoIGl0LCBpbmNsdWRpbmcgbXkgc2lnbi1vZmYpIGlzCisJICAgIG1haW50YWluZWQgaW5kZWZpbml0ZWx5IGFuZCBtYXkgYmUgcmVkaXN0cmlidXRlZCBjb25zaXN0ZW50IHdpdGgKKwkgICAgdGhpcyBwcm9qZWN0IG9yIHRoZSBvcGVuIHNvdXJjZSBsaWNlbnNlKHMpIGludm9sdmVkLgorCiB0aGVuIHlvdSBqdXN0IGFkZCBhIGxpbmUgc2F5aW5nCiAKIAlTaWduZWQtb2ZmLWJ5OiBSYW5kb20gSiBEZXZlbG9wZXIgPHJhbmRvbUBkZXZlbG9wZXIub3JnPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3ZvcnRleC50eHQgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdm9ydGV4LnR4dAppbmRleCBmYTEyYTllLi44MGUxY2IxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdm9ydGV4LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdm9ydGV4LnR4dApAQCAtMTIsNyArMTIsNyBAQAogUGxlYXNlIHJlcG9ydCBwcm9ibGVtcyB0byBvbmUgb3IgbW9yZSBvZjoKIAogICBBbmRyZXcgTW9ydG9uIDxhbmRyZXdtQHVvdy5lZHUuYXU+Ci0gIE5ldGRldiBtYWlsaW5nIGxpc3QgPG5ldGRldkBvc3Muc2dpLmNvbT4KKyAgTmV0ZGV2IG1haWxpbmcgbGlzdCA8bmV0ZGV2QHZnZXIua2VybmVsLm9yZz4KICAgTGludXgga2VybmVsIG1haWxpbmcgbGlzdCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz4KIAogUGxlYXNlIG5vdGUgdGhlICdSZXBvcnRpbmcgYW5kIERpYWdub3NpbmcgUHJvYmxlbXMnIHNlY3Rpb24gYXQgdGhlIGVuZApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9zY3NpL0NoYW5nZUxvZy5tZWdhcmFpZCBiL0RvY3VtZW50YXRpb24vc2NzaS9DaGFuZ2VMb2cubWVnYXJhaWQKaW5kZXggYTkzNTZjNi4uNTMzMWQ5MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zY3NpL0NoYW5nZUxvZy5tZWdhcmFpZAorKysgYi9Eb2N1bWVudGF0aW9uL3Njc2kvQ2hhbmdlTG9nLm1lZ2FyYWlkCkBAIC0xLDMgKzEsNjkgQEAKK1JlbGVhc2UgRGF0ZQk6IE1vbiBNYXIgMDcgMTI6Mjc6MjIgRVNUIDIwMDUgLSBTZW9rbWFubiBKdSA8c2p1QGxzaWwuY29tPgorQ3VycmVudCBWZXJzaW9uIDogMi4yMC40LjYgKHNjc2kgbW9kdWxlKSwgMi4yMC4yLjYgKGNtbSBtb2R1bGUpCitPbGRlciBWZXJzaW9uCTogMi4yMC40LjUgKHNjc2kgbW9kdWxlKSwgMi4yMC4yLjUgKGNtbSBtb2R1bGUpCisKKzEuCUFkZGVkIElPQ1RMIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisJQ29udmVydCBtZWdhcmFpZF9tbSBkcml2ZXIgdG8gbmV3IGNvbXBhdF9pb2N0bCBlbnRyeSBwb2ludHMuCisJSSBkb24ndCBoYXZlIGVhc3kgYWNjZXNzIHRvIGhhcmR3YXJlLCBzbyBvbmx5IGNvbXBpbGUgdGVzdGVkLgorCQktIFNpZ25lZC1vZmYtYnk6QW5kaSBLbGVlbiA8YWtAbXVjLmRlPgorCisyLgltZWdhcmFpZF9tYm94IGZpeDogd3Jvbmcgb3JkZXIgb2YgYXJndW1lbnRzIGluIG1lbXNldCgpCisJVGhhdCwgQlRXLCBzaG93cyB3aHkgY3Jvc3MtYnVpbGRzIGFyZSB1c2VmdWwtdGhlIG9ubHkgaW5kaWNhdGlvbiBvZgorCXByb2JsZW0gaGFkIGJlZW4gYSBuZXcgd2FybmluZyBzaG93aW5nIHVwIGluIHNwYXJzZSBvdXRwdXQgb24gYWxwaGEKKwlidWlsZCAobnVtYmVyIG9mIGV4Y2VlZGluZyAyNTYgZ290IHRydW5jYXRlZCkuCisJCS0gU2lnbmVkLW9mZi1ieTogQWwgVmlybworCQk8dmlyb0BwYXJjZWxmYXJjZS5saW51eC50aGVwbGFuZXQuY28udWs+CisKKzMuCUNvbnZlcnQgcGNpX21vZHVsZV9pbml0IHRvIHBjaV9yZWdpc3Rlcl9kcml2ZXIKKwlDb252ZXJ0IGZyb20gcGNpX21vZHVsZV9pbml0IHRvIHBjaV9yZWdpc3Rlcl9kcml2ZXIKKwkoZnJvbTpodHRwOi8va2VybmVsamFuaXRvcnMub3JnL1RPRE8pCisJCS0gU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbkBjb2Rlcm9jay5vcmc+CisKKzQuCVVzZSB0aGUgcHJlIGRlZmluZWQgRE1BIG1hc2sgY29uc3RhbnRzIGZyb20gZG1hLW1hcHBpbmcuaAorCVVzZSB0aGUgRE1BX3s2NCwzMn1CSVRfTUFTSyBjb25zdGFudHMgZnJvbSBkbWEtbWFwcGluZy5oIHdoZW4gY2FsbGluZworCXBjaV9zZXRfZG1hX21hc2soKSBvciBwY2lfc2V0X2NvbnNpc3RlbmRfZG1hX21hc2soKS4gU2VlCisJaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/dD0xMDgwMDE5OTMwMDAwMDEmcj0xJnc9MiBmb3IgbW9yZQorCWRldGFpbHMuCisJCVNpZ25lZC1vZmYtYnk6IFRvYmlhcyBLbGF1c2VyIDx0a2xhdXNlckBudWVyc2NodC5jaD4KKwkJU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbkBjb2Rlcm9jay5vcmc+CisKKzUuCVJlbW92ZSBTU0lEIGNoZWNraW5nIGZvciBEb2Jzb24sIExpbmRzYXksIGFuZCBWZXJkZSBiYXNlZCBwcm9kdWN0cy4KKwlDaGVja2luZyB0aGUgU1NWSUQvU1NJRCBmb3IgY29udHJvbGxlcnMgd2hpY2ggaGF2ZSBEb2Jzb24sIExpbmRzYXksCisJYW5kIFZlcmRlIGlzIHVubmVjZXNzYXJ5IGJlY2F1c2UgZGV2aWNlIElEIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IExTSQorCWFuZCBpdCBpcyB1bmlxdWUgdmFsdWUuIFNvLCBhbGwgY29udHJvbGxlcnMgd2l0aCB0aGVzZSBJT1BzIGhhdmUgdG8gYmUKKwlzdXBwb3J0ZWQgYnkgdGhlIGRyaXZlciByZWdhcmRsZXNzIFNTVklEL1NTSUQuCisKKzYuCURhdGUgVGh1LCAyNyBKYW4gMjAwNSAwNDozMTowOSArMDEwMCAKKwlGcm9tIEhlcmJlcnQgUG9ldHpsIDw+IAorCVN1YmplY3QgUkZDOiBhc3NlcnRfc3Bpbl9sb2NrZWQoKSBmb3IgMi42IAorCisJR3JlZXRpbmdzIQorCisJb3ZlcmNhdXRpb3VzIHByb2dyYW1taW5nIHdpbGwga2lsbCB5b3VyIGtlcm5lbCA7KQorCWV2ZXIgdGhvdWdodCBhYm91dCBjaGVja2luZyBhIHNwaW5fbG9jayBvciBldmVuCisJYXNzZXJ0aW5nIHRoYXQgaXQgbXVzdCBiZSBoZWxkIChtYXliZSBqdXN0IGZvcgorCXNwaW5sb2NrIGRlYnVnZ2luZz8pIC4uLgorCisJdGhlcmUgYXJlIHNldmVyYWwgY2hlY2tzIHByZXNlbnQgaW4gdGhlIGtlcm5lbAorCXdoZXJlIHNvbWVib2R5IGRvZXMgYSB2YXJpYXRpb24gb24gdGhlIGZvbGxvd2luZzoKKworCSAgQlVHX09OKCFzcGluX2lzX2xvY2tlZCgmc29tZV9sb2NrKSk7CisKKwlzbyB3aGF0J3Mgd3JvbmcgYWJvdXQgdGhhdD8gbm90aGluZywgdW5sZXNzIHlvdQorCWNvbXBpbGUgdGhlIGNvZGUgd2l0aCBDT05GSUdfREVCVUdfU1BJTkxPQ0sgYnV0IAorCXdpdGhvdXQgQ09ORklHX1NNUCAuLi4gaW4gd2hpY2ggY2FzZSB0aGUgQlVHKCkKKwl3aWxsIGtpbGwgeW91ciBrZXJuZWwgLi4uCisKKwltYXliZSBpdCdzIG5vdCBhZHZpc2VkIHRvIG1ha2Ugc3VjaCBhc3NlcnRpb25zLCAKKwlidXQgaGVyZSBpcyBhIHNvbHV0aW9uIHdoaWNoIHdvcmtzIGZvciBtZSAuLi4KKwkoY29tcGlsZSB0ZXN0ZWQgZm9yIHNoLCB4ODZfNjQgYW5kIHg4NiwgYm9vdC9ydW4KKwl0ZXN0ZWQgZm9yIHg4NiBvbmx5KQorCisJYmVzdCwKKwlIZXJiZXJ0CisKKwkJLSBIZXJiZXJ0IFBvZXR6bCA8aGVyYmVydEAxM3RoZmxvb3IuYXQ+LCBUaHUsIDI3IEphbiAyMDA1CisKIFJlbGVhc2UgRGF0ZQk6IFRodSBGZWIgMDMgMTI6Mjc6MjIgRVNUIDIwMDUgLSBTZW9rbWFubiBKdSA8c2p1QGxzaWwuY29tPgogQ3VycmVudCBWZXJzaW9uCTogMi4yMC40LjUgKHNjc2kgbW9kdWxlKSwgMi4yMC4yLjUgKGNtbSBtb2R1bGUpCiBPbGRlciBWZXJzaW9uCTogMi4yMC40LjQgKHNjc2kgbW9kdWxlKSwgMi4yMC4yLjQgKGNtbSBtb2R1bGUpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3Njc2kvc2NzaS1jaGFuZ2VyLnR4dCBiL0RvY3VtZW50YXRpb24vc2NzaS9zY3NpLWNoYW5nZXIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMzI2ODcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3Njc2kvc2NzaS1jaGFuZ2VyLnR4dApAQCAtMCwwICsxLDE4MCBAQAorCitSRUFETUUgZm9yIHRoZSBTQ1NJIG1lZGlhIGNoYW5nZXIgZHJpdmVyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgaXMgYSBkcml2ZXIgZm9yIFNDU0kgTWVkaXVtIENoYW5nZXIgZGV2aWNlcywgd2hpY2ggYXJlIGxpc3RlZAord2l0aCAiVHlwZTogTWVkaXVtIENoYW5nZXIiIGluIC9wcm9jL3Njc2kvc2NzaS4KKworVGhpcyBpcyBmb3IgKnJlYWwqIEp1a2Vib3hlcy4gIEl0IGlzICpub3QqIHN1cHBvcnRlZCB0byB3b3JrIHdpdGgKK2NvbW1vbiBzbWFsbCBDRC1ST00gY2hhbmdlcnMsIG5laXRoZXIgb25lLWx1bi1wZXItc2xvdCBTQ1NJIGNoYW5nZXJzCitub3IgSURFIGRyaXZlcy4KKworVXNlcmxhbmQgdG9vbHMgYXZhaWxhYmxlIGZyb20gaGVyZToKKwlodHRwOi8vbGludXguYnl0ZXNleC5vcmcvbWlzYy9jaGFuZ2VyLmh0bWwKKworCitHZW5lcmFsIEluZm9ybWF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZpcnN0IHNvbWUgd29yZHMgYWJvdXQgaG93IGNoYW5nZXJzIHdvcms6IEEgY2hhbmdlciBoYXMgMiAocG9zc2libHkKK21vcmUpIFNDU0kgSUQncy4gT25lIGZvciB0aGUgY2hhbmdlciBkZXZpY2Ugd2hpY2ggY29udHJvbHMgdGhlIHJvYm90LAorYW5kIG9uZSBmb3IgdGhlIGRldmljZSB3aGljaCBhY3R1YWxseSByZWFkcyBhbmQgd3JpdGVzIHRoZSBkYXRhLiBUaGUKK2xhdGVyIG1heSBiZSBhbnl0aGluZywgYSBNT0QsIGEgQ0QtUk9NLCBhIHRhcGUgb3Igd2hhdGV2ZXIuIEZvciB0aGUKK2NoYW5nZXIgZGV2aWNlIHRoaXMgaXMgYSAiZG9uJ3QgY2FyZSIsIGhlICpvbmx5KiBzaHVmZmxlcyBhcm91bmQgdGhlCittZWRpYSwgbm90aGluZyBlbHNlLgorCisKK1RoZSBTQ1NJIGNoYW5nZXIgbW9kZWwgaXMgY29tcGxleCwgY29tcGFyZWQgdG8gLSBmb3IgZXhhbXBsZSAtIElERS1DRAorY2hhbmdlcnMuIEJ1dCBpdCBhbGxvd3MgdG8gaGFuZGxlIG5lYXJseSBhbGwgcG9zc2libGUgY2FzZXMuIEl0IGtub3dzCis0IGRpZmZlcmVudCB0eXBlcyBvZiBjaGFuZ2VyIGVsZW1lbnRzOgorCisgIG1lZGlhIHRyYW5zcG9ydCAtIHRoaXMgb25lIHNodWZmbGVzIGFyb3VuZCB0aGUgbWVkaWEsIGkuZS4gdGhlCisgICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydCBhcm0uICBBbHNvIGtub3duIGFzICJwaWNrZXIiLgorICBzdG9yYWdlICAgICAgICAgLSBhIHNsb3Qgd2hpY2ggY2FuIGhvbGQgYSBtZWRpYS4KKyAgaW1wb3J0L2V4cG9ydCAgIC0gdGhlIHNhbWUgYXMgYWJvdmUsIGJ1dCBpcyBhY2Nlc3NhYmxlIGZyb20gb3V0c2lkZSwKKyAgICAgICAgICAgICAgICAgICAgaS5lLiB0aGVyZSB0aGUgb3BlcmF0b3IgKHlvdSAhKSBjYW4gdXNlIHRoaXMgdG8KKyAgICAgICAgICAgICAgICAgICAgZmlsbCBpbiBhbmQgcmVtb3ZlIG1lZGlhIGZyb20gdGhlIGNoYW5nZXIuCisJCSAgICBTb21ldGltZXMgbmFtZWQgIm1haWxzbG90Ii4KKyAgZGF0YSB0cmFuc2ZlciAgIC0gdGhpcyBpcyB0aGUgZGV2aWNlIHdoaWNoIHJlYWRzL3dyaXRlcywgaS5lLiB0aGUKKwkJICAgIENELVJPTSAvIFRhcGUgLyB3aGF0ZXZlciBkcml2ZS4KKworTm9uZSBvZiB0aGVzZSBpcyBsaW1pdGVkIHRvIG9uZTogQSBodWdlIEp1a2Vib3ggY291bGQgaGF2ZSBzbG90cyBmb3IKKzEyMyBDRC1ST00ncywgNSBDRC1ST00gcmVhZGVycyAoYW5kIHRoZXJlZm9yZSA2IFNDU0kgSUQnczogdGhlIGNoYW5nZXIKK2FuZCBlYWNoIENELVJPTSkgYW5kIDIgdHJhbnNwb3J0IGFybXMuIE5vIHByb2JsZW0gdG8gaGFuZGxlLgorCisKK0hvdyBpdCBpcyBpbXBsZW1lbnRlZAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0kgaW1wbGVtZW50ZWQgdGhlIGRyaXZlciBhcyBjaGFyYWN0ZXIgZGV2aWNlIGRyaXZlciB3aXRoIGEgTmV0QlNELWxpa2UKK2lvY3RsIGludGVyZmFjZS4gSnVzdCBncmFiYmVkIE5ldEJTRCdzIGhlYWRlciBmaWxlIGFuZCBvbmUgb2YgdGhlCitvdGhlciBsaW51eCBTQ1NJIGRldmljZSBkcml2ZXJzIGFzIHN0YXJ0aW5nIHBvaW50LiBUaGUgaW50ZXJmYWNlCitzaG91bGQgYmUgc291cmNlIGNvZGUgY29tcGF0aWJsZSB3aXRoIE5ldEJTRC4gU28gaWYgdGhlcmUgaXMgYW55Citzb2Z0d2FyZSAoYW55Ym9keSBrbm93cyA/Pz8pIHdoaWNoIHN1cHBvcnRzIGEgQlNEaXNoIGNoYW5nZXIgZHJpdmVyLAoraXQgc2hvdWxkIHdvcmsgd2l0aCB0aGlzIGRyaXZlciB0b28uCisKK092ZXIgdGltZSBhIGZldyBtb3JlIGlvY3RscyB3aGVyZSBhZGRlZCwgdm9sdW1lIHRhZyBzdXBwb3J0IGZvciBleGFtcGxlCit3YXNuJ3QgY292ZXJlZCBieSB0aGUgTmV0QlNEIGlvY3RsIEFQSS4KKworCitDdXJyZW50IFN0YXRlCistLS0tLS0tLS0tLS0tCisKK1N1cHBvcnQgZm9yIG1vcmUgdGhhbiBvbmUgdHJhbnNwb3J0IGFybSBpcyBub3QgaW1wbGVtZW50ZWQgeWV0IChhbmQKK25vYm9keSBhc2tlZCBmb3IgaXQgc28gZmFyLi4uKS4KKworSSB0ZXN0IGFuZCB1c2UgdGhlIGRyaXZlciBteXNlbGYgd2l0aCBhIDM1IHNsb3QgY2Ryb20ganVrZWJveCBmcm9tCitHcnVuZGlnLiAgSSBnb3Qgc29tZSByZXBvcnRzIHRlbGxpbmcgaXQgd29ya3Mgb2sgd2l0aCB0YXBlIGF1dG9sb2FkZXJzCisoRXhhYnl0ZSwgSFAgYW5kIERFQykuICBTb21lIFBlb3BsZSB1c2UgdGhpcyBkcml2ZXIgd2l0aCBhbWFuZGEuICBJdAord29ya3MgZmluZSB3aXRoIHNtYWxsICgxMSBzbG90cykgYW5kIGEgaHVnZSAoNCBNT3MsIDg4IHNsb3RzKQorbWFnbmV0by1vcHRpY2FsIEp1a2Vib3guICBQcm9iYWJseSB3aXRoIGxvdHMgb2Ygb3RoZXIgY2hhbmdlcnMgdG9vLCBtb3N0CisoYnV0IG5vdCBhbGwgOi0pIHBlb3BsZSBtYWlsIG1lIG9ubHkgaWYgaXQgZG9lcyAqbm90KiB3b3JrLi4uCisKK0kgZG9uJ3QgaGF2ZSBhbnkgZGV2aWNlIGxpc3RzLCBuZWl0aGVyIGJsYWNrLWxpc3Qgbm9yIHdoaXRlLWxpc3QuICBUaHVzCitpdCBpcyBxdWl0ZSB1c2VsZXNzIHRvIGFzayBtZSB3aGVuZXZlciBhIHNwZWNpZmljIGRldmljZSBpcyBzdXBwb3J0ZWQgb3IKK25vdC4gIEluIHRoZW9yeSBldmVyeSBjaGFuZ2VyIGRldmljZSB3aGljaCBzdXBwb3J0cyB0aGUgU0NTSS0yIG1lZGlhCitjaGFuZ2VyIGNvbW1hbmQgc2V0IHNob3VsZCB3b3JrIG91dC1vZi10aGUtYm94IHdpdGggdGhpcyBkcml2ZXIuICBJZiBpdAorZG9lc24ndCwgaXQgaXMgYSBidWcuICBFaXRoZXIgd2l0aGluIHRoZSBkcml2ZXIgb3Igd2l0aGluIHRoZSBmaXJtd2FyZQorb2YgdGhlIGNoYW5nZXIgZGV2aWNlLgorCisKK1VzaW5nIGl0CistLS0tLS0tLQorCitUaGlzIGlzIGEgY2hhcmFjdGVyIGRldmljZSB3aXRoIG1ham9yIG51bWJlciBpcyA4Niwgc28gdXNlCisibWtub2QgL2Rldi9zY2gwIGMgODYgMCIgdG8gY3JlYXRlIHRoZSBzcGVjaWFsIGZpbGUgZm9yIHRoZSBkcml2ZXIuCisKK0lmIHRoZSBtb2R1bGUgZmluZHMgdGhlIGNoYW5nZXIsIGl0IHByaW50cyBzb21lIG1lc3NhZ2VzIGFib3V0IHRoZQorZGV2aWNlIFsgdHJ5ICJkbWVzZyIgaWYgeW91IGRvbid0IHNlZSBhbnl0aGluZyBdIGFuZCBzaG91bGQgc2hvdyB1cCBpbgorL3Byb2MvZGV2aWNlcy4gSWYgbm90Li4uLiAgc29tZSBjaGFuZ2VycyB1c2UgSUQgPyAvIExVTiAwIGZvciB0aGUKK2RldmljZSBhbmQgSUQgPyAvIExVTiAxIGZvciB0aGUgcm9ib3QgbWVjaGFuaXNtLiBCdXQgTGludXggZG9lcyAqbm90KgorbG9vayBmb3IgTFVOJ3Mgb3RoZXIgdGhhbiAwIGFzIGRlZmF1bHQsIGJlY2F1Y2UgdGhlcmUgYXJlIHRvIG1hbnkKK2Jyb2tlbiBkZXZpY2VzLiBTbyB5b3UgY2FuIHRyeToKKworICAxKSBlY2hvICJzY3NpIGFkZC1zaW5nbGUtZGV2aWNlIDAgMCBJRCAxIiA+IC9wcm9jL3Njc2kvc2NzaQorICAgICAocmVwbGFjZSBJRCB3aXRoIHRoZSBTQ1NJLUlEIG9mIHRoZSBkZXZpY2UpCisgIDIpIGJvb3QgdGhlIGtlcm5lbCB3aXRoICJtYXhfc2NzaV9sdW5zPTEiIG9uIHRoZSBjb21tYW5kIGxpbmUKKyAgICAgKGFwcGVuZD0ibWF4X3Njc2lfbHVucz0xIiBpbiBsaWxvLmNvbmYgc2hvdWxkIGRvIHRoZSB0cmljaykKKworCitUcm91YmxlPworLS0tLS0tLS0KKworSWYgeW91IGluc21vZCB0aGUgZHJpdmVyIHdpdGggImluc21vZCBkZWJ1Zz0xIiwgaXQgd2lsbCBiZSB2ZXJib3NlIGFuZAorcHJpbnRzIGEgbG90IG9mIHN0dWZmIHRvIHRoZSBzeXNsb2cuICBDb21waWxpbmcgdGhlIGtlcm5lbCB3aXRoCitDT05GSUdfU0NTSV9DT05TVEFOVFM9eSBpbXByb3ZlcyB0aGUgcXVhbGl0eSBvZiB0aGUgZXJyb3IgbWVzc2FnZXMgYWxvdAorYmVjYXVzZSB0aGUga2VybmVsIHdpbGwgdHJhbnNsYXRlIHRoZSBlcnJvciBjb2RlcyBpbnRvIGh1bWFuLXJlYWRhYmxlCitzdHJpbmdzIHRoZW4uCisKK1lvdSBjYW4gZGlzcGxheSB0aGVzZSBtZXNzYWdlcyB3aXRoIHRoZSBkbWVzZyBjb21tYW5kIChvciBjaGVjayB0aGUKK2xvZ2ZpbGVzKS4gIElmIHlvdSBlbWFpbCBtZSBzb21lIHF1ZXN0aW9uIGJlY2F1Y2Ugb2YgYSBwcm9ibGVtIHdpdGggdGhlCitkcml2ZXIsIHBsZWFzZSBpbmNsdWRlIHRoZXNlIG1lc3NhZ2VzLgorCisKK0luc21vZCBvcHRpb25zCistLS0tLS0tLS0tLS0tLQorCitkZWJ1Zz0wLzEKKwlFbmFibGUgZGVidWcgbWVzc2FnZXMgKHNlZSBhYm92ZSwgZGVmYXVsdDogMCkuCisKK3ZlcmJvc2U9MC8xCisJQmUgdmVyYm9zZSAoZGVmYXVsdDogMSkuCisKK2luaXQ9MC8xCisJU2VuZCBJTklUSUFMSVpFIEVMRU1FTlQgU1RBVFVTIGNvbW1hbmQgdG8gdGhlIGNoYW5nZXIKKwlhdCBpbnNtb2QgdGltZSAoZGVmYXVsdDogMSkuCisKK3RpbWVvdXRfaW5pdD08c2Vjb25kcz4KKwl0aW1lb3V0IGZvciB0aGUgSU5JVElBTElaRSBFTEVNRU5UIFNUQVRVUyBjb21tYW5kCisJKGRlZmF1bHQ6IDM2MDApLgorCit0aW1lb3V0X21vdmU9PHNlY29uZHM+CisJdGltZW91dCBmb3IgYWxsIG90aGVyIGNvbW1hbmRzIChkZWZhdWx0OiAxMjApLgorCitkdF9pZD08aWQxPiw8aWQyPiwuLi4KK2R0X2x1bj08bHVuMT4sPGx1bjI+LC4uLgorCVRoZXNlIHR3byBhbGxvdyB0byBzcGVjaWZ5IHRoZSBTQ1NJIElEIGFuZCBMVU4gZm9yIHRoZSBkYXRhCisJdHJhbnNmZXIgZWxlbWVudHMuICBZb3UgbGlrZWx5IGRvbid0IG5lZWQgdGhpcyBhcyB0aGUganVrZWJveAorCXNob3VsZCBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24uICBCdXQgc29tZSBkZXZpY2VzIGRvbid0IC4uLgorCit2ZW5kb3JfZmlyc3RzPQordmVuZG9yX2NvdW50cz0KK3ZlbmRvcl9sYWJlbHM9CisJVGhlc2UgaW5zbW9kIG9wdGlvbnMgY2FuIGJlIHVzZWQgdG8gdGVsbCB0aGUgZHJpdmVyIHRoYXQgdGhlcmUKKwlhcmUgc29tZSB2ZW5kb3Itc3BlY2lmaWMgZWxlbWVudCB0eXBlcy4gIEdydW5kaWcgZm9yIGV4YW1wbGUKKwlkb2VzIHRoaXMuICBTb21lIGp1a2Vib3hlcyBoYXZlIGEgcHJpbnRlciB0byBsYWJlbCBmcmVzaCBidXJuZWQKKwlDRHMsIHdoaWNoIGlzIGFkZHJlc3NlZCBhcyBlbGVtZW50IDB4YzAwMCAodHlwZSA1KS4gIFRvIHRlbGwgdGhlCisJZHJpdmVyIGFib3V0IHRoaXMgdmVuZG9yLXNwZWNpZmljIGVsZW1lbnQsIHVzZSB0aGlzOgorCQkkIGluc21vZCBjaAkJCVwKKwkJCXZlbmRvcl9maXJzdHM9MHhjMDAwCVwKKwkJCXZlbmRvcl9jb3VudHM9MQkJXAorCQkJdmVuZG9yX2xhYmVscz1wcmludGVyCisJQWxsIHRocmVlIGluc21vZCBvcHRpb25zIGFjY2VwdCB1cCB0byBmb3VyIGNvbW1hLXNlcGFyYXRlZAorCXZhbHVlcywgdGhpcyB3YXkgeW91IGNhbiBjb25maWd1cmUgdGhlIGVsZW1lbnQgdHlwZXMgNS04LgorCVlvdSBsaWtlbHkgbmVlZCB0aGUgU0NTSSBzcGVjcyBmb3IgdGhlIGRldmljZSBpbiBxdWVzdGlvbiB0bworCWZpbmQgdGhlIGNvcnJlY3QgdmFsdWVzIGFzIHRoZXkgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoZSBTQ1NJLTIKKwlzdGFuZGFyZC4KKworCitDcmVkaXRzCistLS0tLS0tCisKK0kgd3JvdGUgdGhpcyBkcml2ZXIgdXNpbmcgdGhlIGZhbW91cyBtYWlsaW5nLXBhdGNoZXMtYXJvdW5kLXRoZS13b3JsZAorbWV0aG9kLiAgV2l0aCAobW9yZSBvciBsZXNzKSBoZWxwIGZyb206CisKKwlEYW5pZWwgTW9laHdhbGQgPG1vZWh3YWxkQGhkZy5kZT4KKwlEYW5lIEphc3BlciA8ZGFuZUBzb25pYy5uZXQ+CisJUi4gU2NvdHQgQmFpbGV5IDxzYmFpbGV5QGRzZGRpLmVkcy5jb20+CisJSm9uYXRoYW4gQ29yYmV0IDxjb3JiZXRAbHduLm5ldD4KKworU3BlY2lhbCB0aGFua3MgZ28gdG8KKwlNYXJ0aW4gS3VlaG5lIDxtYXJ0aW4ua3VlaG5lQGJuYnQuZGU+Citmb3IgYSBvbGQsIHNlY29uZC1oYW5kIChidXQgZnVsbCBmdW5jdGlvbmFsKSBjZHJvbSBqdWtlYm94IHdoaWNoIEkgdXNlCit0byBkZXZlbG9wL3Rlc3QgZHJpdmVyIGFuZCB0b29scyBub3cuCisKK0hhdmUgZnVuLAorCisgICBHZXJkCisKKy0tIAorR2VyZCBLbm9yciA8a3JheGVsQGJ5dGVzZXgub3JnPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9zY3NpL3Njc2lfbWlkX2xvd19hcGkudHh0IGIvRG9jdW1lbnRhdGlvbi9zY3NpL3Njc2lfbWlkX2xvd19hcGkudHh0CmluZGV4IGU0MTcwM2QuLmRhMTc2YzkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vc2NzaS9zY3NpX21pZF9sb3dfYXBpLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3Njc2kvc2NzaV9taWRfbG93X2FwaS50eHQKQEAgLTkzNiw4ICs5MzYsNyBAQAogICoKICAqICAgICAgUmV0dXJucyBTVUNDRVNTIGlmIGNvbW1hbmQgYWJvcnRlZCBlbHNlIEZBSUxFRAogICoKLSAqICAgICAgTG9ja3M6IHN0cnVjdCBTY3NpX0hvc3Q6Omhvc3RfbG9jayBoZWxkICh3aXRoIGlycXNhdmUpIG9uIGVudHJ5IAotICogICAgICBhbmQgYXNzdW1lZCB0byBiZSBoZWxkIG9uIHJldHVybi4KKyAqICAgICAgTG9ja3M6IE5vbmUgaGVsZAogICoKICAqICAgICAgQ2FsbGluZyBjb250ZXh0OiBrZXJuZWwgdGhyZWFkCiAgKgpAQCAtOTU1LDggKzk1NCw3IEBACiAgKgogICogICAgICBSZXR1cm5zIFNVQ0NFU1MgaWYgY29tbWFuZCBhYm9ydGVkIGVsc2UgRkFJTEVECiAgKgotICogICAgICBMb2Nrczogc3RydWN0IFNjc2lfSG9zdDo6aG9zdF9sb2NrIGhlbGQgKHdpdGggaXJxc2F2ZSkgb24gZW50cnkgCi0gKiAgICAgIGFuZCBhc3N1bWVkIHRvIGJlIGhlbGQgb24gcmV0dXJuLgorICogICAgICBMb2NrczogTm9uZSBoZWxkCiAgKgogICogICAgICBDYWxsaW5nIGNvbnRleHQ6IGtlcm5lbCB0aHJlYWQKICAqCkBAIC05NzQsOCArOTcyLDcgQEAKICAqCiAgKiAgICAgIFJldHVybnMgU1VDQ0VTUyBpZiBjb21tYW5kIGFib3J0ZWQgZWxzZSBGQUlMRUQKICAqCi0gKiAgICAgIExvY2tzOiBzdHJ1Y3QgU2NzaV9Ib3N0Ojpob3N0X2xvY2sgaGVsZCAod2l0aCBpcnFzYXZlKSBvbiBlbnRyeQotICogICAgICBhbmQgYXNzdW1lZCB0byBiZSBoZWxkIG9uIHJldHVybi4KKyAqICAgICAgTG9ja3M6IE5vbmUgaGVsZAogICoKICAqICAgICAgQ2FsbGluZyBjb250ZXh0OiBrZXJuZWwgdGhyZWFkCiAgKgpAQCAtOTkzLDggKzk5MCw3IEBACiAgKgogICogICAgICBSZXR1cm5zIFNVQ0NFU1MgaWYgY29tbWFuZCBhYm9ydGVkIGVsc2UgRkFJTEVECiAgKgotICogICAgICBMb2Nrczogc3RydWN0IFNjc2lfSG9zdDo6aG9zdF9sb2NrIGhlbGQgKHdpdGggaXJxc2F2ZSkgb24gZW50cnkKLSAqICAgICAgYW5kIGFzc3VtZWQgdG8gYmUgaGVsZCBvbiByZXR1cm4uCisgKiAgICAgIExvY2tzOiBOb25lIGhlbGQKICAqCiAgKiAgICAgIENhbGxpbmcgY29udGV4dDoga2VybmVsIHRocmVhZAogICoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggNjVhZDgyNS4uODZiYTk0ZiAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTczLDcgKzczLDcgQEAKIDNDMzU5IE5FVFdPUksgRFJJVkVSCiBQOglNaWtlIFBoaWxsaXBzCiBNOgltaWtlcEBsaW51eHRyLm5ldAotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBMOglsaW51eC10ckBsaW51eHRyLm5ldAogVzoJaHR0cDovL3d3dy5saW51eHRyLm5ldAogUzoJTWFpbnRhaW5lZApAQCAtODEsMTMgKzgxLDEzIEBACiAzQzUwNSBORVRXT1JLIERSSVZFUgogUDoJUGhpbGlwIEJsdW5kZWxsCiBNOglwaGlsYkBnbnUub3JnCi1MOgluZXRkZXZAb3NzLnNnaS5jb20KK0w6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIAogM0NSOTkwIE5FVFdPUksgRFJJVkVSCiBQOglEYXZpZCBEaWxsb3cKIE06CWRhdmVAdGhlZGlsbG93cy5vcmcKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiAzVy1YWFhYIEFUQS1SQUlEIENPTlRST0xMRVIgRFJJVkVSCkBAIC0xMzAsNyArMTMwLDcgQEAKIDgxNjkgMTAvMTAwLzEwMDAgR0lHQUJJVCBFVEhFUk5FVCBEUklWRVIKIFA6CUZyYW5jb2lzIFJvbWlldQogTToJcm9taWV1QGZyLnpvcmVpbC5jb20KLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiA4MjUwLzE2PzUwIChBTkQgQ0xPTkUgVUFSVFMpIFNFUklBTCBEUklWRVIKQEAgLTE0Myw3ICsxNDMsNyBAQAogODM5MCBORVRXT1JLIERSSVZFUlMgW1dEODB4My9TTUMtRUxJVEUsIFNNQy1VTFRSQSwgTkUyMDAwLCAzQzUwMywgZXRjLl0KIFA6CVBhdWwgR29ydG1ha2VyCiBNOglwX2dvcnRtYWtlckB5YWhvby5jb20KLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBBMjIzMiBTRVJJQUwgQk9BUkQgRFJJVkVSCkBAIC0zMzIsNyArMzMyLDcgQEAKIAogQVJQRCBTVVBQT1JUCiBQOglKb25hdGhhbiBMYXllcwotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIEFTVVMgQUNQSSBFWFRSQVMgRFJJVkVSCkBAIC03MDYsNyArNzA2LDcgQEAKIAogRElHSSBSSUdIVFNXSVRDSCBORVRXT1JLIERSSVZFUgogUDoJUmljayBSaWNoYXJkc29uCi1MOgluZXRkZXZAb3NzLnNnaS5jb20KK0w6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFc6CWh0dHA6Ly93d3cuZGlnaS5jb20KIFM6CU9ycGhhbmVkCiAKQEAgLTgxMiw3ICs4MTIsNyBAQAogRVRIRVJFWFBSRVNTLTE2IE5FVFdPUksgRFJJVkVSCiBQOglQaGlsaXAgQmx1bmRlbGwKIE06CXBoaWxiQGdudS5vcmcKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBFVEhFUk5FVCBCUklER0UKQEAgLTg3NSw3ICs4NzUsNyBAQAogRlJBTUUgUkVMQVkgRExDSS9GUkFEIChTYW5nb21hIGRyaXZlcnMgdG9vKQogUDoJTWlrZSBNY0xhZ2FuCiBNOgltaWtlLm1jbGFnYW5AbGludXgub3JnCi1MOgluZXRkZXZAb3NzLnNnaS5jb20KK0w6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIAogRlJFRVZYRlMgRklMRVNZU1RFTQpAQCAtMTIxNSw3ICsxMjE1LDcgQEAKIElQWCBORVRXT1JLIExBWUVSCiBQOglBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8KIE06CWFjbWVAY29uZWN0aXZhLmNvbS5icgotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIElSREEgU1VCU1lTVEVNCkBAIC0xNDgyLDcgKzE0ODIsNyBAQAogUDoJTWFuaXNoIExhY2h3YW5pCiBNOglNYW5pc2hfTGFjaHdhbmlAcG1jLXNpZXJyYS5jb20KIEw6CWxpbnV4LW1pcHNAbGludXgtbWlwcy5vcmcKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJU3VwcG9ydGVkCiAKIE1BVFJPWCBGUkFNRUJVRkZFUiBEUklWRVIKQEAgLTE1OTIsMTMgKzE1OTIsMTMgQEAKIE06CWFrcG1Ab3NkbC5vcmcKIFA6CUplZmYgR2FyemlrCiBNOglqZ2FyemlrQHBvYm94LmNvbQotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIE5FVFdPUktJTkcgW0dFTkVSQUxdCiBQOglOZXR3b3JraW5nIFRlYW0KLU06CW5ldGRldkBvc3Muc2dpLmNvbQotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitNOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIE5FVFdPUktJTkcgW0lQdjQvSVB2Nl0KQEAgLTE2MTQsNyArMTYxNCw3IEBACiBNOgl5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZwogUDoJUGF0cmljayBNY0hhcmR5CiBNOglrYWJlckBjb3Jld29ya3MuZGUKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBJUFZTCkBAIC0xNjM0LDcgKzE2MzQsNyBAQAogUDoJSmFuLVBhc2NhbCB2YW4gQmVzdCBhbmQgQW5kcmVhcyBNb2hyCiBNOglKYW4tUGFzY2FsIHZhbiBCZXN0IDxqdmJlc3RAcXYzcGx1dG8ubGVpZGVudW5pdi5ubD4KIE06CUFuZHJlYXMgTW9ociA8MTAwLjMwOTM2QGdlcm1hbnkubmV0PgotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIE5JTkpBIFNDU0ktMyAvIE5JTkpBIFNDU0ktMzJCaSAoMTZiaXQvQ2FyZEJ1cykgUENNQ0lBIFNDU0kgSE9TVCBBREFQVEVSIERSSVZFUgpAQCAtMTY3Niw3ICsxNjc2LDcgQEAKIE06CXAyQGFjZS51bHlzc2lzLnN0dWRlbnQua3VsZXV2ZW4uYWMuYmUKIFA6CU1pa2UgUGhpbGxpcHMKIE06CW1pa2VwQGxpbnV4dHIubmV0IAotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBMOglsaW51eC10ckBsaW51eHRyLm5ldAogVzoJaHR0cDovL3d3dy5saW51eHRyLm5ldAogUzoJTWFpbnRhaW5lZApAQCAtMTc4Myw3ICsxNzgzLDcgQEAKIFBDTkVUMzIgTkVUV09SSyBEUklWRVIKIFA6CVRob21hcyBCb2dlbmT2cmZlcgogTToJdHNib2dlbmRAYWxwaGEuZnJhbmtlbi5kZQotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIFBIUkFNIE1URCBEUklWRVIKQEAgLTE3OTUsNyArMTc5NSw3IEBACiBQT1NJWCBDTE9DS1MgYW5kIFRJTUVSUwogUDoJR2VvcmdlIEFuemluZ2VyCiBNOglnZW9yZ2VAbXZpc3RhLmNvbQotTDoJbmV0ZGV2QG9zcy5zZ2kuY29tCitMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglTdXBwb3J0ZWQKIAogUE5QIFNVUFBPUlQKQEAgLTE4MzAsNyArMTgzMCw3IEBACiBQUklTTTU0IFdJUkVMRVNTIERSSVZFUgogUDoJUHJpc201NCBEZXZlbG9wbWVudCBUZWFtCiBNOglwcmlzbTU0LXByaXZhdGVAcHJpc201NC5vcmcKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogVzoJaHR0cDovL3ByaXNtNTQub3JnCiBTOglNYWludGFpbmVkCiAKQEAgLTIwNDcsNyArMjA0Nyw3IEBACiBQOglEYW5pZWxlIFZlbnphbm8KIE06CXZlbnphQGJyb3duaGF0Lm9yZwogVzoJaHR0cDovL3d3dy5icm93bmhhdC5vcmcvc2lzOTAwLmh0bWwKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBTSVMgRlJBTUVCVUZGRVIgRFJJVkVSCkBAIC0yMTA2LDcgKzIxMDYsNyBAQAogU09OSUMgTkVUV09SSyBEUklWRVIKIFA6CVRob21hcyBCb2dlbmRvZXJmZXIKIE06CXRzYm9nZW5kQGFscGhhLmZyYW5rZW4uZGUKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBTT05ZIFZBSU8gQ09OVFJPTCBERVZJQ0UgRFJJVkVSCkBAIC0yMTYzLDcgKzIxNjMsNyBAQAogU1BYIE5FVFdPUksgTEFZRVIKIFA6CUpheSBTY2h1bGlzdAogTToJanNjaGxzdEBzYW1iYS5vcmcKLUw6CW5ldGRldkBvc3Muc2dpLmNvbQorTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwogUzoJU3VwcG9ydGVkCiAKIFNSTSAoQWxwaGEpIGVudmlyb25tZW50IGFjY2VzcwpAQCAtMjI0Miw3ICsyMjQyLDcgQEAKIFRPS0VOLVJJTkcgTkVUV09SSyBEUklWRVIKIFA6CU1pa2UgUGhpbGxpcHMKIE06CW1pa2VwQGxpbnV4dHIubmV0Ci1MOgluZXRkZXZAb3NzLnNnaS5jb20KK0w6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIEw6CWxpbnV4LXRyQGxpbnV4dHIubmV0CiBXOglodHRwOi8vd3d3LmxpbnV4dHIubmV0CiBTOglNYWludGFpbmVkCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IGMxMWEzMTcuLjBkMWU3NGQgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEsNyBAQAogVkVSU0lPTiA9IDIKIFBBVENITEVWRUwgPSA2CiBTVUJMRVZFTCA9IDEyCi1FWFRSQVZFUlNJT04gPS1yYzUKK0VYVFJBVkVSU0lPTiA9CiBOQU1FPVdvb3p5IE51bWJhdAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vS2NvbmZpZyBiL2FyY2gvYXJtL0tjb25maWcKaW5kZXggYmYzOTdhOS4uNDc1OTUwYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vS2NvbmZpZworKysgYi9hcmNoL2FybS9LY29uZmlnCkBAIC00OTcsNyArNDk3LDcgQEAKIAogY29uZmlnIENQVV9GUkVRX1NBMTEwMAogCWJvb2wKLQlkZXBlbmRzIG9uIENQVV9GUkVRICYmIChTQTExMDBfTEFSVCB8fCBTQTExMDBfUExFQikKKwlkZXBlbmRzIG9uIENQVV9GUkVRICYmIChTQTExMDBfSDMxMDAgfHwgU0ExMTAwX0gzNjAwIHx8IFNBMTEwMF9IMzgwMCB8fCBTQTExMDBfTEFSVCB8fCBTQTExMDBfUExFQiB8fCBTQTExMDBfQkFER0U0IHx8IFNBMTEwMF9IQUNLS0lUKQogCWRlZmF1bHQgeQogCiBjb25maWcgQ1BVX0ZSRVFfU0ExMTEwCkBAIC02ODksNyArNjg5LDkgQEAKIAogc291cmNlICJkcml2ZXJzL2Fjb3JuL2Jsb2NrL0tjb25maWciCiAKLWlmIEFSQ0hfQ0xQUzc1MDAgfHwgQVJDSF9JT1AzWFggfHwgQVJDSF9JWFA0WFggfHwgQVJDSF9MNzIwMCB8fCBBUkNIX0xIN0E0MFggfHwgQVJDSF9QWEEgfHwgQVJDSF9SUEMgfHwgQVJDSF9TM0MyNDEwIHx8IEFSQ0hfU0ExMTAwIHx8IEFSQ0hfU0hBUksgfHwgRk9PVEJSSURHRQoraWYgUENNQ0lBIHx8IEFSQ0hfQ0xQUzc1MDAgfHwgQVJDSF9JT1AzWFggfHwgQVJDSF9JWFA0WFggXAorCXx8IEFSQ0hfTDcyMDAgfHwgQVJDSF9MSDdBNDBYIHx8IEFSQ0hfUFhBIHx8IEFSQ0hfUlBDIFwKKwl8fCBBUkNIX1MzQzI0MTAgfHwgQVJDSF9TQTExMDAgfHwgQVJDSF9TSEFSSyB8fCBGT09UQlJJREdFCiBzb3VyY2UgImRyaXZlcnMvaWRlL0tjb25maWciCiBlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC14c2NhbGUuUyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLXhzY2FsZS5TCmluZGV4IDY2NWJkMmMuLmQzZmUyNTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLXhzY2FsZS5TCisrKyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLXhzY2FsZS5TCkBAIC00NywzICs0NywxMCBAQAogICAgICAgICAgICAgICAgb3JyICAgICByNywgcjcsICMoTUFDSF9UWVBFX0dUV1g1NzE1ICYgMHhmZjAwKQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfQVJDSF9JWFAyMDAwCisJCW1vdglyMSwgIy0xCisJCW1vdglyMCwgIzB4ZDYwMDAwMDAKKwkJc3RyCXIxLCBbcjAsICMweDE0XQorCQlzdHIJcjEsIFtyMCwgIzB4MThdCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9iYWRnZTRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9iYWRnZTRfZGVmY29uZmlnCmluZGV4IDJiNDA1OWQuLjVkOTJhZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYmFkZ2U0X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2JhZGdlNF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmMxLWJrMgotIyBTYXQgTWFyIDI2IDIxOjMyOjI2IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtZ2l0MworIyBUaHUgSnVuICA5IDE5OjAwOjUwIDIwMDUKICMKIENPTkZJR19BUk09eQogQ09ORklHX01NVT15CkBAIC0xNiw2ICsxNiw3IEBACiBDT05GSUdfRVhQRVJJTUVOVEFMPXkKIENPTkZJR19DTEVBTl9DT01QSUxFPXkKIENPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIAogIwogIyBHZW5lcmFsIHNldHVwCkBAIC0zNCw2ICszNSw4IEBACiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19FUE9MTD15CkBAIC0xMDksNyArMTEyLDYgQEAKIENPTkZJR19DUFVfQ0FDSEVfVjRXQj15CiBDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQogQ09ORklHX0NQVV9UTEJfVjRXQj15Ci1DT05GSUdfQ1BVX01JTklDQUNIRT15CiAKICMKICMgUHJvY2Vzc29yIEZlYXR1cmVzCkBAIC0xMjIsNiArMTI0LDcgQEAKICMgQnVzIHN1cHBvcnQKICMKIENPTkZJR19JU0E9eQorQ09ORklHX0lTQV9ETUFfQVBJPXkKIAogIwogIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0CkBAIC0xMzEsNiArMTM0LDcgQEAKICMKICMgS2VybmVsIEZlYXR1cmVzCiAjCisjIENPTkZJR19TTVAgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CiBDT05GSUdfRElTQ09OVElHTUVNPXkKICMgQ09ORklHX0xFRFMgaXMgbm90IHNldApAQCAtMTUyLDEyICsxNTYsMTQgQEAKICMgQ09ORklHX0NQVV9GUkVRX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9TVEFUPXkKICMgQ09ORklHX0NQVV9GUkVRX1NUQVRfREVUQUlMUyBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0U9eQogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX1NBMTEwMD15CiAKICMKICMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCkBAIC0yOTQsNyArMzAwLDYgQEAKICMKICMgQmxvY2sgZGV2aWNlcwogIwotIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX1hEIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBUklERSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldApAQCAtNDI4LDcgKzQzMyw2IEBACiAjCiBDT05GSUdfUEFDS0VUPXkKICMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVExJTktfREVWIGlzIG5vdCBzZXQKIENPTkZJR19VTklYPXkKICMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQpAQCAtNTI2LDYgKzUzMCw3IEBACiAjIENPTkZJR19TTUNfSVJDQ19GSVIgaXMgbm90IHNldAogIyBDT05GSUdfQUxJX0ZJUiBpcyBub3Qgc2V0CiBDT05GSUdfU0ExMTAwX0ZJUj15CisjIENPTkZJR19WSUFfRklSIGlzIG5vdCBzZXQKIENPTkZJR19CVD1tCiBDT05GSUdfQlRfTDJDQVA9bQogIyBDT05GSUdfQlRfU0NPIGlzIG5vdCBzZXQKQEAgLTYxOCw3ICs2MjMsNiBAQAogIwogIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpAQCAtNjg3LDcgKzY5MSw2IEBACiAjCiAjIFRQTSBkZXZpY2VzCiAjCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIAogIwogIyBJMkMgc3VwcG9ydApAQCAtNzM2LDYgKzczOSw3IEBACiAjIENPTkZJR19TRU5TT1JTX0xNODUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTg3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE05MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldApAQCAtNzQ3LDYgKzc1MSw3IEBACiAjCiAjIE90aGVyIEkyQyBDaGlwIHN1cHBvcnQKICMKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldApAQCAtODcxLDcgKzg3Niw2IEBACiAjCiBDT05GSUdfVVNCX1NUT1JBR0U9eQogQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHPXkKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1JXX0RFVEVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKQEAgLTk1NCw5ICs5NTgsMTEgQEAKICMKIENPTkZJR19VU0JfU0VSSUFMPW0KIENPTkZJR19VU0JfU0VSSUFMX0dFTkVSSUM9eQorIyBDT05GSUdfVVNCX1NFUklBTF9BSVJQUklNRSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NFUklBTF9CRUxLSU49bQogQ09ORklHX1VTQl9TRVJJQUxfV0hJVEVIRUFUPW0KIENPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVD1tCisjIENPTkZJR19VU0JfU0VSSUFMX0NQMjEwMSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTggaXMgbm90IHNldAogQ09ORklHX1VTQl9TRVJJQUxfRU1QRUc9bQogQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU89bQpAQCAtOTg1LDYgKzk5MSw3IEBACiAjIENPTkZJR19VU0JfU0VSSUFMX0tPQklMX1NDVCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NFUklBTF9NQ1RfVTIzMj1tCiBDT05GSUdfVVNCX1NFUklBTF9QTDIzMDM9bQorIyBDT05GSUdfVVNCX1NFUklBTF9IUDRYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TRVJJQUxfU0FGRSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX1RJIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfU0VSSUFMX0NZQkVSSkFDSz1tCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2gzNjAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaDM2MDBfZGVmY29uZmlnCmluZGV4IGI0ZTI5N2QuLmI5ZGUwN2QgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaDM2MDBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaDM2MDBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjMS1iazIKLSMgTW9uIE1hciAyOCAwMDowMjoyNiAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM0CisjIFRodSBKdW4gIDkgMDE6NTk6MDMgMjAwNQogIwogQ09ORklHX0FSTT15CiBDT05GSUdfTU1VPXkKQEAgLTE2LDYgKzE2LDcgQEAKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0NMRUFOX0NPTVBJTEU9eQogQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTMzLDYgKzM0LDggQEAKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtMTIwLDYgKzEyMyw3IEBACiAjIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSVNBPXkKK0NPTkZJR19JU0FfRE1BX0FQST15CiAKICMKICMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydApAQCAtMTM4LDYgKzE0Miw3IEBACiAjCiAjIEtlcm5lbCBGZWF0dXJlcwogIworIyBDT05GSUdfU01QIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAogQ09ORklHX0RJU0NPTlRJR01FTT15CiAjIENPTkZJR19MRURTIGlzIG5vdCBzZXQKQEAgLTE1OSwxMiArMTY0LDEzIEBACiAjIENPTkZJR19DUFVfRlJFUV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfU1RBVD15CiAjIENPTkZJR19DUFVfRlJFUV9TVEFUX0RFVEFJTFMgaXMgbm90IHNldAotQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFPXkKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfR09WX1VTRVJTUEFDRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfT05ERU1BTkQgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX1NBMTEwMD15CiAKICMKICMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCkBAIC0yOTgsNyArMzA0LDYgQEAKICMKICMgQmxvY2sgZGV2aWNlcwogIwotIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX1hEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9MT09QPW0KQEAgLTM3OSw3ICszODQsNiBAQAogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKICMgQ09ORklHX1BBQ0tFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRMSU5LX0RFViBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWD15CiAjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKQEAgLTQ3Niw2ICs0ODAsNyBAQAogIyBDT05GSUdfU01DX0lSQ0NfRklSIGlzIG5vdCBzZXQKICMgQ09ORklHX0FMSV9GSVIgaXMgbm90IHNldAogQ09ORklHX1NBMTEwMF9GSVI9bQorIyBDT05GSUdfVklBX0ZJUiBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUREVWSUNFUz15CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CkBAIC02NDcsNyArNjUyLDYgQEAKICMKICMgVFBNIGRldmljZXMKICMKLSMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogCiAjCiAjIEkyQyBzdXBwb3J0CkBAIC02NzYsOSArNjgwLDExIEBACiBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKIENPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKIENPTkZJR19GQl9TT0ZUX0NVUlNPUj15CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9NT0RFX0hFTFBFUlMgaXMgbm90IHNldAogIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKIENPTkZJR19GQl9TQTExMDA9eQorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaGFja2tpdF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2hhY2traXRfZGVmY29uZmlnCmluZGV4IDY5ODdjOGMuLmZiNDFhMzYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaGFja2tpdF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9oYWNra2l0X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzEtYmsyCi0jIE1vbiBNYXIgMjggMDA6MjI6MzQgMjAwNQorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjNi1naXQzCisjIFRodSBKdW4gIDkgMjA6NTg6NTggMjAwNQogIwogQ09ORklHX0FSTT15CiBDT05GSUdfTU1VPXkKQEAgLTE2LDYgKzE2LDcgQEAKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0NMRUFOX0NPTVBJTEU9eQogQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTM0LDYgKzM1LDggQEAKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTEwOSw3ICsxMTIsNiBAQAogQ09ORklHX0NQVV9DQUNIRV9WNFdCPXkKIENPTkZJR19DUFVfQ0FDSEVfVklWVD15CiBDT05GSUdfQ1BVX1RMQl9WNFdCPXkKLUNPTkZJR19DUFVfTUlOSUNBQ0hFPXkKIAogIwogIyBQcm9jZXNzb3IgRmVhdHVyZXMKQEAgLTExOSw2ICsxMjEsNyBAQAogIyBCdXMgc3VwcG9ydAogIwogQ09ORklHX0lTQT15CitDT05GSUdfSVNBX0RNQV9BUEk9eQogCiAjCiAjIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKQEAgLTEyOCw2ICsxMzEsNyBAQAogIwogIyBLZXJuZWwgRmVhdHVyZXMKICMKKyMgQ09ORklHX1NNUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKIENPTkZJR19ESVNDT05USUdNRU09eQogQ09ORklHX0xFRFM9eQpAQCAtMTUxLDEyICsxNTUsMTQgQEAKICMgQ09ORklHX0NQVV9GUkVRX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9TVEFUPXkKICMgQ09ORklHX0NQVV9GUkVRX1NUQVRfREVUQUlMUyBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0U9eQogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX1NBMTEwMD15CiAKICMKICMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCkBAIC0yODAsNyArMjg2LDYgQEAKICMKICMgQmxvY2sgZGV2aWNlcwogIwotIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX1hEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldApAQCAtMzM4LDcgKzM0Myw2IEBACiAjCiBDT05GSUdfUEFDS0VUPXkKICMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVExJTktfREVWIGlzIG5vdCBzZXQKIENPTkZJR19VTklYPXkKICMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQpAQCAtNDg0LDcgKzQ4OCw2IEBACiBDT05GSUdfU0VSSU9fU0VSUE9SVD15CiAjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpAQCAtNTMzLDcgKzUzNiw2IEBACiAjCiAjIFRQTSBkZXZpY2VzCiAjCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIAogIwogIyBJMkMgc3VwcG9ydApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUyBiL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1hcm12LlMKaW5kZXggNGViMzYxNS4uZTE0Mjc4ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUworKysgYi9hcmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TCkBAIC0yNjksNyArMjY5LDcgQEAKIAlhZGQJcjUsIHNwLCAjU19QQwogCWxkbWlhCXI3LCB7cjIgLSByNH0JCQlAIEdldCBVU1IgcGMsIGNwc3IKIAotI2lmIF9fTElOVVhfQVJNX0FSQ0hfXyA8IDYKKyNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPCA2ICYmICFkZWZpbmVkKENPTkZJR19ORUVEU19TWVNDQUxMX0ZPUl9DTVBYQ0hHKQogCUAgbWFrZSBzdXJlIG91ciB1c2VyIHNwYWNlIGF0b21pYyBoZWxwZXIgaXMgYWJvcnRlZAogCWNtcAlyMiwgI1ZJUlRfT0ZGU0VUCiAJYmljaHMJcjMsIHIzLCAjUFNSX1pfQklUCkBAIC02MTYsMTEgKzYxNiwxNyBAQAogCiBfX2t1c2VyX2NtcHhjaGc6CQkJCUAgMHhmZmZmMGZjMAogCi0jaWYgX19MSU5VWF9BUk1fQVJDSF9fIDwgNgorI2lmIGRlZmluZWQoQ09ORklHX05FRURTX1NZU0NBTExfRk9SX0NNUFhDSEcpCiAKLSNpZmRlZiBDT05GSUdfU01QICAvKiBzYW5pdHkgY2hlY2sgKi8KLSNlcnJvciAiQ09ORklHX1NNUCBvbiBhIG1hY2hpbmUgc3VwcG9ydGluZyBwcmUtQVJNdjYgcHJvY2Vzc29ycz8iCi0jZW5kaWYKKwkvKgorCSAqIFBvb3IgeW91LiAgTm8gZmFzdCBzb2x1dGlvbiBwb3NzaWJsZS4uLgorCSAqIFRoZSBrZXJuZWwgaXRzZWxmIG11c3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uLgorCSAqIEEgc3BlY2lhbCBnaG9zdCBzeXNjYWxsIGlzIHVzZWQgZm9yIHRoYXQgKHNlZSB0cmFwcy5jKS4KKwkgKi8KKwlzd2kJIzB4OWZmZmYwCisJbW92CXBjLCBscgorCisjZWxpZiBfX0xJTlVYX0FSTV9BUkNIX18gPCA2CiAKIAkvKgogCSAqIFRoZW9yeSBvZiBvcGVyYXRpb246CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvYXJtL2tlcm5lbC90cmFwcy5jCmluZGV4IDE0ZGYxNmIuLjQ1ZDJhMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC90cmFwcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC90cmFwcy5jCkBAIC00NjQsNiArNDY0LDU1IEBACiAjZW5kaWYKIAkJcmV0dXJuIDA7CiAKKyNpZmRlZiBDT05GSUdfTkVFRFNfU1lTQ0FMTF9GT1JfQ01QWENIRworCS8qCisJICogQXRvbWljYWxseSBzdG9yZSByMSBpbiAqcjIgaWYgKnIyIGlzIGVxdWFsIHRvIHIwIGZvciB1c2VyIHNwYWNlLgorCSAqIFJldHVybiB6ZXJvIGluIHIwIGlmICpNRU0gd2FzIGNoYW5nZWQgb3Igbm9uLXplcm8gaWYgbm8gZXhjaGFuZ2UKKwkgKiBoYXBwZW5lZC4gIEFsc28gc2V0IHRoZSB1c2VyIEMgZmxhZyBhY2NvcmRpbmdseS4KKwkgKiBJZiBhY2Nlc3MgcGVybWlzc2lvbnMgaGF2ZSB0byBiZSBmaXhlZCB1cCB0aGVuIG5vbi16ZXJvIGlzCisJICogcmV0dXJuZWQgYW5kIHRoZSBvcGVyYXRpb24gaGFzIHRvIGJlIHJlLWF0dGVtcHRlZC4KKwkgKgorCSAqICpOT1RFKjogVGhpcyBpcyBhIGdob3N0IHN5c2NhbGwgcHJpdmF0ZSB0byB0aGUga2VybmVsLiAgT25seSB0aGUKKwkgKiBfX2t1c2VyX2NtcHhjaGcgY29kZSBpbiBlbnRyeS1hcm12LlMgc2hvdWxkIGJlIGF3YXJlIG9mIGl0cworCSAqIGV4aXN0ZW5jZS4gIERvbid0IGV2ZXIgdXNlIHRoaXMgZnJvbSB1c2VyIGNvZGUuCisJICovCisJY2FzZSAweGZmZjA6CisJeworCQlleHRlcm4gdm9pZCBkb19EYXRhQWJvcnQodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBpbnQgZnNyLAorCQkJCQkgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworCQl1bnNpZ25lZCBsb25nIHZhbDsKKwkJdW5zaWduZWQgbG9uZyBhZGRyID0gcmVncy0+QVJNX3IyOworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOworCQlwZ2RfdCAqcGdkOyBwbWRfdCAqcG1kOyBwdGVfdCAqcHRlOworCisJCXJlZ3MtPkFSTV9jcHNyICY9IH5QU1JfQ19CSVQ7CisJCXNwaW5fbG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CisJCXBnZCA9IHBnZF9vZmZzZXQobW0sIGFkZHIpOworCQlpZiAoIXBnZF9wcmVzZW50KCpwZ2QpKQorCQkJZ290byBiYWRfYWNjZXNzOworCQlwbWQgPSBwbWRfb2Zmc2V0KHBnZCwgYWRkcik7CisJCWlmICghcG1kX3ByZXNlbnQoKnBtZCkpCisJCQlnb3RvIGJhZF9hY2Nlc3M7CisJCXB0ZSA9IHB0ZV9vZmZzZXRfbWFwKHBtZCwgYWRkcik7CisJCWlmICghcHRlX3ByZXNlbnQoKnB0ZSkgfHwgIXB0ZV93cml0ZSgqcHRlKSkKKwkJCWdvdG8gYmFkX2FjY2VzczsKKwkJdmFsID0gKih1bnNpZ25lZCBsb25nICopYWRkcjsKKwkJdmFsIC09IHJlZ3MtPkFSTV9yMDsKKwkJaWYgKHZhbCA9PSAwKSB7CisJCQkqKHVuc2lnbmVkIGxvbmcgKilhZGRyID0gcmVncy0+QVJNX3IxOworCQkJcmVncy0+QVJNX2Nwc3IgfD0gUFNSX0NfQklUOworCQl9CisJCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKKwkJcmV0dXJuIHZhbDsKKworCQliYWRfYWNjZXNzOgorCQlzcGluX3VubG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CisJCS8qIHNpbXVsYXRlIGEgcmVhZCBhY2Nlc3MgZmF1bHQgKi8KKwkJZG9fRGF0YUFib3J0KGFkZHIsIDE1ICsgKDEgPDwgMTEpLCByZWdzKTsKKwkJcmV0dXJuIC0xOworCX0KKyNlbmRpZgorCiAJZGVmYXVsdDoKIAkJLyogQ2FsbHMgOWYwMHh4Li45ZjA3ZmYgYXJlIGRlZmluZWQgdG8gcmV0dXJuIC1FTk9TWVMKIAkJICAgaWYgbm90IGltcGxlbWVudGVkLCByYXRoZXIgdGhhbiByYWlzaW5nIFNJR0lMTC4gIFRoaXMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9pby13cml0ZXN3LWFybXY0LlMgYi9hcmNoL2FybS9saWIvaW8td3JpdGVzdy1hcm12NC5TCmluZGV4IDZkMWQ3YzIuLjVlMjQwZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9pby13cml0ZXN3LWFybXY0LlMKKysrIGIvYXJjaC9hcm0vbGliL2lvLXdyaXRlc3ctYXJtdjQuUwpAQCAtODcsOSArODcsOSBAQAogCQlzdWJzCXIyLCByMiwgIzIKIAkJb3JyCWlwLCBpcCwgcjMsIHB1c2hfaGJ5dGUxCiAJCXN0cmgJaXAsIFtyMF0KLQkJYnBsCTJiCisJCWJwbAkxYgogCi0zOgkJdHN0CXIyLCAjMQotMjoJCW1vdm5lCWlwLCByMywgbHNyICM4CisJCXRzdAlyMiwgIzEKKzM6CQltb3ZuZQlpcCwgcjMsIGxzciAjOAogCQlzdHJuZWgJaXAsIFtyMF0KIAkJbW92CXBjLCBscgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL2ludGVncmF0b3JfY3AuYyBiL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9pbnRlZ3JhdG9yX2NwLmMKaW5kZXggM2I5NDhlOC4uZTBhMDFlZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL2ludGVncmF0b3JfY3AuYworKysgYi9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvaW50ZWdyYXRvcl9jcC5jCkBAIC04Myw3ICs4Myw2IEBACiAgeyBJT19BRERSRVNTKElOVEVHUkFUT1JfVUFSVDFfQkFTRSksIElOVEVHUkFUT1JfVUFSVDFfQkFTRSwgU1pfNEssICBNVF9ERVZJQ0UgfSwKICB7IElPX0FERFJFU1MoSU5URUdSQVRPUl9EQkdfQkFTRSksICAgSU5URUdSQVRPUl9EQkdfQkFTRSwgICBTWl80SywgIE1UX0RFVklDRSB9LAogIHsgSU9fQUREUkVTUyhJTlRFR1JBVE9SX0dQSU9fQkFTRSksICBJTlRFR1JBVE9SX0dQSU9fQkFTRSwgIFNaXzRLLCAgTVRfREVWSUNFIH0sCi0geyAweGZjOTAwMDAwLCAweGM5MDAwMDAwLCBTWl80SywgTVRfREVWSUNFIH0sCiAgeyAweGZjYTAwMDAwLCAweGNhMDAwMDAwLCBTWl80SywgTVRfREVWSUNFIH0sCiAgeyAweGZjYjAwMDAwLCAweGNiMDAwMDAwLCBTWl80SywgTVRfREVWSUNFIH0sCiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jCmluZGV4IGRkMDEyZDYuLmYyYzllMGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2x1YmJvY2suYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9sdWJib2NrLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9mYi5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtMTA2LDYgKzEwNywzNSBAQAogCXNldF9pcnFfdHlwZShJUlFfR1BJTygwKSwgSVJRVF9GQUxMSU5HKTsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorCitzdGF0aWMgaW50IGx1YmJvY2tfaXJxX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQoreworCUxVQl9JUlFfTUFTS19FTiA9IGx1YmJvY2tfaXJxX2VuYWJsZWQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGx1YmJvY2tfaXJxX3N5c2NsYXNzID0geworCXNldF9rc2V0X25hbWUoImNwbGRfaXJxIiksCisJLnJlc3VtZSA9IGx1YmJvY2tfaXJxX3Jlc3VtZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBsdWJib2NrX2lycV9kZXZpY2UgPSB7CisJLmNscyA9ICZsdWJib2NrX2lycV9zeXNjbGFzcywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGx1YmJvY2tfaXJxX2RldmljZV9pbml0KHZvaWQpCit7CisJaW50IHJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmbHViYm9ja19pcnFfc3lzY2xhc3MpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZsdWJib2NrX2lycV9kZXZpY2UpOworCXJldHVybiByZXQ7Cit9CisKK2RldmljZV9pbml0Y2FsbChsdWJib2NrX2lycV9kZXZpY2VfaW5pdCk7CisKKyNlbmRpZgorCiBzdGF0aWMgaW50IGx1YmJvY2tfdWRjX2lzX2Nvbm5lY3RlZCh2b2lkKQogewogCXJldHVybiAoTFVCX01JU0NfUkQgJiAoMSA8PCA5KSkgPT0gMDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL21haW5zdG9uZS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKaW5kZXggM2Y5NTIyMy4uOTg5NmFmYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKQEAgLTE1LDYgKzE1LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgpAQCAtNjIsNyArNjMsNiBAQAogCS51bm1hc2sJCT0gbWFpbnN0b25lX3VubWFza19pcnEsCiB9OwogCi0KIHN0YXRpYyB2b2lkIG1haW5zdG9uZV9pcnFfaGFuZGxlcih1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgaXJxZGVzYyAqZGVzYywKIAkJCQkgIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewpAQCAtMTAwLDYgKzEwMCwzNSBAQAogCXNldF9pcnFfdHlwZShJUlFfR1BJTygwKSwgSVJRVF9GQUxMSU5HKTsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorCitzdGF0aWMgaW50IG1haW5zdG9uZV9pcnFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJTVNUX0lOVE1TS0VOQSA9IG1haW5zdG9uZV9pcnFfZW5hYmxlZDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3MgbWFpbnN0b25lX2lycV9zeXNjbGFzcyA9IHsKKwlzZXRfa3NldF9uYW1lKCJjcGxkX2lycSIpLAorCS5yZXN1bWUgPSBtYWluc3RvbmVfaXJxX3Jlc3VtZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBtYWluc3RvbmVfaXJxX2RldmljZSA9IHsKKwkuY2xzID0gJm1haW5zdG9uZV9pcnFfc3lzY2xhc3MsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBtYWluc3RvbmVfaXJxX2RldmljZV9pbml0KHZvaWQpCit7CisJaW50IHJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmbWFpbnN0b25lX2lycV9zeXNjbGFzcyk7CisJaWYgKHJldCA9PSAwKQorCQlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJm1haW5zdG9uZV9pcnFfZGV2aWNlKTsKKwlyZXR1cm4gcmV0OworfQorCitkZXZpY2VfaW5pdGNhbGwobWFpbnN0b25lX2lycV9kZXZpY2VfaW5pdCk7CisKKyNlbmRpZgorCiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc21jOTF4X3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKQEAgLTMwNCw2ICszMzMsMTUgQEAKIAlQV0VSICA9IDB4QzAwMDAwMDI7CiAJUFJFUiAgPSAweDAwMDAwMDAyOwogCVBGRVIgID0gMHgwMDAwMDAwMjsKKyAJLyoJZm9yIHVzZSBJIFNSQU0gYXMgZnJhbWVidWZmZXIuCSovCisgCVBTTFIgfD0gMHhGMDQ7CisgCVBDRlIgPSAweDY2OworIAkvKglGb3IgS2V5cGFkIHdha2V1cC4JKi8KKyAJS1BDICY9fktQQ19BU0FDVDsKKyAJS1BDIHw9S1BDX0FTOworIAlQS1dSICA9IDB4MDAwRkQwMDA7CisgCS8qCU5lZWQgcmVhZCBQS1dSIGJhY2sgYWZ0ZXIgc2V0IGl0LgkqLworIAlQS1dSOwogfQogCiBNQUNISU5FX1NUQVJUKE1BSU5TVE9ORSwgIkludGVsIEhDRERCQlZBMCBEZXZlbG9wbWVudCBQbGF0Zm9ybSAoYWthIE1haW5zdG9uZSkiKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcG0uYyBiL2FyY2gvYXJtL21hY2gtcHhhL3BtLmMKaW5kZXggODJhNGJmMy4uOTc5OWZlOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcG0uYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9wbS5jCkBAIC0yOSw5ICsyOSw2IEBACiAgKi8KICN1bmRlZiBERUJVRwogCi1leHRlcm4gdm9pZCBweGFfY3B1X3N1c3BlbmQodm9pZCk7Ci1leHRlcm4gdm9pZCBweGFfY3B1X3Jlc3VtZSh2b2lkKTsKLQogI2RlZmluZSBTQVZFKHgpCQlzbGVlcF9zYXZlW1NMRUVQX1NBVkVfIyN4XSA9IHgKICNkZWZpbmUgUkVTVE9SRSh4KQl4ID0gc2xlZXBfc2F2ZVtTTEVFUF9TQVZFXyMjeF0KIApAQCAtNjMsNiArNjAsMTIgQEAKIAlTTEVFUF9TQVZFX0lDTVIsCiAJU0xFRVBfU0FWRV9DS0VOLAogCisjaWZkZWYgQ09ORklHX1BYQTI3eAorIAlTTEVFUF9TQVZFX01EUkVGUiwKKyAJU0xFRVBfU0FWRV9QV0VSLCBTTEVFUF9TQVZFX1BDRlIsIFNMRUVQX1NBVkVfUFJFUiwKKyAJU0xFRVBfU0FWRV9QRkVSLCBTTEVFUF9TQVZFX1BLV1IsCisjZW5kaWYKKwogCVNMRUVQX1NBVkVfQ0tTVU0sCiAKIAlTTEVFUF9TQVZFX1NJWkUKQEAgLTc1LDkgKzc4LDcgQEAKIAl1bnNpZ25lZCBsb25nIGNoZWNrc3VtID0gMDsKIAlzdHJ1Y3QgdGltZXNwZWMgZGVsdGEsIHJ0YzsKIAlpbnQgaTsKLQotCWlmIChzdGF0ZSAhPSBQTV9TVVNQRU5EX01FTSkKLQkJcmV0dXJuIC1FSU5WQUw7CisJZXh0ZXJuIHZvaWQgcHhhX2NwdV9wbV9lbnRlcihzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpOwogCiAjaWZkZWYgQ09ORklHX0lXTU1YVAogCS8qIGZvcmNlIGFueSBpV01NWHQgY29udGV4dCB0byByYW0gKiovCkBAIC0xMDAsMTYgKzEwMSwxNyBAQAogCVNBVkUoR0FGUjJfTCk7IFNBVkUoR0FGUjJfVSk7CiAKICNpZmRlZiBDT05GSUdfUFhBMjd4CisJU0FWRShNRFJFRlIpOwogCVNBVkUoR1BMUjMpOyBTQVZFKEdQRFIzKTsgU0FWRShHUkVSMyk7IFNBVkUoR0ZFUjMpOyBTQVZFKFBHU1IzKTsKIAlTQVZFKEdBRlIzX0wpOyBTQVZFKEdBRlIzX1UpOworCVNBVkUoUFdFUik7IFNBVkUoUENGUik7IFNBVkUoUFJFUik7CisJU0FWRShQRkVSKTsgU0FWRShQS1dSKTsKICNlbmRpZgogCiAJU0FWRShJQ01SKTsKIAlJQ01SID0gMDsKIAogCVNBVkUoQ0tFTik7Ci0JQ0tFTiA9IDA7Ci0KIAlTQVZFKFBTVFIpOwogCiAJLyogTm90ZTogd2FrZSB1cCBzb3VyY2UgYXJlIHNldCB1cCBpbiBlYWNoIG1hY2hpbmUgc3BlY2lmaWMgZmlsZXMgKi8KQEAgLTEyMywxNiArMTI1LDEzIEBACiAJLyogQ2xlYXIgc2xlZXAgcmVzZXQgc3RhdHVzICovCiAJUkNTUiA9IFJDU1JfU01SOwogCi0JLyogc2V0IHJlc3VtZSByZXR1cm4gYWRkcmVzcyAqLwotCVBTUFIgPSB2aXJ0X3RvX3BoeXMocHhhX2NwdV9yZXN1bWUpOwotCiAJLyogYmVmb3JlIHNsZWVwaW5nLCBjYWxjdWxhdGUgYW5kIHNhdmUgYSBjaGVja3N1bSAqLwogCWZvciAoaSA9IDA7IGkgPCBTTEVFUF9TQVZFX1NJWkUgLSAxOyBpKyspCiAJCWNoZWNrc3VtICs9IHNsZWVwX3NhdmVbaV07CiAJc2xlZXBfc2F2ZVtTTEVFUF9TQVZFX0NLU1VNXSA9IGNoZWNrc3VtOwogCiAJLyogKioqIGdvIHp6eiAqKiogKi8KLQlweGFfY3B1X3N1c3BlbmQoKTsKKwlweGFfY3B1X3BtX2VudGVyKHN0YXRlKTsKIAogCS8qIGFmdGVyIHNsZWVwaW5nLCB2YWxpZGF0ZSB0aGUgY2hlY2tzdW0gKi8KIAljaGVja3N1bSA9IDA7CkBAIC0xNDUsNyArMTQ0LDcgQEAKIAkJTFVCX0hFWExFRCA9IDB4YmFkYmFkYzU7CiAjZW5kaWYKIAkJd2hpbGUgKDEpCi0JCQlweGFfY3B1X3N1c3BlbmQoKTsKKwkJCXB4YV9jcHVfcG1fZW50ZXIoc3RhdGUpOwogCX0KIAogCS8qIGVuc3VyZSBub3QgdG8gY29tZSBiYWNrIGhlcmUgaWYgaXQgd2Fzbid0IGludGVuZGVkICovCkBAIC0xNjIsOCArMTYxLDExIEBACiAJUkVTVE9SRShQR1NSMCk7IFJFU1RPUkUoUEdTUjEpOyBSRVNUT1JFKFBHU1IyKTsKIAogI2lmZGVmIENPTkZJR19QWEEyN3gKKwlSRVNUT1JFKE1EUkVGUik7CiAJUkVTVE9SRShHQUZSM19MKTsgUkVTVE9SRShHQUZSM19VKTsgUkVTVE9SRV9HUExFVkVMKDMpOwogCVJFU1RPUkUoR1BEUjMpOyBSRVNUT1JFKEdSRVIzKTsgUkVTVE9SRShHRkVSMyk7IFJFU1RPUkUoUEdTUjMpOworCVJFU1RPUkUoUFdFUik7IFJFU1RPUkUoUENGUik7IFJFU1RPUkUoUFJFUik7CisJUkVTVE9SRShQRkVSKTsgUkVTVE9SRShQS1dSKTsKICNlbmRpZgogCiAJUFNTUiA9IFBTU1JfUkRIIHwgUFNTUl9QSDsKQEAgLTE5Nyw3ICsxOTksOSBAQAogICovCiBzdGF0aWMgaW50IHB4YV9wbV9wcmVwYXJlKHN1c3BlbmRfc3RhdGVfdCBzdGF0ZSkKIHsKLQlyZXR1cm4gMDsKKwlleHRlcm4gaW50IHB4YV9jcHVfcG1fcHJlcGFyZShzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpOworCisJcmV0dXJuIHB4YV9jcHVfcG1fcHJlcGFyZShzdGF0ZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyNXguYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCmluZGV4IGU4ODdiNzEuLjc4NjljM2IgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCkBAIC0xNiw2ICsxNiw3IEBACiAgKiBpbml0aWFsaXphdGlvbiBzdHVmZiBmb3IgUFhBIG1hY2hpbmVzIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIGxhdGVyIGlmCiAgKiBuZWVkIGJlLgogICovCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMTAyLDMgKzEwMywzNSBAQAogfQogCiBFWFBPUlRfU1lNQk9MKGdldF9sY2RjbGtfZnJlcXVlbmN5XzEwa2h6KTsKKworI2lmZGVmIENPTkZJR19QTQorCitpbnQgcHhhX2NwdV9wbV9wcmVwYXJlKHN1c3BlbmRfc3RhdGVfdCBzdGF0ZSkKK3sKKwlzd2l0Y2ggKHN0YXRlKSB7CisJY2FzZSBQTV9TVVNQRU5EX01FTToKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgcHhhX2NwdV9wbV9lbnRlcihzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCit7CisJZXh0ZXJuIHZvaWQgcHhhX2NwdV9zdXNwZW5kKHVuc2lnbmVkIGludCk7CisJZXh0ZXJuIHZvaWQgcHhhX2NwdV9yZXN1bWUodm9pZCk7CisKKwlDS0VOID0gMDsKKworCXN3aXRjaCAoc3RhdGUpIHsKKwljYXNlIFBNX1NVU1BFTkRfTUVNOgorCQkvKiBzZXQgcmVzdW1lIHJldHVybiBhZGRyZXNzICovCisJCVBTUFIgPSB2aXJ0X3RvX3BoeXMocHhhX2NwdV9yZXN1bWUpOworCQlweGFfY3B1X3N1c3BlbmQoMyk7CisJCWJyZWFrOworCX0KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCmluZGV4IDdlODYzYWYuLjg5Mzk2NGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jCkBAIC0xMjAsNiArMTIwLDQyIEBACiBFWFBPUlRfU1lNQk9MKGdldF9tZW1jbGtfZnJlcXVlbmN5XzEwa2h6KTsKIEVYUE9SVF9TWU1CT0woZ2V0X2xjZGNsa19mcmVxdWVuY3lfMTBraHopOwogCisjaWZkZWYgQ09ORklHX1BNCisKK2ludCBweGFfY3B1X3BtX3ByZXBhcmUoc3VzcGVuZF9zdGF0ZV90IHN0YXRlKQoreworCXN3aXRjaCAoc3RhdGUpIHsKKwljYXNlIFBNX1NVU1BFTkRfTUVNOgorCQlyZXR1cm4gMDsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9Cit9CisKK3ZvaWQgcHhhX2NwdV9wbV9lbnRlcihzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCit7CisJZXh0ZXJuIHZvaWQgcHhhX2NwdV9zdGFuZGJ5KHZvaWQpOworCWV4dGVybiB2b2lkIHB4YV9jcHVfc3VzcGVuZCh1bnNpZ25lZCBpbnQpOworCWV4dGVybiB2b2lkIHB4YV9jcHVfcmVzdW1lKHZvaWQpOworCisJQ0tFTiA9IENLRU4yMl9NRU1DIHwgQ0tFTjlfT1NUSU1FUjsKKworCS8qIGVuc3VyZSB2b2x0YWdlLWNoYW5nZSBzZXF1ZW5jZXIgbm90IGluaXRpYXRlZCwgd2hpY2ggaGFuZ3MgKi8KKwlQQ0ZSICY9IH5QQ0ZSX0ZWQzsKKworCS8qIENsZWFyIGVkZ2UtZGV0ZWN0IHN0YXR1cyByZWdpc3Rlci4gKi8KKwlQRURSID0gMHhERjEyRkUxQjsKKworCXN3aXRjaCAoc3RhdGUpIHsKKwljYXNlIFBNX1NVU1BFTkRfTUVNOgorCQkvKiBzZXQgcmVzdW1lIHJldHVybiBhZGRyZXNzICovCisJCVBTUFIgPSB2aXJ0X3RvX3BoeXMocHhhX2NwdV9yZXN1bWUpOworCQlweGFfY3B1X3N1c3BlbmQoMyk7CisJCWJyZWFrOworCX0KK30KKworI2VuZGlmCiAKIC8qCiAgKiBkZXZpY2UgcmVnaXN0cmF0aW9uIHNwZWNpZmljIHRvIFBYQTI3eC4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9kbWEuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9kbWEuYwppbmRleCBiYzIyOWZhLi5jN2MyODg5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvZG1hLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2RtYS5jCkBAIC03ODUsNiArNzg1LDEwIEBACiAJY2hhbi0+Y2xpZW50ID0gTlVMTDsKIAljaGFuLT5pbl91c2UgPSAwOwogCisJaWYgKGNoYW4tPmlycV9jbGFpbWVkKQorCQlmcmVlX2lycShjaGFuLT5pcnEsICh2b2lkICopY2hhbik7CisJY2hhbi0+aXJxX2NsYWltZWQgPSAwOworCiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXNhMTEwMC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1zYTExMDAvS2NvbmZpZwppbmRleCA1MGNkZTU3Li42OTIzMzE2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXNhMTEwMC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtc2ExMTAwL0tjb25maWcKQEAgLTE1MCw3ICsxNTAsNyBAQAogCiBjb25maWcgSDM2MDBfU0xFRVZFCiAJdHJpc3RhdGUgIkNvbXBhcSBpUEFRIEhhbmRoZWxkIHNsZWV2ZSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU0ExMTAwX0gzNjAwCisJZGVwZW5kcyBvbiBTQTExMDBfSDMxMDAgfHwgU0ExMTAwX0gzNjAwCiAJaGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBleHRlbnNpb24gcGFja3MgKHNsZWV2ZXMpCiAJICBmb3IgdGhlIENvbXBhcSBpUEFRIEgzWFhYIHNlcmllcyBvZiBoYW5kaGVsZCBjb21wdXRlcnMuICBUaGlzIG9wdGlvbgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC12ZXJzYXRpbGUvY29yZS5jIGIvYXJjaC9hcm0vbWFjaC12ZXJzYXRpbGUvY29yZS5jCmluZGV4IDU1NGUxYmQuLjMwMmMyYTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtdmVyc2F0aWxlL2NvcmUuYworKysgYi9hcmNoL2FybS9tYWNoLXZlcnNhdGlsZS9jb3JlLmMKQEAgLTU0Myw3ICs1NDMsNyBAQAogCQl2YWwgfD0gU1lTX0NMQ0RfTU9ERV81NTUxOwogCQlicmVhazsKIAljYXNlIDY6Ci0JCXZhbCB8PSBTWVNfQ0xDRF9NT0RFXzU2NV9CTFNCOworCQl2YWwgfD0gU1lTX0NMQ0RfTU9ERV81NjVfUkxTQjsKIAkJYnJlYWs7CiAJY2FzZSA4OgogCQl2YWwgfD0gU1lTX0NMQ0RfTU9ERV84ODg7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9LY29uZmlnIGIvYXJjaC9hcm0vbW0vS2NvbmZpZwppbmRleCA0OGJhYzdkLi4zZmVmYjQzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21tL0tjb25maWcKQEAgLTIyOCw3ICsyMjgsNiBAQAogCXNlbGVjdCBDUFVfQ0FDSEVfVjRXQgogCXNlbGVjdCBDUFVfQ0FDSEVfVklWVAogCXNlbGVjdCBDUFVfVExCX1Y0V0IKLQlzZWxlY3QgQ1BVX01JTklDQUNIRQogCiAjIFhTY2FsZQogY29uZmlnIENQVV9YU0NBTEUKQEAgLTIzOSw3ICsyMzgsNiBAQAogCXNlbGVjdCBDUFVfQUJSVF9FVjVUCiAJc2VsZWN0IENQVV9DQUNIRV9WSVZUCiAJc2VsZWN0IENQVV9UTEJfVjRXQkkKLQlzZWxlY3QgQ1BVX01JTklDQUNIRQogCiAjIEFSTXY2CiBjb25maWcgQ1BVX1Y2CkBAIC0zNDUsMTEgKzM0Myw2IEBACiBjb25maWcgQ1BVX1RMQl9WNgogCWJvb2wKIAotY29uZmlnIENQVV9NSU5JQ0FDSEUKLQlib29sCi0JaGVscAotCSAgUHJvY2Vzc29yIGhhcyBhIG1pbmljYWNoZS4KLQogY29tbWVudCAiUHJvY2Vzc29yIEZlYXR1cmVzIgogCiBjb25maWcgQVJNX1RIVU1CCkBAIC00MjksMyArNDIyLDExIEBACiAJICBhc3N1bWUgZGlyZWN0bHkgYWNjZXNzaW5nIHRoYXQgcmVnaXN0ZXIgYW5kIGFsd2F5cyBvYnRhaW4gdGhlCiAJICBleHBlY3RlZCB2YWx1ZSBvbmx5IG9uIEFSTXY3IGFuZCBhYm92ZS4KIAorY29uZmlnIE5FRURTX1NZU0NBTExfRk9SX0NNUFhDSEcKKwlib29sCisJZGVmYXVsdCB5IGlmIFNNUCAmJiAoQ1BVXzMydjUgfHwgQ1BVXzMydjQgfHwgQ1BVXzMydjMpCisJaGVscAorCSAgU01QIG9uIGEgcHJlLUFSTXY2IHByb2Nlc3Nvcj8gIFdlbGwgT0sgdGhlbi4KKwkgIEZvcmdldCBhYm91dCBmYXN0IHVzZXIgc3BhY2UgY21weGNoZyBzdXBwb3J0LgorCSAgSXQgaXMganVzdCBub3QgcG9zc2libGUuCisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL01ha2VmaWxlIGIvYXJjaC9hcm0vbW0vTWFrZWZpbGUKaW5kZXggY2NmMzE2Yy4uNTlmNDdkNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbW0vTWFrZWZpbGUKQEAgLTMxLDggKzMxLDYgQEAKIG9iai0kKENPTkZJR19DUFVfU0ExMTAwKQkrPSBjb3B5cGFnZS12NG1jLm8KIG9iai0kKENPTkZJR19DUFVfWFNDQUxFKQkrPSBjb3B5cGFnZS14c2NhbGUubwogCi1vYmotJChDT05GSUdfQ1BVX01JTklDQUNIRSkJKz0gbWluaWNhY2hlLm8KLQogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjMpCSs9IHRsYi12My5vCiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNFdUKQkrPSB0bGItdjQubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjRXQikJKz0gdGxiLXY0d2IubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vY29weXBhZ2UteHNjYWxlLlMgYi9hcmNoL2FybS9tbS9jb3B5cGFnZS14c2NhbGUuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmIyNzczMS4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tbS9jb3B5cGFnZS14c2NhbGUuUworKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi0vKgotICogIGxpbnV4L2FyY2gvYXJtL2xpYi9jb3B5cGFnZS14c2NhbGUuUwotICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUnVzc2VsbCBLaW5nCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8YXNtL2NvbnN0YW50cy5oPgotCi0vKgotICogR2VuZXJhbCBub3RlOgotICogIFdlIGRvbid0IHJlYWxseSB3YW50IHdyaXRlLWFsbG9jYXRlIGNhY2hlIGJlaGF2aW91ciBmb3IgdGhlc2UgZnVuY3Rpb25zCi0gKiAgc2luY2UgdGhhdCB3aWxsIGp1c3QgZWF0IHRocm91Z2ggOEsgb2YgdGhlIGNhY2hlLgotICovCi0KLQkudGV4dAotCS5hbGlnbgk1Ci0vKgotICogWFNjYWxlIG9wdGltaXNlZCBjb3B5X3VzZXJfcGFnZQotICogIHIwID0gZGVzdGluYXRpb24KLSAqICByMSA9IHNvdXJjZQotICogIHIyID0gdmlydHVhbCB1c2VyIGFkZHJlc3Mgb2YgdWx0aW1hdGUgZGVzdGluYXRpb24gcGFnZQotICoKLSAqIFRoZSBzb3VyY2UgcGFnZSBtYXkgaGF2ZSBzb21lIGNsZWFuIGVudHJpZXMgaW4gdGhlIGNhY2hlIGFscmVhZHksIGJ1dCB3ZQotICogY2FuIHNhZmVseSBpZ25vcmUgdGhlbSAtIGJyZWFrX2NvdygpIHdpbGwgZmx1c2ggdGhlbSBvdXQgb2YgdGhlIGNhY2hlCi0gKiBpZiB3ZSBldmVudHVhbGx5IGVuZCB1cCB1c2luZyBvdXIgY29waWVkIHBhZ2UuCi0gKgotICogV2hhdCB3ZSBjb3VsZCBkbyBpcyB1c2UgdGhlIG1pbmktY2FjaGUgdG8gYnVmZmVyIHJlYWRzIGZyb20gdGhlIHNvdXJjZQotICogcGFnZS4gIFdlIHJlbHkgb24gdGhlIG1pbmktY2FjaGUgYmVpbmcgc21hbGxlciB0aGFuIG9uZSBwYWdlLCBzbyB3ZSdsbAotICogY3ljbGUgdGhyb3VnaCB0aGUgY29tcGxldGUgY2FjaGUgYW55d2F5LgotICovCi1FTlRSWSh4c2NhbGVfbWNfY29weV91c2VyX3BhZ2UpCi0Jc3RtZmQJc3AhLCB7cjQsIHI1LCBscn0KLQltb3YJcjUsIHIwCi0JbW92CXIwLCByMQotCWJsCW1hcF9wYWdlX21pbmljYWNoZQotCW1vdglyMSwgcjUKLQltb3YJbHIsICNQQUdFX1NaLzY0LTEKLQotCS8qCi0JICogU3RyYW5nZWx5IGVub3VnaCwgYmVzdCBwZXJmb3JtYW5jZSBpcyBhY2hpZXZlZAotCSAqIHdoZW4gcHJlZmV0Y2hpbmcgZGVzdGluYXRpb24gYXMgd2VsbC4gIChOUCkKLQkgKi8KLQlwbGQJW3IwLCAjMF0KLQlwbGQJW3IwLCAjMzJdCi0JcGxkCVtyMSwgIzBdCi0JcGxkCVtyMSwgIzMyXQotCi0xOglwbGQJW3IwLCAjNjRdCi0JcGxkCVtyMCwgIzk2XQotCXBsZAlbcjEsICM2NF0KLQlwbGQJW3IxLCAjOTZdCi0KLTI6CWxkcmQJcjIsIFtyMF0sICM4Ci0JbGRyZAlyNCwgW3IwXSwgIzgKLQltb3YJaXAsIHIxCi0Jc3RyZAlyMiwgW3IxXSwgIzgKLQlsZHJkCXIyLCBbcjBdLCAjOAotCXN0cmQJcjQsIFtyMV0sICM4Ci0JbGRyZAlyNCwgW3IwXSwgIzgKLQlzdHJkCXIyLCBbcjFdLCAjOAotCXN0cmQJcjQsIFtyMV0sICM4Ci0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBsaW5lCi0JbGRyZAlyMiwgW3IwXSwgIzgKLQltY3IJcDE1LCAwLCBpcCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBsaW5lCi0JbGRyZAlyNCwgW3IwXSwgIzgKLQltb3YJaXAsIHIxCi0Jc3RyZAlyMiwgW3IxXSwgIzgKLQlsZHJkCXIyLCBbcjBdLCAjOAotCXN0cmQJcjQsIFtyMV0sICM4Ci0JbGRyZAlyNCwgW3IwXSwgIzgKLQlzdHJkCXIyLCBbcjFdLCAjOAotCXN0cmQJcjQsIFtyMV0sICM4Ci0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBsaW5lCi0Jc3VicwlsciwgbHIsICMxCi0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjNiwgMQkJQCBpbnZhbGlkYXRlIEQgbGluZQotCWJndAkxYgotCWJlcQkyYgotCi0JbGRtZmQJc3AhLCB7cjQsIHI1LCBwY30KLQotCS5hbGlnbgk1Ci0vKgotICogWFNjYWxlIG9wdGltaXNlZCBjbGVhcl91c2VyX3BhZ2UKLSAqICByMCA9IGRlc3RpbmF0aW9uCi0gKiAgcjEgPSB2aXJ0dWFsIHVzZXIgYWRkcmVzcyBvZiB1bHRpbWF0ZSBkZXN0aW5hdGlvbiBwYWdlCi0gKi8KLUVOVFJZKHhzY2FsZV9tY19jbGVhcl91c2VyX3BhZ2UpCi0JbW92CXIxLCAjUEFHRV9TWi8zMgotCW1vdglyMiwgIzAKLQltb3YJcjMsICMwCi0xOgltb3YJaXAsIHIwCi0Jc3RyZAlyMiwgW3IwXSwgIzgKLQlzdHJkCXIyLCBbcjBdLCAjOAotCXN0cmQJcjIsIFtyMF0sICM4Ci0Jc3RyZAlyMiwgW3IwXSwgIzgKLQltY3IJcDE1LCAwLCBpcCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGxpbmUKLQlzdWJzCXIxLCByMSwgIzEKLQltY3IJcDE1LCAwLCBpcCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBsaW5lCi0JYm5lCTFiCi0JbW92CXBjLCBscgotCi0JX19JTklUREFUQQotCi0JLnR5cGUJeHNjYWxlX21jX3VzZXJfZm5zLCAjb2JqZWN0Ci1FTlRSWSh4c2NhbGVfbWNfdXNlcl9mbnMpCi0JLmxvbmcJeHNjYWxlX21jX2NsZWFyX3VzZXJfcGFnZQotCS5sb25nCXhzY2FsZV9tY19jb3B5X3VzZXJfcGFnZQotCS5zaXplCXhzY2FsZV9tY191c2VyX2ZucywgLiAtIHhzY2FsZV9tY191c2VyX2ZucwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vY29weXBhZ2UteHNjYWxlLmMgYi9hcmNoL2FybS9tbS9jb3B5cGFnZS14c2NhbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmE2ZWUyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbW0vY29weXBhZ2UteHNjYWxlLmMKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiAgbGludXgvYXJjaC9hcm0vbGliL2NvcHlwYWdlLXhzY2FsZS5TCisgKgorICogIENvcHlyaWdodCAoQykgMTk5NS0yMDA1IFJ1c3NlbGwgS2luZworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBoYW5kbGVzIHRoZSBtaW5pIGRhdGEgY2FjaGUsIGFzIGZvdW5kIG9uIFNBMTF4MCBhbmQgWFNjYWxlCisgKiBwcm9jZXNzb3JzLiAgV2hlbiB3ZSBjb3B5IGEgdXNlciBwYWdlIHBhZ2UsIHdlIG1hcCBpdCBpbiBzdWNoIGEgd2F5CisgKiB0aGF0IGFjY2Vzc2VzIHRvIHRoaXMgcGFnZSB3aWxsIG5vdCB0b3VjaCB0aGUgbWFpbiBkYXRhIGNhY2hlLCBidXQKKyAqIHdpbGwgYmUgY2FjaGVkIGluIHRoZSBtaW5pIGRhdGEgY2FjaGUuICBUaGlzIHByZXZlbnRzIHVzIHRocmFzaGluZworICogdGhlIG1haW4gZGF0YSBjYWNoZSBvbiBwYWdlIGZhdWx0cy4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgorCisvKgorICogMHhmZmZmODAwMCB0byAweGZmZmZmZmZmIGlzIHJlc2VydmVkIGZvciBhbnkgQVJNIGFyY2hpdGVjdHVyZQorICogc3BlY2lmaWMgaGFja3MgZm9yIGNvcHlpbmcgcGFnZXMgZWZmaWNpZW50bHkuCisgKi8KKyNkZWZpbmUgQ09QWVBBR0VfTUlOSUNBQ0hFCTB4ZmZmZjgwMDAKKworI2RlZmluZSBtaW5pY2FjaGVfcGdwcm90IF9fcGdwcm90KExfUFRFX1BSRVNFTlQgfCBMX1BURV9ZT1VORyB8IFwKKwkJCQkgIExfUFRFX0NBQ0hFQUJMRSkKKworI2RlZmluZSBUT1BfUFRFKHgpCXB0ZV9vZmZzZXRfa2VybmVsKHRvcF9wbWQsIHgpCisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0sobWluaWNhY2hlX2xvY2spOworCisvKgorICogWFNjYWxlIG1pbmktZGNhY2hlIG9wdGltaXNlZCBjb3B5X3VzZXJfcGFnZQorICoKKyAqIFdlIGZsdXNoIHRoZSBkZXN0aW5hdGlvbiBjYWNoZSBsaW5lcyBqdXN0IGJlZm9yZSB3ZSB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZQorICogY29ycmVzcG9uZGluZyBhZGRyZXNzLiAgU2luY2UgdGhlIERjYWNoZSBpcyByZWFkLWFsbG9jYXRlLCB0aGlzIHJlbW92ZXMgdGhlCisgKiBEY2FjaGUgYWxpYXNpbmcgaXNzdWUuICBUaGUgd3JpdGVzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB3cml0ZSBidWZmZXIsCisgKiBhbmQgbWVyZ2VkIGFzIGFwcHJvcHJpYXRlLgorICovCitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChuYWtlZCkpCittY19jb3B5X3VzZXJfcGFnZSh2b2lkICpmcm9tLCB2b2lkICp0bykKK3sKKwkvKgorCSAqIFN0cmFuZ2VseSBlbm91Z2gsIGJlc3QgcGVyZm9ybWFuY2UgaXMgYWNoaWV2ZWQKKwkgKiB3aGVuIHByZWZldGNoaW5nIGRlc3RpbmF0aW9uIGFzIHdlbGwuICAoTlApCisJICovCisJYXNtIHZvbGF0aWxlKAorCSJzdG1mZAlzcCEsIHtyNCwgcjUsIGxyfQkJXG5cCisJbW92CWxyLCAlMgkJCQlcblwKKwlwbGQJW3IwLCAjMF0JCQlcblwKKwlwbGQJW3IwLCAjMzJdCQkJXG5cCisJcGxkCVtyMSwgIzBdCQkJXG5cCisJcGxkCVtyMSwgIzMyXQkJCVxuXAorMToJcGxkCVtyMCwgIzY0XQkJCVxuXAorCXBsZAlbcjAsICM5Nl0JCQlcblwKKwlwbGQJW3IxLCAjNjRdCQkJXG5cCisJcGxkCVtyMSwgIzk2XQkJCVxuXAorMjoJbGRyZAlyMiwgW3IwXSwgIzgJCQlcblwKKwlsZHJkCXI0LCBbcjBdLCAjOAkJCVxuXAorCW1vdglpcCwgcjEJCQkJXG5cCisJc3RyZAlyMiwgW3IxXSwgIzgJCQlcblwKKwlsZHJkCXIyLCBbcjBdLCAjOAkJCVxuXAorCXN0cmQJcjQsIFtyMV0sICM4CQkJXG5cCisJbGRyZAlyNCwgW3IwXSwgIzgJCQlcblwKKwlzdHJkCXIyLCBbcjFdLCAjOAkJCVxuXAorCXN0cmQJcjQsIFtyMV0sICM4CQkJXG5cCisJbWNyCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBsaW5lXG5cCisJbGRyZAlyMiwgW3IwXSwgIzgJCQlcblwKKwltY3IJcDE1LCAwLCBpcCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBsaW5lXG5cCisJbGRyZAlyNCwgW3IwXSwgIzgJCQlcblwKKwltb3YJaXAsIHIxCQkJCVxuXAorCXN0cmQJcjIsIFtyMV0sICM4CQkJXG5cCisJbGRyZAlyMiwgW3IwXSwgIzgJCQlcblwKKwlzdHJkCXI0LCBbcjFdLCAjOAkJCVxuXAorCWxkcmQJcjQsIFtyMF0sICM4CQkJXG5cCisJc3RyZAlyMiwgW3IxXSwgIzgJCQlcblwKKwlzdHJkCXI0LCBbcjFdLCAjOAkJCVxuXAorCW1jcglwMTUsIDAsIGlwLCBjNywgYzEwLCAxCQlAIGNsZWFuIEQgbGluZVxuXAorCXN1YnMJbHIsIGxyLCAjMQkJCVxuXAorCW1jcglwMTUsIDAsIGlwLCBjNywgYzYsIDEJCUAgaW52YWxpZGF0ZSBEIGxpbmVcblwKKwliZ3QJMWIJCQkJXG5cCisJYmVxCTJiCQkJCVxuXAorCWxkbWZkCXNwISwge3I0LCByNSwgcGN9CQkiCisJOgorCTogInIiIChmcm9tKSwgInIiICh0byksICJJIiAoUEFHRV9TSVpFIC8gNjQgLSAxKSk7Cit9CisKK3ZvaWQgeHNjYWxlX21jX2NvcHlfdXNlcl9wYWdlKHZvaWQgKmt0bywgY29uc3Qgdm9pZCAqa2Zyb20sIHVuc2lnbmVkIGxvbmcgdmFkZHIpCit7CisJc3Bpbl9sb2NrKCZtaW5pY2FjaGVfbG9jayk7CisKKwlzZXRfcHRlKFRPUF9QVEUoQ09QWVBBR0VfTUlOSUNBQ0hFKSwgcGZuX3B0ZShfX3BhKGtmcm9tKSA+PiBQQUdFX1NISUZULCBtaW5pY2FjaGVfcGdwcm90KSk7CisJZmx1c2hfdGxiX2tlcm5lbF9wYWdlKENPUFlQQUdFX01JTklDQUNIRSk7CisKKwltY19jb3B5X3VzZXJfcGFnZSgodm9pZCAqKUNPUFlQQUdFX01JTklDQUNIRSwga3RvKTsKKworCXNwaW5fdW5sb2NrKCZtaW5pY2FjaGVfbG9jayk7Cit9CisKKy8qCisgKiBYU2NhbGUgb3B0aW1pc2VkIGNsZWFyX3VzZXJfcGFnZQorICovCit2b2lkIF9fYXR0cmlidXRlX18oKG5ha2VkKSkKK3hzY2FsZV9tY19jbGVhcl91c2VyX3BhZ2Uodm9pZCAqa2FkZHIsIHVuc2lnbmVkIGxvbmcgdmFkZHIpCit7CisJYXNtIHZvbGF0aWxlKAorCSJtb3YJcjEsICUwCQkJCVxuXAorCW1vdglyMiwgIzAJCQkJXG5cCisJbW92CXIzLCAjMAkJCQlcblwKKzE6CW1vdglpcCwgcjAJCQkJXG5cCisJc3RyZAlyMiwgW3IwXSwgIzgJCQlcblwKKwlzdHJkCXIyLCBbcjBdLCAjOAkJCVxuXAorCXN0cmQJcjIsIFtyMF0sICM4CQkJXG5cCisJc3RyZAlyMiwgW3IwXSwgIzgJCQlcblwKKwltY3IJcDE1LCAwLCBpcCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGxpbmVcblwKKwlzdWJzCXIxLCByMSwgIzEJCQlcblwKKwltY3IJcDE1LCAwLCBpcCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBsaW5lXG5cCisJYm5lCTFiCQkJCVxuXAorCW1vdglwYywgbHIiCisJOgorCTogIkkiIChQQUdFX1NJWkUgLyAzMikpOworfQorCitzdHJ1Y3QgY3B1X3VzZXJfZm5zIHhzY2FsZV9tY191c2VyX2ZucyBfX2luaXRkYXRhID0geworCS5jcHVfY2xlYXJfdXNlcl9wYWdlCT0geHNjYWxlX21jX2NsZWFyX3VzZXJfcGFnZSwgCisJLmNwdV9jb3B5X3VzZXJfcGFnZQk9IHhzY2FsZV9tY19jb3B5X3VzZXJfcGFnZSwKK307CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9taW5pY2FjaGUuYyBiL2FyY2gvYXJtL21tL21pbmljYWNoZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWRmMmFiLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21tL21pbmljYWNoZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqICBsaW51eC9hcmNoL2FybS9tbS9taW5pY2FjaGUuYwotICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUnVzc2VsbCBLaW5nCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqCi0gKiBUaGlzIGhhbmRsZXMgdGhlIG1pbmkgZGF0YSBjYWNoZSwgYXMgZm91bmQgb24gU0ExMXgwIGFuZCBYU2NhbGUKLSAqIHByb2Nlc3NvcnMuICBXaGVuIHdlIGNvcHkgYSB1c2VyIHBhZ2UgcGFnZSwgd2UgbWFwIGl0IGluIHN1Y2ggYSB3YXkKLSAqIHRoYXQgYWNjZXNzZXMgdG8gdGhpcyBwYWdlIHdpbGwgbm90IHRvdWNoIHRoZSBtYWluIGRhdGEgY2FjaGUsIGJ1dAotICogd2lsbCBiZSBjYWNoZWQgaW4gdGhlIG1pbmkgZGF0YSBjYWNoZS4gIFRoaXMgcHJldmVudHMgdXMgdGhyYXNoaW5nCi0gKiB0aGUgbWFpbiBkYXRhIGNhY2hlIG9uIHBhZ2UgZmF1bHRzLgotICovCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0KLS8qCi0gKiAweGZmZmY4MDAwIHRvIDB4ZmZmZmZmZmYgaXMgcmVzZXJ2ZWQgZm9yIGFueSBBUk0gYXJjaGl0ZWN0dXJlCi0gKiBzcGVjaWZpYyBoYWNrcyBmb3IgY29weWluZyBwYWdlcyBlZmZpY2llbnRseS4KLSAqLwotI2RlZmluZSBtaW5pY2FjaGVfYWRkcmVzcyAoMHhmZmZmODAwMCkKLSNkZWZpbmUgbWluaWNhY2hlX3BncHJvdCBfX3BncHJvdChMX1BURV9QUkVTRU5UIHwgTF9QVEVfWU9VTkcgfCBcCi0JCQkJICBMX1BURV9DQUNIRUFCTEUpCi0KLXN0YXRpYyBwdGVfdCAqbWluaWNhY2hlX3B0ZTsKLQotLyoKLSAqIE5vdGUgdGhhdCB0aGlzIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBvbmx5IGZyb20gdGhlIGNvcHlfdXNlcl9wYWdlCi0gKiBhc20gY29kZTsgYW55dGhpbmcgZWxzZSB3aWxsIHJlcXVpcmUgc3BlY2lhbCBsb2NraW5nIHRvIHByZXZlbnQgdGhlCi0gKiBtaW5pLWNhY2hlIHNwYWNlIGJlaW5nIHJlLXVzZWQuICAoTm90ZTogcHJvYmFibHkgcHJlZW1wdCB1bnNhZmUpLgotICoKLSAqIFdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdCB0aGUgbWluaWNhY2hlIGlzIDJLLCBhbmQgd2UnbGwgYmUgcHVzaGluZwotICogNEsgb2YgZGF0YSB0aHJvdWdoIGl0LCBzbyB3ZSBkb24ndCBhY3R1YWxseSBoYXZlIHRvIHNwZWNpZmljYWxseQotICogZmx1c2ggdGhlIG1pbmljYWNoZSB3aGVuIHdlIGNoYW5nZSB0aGUgbWFwcGluZy4KLSAqCi0gKiBOb3RlIGFsc286IGFzc2VydChQQUdFX09GRlNFVCA8PSB2aXJ0IDwgaGlnaF9tZW1vcnkpLgotICogVW5zYWZlOiBwcmVlbXB0LCBrbWFwLgotICovCi11bnNpZ25lZCBsb25nIG1hcF9wYWdlX21pbmljYWNoZSh1bnNpZ25lZCBsb25nIHZpcnQpCi17Ci0Jc2V0X3B0ZShtaW5pY2FjaGVfcHRlLCBwZm5fcHRlKF9fcGEodmlydCkgPj4gUEFHRV9TSElGVCwgbWluaWNhY2hlX3BncHJvdCkpOwotCWZsdXNoX3RsYl9rZXJuZWxfcGFnZShtaW5pY2FjaGVfYWRkcmVzcyk7Ci0KLQlyZXR1cm4gbWluaWNhY2hlX2FkZHJlc3M7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IG1pbmljYWNoZV9pbml0KHZvaWQpCi17Ci0JcGdkX3QgKnBnZDsKLQlwbWRfdCAqcG1kOwotCi0Jc3Bpbl9sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7Ci0KLQlwZ2QgPSBwZ2Rfb2Zmc2V0X2sobWluaWNhY2hlX2FkZHJlc3MpOwotCXBtZCA9IHBtZF9hbGxvYygmaW5pdF9tbSwgcGdkLCBtaW5pY2FjaGVfYWRkcmVzcyk7Ci0JaWYgKCFwbWQpCi0JCUJVRygpOwotCW1pbmljYWNoZV9wdGUgPSBwdGVfYWxsb2Nfa2VybmVsKCZpbml0X21tLCBwbWQsIG1pbmljYWNoZV9hZGRyZXNzKTsKLQlpZiAoIW1pbmljYWNoZV9wdGUpCi0JCUJVRygpOwotCi0Jc3Bpbl91bmxvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKLQotCXJldHVybiAwOwotfQotCi1jb3JlX2luaXRjYWxsKG1pbmljYWNoZV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvaTM4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL2kzODYva2VybmVsL01ha2VmaWxlCmluZGV4IDBmYmNmZTAuLjUxZWNkNTEgMTAwNjQ0Ci0tLSBhL2FyY2gvaTM4Ni9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC9pMzg2L2tlcm5lbC9NYWtlZmlsZQpAQCAtNDMsNyArNDMsNyBAQAogIyBOb3RlOiBrYnVpbGQgZG9lcyBub3QgdHJhY2sgdGhpcyBkZXBlbmRlbmN5IGR1ZSB0byB1c2FnZSBvZiAuaW5jYmluCiAkKG9iaikvdnN5c2NhbGwubzogJChvYmopL3ZzeXNjYWxsLWludDgwLnNvICQob2JqKS92c3lzY2FsbC1zeXNlbnRlci5zbwogdGFyZ2V0cyArPSAkKGZvcmVhY2ggRixpbnQ4MCBzeXNlbnRlcix2c3lzY2FsbC0kRi5vIHZzeXNjYWxsLSRGLnNvKQotdGFyZ2V0cyArPSB2c3lzY2FsbC5sZHMKK3RhcmdldHMgKz0gdnN5c2NhbGwtbm90ZS5vIHZzeXNjYWxsLmxkcwogCiAjIFRoZSBEU08gaW1hZ2VzIGFyZSBidWlsdCB1c2luZyBhIHNwZWNpYWwgbGlua2VyIHNjcmlwdC4KIHF1aWV0X2NtZF9zeXNjYWxsID0gU1lTQ0FMTCAkQApkaWZmIC0tZ2l0IGEvYXJjaC9pMzg2L2tlcm5lbC9hcG0uYyBiL2FyY2gvaTM4Ni9rZXJuZWwvYXBtLmMKaW5kZXggNDU2NDFhOC4uMGZmNjVhYiAxMDA2NDQKLS0tIGEvYXJjaC9pMzg2L2tlcm5lbC9hcG0uYworKysgYi9hcmNoL2kzODYva2VybmVsL2FwbS5jCkBAIC0xMjIyLDYgKzEyMjIsNyBAQAogCiAJc2F2ZV9wcm9jZXNzb3Jfc3RhdGUoKTsKIAllcnIgPSBzZXRfc3lzdGVtX3Bvd2VyX3N0YXRlKEFQTV9TVEFURV9TVVNQRU5EKTsKKwlpZ25vcmVfbm9ybWFsX3Jlc3VtZSA9IDE7CiAJcmVzdG9yZV9wcm9jZXNzb3Jfc3RhdGUoKTsKIAogCWxvY2FsX2lycV9kaXNhYmxlKCk7CkBAIC0xMjI5LDcgKzEyMzAsNiBAQAogCXNwaW5fbG9jaygmaTgyNTNfbG9jayk7CiAJcmVpbml0X3RpbWVyKCk7CiAJc2V0X3RpbWUoKTsKLQlpZ25vcmVfbm9ybWFsX3Jlc3VtZSA9IDE7CiAKIAlzcGluX3VubG9jaygmaTgyNTNfbG9jayk7CiAJd3JpdGVfc2VxdW5sb2NrKCZ4dGltZV9sb2NrKTsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvZnN5cy5TIGIvYXJjaC9pYTY0L2tlcm5lbC9mc3lzLlMKaW5kZXggNGYzY2RlZi4uOTYyYjZjNCAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9mc3lzLlMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9mc3lzLlMKQEAgLTQ2MCw5ICs0NjAsOSBAQAogCTs7CiAKIAlzdDggW3IyXT1yMTQJCQkJLy8gdXBkYXRlIGN1cnJlbnQtPmJsb2NrZWQgd2l0aCBuZXcgbWFzawotCWNtcHhjaGc0LmFjcSByMTQ9W3I5XSxyMTgsYXIuY2N2CS8vIGN1cnJlbnQtPnRocmVhZF9pbmZvLT5mbGFncyA8LSByMTgKKwljbXB4Y2hnNC5hY3Egcjg9W3I5XSxyMTgsYXIuY2N2CQkvLyBjdXJyZW50LT50aHJlYWRfaW5mby0+ZmxhZ3MgPC0gcjE4CiAJOzsKLQljbXAubmUgcDYscDA9cjE3LHIxNAkJCS8vIHVwZGF0ZSBmYWlsZWQ/CisJY21wLm5lIHA2LHAwPXIxNyxyOAkJCS8vIHVwZGF0ZSBmYWlsZWQ/CiAocDYpCWJyLmNvbmQuc3BudC5mZXcgMWIJCQkvLyB5ZXMgLT4gcmV0cnkKIAogI2lmZGVmIENPTkZJR19TTVAKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvbW9kdWxlLmMgYi9hcmNoL2lhNjQva2VybmVsL21vZHVsZS5jCmluZGV4IGZlYmMwOTEuLmYxYWNhN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvbW9kdWxlLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9tb2R1bGUuYwpAQCAtODI1LDE0ICs4MjUsMTYgQEAKIAkJICogWFhYIFNob3VsZCBoYXZlIGFuIGFyY2gtaG9vayBmb3IgcnVubmluZyB0aGlzIGFmdGVyIGZpbmFsIHNlY3Rpb24KIAkJICogICAgIGFkZHJlc3NlcyBoYXZlIGJlZW4gc2VsZWN0ZWQuLi4KIAkJICovCi0JCS8qIFNlZSBpZiBncCBjYW4gY292ZXIgdGhlIGVudGlyZSBjb3JlIG1vZHVsZTogICovCi0JCXVpbnQ2NF90IGdwID0gKHVpbnQ2NF90KSBtb2QtPm1vZHVsZV9jb3JlICsgTUFYX0xUT0ZGIC8gMjsKLQkJaWYgKG1vZC0+Y29yZV9zaXplID49IE1BWF9MVE9GRikKKwkJdWludDY0X3QgZ3A7CisJCWlmIChtb2QtPmNvcmVfc2l6ZSA+IE1BWF9MVE9GRikKIAkJCS8qCiAJCQkgKiBUaGlzIHRha2VzIGFkdmFudGFnZSBvZiBmYWN0IHRoYXQgU0hGX0FSQ0hfU01BTEwgZ2V0cyBhbGxvY2F0ZWQKIAkJCSAqIGF0IHRoZSBlbmQgb2YgdGhlIG1vZHVsZS4KIAkJCSAqLwotCQkJZ3AgPSAodWludDY0X3QpIG1vZC0+bW9kdWxlX2NvcmUgKyBtb2QtPmNvcmVfc2l6ZSAtIE1BWF9MVE9GRiAvIDI7CisJCQlncCA9IG1vZC0+Y29yZV9zaXplIC0gTUFYX0xUT0ZGIC8gMjsKKwkJZWxzZQorCQkJZ3AgPSBtb2QtPmNvcmVfc2l6ZSAvIDI7CisJCWdwID0gKHVpbnQ2NF90KSBtb2QtPm1vZHVsZV9jb3JlICsgKChncCArIDcpICYgLTgpOwogCQltb2QtPmFyY2guZ3AgPSBncDsKIAkJREVCVUdQKCIlczogcGxhY2luZyBncCBhdCAweCVseFxuIiwgX19GVU5DVElPTl9fLCBncCk7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gvaWE2NC9rZXJuZWwvcHRyYWNlLmMKaW5kZXggMDhjOGE1ZS4uNTc1YThmNiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9wdHJhY2UuYworKysgYi9hcmNoL2lhNjQva2VybmVsL3B0cmFjZS5jCkBAIC02MzUsMTEgKzYzNSwxNyBAQAogewogCXN0cnVjdCBpYTY0X3BzciAqcHNyID0gaWE2NF9wc3IoaWE2NF90YXNrX3JlZ3ModGFzaykpOwogCisJLyoKKwkgKiBQcmV2ZW50IG1pZ3JhdGluZyB0aGlzIHRhc2sgd2hpbGUKKwkgKiB3ZSdyZSBmaWRkbGluZyB3aXRoIHRoZSBGUFUgc3RhdGUKKwkgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKIAlpZiAoaWE2NF9pc19sb2NhbF9mcHVfb3duZXIodGFzaykgJiYgcHNyLT5tZmgpIHsKIAkJcHNyLT5tZmggPSAwOwogCQl0YXNrLT50aHJlYWQuZmxhZ3MgfD0gSUE2NF9USFJFQURfRlBIX1ZBTElEOwogCQlpYTY0X3NhdmVfZnB1KCZ0YXNrLT50aHJlYWQuZnBoWzBdKTsKIAl9CisJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYwppbmRleCBiN2U2YjRjLi5kMTQ2OTJlIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jCkBAIC03MjAsNyArNzIwLDggQEAKIAlpYTY0X3NldF9rcihJQTY0X0tSX1BUX0JBU0UsIF9fcGEoaWE2NF9pbXZhKGVtcHR5X3plcm9fcGFnZSkpKTsKIAogCS8qCi0JICogSW5pdGlhbGl6ZSBkZWZhdWx0IGNvbnRyb2wgcmVnaXN0ZXIgdG8gZGVmZXIgYWxsIHNwZWN1bGF0aXZlIGZhdWx0cy4gIFRoZQorCSAqIEluaXRpYWxpemUgZGVmYXVsdCBjb250cm9sIHJlZ2lzdGVyIHRvIGRlZmVyIHNwZWN1bGF0aXZlIGZhdWx0cyBleGNlcHQKKwkgKiBmb3IgdGhvc2UgYXJpc2luZyBmcm9tIFRMQiBtaXNzZXMsIHdoaWNoIGFyZSBub3QgZGVmZXJyZWQuICBUaGUKIAkgKiBrZXJuZWwgTVVTVCBOT1QgZGVwZW5kIG9uIGEgcGFydGljdWxhciBzZXR0aW5nIG9mIHRoZXNlIGJpdHMgKGluIG90aGVyIHdvcmRzLAogCSAqIHRoZSBrZXJuZWwgbXVzdCBoYXZlIHJlY292ZXJ5IGNvZGUgZm9yIGFsbCBzcGVjdWxhdGl2ZSBhY2Nlc3NlcykuICBUdXJuIG9uCiAJICogZGNyLmxjIGFzIHBlciByZWNvbW1lbmRhdGlvbiBieSB0aGUgYXJjaGl0ZWN0dXJlIHRlYW0uICBNb3N0IElBLTMyIGFwcHMKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvaWE2NC9rZXJuZWwvdHJhcHMuYwppbmRleCBlODJhZDc4Li4xODYxMTczIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC90cmFwcy5jCkBAIC0xMTEsNiArMTExLDI0IEBACiAJc2lnaW5mb190IHNpZ2luZm87CiAJaW50IHNpZywgY29kZTsKIAorCS8qIGJyZWFrLmIgYWx3YXlzIHNldHMgY3IuaWltIHRvIDAsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyBmb3IKKwkgKiBkZWJ1Z2dlcnMuICBHZXQgdGhlIHJlYWwgYnJlYWsgbnVtYmVyIGZyb20gdGhlIG9yaWdpbmFsIGluc3RydWN0aW9uLAorCSAqIGJ1dCBvbmx5IGZvciBrZXJuZWwgY29kZS4gIFVzZXIgc3BhY2UgYnJlYWsuYiBpcyBsZWZ0IGFsb25lLCB0bworCSAqIHByZXNlcnZlIHRoZSBleGlzdGluZyBiZWhhdmlvdXIuICBBbGwgYnJlYWsgY29kaW5ncyBoYXZlIHRoZSBzYW1lCisJICogZm9ybWF0LCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIGNoZWNrIHRoZSBzbG90IHR5cGUuCisJICovCisJaWYgKGJyZWFrX251bSA9PSAwICYmICF1c2VyX21vZGUocmVncykpIHsKKwkJc3RydWN0IGlhNjRfcHNyICppcHNyID0gaWE2NF9wc3IocmVncyk7CisJCXVuc2lnbmVkIGxvbmcgKmJ1bmRsZSA9ICh1bnNpZ25lZCBsb25nICopcmVncy0+Y3JfaWlwOworCQl1bnNpZ25lZCBsb25nIHNsb3Q7CisJCXN3aXRjaCAoaXBzci0+cmkpIHsKKwkJICAgICAgY2FzZSAwOiAgc2xvdCA9IChidW5kbGVbMF0gPj4gIDUpOyBicmVhazsKKwkJICAgICAgY2FzZSAxOiAgc2xvdCA9IChidW5kbGVbMF0gPj4gNDYpIHwgKGJ1bmRsZVsxXSA8PCAxOCk7IGJyZWFrOworCQkgICAgICBkZWZhdWx0OiBzbG90ID0gKGJ1bmRsZVsxXSA+PiAyMyk7IGJyZWFrOworCQl9CisJCWJyZWFrX251bSA9ICgoc2xvdCA+PiAzNiAmIDEpIDw8IDIwKSB8IChzbG90ID4+IDYgJiAweGZmZmZmKTsKKwl9CisKIAkvKiBTSUdJTEwsIFNJR0ZQRSwgU0lHU0VHViwgYW5kIFNJR0JVUyB3YW50IHRoZXNlIGZpZWxkIGluaXRpYWxpemVkOiAqLwogCXNpZ2luZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKSAocmVncy0+Y3JfaWlwICsgaWE2NF9wc3IocmVncyktPnJpKTsKIAlzaWdpbmZvLnNpX2ltbSA9IGJyZWFrX251bTsKQEAgLTIwMiwxMyArMjIwLDIxIEBACiAKIAkvKiBmaXJzdCwgZ3JhbnQgdXNlci1sZXZlbCBhY2Nlc3MgdG8gZnBoIHBhcnRpdGlvbjogKi8KIAlwc3ItPmRmaCA9IDA7CisKKwkvKgorCSAqIE1ha2Ugc3VyZSB0aGF0IG5vIG90aGVyIHRhc2sgZ2V0cyBpbiBvbiB0aGlzIHByb2Nlc3NvcgorCSAqIHdoaWxlIHdlJ3JlIGNsYWltaW5nIHRoZSBGUFUKKwkgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKICNpZm5kZWYgQ09ORklHX1NNUAogCXsKIAkJc3RydWN0IHRhc2tfc3RydWN0ICpmcHVfb3duZXIKIAkJCT0gKHN0cnVjdCB0YXNrX3N0cnVjdCAqKWlhNjRfZ2V0X2tyKElBNjRfS1JfRlBVX09XTkVSKTsKIAotCQlpZiAoaWE2NF9pc19sb2NhbF9mcHVfb3duZXIoY3VycmVudCkpCisJCWlmIChpYTY0X2lzX2xvY2FsX2ZwdV9vd25lcihjdXJyZW50KSkgeworCQkJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOwogCQkJcmV0dXJuOworCQl9CiAKIAkJaWYgKGZwdV9vd25lcikKIAkJCWlhNjRfZmx1c2hfZnBoKGZwdV9vd25lcik7CkBAIC0yMjYsNiArMjUyLDcgQEAKIAkJICovCiAJCXBzci0+bWZoID0gMTsKIAl9CisJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOwogfQogCiBzdGF0aWMgaW5saW5lIGludApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L21tL2luaXQuYyBiL2FyY2gvaWE2NC9tbS9pbml0LmMKaW5kZXggNTQ3Nzg1ZS4uNGViMmY1MiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L21tL2luaXQuYworKysgYi9hcmNoL2lhNjQvbW0vaW5pdC5jCkBAIC0zMDUsOCArMzA1LDkgQEAKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAogCS8qCi0JICogTWFwIHRoZSBnYXRlIHBhZ2UgdHdpY2U6IG9uY2UgcmVhZC1vbmx5IHRvIGV4cG9ydCB0aGUgRUxGIGhlYWRlcnMgZXRjLiBhbmQgb25jZQotCSAqIGV4ZWN1dGUtb25seSBwYWdlIHRvIGVuYWJsZSBwcml2aWxlZ2UtcHJvbW90aW9uIHZpYSAiZXBjIjoKKwkgKiBNYXAgdGhlIGdhdGUgcGFnZSB0d2ljZTogb25jZSByZWFkLW9ubHkgdG8gZXhwb3J0IHRoZSBFTEYKKwkgKiBoZWFkZXJzIGV0Yy4gYW5kIG9uY2UgZXhlY3V0ZS1vbmx5IHBhZ2UgdG8gZW5hYmxlCisJICogcHJpdmlsZWdlLXByb21vdGlvbiB2aWEgImVwYyI6CiAJICovCiAJcGFnZSA9IHZpcnRfdG9fcGFnZShpYTY0X2ltdmEoX19zdGFydF9nYXRlX3NlY3Rpb24pKTsKIAlwdXRfa2VybmVsX3BhZ2UocGFnZSwgR0FURV9BRERSLCBQQUdFX1JFQURPTkxZKTsKQEAgLTMxNSw2ICszMTYsMjAgQEAKIAlwdXRfa2VybmVsX3BhZ2UocGFnZSwgR0FURV9BRERSICsgUEFHRV9TSVpFLCBQQUdFX0dBVEUpOwogI2Vsc2UKIAlwdXRfa2VybmVsX3BhZ2UocGFnZSwgR0FURV9BRERSICsgUEVSQ1BVX1BBR0VfU0laRSwgUEFHRV9HQVRFKTsKKwkvKiBGaWxsIGluIHRoZSBob2xlcyAoaWYgYW55KSB3aXRoIHJlYWQtb25seSB6ZXJvIHBhZ2VzOiAqLworCXsKKwkJdW5zaWduZWQgbG9uZyBhZGRyOworCisJCWZvciAoYWRkciA9IEdBVEVfQUREUiArIFBBR0VfU0laRTsKKwkJICAgICBhZGRyIDwgR0FURV9BRERSICsgUEVSQ1BVX1BBR0VfU0laRTsKKwkJICAgICBhZGRyICs9IFBBR0VfU0laRSkKKwkJeworCQkJcHV0X2tlcm5lbF9wYWdlKFpFUk9fUEFHRSgwKSwgYWRkciwKKwkJCQkJUEFHRV9SRUFET05MWSk7CisJCQlwdXRfa2VybmVsX3BhZ2UoWkVST19QQUdFKDApLCBhZGRyICsgUEVSQ1BVX1BBR0VfU0laRSwKKwkJCQkJUEFHRV9SRUFET05MWSk7CisJCX0KKwl9CiAjZW5kaWYKIAlpYTY0X3BhdGNoX2dhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9zbi9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvaWE2NC9zbi9rZXJuZWwvc2V0dXAuYwppbmRleCBlNjRjYjgxLi40NGJmYzdmIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvc24va2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9pYTY0L3NuL2tlcm5lbC9zZXR1cC5jCkBAIC0yMjIsNyArMjIyLDcgQEAKIAogZXh0ZXJuIGludCBwbGF0Zm9ybV9pbnRyX2xpc3RbXTsKIGV4dGVybiBuYXNpZF90IG1hc3Rlcl9uYXNpZDsKLXN0YXRpYyBpbnQgc2h1Yl8xXzFfZm91bmQgX19pbml0ZGF0YTsKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBzaHViXzFfMV9mb3VuZCA9IDA7CiAKIC8qCiAgKiBzbl9jaGVja19mb3Jfd2FycwpAQCAtMjUxLDcgKzI1MSw3IEBACiAJfSBlbHNlIHsKIAkJZm9yX2VhY2hfb25saW5lX25vZGUoY25vZGUpIHsKIAkJCWlmIChpc19zaHViXzFfMShjbm9kZWlkX3RvX25hc2lkKGNub2RlKSkpCi0JCQkJc25faHViX2luZm8tPnNodWJfMV8xX2ZvdW5kID0gMTsKKwkJCQlzaHViXzFfMV9mb3VuZCA9IDE7CiAJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWcKaW5kZXggN2RiZjk5Ny4uNTY0OWZiYSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA1OjU5IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjIzIDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtMTM1LDcgKzEzNyw2IEBACiAjCiBDT05GSUdfQU1JR0FfRkxPUFBZPXkKIENPTkZJR19BTUlHQV9aMlJBTT15Ci0jIENPTkZJR19CTEtfREVWX1hEIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBUklERSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfTE9PUD15CkBAIC0yMjMsMTcgKzIyNCwxMiBAQAogIwogIyBTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzCiAjCi0jIENPTkZJR19TQ1NJXzcwMDBGQVNTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0FIQTE1MlggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSEExNTQyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTjIwMDAgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9EVEMzMjgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwX01NSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9QUEEgaXMgbm90IHNldApAQCAtMjQ0LDcgKzI0MCw2IEBACiAjIENPTkZJR19TQ1NJX1FMT0dJQ19GQVMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TWU01M0M0MTYgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9UMTI4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfVTE0XzM0RiBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19BMzAwMF9TQ1NJPXkKIENPTkZJR19BMjA5MV9TQ1NJPXkKQEAgLTQ5Miw3ICs0ODcsNiBAQAogQ09ORklHX1pPUlJPODM5MD1tCiBDT05GSUdfQVBORT1tCiAjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAotIyBDT05GSUdfTEFOQ0UgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1ZFTkRPUl9TTUMgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1ZFTkRPUl9SQUNBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVDE3MDAgaXMgbm90IHNldApAQCAtNjIwLDcgKzYxNCw2IEBACiAjIENPTkZJR19TRVJJT19QQVJLQkQgaXMgbm90IHNldAogIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKICMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKLUNPTkZJR19TT1VORF9HQU1FUE9SVD15CiAKICMKICMgQ2hhcmFjdGVyIGRldmljZXMKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnCmluZGV4IDUwNWEyOTYuLjYzMDI0YjAgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWcKKysrIGIvYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA2OjAwIDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjI3IDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtNDk3LDcgKzQ5OSw2IEBACiBDT05GSUdfU0VSSU9fTElCUFMyPW0KICMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CiAjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfU09VTkRfR0FNRVBPUlQ9eQogCiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWcKaW5kZXggNjE3YWE3My4uNjQzM2RhMiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA2OjE4IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjMyIDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtNTMxLDcgKzUzMyw2IEBACiBDT05GSUdfU0VSSU9fTElCUFMyPXkKICMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CiAjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfU09VTkRfR0FNRVBPUlQ9eQogCiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWcKaW5kZXggYjUwMWRiNS4uZGEyYTIzYSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA2OjE5IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjM3IDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtNDk2LDcgKzQ5OCw2IEBACiBDT05GSUdfU0VSSU9fTElCUFMyPW0KICMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CiAjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfU09VTkRfR0FNRVBPUlQ9eQogCiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWcKaW5kZXggMmJmNmNlZi4uNTEyNTE4OCAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA2OjIxIDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjQxIDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtNDk4LDcgKzUwMCw2IEBACiBDT05GSUdfU0VSSU9fTElCUFMyPW0KICMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CiAjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfU09VTkRfR0FNRVBPUlQ9eQogCiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZwppbmRleCA3MDc0Zjg1Li4xNWI4MGFiIDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmMyLW02OGsKLSMgVHVlIEFwciAgNSAxNDowNjoyNCAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2LW02OGsKKyMgVHVlIEp1biAgNyAyMDozNDo0NSAyMDA1CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTM1LDYgKzM1LDggQEAKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTU0MCw3ICs1NDIsNiBAQAogQ09ORklHX1NFUklPX0xJQlBTMj1tCiAjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZwppbmRleCA2MWYwOWJjLi5mMGQ1NTM0IDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzItbTY4awotIyBUdWUgQXByICA1IDE0OjA2OjI4IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYtbTY4aworIyBUdWUgSnVuICA3IDIwOjM0OjUwIDIwMDUKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtMzUsNiArMzUsOCBAQAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQpAQCAtNDk4LDcgKzUwMCw2IEBACiBDT05GSUdfU0VSSU9fTElCUFMyPW0KICMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CiAjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfU09VTkRfR0FNRVBPUlQ9eQogCiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCmluZGV4IDY5YzAxMDAuLjFkNWM0NmYgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjMi1tNjhrCi0jIFR1ZSBBcHIgIDUgMTQ6MDY6MzEgMjAwNQorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjNi1tNjhrCisjIFR1ZSBKdW4gIDcgMjA6MzQ6NTMgMjAwNQogIwogQ09ORklHX002OEs9eQogQ09ORklHX01NVT15CkBAIC0zNSw2ICszNSw4IEBACiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19FUE9MTD15CkBAIC00OTcsNyArNDk5LDYgQEAKIENPTkZJR19TRVJJT19MSUJQUzI9bQogIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKICMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKLUNPTkZJR19TT1VORF9HQU1FUE9SVD15CiAKICMKICMgQ2hhcmFjdGVyIGRldmljZXMKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnCmluZGV4IDU1MGVjMjYwLi44NTYyMzg2IDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmMyLW02OGsKLSMgVHVlIEFwciAgNSAxNDowNjozNCAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2LW02OGsKKyMgVHVlIEp1biAgNyAyMDozNDo1OCAyMDA1CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTM1LDYgKzM1LDggQEAKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTEyNSw3ICsxMjcsNiBAQAogIyBCbG9jayBkZXZpY2VzCiAjCiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfWEQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0xPT1A9eQogQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUD1tCkBAIC0yMTAsMTcgKzIxMSwxMiBAQAogIwogIyBTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzCiAjCi0jIENPTkZJR19TQ1NJXzcwMDBGQVNTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0FIQTE1MlggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSEExNTQyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTjIwMDAgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9EVEMzMjgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwX01NSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9OQ1I1M0M0MDZBIGlzIG5vdCBzZXQKQEAgLTIyOSw3ICsyMjUsNiBAQAogIyBDT05GSUdfU0NTSV9RTE9HSUNfRkFTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1lNNTNDNDE2IGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfVDEyOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1UxNF8zNEYgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTQ2Niw3ICs0NjEsNiBAQAogQ09ORklHX05FVF9FVEhFUk5FVD15CiBDT05GSUdfTUlJPW0KICMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19MQU5DRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SX1NNQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SX1JBQ0FMIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUMTcwMCBpcyBub3Qgc2V0CkBAIC01NzAsNyArNTY0LDYgQEAKIENPTkZJR19TRVJJT19MSUJQUzI9bQogIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKICMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKLUNPTkZJR19TT1VORF9HQU1FUE9SVD15CiAKICMKICMgQ2hhcmFjdGVyIGRldmljZXMKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWcKaW5kZXggNWI1YTYxOS4uYWY5MDNiNSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWcKKysrIGIvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmMyLW02OGsKLSMgVHVlIEFwciAgNSAxNDowNjozNyAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2LW02OGsKKyMgVHVlIEp1biAgNyAyMDozNTowMiAyMDA1CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTM1LDYgKzM1LDggQEAKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTE3MSw3ICsxNzMsNiBAQAogIwogIyBDT05GSUdfU0NTSV9TQVRBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAotQ09ORklHX1NVTjNfU0NTST15CiAKICMKICMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKQEAgLTQ4Nyw3ICs0ODgsNiBAQAogQ09ORklHX1NFUklPX0xJQlBTMj1tCiAjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnCmluZGV4IDcwNGU0MjMuLjk5NzE0M2IgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmMyLW02OGsKLSMgVHVlIEFwciAgNSAxNDowNjo0MCAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2LW02OGsKKyMgVHVlIEp1biAgNyAyMDozNTowNiAyMDA1CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTM1LDYgKzM1LDggQEAKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTQ5Nyw3ICs0OTksNiBAQAogQ09ORklHX1NFUklPX0xJQlBTMj1tCiAjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9kZWZjb25maWcKaW5kZXggNWIyMjk2ZS4uN2Q5MzVlNCAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjMi1tNjhrCi0jIFR1ZSBBcHIgIDUgMTQ6MDU6MzEgMjAwNQorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjNi1tNjhrCisjIFR1ZSBKdW4gIDcgMjA6MzQ6MTcgMjAwNQogIwogQ09ORklHX002OEs9eQogQ09ORklHX01NVT15CkBAIC0zMyw2ICszMyw4IEBACiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKQEAgLTM1NSw3ICszNTcsNiBAQAogQ09ORklHX1NFUklPX0xJQlBTMj15CiAjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAogIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKIAogIwogIyBDaGFyYWN0ZXIgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvYXJjaC9wcGMva2VybmVsL2NwdXRhYmxlLmMgYi9hcmNoL3BwYy9rZXJuZWwvY3B1dGFibGUuYwppbmRleCA4YWE1ZThjLi5kNDRiN2RjIDEwMDY0NAotLS0gYS9hcmNoL3BwYy9rZXJuZWwvY3B1dGFibGUuYworKysgYi9hcmNoL3BwYy9rZXJuZWwvY3B1dGFibGUuYwpAQCAtODM4LDYgKzgzOCwxNyBAQAogCQkuaWNhY2hlX2JzaXplCQk9IDMyLAogCQkuZGNhY2hlX2JzaXplCQk9IDMyLAogCX0sCisJewkvKiA0MDVFUCAqLworCQkucHZyX21hc2sJCT0gMHhmZmZmMDAwMCwKKwkJLnB2cl92YWx1ZQkJPSAweDUxMjEwMDAwLAorCQkuY3B1X25hbWUJCT0gIjQwNUVQIiwKKwkJLmNwdV9mZWF0dXJlcwkJPSBDUFVfRlRSX1NQTElUX0lEX0NBQ0hFIHwKKwkJCUNQVV9GVFJfVVNFX1RCLAorCQkuY3B1X3VzZXJfZmVhdHVyZXMJPSBQUENfRkVBVFVSRV8zMiB8CisJCQlQUENfRkVBVFVSRV9IQVNfTU1VIHwgUFBDX0ZFQVRVUkVfSEFTXzR4eE1BQywKKwkJLmljYWNoZV9ic2l6ZQkJPSAzMiwKKwkJLmRjYWNoZV9ic2l6ZQkJPSAzMiwKKwl9LAogCiAjZW5kaWYgLyogQ09ORklHXzQweCAqLwogI2lmZGVmIENPTkZJR180NHgKZGlmZiAtLWdpdCBhL2FyY2gvcHBjL2tlcm5lbC9taXNjLlMgYi9hcmNoL3BwYy9rZXJuZWwvbWlzYy5TCmluZGV4IGU0ZjE2MTUuLjczMjllZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvcHBjL2tlcm5lbC9taXNjLlMKKysrIGIvYXJjaC9wcGMva2VybmVsL21pc2MuUwpAQCAtNjE5LDcgKzYxOSw3IEBACiBfR0xPQkFMKGZsdXNoX2ljYWNoZV9yYW5nZSkKIEJFR0lOX0ZUUl9TRUNUSU9OCiAJYmxyCQkJCS8qIGZvciA2MDEsIGRvIG5vdGhpbmcgKi8KLUVORF9GVFJfU0VDVElPTl9JRlNFVChQUENfRkVBVFVSRV9VTklGSUVEX0NBQ0hFKQorRU5EX0ZUUl9TRUNUSU9OX0lGQ0xSKENQVV9GVFJfU1BMSVRfSURfQ0FDSEUpCiAJbGkJcjUsTDFfQ0FDSEVfTElORV9TSVpFLTEKIAlhbmRjCXIzLHIzLHI1CiAJc3ViZglyNCxyMyxyNApAQCAtNzM2LDcgKzczNiw3IEBACiBfR0xPQkFMKF9fZmx1c2hfZGNhY2hlX2ljYWNoZSkKIEJFR0lOX0ZUUl9TRUNUSU9OCiAJYmxyCQkJCQkvKiBmb3IgNjAxLCBkbyBub3RoaW5nICovCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoUFBDX0ZFQVRVUkVfVU5JRklFRF9DQUNIRSkKK0VORF9GVFJfU0VDVElPTl9JRkNMUihDUFVfRlRSX1NQTElUX0lEX0NBQ0hFKQogCXJsd2lubQlyMyxyMywwLDAsMTkJCQkvKiBHZXQgcGFnZSBiYXNlIGFkZHJlc3MgKi8KIAlsaQlyNCw0MDk2L0wxX0NBQ0hFX0xJTkVfU0laRQkvKiBOdW1iZXIgb2YgbGluZXMgaW4gYSBwYWdlICovCiAJbXRjdHIJcjQKQEAgLTc2NCw3ICs3NjQsNyBAQAogX0dMT0JBTChfX2ZsdXNoX2RjYWNoZV9pY2FjaGVfcGh5cykKIEJFR0lOX0ZUUl9TRUNUSU9OCiAJYmxyCQkJCQkvKiBmb3IgNjAxLCBkbyBub3RoaW5nICovCi1FTkRfRlRSX1NFQ1RJT05fSUZTRVQoUFBDX0ZFQVRVUkVfVU5JRklFRF9DQUNIRSkKK0VORF9GVFJfU0VDVElPTl9JRkNMUihDUFVfRlRSX1NQTElUX0lEX0NBQ0hFKQogCW1mbXNyCXIxMAogCXJsd2lubQlyMCxyMTAsMCwyOCwyNgkJCS8qIGNsZWFyIERSICovCiAJbXRtc3IJcjAKZGlmZiAtLWdpdCBhL2FyY2gvcHBjL3BsYXRmb3Jtcy9wbWFjX2NwdWZyZXEuYyBiL2FyY2gvcHBjL3BsYXRmb3Jtcy9wbWFjX2NwdWZyZXEuYwppbmRleCA5MzdmNDZkLi41ZmRkNGY2IDEwMDY0NAotLS0gYS9hcmNoL3BwYy9wbGF0Zm9ybXMvcG1hY19jcHVmcmVxLmMKKysrIGIvYXJjaC9wcGMvcGxhdGZvcm1zL3BtYWNfY3B1ZnJlcS5jCkBAIC04Myw3ICs4Myw3IEBACiBzdGF0aWMgdTMyIHNsZXdfZG9uZV9ncGlvOwogc3RhdGljIGludCBub19zY2hlZHVsZTsKIHN0YXRpYyBpbnQgaGFzX2NwdV9sMmx2ZTsKLQorc3RhdGljIGludCBpc19wbXVfYmFzZWQ7CiAKIC8qIFRoZXJlIGFyZSBvbmx5IHR3byBmcmVxdWVuY3kgc3RhdGVzIGZvciBlYWNoIHByb2Nlc3Nvci4gVmFsdWVzCiAgKiBhcmUgaW4ga0h6IGZvciB0aGUgdGltZSBiZWluZy4KQEAgLTQ2Myw3ICs0NjMsNyBAQAogCSAqLwogCW5vX3NjaGVkdWxlID0gMTsKIAlzbGVlcF9mcmVxID0gY3VyX2ZyZXE7Ci0JaWYgKGN1cl9mcmVxID09IGxvd19mcmVxKQorCWlmIChjdXJfZnJlcSA9PSBsb3dfZnJlcSAmJiAhaXNfcG11X2Jhc2VkKQogCQlkb19zZXRfY3B1X3NwZWVkKENQVUZSRVFfSElHSCwgMCk7CiAJcmV0dXJuIDA7CiB9CkBAIC01ODgsNiArNTg4LDcgQEAKIAkJcmV0dXJuIDE7CiAJaGlfZnJlcSA9ICgqdmFsdWUpIC8gMTAwMDsKIAlzZXRfc3BlZWRfcHJvYyA9IHBtdV9zZXRfY3B1X3NwZWVkOworCWlzX3BtdV9iYXNlZCA9IDE7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTY5Miw2ICs2OTMsNyBAQAogCQloaV9mcmVxID0gY3VyX2ZyZXE7CiAJCWxvd19mcmVxID0gNDAwMDAwOwogCQlzZXRfc3BlZWRfcHJvYyA9IHBtdV9zZXRfY3B1X3NwZWVkOworCQlpc19wbXVfYmFzZWQgPSAxOwogCX0KIAkvKiBFbHNlIGNoZWNrIGZvciBUaVBiIDQwMCAmIDUwMCAqLwogCWVsc2UgaWYgKG1hY2hpbmVfaXNfY29tcGF0aWJsZSgiUG93ZXJCb29rMywyIikpIHsKQEAgLTcwMyw2ICs3MDUsNyBAQAogCQloaV9mcmVxID0gY3VyX2ZyZXE7CiAJCWxvd19mcmVxID0gMzAwMDAwOwogCQlzZXRfc3BlZWRfcHJvYyA9IHBtdV9zZXRfY3B1X3NwZWVkOworCQlpc19wbXVfYmFzZWQgPSAxOwogCX0KIAkvKiBFbHNlIGNoZWNrIGZvciA3NTBGWCAqLwogCWVsc2UgaWYgKFBWUl9WRVIobWZzcHIoU1BSTl9QVlIpKSA9PSAweDcwMDApCmRpZmYgLS1naXQgYS9hcmNoL3BwYzY0L2Jvb3QvcHJvbS5jIGIvYXJjaC9wcGM2NC9ib290L3Byb20uYwppbmRleCA3YjYwN2QxLi5kNTIxOGIxIDEwMDY0NAotLS0gYS9hcmNoL3BwYzY0L2Jvb3QvcHJvbS5jCisrKyBiL2FyY2gvcHBjNjQvYm9vdC9wcm9tLmMKQEAgLTExLDYgKzExLDIzIEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KIAorZXh0ZXJuIF9fdTMyIF9fZGl2NjRfMzIodW5zaWduZWQgbG9uZyBsb25nICpkaXZpZGVuZCwgX191MzIgZGl2aXNvcik7CisKKy8qIFRoZSB1bm5lY2Vzc2FyeSBwb2ludGVyIGNvbXBhcmUgaXMgdGhlcmUKKyAqIHRvIGNoZWNrIGZvciB0eXBlIHNhZmV0eSAobiBtdXN0IGJlIDY0Yml0KQorICovCisjIGRlZmluZSBkb19kaXYobixiYXNlKSAoewkJCQlcCisJX191MzIgX19iYXNlID0gKGJhc2UpOwkJCVwKKwlfX3UzMiBfX3JlbTsJCQkJCVwKKwkodm9pZCkoKCh0eXBlb2YoKG4pKSAqKTApID09ICgodW5zaWduZWQgbG9uZyBsb25nICopMCkpOwlcCisJaWYgKCgobikgPj4gMzIpID09IDApIHsJCQlcCisJCV9fcmVtID0gKF9fdTMyKShuKSAlIF9fYmFzZTsJCVwKKwkJKG4pID0gKF9fdTMyKShuKSAvIF9fYmFzZTsJCVwKKwl9IGVsc2UgCQkJCQkJXAorCQlfX3JlbSA9IF9fZGl2NjRfMzIoJihuKSwgX19iYXNlKTsJXAorCV9fcmVtOwkJCQkJCVwKKyB9KQorCiBpbnQgKCpwcm9tKSh2b2lkICopOwogCiB2b2lkICpjaG9zZW5faGFuZGxlOwpAQCAtMzUyLDcgKzM2OSw3IEBACiAjZGVmaW5lIFNQRUNJQUwJMzIJCS8qIDB4ICovCiAjZGVmaW5lIExBUkdFCTY0CQkvKiB1c2UgJ0FCQ0RFRicgaW5zdGVhZCBvZiAnYWJjZGVmJyAqLwogCi1zdGF0aWMgY2hhciAqIG51bWJlcihjaGFyICogc3RyLCBsb25nIG51bSwgaW50IGJhc2UsIGludCBzaXplLCBpbnQgcHJlY2lzaW9uLCBpbnQgdHlwZSkKK3N0YXRpYyBjaGFyICogbnVtYmVyKGNoYXIgKiBzdHIsIHVuc2lnbmVkIGxvbmcgbG9uZyBudW0sIGludCBiYXNlLCBpbnQgc2l6ZSwgaW50IHByZWNpc2lvbiwgaW50IHR5cGUpCiB7CiAJY2hhciBjLHNpZ24sdG1wWzY2XTsKIAljb25zdCBjaGFyICpkaWdpdHM9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CkBAIC0zNjcsOSArMzg0LDkgQEAKIAljID0gKHR5cGUgJiBaRVJPUEFEKSA/ICcwJyA6ICcgJzsKIAlzaWduID0gMDsKIAlpZiAodHlwZSAmIFNJR04pIHsKLQkJaWYgKG51bSA8IDApIHsKKwkJaWYgKChzaWduZWQgbG9uZyBsb25nKW51bSA8IDApIHsKIAkJCXNpZ24gPSAnLSc7Ci0JCQludW0gPSAtbnVtOworCQkJbnVtID0gLSAoc2lnbmVkIGxvbmcgbG9uZyludW07CiAJCQlzaXplLS07CiAJCX0gZWxzZSBpZiAodHlwZSAmIFBMVVMpIHsKIAkJCXNpZ24gPSAnKyc7CkBAIC0zODksOCArNDA2LDcgQEAKIAlpZiAobnVtID09IDApCiAJCXRtcFtpKytdPScwJzsKIAllbHNlIHdoaWxlIChudW0gIT0gMCkgewotCQl0bXBbaSsrXSA9IGRpZ2l0c1tudW0gJSBiYXNlXTsKLQkJbnVtIC89IGJhc2U7CisJCXRtcFtpKytdID0gZGlnaXRzW2RvX2RpdihudW0sIGJhc2UpXTsKIAl9CiAJaWYgKGkgPiBwcmVjaXNpb24pCiAJCXByZWNpc2lvbiA9IGk7CkBAIC00MjYsNyArNDQyLDcgQEAKIGludCB2c3ByaW50ZihjaGFyICpidWYsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogewogCWludCBsZW47Ci0JdW5zaWduZWQgbG9uZyBudW07CisJdW5zaWduZWQgbG9uZyBsb25nIG51bTsKIAlpbnQgaSwgYmFzZTsKIAljaGFyICogc3RyOwogCWNvbnN0IGNoYXIgKnM7CmRpZmYgLS1naXQgYS9hcmNoL3BwYzY0L2NvbmZpZ3MvZzVfZGVmY29uZmlnIGIvYXJjaC9wcGM2NC9jb25maWdzL2c1X2RlZmNvbmZpZwppbmRleCAwZjkwZGYwLi4xZWIzMzM5IDEwMDY0NAotLS0gYS9hcmNoL3BwYzY0L2NvbmZpZ3MvZzVfZGVmY29uZmlnCisrKyBiL2FyY2gvcHBjNjQvY29uZmlncy9nNV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTEKLSMgVGh1IE1hciAxMCAxNjo0NzowNCAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2CisjIFR1ZSBKdW4gMTQgMTY6NTk6MjAgMjAwNQogIwogQ09ORklHXzY0QklUPXkKIENPTkZJR19NTVU9eQpAQCAtMTEsNyArMTEsNyBAQAogQ09ORklHX0hBVkVfREVDX0xPQ0s9eQogQ09ORklHX0VBUkxZX1BSSU5USz15CiBDT05GSUdfQ09NUEFUPXkKLUNPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19TQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVI9eQogQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTMKIAogIwpAQCAtMjAsNiArMjAsNyBAQAogQ09ORklHX0VYUEVSSU1FTlRBTD15CiBDT05GSUdfQ0xFQU5fQ09NUElMRT15CiBDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTMxLDE5ICszMiwyMCBAQAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMPXkKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfS09CSkVDVF9VRVZFTlQ9eQogQ09ORklHX0lLQ09ORklHPXkKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKKyMgQ09ORklHX0NQVVNFVFMgaXMgbm90IHNldAogIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQotIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAogQ09ORklHX1NITUVNPXkKIENPTkZJR19DQ19BTElHTl9GVU5DVElPTlM9MAogQ09ORklHX0NDX0FMSUdOX0xBQkVMUz0wCkBAIC04Nyw2ICs4OSw4IEBACiAjIENPTkZJR19TQ0hFRF9TTVQgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU0VDQ09NUD15CitDT05GSUdfSVNBX0RNQV9BUEk9eQogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTk3LDYgKzEwMSw3IEBACiAjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWV9QUk9DPXkKIENPTkZJR19QQ0lfTkFNRVM9eQorIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA1LDEwICsxMTAsNiBAQAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKIAogIwotIyBQQy1jYXJkIGJyaWRnZXMKLSMKLQotIwogIyBQQ0kgSG90cGx1ZyBTdXBwb3J0CiAjCiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CkBAIC0yOTMsNyArMjk0LDYgQEAKICMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0VBVEEgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9FQVRBX1BJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKQEAgLTMwMSw3ICszMDEsNiBAQAogIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfSVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDX0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAogQ09ORklHX1NDU0lfUUxBMlhYWD15CkBAIC0zMTAsNiArMzA5LDcgQEAKICMgQ09ORklHX1NDU0lfUUxBMjMwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1FMQTIzMjIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9RTEE2MzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKQEAgLTMzMiw2ICszMzIsNyBAQAogQ09ORklHX0RNX1NOQVBTSE9UPW0KIENPTkZJR19ETV9NSVJST1I9bQogQ09ORklHX0RNX1pFUk89bQorIyBDT05GSUdfRE1fTVVMVElQQVRIIGlzIG5vdCBzZXQKIAogIwogIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0CkBAIC0zOTQsNyArMzk1LDYgQEAKICMKIENPTkZJR19QQUNLRVQ9eQogIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUTElOS19ERVYgaXMgbm90IHNldAogQ09ORklHX1VOSVg9eQogQ09ORklHX05FVF9LRVk9bQogQ09ORklHX0lORVQ9eQpAQCAtNTY0LDYgKzU2NCw4IEBACiAjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKIENPTkZJR19USUdPTjM9bQorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVjY0M1hYX0VUSCBpcyBub3Qgc2V0CiAKICMKICMgRXRoZXJuZXQgKDEwMDAwIE1iaXQpCkBAIC02MzEsMTggKzYzMyw2IEBACiAjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CiAKICMKLSMgSW5wdXQgSS9PIGRyaXZlcnMKLSMKLSMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKLUNPTkZJR19TT1VORF9HQU1FUE9SVD15Ci1DT05GSUdfU0VSSU89eQotIyBDT05GSUdfU0VSSU9fSTgwNDIgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19QQ0lQUzIgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKLQotIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwogQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQEAgLTY2MCw2ICs2NTAsMTYgQEAKICMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAogCiAjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworQ09ORklHX1NFUklPPXkKKyMgQ09ORklHX1NFUklPX0k4MDQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSU9fUENJUFMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKIENPTkZJR19WVD15CkBAIC02NzYsNiArNjc2LDcgQEAKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAogIwogIyBDT05GSUdfU0VSSUFMX1BNQUNaSUxPRyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKIENPTkZJR19VTklYOThfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CkBAIC02OTgsOSArNjk5LDEyIEBACiAjCiAjIEZ0YXBlLCB0aGUgZmxvcHB5IHRhcGUgZGV2aWNlIGRyaXZlcgogIworQ09ORklHX0FHUD1tCitDT05GSUdfQUdQX1VOSU5PUlRIPW0KICMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiBDT05GSUdfUkFXX0RSSVZFUj15CiBDT05GSUdfTUFYX1JBV19ERVZTPTI1NgorIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKIAogIwogIyBUUE0gZGV2aWNlcwpAQCAtNzMwLDEyICs3MzQsMTEgQEAKICMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfSVNBIGlzIG5vdCBzZXQKIENPTkZJR19JMkNfS0VZV0VTVD15Ci0jIENPTkZJR19JMkNfTVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfUFJPU0FWQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NDeDIwMF9BQ0IgaXMgbm90IHNldApAQCAtNzcyLDYgKzc3NSw3IEBACiAjIENPTkZJR19TRU5TT1JTX0xNODUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTg3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE05MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldApAQCAtNzg1LDYgKzc4OSw3IEBACiAjCiAjIE90aGVyIEkyQyBDaGlwIHN1cHBvcnQKICMKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldApAQCAtODE3LDYgKzgyMiwxMSBAQAogIyBHcmFwaGljcyBzdXBwb3J0CiAjCiBDT05GSUdfRkI9eQorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKK0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKK0NPTkZJR19GQl9TT0ZUX0NVUlNPUj15CitDT05GSUdfRkJfTUFDTU9ERVM9eQogQ09ORklHX0ZCX01PREVfSEVMUEVSUz15CiBDT05GSUdfRkJfVElMRUJMSVRUSU5HPXkKICMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CkBAIC04MzAsNiArODQwLDcgQEAKICMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1ZHQTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CiBDT05GSUdfRkJfUklWQT15CiAjIENPTkZJR19GQl9SSVZBX0kyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9SSVZBX0RFQlVHIGlzIG5vdCBzZXQKQEAgLTg0Nyw2ICs4NTgsNyBAQAogIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTg4MCw2ICs4OTIsOCBAQAogIwogIyBVU0Igc3VwcG9ydAogIworQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0I9eQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtODkwLDggKzkwNCw2IEBACiAjIENPTkZJR19VU0JfQkFORFdJRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCkBAIC05MTcsNyArOTI5LDYgQEAKICMKIENPTkZJR19VU0JfU1RPUkFHRT15CiAjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX1NUT1JBR0VfUldfREVURUNUPXkKIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCPXkKIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NPXkKIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDA9eQpAQCAtMTAwNCw4ICsxMDE1LDEwIEBACiAjCiBDT05GSUdfVVNCX1NFUklBTD1tCiBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfQUlSUFJJTUUgaXMgbm90IHNldAogQ09ORklHX1VTQl9TRVJJQUxfQkVMS0lOPW0KIENPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVD1tCisjIENPTkZJR19VU0JfU0VSSUFMX0NQMjEwMSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NFUklBTF9DWVBSRVNTX004PW0KIENPTkZJR19VU0JfU0VSSUFMX0VNUEVHPW0KIENPTkZJR19VU0JfU0VSSUFMX0ZURElfU0lPPW0KQEAgLTEwMzQsNiArMTA0Nyw3IEBACiBDT05GSUdfVVNCX1NFUklBTF9LT0JJTF9TQ1Q9bQogQ09ORklHX1VTQl9TRVJJQUxfTUNUX1UyMzI9bQogQ09ORklHX1VTQl9TRVJJQUxfUEwyMzAzPW0KKyMgQ09ORklHX1VTQl9TRVJJQUxfSFA0WCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NFUklBTF9TQUZFPW0KIENPTkZJR19VU0JfU0VSSUFMX1NBRkVfUEFEREVEPXkKIENPTkZJR19VU0JfU0VSSUFMX1RJPW0KQEAgLTEyNzAsMTEgKzEyODQsMTMgQEAKICMKICMgS2VybmVsIGhhY2tpbmcKICMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19LRVJORUw9eQogQ09ORklHX01BR0lDX1NZU1JRPXkKLSMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE3CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcHBjNjQvY29uZmlncy9pU2VyaWVzX2RlZmNvbmZpZyBiL2FyY2gvcHBjNjQvY29uZmlncy9pU2VyaWVzX2RlZmNvbmZpZwppbmRleCBhMzllOWQyLi5mNmEyYjk5IDEwMDY0NAotLS0gYS9hcmNoL3BwYzY0L2NvbmZpZ3MvaVNlcmllc19kZWZjb25maWcKKysrIGIvYXJjaC9wcGM2NC9jb25maWdzL2lTZXJpZXNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjExLXJjMy1iazYKLSMgV2VkIEZlYiAgOSAyMzozNDo1MiAyMDA1CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTItcmM2CisjIFR1ZSBKdW4gMTQgMTc6MDE6MjggMjAwNQogIwogQ09ORklHXzY0QklUPXkKIENPTkZJR19NTVU9eQpAQCAtMTEsNyArMTEsNyBAQAogQ09ORklHX0hBVkVfREVDX0xPQ0s9eQogQ09ORklHX0VBUkxZX1BSSU5USz15CiBDT05GSUdfQ09NUEFUPXkKLUNPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19TQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVI9eQogQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTMKIAogIwpAQCAtMjAsNiArMjAsNyBAQAogQ09ORklHX0VYUEVSSU1FTlRBTD15CiBDT05GSUdfQ0xFQU5fQ09NUElMRT15CiBDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTMwLDI0ICszMSwyOSBAQAogQ09ORklHX1BPU0lYX01RVUVVRT15CiAjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKK0NPTkZJR19BVURJVD15CitDT05GSUdfQVVESVRTWVNDQUxMPXkKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19LT0JKRUNUX1VFVkVOVD15CiBDT05GSUdfSUtDT05GSUc9eQogQ09ORklHX0lLQ09ORklHX1BST0M9eQorIyBDT05GSUdfQ1BVU0VUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19FUE9MTD15Ci0jIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CiBDT05GSUdfU0hNRU09eQogQ09ORklHX0NDX0FMSUdOX0ZVTkNUSU9OUz0wCiBDT05GSUdfQ0NfQUxJR05fTEFCRUxTPTAKIENPTkZJR19DQ19BTElHTl9MT09QUz0wCiBDT05GSUdfQ0NfQUxJR05fSlVNUFM9MAogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCiAKICMKICMgTG9hZGFibGUgbW9kdWxlIHN1cHBvcnQKQEAgLTc5LDYgKzg1LDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKIENPTkZJR19NU0NIVU5LUz15CiBDT05GSUdfTFBBUkNGRz15CitDT05GSUdfU0VDQ09NUD15CitDT05GSUdfSVNBX0RNQV9BUEk9eQogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTg5LDYgKzk3LDcgQEAKICMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZX1BST0M9eQogQ09ORklHX1BDSV9OQU1FUz15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogCiAjCiAjIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKQEAgLTk2LDEwICsxMDUsNiBAQAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKIAogIwotIyBQQy1jYXJkIGJyaWRnZXMKLSMKLQotIwogIyBQQ0kgSG90cGx1ZyBTdXBwb3J0CiAjCiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CkBAIC0yMTAsNyArMjE1LDYgQEAKICMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0VBVEEgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9FQVRBX1BJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKQEAgLTIxOSw3ICsyMjMsNiBAQAogIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfSVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDX0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAogQ09ORklHX1NDU0lfUUxBMlhYWD15CkBAIC0yMjgsNiArMjMxLDcgQEAKICMgQ09ORklHX1NDU0lfUUxBMjMwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1FMQTIzMjIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9RTEE2MzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKQEAgLTI1MCw2ICsyNTQsNyBAQAogQ09ORklHX0RNX1NOQVBTSE9UPW0KIENPTkZJR19ETV9NSVJST1I9bQogQ09ORklHX0RNX1pFUk89bQorIyBDT05GSUdfRE1fTVVMVElQQVRIIGlzIG5vdCBzZXQKIAogIwogIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0CkBAIC0yODAsNyArMjg1LDYgQEAKICMKIENPTkZJR19QQUNLRVQ9eQogIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUTElOS19ERVYgaXMgbm90IHNldAogQ09ORklHX1VOSVg9eQogQ09ORklHX05FVF9LRVk9bQogQ09ORklHX0lORVQ9eQpAQCAtNDQ1LDcgKzQ0OSw2IEBACiAjIENPTkZJR19ER1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKIENPTkZJR19FMTAwPXkKLSMgQ09ORklHX0UxMDBfTkFQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAogIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CkBAIC00NzEsNiArNDc0LDcgQEAKICMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKIAogIwogIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKQEAgLTUzOSwxNCArNTQzLDYgQEAKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIAogIwotIyBJbnB1dCBJL08gZHJpdmVycwotIwotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKLSMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklPX0k4MDQyIGlzIG5vdCBzZXQKLQotIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwogIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldApAQCAtNTU2LDYgKzU1MiwxMiBAQAogIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CiAKICMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CkBAIC01NzAsNiArNTcyLDcgQEAKICMKIENPTkZJR19TRVJJQUxfQ09SRT1tCiBDT05GSUdfU0VSSUFMX0lDT009bQorIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWDk4X1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlTPXkKIENPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgpAQCAtNTkyLDkgKzU5NSwxNiBAQAogIwogIyBGdGFwZSwgdGhlIGZsb3BweSB0YXBlIGRldmljZSBkcml2ZXIKICMKKyMgQ09ORklHX0FHUCBpcyBub3Qgc2V0CiAjIENPTkZJR19EUk0gaXMgbm90IHNldAogQ09ORklHX1JBV19EUklWRVI9eQogQ09ORklHX01BWF9SQVdfREVWUz0yNTYKKyMgQ09ORklHX0hBTkdDSEVDS19USU1FUiBpcyBub3Qgc2V0CisKKyMKKyMgVFBNIGRldmljZXMKKyMKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogCiAjCiAjIEkyQyBzdXBwb3J0CkBAIC02MzMsMTMgKzY0Myw5IEBACiAjCiAjIFVTQiBzdXBwb3J0CiAjCi0jIENPTkZJR19VU0IgaXMgbm90IHNldAogQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KLSMKKyMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEdhZGdldCBTdXBwb3J0CkBAIC04NDgsMTAgKzg1NCwxMyBAQAogIwogIyBLZXJuZWwgaGFja2luZwogIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0tFUk5FTD15CiBDT05GSUdfTUFHSUNfU1lTUlE9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldApAQCAtODgxLDYgKzg5MCw3IEBACiBDT05GSUdfQ1JZUFRPX1NIQTI1Nj1tCiBDT05GSUdfQ1JZUFRPX1NIQTUxMj1tCiBDT05GSUdfQ1JZUFRPX1dQNTEyPW0KK0NPTkZJR19DUllQVE9fVEdSMTkyPW0KIENPTkZJR19DUllQVE9fREVTPXkKIENPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQogQ09ORklHX0NSWVBUT19UV09GSVNIPW0KZGlmZiAtLWdpdCBhL2FyY2gvcHBjNjQvY29uZmlncy9tYXBsZV9kZWZjb25maWcgYi9hcmNoL3BwYzY0L2NvbmZpZ3MvbWFwbGVfZGVmY29uZmlnCmluZGV4IGNmNTI3NTAuLjgwNTFiMGYgMTAwNjQ0Ci0tLSBhL2FyY2gvcHBjNjQvY29uZmlncy9tYXBsZV9kZWZjb25maWcKKysrIGIvYXJjaC9wcGM2NC9jb25maWdzL21hcGxlX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMS1yYzMtYms2Ci0jIFdlZCBGZWIgIDkgMjM6MzQ6NTMgMjAwNQorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjEyLXJjNgorIyBUdWUgSnVuIDE0IDE3OjEyOjQ4IDIwMDUKICMKIENPTkZJR182NEJJVD15CiBDT05GSUdfTU1VPXkKQEAgLTExLDcgKzExLDcgQEAKIENPTkZJR19IQVZFX0RFQ19MT0NLPXkKIENPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0NPTVBBVD15Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15CitDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTEzCiAKICMKQEAgLTIwLDYgKzIwLDcgQEAKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0NMRUFOX0NPTVBJTEU9eQogQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIAogIwogIyBHZW5lcmFsIHNldHVwCkBAIC0zMCwyNCArMzEsMjggQEAKIENPTkZJR19QT1NJWF9NUVVFVUU9eQogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHIGlzIG5vdCBzZXQKIENPTkZJR19LT0JKRUNUX1VFVkVOVD15CiBDT05GSUdfSUtDT05GSUc9eQogQ09ORklHX0lLQ09ORklHX1BST0M9eQorIyBDT05GSUdfQ1BVU0VUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQotIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAogQ09ORklHX1NITUVNPXkKIENPTkZJR19DQ19BTElHTl9GVU5DVElPTlM9MAogQ09ORklHX0NDX0FMSUdOX0xBQkVMUz0wCiBDT05GSUdfQ0NfQUxJR05fTE9PUFM9MAogQ09ORklHX0NDX0FMSUdOX0pVTVBTPTAKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAogCiAjCiAjIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0CkBAIC04NCw2ICs4OSw4IEBACiAjIENPTkZJR19TQ0hFRF9TTVQgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU0VDQ09NUD15CitDT05GSUdfSVNBX0RNQV9BUEk9eQogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTk0LDYgKzEwMSw3IEBACiAjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWV9QUk9DPXkKIENPTkZJR19QQ0lfTkFNRVM9eQorIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKIAogIwogIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0CkBAIC0xMDEsMTAgKzEwOSw2IEBACiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogCiAjCi0jIFBDLWNhcmQgYnJpZGdlcwotIwotCi0jCiAjIFBDSSBIb3RwbHVnIFN1cHBvcnQKICMKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKQEAgLTI2MSw3ICsyNjUsNiBAQAogIwogQ09ORklHX1BBQ0tFVD15CiBDT05GSUdfUEFDS0VUX01NQVA9eQotIyBDT05GSUdfTkVUTElOS19ERVYgaXMgbm90IHNldAogQ09ORklHX1VOSVg9eQogIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVD15CkBAIC0zNzYsNiArMzc5LDggQEAKICMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01WNjQzWFhfRVRIIGlzIG5vdCBzZXQKIAogIwogIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKQEAgLTQzMiwxNCArNDM3LDYgQEAKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIAogIwotIyBJbnB1dCBJL08gZHJpdmVycwotIwotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKLSMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklPX0k4MDQyIGlzIG5vdCBzZXQKLQotIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwogIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldApAQCAtNDQ5LDYgKzQ0NiwxMiBAQAogIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CiAKICMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKIENPTkZJR19WVD15CkBAIC00NjksNyArNDcyLDcgQEAKICMKIENPTkZJR19TRVJJQUxfQ09SRT15CiBDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15Ci0jIENPTkZJR19TRVJJQUxfUE1BQ1pJTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAogQ09ORklHX1VOSVg5OF9QVFlTPXkKIENPTkZJR19MRUdBQ1lfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKQEAgLTQ5Miw4ICs0OTUsMTUgQEAKICMKICMgRnRhcGUsIHRoZSBmbG9wcHkgdGFwZSBkZXZpY2UgZHJpdmVyCiAjCisjIENPTkZJR19BR1AgaXMgbm90IHNldAogIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKKworIworIyBUUE0gZGV2aWNlcworIworIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAKICMKICMgSTJDIHN1cHBvcnQKQEAgLTUxOCw4ICs1MjgsOCBAQAogQ09ORklHX0kyQ19BTUQ4MTExPXkKICMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfSVNBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19NUEMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CkBAIC01NDUsNyArNTU1LDkgQEAKICMgQ09ORklHX1NFTlNPUlNfQVNCMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRFMxNjIxIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRlNDSEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRlNDUE9TIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfR0w1MThTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0dMNTIwU00gaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19JVDg3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE02MyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0xNNzUgaXMgbm90IHNldApAQCAtNTU2LDkgKzU2OCwxMSBAQAogIyBDT05GSUdfU0VOU09SU19MTTg1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE04NyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0xNOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYMTYxOSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU0lTNTU5NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVklBNjg2QSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldApAQCAtNTY4LDYgKzU4Miw3IEBACiAjCiAjIE90aGVyIEkyQyBDaGlwIHN1cHBvcnQKICMKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldApAQCAtNjE1LDYgKzYzMCw4IEBACiAjCiAjIFVTQiBzdXBwb3J0CiAjCitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQj15CiAjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAogCkBAIC02MjUsOCArNjQyLDYgQEAKICMgQ09ORklHX1VTQl9CQU5EV0lEVEggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKQEAgLTYzNSw2ICs2NTAsOCBAQAogQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTz15CiBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQogQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKIENPTkZJR19VU0JfVUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CiAKQEAgLTY4OCw2ICs3MDUsNyBAQAogQ09ORklHX1VTQl9QRUdBU1VTPXkKICMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQogCiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKQEAgLTY5OSw4ICs3MTcsMTAgQEAKIENPTkZJR19VU0JfU0VSSUFMPXkKICMgQ09ORklHX1VTQl9TRVJJQUxfQ09OU09MRSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfQUlSUFJJTUUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9CRUxLSU4gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VMRVBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DUDIxMDEgaXMgbm90IHNldAogQ09ORklHX1VTQl9TRVJJQUxfQ1lQUkVTU19NOD1tCiAjIENPTkZJR19VU0JfU0VSSUFMX0VNUEVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU8gaXMgbm90IHNldApAQCAtNzI5LDYgKzc0OSw3IEBACiAjIENPTkZJR19VU0JfU0VSSUFMX0tPQklMX1NDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TRVJJQUxfUEwyMzAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfSFA0WCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX1NBRkUgaXMgbm90IHNldAogQ09ORklHX1VTQl9TRVJJQUxfVEk9bQogIyBDT05GSUdfVVNCX1NFUklBTF9DWUJFUkpBQ0sgaXMgbm90IHNldApAQCAtNzUwLDYgKzc3MSw3IEBACiAjIENPTkZJR19VU0JfUEhJREdFVEtJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUEhJREdFVFNFUlZPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAogCiAjCkBAIC05MzYsMTAgKzk1OCwxMyBAQAogIwogIyBLZXJuZWwgaGFja2luZwogIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0tFUk5FTD15CiBDT05GSUdfTUFHSUNfU1lTUlE9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1NMQUI9eQorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQPXkKICMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CkBAIC05NzEsNiArOTk2LDcgQEAKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0RFUz15CiAjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wcGM2NC9jb25maWdzL3BTZXJpZXNfZGVmY29uZmlnIGIvYXJjaC9wcGM2NC9jb25maWdzL3BTZXJpZXNfZGVmY29uZmlnCmluZGV4IDRmZWNmMjMuLjNlYjVlZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcHBjNjQvY29uZmlncy9wU2VyaWVzX2RlZmNvbmZpZworKysgYi9hcmNoL3BwYzY0L2NvbmZpZ3MvcFNlcmllc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTEtcmMzLWJrNgotIyBXZWQgRmViICA5IDIzOjM0OjU0IDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzYKKyMgVHVlIEp1biAxNCAxNzoxMzo0NyAyMDA1CiAjCiBDT05GSUdfNjRCSVQ9eQogQ09ORklHX01NVT15CkBAIC0xMSw3ICsxMSw3IEBACiBDT05GSUdfSEFWRV9ERUNfTE9DSz15CiBDT05GSUdfRUFSTFlfUFJJTlRLPXkKIENPTkZJR19DT01QQVQ9eQotQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CiBDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMwogCiAjCkBAIC0yMCw2ICsyMCw3IEBACiBDT05GSUdfRVhQRVJJTUVOVEFMPXkKIENPTkZJR19DTEVBTl9DT01QSUxFPXkKIENPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiAKICMKICMgR2VuZXJhbCBzZXR1cApAQCAtMzAsMjQgKzMxLDI5IEBACiBDT05GSUdfUE9TSVhfTVFVRVVFPXkKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogQ09ORklHX1NZU0NUTD15Ci1DT05GSUdfTE9HX0JVRl9TSElGVD0xNworQ09ORklHX0FVRElUPXkKK0NPTkZJR19BVURJVFNZU0NBTEw9eQogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX0tPQkpFQ1RfVUVWRU5UPXkKIENPTkZJR19JS0NPTkZJRz15CiBDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfQ1BVU0VUUz15CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfRVBPTEw9eQotIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAogQ09ORklHX1NITUVNPXkKIENPTkZJR19DQ19BTElHTl9GVU5DVElPTlM9MAogQ09ORklHX0NDX0FMSUdOX0xBQkVMUz0wCiBDT05GSUdfQ0NfQUxJR05fTE9PUFM9MAogQ09ORklHX0NDX0FMSUdOX0pVTVBTPTAKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAogCiAjCiAjIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0CkBAIC04OSw5ICs5NSwxMiBAQAogQ09ORklHX0VFSD15CiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiBDT05GSUdfUFBDX1JUQVM9eQorQ09ORklHX1JUQVNfUFJPQz15CiBDT05GSUdfUlRBU19GTEFTSD1tCiBDT05GSUdfU0NBTkxPRz1tCiBDT05GSUdfTFBBUkNGRz15CitDT05GSUdfU0VDQ09NUD15CitDT05GSUdfSVNBX0RNQV9BUEk9eQogCiAjCiAjIEdlbmVyYWwgc2V0dXAKQEAgLTEwMiw2ICsxMTEsNyBAQAogIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAogQ09ORklHX1BDSV9MRUdBQ1lfUFJPQz15CiBDT05GSUdfUENJX05BTUVTPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVR19DUFU9eQogCiAjCkBAIC0xMTAsMTAgKzEyMCw2IEBACiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogCiAjCi0jIFBDLWNhcmQgYnJpZGdlcwotIwotCi0jCiAjIFBDSSBIb3RwbHVnIFN1cHBvcnQKICMKIENPTkZJR19IT1RQTFVHX1BDST1tCkBAIC0xNDcsMTEgKzE1MywxMCBAQAogIwogQ09ORklHX1BBUlBPUlQ9bQogQ09ORklHX1BBUlBPUlRfUEM9bQotQ09ORklHX1BBUlBPUlRfUENfQ01MMT1tCiAjIENPTkZJR19QQVJQT1JUX1NFUklBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JUX1BDX0ZJRk8gaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF9QQ19TVVBFUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBUlBPUlRfT1RIRVIgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVF9HU0MgaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF8xMjg0IGlzIG5vdCBzZXQKIAogIwpAQCAtMjkzLDcgKzI5OCw2IEBACiAjIENPTkZJR19TQ1NJX0JVU0xPR0lDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9FQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQV9QSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0RUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0CkBAIC0zMTAsNyArMzE0LDYgQEAKIENPTkZJR19TQ1NJX0lQUj15CiBDT05GSUdfU0NTSV9JUFJfVFJBQ0U9eQogQ09ORklHX1NDU0lfSVBSX0RVTVA9eQotIyBDT05GSUdfU0NTSV9RTE9HSUNfSVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDX0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAogQ09ORklHX1NDU0lfUUxBMlhYWD15CkBAIC0zMTksNiArMzIyLDcgQEAKIENPTkZJR19TQ1NJX1FMQTIzMDA9bQogQ09ORklHX1NDU0lfUUxBMjMyMj1tCiBDT05GSUdfU0NTSV9RTEE2MzEyPW0KK0NPTkZJR19TQ1NJX0xQRkM9bQogIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CkBAIC0zNDEsNiArMzQ1LDggQEAKIENPTkZJR19ETV9TTkFQU0hPVD1tCiBDT05GSUdfRE1fTUlSUk9SPW0KIENPTkZJR19ETV9aRVJPPW0KK0NPTkZJR19ETV9NVUxUSVBBVEg9bQorQ09ORklHX0RNX01VTFRJUEFUSF9FTUM9bQogCiAjCiAjIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKQEAgLTM3MSw3ICszNzcsNiBAQAogIwogQ09ORklHX1BBQ0tFVD15CiAjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRMSU5LX0RFViBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWD15CiBDT05GSUdfTkVUX0tFWT1tCiBDT05GSUdfSU5FVD15CkBAIC01MzksNyArNTQ0LDYgQEAKICMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQotIyBDT05GSUdfRTEwMF9OQVBJIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CiAjIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKICMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKQEAgLTU2NSw2ICs1NjksOCBAQAogIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogQ09ORklHX1RJR09OMz15CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01WNjQzWFhfRVRIIGlzIG5vdCBzZXQKIAogIwogIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKQEAgLTYzNiwyMCArNjQyLDYgQEAKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIAogIwotIyBJbnB1dCBJL08gZHJpdmVycwotIwotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKLUNPTkZJR19TRVJJTz15Ci1DT05GSUdfU0VSSU9fSTgwNDI9eQotIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19QQVJLQkQgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSU9fUENJUFMyIGlzIG5vdCBzZXQKLUNPTkZJR19TRVJJT19MSUJQUzI9eQotIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKLQotIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwogQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQEAgLTY2OSw2ICs2NjEsMTggQEAKICMgQ09ORklHX0lOUFVUX1VJTlBVVCBpcyBub3Qgc2V0CiAKICMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCitDT05GSUdfU0VSSU89eQorQ09ORklHX1NFUklPX0k4MDQyPXkKKyMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSU9fUEFSS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fTElCUFMyPXkKKyMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKIENPTkZJR19WVD15CkBAIC02ODksOCArNjkzLDggQEAKICMKIENPTkZJR19TRVJJQUxfQ09SRT15CiBDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15Ci0jIENPTkZJR19TRVJJQUxfUE1BQ1pJTE9HIGlzIG5vdCBzZXQKIENPTkZJR19TRVJJQUxfSUNPTT1tCisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKIENPTkZJR19VTklYOThfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CkBAIC03MTgsOSArNzIyLDE2IEBACiAjCiAjIEZ0YXBlLCB0aGUgZmxvcHB5IHRhcGUgZGV2aWNlIGRyaXZlcgogIworIyBDT05GSUdfQUdQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiBDT05GSUdfUkFXX0RSSVZFUj15CiBDT05GSUdfTUFYX1JBV19ERVZTPTEwMjQKKyMgQ09ORklHX0hBTkdDSEVDS19USU1FUiBpcyBub3Qgc2V0CisKKyMKKyMgVFBNIGRldmljZXMKKyMKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogCiAjCiAjIEkyQyBzdXBwb3J0CkBAIC03NDUsOCArNzU2LDggQEAKICMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfSVNBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19NUEMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1BBUlBPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldApAQCAtNzczLDcgKzc4NCw5IEBACiAjIENPTkZJR19TRU5TT1JTX0FTQjEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0ZTQ0hFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0ZTQ1BPUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0dMNTE4U00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19HTDUyMFNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfSVQ4NyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0xNNjMgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTc1IGlzIG5vdCBzZXQKQEAgLTc4NCw5ICs3OTcsMTEgQEAKICMgQ09ORklHX1NFTlNPUlNfTE04NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDE2MTkgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQzg3MzYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5NyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NJUzU1OTUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1ZJQTY4NkEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3ODFEIGlzIG5vdCBzZXQKQEAgLTc5Niw2ICs4MTEsNyBAQAogIwogIyBPdGhlciBJMkMgQ2hpcCBzdXBwb3J0CiAjCisjIENPTkZJR19TRU5TT1JTX0RTMTMzNyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKQEAgLTgyOCw4ICs4NDQsMTMgQEAKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwogQ09ORklHX0ZCPXkKK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CitDT05GSUdfRkJfU09GVF9DVVJTT1I9eQorQ09ORklHX0ZCX01BQ01PREVTPXkKIENPTkZJR19GQl9NT0RFX0hFTFBFUlM9eQotIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9USUxFQkxJVFRJTkc9eQogIyBDT05GSUdfRkJfQ0lSUlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1BNMiBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9DWUJFUjIwMDAgaXMgbm90IHNldApAQCAtODM4LDYgKzg1OSw3IEBACiAjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WR0ExNiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAogIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CiBDT05GSUdfRkJfTUFUUk9YPXkKIENPTkZJR19GQl9NQVRST1hfTUlMTEVOSVVNPXkKQEAgLTg1OCw2ICs4ODAsNyBAQAogIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTg5MSw2ICs5MTQsOCBAQAogIwogIyBVU0Igc3VwcG9ydAogIworQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0I9eQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtOTAxLDggKzkyNiw2IEBACiAjIENPTkZJR19VU0JfQkFORFdJRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCkBAIC05MTEsNiArOTM0LDggQEAKICMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU4gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQogIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAogCkBAIC05MjYsMTIgKzk1MSwxMSBAQAogIwogQ09ORklHX1VTQl9TVE9SQUdFPXkKICMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1JXX0RFVEVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfSFA4MjAwZSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKQEAgLTk3NSw2ICs5OTksNyBAQAogIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CiAKICMKICMgVVNCIHBvcnQgZHJpdmVycwpAQCAtMTAwMCw2ICsxMDI1LDcgQEAKICMgQ09ORklHX1VTQl9QSElER0VUS0lUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QSElER0VUU0VSVk8gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NJU1VTQlZHQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CiAKICMKQEAgLTEyMDgsMTAgKzEyMzQsMTMgQEAKICMKICMgS2VybmVsIGhhY2tpbmcKICMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19LRVJORUw9eQogQ09ORklHX01BR0lDX1NZU1JRPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE3CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKQEAgLTEyNDMsNiArMTI3Miw3IEBACiBDT05GSUdfQ1JZUFRPX1NIQTI1Nj1tCiBDT05GSUdfQ1JZUFRPX1NIQTUxMj1tCiBDT05GSUdfQ1JZUFRPX1dQNTEyPW0KK0NPTkZJR19DUllQVE9fVEdSMTkyPW0KIENPTkZJR19DUllQVE9fREVTPXkKIENPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQogQ09ORklHX0NSWVBUT19UV09GSVNIPW0KZGlmZiAtLWdpdCBhL2FyY2gvcHBjNjQvZGVmY29uZmlnIGIvYXJjaC9wcGM2NC9kZWZjb25maWcKaW5kZXggNTM3YjFjYy4uMmYzMWJmMyAxMDA2NDQKLS0tIGEvYXJjaC9wcGM2NC9kZWZjb25maWcKKysrIGIvYXJjaC9wcGM2NC9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMTEtcmMzLWJrNgotIyBXZWQgRmViICA5IDIzOjM0OjUxIDIwMDUKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4xMi1yYzUtZ2l0OQorIyBTdW4gSnVuICA1IDA5OjI2OjQ3IDIwMDUKICMKIENPTkZJR182NEJJVD15CiBDT05GSUdfTU1VPXkKQEAgLTExLDcgKzExLDcgQEAKIENPTkZJR19IQVZFX0RFQ19MT0NLPXkKIENPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0NPTVBBVD15Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15CitDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTEzCiAKICMKQEAgLTIwLDYgKzIwLDcgQEAKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0NMRUFOX0NPTVBJTEU9eQogQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIAogIwogIyBHZW5lcmFsIHNldHVwCkBAIC0zMCwyNCArMzEsMjggQEAKIENPTkZJR19QT1NJWF9NUVVFVUU9eQogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfS09CSkVDVF9VRVZFTlQ9eQogQ09ORklHX0lLQ09ORklHPXkKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19DUFVTRVRTPXkKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0VQT0xMPXkKLSMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TSE1FTT15CiBDT05GSUdfQ0NfQUxJR05fRlVOQ1RJT05TPTAKIENPTkZJR19DQ19BTElHTl9MQUJFTFM9MAogQ09ORklHX0NDX0FMSUdOX0xPT1BTPTAKIENPTkZJR19DQ19BTElHTl9KVU1QUz0wCiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKIAogIwogIyBMb2FkYWJsZSBtb2R1bGUgc3VwcG9ydApAQCAtOTEsOSArOTYsMTIgQEAKIENPTkZJR19FRUg9eQogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogQ09ORklHX1BQQ19SVEFTPXkKK0NPTkZJR19SVEFTX1BST0M9eQogQ09ORklHX1JUQVNfRkxBU0g9bQogQ09ORklHX1NDQU5MT0c9bQogQ09ORklHX0xQQVJDRkc9eQorQ09ORklHX1NFQ0NPTVA9eQorQ09ORklHX0lTQV9ETUFfQVBJPXkKIAogIwogIyBHZW5lcmFsIHNldHVwCkBAIC0xMDQsNiArMTEyLDcgQEAKIENPTkZJR19CSU5GTVRfTUlTQz1tCiAjIENPTkZJR19QQ0lfTEVHQUNZX1BST0MgaXMgbm90IHNldAogIyBDT05GSUdfUENJX05BTUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVR19DUFU9eQogCiAjCkBAIC0xMTIsMTAgKzEyMSw2IEBACiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogCiAjCi0jIFBDLWNhcmQgYnJpZGdlcwotIwotCi0jCiAjIFBDSSBIb3RwbHVnIFN1cHBvcnQKICMKIENPTkZJR19IT1RQTFVHX1BDST1tCkBAIC0xNDksMTEgKzE1NCwxMCBAQAogIwogQ09ORklHX1BBUlBPUlQ9bQogQ09ORklHX1BBUlBPUlRfUEM9bQotQ09ORklHX1BBUlBPUlRfUENfQ01MMT1tCiAjIENPTkZJR19QQVJQT1JUX1NFUklBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JUX1BDX0ZJRk8gaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF9QQ19TVVBFUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBUlBPUlRfT1RIRVIgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVF9HU0MgaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF8xMjg0IGlzIG5vdCBzZXQKIAogIwpAQCAtMzAxLDYgKzMwNSw3IEBACiAjIENPTkZJR19TQ1NJX0FUQV9QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FUQV9OViBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBVEFfUVNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NBVEFfU0lMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FUQV9TSVMgaXMgbm90IHNldApAQCAtMzEwLDcgKzMxNSw2IEBACiAjIENPTkZJR19TQ1NJX0JVU0xPR0lDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9FQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQV9QSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfR0RUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0CkBAIC0zMjcsNyArMzMxLDYgQEAKIENPTkZJR19TQ1NJX0lQUj15CiBDT05GSUdfU0NTSV9JUFJfVFJBQ0U9eQogQ09ORklHX1NDU0lfSVBSX0RVTVA9eQotIyBDT05GSUdfU0NTSV9RTE9HSUNfSVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDX0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAogQ09ORklHX1NDU0lfUUxBMlhYWD15CkBAIC0zMzYsNiArMzM5LDcgQEAKIENPTkZJR19TQ1NJX1FMQTIzMDA9bQogQ09ORklHX1NDU0lfUUxBMjMyMj1tCiBDT05GSUdfU0NTSV9RTEE2MzEyPW0KK0NPTkZJR19TQ1NJX0xQRkM9bQogIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAogQ09ORklHX1NDU0lfREVCVUc9bQpAQCAtMzU4LDYgKzM2Miw4IEBACiBDT05GSUdfRE1fU05BUFNIT1Q9bQogQ09ORklHX0RNX01JUlJPUj1tCiBDT05GSUdfRE1fWkVSTz1tCitDT05GSUdfRE1fTVVMVElQQVRIPW0KK0NPTkZJR19ETV9NVUxUSVBBVEhfRU1DPW0KIAogIwogIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0CkBAIC00MDUsNiArNDExLDcgQEAKICMKIENPTkZJR19BREI9eQogQ09ORklHX0FEQl9QTVU9eQorQ09ORklHX1BNQUNfU01VPXkKICMgQ09ORklHX1BNQUNfUEJPT0sgaXMgbm90IHNldAogIyBDT05GSUdfUE1BQ19CQUNLTElHSFQgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfQURCSElEIGlzIG5vdCBzZXQKQEAgLTQyMCw3ICs0MjcsNiBAQAogIwogQ09ORklHX1BBQ0tFVD15CiAjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRMSU5LX0RFViBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWD15CiBDT05GSUdfTkVUX0tFWT1tCiBDT05GSUdfSU5FVD15CkBAIC01ODgsNyArNTk0LDYgQEAKICMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQotIyBDT05GSUdfRTEwMF9OQVBJIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CiAjIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKICMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKQEAgLTYxNCw2ICs2MTksOCBAQAogIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogQ09ORklHX1RJR09OMz15CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01WNjQzWFhfRVRIIGlzIG5vdCBzZXQKIAogIwogIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKQEAgLTY4MywyMCArNjkwLDYgQEAKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIAogIwotIyBJbnB1dCBJL08gZHJpdmVycwotIwotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotQ09ORklHX1NPVU5EX0dBTUVQT1JUPXkKLUNPTkZJR19TRVJJTz15Ci1DT05GSUdfU0VSSU9fSTgwNDI9eQotIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJT19QQVJLQkQgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSU9fUENJUFMyIGlzIG5vdCBzZXQKLUNPTkZJR19TRVJJT19MSUJQUzI9eQotIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKLQotIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwogQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQEAgLTcxNiw2ICs3MDksMTggQEAKICMgQ09ORklHX0lOUFVUX1VJTlBVVCBpcyBub3Qgc2V0CiAKICMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCitDT05GSUdfU0VSSU89eQorQ09ORklHX1NFUklPX0k4MDQyPXkKKyMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSU9fUEFSS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fTElCUFMyPXkKKyMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKIENPTkZJR19WVD15CkBAIC03MzgsNiArNzQzLDcgQEAKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKICMgQ09ORklHX1NFUklBTF9QTUFDWklMT0cgaXMgbm90IHNldAogQ09ORklHX1NFUklBTF9JQ09NPW0KK0NPTkZJR19TRVJJQUxfSlNNPW0KIENPTkZJR19VTklYOThfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CkBAIC03NjYsOSArNzcyLDE2IEBACiAjCiAjIEZ0YXBlLCB0aGUgZmxvcHB5IHRhcGUgZGV2aWNlIGRyaXZlcgogIworIyBDT05GSUdfQUdQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiBDT05GSUdfUkFXX0RSSVZFUj15CiBDT05GSUdfTUFYX1JBV19ERVZTPTI1NgorIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKKworIworIyBUUE0gZGV2aWNlcworIworIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAKICMKICMgSTJDIHN1cHBvcnQKQEAgLTc5Myw5ICs4MDYsOSBAQAogQ09ORklHX0kyQ19BTUQ4MTExPXkKICMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfSVNBIGlzIG5vdCBzZXQKIENPTkZJR19JMkNfS0VZV0VTVD15Ci0jIENPTkZJR19JMkNfTVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19QQVJQT1JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKQEAgLTgyMiw3ICs4MzUsOSBAQAogIyBDT05GSUdfU0VOU09SU19BU0IxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19EUzE2MjEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19GU0NIRVIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GU0NQT1MgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE03NSBpcyBub3Qgc2V0CkBAIC04MzMsOSArODQ4LDExIEBACiAjIENPTkZJR19TRU5TT1JTX0xNODUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19MTTg3IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTE05MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TSVM1NTk1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19WSUE2ODZBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CkBAIC04NDUsNiArODYyLDcgQEAKICMKICMgT3RoZXIgSTJDIENoaXAgc3VwcG9ydAogIworIyBDT05GSUdfU0VOU09SU19EUzEzMzcgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CkBAIC04NzcsNiArODk1LDExIEBACiAjIEdyYXBoaWNzIHN1cHBvcnQKICMKIENPTkZJR19GQj15CitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJR19GQl9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorQ09ORklHX0ZCX1NPRlRfQ1VSU09SPXkKK0NPTkZJR19GQl9NQUNNT0RFUz15CiBDT05GSUdfRkJfTU9ERV9IRUxQRVJTPXkKIENPTkZJR19GQl9USUxFQkxJVFRJTkc9eQogIyBDT05GSUdfRkJfQ0lSUlVTIGlzIG5vdCBzZXQKQEAgLTg5MCw5ICs5MTMsOCBAQAogIyBDT05GSUdfRkJfQVNJTElBTlQgaXMgbm90IHNldAogIyBDT05GSUdfRkJfSU1TVFQgaXMgbm90IHNldAogIyBDT05GSUdfRkJfVkdBMTYgaXMgbm90IHNldAotQ09ORklHX0ZCX1JJVkE9eQotQ09ORklHX0ZCX1JJVkFfSTJDPXkKLSMgQ09ORklHX0ZCX1JJVkFfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTlZJRElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JJVkEgaXMgbm90IHNldAogQ09ORklHX0ZCX01BVFJPWD15CiBDT05GSUdfRkJfTUFUUk9YX01JTExFTklVTT15CiBDT05GSUdfRkJfTUFUUk9YX01ZU1RJUVVFPXkKQEAgLTkxMyw2ICs5MzUsNyBAQAogIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTk0Niw2ICs5NjksOCBAQAogIwogIyBVU0Igc3VwcG9ydAogIworQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0I9eQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtOTU2LDggKzk4MSw2IEBACiAjIENPTkZJR19VU0JfQkFORFdJRFRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCkBAIC05NjYsNiArOTg5LDggQEAKICMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU4gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQogIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAogCkBAIC05ODEsMTIgKzEwMDYsMTEgQEAKICMKIENPTkZJR19VU0JfU1RPUkFHRT1tCiAjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX1NUT1JBR0VfUldfREVURUNUPXkKICMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9IUDgyMDBlIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldApAQCAtMTAzMCw2ICsxMDU0LDcgQEAKIENPTkZJR19VU0JfUEVHQVNVUz15CiAjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT04gaXMgbm90IHNldAogCiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKQEAgLTEwNTUsNiArMTA4MCw3IEBACiAjIENPTkZJR19VU0JfUEhJREdFVEtJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUEhJREdFVFNFUlZPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAogCiAjCkBAIC0xMjc2LDEwICsxMzAyLDEzIEBACiAjCiAjIEtlcm5lbCBoYWNraW5nCiAjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKIENPTkZJR19NQUdJQ19TWVNSUT15CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNwogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CkBAIC0xMzExLDYgKzEzNDAsNyBAQAogQ09ORklHX0NSWVBUT19TSEEyNTY9bQogQ09ORklHX0NSWVBUT19TSEE1MTI9bQogQ09ORklHX0NSWVBUT19XUDUxMj1tCitDT05GSUdfQ1JZUFRPX1RHUjE5Mj1tCiBDT05GSUdfQ1JZUFRPX0RFUz15CiBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0KIENPTkZJR19DUllQVE9fVFdPRklTSD1tCmRpZmYgLS1naXQgYS9hcmNoL3BwYzY0L2tlcm5lbC9rcHJvYmVzLmMgYi9hcmNoL3BwYzY0L2tlcm5lbC9rcHJvYmVzLmMKaW5kZXggMTAzZGFhZi4uZTk1MGEyMCAxMDA2NDQKLS0tIGEvYXJjaC9wcGM2NC9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvcHBjNjQva2VybmVsL2twcm9iZXMuYwpAQCAtNDUsMTIgKzQ1LDE3IEBACiAKIGludCBhcmNoX3ByZXBhcmVfa3Byb2JlKHN0cnVjdCBrcHJvYmUgKnApCiB7CisJaW50IHJldCA9IDA7CiAJa3Byb2JlX29wY29kZV90IGluc24gPSAqcC0+YWRkcjsKIAotCWlmIChJU19NVE1TUkQoaW5zbikgfHwgSVNfUkZJRChpbnNuKSkKLQkJLyogY2Fubm90IHB1dCBicCBvbiBSRklEL01UTVNSRCAqLwotCQlyZXR1cm4gMTsKLQlyZXR1cm4gMDsKKwlpZiAoKHVuc2lnbmVkIGxvbmcpcC0+YWRkciAmIDB4MDMpIHsKKwkJcHJpbnRrKCJBdHRlbXB0IHRvIHJlZ2lzdGVyIGtwcm9iZSBhdCBhbiB1bmFsaWduZWQgYWRkcmVzc1xuIik7CisJCXJldCA9IC1FSU5WQUw7CisJfSBlbHNlIGlmIChJU19NVE1TUkQoaW5zbikgfHwgSVNfUkZJRChpbnNuKSkgeworCQlwcmludGsoIkNhbm5vdCByZWdpc3RlciBhIGtwcm9iZSBvbiByZmlkIG9yIG10bXNyZFxuIik7CisJCXJldCA9IC1FSU5WQUw7CisJfQorCXJldHVybiByZXQ7CiB9CiAKIHZvaWQgYXJjaF9jb3B5X2twcm9iZShzdHJ1Y3Qga3Byb2JlICpwKQpAQCAtMTcyLDggKzE3Nyw2IEBACiAJcmV0ID0gZW11bGF0ZV9zdGVwKHJlZ3MsIHAtPmFpbnNuLmluc25bMF0pOwogCWlmIChyZXQgPT0gMCkKIAkJcmVncy0+bmlwID0gKHVuc2lnbmVkIGxvbmcpcC0+YWRkciArIDQ7Ci0KLQlyZWdzLT5tc3IgJj0gfk1TUl9TRTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcG9zdF9rcHJvYmVfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKQEAgLTIxMCw2ICsyMTMsNyBAQAogCiAJaWYgKGtwcm9iZV9zdGF0dXMgJiBLUFJPQkVfSElUX1NTKSB7CiAJCXJlc3VtZV9leGVjdXRpb24oY3VycmVudF9rcHJvYmUsIHJlZ3MpOworCQlyZWdzLT5tc3IgJj0gfk1TUl9TRTsKIAkJcmVncy0+bXNyIHw9IGtwcm9iZV9zYXZlZF9tc3I7CiAKIAkJdW5sb2NrX2twcm9iZXMoKTsKQEAgLTIzMyw4ICsyMzcsNiBAQAogCSAqLwogCXByZWVtcHRfZGlzYWJsZSgpOwogCXN3aXRjaCAodmFsKSB7Ci0JY2FzZSBESUVfSUFCUl9NQVRDSDoKLQljYXNlIERJRV9EQUJSX01BVENIOgogCWNhc2UgRElFX0JQVDoKIAkJaWYgKGtwcm9iZV9oYW5kbGVyKGFyZ3MtPnJlZ3MpKQogCQkJcmV0ID0gTk9USUZZX1NUT1A7CmRpZmYgLS1naXQgYS9hcmNoL3BwYzY0L2tlcm5lbC9taXNjLlMgYi9hcmNoL3BwYzY0L2tlcm5lbC9taXNjLlMKaW5kZXggYjk0NDcxNy4uZTNjNzNiMyAxMDA2NDQKLS0tIGEvYXJjaC9wcGM2NC9rZXJuZWwvbWlzYy5TCisrKyBiL2FyY2gvcHBjNjQva2VybmVsL21pc2MuUwpAQCAtNzkyLDcgKzc5Miw3IEBACiAJLmxsb25nIC5jb21wYXRfc3lzX25ld3N0YXQKIAkubGxvbmcgLmNvbXBhdF9zeXNfbmV3bHN0YXQKIAkubGxvbmcgLmNvbXBhdF9zeXNfbmV3ZnN0YXQKLQkubGxvbmcgLnN5c191bmFtZQorCS5sbG9uZyAuc3lzMzJfdW5hbWUKIAkubGxvbmcgLnN5c19uaV9zeXNjYWxsCQkvKiAxMTAgb2xkIGlvcGwgc3lzY2FsbCAqLwogCS5sbG9uZyAuc3lzX3ZoYW5ndXAKIAkubGxvbmcgLnN5c19uaV9zeXNjYWxsCQkvKiBvbGQgaWRsZSBzeXNjYWxsICovCmRpZmYgLS1naXQgYS9hcmNoL3BwYzY0L2tlcm5lbC9zeXNfcHBjMzIuYyBiL2FyY2gvcHBjNjQva2VybmVsL3N5c19wcGMzMi5jCmluZGV4IDdjZjdhOTYuLjljOGUzMTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcHBjNjQva2VybmVsL3N5c19wcGMzMi5jCisrKyBiL2FyY2gvcHBjNjQva2VybmVsL3N5c19wcGMzMi5jCkBAIC03OTEsMzEgKzc5MSw2IEBACiB9CiAKIAotYXNtbGlua2FnZSBpbnQgcHBjNjRfbmV3dW5hbWUoc3RydWN0IG5ld191dHNuYW1lIF9fdXNlciAqIG5hbWUpCi17Ci0JaW50IGVycm5vID0gc3lzX25ld3VuYW1lKG5hbWUpOwotCi0JaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ID09IFBFUl9MSU5VWDMyICYmICFlcnJubykgewotCQlpZihjb3B5X3RvX3VzZXIobmFtZS0+bWFjaGluZSwgInBwY1wwXDAiLCA4KSkgewotCQkJZXJybm8gPSAtRUZBVUxUOwotCQl9Ci0JfQotCXJldHVybiBlcnJubzsKLX0KLQotYXNtbGlua2FnZSBpbnQgcHBjNjRfcGVyc29uYWxpdHkodW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eSkKLXsKLQlpbnQgcmV0OwotCWlmIChjdXJyZW50LT5wZXJzb25hbGl0eSA9PSBQRVJfTElOVVgzMiAmJiBwZXJzb25hbGl0eSA9PSBQRVJfTElOVVgpCi0JCXBlcnNvbmFsaXR5ID0gUEVSX0xJTlVYMzI7Ci0JcmV0ID0gc3lzX3BlcnNvbmFsaXR5KHBlcnNvbmFsaXR5KTsKLQlpZiAocmV0ID09IFBFUl9MSU5VWDMyKQotCQlyZXQgPSBQRVJfTElOVVg7Ci0JcmV0dXJuIHJldDsKLX0KLQotCi0KIC8qIE5vdGU6IGl0IGlzIG5lY2Vzc2FyeSB0byB0cmVhdCBtb2RlIGFzIGFuIHVuc2lnbmVkIGludCwKICAqIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgY2FzdCB0byBhIHNpZ25lZCBpbnQgdG8gaW5zdXJlIHRoYXQgdGhlIAogICogcHJvcGVyIGNvbnZlcnNpb24gKHNpZ24gZXh0ZW5zaW9uKSBiZXR3ZWVuIHRoZSByZWdpc3RlciByZXByZXNlbnRhdGlvbiBvZiBhIHNpZ25lZCBpbnQgKG1zciBpbiAzMi1iaXQgbW9kZSkKQEAgLTExNTgsMjYgKzExMzMsNDcgQEAKIH0KICNlbmRpZgogCithc21saW5rYWdlIGludCBzeXMzMl91bmFtZShzdHJ1Y3Qgb2xkX3V0c25hbWUgX191c2VyICogbmFtZSkKK3sKKwlpbnQgZXJyID0gMDsKKwkKKwlkb3duX3JlYWQoJnV0c19zZW0pOworCWlmIChjb3B5X3RvX3VzZXIobmFtZSwgJnN5c3RlbV91dHNuYW1lLCBzaXplb2YoKm5hbWUpKSkKKwkJZXJyID0gLUVGQVVMVDsKKwl1cF9yZWFkKCZ1dHNfc2VtKTsKKwlpZiAoIWVyciAmJiBwZXJzb25hbGl0eShjdXJyZW50LT5wZXJzb25hbGl0eSkgPT0gUEVSX0xJTlVYMzIpIHsKKwkJLyogY2hhbmdlICJwcGM2NCIgdG8gInBwYyIgKi8KKwkJaWYgKF9fcHV0X3VzZXIoMCwgbmFtZS0+bWFjaGluZSArIDMpCisJCSAgICB8fCBfX3B1dF91c2VyKDAsIG5hbWUtPm1hY2hpbmUgKyA0KSkKKwkJCWVyciA9IC1FRkFVTFQ7CisJfQorCXJldHVybiBlcnI7Cit9CisKIGFzbWxpbmthZ2UgaW50IHN5czMyX29sZHVuYW1lKHN0cnVjdCBvbGRvbGRfdXRzbmFtZSBfX3VzZXIgKiBuYW1lKQogewogCWludCBlcnJvcjsKLQkKLQlpZiAoIW5hbWUpCi0JCXJldHVybiAtRUZBVUxUOworCiAJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLG5hbWUsc2l6ZW9mKHN0cnVjdCBvbGRvbGRfdXRzbmFtZSkpKQogCQlyZXR1cm4gLUVGQVVMVDsKICAgCiAJZG93bl9yZWFkKCZ1dHNfc2VtKTsKIAllcnJvciA9IF9fY29weV90b191c2VyKCZuYW1lLT5zeXNuYW1lLCZzeXN0ZW1fdXRzbmFtZS5zeXNuYW1lLF9fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fcHV0X3VzZXIoMCxuYW1lLT5zeXNuYW1lK19fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fY29weV90b191c2VyKCZuYW1lLT5ub2RlbmFtZSwmc3lzdGVtX3V0c25hbWUubm9kZW5hbWUsX19PTERfVVRTX0xFTik7Ci0JZXJyb3IgLT0gX19wdXRfdXNlcigwLG5hbWUtPm5vZGVuYW1lK19fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fY29weV90b191c2VyKCZuYW1lLT5yZWxlYXNlLCZzeXN0ZW1fdXRzbmFtZS5yZWxlYXNlLF9fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fcHV0X3VzZXIoMCxuYW1lLT5yZWxlYXNlK19fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fY29weV90b191c2VyKCZuYW1lLT52ZXJzaW9uLCZzeXN0ZW1fdXRzbmFtZS52ZXJzaW9uLF9fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fcHV0X3VzZXIoMCxuYW1lLT52ZXJzaW9uK19fT0xEX1VUU19MRU4pOwotCWVycm9yIC09IF9fY29weV90b191c2VyKCZuYW1lLT5tYWNoaW5lLCZzeXN0ZW1fdXRzbmFtZS5tYWNoaW5lLF9fT0xEX1VUU19MRU4pOwotCWVycm9yID0gX19wdXRfdXNlcigwLG5hbWUtPm1hY2hpbmUrX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19wdXRfdXNlcigwLG5hbWUtPnN5c25hbWUrX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPm5vZGVuYW1lLCZzeXN0ZW1fdXRzbmFtZS5ub2RlbmFtZSxfX09MRF9VVFNfTEVOKTsKKwllcnJvciB8PSBfX3B1dF91c2VyKDAsbmFtZS0+bm9kZW5hbWUrX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPnJlbGVhc2UsJnN5c3RlbV91dHNuYW1lLnJlbGVhc2UsX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19wdXRfdXNlcigwLG5hbWUtPnJlbGVhc2UrX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPnZlcnNpb24sJnN5c3RlbV91dHNuYW1lLnZlcnNpb24sX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19wdXRfdXNlcigwLG5hbWUtPnZlcnNpb24rX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPm1hY2hpbmUsJnN5c3RlbV91dHNuYW1lLm1hY2hpbmUsX19PTERfVVRTX0xFTik7CisJZXJyb3IgfD0gX19wdXRfdXNlcigwLG5hbWUtPm1hY2hpbmUrX19PTERfVVRTX0xFTik7CisJaWYgKHBlcnNvbmFsaXR5KGN1cnJlbnQtPnBlcnNvbmFsaXR5KSA9PSBQRVJfTElOVVgzMikgeworCQkvKiBjaGFuZ2UgInBwYzY0IiB0byAicHBjIiAqLworCQllcnJvciB8PSBfX3B1dF91c2VyKDAsIG5hbWUtPm1hY2hpbmUgKyAzKTsKKwkJZXJyb3IgfD0gX19wdXRfdXNlcigwLCBuYW1lLT5tYWNoaW5lICsgNCk7CisJfQorCQogCXVwX3JlYWQoJnV0c19zZW0pOwogCiAJZXJyb3IgPSBlcnJvciA/IC1FRkFVTFQgOiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9wcGM2NC9rZXJuZWwvc3lzY2FsbHMuYyBiL2FyY2gvcHBjNjQva2VybmVsL3N5c2NhbGxzLmMKaW5kZXggZjI4NjVmZi4uYThjYmIyMCAxMDA2NDQKLS0tIGEvYXJjaC9wcGM2NC9rZXJuZWwvc3lzY2FsbHMuYworKysgYi9hcmNoL3BwYzY0L2tlcm5lbC9zeXNjYWxscy5jCkBAIC0xOTksMjQgKzE5OSwzMyBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNldF9mYWtlcHBjKGNoYXIgKnN0cikKK2xvbmcgcHBjNjRfcGVyc29uYWxpdHkodW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eSkKIHsKLQlpZiAoKnN0cikKLQkJcmV0dXJuIDA7Ci0JaW5pdF90YXNrLnBlcnNvbmFsaXR5ID0gUEVSX0xJTlVYMzI7Ci0JcmV0dXJuIDE7Ci19Ci1fX3NldHVwKCJmYWtlcHBjIiwgc2V0X2Zha2VwcGMpOworCWxvbmcgcmV0OwogCi1hc21saW5rYWdlIGludCBzeXNfdW5hbWUoc3RydWN0IG9sZF91dHNuYW1lIF9fdXNlciAqIG5hbWUpCisJaWYgKHBlcnNvbmFsaXR5KGN1cnJlbnQtPnBlcnNvbmFsaXR5KSA9PSBQRVJfTElOVVgzMgorCSAgICAmJiBwZXJzb25hbGl0eSA9PSBQRVJfTElOVVgpCisJCXBlcnNvbmFsaXR5ID0gUEVSX0xJTlVYMzI7CisJcmV0ID0gc3lzX3BlcnNvbmFsaXR5KHBlcnNvbmFsaXR5KTsKKwlpZiAocmV0ID09IFBFUl9MSU5VWDMyKQorCQlyZXQgPSBQRVJfTElOVVg7CisJcmV0dXJuIHJldDsKK30KKworbG9uZyBwcGM2NF9uZXd1bmFtZShzdHJ1Y3QgbmV3X3V0c25hbWUgX191c2VyICogbmFtZSkKIHsKLQlpbnQgZXJyID0gLUVGQVVMVDsKLQkKKwlpbnQgZXJyID0gMDsKKwogCWRvd25fcmVhZCgmdXRzX3NlbSk7Ci0JaWYgKG5hbWUgJiYgIWNvcHlfdG9fdXNlcihuYW1lLCAmc3lzdGVtX3V0c25hbWUsIHNpemVvZiAoKm5hbWUpKSkKLQkJZXJyID0gMDsKKwlpZiAoY29weV90b191c2VyKG5hbWUsICZzeXN0ZW1fdXRzbmFtZSwgc2l6ZW9mKCpuYW1lKSkpCisJCWVyciA9IC1FRkFVTFQ7CiAJdXBfcmVhZCgmdXRzX3NlbSk7Ci0JCisJaWYgKCFlcnIgJiYgcGVyc29uYWxpdHkoY3VycmVudC0+cGVyc29uYWxpdHkpID09IFBFUl9MSU5VWDMyKSB7CisJCS8qIGNoYW5nZSBwcGM2NCB0byBwcGMgKi8KKwkJaWYgKF9fcHV0X3VzZXIoMCwgbmFtZS0+bWFjaGluZSArIDMpCisJCSAgICB8fCBfX3B1dF91c2VyKDAsIG5hbWUtPm1hY2hpbmUgKyA0KSkKKwkJCWVyciA9IC1FRkFVTFQ7CisJfQogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9iYXNlLmMgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCmluZGV4IDAxYWUxOTYuLmMwNjc0MzUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9iYXNlLmMKKysrIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYwpAQCAtMjgsNiArMjgsNyBAQAogLy8jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogCiAjaW5jbHVkZSAiYXBwbGRhdGEuaCIKIApAQCAtMTMzLDkgKzEzNCwxMiBAQAogc3RhdGljIGludCBhcHBsZGF0YV90aW1lcl9hY3RpdmU7CiAKIC8qCi0gKiBUYXNrbGV0CisgKiBXb3JrIHF1ZXVlCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgYXBwbGRhdGFfdGFza2xldF9zdHJ1Y3Q7CitzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmFwcGxkYXRhX3dxOworc3RhdGljIHZvaWQgYXBwbGRhdGFfd29ya19mbih2b2lkICpkYXRhKTsKK3N0YXRpYyBERUNMQVJFX1dPUksoYXBwbGRhdGFfd29yaywgYXBwbGRhdGFfd29ya19mbiwgTlVMTCk7CisKIAogLyoKICAqIE9wcyBsaXN0CkBAIC0xNDQsMTEgKzE0OCwxMSBAQAogc3RhdGljIExJU1RfSEVBRChhcHBsZGF0YV9vcHNfbGlzdCk7CiAKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiogdGltZXIsIHRhc2tsZXQsIERJQUcgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiB0aW1lciwgd29yaywgRElBRyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKICAqIGFwcGxkYXRhX3RpbWVyX2Z1bmN0aW9uKCkKICAqCi0gKiBzY2hlZHVsZSB0YXNrbGV0IGFuZCByZXNjaGVkdWxlIHRpbWVyCisgKiBzY2hlZHVsZSB3b3JrIGFuZCByZXNjaGVkdWxlIHRpbWVyCiAgKi8KIHN0YXRpYyB2b2lkIGFwcGxkYXRhX3RpbWVyX2Z1bmN0aW9uKHVuc2lnbmVkIGxvbmcgZGF0YSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CkBAIC0xNTcsMjIgKzE2MSwyMiBAQAogCQlhdG9taWNfcmVhZCgmYXBwbGRhdGFfZXhwaXJlX2NvdW50KSk7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCkpIHsKIAkJYXRvbWljX3NldCgmYXBwbGRhdGFfZXhwaXJlX2NvdW50LCBudW1fb25saW5lX2NwdXMoKSk7Ci0JCXRhc2tsZXRfc2NoZWR1bGUoKHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqKSBkYXRhKTsKKwkJcXVldWVfd29yayhhcHBsZGF0YV93cSwgKHN0cnVjdCB3b3JrX3N0cnVjdCAqKSBkYXRhKTsKIAl9CiB9CiAKIC8qCi0gKiBhcHBsZGF0YV90YXNrbGV0X2Z1bmN0aW9uKCkKKyAqIGFwcGxkYXRhX3dvcmtfZm4oKQogICoKICAqIGNhbGwgZGF0YSBnYXRoZXJpbmcgZnVuY3Rpb24gZm9yIGVhY2ggKGFjdGl2ZSkgbW9kdWxlCiAgKi8KLXN0YXRpYyB2b2lkIGFwcGxkYXRhX3Rhc2tsZXRfZnVuY3Rpb24odW5zaWduZWQgbG9uZyBkYXRhKQorc3RhdGljIHZvaWQgYXBwbGRhdGFfd29ya19mbih2b2lkICpkYXRhKQogewogCXN0cnVjdCBsaXN0X2hlYWQgKmxoOwogCXN0cnVjdCBhcHBsZGF0YV9vcHMgKm9wczsKIAlpbnQgaTsKIAotCVBfREVCVUcoIiAgLT0gVGFza2xldCA9LVxuIik7CisJUF9ERUJVRygiICAtPSBXb3JrIFF1ZXVlID0tXG4iKTsKIAlpID0gMDsKIAlzcGluX2xvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoKGxoLCAmYXBwbGRhdGFfb3BzX2xpc3QpIHsKQEAgLTIzMSw3ICsyMzUsNyBAQAogCQkJOiAiPWQiIChyeSkgOiAiZCIgKCYoYXBwbGRhdGFfcGFyYW1ldGVyX2xpc3QpKSA6ICJjYyIpOwogCXJldHVybiAoaW50KSByeTsKIH0KLS8qKioqKioqKioqKioqKioqKioqKioqIHRpbWVyLCB0YXNrbGV0LCBESUFHIDxFTkQ+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKiogdGltZXIsIHdvcmssIERJQUcgPEVORD4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC9wcm9jIHN0dWZmICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC00MTEsNyArNDE1LDcgQEAKIAlzdHJ1Y3QgbGlzdF9oZWFkICpsaDsKIAogCWZvdW5kID0gMDsKLQlzcGluX2xvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX2xvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoKGxoLCAmYXBwbGRhdGFfb3BzX2xpc3QpIHsKIAkJdG1wX29wcyA9IGxpc3RfZW50cnkobGgsIHN0cnVjdCBhcHBsZGF0YV9vcHMsIGxpc3QpOwogCQlpZiAoJnRtcF9vcHMtPmN0bF90YWJsZVsyXSA9PSBjdGwpIHsKQEAgLTQxOSwxNSArNDIzLDE1IEBACiAJCX0KIAl9CiAJaWYgKCFmb3VuZCkgewotCQlzcGluX3VubG9ja19iaCgmYXBwbGRhdGFfb3BzX2xvY2spOworCQlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJb3BzID0gY3RsLT5kYXRhOwogCWlmICghdHJ5X21vZHVsZV9nZXQob3BzLT5vd25lcikpIHsJLy8gcHJvdGVjdCB0aGlzIGZ1bmN0aW9uCi0JCXNwaW5fdW5sb2NrX2JoKCZhcHBsZGF0YV9vcHNfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KLQlzcGluX3VubG9ja19iaCgmYXBwbGRhdGFfb3BzX2xvY2spOworCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAKIAlpZiAoISpsZW5wIHx8ICpwcG9zKSB7CiAJCSpsZW5wID0gMDsKQEAgLTQ1MSwxMCArNDU1LDExIEBACiAJCXJldHVybiAtRUZBVUxUOwogCX0KIAotCXNwaW5fbG9ja19iaCgmYXBwbGRhdGFfb3BzX2xvY2spOworCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCWlmICgoYnVmWzBdID09ICcxJykgJiYgKG9wcy0+YWN0aXZlID09IDApKSB7Ci0JCWlmICghdHJ5X21vZHVsZV9nZXQob3BzLT5vd25lcikpIHsJLy8gcHJvdGVjdCB0YXNrbGV0Ci0JCQlzcGluX3VubG9ja19iaCgmYXBwbGRhdGFfb3BzX2xvY2spOworCQkvLyBwcm90ZWN0IHdvcmsgcXVldWUgY2FsbGJhY2sKKwkJaWYgKCF0cnlfbW9kdWxlX2dldChvcHMtPm93bmVyKSkgeworCQkJc3Bpbl91bmxvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAkJCW1vZHVsZV9wdXQob3BzLT5vd25lcik7CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJfQpAQCAtNDg1LDcgKzQ5MCw3IEBACiAJCX0KIAkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogb3V0OgogCSpsZW5wID0gbGVuOwogCSpwcG9zICs9IGxlbjsKQEAgLTUyOSw3ICs1MzQsNyBAQAogCX0KIAltZW1zZXQob3BzLT5jdGxfdGFibGUsIDAsIDQqc2l6ZW9mKHN0cnVjdCBjdGxfdGFibGUpKTsKIAotCXNwaW5fbG9ja19iaCgmYXBwbGRhdGFfb3BzX2xvY2spOworCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCWxpc3RfZm9yX2VhY2gobGgsICZhcHBsZGF0YV9vcHNfbGlzdCkgewogCQl0bXBfb3BzID0gbGlzdF9lbnRyeShsaCwgc3RydWN0IGFwcGxkYXRhX29wcywgbGlzdCk7CiAJCVBfREVCVUcoInJlZ2lzdGVyX29wcyBsb29wOiAlaSkgbmFtZSA9ICVzLCBjdGwgPSAlaVxuIiwKQEAgLTU0MSwxOCArNTQ2LDE4IEBACiAJCQkJQVBQTERBVEFfUFJPQ19OQU1FX0xFTkdUSCkgPT0gMCkgewogCQkJUF9FUlJPUigiTmFtZSBcIiVzXCIgYWxyZWFkeSByZWdpc3RlcmVkIVxuIiwgb3BzLT5uYW1lKTsKIAkJCWtmcmVlKG9wcy0+Y3RsX3RhYmxlKTsKLQkJCXNwaW5fdW5sb2NrX2JoKCZhcHBsZGF0YV9vcHNfbG9jayk7CisJCQlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCQlpZiAodG1wX29wcy0+Y3RsX25yID09IG9wcy0+Y3RsX25yKSB7CiAJCQlQX0VSUk9SKCJjdGxfbnIgJWkgYWxyZWFkeSByZWdpc3RlcmVkIVxuIiwgb3BzLT5jdGxfbnIpOwogCQkJa2ZyZWUob3BzLT5jdGxfdGFibGUpOwotCQkJc3Bpbl91bmxvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwkJCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAJfQogCWxpc3RfYWRkKCZvcHMtPmxpc3QsICZhcHBsZGF0YV9vcHNfbGlzdCk7Ci0Jc3Bpbl91bmxvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCiAJb3BzLT5jdGxfdGFibGVbMF0uY3RsX25hbWUgPSBDVExfQVBQTERBVEE7CiAJb3BzLT5jdGxfdGFibGVbMF0ucHJvY25hbWUgPSBhcHBsZGF0YV9wcm9jX25hbWU7CkBAIC01ODMsMTIgKzU4OCwxMiBAQAogICovCiB2b2lkIGFwcGxkYXRhX3VucmVnaXN0ZXJfb3BzKHN0cnVjdCBhcHBsZGF0YV9vcHMgKm9wcykKIHsKLQlzcGluX2xvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX2xvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShvcHMtPnN5c2N0bF9oZWFkZXIpOwogCWxpc3RfZGVsKCZvcHMtPmxpc3QpOwogCWtmcmVlKG9wcy0+Y3RsX3RhYmxlKTsKIAlvcHMtPmN0bF90YWJsZSA9IE5VTEw7Ci0Jc3Bpbl91bmxvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCVBfSU5GTygiJXMtb3BzIHVucmVnaXN0ZXJlZCFcbiIsIG9wcy0+bmFtZSk7CiB9CiAvKioqKioqKioqKioqKioqKioqKioqKiBtb2R1bGUtb3BzIG1hbmFnZW1lbnQgPEVORD4gKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC02MDIsNyArNjA3LDcgQEAKIAlpbml0X3ZpcnRfdGltZXIoJnBlcl9jcHUoYXBwbGRhdGFfdGltZXIsIGNwdSkpOwogCXBlcl9jcHUoYXBwbGRhdGFfdGltZXIsIGNwdSkuZnVuY3Rpb24gPSBhcHBsZGF0YV90aW1lcl9mdW5jdGlvbjsKIAlwZXJfY3B1KGFwcGxkYXRhX3RpbWVyLCBjcHUpLmRhdGEgPSAodW5zaWduZWQgbG9uZykKLQkJJmFwcGxkYXRhX3Rhc2tsZXRfc3RydWN0OworCQkmYXBwbGRhdGFfd29yazsKIAlhdG9taWNfaW5jKCZhcHBsZGF0YV9leHBpcmVfY291bnQpOwogCXNwaW5fbG9jaygmYXBwbGRhdGFfdGltZXJfbG9jayk7CiAJX19hcHBsZGF0YV92dGltZXJfc2V0dXAoQVBQTERBVEFfTU9EX1RJTUVSKTsKQEAgLTYxNSw3ICs2MjAsNyBAQAogCWRlbF92aXJ0X3RpbWVyKCZwZXJfY3B1KGFwcGxkYXRhX3RpbWVyLCBjcHUpKTsKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmYXBwbGRhdGFfZXhwaXJlX2NvdW50KSkgewogCQlhdG9taWNfc2V0KCZhcHBsZGF0YV9leHBpcmVfY291bnQsIG51bV9vbmxpbmVfY3B1cygpKTsKLQkJdGFza2xldF9zY2hlZHVsZSgmYXBwbGRhdGFfdGFza2xldF9zdHJ1Y3QpOworCQlxdWV1ZV93b3JrKGFwcGxkYXRhX3dxLCAmYXBwbGRhdGFfd29yayk7CiAJfQogCXNwaW5fbG9jaygmYXBwbGRhdGFfdGltZXJfbG9jayk7CiAJX19hcHBsZGF0YV92dGltZXJfc2V0dXAoQVBQTERBVEFfTU9EX1RJTUVSKTsKQEAgLTY0OCw3ICs2NTMsNyBAQAogLyoKICAqIGFwcGxkYXRhX2luaXQoKQogICoKLSAqIGluaXQgdGltZXIgYW5kIHRhc2tsZXQsIHJlZ2lzdGVyIC9wcm9jIGVudHJpZXMKKyAqIGluaXQgdGltZXIsIHJlZ2lzdGVyIC9wcm9jIGVudHJpZXMKICAqLwogc3RhdGljIGludCBfX2luaXQgYXBwbGRhdGFfaW5pdCh2b2lkKQogewpAQCAtNjU3LDYgKzY2MiwxMiBAQAogCVBfREVCVUcoInNpemVvZihwYXJhbWV0ZXJfbGlzdCkgPSAlbHVcbiIsCiAJCXNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfcGFyYW1ldGVyX2xpc3QpKTsKIAorCWFwcGxkYXRhX3dxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoImFwcGxkYXRhIik7CisJaWYgKCFhcHBsZGF0YV93cSkgeworCQlQX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIHdvcmsgcXVldWVcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpCiAJCWFwcGxkYXRhX29ubGluZV9jcHUoaSk7CiAKQEAgLTY3MCw3ICs2ODEsNiBAQAogCWFwcGxkYXRhX3RhYmxlWzFdLmRlLT5vd25lciA9IFRISVNfTU9EVUxFOwogI2VuZGlmCiAKLQl0YXNrbGV0X2luaXQoJmFwcGxkYXRhX3Rhc2tsZXRfc3RydWN0LCBhcHBsZGF0YV90YXNrbGV0X2Z1bmN0aW9uLCAwKTsKIAlQX0RFQlVHKCJCYXNlIGludGVyZmFjZSBpbml0aWFsaXplZC5cbiIpOwogCXJldHVybiAwOwogfQpAQCAtNjc4LDcgKzY4OCw3IEBACiAvKgogICogYXBwbGRhdGFfZXhpdCgpCiAgKgotICogc3RvcCB0aW1lciBhbmQgdGFza2xldCwgdW5yZWdpc3RlciAvcHJvYyBlbnRyaWVzCisgKiBzdG9wIHRpbWVyLCB1bnJlZ2lzdGVyIC9wcm9jIGVudHJpZXMKICAqLwogc3RhdGljIHZvaWQgX19leGl0IGFwcGxkYXRhX2V4aXQodm9pZCkKIHsKQEAgLTY5MCw3ICs3MDAsNyBAQAogCS8qCiAJICogb3BzIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LCBidXQganVzdCBpbiBjYXNlIHNvbWV0aGluZyB3ZW50IHdyb25nLi4uCiAJICovCi0Jc3Bpbl9sb2NrX2JoKCZhcHBsZGF0YV9vcHNfbG9jayk7CisJc3Bpbl9sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAJbGlzdF9mb3JfZWFjaChsaCwgJmFwcGxkYXRhX29wc19saXN0KSB7CiAJCW9wcyA9IGxpc3RfZW50cnkobGgsIHN0cnVjdCBhcHBsZGF0YV9vcHMsIGxpc3QpOwogCQlyYyA9IGFwcGxkYXRhX2RpYWcob3BzLT5yZWNvcmRfbnIsIEFQUExEQVRBX1NUT1BfUkVDLApAQCAtNzAwLDcgKzcxMCw3IEBACiAJCQkJInJldHVybiBjb2RlOiAlZFxuIiwgb3BzLT5uYW1lLCByYyk7CiAJCX0KIAl9Ci0Jc3Bpbl91bmxvY2tfYmgoJmFwcGxkYXRhX29wc19sb2NrKTsKKwlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCiAJZm9yX2VhY2hfb25saW5lX2NwdShpKQogCQlhcHBsZGF0YV9vZmZsaW5lX2NwdShpKTsKQEAgLTcwOSw3ICs3MTksNyBAQAogCiAJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUoYXBwbGRhdGFfc3lzY3RsX2hlYWRlcik7CiAKLQl0YXNrbGV0X2tpbGwoJmFwcGxkYXRhX3Rhc2tsZXRfc3RydWN0KTsKKwlkZXN0cm95X3dvcmtxdWV1ZShhcHBsZGF0YV93cSk7CiAJUF9ERUJVRygiLi4uIG1vZHVsZSB1bmxvYWRlZCFcbiIpOwogfQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogaW5pdCAvIGV4aXQgPEVORD4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX21lbS5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX21lbS5jCmluZGV4IDQ2MmVlOWEuLmYwZTJmYmUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbWVtLmMKQEAgLTY4LDcgKzY4LDcgQEAKIAl1NjQgcGdtYWpmYXVsdDsJCS8qIHBhZ2UgZmF1bHRzIChtYWpvciBvbmx5KSAqLwogLy8gPC0tIE5ldyBpbiAyLjYKIAotfSBhcHBsZGF0YV9tZW1fZGF0YTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgYXBwbGRhdGFfbWVtX2RhdGE7CiAKIAogc3RhdGljIGlubGluZSB2b2lkIGFwcGxkYXRhX2RlYnVnX3ByaW50KHN0cnVjdCBhcHBsZGF0YV9tZW1fZGF0YSAqbWVtX2RhdGEpCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX25ldF9zdW0uYwppbmRleCBkZDYxNjM4Li4yYTRjNzQzIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9uZXRfc3VtLmMKQEAgLTU3LDcgKzU3LDcgQEAKIAl1NjQgcnhfZHJvcHBlZDsJCS8qIG5vIHNwYWNlIGluIGxpbnV4IGJ1ZmZlcnMgICAgICovCiAJdTY0IHR4X2Ryb3BwZWQ7CQkvKiBubyBzcGFjZSBhdmFpbGFibGUgaW4gbGludXggICAqLwogCXU2NCBjb2xsaXNpb25zOwkJLyogY29sbGlzaW9ucyB3aGlsZSB0cmFuc21pdHRpbmcgKi8KLX0gYXBwbGRhdGFfbmV0X3N1bV9kYXRhOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBhcHBsZGF0YV9uZXRfc3VtX2RhdGE7CiAKIAogc3RhdGljIGlubGluZSB2b2lkIGFwcGxkYXRhX3ByaW50X2RlYnVnKHN0cnVjdCBhcHBsZGF0YV9uZXRfc3VtX2RhdGEgKm5ldF9kYXRhKQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwppbmRleCBiODNmMDc0Li5lMGE0NzZiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwpAQCAtNDksNyArNDksNyBAQAogCXUzMiBwZXJfY3B1X3NvZnRpcnE7CS8qIC4uLiBzcGVudCBpbiBzb2Z0aXJxcyAgICAgICAgICAgICovCiAJdTMyIHBlcl9jcHVfaW93YWl0OwkvKiAuLi4gc3BlbnQgd2hpbGUgd2FpdGluZyBmb3IgSS9PICAqLwogLy8gPC0tIE5ldyBpbiAyLjYKLX07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogCiBzdHJ1Y3QgYXBwbGRhdGFfb3NfZGF0YSB7CiAJdTY0IHRpbWVzdGFtcDsKQEAgLTc1LDcgKzc1LDcgQEAKIAogCS8qIHBlciBjcHUgZGF0YSAqLwogCXN0cnVjdCBhcHBsZGF0YV9vc19wZXJfY3B1IG9zX2NwdVswXTsKLX07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogCiBzdGF0aWMgc3RydWN0IGFwcGxkYXRhX29zX2RhdGEgKmFwcGxkYXRhX29zX2RhdGE7CiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL3MzOTAva2VybmVsL3B0cmFjZS5jCmluZGV4IDI2ODg5MzYuLjA2YWZhMzEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9wdHJhY2UuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgogCiAjaWZkZWYgQ09ORklHX1MzOTBfU1VQUE9SVAogI2luY2x1ZGUgImNvbXBhdF9wdHJhY2UuaCIKQEAgLTEzMCwxMyArMTMxLDE5IEBACiBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQogewogCXN0cnVjdCB1c2VyICpkdW1teSA9IE5VTEw7Ci0JYWRkcl90IG9mZnNldCwgdG1wOworCWFkZHJfdCBvZmZzZXQsIHRtcCwgbWFzazsKIAogCS8qCiAJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAogCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwuLi4KIAkgKi8KLQlpZiAoKGFkZHIgJiAzKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyKSAtIF9fQUREUl9NQVNLKQorCW1hc2sgPSBfX0FERFJfTUFTSzsKKyNpZmRlZiBDT05GSUdfQVJDSF9TMzkwWAorCWlmIChhZGRyID49IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzICYmCisJICAgIGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3Mub3JpZ19ncHIyKQorCQltYXNrID0gMzsKKyNlbmRpZgorCWlmICgoYWRkciAmIG1hc2spIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gX19BRERSX01BU0spCiAJCXJldHVybiAtRUlPOwogCiAJaWYgKGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3MuYWNycykgewpAQCAtMTUzLDYgKzE2MCwxNiBAQAogCQkgKiBhY2Nlc3MgcmVnaXN0ZXJzIGFyZSBzdG9yZWQgaW4gdGhlIHRocmVhZCBzdHJ1Y3R1cmUKIAkJICovCiAJCW9mZnNldCA9IGFkZHIgLSAoYWRkcl90KSAmZHVtbXktPnJlZ3MuYWNyczsKKyNpZmRlZiBDT05GSUdfQVJDSF9TMzkwWAorCQkvKgorCQkgKiBWZXJ5IHNwZWNpYWwgY2FzZTogb2xkICYgYnJva2VuIDY0IGJpdCBnZGIgcmVhZGluZworCQkgKiBmcm9tIGFjcnNbMTVdLiBSZXN1bHQgaXMgYSA2NCBiaXQgdmFsdWUuIFJlYWQgdGhlCisJCSAqIDMyIGJpdCBhY3JzWzE1XSB2YWx1ZSBhbmQgc2hpZnQgaXQgYnkgMzIuIFNpY2suLi4KKwkJICovCisJCWlmIChhZGRyID09IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzWzE1XSkKKwkJCXRtcCA9ICgodW5zaWduZWQgbG9uZykgY2hpbGQtPnRocmVhZC5hY3JzWzE1XSkgPDwgMzI7CisJCWVsc2UKKyNlbmRpZgogCQl0bXAgPSAqKGFkZHJfdCAqKSgoYWRkcl90KSAmY2hpbGQtPnRocmVhZC5hY3JzICsgb2Zmc2V0KTsKIAogCX0gZWxzZSBpZiAoYWRkciA9PSAoYWRkcl90KSAmZHVtbXktPnJlZ3Mub3JpZ19ncHIyKSB7CkBAIC0xNjcsNiArMTg0LDkgQEAKIAkJICovCiAJCW9mZnNldCA9IGFkZHIgLSAoYWRkcl90KSAmZHVtbXktPnJlZ3MuZnBfcmVnczsKIAkJdG1wID0gKihhZGRyX3QgKikoKGFkZHJfdCkgJmNoaWxkLT50aHJlYWQuZnBfcmVncyArIG9mZnNldCk7CisJCWlmIChhZGRyID09IChhZGRyX3QpICZkdW1teS0+cmVncy5mcF9yZWdzLmZwYykKKwkJCXRtcCAmPSAodW5zaWduZWQgbG9uZykgRlBDX1ZBTElEX01BU0sKKwkJCQk8PCAoQklUU19QRVJfTE9ORyAtIDMyKTsKIAogCX0gZWxzZSBpZiAoYWRkciA8IChhZGRyX3QpICgmZHVtbXktPnJlZ3MucGVyX2luZm8gKyAxKSkgewogCQkvKgpAQCAtMTkxLDEzICsyMTEsMTkgQEAKIHBva2VfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCiB7CiAJc3RydWN0IHVzZXIgKmR1bW15ID0gTlVMTDsKLQlhZGRyX3Qgb2Zmc2V0OworCWFkZHJfdCBvZmZzZXQsIG1hc2s7CiAKIAkvKgogCSAqIFN0dXBpZCBnZGIgcGVla3MvcG9rZXMgdGhlIGFjY2VzcyByZWdpc3RlcnMgaW4gNjQgYml0IHdpdGgKIAkgKiBhbiBhbGlnbm1lbnQgb2YgNC4gUHJvZ3JhbW1lcnMgZnJvbSBoZWxsIGluZGVlZC4uLgogCSAqLwotCWlmICgoYWRkciAmIDMpIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gX19BRERSX01BU0spCisJbWFzayA9IF9fQUREUl9NQVNLOworI2lmZGVmIENPTkZJR19BUkNIX1MzOTBYCisJaWYgKGFkZHIgPj0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMgJiYKKwkgICAgYWRkciA8IChhZGRyX3QpICZkdW1teS0+cmVncy5vcmlnX2dwcjIpCisJCW1hc2sgPSAzOworI2VuZGlmCisJaWYgKChhZGRyICYgbWFzaykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSBfX0FERFJfTUFTSykKIAkJcmV0dXJuIC1FSU87CiAKIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzKSB7CkBAIC0yMjQsNiArMjUwLDE3IEBACiAJCSAqIGFjY2VzcyByZWdpc3RlcnMgYXJlIHN0b3JlZCBpbiB0aGUgdGhyZWFkIHN0cnVjdHVyZQogCQkgKi8KIAkJb2Zmc2V0ID0gYWRkciAtIChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzOworI2lmZGVmIENPTkZJR19BUkNIX1MzOTBYCisJCS8qCisJCSAqIFZlcnkgc3BlY2lhbCBjYXNlOiBvbGQgJiBicm9rZW4gNjQgYml0IGdkYiB3cml0aW5nCisJCSAqIHRvIGFjcnNbMTVdIHdpdGggYSA2NCBiaXQgdmFsdWUuIElnbm9yZSB0aGUgbG93ZXIKKwkJICogaGFsZiBvZiB0aGUgdmFsdWUgYW5kIHdyaXRlIHRoZSB1cHBlciAzMiBiaXQgdG8KKwkJICogYWNyc1sxNV0uIFNpY2suLi4KKwkJICovCisJCWlmIChhZGRyID09IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzWzE1XSkKKwkJCWNoaWxkLT50aHJlYWQuYWNyc1sxNV0gPSAodW5zaWduZWQgaW50KSAoZGF0YSA+PiAzMik7CisJCWVsc2UKKyNlbmRpZgogCQkqKGFkZHJfdCAqKSgoYWRkcl90KSAmY2hpbGQtPnRocmVhZC5hY3JzICsgb2Zmc2V0KSA9IGRhdGE7CiAKIAl9IGVsc2UgaWYgKGFkZHIgPT0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLm9yaWdfZ3ByMikgewpAQCAtMjM3LDcgKzI3NCw4IEBACiAJCSAqIGZsb2F0aW5nIHBvaW50IHJlZ3MuIGFyZSBzdG9yZWQgaW4gdGhlIHRocmVhZCBzdHJ1Y3R1cmUKIAkJICovCiAJCWlmIChhZGRyID09IChhZGRyX3QpICZkdW1teS0+cmVncy5mcF9yZWdzLmZwYyAmJgotCQkgICAgKGRhdGEgJiB+RlBDX1ZBTElEX01BU0spICE9IDApCisJCSAgICAoZGF0YSAmIH4oKHVuc2lnbmVkIGxvbmcpIEZQQ19WQUxJRF9NQVNLCisJCQkgICAgICA8PCAoQklUU19QRVJfTE9ORyAtIDMyKSkpICE9IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJb2Zmc2V0ID0gYWRkciAtIChhZGRyX3QpICZkdW1teS0+cmVncy5mcF9yZWdzOwogCQkqKGFkZHJfdCAqKSgoYWRkcl90KSAmY2hpbGQtPnRocmVhZC5mcF9yZWdzICsgb2Zmc2V0KSA9IGRhdGE7CkBAIC03MjMsNiArNzYxLDEzIEBACiAJCQkJID8gMHg4MCA6IDApKTsKIAogCS8qCisJICogSWYgdGhlIGRlYnVmZmVyIGhhcyBzZXQgYW4gaW52YWxpZCBzeXN0ZW0gY2FsbCBudW1iZXIsCisJICogd2UgcHJlcGFyZSB0byBza2lwIHRoZSBzeXN0ZW0gY2FsbCByZXN0YXJ0IGhhbmRsaW5nLgorCSAqLworCWlmICghZW50cnlleGl0ICYmIHJlZ3MtPmdwcnNbMl0gPj0gTlJfc3lzY2FsbHMpCisJCXJlZ3MtPnRyYXAgPSAtMTsKKworCS8qCiAJICogdGhpcyBpc24ndCB0aGUgc2FtZSBhcyBjb250aW51aW5nIHdpdGggYSBzaWduYWwsIGJ1dCBpdCB3aWxsIGRvCiAJICogZm9yIG5vcm1hbCB1c2UuICBzdHJhY2Ugb25seSBjb250aW51ZXMgd2l0aCBhIHNpZ25hbCBpZiB0aGUKIAkgKiBzdG9wcGluZyBzaWduYWwgaXMgbm90IFNJR1RSQVAuICAtYnJsCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vZmF1bHQuYyBiL2FyY2gvczM5MC9tbS9mYXVsdC5jCmluZGV4IDgwMzA2YmMuLjc1ZmRlOTQgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9mYXVsdC5jCisrKyBiL2FyY2gvczM5MC9tbS9mYXVsdC5jCkBAIC0yMDcsNyArMjA3LDcgQEAKIAkgKiB3ZSBhcmUgbm90IGluIGFuIGludGVycnVwdCBhbmQgdGhhdCB0aGVyZSBpcyBhIAogCSAqIHVzZXIgY29udGV4dC4KIAkgKi8KLSAgICAgICAgaWYgKHVzZXJfYWRkcmVzcyA9PSAwIHx8IGluX2ludGVycnVwdCgpIHx8ICFtbSkKKyAgICAgICAgaWYgKHVzZXJfYWRkcmVzcyA9PSAwIHx8IGluX2F0b21pYygpIHx8ICFtbSkKICAgICAgICAgICAgICAgICBnb3RvIG5vX2NvbnRleHQ7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9LY29uZmlnX2NoYXIgYi9hcmNoL3VtL0tjb25maWdfY2hhcgppbmRleCAzZTUwZmRiLi42MmQ4N2I3IDEwMDY0NAotLS0gYS9hcmNoL3VtL0tjb25maWdfY2hhcgorKysgYi9hcmNoL3VtL0tjb25maWdfY2hhcgpAQCAtMjA0LDUgKzIwNCwxMSBAQAogCWh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZ2tlcm5lbC8pLiAgcm5nZCBwZXJpb2RpY2FsbHkgcmVhZHMKIAkvZGV2L2h3cm5nIGFuZCBpbmplY3RzIHRoZSBlbnRyb3B5IGludG8gL2Rldi9yYW5kb20uCiAKK2NvbmZpZyBNTUFQUEVSCisJdHJpc3RhdGUgImlvbWVtIGVtdWxhdGlvbiBkcml2ZXIiCisJaGVscAorCVRoaXMgZHJpdmVyIGFsbG93cyBhIGhvc3QgZmlsZSB0byBiZSB1c2VkIGFzIGVtdWxhdGVkIElPIG1lbW9yeSBpbnNpZGUKKwlVTUwuCisKIGVuZG1lbnUKIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL01ha2VmaWxlIGIvYXJjaC91bS9kcml2ZXJzL01ha2VmaWxlCmluZGV4IDMyM2Y3MmMuLmIyZGU5OTEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9NYWtlZmlsZQorKysgYi9hcmNoL3VtL2RyaXZlcnMvTWFrZWZpbGUKQEAgLTIyLDggKzIyLDggQEAKIG9iai0kKENPTkZJR19TU0wpICs9IHNzbC5vCiBvYmotJChDT05GSUdfU1RERVJSX0NPTlNPTEUpICs9IHN0ZGVycl9jb25zb2xlLm8KIAotb2JqLSQoQ09ORklHX1VNTF9ORVRfU0xJUCkgKz0gc2xpcC5vCi1vYmotJChDT05GSUdfVU1MX05FVF9TTElSUCkgKz0gc2xpcnAubworb2JqLSQoQ09ORklHX1VNTF9ORVRfU0xJUCkgKz0gc2xpcC5vIHNsaXBfY29tbW9uLm8KK29iai0kKENPTkZJR19VTUxfTkVUX1NMSVJQKSArPSBzbGlycC5vIHNsaXBfY29tbW9uLm8KIG9iai0kKENPTkZJR19VTUxfTkVUX0RBRU1PTikgKz0gZGFlbW9uLm8gCiBvYmotJChDT05GSUdfVU1MX05FVF9NQ0FTVCkgKz0gbWNhc3QubyAKICNvYmotJChDT05GSUdfVU1MX05FVF9QQ0FQKSArPSBwY2FwLm8gJChQQ0FQKQpAQCAtNDEsNiArNDEsNiBAQAogb2JqLSQoQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTikgKz0gY293X3VzZXIubwogb2JqLSQoQ09ORklHX1VNTF9SQU5ET00pICs9IHJhbmRvbS5vCiAKLVVTRVJfT0JKUyA6PSBmZC5vIG51bGwubyBwdHkubyB0dHkubyB4dGVybS5vCitVU0VSX09CSlMgOj0gZmQubyBudWxsLm8gcHR5Lm8gdHR5Lm8geHRlcm0ubyBzbGlwX2NvbW1vbi5vCiAKIGluY2x1ZGUgYXJjaC91bS9zY3JpcHRzL01ha2VmaWxlLnJ1bGVzCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvY2hhbl91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvY2hhbl91c2VyLmMKaW5kZXggNTgzYjhlMS4uNWQzNzY4MSAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL2NoYW5fdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9jaGFuX3VzZXIuYwpAQCAtMTQzLDIyICsxNDMsMjIgQEAKIHsKIAlzdHJ1Y3Qgd2luY2hfZGF0YSBkYXRhOwogCXVuc2lnbmVkIGxvbmcgc3RhY2s7Ci0JaW50IGZkc1syXSwgcGlkLCBuLCBlcnI7CisJaW50IGZkc1syXSwgbiwgZXJyOwogCWNoYXIgYzsKIAogCWVyciA9IG9zX3BpcGUoZmRzLCAxLCAxKTsKIAlpZihlcnIgPCAwKXsKIAkJcHJpbnRrKCJ3aW5jaF90cmFtcCA6IG9zX3BpcGUgZmFpbGVkLCBlcnIgPSAlZFxuIiwgLWVycik7Ci0JCXJldHVybihlcnIpOworCQlnb3RvIG91dDsKIAl9CiAKIAlkYXRhID0gKChzdHJ1Y3Qgd2luY2hfZGF0YSkgeyAucHR5X2ZkIAkJPSBmZCwKIAkJCQkgICAgICAucGlwZV9mZCAJCT0gZmRzWzFdLAogCQkJCSAgICAgIC5jbG9zZV9tZSAJPSBmZHNbMF0gfSApOwotCXBpZCA9IHJ1bl9oZWxwZXJfdGhyZWFkKHdpbmNoX3RocmVhZCwgJmRhdGEsIDAsICZzdGFjaywgMCk7Ci0JaWYocGlkIDwgMCl7CisJZXJyID0gcnVuX2hlbHBlcl90aHJlYWQod2luY2hfdGhyZWFkLCAmZGF0YSwgMCwgJnN0YWNrLCAwKTsKKwlpZihlcnIgPCAwKXsKIAkJcHJpbnRrKCJmb3JrIG9mIHdpbmNoX3RocmVhZCBmYWlsZWQgLSBlcnJubyA9ICVkXG4iLCBlcnJubyk7Ci0JCXJldHVybihwaWQpOworCQlnb3RvIG91dF9jbG9zZTsKIAl9CiAKIAlvc19jbG9zZV9maWxlKGZkc1sxXSk7CkBAIC0xNjgsMTQgKzE2OCwyMiBAQAogCQlwcmludGsoIndpbmNoX3RyYW1wIDogZmFpbGVkIHRvIHJlYWQgc3luY2hyb25pemF0aW9uIGJ5dGVcbiIpOwogCQlwcmludGsoInJlYWQgZmFpbGVkLCBlcnIgPSAlZFxuIiwgLW4pOwogCQlwcmludGsoImZkICVkIHdpbGwgbm90IHN1cHBvcnQgU0lHV0lOQ0hcbiIsIGZkKTsKLQkJKmZkX291dCA9IC0xOworICAgICAgICAgICAgICAgIGVyciA9IC1FSU5WQUw7CisJCWdvdG8gb3V0X2Nsb3NlMTsKIAl9Ci0JcmV0dXJuKHBpZCk7CisJcmV0dXJuIGVyciA7CisKKyBvdXRfY2xvc2U6CisJb3NfY2xvc2VfZmlsZShmZHNbMV0pOworIG91dF9jbG9zZTE6CisJb3NfY2xvc2VfZmlsZShmZHNbMF0pOworIG91dDoKKwlyZXR1cm4gZXJyOwogfQogCiB2b2lkIHJlZ2lzdGVyX3dpbmNoKGludCBmZCwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIHsKLQlpbnQgcGlkLCB0aHJlYWQsIHRocmVhZF9mZDsKKwlpbnQgcGlkLCB0aHJlYWQsIHRocmVhZF9mZCA9IC0xOwogCWludCBjb3VudDsKIAljaGFyIGMgPSAxOwogCkBAIC0xODYsNyArMTk0LDcgQEAKIAlpZighQ0hPT1NFX01PREVfUFJPQyhpc190cmFjZXJfd2luY2gsIGlzX3NrYXNfd2luY2gsIHBpZCwgZmQsCiAJCQkgICAgIHR0eSkgJiYgKHBpZCA9PSAtMSkpewogCQl0aHJlYWQgPSB3aW5jaF90cmFtcChmZCwgdHR5LCAmdGhyZWFkX2ZkKTsKLQkJaWYoZmQgIT0gLTEpeworCQlpZih0aHJlYWQgPiAwKXsKIAkJCXJlZ2lzdGVyX3dpbmNoX2lycSh0aHJlYWRfZmQsIGZkLCB0aHJlYWQsIHR0eSk7CiAKIAkJCWNvdW50ID0gb3Nfd3JpdGVfZmlsZSh0aHJlYWRfZmQsICZjLCBzaXplb2YoYykpOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jCmluZGV4IGE2MzIzMWQuLmEzN2E1YWMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9tbWFwcGVyX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvbW1hcHBlcl9rZXJuLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPiAKICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgpAQCAtMTE3LDI0ICsxMTgsMzkgQEAKIAkucmVsZWFzZQk9IG1tYXBwZXJfcmVsZWFzZSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgbWlzY2RldmljZSBtbWFwcGVyX2RldiA9IHsKKwkubWlub3IJCT0gTUlTQ19EWU5BTUlDX01JTk9SLAorCS5uYW1lCQk9ICJtbWFwcGVyIiwKKwkuZm9wcwkJPSAmbW1hcHBlcl9mb3BzCit9OworCiBzdGF0aWMgaW50IF9faW5pdCBtbWFwcGVyX2luaXQodm9pZCkKIHsKKwlpbnQgZXJyOworCiAJcHJpbnRrKEtFUk5fSU5GTyAiTWFwcGVyIHYwLjFcbiIpOwogCiAJdl9idWYgPSAoY2hhciAqKSBmaW5kX2lvbWVtKCJtbWFwcGVyIiwgJm1tYXBwZXJfc2l6ZSk7CiAJaWYobW1hcHBlcl9zaXplID09IDApewogCQlwcmludGsoS0VSTl9FUlIgIm1tYXBwZXJfaW5pdCAtIGZpbmRfaW9tZW0gZmFpbGVkXG4iKTsKLQkJcmV0dXJuKDApOworCQlnb3RvIG91dDsKKwl9CisKKwllcnIgPSBtaXNjX3JlZ2lzdGVyKCZtbWFwcGVyX2Rldik7CisJaWYoZXJyKXsKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWFwcGVyIC0gbWlzY19yZWdpc3RlciBmYWlsZWQsIGVyciA9ICVkXG4iLAorCQkgICAgICAgZXJyKTsKKwkJZ290byBvdXQ7CiAJfQogCiAJcF9idWYgPSBfX3BhKHZfYnVmKTsKLQotCWRldmZzX21rX2NkZXYoTUtERVYoMzAsIDApLCBTX0lGQ0hSfFNfSVJVR098U19JV1VHTywgIm1tYXBwZXIiKTsKLQlyZXR1cm4oMCk7CitvdXQ6CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIG1tYXBwZXJfZXhpdCh2b2lkKQogeworCW1pc2NfZGVyZWdpc3RlcigmbW1hcHBlcl9kZXYpOwogfQogCiBtb2R1bGVfaW5pdChtbWFwcGVyX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL25ldF91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvbmV0X3VzZXIuYwppbmRleCA0NzIyOWZlLi4zNzMwZDRmIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvbmV0X3VzZXIuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvbmV0X3VzZXIuYwpAQCAtMzIsNyArMzIsNyBAQAogCXJldHVybigwKTsKIH0KIAotdm9pZCB0YXBfY2hlY2tfaXBzKGNoYXIgKmdhdGVfYWRkciwgY2hhciAqZXRoX2FkZHIpCit2b2lkIHRhcF9jaGVja19pcHMoY2hhciAqZ2F0ZV9hZGRyLCB1bnNpZ25lZCBjaGFyICpldGhfYWRkcikKIHsKIAlpbnQgdGFwX2FkZHJbNF07CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlwLmggYi9hcmNoL3VtL2RyaXZlcnMvc2xpcC5oCmluZGV4IDQ5NWYyZjEuLmJiMGRhYjQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9zbGlwLmgKKysrIGIvYXJjaC91bS9kcml2ZXJzL3NsaXAuaApAQCAtMSwxMCArMSw3IEBACiAjaWZuZGVmIF9fVU1fU0xJUF9ICiAjZGVmaW5lIF9fVU1fU0xJUF9ICiAKLSNkZWZpbmUgQlVGX1NJWkUgMTUwMAotIC8qIHR3byBieXRlcyBlYWNoIGZvciBhIChwYXRob2xvZ2ljYWwpIG1heCBwYWNrZXQgb2YgZXNjYXBlZCBjaGFycyArICAqIAotICAqIHRlcm1pbmF0aW5nIEVORCBjaGFyICsgaW5pdGlhbCBFTkQgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBFTkNfQlVGX1NJWkUgKDIgKiBCVUZfU0laRSArIDIpCisjaW5jbHVkZSAic2xpcF9jb21tb24uaCIKIAogc3RydWN0IHNsaXBfZGF0YSB7CiAJdm9pZCAqZGV2OwpAQCAtMTIsMjggKzksMTIgQEAKIAljaGFyICphZGRyOwogCWNoYXIgKmdhdGVfYWRkcjsKIAlpbnQgc2xhdmU7Ci0JY2hhciBpYnVmW0VOQ19CVUZfU0laRV07Ci0JY2hhciBvYnVmW0VOQ19CVUZfU0laRV07Ci0JaW50IG1vcmU7IC8qIG1vcmUgZGF0YTogZG8gbm90IHJlYWQgZmQgdW50aWwgaWJ1ZiBoYXMgYmVlbiBkcmFpbmVkICovCi0JaW50IHBvczsKLQlpbnQgZXNjOworCXN0cnVjdCBzbGlwX3Byb3RvIHNsaXA7CiB9OwogCiBleHRlcm4gc3RydWN0IG5ldF91c2VyX2luZm8gc2xpcF91c2VyX2luZm87CiAKLWV4dGVybiBpbnQgc2V0X3Vtbl9hZGRyKGludCBmZCwgY2hhciAqYWRkciwgY2hhciAqcHRwX2FkZHIpOwogZXh0ZXJuIGludCBzbGlwX3VzZXJfcmVhZChpbnQgZmQsIHZvaWQgKmJ1ZiwgaW50IGxlbiwgc3RydWN0IHNsaXBfZGF0YSAqcHJpKTsKIGV4dGVybiBpbnQgc2xpcF91c2VyX3dyaXRlKGludCBmZCwgdm9pZCAqYnVmLCBpbnQgbGVuLCBzdHJ1Y3Qgc2xpcF9kYXRhICpwcmkpOwogCiAjZW5kaWYKLQotLyoKLSAqIE92ZXJyaWRlcyBmb3IgRW1hY3Mgc28gdGhhdCB3ZSBmb2xsb3cgTGludXMncyB0YWJiaW5nIHN0eWxlLgotICogRW1hY3Mgd2lsbCBub3RpY2UgdGhpcyBzdHVmZiBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCBhdXRvbWF0aWNhbGx5Ci0gKiBhZGp1c3QgdGhlIHNldHRpbmdzIGZvciB0aGlzIGJ1ZmZlciBvbmx5LiAgVGhpcyBtdXN0IHJlbWFpbiBhdCB0aGUgZW5kCi0gKiBvZiB0aGUgZmlsZS4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogTG9jYWwgdmFyaWFibGVzOgotICogYy1maWxlLXN0eWxlOiAibGludXgiCi0gKiBFbmQ6Ci0gKi8KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlwX2NvbW1vbi5jIGIvYXJjaC91bS9kcml2ZXJzL3NsaXBfY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg5Y2ZjNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvdW0vZHJpdmVycy9zbGlwX2NvbW1vbi5jCkBAIC0wLDAgKzEsNTQgQEAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJzbGlwX2NvbW1vbi5oIgorI2luY2x1ZGUgIm5ldF91c2VyLmgiCisKK2ludCBzbGlwX3Byb3RvX3JlYWQoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sIHN0cnVjdCBzbGlwX3Byb3RvICpzbGlwKQoreworCWludCBpLCBuLCBzaXplLCBzdGFydDsKKworCWlmKHNsaXAtPm1vcmUgPiAwKXsKKwkJaSA9IDA7CisJCXdoaWxlKGkgPCBzbGlwLT5tb3JlKXsKKwkJCXNpemUgPSBzbGlwX3VuZXNjKHNsaXAtPmlidWZbaSsrXSwgc2xpcC0+aWJ1ZiwKKwkJCQkJICAmc2xpcC0+cG9zLCAmc2xpcC0+ZXNjKTsKKwkJCWlmKHNpemUpeworCQkJCW1lbWNweShidWYsIHNsaXAtPmlidWYsIHNpemUpOworCQkJCW1lbW1vdmUoc2xpcC0+aWJ1ZiwgJnNsaXAtPmlidWZbaV0sCisJCQkJCXNsaXAtPm1vcmUgLSBpKTsKKwkJCQlzbGlwLT5tb3JlID0gc2xpcC0+bW9yZSAtIGk7CisJCQkJcmV0dXJuIHNpemU7CisJCQl9CisJCX0KKwkJc2xpcC0+bW9yZSA9IDA7CisJfQorCisJbiA9IG5ldF9yZWFkKGZkLCAmc2xpcC0+aWJ1ZltzbGlwLT5wb3NdLAorCQkgICAgIHNpemVvZihzbGlwLT5pYnVmKSAtIHNsaXAtPnBvcyk7CisJaWYobiA8PSAwKQorCQlyZXR1cm4gbjsKKworCXN0YXJ0ID0gc2xpcC0+cG9zOworCWZvcihpID0gMDsgaSA8IG47IGkrKyl7CisJCXNpemUgPSBzbGlwX3VuZXNjKHNsaXAtPmlidWZbc3RhcnQgKyBpXSwgc2xpcC0+aWJ1Ziwmc2xpcC0+cG9zLAorCQkJCSAgJnNsaXAtPmVzYyk7CisJCWlmKHNpemUpeworCQkJbWVtY3B5KGJ1Ziwgc2xpcC0+aWJ1Ziwgc2l6ZSk7CisJCQltZW1tb3ZlKHNsaXAtPmlidWYsICZzbGlwLT5pYnVmW3N0YXJ0K2krMV0sCisJCQkJbiAtIChpICsgMSkpOworCQkJc2xpcC0+bW9yZSA9IG4gLSAoaSArIDEpOworCQkJcmV0dXJuIHNpemU7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludCBzbGlwX3Byb3RvX3dyaXRlKGludCBmZCwgdm9pZCAqYnVmLCBpbnQgbGVuLCBzdHJ1Y3Qgc2xpcF9wcm90byAqc2xpcCkKK3sKKwlpbnQgYWN0dWFsLCBuOworCisJYWN0dWFsID0gc2xpcF9lc2MoYnVmLCBzbGlwLT5vYnVmLCBsZW4pOworCW4gPSBuZXRfd3JpdGUoZmQsIHNsaXAtPm9idWYsIGFjdHVhbCk7CisJaWYobiA8IDApCisJCXJldHVybiBuOworCWVsc2UgcmV0dXJuIGxlbjsKK30KZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlwX3Byb3RvLmggYi9hcmNoL3VtL2RyaXZlcnMvc2xpcF9jb21tb24uaApzaW1pbGFyaXR5IGluZGV4IDYwJQpyZW5hbWUgZnJvbSBhcmNoL3VtL2RyaXZlcnMvc2xpcF9wcm90by5oCnJlbmFtZSB0byBhcmNoL3VtL2RyaXZlcnMvc2xpcF9jb21tb24uaAppbmRleCA3MjA2MzYxLi4yYWU3NmQ4IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc2xpcF9wcm90by5oCisrKyBiL2FyY2gvdW0vZHJpdmVycy9zbGlwX2NvbW1vbi5oCkBAIC0xLDEwICsxLDEwIEBACi0vKiAKLSAqIENvcHlyaWdodCAoQykgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMCi0gKi8KKyNpZm5kZWYgX19VTV9TTElQX0NPTU1PTl9ICisjZGVmaW5lIF9fVU1fU0xJUF9DT01NT05fSAogCi0jaWZuZGVmIF9fVU1fU0xJUF9QUk9UT19IX18KLSNkZWZpbmUgX19VTV9TTElQX1BST1RPX0hfXworI2RlZmluZSBCVUZfU0laRSAxNTAwCisgLyogdHdvIGJ5dGVzIGVhY2ggZm9yIGEgKHBhdGhvbG9naWNhbCkgbWF4IHBhY2tldCBvZiBlc2NhcGVkIGNoYXJzICsgICoKKyAgKiB0ZXJtaW5hdGluZyBFTkQgY2hhciArIGluaXRpYWwgRU5EIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgRU5DX0JVRl9TSVpFICgyICogQlVGX1NJWkUgKyAyKQogCiAvKiBTTElQIHByb3RvY29sIGNoYXJhY3RlcnMuICovCiAjZGVmaW5lIFNMSVBfRU5EICAgICAgICAgICAgIDAzMDAJLyogaW5kaWNhdGVzIGVuZCBvZiBmcmFtZQkqLwpAQCAtMTIsNyArMTIsOCBAQAogI2RlZmluZSBTTElQX0VTQ19FTkQgICAgICAgICAwMzM0CS8qIEVTQyBFU0NfRU5EIG1lYW5zIEVORCAnZGF0YScJKi8KICNkZWZpbmUgU0xJUF9FU0NfRVNDICAgICAgICAgMDMzNQkvKiBFU0MgRVNDX0VTQyBtZWFucyBFU0MgJ2RhdGEnCSovCiAKLXN0YXRpYyBpbmxpbmUgaW50IHNsaXBfdW5lc2ModW5zaWduZWQgY2hhciBjLGNoYXIgKmJ1ZixpbnQgKnBvcywgaW50ICplc2MpCitzdGF0aWMgaW5saW5lIGludCBzbGlwX3VuZXNjKHVuc2lnbmVkIGNoYXIgYywgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICplc2MpCiB7CiAJaW50IHJldDsKIApAQCAtNzksMTUgKzgwLDI1IEBACiAJcmV0dXJuIChwdHIgLSBkKTsKIH0KIAotI2VuZGlmCitzdHJ1Y3Qgc2xpcF9wcm90byB7CisJdW5zaWduZWQgY2hhciBpYnVmW0VOQ19CVUZfU0laRV07CisJdW5zaWduZWQgY2hhciBvYnVmW0VOQ19CVUZfU0laRV07CisJaW50IG1vcmU7IC8qIG1vcmUgZGF0YTogZG8gbm90IHJlYWQgZmQgdW50aWwgaWJ1ZiBoYXMgYmVlbiBkcmFpbmVkICovCisJaW50IHBvczsKKwlpbnQgZXNjOworfTsKIAotLyoKLSAqIE92ZXJyaWRlcyBmb3IgRW1hY3Mgc28gdGhhdCB3ZSBmb2xsb3cgTGludXMncyB0YWJiaW5nIHN0eWxlLgotICogRW1hY3Mgd2lsbCBub3RpY2UgdGhpcyBzdHVmZiBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCBhdXRvbWF0aWNhbGx5Ci0gKiBhZGp1c3QgdGhlIHNldHRpbmdzIGZvciB0aGlzIGJ1ZmZlciBvbmx5LiAgVGhpcyBtdXN0IHJlbWFpbiBhdCB0aGUgZW5kCi0gKiBvZiB0aGUgZmlsZS4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogTG9jYWwgdmFyaWFibGVzOgotICogYy1maWxlLXN0eWxlOiAibGludXgiCi0gKiBFbmQ6Ci0gKi8KKyNkZWZpbmUgU0xJUF9QUk9UT19JTklUIHsgXAorCS5pYnVmICAJPSB7ICdcMCcgfSwgXAorCS5vYnVmICAJPSB7ICdcMCcgfSwgXAorICAgICAgICAubW9yZQk9IDAsIFwKKwkucG9zCT0gMCwgXAorCS5lc2MJPSAwIFwKK30KKworZXh0ZXJuIGludCBzbGlwX3Byb3RvX3JlYWQoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sCisJCQkgICBzdHJ1Y3Qgc2xpcF9wcm90byAqc2xpcCk7CitleHRlcm4gaW50IHNsaXBfcHJvdG9fd3JpdGUoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sCisJCQkgICAgc3RydWN0IHNsaXBfcHJvdG8gKnNsaXApOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlwX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9zbGlwX2tlcm4uYwppbmRleCAwODg2ZWVkLi45YTZmNWM4IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc2xpcF9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3NsaXBfa2Vybi5jCkBAIC0yNiwxNiArMjYsMTYgQEAKIAkJICAuYWRkcgkJPSBOVUxMLAogCQkgIC5nYXRlX2FkZHIgCT0gaW5pdC0+Z2F0ZV9hZGRyLAogCQkgIC5zbGF2ZSAgCT0gLTEsCi0JCSAgLmlidWYgIAk9IHsgJ1wwJyB9LAotCQkgIC5vYnVmICAJPSB7ICdcMCcgfSwKLQkJICAucG9zIAkJPSAwLAotCQkgIC5lc2MgCQk9IDAsCisJCSAgLnNsaXAJCT0gU0xJUF9QUk9UT19JTklULAogCQkgIC5kZXYgCQk9IGRldiB9KTsKIAogCWRldi0+aW5pdCA9IE5VTEw7CisJZGV2LT5oZWFkZXJfY2FjaGVfdXBkYXRlID0gTlVMTDsKKwlkZXYtPmhhcmRfaGVhZGVyX2NhY2hlID0gTlVMTDsKKwlkZXYtPmhhcmRfaGVhZGVyID0gTlVMTDsKIAlkZXYtPmhhcmRfaGVhZGVyX2xlbiA9IDA7Ci0JZGV2LT5hZGRyX2xlbiA9IDQ7Ci0JZGV2LT50eXBlID0gQVJQSFJEX0VUSEVSOworCWRldi0+YWRkcl9sZW4gPSAwOworCWRldi0+dHlwZSA9IEFSUEhSRF9TTElQOwogCWRldi0+dHhfcXVldWVfbGVuID0gMjU2OwogCWRldi0+ZmxhZ3MgPSBJRkZfTk9BUlA7CiAJcHJpbnRrKCJTTElQIGJhY2tlbmQgLSBTTElQIElQID0gJXNcbiIsIHNwcmktPmdhdGVfYWRkcik7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvc2xpcF91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcF91c2VyLmMKaW5kZXggZDk0ODQ2Yi4uNzFhZjQ0NCAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3NsaXBfdXNlci5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9zbGlwX3VzZXIuYwpAQCAtMTMsNyArMTMsNyBAQAogI2luY2x1ZGUgInVzZXIuaCIKICNpbmNsdWRlICJuZXRfdXNlci5oIgogI2luY2x1ZGUgInNsaXAuaCIKLSNpbmNsdWRlICJzbGlwX3Byb3RvLmgiCisjaW5jbHVkZSAic2xpcF9jb21tb24uaCIKICNpbmNsdWRlICJoZWxwZXIuaCIKICNpbmNsdWRlICJvcy5oIgogCkBAIC03Nyw0MSArNzcsNTEgQEAKIAllcnIgPSBvc19waXBlKGZkcywgMSwgMCk7CiAJaWYoZXJyIDwgMCl7CiAJCXByaW50aygic2xpcF90cmFtcCA6IHBpcGUgZmFpbGVkLCBlcnIgPSAlZFxuIiwgLWVycik7Ci0JCXJldHVybihlcnIpOworCQlnb3RvIG91dDsKIAl9CiAKIAllcnIgPSAwOwogCXBlX2RhdGEuc3RkaW4gPSBmZDsKIAlwZV9kYXRhLnN0ZG91dCA9IGZkc1sxXTsKIAlwZV9kYXRhLmNsb3NlX21lID0gZmRzWzBdOwotCXBpZCA9IHJ1bl9oZWxwZXIoc2xpcF9wcmVfZXhlYywgJnBlX2RhdGEsIGFyZ3YsIE5VTEwpOworCWVyciA9IHJ1bl9oZWxwZXIoc2xpcF9wcmVfZXhlYywgJnBlX2RhdGEsIGFyZ3YsIE5VTEwpOworCWlmKGVyciA8IDApCisJCWdvdG8gb3V0X2Nsb3NlOworCXBpZCA9IGVycjsKIAotCWlmKHBpZCA8IDApIGVyciA9IHBpZDsKLQllbHNlIHsKLQkJb3V0cHV0X2xlbiA9IHBhZ2Vfc2l6ZSgpOwotCQlvdXRwdXQgPSB1bV9rbWFsbG9jKG91dHB1dF9sZW4pOwotCQlpZihvdXRwdXQgPT0gTlVMTCkKLQkJCXByaW50aygic2xpcF90cmFtcCA6IGZhaWxlZCB0byBhbGxvY2F0ZSBvdXRwdXQgIgotCQkJICAgICAgICJidWZmZXJcbiIpOwotCi0JCW9zX2Nsb3NlX2ZpbGUoZmRzWzFdKTsKLQkJcmVhZF9vdXRwdXQoZmRzWzBdLCBvdXRwdXQsIG91dHB1dF9sZW4pOwotCQlpZihvdXRwdXQgIT0gTlVMTCl7Ci0JCQlwcmludGsoIiVzIiwgb3V0cHV0KTsKLQkJCWtmcmVlKG91dHB1dCk7Ci0JCX0KLQkJQ0FUQ0hfRUlOVFIoZXJyID0gd2FpdHBpZChwaWQsICZzdGF0dXMsIDApKTsKLQkJaWYoZXJyIDwgMCkKLQkJCWVyciA9IGVycm5vOwotCQllbHNlIGlmKCFXSUZFWElURUQoc3RhdHVzKSB8fCAoV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSAwKSl7Ci0JCQlwcmludGsoIiclcycgZGlkbid0IGV4aXQgd2l0aCBzdGF0dXMgMFxuIiwgYXJndlswXSk7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQl9CisJb3V0cHV0X2xlbiA9IHBhZ2Vfc2l6ZSgpOworCW91dHB1dCA9IHVtX2ttYWxsb2Mob3V0cHV0X2xlbik7CisJaWYob3V0cHV0ID09IE5VTEwpeworCQlwcmludGsoInNsaXBfdHJhbXAgOiBmYWlsZWQgdG8gYWxsb2NhdGUgb3V0cHV0IGJ1ZmZlclxuIik7CisJCW9zX2tpbGxfcHJvY2VzcyhwaWQsIDEpOworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOwogCX0KIAorCW9zX2Nsb3NlX2ZpbGUoZmRzWzFdKTsKKwlyZWFkX291dHB1dChmZHNbMF0sIG91dHB1dCwgb3V0cHV0X2xlbik7CisJcHJpbnRrKCIlcyIsIG91dHB1dCk7CisKKwlDQVRDSF9FSU5UUihlcnIgPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCkpOworCWlmKGVyciA8IDApCisJCWVyciA9IGVycm5vOworCWVsc2UgaWYoIVdJRkVYSVRFRChzdGF0dXMpIHx8IChXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDApKXsKKwkJcHJpbnRrKCInJXMnIGRpZG4ndCBleGl0IHdpdGggc3RhdHVzIDBcbiIsIGFyZ3ZbMF0pOworCQllcnIgPSAtRUlOVkFMOworCX0KKwllbHNlIGVyciA9IDA7CisKIAlvc19jbG9zZV9maWxlKGZkc1swXSk7CiAKLQlyZXR1cm4oZXJyKTsKK291dF9mcmVlOgorCWtmcmVlKG91dHB1dCk7CisJcmV0dXJuIGVycjsKKworb3V0X2Nsb3NlOgorCW9zX2Nsb3NlX2ZpbGUoZmRzWzBdKTsKKwlvc19jbG9zZV9maWxlKGZkc1sxXSk7CitvdXQ6CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBzbGlwX29wZW4odm9pZCAqZGF0YSkKQEAgLTEyMywyMSArMTMzLDI2IEBACiAJCQkgTlVMTCB9OwogCWludCBzZmQsIG1mZCwgZXJyOwogCi0JbWZkID0gZ2V0X3B0eSgpOwotCWlmKG1mZCA8IDApewotCQlwcmludGsoInVtbiA6IEZhaWxlZCB0byBvcGVuIHB0eSwgZXJyID0gJWRcbiIsIC1tZmQpOwotCQlyZXR1cm4obWZkKTsKKwllcnIgPSBnZXRfcHR5KCk7CisJaWYoZXJyIDwgMCl7CisJCXByaW50aygic2xpcC1vcGVuIDogRmFpbGVkIHRvIG9wZW4gcHR5LCBlcnIgPSAlZFxuIiwgLWVycik7CisJCWdvdG8gb3V0OwogCX0KLQlzZmQgPSBvc19vcGVuX2ZpbGUocHRzbmFtZShtZmQpLCBvZl9yZHdyKE9QRU5GTEFHUygpKSwgMCk7Ci0JaWYoc2ZkIDwgMCl7Ci0JCXByaW50aygiQ291bGRuJ3Qgb3BlbiB0dHkgZm9yIHNsaXAgbGluZSwgZXJyID0gJWRcbiIsIC1zZmQpOwotCQlvc19jbG9zZV9maWxlKG1mZCk7Ci0JCXJldHVybihzZmQpOworCW1mZCA9IGVycjsKKworCWVyciA9IG9zX29wZW5fZmlsZShwdHNuYW1lKG1mZCksIG9mX3Jkd3IoT1BFTkZMQUdTKCkpLCAwKTsKKwlpZihlcnIgPCAwKXsKKwkJcHJpbnRrKCJDb3VsZG4ndCBvcGVuIHR0eSBmb3Igc2xpcCBsaW5lLCBlcnIgPSAlZFxuIiwgLWVycik7CisJCWdvdG8gb3V0X2Nsb3NlOwogCX0KLQlpZihzZXRfdXBfdHR5KHNmZCkpIHJldHVybigtMSk7CisJc2ZkID0gZXJyOworCisJaWYoc2V0X3VwX3R0eShzZmQpKQorCQlnb3RvIG91dF9jbG9zZTI7CisKIAlwcmktPnNsYXZlID0gc2ZkOwotCXByaS0+cG9zID0gMDsKLQlwcmktPmVzYyA9IDA7CisJcHJpLT5zbGlwLnBvcyA9IDA7CisJcHJpLT5zbGlwLmVzYyA9IDA7CiAJaWYocHJpLT5nYXRlX2FkZHIgIT0gTlVMTCl7CiAJCXNwcmludGYodmVyc2lvbl9idWYsICIlZCIsIFVNTF9ORVRfVkVSU0lPTik7CiAJCXN0cmNweShnYXRlX2J1ZiwgcHJpLT5nYXRlX2FkZHIpOwpAQCAtMTQ2LDEyICsxNjEsMTIgQEAKIAogCQlpZihlcnIgPCAwKXsKIAkJCXByaW50aygic2xpcF90cmFtcCBmYWlsZWQgLSBlcnIgPSAlZFxuIiwgLWVycik7Ci0JCQlyZXR1cm4oZXJyKTsKKwkJCWdvdG8gb3V0X2Nsb3NlMjsKIAkJfQogCQllcnIgPSBvc19nZXRfaWZuYW1lKHByaS0+c2xhdmUsIHByaS0+bmFtZSk7CiAJCWlmKGVyciA8IDApewogCQkJcHJpbnRrKCJnZXRfaWZuYW1lIGZhaWxlZCwgZXJyID0gJWRcbiIsIC1lcnIpOwotCQkJcmV0dXJuKGVycik7CisJCQlnb3RvIG91dF9jbG9zZTI7CiAJCX0KIAkJaXRlcl9hZGRyZXNzZXMocHJpLT5kZXYsIG9wZW5fYWRkciwgcHJpLT5uYW1lKTsKIAl9CkBAIC0xNjAsMTAgKzE3NSwxNiBAQAogCQlpZihlcnIgPCAwKXsKIAkJCXByaW50aygiRmFpbGVkIHRvIHNldCBzbGlwIGRpc2NpcGxpbmUgZW5jYXBzdWxhdGlvbiAtICIKIAkJCSAgICAgICAiZXJyID0gJWRcbiIsIC1lcnIpOwotCQkJcmV0dXJuKGVycik7CisJCQlnb3RvIG91dF9jbG9zZTI7CiAJCX0KIAl9CiAJcmV0dXJuKG1mZCk7CitvdXRfY2xvc2UyOgorCW9zX2Nsb3NlX2ZpbGUoc2ZkKTsKK291dF9jbG9zZToKKwlvc19jbG9zZV9maWxlKG1mZCk7CitvdXQ6CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIHZvaWQgc2xpcF9jbG9zZShpbnQgZmQsIHZvaWQgKmRhdGEpCkBAIC0xOTAsNDggKzIxMSwxMiBAQAogCiBpbnQgc2xpcF91c2VyX3JlYWQoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sIHN0cnVjdCBzbGlwX2RhdGEgKnByaSkKIHsKLQlpbnQgaSwgbiwgc2l6ZSwgc3RhcnQ7Ci0KLQlpZihwcmktPm1vcmU+MCkgewotCQlpID0gMDsKLQkJd2hpbGUoaSA8IHByaS0+bW9yZSkgewotCQkJc2l6ZSA9IHNsaXBfdW5lc2MocHJpLT5pYnVmW2krK10sCi0JCQkJCXByaS0+aWJ1ZiwgJnByaS0+cG9zLCAmcHJpLT5lc2MpOwotCQkJaWYoc2l6ZSl7Ci0JCQkJbWVtY3B5KGJ1ZiwgcHJpLT5pYnVmLCBzaXplKTsKLQkJCQltZW1tb3ZlKHByaS0+aWJ1ZiwgJnByaS0+aWJ1ZltpXSwgcHJpLT5tb3JlLWkpOwotCQkJCXByaS0+bW9yZT1wcmktPm1vcmUtaTsgCi0JCQkJcmV0dXJuKHNpemUpOwotCQkJfQotCQl9Ci0JCXByaS0+bW9yZT0wOwotCX0KLQotCW4gPSBuZXRfcmVhZChmZCwgJnByaS0+aWJ1ZltwcmktPnBvc10sIHNpemVvZihwcmktPmlidWYpIC0gcHJpLT5wb3MpOwotCWlmKG4gPD0gMCkgcmV0dXJuKG4pOwotCi0Jc3RhcnQgPSBwcmktPnBvczsKLQlmb3IoaSA9IDA7IGkgPCBuOyBpKyspewotCQlzaXplID0gc2xpcF91bmVzYyhwcmktPmlidWZbc3RhcnQgKyBpXSwKLQkJCQlwcmktPmlidWYsICZwcmktPnBvcywgJnByaS0+ZXNjKTsKLQkJaWYoc2l6ZSl7Ci0JCQltZW1jcHkoYnVmLCBwcmktPmlidWYsIHNpemUpOwotCQkJbWVtbW92ZShwcmktPmlidWYsICZwcmktPmlidWZbc3RhcnQraSsxXSwgbi0oaSsxKSk7Ci0JCQlwcmktPm1vcmU9bi0oaSsxKTsgCi0JCQlyZXR1cm4oc2l6ZSk7Ci0JCX0KLQl9Ci0JcmV0dXJuKDApOworCXJldHVybiBzbGlwX3Byb3RvX3JlYWQoZmQsIGJ1ZiwgbGVuLCAmcHJpLT5zbGlwKTsKIH0KIAogaW50IHNsaXBfdXNlcl93cml0ZShpbnQgZmQsIHZvaWQgKmJ1ZiwgaW50IGxlbiwgc3RydWN0IHNsaXBfZGF0YSAqcHJpKQogewotCWludCBhY3R1YWwsIG47Ci0KLQlhY3R1YWwgPSBzbGlwX2VzYyhidWYsIHByaS0+b2J1ZiwgbGVuKTsKLQluID0gbmV0X3dyaXRlKGZkLCBwcmktPm9idWYsIGFjdHVhbCk7Ci0JaWYobiA8IDApIHJldHVybihuKTsKLQllbHNlIHJldHVybihsZW4pOworCXJldHVybiBzbGlwX3Byb3RvX3dyaXRlKGZkLCBidWYsIGxlbiwgJnByaS0+c2xpcCk7CiB9CiAKIHN0YXRpYyBpbnQgc2xpcF9zZXRfbXR1KGludCBtdHUsIHZvaWQgKmRhdGEpCkBAIC0yNjcsMTQgKzI1MiwzIEBACiAJLmRlbGV0ZV9hZGRyZXNzID0gc2xpcF9kZWxfYWRkciwKIAkubWF4X3BhY2tldAk9IEJVRl9TSVpFCiB9OwotCi0vKgotICogT3ZlcnJpZGVzIGZvciBFbWFjcyBzbyB0aGF0IHdlIGZvbGxvdyBMaW51cydzIHRhYmJpbmcgc3R5bGUuCi0gKiBFbWFjcyB3aWxsIG5vdGljZSB0aGlzIHN0dWZmIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIGF1dG9tYXRpY2FsbHkKLSAqIGFkanVzdCB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgYnVmZmVyIG9ubHkuICBUaGlzIG11c3QgcmVtYWluIGF0IHRoZSBlbmQKLSAqIG9mIHRoZSBmaWxlLgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBMb2NhbCB2YXJpYWJsZXM6Ci0gKiBjLWZpbGUtc3R5bGU6ICJsaW51eCIKLSAqIEVuZDoKLSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3NsaXJwLmggYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnAuaAppbmRleCAwNGU0MDdkLi42Y2Y4OGFiIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc2xpcnAuaAorKysgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnAuaApAQCAtMSwxMCArMSw3IEBACiAjaWZuZGVmIF9fVU1fU0xJUlBfSAogI2RlZmluZSBfX1VNX1NMSVJQX0gKIAotI2RlZmluZSBCVUZfU0laRSAxNTAwCi0gLyogdHdvIGJ5dGVzIGVhY2ggZm9yIGEgKHBhdGhvbG9naWNhbCkgbWF4IHBhY2tldCBvZiBlc2NhcGVkIGNoYXJzICsgICogCi0gICogdGVybWluYXRpbmcgRU5EIGNoYXIgKyBpbml0aWFsIEVORCBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEVOQ19CVUZfU0laRSAoMiAqIEJVRl9TSVpFICsgMikKKyNpbmNsdWRlICJzbGlwX2NvbW1vbi5oIgogCiAjZGVmaW5lIFNMSVJQX01BWF9BUkdTIDEwMAogLyoKQEAgLTI0LDI4ICsyMSwxMyBAQAogCXN0cnVjdCBhcmdfbGlzdF9kdW1teV93cmFwcGVyIGFyZ3c7CiAJaW50IHBpZDsKIAlpbnQgc2xhdmU7Ci0JY2hhciBpYnVmW0VOQ19CVUZfU0laRV07Ci0JY2hhciBvYnVmW0VOQ19CVUZfU0laRV07Ci0JaW50IG1vcmU7IC8qIG1vcmUgZGF0YTogZG8gbm90IHJlYWQgZmQgdW50aWwgaWJ1ZiBoYXMgYmVlbiBkcmFpbmVkICovCi0JaW50IHBvczsKLQlpbnQgZXNjOworCXN0cnVjdCBzbGlwX3Byb3RvIHNsaXA7CiB9OwogCiBleHRlcm4gc3RydWN0IG5ldF91c2VyX2luZm8gc2xpcnBfdXNlcl9pbmZvOwogCi1leHRlcm4gaW50IHNldF91bW5fYWRkcihpbnQgZmQsIGNoYXIgKmFkZHIsIGNoYXIgKnB0cF9hZGRyKTsKIGV4dGVybiBpbnQgc2xpcnBfdXNlcl9yZWFkKGludCBmZCwgdm9pZCAqYnVmLCBpbnQgbGVuLCBzdHJ1Y3Qgc2xpcnBfZGF0YSAqcHJpKTsKLWV4dGVybiBpbnQgc2xpcnBfdXNlcl93cml0ZShpbnQgZmQsIHZvaWQgKmJ1ZiwgaW50IGxlbiwgc3RydWN0IHNsaXJwX2RhdGEgKnByaSk7CitleHRlcm4gaW50IHNsaXJwX3VzZXJfd3JpdGUoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sCisJCQkgICAgc3RydWN0IHNsaXJwX2RhdGEgKnByaSk7CiAKICNlbmRpZgotCi0vKgotICogT3ZlcnJpZGVzIGZvciBFbWFjcyBzbyB0aGF0IHdlIGZvbGxvdyBMaW51cydzIHRhYmJpbmcgc3R5bGUuCi0gKiBFbWFjcyB3aWxsIG5vdGljZSB0aGlzIHN0dWZmIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIGF1dG9tYXRpY2FsbHkKLSAqIGFkanVzdCB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgYnVmZmVyIG9ubHkuICBUaGlzIG11c3QgcmVtYWluIGF0IHRoZSBlbmQKLSAqIG9mIHRoZSBmaWxlLgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBMb2NhbCB2YXJpYWJsZXM6Ci0gKiBjLWZpbGUtc3R5bGU6ICJsaW51eCIKLSAqIEVuZDoKLSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3NsaXJwX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9zbGlycF9rZXJuLmMKaW5kZXggYzlkNmI1Mi4uOTg2NGQyNyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL3NsaXJwX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnBfa2Vybi5jCkBAIC0yNSwxMCArMjUsNyBAQAogCQl7IC5hcmd3IAk9IGluaXQtPmFyZ3csCiAJCSAgLnBpZCAgCT0gLTEsCiAJCSAgLnNsYXZlICAJPSAtMSwKLQkJICAuaWJ1ZiAgCT0geyAnXDAnIH0sCi0JCSAgLm9idWYgIAk9IHsgJ1wwJyB9LAotCQkgIC5wb3MgCQk9IDAsCi0JCSAgLmVzYyAJCT0gMCwKKwkJICAuc2xpcAkJPSBTTElQX1BST1RPX0lOSVQsCiAJCSAgLmRldiAJCT0gZGV2IH0pOwogCiAJZGV2LT5pbml0ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9zbGlycF91c2VyLmMgYi9hcmNoL3VtL2RyaXZlcnMvc2xpcnBfdXNlci5jCmluZGV4IGMzMjI1MTUuLjhkOTFmNjYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9zbGlycF91c2VyLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3NsaXJwX3VzZXIuYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgInVzZXIuaCIKICNpbmNsdWRlICJuZXRfdXNlci5oIgogI2luY2x1ZGUgInNsaXJwLmgiCi0jaW5jbHVkZSAic2xpcF9wcm90by5oIgorI2luY2x1ZGUgInNsaXBfY29tbW9uLmgiCiAjaW5jbHVkZSAiaGVscGVyLmgiCiAjaW5jbHVkZSAib3MuaCIKIApAQCAtNDgsNDcgKzQ4LDMyIEBACiAJcmV0dXJuKHBpZCk7CiB9CiAKLS8qIFhYWCBUaGlzIGlzIGp1c3QgYSB0cml2aWFsIHdyYXBwZXIgYXJvdW5kIG9zX3BpcGUgKi8KLXN0YXRpYyBpbnQgc2xpcnBfZGF0YWNoYW4oaW50ICptZmQsIGludCAqc2ZkKQotewotCWludCBmZHNbMl0sIGVycjsKLQotCWVyciA9IG9zX3BpcGUoZmRzLCAxLCAxKTsKLQlpZihlcnIgPCAwKXsKLQkJcHJpbnRrKCJzbGlycF9kYXRhY2hhbjogRmFpbGVkIHRvIG9wZW4gcGlwZSwgZXJyID0gJWRcbiIsIC1lcnIpOwotCQlyZXR1cm4oZXJyKTsKLQl9Ci0KLQkqbWZkID0gZmRzWzBdOwotCSpzZmQgPSBmZHNbMV07Ci0JcmV0dXJuKDApOwotfQotCiBzdGF0aWMgaW50IHNsaXJwX29wZW4odm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc2xpcnBfZGF0YSAqcHJpID0gZGF0YTsKLQlpbnQgc2ZkLCBtZmQsIHBpZCwgZXJyOworCWludCBmZHNbMl0sIHBpZCwgZXJyOwogCi0JZXJyID0gc2xpcnBfZGF0YWNoYW4oJm1mZCwgJnNmZCk7CisJZXJyID0gb3NfcGlwZShmZHMsIDEsIDEpOwogCWlmKGVycikKIAkJcmV0dXJuKGVycik7CiAKLQlwaWQgPSBzbGlycF90cmFtcChwcmktPmFyZ3cuYXJndiwgc2ZkKTsKLQotCWlmKHBpZCA8IDApewotCQlwcmludGsoInNsaXJwX3RyYW1wIGZhaWxlZCAtIGVycm5vID0gJWRcbiIsIC1waWQpOwotCQlvc19jbG9zZV9maWxlKHNmZCk7CQotCQlvc19jbG9zZV9maWxlKG1mZCk7CQotCQlyZXR1cm4ocGlkKTsKKwllcnIgPSBzbGlycF90cmFtcChwcmktPmFyZ3cuYXJndiwgZmRzWzFdKTsKKwlpZihlcnIgPCAwKXsKKwkJcHJpbnRrKCJzbGlycF90cmFtcCBmYWlsZWQgLSBlcnJubyA9ICVkXG4iLCAtZXJyKTsKKwkJZ290byBvdXQ7CiAJfQorCXBpZCA9IGVycjsKIAotCXByaS0+c2xhdmUgPSBzZmQ7Ci0JcHJpLT5wb3MgPSAwOwotCXByaS0+ZXNjID0gMDsKKwlwcmktPnNsYXZlID0gZmRzWzFdOworCXByaS0+c2xpcC5wb3MgPSAwOworCXByaS0+c2xpcC5lc2MgPSAwOworCXByaS0+cGlkID0gZXJyOwogCi0JcHJpLT5waWQgPSBwaWQ7Ci0KLQlyZXR1cm4obWZkKTsKKwlyZXR1cm4oZmRzWzBdKTsKK291dDoKKwlvc19jbG9zZV9maWxlKGZkc1swXSk7CisJb3NfY2xvc2VfZmlsZShmZHNbMV0pOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2b2lkIHNsaXJwX2Nsb3NlKGludCBmZCwgdm9pZCAqZGF0YSkKQEAgLTEyOSw0OCArMTE0LDEyIEBACiAKIGludCBzbGlycF91c2VyX3JlYWQoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sIHN0cnVjdCBzbGlycF9kYXRhICpwcmkpCiB7Ci0JaW50IGksIG4sIHNpemUsIHN0YXJ0OwotCi0JaWYocHJpLT5tb3JlPjApIHsKLQkJaSA9IDA7Ci0JCXdoaWxlKGkgPCBwcmktPm1vcmUpIHsKLQkJCXNpemUgPSBzbGlwX3VuZXNjKHByaS0+aWJ1ZltpKytdLAotCQkJCQlwcmktPmlidWYsJnByaS0+cG9zLCZwcmktPmVzYyk7Ci0JCQlpZihzaXplKXsKLQkJCQltZW1jcHkoYnVmLCBwcmktPmlidWYsIHNpemUpOwotCQkJCW1lbW1vdmUocHJpLT5pYnVmLCAmcHJpLT5pYnVmW2ldLCBwcmktPm1vcmUtaSk7Ci0JCQkJcHJpLT5tb3JlPXByaS0+bW9yZS1pOyAKLQkJCQlyZXR1cm4oc2l6ZSk7Ci0JCQl9Ci0JCX0KLQkJcHJpLT5tb3JlPTA7Ci0JfQotCi0JbiA9IG5ldF9yZWFkKGZkLCAmcHJpLT5pYnVmW3ByaS0+cG9zXSwgc2l6ZW9mKHByaS0+aWJ1ZikgLSBwcmktPnBvcyk7Ci0JaWYobiA8PSAwKSByZXR1cm4obik7Ci0KLQlzdGFydCA9IHByaS0+cG9zOwotCWZvcihpID0gMDsgaSA8IG47IGkrKyl7Ci0JCXNpemUgPSBzbGlwX3VuZXNjKHByaS0+aWJ1ZltzdGFydCArIGldLAotCQkJCXByaS0+aWJ1ZiwmcHJpLT5wb3MsJnByaS0+ZXNjKTsKLQkJaWYoc2l6ZSl7Ci0JCQltZW1jcHkoYnVmLCBwcmktPmlidWYsIHNpemUpOwotCQkJbWVtbW92ZShwcmktPmlidWYsICZwcmktPmlidWZbc3RhcnQraSsxXSwgbi0oaSsxKSk7Ci0JCQlwcmktPm1vcmU9bi0oaSsxKTsgCi0JCQlyZXR1cm4oc2l6ZSk7Ci0JCX0KLQl9Ci0JcmV0dXJuKDApOworCXJldHVybiBzbGlwX3Byb3RvX3JlYWQoZmQsIGJ1ZiwgbGVuLCAmcHJpLT5zbGlwKTsKIH0KIAogaW50IHNsaXJwX3VzZXJfd3JpdGUoaW50IGZkLCB2b2lkICpidWYsIGludCBsZW4sIHN0cnVjdCBzbGlycF9kYXRhICpwcmkpCiB7Ci0JaW50IGFjdHVhbCwgbjsKLQotCWFjdHVhbCA9IHNsaXBfZXNjKGJ1ZiwgcHJpLT5vYnVmLCBsZW4pOwotCW4gPSBuZXRfd3JpdGUoZmQsIHByaS0+b2J1ZiwgYWN0dWFsKTsKLQlpZihuIDwgMCkgcmV0dXJuKG4pOwotCWVsc2UgcmV0dXJuKGxlbik7CisJcmV0dXJuIHNsaXBfcHJvdG9fd3JpdGUoZmQsIGJ1ZiwgbGVuLCAmcHJpLT5zbGlwKTsKIH0KIAogc3RhdGljIGludCBzbGlycF9zZXRfbXR1KGludCBtdHUsIHZvaWQgKmRhdGEpCkBAIC0xODgsMTQgKzEzNywzIEBACiAJLmRlbGV0ZV9hZGRyZXNzID0gTlVMTCwKIAkubWF4X3BhY2tldAk9IEJVRl9TSVpFCiB9OwotCi0vKgotICogT3ZlcnJpZGVzIGZvciBFbWFjcyBzbyB0aGF0IHdlIGZvbGxvdyBMaW51cydzIHRhYmJpbmcgc3R5bGUuCi0gKiBFbWFjcyB3aWxsIG5vdGljZSB0aGlzIHN0dWZmIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIGF1dG9tYXRpY2FsbHkKLSAqIGFkanVzdCB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgYnVmZmVyIG9ubHkuICBUaGlzIG11c3QgcmVtYWluIGF0IHRoZSBlbmQKLSAqIG9mIHRoZSBmaWxlLgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBMb2NhbCB2YXJpYWJsZXM6Ci0gKiBjLWZpbGUtc3R5bGU6ICJsaW51eCIKLSAqIEVuZDoKLSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3N0ZGVycl9jb25zb2xlLmMgYi9hcmNoL3VtL2RyaXZlcnMvc3RkZXJyX2NvbnNvbGUuYwppbmRleCA5ODU2NWI1Li40MjlhZThlIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvc3RkZXJyX2NvbnNvbGUuYworKysgYi9hcmNoL3VtL2RyaXZlcnMvc3RkZXJyX2NvbnNvbGUuYwpAQCAtMjIsOSArMjIsOSBAQAogfQogCiBzdGF0aWMgc3RydWN0IGNvbnNvbGUgc3RkZXJyX2NvbnNvbGUgPSB7Ci0JLm5hbWUJCSJzdGRlcnIiLAotCS53cml0ZQkJc3RkZXJyX2NvbnNvbGVfd3JpdGUsCi0JLmZsYWdzCQlDT05fUFJJTlRCVUZGRVIsCisJLm5hbWUJCT0gInN0ZGVyciIsCisJLndyaXRlCQk9IHN0ZGVycl9jb25zb2xlX3dyaXRlLAorCS5mbGFncwkJPSBDT05fUFJJTlRCVUZGRVIsCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdCBzdGRlcnJfY29uc29sZV9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvbWNvbnNvbGUuaCBiL2FyY2gvdW0vaW5jbHVkZS9tY29uc29sZS5oCmluZGV4IDlmYmUzMDguLmNmYTM2OGUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9tY29uc29sZS5oCisrKyBiL2FyY2gvdW0vaW5jbHVkZS9tY29uc29sZS5oCkBAIC01Niw3ICs1Niw3IEBACiAJaW50IGFzX2ludGVycnVwdDsKIAogCWludCBvcmlnaW5hdGluZ19mZDsKLQlpbnQgb3JpZ2lubGVuOworCXVuc2lnbmVkIGludCBvcmlnaW5sZW47CiAJdW5zaWduZWQgY2hhciBvcmlnaW5bMTI4XTsJCQkvKiBzb2NrYWRkcl91biAqLwogCiAJc3RydWN0IG1jb25zb2xlX3JlcXVlc3QgcmVxdWVzdDsKZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9uZXRfdXNlci5oIGIvYXJjaC91bS9pbmNsdWRlL25ldF91c2VyLmgKaW5kZXggMzY4MDdiNy4uODk4ODVhNyAxMDA2NDQKLS0tIGEvYXJjaC91bS9pbmNsdWRlL25ldF91c2VyLmgKKysrIGIvYXJjaC91bS9pbmNsdWRlL25ldF91c2VyLmgKQEAgLTM1LDcgKzM1LDcgQEAKIGV4dGVybiB2b2lkIGZyZWVfb3V0cHV0X2J1ZmZlcih2b2lkICpidWZmZXIpOwogCiBleHRlcm4gaW50IHRhcF9vcGVuX2NvbW1vbih2b2lkICpkZXYsIGNoYXIgKmdhdGVfYWRkcik7Ci1leHRlcm4gdm9pZCB0YXBfY2hlY2tfaXBzKGNoYXIgKmdhdGVfYWRkciwgY2hhciAqZXRoX2FkZHIpOworZXh0ZXJuIHZvaWQgdGFwX2NoZWNrX2lwcyhjaGFyICpnYXRlX2FkZHIsIHVuc2lnbmVkIGNoYXIgKmV0aF9hZGRyKTsKIAogZXh0ZXJuIHZvaWQgcmVhZF9vdXRwdXQoaW50IGZkLCBjaGFyICpvdXRwdXRfb3V0LCBpbnQgbGVuKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL29zLmggYi9hcmNoL3VtL2luY2x1ZGUvb3MuaAppbmRleCBkMjQ2ZDVhLi44ODFkMjk4IDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvb3MuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvb3MuaApAQCAtMTM2LDcgKzEzNiw3IEBACiBleHRlcm4gaW50IG9zX29wZW5fZmlsZShjaGFyICpmaWxlLCBzdHJ1Y3Qgb3BlbmZsYWdzIGZsYWdzLCBpbnQgbW9kZSk7CiBleHRlcm4gaW50IG9zX3JlYWRfZmlsZShpbnQgZmQsIHZvaWQgKmJ1ZiwgaW50IGxlbik7CiBleHRlcm4gaW50IG9zX3dyaXRlX2ZpbGUoaW50IGZkLCBjb25zdCB2b2lkICpidWYsIGludCBjb3VudCk7Ci1leHRlcm4gaW50IG9zX2ZpbGVfc2l6ZShjaGFyICpmaWxlLCBsb25nIGxvbmcgKnNpemVfb3V0KTsKK2V4dGVybiBpbnQgb3NfZmlsZV9zaXplKGNoYXIgKmZpbGUsIHVuc2lnbmVkIGxvbmcgbG9uZyAqc2l6ZV9vdXQpOwogZXh0ZXJuIGludCBvc19maWxlX21vZHRpbWUoY2hhciAqZmlsZSwgdW5zaWduZWQgbG9uZyAqbW9kdGltZSk7CiBleHRlcm4gaW50IG9zX3BpcGUoaW50ICpmZCwgaW50IHN0cmVhbSwgaW50IGNsb3NlX29uX2V4ZWMpOwogZXh0ZXJuIGludCBvc19zZXRfZmRfYXN5bmMoaW50IGZkLCBpbnQgb3duZXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2L3B0cmFjZS5oIGIvYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2L3B0cmFjZS5oCmluZGV4IDZlYWViOTkuLmM4ZWU5NTUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zeXNkZXAtaTM4Ni9wdHJhY2UuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkzODYvcHRyYWNlLmgKQEAgLTgsNiArOCw4IEBACiAKICNpbmNsdWRlICJ1bWwtY29uZmlnLmgiCiAjaW5jbHVkZSAidXNlcl9jb25zdGFudHMuaCIKKyNpbmNsdWRlICJzeXNkZXAvZmF1bHRpbmZvLmgiCisjaW5jbHVkZSAiY2hvb3NlLW1vZGUuaCIKIAogI2RlZmluZSBNQVhfUkVHX05SIChVTV9GUkFNRV9TSVpFIC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQogI2RlZmluZSBNQVhfUkVHX09GRlNFVCAoVU1fRlJBTUVfU0laRSkKQEAgLTU4LDkgKzYwLDYgQEAKICNkZWZpbmUgUFRSQUNFX1NZU0VNVV9TSU5HTEVTVEVQIDMyCiAjZW5kaWYKIAotI2luY2x1ZGUgInN5c2RlcC9mYXVsdGluZm8uaCIKLSNpbmNsdWRlICJjaG9vc2UtbW9kZS5oIgotCiB1bmlvbiB1bWxfcHRfcmVncyB7CiAjaWZkZWYgVU1MX0NPTkZJR19NT0RFX1RUCiAJc3RydWN0IHR0X3JlZ3MgewpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL3VzZXJfdXRpbC5oIGIvYXJjaC91bS9pbmNsdWRlL3VzZXJfdXRpbC5oCmluZGV4IGI4YzViOGEuLjdiNmEyNGQgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS91c2VyX3V0aWwuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvdXNlcl91dGlsLmgKQEAgLTQxLDkgKzQxLDYgQEAKIGV4dGVybiBjaGFyIGhvc3RfaW5mb1tdOwogCiBleHRlcm4gY2hhciBzYXZlZF9jb21tYW5kX2xpbmVbXTsKLWV4dGVybiBjaGFyIGNvbW1hbmRfbGluZVtdOwotCi1leHRlcm4gY2hhciAqdGVtcGRpcjsKIAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX3N0ZXh0LCBfZXRleHQsIF9zZGF0YSwgX2VkYXRhLCBfX2Jzc19zdGFydCwgX2VuZDsKIGV4dGVybiB1bnNpZ25lZCBsb25nIF91bnByb3RlY3RlZF9lbmQ7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC9tYWluLmMgYi9hcmNoL3VtL2tlcm5lbC9tYWluLmMKaW5kZXggZTQyZTYzNi4uZTU5ZjU4MSAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvbWFpbi5jCisrKyBiL2FyY2gvdW0va2VybmVsL21haW4uYwpAQCAtMjQsOCArMjQsNiBAQAogI2luY2x1ZGUgIm1vZGUuaCIKICNpbmNsdWRlICJjaG9vc2UtbW9kZS5oIgogI2luY2x1ZGUgInVtbC1jb25maWcuaCIKLSNpbmNsdWRlICJpcnFfdXNlci5oIgotI2luY2x1ZGUgInRpbWVfdXNlci5oIgogI2luY2x1ZGUgIm9zLmgiCiAKIC8qIFNldCBpbiBzZXRfc3RrbGltLCB3aGljaCBpcyBjYWxsZWQgZnJvbSBtYWluIGFuZCBfX3dyYXBfbWFsbG9jLgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC91bS9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDUxZjhlNWEuLjFiNWVmM2UgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3VtL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJpbml0LmgiCiAjaW5jbHVkZSAib3MuaCIKICNpbmNsdWRlICJ1bWwtY29uZmlnLmgiCi0jaW5jbHVkZSAicHRyYWNlX3VzZXIuaCIKICNpbmNsdWRlICJjaG9vc2UtbW9kZS5oIgogI2luY2x1ZGUgIm1vZGUuaCIKICNpZmRlZiBVTUxfQ09ORklHX01PREVfU0tBUwpAQCAtMTMxLDcgKzEzMCw3IEBACiAJcmV0dXJuKGFyZy5waWQpOwogfQogCi1zdGF0aWMgaW50IHB0cmFjZV9jaGlsZCh2b2lkICphcmcpCitzdGF0aWMgaW50IHB0cmFjZV9jaGlsZCh2b2lkKQogewogCWludCByZXQ7CiAJaW50IHBpZCA9IG9zX2dldHBpZCgpLCBwcGlkID0gZ2V0cHBpZCgpOwpAQCAtMTYwLDIwICsxNTksMTYgQEAKIAlfZXhpdChyZXQpOwogfQogCi1zdGF0aWMgaW50IHN0YXJ0X3B0cmFjZWRfY2hpbGQodm9pZCAqKnN0YWNrX291dCkKK3N0YXRpYyBpbnQgc3RhcnRfcHRyYWNlZF9jaGlsZCh2b2lkKQogewotCXZvaWQgKnN0YWNrOwotCXVuc2lnbmVkIGxvbmcgc3A7CiAJaW50IHBpZCwgbiwgc3RhdHVzOwogCQotCXN0YWNrID0gbW1hcChOVUxMLCBQQUdFX1NJWkUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUgfCBQUk9UX0VYRUMsCi0JCSAgICAgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTllNT1VTLCAtMSwgMCk7Ci0JaWYoc3RhY2sgPT0gTUFQX0ZBSUxFRCkKLQkJcGFuaWMoImNoZWNrX3B0cmFjZSA6IG1tYXAgZmFpbGVkLCBlcnJubyA9ICVkIiwgZXJybm8pOwotCXNwID0gKHVuc2lnbmVkIGxvbmcpIHN0YWNrICsgUEFHRV9TSVpFIC0gc2l6ZW9mKHZvaWQgKik7Ci0JcGlkID0gY2xvbmUocHRyYWNlX2NoaWxkLCAodm9pZCAqKSBzcCwgU0lHQ0hMRCwgTlVMTCk7CisJcGlkID0gZm9yaygpOworCWlmKHBpZCA9PSAwKQorCQlwdHJhY2VfY2hpbGQoKTsKKwogCWlmKHBpZCA8IDApCi0JCXBhbmljKCJjaGVja19wdHJhY2UgOiBjbG9uZSBmYWlsZWQsIGVycm5vID0gJWQiLCBlcnJubyk7CisJCXBhbmljKCJjaGVja19wdHJhY2UgOiBmb3JrIGZhaWxlZCwgZXJybm8gPSAlZCIsIGVycm5vKTsKIAlDQVRDSF9FSU5UUihuID0gd2FpdHBpZChwaWQsICZzdGF0dXMsIFdVTlRSQUNFRCkpOwogCWlmKG4gPCAwKQogCQlwYW5pYygiY2hlY2tfcHRyYWNlIDogd2FpdCBmYWlsZWQsIGVycm5vID0gJWQiLCBlcnJubyk7CkBAIC0xODEsNyArMTc2LDYgQEAKIAkJcGFuaWMoImNoZWNrX3B0cmFjZSA6IGV4cGVjdGVkIFNJR1NUT1AsIGdvdCBzdGF0dXMgPSAlZCIsCiAJCSAgICAgIHN0YXR1cyk7CiAKLQkqc3RhY2tfb3V0ID0gc3RhY2s7CiAJcmV0dXJuKHBpZCk7CiB9CiAKQEAgLTE4OSwxMiArMTgzLDEyIEBACiAgKiBqdXN0IGF2b2lkIHVzaW5nIHN5c2VtdSwgbm90IHBhbmljLCBidXQgb25seSBpZiBTWVNFTVUgZmVhdHVyZXMgYXJlIGJyb2tlbi4KICAqIFNvIG9ubHkgZm9yIFNZU0VNVSBmZWF0dXJlcyB3ZSB0ZXN0IG11c3RwYW5pYywgd2hpbGUgbm9ybWFsIGhvc3QgZmVhdHVyZXMKICAqIG11c3Qgd29yayBhbnl3YXkhKi8KLXN0YXRpYyBpbnQgc3RvcF9wdHJhY2VkX2NoaWxkKGludCBwaWQsIHZvaWQgKnN0YWNrLCBpbnQgZXhpdGNvZGUsIGludCBtdXN0cGFuaWMpCitzdGF0aWMgaW50IHN0b3BfcHRyYWNlZF9jaGlsZChpbnQgcGlkLCBpbnQgZXhpdGNvZGUsIGludCBtdXN0ZXhpdCkKIHsKIAlpbnQgc3RhdHVzLCBuLCByZXQgPSAwOwogCiAJaWYocHRyYWNlKFBUUkFDRV9DT05ULCBwaWQsIDAsIDApIDwgMCkKLQkJcGFuaWMoImNoZWNrX3B0cmFjZSA6IHB0cmFjZSBmYWlsZWQsIGVycm5vID0gJWQiLCBlcnJubyk7CisJCXBhbmljKCJzdG9wX3B0cmFjZWRfY2hpbGQgOiBwdHJhY2UgZmFpbGVkLCBlcnJubyA9ICVkIiwgZXJybm8pOwogCUNBVENIX0VJTlRSKG4gPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCkpOwogCWlmKCFXSUZFWElURUQoc3RhdHVzKSB8fCAoV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSBleGl0Y29kZSkpIHsKIAkJaW50IGV4aXRfd2l0aCA9IFdFWElUU1RBVFVTKHN0YXR1cyk7CkBAIC0yMDUsMTUgKzE5OSwxMyBAQAogCQlwcmludGsoImNoZWNrX3B0cmFjZSA6IGNoaWxkIGV4aXRlZCB3aXRoIGV4aXRjb2RlICVkLCB3aGlsZSAiCiAJCSAgICAgICJleHBlY3RpbmcgJWQ7IHN0YXR1cyAweCV4IiwgZXhpdF93aXRoLAogCQkgICAgICBleGl0Y29kZSwgc3RhdHVzKTsKLQkJaWYgKG11c3RwYW5pYykKKwkJaWYgKG11c3RleGl0KQogCQkJcGFuaWMoIlxuIik7CiAJCWVsc2UKIAkJCXByaW50aygiXG4iKTsKIAkJcmV0ID0gLTE7CiAJfQogCi0JaWYobXVubWFwKHN0YWNrLCBQQUdFX1NJWkUpIDwgMCkKLQkJcGFuaWMoImNoZWNrX3B0cmFjZSA6IG11bm1hcCBmYWlsZWQsIGVycm5vID0gJWQiLCBlcnJubyk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjM1LDEyICsyMjcsMTEgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IGNoZWNrX3N5c2VtdSh2b2lkKQogewotCXZvaWQgKnN0YWNrOwogCWludCBwaWQsIHN5c2NhbGwsIG4sIHN0YXR1cywgY291bnQ9MDsKIAogCXByaW50aygiQ2hlY2tpbmcgc3lzY2FsbCBlbXVsYXRpb24gcGF0Y2ggZm9yIHB0cmFjZS4uLiIpOwogCXN5c2VtdV9zdXBwb3J0ZWQgPSAwOwotCXBpZCA9IHN0YXJ0X3B0cmFjZWRfY2hpbGQoJnN0YWNrKTsKKwlwaWQgPSBzdGFydF9wdHJhY2VkX2NoaWxkKCk7CiAKIAlpZihwdHJhY2UoUFRSQUNFX1NZU0VNVSwgcGlkLCAwLCAwKSA8IDApCiAJCWdvdG8gZmFpbDsKQEAgLTI1OCw3ICsyNDksNyBAQAogCQlwYW5pYygiY2hlY2tfc3lzZW11IDogZmFpbGVkIHRvIG1vZGlmeSBzeXN0ZW0gIgogCQkgICAgICAiY2FsbCByZXR1cm4sIGVycm5vID0gJWQiLCBlcnJubyk7CiAKLQlpZiAoc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgc3RhY2ssIDAsIDApIDwgMCkKKwlpZiAoc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgMCwgMCkgPCAwKQogCQlnb3RvIGZhaWxfc3RvcHBlZDsKIAogCXN5c2VtdV9zdXBwb3J0ZWQgPSAxOwpAQCAtMjY2LDcgKzI1Nyw3IEBACiAJc2V0X3VzaW5nX3N5c2VtdSghZm9yY2Vfc3lzZW11X2Rpc2FibGVkKTsKIAogCXByaW50aygiQ2hlY2tpbmcgYWR2YW5jZWQgc3lzY2FsbCBlbXVsYXRpb24gcGF0Y2ggZm9yIHB0cmFjZS4uLiIpOwotCXBpZCA9IHN0YXJ0X3B0cmFjZWRfY2hpbGQoJnN0YWNrKTsKKwlwaWQgPSBzdGFydF9wdHJhY2VkX2NoaWxkKCk7CiAJd2hpbGUoMSl7CiAJCWNvdW50Kys7CiAJCWlmKHB0cmFjZShQVFJBQ0VfU1lTRU1VX1NJTkdMRVNURVAsIHBpZCwgMCwgMCkgPCAwKQpAQCAtMjkxLDcgKzI4Miw3IEBACiAJCQlicmVhazsKIAkJfQogCX0KLQlpZiAoc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgc3RhY2ssIDAsIDApIDwgMCkKKwlpZiAoc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgMCwgMCkgPCAwKQogCQlnb3RvIGZhaWxfc3RvcHBlZDsKIAogCXN5c2VtdV9zdXBwb3J0ZWQgPSAyOwpAQCAtMzAyLDE4ICsyOTMsMTcgQEAKIAlyZXR1cm47CiAKIGZhaWw6Ci0Jc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgc3RhY2ssIDEsIDApOworCXN0b3BfcHRyYWNlZF9jaGlsZChwaWQsIDEsIDApOwogZmFpbF9zdG9wcGVkOgogCXByaW50aygibWlzc2luZ1xuIik7CiB9CiAKIHZvaWQgX19pbml0IGNoZWNrX3B0cmFjZSh2b2lkKQogewotCXZvaWQgKnN0YWNrOwogCWludCBwaWQsIHN5c2NhbGwsIG4sIHN0YXR1czsKIAogCXByaW50aygiQ2hlY2tpbmcgdGhhdCBwdHJhY2UgY2FuIGNoYW5nZSBzeXN0ZW0gY2FsbCBudW1iZXJzLi4uIik7Ci0JcGlkID0gc3RhcnRfcHRyYWNlZF9jaGlsZCgmc3RhY2spOworCXBpZCA9IHN0YXJ0X3B0cmFjZWRfY2hpbGQoKTsKIAogCWlmIChwdHJhY2UoUFRSQUNFX09MRFNFVE9QVElPTlMsIHBpZCwgMCwgKHZvaWQgKilQVFJBQ0VfT19UUkFDRVNZU0dPT0QpIDwgMCkKIAkJcGFuaWMoImNoZWNrX3B0cmFjZTogUFRSQUNFX1NFVE9QVElPTlMgZmFpbGVkLCBlcnJubyA9ICVkIiwgZXJybm8pOwpAQCAtMzQwLDcgKzMzMCw3IEBACiAJCQlicmVhazsKIAkJfQogCX0KLQlzdG9wX3B0cmFjZWRfY2hpbGQocGlkLCBzdGFjaywgMCwgMSk7CisJc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgMCwgMSk7CiAJcHJpbnRrKCJPS1xuIik7CiAJY2hlY2tfc3lzZW11KCk7CiB9CkBAIC0zNzIsMTEgKzM2MiwxMCBAQAogc3RhdGljIGlubGluZSBpbnQgY2hlY2tfc2thczNfcHRyYWNlX3N1cHBvcnQodm9pZCkKIHsKIAlzdHJ1Y3QgcHRyYWNlX2ZhdWx0aW5mbyBmaTsKLQl2b2lkICpzdGFjazsKIAlpbnQgcGlkLCBuLCByZXQgPSAxOwogCiAJcHJpbnRmKCJDaGVja2luZyBmb3IgdGhlIHNrYXMzIHBhdGNoIGluIHRoZSBob3N0Li4uIik7Ci0JcGlkID0gc3RhcnRfcHRyYWNlZF9jaGlsZCgmc3RhY2spOworCXBpZCA9IHN0YXJ0X3B0cmFjZWRfY2hpbGQoKTsKIAogCW4gPSBwdHJhY2UoUFRSQUNFX0ZBVUxUSU5GTywgcGlkLCAwLCAmZmkpOwogCWlmIChuIDwgMCkgewpAQCAtMzkxLDcgKzM4MCw3IEBACiAJfQogCiAJaW5pdF9yZWdpc3RlcnMocGlkKTsKLQlzdG9wX3B0cmFjZWRfY2hpbGQocGlkLCBzdGFjaywgMSwgMSk7CisJc3RvcF9wdHJhY2VkX2NoaWxkKHBpZCwgMSwgMSk7CiAKIAlyZXR1cm4ocmV0KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3NrYXMvcHJvY2Vzc19rZXJuLmMgYi9hcmNoL3VtL2tlcm5lbC9za2FzL3Byb2Nlc3Nfa2Vybi5jCmluZGV4IGFiNWQzMjcuLmZjNzFlZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL3NrYXMvcHJvY2Vzc19rZXJuLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvc2thcy9wcm9jZXNzX2tlcm4uYwpAQCAtNjgsOCArNjgsMTEgQEAKIAkgKiAwIGlmIGl0IGp1c3QgZXhpdHMKIAkgKi8KIAluID0gcnVuX2tlcm5lbF90aHJlYWQoZm4sIGFyZywgJmN1cnJlbnQtPnRocmVhZC5leGVjX2J1Zik7Ci0JaWYobiA9PSAxKQorCWlmKG4gPT0gMSl7CisJCS8qIEhhbmRsZSBhbnkgaW1tZWRpYXRlIHJlc2NoZWR1bGVzIG9yIHNpZ25hbHMgKi8KKwkJaW50ZXJydXB0X2VuZCgpOwogCQl1c2Vyc3BhY2UoJmN1cnJlbnQtPnRocmVhZC5yZWdzLnJlZ3MpOworCX0KIAllbHNlIGRvX2V4aXQoMCk7CiB9CiAKQEAgLTk2LDYgKzk5LDggQEAKIAlzY2hlZHVsZV90YWlsKGN1cnJlbnQtPnRocmVhZC5wcmV2X3NjaGVkKTsKIAljdXJyZW50LT50aHJlYWQucHJldl9zY2hlZCA9IE5VTEw7CiAKKwkvKiBIYW5kbGUgYW55IGltbWVkaWF0ZSByZXNjaGVkdWxlcyBvciBzaWduYWxzICovCisJaW50ZXJydXB0X2VuZCgpOwogCXVzZXJzcGFjZSgmY3VycmVudC0+dGhyZWFkLnJlZ3MucmVncyk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3VtX2FyY2guYyBiL2FyY2gvdW0va2VybmVsL3VtX2FyY2guYwppbmRleCA0MTg0MjcxLi44NzM2ZDA5IDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC91bV9hcmNoLmMKKysrIGIvYXJjaC91bS9rZXJuZWwvdW1fYXJjaC5jCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiYXNtL3NldHVwLmgiCiAjaW5jbHVkZSAidWJkX3VzZXIuaCIKICNpbmNsdWRlICJhc20vY3VycmVudC5oIgotI2luY2x1ZGUgImFzbS9zZXR1cC5oIgogI2luY2x1ZGUgInVzZXJfdXRpbC5oIgogI2luY2x1ZGUgImtlcm5fdXRpbC5oIgogI2luY2x1ZGUgImtlcm4uaCIKZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvZWxmX2F1eC5jIGIvYXJjaC91bS9vcy1MaW51eC9lbGZfYXV4LmMKaW5kZXggOWFlZTBiNi4uZjBkNjA2MCAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9lbGZfYXV4LmMKKysrIGIvYXJjaC91bS9vcy1MaW51eC9lbGZfYXV4LmMKQEAgLTQ1LDcgKzQ1LDExIEBACiAJCQkJZWxmX2F1eF9od2NhcCA9IGF1eHYtPmFfdW4uYV92YWw7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEFUX1BMQVRGT1JNOgotCQkJCWVsZl9hdXhfcGxhdGZvcm0gPSBhdXh2LT5hX3VuLmFfcHRyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbGYuaCByZW1vdmVkIHRoZSBwb2ludGVyIGVsZW1lbnRzIGZyb20KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYV91biwgc28gd2UgaGF2ZSB0byB1c2UgYV92YWwsIHdoaWNoIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFsbCB0aGF0J3MgbGVmdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisJCQkJZWxmX2F1eF9wbGF0Zm9ybSA9IChjaGFyICopIGF1eHYtPmFfdW4uYV92YWw7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEFUX1BBR0VTWjoKIAkJCQlwYWdlX3NpemUgPSBhdXh2LT5hX3VuLmFfdmFsOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9maWxlLmMgYi9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYwppbmRleCA3N2Q0MDY2Li5mZDQ1YmIyIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L2ZpbGUuYwpAQCAtMzYzLDcgKzM2Myw3IEBACiAJCSAgICAgICAoaW50ICgqKShpbnQsIHZvaWQgKiwgaW50KSkgd3JpdGUsIGNvcHlfdG9fdXNlcl9wcm9jKSk7CiB9CiAKLWludCBvc19maWxlX3NpemUoY2hhciAqZmlsZSwgbG9uZyBsb25nICpzaXplX291dCkKK2ludCBvc19maWxlX3NpemUoY2hhciAqZmlsZSwgdW5zaWduZWQgbG9uZyBsb25nICpzaXplX291dCkKIHsKIAlzdHJ1Y3QgdW1sX3N0YXQgYnVmOwogCWludCBlcnI7CmRpZmYgLS1naXQgYS9hcmNoL3VtL3NjcmlwdHMvTWFrZWZpbGUucnVsZXMgYi9hcmNoL3VtL3NjcmlwdHMvTWFrZWZpbGUucnVsZXMKaW5kZXggMGIyNDkxOC4uOTgzNDZjNyAxMDA2NDQKLS0tIGEvYXJjaC91bS9zY3JpcHRzL01ha2VmaWxlLnJ1bGVzCisrKyBiL2FyY2gvdW0vc2NyaXB0cy9NYWtlZmlsZS5ydWxlcwpAQCAtMTQsNyArMTQsNyBAQAogY21kX21ha2VfbGluayAgICAgICA9IGxuIC1zZiAkKHNyY3RyZWUpL2FyY2gvJChTVUJBUkNIKS8kKCQobm90ZGlyICRAKS1kaXIpLyQobm90ZGlyICRAKSAkQAogCiAjIHRoaXMgbmVlZHMgdG8gYmUgYmVmb3JlIHRoZSBmb3JlYWNoLCBiZWNhdXNlIHRhcmdldHMgZG9lcyBub3QgYWNjZXB0Ci0jIGNvbXBsZXRlIHBhdGhzIGxpa2UgJChvYmopLyQoZikuIFRvIG1ha2Ugc3VyZSB0aGlzIHdvcmtzLCB1c2UgYSA6PSBhc3NpZ25tZW50LAorIyBjb21wbGV0ZSBwYXRocyBsaWtlICQob2JqKS8kKGYpLiBUbyBtYWtlIHN1cmUgdGhpcyB3b3JrcywgdXNlIGEgOj0gYXNzaWdubWVudAogIyBvciB3ZSB3aWxsIGdldCAkKG9iaikvJChmKSBpbiB0aGUgInRhcmdldHMiIHZhbHVlLgogIyBBbHNvLCB0aGlzIGZvcmNlcyB5b3UgdG8gdXNlIHRoZSA6PSBzeW50YXggd2hlbiBhc3NpZ25pbmcgdG8gdGFyZ2V0cy4KICMgT3RoZXJ3aXNlIHRoZSBsaW5lIGJlbG93IHdpbGwgY2F1c2UgYW4gaW5maW5pdGUgbG9vcCAoaWYgeW91IGRvbid0IGtub3cgd2h5LApkaWZmIC0tZ2l0IGEvYXJjaC94ODZfNjQva2VybmVsL2FwZXJ0dXJlLmMgYi9hcmNoL3g4Nl82NC9rZXJuZWwvYXBlcnR1cmUuYwppbmRleCBhNDkxZjcyLi41MDRlNjM0IDEwMDY0NAotLS0gYS9hcmNoL3g4Nl82NC9rZXJuZWwvYXBlcnR1cmUuYworKysgYi9hcmNoL3g4Nl82NC9rZXJuZWwvYXBlcnR1cmUuYwpAQCAtMzMsMTIgKzMzLDEwIEBACiAKIGludCBmaXhfYXBlcnR1cmUgX19pbml0ZGF0YSA9IDE7CiAKLSNkZWZpbmUgTkJfSURfMyAoUENJX1ZFTkRPUl9JRF9BTUQgfCAoMHgxMTAzPDwxNikpCisvKiBUaGlzIGNvZGUgcnVucyBiZWZvcmUgdGhlIFBDSSBzdWJzeXN0ZW0gaXMgaW5pdGlhbGl6ZWQsIHNvIGp1c3QKKyAgIGFjY2VzcyB0aGUgbm9ydGhicmlkZ2UgZGlyZWN0bHkuICovCiAKLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYXBlcl9yZXMgPSB7Ci0JLm5hbWUgPSAiQXBlcnR1cmUiLAotCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotfTsKKyNkZWZpbmUgTkJfSURfMyAoUENJX1ZFTkRPUl9JRF9BTUQgfCAoMHgxMTAzPDwxNikpCiAKIHN0YXRpYyB1MzIgX19pbml0IGFsbG9jYXRlX2FwZXJ0dXJlKHZvaWQpIAogewpAQCAtNTUsMjQgKzUzLDExIEBACiAJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGZhbGxiYWNrX2FwZXJfb3JkZXI7IAogCiAJLyogCi0JICogQXBlcnR1cmUgaGFzIHRvIGJlIG5hdHVyYWxseSBhbGlnbmVkLiBUaGlzIG1lYW5zIGFuIDJHQgotCSAqIGFwZXJ0dXJlIHdvbid0IGhhdmUgbXVjaCBjaGFuY2VzIHRvIGZpbmQgYSBwbGFjZSBpbiB0aGUKLQkgKiBsb3dlciA0R0Igb2YgbWVtb3J5LiAgVW5mb3J0dW5hdGVseSB3ZSBjYW5ub3QgbW92ZSBpdCB1cAotCSAqIGJlY2F1c2UgdGhhdCB3b3VsZCBtYWtlIHRoZSBJT01NVSB1c2VsZXNzLgorCSAqIEFwZXJ0dXJlIGhhcyB0byBiZSBuYXR1cmFsbHkgYWxpZ25lZC4gVGhpcyBtZWFucyBhbiAyR0IgYXBlcnR1cmUgd29uJ3QKKwkgKiBoYXZlIG11Y2ggY2hhbmNlcyB0byBmaW5kIGEgcGxhY2UgaW4gdGhlIGxvd2VyIDRHQiBvZiBtZW1vcnkuCisJICogVW5mb3J0dW5hdGVseSB3ZSBjYW5ub3QgbW92ZSBpdCB1cCBiZWNhdXNlIHRoYXQgd291bGQgbWFrZSB0aGUKKwkgKiBJT01NVSB1c2VsZXNzLgogCSAqLwotCi0JLyogRmlyc3QgdHJ5IHRvIGZpbmQgc29tZSBmcmVlIHVudXNlZCBzcGFjZSAqLwotCWlmICghYWxsb2NhdGVfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYXBlcl9yZXMsCi0JCQkgICAgICAgYXBlcl9zaXplLAotCQkJICAgICAgIDAsIDB4ZmZmZmZmZmYsCi0JCQkgICAgICAgYXBlcl9zaXplLAotCQkJICAgICAgIE5VTEwsIE5VTEwpKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlB1dHRpbmcgYXBlcnR1cmUgYXQgJWx4LSVseFxuIiwKLQkJICAgICAgIGFwZXJfcmVzLnN0YXJ0LCBhcGVyX3Jlcy5lbmQpOwotCQlyZXR1cm4gYXBlcl9yZXMuc3RhcnQ7Ci0JfQotCi0JLyogTm8gZnJlZSBzcGFjZSBmb3VuZC4gR28gb24gdG8gd2FzdGUgc29tZSBtZW1vcnkuLi4gKi8KIAlwID0gX19hbGxvY19ib290bWVtX25vZGUobmQwLCBhcGVyX3NpemUsIGFwZXJfc2l6ZSwgMCk7IAogCWlmICghcCB8fCBfX3BhKHApK2FwZXJfc2l6ZSA+IDB4ZmZmZmZmZmYpIHsKIAkJcHJpbnRrKCJDYW5ub3QgYWxsb2NhdGUgYXBlcnR1cmUgbWVtb3J5IGhvbGUgKCVwLCV1SylcbiIsCkBAIC04MSw3ICs2Niw3IEBACiAJCQlmcmVlX2Jvb3RtZW1fbm9kZShuZDAsICh1bnNpZ25lZCBsb25nKXAsIGFwZXJfc2l6ZSk7IAogCQlyZXR1cm4gMDsKIAl9Ci0JcHJpbnRrKCJNYXBwaW5nIGFwZXJ0dXJlIG92ZXIgJWQgS0Igb2YgcHJlY2lvdXMgUkFNIEAgJWx4XG4iLAorCXByaW50aygiTWFwcGluZyBhcGVydHVyZSBvdmVyICVkIEtCIG9mIFJBTSBAICVseFxuIiwKIAkgICAgICAgYXBlcl9zaXplID4+IDEwLCBfX3BhKHApKTsgCiAJcmV0dXJuICh1MzIpX19wYShwKTsgCiB9CkBAIC0xMDIsMTYgKzg3LDEwIEBACiAJCXByaW50aygiQXBlcnR1cmUgZnJvbSAlcyBwb2ludGluZyB0byBlODIwIFJBTS4gSWdub3JpbmcuXG4iLG5hbWUpOwogCQlyZXR1cm4gMDsgCiAJfSAKLQkvKiBEb24ndCBjaGVjayB0aGUgcmVzb3VyY2UgaGVyZSBiZWNhdXNlIHRoZSBhcGVydHVyZSBpcyB1c3VhbGx5Ci0JICAgaW4gYW4gZTgyMCByZXNlcnZlZCBhcmVhLCBhbmQgd2UgYWxsb2NhdGVkIHRoZXNlIGVhcmxpZXIuICovCiAJcmV0dXJuIDE7CiB9IAogCi0vKgotICogRmluZCBhIFBDSSBjYXBhYmlsaXR5LgotICogVGhpcyBjb2RlIHJ1bnMgYmVmb3JlIHRoZSBQQ0kgc3Vic3lzdGVtIGlzIGluaXRpYWxpemVkLCBzbyBqdXN0Ci0gKiBhY2Nlc3MgdGhlIG5vcnRoYnJpZGdlIGRpcmVjdGx5LgotICovCisvKiBGaW5kIGEgUENJIGNhcGFiaWxpdHkgKi8KIHN0YXRpYyBfX3UzMiBfX2luaXQgZmluZF9jYXAoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jLCBpbnQgY2FwKSAKIHsgCiAJdTggcG9zOwpAQCAtMjc2LDYgKzI1NSw4IEBACiAJCSAgIGZhbGxiYWNrX2FwZXJfZm9yY2UpIHsgCiAJCXByaW50aygiWW91ciBCSU9TIGRvZXNuJ3QgbGVhdmUgYSBhcGVydHVyZSBtZW1vcnkgaG9sZVxuIik7CiAJCXByaW50aygiUGxlYXNlIGVuYWJsZSB0aGUgSU9NTVUgb3B0aW9uIGluIHRoZSBCSU9TIHNldHVwXG4iKTsKKwkJcHJpbnRrKCJUaGlzIGNvc3RzIHlvdSAlZCBNQiBvZiBSQU1cbiIsCisJCSAgICAgICAzMiA8PCBmYWxsYmFja19hcGVyX29yZGVyKTsKIAogCQlhcGVyX29yZGVyID0gZmFsbGJhY2tfYXBlcl9vcmRlcjsKIAkJYXBlcl9hbGxvYyA9IGFsbG9jYXRlX2FwZXJ0dXJlKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMgYi9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMKaW5kZXggOGY3YzFhMS4uYWJkZTI3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9jY2lzcy5jCisrKyBiL2RyaXZlcnMvYmxvY2svY2Npc3MuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2dlbmhkLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpAQCAtMTI2LDggKzEyNyw2IEBACiAjZGVmaW5lIE1BWF9DVExSX09SSUcgCTgKIAogCi0jZGVmaW5lIENDSVNTX0RNQV9NQVNLCTB4RkZGRkZGRkYJLyogMzIgYml0IERNQSAqLwotCiBzdGF0aWMgY3Rscl9pbmZvX3QgKmhiYVtNQVhfQ1RMUl07CiAKIHN0YXRpYyB2b2lkIGRvX2NjaXNzX3JlcXVlc3QocmVxdWVzdF9xdWV1ZV90ICpxKTsKQEAgLTIzOTMsMTEgKzIzOTIsNiBAQAogCQlwcmludGsoS0VSTl9FUlIgImNjaXNzOiBVbmFibGUgdG8gRW5hYmxlIFBDSSBkZXZpY2VcbiIpOwogCQlyZXR1cm4oIC0xKTsKIAl9Ci0JaWYgKHBjaV9zZXRfZG1hX21hc2socGRldiwgQ0NJU1NfRE1BX01BU0sgKSAhPSAwKQotCXsKLQkJcHJpbnRrKEtFUk5fRVJSICJjY2lzczogIFVuYWJsZSB0byBzZXQgRE1BIG1hc2tcbiIpOwotCQlyZXR1cm4oLTEpOwotCX0KIAogCXN1YnN5c3RlbV92ZW5kb3JfaWQgPSBwZGV2LT5zdWJzeXN0ZW1fdmVuZG9yOwogCXN1YnN5c3RlbV9kZXZpY2VfaWQgPSBwZGV2LT5zdWJzeXN0ZW1fZGV2aWNlOwpAQCAtMjc0Nyw5ICsyNzQxLDkgQEAKIAloYmFbaV0tPnBkZXYgPSBwZGV2OwogCiAJLyogY29uZmlndXJlIFBDSSBETUEgc3R1ZmYgKi8KLQlpZiAoIXBjaV9zZXRfZG1hX21hc2socGRldiwgMHhmZmZmZmZmZmZmZmZmZmZmVUxMKSkKKwlpZiAoIXBjaV9zZXRfZG1hX21hc2socGRldiwgRE1BXzY0QklUX01BU0spKQogCQlwcmludGsoImNjaXNzOiB1c2luZyBEQUMgY3ljbGVzXG4iKTsKLQllbHNlIGlmICghcGNpX3NldF9kbWFfbWFzayhwZGV2LCAweGZmZmZmZmZmKSkKKwllbHNlIGlmICghcGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfMzJCSVRfTUFTSykpCiAJCXByaW50aygiY2Npc3M6IG5vdCB1c2luZyBEQUMgY3ljbGVzXG4iKTsKIAllbHNlIHsKIAkJcHJpbnRrKCJjY2lzczogbm8gc3VpdGFibGUgRE1BIGF2YWlsYWJsZVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2NmcS1pb3NjaGVkLmMgYi9kcml2ZXJzL2Jsb2NrL2NmcS1pb3NjaGVkLmMKaW5kZXggMGVmN2EwMC4uMjIxMGJhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9jZnEtaW9zY2hlZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svY2ZxLWlvc2NoZWQuYwpAQCAtMTIwMiwxMyArMTIwMiwxNiBAQAogCQlpZiAobmV3X2NmcXEpIHsKIAkJCWNmcXEgPSBuZXdfY2ZxcTsKIAkJCW5ld19jZnFxID0gTlVMTDsKLQkJfSBlbHNlIGlmIChnZnBfbWFzayAmIF9fR0ZQX1dBSVQpIHsKKwkJfSBlbHNlIHsKIAkJCXNwaW5fdW5sb2NrX2lycShjZnFkLT5xdWV1ZS0+cXVldWVfbG9jayk7CiAJCQluZXdfY2ZxcSA9IGttZW1fY2FjaGVfYWxsb2MoY2ZxX3Bvb2wsIGdmcF9tYXNrKTsKIAkJCXNwaW5fbG9ja19pcnEoY2ZxZC0+cXVldWUtPnF1ZXVlX2xvY2spOworCisJCQlpZiAoIW5ld19jZnFxICYmICEoZ2ZwX21hc2sgJiBfX0dGUF9XQUlUKSkKKwkJCQlnb3RvIG91dDsKKwogCQkJZ290byByZXRyeTsKLQkJfSBlbHNlCi0JCQlnb3RvIG91dDsKKwkJfQogCiAJCW1lbXNldChjZnFxLCAwLCBzaXplb2YoKmNmcXEpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9lbGV2YXRvci5jIGIvZHJpdmVycy9ibG9jay9lbGV2YXRvci5jCmluZGV4IDZiNzliNDMuLmY4MzFmMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZWxldmF0b3IuYworKysgYi9kcml2ZXJzL2Jsb2NrL2VsZXZhdG9yLmMKQEAgLTIyMCwxMSArMjIwLDYgQEAKIAlrZnJlZShlKTsKIH0KIAotc3RhdGljIGludCBlbGV2YXRvcl9nbG9iYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCiBpbnQgZWx2X21lcmdlKHJlcXVlc3RfcXVldWVfdCAqcSwgc3RydWN0IHJlcXVlc3QgKipyZXEsIHN0cnVjdCBiaW8gKmJpbykKIHsKIAllbGV2YXRvcl90ICplID0gcS0+ZWxldmF0b3I7CkBAIC0yOTEsNiArMjg2LDEzIEBACiAJfQogCiAJLyoKKwkgKiB0aGUgcmVxdWVzdCBpcyBwcmVwcGVkIGFuZCBtYXkgaGF2ZSBzb21lIHJlc291cmNlcyBhbGxvY2F0ZWQuCisJICogYWxsb3dpbmcgdW5wcmVwcGVkIHJlcXVlc3RzIHRvIHBhc3MgdGhpcyBvbmUgbWF5IGNhdXNlIHJlc291cmNlCisJICogZGVhZGxvY2suICB0dXJuIG9uIHNvZnRiYXJyaWVyLgorCSAqLworCXJxLT5mbGFncyB8PSBSRVFfU09GVEJBUlJJRVI7CisKKwkvKgogCSAqIGlmIGlvc2NoZWQgaGFzIGFuIGV4cGxpY2l0IHJlcXVldWUgaG9vaywgdGhlbiB1c2UgdGhhdC4gb3RoZXJ3aXNlCiAJICoganVzdCBwdXQgdGhlIHJlcXVlc3QgYXQgdGhlIGZyb250IG9mIHRoZSBxdWV1ZQogCSAqLwpAQCAtMzIyLDcgKzMyNCw3IEBACiAJCQlpbnQgbnJxID0gcS0+cnEuY291bnRbUkVBRF0gKyBxLT5ycS5jb3VudFtXUklURV0KIAkJCQkgIC0gcS0+aW5fZmxpZ2h0OwogCi0JCQlpZiAobnJxID09IHEtPnVucGx1Z190aHJlc2gpCisJCQlpZiAobnJxID49IHEtPnVucGx1Z190aHJlc2gpCiAJCQkJX19nZW5lcmljX3VucGx1Z19kZXZpY2UocSk7CiAJCX0KIAl9IGVsc2UKQEAgLTM4Niw2ICszODgsMTIgQEAKIAkJaWYgKHJldCA9PSBCTEtQUkVQX09LKSB7CiAJCQlicmVhazsKIAkJfSBlbHNlIGlmIChyZXQgPT0gQkxLUFJFUF9ERUZFUikgeworCQkJLyoKKwkJCSAqIHRoZSByZXF1ZXN0IG1heSBoYXZlIGJlZW4gKHBhcnRpYWxseSkgcHJlcHBlZC4KKwkJCSAqIHdlIG5lZWQgdG8ga2VlcCB0aGlzIHJlcXVlc3QgaW4gdGhlIGZyb250IHRvCisJCQkgKiBhdm9pZCByZXNvdXJjZSBkZWFkbG9jay4gIHR1cm4gb24gc29mdGJhcnJpZXIuCisJCQkgKi8KKwkJCXJxLT5mbGFncyB8PSBSRVFfU09GVEJBUlJJRVI7CiAJCQlycSA9IE5VTEw7CiAJCQlicmVhazsKIAkJfSBlbHNlIGlmIChyZXQgPT0gQkxLUFJFUF9LSUxMKSB7CkBAIC02OTIsOCArNzAwLDYgQEAKIAlyZXR1cm4gbGVuOwogfQogCi1tb2R1bGVfaW5pdChlbGV2YXRvcl9nbG9iYWxfaW5pdCk7Ci0KIEVYUE9SVF9TWU1CT0woZWx2X2FkZF9yZXF1ZXN0KTsKIEVYUE9SVF9TWU1CT0woX19lbHZfYWRkX3JlcXVlc3QpOwogRVhQT1JUX1NZTUJPTChlbHZfcmVxdWV1ZV9yZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMgYi9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCmluZGV4IDExZWY5ZDkuLmYyMGViYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMKKysrIGIvZHJpdmVycy9ibG9jay9sbF9yd19ibGsuYwpAQCAtMjAzOCw3ICsyMDM4LDYgQEAKICAqIEBycToJCXJlcXVlc3QgdG8gYmUgaW5zZXJ0ZWQKICAqIEBhdF9oZWFkOglpbnNlcnQgcmVxdWVzdCBhdCBoZWFkIG9yIHRhaWwgb2YgcXVldWUKICAqIEBkYXRhOglwcml2YXRlIGRhdGEKLSAqIEByZWluc2VydDoJdHJ1ZSBpZiByZXF1ZXN0IGl0IGEgcmVpbnNlcnRpb24gb2YgcHJldmlvdXNseSBwcm9jZXNzZWQgb25lCiAgKgogICogRGVzY3JpcHRpb246CiAgKiAgICBNYW55IGJsb2NrIGRldmljZXMgbmVlZCB0byBleGVjdXRlIGNvbW1hbmRzIGFzeW5jaHJvbm91c2x5LCBzbyB0aGV5IGRvbid0CkBAIC0yMDUzLDggKzIwNTIsOSBAQAogICogICAgaG9zdCB0aGF0IGlzIHVuYWJsZSB0byBhY2NlcHQgYSBwYXJ0aWN1bGFyIGNvbW1hbmQuCiAgKi8KIHZvaWQgYmxrX2luc2VydF9yZXF1ZXN0KHJlcXVlc3RfcXVldWVfdCAqcSwgc3RydWN0IHJlcXVlc3QgKnJxLAotCQkJaW50IGF0X2hlYWQsIHZvaWQgKmRhdGEsIGludCByZWluc2VydCkKKwkJCWludCBhdF9oZWFkLCB2b2lkICpkYXRhKQogeworCWludCB3aGVyZSA9IGF0X2hlYWQgPyBFTEVWQVRPUl9JTlNFUlRfRlJPTlQgOiBFTEVWQVRPUl9JTlNFUlRfQkFDSzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJLyoKQEAgLTIwNzEsMjAgKzIwNzEsMTIgQEAKIAkvKgogCSAqIElmIGNvbW1hbmQgaXMgdGFnZ2VkLCByZWxlYXNlIHRoZSB0YWcKIAkgKi8KLQlpZiAocmVpbnNlcnQpCi0JCWJsa19yZXF1ZXVlX3JlcXVlc3QocSwgcnEpOwotCWVsc2UgewotCQlpbnQgd2hlcmUgPSBFTEVWQVRPUl9JTlNFUlRfQkFDSzsKKwlpZiAoYmxrX3JxX3RhZ2dlZChycSkpCisJCWJsa19xdWV1ZV9lbmRfdGFnKHEsIHJxKTsKIAotCQlpZiAoYXRfaGVhZCkKLQkJCXdoZXJlID0gRUxFVkFUT1JfSU5TRVJUX0ZST05UOworCWRyaXZlX3N0YXRfYWNjdChycSwgcnEtPm5yX3NlY3RvcnMsIDEpOworCV9fZWx2X2FkZF9yZXF1ZXN0KHEsIHJxLCB3aGVyZSwgMCk7CiAKLQkJaWYgKGJsa19ycV90YWdnZWQocnEpKQotCQkJYmxrX3F1ZXVlX2VuZF90YWcocSwgcnEpOwotCi0JCWRyaXZlX3N0YXRfYWNjdChycSwgcnEtPm5yX3NlY3RvcnMsIDEpOwotCQlfX2Vsdl9hZGRfcmVxdWVzdChxLCBycSwgd2hlcmUsIDApOwotCX0KIAlpZiAoYmxrX3F1ZXVlX3BsdWdnZWQocSkpCiAJCV9fZ2VuZXJpY191bnBsdWdfZGV2aWNlKHEpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BkLmMgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZC5jCmluZGV4IDIwMmE1YTcuLmZhNDlkNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BkLmMKKysrIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcGQuYwpAQCAtNzIzLDcgKzcyMyw3IEBACiAJcnEucmVmX2NvdW50ID0gMTsKIAlycS53YWl0aW5nID0gJndhaXQ7CiAJcnEuZW5kX2lvID0gYmxrX2VuZF9zeW5jX3JxOwotCWJsa19pbnNlcnRfcmVxdWVzdChkaXNrLT5nZC0+cXVldWUsICZycSwgMCwgZnVuYywgMCk7CisJYmxrX2luc2VydF9yZXF1ZXN0KGRpc2stPmdkLT5xdWV1ZSwgJnJxLCAwLCBmdW5jKTsKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ3YWl0KTsKIAlycS53YWl0aW5nID0gTlVMTDsKIAlpZiAocnEuZXJyb3JzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9zeDguYyBiL2RyaXZlcnMvYmxvY2svc3g4LmMKaW5kZXggNzk3ZjU5OC4uNWVkM2E2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9zeDguYworKysgYi9kcml2ZXJzL2Jsb2NrL3N4OC5jCkBAIC02MTQsNyArNjE0LDcgQEAKIAlzcGluX3VubG9ja19pcnEoJmhvc3QtPmxvY2spOwogCiAJRFBSSU5USygiYmxrX2luc2VydF9yZXF1ZXN0LCB0YWcgPT0gJXVcbiIsIGlkeCk7Ci0JYmxrX2luc2VydF9yZXF1ZXN0KGhvc3QtPm9vYl9xLCBjcnEtPnJxLCAxLCBjcnEsIDApOworCWJsa19pbnNlcnRfcmVxdWVzdChob3N0LT5vb2JfcSwgY3JxLT5ycSwgMSwgY3JxKTsKIAogCXJldHVybiAwOwogCkBAIC02NTMsNyArNjUzLDcgQEAKIAljcnEtPm1zZ19idWNrZXQgPSAodTMyKSByYzsKIAogCURQUklOVEsoImJsa19pbnNlcnRfcmVxdWVzdCwgdGFnID09ICV1XG4iLCBpZHgpOwotCWJsa19pbnNlcnRfcmVxdWVzdChob3N0LT5vb2JfcSwgY3JxLT5ycSwgMSwgY3JxLCAwKTsKKwlibGtfaW5zZXJ0X3JlcXVlc3QoaG9zdC0+b29iX3EsIGNycS0+cnEsIDEsIGNycSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svdWIuYyBiL2RyaXZlcnMvYmxvY2svdWIuYwppbmRleCBhZGM0ZGNjLi4xOWM1ZTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3ViLmMKKysrIGIvZHJpdmVycy9ibG9jay91Yi5jCkBAIC01MSw3ICs1MSw3IEBACiAgKiBUaGlzIG1hbnkgTFVOcyBwZXIgVVNCIGRldmljZS4KICAqIEV2ZXJ5IG9uZSBvZiB0aGVtIHRha2VzIGEgaG9zdCwgc2VlIFVCX01BWF9IT1NUUy4KICAqLwotI2RlZmluZSBVQl9NQVhfTFVOUyAgIDQKKyNkZWZpbmUgVUJfTUFYX0xVTlMgICA5CiAKIC8qCiAgKi8KQEAgLTIxMDAsNyArMjEwMCw3IEBACiAJCQlubHVucyA9IHJjOwogCQkJYnJlYWs7CiAJCX0KLQkJbWRlbGF5KDEwMCk7CisJCW1zbGVlcCgxMDApOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBubHVuczsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2FncC5oIGIvZHJpdmVycy9jaGFyL2FncC9hZ3AuaAppbmRleCBhZDljMTEzLi5jMWZlMDEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FncC5oCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvYWdwLmgKQEAgLTI3OCw2ICsyNzgsOCBAQAogI2RlZmluZSBBR1BfR0VORVJJQ19TSVpFU19FTlRSSUVTIDExCiBleHRlcm4gc3RydWN0IGFwZXJfc2l6ZV9pbmZvXzE2IGFncDNfZ2VuZXJpY19zaXplc1tdOwogCisjZGVmaW5lIHZpcnRfdG9fZ2FydCh4KSAocGh5c190b19nYXJ0KHZpcnRfdG9fcGh5cyh4KSkpCisjZGVmaW5lIGdhcnRfdG9fdmlydCh4KSAocGh5c190b192aXJ0KGdhcnRfdG9fcGh5cyh4KSkpCiAKIGV4dGVybiBpbnQgYWdwX29mZjsKIGV4dGVybiBpbnQgYWdwX3RyeV91bnN1cHBvcnRlZF9ib290OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbGktYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2FsaS1hZ3AuYwppbmRleCAwMjEyZmViLi45YzljOWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FsaS1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FsaS1hZ3AuYwpAQCAtMTUwLDcgKzE1MCw3IEBACiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGFncF9icmlkZ2UtPmRldiwgQUxJX0NBQ0hFX0ZMVVNIX0NUUkwsICZ0ZW1wKTsKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGFncF9icmlkZ2UtPmRldiwgQUxJX0NBQ0hFX0ZMVVNIX0NUUkwsCiAJCQkoKCh0ZW1wICYgQUxJX0NBQ0hFX0ZMVVNIX0FERFJfTUFTSykgfAotCQkJICB2aXJ0X3RvX3BoeXMoYWRkcikpIHwgQUxJX0NBQ0hFX0ZMVVNIX0VOICkpOworCQkJICB2aXJ0X3RvX2dhcnQoYWRkcikpIHwgQUxJX0NBQ0hFX0ZMVVNIX0VOICkpOwogCXJldHVybiBhZGRyOwogfQogCkBAIC0xNzQsNyArMTc0LDcgQEAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoYWdwX2JyaWRnZS0+ZGV2LCBBTElfQ0FDSEVfRkxVU0hfQ1RSTCwgJnRlbXApOwogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoYWdwX2JyaWRnZS0+ZGV2LCBBTElfQ0FDSEVfRkxVU0hfQ1RSTCwKIAkJCSgoKHRlbXAgJiBBTElfQ0FDSEVfRkxVU0hfQUREUl9NQVNLKSB8Ci0JCQkgIHZpcnRfdG9fcGh5cyhhZGRyKSkgfCBBTElfQ0FDSEVfRkxVU0hfRU4pKTsKKwkJCSAgdmlydF90b19nYXJ0KGFkZHIpKSB8IEFMSV9DQUNIRV9GTFVTSF9FTikpOwogCWFncF9nZW5lcmljX2Rlc3Ryb3lfcGFnZShhZGRyKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQtazctYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwppbmRleCBlNjJhM2MyLi4zYTQxNjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwpAQCAtNDMsNyArNDMsNyBAQAogCiAJU2V0UGFnZVJlc2VydmVkKHZpcnRfdG9fcGFnZShwYWdlX21hcC0+cmVhbCkpOwogCWdsb2JhbF9jYWNoZV9mbHVzaCgpOwotCXBhZ2VfbWFwLT5yZW1hcHBlZCA9IGlvcmVtYXBfbm9jYWNoZSh2aXJ0X3RvX3BoeXMocGFnZV9tYXAtPnJlYWwpLAorCXBhZ2VfbWFwLT5yZW1hcHBlZCA9IGlvcmVtYXBfbm9jYWNoZSh2aXJ0X3RvX2dhcnQocGFnZV9tYXAtPnJlYWwpLAogCQkJCQkgICAgUEFHRV9TSVpFKTsKIAlpZiAocGFnZV9tYXAtPnJlbWFwcGVkID09IE5VTEwpIHsKIAkJQ2xlYXJQYWdlUmVzZXJ2ZWQodmlydF90b19wYWdlKHBhZ2VfbWFwLT5yZWFsKSk7CkBAIC0xNTQsNyArMTU0LDcgQEAKIAogCWFncF9icmlkZ2UtPmdhdHRfdGFibGVfcmVhbCA9ICh1MzIgKilwYWdlX2Rpci5yZWFsOwogCWFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSAodTMyIF9faW9tZW0gKilwYWdlX2Rpci5yZW1hcHBlZDsKLQlhZ3BfYnJpZGdlLT5nYXR0X2J1c19hZGRyID0gdmlydF90b19waHlzKHBhZ2VfZGlyLnJlYWwpOworCWFncF9icmlkZ2UtPmdhdHRfYnVzX2FkZHIgPSB2aXJ0X3RvX2dhcnQocGFnZV9kaXIucmVhbCk7CiAKIAkvKiBHZXQgdGhlIGFkZHJlc3MgZm9yIHRoZSBnYXJ0IHJlZ2lvbi4KIAkgKiBUaGlzIGlzIGEgYnVzIGFkZHJlc3MgZXZlbiBvbiB0aGUgYWxwaGEsIGIvYyBpdHMKQEAgLTE2Nyw3ICsxNjcsNyBAQAogCiAJLyogQ2FsY3VsYXRlIHRoZSBhZ3Agb2Zmc2V0ICovCiAJZm9yIChpID0gMDsgaSA8IHZhbHVlLT5udW1fZW50cmllcyAvIDEwMjQ7IGkrKywgYWRkciArPSAweDAwNDAwMDAwKSB7Ci0JCXdyaXRlbCh2aXJ0X3RvX3BoeXMoYW1kX2lyb25nYXRlX3ByaXZhdGUuZ2F0dF9wYWdlc1tpXS0+cmVhbCkgfCAxLAorCQl3cml0ZWwodmlydF90b19nYXJ0KGFtZF9pcm9uZ2F0ZV9wcml2YXRlLmdhdHRfcGFnZXNbaV0tPnJlYWwpIHwgMSwKIAkJCXBhZ2VfZGlyLnJlbWFwcGVkK0dFVF9QQUdFX0RJUl9PRkYoYWRkcikpOwogCQlyZWFkbChwYWdlX2Rpci5yZW1hcHBlZCtHRVRfUEFHRV9ESVJfT0ZGKGFkZHIpKTsJLyogUENJIFBvc3RpbmcuICovCiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvYW1kNjQtYWdwLmMKaW5kZXggMzk5YzA0Mi4uMTQwNzk0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZDY0LWFncC5jCkBAIC0yMTksNyArMjE5LDcgQEAKIAogc3RhdGljIGludCBhbWRfODE1MV9jb25maWd1cmUodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGdhdHRfYnVzID0gdmlydF90b19waHlzKGFncF9icmlkZ2UtPmdhdHRfdGFibGVfcmVhbCk7CisJdW5zaWduZWQgbG9uZyBnYXR0X2J1cyA9IHZpcnRfdG9fZ2FydChhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwpOwogCiAJLyogQ29uZmlndXJlIEFHUCByZWdzIGluIGVhY2ggeDg2LTY0IGhvc3QgYnJpZGdlLiAqLwogCWZvcl9lYWNoX25iKCkgewpAQCAtNTkxLDcgKzU5MSw3IEBACiB7CiAJc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCi0JcmVsZWFzZV9tZW1fcmVnaW9uKHZpcnRfdG9fcGh5cyhicmlkZ2UtPmdhdHRfdGFibGVfcmVhbCksCisJcmVsZWFzZV9tZW1fcmVnaW9uKHZpcnRfdG9fZ2FydChicmlkZ2UtPmdhdHRfdGFibGVfcmVhbCksCiAJCQkgICBhbWQ2NF9hcGVydHVyZV9zaXplc1ticmlkZ2UtPmFwZXJ0dXJlX3NpemVfaWR4XS5zaXplKTsKIAlhZ3BfcmVtb3ZlX2JyaWRnZShicmlkZ2UpOwogCWFncF9wdXRfYnJpZGdlKGJyaWRnZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2F0aS1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvYXRpLWFncC5jCmluZGV4IGE2NWY4ODIuLmU1NzJjZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvYXRpLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvYXRpLWFncC5jCkBAIC02MSw3ICs2MSw3IEBACiAKIAlTZXRQYWdlUmVzZXJ2ZWQodmlydF90b19wYWdlKHBhZ2VfbWFwLT5yZWFsKSk7CiAJZXJyID0gbWFwX3BhZ2VfaW50b19hZ3AodmlydF90b19wYWdlKHBhZ2VfbWFwLT5yZWFsKSk7Ci0JcGFnZV9tYXAtPnJlbWFwcGVkID0gaW9yZW1hcF9ub2NhY2hlKHZpcnRfdG9fcGh5cyhwYWdlX21hcC0+cmVhbCksCisJcGFnZV9tYXAtPnJlbWFwcGVkID0gaW9yZW1hcF9ub2NhY2hlKHZpcnRfdG9fZ2FydChwYWdlX21hcC0+cmVhbCksCiAJCQkJCSAgICBQQUdFX1NJWkUpOwogCWlmIChwYWdlX21hcC0+cmVtYXBwZWQgPT0gTlVMTCB8fCBlcnIpIHsKIAkJQ2xlYXJQYWdlUmVzZXJ2ZWQodmlydF90b19wYWdlKHBhZ2VfbWFwLT5yZWFsKSk7CkBAIC0zNDMsNyArMzQzLDcgQEAKIAogCWFncF9icmlkZ2UtPmdhdHRfdGFibGVfcmVhbCA9ICh1MzIgKilwYWdlX2Rpci5yZWFsOwogCWFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSAodTMyIF9faW9tZW0gKikgcGFnZV9kaXIucmVtYXBwZWQ7Ci0JYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHZpcnRfdG9fYnVzKHBhZ2VfZGlyLnJlYWwpOworCWFncF9icmlkZ2UtPmdhdHRfYnVzX2FkZHIgPSB2aXJ0X3RvX2dhcnQocGFnZV9kaXIucmVhbCk7CiAKIAkvKiBXcml0ZSBvdXQgdGhlIHNpemUgcmVnaXN0ZXIgKi8KIAljdXJyZW50X3NpemUgPSBBX1NJWkVfTFZMMihhZ3BfYnJpZGdlLT5jdXJyZW50X3NpemUpOwpAQCAtMzczLDcgKzM3Myw3IEBACiAKIAkvKiBDYWxjdWxhdGUgdGhlIGFncCBvZmZzZXQgKi8KIAlmb3IoaSA9IDA7IGkgPCB2YWx1ZS0+bnVtX2VudHJpZXMgLyAxMDI0OyBpKyssIGFkZHIgKz0gMHgwMDQwMDAwMCkgewotCQl3cml0ZWwodmlydF90b19idXMoYXRpX2dlbmVyaWNfcHJpdmF0ZS5nYXR0X3BhZ2VzW2ldLT5yZWFsKSB8IDEsCisJCXdyaXRlbCh2aXJ0X3RvX2dhcnQoYXRpX2dlbmVyaWNfcHJpdmF0ZS5nYXR0X3BhZ2VzW2ldLT5yZWFsKSB8IDEsCiAJCQlwYWdlX2Rpci5yZW1hcHBlZCtHRVRfUEFHRV9ESVJfT0ZGKGFkZHIpKTsKIAkJcmVhZGwocGFnZV9kaXIucmVtYXBwZWQrR0VUX1BBR0VfRElSX09GRihhZGRyKSk7CS8qIFBDSSBQb3N0aW5nLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYmFja2VuZC5jIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKaW5kZXggMmYzZGZiNi4uNGQ0ZTYwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKQEAgLTE0OCw3ICsxNDgsNyBAQAogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KIAotCQlicmlkZ2UtPnNjcmF0Y2hfcGFnZV9yZWFsID0gdmlydF90b19waHlzKGFkZHIpOworCQlicmlkZ2UtPnNjcmF0Y2hfcGFnZV9yZWFsID0gdmlydF90b19nYXJ0KGFkZHIpOwogCQlicmlkZ2UtPnNjcmF0Y2hfcGFnZSA9CiAJCSAgICBicmlkZ2UtPmRyaXZlci0+bWFza19tZW1vcnkoYnJpZGdlLCBicmlkZ2UtPnNjcmF0Y2hfcGFnZV9yZWFsLCAwKTsKIAl9CkBAIC0xODksNyArMTg5LDcgQEAKIGVycl9vdXQ6CiAJaWYgKGJyaWRnZS0+ZHJpdmVyLT5uZWVkc19zY3JhdGNoX3BhZ2UpCiAJCWJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKAotCQkJCXBoeXNfdG9fdmlydChicmlkZ2UtPnNjcmF0Y2hfcGFnZV9yZWFsKSk7CisJCQkJZ2FydF90b192aXJ0KGJyaWRnZS0+c2NyYXRjaF9wYWdlX3JlYWwpKTsKIAlpZiAoZ290X2dhdHQpCiAJCWJyaWRnZS0+ZHJpdmVyLT5mcmVlX2dhdHRfdGFibGUoYnJpZGdlKTsKIAlpZiAoZ290X2tleWxpc3QpIHsKQEAgLTIxNCw3ICsyMTQsNyBAQAogCWlmIChicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSAmJgogCSAgICBicmlkZ2UtPmRyaXZlci0+bmVlZHNfc2NyYXRjaF9wYWdlKQogCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSgKLQkJCQlwaHlzX3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCkpOworCQkJCWdhcnRfdG9fdmlydChicmlkZ2UtPnNjcmF0Y2hfcGFnZV9yZWFsKSk7CiB9CiAKIC8qIFdoZW4gd2UgcmVtb3ZlIHRoZSBnbG9iYWwgdmFyaWFibGUgYWdwX2JyaWRnZSBmcm9tIGFsbCBkcml2ZXJzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2VmZmljZW9uLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9lZmZpY2Vvbi1hZ3AuYwppbmRleCAxMzgzYzMxLi5hYzE5ZmRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2VmZmljZW9uLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvZWZmaWNlb24tYWdwLmMKQEAgLTIxOSw3ICsyMTksNyBAQAogCiAJCWVmZmljZW9uX3ByaXZhdGUubDFfdGFibGVbaW5kZXhdID0gcGFnZTsKIAotCQl2YWx1ZSA9IF9fcGEocGFnZSkgfCBwYXRpIHwgcHJlc2VudCB8IGluZGV4OworCQl2YWx1ZSA9IHZpcnRfdG9fZ2FydChwYWdlKSB8IHBhdGkgfCBwcmVzZW50IHwgaW5kZXg7CiAKIAkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChhZ3BfYnJpZGdlLT5kZXYsCiAJCQlFRkZJQ0VPTl9BVFRQQUdFLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2dlbmVyaWMuYyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCmluZGV4IGMzMjFhOTIuLmYwMDc5ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCkBAIC0xNTMsNyArMTUzLDcgQEAKIAl9CiAJaWYgKGN1cnItPnBhZ2VfY291bnQgIT0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgY3Vyci0+cGFnZV9jb3VudDsgaSsrKSB7Ci0JCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShwaHlzX3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSk7CisJCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSk7CiAJCX0KIAl9CiAJYWdwX2ZyZWVfa2V5KGN1cnItPmtleSk7CkBAIC0yMDksNyArMjA5LDcgQEAKIAkJCWFncF9mcmVlX21lbW9yeShuZXcpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0KLQkJbmV3LT5tZW1vcnlbaV0gPSB2aXJ0X3RvX3BoeXMoYWRkcik7CisJCW5ldy0+bWVtb3J5W2ldID0gdmlydF90b19nYXJ0KGFkZHIpOwogCQluZXctPnBhZ2VfY291bnQrKzsKIAl9CiAgICAgICAgbmV3LT5icmlkZ2UgPSBicmlkZ2U7CkBAIC0yOTUsMTkgKzI5NSw2IEBACiBFWFBPUlRfU1lNQk9MX0dQTChhZ3BfbnVtX2VudHJpZXMpOwogCiAKLXN0YXRpYyBpbnQgY2hlY2tfYnJpZGdlX21vZGUoc3RydWN0IHBjaV9kZXYgKmRldikKLXsKLQl1MzIgYWdwMzsKLQl1OCBjYXBfcHRyOwotCi0JY2FwX3B0ciA9IHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LCBQQ0lfQ0FQX0lEX0FHUCk7Ci0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgY2FwX3B0citBR1BTVEFULCAmYWdwMyk7Ci0JaWYgKGFncDMgJiBBR1BTVEFUX01PREVfM18wKQotCQlyZXR1cm4gMTsKLQlyZXR1cm4gMDsKLX0KLQotCiAvKioKICAqCWFncF9jb3B5X2luZm8gIC0gIGNvcHkgYnJpZGdlIHN0YXRlIGluZm9ybWF0aW9uCiAgKgpAQCAtMzI4LDcgKzMxNSw3IEBACiAJaW5mby0+dmVyc2lvbi5taW5vciA9IGJyaWRnZS0+dmVyc2lvbi0+bWlub3I7CiAJaW5mby0+Y2hpcHNldCA9IFNVUFBPUlRFRDsKIAlpbmZvLT5kZXZpY2UgPSBicmlkZ2UtPmRldjsKLQlpZiAoY2hlY2tfYnJpZGdlX21vZGUoYnJpZGdlLT5kZXYpKQorCWlmIChicmlkZ2UtPm1vZGUgJiBBR1BTVEFUX01PREVfM18wKQogCQlpbmZvLT5tb2RlID0gYnJpZGdlLT5tb2RlICYgfkFHUDNfUkVTRVJWRURfTUFTSzsKIAllbHNlCiAJCWluZm8tPm1vZGUgPSBicmlkZ2UtPm1vZGUgJiB+QUdQMl9SRVNFUlZFRF9NQVNLOwpAQCAtNjYxLDcgKzY0OCw3IEBACiAJCWJyaWRnZV9hZ3BzdGF0ICY9IH5BR1BTVEFUX0ZXOwogCiAJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIGFyZSBvcGVyYXRpbmcgaW4gMy4wIG1vZGUgKi8KLQlpZiAoY2hlY2tfYnJpZGdlX21vZGUoYWdwX2JyaWRnZS0+ZGV2KSkKKwlpZiAoYWdwX2JyaWRnZS0+bW9kZSAmIEFHUFNUQVRfTU9ERV8zXzApCiAJCWFncF92M19wYXJzZV9vbmUoJnJlcXVlc3RlZF9tb2RlLCAmYnJpZGdlX2FncHN0YXQsICZ2Z2FfYWdwc3RhdCk7CiAJZWxzZQogCQlhZ3BfdjJfcGFyc2Vfb25lKCZyZXF1ZXN0ZWRfbW9kZSwgJmJyaWRnZV9hZ3BzdGF0LCAmdmdhX2FncHN0YXQpOwpAQCAtNzMyLDcgKzcxOSw3IEBACiAKIAkvKiBEbyBBR1AgdmVyc2lvbiBzcGVjaWZpYyBmcm9iYmluZy4gKi8KIAlpZiAoYnJpZGdlLT5tYWpvcl92ZXJzaW9uID49IDMpIHsKLQkJaWYgKGNoZWNrX2JyaWRnZV9tb2RlKGJyaWRnZS0+ZGV2KSkgeworCQlpZiAoYnJpZGdlLT5tb2RlICYgQUdQU1RBVF9NT0RFXzNfMCkgewogCQkJLyogSWYgd2UgaGF2ZSAzLjUsIHdlIGNhbiBkbyB0aGUgaXNvY2ggc3R1ZmYuICovCiAJCQlpZiAoYnJpZGdlLT5taW5vcl92ZXJzaW9uID49IDUpCiAJCQkJYWdwXzNfNV9lbmFibGUoYnJpZGdlKTsKQEAgLTgwNiw4ICs3OTMsNyBAQAogCQkJCWJyZWFrOwogCQkJfQogCi0JCQl0YWJsZSA9IChjaGFyICopIF9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKLQkJCQkJCQkgIHBhZ2Vfb3JkZXIpOworCQkJdGFibGUgPSBhbGxvY19nYXR0X3BhZ2VzKHBhZ2Vfb3JkZXIpOwogCiAJCQlpZiAodGFibGUgPT0gTlVMTCkgewogCQkJCWkrKzsKQEAgLTgzOCw3ICs4MjQsNyBAQAogCQlzaXplID0gKChzdHJ1Y3QgYXBlcl9zaXplX2luZm9fZml4ZWQgKikgdGVtcCktPnNpemU7CiAJCXBhZ2Vfb3JkZXIgPSAoKHN0cnVjdCBhcGVyX3NpemVfaW5mb19maXhlZCAqKSB0ZW1wKS0+cGFnZV9vcmRlcjsKIAkJbnVtX2VudHJpZXMgPSAoKHN0cnVjdCBhcGVyX3NpemVfaW5mb19maXhlZCAqKSB0ZW1wKS0+bnVtX2VudHJpZXM7Ci0JCXRhYmxlID0gKGNoYXIgKikgX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLCBwYWdlX29yZGVyKTsKKwkJdGFibGUgPSBhbGxvY19nYXR0X3BhZ2VzKHBhZ2Vfb3JkZXIpOwogCX0KIAogCWlmICh0YWJsZSA9PSBOVUxMKQpAQCAtODUzLDcgKzgzOSw3IEBACiAJYWdwX2dhdHRfdGFibGUgPSAodm9pZCAqKXRhYmxlOwogCiAJYnJpZGdlLT5kcml2ZXItPmNhY2hlX2ZsdXNoKCk7Ci0JYnJpZGdlLT5nYXR0X3RhYmxlID0gaW9yZW1hcF9ub2NhY2hlKHZpcnRfdG9fcGh5cyh0YWJsZSksCisJYnJpZGdlLT5nYXR0X3RhYmxlID0gaW9yZW1hcF9ub2NhY2hlKHZpcnRfdG9fZ2FydCh0YWJsZSksCiAJCQkJCShQQUdFX1NJWkUgKiAoMSA8PCBwYWdlX29yZGVyKSkpOwogCWJyaWRnZS0+ZHJpdmVyLT5jYWNoZV9mbHVzaCgpOwogCkBAIC04NjEsMTEgKzg0NywxMSBAQAogCQlmb3IgKHBhZ2UgPSB2aXJ0X3RvX3BhZ2UodGFibGUpOyBwYWdlIDw9IHZpcnRfdG9fcGFnZSh0YWJsZV9lbmQpOyBwYWdlKyspCiAJCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsKIAotCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSB0YWJsZSwgcGFnZV9vcmRlcik7CisJCWZyZWVfZ2F0dF9wYWdlcyh0YWJsZSwgcGFnZV9vcmRlcik7CiAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWJyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHZpcnRfdG9fcGh5cyhicmlkZ2UtPmdhdHRfdGFibGVfcmVhbCk7CisJYnJpZGdlLT5nYXR0X2J1c19hZGRyID0gdmlydF90b19nYXJ0KGJyaWRnZS0+Z2F0dF90YWJsZV9yZWFsKTsKIAogCS8qIEFLOiBib2d1cywgc2hvdWxkIGVuY29kZSBhZGRyZXNzZXMgPiA0R0IgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2VudHJpZXM7IGkrKykgewpAQCAtOTE5LDcgKzkwNSw3IEBACiAJZm9yIChwYWdlID0gdmlydF90b19wYWdlKHRhYmxlKTsgcGFnZSA8PSB2aXJ0X3RvX3BhZ2UodGFibGVfZW5kKTsgcGFnZSsrKQogCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsKIAotCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpIGJyaWRnZS0+Z2F0dF90YWJsZV9yZWFsLCBwYWdlX29yZGVyKTsKKwlmcmVlX2dhdHRfcGFnZXMoYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwsIHBhZ2Vfb3JkZXIpOwogCiAJYWdwX2dhdHRfdGFibGUgPSBOVUxMOwogCWJyaWRnZS0+Z2F0dF90YWJsZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2hwLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9ocC1hZ3AuYwppbmRleCA2MDUyYmZhLi45OTc2MmI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2hwLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvaHAtYWdwLmMKQEAgLTExMCw3ICsxMTAsNyBAQAogCWhwLT5nYXJ0X3NpemUgPSBIUF9aWDFfR0FSVF9TSVpFOwogCWhwLT5nYXR0X2VudHJpZXMgPSBocC0+Z2FydF9zaXplIC8gaHAtPmlvX3BhZ2Vfc2l6ZTsKIAotCWhwLT5pb19wZGlyID0gcGh5c190b192aXJ0KHJlYWRxKGhwLT5pb2NfcmVncytIUF9aWDFfUERJUl9CQVNFKSk7CisJaHAtPmlvX3BkaXIgPSBnYXJ0X3RvX3ZpcnQocmVhZHEoaHAtPmlvY19yZWdzK0hQX1pYMV9QRElSX0JBU0UpKTsKIAlocC0+Z2F0dCA9ICZocC0+aW9fcGRpcltIUF9aWDFfSU9WQV9UT19QRElSKGhwLT5nYXJ0X2Jhc2UpXTsKIAogCWlmIChocC0+Z2F0dFswXSAhPSBIUF9aWDFfU0JBX0lPTU1VX0NPT0tJRSkgewpAQCAtMjQ4LDcgKzI0OCw3IEBACiAJYWdwX2JyaWRnZS0+bW9kZSA9IHJlYWRsKGhwLT5sYmFfcmVncytocC0+bGJhX2NhcF9vZmZzZXQrUENJX0FHUF9TVEFUVVMpOwogCiAJaWYgKGhwLT5pb19wZGlyX293bmVyKSB7Ci0JCXdyaXRlbCh2aXJ0X3RvX3BoeXMoaHAtPmlvX3BkaXIpLCBocC0+aW9jX3JlZ3MrSFBfWlgxX1BESVJfQkFTRSk7CisJCXdyaXRlbCh2aXJ0X3RvX2dhcnQoaHAtPmlvX3BkaXIpLCBocC0+aW9jX3JlZ3MrSFBfWlgxX1BESVJfQkFTRSk7CiAJCXJlYWRsKGhwLT5pb2NfcmVncytIUF9aWDFfUERJUl9CQVNFKTsKIAkJd3JpdGVsKGhwLT5pb190bGJfcHMsIGhwLT5pb2NfcmVncytIUF9aWDFfVENORkcpOwogCQlyZWFkbChocC0+aW9jX3JlZ3MrSFBfWlgxX1RDTkZHKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvaTQ2MC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvaTQ2MC1hZ3AuYwppbmRleCBhZGJlYTg5Li45NDk0MzI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2k0NjAtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9pNDYwLWFncC5jCkBAIC0zNzIsNyArMzcyLDcgQEAKIAl9CiAJbWVtc2V0KGxwLT5hbGxvY2VkX21hcCwgMCwgbWFwX3NpemUpOwogCi0JbHAtPnBhZGRyID0gdmlydF90b19waHlzKGxwYWdlKTsKKwlscC0+cGFkZHIgPSB2aXJ0X3RvX2dhcnQobHBhZ2UpOwogCWxwLT5yZWZjb3VudCA9IDA7CiAJYXRvbWljX2FkZChJNDYwX0tQQUdFU19QRVJfSU9QQUdFLCAmYWdwX2JyaWRnZS0+Y3VycmVudF9tZW1vcnlfYWdwKTsKIAlyZXR1cm4gMDsKQEAgLTM4Myw3ICszODMsNyBAQAogCWtmcmVlKGxwLT5hbGxvY2VkX21hcCk7CiAJbHAtPmFsbG9jZWRfbWFwID0gTlVMTDsKIAotCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpIHBoeXNfdG9fdmlydChscC0+cGFkZHIpLCBJNDYwX0lPX1BBR0VfU0hJRlQgLSBQQUdFX1NISUZUKTsKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSBnYXJ0X3RvX3ZpcnQobHAtPnBhZGRyKSwgSTQ2MF9JT19QQUdFX1NISUZUIC0gUEFHRV9TSElGVCk7CiAJYXRvbWljX3N1YihJNDYwX0tQQUdFU19QRVJfSU9QQUdFLCAmYWdwX2JyaWRnZS0+Y3VycmVudF9tZW1vcnlfYWdwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmMKaW5kZXggOGM3ZDcyNy4uNTEyNjZkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWFncC5jCkBAIC0yODYsNyArMjg2LDcgQEAKIAlpZiAobmV3ID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwogCi0JbmV3LT5tZW1vcnlbMF0gPSB2aXJ0X3RvX3BoeXMoYWRkcik7CisJbmV3LT5tZW1vcnlbMF0gPSB2aXJ0X3RvX2dhcnQoYWRkcik7CiAJaWYgKHBnX2NvdW50ID09IDQpIHsKIAkJLyoga2x1ZGdlIHRvIGdldCA0IHBoeXNpY2FsIHBhZ2VzIGZvciBBUkdCIGN1cnNvciAqLwogCQluZXctPm1lbW9yeVsxXSA9IG5ldy0+bWVtb3J5WzBdICsgUEFHRV9TSVpFOwpAQCAtMzI5LDEwICszMjksMTAgQEAKIAlhZ3BfZnJlZV9rZXkoY3Vyci0+a2V5KTsKIAlpZihjdXJyLT50eXBlID09IEFHUF9QSFlTX01FTU9SWSkgewogCQlpZiAoY3Vyci0+cGFnZV9jb3VudCA9PSA0KQotCQkJaTh4eF9kZXN0cm95X3BhZ2VzKHBoeXNfdG9fdmlydChjdXJyLT5tZW1vcnlbMF0pKTsKKwkJCWk4eHhfZGVzdHJveV9wYWdlcyhnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKSk7CiAJCWVsc2UKIAkJCWFncF9icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSgKLQkJCQkgcGh5c190b192aXJ0KGN1cnItPm1lbW9yeVswXSkpOworCQkJCSBnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKSk7CiAJCXZmcmVlKGN1cnItPm1lbW9yeSk7CiAJfQogCWtmcmVlKGN1cnIpOwpAQCAtNDE4LDcgKzQxOCw4IEBACiAJCWNhc2UgSTkxNV9HTUNIX0dNU19TVE9MRU5fNDhNOgogCQkJLyogQ2hlY2sgaXQncyByZWFsbHkgSTkxNUcgKi8KIAkJCWlmIChhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R19IQiB8fAotCQkJICAgIGFncF9icmlkZ2UtPmRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfODI5MTVHTV9IQikKKwkJCSAgICBhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R01fSEIgfHwKKwkJCSAgICBhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTQ1R19IQikKIAkJCQlndHRfZW50cmllcyA9IE1CKDQ4KSAtIEtCKHNpemUpOwogCQkJZWxzZQogCQkJCWd0dF9lbnRyaWVzID0gMDsKQEAgLTQyNiw3ICs0MjcsOCBAQAogCQljYXNlIEk5MTVfR01DSF9HTVNfU1RPTEVOXzY0TToKIAkJCS8qIENoZWNrIGl0J3MgcmVhbGx5IEk5MTVHICovCiAJCQlpZiAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF84MjkxNUdfSEIgfHwKLQkJCSAgICBhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R01fSEIpCisJCQkgICAgYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF84MjkxNUdNX0hCIHx8CisJCQkgICAgYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF84Mjk0NUdfSEIpCiAJCQkJZ3R0X2VudHJpZXMgPSBNQig2NCkgLSBLQihzaXplKTsKIAkJCWVsc2UKIAkJCQlndHRfZW50cmllcyA9IDA7CkBAIC0xNjYyLDYgKzE2NjQsMTQgQEAKIAkJfQogCQluYW1lID0gIjkxNUdNIjsKIAkJYnJlYWs7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTQ1R19IQjoKKwkJaWYgKGZpbmRfaTgzMChQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTQ1R19JRykpIHsKKwkJCWJyaWRnZS0+ZHJpdmVyID0gJmludGVsXzkxNV9kcml2ZXI7CisJCX0gZWxzZSB7CisJCQlicmlkZ2UtPmRyaXZlciA9ICZpbnRlbF84NDVfZHJpdmVyOworCQl9CisJCW5hbWUgPSAiOTQ1RyI7CisJCWJyZWFrOwogCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF83NTA1XzA6CiAJCWJyaWRnZS0+ZHJpdmVyID0gJmludGVsXzc1MDVfZHJpdmVyOwogCQluYW1lID0gIkU3NTA1IjsKQEAgLTE4MDEsNiArMTgxMSw3IEBACiAJSUQoUENJX0RFVklDRV9JRF9JTlRFTF83MjA1XzApLAogCUlEKFBDSV9ERVZJQ0VfSURfSU5URUxfODI5MTVHX0hCKSwKIAlJRChQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R01fSEIpLAorCUlEKFBDSV9ERVZJQ0VfSURfSU5URUxfODI5NDVHX0hCKSwKIAl7IH0KIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3Avc2dpLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKaW5kZXggNGIzZWRhMi4uZDNhYTE1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKQEAgLTEzMywxMSArMTMzLDE0IEBACiAJb2ZmX3QgajsKIAl2b2lkICp0ZW1wOwogCXN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZTsKKwl1NjQgKnRhYmxlOwogCiAJYnJpZGdlID0gbWVtLT5icmlkZ2U7CiAJaWYgKCFicmlkZ2UpCiAJCXJldHVybiAtRUlOVkFMOwogCisJdGFibGUgPSAodTY0ICopYnJpZGdlLT5nYXR0X3RhYmxlOworCiAJdGVtcCA9IGJyaWRnZS0+Y3VycmVudF9zaXplOwogCiAJc3dpdGNoIChicmlkZ2UtPmRyaXZlci0+c2l6ZV90eXBlKSB7CkBAIC0xNzUsNyArMTc4LDcgQEAKIAlqID0gcGdfc3RhcnQ7CiAKIAl3aGlsZSAoaiA8IChwZ19zdGFydCArIG1lbS0+cGFnZV9jb3VudCkpIHsKLQkJaWYgKCooYnJpZGdlLT5nYXR0X3RhYmxlICsgaikpCisJCWlmICh0YWJsZVtqXSkKIAkJCXJldHVybiAtRUJVU1k7CiAJCWorKzsKIAl9CkBAIC0xODYsNyArMTg5LDcgQEAKIAl9CiAKIAlmb3IgKGkgPSAwLCBqID0gcGdfc3RhcnQ7IGkgPCBtZW0tPnBhZ2VfY291bnQ7IGkrKywgaisrKSB7Ci0JCSooYnJpZGdlLT5nYXR0X3RhYmxlICsgaikgPQorCQl0YWJsZVtqXSA9CiAJCSAgICBicmlkZ2UtPmRyaXZlci0+bWFza19tZW1vcnkoYnJpZGdlLCBtZW0tPm1lbW9yeVtpXSwKIAkJCQkJCW1lbS0+dHlwZSk7CiAJfQpAQCAtMjAwLDYgKzIwMyw3IEBACiB7CiAJc2l6ZV90IGk7CiAJc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlOworCXU2NCAqdGFibGU7CiAKIAlicmlkZ2UgPSBtZW0tPmJyaWRnZTsKIAlpZiAoIWJyaWRnZSkKQEAgLTIwOSw4ICsyMTMsMTAgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJdGFibGUgPSAodTY0ICopYnJpZGdlLT5nYXR0X3RhYmxlOworCiAJZm9yIChpID0gcGdfc3RhcnQ7IGkgPCAobWVtLT5wYWdlX2NvdW50ICsgcGdfc3RhcnQpOyBpKyspIHsKLQkJKihicmlkZ2UtPmdhdHRfdGFibGUgKyBpKSA9IDA7CisJCXRhYmxlW2ldID0gMDsKIAl9CiAKIAlicmlkZ2UtPmRyaXZlci0+dGxiX2ZsdXNoKG1lbSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL3N3b3Jrcy1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3Avc3dvcmtzLWFncC5jCmluZGV4IDEwYzIzMzAuLmE5ZmIxMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3Avc3dvcmtzLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3Avc3dvcmtzLWFncC5jCkBAIC01MSw3ICs1MSw3IEBACiAJfQogCVNldFBhZ2VSZXNlcnZlZCh2aXJ0X3RvX3BhZ2UocGFnZV9tYXAtPnJlYWwpKTsKIAlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQlwYWdlX21hcC0+cmVtYXBwZWQgPSBpb3JlbWFwX25vY2FjaGUodmlydF90b19waHlzKHBhZ2VfbWFwLT5yZWFsKSwgCisJcGFnZV9tYXAtPnJlbWFwcGVkID0gaW9yZW1hcF9ub2NhY2hlKHZpcnRfdG9fZ2FydChwYWdlX21hcC0+cmVhbCksCiAJCQkJCSAgICBQQUdFX1NJWkUpOwogCWlmIChwYWdlX21hcC0+cmVtYXBwZWQgPT0gTlVMTCkgewogCQlDbGVhclBhZ2VSZXNlcnZlZCh2aXJ0X3RvX3BhZ2UocGFnZV9tYXAtPnJlYWwpKTsKQEAgLTE2Miw3ICsxNjIsNyBAQAogCS8qIENyZWF0ZSBhIGZha2Ugc2NyYXRjaCBkaXJlY3RvcnkgKi8KIAlmb3IoaSA9IDA7IGkgPCAxMDI0OyBpKyspIHsKIAkJd3JpdGVsKGFncF9icmlkZ2UtPnNjcmF0Y2hfcGFnZSwgc2VydmVyd29ya3NfcHJpdmF0ZS5zY3JhdGNoX2Rpci5yZW1hcHBlZCtpKTsKLQkJd3JpdGVsKHZpcnRfdG9fcGh5cyhzZXJ2ZXJ3b3Jrc19wcml2YXRlLnNjcmF0Y2hfZGlyLnJlYWwpIHwgMSwgcGFnZV9kaXIucmVtYXBwZWQraSk7CisJCXdyaXRlbCh2aXJ0X3RvX2dhcnQoc2VydmVyd29ya3NfcHJpdmF0ZS5zY3JhdGNoX2Rpci5yZWFsKSB8IDEsIHBhZ2VfZGlyLnJlbWFwcGVkK2kpOwogCX0KIAogCXJldHZhbCA9IHNlcnZlcndvcmtzX2NyZWF0ZV9nYXR0X3BhZ2VzKHZhbHVlLT5udW1fZW50cmllcyAvIDEwMjQpOwpAQCAtMTc0LDcgKzE3NCw3IEBACiAKIAlhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSAodTMyICopcGFnZV9kaXIucmVhbDsKIAlhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlID0gKHUzMiBfX2lvbWVtICopcGFnZV9kaXIucmVtYXBwZWQ7Ci0JYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHZpcnRfdG9fcGh5cyhwYWdlX2Rpci5yZWFsKTsKKwlhZ3BfYnJpZGdlLT5nYXR0X2J1c19hZGRyID0gdmlydF90b19nYXJ0KHBhZ2VfZGlyLnJlYWwpOwogCiAJLyogR2V0IHRoZSBhZGRyZXNzIGZvciB0aGUgZ2FydCByZWdpb24uCiAJICogVGhpcyBpcyBhIGJ1cyBhZGRyZXNzIGV2ZW4gb24gdGhlIGFscGhhLCBiL2MgaXRzCkBAIC0xODcsNyArMTg3LDcgQEAKIAkvKiBDYWxjdWxhdGUgdGhlIGFncCBvZmZzZXQgKi8JCiAKIAlmb3IoaSA9IDA7IGkgPCB2YWx1ZS0+bnVtX2VudHJpZXMgLyAxMDI0OyBpKyspCi0JCXdyaXRlbCh2aXJ0X3RvX3BoeXMoc2VydmVyd29ya3NfcHJpdmF0ZS5nYXR0X3BhZ2VzW2ldLT5yZWFsKXwxLCBwYWdlX2Rpci5yZW1hcHBlZCtpKTsKKwkJd3JpdGVsKHZpcnRfdG9fZ2FydChzZXJ2ZXJ3b3Jrc19wcml2YXRlLmdhdHRfcGFnZXNbaV0tPnJlYWwpfDEsIHBhZ2VfZGlyLnJlbWFwcGVkK2kpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL3VuaW5vcnRoLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC91bmlub3J0aC1hZ3AuYwppbmRleCBhNjczOTcxLi5jODI1NTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL3VuaW5vcnRoLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvdW5pbm9ydGgtYWdwLmMKQEAgLTQwNyw3ICs0MDcsNyBAQAogCiAJYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSAodTMyICopIHRhYmxlOwogCWJyaWRnZS0+Z2F0dF90YWJsZSA9ICh1MzIgKil0YWJsZTsKLQlicmlkZ2UtPmdhdHRfYnVzX2FkZHIgPSB2aXJ0X3RvX3BoeXModGFibGUpOworCWJyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHZpcnRfdG9fZ2FydCh0YWJsZSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2VudHJpZXM7IGkrKykKIAkJYnJpZGdlLT5nYXR0X3RhYmxlW2ldID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oIGIvZHJpdmVycy9jaGFyL2RybS9kcm1fcGNpaWRzLmgKaW5kZXggNTRhMjkxNC4uMTFjNjk1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm1fcGNpaWRzLmgKKysrIGIvZHJpdmVycy9jaGFyL2RybS9kcm1fcGNpaWRzLmgKQEAgLTIyMCw1ICsyMjAsNiBAQAogCXsweDgwODYsIDB4MjU3MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKIAl7MHg4MDg2LCAweDI1ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCiAJezB4ODA4NiwgMHgyNTkyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4Mjc3MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKIAl7MCwgMCwgMH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faXJxLmMgYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9pcnEuYwppbmRleCA1YjE4YmVlLi5jZDI1ZjI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9pcnEuYworKysgYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9pcnEuYwpAQCAtMTIzLDExICsxMjMsNiBAQAogCiAJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwogCi0JLyogVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgbXlzdGVyaW91cyBmcmVlemVzIG9uIGNlcnRhaW4KLQkgKiBzeXN0ZW1zOgotCSAqLyAKLQlyYWRlb25fYWNrbm93bGVkZ2VfaXJxcyggZGV2X3ByaXYgKTsKLQogCURSTV9XQUlUX09OKCByZXQsIGRldl9wcml2LT5zd2lfcXVldWUsIDMgKiBEUk1fSFosIAogCQkgICAgIFJBREVPTl9SRUFEKCBSQURFT05fTEFTVF9TV0lfUkVHICkgPj0gc3dpX25yICk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9teHNlci5jIGIvZHJpdmVycy9jaGFyL214c2VyLmMKaW5kZXggN2EyNDUwNi4uZjAyMmYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL214c2VyLmMKKysrIGIvZHJpdmVycy9jaGFyL214c2VyLmMKQEAgLTE5OTUsOSArMTk5NSw2IEBACiAJdW5zaWduZWQgY2hhciBjaCwgZ2RsOwogCWludCBpZ25vcmVkID0gMDsKIAlpbnQgY250ID0gMDsKLQl1bnNpZ25lZCBjaGFyICpjcDsKLQljaGFyICpmcDsKLQlpbnQgY291bnQ7CiAJaW50IHJlY3Zfcm9vbTsKIAlpbnQgbWF4ID0gMjU2OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yMDExLDEwICsyMDA4LDYgQEAKIAkJLy9yZXR1cm47CiAJfQogCi0JY3AgPSB0dHktPmZsaXAuY2hhcl9idWY7Ci0JZnAgPSB0dHktPmZsaXAuZmxhZ19idWY7Ci0JY291bnQgPSAwOwotCiAJLy8gZm9sbG93aW5nIGFkZCBieSBWaWN0b3IgWXUuIDA5LTAyLTIwMDIKIAlpZiAoaW5mby0+SXNNb3hhTXVzdENoaXBGbGFnICE9IE1PWEFfT1RIRVJfVUFSVCkgewogCkBAIC0yMDQxLDEyICsyMDM0LDEwIEBACiAJCX0KIAkJd2hpbGUgKGdkbC0tKSB7CiAJCQljaCA9IGluYihpbmZvLT5iYXNlICsgVUFSVF9SWCk7Ci0JCQljb3VudCsrOwotCQkJKmNwKysgPSBjaDsKLQkJCSpmcCsrID0gMDsKKwkJCXR0eV9pbnNlcnRfZmxpcF9jaGFyKHR0eSwgY2gsIDApOwogCQkJY250Kys7CiAJCQkvKgotCQkJICAgaWYoKGNvdW50Pj1ISV9XQVRFUikgJiYgKGluZm8tPnN0b3Bfcng9PTApKXsKKwkJCSAgIGlmKChjbnQ+PUhJX1dBVEVSKSAmJiAoaW5mby0+c3RvcF9yeD09MCkpewogCQkJICAgbXhzZXJfc3RvcHJ4KHR0eSk7CiAJCQkgICBpbmZvLT5zdG9wX3J4PTE7CiAJCQkgICBicmVhazsKQEAgLTIwNjEsNyArMjA1Miw3IEBACiAJCWlmIChtYXgtLSA8IDApCiAJCQlicmVhazsKIAkJLyoKLQkJICAgaWYoKGNvdW50Pj1ISV9XQVRFUikgJiYgKGluZm8tPnN0b3Bfcng9PTApKXsKKwkJICAgaWYoKGNudD49SElfV0FURVIpICYmIChpbmZvLT5zdG9wX3J4PT0wKSl7CiAJCSAgIG14c2VyX3N0b3ByeCh0dHkpOwogCQkgICBpbmZvLT5zdG9wX3J4PTE7CiAJCSAgIGJyZWFrOwpAQCAtMjA3OCwzNiArMjA2OSwzMyBAQAogCQkJaWYgKCsraWdub3JlZCA+IDEwMCkKIAkJCQlicmVhazsKIAkJfSBlbHNlIHsKLQkJCWNvdW50Kys7CisJCQljaGFyIGZsYWcgPSAwOwogCQkJaWYgKCpzdGF0dXMgJiBVQVJUX0xTUl9TUEVDSUFMKSB7CiAJCQkJaWYgKCpzdGF0dXMgJiBVQVJUX0xTUl9CSSkgewotCQkJCQkqZnArKyA9IFRUWV9CUkVBSzsKKwkJCQkJZmxhZyA9IFRUWV9CUkVBSzsKIC8qIGFkZGVkIGJ5IGNhc3BlciAxLzExLzIwMDAgKi8KIAkJCQkJaW5mby0+aWNvdW50LmJyaysrOwotCiAvKiAqLwogCQkJCQlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19TQUspCiAJCQkJCQlkb19TQUsodHR5KTsKIAkJCQl9IGVsc2UgaWYgKCpzdGF0dXMgJiBVQVJUX0xTUl9QRSkgewotCQkJCQkqZnArKyA9IFRUWV9QQVJJVFk7CisJCQkJCWZsYWcgPSBUVFlfUEFSSVRZOwogLyogYWRkZWQgYnkgY2FzcGVyIDEvMTEvMjAwMCAqLwogCQkJCQlpbmZvLT5pY291bnQucGFyaXR5Kys7CiAvKiAqLwogCQkJCX0gZWxzZSBpZiAoKnN0YXR1cyAmIFVBUlRfTFNSX0ZFKSB7Ci0JCQkJCSpmcCsrID0gVFRZX0ZSQU1FOworCQkJCQlmbGFnID0gVFRZX0ZSQU1FOwogLyogYWRkZWQgYnkgY2FzcGVyIDEvMTEvMjAwMCAqLwogCQkJCQlpbmZvLT5pY291bnQuZnJhbWUrKzsKIC8qICovCiAJCQkJfSBlbHNlIGlmICgqc3RhdHVzICYgVUFSVF9MU1JfT0UpIHsKLQkJCQkJKmZwKysgPSBUVFlfT1ZFUlJVTjsKKwkJCQkJZmxhZyA9IFRUWV9PVkVSUlVOOwogLyogYWRkZWQgYnkgY2FzcGVyIDEvMTEvMjAwMCAqLwogCQkJCQlpbmZvLT5pY291bnQub3ZlcnJ1bisrOwogLyogKi8KLQkJCQl9IGVsc2UKLQkJCQkJKmZwKysgPSAwOwotCQkJfSBlbHNlCi0JCQkJKmZwKysgPSAwOwotCQkJKmNwKysgPSBjaDsKKwkJCQl9CisJCQl9CisJCQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcih0dHksIGNoLCBmbGFnKTsKIAkJCWNudCsrOwogCQkJaWYgKGNudCA+PSByZWN2X3Jvb20pIHsKIAkJCQlpZiAoIWluZm8tPmxkaXNjX3N0b3BfcngpIHsKQEAgLTIxMzIsMTMgKzIxMjAsMTMgQEAKIAkJLy8gYWJvdmUgYWRkIGJ5IFZpY3RvciBZdS4gMDktMDItMjAwMgogCX0gd2hpbGUgKCpzdGF0dXMgJiBVQVJUX0xTUl9EUik7CiAKLSAgICAgIGVuZF9pbnRyOgkJLy8gYWRkIGJ5IFZpY3RvciBZdS4gMDktMDItMjAwMgorZW5kX2ludHI6CQkvLyBhZGQgYnkgVmljdG9yIFl1LiAwOS0wMi0yMDAyCiAKIAlteHZhcl9sb2cucnhjbnRbaW5mby0+cG9ydF0gKz0gY250OwogCWluZm8tPm1vbl9kYXRhLnJ4Y250ICs9IGNudDsKIAlpbmZvLT5tb25fZGF0YS51cF9yeGNudCArPSBjbnQ7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+c2xvY2ssIGZsYWdzKTsKLQkKKwogCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmM0L2ZjLmMgYi9kcml2ZXJzL2ZjNC9mYy5jCmluZGV4IDFmYmIyMTkuLmZiZDlmZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmM0L2ZjLmMKKysrIGIvZHJpdmVycy9mYzQvZmMuYwpAQCAtNzY3LDEwICs3NjcsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAlpZiAoRkNQX0NNTkQoU0NwbnQpLT5kb25lKQogCQlGQ1BfQ01ORChTQ3BudCktPmRvbmUoU0NwbnQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyBpbnQgZmNwX3Njc2lfcXVldWVfaXQoZmNfY2hhbm5lbCAqZmMsIFNjc2lfQ21uZCAqU0NwbnQsIGZjcF9jbW5kICpmY21kLCBpbnQgcHJlcGFyZSkKQEAgLTkxMiw5ICs5MTAsNyBAQAogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJCVNDcG50LT5yZXN1bHQgPSBESURfQUJPUlQ7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCQlmY21kLT5kb25lKFNDcG50KTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAkJcHJpbnRrKCJGQzogc29mdCBhYm9ydFxuIik7CiAJCXJldHVybiBTVUNDRVNTOwogCX0gZWxzZSB7CkBAIC05ODcsNyArOTgzLDEwIEBACiAJZmMtPnJzdF9wa3QtPnJlcXVlc3QtPnJxX3N0YXR1cyA9IFJRX1NDU0lfQlVTWTsKIAogCWZjLT5yc3RfcGt0LT5kb25lID0gZmNwX3Njc2lfcmVzZXRfZG9uZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCWZjcF9zY3NpX3F1ZXVlX2l0KGZjLCBmYy0+cnN0X3BrdCwgZmNtZCwgMCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAkKIAlkb3duKCZzZW0pOwogCkBAIC0xMDA2LDEzICsxMDA1LDcgQEAKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIAotaW50IGZjcF9zY3NpX2J1c19yZXNldChTY3NpX0NtbmQgKlNDcG50KQotewotCXByaW50ayAoIkZDOiBidXMgcmVzZXQhXG4iKTsKLQlyZXR1cm4gRkFJTEVEOwotfQotCi1pbnQgZmNwX3Njc2lfaG9zdF9yZXNldChTY3NpX0NtbmQgKlNDcG50KQorc3RhdGljIGludCBfX2ZjcF9zY3NpX2hvc3RfcmVzZXQoU2NzaV9DbW5kICpTQ3BudCkKIHsKIAlmY19jaGFubmVsICpmYyA9IEZDX1NDTU5EKFNDcG50KTsKIAlmY3BfY21uZCAqZmNtZCA9IEZDUF9DTU5EKFNDcG50KTsKQEAgLTEwMzMsNiArMTAyNiwxNyBAQAogCWVsc2UgcmV0dXJuIEZBSUxFRDsKIH0KIAoraW50IGZjcF9zY3NpX2hvc3RfcmVzZXQoU2NzaV9DbW5kICpTQ3BudCkKK3sKKwlpbnQgcmM7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKKwlyYyA9IF9fZmNwX3Njc2lfaG9zdF9yZXNldChTQ3BudCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByYzsKK30KKwogc3RhdGljIGludCBmY3BfZWxzX3F1ZXVlX2l0KGZjX2NoYW5uZWwgKmZjLCBmY3BfY21uZCAqZmNtZCkKIHsKIAlsb25nIGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2ZjNC9mY19zeW1zLmMgYi9kcml2ZXJzL2ZjNC9mY19zeW1zLmMKaW5kZXggOGJhYzJjNC4uZWQ4NWRmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9mYzQvZmNfc3ltcy5jCisrKyBiL2RyaXZlcnMvZmM0L2ZjX3N5bXMuYwpAQCAtMjcsNyArMjcsNiBAQAogRVhQT1JUX1NZTUJPTChmY3Bfc2NzaV9xdWV1ZWNvbW1hbmQpOwogRVhQT1JUX1NZTUJPTChmY3Bfc2NzaV9hYm9ydCk7CiBFWFBPUlRfU1lNQk9MKGZjcF9zY3NpX2Rldl9yZXNldCk7Ci1FWFBPUlRfU1lNQk9MKGZjcF9zY3NpX2J1c19yZXNldCk7CiBFWFBPUlRfU1lNQk9MKGZjcF9zY3NpX2hvc3RfcmVzZXQpOwogCiAjZW5kaWYgLyogQ09ORklHX01PRFVMRVMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmM0L2ZjcF9pbXBsLmggYi9kcml2ZXJzL2ZjNC9mY3BfaW1wbC5oCmluZGV4IGU0NGQ2NTIuLmMzOTdjODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmM0L2ZjcF9pbXBsLmgKKysrIGIvZHJpdmVycy9mYzQvZmNwX2ltcGwuaApAQCAtMTU4LDcgKzE1OCw2IEBACiBpbnQgZmNwX3Njc2lfcXVldWVjb21tYW5kKFNjc2lfQ21uZCAqLCB2b2lkICgqIGRvbmUpKFNjc2lfQ21uZCAqKSk7CiBpbnQgZmNwX3Njc2lfYWJvcnQoU2NzaV9DbW5kICopOwogaW50IGZjcF9zY3NpX2Rldl9yZXNldChTY3NpX0NtbmQgKik7Ci1pbnQgZmNwX3Njc2lfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqKTsKIGludCBmY3Bfc2NzaV9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqKTsKIAogI2VuZGlmIC8qICEoX0ZDUF9TQ1NJX0gpICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2llZWUxMzk0L3NicDIuYyBiL2RyaXZlcnMvaWVlZTEzOTQvc2JwMi5jCmluZGV4IDAwYzdiOTUuLjJiYWUzMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWVlZTEzOTQvc2JwMi5jCisrKyBiL2RyaXZlcnMvaWVlZTEzOTQvc2JwMi5jCkBAIC03NDUsNyArNzQ1LDggQEAKIAlsaXN0X2FkZF90YWlsKCZzY3NpX2lkLT5zY3NpX2xpc3QsICZoaS0+c2NzaV9pZHMpOwogCiAJLyogUmVnaXN0ZXIgb3VyIGhvc3Qgd2l0aCB0aGUgU0NTSSBzdGFjay4gKi8KLQlzY3NpX2hvc3QgPSBzY3NpX2hvc3RfYWxsb2MoJnNjc2lfZHJpdmVyX3RlbXBsYXRlLCAwKTsKKwlzY3NpX2hvc3QgPSBzY3NpX2hvc3RfYWxsb2MoJnNjc2lfZHJpdmVyX3RlbXBsYXRlLAorCQkJCSAgICBzaXplb2YgKHVuc2lnbmVkIGxvbmcpKTsKIAlpZiAoIXNjc2lfaG9zdCkgewogCQlTQlAyX0VSUigiZmFpbGVkIHRvIHJlZ2lzdGVyIHNjc2kgaG9zdCIpOwogCQlnb3RvIGZhaWxlZF9hbGxvYzsKQEAgLTEwNzAsNyArMTA3MSw3IEBACiBzdGF0aWMgX19pbmxpbmVfXyBpbnQgc2JwMl9jb21tYW5kX2NvbnZlcnNpb25fZGV2aWNlX3R5cGUodTggZGV2aWNlX3R5cGUpCiB7CiAJcmV0dXJuICgoKGRldmljZV90eXBlID09IFRZUEVfRElTSykgfHwKLQkJIChkZXZpY2VfdHlwZSA9PSBUWVBFX1NEQUQpIHx8CisJCSAoZGV2aWNlX3R5cGUgPT0gVFlQRV9SQkMpIHx8CiAJCSAoZGV2aWNlX3R5cGUgPT0gVFlQRV9ST00pKSA/IDE6MCk7CiB9CiAKQEAgLTIxMTEsMTAyICsyMTEyLDYgQEAKICAqLwogc3RhdGljIHZvaWQgc2JwMl9jaGVja19zYnAyX2NvbW1hbmQoc3RydWN0IHNjc2lfaWRfaW5zdGFuY2VfZGF0YSAqc2NzaV9pZCwgdW5jaGFyICpjbWQpCiB7Ci0JdW5jaGFyIG5ld19jbWRbMTZdOwotCXU4IGRldmljZV90eXBlID0gU0JQMl9ERVZJQ0VfVFlQRSAoc2NzaV9pZC0+c2JwMl9kZXZpY2VfdHlwZV9hbmRfbHVuKTsKLQotCVNCUDJfREVCVUcoInNicDJfY2hlY2tfc2JwMl9jb21tYW5kIik7Ci0KLQlzd2l0Y2ggKCpjbWQpIHsKLQotCQljYXNlIFJFQURfNjoKLQotCQkJaWYgKHNicDJfY29tbWFuZF9jb252ZXJzaW9uX2RldmljZV90eXBlKGRldmljZV90eXBlKSkgewotCi0JCQkJU0JQMl9ERUJVRygiQ29udmVydCBSRUFEXzYgdG8gUkVBRF8xMCIpOwotCi0JCQkJLyoKLQkJCQkgKiBOZWVkIHRvIHR1cm4gcmVhZF82IGludG8gcmVhZF8xMAotCQkJCSAqLwotCQkJCW5ld19jbWRbMF0gPSAweDI4OwotCQkJCW5ld19jbWRbMV0gPSAoY21kWzFdICYgMHhlMCk7Ci0JCQkJbmV3X2NtZFsyXSA9IDB4MDsKLQkJCQluZXdfY21kWzNdID0gKGNtZFsxXSAmIDB4MWYpOwotCQkJCW5ld19jbWRbNF0gPSBjbWRbMl07Ci0JCQkJbmV3X2NtZFs1XSA9IGNtZFszXTsKLQkJCQluZXdfY21kWzZdID0gMHgwOwotCQkJCW5ld19jbWRbN10gPSAweDA7Ci0JCQkJbmV3X2NtZFs4XSA9IGNtZFs0XTsKLQkJCQluZXdfY21kWzldID0gY21kWzVdOwotCi0JCQkJbWVtY3B5KGNtZCwgbmV3X2NtZCwgMTApOwotCi0JCQl9Ci0KLQkJCWJyZWFrOwotCi0JCWNhc2UgV1JJVEVfNjoKLQotCQkJaWYgKHNicDJfY29tbWFuZF9jb252ZXJzaW9uX2RldmljZV90eXBlKGRldmljZV90eXBlKSkgewotCi0JCQkJU0JQMl9ERUJVRygiQ29udmVydCBXUklURV82IHRvIFdSSVRFXzEwIik7Ci0KLQkJCQkvKgotCQkJCSAqIE5lZWQgdG8gdHVybiB3cml0ZV82IGludG8gd3JpdGVfMTAKLQkJCQkgKi8KLQkJCQluZXdfY21kWzBdID0gMHgyYTsKLQkJCQluZXdfY21kWzFdID0gKGNtZFsxXSAmIDB4ZTApOwotCQkJCW5ld19jbWRbMl0gPSAweDA7Ci0JCQkJbmV3X2NtZFszXSA9IChjbWRbMV0gJiAweDFmKTsKLQkJCQluZXdfY21kWzRdID0gY21kWzJdOwotCQkJCW5ld19jbWRbNV0gPSBjbWRbM107Ci0JCQkJbmV3X2NtZFs2XSA9IDB4MDsKLQkJCQluZXdfY21kWzddID0gMHgwOwotCQkJCW5ld19jbWRbOF0gPSBjbWRbNF07Ci0JCQkJbmV3X2NtZFs5XSA9IGNtZFs1XTsKLQotCQkJCW1lbWNweShjbWQsIG5ld19jbWQsIDEwKTsKLQotCQkJfQotCi0JCQlicmVhazsKLQotCQljYXNlIE1PREVfU0VOU0U6Ci0KLQkJCWlmIChzYnAyX2NvbW1hbmRfY29udmVyc2lvbl9kZXZpY2VfdHlwZShkZXZpY2VfdHlwZSkpIHsKLQotCQkJCVNCUDJfREVCVUcoIkNvbnZlcnQgTU9ERV9TRU5TRV82IHRvIE1PREVfU0VOU0VfMTAiKTsKLQotCQkJCS8qCi0JCQkJICogTmVlZCB0byB0dXJuIG1vZGVfc2Vuc2VfNiBpbnRvIG1vZGVfc2Vuc2VfMTAKLQkJCQkgKi8KLQkJCQluZXdfY21kWzBdID0gMHg1YTsKLQkJCQluZXdfY21kWzFdID0gY21kWzFdOwotCQkJCW5ld19jbWRbMl0gPSBjbWRbMl07Ci0JCQkJbmV3X2NtZFszXSA9IDB4MDsKLQkJCQluZXdfY21kWzRdID0gMHgwOwotCQkJCW5ld19jbWRbNV0gPSAweDA7Ci0JCQkJbmV3X2NtZFs2XSA9IDB4MDsKLQkJCQluZXdfY21kWzddID0gMHgwOwotCQkJCW5ld19jbWRbOF0gPSBjbWRbNF07Ci0JCQkJbmV3X2NtZFs5XSA9IGNtZFs1XTsKLQotCQkJCW1lbWNweShjbWQsIG5ld19jbWQsIDEwKTsKLQotCQkJfQotCi0JCQlicmVhazsKLQotCQljYXNlIE1PREVfU0VMRUNUOgotCi0JCQkvKgotCQkJICogVE9ETy4gUHJvYmFibHkgbmVlZCB0byBjaGFuZ2UgbW9kZSBzZWxlY3QgdG8gMTAgYnl0ZSB2ZXJzaW9uCi0JCQkgKi8KLQotCQlkZWZhdWx0OgotCQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuOwogfQogCiAvKgpAQCAtMjI0Nyw3ICsyMTUyLDYgQEAKIAkJCQkgICAgIHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQogewogCXU4ICpzY3NpX2J1ZiA9IFNDcG50LT5yZXF1ZXN0X2J1ZmZlcjsKLQl1OCBkZXZpY2VfdHlwZSA9IFNCUDJfREVWSUNFX1RZUEUgKHNjc2lfaWQtPnNicDJfZGV2aWNlX3R5cGVfYW5kX2x1bik7CiAKIAlTQlAyX0RFQlVHKCJzYnAyX2NoZWNrX3NicDJfcmVzcG9uc2UiKTsKIApAQCAtMjI3MiwxNCArMjE3Niw2IEBACiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBDaGVjayBmb3IgU2ltcGxlIERpcmVjdCBBY2Nlc3MgRGV2aWNlIGFuZCBjaGFuZ2UgaXQgdG8gVFlQRV9ESVNLCi0JCQkgKi8KLQkJCWlmICgoc2NzaV9idWZbMF0gJiAweDFmKSA9PSBUWVBFX1NEQUQpIHsKLQkJCQlTQlAyX0RFQlVHKCJDaGFuZ2luZyBUWVBFX1NEQUQgdG8gVFlQRV9ESVNLIik7Ci0JCQkJc2NzaV9idWZbMF0gJj0gMHhlMDsKLQkJCX0KLQotCQkJLyoKIAkJCSAqIEZpeCBhbnNpIHJldmlzaW9uIGFuZCByZXNwb25zZSBkYXRhIGZvcm1hdAogCQkJICovCiAJCQlzY3NpX2J1ZlsyXSB8PSAyOwpAQCAtMjI4NywyNyArMjE4Myw2IEBACiAKIAkJCWJyZWFrOwogCi0JCWNhc2UgTU9ERV9TRU5TRToKLQotCQkJaWYgKHNicDJfY29tbWFuZF9jb252ZXJzaW9uX2RldmljZV90eXBlKGRldmljZV90eXBlKSkgewotCi0JCQkJU0JQMl9ERUJVRygiTW9kaWZ5IG1vZGUgc2Vuc2UgcmVzcG9uc2UgKDEwIGJ5dGUgdmVyc2lvbikiKTsKLQotCQkJCXNjc2lfYnVmWzBdID0gc2NzaV9idWZbMV07CS8qIE1vZGUgZGF0YSBsZW5ndGggKi8KLQkJCQlzY3NpX2J1ZlsxXSA9IHNjc2lfYnVmWzJdOwkvKiBNZWRpdW0gdHlwZSAqLwotCQkJCXNjc2lfYnVmWzJdID0gc2NzaV9idWZbM107CS8qIERldmljZSBzcGVjaWZpYyBwYXJhbWV0ZXIgKi8KLQkJCQlzY3NpX2J1ZlszXSA9IHNjc2lfYnVmWzddOwkvKiBCbG9jayBkZXNjcmlwdG9yIGxlbmd0aCAqLwotCQkJCW1lbWNweShzY3NpX2J1ZiArIDQsIHNjc2lfYnVmICsgOCwgc2NzaV9idWZbMF0pOwotCQkJfQotCi0JCQlicmVhazsKLQotCQljYXNlIE1PREVfU0VMRUNUOgotCi0JCQkvKgotCQkJICogVE9ETy4gUHJvYmFibHkgbmVlZCB0byBjaGFuZ2UgbW9kZSBzZWxlY3QgdG8gMTAgYnl0ZSB2ZXJzaW9uCi0JCQkgKi8KLQogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpAQCAtMjU3OSw4ICsyNDU0LDYgQEAKIAkJCQkgICAgICB1MzIgc2NzaV9zdGF0dXMsIHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50LAogCQkJCSAgICAgIHZvaWQgKCpkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICopKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KIAlTQlAyX0RFQlVHKCJzYnAyc2NzaV9jb21wbGV0ZV9jb21tYW5kIik7CiAKIAkvKgpAQCAtMjY3OSwxOCArMjU1MiwxNSBAQAogCS8qCiAJICogVGVsbCBzY3NpIHN0YWNrIHRoYXQgd2UncmUgZG9uZSB3aXRoIHRoaXMgY29tbWFuZAogCSAqLwotCXNwaW5fbG9ja19pcnFzYXZlKHNjc2lfaWQtPnNjc2lfaG9zdC0+aG9zdF9sb2NrLGZsYWdzKTsKIAlkb25lIChTQ3BudCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY3NpX2lkLT5zY3NpX2hvc3QtPmhvc3RfbG9jayxmbGFncyk7Ci0KLQlyZXR1cm47CiB9CiAKIAogc3RhdGljIGludCBzYnAyc2NzaV9zbGF2ZV9jb25maWd1cmUgKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldikKIHsKIAlibGtfcXVldWVfZG1hX2FsaWdubWVudChzZGV2LT5yZXF1ZXN0X3F1ZXVlLCAoNTEyIC0gMSkpOwotCisJc2Rldi0+dXNlXzEwX2Zvcl9ydyA9IDE7CisJc2Rldi0+dXNlXzEwX2Zvcl9tcyA9IDE7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI3NDYsNyArMjYxNiw3IEBACiAvKgogICogQ2FsbGVkIGJ5IHNjc2kgc3RhY2sgd2hlbiBzb21ldGhpbmcgaGFzIHJlYWxseSBnb25lIHdyb25nLgogICovCi1zdGF0aWMgaW50IHNicDJzY3NpX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQorc3RhdGljIGludCBfX3NicDJzY3NpX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQogewogCXN0cnVjdCBzY3NpX2lkX2luc3RhbmNlX2RhdGEgKnNjc2lfaWQgPQogCQkoc3RydWN0IHNjc2lfaWRfaW5zdGFuY2VfZGF0YSAqKVNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhWzBdOwpAQCAtMjc2MSw2ICsyNjMxLDE4IEBACiAJcmV0dXJuKFNVQ0NFU1MpOwogfQogCitzdGF0aWMgaW50IHNicDJzY3NpX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycXNhdmUoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CisJcmMgPSBfX3NicDJzY3NpX3Jlc2V0KFNDcG50KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJjOworfQorCiBzdGF0aWMgY29uc3QgY2hhciAqc2JwMnNjc2lfaW5mbyAoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCkKIHsKICAgICAgICAgcmV0dXJuICJTQ1NJIGVtdWxhdGlvbiBmb3IgSUVFRS0xMzk0IFNCUC0yIERldmljZXMiOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZWVlMTM5NC9zYnAyLmggYi9kcml2ZXJzL2llZWUxMzk0L3NicDIuaAppbmRleCBhODRiMDM5Li5jZDQyNWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2llZWUxMzk0L3NicDIuaAorKysgYi9kcml2ZXJzL2llZWUxMzk0L3NicDIuaApAQCAtMjY2LDEwICsyNjYsNiBAQAogI2RlZmluZSBTQlAyX01BWF9VRFNfUEVSX05PREUJCTE2CS8qIE1heGltdW0gc2NzaSBkZXZpY2VzIHBlciBub2RlICovCiAjZGVmaW5lIFNCUDJfTUFYX1NFQ1RPUlMJCTI1NQkvKiBNYXggc2VjdG9ycyBzdXBwb3J0ZWQgKi8KIAotI2lmbmRlZiBUWVBFX1NEQUQKLSNkZWZpbmUgVFlQRV9TREFECQkJMHgwZQkvKiBzaW1wbGlmaWVkIGRpcmVjdCBhY2Nlc3MgZGV2aWNlICovCi0jZW5kaWYKLQogLyoKICAqIFNDU0kgZGlyZWN0aW9uIHRhYmxlLi4uCiAgKiAobm93IHVzZWQgYXMgYSBiYWNrLXVwIGluIGNhc2UgdGhlIGRpcmVjdGlvbiBwYXNzZWQgZG93biBmcm9tIGFib3ZlIGlzICJ1bmtub3duIikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXRrYmQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXRrYmQuYwppbmRleCBhZjA0NDZjLi40OGZkZjFlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9hdGtiZC5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXRrYmQuYwpAQCAtNTQsNyArNTQsNyBAQAogbW9kdWxlX3BhcmFtX25hbWVkKHNvZnRyYXcsIGF0a2JkX3NvZnRyYXcsIGJvb2wsIDApOwogTU9EVUxFX1BBUk1fREVTQyhzb2Z0cmF3LCAiVXNlIHNvZnR3YXJlIGdlbmVyYXRlZCByYXdtb2RlIik7CiAKLXN0YXRpYyBpbnQgYXRrYmRfc2Nyb2xsID0gMTsKK3N0YXRpYyBpbnQgYXRrYmRfc2Nyb2xsID0gMDsKIG1vZHVsZV9wYXJhbV9uYW1lZChzY3JvbGwsIGF0a2JkX3Njcm9sbCwgYm9vbCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNjcm9sbCwgIkVuYWJsZSBzY3JvbGwtd2hlZWwgb24gTVMgT2ZmaWNlIGFuZCBzaW1pbGFyIGtleWJvYXJkcyIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2FscHMuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5jCmluZGV4IDQyYTlmN2YuLjdiZjRiZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5jCkBAIC0zNTIsNyArMzUyLDcgQEAKIAlpZiAoYWxwc19nZXRfc3RhdHVzKHBzbW91c2UsIHBhcmFtKSkKIAkJcmV0dXJuIC0xOwogCi0JaWYgKHBhcmFtWzBdICYgMHgwNCkKKwlpZiAoIShwYXJhbVswXSAmIDB4MDQpKQogCQlhbHBzX3RhcF9tb2RlKHBzbW91c2UsIDEpOwogCiAJaWYgKGFscHNfYWJzb2x1dGVfbW9kZShwc21vdXNlKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvdmlhLXBtdS5jIGIvZHJpdmVycy9tYWNpbnRvc2gvdmlhLXBtdS5jCmluZGV4IGJiOWY0MDQuLmI5NDFlZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC92aWEtcG11LmMKQEAgLTI1OTMsNiArMjU5Myw5IEBACiAJLyogUmVzdG9yZSBWSUEgKi8KIAlyZXN0b3JlX3ZpYV9zdGF0ZSgpOwogCisJLyogdHdlYWsgTFBKIGJlZm9yZSBjcHVmcmVxIGlzIHRoZXJlICovCisJbG9vcHNfcGVyX2ppZmZ5ICo9IDI7CisKIAkvKiBSZXN0b3JlIHZpZGVvICovCiAJcG1hY19jYWxsX2Vhcmx5X3ZpZGVvX3Jlc3VtZSgpOwogCkBAIC0yNjEzLDYgKzI2MTYsOSBAQAogCXBtdV9yZXF1ZXN0KCZyZXEsIE5VTEwsIDIsIFBNVV9TRVRfSU5UUl9NQVNLLCBwbXVfaW50cl9tYXNrKTsKIAlwbXVfd2FpdF9jb21wbGV0ZSgmcmVxKTsKIAorCS8qIFJlc3RvcmUgTFBKLCBjcHVmcmVxIHdpbGwgYWRqdXN0IHRoZSBjcHUgZnJlcXVlbmN5ICovCisJbG9vcHNfcGVyX2ppZmZ5IC89IDI7CisKIAlwbWFjX3dha2V1cF9kZXZpY2VzKCk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tbXBhdGguYyBiL2RyaXZlcnMvbWQvZG0tbXBhdGguYwppbmRleCAxZTk3YjNjLi4wYzFiODUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLW1wYXRoLmMKKysrIGIvZHJpdmVycy9tZC9kbS1tcGF0aC5jCkBAIC05ODUsNiArOTg1LDkgQEAKIAlpZiAoIWVycm9yKQogCQlyZXR1cm4gMDsJLyogSS9PIGNvbXBsZXRlICovCiAKKwlpZiAoKGVycm9yID09IC1FV09VTERCTE9DSykgJiYgYmlvX3J3X2FoZWFkKGJpbykpCisJCXJldHVybiBlcnJvcjsKKwogCXNwaW5fbG9jaygmbS0+bG9jayk7CiAJaWYgKCFtLT5ucl92YWxpZF9wYXRocykgewogCQlpZiAoIW0tPnF1ZXVlX2lmX25vX3BhdGggfHwgbS0+c3VzcGVuZGVkKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL0tjb25maWcgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL0tjb25maWcKaW5kZXggNDUyNDE4Yi4uMzNmMjA5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vS2NvbmZpZwpAQCAtMiwzNCArMiw1NCBAQAogbWVudSAiRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydCIKIAogY29uZmlnIEZVU0lPTgotCXRyaXN0YXRlICJGdXNpb24gTVBUIChiYXNlICsgU2NzaUhvc3QpIGRyaXZlcnMiCi0JZGVwZW5kcyBvbiBQQ0kgJiYgU0NTSQotCS0tLWhlbHAtLS0KLQkgIExTSSBMb2dpYyBGdXNpb24oVE0pIE1lc3NhZ2UgUGFzc2luZyBUZWNobm9sb2d5IChNUFQpIGRldmljZSBzdXBwb3J0Ci0JICBwcm92aWRlcyBoaWdoIHBlcmZvcm1hbmNlIFNDU0kgaG9zdCBpbml0aWF0b3IsIGFuZCBMQU4gWzFdIGludGVyZmFjZQotCSAgc2VydmljZXMgdG8gYSBob3N0IHN5c3RlbS4gIFRoZSBGdXNpb24gYXJjaGl0ZWN0dXJlIGlzIGNhcGFibGUgb2YKLQkgIGR1cGxleGluZyB0aGVzZSBwcm90b2NvbHMgb24gaGlnaC1zcGVlZCBGaWJyZSBDaGFubmVsCi0JICAodXAgdG8gMiBHSHogeCAyIHBvcnRzID0gNCBHSHopIGFuZCBwYXJhbGxlbCBTQ1NJICh1cCB0byBVbHRyYS0zMjApCi0JICBwaHlzaWNhbCBtZWRpdW0uCisJYm9vbAorCWRlZmF1bHQgbgogCi0JICBbMV0gTEFOIGlzIG5vdCBzdXBwb3J0ZWQgb24gcGFyYWxsZWwgU0NTSSBtZWRpdW0uCitjb25maWcgRlVTSU9OX1NQSQorCXRyaXN0YXRlICJGdXNpb24gTVBUIFNjc2lIb3N0IGRyaXZlcnMgZm9yIFNQSSIKKwlkZXBlbmRzIG9uIFBDSSAmJiBTQ1NJCisJc2VsZWN0IEZVU0lPTgorCS0tLWhlbHAtLS0KKwkgIFNDU0kgSE9TVCBzdXBwb3J0IGZvciBhIHBhcmFsbGVsIFNDU0kgaG9zdCBhZGFwdGVycy4KKworCSAgTGlzdCBvZiBzdXBwb3J0ZWQgY29udHJvbGxlcnM6CisKKwkgIExTSTUzQzEwMjAKKwkgIExTSTUzQzEwMjBBCisJICBMU0k1M0MxMDMwCisJICBMU0k1M0MxMDM1CisKK2NvbmZpZyBGVVNJT05fRkMKKwl0cmlzdGF0ZSAiRnVzaW9uIE1QVCBTY3NpSG9zdCBkcml2ZXJzIGZvciBGQyIKKwlkZXBlbmRzIG9uIFBDSSAmJiBTQ1NJCisJc2VsZWN0IEZVU0lPTgorCS0tLWhlbHAtLS0KKwkgIFNDU0kgSE9TVCBzdXBwb3J0IGZvciBhIEZpYmVyIENoYW5uZWwgaG9zdCBhZGFwdGVycy4KKworCSAgTGlzdCBvZiBzdXBwb3J0ZWQgY29udHJvbGxlcnM6CisKKwkgIExTSUZDOTA5CisJICBMU0lGQzkxOQorCSAgTFNJRkM5MTlYCisJICBMU0lGQzkyOQorCSAgTFNJRkM5MjlYCisJICBMU0lGQzkyOVhMCiAKIGNvbmZpZyBGVVNJT05fTUFYX1NHRQotCWludCAiTWF4aW11bSBudW1iZXIgb2Ygc2NhdHRlciBnYXRoZXIgZW50cmllcyIKKwlpbnQgIk1heGltdW0gbnVtYmVyIG9mIHNjYXR0ZXIgZ2F0aGVyIGVudHJpZXMgKDE2IC0gMTI4KSIKIAlkZXBlbmRzIG9uIEZVU0lPTgotCWRlZmF1bHQgIjQwIgorCWRlZmF1bHQgIjEyOCIKKwlyYW5nZSAxNiAxMjgKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNjYXR0ZXItCi0JICBnYXRoZXIgZW50cmllcyBwZXIgSS9PLiBUaGUgZHJpdmVyIGRlZmF1bHRzIHRvIDQwLCBhIHJlYXNvbmFibGUgbnVtYmVyCi0JICBmb3IgbW9zdCBzeXN0ZW1zLiBIb3dldmVyLCB0aGUgdXNlciBtYXkgaW5jcmVhc2UgdGhpcyB1cCB0byAxMjguCi0JICBJbmNyZWFzaW5nIHRoaXMgcGFyYW1ldGVyIHdpbGwgcmVxdWlyZSBzaWduaWZpY2FudGx5IG1vcmUgbWVtb3J5IAotCSAgb24gYSBwZXIgY29udHJvbGxlciBpbnN0YW5jZS4gSW5jcmVhc2luZyB0aGUgcGFyYW1ldGVyIGlzIG5vdAotCSAgbmVjZXNzYXJ5IChvciByZWNvbW1lbmRlZCkgdW5sZXNzIHRoZSB1c2VyIHdpbGwgYmUgcnVubmluZyAKLQkgIGxhcmdlIEkvTydzIHZpYSB0aGUgcmF3IGludGVyZmFjZS4KKwkgIGdhdGhlciBlbnRyaWVzIHBlciBJL08uIFRoZSBkcml2ZXIgZGVmYXVsdCBpcyAxMjgsIHdoaWNoIG1hdGNoZXMKKwkgIFNDU0lfTUFYX1BIWVNfU0VHTUVOVFMuIEhvd2V2ZXIsIGl0IG1heSBkZWNyZWFzZWQgZG93biB0byAxNi4KKwkgIERlY3JlYXNpbmcgdGhpcyBwYXJhbWV0ZXIgd2lsbCByZWR1Y2UgbWVtb3J5IHJlcXVpcmVtZW50cworCSAgb24gYSBwZXIgY29udHJvbGxlciBpbnN0YW5jZS4KIAogY29uZmlnIEZVU0lPTl9DVEwKIAl0cmlzdGF0ZSAiRnVzaW9uIE1QVCBtaXNjIGRldmljZSAoaW9jdGwpIGRyaXZlciIKLQlkZXBlbmRzIG9uIEZVU0lPTgorCWRlcGVuZHMgb24gRlVTSU9OX1NQSSB8fCBGVVNJT05fRkMKIAktLS1oZWxwLS0tCiAJICBUaGUgRnVzaW9uIE1QVCBtaXNjIGRldmljZSBkcml2ZXIgcHJvdmlkZXMgc3BlY2lhbGl6ZWQgY29udHJvbAogCSAgb2YgTVBUIGFkYXB0ZXJzIHZpYSBzeXN0ZW0gaW9jdGwgY2FsbHMuICBVc2Ugb2YgaW9jdGwgY2FsbHMgdG8KQEAgLTQ4LDcgKzY4LDcgQEAKIAogY29uZmlnIEZVU0lPTl9MQU4KIAl0cmlzdGF0ZSAiRnVzaW9uIE1QVCBMQU4gZHJpdmVyIgotCWRlcGVuZHMgb24gRlVTSU9OICYmIE5FVF9GQworCWRlcGVuZHMgb24gRlVTSU9OX0ZDICYmIE5FVF9GQwogCS0tLWhlbHAtLS0KIAkgIFRoaXMgbW9kdWxlIHN1cHBvcnRzIExBTiBJUCB0cmFmZmljIG92ZXIgRmlicmUgQ2hhbm5lbCBwb3J0KHMpCiAJICBvbiBGdXNpb24gTVBUIGNvbXBhdGlibGUgaGFyZHdhcmUgKExTSUZDOXh4IGNoaXBzKS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vTWFrZWZpbGUgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL01ha2VmaWxlCmluZGV4IGY2ZmRjYWEuLjFkMmY5ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9NYWtlZmlsZQpAQCAtMSw1MiArMSwzOCBAQAotIwotIyBNYWtlZmlsZSBmb3IgdGhlIExTSSBMb2dpYyBGdXNpb24gTVBUIChNZXNzYWdlIFBhc3NpbmcgVGVjaG5vbG9neSkgZHJpdmVycy4KLSMKLSMgTm90ZSEgSWYgeW91IHdhbnQgdG8gdHVybiBvbiB2YXJpb3VzIGRlYnVnIGRlZmluZXMgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZgotIyB0aW1lIGJ1dCBkb24ndCB3YW50IHRoZW0gbGluZ2VyaW5nIGFyb3VuZCBpbiB0aGUgTWFrZWZpbGUgd2hlbiB5b3UgcGFzcyBpdCBvbgotIyB0byBzb21lb25lIGVsc2UsIHVzZSB0aGUgTVBUX0NGTEFHUyBlbnYgdmFyaWFibGUgKHRoYW5rcyBTdGV2ZSkuIC1ucm9tZXIKLQotIz0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0teyBMU0lfTE9HSUMKLQotIyAgQXJjaGl0ZWN0dXJlLXNwZWNpZmljLi4uCi0jCQkJIyBpbnRlbAotI0VYVFJBX0NGTEFHUyArPSAtZwotIwkJCSMgc3BhcmM2NAotI0VYVFJBX0NGTEFHUyArPSAtZ3N0YWJzKwotCi1FWFRSQV9DRkxBR1MgKz0gJHtNUFRfQ0ZMQUdTfQotCiAjIEZ1c2lvbiBNUFQgZHJpdmVyczsgcmVjb2duaXplZCBkZWJ1ZyBkZWZpbmVzLi4uCiAjICBNUFQgZ2VuZXJhbDoKLSNFWFRSQV9DRkxBR1MgKz0gLURNUFRfREVCVUdfU0NTSQogI0VYVFJBX0NGTEFHUyArPSAtRE1QVF9ERUJVRwogI0VYVFJBX0NGTEFHUyArPSAtRE1QVF9ERUJVR19NU0dfRlJBTUUKICNFWFRSQV9DRkxBR1MgKz0gLURNUFRfREVCVUdfU0cKKyNFWFRSQV9DRkxBR1MgKz0gLURNUFRfREVCVUdfRVZFTlRTCisjRVhUUkFfQ0ZMQUdTICs9IC1ETVBUX0RFQlVHX0lOSVQKKyNFWFRSQV9DRkxBR1MgKz0gLURNUFRfREVCVUdfRVhJVAorI0VYVFJBX0NGTEFHUyArPSAtRE1QVF9ERUJVR19GQUlMCisKIAogIwogIyBkcml2ZXIvbW9kdWxlIHNwZWNpZmljcy4uLgogIwogIyAgRm9yIG1wdGJhc2U6CiAjQ0ZMQUdTX21wdGJhc2UubyArPSAtRE1QVF9ERUJVR19IQU5EU0hBS0UKKyNDRkxBR1NfbXB0YmFzZS5vICs9IC1ETVBUX0RFQlVHX0NPTkZJRworI0NGTEFHU19tcHRiYXNlLm8gKz0gLURNUFRfREVCVUdfREwKICNDRkxBR1NfbXB0YmFzZS5vICs9IC1ETVBUX0RFQlVHX0lSUQorI0NGTEFHU19tcHRiYXNlLm8gKz0gLURNUFRfREVCVUdfUkVTRVQKICMKICMgIEZvciBtcHRzY3NpaDoKLSNDRkxBR1NfbXB0c2NzaWgubyArPSAtRE1QVF9ERUJVR19TQ0FORFYKLSNDRkxBR1NfbXB0c2NzaWgubyArPSAtRE1QVF9ERUJVR19SRVNFVAotI0NGTEFHU19tcHRzY3NpaC5vICs9IC1ETVBUX0RFQlVHX05FSAorI0NGTEFHU19tcHRzY3NpaC5vICs9IC1ETVBUX0RFQlVHX0RWCisjQ0ZMQUdTX21wdHNjc2loLm8gKz0gLURNUFRfREVCVUdfTkVHTworI0NGTEFHU19tcHRzY3NpaC5vICs9IC1ETVBUX0RFQlVHX1RNCisjQ0ZMQUdTX21wdHNjc2loLm8gKz0gLURNUFRfREVCVUdfU0NTSQorI0NGTEFHU19tcHRzY3NpaC5vICs9IC1ETVBUX0RFQlVHX1JFUExZCiAjCiAjICBGb3IgbXB0Y3RsOgogI0NGTEFHU19tcHRjdGwubyArPSAtRE1QVF9ERUJVR19JT0NUTAogIwotIyAgRm9yIG1wdGxhbjoKLSNDRkxBR1NfbXB0bGFuLm8gKz0gLURNUFRfTEFOX0lPX0RFQlVHCi0jCi0jICBGb3IgaXNlbnNlOgotCi0jICBFWFAuLi4KLSMjbXB0c2NzaWgtb2Jqcwk6PSBzY3NpaG9zdC5vIHNjc2loZXJyLm8KIAogIz0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tfSBMU0lfTE9HSUMKIAotb2JqLSQoQ09ORklHX0ZVU0lPTikJCSs9IG1wdGJhc2UubyBtcHRzY3NpaC5vCitvYmotJChDT05GSUdfRlVTSU9OX1NQSSkJKz0gbXB0YmFzZS5vIG1wdHNjc2loLm8gbXB0c3BpLm8KK29iai0kKENPTkZJR19GVVNJT05fRkMpCQkrPSBtcHRiYXNlLm8gbXB0c2NzaWgubyBtcHRmYy5vCiBvYmotJChDT05GSUdfRlVTSU9OX0NUTCkJKz0gbXB0Y3RsLm8KIG9iai0kKENPTkZJR19GVVNJT05fTEFOKQkrPSBtcHRsYW4ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGkuaAppbmRleCA5ZGJiMDYxLi45Zjk4MzM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGkuaAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGkuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waS5oCiAgKiAgICAgICAgICBUaXRsZTogIE1QSSBNZXNzYWdlIGluZGVwZW5kZW50IHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCiAgKiAgQ3JlYXRpb24gRGF0ZTogIEp1bHkgMjcsIDIwMDAKICAqCi0gKiAgICBtcGkuaCBWZXJzaW9uOiAgMDEuMDUueHgKKyAqICAgIG1waS5oIFZlcnNpb246ICAwMS4wNS4wNwogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTUyLDYgKzUyLDI1IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICBvYnNvbGV0ZWQgZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX0lOVkFMSURfSU9DSU5ERVguCiAgKiAgMDQtMDEtMDMgIDAxLjAyLjA5ICBOZXcgSU9DU3RhdHVzIGNvZGU6IE1QSV9JT0NTVEFUVVNfRkNfRVhDSEFOR0VfQ0FOQ0VMRUQKICAqICAwNi0yNi0wMyAgMDEuMDIuMTAgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVCB2YWx1ZS4KKyAqICAwMS0xNi0wNCAgMDEuMDIuMTEgIEFkZGVkIGRlZmluZSBmb3IgTVBJX0lPQ0xPR0lORk9fVFlQRV9TSElGVC4KKyAqICAwNC0yOS0wNCAgMDEuMDIuMTIgIEFkZGVkIGZ1bmN0aW9uIGNvZGVzIGZvciBNUElfRlVOQ1RJT05fRElBR19CVUZGRVJfUE9TVAorICogICAgICAgICAgICAgICAgICAgICAgYW5kIE1QSV9GVU5DVElPTl9ESUFHX1JFTEVBU0UuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBNUElfSU9DU1RBVFVTX0RJQUdOT1NUSUNfUkVMRUFTRUQgZGVmaW5lLgorICogICAgICAgICAgICAgICAgICAgICAgQnVtcGVkIE1QSV9IRUFERVJfVkVSU0lPTl9VTklUIHZhbHVlLgorICogIDA1LTExLTA0ICAwMS4wMy4wMSAgQnVtcGVkIE1QSV9WRVJTSU9OX01JTk9SIGZvciBNUEkgdjEuMy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGNvZGVzIGZvciBJbmJhbmQuCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBBZGRlZCBkZWZpbmVzIGZvciBIb3N0IEJ1ZmZlciBBY2Nlc3MgQ29udHJvbCBkb29yYmVsbC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3Igb2Zmc2V0IG9mIEhpZ2ggUHJpb3JpdHkgUmVxdWVzdCBRdWV1ZS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBmdW5jdGlvbiBjb2RlcyBhbmQgbmV3IElPQ1N0YXR1cyBjb2Rlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGEgSU9DTG9nSW5mbyB0eXBlIG9mIFNBUy4KKyAqICAxMi0wNy0wNCAgMDEuMDUuMDIgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAxMi0wOS0wNCAgMDEuMDUuMDMgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAwMS0xNS0wNSAgMDEuMDUuMDQgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAwMi0wOS0wNSAgMDEuMDUuMDUgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAwMi0yMi0wNSAgMDEuMDUuMDYgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAwMy0xMS0wNSAgMDEuMDUuMDcgIFJlbW92ZWQgZnVuY3Rpb24gY29kZXMgZm9yIFNDU0kgSU8gMzIgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRBc3Npc3RFeHRlbmRlZCByZXF1ZXN0cy4KKyAqICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZWQgRUVEUCBJT0NTdGF0dXMgY29kZXMuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC04Miw3ICsxMDEsNyBAQAogLyogTm90ZTogVGhlIG1ham9yIHZlcnNpb25zIG9mIDB4ZTAgdGhyb3VnaCAweGZmIGFyZSByZXNlcnZlZCAqLwogCiAvKiB2ZXJzaW9uaW5nIGZvciB0aGlzIE1QSSBoZWFkZXIgc2V0ICovCi0jZGVmaW5lIE1QSV9IRUFERVJfVkVSU0lPTl9VTklUICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfSEVBREVSX1ZFUlNJT05fVU5JVCAgICAgICAgICAgICAoMHgwOSkKICNkZWZpbmUgTVBJX0hFQURFUl9WRVJTSU9OX0RFViAgICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9IRUFERVJfVkVSU0lPTl9VTklUX01BU0sgICAgICAgICgweEZGMDApCiAjZGVmaW5lIE1QSV9IRUFERVJfVkVSU0lPTl9VTklUX1NISUZUICAgICAgICg4KQpAQCAtMTIyLDcgKzE0MSwxMSBAQAogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLS8qIFMgeSBzIHQgZSBtICAgIEQgbyBvIHIgYiBlIGwgbCAqLworLyoKKyAqIERlZmluZXMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgU3lzdGVtIERvb3JiZWxsIHJlZ2lzdGVyLgorICogVmFsdWVzIGZvciBkb29yYmVsbCBmdW5jdGlvbiBjb2RlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gdGhhdCBkZWZpbmVzCisgKiBhbGwgdGhlIGZ1bmN0aW9uIGNvZGVzIChmdXJ0aGVyIG9uIGluIHRoaXMgZmlsZSkuCisgKi8KICNkZWZpbmUgTVBJX0RPT1JCRUxMX09GRlNFVCAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDApCiAjZGVmaW5lIE1QSV9ET09SQkVMTF9BQ1RJVkUgICAgICAgICAgICAgICAgICgweDA4MDAwMDAwKSAvKiBEb29yYmVsbFVzZWQgKi8KICNkZWZpbmUgTVBJX0RPT1JCRUxMX1VTRUQgICAgICAgICAgICAgICAgICAgKE1QSV9ET09SQkVMTF9BQ1RJVkUpCkBAIC0xMzQsNiArMTU3LDEzIEBACiAjZGVmaW5lIE1QSV9ET09SQkVMTF9BRERfRFdPUkRTX01BU0sgICAgICAgICgweDAwRkYwMDAwKQogI2RlZmluZSBNUElfRE9PUkJFTExfQUREX0RXT1JEU19TSElGVCAgICAgICAoMTYpCiAjZGVmaW5lIE1QSV9ET09SQkVMTF9EQVRBX01BU0sgICAgICAgICAgICAgICgweDAwMDBGRkZGKQorI2RlZmluZSBNUElfRE9PUkJFTExfRlVOQ1RJT05fU1BFQ0lGSUNfTUFTSyAoMHgwMDAwRkZGRikKKworLyogdmFsdWVzIGZvciBIb3N0IEJ1ZmZlciBBY2Nlc3MgQ29udHJvbCBkb29yYmVsbCBmdW5jdGlvbiAqLworI2RlZmluZSBNUElfREJfSFBCQUNfVkFMVUVfTUFTSyAgICAgICAgICAgICAoMHgwMDAwRjAwMCkKKyNkZWZpbmUgTVBJX0RCX0hQQkFDX0VOQUJMRV9BQ0NFU1MgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9EQl9IUEJBQ19ESVNBQkxFX0FDQ0VTUyAgICAgICAgICgweDAyKQorI2RlZmluZSBNUElfREJfSFBCQUNfRlJFRV9CVUZGRVIgICAgICAgICAgICAoMHgwMykKIAogCiAjZGVmaW5lIE1QSV9XUklURV9TRVFVRU5DRV9PRkZTRVQgICAgICAgICAgICgweDAwMDAwMDA0KQpAQCAtMjU3LDE2ICsyODcsMTggQEAKIAogI2RlZmluZSBNUElfRlVOQ1RJT05fU01QX1BBU1NUSFJPVUdIICAgICAgICAgICAgICAgICgweDFBKQogI2RlZmluZSBNUElfRlVOQ1RJT05fU0FTX0lPX1VOSVRfQ09OVFJPTCAgICAgICAgICAgICgweDFCKQorI2RlZmluZSBNUElfRlVOQ1RJT05fU0FUQV9QQVNTVEhST1VHSCAgICAgICAgICAgICAgICgweDFDKQogCi0jZGVmaW5lIE1QSV9ESUFHX0JVRkZFUl9QT1NUICAgICAgICAgICAgICAgICAgICAgICAgKDB4MUQpCi0jZGVmaW5lIE1QSV9ESUFHX1JFTEVBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MUUpCi0KLSNkZWZpbmUgTVBJX0ZVTkNUSU9OX1NDU0lfSU9fMzIgICAgICAgICAgICAgICAgICAgICAoMHgxRikKKyNkZWZpbmUgTVBJX0ZVTkNUSU9OX0RJQUdfQlVGRkVSX1BPU1QgICAgICAgICAgICAgICAoMHgxRCkKKyNkZWZpbmUgTVBJX0ZVTkNUSU9OX0RJQUdfUkVMRUFTRSAgICAgICAgICAgICAgICAgICAoMHgxRSkKIAogI2RlZmluZSBNUElfRlVOQ1RJT05fTEFOX1NFTkQgICAgICAgICAgICAgICAgICAgICAgICgweDIwKQogI2RlZmluZSBNUElfRlVOQ1RJT05fTEFOX1JFQ0VJVkUgICAgICAgICAgICAgICAgICAgICgweDIxKQogI2RlZmluZSBNUElfRlVOQ1RJT05fTEFOX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICgweDIyKQogCisjZGVmaW5lIE1QSV9GVU5DVElPTl9UQVJHRVRfQ01EX0JVRl9CQVNFX1BPU1QgICAgICAgKDB4MjQpCisjZGVmaW5lIE1QSV9GVU5DVElPTl9UQVJHRVRfQ01EX0JVRl9MSVNUX1BPU1QgICAgICAgKDB4MjUpCisKICNkZWZpbmUgTVBJX0ZVTkNUSU9OX0lOQkFORF9CVUZGRVJfUE9TVCAgICAgICAgICAgICAoMHgyOCkKICNkZWZpbmUgTVBJX0ZVTkNUSU9OX0lOQkFORF9TRU5EICAgICAgICAgICAgICAgICAgICAoMHgyOSkKICNkZWZpbmUgTVBJX0ZVTkNUSU9OX0lOQkFORF9SU1AgICAgICAgICAgICAgICAgICAgICAoMHgyQSkKQEAgLTI3Niw2ICszMDgsNyBAQAogI2RlZmluZSBNUElfRlVOQ1RJT05fSU9fVU5JVF9SRVNFVCAgICAgICAgICAgICAgICAgICgweDQxKQogI2RlZmluZSBNUElfRlVOQ1RJT05fSEFORFNIQUtFICAgICAgICAgICAgICAgICAgICAgICgweDQyKQogI2RlZmluZSBNUElfRlVOQ1RJT05fUkVQTFlfRlJBTUVfUkVNT1ZBTCAgICAgICAgICAgICgweDQzKQorI2RlZmluZSBNUElfRlVOQ1RJT05fSE9TVF9QQUdFQlVGX0FDQ0VTU19DT05UUk9MICAgICgweDQ0KQogCiAKIC8qIHN0YW5kYXJkIHZlcnNpb24gZm9ybWF0ICovCkBAIC0zMjgsOCArMzYxLDggQEAKICAgICAgICAgVTMyICAgICAgICAgICAgICAgICBBZGRyZXNzMzI7CiAgICAgICAgIFU2NCAgICAgICAgICAgICAgICAgQWRkcmVzczY0OwogICAgIH11OwotfSBTR0VTaW1wbGVVbmlvbl90LCBNUElfUE9JTlRFUiBwU0dFU2ltcGxlVW5pb25fdCwKLSAgU0dFX1NJTVBMRV9VTklPTiwgTVBJX1BPSU5URVIgUFRSX1NHRV9TSU1QTEVfVU5JT047Cit9IFNHRV9TSU1QTEVfVU5JT04sIE1QSV9QT0lOVEVSIFBUUl9TR0VfU0lNUExFX1VOSU9OLAorICBTR0VTaW1wbGVVbmlvbl90LCBNUElfUE9JTlRFUiBwU0dFU2ltcGxlVW5pb25fdDsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgQ2hhaW4gZWxlbWVudCBzdHJ1Y3R1cmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTY0OCwyNyArNjgxLDIxIEBACiAjZGVmaW5lIE1QSV9JT0NTVEFUVVNfU0NTSV9FWFRfVEVSTUlOQVRFRCAgICAgICAoMHgwMDRDKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qICBGb3IgdXNlIGJ5IFNDU0kgSW5pdGlhdG9yIGFuZCBTQ1NJIFRhcmdldCBlbmQtdG8tZW5kIGRhdGEgcHJvdGVjdGlvbiAgICAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLSNkZWZpbmUgTVBJX0lPQ1NUQVRVU19FRURQX0NSQ19FUlJPUiAgICAgICAgICAgICgweDAwNEQpCi0jZGVmaW5lIE1QSV9JT0NTVEFUVVNfRUVEUF9MQkFfVEFHX0VSUk9SICAgICAgICAoMHgwMDRFKQotI2RlZmluZSBNUElfSU9DU1RBVFVTX0VFRFBfQVBQX1RBR19FUlJPUiAgICAgICAgKDB4MDA0RikKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qICBTQ1NJIChTUEkgJiBGQ1ApIHRhcmdldCB2YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogIFNDU0kgVGFyZ2V0IHZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2RlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9QUklPUklUWV9JTyAgICAgICAgICgweDAwNjApCiAjZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX0lOVkFMSURfUE9SVCAgICAgICAgKDB4MDA2MSkKLSNkZWZpbmUgTVBJX0lPQ1NUQVRVU19UQVJHRVRfSU5WQUxJRF9JT0NJTkRFWCAgICAoMHgwMDYyKSAgIC8qIG9ic29sZXRlICovCisjZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX0lOVkFMSURfSU9DSU5ERVggICAgKDB4MDA2MikgICAvKiBvYnNvbGV0ZSBuYW1lICovCiAjZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX0lOVkFMSURfSU9fSU5ERVggICAgKDB4MDA2MikKICNkZWZpbmUgTVBJX0lPQ1NUQVRVU19UQVJHRVRfQUJPUlRFRCAgICAgICAgICAgICAoMHgwMDYzKQogI2RlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9OT19DT05OX1JFVFJZQUJMRSAgICgweDAwNjQpCiAjZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX05PX0NPTk5FQ1RJT04gICAgICAgKDB4MDA2NSkKICNkZWZpbmUgTVBJX0lPQ1NUQVRVU19UQVJHRVRfWEZFUl9DT1VOVF9NSVNNQVRDSCAoMHgwMDZBKQogI2RlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9TVFNfREFUQV9OT1RfU0VOVCAgICgweDAwNkIpCisjZGVmaW5lIE1QSV9JT0NTVEFUVVNfVEFSR0VUX0RBVEFfT0ZGU0VUX0VSUk9SICAgKDB4MDA2RCkKKyNkZWZpbmUgTVBJX0lPQ1NUQVRVU19UQVJHRVRfVE9PX01VQ0hfV1JJVEVfREFUQSAoMHgwMDZFKQorI2RlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9JVV9UT09fU0hPUlQgICAgICAgICgweDAwNkYpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIEFkZGl0aW9uYWwgRkNQIHRhcmdldCB2YWx1ZXMgKG9ic29sZXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCkBAIC03MDcsNiArNzM0LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjZGVmaW5lIE1QSV9JT0NTVEFUVVNfU0FTX1NNUF9SRVFVRVNUX0ZBSUxFRCAgICAoMHgwMDkwKQorI2RlZmluZSBNUElfSU9DU1RBVFVTX1NBU19TTVBfREFUQV9PVkVSUlVOICAgICAgKDB4MDA5MSkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgSW5iYW5kIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9jbmZnLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfY25mZy5oCmluZGV4IGE1NjgwZDguLjE1YjEyYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9jbmZnLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2NuZmcuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV9jbmZnLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIENvbmZpZyBtZXNzYWdlLCBzdHJ1Y3R1cmVzLCBhbmQgUGFnZXMKICAqICBDcmVhdGlvbiBEYXRlOiAgSnVseSAyNywgMjAwMAogICoKLSAqICAgIG1waV9jbmZnLmggVmVyc2lvbjogIDAxLjA1Lnh4CisgKiAgICBtcGlfY25mZy5oIFZlcnNpb246ICAwMS4wNS4wOAogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTE0NSw2ICsxNDUsOTMgQEAKICAqICAgICAgICAgICAgICAgICAgICAgIEluIENPTkZJR19QQUdFX0ZDX0RFVklDRV8wLCByZXBsYWNlZCBSZXNlcnZlZDEgZmllbGQKICAqICAgICAgICAgICAgICAgICAgICAgIHdpdGggQURJU0NIYXJkQUxQQS4KICAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE1QSV9GQ19ERVZJQ0VfUEFHRTBfUFJPVF9GQ1BfUkVUUlkgZGVmaW5lLgorICogIDAxLTE2LTA0IDAxLjAyLjEzICAgQWRkZWQgSW5pdGlhdG9yRGV2aWNlVGltZW91dCBhbmQgSW5pdGlhdG9ySW9QZW5kVGltZW91dAorICogICAgICAgICAgICAgICAgICAgICAgZmllbGRzIGFuZCByZWxhdGVkIGRlZmluZXMgdG8gQ09ORklHX1BBR0VfRkNfUE9SVF8xLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZGVmaW5lIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVBJX0ZDUE9SVFBBR0UxX0ZMQUdTX1NPRlRfQUxQQV9GQUxMQkFDSy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBmaWVsZHMgdG8gdGhlIHN1YnN0cnVjdHVyZXMgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfMTAuCisgKiAgMDQtMjktMDQgMDEuMDIuMTQgICBBZGRlZCBkZWZpbmUgZm9yIElEUCBiaXQgZm9yIENPTkZJR19QQUdFX1NDU0lfUE9SVF8wLAorICogICAgICAgICAgICAgICAgICAgICAgQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMCwgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8xLiBBbHNvIGJ1bXBlZCBQYWdlIFZlcnNpb24gZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICB0aGVzZSBwYWdlcy4KKyAqICAwNS0xMS0wNCAwMS4wMy4wMSAgIEFkZGVkIHN0cnVjdHVyZSBmb3IgQ09ORklHX1BBR0VfSU5CQU5EXzAuCisgKiAgMDgtMTktMDQgMDEuMDUuMDEgICBNb2RpZmllZCBNU0dfQ09ORklHIHJlcXVlc3QgdG8gc3VwcG9ydCBleHRlbmRlZCBjb25maWcKKyAqICAgICAgICAgICAgICAgICAgICAgIHBhZ2VzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgYSBuZXcgc3RydWN0dXJlIGZvciBleHRlbmRlZCBjb25maWcgcGFnZSBoZWFkZXIuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgZXh0ZW5kZWQgY29uZmlnIHBhZ2VzIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgU0FTIElPIFVuaXQsIFNBUyBFeHBhbmRlciwgU0FTIERldmljZSwgYW5kIFNBUyBQSFkuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlZCBhIHJlc2VydmVkIGJ5dGUgaW4gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR180CisgKiAgICAgICAgICAgICAgICAgICAgICB0byBhZGQgYSBGbGFncyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIFR3byBuZXcgTWFudWZhY3R1cmluZyBjb25maWcgcGFnZXMgKDUgYW5kIDYpLgorICogICAgICAgICAgICAgICAgICAgICAgVHdvIG5ldyBiaXRzIGRlZmluZWQgZm9yIElPIFVuaXQgUGFnZSAxIEZsYWdzIGZpZWxkLgorICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgQ09ORklHX1BBR0VfSU9fVU5JVF8yIHRvIGFkZCB0aHJlZSBuZXcgZmllbGRzCisgKiAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZ5IHRoZSBCSU9TIGJvb3QgZGV2aWNlLgorICogICAgICAgICAgICAgICAgICAgICAgRm91ciBuZXcgRmxhZ3MgYml0cyBkZWZpbmVkIGZvciBJTyBVbml0IFBhZ2UgMi4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIElPIFVuaXQgUGFnZSA0LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgRUVEUCBGbGFncyBzZXR0aW5ncyB0byBJT0MgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbmV3IEJJT1MgUGFnZSAxIGNvbmZpZyBwYWdlLgorICogIDEwLTA1LTA0IDAxLjA1LjAyICAgQWRkZWQgZGVmaW5lIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVBJX0lPQ1BBR0UxX0lOSVRJQVRPUl9DT05URVhUX1JFUExZX0RJU0FCTEUuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgRmxhZ3MgZmllbGQgdG8gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR181IGFuZAorICogICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBkZWZpbmVzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbW9yZSBkZWZpbmVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDAKKyAqICAgICAgICAgICAgICAgICAgICAgIERpc2NvdmVyeVN0YXR1cyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IgTVBJX1NBU19JT1VOSVQwX0RTX1NVQlRSQUNUSVZFX0xJTksKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBNUElfU0FTX0lPVU5JVDBfRFNfVEFCTEVfTElOSy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZXMgZm9yIFBoeXNpY2FsIE1hcHBpbmcgTW9kZXMgdG8gU0FTIElPIFVuaXQKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMi4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9TQVNfREVWSUNFMF9GTEFHU19QT1JUX1NFTEVDVE9SX0FUVEFDSC4KKyAqICAxMC0yNy0wNCAwMS4wNS4wMyAgIEFkZGVkIGRlZmluZXMgZm9yIG5ldyBTQVMgUEhZIHBhZ2UgYWRkcmVzc2luZyBtb2RlLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZGVmaW5lcyBmb3IgTWF4VGFyZ2V0U3BpblVwIHRvIEJJT1MgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgNSBuZXcgQ29udHJvbEZsYWdzIGRlZmluZXMgZm9yIFNBUyBJTyBVbml0CisgKiAgICAgICAgICAgICAgICAgICAgICBQYWdlIDEuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBNYXhOdW1QaHlzaWNhbE1hcHBlZElEcyBmaWVsZCB0byBTQVMgSU8gVW5pdAorICogICAgICAgICAgICAgICAgICAgICAgUGFnZSAyLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQWNjZXNzU3RhdHVzIGZpZWxkIHRvIFNBUyBEZXZpY2UgUGFnZSAwIGFuZCBhZGRlZAorICogICAgICAgICAgICAgICAgICAgICAgbmV3IEZsYWdzIGJpdHMgZm9yIHN1cHBvcnRlZCBTQVRBIGZlYXR1cmVzLgorICogIDEyLTA3LTA0ICAwMS4wNS4wNCAgQWRkZWQgY29uZmlnIHBhZ2Ugc3RydWN0dXJlcyBmb3IgQklPUyBQYWdlIDIsIFJBSUQKKyAqICAgICAgICAgICAgICAgICAgICAgIFZvbHVtZSBQYWdlIDEsIGFuZCBSQUlEIFBoeXNpY2FsIERpc2sgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWQgSU8gVW5pdCBQYWdlIDEgQm9vdFRhcmdldElELEJvb3RCdXMsIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgQm9vdEFkYXB0ZXJOdW0gd2l0aCByZXNlcnZlZCBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIERhdGFTY3J1YlJhdGUgYW5kIFJlc3luY1JhdGUgdG8gUkFJRCBWb2x1bWUKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE1QSV9TQVNfSU9VTklUMl9GTEFHU19SRVNFUlZFX0lEXzBfRk9SX0JPT1QKKyAqICAgICAgICAgICAgICAgICAgICAgIGRlZmluZS4KKyAqICAxMi0wOS0wNCAgMDEuMDUuMDUgIEFkZGVkIFRhcmdldCBNb2RlIExhcmdlIENEQiBFbmFibGUgdG8gRkMgUG9ydCBQYWdlIDEKKyAqICAgICAgICAgICAgICAgICAgICAgIEZsYWdzIGZpZWxkLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQXV0byBQb3J0IENvbmZpZyBmbGFnIGRlZmluZSBmb3IgU0FTIElPVU5JVAorICogICAgICAgICAgICAgICAgICAgICAgUGFnZSAxIENvbnRyb2xGbGFncy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIERpc2FibGVkIGJhZCBQaHkgZGVmaW5lIHRvIEV4cGFuZGVyIFBhZ2UgMQorICogICAgICAgICAgICAgICAgICAgICAgRGlzY292ZXJ5IEluZm8gZmllbGQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBTQVMvU0FUQSBkZXZpY2Ugc3VwcG9ydCB0byBTQVMgSU9Vbml0IFBhZ2UgMQorICogICAgICAgICAgICAgICAgICAgICAgQ29udHJvbEZsYWdzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgVW5zdXBwb3J0ZWQgZGV2aWNlIHRvIFNBUyBEZXYgUGFnZSAwIEZsYWdzIGZpZWxkCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkaXNhYmxlIHVzZSBTQVRBIEhhc2ggQWRkcmVzcyBmb3IgU0FTIElPVU5JVAorICogICAgICAgICAgICAgICAgICAgICAgcGFnZSAxIGluIENvbnRyb2xGaWVsZHMuCisgKiAgMDEtMTUtMDUgIDAxLjA1LjA2ICBBZGRlZCBkZWZhdWx0cyBmb3IgZGF0YSBzY3J1YiByYXRlIGFuZCByZXN5bmMgcmF0ZSB0bworICogICAgICAgICAgICAgICAgICAgICAgTWFudWZhY3R1cmluZyBQYWdlIDQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgZGVmaW5lcyBmb3IgQklPUyBQYWdlIDEgSU9DU2V0dGluZ3MgZmllbGQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBFeHREaXNrSWRlbnRpZmllciBmaWVsZCB0byBSQUlEIFBoeXNpY2FsIERpc2sKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBkZWZpbmVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDEgQ29udHJvbEZsYWdzCisgKiAgICAgICAgICAgICAgICAgICAgICBhbmQgdG8gU0FTIERldmljZSBQYWdlIDAgRmxhZ3MgdG8gY29udHJvbCBTQVRBIGRldmljZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkZWZpbmVzIGFuZCBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3IExvZyBQYWdlIDAsIGEKKyAqICAgICAgICAgICAgICAgICAgICAgIG5ldyB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gcGFnZS4KKyAqICAwMi0wOS0wNSAgMDEuMDUuMDcgIEFkZGVkIEluYWN0aXZlU3RhdHVzIGZpZWxkIHRvIFJBSUQgVm9sdW1lIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIFdXSUQgZmllbGQgdG8gUkFJRCBWb2x1bWUgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgUGh5c2ljYWxQb3J0IGZpZWxkIHRvIFNBUyBFeHBhbmRlciBwYWdlcyAwIGFuZCAxLgorICogIDAzLTExLTA1ICAwMS4wNS4wOCAgUmVtb3ZlZCB0aGUgRUVEUCBmbGFncyBmcm9tIElPQyBQYWdlIDEuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBFbmNsb3N1cmUvU2xvdCBib290IGRldmljZSBmb3JtYXQgdG8gQklPUyBQYWdlIDIuCisgKiAgICAgICAgICAgICAgICAgICAgICBOZXcgc3RhdHVzIHZhbHVlIGZvciBSQUlEIFZvbHVtZSBQYWdlIDAgVm9sdW1lU3RhdHVzCisgKiAgICAgICAgICAgICAgICAgICAgICAoVm9sdW1lU3RhdGUgc3ViZmllbGQpLgorICogICAgICAgICAgICAgICAgICAgICAgTmV3IHZhbHVlIGZvciBSQUlEIFBoeXNpY2FsIFBhZ2UgMCBJbmFjdGl2ZVN0YXR1cy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIEluYWN0aXZlIFZvbHVtZSBNZW1iZXIgZmxhZyBSQUlEIFBoeXNpY2FsIERpc2sKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMCBQaHlzRGlza1N0YXR1cyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIE5ldyBwaHlzaWNhbCBtYXBwaW5nIG1vZGUgaW4gU0FTIElPIFVuaXQgUGFnZSAyLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQ09ORklHX1BBR0VfU0FTX0VOQ0xPU1VSRV8wLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgU2xvdCBhbmQgRW5jbG9zdXJlIGZpZWxkcyB0byBTQVMgRGV2aWNlIFBhZ2UgMC4KICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTE2NCw3ICsyNTEsNyBAQAogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBhZ2VMZW5ndGg7ICAgICAgICAgICAgICAgICAvKiAwMWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQYWdlTnVtYmVyOyAgICAgICAgICAgICAgICAgLyogMDJoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUGFnZVR5cGU7ICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLwotfSBmQ09ORklHX1BBR0VfSEVBREVSLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSEVBREVSLAorfSBDT05GSUdfUEFHRV9IRUFERVIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9IRUFERVIsCiAgIENvbmZpZ1BhZ2VIZWFkZXJfdCwgTVBJX1BPSU5URVIgcENvbmZpZ1BhZ2VIZWFkZXJfdDsKIAogdHlwZWRlZiB1bmlvbiBfQ09ORklHX1BBR0VfSEVBREVSX1VOSU9OCkBAIC0xNzQsNyArMjYxLDcgQEAKICAgIFUxNiAgICAgICAgICAgICAgICAgV29yZDE2WzJdOwogICAgVTMyICAgICAgICAgICAgICAgICBXb3JkMzI7CiB9IENvbmZpZ1BhZ2VIZWFkZXJVbmlvbiwgTVBJX1BPSU5URVIgcENvbmZpZ1BhZ2VIZWFkZXJVbmlvbiwKLSAgZkNPTkZJR19QQUdFX0hFQURFUl9VTklPTiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0hFQURFUl9VTklPTjsKKyAgQ09ORklHX1BBR0VfSEVBREVSX1VOSU9OLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSEVBREVSX1VOSU9OOwogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSCiB7CkBAIC0xODUsNyArMjcyLDcgQEAKICAgICBVMTYgICAgICAgICAgICAgICAgIEV4dFBhZ2VMZW5ndGg7ICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgIEV4dFBhZ2VUeXBlOyAgICAgICAgICAgICAgICAvKiAwNmggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAvKiAwN2ggKi8KLX0gZkNPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiwKK30gQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSLAogICBDb25maWdFeHRlbmRlZFBhZ2VIZWFkZXJfdCwgTVBJX1BPSU5URVIgcENvbmZpZ0V4dGVuZGVkUGFnZUhlYWRlcl90OwogCiAKQEAgLTIyNCw2ICszMTEsOCBAQAogI2RlZmluZSBNUElfQ09ORklHX0VYVFBBR0VUWVBFX1NBU19FWFBBTkRFUiAgICAgICAgICgweDExKQogI2RlZmluZSBNUElfQ09ORklHX0VYVFBBR0VUWVBFX1NBU19ERVZJQ0UgICAgICAgICAgICgweDEyKQogI2RlZmluZSBNUElfQ09ORklHX0VYVFBBR0VUWVBFX1NBU19QSFkgICAgICAgICAgICAgICgweDEzKQorI2RlZmluZSBNUElfQ09ORklHX0VYVFBBR0VUWVBFX0xPRyAgICAgICAgICAgICAgICAgICgweDE0KQorI2RlZmluZSBNUElfQ09ORklHX0VYVFBBR0VUWVBFX0VOQ0xPU1VSRSAgICAgICAgICAgICgweDE1KQogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yMzEsMTAgKzMyMCwxOSBAQAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgTVBJX1NDU0lfUE9SVF9QR0FEX1BPUlRfTUFTSyAgICAgICAgICAgICAgICAoMHgwMDAwMDBGRikKIAorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfRk9STV9NQVNLICAgICAgICAgICAgICAgICAgICgweEYwMDAwMDAwKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfRk9STV9CVVNfVElEICAgICAgICAgICAgICAgICgweDAwMDAwMDAwKQogI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVEFSR0VUX0lEX01BU0sgICAgICAgICAgICAgICgweDAwMDAwMEZGKQogI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVEFSR0VUX0lEX1NISUZUICAgICAgICAgICAgICgwKQogI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfQlVTX01BU0sgICAgICAgICAgICAgICAgICAgICgweDAwMDBGRjAwKQogI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfQlVTX1NISUZUICAgICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfRk9STV9UQVJHRVRfTU9ERSAgICAgICAgICAgICgweDEwMDAwMDAwKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fUkVTUE9ORF9JRF9NQVNLICAgICAgICAgICgweDAwMDAwMEZGKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fUkVTUE9ORF9JRF9TSElGVCAgICAgICAgICgwKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fQlVTX01BU0sgICAgICAgICAgICAgICAgICgweDAwMDBGRjAwKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fQlVTX1NISUZUICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fSU5JVF9JRF9NQVNLICAgICAgICAgICAgICgweDAwRkYwMDAwKQorI2RlZmluZSBNUElfU0NTSV9ERVZJQ0VfVE1fSU5JVF9JRF9TSElGVCAgICAgICAgICAgICgxNikKIAogI2RlZmluZSBNUElfRkNfUE9SVF9QR0FEX1BPUlRfTUFTSyAgICAgICAgICAgICAgICAgICgweEYwMDAwMDAwKQogI2RlZmluZSBNUElfRkNfUE9SVF9QR0FEX1BPUlRfU0hJRlQgICAgICAgICAgICAgICAgICgyOCkKQEAgLTI2MCw2ICszNTgsMjAgQEAKICNkZWZpbmUgTVBJX1BIWVNESVNLX1BHQURfUEhZU0RJU0tOVU1fTUFTSyAgICAgICAgICAoMHgwMDAwMDBGRikKICNkZWZpbmUgTVBJX1BIWVNESVNLX1BHQURfUEhZU0RJU0tOVU1fU0hJRlQgICAgICAgICAoMCkKIAorI2RlZmluZSBNUElfU0FTX0VYUEFORF9QR0FEX0ZPUk1fTUFTSyAgICAgICAgICAgICAoMHhGMDAwMDAwMCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRfUEdBRF9GT1JNX1NISUZUICAgICAgICAgICAgKDI4KQorI2RlZmluZSBNUElfU0FTX0VYUEFORF9QR0FEX0ZPUk1fR0VUX05FWFRfSEFORExFICAoMHgwMDAwMDAwMCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRfUEdBRF9GT1JNX0hBTkRMRV9QSFlfTlVNICAgKDB4MDAwMDAwMDEpCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5EX1BHQURfRk9STV9IQU5ETEUgICAgICAgICAgICgweDAwMDAwMDAyKQorI2RlZmluZSBNUElfU0FTX0VYUEFORF9QR0FEX0dOSF9NQVNLX0hBTkRMRSAgICAgICAoMHgwMDAwRkZGRikKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRfUEdBRF9HTkhfU0hJRlRfSEFORExFICAgICAgKDApCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5EX1BHQURfSFBOX01BU0tfUEhZICAgICAgICAgICgweDAwRkYwMDAwKQorI2RlZmluZSBNUElfU0FTX0VYUEFORF9QR0FEX0hQTl9TSElGVF9QSFkgICAgICAgICAoMTYpCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5EX1BHQURfSFBOX01BU0tfSEFORExFICAgICAgICgweDAwMDBGRkZGKQorI2RlZmluZSBNUElfU0FTX0VYUEFORF9QR0FEX0hQTl9TSElGVF9IQU5ETEUgICAgICAoMCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRfUEdBRF9IX01BU0tfSEFORExFICAgICAgICAgKDB4MDAwMEZGRkYpCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5EX1BHQURfSF9TSElGVF9IQU5ETEUgICAgICAgICgwKQorCiAjZGVmaW5lIE1QSV9TQVNfREVWSUNFX1BHQURfRk9STV9NQVNLICAgICAgICAgICAgICAgKDB4RjAwMDAwMDApCiAjZGVmaW5lIE1QSV9TQVNfREVWSUNFX1BHQURfRk9STV9TSElGVCAgICAgICAgICAgICAgKDI4KQogI2RlZmluZSBNUElfU0FTX0RFVklDRV9QR0FEX0ZPUk1fR0VUX05FWFRfSEFORExFICAgICgweDAwMDAwMDAwKQpAQCAtMjc0LDEwICszODYsMjQgQEAKICNkZWZpbmUgTVBJX1NBU19ERVZJQ0VfUEdBRF9IX0hBTkRMRV9NQVNLICAgICAgICAgICAoMHgwMDAwRkZGRikKICNkZWZpbmUgTVBJX1NBU19ERVZJQ0VfUEdBRF9IX0hBTkRMRV9TSElGVCAgICAgICAgICAoMCkKIAotI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9OVU1CRVJfTUFTSyAgICAgICAgICAgICgweDAwRkYwMDAwKQotI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9OVU1CRVJfU0hJRlQgICAgICAgICAgICgxNikKLSNkZWZpbmUgTVBJX1NBU19QSFlfUEdBRF9ERVZIQU5ETEVfTUFTSyAgICAgICAgICAgICAoMHgwMDAwRkZGRikKLSNkZWZpbmUgTVBJX1NBU19QSFlfUEdBRF9ERVZIQU5ETEVfU0hJRlQgICAgICAgICAgICAoMCkKKyNkZWZpbmUgTVBJX1NBU19QSFlfUEdBRF9GT1JNX01BU0sgICAgICAgICAgICAgICAgICAoMHhGMDAwMDAwMCkKKyNkZWZpbmUgTVBJX1NBU19QSFlfUEdBRF9GT1JNX1NISUZUICAgICAgICAgICAgICAgICAoMjgpCisjZGVmaW5lIE1QSV9TQVNfUEhZX1BHQURfRk9STV9QSFlfTlVNQkVSICAgICAgICAgICAgKDB4MCkKKyNkZWZpbmUgTVBJX1NBU19QSFlfUEdBRF9GT1JNX1BIWV9UQkxfSU5ERVggICAgICAgICAoMHgxKQorI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9OVU1CRVJfTUFTSyAgICAgICAgICAgICgweDAwMDAwMEZGKQorI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9OVU1CRVJfU0hJRlQgICAgICAgICAgICgwKQorI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9UQkxfSU5ERVhfTUFTSyAgICAgICAgICgweDAwMDBGRkZGKQorI2RlZmluZSBNUElfU0FTX1BIWV9QR0FEX1BIWV9UQkxfSU5ERVhfU0hJRlQgICAgICAgICgwKQorCisjZGVmaW5lIE1QSV9TQVNfRU5DTE9TX1BHQURfRk9STV9NQVNLICAgICAgICAgICAgICAgKDB4RjAwMDAwMDApCisjZGVmaW5lIE1QSV9TQVNfRU5DTE9TX1BHQURfRk9STV9TSElGVCAgICAgICAgICAgICAgKDI4KQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0ZPUk1fR0VUX05FWFRfSEFORExFICAgICgweDAwMDAwMDAwKQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0ZPUk1fSEFORExFICAgICAgICAgICAgICgweDAwMDAwMDAxKQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0dOSF9IQU5ETEVfTUFTSyAgICAgICAgICgweDAwMDBGRkZGKQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0dOSF9IQU5ETEVfU0hJRlQgICAgICAgICgwKQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0hfSEFORExFX01BU0sgICAgICAgICAgICgweDAwMDBGRkZGKQorI2RlZmluZSBNUElfU0FTX0VOQ0xPU19QR0FEX0hfSEFORExFX1NISUZUICAgICAgICAgICgwKQorCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI5NCw3ICs0MjAsNyBAQAogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgICAgICAgICAvKiAwN2ggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBNc2dDb250ZXh0OyAgICAgICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyWzhdOyAgICAgICAgICAgICAgIC8qIDBDaCAqLwotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMTRoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDE0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFBhZ2VBZGRyZXNzOyAgICAgICAgICAgICAgICAvKiAxOGggKi8KICAgICBTR0VfSU9fVU5JT04gICAgICAgICAgICBQYWdlQnVmZmVyU0dFOyAgICAgICAgICAgICAgLyogMUNoICovCiB9IE1TR19DT05GSUcsIE1QSV9QT0lOVEVSIFBUUl9NU0dfQ09ORklHLApAQCAtMzI3LDcgKzQ1Myw3IEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyWzJdOyAgICAgICAgICAgICAgIC8qIDBDaCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIElPQ1N0YXR1czsgICAgICAgICAgICAgICAgICAvKiAwRWggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBJT0NMb2dJbmZvOyAgICAgICAgICAgICAgICAgLyogMTBoICovCi0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMTRoICovCiB9IE1TR19DT05GSUdfUkVQTFksIE1QSV9QT0lOVEVSIFBUUl9NU0dfQ09ORklHX1JFUExZLAogICBDb25maWdSZXBseV90LCBNUElfUE9JTlRFUiBwQ29uZmlnUmVwbHlfdDsKIApAQCAtMzQ5LDYgKzQ3NSw4IEBACiAjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSUNFSURfRkM5MjkgICAgICAgICAgICAgKDB4MDYyMikKICNkZWZpbmUgTVBJX01BTlVGQUNUUEFHRV9ERVZJQ0VJRF9GQzkxOVggICAgICAgICAgICAoMHgwNjI4KQogI2RlZmluZSBNUElfTUFOVUZBQ1RQQUdFX0RFVklDRUlEX0ZDOTI5WCAgICAgICAgICAgICgweDA2MjYpCisjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSUNFSURfRkM5MzlYICAgICAgICAgICAgKDB4MDY0MikKKyNkZWZpbmUgTVBJX01BTlVGQUNUUEFHRV9ERVZJQ0VJRF9GQzk0OVggICAgICAgICAgICAoMHgwNjQwKQogLyogU0NTSSAqLwogI2RlZmluZSBNUElfTUFOVUZBQ1RQQUdFX0RFVklEXzUzQzEwMzAgICAgICAgICAgICAgICgweDAwMzApCiAjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfNTNDMTAzMFpDICAgICAgICAgICAgKDB4MDAzMSkKQEAgLTM1OCwxOCArNDg2LDI1IEBACiAjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfNTNDMTAzNVpDICAgICAgICAgICAgKDB4MDA0MSkKIC8qIFNBUyAqLwogI2RlZmluZSBNUElfTUFOVUZBQ1RQQUdFX0RFVklEX1NBUzEwNjQgICAgICAgICAgICAgICgweDAwNTApCisjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfU0FTMTA2NEEgICAgICAgICAgICAgKDB4MDA1QykKKyNkZWZpbmUgTVBJX01BTlVGQUNUUEFHRV9ERVZJRF9TQVMxMDY0RSAgICAgICAgICAgICAoMHgwMDU2KQorI2RlZmluZSBNUElfTUFOVUZBQ1RQQUdFX0RFVklEX1NBUzEwNjYgICAgICAgICAgICAgICgweDAwNUUpCisjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfU0FTMTA2NkUgICAgICAgICAgICAgKDB4MDA1QSkKKyNkZWZpbmUgTVBJX01BTlVGQUNUUEFHRV9ERVZJRF9TQVMxMDY4ICAgICAgICAgICAgICAoMHgwMDU0KQorI2RlZmluZSBNUElfTUFOVUZBQ1RQQUdFX0RFVklEX1NBUzEwNjhFICAgICAgICAgICAgICgweDAwNTgpCisjZGVmaW5lIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfU0FTMTA3OCAgICAgICAgICAgICAgKDB4MDA2MCkKIAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18wCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQ2hpcE5hbWVbMTZdOyAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENoaXBSZXZpc2lvbls4XTsgICAgICAgICAgICAvKiAxNGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBCb2FyZE5hbWVbMTZdOyAgICAgICAgICAgICAgLyogMUNoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQm9hcmRBc3NlbWJseVsxNl07ICAgICAgICAgIC8qIDJDaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEJvYXJkVHJhY2VyTnVtYmVyWzE2XTsgICAgICAvKiAzQ2ggKi8KIAotfSBmQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18wLAorfSBDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzAsCiAgIE1hbnVmYWN0dXJpbmdQYWdlMF90LCBNUElfUE9JTlRFUiBwTWFudWZhY3R1cmluZ1BhZ2UwX3Q7CiAKICNkZWZpbmUgTVBJX01BTlVGQUNUVVJJTkcwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAoMHgwMCkKQEAgLTM3Nyw5ICs1MTIsOSBAQAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18xCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgVlBEWzI1Nl07ICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwotfSBmQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18xLAorfSBDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzEsCiAgIE1hbnVmYWN0dXJpbmdQYWdlMV90LCBNUElfUE9JTlRFUiBwTWFudWZhY3R1cmluZ1BhZ2UxX3Q7CiAKICNkZWZpbmUgTVBJX01BTlVGQUNUVVJJTkcxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAoMHgwMCkKQEAgLTQwNCwxMCArNTM5LDEwIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzIKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBNUElfQ0hJUF9SRVZJU0lPTl9JRCAgICBDaGlwSWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgSHdTZXR0aW5nc1tNUElfTUFOX1BBR0VfMl9IV19TRVRUSU5HU19XT1JEU107LyogMDhoICovCi19IGZDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzIsCit9IENPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfMiwKICAgTWFudWZhY3R1cmluZ1BhZ2UyX3QsIE1QSV9QT0lOVEVSIHBNYW51ZmFjdHVyaW5nUGFnZTJfdDsKIAogI2RlZmluZSBNUElfTUFOVUZBQ1RVUklORzJfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAoMHgwMCkKQEAgLTQyMywxMCArNTU4LDEwIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzMKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBNUElfQ0hJUF9SRVZJU0lPTl9JRCAgICAgICAgICAgICAgICBDaGlwSWQ7ICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5mb1tNUElfTUFOX1BBR0VfM19JTkZPX1dPUkRTXTsvKiAwOGggKi8KLX0gZkNPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfMywgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfMywKK30gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18zLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR18zLAogICBNYW51ZmFjdHVyaW5nUGFnZTNfdCwgTVBJX1BPSU5URVIgcE1hbnVmYWN0dXJpbmdQYWdlM190OwogCiAjZGVmaW5lIE1QSV9NQU5VRkFDVFVSSU5HM19QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICgweDAwKQpAQCAtNDM0LDcgKzU2OSw3IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzQKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmZvT2Zmc2V0MDsgICAgICAgIC8qIDA4aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5mb1NpemUwOyAgICAgICAgICAvKiAwOWggKi8KQEAgLTQ0NywxMCArNTgyLDIzIEBACiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU1ZvbHVtZVNldHRpbmdzOyAgIC8qIDQ4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1FVm9sdW1lU2V0dGluZ3M7ICAvKiA0Q2ggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNVm9sdW1lU2V0dGluZ3M7ICAgLyogNTBoICovCi19IGZDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzQsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzQsCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgIC8qIDU0aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAvKiA1OGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTRGF0YVNjcnViUmF0ZTsgICAgLyogNUNoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU1Jlc3luY1JhdGU7ICAgICAgIC8qIDVEaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ1OyAgICAgICAgICAvKiA1RWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNRURhdGFTY3J1YlJhdGU7ICAgLyogNjBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTUVSZXN5bmNSYXRlOyAgICAgIC8qIDYxaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ2OyAgICAgICAgICAvKiA2MmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNRGF0YVNjcnViUmF0ZTsgICAgLyogNjRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTVJlc3luY1JhdGU7ICAgICAgIC8qIDY1aCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ3OyAgICAgICAgICAvKiA2NmggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkODsgICAgICAgICAgLyogNjhoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDk7ICAgICAgICAgIC8qIDZDaCAqLworfSBDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzQsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzQsCiAgIE1hbnVmYWN0dXJpbmdQYWdlNF90LCBNUElfUE9JTlRFUiBwTWFudWZhY3R1cmluZ1BhZ2U0X3Q7CiAKLSNkZWZpbmUgTVBJX01BTlVGQUNUVVJJTkc0X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9NQU5VRkFDVFVSSU5HNF9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICgweDAyKQogCiAvKiBkZWZpbmVzIGZvciB0aGUgRmxhZ3MgZmllbGQgKi8KICNkZWZpbmUgTVBJX01BTlBBR0U0X0lSX05PX01JWF9TQVNfU0FUQSAgICAgICAgICAgICAgICAgKDB4MDEpCkBAIC00NTgsMTkgKzYwNiwyNSBAQAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR181CiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlV1dJRDsgICAgICAgICAgIC8qIDA0aCAqLwotfSBmQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR181LCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR181LAorICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7ICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgLyogMERoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDBFaCAqLworfSBDT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzUsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9NQU5VRkFDVFVSSU5HXzUsCiAgIE1hbnVmYWN0dXJpbmdQYWdlNV90LCBNUElfUE9JTlRFUiBwTWFudWZhY3R1cmluZ1BhZ2U1X3Q7CiAKLSNkZWZpbmUgTVBJX01BTlVGQUNUVVJJTkc1X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9NQU5VRkFDVFVSSU5HNV9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICgweDAxKQorCisvKiBkZWZpbmVzIGZvciB0aGUgRmxhZ3MgZmllbGQgKi8KKyNkZWZpbmUgTVBJX01BTlBBR0U1X1RXT19XV0lEX1BFUl9QSFkgICAgICAgICAgICAgICAgICAgKDB4MDEpCiAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfNgogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdFNwZWNpZmljSW5mbzsvKiAwNGggKi8KLX0gZkNPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfNiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX01BTlVGQUNUVVJJTkdfNiwKK30gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR182LCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR182LAogICBNYW51ZmFjdHVyaW5nUGFnZTZfdCwgTVBJX1BPSU5URVIgcE1hbnVmYWN0dXJpbmdQYWdlNl90OwogCiAjZGVmaW5lIE1QSV9NQU5VRkFDVFVSSU5HNl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICgweDAwKQpAQCAtNDgyLDkgKzYzNiw5IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9JT19VTklUXzAKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVNjQgICAgICAgICAgICAgICAgICAgICBVbmlxdWVWYWx1ZTsgICAgICAgICAgICAgICAgLyogMDRoICovCi19IGZDT05GSUdfUEFHRV9JT19VTklUXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT19VTklUXzAsCit9IENPTkZJR19QQUdFX0lPX1VOSVRfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfMCwKICAgSU9Vbml0UGFnZTBfdCwgTVBJX1BPSU5URVIgcElPVW5pdFBhZ2UwX3Q7CiAKICNkZWZpbmUgTVBJX0lPVU5JVFBBR0UwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCkBAIC00OTIsOSArNjQ2LDkgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0lPX1VOSVRfMQogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIEZsYWdzOyAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KLX0gZkNPTkZJR19QQUdFX0lPX1VOSVRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfMSwKK30gQ09ORklHX1BBR0VfSU9fVU5JVF8xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSU9fVU5JVF8xLAogICBJT1VuaXRQYWdlMV90LCBNUElfUE9JTlRFUiBwSU9Vbml0UGFnZTFfdDsKIAogI2RlZmluZSBNUElfSU9VTklUUEFHRTFfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAoMHgwMSkKQEAgLTUyNCwxNCArNjc4LDE1IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9JT19VTklUXzIKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgQmlvc1ZlcnNpb247ICAgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIE1QSV9BREFQVEVSX0lORk8gICAgICAgIEFkYXB0ZXJPcmRlcls0XTsgICAgICAgICAgICAvKiAwQ2ggKi8KLX0gZkNPTkZJR19QQUdFX0lPX1VOSVRfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfMiwKKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgLyogMUNoICovCit9IENPTkZJR19QQUdFX0lPX1VOSVRfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfMiwKICAgSU9Vbml0UGFnZTJfdCwgTVBJX1BPSU5URVIgcElPVW5pdFBhZ2UyX3Q7CiAKLSNkZWZpbmUgTVBJX0lPVU5JVFBBR0UyX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9JT1VOSVRQQUdFMl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICgweDAyKQogCiAjZGVmaW5lIE1QSV9JT1VOSVRQQUdFMl9GTEFHU19QQVVTRV9PTl9FUlJPUiAgICAgICAgICAgICgweDAwMDAwMDAyKQogI2RlZmluZSBNUElfSU9VTklUUEFHRTJfRkxBR1NfVkVSQk9TRV9FTkFCTEUgICAgICAgICAgICAoMHgwMDAwMDAwNCkKQEAgLTU1NCwxMiArNzA5LDEyIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9JT19VTklUXzMKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgR1BJT0NvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDVoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDZoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgR1BJT1ZhbFtNUElfSU9fVU5JVF9QQUdFXzNfR1BJT19WQUxfTUFYXTsgLyogMDhoICovCi19IGZDT05GSUdfUEFHRV9JT19VTklUXzMsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT19VTklUXzMsCit9IENPTkZJR19QQUdFX0lPX1VOSVRfMywgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfMywKICAgSU9Vbml0UGFnZTNfdCwgTVBJX1BPSU5URVIgcElPVW5pdFBhZ2UzX3Q7CiAKICNkZWZpbmUgTVBJX0lPVU5JVFBBR0UzX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDEpCkBAIC01NzAsMTMgKzcyNSwyNCBAQAogI2RlZmluZSBNUElfSU9VTklUUEFHRTNfR1BJT19TRVRUSU5HX09OICAgICAgICAgICAgICAgICAoMHgwMSkKIAogCit0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfSU9fVU5JVF80Cit7CisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCisgICAgU0dFX1NJTVBMRV9VTklPTiAgICAgICAgRldJbWFnZVNHRTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCit9IENPTkZJR19QQUdFX0lPX1VOSVRfNCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPX1VOSVRfNCwKKyAgSU9Vbml0UGFnZTRfdCwgTVBJX1BPSU5URVIgcElPVW5pdFBhZ2U0X3Q7CisKKyNkZWZpbmUgTVBJX0lPVU5JVFBBR0U0X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICBJT0MgQ29uZmlnIFBhZ2VzCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfSU9DXzAKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBUb3RhbE5WU3RvcmU7ICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgRnJlZU5WU3RvcmU7ICAgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFZlbmRvcklEOyAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KQEAgLTU4Niw3ICs3NTIsNyBAQAogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIENsYXNzQ29kZTsgICAgICAgICAgICAgICAgICAvKiAxNGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBTdWJzeXN0ZW1WZW5kb3JJRDsgICAgICAgICAgLyogMThoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgU3Vic3lzdGVtSUQ7ICAgICAgICAgICAgICAgIC8qIDFBaCAqLwotfSBmQ09ORklHX1BBR0VfSU9DXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMCwKK30gQ09ORklHX1BBR0VfSU9DXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMCwKICAgSU9DUGFnZTBfdCwgTVBJX1BPSU5URVIgcElPQ1BhZ2UwX3Q7CiAKICNkZWZpbmUgTVBJX0lPQ1BBR0UwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDEpCkBAIC01OTQsMjMgKzc2MCwxOSBAQAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfSU9DXzEKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgQ29hbGVzY2luZ1RpbWVvdXQ7ICAgICAgICAgIC8qIDA4aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENvYWxlc2NpbmdEZXB0aDsgICAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQQ0lTbG90TnVtOyAgICAgICAgICAgICAgICAgLyogMERoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWRbMl07ICAgICAgICAgICAgICAgIC8qIDBFaCAqLwotfSBmQ09ORklHX1BBR0VfSU9DXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMSwKK30gQ09ORklHX1BBR0VfSU9DXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMSwKICAgSU9DUGFnZTFfdCwgTVBJX1BPSU5URVIgcElPQ1BhZ2UxX3Q7CiAKLSNkZWZpbmUgTVBJX0lPQ1BBR0UxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9JT0NQQUdFMV9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICgweDAyKQogCiAvKiBkZWZpbmVzIGZvciB0aGUgRmxhZ3MgZmllbGQgKi8KLSNkZWZpbmUgTVBJX0lPQ1BBR0UxX0VFRFBfSE9TVF9TVVBQT1JUU19ESUYgICAgICAgICAgICAgKDB4MDgwMDAwMDApCi0jZGVmaW5lIE1QSV9JT0NQQUdFMV9FRURQX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweDA3MDAwMDAwKQotI2RlZmluZSBNUElfSU9DUEFHRTFfRUVEUF9NT0RFX09GRiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDAwMCkKLSNkZWZpbmUgTVBJX0lPQ1BBR0UxX0VFRFBfTU9ERV9UMTAgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMDAwMDApCi0jZGVmaW5lIE1QSV9JT0NQQUdFMV9FRURQX01PREVfTFNJXzEgICAgICAgICAgICAgICAgICAgICgweDAyMDAwMDAwKQorI2RlZmluZSBNUElfSU9DUEFHRTFfSU5JVElBVE9SX0NPTlRFWFRfUkVQTFlfRElTQUJMRSAgICAoMHgwMDAwMDAxMCkKICNkZWZpbmUgTVBJX0lPQ1BBR0UxX1JFUExZX0NPQUxFU0NJTkcgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAKICNkZWZpbmUgTVBJX0lPQ1BBR0UxX1BDSVNMT1ROVU1fVU5LTk9XTiAgICAgICAgICAgICAgICAgKDB4RkYpCkBAIC02MjUsNyArNzg3LDcgQEAKICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgVm9sdW1lVHlwZTsgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOyAgICAgICAgICAgICAgICAgIC8qIDA1aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAvKiAwNmggKi8KLX0gZkNPTkZJR19QQUdFX0lPQ18yX1JBSURfVk9MLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSU9DXzJfUkFJRF9WT0wsCit9IENPTkZJR19QQUdFX0lPQ18yX1JBSURfVk9MLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSU9DXzJfUkFJRF9WT0wsCiAgIENvbmZpZ1BhZ2VJb2MyUmFpZFZvbF90LCBNUElfUE9JTlRFUiBwQ29uZmlnUGFnZUlvYzJSYWlkVm9sX3Q7CiAKIC8qIElPQyBQYWdlIDIgVm9sdW1lIFJBSUQgVHlwZSB2YWx1ZXMsIGFsc28gdXNlZCBpbiBSQUlEIFZvbHVtZSBwYWdlcyAqLwpAQCAtNjQ4LDE0ICs4MTAsMTQgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0lPQ18yCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzRmxhZ3M7ICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1BY3RpdmVWb2x1bWVzOyAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIE1heFZvbHVtZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwOWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtQWN0aXZlUGh5c0Rpc2tzOyAgICAgICAgICAgICAgICAgIC8qIDBBaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhQaHlzRGlza3M7ICAgICAgICAgICAgICAgICAgICAgICAgLyogMEJoICovCi0gICAgZkNPTkZJR19QQUdFX0lPQ18yX1JBSURfVk9MICBSYWlkVm9sdW1lW01QSV9JT0NfUEFHRV8yX1JBSURfVk9MVU1FX01BWF07LyogMENoICovCi19IGZDT05GSUdfUEFHRV9JT0NfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPQ18yLAorICAgIENPTkZJR19QQUdFX0lPQ18yX1JBSURfVk9MICBSYWlkVm9sdW1lW01QSV9JT0NfUEFHRV8yX1JBSURfVk9MVU1FX01BWF07LyogMENoICovCit9IENPTkZJR19QQUdFX0lPQ18yLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfSU9DXzIsCiAgIElPQ1BhZ2UyX3QsIE1QSV9QT0lOVEVSIHBJT0NQYWdlMl90OwogCiAjZGVmaW5lIE1QSV9JT0NQQUdFMl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICgweDAyKQpAQCAtNjg5LDEyICs4NTEsMTIgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0lPQ18zCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIE51bVBoeXNEaXNrczsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNWggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDZoICovCiAgICAgSU9DXzNfUEhZU19ESVNLICAgICAgICAgICAgIFBoeXNEaXNrW01QSV9JT0NfUEFHRV8zX1BIWVNESVNLX01BWF07IC8qIDA4aCAqLwotfSBmQ09ORklHX1BBR0VfSU9DXzMsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMywKK30gQ09ORklHX1BBR0VfSU9DXzMsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfMywKICAgSU9DUGFnZTNfdCwgTVBJX1BPSU5URVIgcElPQ1BhZ2UzX3Q7CiAKICNkZWZpbmUgTVBJX0lPQ1BBR0UzX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDApCkBAIC03MTgsMTIgKzg4MCwxMiBAQAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfSU9DXzQKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGl2ZVNFUDsgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIE1heFNFUDsgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDVoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAgICAgLyogMDZoICovCiAgICAgSU9DXzRfU0VQICAgICAgICAgICAgICAgICAgIFNFUFtNUElfSU9DX1BBR0VfNF9TRVBfTUFYXTsgICAgLyogMDhoICovCi19IGZDT05GSUdfUEFHRV9JT0NfNCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPQ180LAorfSBDT05GSUdfUEFHRV9JT0NfNCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lPQ180LAogICBJT0NQYWdlNF90LCBNUElfUE9JTlRFUiBwSU9DUGFnZTRfdDsKIAogI2RlZmluZSBNUElfSU9DUEFHRTRfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICAoMHgwMCkKQEAgLTc1MSwyNSArOTEzLDI1IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9JT0NfNQogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtSG90U3BhcmVzOyAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAvKiAwOWggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgICAgICAgICAvKiAwQWggKi8KICAgICBJT0NfNV9IT1RfU1BBUkUgICAgICAgICAgICAgSG90U3BhcmVbTVBJX0lPQ19QQUdFXzVfSE9UX1NQQVJFX01BWF07IC8qIDBDaCAqLwotfSBmQ09ORklHX1BBR0VfSU9DXzUsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfNSwKK30gQ09ORklHX1BBR0VfSU9DXzUsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9JT0NfNSwKICAgSU9DUGFnZTVfdCwgTVBJX1BPSU5URVIgcElPQ1BhZ2U1X3Q7CiAKICNkZWZpbmUgTVBJX0lPQ1BBR0U1X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDApCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBCSU9TIFBvcnQgQ29uZmlnIFBhZ2VzCisqICAgQklPUyBDb25maWcgUGFnZXMKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9CSU9TXzEKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBCaW9zT3B0aW9uczsgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgSU9DU2V0dGluZ3M7ICAgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KQEAgLTc4MCwxMCArOTQyLDEwIEBACiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSU9UaW1lb3V0U2VxdWVudGlhbDsgICAgICAgIC8qIDFBaCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIElPVGltZW91dE90aGVyOyAgICAgICAgICAgICAvKiAxQ2ggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBJT1RpbWVvdXRCbG9ja0RldmljZXNSTTsgICAgLyogMUVoICovCi19IGZDT05GSUdfUEFHRV9CSU9TXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9CSU9TXzEsCit9IENPTkZJR19QQUdFX0JJT1NfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0JJT1NfMSwKICAgQklPU1BhZ2UxX3QsIE1QSV9QT0lOVEVSIHBCSU9TUGFnZTFfdDsKIAotI2RlZmluZSBNUElfQklPU1BBR0UxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMV9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgKDB4MDEpCiAKIC8qIHZhbHVlcyBmb3IgdGhlIEJpb3NPcHRpb25zIGZpZWxkICovCiAjZGVmaW5lIE1QSV9CSU9TUEFHRTFfT1BUSU9OU19TUElfRU5BQkxFICAgICAgICAgICAgICAgICgweDAwMDAwNDAwKQpAQCAtNzkyLDYgKzk1NCwxMyBAQAogI2RlZmluZSBNUElfQklPU1BBR0UxX09QVElPTlNfRElTQUJMRV9CSU9TICAgICAgICAgICAgICAoMHgwMDAwMDAwMSkKIAogLyogdmFsdWVzIGZvciB0aGUgSU9DU2V0dGluZ3MgZmllbGQgKi8KKyNkZWZpbmUgTVBJX0JJT1NQQUdFMV9JT0NTRVRfTUFTS19CT09UX1BSRUZFUkVOQ0UgICAgICAgKDB4MDAwMzAwMDApCisjZGVmaW5lIE1QSV9CSU9TUEFHRTFfSU9DU0VUX0VOQ0xPU1VSRV9TTE9UX0JPT1QgICAgICAgICgweDAwMDAwMDAwKQorI2RlZmluZSBNUElfQklPU1BBR0UxX0lPQ1NFVF9TQVNfQUREUkVTU19CT09UICAgICAgICAgICAoMHgwMDAxMDAwMCkKKworI2RlZmluZSBNUElfQklPU1BBR0UxX0lPQ1NFVF9NQVNLX01BWF9UQVJHRVRfU1BJTl9VUCAgICAoMHgwMDAwRjAwMCkKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMV9JT0NTRVRfU0hJRlRfTUFYX1RBUkdFVF9TUElOX1VQICAgKDEyKQorCiAjZGVmaW5lIE1QSV9CSU9TUEFHRTFfSU9DU0VUX01BU0tfU1BJTlVQX0RFTEFZICAgICAgICAgICgweDAwMDAwRjAwKQogI2RlZmluZSBNUElfQklPU1BBR0UxX0lPQ1NFVF9TSElGVF9TUElOVVBfREVMQVkgICAgICAgICAoOCkKIApAQCAtODE0LDYgKzk4MywxOTEgQEAKICNkZWZpbmUgTVBJX0JJT1NQQUdFMV9ERVZTRVRfRElTQUJMRV9OT05fUk1fTFVOICAgICAgICAgKDB4MDAwMDAwMDIpCiAjZGVmaW5lIE1QSV9CSU9TUEFHRTFfREVWU0VUX0RJU0FCTEVfT1RIRVJfTFVOICAgICAgICAgICgweDAwMDAwMDAxKQogCit0eXBlZGVmIHN0cnVjdCBfTVBJX0JPT1RfREVWSUNFX0FEQVBURVJfT1JERVIKK3sKKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkOTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDEwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDEzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDM0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogM0NoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQwaCAqLworfSBNUElfQk9PVF9ERVZJQ0VfQURBUFRFUl9PUkRFUiwgTVBJX1BPSU5URVIgUFRSX01QSV9CT09UX0RFVklDRV9BREFQVEVSX09SREVSOworCit0eXBlZGVmIHN0cnVjdCBfTVBJX0JPT1RfREVWSUNFX0FEQVBURVJfTlVNQkVSCit7CisgICAgVTggICAgICAgICAgVGFyZ2V0SUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICBBZGFwdGVyTnVtYmVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLworICAgIFU4ICAgICAgICAgIExVTls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDExOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDM0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogM0NoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQwaCAqLworfSBNUElfQk9PVF9ERVZJQ0VfQURBUFRFUl9OVU1CRVIsIE1QSV9QT0lOVEVSIFBUUl9NUElfQk9PVF9ERVZJQ0VfQURBUFRFUl9OVU1CRVI7CisKK3R5cGVkZWYgc3RydWN0IF9NUElfQk9PVF9ERVZJQ0VfUENJX0FERFJFU1MKK3sKKyAgICBVOCAgICAgICAgICBUYXJnZXRJRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgQnVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxaCAqLworICAgIFUxNiAgICAgICAgIFBDSUFkZHJlc3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMmggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICBMVU5bOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMkNoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMwaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzNGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDEyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzhoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDNDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA0MGggKi8KK30gTVBJX0JPT1RfREVWSUNFX1BDSV9BRERSRVNTLCBNUElfUE9JTlRFUiBQVFJfTVBJX0JPT1RfREVWSUNFX1BDSV9BRERSRVNTOworCit0eXBlZGVmIHN0cnVjdCBfTVBJX0JPT1RfREVWSUNFX1NMT1RfTlVNQkVSCit7CisgICAgVTggICAgICAgICAgVGFyZ2V0SUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICBQQ0lTbG90TnVtYmVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLworICAgIFU4ICAgICAgICAgIExVTls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDExOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDM0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogM0NoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQwaCAqLworfSBNUElfQk9PVF9ERVZJQ0VfUENJX1NMT1RfTlVNQkVSLCBNUElfUE9JTlRFUiBQVFJfTVBJX0JPT1RfREVWSUNFX1BDSV9TTE9UX05VTUJFUjsKKwordHlwZWRlZiBzdHJ1Y3QgX01QSV9CT09UX0RFVklDRV9GQ19XV04KK3sKKyAgICBVNjQgICAgICAgICBXV1BOOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICBMVU5bOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMkNoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMwaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzNGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDExOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzhoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDNDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA0MGggKi8KK30gTVBJX0JPT1RfREVWSUNFX0ZDX1dXTiwgTVBJX1BPSU5URVIgUFRSX01QSV9CT09UX0RFVklDRV9GQ19XV047CisKK3R5cGVkZWYgc3RydWN0IF9NUElfQk9PVF9ERVZJQ0VfU0FTX1dXTgoreworICAgIFU2NCAgICAgICAgIFNBU0FkZHJlc3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLworICAgIFU4ICAgICAgICAgIExVTls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDM0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDEyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogM0NoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQwaCAqLworfSBNUElfQk9PVF9ERVZJQ0VfU0FTX1dXTiwgTVBJX1BPSU5URVIgUFRSX01QSV9CT09UX0RFVklDRV9TQVNfV1dOOworCit0eXBlZGVmIHN0cnVjdCBfTVBJX0JPT1RfREVWSUNFX0VOQ0xPU1VSRV9TTE9UCit7CisgICAgVTY0ICAgICAgICAgRW5jbG9zdXJlTG9naWNhbElEOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTggICAgICAgICAgTFVOWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwaCAqLworICAgIFUxNiAgICAgICAgIFNsb3ROdW1iZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxOGggKi8KKyAgICBVMTYgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMUFoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjRoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQ3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyQ2ggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzBoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDM0aCAqLworICAgIFUzMiAgICAgICAgIFJlc2VydmVkMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDEyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogM0NoICovCisgICAgVTMyICAgICAgICAgUmVzZXJ2ZWQxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDQwaCAqLworfSBNUElfQk9PVF9ERVZJQ0VfRU5DTE9TVVJFX1NMT1QsCisgIE1QSV9QT0lOVEVSIFBUUl9NUElfQk9PVF9ERVZJQ0VfRU5DTE9TVVJFX1NMT1Q7CisKK3R5cGVkZWYgdW5pb24gX01QSV9CSU9TUEFHRTJfQk9PVF9ERVZJQ0UKK3sKKyAgICBNUElfQk9PVF9ERVZJQ0VfQURBUFRFUl9PUkRFUiAgIEFkYXB0ZXJPcmRlcjsKKyAgICBNUElfQk9PVF9ERVZJQ0VfQURBUFRFUl9OVU1CRVIgIEFkYXB0ZXJOdW1iZXI7CisgICAgTVBJX0JPT1RfREVWSUNFX1BDSV9BRERSRVNTICAgICBQQ0lBZGRyZXNzOworICAgIE1QSV9CT09UX0RFVklDRV9QQ0lfU0xPVF9OVU1CRVIgUENJU2xvdE51bWJlcjsKKyAgICBNUElfQk9PVF9ERVZJQ0VfRkNfV1dOICAgICAgICAgIEZjV3duOworICAgIE1QSV9CT09UX0RFVklDRV9TQVNfV1dOICAgICAgICAgU2FzV3duOworICAgIE1QSV9CT09UX0RFVklDRV9FTkNMT1NVUkVfU0xPVCAgRW5jbG9zdXJlU2xvdDsKK30gTVBJX0JJT1NQQUdFMl9CT09UX0RFVklDRSwgTVBJX1BPSU5URVIgUFRSX01QSV9CSU9TUEFHRTJfQk9PVF9ERVZJQ0U7CisKK3R5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9CSU9TXzIKK3sKKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkNDsgICAgICAgICAgICAgIC8qIDEwaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDU7ICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ2OyAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIEJvb3REZXZpY2VGb3JtOyAgICAgICAgIC8qIDFDaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDc7ICAgICAgICAgICAgICAvKiAxRGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ4OyAgICAgICAgICAgICAgLyogMUVoICovCisgICAgTVBJX0JJT1NQQUdFMl9CT09UX0RFVklDRSAgIEJvb3REZXZpY2U7ICAgICAgICAgICAgIC8qIDIwaCAqLworfSBDT05GSUdfUEFHRV9CSU9TXzIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9CSU9TXzIsCisgIEJJT1NQYWdlMl90LCBNUElfUE9JTlRFUiBwQklPU1BhZ2UyX3Q7CisKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAgKDB4MDEpCisKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMl9GT1JNX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MEYpCisjZGVmaW5lIE1QSV9CSU9TUEFHRTJfRk9STV9BREFQVEVSX09SREVSICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfQklPU1BBR0UyX0ZPUk1fQURBUFRFUl9OVU1CRVIgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMl9GT1JNX1BDSV9BRERSRVNTICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9CSU9TUEFHRTJfRk9STV9QQ0lfU0xPVF9OVU1CRVIgICAgICAgICAgICAgICgweDAzKQorI2RlZmluZSBNUElfQklPU1BBR0UyX0ZPUk1fRkNfV1dOICAgICAgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTVBJX0JJT1NQQUdFMl9GT1JNX1NBU19XV04gICAgICAgICAgICAgICAgICAgICAgKDB4MDUpCisKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICBTQ1NJIFBvcnQgQ29uZmlnIFBhZ2VzCkBAIC04MjEsMTMgKzExNzUsMTMgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8wCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzOyAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsSW50ZXJmYWNlOyAgICAgICAgICAvKiAwOGggKi8KLX0gZkNPTkZJR19QQUdFX1NDU0lfUE9SVF8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0NTSV9QT1JUXzAsCit9IENPTkZJR19QQUdFX1NDU0lfUE9SVF8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0NTSV9QT1JUXzAsCiAgIFNDU0lQb3J0UGFnZTBfdCwgTVBJX1BPSU5URVIgcFNDU0lQb3J0UGFnZTBfdDsKIAotI2RlZmluZSBNUElfU0NTSVBPUlRQQUdFMF9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX1NDU0lQT1JUUEFHRTBfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgKDB4MDIpCiAKICNkZWZpbmUgTVBJX1NDU0lQT1JUUEFHRTBfQ0FQX0lVICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAjZGVmaW5lIE1QSV9TQ1NJUE9SVFBBR0UwX0NBUF9EVCAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDAyKQpAQCAtODU0LDYgKzEyMDgsNyBAQAogICAgICggICgoQ2FwKSAmIE1QSV9TQ1NJUE9SVFBBR0UwX0NBUF9NQVNLX01BWF9TWU5DX09GRlNFVCkgXAogICAgID4+IE1QSV9TQ1NJUE9SVFBBR0UwX0NBUF9TSElGVF9NQVhfU1lOQ19PRkZTRVQgICAgICAgICAgXAogICAgICkKKyNkZWZpbmUgTVBJX1NDU0lQT1JUUEFHRTBfQ0FQX0lEUCAgICAgICAgICAgICAgICAgICAgICAgKDB4MDgwMDAwMDApCiAjZGVmaW5lIE1QSV9TQ1NJUE9SVFBBR0UwX0NBUF9XSURFICAgICAgICAgICAgICAgICAgICAgICgweDIwMDAwMDAwKQogI2RlZmluZSBNUElfU0NTSVBPUlRQQUdFMF9DQVBfQUlQICAgICAgICAgICAgICAgICAgICAgICAoMHg4MDAwMDAwMCkKIApAQCAtODY5LDEzICsxMjI0LDEzIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQ1NJX1BPUlRfMQogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb247ICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBPbkJ1c1RpbWVyVmFsdWU7ICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0Q29uZmlnOyAgICAgICAgICAgICAgIC8qIDBDaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwRGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBJRENvbmZpZzsgICAgICAgICAgICAgICAgICAgLyogMEVoICovCi19IGZDT05GSUdfUEFHRV9TQ1NJX1BPUlRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8xLAorfSBDT05GSUdfUEFHRV9TQ1NJX1BPUlRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8xLAogICBTQ1NJUG9ydFBhZ2UxX3QsIE1QSV9QT0lOVEVSIHBTQ1NJUG9ydFBhZ2UxX3Q7CiAKICNkZWZpbmUgTVBJX1NDU0lQT1JUUEFHRTFfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgKDB4MDMpCkBAIC05MDAsMTEgKzEyNTUsMTEgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8yCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICBQb3J0RmxhZ3M7ICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgUG9ydFNldHRpbmdzOyAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBNUElfREVWSUNFX0lORk8gICAgIERldmljZVNldHRpbmdzWzE2XTsgICAgICAgICAgICAgLyogMENoICovCi19IGZDT05GSUdfUEFHRV9TQ1NJX1BPUlRfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8yLAorfSBDT05GSUdfUEFHRV9TQ1NJX1BPUlRfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfUE9SVF8yLAogICBTQ1NJUG9ydFBhZ2UyX3QsIE1QSV9QT0lOVEVSIHBTQ1NJUG9ydFBhZ2UyX3Q7CiAKICNkZWZpbmUgTVBJX1NDU0lQT1JUUEFHRTJfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAgICgweDAyKQpAQCAtOTUzLDEzICsxMzA4LDEzIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8wCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTmVnb3RpYXRlZFBhcmFtZXRlcnM7ICAgICAgIC8qIDA0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIEluZm9ybWF0aW9uOyAgICAgICAgICAgICAgICAvKiAwOGggKi8KLX0gZkNPTkZJR19QQUdFX1NDU0lfREVWSUNFXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8wLAorfSBDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMCwKICAgU0NTSURldmljZVBhZ2UwX3QsIE1QSV9QT0lOVEVSIHBTQ1NJRGV2aWNlUGFnZTBfdDsKIAotI2RlZmluZSBNUElfU0NTSURFVlBBR0UwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAoMHgwMykKKyNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMF9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgKDB4MDQpCiAKICNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMF9OUF9JVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTBfTlBfRFQgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDAyKQpAQCAtOTczLDYgKzEzMjgsNyBAQAogI2RlZmluZSBNUElfU0NTSURFVlBBR0UwX05QX1NISUZUX1NZTkNfUEVSSU9EICAgICAgICAgICAoOCkKICNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMF9OUF9ORUdfU1lOQ19PRkZTRVRfTUFTSyAgICAgICAgKDB4MDBGRjAwMDApCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTBfTlBfU0hJRlRfU1lOQ19PRkZTRVQgICAgICAgICAgICgxNikKKyNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMF9OUF9JRFAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDgwMDAwMDApCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTBfTlBfV0lERSAgICAgICAgICAgICAgICAgICAgICAgICgweDIwMDAwMDAwKQogI2RlZmluZSBNUElfU0NTSURFVlBBR0UwX05QX0FJUCAgICAgICAgICAgICAgICAgICAgICAgICAoMHg4MDAwMDAwMCkKIApAQCAtOTg0LDE0ICsxMzQwLDE0IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8xCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdGVkUGFyYW1ldGVyczsgICAgICAgIC8qIDA0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkOyAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uOyAgICAgICAgICAgICAgLyogMENoICovCi19IGZDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMSwKK30gQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfREVWSUNFXzEsCiAgIFNDU0lEZXZpY2VQYWdlMV90LCBNUElfUE9JTlRFUiBwU0NTSURldmljZVBhZ2UxX3Q7CiAKLSNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMV9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTFfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICgweDA1KQogCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTFfUlBfSVUgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDAxKQogI2RlZmluZSBNUElfU0NTSURFVlBBR0UxX1JQX0RUICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDAwMikKQEAgLTEwMDUsNiArMTM2MSw3IEBACiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTFfUlBfU0hJRlRfTUlOX1NZTkNfUEVSSU9EICAgICAgICg4KQogI2RlZmluZSBNUElfU0NTSURFVlBBR0UxX1JQX01BWF9TWU5DX09GRlNFVF9NQVNLICAgICAgICAoMHgwMEZGMDAwMCkKICNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMV9SUF9TSElGVF9NQVhfU1lOQ19PRkZTRVQgICAgICAgKDE2KQorI2RlZmluZSBNUElfU0NTSURFVlBBR0UxX1JQX0lEUCAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwODAwMDAwMCkKICNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMV9SUF9XSURFICAgICAgICAgICAgICAgICAgICAgICAgKDB4MjAwMDAwMDApCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTFfUlBfQUlQICAgICAgICAgICAgICAgICAgICAgICAgICgweDgwMDAwMDAwKQogCkBAIC0xMDE2LDExICsxMzczLDExIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8yCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgRG9tYWluVmFsaWRhdGlvbjsgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFBhcml0eVBpcGVTZWxlY3Q7ICAgICAgICAgICAvKiAwOGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBEYXRhUGlwZVNlbGVjdDsgICAgICAgICAgICAgLyogMENoICovCi19IGZDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8yLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMiwKK30gQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfREVWSUNFXzIsCiAgIFNDU0lEZXZpY2VQYWdlMl90LCBNUElfUE9JTlRFUiBwU0NTSURldmljZVBhZ2UyX3Q7CiAKICNkZWZpbmUgTVBJX1NDU0lERVZQQUdFMl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgKDB4MDEpCkBAIC0xMDU3LDEyICsxNDE0LDEyIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8zCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgTXNnUmVqZWN0Q291bnQ7ICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFBoYXNlRXJyb3JDb3VudDsgICAgICAgICAgICAvKiAwNmggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBQYXJpdHlFcnJvckNvdW50OyAgICAgICAgICAgLyogMDhoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ7ICAgICAgICAgICAgICAgICAgIC8qIDBBaCAqLwotfSBmQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMywgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NDU0lfREVWSUNFXzMsCit9IENPTkZJR19QQUdFX1NDU0lfREVWSUNFXzMsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8zLAogICBTQ1NJRGV2aWNlUGFnZTNfdCwgTVBJX1BPSU5URVIgcFNDU0lEZXZpY2VQYWdlM190OwogCiAjZGVmaW5lIE1QSV9TQ1NJREVWUEFHRTNfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICgweDAwKQpAQCAtMTA3Nyw3ICsxNDM0LDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0ZDX1BPUlRfMAogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIEZsYWdzOyAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNUElQb3J0TnVtYmVyOyAgICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgTGlua1R5cGU7ICAgICAgICAgICAgICAgICAgIC8qIDA5aCAqLwpAQCAtMTA5OCw3ICsxNDU1LDcgQEAKICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNYXhIYXJkQWxpYXNlc1N1cHBvcnRlZDsgICAgLyogNDloICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgTnVtQ3VycmVudEFsaWFzZXM7ICAgICAgICAgIC8qIDRBaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiA0QmggKi8KLX0gZkNPTkZJR19QQUdFX0ZDX1BPUlRfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfMCwKK30gQ09ORklHX1BBR0VfRkNfUE9SVF8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF8wLAogICBGQ1BvcnRQYWdlMF90LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZTBfdDsKIAogI2RlZmluZSBNUElfRkNQT1JUUEFHRTBfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAoMHgwMikKQEAgLTExNjQsMTAgKzE1MjEsOSBAQAogI2RlZmluZSBNUElfRkNQT1JUUEFHRTBfQ1VSUkVOVF9TUEVFRF9OT1RfTkVHT1RJQVRFRCAgICAoMHgwMDAwODAwMCkgICAgICAgIC8qIChTTklBKUhCQV9QT1JUU1BFRURfTk9UX05FR09USUFURUQgKDE8PDE1KSBTcGVlZCBub3QgZXN0YWJsaXNoZWQgKi8KIAogCi0KIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzEKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgTm9TRUVQUk9NV1dOTjsgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIE5vU0VFUFJPTVdXUE47ICAgICAgICAgICAgICAvKiAxMGggKi8KQEAgLTExNzksNyArMTUzNSw3IEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUlJfVE9WOyAgICAgICAgICAgICAgICAgICAgIC8qIDFEaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEluaXRpYXRvckRldmljZVRpbWVvdXQ7ICAgICAvKiAxRWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBJbml0aWF0b3JJb1BlbmRUaW1lb3V0OyAgICAgLyogMUZoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzEsCit9IENPTkZJR19QQUdFX0ZDX1BPUlRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfMSwKICAgRkNQb3J0UGFnZTFfdCwgTVBJX1BPSU5URVIgcEZDUG9ydFBhZ2UxX3Q7CiAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDYpCkBAIC0xMTkxLDYgKzE1NDcsNyBAQAogI2RlZmluZSBNUElfRkNQT1JUUEFHRTFfRkxBR1NfVEFSR0VUX01PREVfT1hJRCAgICAgICAgICAoMHgwMDgwMDAwMCkKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxX0ZMQUdTX1BPUlRfT0ZGTElORSAgICAgICAgICAgICAgKDB4MDA0MDAwMDApCiAjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMV9GTEFHU19TT0ZUX0FMUEFfRkFMTEJBQ0sgICAgICAgICgweDAwMjAwMDAwKQorI2RlZmluZSBNUElfRkNQT1JUUEFHRTFfRkxBR1NfVEFSR0VUX0xBUkdFX0NEQl9FTkFCTEUgICAoMHgwMDAwMDA4MCkKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxX0ZMQUdTX01BU0tfUlJfVE9WX1VOSVRTICAgICAgICAgKDB4MDAwMDAwNzApCiAjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMV9GTEFHU19TVVBQUkVTU19QUk9UX1JFRyAgICAgICAgICgweDAwMDAwMDA4KQogI2RlZmluZSBNUElfRkNQT1JUUEFHRTFfRkxBR1NfUExPR0lfT05fTE9HTyAgICAgICAgICAgICAoMHgwMDAwMDAwNCkKQEAgLTEyMjcsMTQgKzE1ODQsMTUgQEAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxX0FMVF9DT05OX1VOS05PV04gICAgICAgICAgICAgICAgKDB4MDApCiAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxX0lOSVRJQVRPUl9ERVZfVElNRU9VVF9NQVNLICAgICAgKDB4N0YpCisjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMV9JTklUSUFUT1JfREVWX1VOSVRfMTYgICAgICAgICAgICgweDgwKQogCiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzIKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJBY3RpdmU7ICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQUxQQVsxMjddOyAgICAgICAgICAgICAgICAgIC8qIDA1aCAqLwotfSBmQ09ORklHX1BBR0VfRkNfUE9SVF8yLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF8yLAorfSBDT05GSUdfUEFHRV9GQ19QT1JUXzIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzIsCiAgIEZDUG9ydFBhZ2UyX3QsIE1QSV9QT0lOVEVSIHBGQ1BvcnRQYWdlMl90OwogCiAjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMl9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICgweDAxKQpAQCAtMTI4MCw5ICsxNjM4LDkgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0ZDX1BPUlRfMwogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIEZDX1BPUlRfUEVSU0lTVEVOVCAgICAgIEVudHJ5W01QSV9GQ19QT1JUX1BBR0VfM19FTlRSWV9NQVhdOyAgICAvKiAwNGggKi8KLX0gZkNPTkZJR19QQUdFX0ZDX1BPUlRfMywgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfMywKK30gQ09ORklHX1BBR0VfRkNfUE9SVF8zLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF8zLAogICBGQ1BvcnRQYWdlM190LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZTNfdDsKIAogI2RlZmluZSBNUElfRkNQT1JUUEFHRTNfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAoMHgwMSkKQEAgLTEyOTAsMTAgKzE2NDgsMTAgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0ZDX1BPUlRfNAogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFBvcnRGbGFnczsgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBQb3J0U2V0dGluZ3M7ICAgICAgICAgICAgICAgLyogMDhoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzQsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzQsCit9IENPTkZJR19QQUdFX0ZDX1BPUlRfNCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfNCwKICAgRkNQb3J0UGFnZTRfdCwgTVBJX1BPSU5URVIgcEZDUG9ydFBhZ2U0X3Q7CiAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0U0X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCkBAIC0xMzE2LDE1ICsxNjc0LDE1IEBACiAgICAgVTE2ICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyaCAqLwogICAgIFU2NCAgICAgQWxpYXNXV05OOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KICAgICBVNjQgICAgIEFsaWFzV1dQTjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMENoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzVfQUxJQVNfSU5GTywKK30gQ09ORklHX1BBR0VfRkNfUE9SVF81X0FMSUFTX0lORk8sCiAgIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzVfQUxJQVNfSU5GTywKICAgRmNQb3J0UGFnZTVBbGlhc0luZm9fdCwgTVBJX1BPSU5URVIgcEZjUG9ydFBhZ2U1QWxpYXNJbmZvX3Q7CiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzUKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgIC8qIDAwaCAqLwotICAgIGZDT05GSUdfUEFHRV9GQ19QT1JUXzVfQUxJQVNfSU5GTyAgICBBbGlhc0luZm87ICAgICAgLyogMDRoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzUsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzUsCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfNV9BTElBU19JTkZPICAgIEFsaWFzSW5mbzsgICAgICAvKiAwNGggKi8KK30gQ09ORklHX1BBR0VfRkNfUE9SVF81LCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF81LAogICBGQ1BvcnRQYWdlNV90LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZTVfdDsKIAogI2RlZmluZSBNUElfRkNQT1JUUEFHRTVfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAoMHgwMikKQEAgLTEzMzcsNyArMTY5NSw3IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzYKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgVGltZVNpbmNlUmVzZXQ7ICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIFR4RnJhbWVzOyAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KQEAgLTEzNTUsNyArMTcxMyw3IEBACiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgSW52YWxpZFR4V29yZENvdW50OyAgICAgICAgIC8qIDcwaCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIEludmFsaWRDcmNDb3VudDsgICAgICAgICAgICAvKiA3OGggKi8KICAgICBVNjQgICAgICAgICAgICAgICAgICAgICBGY3BJbml0aWF0b3JJb0NvdW50OyAgICAgICAgLyogODBoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzYsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzYsCit9IENPTkZJR19QQUdFX0ZDX1BPUlRfNiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfNiwKICAgRkNQb3J0UGFnZTZfdCwgTVBJX1BPSU5URVIgcEZDUG9ydFBhZ2U2X3Q7CiAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0U2X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCkBAIC0xMzYzLDEwICsxNzIxLDEwIEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzcKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgUG9ydFN5bWJvbGljTmFtZVsyNTZdOyAgICAgIC8qIDA4aCAqLwotfSBmQ09ORklHX1BBR0VfRkNfUE9SVF83LCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF83LAorfSBDT05GSUdfUEFHRV9GQ19QT1JUXzcsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzcsCiAgIEZDUG9ydFBhZ2U3X3QsIE1QSV9QT0lOVEVSIHBGQ1BvcnRQYWdlN190OwogCiAjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFN19QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICgweDAwKQpAQCAtMTM3NCw5ICsxNzMyLDkgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0ZDX1BPUlRfOAogewotICAgIGZDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIEJpdFZlY3Rvcls4XTsgICAgICAgICAgICAgICAvKiAwNGggKi8KLX0gZkNPTkZJR19QQUdFX0ZDX1BPUlRfOCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfOCwKK30gQ09ORklHX1BBR0VfRkNfUE9SVF84LCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF84LAogICBGQ1BvcnRQYWdlOF90LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZThfdDsKIAogI2RlZmluZSBNUElfRkNQT1JUUEFHRThfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICAoMHgwMCkKQEAgLTEzODQsNyArMTc0Miw3IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzkKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDRoICovCiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgR2xvYmFsV1dQTjsgICAgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIEdsb2JhbFdXTk47ICAgICAgICAgICAgICAgICAvKiAxMGggKi8KQEAgLTEzOTYsNyArMTc1NCw3IEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgSVBBZGRyZXNzWzE2XTsgICAgICAgICAgICAgIC8qIDI4aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBUb3BvbG9neURpc2NvdmVyeUZsYWdzOyAgICAgLyogM0FoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzksIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzksCit9IENPTkZJR19QQUdFX0ZDX1BPUlRfOSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfOSwKICAgRkNQb3J0UGFnZTlfdCwgTVBJX1BPSU5URVIgcEZDUG9ydFBhZ2U5X3Q7CiAKICNkZWZpbmUgTVBJX0ZDUE9SVFBBR0U5X1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgKDB4MDApCkBAIC0xNDIyLDEwICsxNzgwLDEwIEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgVmVuZG9yT1VJWzNdOyAgICAgICAgICAgICAgIC8qIDM1aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFZlbmRvclBOWzE2XTsgICAgICAgICAgICAgICAvKiAzOGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBWZW5kb3JSZXZbNF07ICAgICAgICAgICAgICAgLyogNDhoICovCi0gICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgIC8qIDRDaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkNTsgICAgICAgICAgICAgICAgICAvKiA0RWggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBXYXZlbGVuZ3RoOyAgICAgICAgICAgICAgICAgLyogNENoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAgICAgICAgIC8qIDRFaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENDX0JBU0U7ICAgICAgICAgICAgICAgICAgICAvKiA0RmggKi8KLX0gZkNPTkZJR19QQUdFX0ZDX1BPUlRfMTBfQkFTRV9TRlBfREFUQSwKK30gQ09ORklHX1BBR0VfRkNfUE9SVF8xMF9CQVNFX1NGUF9EQVRBLAogICBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF8xMF9CQVNFX1NGUF9EQVRBLAogICBGQ1BvcnRQYWdlMTBCYXNlU2ZwRGF0YV90LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZTEwQmFzZVNmcERhdGFfdDsKIApAQCAtMTQ4MSw5ICsxODM5LDExIEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQml0UmF0ZU1pbjsgICAgICAgICAgICAgICAgIC8qIDUzaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFZlbmRvclNOWzE2XTsgICAgICAgICAgICAgICAvKiA1NGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBEYXRlQ29kZVs4XTsgICAgICAgICAgICAgICAgLyogNjRoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ1WzNdOyAgICAgICAgICAgICAgIC8qIDZDaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIERpYWdNb25pdG9yaW5nVHlwZTsgICAgICAgICAvKiA2Q2ggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBFbmhhbmNlZE9wdGlvbnM7ICAgICAgICAgICAgLyogNkRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgU0ZGODQ3MkNvbXBsaWFuY2U7ICAgICAgICAgIC8qIDZFaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENDX0VYVDsgICAgICAgICAgICAgICAgICAgICAvKiA2RmggKi8KLX0gZkNPTkZJR19QQUdFX0ZDX1BPUlRfMTBfRVhURU5ERURfU0ZQX0RBVEEsCit9IENPTkZJR19QQUdFX0ZDX1BPUlRfMTBfRVhURU5ERURfU0ZQX0RBVEEsCiAgIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19QT1JUXzEwX0VYVEVOREVEX1NGUF9EQVRBLAogICBGQ1BvcnRQYWdlMTBFeHRlbmRlZFNmcERhdGFfdCwgTVBJX1BPSU5URVIgcEZDUG9ydFBhZ2UxMEV4dGVuZGVkU2ZwRGF0YV90OwogCkBAIC0xNDk2LDE5ICsxODU2LDE5IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9GQ19QT1JUXzEwCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAvKiAwNWggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgLyogMDZoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBId0NvbmZpZzE7ICAgICAgICAgIC8qIDA4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHdDb25maWcyOyAgICAgICAgICAvKiAwQ2ggKi8KLSAgICBmQ09ORklHX1BBR0VfRkNfUE9SVF8xMF9CQVNFX1NGUF9EQVRBICAgICAgICBCYXNlOyAgICAgICAgICAgICAgIC8qIDEwaCAqLwotICAgIGZDT05GSUdfUEFHRV9GQ19QT1JUXzEwX0VYVEVOREVEX1NGUF9EQVRBICAgIEV4dGVuZGVkOyAgICAgICAgICAgLyogNTBoICovCisgICAgQ09ORklHX1BBR0VfRkNfUE9SVF8xMF9CQVNFX1NGUF9EQVRBICAgICAgICBCYXNlOyAgICAgICAgICAgICAgIC8qIDEwaCAqLworICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfMTBfRVhURU5ERURfU0ZQX0RBVEEgICAgRXh0ZW5kZWQ7ICAgICAgICAgICAvKiA1MGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlbmRvclNwZWNpZmljWzMyXTsgLyogNzBoICovCi19IGZDT05GSUdfUEFHRV9GQ19QT1JUXzEwLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfRkNfUE9SVF8xMCwKK30gQ09ORklHX1BBR0VfRkNfUE9SVF8xMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0ZDX1BPUlRfMTAsCiAgIEZDUG9ydFBhZ2UxMF90LCBNUElfUE9JTlRFUiBwRkNQb3J0UGFnZTEwX3Q7CiAKLSNkZWZpbmUgTVBJX0ZDUE9SVFBBR0UxMF9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMTBfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICAgICgweDAxKQogCiAvKiBzdGFuZGFyZCBNT0RERUYgcGluIGRlZmluaXRpb25zIChmcm9tIEdCSUMgc3BlYy4pICovCiAjZGVmaW5lIE1QSV9GQ1BPUlRQQUdFMTBfRkxBR1NfTU9EREVGX01BU0sgICAgICAgICAgICAgICgweDAwMDAwMDA3KQpAQCAtMTUzNCw3ICsxODk0LDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0ZDX0RFVklDRV8wCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgV1dOTjsgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIFdXUE47ICAgICAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBQb3J0SWRlbnRpZmllcjsgICAgICAgICAgICAgLyogMTRoICovCkBAIC0xNTQ4LDcgKzE5MDgsNyBAQAogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZjUGhIaWdoZXN0VmVyc2lvbjsgICAgICAgICAvKiAyMWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50VGFyZ2V0SUQ7ICAgICAgICAgICAgLyogMjJoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQ3VycmVudEJ1czsgICAgICAgICAgICAgICAgIC8qIDIzaCAqLwotfSBmQ09ORklHX1BBR0VfRkNfREVWSUNFXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19ERVZJQ0VfMCwKK30gQ09ORklHX1BBR0VfRkNfREVWSUNFXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9GQ19ERVZJQ0VfMCwKICAgRkNEZXZpY2VQYWdlMF90LCBNUElfUE9JTlRFUiBwRkNEZXZpY2VQYWdlMF90OwogCiAjZGVmaW5lIE1QSV9GQ19ERVZJQ0VfUEFHRTBfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAgICgweDAzKQpAQCAtMTYwNiw2ICsxOTY2LDcgQEAKICNkZWZpbmUgTVBJX1JBSURWT0wwX1NUQVRVU19TVEFURV9PUFRJTUFMICAgICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9SQUlEVk9MMF9TVEFUVVNfU1RBVEVfREVHUkFERUQgICAgICAgICAgICAgICgweDAxKQogI2RlZmluZSBNUElfUkFJRFZPTDBfU1RBVFVTX1NUQVRFX0ZBSUxFRCAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTVBJX1JBSURWT0wwX1NUQVRVU19TVEFURV9NSVNTSU5HICAgICAgICAgICAgICAgKDB4MDMpCiAKIHR5cGVkZWYgc3RydWN0IF9SQUlEX1ZPTDBfU0VUVElOR1MKIHsKQEAgLTE2MTYsMTEgKzE5NzcsMTEgQEAKICAgUmFpZFZvbDBTZXR0aW5ncywgTVBJX1BPSU5URVIgcFJhaWRWb2wwU2V0dGluZ3M7CiAKIC8qIFJBSUQgVm9sdW1lIFBhZ2UgMCBWb2x1bWVTZXR0aW5ncyBkZWZpbmVzICovCi0KICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfV1JJVEVfQ0FDSElOR19FTkFCTEUgICAgICAgKDB4MDAwMSkKICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfT0ZGTElORV9PTl9TTUFSVCAgICAgICAgICAgKDB4MDAwMikKICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfQVVUT19DT05GSUdVUkUgICAgICAgICAgICAgKDB4MDAwNCkKICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfUFJJT1JJVFlfUkVTWU5DICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfRkFTVF9EQVRBX1NDUlVCQklOR18wMTAyICAgKDB4MDAyMCkgLyogb2Jzb2xldGUgKi8KICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfVVNFX1BST0RVQ1RfSURfU1VGRklYICAgICAgKDB4MDAxMCkKICNkZWZpbmUgTVBJX1JBSURWT0wwX1NFVFRJTkdfVVNFX0RFRkFVTFRTICAgICAgICAgICAgICAgKDB4ODAwMCkKIApAQCAtMTY0NCw3ICsyMDA1LDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1JBSURfVk9MXzAKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAvKiAwMGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBWb2x1bWVJRDsgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgVm9sdW1lQnVzOyAgICAgIC8qIDA1aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFZvbHVtZUlPQzsgICAgICAvKiAwNmggKi8KQEAgLTE2NTcsMTMgKzIwMTgsNDEgQEAKICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgLyogMUNoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgIC8qIDIwaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE51bVBoeXNEaXNrczsgICAvKiAyNGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDQ7ICAgICAgLyogMjVoICovCi0gICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ1OyAgICAgIC8qIDI2aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIERhdGFTY3J1YlJhdGU7ICAvKiAyNWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXN5bmNSYXRlOyAgICAgLyogMjZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgSW5hY3RpdmVTdGF0dXM7IC8qIDI3aCAqLwogICAgIFJBSURfVk9MMF9QSFlTX0RJU0sgICAgIFBoeXNEaXNrW01QSV9SQUlEX1ZPTF9QQUdFXzBfUEhZU0RJU0tfTUFYXTsvKiAyOGggKi8KLX0gZkNPTkZJR19QQUdFX1JBSURfVk9MXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9SQUlEX1ZPTF8wLAorfSBDT05GSUdfUEFHRV9SQUlEX1ZPTF8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfUkFJRF9WT0xfMCwKICAgUmFpZFZvbHVtZVBhZ2UwX3QsIE1QSV9QT0lOVEVSIHBSYWlkVm9sdW1lUGFnZTBfdDsKIAotI2RlZmluZSBNUElfUkFJRFZPTFBBR0UwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX1JBSURWT0xQQUdFMF9QQUdFVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgKDB4MDQpCisKKy8qIHZhbHVlcyBmb3IgUkFJRCBWb2x1bWUgUGFnZSAwIEluYWN0aXZlU3RhdHVzIGZpZWxkICovCisjZGVmaW5lIE1QSV9SQUlEVk9MUEFHRTBfVU5LTk9XTl9JTkFDVElWRSAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfUkFJRFZPTFBBR0UwX1NUQUxFX01FVEFEQVRBX0lOQUNUSVZFICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX1JBSURWT0xQQUdFMF9GT1JFSUdOX1ZPTFVNRV9JTkFDVElWRSAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9SQUlEVk9MUEFHRTBfSU5TVUZGSUNJRU5UX1JFU09VUkNFX0lOQUNUSVZFICgweDAzKQorI2RlZmluZSBNUElfUkFJRFZPTFBBR0UwX0NMT05FX1ZPTFVNRV9JTkFDVElWRSAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTVBJX1JBSURWT0xQQUdFMF9JTlNVRkZJQ0lFTlRfTUVUQURBVEFfSU5BQ1RJVkUgKDB4MDUpCisjZGVmaW5lIE1QSV9SQUlEVk9MUEFHRTBfUFJFVklPVVNMWV9ERUxFVEVEICAgICAgICAgICAgICgweDA2KQorCisKK3R5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9SQUlEX1ZPTF8xCit7CisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgSGVhZGVyOyAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFZvbHVtZUlEOyAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBWb2x1bWVCdXM7ICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgVm9sdW1lSU9DOyAgICAgIC8qIDAzaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMDsgICAgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBHVUlEWzI0XTsgICAgICAgLyogMDVoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTmFtZVszMl07ICAgICAgIC8qIDIwaCAqLworICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIFdXSUQ7ICAgICAgICAgICAvKiA0MGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgLyogNDhoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgIC8qIDRDaCAqLworfSBDT05GSUdfUEFHRV9SQUlEX1ZPTF8xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfUkFJRF9WT0xfMSwKKyAgUmFpZFZvbHVtZVBhZ2UxX3QsIE1QSV9QT0lOVEVSIHBSYWlkVm9sdW1lUGFnZTFfdDsKKworI2RlZmluZSBNUElfUkFJRFZPTFBBR0UxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAoMHgwMSkKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTcxNCw2ICsyMTAzLDcgQEAKIAogI2RlZmluZSBNUElfUEhZU0RJU0swX1NUQVRVU19GTEFHX09VVF9PRl9TWU5DICAgICAgICAgICAoMHgwMSkKICNkZWZpbmUgTVBJX1BIWVNESVNLMF9TVEFUVVNfRkxBR19RVUlFU0NFRCAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9QSFlTRElTSzBfU1RBVFVTX0ZMQUdfSU5BQ1RJVkVfVk9MVU1FICAgICAgICgweDA0KQogCiAjZGVmaW5lIE1QSV9QSFlTRElTSzBfU1RBVFVTX09OTElORSAgICAgICAgICAgICAgICAgICAgICgweDAwKQogI2RlZmluZSBNUElfUEhZU0RJU0swX1NUQVRVU19NSVNTSU5HICAgICAgICAgICAgICAgICAgICAoMHgwMSkKQEAgLTE3MjYsMjQgKzIxMTYsNTQgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1JBSURfUEhZU19ESVNLXzAKIHsKLSAgICBmQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19QQUdFX0hFQURFUiAgICAgICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNEaXNrSUQ7ICAgICAgICAgLyogMDRoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzRGlza0J1czsgICAgICAgIC8qIDA1aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGh5c0Rpc2tJT0M7ICAgICAgICAvKiAwNmggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNEaXNrTnVtOyAgICAgICAgLyogMDdoICovCiAgICAgUkFJRF9QSFlTX0RJU0swX1NFVFRJTkdTICAgICAgICBQaHlzRGlza1NldHRpbmdzOyAgIC8qIDA4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAvKiAwQ2ggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgLyogMTBoICovCi0gICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgIC8qIDE0aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0RGlza0lkZW50aWZpZXJbOF07IC8qIDEwaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlza0lkZW50aWZpZXJbMTZdOyAvKiAxOGggKi8KICAgICBSQUlEX1BIWVNfRElTSzBfSU5RVUlSWV9EQVRBICAgIElucXVpcnlEYXRhOyAgICAgICAgLyogMjhoICovCiAgICAgUkFJRF9QSFlTX0RJU0swX1NUQVRVUyAgICAgICAgICBQaHlzRGlza1N0YXR1czsgICAgIC8qIDY0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4TEJBOyAgICAgICAgICAgICAvKiA2OGggKi8KICAgICBSQUlEX1BIWVNfRElTSzBfRVJST1JfREFUQSAgICAgIEVycm9yRGF0YTsgICAgICAgICAgLyogNkNoICovCi19IGZDT05GSUdfUEFHRV9SQUlEX1BIWVNfRElTS18wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfUkFJRF9QSFlTX0RJU0tfMCwKK30gQ09ORklHX1BBR0VfUkFJRF9QSFlTX0RJU0tfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1JBSURfUEhZU19ESVNLXzAsCiAgIFJhaWRQaHlzRGlza1BhZ2UwX3QsIE1QSV9QT0lOVEVSIHBSYWlkUGh5c0Rpc2tQYWdlMF90OwogCi0jZGVmaW5lIE1QSV9SQUlEUEhZU0RJU0tQQUdFMF9QQUdFVkVSU0lPTiAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9SQUlEUEhZU0RJU0tQQUdFMF9QQUdFVkVSU0lPTiAgICAgICAgICAgKDB4MDEpCisKKwordHlwZWRlZiBzdHJ1Y3QgX1JBSURfUEhZU19ESVNLMV9QQVRICit7CisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzRGlza0lEOyAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGh5c0Rpc2tCdXM7ICAgICAgICAvKiAwMWggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgLyogMDJoICovCisgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXV0lEOyAgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFU2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duZXJXV0lEOyAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93bmVySWRlbnRpZmllcjsgICAgLyogMTRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDE1aCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7ICAgICAgICAgICAgICAvKiAxNmggKi8KK30gUkFJRF9QSFlTX0RJU0sxX1BBVEgsIE1QSV9QT0lOVEVSIFBUUl9SQUlEX1BIWVNfRElTSzFfUEFUSCwKKyAgUmFpZFBoeXNEaXNrMVBhdGhfdCwgTVBJX1BPSU5URVIgcFJhaWRQaHlzRGlzazFQYXRoX3Q7CisKKy8qIFJBSUQgUGh5c2ljYWwgRGlzayBQYWdlIDEgRmxhZ3MgZmllbGQgZGVmaW5lcyAqLworI2RlZmluZSBNUElfUkFJRF9QSFlTRElTSzFfRkxBR19CUk9LRU4gICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTVBJX1JBSURfUEhZU0RJU0sxX0ZMQUdfSU5WQUxJRCAgICAgICAgICgweDAwMDEpCisKK3R5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9SQUlEX1BIWVNfRElTS18xCit7CisgICAgQ09ORklHX1BBR0VfSEVBREVSICAgICAgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtUGh5c0Rpc2tQYXRoczsgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNEaXNrTnVtOyAgICAgICAgLyogMDVoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDA2aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAvKiAwOGggKi8KKyAgICBSQUlEX1BIWVNfRElTSzFfUEFUSCAgICAgICAgICAgIFBhdGhbMV07ICAgICAgICAgICAgLyogMENoICovCit9IENPTkZJR19QQUdFX1JBSURfUEhZU19ESVNLXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9SQUlEX1BIWVNfRElTS18xLAorICBSYWlkUGh5c0Rpc2tQYWdlMV90LCBNUElfUE9JTlRFUiBwUmFpZFBoeXNEaXNrUGFnZTFfdDsKKworI2RlZmluZSBNUElfUkFJRFBIWVNESVNLUEFHRTFfUEFHRVZFUlNJT04gICAgICAgKDB4MDApCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE3NTYsNyArMjE3Niw3IEBACiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgVHhSeE1vZGVzOyAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkOyAgICAgICAgICAgICAgICAgICAvKiAwNmggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBQYWNrZXRQcmVQYWQ7ICAgICAgICAgICAgICAgLyogMDhoICovCi19IGZDT05GSUdfUEFHRV9MQU5fMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0xBTl8wLAorfSBDT05GSUdfUEFHRV9MQU5fMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0xBTl8wLAogICBMQU5QYWdlMF90LCBNUElfUE9JTlRFUiBwTEFOUGFnZTBfdDsKIAogI2RlZmluZSBNUElfTEFOX1BBR0UwX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAoMHgwMSkKQEAgLTE3ODEsNyArMjIwMSw3IEBACiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTWF4UmVwbHlTaXplOyAgICAgICAgICAgICAgIC8qIDI0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIE5lZ1dpcmVTcGVlZExvdzsgICAgICAgICAgICAvKiAyOGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBOZWdXaXJlU3BlZWRIaWdoOyAgICAgICAgICAgLyogMkNoICovCi19IGZDT05GSUdfUEFHRV9MQU5fMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0xBTl8xLAorfSBDT05GSUdfUEFHRV9MQU5fMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0xBTl8xLAogICBMQU5QYWdlMV90LCBNUElfUE9JTlRFUiBwTEFOUGFnZTFfdDsKIAogI2RlZmluZSBNUElfTEFOX1BBR0UxX1BBR0VWRVJTSU9OICAgICAgICAgICAgICAgICAgICAgICAoMHgwMykKQEAgLTE3OTYsMTEgKzIyMTYsMTEgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX0lOQkFORF8wCiB7Ci0gICAgZkNPTkZJR19QQUdFX0hFQURFUiAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfUEFHRV9IRUFERVIgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCiAgICAgTVBJX1ZFUlNJT05fRk9STUFUICAgICAgSW5iYW5kVmVyc2lvbjsgICAgICAgICAgICAgIC8qIDA0aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIE1heGltdW1CdWZmZXJzOyAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgLyogMEFoICovCi19IGZDT05GSUdfUEFHRV9JTkJBTkRfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lOQkFORF8wLAorfSBDT05GSUdfUEFHRV9JTkJBTkRfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0lOQkFORF8wLAogICBJbmJhbmRQYWdlMF90LCBNUElfUE9JTlRFUiBwSW5iYW5kUGFnZTBfdDsKIAogI2RlZmluZSBNUElfSU5CQU5EX1BBR0VWRVJTSU9OICAgICAgICAgICgweDAwKQpAQCAtMTgyMCw3ICsyMjQwLDcgQEAKICAgICBVMzIgICAgICAgICBDb250cm9sbGVyUGh5RGV2aWNlSW5mbzsvKiAwNGggKi8KICAgICBVMTYgICAgICAgICBBdHRhY2hlZERldmljZUhhbmRsZTsgICAvKiAwOGggKi8KICAgICBVMTYgICAgICAgICBDb250cm9sbGVyRGV2SGFuZGxlOyAgICAvKiAwQWggKi8KLSAgICBVMzIgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVMzIgICAgICAgICBEaXNjb3ZlcnlTdGF0dXM7ICAgICAgICAvKiAwQ2ggKi8KIH0gTVBJX1NBU19JT19VTklUMF9QSFlfREFUQSwgTVBJX1BPSU5URVIgUFRSX01QSV9TQVNfSU9fVU5JVDBfUEhZX0RBVEEsCiAgIFNhc0lPVW5pdDBQaHlEYXRhLCBNUElfUE9JTlRFUiBwU2FzSU9Vbml0MFBoeURhdGE7CiAKQEAgLTE4MzQsMjIgKzIyNTQsMjEgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NBU19JT19VTklUXzAKIHsKLSAgICBmQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1QaHlzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBEaCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMEVoICovCiAgICAgTVBJX1NBU19JT19VTklUMF9QSFlfREFUQSAgICAgICBQaHlEYXRhW01QSV9TQVNfSU9VTklUMF9QSFlfTUFYXTsgICAvKiAxMGggKi8KLX0gZkNPTkZJR19QQUdFX1NBU19JT19VTklUXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8wLAorfSBDT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0FTX0lPX1VOSVRfMCwKICAgU2FzSU9Vbml0UGFnZTBfdCwgTVBJX1BPSU5URVIgcFNhc0lPVW5pdFBhZ2UwX3Q7CiAKLSNkZWZpbmUgTVBJX1NBU0lPVU5JVFBBR0UwX1BBR0VWRVJTSU9OICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9TQVNJT1VOSVRQQUdFMF9QQUdFVkVSU0lPTiAgICAgICgweDAyKQogCiAvKiB2YWx1ZXMgZm9yIFNBUyBJTyBVbml0IFBhZ2UgMCBQb3J0RmxhZ3MgKi8KICNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX1BPUlRfRkxBR1NfRElTQ09WRVJZX0lOX1BST0dSRVNTICAgICgweDA4KQogI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfUE9SVF9GTEFHU18wX1RBUkdFVF9JT0NfTlVNICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9TQVNfSU9VTklUMF9QT1JUX0ZMQUdTXzFfVEFSR0VUX0lPQ19OVU0gICAgICAgICAoMHgwNCkKLSNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX1BPUlRfRkxBR1NfV0FJVF9GT1JfUE9SVEVOQUJMRSAgICAgICgweDAyKQogI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfUE9SVF9GTEFHU19BVVRPX1BPUlRfQ09ORklHICAgICAgICAgKDB4MDEpCiAKIC8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAwIFBoeUZsYWdzICovCkBAIC0xODY3LDYgKzIyODYsMjAgQEAKIAogLyogc2VlIG1waV9zYXMuaCBmb3IgdmFsdWVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDAgQ29udHJvbGxlclBoeURldmljZUluZm8gdmFsdWVzICovCiAKKy8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAwIERpc2NvdmVyeVN0YXR1cyAqLworI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfRFNfTE9PUF9ERVRFQ1RFRCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMF9EU19VTkFERFJFU1NBQkxFX0RFVklDRSAgICAgICAgICAgICAoMHgwMDAwMDAwMikKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX0RTX01VTFRJUExFX1BPUlRTICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDA0KQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfRFNfRVhQQU5ERVJfRVJSICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDgpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMF9EU19TTVBfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDAxMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX0RTX09VVF9ST1VURV9FTlRSSUVTICAgICAgICAgICAgICAgICgweDAwMDAwMDIwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfRFNfSU5ERVhfTk9UX0VYSVNUICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwNDApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMF9EU19TTVBfRlVOQ1RJT05fRkFJTEVEICAgICAgICAgICAgICAoMHgwMDAwMDA4MCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX0RTX1NNUF9DUkNfRVJST1IgICAgICAgICAgICAgICAgICAgICgweDAwMDAwMTAwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDBfRFNfU1VCVFJBQ1RJVkVfTElOSyAgICAgICAgICAgICAgICAgKDB4MDAwMDAyMDApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMF9EU19UQUJMRV9MSU5LICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDQwMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQwX0RTX1VOU1VQUE9SVEVEX0RFVklDRSAgICAgICAgICAgICAgICgweDAwMDAwODAwKQorCiAKIHR5cGVkZWYgc3RydWN0IF9NUElfU0FTX0lPX1VOSVQxX1BIWV9EQVRBCiB7CkBAIC0xODg5LDUyICsyMzIyLDc1IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8xCiB7Ci0gICAgZkNPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIE51bVBoeXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwRGggKi8KLSAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMEVoICovCi0gICAgTVBJX1NBU19JT19VTklUMV9QSFlfREFUQSAgIFBoeURhdGFbTVBJX1NBU19JT1VOSVQxX1BIWV9NQVhdOyAgIC8qIDEwaCAqLwotfSBmQ09ORklHX1BBR0VfU0FTX0lPX1VOSVRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19JT19VTklUXzEsCisgICAgQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sRmxhZ3M7ICAgICAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgTWF4TnVtU0FUQVRhcmdldHM7ICAgICAgICAgICAgICAgICAgLyogMEFoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1QaHlzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgU0FUQU1heFFEZXB0aDsgICAgICAgICAgICAgICAgICAgICAgLyogMTFoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEyaCAqLworICAgIE1QSV9TQVNfSU9fVU5JVDFfUEhZX0RBVEEgICBQaHlEYXRhW01QSV9TQVNfSU9VTklUMV9QSFlfTUFYXTsgICAvKiAxNGggKi8KK30gQ09ORklHX1BBR0VfU0FTX0lPX1VOSVRfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19JT19VTklUXzEsCiAgIFNhc0lPVW5pdFBhZ2UxX3QsIE1QSV9QT0lOVEVSIHBTYXNJT1VuaXRQYWdlMV90OwogCi0jZGVmaW5lIE1QSV9TQVNJT1VOSVRQQUdFMV9QQUdFVkVSU0lPTiAgICAgICgweDAwKQorI2RlZmluZSBNUElfU0FTSU9VTklUUEFHRTFfUEFHRVZFUlNJT04gICAgICAoMHgwNCkKIAotLyogdmFsdWVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDAgUG9ydEZsYWdzICovCi0jZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9QT1JUX0ZMQUdTXzBfVEFSR0VUX0lPQ19OVU0gICAgICAgICAoMHgwMCkKLSNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX1BPUlRfRkxBR1NfMV9UQVJHRVRfSU9DX05VTSAgICAgICAgICgweDA0KQotI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfUE9SVF9GTEFHU19XQUlUX0ZPUl9QT1JURU5BQkxFICAgICAgKDB4MDIpCi0jZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9QT1JUX0ZMQUdTX0FVVE9fUE9SVF9DT05GSUcgICAgICAgICAoMHgwMSkKKy8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAxIENvbnRyb2xGbGFncyAqLworI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfQ09OVFJPTF9TQVRBXzNfMF9NQVggICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfQ09OVFJPTF9TQVRBXzFfNV9NQVggICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfQ09OVFJPTF9TQVRBX1NXX1BSRVNFUlZFICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfQ09OVFJPTF9ESVNBQkxFX1NBU19IQVNIICAgICAgICAoMHgwODAwKQorCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX01BU0tfREVWX1NVUFBPUlQgICAgICAgICgweDA2MDApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NISUZUX0RFVl9TVVBQT1JUICAgICAgICg5KQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfQ09OVFJPTF9ERVZfU1VQUE9SVF9CT1RIICAgICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX0NPTlRST0xfREVWX1NBU19TVVBQT1JUICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX0RFVl9TQVRBX1NVUFBPUlQgICAgICAgICgweDEwKQorCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX0FVVE9fUE9SVF9TQU1FX1NBU19BRERSICgweDAxMDApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NBVEFfNDhCSVRfTEJBX1JFUVVJUkVEICgweDAwODApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NBVEFfU01BUlRfUkVRVUlSRUQgICAgICgweDAwNDApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NBVEFfTkNRX1JFUVVJUkVEICAgICAgICgweDAwMjApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NBVEFfRlVBX1JFUVVJUkVEICAgICAgICgweDAwMTApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1BIWV9FTkFCTEVfT1JERVJfSElHSCAgICgweDAwMDgpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX1NVQlRSQUNUSVZFX0lMTEVHQUwgICAgICgweDAwMDQpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX0ZJUlNUX0xWTF9ESVNDX09OTFkgICAgICgweDAwMDIpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9DT05UUk9MX0NMRUFSX0FGRklMSUFUSU9OICAgICAgICgweDAwMDEpCisKKy8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAxIFBvcnRGbGFncyAqLworI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfUE9SVF9GTEFHU18wX1RBUkdFVF9JT0NfTlVNICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX1BPUlRfRkxBR1NfMV9UQVJHRVRfSU9DX05VTSAgICAgKDB4MDQpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9QT1JUX0ZMQUdTX0FVVE9fUE9SVF9DT05GSUcgICAgICgweDAxKQogCiAvKiB2YWx1ZXMgZm9yIFNBUyBJTyBVbml0IFBhZ2UgMCBQaHlGbGFncyAqLwotI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfUEhZX0ZMQUdTX1BIWV9ESVNBQkxFICAgICAgICAgICAgICAgKDB4MDQpCi0jZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9QSFlfRkxBR1NfVFhfSU5WRVJUICAgICAgICAgICAgICAgICAoMHgwMikKLSNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX1BIWV9GTEFHU19SWF9JTlZFUlQgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfUEhZX0ZMQUdTX1BIWV9ESVNBQkxFICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX1BIWV9GTEFHU19UWF9JTlZFUlQgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9QSFlfRkxBR1NfUlhfSU5WRVJUICAgICAgICAgICAgICgweDAxKQogCiAvKiB2YWx1ZXMgZm9yIFNBUyBJTyBVbml0IFBhZ2UgMCBNYXhNaW5MaW5rUmF0ZSAqLwotI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfTUFYX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgKDB4RjApCi0jZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9NQVhfUkFURV8xXzUgICAgICAgICAgICAgICAgICAgICAgICAoMHg4MCkKLSNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX01BWF9SQVRFXzNfMCAgICAgICAgICAgICAgICAgICAgICAgICgweDkwKQotI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfTUlOX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgKDB4MEYpCi0jZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9NSU5fUkFURV8xXzUgICAgICAgICAgICAgICAgICAgICAgICAoMHgwOCkKLSNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX01JTl9SQVRFXzNfMCAgICAgICAgICAgICAgICAgICAgICAgICgweDA5KQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfTUFYX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAoMHhGMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX01BWF9SQVRFXzFfNSAgICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9NQVhfUkFURV8zXzAgICAgICAgICAgICAgICAgICAgICgweDkwKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDFfTUlOX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgwRikKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQxX01JTl9SQVRFXzFfNSAgICAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMV9NSU5fUkFURV8zXzAgICAgICAgICAgICAgICAgICAgICgweDA5KQogCiAvKiBzZWUgbXBpX3Nhcy5oIGZvciB2YWx1ZXMgZm9yIFNBUyBJTyBVbml0IFBhZ2UgMSBDb250cm9sbGVyUGh5RGV2aWNlSW5mbyB2YWx1ZXMgKi8KIAogCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfU0FTX0lPX1VOSVRfMgogewotICAgIGZDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhQZXJzaXN0ZW50SURzOyAgICAgICAvKiAwQ2ggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1QZXJzaXN0ZW50SURzVXNlZDsgICAvKiAwRWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7ICAgICAgICAgICAgICAgICAvKiAxMGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgICAgICAvKiAxMWggKi8KLSAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAxMmggKi8KLX0gZkNPTkZJR19QQUdFX1NBU19JT19VTklUXzIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8yLAorICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heE51bVBoeXNpY2FsTWFwcGVkSURzOy8qIDEyaCAqLyAgICAgICAgICAgICAgLyogMTJoICovCit9IENPTkZJR19QQUdFX1NBU19JT19VTklUXzIsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8yLAogICBTYXNJT1VuaXRQYWdlMl90LCBNUElfUE9JTlRFUiBwU2FzSU9Vbml0UGFnZTJfdDsKIAotI2RlZmluZSBNUElfU0FTSU9VTklUUEFHRTJfUEFHRVZFUlNJT04gICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1NBU0lPVU5JVFBBR0UyX1BBR0VWRVJTSU9OICAgICAgKDB4MDMpCiAKIC8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAyIFN0YXR1cyBmaWVsZCAqLwogI2RlZmluZSBNUElfU0FTX0lPVU5JVDJfU1RBVFVTX0RJU0FCTEVEX1BFUlNJU1RFTlRfTUFQUElOR1MgKDB4MDIpCkBAIC0xOTQyLDExICsyMzk4LDE5IEBACiAKIC8qIHZhbHVlcyBmb3IgU0FTIElPIFVuaXQgUGFnZSAyIEZsYWdzIGZpZWxkICovCiAjZGVmaW5lIE1QSV9TQVNfSU9VTklUMl9GTEFHU19ESVNBQkxFX1BFUlNJU1RFTlRfTUFQUElOR1MgICAoMHgwMSkKKy8qIFBoeXNpY2FsIE1hcHBpbmcgTW9kZXMgKi8KKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQyX0ZMQUdTX01BU0tfUEhZU19NQVBfTU9ERSAgICAgICAgICAgICgweDBFKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDJfRkxBR1NfU0hJRlRfUEhZU19NQVBfTU9ERSAgICAgICAgICAgKDEpCisjZGVmaW5lIE1QSV9TQVNfSU9VTklUMl9GTEFHU19OT19QSFlTX01BUCAgICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQyX0ZMQUdTX0RJUkVDVF9BVFRBQ0hfUEhZU19NQVAgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0FTX0lPVU5JVDJfRkxBR1NfRU5DTE9TVVJFX1NMT1RfUEhZU19NQVAgICAgICAgKDB4MDIpCisKKyNkZWZpbmUgTVBJX1NBU19JT1VOSVQyX0ZMQUdTX1JFU0VSVkVfSURfMF9GT1JfQk9PVCAgICAgICAgICgweDEwKQogCiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8zCiB7Ci0gICAgZkNPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIENPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgIC8qIDA4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBNYXhJbnZhbGlkRHdvcmRDb3VudDsgICAgICAgICAgIC8qIDBDaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkRHdvcmRDb3VudFRpbWU7ICAgICAgICAgIC8qIDEwaCAqLwpAQCAtMTk1NiwxOCArMjQyMCwyNCBAQAogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBMb3NzRHdvcmRTeW5jaENvdW50VGltZTsgICAgICAgIC8qIDIwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBNYXhQaHlSZXNldFByb2JsZW1Db3VudDsgICAgICAgIC8qIDI0aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBQaHlSZXNldFByb2JsZW1UaW1lOyAgICAgICAgICAgIC8qIDI4aCAqLwotfSBmQ09ORklHX1BBR0VfU0FTX0lPX1VOSVRfMywgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19JT19VTklUXzMsCit9IENPTkZJR19QQUdFX1NBU19JT19VTklUXzMsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfSU9fVU5JVF8zLAogICBTYXNJT1VuaXRQYWdlM190LCBNUElfUE9JTlRFUiBwU2FzSU9Vbml0UGFnZTNfdDsKIAogI2RlZmluZSBNUElfU0FTSU9VTklUUEFHRTNfUEFHRVZFUlNJT04gICAgICAoMHgwMCkKIAogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIFNBUyBFeHBhbmRlciBDb25maWcgUGFnZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQVNfRVhQQU5ERVJfMAogewotICAgIGZDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbFBvcnQ7ICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAvKiAwOWggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAwQWggKi8KICAgICBVNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQVNBZGRyZXNzOyAgICAgICAgICAgICAvKiAwQ2ggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNjb3ZlcnlTdGF0dXM7ICAgICAgICAvKiAxNGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZIYW5kbGU7ICAgICAgICAgICAgICAvKiAxOGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJlbnREZXZIYW5kbGU7ICAgICAgICAvKiAxQWggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBhbmRlckNoYW5nZUNvdW50OyAgICAvKiAxQ2ggKi8KQEAgLTE5NzYsNDUgKzI0NDYsMTI3IEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0FTTGV2ZWw7ICAgICAgICAgICAgICAgLyogMjFoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7ICAgICAgICAgICAgICAgICAgLyogMjJoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgLyogMjNoICovCi19IGZDT05GSUdfUEFHRV9TQVNfRVhQQU5ERVJfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19FWFBBTkRFUl8wLAorfSBDT05GSUdfUEFHRV9TQVNfRVhQQU5ERVJfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19FWFBBTkRFUl8wLAogICBTYXNFeHBhbmRlclBhZ2UwX3QsIE1QSV9QT0lOVEVSIHBTYXNFeHBhbmRlclBhZ2UwX3Q7CiAKLSNkZWZpbmUgTVBJX1NBU0VYUEFOREVSMF9QQUdFVkVSU0lPTiAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9TQVNFWFBBTkRFUjBfUEFHRVZFUlNJT04gICAgICAgICgweDAyKQorCisvKiB2YWx1ZXMgZm9yIFNBUyBFeHBhbmRlciBQYWdlIDAgRGlzY292ZXJ5U3RhdHVzIGZpZWxkICovCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIwX0RTX0xPT1BfREVURUNURUQgICAgICAgICAgICAgICgweDAwMDAwMDAxKQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMF9EU19VTkFERFJFU1NBQkxFX0RFVklDRSAgICAgICAoMHgwMDAwMDAwMikKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjBfRFNfTVVMVElQTEVfUE9SVFMgICAgICAgICAgICAgKDB4MDAwMDAwMDQpCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIwX0RTX0VYUEFOREVSX0VSUiAgICAgICAgICAgICAgICgweDAwMDAwMDA4KQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMF9EU19TTVBfVElNRU9VVCAgICAgICAgICAgICAgICAoMHgwMDAwMDAxMCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjBfRFNfT1VUX1JPVVRFX0VOVFJJRVMgICAgICAgICAgKDB4MDAwMDAwMjApCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIwX0RTX0lOREVYX05PVF9FWElTVCAgICAgICAgICAgICgweDAwMDAwMDQwKQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMF9EU19TTVBfRlVOQ1RJT05fRkFJTEVEICAgICAgICAoMHgwMDAwMDA4MCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjBfRFNfU01QX0NSQ19FUlJPUiAgICAgICAgICAgICAgKDB4MDAwMDAxMDApCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIwX0RTX1NVQlRSQUNUSVZFX0xJTksgICAgICAgICAgICgweDAwMDAwMjAwKQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMF9EU19UQUJMRV9MSU5LICAgICAgICAgICAgICAgICAoMHgwMDAwMDQwMCkKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjBfRFNfVU5TVVBQT1JURURfREVWSUNFICAgICAgICAgKDB4MDAwMDA4MDApCiAKIC8qIHZhbHVlcyBmb3IgU0FTIEV4cGFuZGVyIFBhZ2UgMCBGbGFncyBmaWVsZCAqLwogI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMF9GTEFHU19ST1VURV9UQUJMRV9DT05GSUcgICAgICAoMHgwMikKICNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjBfRkxBR1NfQ09ORklHX0lOX1BST0dSRVNTICAgICAgKDB4MDEpCiAKIAordHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NBU19FWFBBTkRFUl8xCit7CisgICAgQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSIEhlYWRlcjsgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbFBvcnQ7ICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgLyogMDloICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgIC8qIDBBaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1QaHlzOyAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgUGh5OyAgICAgICAgICAgICAgICAgICAgLyogMERoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIE51bVRhYmxlRW50cmllc1Byb2dyYW1tZWQ7IC8qIDBFaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmFtbWVkTGlua1JhdGU7ICAgICAvKiAxMGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgSHdMaW5rUmF0ZTsgICAgICAgICAgICAgLyogMTFoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaGVkRGV2SGFuZGxlOyAgICAgIC8qIDEyaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBQaHlJbmZvOyAgICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgQXR0YWNoZWREZXZpY2VJbmZvOyAgICAgLyogMThoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIE93bmVyRGV2SGFuZGxlOyAgICAgICAgIC8qIDFDaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VDb3VudDsgICAgICAgICAgICAvKiAxRWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgTmVnb3RpYXRlZExpbmtSYXRlOyAgICAgLyogMUZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIFBoeUlkZW50aWZpZXI7ICAgICAgICAgIC8qIDIwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRhY2hlZFBoeUlkZW50aWZpZXI7ICAvKiAyMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtVGFibGVFbnRyaWVzUHJvZzsgICAgLyogMjJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgIERpc2NvdmVyeUluZm87ICAgICAgICAgIC8qIDIzaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAvKiAyNGggKi8KK30gQ09ORklHX1BBR0VfU0FTX0VYUEFOREVSXzEsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfRVhQQU5ERVJfMSwKKyAgU2FzRXhwYW5kZXJQYWdlMV90LCBNUElfUE9JTlRFUiBwU2FzRXhwYW5kZXJQYWdlMV90OworCisjZGVmaW5lIE1QSV9TQVNFWFBBTkRFUjFfUEFHRVZFUlNJT04gICAgICAgICgweDAxKQorCisvKiB1c2UgTVBJX1NBU19QSFkwX1BSQVRFXyBkZWZpbmVzIGZvciBQcm9ncmFtbWVkTGlua1JhdGUgKi8KKworLyogdXNlIE1QSV9TQVNfUEhZMF9IV1JBVEVfIGRlZmluZXMgZm9yIEh3TGlua1JhdGUgKi8KKworLyogdXNlIE1QSV9TQVNfUEhZMF9QSFlJTkZPXyBkZWZpbmVzIGZvciBQaHlJbmZvICovCisKKy8qIHNlZSBtcGlfc2FzLmggZm9yIHZhbHVlcyBmb3IgU0FTIEV4cGFuZGVyIFBhZ2UgMSBBdHRhY2hlZERldmljZUluZm8gdmFsdWVzICovCisKKy8qIHZhbHVlcyBmb3IgU0FTIEV4cGFuZGVyIFBhZ2UgMSBEaXNjb3ZlcnlJbmZvIGZpZWxkICovCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIxX0RJU0NJTkZPX0JBRF9QSFkgRElTQUJMRUQgICAgICgweDA0KQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMV9ESVNDSU5GT19MSU5LX1NUQVRVU19DSEFOR0UgICAoMHgwMikKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjFfRElTQ0lORk9fTk9fUk9VVElOR19FTlRSSUVTICAgKDB4MDEpCisKKy8qIHZhbHVlcyBmb3IgU0FTIEV4cGFuZGVyIFBhZ2UgMSBOZWdvdGlhdGVkTGlua1JhdGUgZmllbGQgKi8KKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjFfTkVHX1JBVEVfVU5LTk9XTiAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIxX05FR19SQVRFX1BIWV9ESVNBQkxFRCAgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMV9ORUdfUkFURV9GQUlMRURfTkVHT1RJQVRJT04gICAoMHgwMikKKyNkZWZpbmUgTVBJX1NBU19FWFBBTkRFUjFfTkVHX1JBVEVfU0FUQV9PT0JfQ09NUExFVEUgICAgKDB4MDMpCisjZGVmaW5lIE1QSV9TQVNfRVhQQU5ERVIxX05FR19SQVRFXzFfNSAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBNUElfU0FTX0VYUEFOREVSMV9ORUdfUkFURV8zXzAgICAgICAgICAgICAgICAgICAoMHgwOSkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIFNBUyBEZXZpY2UgQ29uZmlnIFBhZ2VzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCiB0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfU0FTX0RFVklDRV8wCiB7Ci0gICAgZkNPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIENPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiAgICAgICAgIEhlYWRlcjsgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3Q7ICAgICAgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY2xvc3VyZUhhbmRsZTsgICAgICAgIC8qIDBBaCAqLwogICAgIFU2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNBU0FkZHJlc3M7ICAgICAgICAgICAgIC8qIDBDaCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgIC8qIDE0aCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmVudERldkhhbmRsZTsgICAgICAgIC8qIDE0aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeU51bTsgICAgICAgICAgICAgICAgIC8qIDE2aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2Vzc1N0YXR1czsgICAgICAgICAgIC8qIDE3aCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldkhhbmRsZTsgICAgICAgICAgICAgIC8qIDE4aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldElEOyAgICAgICAgICAgICAgIC8qIDFBaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgICAgIC8qIDFCaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZUluZm87ICAgICAgICAgICAgIC8qIDFDaCAqLwogICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOyAgICAgICAgICAgICAgICAgIC8qIDIwaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsUG9ydDsgICAgICAgICAgIC8qIDIyaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgIC8qIDIzaCAqLwotfSBmQ09ORklHX1BBR0VfU0FTX0RFVklDRV8wLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0FTX0RFVklDRV8wLAorICAgIFU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgIC8qIDIzaCAqLworfSBDT05GSUdfUEFHRV9TQVNfREVWSUNFXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfREVWSUNFXzAsCiAgIFNhc0RldmljZVBhZ2UwX3QsIE1QSV9QT0lOVEVSIHBTYXNEZXZpY2VQYWdlMF90OwogCi0jZGVmaW5lIE1QSV9TQVNERVZJQ0UwX1BBR0VWRVJTSU9OICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfU0FTREVWSUNFMF9QQUdFVkVSU0lPTiAgICAgICAgICAoMHgwNCkKKworLyogdmFsdWVzIGZvciBTQVMgRGV2aWNlIFBhZ2UgMCBBY2Nlc3NTdGF0dXMgZmllbGQgKi8KKyNkZWZpbmUgTVBJX1NBU19ERVZJQ0UwX0FTVEFUVVNfTk9fRVJST1JTICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9TQVNfREVWSUNFMF9BU1RBVFVTX1NBVEFfSU5JVF9GQUlMRUQgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfQVNUQVRVU19TQVRBX0NBUEFCSUxJVFlfRkFJTEVEICAoMHgwMikKIAogLyogdmFsdWVzIGZvciBTQVMgRGV2aWNlIFBhZ2UgMCBGbGFncyBmaWVsZCAqLwotI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfTUFQUElOR19QRVJTSVNURU5UICAgICgweDA0KQotI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfREVWSUNFX01BUFBFRCAgICAgICAgICgweDAyKQotI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfREVWSUNFX1BSRVNFTlQgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfU0FUQV9TV19QUkVTRVJWRSAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfVU5TVVBQT1JURURfREVWSUNFICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfU0FUQV80OEJJVF9MQkFfU1VQUE9SVEVEICAoMHgwMDgwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfU0FUQV9TTUFSVF9TVVBQT1JURUQgICAgICAoMHgwMDQwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfU0FUQV9OQ1FfU1VQUE9SVEVEICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfU0FUQV9GVUFfU1VQUE9SVEVEICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfUE9SVF9TRUxFQ1RPUl9BVFRBQ0ggICAgICAoMHgwMDA4KQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfTUFQUElOR19QRVJTSVNURU5UICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfREVWSUNFX01BUFBFRCAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBNUElfU0FTX0RFVklDRTBfRkxBR1NfREVWSUNFX1BSRVNFTlQgICAgICAgICAgICAoMHgwMDAxKQogCiAvKiBzZWUgbXBpX3Nhcy5oIGZvciB2YWx1ZXMgZm9yIFNBUyBEZXZpY2UgUGFnZSAwIERldmljZUluZm8gdmFsdWVzICovCiAKIAogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NBU19ERVZJQ0VfMQogewotICAgIGZDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQVNBZGRyZXNzOyAgICAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAvKiAxNGggKi8KQEAgLTIwMjIsMTUgKzI1NzQsMzAgQEAKICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJRDsgICAgICAgICAgICAgICAvKiAxQWggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdXM7ICAgICAgICAgICAgICAgICAgICAvKiAxQmggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbml0aWFsUmVnRGV2aWNlRklTWzIwXTsvKiAxQ2ggKi8KLX0gZkNPTkZJR19QQUdFX1NBU19ERVZJQ0VfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19ERVZJQ0VfMSwKK30gQ09ORklHX1BBR0VfU0FTX0RFVklDRV8xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0FTX0RFVklDRV8xLAogICBTYXNEZXZpY2VQYWdlMV90LCBNUElfUE9JTlRFUiBwU2FzRGV2aWNlUGFnZTFfdDsKIAogI2RlZmluZSBNUElfU0FTREVWSUNFMV9QQUdFVkVSU0lPTiAgICAgICAgICAoMHgwMCkKIAogCit0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfU0FTX0RFVklDRV8yCit7CisgICAgQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxJZGVudGlmaWVyOyAgICAgLyogMDhoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgLyogMTBoICovCit9IENPTkZJR19QQUdFX1NBU19ERVZJQ0VfMiwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19ERVZJQ0VfMiwKKyAgU2FzRGV2aWNlUGFnZTJfdCwgTVBJX1BPSU5URVIgcFNhc0RldmljZVBhZ2UyX3Q7CisKKyNkZWZpbmUgTVBJX1NBU0RFVklDRTJfUEFHRVZFUlNJT04gICAgICAgICAgKDB4MDApCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBTQVMgUEhZIENvbmZpZyBQYWdlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwogdHlwZWRlZiBzdHJ1Y3QgX0NPTkZJR19QQUdFX1NBU19QSFlfMAogewotICAgIGZDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgICAgICAgICBIZWFkZXI7ICAgICAgICAgICAgICAgICAvKiAwMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAvKiAwOGggKi8KICAgICBVNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQVNBZGRyZXNzOyAgICAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRhY2hlZERldkhhbmRsZTsgICAgICAvKiAxNGggKi8KQEAgLTIwNDIsNyArMjYwOSw3IEBACiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlQ291bnQ7ICAgICAgICAgICAgLyogMjJoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgLyogMjNoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGh5SW5mbzsgICAgICAgICAgICAgICAgLyogMjRoICovCi19IGZDT05GSUdfUEFHRV9TQVNfUEhZXzAsIE1QSV9QT0lOVEVSIFBUUl9DT05GSUdfUEFHRV9TQVNfUEhZXzAsCit9IENPTkZJR19QQUdFX1NBU19QSFlfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19QSFlfMCwKICAgU2FzUGh5UGFnZTBfdCwgTVBJX1BPSU5URVIgcFNhc1BoeVBhZ2UwX3Q7CiAKICNkZWZpbmUgTVBJX1NBU1BIWTBfUEFHRVZFUlNJT04gICAgICAgICAgICAgKDB4MDApCkBAIC0yMDg5LDE3ICsyNjU2LDk1IEBACiAKIHR5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9TQVNfUEhZXzEKIHsKLSAgICBmQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSIEhlYWRlcjsgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBDT05GSUdfRVhURU5ERURfUEFHRV9IRUFERVIgSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgLyogMDhoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWREd29yZENvdW50OyAgICAgICAgICAvKiAwQ2ggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUnVubmluZ0Rpc3Bhcml0eUVycm9yQ291bnQ7IC8qIDEwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgICAgICBMb3NzRHdvcmRTeW5jaENvdW50OyAgICAgICAgLyogMTRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIFBoeVJlc2V0UHJvYmxlbUNvdW50OyAgICAgICAvKiAxOGggKi8KLX0gZkNPTkZJR19QQUdFX1NBU19QSFlfMSwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19QSFlfMSwKK30gQ09ORklHX1BBR0VfU0FTX1BIWV8xLCBNUElfUE9JTlRFUiBQVFJfQ09ORklHX1BBR0VfU0FTX1BIWV8xLAogICBTYXNQaHlQYWdlMV90LCBNUElfUE9JTlRFUiBwU2FzUGh5UGFnZTFfdDsKIAogI2RlZmluZSBNUElfU0FTUEhZMV9QQUdFVkVSU0lPTiAgICAgICAgICAgICAoMHgwMCkKIAogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIFNBUyBFbmNsb3N1cmUgQ29uZmlnIFBhZ2VzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0eXBlZGVmIHN0cnVjdCBfQ09ORklHX1BBR0VfU0FTX0VOQ0xPU1VSRV8wCit7CisgICAgQ09ORklHX0VYVEVOREVEX1BBR0VfSEVBREVSICAgICAgICAgSGVhZGVyOyAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgLyogMDhoICovCisgICAgVTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5jbG9zdXJlTG9naWNhbElEOyAgICAgLyogMENoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7ICAgICAgICAgICAgICAgICAgLyogMTRoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5jbG9zdXJlSGFuZGxlOyAgICAgICAgLyogMTZoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtU2xvdHM7ICAgICAgICAgICAgICAgLyogMThoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRTbG90OyAgICAgICAgICAgICAgLyogMUFoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRUYXJnZXRJRDsgICAgICAgICAgLyogMUNoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRCdXM7ICAgICAgICAgICAgICAgLyogMURoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VQVGFyZ2V0SUQ7ICAgICAgICAgICAgLyogMUVoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VQQnVzOyAgICAgICAgICAgICAgICAgLyogMUZoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgLyogMjBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgLyogMjRoICovCit9IENPTkZJR19QQUdFX1NBU19FTkNMT1NVUkVfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX1NBU19FTkNMT1NVUkVfMCwKKyAgU2FzRW5jbG9zdXJlUGFnZTBfdCwgTVBJX1BPSU5URVIgcFNhc0VuY2xvc3VyZVBhZ2UwX3Q7CisKKyNkZWZpbmUgTVBJX1NBU0VOQ0xPU1VSRTBfUEFHRVZFUlNJT04gICAgICAgKDB4MDApCisKKy8qIHZhbHVlcyBmb3IgU0FTIEVuY2xvc3VyZSBQYWdlIDAgRmxhZ3MgZmllbGQgKi8KKyNkZWZpbmUgTVBJX1NBU19FTkNMUzBfRkxBR1NfU0VQX0JVU19JRF9WQUxJRCAgICAgICAoMHgwMDIwKQorI2RlZmluZSBNUElfU0FTX0VOQ0xTMF9GTEFHU19TVEFSVF9CVVNfSURfVkFMSUQgICAgICgweDAwMTApCisKKyNkZWZpbmUgTVBJX1NBU19FTkNMUzBfRkxBR1NfTU5HX01BU0sgICAgICAgICAgICAgICAoMHgwMDBGKQorI2RlZmluZSBNUElfU0FTX0VOQ0xTMF9GTEFHU19NTkdfVU5LTk9XTiAgICAgICAgICAgICgweDAwMDApCisjZGVmaW5lIE1QSV9TQVNfRU5DTFMwX0ZMQUdTX01OR19JT0NfU0VTICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgTVBJX1NBU19FTkNMUzBfRkxBR1NfTU5HX0lPQ19TR1BJTyAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBNUElfU0FTX0VOQ0xTMF9GTEFHU19NTkdfRVhQX1NHUElPICAgICAgICAgICgweDAwMDMpCisjZGVmaW5lIE1QSV9TQVNfRU5DTFMwX0ZMQUdTX01OR19TRVNfRU5DTE9TVVJFICAgICAgKDB4MDAwNCkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIExvZyBDb25maWcgUGFnZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogSG9zdCBjb2RlIChkcml2ZXJzLCBCSU9TLCB1dGlsaXRpZXMsIGV0Yy4pIHNob3VsZCBsZWF2ZSB0aGlzIGRlZmluZSBzZXQgdG8KKyAqIG9uZSBhbmQgY2hlY2sgTnVtTG9nRW50cmllcyBhdCBydW50aW1lLgorICovCisjaWZuZGVmIE1QSV9MT0dfMF9OVU1fTE9HX0VOVFJJRVMKKyNkZWZpbmUgTVBJX0xPR18wX05VTV9MT0dfRU5UUklFUyAgICAgICAgKDEpCisjZW5kaWYKKworI2RlZmluZSBNUElfTE9HXzBfTE9HX0RBVEFfTEVOR1RIICAgICAgICAoMjApCisKK3R5cGVkZWYgc3RydWN0IF9NUElfTE9HXzBfRU5UUlkKK3sKKyAgICBVNjQgICAgICAgICBXV0lEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBVMzIgICAgICAgICBUaW1lU3RhbXA7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVMTYgICAgICAgICBMb2dTZXF1ZW5jZTsgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVMTYgICAgICAgICBMb2dFbnRyeVF1YWxpZmllcjsgICAgICAgICAgICAgICAgICAvKiAxMmggKi8KKyAgICBVOCAgICAgICAgICBMb2dEYXRhW01QSV9MT0dfMF9MT0dfREFUQV9MRU5HVEhdOyAvKiAxNGggKi8KK30gTVBJX0xPR18wX0VOVFJZLCBNUElfUE9JTlRFUiBQVFJfTVBJX0xPR18wX0VOVFJZLAorICBNcGlMb2cwRW50cnlfdCwgTVBJX1BPSU5URVIgcE1waUxvZzBFbnRyeV90OworCisvKiB2YWx1ZXMgZm9yIExvZyBQYWdlIDAgTG9nRW50cnkgTG9nRW50cnlRdWFsaWZpZXIgZmllbGQgKi8KKyNkZWZpbmUgTVBJX0xPR18wX0VOVFJZX1FVQUxfRU5UUllfVU5VU0VEICAgICAgICAgICAoMHgwMDAwKQorI2RlZmluZSBNUElfTE9HXzBfRU5UUllfUVVBTF9QT1dFUl9PTl9SRVNFVCAgICAgICAgICgweDAwMDEpCisKK3R5cGVkZWYgc3RydWN0IF9DT05GSUdfUEFHRV9MT0dfMAoreworICAgIENPTkZJR19FWFRFTkRFRF9QQUdFX0hFQURFUiBIZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgIC8qIDBDaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgICAgICBOdW1Mb2dFbnRyaWVzOyAgICAgICAgICAgICAgLyogMTBoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgICAgICAvKiAxMmggKi8KKyAgICBNUElfTE9HXzBfRU5UUlkgICAgICAgICAgICAgTG9nRW50cnlbTVBJX0xPR18wX05VTV9MT0dfRU5UUklFU107IC8qIDE0aCAqLworfSBDT05GSUdfUEFHRV9MT0dfMCwgTVBJX1BPSU5URVIgUFRSX0NPTkZJR19QQUdFX0xPR18wLAorICBMb2dQYWdlMF90LCBNUElfUE9JTlRFUiBwTG9nUGFnZTBfdDsKKworI2RlZmluZSBNUElfTE9HXzBfUEFHRVZFUlNJT04gICAgICAgICAgICAgICAoMHgwMCkKKworCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2ZjLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfZmMuaAppbmRleCBlYTI2NmIyLi41MWE2YWViIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfZmMuaAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfZmMuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV9mYy5oCiAgKiAgICAgICAgICBUaXRsZTogIE1QSSBGaWJyZSBDaGFubmVsIG1lc3NhZ2VzIGFuZCBzdHJ1Y3R1cmVzCiAgKiAgQ3JlYXRpb24gRGF0ZTogIEp1bmUgMTIsIDIwMDAKICAqCi0gKiAgICBtcGlfZmMuaCBWZXJzaW9uOiAgMDEuMDUueHgKKyAqICAgIG1waV9mYy5oIFZlcnNpb246ICAwMS4wNS4wMQogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTM2LDYgKzM2LDkgQEAKICAqICAwOS0yOC0wMSAgMDEuMDIuMDIgIENoYW5nZSBuYW1lIG9mIHJlc2VydmVkIGZpZWxkIGluCiAgKiAgICAgICAgICAgICAgICAgICAgICBNU0dfTElOS19TRVJWSUNFX1JTUF9SRVBMWS4KICAqICAwNS0zMS0wMiAgMDEuMDIuMDMgIEFkZGluZyBBbGlhc0luZGV4IHRvIEZDIERpcmVjdCBBY2Nlc3MgcmVxdWVzdHMuCisgKiAgMDEtMTYtMDQgIDAxLjAyLjA0ICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9GQ19QUklNX1NFTkRfRkxBR1NfTUxfUkVTRVRfTElOSy4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS4zLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjUuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaGlzdG9yeS50eHQgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaGlzdG9yeS50eHQKaW5kZXggMGRlYjc3Mi4uYzllZGJlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2hpc3RvcnkudHh0CisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9oaXN0b3J5LnR4dApAQCAtMywyNSArMywyOCBAQAogIE1QSSBIZWFkZXIgRmlsZSBDaGFuZ2UgSGlzdG9yeQogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gQ29weXJpZ2h0IChjKSAyMDAwLTIwMDEgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgorIENvcHlyaWdodCAoYykgMjAwMC0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KIAogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEhlYWRlciBTZXQgUmVsZWFzZSBWZXJzaW9uOiAgICAwMS4wMS4xMAotIEhlYWRlciBTZXQgUmVsZWFzZSBEYXRlOiAgICAgICAwNC0wOS0wMQorIEhlYWRlciBTZXQgUmVsZWFzZSBWZXJzaW9uOiAgICAwMS4wNS4wOQorIEhlYWRlciBTZXQgUmVsZWFzZSBEYXRlOiAgICAgICAwMy0xMS0wNQogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgRmlsZW5hbWUgICAgICAgICAgICAgICBDdXJyZW50IHZlcnNpb24gICAgIFByaW9yIHZlcnNpb24KICAtLS0tLS0tLS0tICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSAgICAgLS0tLS0tLS0tLS0tLQotIG1waS5oICAgICAgICAgICAgICAgICAgMDEuMDEuMDcgICAgICAgICAgICAwMS4wMS4wNgotIG1waV9pb2MuaCAgICAgICAgICAgICAgMDEuMDEuMDcgICAgICAgICAgICAwMS4wMS4wNgotIG1waV9jbmZnLmggICAgICAgICAgICAgMDEuMDEuMTEgICAgICAgICAgICAwMS4wMS4xMAotIG1waV9pbml0LmggICAgICAgICAgICAgMDEuMDEuMDUgICAgICAgICAgICAwMS4wMS4wNAotIG1waV90YXJnLmggICAgICAgICAgICAgMDEuMDEuMDQgICAgICAgICAgICAwMS4wMS4wNAotIG1waV9mYy5oICAgICAgICAgICAgICAgMDEuMDEuMDcgICAgICAgICAgICAwMS4wMS4wNgotIG1waV9sYW4uaCAgICAgICAgICAgICAgMDEuMDEuMDMgICAgICAgICAgICAwMS4wMS4wMwotIG1waV9yYWlkLmggICAgICAgICAgICAgMDEuMDEuMDIgICAgICAgICAgICAwMS4wMS4wMgotIG1waV90eXBlLmggICAgICAgICAgICAgMDEuMDEuMDIgICAgICAgICAgICAwMS4wMS4wMgotIG1waV9oaXN0b3J5LnR4dCAgICAgICAgMDEuMDEuMDkgICAgICAgICAgICAwMS4wMS4wOQorIG1waS5oICAgICAgICAgICAgICAgICAgMDEuMDUuMDcgICAgICAgICAgICAwMS4wNS4wNgorIG1waV9pb2MuaCAgICAgICAgICAgICAgMDEuMDUuMDggICAgICAgICAgICAwMS4wNS4wNworIG1waV9jbmZnLmggICAgICAgICAgICAgMDEuMDUuMDggICAgICAgICAgICAwMS4wNS4wNworIG1waV9pbml0LmggICAgICAgICAgICAgMDEuMDUuMDQgICAgICAgICAgICAwMS4wNS4wMworIG1waV90YXJnLmggICAgICAgICAgICAgMDEuMDUuMDQgICAgICAgICAgICAwMS4wNS4wMworIG1waV9mYy5oICAgICAgICAgICAgICAgMDEuMDUuMDEgICAgICAgICAgICAwMS4wNS4wMQorIG1waV9sYW4uaCAgICAgICAgICAgICAgMDEuMDUuMDEgICAgICAgICAgICAwMS4wNS4wMQorIG1waV9yYWlkLmggICAgICAgICAgICAgMDEuMDUuMDIgICAgICAgICAgICAwMS4wNS4wMgorIG1waV90b29sLmggICAgICAgICAgICAgMDEuMDUuMDMgICAgICAgICAgICAwMS4wNS4wMworIG1waV9pbmIuaCAgICAgICAgICAgICAgMDEuMDUuMDEgICAgICAgICAgICAwMS4wNS4wMQorIG1waV9zYXMuaCAgICAgICAgICAgICAgMDEuMDUuMDEgICAgICAgICAgICAwMS4wNS4wMQorIG1waV90eXBlLmggICAgICAgICAgICAgMDEuMDUuMDEgICAgICAgICAgICAwMS4wNS4wMQorIG1waV9oaXN0b3J5LnR4dCAgICAgICAgMDEuMDUuMDkgICAgICAgICAgICAwMS4wNS4wOAogCiAKICAqICBEYXRlICAgICAgVmVyc2lvbiAgIERlc2NyaXB0aW9uCkBAIC01Myw2ICs1NiwzOCBAQAogICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZnVuY3Rpb24gY29kZXMgZm9yIFJBSUQuCiAgKiAgMDQtMDktMDEgIDAxLjAxLjA3ICBBZGRlZCBhbHRlcm5hdGUgZGVmaW5lIGZvciBNUElfRE9PUkJFTExfQUNUSVZFLAogICogICAgICAgICAgICAgICAgICAgICAgTVBJX0RPT1JCRUxMX1VTRUQsIHRvIGJldHRlciBtYXRjaCB0aGUgc3BlYy4KKyAqICAwOC0wOC0wMSAgMDEuMDIuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIHYxLjIgd29yay4KKyAqICAgICAgICAgICAgICAgICAgICAgIENoYW5nZWQgTVBJX1ZFUlNJT05fTUlOT1IgZnJvbSAweDAxIHRvIDB4MDIuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkZWZpbmUgTVBJX0ZVTkNUSU9OX1RPT0xCT1guCisgKiAgMDktMjgtMDEgIDAxLjAyLjAyICBOZXcgZnVuY3Rpb24gY29kZSBNUElfU0NTSV9FTkNMT1NVUkVfUFJPQ0VTU09SLgorICogIDExLTAxLTAxICAwMS4wMi4wMyAgQ2hhbmdlZCBuYW1lIHRvIE1QSV9GVU5DVElPTl9TQ1NJX0VOQ0xPU1VSRV9QUk9DRVNTT1IuCisgKiAgMDMtMTQtMDIgIDAxLjAyLjA0ICBBZGRlZCBNUElfSEVBREVSX1ZFUlNJT05fIGRlZmluZXMuCisgKiAgMDUtMzEtMDIgIDAxLjAyLjA1ICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMDctMTItMDIgIDAxLjAyLjA2ICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9GVU5DVElPTl9NQUlMQk9YLgorICogIDA5LTE2LTAyICAwMS4wMi4wNyAgQnVtcGVkIHZhbHVlIGZvciBNUElfSEVBREVSX1ZFUlNJT05fVU5JVC4KKyAqICAxMS0xNS0wMiAgMDEuMDIuMDggIEFkZGVkIGRlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9JTlZBTElEX0lPX0lOREVYIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgb2Jzb2xldGVkIGRlZmluZSBNUElfSU9DU1RBVFVTX1RBUkdFVF9JTlZBTElEX0lPQ0lOREVYLgorICogIDA0LTAxLTAzICAwMS4wMi4wOSAgTmV3IElPQ1N0YXR1cyBjb2RlOiBNUElfSU9DU1RBVFVTX0ZDX0VYQ0hBTkdFX0NBTkNFTEVECisgKiAgMDYtMjYtMDMgIDAxLjAyLjEwICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQgdmFsdWUuCisgKiAgMDEtMTYtMDQgIDAxLjAyLjExICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9JT0NMT0dJTkZPX1RZUEVfU0hJRlQuCisgKiAgMDQtMjktMDQgIDAxLjAyLjEyICBBZGRlZCBmdW5jdGlvbiBjb2RlcyBmb3IgTVBJX0ZVTkNUSU9OX0RJQUdfQlVGRkVSX1BPU1QKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBNUElfRlVOQ1RJT05fRElBR19SRUxFQVNFLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgTVBJX0lPQ1NUQVRVU19ESUFHTk9TVElDX1JFTEVBU0VEIGRlZmluZS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEJ1bXBlZCBNUElfSEVBREVSX1ZFUlNJT05fVU5JVCB2YWx1ZS4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIEJ1bXBlZCBNUElfVkVSU0lPTl9NSU5PUiBmb3IgTVBJIHYxLjMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBjb2RlcyBmb3IgSW5iYW5kLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgQWRkZWQgZGVmaW5lcyBmb3IgSG9zdCBCdWZmZXIgQWNjZXNzIENvbnRyb2wgZG9vcmJlbGwuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkZWZpbmUgZm9yIG9mZnNldCBvZiBIaWdoIFByaW9yaXR5IFJlcXVlc3QgUXVldWUuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgZnVuY3Rpb24gY29kZXMgYW5kIG5ldyBJT0NTdGF0dXMgY29kZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBhIElPQ0xvZ0luZm8gdHlwZSBvZiBTQVMuCisgKiAgMTItMDctMDQgIDAxLjA1LjAyICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMTItMDktMDQgIDAxLjA1LjAzICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMDEtMTUtMDUgIDAxLjA1LjA0ICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMDItMDktMDUgIDAxLjA1LjA1ICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMDItMjItMDUgIDAxLjA1LjA2ICBCdW1wZWQgTVBJX0hFQURFUl9WRVJTSU9OX1VOSVQuCisgKiAgMDMtMTEtMDUgIDAxLjA1LjA3ICBSZW1vdmVkIGZ1bmN0aW9uIGNvZGVzIGZvciBTQ1NJIElPIDMyIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0QXNzaXN0RXh0ZW5kZWQgcmVxdWVzdHMuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVkIEVFRFAgSU9DU3RhdHVzIGNvZGVzLgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIG1waV9pb2MuaApAQCAtODEsNiArMTE2LDQ5IEBACiAgKiAgMDMtMjctMDEgIDAxLjAxLjA2ICBBZGRlZCBkZWZpbmVzIGZvciBQcm9kdWN0SWQgZmllbGQgb2YgTVBJX0ZXX0hFQURFUi4KICAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHN0cnVjdHVyZSBvZmZzZXQgY29tbWVudHMuCiAgKiAgMDQtMDktMDEgIDAxLjAxLjA3ICBBZGRlZCBzdHJ1Y3R1cmUgRVZFTlRfREFUQV9FVkVOVF9DSEFOR0UuCisgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgICAgICAgICAgICAgICAgICAgICBOZXcgZm9ybWF0IGZvciBGV1ZlcnNpb24gYW5kIFByb2R1Y3RJZCBpbgorICogICAgICAgICAgICAgICAgICAgICAgTVNHX0lPQ19GQUNUU19SRVBMWSBhbmQgTVBJX0ZXX0hFQURFUi4KKyAqICAwOC0zMS0wMSAgMDEuMDIuMDIgIEFkZGRlZCBldmVudCBNUElfRVZFTlRfU0NTSV9ERVZJQ0VfU1RBVFVTX0NIQU5HRSBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWQgc3RydWN0dXJlIGFuZCBkZWZpbmVzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZXZlbnQgTVBJX0VWRU5UX09OX0JVU19USU1FUl9FWFBJUkVELgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgTVBJX0lPQ0lOSVRfRkxBR1NfRElTQ0FSRF9GV19JTUFHRS4KKyAqICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VkIGEgcmVzZXJ2ZWQgZmllbGQgaW4gTVNHX0lPQ19GQUNUU19SRVBMWSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICBJT0NFeGNlcHRpb25zIGFuZCBjaGFuZ2VkIERhdGFJbWFnZVNpemUgdG8gcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBNUElfRldfRE9XTkxPQURfSVRZUEVfTlZTVE9SRV9EQVRBIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgTVBJX0ZXX1VQTE9BRF9JVFlQRV9OVkRBVEEuCisgKiAgMDktMjgtMDEgIDAxLjAyLjAzICBNb2RpZmllZCBFdmVudCBEYXRhIGZvciBJbnRlZ3JhdGVkIFJBSUQuCisgKiAgMTEtMDEtMDEgIDAxLjAyLjA0ICBBZGRlZCBkZWZpbmVzIGZvciBNUElfRVhUX0lNQUdFX0hFQURFUiBJbWFnZVR5cGUgZmllbGQuCisgKiAgMDMtMTQtMDIgIDAxLjAyLjA1ICBBZGRlZCBIZWFkZXJWZXJzaW9uIGZpZWxkIHRvIE1TR19JT0NfRkFDVFNfUkVQTFkuCisgKiAgMDUtMzEtMDIgIDAxLjAyLjA2ICBBZGRlZCBkZWZpbmUgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICBNUElfSU9DRkFDVFNfRVhDRVBUX1JBSURfQ09ORklHX0lOVkFMSUQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBBbGlhc0luZGV4IHRvIEVWRU5UX0RBVEFfTE9HT1VUIHN0cnVjdHVyZS4KKyAqICAwNC0wMS0wMyAgMDEuMDIuMDcgIEFkZGVkIGRlZmluZXMgZm9yIE1QSV9GV19IRUFERVJfU0lHTkFUVVJFXy4KKyAqICAwNi0yNi0wMyAgMDEuMDIuMDggIEFkZGVkIG5ldyB2YWx1ZXMgdG8gdGhlIHByb2R1Y3QgZmFtaWx5IGRlZmluZXMuCisgKiAgMDQtMjktMDQgIDAxLjAyLjA5ICBBZGRlZCBJT0NDYXBhYmlsaXRpZXMgZmllbGQgdG8gTVNHX0lPQ19GQUNUU19SRVBMWSBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIGFkZGVkIHJlbGF0ZWQgZGVmaW5lcy4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS4zLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgQWRkZWQgZm91ciBuZXcgZmllbGRzIHRvIE1TR19JT0NfSU5JVC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHRocmVlIG5ldyBmaWVsZHMgdG8gTVNHX0lPQ19GQUNUU19SRVBMWS4KKyAqICAgICAgICAgICAgICAgICAgICAgIERlZmluZWQgZm91ciBuZXcgYml0cyBmb3IgdGhlIElPQ0NhcGFiaWxpdGllcyBmaWVsZCBvZgorICogICAgICAgICAgICAgICAgICAgICAgdGhlIElPQ0ZhY3RzIHJlcGx5LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdHdvIG5ldyBQb3J0VHlwZXMgZm9yIHRoZSBQb3J0RmFjdHMgcmVwbHkuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBzaXggbmV3IGV2ZW50cyBhbG9uZyB3aXRoIHRoZWlyIEV2ZW50RGF0YQorICogICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGEgbmV3IE1zZ0ZsYWcgdG8gdGhlIEZ3RG93bmxvYWQgcmVxdWVzdCB0bworICogICAgICAgICAgICAgICAgICAgICAgaW5kaWNhdGUgbGFzdCBzZWdtZW50LgorICogICAgICAgICAgICAgICAgICAgICAgRGVmaW5lZCBhIG5ldyBpbWFnZSB0eXBlIG9mIGJvb3QgbG9hZGVyLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgRlcgZmFtaWx5IGNvZGVzIGZvciBTQVMgcHJvZHVjdCBmYW1pbGllcy4KKyAqICAxMC0wNS0wNCAgMDEuMDUuMDIgIEFkZGVkIFJlcGx5Rmlmb0hvc3RTaWduYWxpbmdBZGRyIGZpZWxkIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICBNU0dfSU9DX0ZBQ1RTX1JFUExZLgorICogIDEyLTA3LTA0ICAwMS4wNS4wMyAgQWRkZWQgbW9yZSBkZWZpbmVzIGZvciBTQVMgRGlzY292ZXJ5IEVycm9yIGV2ZW50LgorICogIDEyLTA5LTA0ICAwMS4wNS4wNCAgQWRkZWQgVW5zdXBwb3J0ZWQgZGV2aWNlIHRvIFNBUyBEZXZpY2UgZXZlbnQuCisgKiAgMDEtMTUtMDUgIDAxLjA1LjA1ICBBZGRlZCBldmVudCBkYXRhIGZvciBTQVMgU0VTIEV2ZW50LgorICogIDAyLTA5LTA1ICAwMS4wNS4wNiAgQWRkZWQgTVBJX0ZXX1VQTE9BRF9JVFlQRV9GV19CQUNLVVAgZGVmaW5lLgorICogIDAyLTIyLTA1ICAwMS4wNS4wNyAgQWRkZWQgSG9zdCBQYWdlIEJ1ZmZlciBQZXJzaXN0ZW50IGZsYWcgdG8gSU9DIEZhY3RzCisgKiAgICAgICAgICAgICAgICAgICAgICBSZXBseSBhbmQgSU9DIEluaXQgUmVxdWVzdC4KKyAqICAwMy0xMS0wNSAgMDEuMDUuMDggIEFkZGVkIGZhbWlseSBjb2RlIGZvciAxMDY4RSBmYW1pbHkuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVkIElPQ0ZhY3RzIFJlcGx5IEVFRFAgQ2FwYWJpbGl0eSBiaXQuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogbXBpX2NuZmcuaApAQCAtMTQyLDYgKzIyMCwxNjYgQEAKICAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIElPIFVuaXQgUGFnZSAzLgogICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgZGVmaW5lcyBmb3IgU2NzaSBQb3J0IFBhZ2UgMi4KICAqICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWVkIFJBSUQgVm9sdW1lIFBhZ2VzLgorICogIDA4LTA4LTAxICAwMS4wMi4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgdjEuMiB3b3JrLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgU2VwSUQgYW5kIFNlcEJ1cyB0byBSVlAyIElNUGh5c2ljYWxEaXNrIHN0cnVjdC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZXMgZm9yIHRoZSBTRVAgYml0cyBpbiBSVlAyIFZvbHVtZVNldHRpbmdzLgorICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgdGhlIERldmljZVNldHRpbmdzIGZpZWxkIGluIFJWUDIgdG8gdXNlIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgcHJvcGVyIHN0cnVjdHVyZS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZXMgZm9yIFNFUywgU0FGLVRFLCBhbmQgY3Jvc3MgY2hhbm5lbCBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIElPQ1BhZ2UyIENhcGFiaWxpdGllc0ZsYWdzLgorICogICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlZCBkZWZpbmUgZm9yIE1QSV9JT1VOSVRQQUdFMl9GTEFHU19SQUlEX0RJU0FCTEUuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVkIGRlZmluZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9TQ1NJUE9SVFBBR0UyX1BPUlRfRkxBR1NfUEFSSVRZX0VOQUJMRS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IgTVBJX0NPTkZJR19QQUdFQVRUUl9ST19QRVJTSVNURU5ULgorICogIDA4LTI5LTAxIDAxLjAyLjAyICAgRml4ZWQgdmFsdWUgZm9yIE1QSV9NQU5VRkFDVFBBR0VfREVWSURfNTNDMTAzNS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZXMgZm9yIE1QSV9GQ1BPUlRQQUdFMV9GTEFHU19IQVJEX0FMUEFfT05MWQorICogICAgICAgICAgICAgICAgICAgICAgYW5kIE1QSV9GQ1BPUlRQQUdFMV9GTEFHU19JTU1FRElBVEVfRVJST1JfUkVQTFkuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVkIE1QSV9TQ1NJUE9SVFBBR0UwX0NBUF9QQUNJTkdfVFJBTlNGRVJTLAorICogICAgICAgICAgICAgICAgICAgICAgTVBJX1NDU0lERVZQQUdFMF9OUF9QQUNJTkdfVFJBTlNGRVJTLCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9TQ1NJREVWUEFHRTFfUlBfUEFDSU5HX1RSQU5TRkVSUywgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBNUElfU0NTSURFVlBBR0UxX0NPTkZfUFBSX0FMTE9XRUQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkZWZpbmVzIGZvciBNUElfU0NTSURFVlBBR0UxX0NPTkZfV0RUUl9ESVNBTExPV0VECisgKiAgICAgICAgICAgICAgICAgICAgICBhbmQgTVBJX1NDU0lERVZQQUdFMV9DT05GX1NEVFJfRElTQUxMT1dFRC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE9uQnVzVGltZXJWYWx1ZSB0byBDT05GSUdfUEFHRV9TQ1NJX1BPUlRfMS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHJlamVjdGVkIGJpdHMgdG8gU0NTSSBEZXZpY2UgUGFnZSAwIEluZm9ybWF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgSW5jcmVhc2VkIHNpemUgb2YgQUxQQSBhcnJheSBpbiBGQyBQb3J0IFBhZ2UgMiBieSBvbmUKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCByZW1vdmVkIGEgb25lIGJ5dGUgcmVzZXJ2ZWQgZmllbGQuCisgKiAgMDktMjgtMDEgMDEuMDIuMDMgICBTd2FwcGVkIE5lZ1dpcmVTcGVlZExvdyBhbmQgTmVnV2lyZVNwZWVkTG93IGluCisgKiAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfUEFHRV9MQU5fMSB0byBtYXRjaCBwcmVmZXJyZWQgNjQtYml0IG9yZGVyaW5nLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc3RydWN0dXJlcyBmb3IgTWFudWZhY3R1cmluZyBQYWdlIDQsIElPIFVuaXQKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMywgSU9DIFBhZ2UgMywgSU9DIFBhZ2UgNCwgUkFJRCBWb2x1bWUgUGFnZSAwLCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIFJBSUQgUGh5c0Rpc2sgUGFnZSAwLgorICogIDEwLTA0LTAxIDAxLjAyLjA0ICAgQWRkZWQgZGVmaW5lIGZvciBNUElfQ09ORklHX1BBR0VUWVBFX1JBSURfUEhZU0RJU0suCisgKiAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllZCBzb21lIG9mIHRoZSBuZXcgZGVmaW5lcyB0byBtYWtlIHRoZW0gMzIKKyAqICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciB1bmlxdWUuCisgKiAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllZCBob3cgdmFyaWFibGUgbGVuZ3RoIHBhZ2VzIChhcnJheXMpIGFyZSBkZWZpbmVkLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZ2VuZXJpYyBkZWZpbmVzIGZvciBob3Qgc3BhcmUgcG9vbHMgYW5kIFJBSUQKKyAqICAgICAgICAgICAgICAgICAgICAgIHZvbHVtZSB0eXBlcy4KKyAqICAxMS0wMS0wMSAwMS4wMi4wNSAgIEFkZGVkIGRlZmluZSBmb3IgTVBJX0lPVU5JVFBBR0UxX0RJU0FCTEVfSVIuCisgKiAgMDMtMTQtMDIgMDEuMDIuMDYgICBBZGRlZCBQQ0lTbG90TnVtIGZpZWxkIHRvIENPTkZJR19QQUdFX0lPQ18xIGFsb25nIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWQgZGVmaW5lLCBhbmQgYnVtcGVkIHRoZSBwYWdlIHZlcnNpb24gZGVmaW5lLgorICogIDA1LTMxLTAyIDAxLjAyLjA3ICAgQWRkZWQgYSBGbGFncyBmaWVsZCB0byBDT05GSUdfUEFHRV9JT0NfMl9SQUlEX1ZPTCBpbiBhCisgKiAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCBieXRlIGFuZCBhZGRlZCBhIGRlZmluZS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9SQUlEVk9MMF9TVEFUVVNfRkxBR19WT0xVTUVfSU5BQ1RJVkUuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgY29uZmlnIHBhZ2U6IENPTkZJR19QQUdFX0lPQ181LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgTWF4QWxpYXNlcywgTWF4SGFyZEFsaWFzZXMsIGFuZCBOdW1DdXJyZW50QWxpYXNlcworICogICAgICAgICAgICAgICAgICAgICAgZmllbGRzIHRvIENPTkZJR19QQUdFX0ZDX1BPUlRfMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIEFsdENvbm5lY3RvciBhbmQgTnVtUmVxdWVzdGVkQWxpYXNlcyBmaWVsZHMgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfMS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBjb25maWcgcGFnZTogQ09ORklHX1BBR0VfRkNfUE9SVF8xMC4KKyAqICAwNy0xMi0wMiAwMS4wMi4wOCAgIEFkZGVkIG1vcmUgTVBJX01BTlVGQUNUUEFHRV9ERVZJRF8gZGVmaW5lcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGFkZGl0aW9uYWwgTVBJX1NDU0lERVZQQUdFMF9OUF8gZGVmaW5lcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG1vcmUgTVBJX1NDU0lERVZQQUdFMV9SUF8gZGVmaW5lcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9TQ1NJREVWUEFHRTFfQ09ORl9FWFRFTkRFRF9QQVJBTVNfRU5BQkxFLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbmV3IGNvbmZpZyBwYWdlOiBDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8zLgorICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgTVBJX0ZDUE9SVFBBR0U1X0ZMQUdTXyBkZWZpbmVzLgorICogIDA5LTE2LTAyIDAxLjAyLjA5ICAgQWRkZWQgTVBJX1NDU0lERVZQQUdFMV9DT05GX0ZPUkNFX1BQUl9NU0cgZGVmaW5lLgorICogIDExLTE1LTAyIDAxLjAyLjEwICAgQWRkZWQgQ29ubmVjdGVkSUQgZGVmaW5lcyBmb3IgQ09ORklHX1BBR0VfU0NTSV9QT1JUXzAuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBtb3JlIEZsYWdzIGRlZmluZXMgZm9yIENPTkZJR19QQUdFX0ZDX1BPUlRfMS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG1vcmUgRmxhZ3MgZGVmaW5lcyBmb3IgQ09ORklHX1BBR0VfRkNfREVWSUNFXzAuCisgKiAgMDQtMDEtMDMgMDEuMDIuMTEgICBBZGRlZCBSUl9UT1YgZmllbGQgYW5kIGFkZGl0aW9uYWwgRmxhZ3MgZGVmaW5lcyBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfMS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBNUElfRkNQT1JUUEFHRTVfRkxBR1NfRElTQUJMRSB0byBkaXNhYmxlCisgKiAgICAgICAgICAgICAgICAgICAgICBhbiBhbGlhcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG1vcmUgZGV2aWNlIGlkIGRlZmluZXMuCisgKiAgMDYtMjYtMDMgMDEuMDIuMTIgICBBZGRlZCBNUElfSU9VTklUUEFHRTFfSVJfVVNFX1NUQVRJQ19WT0xVTUVfSUQgZGVmaW5lLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgVGFyZ2V0Q29uZmlnIGFuZCBJRENvbmZpZyBmaWVsZHMgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QQUdFX1NDU0lfUE9SVF8xLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbW9yZSBQb3J0RmxhZ3MgZGVmaW5lcyBmb3IgQ09ORklHX1BBR0VfU0NTSV9QT1JUXzIKKyAqICAgICAgICAgICAgICAgICAgICAgIHRvIGNvbnRyb2wgRFYuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBtb3JlIEZsYWdzIGRlZmluZXMgZm9yIENPTkZJR19QQUdFX0ZDX1BPUlRfMS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEluIENPTkZJR19QQUdFX0ZDX0RFVklDRV8wLCByZXBsYWNlZCBSZXNlcnZlZDEgZmllbGQKKyAqICAgICAgICAgICAgICAgICAgICAgIHdpdGggQURJU0NIYXJkQUxQQS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE1QSV9GQ19ERVZJQ0VfUEFHRTBfUFJPVF9GQ1BfUkVUUlkgZGVmaW5lLgorICogIDAxLTE2LTA0ICAwMS4wMi4xMyAgQWRkZWQgSW5pdGlhdG9yRGV2aWNlVGltZW91dCBhbmQgSW5pdGlhdG9ySW9QZW5kVGltZW91dAorICogICAgICAgICAgICAgICAgICAgICAgZmllbGRzIGFuZCByZWxhdGVkIGRlZmluZXMgdG8gQ09ORklHX1BBR0VfRkNfUE9SVF8xLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZGVmaW5lIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVBJX0ZDUE9SVFBBR0UxX0ZMQUdTX1NPRlRfQUxQQV9GQUxMQkFDSy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBmaWVsZHMgdG8gdGhlIHN1YnN0cnVjdHVyZXMgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QQUdFX0ZDX1BPUlRfMTAuCisgKiAgMDQtMjktMDQgMDEuMDIuMTQgICBBZGRlZCBkZWZpbmUgZm9yIElEUCBiaXQgZm9yIENPTkZJR19QQUdFX1NDU0lfUE9SVF8wLAorICogICAgICAgICAgICAgICAgICAgICAgQ09ORklHX1BBR0VfU0NTSV9ERVZJQ0VfMCwgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfUEFHRV9TQ1NJX0RFVklDRV8xLiBBbHNvIGJ1bXBlZCBQYWdlIFZlcnNpb24gZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICB0aGVzZSBwYWdlcy4KKyAqICAwNS0xMS0wNCAwMS4wMy4wMSAgIEFkZGVkIHN0cnVjdHVyZSBmb3IgQ09ORklHX1BBR0VfSU5CQU5EXzAuCisgKiAgMDgtMTktMDQgMDEuMDUuMDEgICBNb2RpZmllZCBNU0dfQ09ORklHIHJlcXVlc3QgdG8gc3VwcG9ydCBleHRlbmRlZCBjb25maWcKKyAqICAgICAgICAgICAgICAgICAgICAgIHBhZ2VzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgYSBuZXcgc3RydWN0dXJlIGZvciBleHRlbmRlZCBjb25maWcgcGFnZSBoZWFkZXIuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgZXh0ZW5kZWQgY29uZmlnIHBhZ2VzIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgU0FTIElPIFVuaXQsIFNBUyBFeHBhbmRlciwgU0FTIERldmljZSwgYW5kIFNBUyBQSFkuCisgKiAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlZCBhIHJlc2VydmVkIGJ5dGUgaW4gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR180CisgKiAgICAgICAgICAgICAgICAgICAgICB0byBhZGQgYSBGbGFncyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIFR3byBuZXcgTWFudWZhY3R1cmluZyBjb25maWcgcGFnZXMgKDUgYW5kIDYpLgorICogICAgICAgICAgICAgICAgICAgICAgVHdvIG5ldyBiaXRzIGRlZmluZWQgZm9yIElPIFVuaXQgUGFnZSAxIEZsYWdzIGZpZWxkLgorICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgQ09ORklHX1BBR0VfSU9fVU5JVF8yIHRvIGFkZCB0aHJlZSBuZXcgZmllbGRzCisgKiAgICAgICAgICAgICAgICAgICAgICB0byBzcGVjaWZ5IHRoZSBCSU9TIGJvb3QgZGV2aWNlLgorICogICAgICAgICAgICAgICAgICAgICAgRm91ciBuZXcgRmxhZ3MgYml0cyBkZWZpbmVkIGZvciBJTyBVbml0IFBhZ2UgMi4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIElPIFVuaXQgUGFnZSA0LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgRUVEUCBGbGFncyBzZXR0aW5ncyB0byBJT0MgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbmV3IEJJT1MgUGFnZSAxIGNvbmZpZyBwYWdlLgorICogIDEwLTA1LTA0IDAxLjA1LjAyICAgQWRkZWQgZGVmaW5lIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVBJX0lPQ1BBR0UxX0lOSVRJQVRPUl9DT05URVhUX1JFUExZX0RJU0FCTEUuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgRmxhZ3MgZmllbGQgdG8gQ09ORklHX1BBR0VfTUFOVUZBQ1RVUklOR181IGFuZAorICogICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBkZWZpbmVzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbW9yZSBkZWZpbmVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDAKKyAqICAgICAgICAgICAgICAgICAgICAgIERpc2NvdmVyeVN0YXR1cyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IgTVBJX1NBU19JT1VOSVQwX0RTX1NVQlRSQUNUSVZFX0xJTksKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBNUElfU0FTX0lPVU5JVDBfRFNfVEFCTEVfTElOSy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZXMgZm9yIFBoeXNpY2FsIE1hcHBpbmcgTW9kZXMgdG8gU0FTIElPIFVuaXQKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMi4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGRlZmluZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9TQVNfREVWSUNFMF9GTEFHU19QT1JUX1NFTEVDVE9SX0FUVEFDSC4KKyAqICAxMC0yNy0wNCAwMS4wNS4wMyAgIEFkZGVkIGRlZmluZXMgZm9yIG5ldyBTQVMgUEhZIHBhZ2UgYWRkcmVzc2luZyBtb2RlLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgZGVmaW5lcyBmb3IgTWF4VGFyZ2V0U3BpblVwIHRvIEJJT1MgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgNSBuZXcgQ29udHJvbEZsYWdzIGRlZmluZXMgZm9yIFNBUyBJTyBVbml0CisgKiAgICAgICAgICAgICAgICAgICAgICBQYWdlIDEuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBNYXhOdW1QaHlzaWNhbE1hcHBlZElEcyBmaWVsZCB0byBTQVMgSU8gVW5pdAorICogICAgICAgICAgICAgICAgICAgICAgUGFnZSAyLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQWNjZXNzU3RhdHVzIGZpZWxkIHRvIFNBUyBEZXZpY2UgUGFnZSAwIGFuZCBhZGRlZAorICogICAgICAgICAgICAgICAgICAgICAgbmV3IEZsYWdzIGJpdHMgZm9yIHN1cHBvcnRlZCBTQVRBIGZlYXR1cmVzLgorICogIDEyLTA3LTA0ICAwMS4wNS4wNCAgQWRkZWQgY29uZmlnIHBhZ2Ugc3RydWN0dXJlcyBmb3IgQklPUyBQYWdlIDIsIFJBSUQKKyAqICAgICAgICAgICAgICAgICAgICAgIFZvbHVtZSBQYWdlIDEsIGFuZCBSQUlEIFBoeXNpY2FsIERpc2sgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWQgSU8gVW5pdCBQYWdlIDEgQm9vdFRhcmdldElELEJvb3RCdXMsIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgQm9vdEFkYXB0ZXJOdW0gd2l0aCByZXNlcnZlZCBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIERhdGFTY3J1YlJhdGUgYW5kIFJlc3luY1JhdGUgdG8gUkFJRCBWb2x1bWUKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE1QSV9TQVNfSU9VTklUMl9GTEFHU19SRVNFUlZFX0lEXzBfRk9SX0JPT1QKKyAqICAgICAgICAgICAgICAgICAgICAgIGRlZmluZS4KKyAqICAxMi0wOS0wNCAgMDEuMDUuMDUgIEFkZGVkIFRhcmdldCBNb2RlIExhcmdlIENEQiBFbmFibGUgdG8gRkMgUG9ydCBQYWdlIDEKKyAqICAgICAgICAgICAgICAgICAgICAgIEZsYWdzIGZpZWxkLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQXV0byBQb3J0IENvbmZpZyBmbGFnIGRlZmluZSBmb3IgU0FTIElPVU5JVAorICogICAgICAgICAgICAgICAgICAgICAgUGFnZSAxIENvbnRyb2xGbGFncy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIERpc2FibGVkIGJhZCBQaHkgZGVmaW5lIHRvIEV4cGFuZGVyIFBhZ2UgMQorICogICAgICAgICAgICAgICAgICAgICAgRGlzY292ZXJ5IEluZm8gZmllbGQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBTQVMvU0FUQSBkZXZpY2Ugc3VwcG9ydCB0byBTQVMgSU9Vbml0IFBhZ2UgMQorICogICAgICAgICAgICAgICAgICAgICAgQ29udHJvbEZsYWdzLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgVW5zdXBwb3J0ZWQgZGV2aWNlIHRvIFNBUyBEZXYgUGFnZSAwIEZsYWdzIGZpZWxkCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkaXNhYmxlIHVzZSBTQVRBIEhhc2ggQWRkcmVzcyBmb3IgU0FTIElPVU5JVAorICogICAgICAgICAgICAgICAgICAgICAgcGFnZSAxIGluIENvbnRyb2xGaWVsZHMuCisgKiAgMDEtMTUtMDUgIDAxLjA1LjA2ICBBZGRlZCBkZWZhdWx0cyBmb3IgZGF0YSBzY3J1YiByYXRlIGFuZCByZXN5bmMgcmF0ZSB0bworICogICAgICAgICAgICAgICAgICAgICAgTWFudWZhY3R1cmluZyBQYWdlIDQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgZGVmaW5lcyBmb3IgQklPUyBQYWdlIDEgSU9DU2V0dGluZ3MgZmllbGQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBFeHREaXNrSWRlbnRpZmllciBmaWVsZCB0byBSQUlEIFBoeXNpY2FsIERpc2sKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBkZWZpbmVzIGZvciBTQVMgSU8gVW5pdCBQYWdlIDEgQ29udHJvbEZsYWdzCisgKiAgICAgICAgICAgICAgICAgICAgICBhbmQgdG8gU0FTIERldmljZSBQYWdlIDAgRmxhZ3MgdG8gY29udHJvbCBTQVRBIGRldmljZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBkZWZpbmVzIGFuZCBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3IExvZyBQYWdlIDAsIGEKKyAqICAgICAgICAgICAgICAgICAgICAgIG5ldyB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gcGFnZS4KKyAqICAwMi0wOS0wNSAgMDEuMDUuMDcgIEFkZGVkIEluYWN0aXZlU3RhdHVzIGZpZWxkIHRvIFJBSUQgVm9sdW1lIFBhZ2UgMC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIFdXSUQgZmllbGQgdG8gUkFJRCBWb2x1bWUgUGFnZSAxLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgUGh5c2ljYWxQb3J0IGZpZWxkIHRvIFNBUyBFeHBhbmRlciBwYWdlcyAwIGFuZCAxLgorICogIDAzLTExLTA1ICAwMS4wNS4wOCAgUmVtb3ZlZCB0aGUgRUVEUCBmbGFncyBmcm9tIElPQyBQYWdlIDEuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBFbmNsb3N1cmUvU2xvdCBib290IGRldmljZSBmb3JtYXQgdG8gQklPUyBQYWdlIDIuCisgKiAgICAgICAgICAgICAgICAgICAgICBOZXcgc3RhdHVzIHZhbHVlIGZvciBSQUlEIFZvbHVtZSBQYWdlIDAgVm9sdW1lU3RhdHVzCisgKiAgICAgICAgICAgICAgICAgICAgICAoVm9sdW1lU3RhdGUgc3ViZmllbGQpLgorICogICAgICAgICAgICAgICAgICAgICAgTmV3IHZhbHVlIGZvciBSQUlEIFBoeXNpY2FsIFBhZ2UgMCBJbmFjdGl2ZVN0YXR1cy4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIEluYWN0aXZlIFZvbHVtZSBNZW1iZXIgZmxhZyBSQUlEIFBoeXNpY2FsIERpc2sKKyAqICAgICAgICAgICAgICAgICAgICAgIFBhZ2UgMCBQaHlzRGlza1N0YXR1cyBmaWVsZC4KKyAqICAgICAgICAgICAgICAgICAgICAgIE5ldyBwaHlzaWNhbCBtYXBwaW5nIG1vZGUgaW4gU0FTIElPIFVuaXQgUGFnZSAyLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQ09ORklHX1BBR0VfU0FTX0VOQ0xPU1VSRV8wLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgU2xvdCBhbmQgRW5jbG9zdXJlIGZpZWxkcyB0byBTQVMgRGV2aWNlIFBhZ2UgMC4KICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBtcGlfaW5pdC5oCkBAIC0xNTQsNiArMzkyLDMyIEBACiAgKiAgMDItMjAtMDEgIDAxLjAxLjAzICBTdGFydGVkIHVzaW5nIE1QSV9QT0lOVEVSLgogICogIDAzLTI3LTAxICAwMS4wMS4wNCAgQWRkZWQgc3RydWN0dXJlIG9mZnNldCBjb21tZW50cy4KICAqICAwNC0xMC0wMSAgMDEuMDEuMDUgIEFkZGVkIG5ldyBNc2dGbGFnIGZvciBNU0dfU0NTSV9UQVNLX01HTVQuCisgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgMDgtMjktMDEgIDAxLjAyLjAyICBBZGRlZCBNUElfU0NTSVRBU0tNR01UX1RBU0tUWVBFX0xPR0lDQUxfVU5JVF9SRVNFVC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE1QSV9TQ1NJX1NUQVRFX1FVRVVFX1RBR19SRUpFQ1RFRCBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1TR19TQ1NJX0lPX1JFUExZLgorICogIDA5LTI4LTAxICAwMS4wMi4wMyAgQWRkZWQgc3RydWN0dXJlcyBhbmQgZGVmaW5lcyBmb3IgU0NTSSBFbmNsb3N1cmUKKyAqICAgICAgICAgICAgICAgICAgICAgIFByb2Nlc3NvciBtZXNzYWdlcy4KKyAqICAxMC0wNC0wMSAgMDEuMDIuMDQgIEFkZGVkIGRlZmluZXMgZm9yIFNFUCByZXF1ZXN0IEFjdGlvbiBmaWVsZC4KKyAqICAwNS0zMS0wMiAgMDEuMDIuMDUgIEFkZGVkIE1QSV9TQ1NJSU9fTVNHRkxHU19DTURfREVURVJNSU5FU19EQVRBX0RJUiBkZWZpbmUKKyAqICAgICAgICAgICAgICAgICAgICAgIGZvciBTQ1NJIElPIHJlcXVlc3RzLgorICogIDExLTE1LTAyICAwMS4wMi4wNiAgQWRkZWQgc3BlY2lhbCBleHRlbmRlZCBTQ1NJIFN0YXR1cyBkZWZpbmVzIGZvciBGQ1AuCisgKiAgMDYtMjYtMDMgIDAxLjAyLjA3ICBBZGRlZCBNUElfU0NTSV9TVEFUVVNfRkNQRVhUX1VOQVNTSUdORUQgZGVmaW5lLgorICogIDA1LTExLTA0ICAwMS4wMy4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjMuCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBBZGRlZCBNc2dGbGFncyBkZWZpbmVzIGZvciBFRURQIHRvIFNDU0kgSU8gcmVxdWVzdC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyB3b3JkIHRvIE1TR19TQ1NJX0lPX1JFUExZIHRvIGFkZCBUYXNrVGFnIGZpZWxkCisgKiAgICAgICAgICAgICAgICAgICAgICBhbmQgYSByZXNlcnZlZCBVMTYuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgTVNHX1NDU0lfSU8zMl9SRVFVRVNUIHN0cnVjdHVyZS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGEgVGFza1R5cGUgb2YgQ2xlYXIgVGFzayBTZXQgdG8gU0NTSQorICogICAgICAgICAgICAgICAgICAgICAgVGFzayBNYW5hZ2VtZW50IHJlcXVlc3QuCisgKiAgMTItMDctMDQgIDAxLjA1LjAyICBBZGRlZCBzdXBwb3J0IGZvciBUYXNrIE1hbmFnZW1lbnQgUXVlcnkgVGFzay4KKyAqICAwMS0xNS0wNSAgMDEuMDUuMDMgIE1vZGlmaWVkIFNDU0kgRW5jbG9zdXJlIFByb2Nlc3NvciBSZXF1ZXN0IHRvIHN1cHBvcnQKKyAqICAgICAgICAgICAgICAgICAgICAgIFdXSUQgYWRkcmVzc2luZy4KKyAqICAwMy0xMS0wNSAgMDEuMDUuMDQgIFJlbW92ZWQgRUVEUCBmbGFncyBmcm9tIFNDU0kgSU8gUmVxdWVzdC4KKyAqICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZWQgU0NTSSBJTyAzMiBSZXF1ZXN0LgorICogICAgICAgICAgICAgICAgICAgICAgTW9kaWZpZWQgU0NTSSBFbmNsb3N1cmUgUHJvY2Vzc29yIFJlcXVlc3QgYW5kIFJlcGx5IHRvCisgKiAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0IEVuY2xvc3VyZS9TbG90IGFkZHJlc3NpbmcgcmF0aGVyIHRoYW4gV1dJRAorICogICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc2luZy4KICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBtcGlfdGFyZy5oCkBAIC0xNzAsNiArNDM0LDMzIEBACiAgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBzdHJ1Y3R1cmVzIGZvciBNUElfVEFSR0VUX1NDU0lfU1BJX0NNRF9CVUZGRVIgYW5kCiAgKiAgICAgICAgICAgICAgICAgICAgICBNUElfVEFSR0VUX0ZDUF9DTURfQlVGRkVSLgogICogIDAzLTI3LTAxICAwMS4wMS4wNCAgQWRkZWQgc3RydWN0dXJlIG9mZnNldCBjb21tZW50cy4KKyAqICAwOC0wOC0wMSAgMDEuMDIuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIHYxLjIgd29yay4KKyAqICAwOS0yOC0wMSAgMDEuMDIuMDIgIEFkZGVkIHN0cnVjdHVyZSBmb3IgTVBJX1RBUkdFVF9TQ1NJX1NQSV9TVEFUVVNfSVUuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBQcmlvcml0eVJlYXNvbiBmaWVsZCB0byBzb21lIHJlcGxpZXMgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkIG1vcmUgUHJpb3JpdHlSZWFzb24gY29kZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBzb21lIGRlZmluZXMgZm9yIHRvIHN1cHBvcnQgcHJldmlvdXMgdmVyc2lvbgorICogICAgICAgICAgICAgICAgICAgICAgb2YgTVBJLgorICogIDEwLTA0LTAxICAwMS4wMi4wMyAgQWRkZWQgUHJpb3JpdHlSZWFzb24gdG8gTVNHX1RBUkdFVF9FUlJPUl9SRVBMWS4KKyAqICAxMS0wMS0wMSAgMDEuMDIuMDQgIEFkZGVkIGRlZmluZSBmb3IgVEFSR0VUX1NUQVRVU19TRU5EX0ZMQUdTX0hJR0hfUFJJT1JJVFkuCisgKiAgMDMtMTQtMDIgIDAxLjAyLjA1ICBNb2RpZmllZCBNUElfVEFSR0VUX0ZDUF9SU1BfQlVGRkVSIHRvIGdldCB0aGUgcHJvcGVyCisgKiAgICAgICAgICAgICAgICAgICAgICBieXRlIG9yZGVyaW5nLgorICogIDA1LTMxLTAyICAwMS4wMi4wNiAgTW9kaWZpZWQgVEFSR0VUX01PREVfUkVQTFlfQUxJQVNfTUFTSyB0byBvbmx5IGluY2x1ZGUKKyAqICAgICAgICAgICAgICAgICAgICAgIG9uZSBiaXQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBBbGlhc0luZGV4IGZpZWxkIHRvIE1QSV9UQVJHRVRfRkNQX0NNRF9CVUZGRVIuCisgKiAgMDktMTYtMDIgIDAxLjAyLjA3ICBBZGRlZCBmbGFncyBmb3IgY29uZmlybWVkIGNvbXBsZXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBQUklPUklUWV9SRUFTT05fVEFSR0VUX0JVU1kuCisgKiAgMTEtMTUtMDIgIDAxLjAyLjA4ICBBZGRlZCBBbGlhc0lEIGZpZWxkIHRvIE1QSV9UQVJHRVRfU0NTSV9TUElfQ01EX0JVRkZFUi4KKyAqICAwNC0wMS0wMyAgMDEuMDIuMDkgIEFkZGVkIE9wdGlvbmFsT3hpZCBmaWVsZCB0byBNUElfVEFSR0VUX0ZDUF9DTURfQlVGRkVSLgorICogIDA1LTExLTA0ICAwMS4wMy4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjMuCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBBZGRlZCBuZXcgcmVxdWVzdCBtZXNzYWdlIHN0cnVjdHVyZXMgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICBNU0dfVEFSR0VUX0NNRF9CVUZfUE9TVF9CQVNFX1JFUVVFU1QsCisgKiAgICAgICAgICAgICAgICAgICAgICBNU0dfVEFSR0VUX0NNRF9CVUZfUE9TVF9MSVNUX1JFUVVFU1QsIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgTVNHX1RBUkdFVF9BU1NJU1RfRVhUX1JFUVVFU1QuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBuZXcgc3RydWN0dXJlcyBmb3IgU0FTIFNTUCBDb21tYW5kIGJ1ZmZlciwgU1NQCisgKiAgICAgICAgICAgICAgICAgICAgICBUYXNrIGJ1ZmZlciwgYW5kIFNTUCBTdGF0dXMgSVUuCisgKiAgMTAtMDUtMDQgIDAxLjA1LjAyICBNU0dfVEFSR0VUX0NNRF9CVUZGRVJfUE9TVF9CQVNFX0xJU1RfUkVQTFkgYWRkZWQuCisgKiAgMDItMjItMDUgIDAxLjA1LjAzICBDaGFuZ2VkIGEgY29tbWVudC4KKyAqICAwMy0xMS0wNSAgMDEuMDUuMDQgIFJlbW92ZWQgVGFyZ2V0QXNzaXN0RXh0ZW5kZWQgUmVxdWVzdC4KICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBtcGlfZmMuaApAQCAtMTkyLDYgKzQ4MywxMyBAQAogICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgTVBJX0ZDX1BSSU1fU0VORF9GTEFHU19SRVNFVF9MSU5LIGRlZmluZS4KICAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHN0cnVjdHVyZSBvZmZzZXQgY29tbWVudHMuCiAgKiAgMDQtMDktMDEgIDAxLjAxLjA3ICBBZGRlZCBSc3BMZW5ndGggZmllbGQgdG8gTVNHX0xJTktfU0VSVklDRV9SU1BfUkVRVUVTVC4KKyAqICAwOC0wOC0wMSAgMDEuMDIuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIHYxLjIgd29yay4KKyAqICAwOS0yOC0wMSAgMDEuMDIuMDIgIENoYW5nZSBuYW1lIG9mIHJlc2VydmVkIGZpZWxkIGluCisgKiAgICAgICAgICAgICAgICAgICAgICBNU0dfTElOS19TRVJWSUNFX1JTUF9SRVBMWS4KKyAqICAwNS0zMS0wMiAgMDEuMDIuMDMgIEFkZGluZyBBbGlhc0luZGV4IHRvIEZDIERpcmVjdCBBY2Nlc3MgcmVxdWVzdHMuCisgKiAgMDEtMTYtMDQgIDAxLjAyLjA0ICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9GQ19QUklNX1NFTkRfRkxBR1NfTUxfUkVTRVRfTElOSy4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS4zLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjUuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogbXBpX2xhbi5oCkBAIC0yMDksMTEgKzUwNyw1NiBAQAogICogIDExLTAyLTAwICAwMS4wMS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgcG9zdCAxLjAgd29yawogICogIDAyLTIwLTAxICAwMS4wMS4wMiAgU3RhcnRlZCB1c2luZyBNUElfUE9JTlRFUi4KICAqICAwMy0yNy0wMSAgMDEuMDEuMDMgIEFkZGVkIHN0cnVjdHVyZSBvZmZzZXQgY29tbWVudHMuCisgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS41LgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIG1waV9yYWlkLmgKICAqICAwMi0yNy0wMSAgMDEuMDEuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIHRoaXMgZmlsZS4KICAqICAwMy0yNy0wMSAgMDEuMDEuMDIgIEFkZGVkIHN0cnVjdHVyZSBvZmZzZXQgY29tbWVudHMuCisgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgMDgtMjktMDEgIDAxLjAyLjAyICBBZGRlZCBESUFHX0RBVEFfVVBMT0FEX0hFQURFUiBhbmQgcmVsYXRlZCBkZWZpbmVzLgorICogIDA5LTI4LTAxICAwMS4wMi4wMiAgTWFqb3IgcmV3b3JrIGZvciBNUEkgdjEuMiBJbnRlZ3JhdGVkIFJBSUQgY2hhbmdlcy4KKyAqICAxMC0wNC0wMSAgMDEuMDIuMDMgIEFkZGVkIEFjdGlvbkRhdGEgZGVmaW5lcyBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9SQUlEX0FDVElPTl9ERUxFVEVfVk9MVU1FIGFjdGlvbi4KKyAqICAxMS0wMS0wMSAgMDEuMDIuMDQgIEFkZGVkIGRlZmluZSBmb3IgTVBJX1JBSURfQUNUSU9OX0FEQVRBX0RPX05PVF9TWU5DLgorICogIDAzLTE0LTAyICAwMS4wMi4wNSAgQWRkZWQgZGVmaW5lIGZvciBNUElfUkFJRF9BQ1RJT05fQURBVEFfTE9XX0xFVkVMX0lOSVQuCisgKiAgMDUtMDctMDIgIDAxLjAyLjA2ICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9SQUlEX0FDVElPTl9BQ1RJVkFURV9WT0xVTUUsCisgKiAgICAgICAgICAgICAgICAgICAgICBNUElfUkFJRF9BQ1RJT05fSU5BQ1RJVkFURV9WT0xVTUUsIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgTVBJX1JBSURfQUNUSU9OX0FEQVRBX0lOQUNUSVZBVEVfQUxMLgorICogIDA3LTEyLTAyICAwMS4wMi4wNyAgQWRkZWQgc3RydWN0dXJlcyBmb3IgTWFpbGJveCByZXF1ZXN0IGFuZCByZXBseS4KKyAqICAxMS0xNS0wMiAgMDEuMDIuMDggIEFkZGVkIG1pc3NpbmcgTXNnQ29udGV4dCBmaWVsZCB0byBNU0dfTUFJTEJPWF9SRVFVRVNULgorICogIDA0LTAxLTAzICAwMS4wMi4wOSAgTmV3IGFjdGlvbiBkYXRhIG9wdGlvbiBmbGFnIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVBJX1JBSURfQUNUSU9OX0RFTEVURV9WT0xVTUUuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS41LgorICogIDAxLTE1LTA1ICAwMS4wNS4wMiAgQWRkZWQgZGVmaW5lcyBmb3IgdGhlIHR3byBuZXcgUkFJRCBBY3Rpb25zIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgX1NFVF9SRVNZTkNfUkFURSBhbmQgX1NFVF9EQVRBX1NDUlVCX1JBVEUuCisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbXBpX3Rvb2wuaAorICogIDA4LTA4LTAxICAwMS4wMi4wMSAgT3JpZ2luYWwgcmVsZWFzZS4KKyAqICAwOC0yOS0wMSAgMDEuMDIuMDIgIEFkZGVkIERJQUdfREFUQV9VUExPQURfSEVBREVSIGFuZCByZWxhdGVkIGRlZmluZXMuCisgKiAgMDEtMTYtMDQgIDAxLjAyLjAzICBBZGRlZCBkZWZpbmVzIGFuZCBzdHJ1Y3R1cmVzIGZvciBuZXcgdG9vbHMKKyAqLiAgICAgICAgICAgICAgICAgICAgIE1QSV9UT09MQk9YX0lTVFdJX1JFQURfV1JJVEVfVE9PTCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9UT09MQk9YX0ZDX01BTkFHRU1FTlRfVE9PTC4KKyAqICAwNC0yOS0wNCAgMDEuMDIuMDQgIEFkZGVkIG1lc3NhZ2Ugc3RydWN0dXJlcyBmb3IgRGlhZ25vc3RpYyBCdWZmZXIgUG9zdCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIERpYWdub3N0aWMgUmVsZWFzZSByZXF1ZXN0cyBhbmQgcmVwbGllcy4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS4zLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjUuCisgKiAgMTAtMDYtMDQgIDAxLjA1LjAyICBBZGRlZCBkZWZpbmUgZm9yIE1QSV9ESUFHX0JVRl9UWVBFX0NPVU5ULgorICogIDAyLTA5LTA1ICAwMS4wNS4wMyAgQWRkZWQgZnJhbWUgc2l6ZSBvcHRpb24gdG8gRkMgbWFuYWdlbWVudCB0b29sLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQmVhY29uIHRvb2wgdG8gdGhlIFRvb2xib3guCisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbXBpX2luYi5oCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjUuCisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbXBpX3Nhcy5oCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBPcmlnaW5hbCByZWxlYXNlLgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIG1waV90eXBlLmgKQEAgLTIyMSwyMSArNTY0LDgzIEBACiAgKiAgMDYtMDYtMDAgIDAxLjAwLjAxICBVcGRhdGUgdmVyc2lvbiBudW1iZXIgZm9yIDEuMCByZWxlYXNlLgogICogIDExLTAyLTAwICAwMS4wMS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgcG9zdCAxLjAgd29yawogICogIDAyLTIwLTAxICAwMS4wMS4wMiAgQWRkZWQgZGVmaW5lIGFuZCBpZmRlZiBmb3IgTVBJX1BPSU5URVIuCisgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS41LgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIG1waV9oaXN0b3J5LnR4dCAgICAgICAgIFBhcnRzIGxpc3QgaGlzdG9yeQogCi1GaWxlbmFtZSAgICAwMS4wMS4xMAorRmlsZW5hbWUgICAgMDEuMDUuMDkKIC0tLS0tLS0tLS0gIC0tLS0tLS0tCi1tcGkuaCAgICAgICAwMS4wMS4wNwotbXBpX2lvYy5oICAgMDEuMDEuMDcKLW1waV9jbmZnLmggIDAxLjAxLjExCi1tcGlfaW5pdC5oICAwMS4wMS4wNQotbXBpX3RhcmcuaCAgMDEuMDEuMDQKLW1waV9mYy5oICAgIDAxLjAxLjA3Ci1tcGlfbGFuLmggICAwMS4wMS4wMwotbXBpX3JhaWQuaCAgMDEuMDEuMDIKLW1waV90eXBlLmggIDAxLjAxLjAyCittcGkuaCAgICAgICAwMS4wNS4wNworbXBpX2lvYy5oICAgMDEuMDUuMDgKK21waV9jbmZnLmggIDAxLjA1LjA4CittcGlfaW5pdC5oICAwMS4wNS4wNAorbXBpX3RhcmcuaCAgMDEuMDUuMDQKK21waV9mYy5oICAgIDAxLjA1LjAxCittcGlfbGFuLmggICAwMS4wNS4wMQorbXBpX3JhaWQuaCAgMDEuMDUuMDIKK21waV90b29sLmggIDAxLjA1LjAzCittcGlfaW5iLmggICAwMS4wNS4wMQorbXBpX3Nhcy5oICAgMDEuMDUuMDEKK21waV90eXBlLmggIDAxLjA1LjAxCisKK0ZpbGVuYW1lICAgIDAxLjA1LjA4ICAgMDEuMDUuMDcgICAwMS4wNS4wNiAgIDAxLjA1LjA1ICAgMDEuMDUuMDQgICAwMS4wNS4wMworLS0tLS0tLS0tLSAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tCittcGkuaCAgICAgICAwMS4wNS4wNiAgIDAxLjA1LjA1ICAgMDEuMDUuMDQgICAwMS4wNS4wMyAgIDAxLjA1LjAyICAgMDEuMDUuMDEKK21waV9pb2MuaCAgIDAxLjA1LjA3ICAgMDEuMDUuMDYgICAwMS4wNS4wNSAgIDAxLjA1LjA0ICAgMDEuMDUuMDMgICAwMS4wNS4wMgorbXBpX2NuZmcuaCAgMDEuMDUuMDcgICAwMS4wNS4wNyAgIDAxLjA1LjA2ICAgMDEuMDUuMDUgICAwMS4wNS4wNCAgIDAxLjA1LjAzCittcGlfaW5pdC5oICAwMS4wNS4wMyAgIDAxLjA1LjAzICAgMDEuMDUuMDMgICAwMS4wNS4wMiAgIDAxLjA1LjAyICAgMDEuMDUuMDEKK21waV90YXJnLmggIDAxLjA1LjAzICAgMDEuMDUuMDIgICAwMS4wNS4wMiAgIDAxLjA1LjAyICAgMDEuMDUuMDIgICAwMS4wNS4wMgorbXBpX2ZjLmggICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxCittcGlfbGFuLmggICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEKK21waV9yYWlkLmggIDAxLjA1LjAyICAgMDEuMDUuMDIgICAwMS4wNS4wMiAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMQorbXBpX3Rvb2wuaCAgMDEuMDUuMDMgICAwMS4wNS4wMyAgIDAxLjA1LjAyICAgMDEuMDUuMDIgICAwMS4wNS4wMiAgIDAxLjA1LjAyCittcGlfaW5iLmggICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEKK21waV9zYXMuaCAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMQorbXBpX3R5cGUuaCAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjA1LjAxCisKK0ZpbGVuYW1lICAgIDAxLjA1LjAyICAgMDEuMDUuMDEgICAwMS4wMy4wMSAgIDAxLjAyLjE0ICAgMDEuMDIuMTMgICAwMS4wMi4xMgorLS0tLS0tLS0tLSAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tCittcGkuaCAgICAgICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDMuMDEgICAwMS4wMi4xMiAgIDAxLjAyLjExICAgMDEuMDIuMTAKK21waV9pb2MuaCAgIDAxLjA1LjAyICAgMDEuMDUuMDEgICAwMS4wMy4wMSAgIDAxLjAyLjA5ICAgMDEuMDIuMDggICAwMS4wMi4wOAorbXBpX2NuZmcuaCAgMDEuMDUuMDIgICAwMS4wNS4wMSAgIDAxLjAzLjAxICAgMDEuMDIuMTQgICAwMS4wMi4xMyAgIDAxLjAyLjEyCittcGlfaW5pdC5oICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDMuMDEgICAwMS4wMi4wNyAgIDAxLjAyLjA3ICAgMDEuMDIuMDcKK21waV90YXJnLmggIDAxLjA1LjAyICAgMDEuMDUuMDEgICAwMS4wMy4wMSAgIDAxLjAyLjA5ICAgMDEuMDIuMDkgICAwMS4wMi4wOQorbXBpX2ZjLmggICAgMDEuMDUuMDEgICAwMS4wNS4wMSAgIDAxLjAzLjAxICAgMDEuMDIuMDQgICAwMS4wMi4wNCAgIDAxLjAyLjAzCittcGlfbGFuLmggICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDMuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDIuMDEKK21waV9yYWlkLmggIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wMy4wMSAgIDAxLjAyLjA5ICAgMDEuMDIuMDkgICAwMS4wMi4wOQorbXBpX3Rvb2wuaCAgMDEuMDUuMDIgICAwMS4wNS4wMSAgIDAxLjAzLjAxICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxCittcGlfaW5iLmggICAwMS4wNS4wMSAgIDAxLjA1LjAxICAgMDEuMDMuMDEKK21waV9zYXMuaCAgIDAxLjA1LjAxICAgMDEuMDUuMDEKK21waV90eXBlLmggIDAxLjA1LjAxICAgMDEuMDUuMDEgICAwMS4wMy4wMSAgIDAxLjAyLjA0ICAgMDEuMDIuMDMgICAwMS4wMi4wMgorCitGaWxlbmFtZSAgICAwMS4wMi4xMSAgIDAxLjAyLjEwICAgMDEuMDIuMDkgICAwMS4wMi4wOCAgIDAxLjAyLjA3ICAgMDEuMDIuMDYKKy0tLS0tLS0tLS0gIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLQorbXBpLmggICAgICAgMDEuMDIuMDkgICAwMS4wMi4wOCAgIDAxLjAyLjA3ICAgMDEuMDIuMDYgICAwMS4wMi4wNSAgIDAxLjAyLjA0CittcGlfaW9jLmggICAwMS4wMi4wNyAgIDAxLjAyLjA2ICAgMDEuMDIuMDYgICAwMS4wMi4wNiAgIDAxLjAyLjA2ICAgMDEuMDIuMDUKK21waV9jbmZnLmggIDAxLjAyLjExICAgMDEuMDIuMTAgICAwMS4wMi4wOSAgIDAxLjAyLjA4ICAgMDEuMDIuMDcgICAwMS4wMi4wNgorbXBpX2luaXQuaCAgMDEuMDIuMDYgICAwMS4wMi4wNiAgIDAxLjAyLjA1ICAgMDEuMDIuMDUgICAwMS4wMi4wNSAgIDAxLjAyLjA0CittcGlfdGFyZy5oICAwMS4wMi4wOSAgIDAxLjAyLjA4ICAgMDEuMDIuMDcgICAwMS4wMi4wNiAgIDAxLjAyLjA2ICAgMDEuMDIuMDUKK21waV9mYy5oICAgIDAxLjAyLjAzICAgMDEuMDIuMDMgICAwMS4wMi4wMyAgIDAxLjAyLjAzICAgMDEuMDIuMDMgICAwMS4wMi4wMgorbXBpX2xhbi5oICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxCittcGlfcmFpZC5oICAwMS4wMi4wOSAgIDAxLjAyLjA4ICAgMDEuMDIuMDcgICAwMS4wMi4wNyAgIDAxLjAyLjA2ICAgMDEuMDIuMDUKK21waV90b29sLmggIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMi4wMQorbXBpX3R5cGUuaCAgMDEuMDIuMDIgICAwMS4wMi4wMiAgIDAxLjAyLjAyICAgMDEuMDIuMDIgICAwMS4wMi4wMiAgIDAxLjAyLjAyCisKK0ZpbGVuYW1lICAgIDAxLjAyLjA1ICAgMDEuMDIuMDQgICAwMS4wMi4wMyAgIDAxLjAyLjAyICAgMDEuMDIuMDEgICAwMS4wMS4xMAorLS0tLS0tLS0tLSAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tCittcGkuaCAgICAgICAwMS4wMi4wMyAgIDAxLjAyLjAyICAgMDEuMDIuMDIgICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDEuMDcKK21waV9pb2MuaCAgIDAxLjAyLjA0ICAgMDEuMDIuMDMgICAwMS4wMi4wMyAgIDAxLjAyLjAyICAgMDEuMDIuMDEgICAwMS4wMS4wNworbXBpX2NuZmcuaCAgMDEuMDIuMDUgICAwMS4wMi4wNCAgIDAxLjAyLjAzICAgMDEuMDIuMDIgICAwMS4wMi4wMSAgIDAxLjAxLjExCittcGlfaW5pdC5oICAwMS4wMi4wNCAgIDAxLjAyLjA0ICAgMDEuMDIuMDMgICAwMS4wMi4wMiAgIDAxLjAyLjAxICAgMDEuMDEuMDUKK21waV90YXJnLmggIDAxLjAyLjA0ICAgMDEuMDIuMDMgICAwMS4wMi4wMiAgIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMS4wNAorbXBpX2ZjLmggICAgMDEuMDIuMDIgICAwMS4wMi4wMiAgIDAxLjAyLjAyICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAxLjA3CittcGlfbGFuLmggICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMi4wMSAgIDAxLjAyLjAxICAgMDEuMDEuMDMKK21waV9yYWlkLmggIDAxLjAyLjA0ICAgMDEuMDIuMDMgICAwMS4wMi4wMiAgIDAxLjAyLjAxICAgMDEuMDIuMDEgICAwMS4wMS4wMgorbXBpX3Rvb2wuaCAgMDEuMDIuMDIgICAwMS4wMi4wMiAgIDAxLjAyLjAyICAgMDEuMDIuMDIgICAwMS4wMi4wMQorbXBpX3R5cGUuaCAgMDEuMDIuMDIgICAwMS4wMi4wMiAgIDAxLjAyLjAyICAgMDEuMDIuMDIgICAwMS4wMi4wMSAgIDAxLjAxLjAyCiAKIEZpbGVuYW1lICAgIDAxLjAxLjA5ICAgMDEuMDEuMDggICAwMS4wMS4wNyAgIDAxLjAxLjA2ICAgMDEuMDEuMDUgICAwMS4wMS4wNAogLS0tLS0tLS0tLSAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tICAgLS0tLS0tLS0gICAtLS0tLS0tLSAgIC0tLS0tLS0tCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaW5iLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaW5iLmgKaW5kZXggZGFlMjlmYi4uZmYxNjczMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2luYi5oCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9pbmIuaApAQCAtMSwxOSArMSwyMCBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDMgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoYykgMjAwMy0yMDA0IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KICAqCiAgKgogICogICAgICAgICAgIE5hbWU6ICBtcGlfaW5iLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIEluYmFuZCBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwogICogIENyZWF0aW9uIERhdGU6ICBTZXB0ZW1iZXIgMzAsIDIwMDMKICAqCi0gKiAgICBtcGlfaW5iLmggVmVyc2lvbjogIDAxLjAzLnh4CisgKiAgICBtcGlfaW5iLmggVmVyc2lvbjogIDAxLjA1LjAxCiAgKgogICogIFZlcnNpb24gSGlzdG9yeQogICogIC0tLS0tLS0tLS0tLS0tLQogICoKICAqICBEYXRlICAgICAgVmVyc2lvbiAgIERlc2NyaXB0aW9uCiAgKiAgLS0tLS0tLS0gIC0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICA/Py0/Py0/PyAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjUuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaW5pdC5oIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2luaXQuaAppbmRleCBiM2M5NWZkLi5hY2EwMzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaW5pdC5oCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9pbml0LmgKQEAgLTEsMTIgKzEsMTIgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDMgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoYykgMjAwMC0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KICAqCiAgKgogICogICAgICAgICAgIE5hbWU6ICBtcGlfaW5pdC5oCiAgKiAgICAgICAgICBUaXRsZTogIE1QSSBpbml0aWF0b3IgbW9kZSBtZXNzYWdlcyBhbmQgc3RydWN0dXJlcwogICogIENyZWF0aW9uIERhdGU6ICBKdW5lIDgsIDIwMDAKICAqCi0gKiAgICBtcGlfaW5pdC5oIFZlcnNpb246ICAwMS4wNS54eAorICogICAgbXBpX2luaXQuaCBWZXJzaW9uOiAgMDEuMDUuMDQKICAqCiAgKiAgVmVyc2lvbiBIaXN0b3J5CiAgKiAgLS0tLS0tLS0tLS0tLS0tCkBAIC0zMyw2ICszMywyMSBAQAogICogICAgICAgICAgICAgICAgICAgICAgZm9yIFNDU0kgSU8gcmVxdWVzdHMuCiAgKiAgMTEtMTUtMDIgIDAxLjAyLjA2ICBBZGRlZCBzcGVjaWFsIGV4dGVuZGVkIFNDU0kgU3RhdHVzIGRlZmluZXMgZm9yIEZDUC4KICAqICAwNi0yNi0wMyAgMDEuMDIuMDcgIEFkZGVkIE1QSV9TQ1NJX1NUQVRVU19GQ1BFWFRfVU5BU1NJR05FRCBkZWZpbmUuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIEFkZGVkIE1zZ0ZsYWdzIGRlZmluZXMgZm9yIEVFRFAgdG8gU0NTSSBJTyByZXF1ZXN0LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbmV3IHdvcmQgdG8gTVNHX1NDU0lfSU9fUkVQTFkgdG8gYWRkIFRhc2tUYWcgZmllbGQKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBhIHJlc2VydmVkIFUxNi4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIG5ldyBNU0dfU0NTSV9JTzMyX1JFUVVFU1Qgc3RydWN0dXJlLgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgYSBUYXNrVHlwZSBvZiBDbGVhciBUYXNrIFNldCB0byBTQ1NJCisgKiAgICAgICAgICAgICAgICAgICAgICBUYXNrIE1hbmFnZW1lbnQgcmVxdWVzdC4KKyAqICAxMi0wNy0wNCAgMDEuMDUuMDIgIEFkZGVkIHN1cHBvcnQgZm9yIFRhc2sgTWFuYWdlbWVudCBRdWVyeSBUYXNrLgorICogIDAxLTE1LTA1ICAwMS4wNS4wMyAgTW9kaWZpZWQgU0NTSSBFbmNsb3N1cmUgUHJvY2Vzc29yIFJlcXVlc3QgdG8gc3VwcG9ydAorICogICAgICAgICAgICAgICAgICAgICAgV1dJRCBhZGRyZXNzaW5nLgorICogIDAzLTExLTA1ICAwMS4wNS4wNCAgUmVtb3ZlZCBFRURQIGZsYWdzIGZyb20gU0NTSSBJTyBSZXF1ZXN0LgorICogICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlZCBTQ1NJIElPIDMyIFJlcXVlc3QuCisgKiAgICAgICAgICAgICAgICAgICAgICBNb2RpZmllZCBTQ1NJIEVuY2xvc3VyZSBQcm9jZXNzb3IgUmVxdWVzdCBhbmQgUmVwbHkgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQgRW5jbG9zdXJlL1Nsb3QgYWRkcmVzc2luZyByYXRoZXIgdGhhbiBXV0lECisgKiAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzaW5nLgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtNzYsMjAgKzkxLDEyIEBACiAjZGVmaW5lIE1QSV9TQ1NJSU9fTVNHRkxHU19TRU5TRV9XSURUSCAgICAgICAgICAgICAgKDB4MDEpCiAjZGVmaW5lIE1QSV9TQ1NJSU9fTVNHRkxHU19TRU5TRV9XSURUSF8zMiAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9TQ1NJSU9fTVNHRkxHU19TRU5TRV9XSURUSF82NCAgICAgICAgICAgKDB4MDEpCisKICNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX1NFTlNFX0xPQ0FUSU9OICAgICAgICAgICAoMHgwMikKICNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX1NFTlNFX0xPQ19IT1NUICAgICAgICAgICAoMHgwMCkKICNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX1NFTlNFX0xPQ19JT0MgICAgICAgICAgICAoMHgwMikKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0NNRF9ERVRFUk1JTkVTX0RBVEFfRElSICAoMHgwNCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfVFlQRV9NQVNLICAgICAgICAgICAoMHhFMCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfTk9ORSAgICAgICAgICAgICAgICAoMHgwMCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfUkRQUk9URUNUX1QxMCAgICAgICAoMHgyMCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfVlJQUk9URUNUX1QxMCAgICAgICAoMHg0MCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfV1JQUk9URUNUX1QxMCAgICAgICAoMHg2MCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfNTIwX1JFQURfTU9ERTEgICAgICAoMHgyMCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfNTIwX1dSSVRFX01PREUxICAgICAoMHg0MCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfOF85X1JFQURfTU9ERTEgICAgICAoMHg2MCkKLSNkZWZpbmUgTVBJX1NDU0lJT19NU0dGTEdTX0VFRFBfOF85X1dSSVRFX01PREUxICAgICAoMHg4MCkKIAorI2RlZmluZSBNUElfU0NTSUlPX01TR0ZMR1NfQ01EX0RFVEVSTUlORVNfREFUQV9ESVIgICgweDA0KQogCiAvKiBTQ1NJIElPIExVTiBmaWVsZHMgKi8KIApAQCAtMTQ4LDYgKzE1NSw4IEBACiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgVHJhbnNmZXJDb3VudDsgICAgICAvKiAxNGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBTZW5zZUNvdW50OyAgICAgICAgIC8qIDE4aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNlSW5mbzsgICAgICAgLyogMUNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgVGFza1RhZzsgICAgICAgICAgICAvKiAyMGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDIyaCAqLwogfSBNU0dfU0NTSV9JT19SRVBMWSwgTVBJX1BPSU5URVIgUFRSX01TR19TQ1NJX0lPX1JFUExZLAogICBTQ1NJSU9SZXBseV90LCBNUElfUE9JTlRFUiBwU0NTSUlPUmVwbHlfdDsKIApAQCAtMTkwLDMyICsxOTksNyBAQAogI2RlZmluZSBNUElfU0NTSV9SU1BfSU5GT19UQVNLX01HTVRfRkFJTEVEICAgICAgKDB4MDUwMDAwMDApCiAjZGVmaW5lIE1QSV9TQ1NJX1JTUF9JTkZPX1NQSV9MUV9JTlZBTElEX1RZUEUgICAoMHgwNjAwMDAwMCkKIAotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qICBTQ1NJIElPIDMyIFJlcXVlc3QgbWVzc2FnZSBzdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXR5cGVkZWYgc3RydWN0IF9NU0dfU0NTSV9JTzMyX1JFUVVFU1QKLXsKLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJRDsgICAgICAgICAgIC8qIDAwaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgLyogMDFoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgQ2hhaW5PZmZzZXQ7ICAgICAgICAvKiAwMmggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjsgICAgICAgICAgIC8qIDAzaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENEQkxlbmd0aDsgICAgICAgICAgLyogMDRoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgU2Vuc2VCdWZmZXJMZW5ndGg7ICAvKiAwNWggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgIC8qIDA2aCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCi0gICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBMVU5bOF07ICAgICAgICAgICAgIC8qIDBDaCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIENvbnRyb2w7ICAgICAgICAgICAgLyogMTRoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgQ0RCWzMyXTsgICAgICAgICAgICAvKiAxOGggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICBEYXRhTGVuZ3RoOyAgICAgICAgIC8qIDM4aCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFNlbnNlQnVmZmVyTG93QWRkcjsgLyogM0NoICovCi0gICAgU0dFX0lPX1VOSU9OICAgICAgICAgICAgU0dMOyAgICAgICAgICAgICAgICAvKiA0MGggKi8KLX0gTVNHX1NDU0lfSU8zMl9SRVFVRVNULCBNUElfUE9JTlRFUiBQVFJfTVNHX1NDU0lfSU8zMl9SRVFVRVNULAotICBTQ1NJSU8zMlJlcXVlc3RfdCwgTVBJX1BPSU5URVIgcFNDU0lJTzMyUmVxdWVzdF90OwotCi0vKiBTQ1NJIElPIDMyIHVzZXMgdGhlIHNhbWUgZGVmaW5lcyBhcyBhYm92ZSBmb3IgU0NTSSBJTyAqLworI2RlZmluZSBNUElfU0NTSV9UQVNLVEFHX1VOS05PV04gICAgICAgICAgICAgICAgKDB4RkZGRikKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTI0Nyw2ICsyMzEsNyBAQAogI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX1RBU0tUWVBFX1JFU0VUX0JVUyAgICAgICAgICAgICAoMHgwNCkKICNkZWZpbmUgTVBJX1NDU0lUQVNLTUdNVF9UQVNLVFlQRV9MT0dJQ0FMX1VOSVRfUkVTRVQgICAgKDB4MDUpCiAjZGVmaW5lIE1QSV9TQ1NJVEFTS01HTVRfVEFTS1RZUEVfQ0xFQVJfVEFTS19TRVQgICAgICAgICgweDA2KQorI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX1RBU0tUWVBFX1FVRVJZX1RBU0sgICAgICAgICAgICAoMHgwNykKIAogLyogTXNnRmxhZ3MgYml0cyAqLwogI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX01TR0ZMQUdTX1RBUkdFVF9SRVNFVF9PUFRJT04gICAoMHgwMCkKQEAgLTI2MCw3ICsyNDUsNyBAQAogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgLyogMDFoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnTGVuZ3RoOyAgICAgICAgICAvKiAwMmggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjsgICAgICAgICAgIC8qIDAzaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkOyAgICAgICAgICAgLyogMDRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOyAgICAgICAvKiAwNGggKi8KICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBUYXNrVHlwZTsgICAgICAgICAgIC8qIDA1aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgLyogMDZoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnRmxhZ3M7ICAgICAgICAgICAvKiAwN2ggKi8KQEAgLTI3Miw2ICsyNTcsMTUgQEAKIH0gTVNHX1NDU0lfVEFTS19NR01UX1JFUExZLCBNUElfUE9JTlRFUiBQVFJfTVNHX1NDU0lfVEFTS19NR01UX1JFUExZLAogICBTQ1NJVGFza01nbXRSZXBseV90LCBNUElfUE9JTlRFUiBwU0NTSVRhc2tNZ210UmVwbHlfdDsKIAorLyogUmVzcG9uc2VDb2RlIHZhbHVlcyAqLworI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX1JTUF9UTV9DT01QTEVURSAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1NDU0lUQVNLTUdNVF9SU1BfSU5WQUxJRF9GUkFNRSAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9TQ1NJVEFTS01HTVRfUlNQX1RNX05PVF9TVVBQT1JURUQgICAgICAgICAgICgweDA0KQorI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX1JTUF9UTV9GQUlMRUQgICAgICAgICAgICAgICAgICAoMHgwNSkKKyNkZWZpbmUgTVBJX1NDU0lUQVNLTUdNVF9SU1BfVE1fU1VDQ0VFREVEICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIE1QSV9TQ1NJVEFTS01HTVRfUlNQX1RNX0lOVkFMSURfTFVOICAgICAgICAgICAgICgweDA5KQorI2RlZmluZSBNUElfU0NTSVRBU0tNR01UX1JTUF9JT19RVUVVRURfT05fSU9DICAgICAgICAgICAoMHg4MCkKKwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBTQ1NJIEVuY2xvc3VyZSBQcm9jZXNzb3IgbWVzc2FnZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMjg0LDExICsyNzgsMTYgQEAKICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDaGFpbk9mZnNldDsgICAgICAgIC8qIDAyaCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOyAgICAgICAgICAgLyogMDNoICovCiAgICAgVTggICAgICAgICAgICAgICAgICAgICAgQWN0aW9uOyAgICAgICAgICAgICAvKiAwNGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDA1aCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgLyogMDZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7ICAgICAgICAgICAgICAvKiAwNWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDA2aCAqLwogICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBTbG90U3RhdHVzOyAgICAgICAgIC8qIDBDaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgLyogMTBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDQ7ICAgICAgICAgIC8qIDE4aCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFNsb3Q7ICAgICAgICAgICAgICAgLyogMUNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgRW5jbG9zdXJlSGFuZGxlOyAgICAvKiAxRWggKi8KIH0gTVNHX1NFUF9SRVFVRVNULCBNUElfUE9JTlRFUiBQVFJfTVNHX1NFUF9SRVFVRVNULAogICBTRVBSZXF1ZXN0X3QsIE1QSV9QT0lOVEVSIHBTRVBSZXF1ZXN0X3Q7CiAKQEAgLTI5Niw2ICsyOTUsMTAgQEAKICNkZWZpbmUgTVBJX1NFUF9SRVFfQUNUSU9OX1dSSVRFX1NUQVRVUyAgICAgICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9TRVBfUkVRX0FDVElPTl9SRUFEX1NUQVRVUyAgICAgICAgICAgICAgICAgICgweDAxKQogCisvKiBGbGFncyBkZWZpbmVzICovCisjZGVmaW5lIE1QSV9TRVBfUkVRX0ZMQUdTX0VOQ0xPU1VSRV9TTE9UX0FERFJFU1MgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfU0VQX1JFUV9GTEFHU19CVVNfVEFSR0VUSURfQUREUkVTUyAgICAgICAgICAoMHgwMCkKKwogLyogU2xvdFN0YXR1cyBiaXRzIGZvciBNU0dfU0VQX1JFUVVFU1QgKi8KICNkZWZpbmUgTVBJX1NFUF9SRVFfU0xPVFNUQVRVU19OT19FUlJPUiAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAjZGVmaW5lIE1QSV9TRVBfUkVRX1NMT1RTVEFUVVNfREVWX0ZBVUxUWSAgICAgICAgICAgICAgICgweDAwMDAwMDAyKQpAQCAtMzMyLDYgKzMzNSw5IEBACiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSU9DU3RhdHVzOyAgICAgICAgICAvKiAwRWggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBJT0NMb2dJbmZvOyAgICAgICAgIC8qIDEwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFNsb3RTdGF0dXM7ICAgICAgICAgLyogMTRoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ0OyAgICAgICAgICAvKiAxOGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBTbG90OyAgICAgICAgICAgICAgIC8qIDFDaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIEVuY2xvc3VyZUhhbmRsZTsgICAgLyogMUVoICovCiB9IE1TR19TRVBfUkVQTFksIE1QSV9QT0lOVEVSIFBUUl9NU0dfU0VQX1JFUExZLAogICBTRVBSZXBseV90LCBNUElfUE9JTlRFUiBwU0VQUmVwbHlfdDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2lvYy5oIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2lvYy5oCmluZGV4IDgyNDQ1ZDEuLmY5MWViNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9pb2MuaAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfaW9jLmgKQEAgLTEsMTIgKzEsMTIgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDMgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoYykgMjAwMC0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KICAqCiAgKgogICogICAgICAgICAgIE5hbWU6ICBtcGlfaW9jLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIElPQywgUG9ydCwgRXZlbnQsIEZXIERvd25sb2FkLCBhbmQgRlcgVXBsb2FkIG1lc3NhZ2VzCiAgKiAgQ3JlYXRpb24gRGF0ZTogIEF1Z3VzdCAxMSwgMjAwMAogICoKLSAqICAgIG1waV9pb2MuaCBWZXJzaW9uOiAgMDEuMDUueHgKKyAqICAgIG1waV9pb2MuaCBWZXJzaW9uOiAgMDEuMDUuMDgKICAqCiAgKiAgVmVyc2lvbiBIaXN0b3J5CiAgKiAgLS0tLS0tLS0tLS0tLS0tCkBAIC01Nyw2ICs1NywzMCBAQAogICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgQWxpYXNJbmRleCB0byBFVkVOVF9EQVRBX0xPR09VVCBzdHJ1Y3R1cmUuCiAgKiAgMDQtMDEtMDMgIDAxLjAyLjA3ICBBZGRlZCBkZWZpbmVzIGZvciBNUElfRldfSEVBREVSX1NJR05BVFVSRV8uCiAgKiAgMDYtMjYtMDMgIDAxLjAyLjA4ICBBZGRlZCBuZXcgdmFsdWVzIHRvIHRoZSBwcm9kdWN0IGZhbWlseSBkZWZpbmVzLgorICogIDA0LTI5LTA0ICAwMS4wMi4wOSAgQWRkZWQgSU9DQ2FwYWJpbGl0aWVzIGZpZWxkIHRvIE1TR19JT0NfRkFDVFNfUkVQTFkgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBhZGRlZCByZWxhdGVkIGRlZmluZXMuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIEFkZGVkIGZvdXIgbmV3IGZpZWxkcyB0byBNU0dfSU9DX0lOSVQuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCB0aHJlZSBuZXcgZmllbGRzIHRvIE1TR19JT0NfRkFDVFNfUkVQTFkuCisgKiAgICAgICAgICAgICAgICAgICAgICBEZWZpbmVkIGZvdXIgbmV3IGJpdHMgZm9yIHRoZSBJT0NDYXBhYmlsaXRpZXMgZmllbGQgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgIHRoZSBJT0NGYWN0cyByZXBseS4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHR3byBuZXcgUG9ydFR5cGVzIGZvciB0aGUgUG9ydEZhY3RzIHJlcGx5LgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2l4IG5ldyBldmVudHMgYWxvbmcgd2l0aCB0aGVpciBFdmVudERhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBhIG5ldyBNc2dGbGFnIHRvIHRoZSBGd0Rvd25sb2FkIHJlcXVlc3QgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgIGluZGljYXRlIGxhc3Qgc2VnbWVudC4KKyAqICAgICAgICAgICAgICAgICAgICAgIERlZmluZWQgYSBuZXcgaW1hZ2UgdHlwZSBvZiBib290IGxvYWRlci4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIEZXIGZhbWlseSBjb2RlcyBmb3IgU0FTIHByb2R1Y3QgZmFtaWxpZXMuCisgKiAgMTAtMDUtMDQgIDAxLjA1LjAyICBBZGRlZCBSZXBseUZpZm9Ib3N0U2lnbmFsaW5nQWRkciBmaWVsZCB0bworICogICAgICAgICAgICAgICAgICAgICAgTVNHX0lPQ19GQUNUU19SRVBMWS4KKyAqICAxMi0wNy0wNCAgMDEuMDUuMDMgIEFkZGVkIG1vcmUgZGVmaW5lcyBmb3IgU0FTIERpc2NvdmVyeSBFcnJvciBldmVudC4KKyAqICAxMi0wOS0wNCAgMDEuMDUuMDQgIEFkZGVkIFVuc3VwcG9ydGVkIGRldmljZSB0byBTQVMgRGV2aWNlIGV2ZW50LgorICogIDAxLTE1LTA1ICAwMS4wNS4wNSAgQWRkZWQgZXZlbnQgZGF0YSBmb3IgU0FTIFNFUyBFdmVudC4KKyAqICAwMi0wOS0wNSAgMDEuMDUuMDYgIEFkZGVkIE1QSV9GV19VUExPQURfSVRZUEVfRldfQkFDS1VQIGRlZmluZS4KKyAqICAwMi0yMi0wNSAgMDEuMDUuMDcgIEFkZGVkIEhvc3QgUGFnZSBCdWZmZXIgUGVyc2lzdGVudCBmbGFnIHRvIElPQyBGYWN0cworICogICAgICAgICAgICAgICAgICAgICAgUmVwbHkgYW5kIElPQyBJbml0IFJlcXVlc3QuCisgKiAgMDMtMTEtMDUgIDAxLjA1LjA4ICBBZGRlZCBmYW1pbHkgY29kZSBmb3IgMTA2OEUgZmFtaWx5LgorICogICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlZCBJT0NGYWN0cyBSZXBseSBFRURQIENhcGFiaWxpdHkgYml0LgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtOTAsMjAgKzExNCwzNyBAQAogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIEhvc3RNZmFIaWdoQWRkcjsgICAgICAgICAgICAvKiAxMGggKi8KICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBTZW5zZUJ1ZmZlckhpZ2hBZGRyOyAgICAgICAgLyogMTRoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVwbHlGaWZvSG9zdFNpZ25hbGluZ0FkZHI7IC8qIDE4aCAqLworICAgIFNHRV9TSU1QTEVfVU5JT04gICAgICAgIEhvc3RQYWdlQnVmZmVyU0dFOyAgICAgICAgICAvKiAxQ2ggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBNc2dWZXJzaW9uOyAgICAgICAgICAgICAgICAgLyogMjhoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSGVhZGVyVmVyc2lvbjsgICAgICAgICAgICAgIC8qIDJBaCAqLwogfSBNU0dfSU9DX0lOSVQsIE1QSV9QT0lOVEVSIFBUUl9NU0dfSU9DX0lOSVQsCiAgIElPQ0luaXRfdCwgTVBJX1BPSU5URVIgcElPQ0luaXRfdDsKIAogLyogV2hvSW5pdCB2YWx1ZXMgKi8KLSNkZWZpbmUgTVBJX1dIT0lOSVRfTk9fT05FICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMCkKLSNkZWZpbmUgTVBJX1dIT0lOSVRfU1lTVEVNX0JJT1MgICAgICAgICAgICAgICAgICAgICAoMHgwMSkKLSNkZWZpbmUgTVBJX1dIT0lOSVRfUk9NX0JJT1MgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMikKLSNkZWZpbmUgTVBJX1dIT0lOSVRfUENJX1BFRVIgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMykKLSNkZWZpbmUgTVBJX1dIT0lOSVRfSE9TVF9EUklWRVIgICAgICAgICAgICAgICAgICAgICAoMHgwNCkKLSNkZWZpbmUgTVBJX1dIT0lOSVRfTUFOVUZBQ1RVUkVSICAgICAgICAgICAgICAgICAgICAoMHgwNSkKKyNkZWZpbmUgTVBJX1dIT0lOSVRfTk9fT05FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9XSE9JTklUX1NZU1RFTV9CSU9TICAgICAgICAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfV0hPSU5JVF9ST01fQklPUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTVBJX1dIT0lOSVRfUENJX1BFRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDMpCisjZGVmaW5lIE1QSV9XSE9JTklUX0hPU1RfRFJJVkVSICAgICAgICAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBNUElfV0hPSU5JVF9NQU5VRkFDVFVSRVIgICAgICAgICAgICAgICAgICAgICAgICAoMHgwNSkKIAogLyogRmxhZ3MgdmFsdWVzICovCi0jZGVmaW5lIE1QSV9JT0NJTklUX0ZMQUdTX0RJU0NBUkRfRldfSU1BR0UgICAgICAgICAgKDB4MDEpCi0jZGVmaW5lIE1QSV9JT0NJTklUX0ZMQUdTX1JFUExZX0ZJRk9fSE9TVF9TSUdOQUwgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9JT0NJTklUX0ZMQUdTX0hPU1RfUEFHRV9CVUZGRVJfUEVSU0lTVEVOVCAgICgweDA0KQorI2RlZmluZSBNUElfSU9DSU5JVF9GTEFHU19SRVBMWV9GSUZPX0hPU1RfU0lHTkFMICAgICAgICAoMHgwMikKKyNkZWZpbmUgTVBJX0lPQ0lOSVRfRkxBR1NfRElTQ0FSRF9GV19JTUFHRSAgICAgICAgICAgICAgKDB4MDEpCisKKy8qIE1zZ1ZlcnNpb24gKi8KKyNkZWZpbmUgTVBJX0lPQ0lOSVRfTVNHVkVSU0lPTl9NQUpPUl9NQVNLICAgICAgICAgICAgICAgKDB4RkYwMCkKKyNkZWZpbmUgTVBJX0lPQ0lOSVRfTVNHVkVSU0lPTl9NQUpPUl9TSElGVCAgICAgICAgICAgICAgKDgpCisjZGVmaW5lIE1QSV9JT0NJTklUX01TR1ZFUlNJT05fTUlOT1JfTUFTSyAgICAgICAgICAgICAgICgweDAwRkYpCisjZGVmaW5lIE1QSV9JT0NJTklUX01TR1ZFUlNJT05fTUlOT1JfU0hJRlQgICAgICAgICAgICAgICgwKQorCisvKiBIZWFkZXJWZXJzaW9uICovCisjZGVmaW5lIE1QSV9JT0NJTklUX0hFQURFUlZFUlNJT05fVU5JVF9NQVNLICAgICAgICAgICAgICgweEZGMDApCisjZGVmaW5lIE1QSV9JT0NJTklUX0hFQURFUlZFUlNJT05fVU5JVF9TSElGVCAgICAgICAgICAgICg4KQorI2RlZmluZSBNUElfSU9DSU5JVF9IRUFERVJWRVJTSU9OX0RFVl9NQVNLICAgICAgICAgICAgICAoMHgwMEZGKQorI2RlZmluZSBNUElfSU9DSU5JVF9IRUFERVJWRVJTSU9OX0RFVl9TSElGVCAgICAgICAgICAgICAoMCkKKwogCiB0eXBlZGVmIHN0cnVjdCBfTVNHX0lPQ19JTklUX1JFUExZCiB7CkBAIC0xODcsMzIgKzIyOCwzOSBAQAogICAgIE1QSV9GV19WRVJTSU9OICAgICAgICAgIEZXVmVyc2lvbjsgICAgICAgICAgICAgICAgICAvKiAzOGggKi8KICAgICBVMTYgICAgICAgICAgICAgICAgICAgICBIaWdoUHJpb3JpdHlRdWV1ZURlcHRoOyAgICAgLyogM0NoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAgICAgICAgIC8qIDNFaCAqLworICAgIFNHRV9TSU1QTEVfVU5JT04gICAgICAgIEhvc3RQYWdlQnVmZmVyU0dFOyAgICAgICAgICAvKiA0MGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXBseUZpZm9Ib3N0U2lnbmFsaW5nQWRkcjsgLyogNENoICovCiB9IE1TR19JT0NfRkFDVFNfUkVQTFksIE1QSV9QT0lOVEVSIFBUUl9NU0dfSU9DX0ZBQ1RTX1JFUExZLAogICBJT0NGYWN0c1JlcGx5X3QsIE1QSV9QT0lOVEVSIHBJT0NGYWN0c1JlcGx5X3Q7CiAKLSNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX01TR1ZFUlNJT05fTUFKT1JfTUFTSyAgICAgICAgICAoMHhGRjAwKQotI2RlZmluZSBNUElfSU9DRkFDVFNfTVNHVkVSU0lPTl9NSU5PUl9NQVNLICAgICAgICAgICgweDAwRkYpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19NU0dWRVJTSU9OX01BSk9SX01BU0sgICAgICAgICAgICAgICgweEZGMDApCisjZGVmaW5lIE1QSV9JT0NGQUNUU19NU0dWRVJTSU9OX01BSk9SX1NISUZUICAgICAgICAgICAgICg4KQorI2RlZmluZSBNUElfSU9DRkFDVFNfTVNHVkVSU0lPTl9NSU5PUl9NQVNLICAgICAgICAgICAgICAoMHgwMEZGKQorI2RlZmluZSBNUElfSU9DRkFDVFNfTVNHVkVSU0lPTl9NSU5PUl9TSElGVCAgICAgICAgICAgICAoMCkKIAotI2RlZmluZSBNUElfSU9DRkFDVFNfSEVBREVSVkVSU0lPTl9VTklUX01BU0sgICAgICAgICgweEZGMDApCi0jZGVmaW5lIE1QSV9JT0NGQUNUU19IRUFERVJWRVJTSU9OX0RFVl9NQVNLICAgICAgICAgKDB4MDBGRikKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0hEUlZFUlNJT05fVU5JVF9NQVNLICAgICAgICAgICAgICAgKDB4RkYwMCkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0hEUlZFUlNJT05fVU5JVF9TSElGVCAgICAgICAgICAgICAgKDgpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19IRFJWRVJTSU9OX0RFVl9NQVNLICAgICAgICAgICAgICAgICgweDAwRkYpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19IRFJWRVJTSU9OX0RFVl9TSElGVCAgICAgICAgICAgICAgICgwKQogCi0jZGVmaW5lIE1QSV9JT0NGQUNUU19FWENFUFRfQ09ORklHX0NIRUNLU1VNX0ZBSUwgICAgKDB4MDAwMSkKLSNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0VYQ0VQVF9SQUlEX0NPTkZJR19JTlZBTElEICAgICAoMHgwMDAyKQotI2RlZmluZSBNUElfSU9DRkFDVFNfRVhDRVBUX0ZXX0NIRUNLU1VNX0ZBSUwgICAgICAgICgweDAwMDQpCi0jZGVmaW5lIE1QSV9JT0NGQUNUU19FWENFUFRfUEVSU0lTVEVOVF9UQUJMRV9GVUxMICAgKDB4MDAwOCkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0VYQ0VQVF9DT05GSUdfQ0hFQ0tTVU1fRkFJTCAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0VYQ0VQVF9SQUlEX0NPTkZJR19JTlZBTElEICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0VYQ0VQVF9GV19DSEVDS1NVTV9GQUlMICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0VYQ0VQVF9QRVJTSVNURU5UX1RBQkxFX0ZVTEwgICAgICAgKDB4MDAwOCkKIAotI2RlZmluZSBNUElfSU9DRkFDVFNfRkxBR1NfRldfRE9XTkxPQURfQk9PVCAgICAgICAgICgweDAxKQorI2RlZmluZSBNUElfSU9DRkFDVFNfRkxBR1NfRldfRE9XTkxPQURfQk9PVCAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0ZMQUdTX1JFUExZX0ZJRk9fSE9TVF9TSUdOQUwgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19GTEFHU19IT1NUX1BBR0VfQlVGRkVSX1BFUlNJU1RFTlQgICgweDA0KQogCi0jZGVmaW5lIE1QSV9JT0NGQUNUU19FVkVOVFNUQVRFX0RJU0FCTEVEICAgICAgICAgICAgKDB4MDApCi0jZGVmaW5lIE1QSV9JT0NGQUNUU19FVkVOVFNUQVRFX0VOQUJMRUQgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19FVkVOVFNUQVRFX0RJU0FCTEVEICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfSU9DRkFDVFNfRVZFTlRTVEFURV9FTkFCTEVEICAgICAgICAgICAgICAgICAoMHgwMSkKIAotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9ISUdIX1BSSV9RICAgICAgICAgICgweDAwMDAwMDAxKQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9SRVBMWV9IT1NUX1NJR05BTCAgICgweDAwMDAwMDAyKQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9RVUVVRV9GVUxMX0hBTkRMSU5HICgweDAwMDAwMDA0KQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9ESUFHX1RSQUNFX0JVRkZFUiAgICgweDAwMDAwMDA4KQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9TTkFQU0hPVF9CVUZGRVIgICAgICgweDAwMDAwMDEwKQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9FWFRFTkRFRF9CVUZGRVIgICAgICgweDAwMDAwMDIwKQotI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9FRURQICAgICAgICAgICAgICAgICgweDAwMDAwMDQwKQorI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9ISUdIX1BSSV9RICAgICAgICAgICAgICAoMHgwMDAwMDAwMSkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0NBUEFCSUxJVFlfUkVQTFlfSE9TVF9TSUdOQUwgICAgICAgKDB4MDAwMDAwMDIpCisjZGVmaW5lIE1QSV9JT0NGQUNUU19DQVBBQklMSVRZX1FVRVVFX0ZVTExfSEFORExJTkcgICAgICgweDAwMDAwMDA0KQorI2RlZmluZSBNUElfSU9DRkFDVFNfQ0FQQUJJTElUWV9ESUFHX1RSQUNFX0JVRkZFUiAgICAgICAoMHgwMDAwMDAwOCkKKyNkZWZpbmUgTVBJX0lPQ0ZBQ1RTX0NBUEFCSUxJVFlfU05BUFNIT1RfQlVGRkVSICAgICAgICAgKDB4MDAwMDAwMTApCisjZGVmaW5lIE1QSV9JT0NGQUNUU19DQVBBQklMSVRZX0VYVEVOREVEX0JVRkZFUiAgICAgICAgICgweDAwMDAwMDIwKQogCiAKIApAQCAtNDA4LDYgKzQ1Niw4IEBACiAjZGVmaW5lIE1QSV9FVkVOVF9TQVNfREVWSUNFX1NUQVRVU19DSEFOR0UgICgweDAwMDAwMDBGKQogI2RlZmluZSBNUElfRVZFTlRfU0FTX1NFUyAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDAxMCkKICNkZWZpbmUgTVBJX0VWRU5UX1BFUlNJU1RFTlRfVEFCTEVfRlVMTCAgICAgKDB4MDAwMDAwMTEpCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfUEhZX0xJTktfU1RBVFVTICAgICAgICgweDAwMDAwMDEyKQorI2RlZmluZSBNUElfRVZFTlRfU0FTX0RJU0NPVkVSWV9FUlJPUiAgICAgICAoMHgwMDAwMDAxMykKIAogLyogQWNrUmVxdWlyZWQgZmllbGQgdmFsdWVzICovCiAKQEAgLTQ2Nyw2ICs1MTcsMTAgQEAKICAgICBVOCAgICAgICAgICAgICAgICAgICAgICBBU0NROyAgICAgICAgICAgICAgICAgICAgICAgLyogMDVoICovCiAgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgRGV2SGFuZGxlOyAgICAgICAgICAgICAgICAgIC8qIDA2aCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIERldmljZUluZm87ICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBQYXJlbnREZXZIYW5kbGU7ICAgICAgICAgICAgLyogMENoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5TnVtOyAgICAgICAgICAgICAgICAgICAgIC8qIDBFaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwRmggKi8KKyAgICBVNjQgICAgICAgICAgICAgICAgICAgICBTQVNBZGRyZXNzOyAgICAgICAgICAgICAgICAgLyogMTBoICovCiB9IEVWRU5UX0RBVEFfU0FTX0RFVklDRV9TVEFUVVNfQ0hBTkdFLAogICBNUElfUE9JTlRFUiBQVFJfRVZFTlRfREFUQV9TQVNfREVWSUNFX1NUQVRVU19DSEFOR0UsCiAgIE1waUV2ZW50RGF0YVNhc0RldmljZVN0YXR1c0NoYW5nZV90LApAQCAtNDc3LDYgKzUzMSw4IEBACiAjZGVmaW5lIE1QSV9FVkVOVF9TQVNfREVWX1NUQVRfUkNfTk9UX1JFU1BPTkRJTkcgICAgICAgICgweDA0KQogI2RlZmluZSBNUElfRVZFTlRfU0FTX0RFVl9TVEFUX1JDX1NNQVJUX0RBVEEgICAgICAgICAgICAoMHgwNSkKICNkZWZpbmUgTVBJX0VWRU5UX1NBU19ERVZfU1RBVF9SQ19OT19QRVJTSVNUX0FEREVEICAgICAgKDB4MDYpCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfREVWX1NUQVRfUkNfVU5TVVBQT1JURUQgICAgICAgICAgICgweDA3KQorCiAKIC8qIFNDU0kgRXZlbnQgZGF0YSBmb3IgUXVldWUgRnVsbCBldmVudCAqLwogCkBAIC00ODgsNiArNTQ0LDM1IEBACiB9IEVWRU5UX0RBVEFfUVVFVUVfRlVMTCwgTVBJX1BPSU5URVIgUFRSX0VWRU5UX0RBVEFfUVVFVUVfRlVMTCwKICAgRXZlbnREYXRhUXVldWVGdWxsX3QsIE1QSV9QT0lOVEVSIHBFdmVudERhdGFRdWV1ZUZ1bGxfdDsKIAorLyogTVBJIEludGVncmF0ZWQgUkFJRCBFdmVudCBkYXRhICovCisKK3R5cGVkZWYgc3RydWN0IF9FVkVOVF9EQVRBX1JBSUQKK3sKKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBWb2x1bWVJRDsgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgVm9sdW1lQnVzOyAgICAgICAgICAgICAgICAgIC8qIDAxaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlYXNvbkNvZGU7ICAgICAgICAgICAgICAgICAvKiAwMmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQaHlzRGlza051bTsgICAgICAgICAgICAgICAgLyogMDNoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgQVNDOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEFTQ1E7ICAgICAgICAgICAgICAgICAgICAgICAvKiAwNWggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDZoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3NTdGF0dXM7ICAgICAgICAgICAgIC8qIDA4aCAqLworfSBFVkVOVF9EQVRBX1JBSUQsIE1QSV9QT0lOVEVSIFBUUl9FVkVOVF9EQVRBX1JBSUQsCisgIE1waUV2ZW50RGF0YVJhaWRfdCwgTVBJX1BPSU5URVIgcE1waUV2ZW50RGF0YVJhaWRfdDsKKworLyogTVBJIEludGVncmF0ZWQgUkFJRCBFdmVudCBkYXRhIFJlYXNvbkNvZGUgdmFsdWVzICovCisjZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1ZPTFVNRV9DUkVBVEVEICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19WT0xVTUVfREVMRVRFRCAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfVk9MVU1FX1NFVFRJTkdTX0NIQU5HRUQgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1ZPTFVNRV9TVEFUVVNfQ0hBTkdFRCAgICAgICAgICgweDAzKQorI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19WT0xVTUVfUEhZU0RJU0tfQ0hBTkdFRCAgICAgICAoMHgwNCkKKyNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfUEhZU0RJU0tfQ1JFQVRFRCAgICAgICAgICAgICAgKDB4MDUpCisjZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1BIWVNESVNLX0RFTEVURUQgICAgICAgICAgICAgICgweDA2KQorI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19QSFlTRElTS19TRVRUSU5HU19DSEFOR0VEICAgICAoMHgwNykKKyNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfUEhZU0RJU0tfU1RBVFVTX0NIQU5HRUQgICAgICAgKDB4MDgpCisjZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX0RPTUFJTl9WQUxfTkVFREVEICAgICAgICAgICAgICgweDA5KQorI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19TTUFSVF9EQVRBICAgICAgICAgICAgICAgICAgICAoMHgwQSkKKyNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfUkVQTEFDRV9BQ1RJT05fU1RBUlRFRCAgICAgICAgKDB4MEIpCisKIC8qIE1QSSBMaW5rIFN0YXR1cyBDaGFuZ2UgRXZlbnQgZGF0YSAqLwogCiB0eXBlZGVmIHN0cnVjdCBfRVZFTlRfREFUQV9MSU5LX1NUQVRVUwpAQCAtNTM1LDM1ICs2MjAsNjMgQEAKIAogI2RlZmluZSBNUElfRVZFTlRfTE9HT1VUX0FMTF9BTElBU0VTICAgICAgICAoMHhGRikKIAorLyogU0FTIFNFUyBFdmVudCBkYXRhICovCiAKLS8qIE1QSSBJbnRlZ3JhdGVkIFJBSUQgRXZlbnQgZGF0YSAqLwotCi10eXBlZGVmIHN0cnVjdCBfRVZFTlRfREFUQV9SQUlECit0eXBlZGVmIHN0cnVjdCBfRVZFTlRfREFUQV9TQVNfU0VTCiB7Ci0gICAgVTggICAgICAgICAgICAgICAgICAgICAgVm9sdW1lSUQ7ICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFZvbHVtZUJ1czsgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZWFzb25Db2RlOyAgICAgICAgICAgICAgICAgLyogMDJoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5c0Rpc2tOdW07ICAgICAgICAgICAgICAgIC8qIDAzaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEFTQzsgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBBU0NROyAgICAgICAgICAgICAgICAgICAgICAgLyogMDVoICovCi0gICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ7ICAgICAgICAgICAgICAgICAgIC8qIDA2aCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzU3RhdHVzOyAgICAgICAgICAgICAvKiAwOGggKi8KLX0gRVZFTlRfREFUQV9SQUlELCBNUElfUE9JTlRFUiBQVFJfRVZFTlRfREFUQV9SQUlELAotICBNcGlFdmVudERhdGFSYWlkX3QsIE1QSV9QT0lOVEVSIHBNcGlFdmVudERhdGFSYWlkX3Q7CisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5TnVtOyAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBvcnQ7ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQb3J0V2lkdGg7ICAgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLworfSBFVkVOVF9EQVRBX1NBU19TRVMsIE1QSV9QT0lOVEVSIFBUUl9FVkVOVF9EQVRBX1NBU19TRVMsCisgIE1waUV2ZW50RGF0YVNhc1Nlc190LCBNUElfUE9JTlRFUiBwTXBpRXZlbnREYXRhU2FzU2VzX3Q7CiAKLS8qIE1QSSBJbnRlZ3JhdGVkIFJBSUQgRXZlbnQgZGF0YSBSZWFzb25Db2RlIHZhbHVlcyAqLwotI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19WT0xVTUVfQ1JFQVRFRCAgICAgICAgICAgICAgICAoMHgwMCkKLSNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfVk9MVU1FX0RFTEVURUQgICAgICAgICAgICAgICAgKDB4MDEpCi0jZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1ZPTFVNRV9TRVRUSU5HU19DSEFOR0VEICAgICAgICgweDAyKQotI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19WT0xVTUVfU1RBVFVTX0NIQU5HRUQgICAgICAgICAoMHgwMykKLSNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfVk9MVU1FX1BIWVNESVNLX0NIQU5HRUQgICAgICAgKDB4MDQpCi0jZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1BIWVNESVNLX0NSRUFURUQgICAgICAgICAgICAgICgweDA1KQotI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19QSFlTRElTS19ERUxFVEVEICAgICAgICAgICAgICAoMHgwNikKLSNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfUEhZU0RJU0tfU0VUVElOR1NfQ0hBTkdFRCAgICAgKDB4MDcpCi0jZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1BIWVNESVNLX1NUQVRVU19DSEFOR0VEICAgICAgICgweDA4KQotI2RlZmluZSBNUElfRVZFTlRfUkFJRF9SQ19ET01BSU5fVkFMX05FRURFRCAgICAgICAgICAgICAoMHgwOSkKLSNkZWZpbmUgTVBJX0VWRU5UX1JBSURfUkNfU01BUlRfREFUQSAgICAgICAgICAgICAgICAgICAgKDB4MEEpCi0jZGVmaW5lIE1QSV9FVkVOVF9SQUlEX1JDX1JFUExBQ0VfQUNUSU9OX1NUQVJURUQgICAgICAgICgweDBCKQorLyogU0FTIFBoeSBMaW5rIFN0YXR1cyBFdmVudCBkYXRhICovCisKK3R5cGVkZWYgc3RydWN0IF9FVkVOVF9EQVRBX1NBU19QSFlfTElOS19TVEFUVVMKK3sKKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQaHlOdW07ICAgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTGlua1JhdGVzOyAgICAgICAgICAgICAgICAgIC8qIDAxaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIERldkhhbmRsZTsgICAgICAgICAgICAgICAgICAvKiAwMmggKi8KKyAgICBVNjQgICAgICAgICAgICAgICAgICAgICBTQVNBZGRyZXNzOyAgICAgICAgICAgICAgICAgLyogMDRoICovCit9IEVWRU5UX0RBVEFfU0FTX1BIWV9MSU5LX1NUQVRVUywgTVBJX1BPSU5URVIgUFRSX0VWRU5UX0RBVEFfU0FTX1BIWV9MSU5LX1NUQVRVUywKKyAgTXBpRXZlbnREYXRhU2FzUGh5TGlua1N0YXR1c190LCBNUElfUE9JTlRFUiBwTXBpRXZlbnREYXRhU2FzUGh5TGlua1N0YXR1c190OworCisvKiBkZWZpbmVzIGZvciB0aGUgTGlua1JhdGVzIGZpZWxkIG9mIHRoZSBTQVMgUEhZIExpbmsgU3RhdHVzIGV2ZW50ICovCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfUExTX0xSX0NVUlJFTlRfTUFTSyAgICAgICAgICAgICAgICAgICAoMHhGMCkKKyNkZWZpbmUgTVBJX0VWRU5UX1NBU19QTFNfTFJfQ1VSUkVOVF9TSElGVCAgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBNUElfRVZFTlRfU0FTX1BMU19MUl9QUkVWSU9VU19NQVNLICAgICAgICAgICAgICAgICAgKDB4MEYpCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfUExTX0xSX1BSRVZJT1VTX1NISUZUICAgICAgICAgICAgICAgICAoMCkKKyNkZWZpbmUgTVBJX0VWRU5UX1NBU19QTFNfTFJfUkFURV9VTktOT1dOICAgICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBNUElfRVZFTlRfU0FTX1BMU19MUl9SQVRFX1BIWV9ESVNBQkxFRCAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfUExTX0xSX1JBVEVfRkFJTEVEX1NQRUVEX05FR09USUFUSU9OICAoMHgwMikKKyNkZWZpbmUgTVBJX0VWRU5UX1NBU19QTFNfTFJfUkFURV9TQVRBX09PQl9DT01QTEVURSAgICAgICAgICgweDAzKQorI2RlZmluZSBNUElfRVZFTlRfU0FTX1BMU19MUl9SQVRFXzFfNSAgICAgICAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIE1QSV9FVkVOVF9TQVNfUExTX0xSX1JBVEVfM18wICAgICAgICAgICAgICAgICAgICAgICAoMHgwOSkKKworLyogU0FTIERpc2NvdmVyeSBFcnJyb3IgRXZlbnQgZGF0YSAqLworCit0eXBlZGVmIHN0cnVjdCBfRVZFTlRfREFUQV9ESVNDT1ZFUllfRVJST1IKK3sKKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBEaXNjb3ZlcnlTdGF0dXM7ICAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUG9ydDsgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwNWggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgLyogMDZoICovCit9IEVWRU5UX0RBVEFfRElTQ09WRVJZX0VSUk9SLCBNUElfUE9JTlRFUiBQVFJfRVZFTlRfREFUQV9ESVNDT1ZFUllfRVJST1IsCisgIEV2ZW50RGF0YURpc2NvdmVyeUVycm9yX3QsIE1QSV9QT0lOVEVSIHBFdmVudERhdGFEaXNjb3ZlcnlFcnJvcl90OworCisjZGVmaW5lIE1QSV9FVkVOVF9EU0NWUllfRVJSX0RTX0xPT1BfREVURUNURUQgICAgICAgICAgICAgICAoMHgwMDAwMDAwMSkKKyNkZWZpbmUgTVBJX0VWRU5UX0RTQ1ZSWV9FUlJfRFNfVU5BRERSRVNTQUJMRV9ERVZJQ0UgICAgICAgICgweDAwMDAwMDAyKQorI2RlZmluZSBNUElfRVZFTlRfRFNDVlJZX0VSUl9EU19NVUxUSVBMRV9QT1JUUyAgICAgICAgICAgICAgKDB4MDAwMDAwMDQpCisjZGVmaW5lIE1QSV9FVkVOVF9EU0NWUllfRVJSX0RTX0VYUEFOREVSX0VSUiAgICAgICAgICAgICAgICAoMHgwMDAwMDAwOCkKKyNkZWZpbmUgTVBJX0VWRU5UX0RTQ1ZSWV9FUlJfRFNfU01QX1RJTUVPVVQgICAgICAgICAgICAgICAgICgweDAwMDAwMDEwKQorI2RlZmluZSBNUElfRVZFTlRfRFNDVlJZX0VSUl9EU19PVVRfUk9VVEVfRU5UUklFUyAgICAgICAgICAgKDB4MDAwMDAwMjApCisjZGVmaW5lIE1QSV9FVkVOVF9EU0NWUllfRVJSX0RTX0lOREVYX05PVF9FWElTVCAgICAgICAgICAgICAoMHgwMDAwMDA0MCkKKyNkZWZpbmUgTVBJX0VWRU5UX0RTQ1ZSWV9FUlJfRFNfU01QX0ZVTkNUSU9OX0ZBSUxFRCAgICAgICAgICgweDAwMDAwMDgwKQorI2RlZmluZSBNUElfRVZFTlRfRFNDVlJZX0VSUl9EU19TTVBfQ1JDX0VSUk9SICAgICAgICAgICAgICAgKDB4MDAwMDAxMDApCisjZGVmaW5lIE1QSV9FVkVOVF9EU0NWUllfRVJSX0RTX01VTFRQTF9TVUJUUkFDVElWRSAgICAgICAgICAoMHgwMDAwMDIwMCkKKyNkZWZpbmUgTVBJX0VWRU5UX0RTQ1ZSWV9FUlJfRFNfVEFCTEVfVE9fVEFCTEUgICAgICAgICAgICAgICgweDAwMDAwNDAwKQorI2RlZmluZSBNUElfRVZFTlRfRFNDVlJZX0VSUl9EU19NVUxUUExfUEFUSFMgICAgICAgICAgICAgICAgKDB4MDAwMDA4MDApCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC01ODksMTEgKzcwMiwxMyBAQAogfSBNU0dfRldfRE9XTkxPQUQsIE1QSV9QT0lOVEVSIFBUUl9NU0dfRldfRE9XTkxPQUQsCiAgIEZXRG93bmxvYWRfdCwgTVBJX1BPSU5URVIgcEZXRG93bmxvYWRfdDsKIAotI2RlZmluZSBNUElfRldfRE9XTkxPQURfSVRZUEVfUkVTRVJWRUQgICAgICAoMHgwMCkKLSNkZWZpbmUgTVBJX0ZXX0RPV05MT0FEX0lUWVBFX0ZXICAgICAgICAgICAgKDB4MDEpCi0jZGVmaW5lIE1QSV9GV19ET1dOTE9BRF9JVFlQRV9CSU9TICAgICAgICAgICgweDAyKQotI2RlZmluZSBNUElfRldfRE9XTkxPQURfSVRZUEVfTlZEQVRBICAgICAgICAoMHgwMykKLSNkZWZpbmUgTVBJX0ZXX0RPV05MT0FEX0lUWVBFX0JPT1RMT0FERVIgICAgKDB4MDQpCisjZGVmaW5lIE1QSV9GV19ET1dOTE9BRF9NU0dGTEdTX0xBU1RfU0VHTUVOVCAgICAoMHgwMSkKKworI2RlZmluZSBNUElfRldfRE9XTkxPQURfSVRZUEVfUkVTRVJWRUQgICAgICAgICAgKDB4MDApCisjZGVmaW5lIE1QSV9GV19ET1dOTE9BRF9JVFlQRV9GVyAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTVBJX0ZXX0RPV05MT0FEX0lUWVBFX0JJT1MgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBNUElfRldfRE9XTkxPQURfSVRZUEVfTlZEQVRBICAgICAgICAgICAgKDB4MDMpCisjZGVmaW5lIE1QSV9GV19ET1dOTE9BRF9JVFlQRV9CT09UTE9BREVSICAgICAgICAoMHgwNCkKIAogCiB0eXBlZGVmIHN0cnVjdCBfRldEb3dubG9hZFRDU0dFCkBAIC02NDcsNiArNzYyLDcgQEAKICNkZWZpbmUgTVBJX0ZXX1VQTE9BRF9JVFlQRV9CSU9TX0ZMQVNIICAgICAgKDB4MDIpCiAjZGVmaW5lIE1QSV9GV19VUExPQURfSVRZUEVfTlZEQVRBICAgICAgICAgICgweDAzKQogI2RlZmluZSBNUElfRldfVVBMT0FEX0lUWVBFX0JPT1RMT0FERVIgICAgICAoMHgwNCkKKyNkZWZpbmUgTVBJX0ZXX1VQTE9BRF9JVFlQRV9GV19CQUNLVVAgICAgICAgKDB4MDUpCiAKIHR5cGVkZWYgc3RydWN0IF9GV1VwbG9hZFRDU0dFCiB7CkBAIC03MjMsNiArODM5LDcgQEAKICNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfUFJPRF9JTV9TQ1NJICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKICNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfUFJPRF9JU19TQ1NJICAgICAgICAgICAgICAgICAgKDB4MDUwMCkKICNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfUFJPRF9DVFhfU0NTSSAgICAgICAgICAgICAgICAgKDB4MDYwMCkKKyNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfUFJPRF9JUl9TQ1NJICAgICAgICAgICAgICAgICAgKDB4MDcwMCkKIAogI2RlZmluZSBNUElfRldfSEVBREVSX1BJRF9GQU1JTFlfTUFTSyAgICAgICAgICAgKDB4MDBGRikKIC8qIFNDU0kgKi8KQEAgLTc0MCwxMyArODU3LDE2IEBACiAjZGVmaW5lIE1QSV9GV19IRUFERVJfUElEX0ZBTUlMWV8xMDIwVEEwX1NDU0kgICAoMHgwMDBDKQogLyogRmlicmUgQ2hhbm5lbCAqLwogI2RlZmluZSBNUElfRldfSEVBREVSX1BJRF9GQU1JTFlfOTA5X0ZDICAgICAgICAgKDB4MDAwMCkKLSNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzkxOV9GQyAgICAgICAgICgweDAwMDEpCi0jZGVmaW5lIE1QSV9GV19IRUFERVJfUElEX0ZBTUlMWV85MTlYX0ZDICAgICAgICAoMHgwMDAyKQotI2RlZmluZSBNUElfRldfSEVBREVSX1BJRF9GQU1JTFlfOTE5WExfRkMgICAgICAgKDB4MDAwMykKLSNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzk0OV9GQyAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIE1QSV9GV19IRUFERVJfUElEX0ZBTUlMWV85MTlfRkMgICAgICAgICAoMHgwMDAxKSAvKiA5MTkgYW5kIDkyOSAgICAgKi8KKyNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzkxOVhfRkMgICAgICAgICgweDAwMDIpIC8qIDkxOVggYW5kIDkyOVggICAqLworI2RlZmluZSBNUElfRldfSEVBREVSX1BJRF9GQU1JTFlfOTE5WExfRkMgICAgICAgKDB4MDAwMykgLyogOTE5WEwgYW5kIDkyOVhMICovCisjZGVmaW5lIE1QSV9GV19IRUFERVJfUElEX0ZBTUlMWV85MzlYX0ZDICAgICAgICAoMHgwMDA0KSAvKiA5MzlYIGFuZCA5NDlYICAgKi8KICNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzk1OV9GQyAgICAgICAgICgweDAwMDUpCiAvKiBTQVMgKi8KICNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzEwNjRfU0FTICAgICAgICgweDAwMDEpCisjZGVmaW5lIE1QSV9GV19IRUFERVJfUElEX0ZBTUlMWV8xMDY4X1NBUyAgICAgICAoMHgwMDAyKQorI2RlZmluZSBNUElfRldfSEVBREVSX1BJRF9GQU1JTFlfMTA3OF9TQVMgICAgICAgKDB4MDAwMykKKyNkZWZpbmUgTVBJX0ZXX0hFQURFUl9QSURfRkFNSUxZXzEwNnhFX1NBUyAgICAgICgweDAwMDQpIC8qIDEwNjhFLCAxMDY2RSwgYW5kIDEwNjRFICovCiAKIHR5cGVkZWYgc3RydWN0IF9NUElfRVhUX0lNQUdFX0hFQURFUgogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2xhbi5oIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX2xhbi5oCmluZGV4IDNjZWQxMjcuLmRjMGI1MmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9sYW4uaAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfbGFuLmgKQEAgLTEsMTIgKzEsMTIgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDMgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoYykgMjAwMC0yMDA0IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KICAqCiAgKgogICogICAgICAgICAgIE5hbWU6ICBtcGlfbGFuLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIExBTiBtZXNzYWdlcyBhbmQgc3RydWN0dXJlcwogICogIENyZWF0aW9uIERhdGU6ICBKdW5lIDMwLCAyMDAwCiAgKgotICogICAgbXBpX2xhbi5oIFZlcnNpb246ICAwMS4wNS54eAorICogICAgbXBpX2xhbi5oIFZlcnNpb246ICAwMS4wNS4wMQogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTI4LDYgKzI4LDggQEAKICAqICAwMi0yMC0wMSAgMDEuMDEuMDIgIFN0YXJ0ZWQgdXNpbmcgTVBJX1BPSU5URVIuCiAgKiAgMDMtMjctMDEgIDAxLjAxLjAzICBBZGRlZCBzdHJ1Y3R1cmUgb2Zmc2V0IGNvbW1lbnRzLgogICogIDA4LTA4LTAxICAwMS4wMi4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgdjEuMiB3b3JrLgorICogIDA1LTExLTA0ICAwMS4wMy4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjMuCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuNS4KICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9yYWlkLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfcmFpZC5oCmluZGV4IDk1ODBhOWQuLjgwMjI1NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9yYWlkLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX3JhaWQuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV9yYWlkLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIFJBSUQgbWVzc2FnZSBhbmQgc3RydWN0dXJlcwogICogIENyZWF0aW9uIERhdGU6ICBGZWJydWFyeSAyNywgMjAwMQogICoKLSAqICAgIG1waV9yYWlkLmggVmVyc2lvbjogIDAxLjA1Lnh4CisgKiAgICBtcGlfcmFpZC5oIFZlcnNpb246ICAwMS4wNS4wMgogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTI4LDYgKzI4LDEwIEBACiAgKiAgMTEtMTUtMDIgIDAxLjAyLjA4ICBBZGRlZCBtaXNzaW5nIE1zZ0NvbnRleHQgZmllbGQgdG8gTVNHX01BSUxCT1hfUkVRVUVTVC4KICAqICAwNC0wMS0wMyAgMDEuMDIuMDkgIE5ldyBhY3Rpb24gZGF0YSBvcHRpb24gZmxhZyBmb3IKICAqICAgICAgICAgICAgICAgICAgICAgIE1QSV9SQUlEX0FDVElPTl9ERUxFVEVfVk9MVU1FLgorICogIDA1LTExLTA0ICAwMS4wMy4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgTVBJIHYxLjMuCisgKiAgMDgtMTktMDQgIDAxLjA1LjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuNS4KKyAqICAwMS0xNS0wNSAgMDEuMDUuMDIgIEFkZGVkIGRlZmluZXMgZm9yIHRoZSB0d28gbmV3IFJBSUQgQWN0aW9ucyBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIF9TRVRfUkVTWU5DX1JBVEUgYW5kIF9TRVRfREFUQV9TQ1JVQl9SQVRFLgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtODQsNiArODgsOCBAQAogI2RlZmluZSBNUElfUkFJRF9BQ1RJT05fUkVQTEFDRV9QSFlTRElTSyAgICAgICAgICAgICgweDEwKQogI2RlZmluZSBNUElfUkFJRF9BQ1RJT05fQUNUSVZBVEVfVk9MVU1FICAgICAgICAgICAgICgweDExKQogI2RlZmluZSBNUElfUkFJRF9BQ1RJT05fSU5BQ1RJVkFURV9WT0xVTUUgICAgICAgICAgICgweDEyKQorI2RlZmluZSBNUElfUkFJRF9BQ1RJT05fU0VUX1JFU1lOQ19SQVRFICAgICAgICAgICAgICgweDEzKQorI2RlZmluZSBNUElfUkFJRF9BQ1RJT05fU0VUX0RBVEFfU0NSVUJfUkFURSAgICAgICAgICgweDE0KQogCiAvKiBBY3Rpb25EYXRhV29yZCBkZWZpbmVzIGZvciB1c2Ugd2l0aCBNUElfUkFJRF9BQ1RJT05fQ1JFQVRFX1ZPTFVNRSBhY3Rpb24gKi8KICNkZWZpbmUgTVBJX1JBSURfQUNUSU9OX0FEQVRBX0RPX05PVF9TWU5DICAgICAgICAgICAoMHgwMDAwMDAwMSkKQEAgLTk5LDYgKzEwNSwxMyBAQAogLyogQWN0aW9uRGF0YVdvcmQgZGVmaW5lcyBmb3IgdXNlIHdpdGggTVBJX1JBSURfQUNUSU9OX0FDVElWQVRFX1ZPTFVNRSBhY3Rpb24gKi8KICNkZWZpbmUgTVBJX1JBSURfQUNUSU9OX0FEQVRBX0lOQUNUSVZBVEVfQUxMICAgICAgICAoMHgwMDAwMDAwMSkKIAorLyogQWN0aW9uRGF0YVdvcmQgZGVmaW5lcyBmb3IgdXNlIHdpdGggTVBJX1JBSURfQUNUSU9OX1NFVF9SRVNZTkNfUkFURSBhY3Rpb24gKi8KKyNkZWZpbmUgTVBJX1JBSURfQUNUSU9OX0FEQVRBX1JFU1lOQ19SQVRFX01BU0sgICAgICAoMHgwMDAwMDBGRikKKworLyogQWN0aW9uRGF0YVdvcmQgZGVmaW5lcyBmb3IgdXNlIHdpdGggTVBJX1JBSURfQUNUSU9OX1NFVF9EQVRBX1NDUlVCX1JBVEUgYWN0aW9uICovCisjZGVmaW5lIE1QSV9SQUlEX0FDVElPTl9BREFUQV9EQVRBX1NDUlVCX1JBVEVfTUFTSyAgKDB4MDAwMDAwRkYpCisKKwogCiAvKiBSQUlEIEFjdGlvbiByZXBseSBtZXNzYWdlICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9zYXMuaCBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV9zYXMuaAppbmRleCBjYjg3OGY5Li4yMzBmYTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfc2FzLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX3Nhcy5oCkBAIC0xLDgzICsxLDI5IEBACiAvKgotICogIENvcHlyaWdodCAoYykgMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDA0IExTSSBMb2dpYyBDb3Jwb3JhdGlvbi4KICAqCiAgKgogICogICAgICAgICAgIE5hbWU6ICBtcGlfc2FzLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIFNlcmlhbCBBdHRhY2hlZCBTQ1NJIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zCi0gKiAgQ3JlYXRpb24gRGF0ZTogIEFwcmlsIDIzLCAyMDAzCisgKiAgQ3JlYXRpb24gRGF0ZTogIEF1Z3VzdCAxOSwgMjAwNAogICoKLSAqICAgIG1waV9zYXMuaCBWZXJzaW9uOiAgMDEuMDUueHgKKyAqICAgIG1waV9zYXMuaCBWZXJzaW9uOiAgMDEuMDUuMDEKICAqCiAgKiAgVmVyc2lvbiBIaXN0b3J5CiAgKiAgLS0tLS0tLS0tLS0tLS0tCiAgKgogICogIERhdGUgICAgICBWZXJzaW9uICAgRGVzY3JpcHRpb24KICAqICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogIHh4LXl5LXp6ICAwMS4wNS4wMSAgT3JpZ2luYWwgcmVsZWFzZS4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCiAjaWZuZGVmIE1QSV9TQVNfSAogI2RlZmluZSBNUElfU0FTX0gKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qCi0qICAgICAgICBTIGUgciBpIGEgbCAgICBBIHQgdCBhIGMgaCBlIGQgICAgUyBDIFMgSSAgICAgTSBlIHMgcyBhIGcgZSBzCi0qCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBTZXJpYWwgTWFuYWdlbWVudCBQcm90b2NvbCBQYXNzdGhyb3VnaCBSZXF1ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi10eXBlZGVmIHN0cnVjdCBfTVNHX1NNUF9QQVNTVEhST1VHSF9SRVFVRVNUCi17Ci0gICAgVTggICAgICAgICAgICAgICAgICAgICAgUGFzc3Rocm91Z2hGbGFnczsgICAvKiAwMGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbFBvcnQ7ICAgICAgIC8qIDAxaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENoYWluT2Zmc2V0OyAgICAgICAgLyogMDJoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb247ICAgICAgICAgICAvKiAwM2ggKi8KLSAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0RGF0YUxlbmd0aDsgIC8qIDA0aCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3Rpb25SYXRlOyAgICAgLyogMDZoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnRmxhZ3M7ICAgICAgICAgICAvKiAwN2ggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICBNc2dDb250ZXh0OyAgICAgICAgIC8qIDA4aCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgLyogMENoICovCi0gICAgVTY0ICAgICAgICAgICAgICAgICAgICAgU0FTQWRkcmVzczsgICAgICAgICAvKiAxMGggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDE4aCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgLyogMUNoICovCi0gICAgU0dFX1NJTVBMRV9VTklPTiAgICAgICAgU0dMOyAgICAgICAgICAgICAgICAvKiAyMGggKi8KLX0gTVNHX1NNUF9QQVNTVEhST1VHSF9SRVFVRVNULCBNUElfUE9JTlRFUiBQVFJfTVNHX1NNUF9QQVNTVEhST1VHSF9SRVFVRVNULAotICBTbXBQYXNzdGhyb3VnaFJlcXVlc3RfdCwgTVBJX1BPSU5URVIgcFNtcFBhc3N0aHJvdWdoUmVxdWVzdF90OwotCi0jZGVmaW5lIE1QSV9TTVBfUFRfUkVRX1BUX0ZMQUdTX0lNTUVESUFURSAgICAgICAoMHg4MCkKLQotI2RlZmluZSBNUElfU01QX1BUX1JFUV9DT05ORUNUX1JBVEVfTkVHT1RJQVRFRCAgKDB4MDApCi0jZGVmaW5lIE1QSV9TTVBfUFRfUkVRX0NPTk5FQ1RfUkFURV8xXzUgICAgICAgICAoMHgwOCkKLSNkZWZpbmUgTVBJX1NNUF9QVF9SRVFfQ09OTkVDVF9SQVRFXzNfMCAgICAgICAgICgweDA5KQotCi0KLS8qIFNlcmlhbCBNYW5hZ2VtZW50IFByb3RvY29sIFBhc3N0aHJvdWdoIFJlcGx5ICovCi10eXBlZGVmIHN0cnVjdCBfTVNHX1NNUF9QQVNTVEhST1VHSF9SRVBMWQotewotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBhc3N0aHJvdWdoRmxhZ3M7ICAgLyogMDBoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxQb3J0OyAgICAgICAvKiAwMWggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNc2dMZW5ndGg7ICAgICAgICAgIC8qIDAyaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOyAgICAgICAgICAgLyogMDNoICovCi0gICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VEYXRhTGVuZ3RoOyAvKiAwNGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDA2aCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCi0gICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KLSAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDBDaCAqLwotICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFNBU1N0YXR1czsgICAgICAgICAgLyogMERoICovCi0gICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSU9DU3RhdHVzOyAgICAgICAgICAvKiAwRWggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICBJT0NMb2dJbmZvOyAgICAgICAgIC8qIDEwaCAqLwotICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgLyogMTRoICovCi0gICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VEYXRhWzRdOyAgICAvKiAxOGggKi8KLX0gTVNHX1NNUF9QQVNTVEhST1VHSF9SRVBMWSwgTVBJX1BPSU5URVIgUFRSX01TR19TTVBfUEFTU1RIUk9VR0hfUkVQTFksCi0gIFNtcFBhc3N0aHJvdWdoUmVwbHlfdCwgTVBJX1BPSU5URVIgcFNtcFBhc3N0aHJvdWdoUmVwbHlfdDsKLQotI2RlZmluZSBNUElfU01QX1BUX1JFUExZX1BUX0ZMQUdTX0lNTUVESUFURSAgICAgKDB4ODApCi0KLS8qIHZhbHVlcyBmb3IgdGhlIFNBU1N0YXR1cyBmaWVsZCAqLworLyoKKyAqIFZhbHVlcyBmb3IgU0FTU3RhdHVzLgorICovCiAjZGVmaW5lIE1QSV9TQVNTVEFUVVNfU1VDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwKQogI2RlZmluZSBNUElfU0FTU1RBVFVTX1VOS05PV05fRVJST1IgICAgICAgICAgICAgICAgICAgICAoMHgwMSkKICNkZWZpbmUgTVBJX1NBU1NUQVRVU19JTlZBTElEX0ZSQU1FICAgICAgICAgICAgICAgICAgICAgKDB4MDIpCkBAIC0xMjQsNiArNzAsMTMxIEBACiAjZGVmaW5lIE1QSV9TQVNfREVWSUNFX0lORk9fRkFOT1VUX0VYUEFOREVSICAgICAoMHgwMDAwMDAwMykKIAogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgICAgICAgUyBlIHIgaSBhIGwgICAgQSB0IHQgYSBjIGggZSBkICAgIFMgQyBTIEkgICAgIE0gZSBzIHMgYSBnIGUgcworKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogU2VyaWFsIE1hbmFnZW1lbnQgUHJvdG9jb2wgUGFzc3Rocm91Z2ggUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiBzdHJ1Y3QgX01TR19TTVBfUEFTU1RIUk9VR0hfUkVRVUVTVAoreworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBhc3N0aHJvdWdoRmxhZ3M7ICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxQb3J0OyAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDaGFpbk9mZnNldDsgICAgICAgIC8qIDAyaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOyAgICAgICAgICAgLyogMDNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdERhdGFMZW5ndGg7ICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0aW9uUmF0ZTsgICAgIC8qIDA2aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDBDaCAqLworICAgIFU2NCAgICAgICAgICAgICAgICAgICAgIFNBU0FkZHJlc3M7ICAgICAgICAgLyogMTBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAvKiAxOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgIC8qIDFDaCAqLworICAgIFNHRV9TSU1QTEVfVU5JT04gICAgICAgIFNHTDsgICAgICAgICAgICAgICAgLyogMjBoICovCit9IE1TR19TTVBfUEFTU1RIUk9VR0hfUkVRVUVTVCwgTVBJX1BPSU5URVIgUFRSX01TR19TTVBfUEFTU1RIUk9VR0hfUkVRVUVTVCwKKyAgU21wUGFzc3Rocm91Z2hSZXF1ZXN0X3QsIE1QSV9QT0lOVEVSIHBTbXBQYXNzdGhyb3VnaFJlcXVlc3RfdDsKKworLyogdmFsdWVzIGZvciBQYXNzdGhyb3VnaEZsYWdzIGZpZWxkICovCisjZGVmaW5lIE1QSV9TTVBfUFRfUkVRX1BUX0ZMQUdTX0lNTUVESUFURSAgICAgICAoMHg4MCkKKworLyogdmFsdWVzIGZvciBDb25uZWN0aW9uUmF0ZSBmaWVsZCAqLworI2RlZmluZSBNUElfU01QX1BUX1JFUV9DT05ORUNUX1JBVEVfTkVHT1RJQVRFRCAgKDB4MDApCisjZGVmaW5lIE1QSV9TTVBfUFRfUkVRX0NPTk5FQ1RfUkFURV8xXzUgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTVBJX1NNUF9QVF9SRVFfQ09OTkVDVF9SQVRFXzNfMCAgICAgICAgICgweDA5KQorCisKKy8qIFNlcmlhbCBNYW5hZ2VtZW50IFByb3RvY29sIFBhc3N0aHJvdWdoIFJlcGx5ICovCit0eXBlZGVmIHN0cnVjdCBfTVNHX1NNUF9QQVNTVEhST1VHSF9SRVBMWQoreworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBhc3N0aHJvdWdoRmxhZ3M7ICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWxQb3J0OyAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNc2dMZW5ndGg7ICAgICAgICAgIC8qIDAyaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOyAgICAgICAgICAgLyogMDNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VEYXRhTGVuZ3RoOyAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDA2aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgIC8qIDBDaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFNBU1N0YXR1czsgICAgICAgICAgLyogMERoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSU9DU3RhdHVzOyAgICAgICAgICAvKiAwRWggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBJT0NMb2dJbmZvOyAgICAgICAgIC8qIDEwaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgLyogMTRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VEYXRhWzRdOyAgICAvKiAxOGggKi8KK30gTVNHX1NNUF9QQVNTVEhST1VHSF9SRVBMWSwgTVBJX1BPSU5URVIgUFRSX01TR19TTVBfUEFTU1RIUk9VR0hfUkVQTFksCisgIFNtcFBhc3N0aHJvdWdoUmVwbHlfdCwgTVBJX1BPSU5URVIgcFNtcFBhc3N0aHJvdWdoUmVwbHlfdDsKKworI2RlZmluZSBNUElfU01QX1BUX1JFUExZX1BUX0ZMQUdTX0lNTUVESUFURSAgICAgKDB4ODApCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTQVRBIFBhc3N0aHJvdWdoIFJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0eXBlZGVmIHN0cnVjdCBfTVNHX1NBVEFfUEFTU1RIUk9VR0hfUkVRVUVTVAoreworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFRhcmdldElEOyAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgQnVzOyAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDaGFpbk9mZnNldDsgICAgICAgIC8qIDAyaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOyAgICAgICAgICAgLyogMDNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgUGFzc3Rocm91Z2hGbGFnczsgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0aW9uUmF0ZTsgICAgIC8qIDA2aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIE1zZ0ZsYWdzOyAgICAgICAgICAgLyogMDdoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgIC8qIDBDaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgLyogMTBoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAvKiAxNGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBEYXRhTGVuZ3RoOyAgICAgICAgIC8qIDE4aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRGSVNbMjBdOyAgICAgLyogMUNoICovCisgICAgU0dFX1NJTVBMRV9VTklPTiAgICAgICAgU0dMOyAgICAgICAgICAgICAgICAvKiAzMGggKi8KK30gTVNHX1NBVEFfUEFTU1RIUk9VR0hfUkVRVUVTVCwgTVBJX1BPSU5URVIgUFRSX01TR19TQVRBX1BBU1NUSFJPVUdIX1JFUVVFU1QsCisgIFNhdGFQYXNzdGhyb3VnaFJlcXVlc3RfdCwgTVBJX1BPSU5URVIgcFNhdGFQYXNzdGhyb3VnaFJlcXVlc3RfdDsKKworLyogdmFsdWVzIGZvciBQYXNzdGhyb3VnaEZsYWdzIGZpZWxkICovCisjZGVmaW5lIE1QSV9TQVRBX1BUX1JFUV9QVF9GTEFHU19SRVNFVF9ERVZJQ0UgICAoMHgwMjAwKQorI2RlZmluZSBNUElfU0FUQV9QVF9SRVFfUFRfRkxBR1NfRVhFQ1VURV9ESUFHICAgKDB4MDEwMCkKKyNkZWZpbmUgTVBJX1NBVEFfUFRfUkVRX1BUX0ZMQUdTX0RNQV9RVUVVRUQgICAgICgweDAwODApCisjZGVmaW5lIE1QSV9TQVRBX1BUX1JFUV9QVF9GTEFHU19QQUNLRVRfQ09NTUFORCAoMHgwMDQwKQorI2RlZmluZSBNUElfU0FUQV9QVF9SRVFfUFRfRkxBR1NfRE1BICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgTVBJX1NBVEFfUFRfUkVRX1BUX0ZMQUdTX1BJTyAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE1QSV9TQVRBX1BUX1JFUV9QVF9GTEFHU19VTlNQRUNJRklFRF9WVSAoMHgwMDA0KQorI2RlZmluZSBNUElfU0FUQV9QVF9SRVFfUFRfRkxBR1NfV1JJVEUgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTVBJX1NBVEFfUFRfUkVRX1BUX0ZMQUdTX1JFQUQgICAgICAgICAgICgweDAwMDEpCisKKy8qIHZhbHVlcyBmb3IgQ29ubmVjdGlvblJhdGUgZmllbGQgKi8KKyNkZWZpbmUgTVBJX1NBVEFfUFRfUkVRX0NPTk5FQ1RfUkFURV9ORUdPVElBVEVEICgweDAwKQorI2RlZmluZSBNUElfU0FUQV9QVF9SRVFfQ09OTkVDVF9SQVRFXzFfNSAgICAgICAgKDB4MDgpCisjZGVmaW5lIE1QSV9TQVRBX1BUX1JFUV9DT05ORUNUX1JBVEVfM18wICAgICAgICAoMHgwOSkKKworCisvKiBTQVRBIFBhc3N0aHJvdWdoIFJlcGx5ICovCit0eXBlZGVmIHN0cnVjdCBfTVNHX1NBVEFfUEFTU1RIUk9VR0hfUkVQTFkKK3sKKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRJRDsgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIEJ1czsgICAgICAgICAgICAgICAgLyogMDFoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnTGVuZ3RoOyAgICAgICAgICAvKiAwMmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjsgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFBhc3N0aHJvdWdoRmxhZ3M7ICAgLyogMDRoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAvKiAwNmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNc2dGbGFnczsgICAgICAgICAgIC8qIDA3aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIE1zZ0NvbnRleHQ7ICAgICAgICAgLyogMDhoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQyOyAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBTQVNTdGF0dXM7ICAgICAgICAgIC8qIDBEaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIElPQ1N0YXR1czsgICAgICAgICAgLyogMEVoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgSU9DTG9nSW5mbzsgICAgICAgICAvKiAxMGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBTdGF0dXNGSVNbMjBdOyAgICAgIC8qIDE0aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFN0YXR1c0NvbnRyb2xSZWdpc3RlcnM7IC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFRyYW5zZmVyQ291bnQ7ICAgICAgLyogMkNoICovCit9IE1TR19TQVRBX1BBU1NUSFJPVUdIX1JFUExZLCBNUElfUE9JTlRFUiBQVFJfTVNHX1NBVEFfUEFTU1RIUk9VR0hfUkVQTFksCisgIFNhdGFQYXNzdGhyb3VnaFJlcGx5X3QsIE1QSV9QT0lOVEVSIHBTYXRhUGFzc3Rocm91Z2hSZXBseV90OworCisKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFNBUyBJTyBVbml0IENvbnRyb2wgUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xNDgsMTUgKzIxOSwxMyBAQAogfSBNU0dfU0FTX0lPVU5JVF9DT05UUk9MX1JFUVVFU1QsIE1QSV9QT0lOVEVSIFBUUl9NU0dfU0FTX0lPVU5JVF9DT05UUk9MX1JFUVVFU1QsCiAgIFNhc0lvVW5pdENvbnRyb2xSZXF1ZXN0X3QsIE1QSV9QT0lOVEVSIHBTYXNJb1VuaXRDb250cm9sUmVxdWVzdF90OwogCi0vKiB2YWx1ZXMgZm9yIHRoZSAuLi4gZmllbGQgKi8KKy8qIHZhbHVlcyBmb3IgdGhlIE9wZXJhdGlvbiBmaWVsZCAqLwogI2RlZmluZSBNUElfU0FTX09QX0NMRUFSX05PVF9QUkVTRU5UICAgICAgICAgICAgICgweDAxKQotI2RlZmluZSBNUElfU0FTX09QX0NMRUFSX0FMTCAgICAgICAgICAgICAgICAgICAgICgweDAyKQotI2RlZmluZSBNUElfU0FTX09QX01BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAzKQotI2RlZmluZSBNUElfU0FTX09QX01PVkUgICAgICAgICAgICAgICAgICAgICAgICAgICgweDA0KQotI2RlZmluZSBNUElfU0FTX09QX0NMRUFSICAgICAgICAgICAgICAgICAgICAgICAgICgweDA1KQorI2RlZmluZSBNUElfU0FTX09QX0NMRUFSX0FMTF9QRVJTSVNURU5UICAgICAgICAgICgweDAyKQogI2RlZmluZSBNUElfU0FTX09QX1BIWV9MSU5LX1JFU0VUICAgICAgICAgICAgICAgICgweDA2KQogI2RlZmluZSBNUElfU0FTX09QX1BIWV9IQVJEX1JFU0VUICAgICAgICAgICAgICAgICgweDA3KQogI2RlZmluZSBNUElfU0FTX09QX1BIWV9DTEVBUl9FUlJPUl9MT0cgICAgICAgICAgICgweDA4KQorI2RlZmluZSBNUElfU0FTX09QX01BUF9DVVJSRU5UICAgICAgICAgICAgICAgICAgICgweDA5KQogCiAKIC8qIFNBUyBJTyBVbml0IENvbnRyb2wgUmVwbHkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90YXJnLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfdGFyZy5oCmluZGV4IDgwNGRjODUuLjYyMzkwMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90YXJnLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX3RhcmcuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV90YXJnLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIFRhcmdldCBtb2RlIG1lc3NhZ2VzIGFuZCBzdHJ1Y3R1cmVzCiAgKiAgQ3JlYXRpb24gRGF0ZTogIEp1bmUgMjIsIDIwMDAKICAqCi0gKiAgICBtcGlfdGFyZy5oIFZlcnNpb246ICAwMS4wNS54eAorICogICAgbXBpX3RhcmcuaCBWZXJzaW9uOiAgMDEuMDUuMDQKICAqCiAgKiAgVmVyc2lvbiBIaXN0b3J5CiAgKiAgLS0tLS0tLS0tLS0tLS0tCkBAIC00Myw2ICs0MywxNiBAQAogICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgUFJJT1JJVFlfUkVBU09OX1RBUkdFVF9CVVNZLgogICogIDExLTE1LTAyICAwMS4wMi4wOCAgQWRkZWQgQWxpYXNJRCBmaWVsZCB0byBNUElfVEFSR0VUX1NDU0lfU1BJX0NNRF9CVUZGRVIuCiAgKiAgMDQtMDEtMDMgIDAxLjAyLjA5ICBBZGRlZCBPcHRpb25hbE94aWQgZmllbGQgdG8gTVBJX1RBUkdFVF9GQ1BfQ01EX0JVRkZFUi4KKyAqICAwNS0xMS0wNCAgMDEuMDMuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS4zLgorICogIDA4LTE5LTA0ICAwMS4wNS4wMSAgQWRkZWQgbmV3IHJlcXVlc3QgbWVzc2FnZSBzdHJ1Y3R1cmVzIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgTVNHX1RBUkdFVF9DTURfQlVGX1BPU1RfQkFTRV9SRVFVRVNULAorICogICAgICAgICAgICAgICAgICAgICAgTVNHX1RBUkdFVF9DTURfQlVGX1BPU1RfTElTVF9SRVFVRVNULCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgIE1TR19UQVJHRVRfQVNTSVNUX0VYVF9SRVFVRVNULgorICogICAgICAgICAgICAgICAgICAgICAgQWRkZWQgbmV3IHN0cnVjdHVyZXMgZm9yIFNBUyBTU1AgQ29tbWFuZCBidWZmZXIsIFNTUAorICogICAgICAgICAgICAgICAgICAgICAgVGFzayBidWZmZXIsIGFuZCBTU1AgU3RhdHVzIElVLgorICogIDEwLTA1LTA0ICAwMS4wNS4wMiAgTVNHX1RBUkdFVF9DTURfQlVGRkVSX1BPU1RfQkFTRV9MSVNUX1JFUExZIGFkZGVkLgorICogIDAyLTIyLTA1ICAwMS4wNS4wMyAgQ2hhbmdlZCBhIGNvbW1lbnQuCisgKiAgMDMtMTEtMDUgIDAxLjA1LjA0ICBSZW1vdmVkIFRhcmdldEFzc2lzdEV4dGVuZGVkIFJlcXVlc3QuCiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC0xMzMsMTggKzE0Myw2IEBACiB9IE1TR19QUklPUklUWV9DTURfUkVDRUlWRURfUkVQTFksIE1QSV9QT0lOVEVSIFBUUl9NU0dfUFJJT1JJVFlfQ01EX1JFQ0VJVkVEX1JFUExZLAogICBQcmlvcml0eUNvbW1hbmRSZWNlaXZlZFJlcGx5X3QsIE1QSV9QT0lOVEVSIHBQcmlvcml0eUNvbW1hbmRSZWNlaXZlZFJlcGx5X3Q7CiAKLSNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX05PX0RJU0NPTk5FQ1QgICAgICAgICAgICgweDAwKQotI2RlZmluZSBQUklPUklUWV9SRUFTT05fU0NTSV9UQVNLX01BTkFHRU1FTlQgICAgKDB4MDEpCi0jZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9DTURfUEFSSVRZX0VSUiAgICAgICAgICAoMHgwMikKLSNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX01TR19PVVRfUEFSSVRZX0VSUiAgICAgICgweDAzKQotI2RlZmluZSBQUklPUklUWV9SRUFTT05fTFFfQ1JDX0VSUiAgICAgICAgICAgICAgKDB4MDQpCi0jZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9DTURfQ1JDX0VSUiAgICAgICAgICAgICAoMHgwNSkKLSNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX1BST1RPQ09MX0VSUiAgICAgICAgICAgICgweDA2KQotI2RlZmluZSBQUklPUklUWV9SRUFTT05fREFUQV9PVVRfUEFSSVRZX0VSUiAgICAgKDB4MDcpCi0jZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9EQVRBX09VVF9DUkNfRVJSICAgICAgICAoMHgwOCkKLSNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX1RBUkdFVF9CVVNZICAgICAgICAgICAgICgweDA5KQotI2RlZmluZSBQUklPUklUWV9SRUFTT05fVU5LTk9XTiAgICAgICAgICAgICAgICAgKDB4RkYpCi0KIAogdHlwZWRlZiBzdHJ1Y3QgX01TR19UQVJHRVRfQ01EX0JVRkZFUl9QT1NUX0VSUk9SX1JFUExZCiB7CkBAIC0xNjQsNiArMTYyLDg5IEBACiAgIE1QSV9QT0lOVEVSIFBUUl9NU0dfVEFSR0VUX0NNRF9CVUZGRVJfUE9TVF9FUlJPUl9SRVBMWSwKICAgVGFyZ2V0Q21kQnVmZmVyUG9zdEVycm9yUmVwbHlfdCwgTVBJX1BPSU5URVIgcFRhcmdldENtZEJ1ZmZlclBvc3RFcnJvclJlcGx5X3Q7CiAKKyNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX05PX0RJU0NPTk5FQ1QgICAgICAgICAgICgweDAwKQorI2RlZmluZSBQUklPUklUWV9SRUFTT05fU0NTSV9UQVNLX01BTkFHRU1FTlQgICAgKDB4MDEpCisjZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9DTURfUEFSSVRZX0VSUiAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX01TR19PVVRfUEFSSVRZX0VSUiAgICAgICgweDAzKQorI2RlZmluZSBQUklPUklUWV9SRUFTT05fTFFfQ1JDX0VSUiAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9DTURfQ1JDX0VSUiAgICAgICAgICAgICAoMHgwNSkKKyNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX1BST1RPQ09MX0VSUiAgICAgICAgICAgICgweDA2KQorI2RlZmluZSBQUklPUklUWV9SRUFTT05fREFUQV9PVVRfUEFSSVRZX0VSUiAgICAgKDB4MDcpCisjZGVmaW5lIFBSSU9SSVRZX1JFQVNPTl9EQVRBX09VVF9DUkNfRVJSICAgICAgICAoMHgwOCkKKyNkZWZpbmUgUFJJT1JJVFlfUkVBU09OX1RBUkdFVF9CVVNZICAgICAgICAgICAgICgweDA5KQorI2RlZmluZSBQUklPUklUWV9SRUFTT05fVU5LTk9XTiAgICAgICAgICAgICAgICAgKDB4RkYpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUYXJnZXQgQ29tbWFuZCBCdWZmZXIgUG9zdCBCYXNlIFJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0eXBlZGVmIHN0cnVjdCBfTVNHX1RBUkdFVF9DTURfQlVGX1BPU1RfQkFTRV9SRVFVRVNUCit7CisgICAgVTggICAgICAgICAgICAgICAgICAgICAgQnVmZmVyUG9zdEZsYWdzOyAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBvcnROdW1iZXI7ICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDaGFpbk9mZnNldDsgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb247ICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFRvdGFsQ21kQnVmZmVyczsgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnRmxhZ3M7ICAgICAgICAgICAgICAgICAgIC8qIDA3aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIE1zZ0NvbnRleHQ7ICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgQ21kQnVmZmVyTGVuZ3RoOyAgICAgICAgICAgIC8qIDEwaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIE5leHRDbWRCdWZmZXJPZmZzZXQ7ICAgICAgICAvKiAxMmggKi8KKyAgICBVMzIgICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzc0xvdzsgICAgICAgICAgICAgLyogMTRoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3NIaWdoOyAgICAgICAgICAgIC8qIDE4aCAqLworfSBNU0dfVEFSR0VUX0NNRF9CVUZfUE9TVF9CQVNFX1JFUVVFU1QsCisgIE1QSV9QT0lOVEVSIFBUUl9fTVNHX1RBUkdFVF9DTURfQlVGX1BPU1RfQkFTRV9SRVFVRVNULAorICBUYXJnZXRDbWRCdWZmZXJQb3N0QmFzZVJlcXVlc3RfdCwKKyAgTVBJX1BPSU5URVIgcFRhcmdldENtZEJ1ZmZlclBvc3RCYXNlUmVxdWVzdF90OworCisjZGVmaW5lIENNRF9CVUZGRVJfUE9TVF9CQVNFX0ZMQUdTX0FVVE9fUE9TVF9BTEwgICAgKDB4MDEpCisKKwordHlwZWRlZiBzdHJ1Y3QgX01TR19UQVJHRVRfQ01EX0JVRkZFUl9QT1NUX0JBU0VfTElTVF9SRVBMWQoreworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkOyAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNc2dMZW5ndGg7ICAgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb247ICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgLyogMDZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnRmxhZ3M7ICAgICAgICAgICAgICAgICAgIC8qIDA3aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIE1zZ0NvbnRleHQ7ICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgSU9DU3RhdHVzOyAgICAgICAgICAgICAgICAgIC8qIDBFaCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIElPQ0xvZ0luZm87ICAgICAgICAgICAgICAgICAvKiAxMGggKi8KK30gTVNHX1RBUkdFVF9DTURfQlVGRkVSX1BPU1RfQkFTRV9MSVNUX1JFUExZLAorICBNUElfUE9JTlRFUiBQVFJfTVNHX1RBUkdFVF9DTURfQlVGRkVSX1BPU1RfQkFTRV9MSVNUX1JFUExZLAorICBUYXJnZXRDbWRCdWZmZXJQb3N0QmFzZUxpc3RSZXBseV90LAorICBNUElfUE9JTlRFUiBwVGFyZ2V0Q21kQnVmZmVyUG9zdEJhc2VMaXN0UmVwbHlfdDsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRhcmdldCBDb21tYW5kIEJ1ZmZlciBQb3N0IExpc3QgUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3R5cGVkZWYgc3RydWN0IF9NU0dfVEFSR0VUX0NNRF9CVUZfUE9TVF9MSVNUX1JFUVVFU1QKK3sKKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgLyogMDBoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUG9ydE51bWJlcjsgICAgICAgICAgICAgICAgIC8qIDAxaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIENoYWluT2Zmc2V0OyAgICAgICAgICAgICAgICAvKiAwMmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjsgICAgICAgICAgICAgICAgICAgLyogMDNoICovCisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgQ21kQnVmZmVyQ291bnQ7ICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwNmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBNc2dGbGFnczsgICAgICAgICAgICAgICAgICAgLyogMDdoICovCisgICAgVTMyICAgICAgICAgICAgICAgICAgICAgTXNnQ29udGV4dDsgICAgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAvKiAwQ2ggKi8KKyAgICBVMTYgICAgICAgICAgICAgICAgICAgICBJb0luZGV4WzJdOyAgICAgICAgICAgICAgICAgLyogMTBoICovCit9IE1TR19UQVJHRVRfQ01EX0JVRl9QT1NUX0xJU1RfUkVRVUVTVCwKKyAgTVBJX1BPSU5URVIgUFRSX01TR19UQVJHRVRfQ01EX0JVRl9QT1NUX0xJU1RfUkVRVUVTVCwKKyAgVGFyZ2V0Q21kQnVmZmVyUG9zdExpc3RSZXF1ZXN0X3QsCisgIE1QSV9QT0lOVEVSIHBUYXJnZXRDbWRCdWZmZXJQb3N0TGlzdFJlcXVlc3RfdDsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIENvbW1hbmQgQnVmZmVyIEZvcm1hdHMgKHdpdGggMTYgYnl0ZSBDREIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIHR5cGVkZWYgc3RydWN0IF9NUElfVEFSR0VUX0ZDUF9DTURfQlVGRkVSCiB7CkBAIC0yMDEsNiArMjgyLDQ2IEBACiAgIE1waVRhcmdldFNjc2lTcGlDbWRCdWZmZXIsIE1QSV9QT0lOVEVSIHBNcGlUYXJnZXRTY3NpU3BpQ21kQnVmZmVyOwogCiAKK3R5cGVkZWYgc3RydWN0IF9NUElfVEFSR0VUX1NTUF9DTURfQlVGRkVSCit7CisgICAgVTggICAgICBGcmFtZVR5cGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVMTYgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTE2ICAgICBJbml0aWF0b3JUYWc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDA0aCAqLworICAgIFUxNiAgICAgRGV2SGFuZGxlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNmggKi8KKyAgICAvKiBDT01NQU5EIGluZm9ybWF0aW9uIHVuaXQgc3RhcnRzIGhlcmUgKi8KKyAgICBVOCAgICAgIExvZ2ljYWxVbml0TnVtYmVyWzhdOyAgICAgICAgICAgICAgICAgICAgICAgLyogMDhoICovCisgICAgVTggICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwaCAqLworICAgIFU4ICAgICAgVGFza0F0dHJpYnV0ZTsgLyogbG93ZXIgMyBiaXRzICovICAgICAgICAgICAvKiAxMWggKi8KKyAgICBVOCAgICAgIFJlc2VydmVkNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTJoICovCisgICAgVTggICAgICBBZGRpdGlvbmFsQ0RCTGVuZ3RoOyAvKiB1cHBlciA1IGJpdHMgKi8gICAgIC8qIDEzaCAqLworICAgIFU4ICAgICAgQ0RCWzE2XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxNGggKi8KKyAgICAvKiBBZGRpdGlvbmFsIENEQiBieXRlcyBleHRlbmQgcGFzdCB0aGUgQ0RCIGZpZWxkICovCit9IE1QSV9UQVJHRVRfU1NQX0NNRF9CVUZGRVIsIE1QSV9QT0lOVEVSIFBUUl9NUElfVEFSR0VUX1NTUF9DTURfQlVGRkVSLAorICBNcGlUYXJnZXRTc3BDbWRCdWZmZXIsIE1QSV9QT0lOVEVSIHBNcGlUYXJnZXRTc3BDbWRCdWZmZXI7CisKK3R5cGVkZWYgc3RydWN0IF9NUElfVEFSR0VUX1NTUF9UQVNLX0JVRkZFUgoreworICAgIFU4ICAgICAgRnJhbWVUeXBlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMGggKi8KKyAgICBVOCAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDFoICovCisgICAgVTE2ICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyaCAqLworICAgIFUxNiAgICAgSW5pdGlhdG9yVGFnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVMTYgICAgIERldkhhbmRsZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDZoICovCisgICAgLyogVEFTSyBpbmZvcm1hdGlvbiB1bml0IHN0YXJ0cyBoZXJlICovCisgICAgVTggICAgICBMb2dpY2FsVW5pdE51bWJlcls4XTsgICAgICAgICAgICAgICAgICAgICAgIC8qIDA4aCAqLworICAgIFU4ICAgICAgUmVzZXJ2ZWQzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMGggKi8KKyAgICBVOCAgICAgIFJlc2VydmVkNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTFoICovCisgICAgVTggICAgICBUYXNrTWFuYWdlbWVudEZ1bmN0aW9uOyAgICAgICAgICAgICAgICAgICAgIC8qIDEyaCAqLworICAgIFU4ICAgICAgUmVzZXJ2ZWQ1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxM2ggKi8KKyAgICBVMTYgICAgIE1hbmFnZWRUYXNrVGFnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTRoICovCisgICAgVTE2ICAgICBSZXNlcnZlZDY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE2aCAqLworICAgIFUzMiAgICAgUmVzZXJ2ZWQ3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxOGggKi8KKyAgICBVMzIgICAgIFJlc2VydmVkODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMUNoICovCisgICAgVTMyICAgICBSZXNlcnZlZDk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDIwaCAqLworfSBNUElfVEFSR0VUX1NTUF9UQVNLX0JVRkZFUiwgTVBJX1BPSU5URVIgUFRSX01QSV9UQVJHRVRfU1NQX1RBU0tfQlVGRkVSLAorICBNcGlUYXJnZXRTc3BUYXNrQnVmZmVyLCBNUElfUE9JTlRFUiBwTXBpVGFyZ2V0U3NwVGFza0J1ZmZlcjsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFRhcmdldCBBc3Npc3QgUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0zMDgsNiArNDI5LDI3IEBACiB9IE1QSV9UQVJHRVRfU0NTSV9TUElfU1RBVFVTX0lVLCBNUElfUE9JTlRFUiBQVFJfTVBJX1RBUkdFVF9TQ1NJX1NQSV9TVEFUVVNfSVUsCiAgIFRhcmdldFNjc2lTcGlTdGF0dXNJVV90LCBNUElfUE9JTlRFUiBwVGFyZ2V0U2NzaVNwaVN0YXR1c0lVX3Q7CiAKKy8qCisgKiBOT1RFOiBUaGUgU1NQIHN0YXR1cyBJVSBpcyBiaWctZW5kaWFuLiBXaGVuIHVzZWQgb24gYSBsaXR0bGUtZW5kaWFuIHN5c3RlbSwKKyAqIHRoaXMgc3RydWN0dXJlIHByb3Blcmx5IG9yZGVycyB0aGUgYnl0ZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IF9NUElfVEFSR0VUX1NTUF9SU1BfSVUKK3sKKyAgICBVMzIgICAgIFJlc2VydmVkMFs2XTsgLyogcmVzZXJ2ZWQgZm9yIFNTUCBoZWFkZXIgKi8gLyogMDBoICovCisgICAgLyogc3RhcnQgb2YgUkVTUE9OU0UgaW5mb3JtYXRpb24gdW5pdCAqLworICAgIFUzMiAgICAgUmVzZXJ2ZWQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxOGggKi8KKyAgICBVMzIgICAgIFJlc2VydmVkMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMUNoICovCisgICAgVTE2ICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDIwaCAqLworICAgIFU4ICAgICAgRGF0YVByZXM7IC8qIGxvd2VyIDIgYml0cyAqLyAgICAgICAgICAgICAgICAvKiAyMmggKi8KKyAgICBVOCAgICAgIFN0YXR1czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjNoICovCisgICAgVTMyICAgICBSZXNlcnZlZDQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI0aCAqLworICAgIFUzMiAgICAgU2Vuc2VEYXRhTGVuZ3RoOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyOGggKi8KKyAgICBVMzIgICAgIFJlc3BvbnNlRGF0YUxlbmd0aDsgICAgICAgICAgICAgICAgICAgICAgICAgLyogMkNoICovCisgICAgVTggICAgICBSZXNwb25zZVNlbnNlRGF0YVs0XTsgICAgICAgICAgICAgICAgICAgICAgIC8qIDMwaCAqLworfSBNUElfVEFSR0VUX1NTUF9SU1BfSVUsIE1QSV9QT0lOVEVSIFBUUl9NUElfVEFSR0VUX1NTUF9SU1BfSVUsCisgIE1waVRhcmdldFNzcFJzcEl1X3QsIE1QSV9QT0lOVEVSIHBNcGlUYXJnZXRTc3BSc3BJdV90OworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogVGFyZ2V0IE1vZGUgQWJvcnQgUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90b29sLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfdG9vbC5oCmluZGV4IDUzNmQxOTcuLmFhOTA1M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90b29sLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX3Rvb2wuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV90b29sLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIFRvb2xib3ggc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMKICAqICBDcmVhdGlvbiBEYXRlOiAgSnVseSAzMCwgMjAwMQogICoKLSAqICAgIG1waV90b29sLmggVmVyc2lvbjogIDAxLjA1Lnh4CisgKiAgICBtcGlfdG9vbC5oIFZlcnNpb246ICAwMS4wNS4wMwogICoKICAqICBWZXJzaW9uIEhpc3RvcnkKICAqICAtLS0tLS0tLS0tLS0tLS0KQEAgLTE1LDYgKzE1LDE2IEBACiAgKiAgLS0tLS0tLS0gIC0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICAwOC0wOC0wMSAgMDEuMDIuMDEgIE9yaWdpbmFsIHJlbGVhc2UuCiAgKiAgMDgtMjktMDEgIDAxLjAyLjAyICBBZGRlZCBESUFHX0RBVEFfVVBMT0FEX0hFQURFUiBhbmQgcmVsYXRlZCBkZWZpbmVzLgorICogIDAxLTE2LTA0ICAwMS4wMi4wMyAgQWRkZWQgZGVmaW5lcyBhbmQgc3RydWN0dXJlcyBmb3IgbmV3IHRvb2xzCisgKi4gICAgICAgICAgICAgICAgICAgICBNUElfVE9PTEJPWF9JU1RXSV9SRUFEX1dSSVRFX1RPT0wgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBNUElfVE9PTEJPWF9GQ19NQU5BR0VNRU5UX1RPT0wuCisgKiAgMDQtMjktMDQgIDAxLjAyLjA0ICBBZGRlZCBtZXNzYWdlIHN0cnVjdHVyZXMgZm9yIERpYWdub3N0aWMgQnVmZmVyIFBvc3QgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBEaWFnbm9zdGljIFJlbGVhc2UgcmVxdWVzdHMgYW5kIHJlcGxpZXMuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS41LgorICogIDEwLTA2LTA0ICAwMS4wNS4wMiAgQWRkZWQgZGVmaW5lIGZvciBNUElfRElBR19CVUZfVFlQRV9DT1VOVC4KKyAqICAwMi0wOS0wNSAgMDEuMDUuMDMgIEFkZGVkIGZyYW1lIHNpemUgb3B0aW9uIHRvIEZDIG1hbmFnZW1lbnQgdG9vbC4KKyAqICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIEJlYWNvbiB0b29sIHRvIHRoZSBUb29sYm94LgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtMjYsNiArMzYsNyBAQAogI2RlZmluZSBNUElfVE9PTEJPWF9ESUFHX0RBVEFfVVBMT0FEX1RPT0wgICAgICAgICAgICgweDAyKQogI2RlZmluZSBNUElfVE9PTEJPWF9JU1RXSV9SRUFEX1dSSVRFX1RPT0wgICAgICAgICAgICgweDAzKQogI2RlZmluZSBNUElfVE9PTEJPWF9GQ19NQU5BR0VNRU5UX1RPT0wgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBNUElfVE9PTEJPWF9CRUFDT05fVE9PTCAgICAgICAgICAgICAgICAgICAgICgweDA1KQogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMTg1LDExICsxOTYsMjEgQEAKIH0gTVBJX1RCX0ZDX01BTkFHRV9QSURfQUksIE1QSV9QT0lOVEVSIFBUUl9NUElfVEJfRkNfTUFOQUdFX1BJRF9BSSwKICAgTXBpVGJGY01hbmFnZVBpZEFpX3QsIE1QSV9QT0lOVEVSIHBNcGlUYkZjTWFuYWdlUGlkQWlfdDsKIAorLyogQWN0aW9uSW5mbyBmb3Igc2V0IG1heCBmcmFtZSBzaXplICovCit0eXBlZGVmIHN0cnVjdCBfTVBJX1RCX0ZDX01BTkFHRV9GUkFNRV9TSVpFX0FJCit7CisgICAgVTE2ICAgICAgICAgICAgICAgICAgICAgRnJhbWVTaXplOyAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFBvcnROdW07ICAgICAgICAgICAgICAgICAgICAvKiAwMmggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDE7ICAgICAgICAgICAgICAgICAgLyogMDNoICovCit9IE1QSV9UQl9GQ19NQU5BR0VfRlJBTUVfU0laRV9BSSwgTVBJX1BPSU5URVIgUFRSX01QSV9UQl9GQ19NQU5BR0VfRlJBTUVfU0laRV9BSSwKKyAgTXBpVGJGY01hbmFnZUZyYW1lU2l6ZUFpX3QsIE1QSV9QT0lOVEVSIHBNcGlUYkZjTWFuYWdlRnJhbWVTaXplQWlfdDsKKwogLyogdW5pb24gb2YgQWN0aW9uSW5mbyAqLwogdHlwZWRlZiB1bmlvbiBfTVBJX1RCX0ZDX01BTkFHRV9BSV9VTklPTgogewogICAgIE1QSV9UQl9GQ19NQU5BR0VfQlVTX1RJRF9BSSAgICAgQnVzVGlkOwogICAgIE1QSV9UQl9GQ19NQU5BR0VfUElEX0FJICAgICAgICAgUG9ydDsKKyAgICBNUElfVEJfRkNfTUFOQUdFX0ZSQU1FX1NJWkVfQUkgIEZyYW1lU2l6ZTsKIH0gTVBJX1RCX0ZDX01BTkFHRV9BSV9VTklPTiwgTVBJX1BPSU5URVIgUFRSX01QSV9UQl9GQ19NQU5BR0VfQUlfVU5JT04sCiAgIE1waVRiRmNNYW5hZ2VBaVVuaW9uX3QsIE1QSV9QT0lOVEVSIHBNcGlUYkZjTWFuYWdlQWlVbmlvbl90OwogCkBAIC0yMTQsNiArMjM1LDMyIEBACiAjZGVmaW5lIE1QSV9UQl9GQ19NQU5BR0VfQUNUSU9OX0RJU0NfQUxMICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9UQl9GQ19NQU5BR0VfQUNUSU9OX0RJU0NfUElEICAgICAgICAgICAgKDB4MDEpCiAjZGVmaW5lIE1QSV9UQl9GQ19NQU5BR0VfQUNUSU9OX0RJU0NfQlVTX1RJRCAgICAgICAgKDB4MDIpCisjZGVmaW5lIE1QSV9UQl9GQ19NQU5BR0VfQUNUSU9OX1NFVF9NQVhfRlJBTUVfU0laRSAgKDB4MDMpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUb29sYm94IEJlYWNvbiBUb29sIHJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiBzdHJ1Y3QgX01TR19UT09MQk9YX0JFQUNPTl9SRVFVRVNUCit7CisgICAgVTggICAgICAgICAgICAgICAgICAgICAgVG9vbDsgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkOyAgICAgICAgICAgICAgICAgICAvKiAwMWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDaGFpbk9mZnNldDsgICAgICAgICAgICAgICAgLyogMDJoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb247ICAgICAgICAgICAgICAgICAgIC8qIDAzaCAqLworICAgIFUxNiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMTsgICAgICAgICAgICAgICAgICAvKiAwNGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDI7ICAgICAgICAgICAgICAgICAgLyogMDZoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgTXNnRmxhZ3M7ICAgICAgICAgICAgICAgICAgIC8qIDA3aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIE1zZ0NvbnRleHQ7ICAgICAgICAgICAgICAgICAvKiAwOGggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0TnVtOyAgICAgICAgICAgICAgICAgLyogMENoICovCisgICAgVTggICAgICAgICAgICAgICAgICAgICAgUG9ydE51bTsgICAgICAgICAgICAgICAgICAgIC8qIDBEaCAqLworICAgIFU4ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgICAgICAvKiAwRWggKi8KKyAgICBVOCAgICAgICAgICAgICAgICAgICAgICBGbGFnczsgICAgICAgICAgICAgICAgICAgICAgLyogMEZoICovCit9IE1TR19UT09MQk9YX0JFQUNPTl9SRVFVRVNULCBNUElfUE9JTlRFUiBQVFJfTVNHX1RPT0xCT1hfQkVBQ09OX1JFUVVFU1QsCisgIFRvb2xib3hCZWFjb25SZXF1ZXN0X3QsIE1QSV9QT0lOVEVSIHBUb29sYm94QmVhY29uUmVxdWVzdF90OworCisjZGVmaW5lIE1QSV9UT09MQk9YX0ZMQUdTX0JFQUNPTl9NT0RFX09GRiAgICAgICAoMHgwMCkKKyNkZWZpbmUgTVBJX1RPT0xCT1hfRkxBR1NfQkVBQ09OX01PREVfT04gICAgICAgICgweDAxKQogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMjMzLDE0ICsyODAsMTYgQEAKICAgICBVMzIgICAgICAgICAgICAgICAgICAgICBFeHRlbmRlZFR5cGU7ICAgICAgICAgICAgICAgLyogMENoICovCiAgICAgVTMyICAgICAgICAgICAgICAgICAgICAgQnVmZmVyTGVuZ3RoOyAgICAgICAgICAgICAgIC8qIDEwaCAqLwogICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFByb2R1Y3RTcGVjaWZpY1s0XTsgICAgICAgICAvKiAxNGggKi8KLSAgICBVMzIgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDM7ICAgICAgICAgICAgICAgICAgLyogMThoICovCi0gICAgU0dFX1NJTVBMRV9VTklPTiAgICAgICAgU0dMOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDI4aCAqLworICAgIFUzMiAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkMzsgICAgICAgICAgICAgICAgICAvKiAyNGggKi8KKyAgICBVNjQgICAgICAgICAgICAgICAgICAgICBCdWZmZXJBZGRyZXNzOyAgICAgICAgICAgICAgLyogMjhoICovCiB9IE1TR19ESUFHX0JVRkZFUl9QT1NUX1JFUVVFU1QsIE1QSV9QT0lOVEVSIFBUUl9NU0dfRElBR19CVUZGRVJfUE9TVF9SRVFVRVNULAogICBEaWFnQnVmZmVyUG9zdFJlcXVlc3RfdCwgTVBJX1BPSU5URVIgcERpYWdCdWZmZXJQb3N0UmVxdWVzdF90OwogCiAjZGVmaW5lIE1QSV9ESUFHX0JVRl9UWVBFX1RSQUNFICAgICAgICAgICAgICAgICAgICAgKDB4MDApCiAjZGVmaW5lIE1QSV9ESUFHX0JVRl9UWVBFX1NOQVBTSE9UICAgICAgICAgICAgICAgICAgKDB4MDEpCiAjZGVmaW5lIE1QSV9ESUFHX0JVRl9UWVBFX0VYVEVOREVEICAgICAgICAgICAgICAgICAgKDB4MDIpCisvKiBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIGJ1ZmZlciB0eXBlcyAqLworI2RlZmluZSBNUElfRElBR19CVUZfVFlQRV9DT1VOVCAgICAgICAgICAgICAgICAgICAgICgweDAzKQogCiAjZGVmaW5lIE1QSV9ESUFHX0VYVEVOREVEX1FUQUcgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMDAwMDEpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90eXBlLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL2xzaS9tcGlfdHlwZS5oCmluZGV4IDIzOTMyOGEuLjMyY2M5YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbHNpL21waV90eXBlLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9sc2kvbXBpX3R5cGUuaApAQCAtMSwxMiArMSwxMiBAQAogLyoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMyBMU0kgTG9naWMgQ29ycG9yYXRpb24uCisgKiAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uLgogICoKICAqCiAgKiAgICAgICAgICAgTmFtZTogIG1waV90eXBlLmgKICAqICAgICAgICAgIFRpdGxlOiAgTVBJIEJhc2ljIHR5cGUgZGVmaW5pdGlvbnMKICAqICBDcmVhdGlvbiBEYXRlOiAgSnVuZSA2LCAyMDAwCiAgKgotICogICAgbXBpX3R5cGUuaCBWZXJzaW9uOiAgMDEuMDUueHgKKyAqICAgIG1waV90eXBlLmggVmVyc2lvbjogIDAxLjA1LjAxCiAgKgogICogIFZlcnNpb24gSGlzdG9yeQogICogIC0tLS0tLS0tLS0tLS0tLQpAQCAtMTgsNiArMTgsOCBAQAogICogIDExLTAyLTAwICAwMS4wMS4wMSAgT3JpZ2luYWwgcmVsZWFzZSBmb3IgcG9zdCAxLjAgd29yawogICogIDAyLTIwLTAxICAwMS4wMS4wMiAgQWRkZWQgZGVmaW5lIGFuZCBpZmRlZiBmb3IgTVBJX1BPSU5URVIuCiAgKiAgMDgtMDgtMDEgIDAxLjAyLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciB2MS4yIHdvcmsuCisgKiAgMDUtMTEtMDQgIDAxLjAzLjAxICBPcmlnaW5hbCByZWxlYXNlIGZvciBNUEkgdjEuMy4KKyAqICAwOC0xOS0wNCAgMDEuMDUuMDEgIE9yaWdpbmFsIHJlbGVhc2UgZm9yIE1QSSB2MS41LgogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtNTAsMTEgKzUyLDYgQEAKIHR5cGVkZWYgaW50MzJfdCAgIFMzMjsKIHR5cGVkZWYgdV9pbnQzMl90IFUzMjsKIAotLyoKLSAqICBUaGUgb25seSB3YXkgY3JhcCBiZWxvdyBjb3VsZCB3b3JrIG9uIGJpZy1lbmRpYW4gYm94ZW4gd291bGQgYmUgaWYgaXQKLSAqICB3YXNuJ3QgdXNlZCBhdCBhbGwuCi0gKi8KLQogdHlwZWRlZiBzdHJ1Y3QgX1M2NAogewogICAgIFUzMiAgICAgICAgICBMb3c7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5jCmluZGV4IDhiMjI2MzAuLjhiNjIzMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5jCkBAIC0xLDU1ICsxLDEzIEBACiAvKgogICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5jCi0gKiAgICAgIEhpZ2ggcGVyZm9ybWFuY2UgU0NTSSArIExBTiAvIEZpYnJlIENoYW5uZWwgZGV2aWNlIGRyaXZlcnMuCiAgKiAgICAgIFRoaXMgaXMgdGhlIEZ1c2lvbiBNUFQgYmFzZSBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgbXVsdGlwbGUKICAqICAgICAgKFNDU0kgKyBMQU4pIHNwZWNpYWxpemVkIHByb3RvY29sIGRyaXZlcnMuCi0gKiAgICAgIEZvciB1c2Ugd2l0aCBQQ0kgY2hpcC9hZGFwdGVyKHMpOgotICogICAgICAgICAgTFNJRkM5eHgvTFNJNDA5eHggRmlicmUgQ2hhbm5lbAorICogICAgICBGb3IgdXNlIHdpdGggTFNJIExvZ2ljIFBDSSBjaGlwL2FkYXB0ZXIocykKICAqICAgICAgcnVubmluZyBMU0kgTG9naWMgRnVzaW9uIE1QVCAoTWVzc2FnZSBQYXNzaW5nIFRlY2hub2xvZ3kpIGZpcm13YXJlLgogICoKLSAqICBDcmVkaXRzOgotICogICAgICBUaGVyZSBhcmUgbG90cyBvZiBwZW9wbGUgbm90IG1lbnRpb25lZCBiZWxvdyB0aGF0IGRlc2VydmUgY3JlZGl0Ci0gKiAgICAgIGFuZCB0aGFua3MgYnV0IHdvbid0IGdldCBpdCBoZXJlIC0gc29ycnkgaW4gYWR2YW5jZSB0aGF0IHlvdQotICogICAgICBnb3Qgb3Zlcmxvb2tlZC4KLSAqCi0gKiAgICAgIFRoaXMgZHJpdmVyIHdvdWxkIG5vdCBleGlzdCBpZiBub3QgZm9yIEFsYW4gQ294J3MgZGV2ZWxvcG1lbnQKLSAqICAgICAgb2YgdGhlIGxpbnV4IGkybyBkcml2ZXIuCi0gKgotICogICAgICBBIHNwZWNpYWwgdGhhbmtzIHRvIE5vYWggUm9tZXIgKExTSSBMb2dpYykgZm9yIHRvbnMgb2Ygd29yawotICogICAgICBhbmQgdG91Z2ggZGVidWdnaW5nIG9uIHRoZSBMQU4gZHJpdmVyLCBlc3BlY2lhbGx5IGVhcmx5IG9uOy0pCi0gKiAgICAgIEFuZCB0byBSb2dlciBIaWNrZXJzb24gKExTSSBMb2dpYykgZm9yIHRpcmVsZXNzbHkgc3VwcG9ydGluZwotICogICAgICB0aGlzIGRyaXZlciBwcm9qZWN0LgotICoKLSAqICAgICAgQSBzcGVjaWFsIHRoYW5rcyB0byBQYW1lbGEgRGVsYW5leSAoTFNJIExvZ2ljKSBmb3IgdG9ucyBvZiB3b3JrCi0gKiAgICAgIGFuZCBjb3VudGxlc3MgZW5oYW5jZW1lbnRzIHdoaWxlIGFkZGluZyBzdXBwb3J0IGZvciB0aGUgMTAzMAotICogICAgICBjaGlwIGZhbWlseS4gIFBhbSBoYXMgYmVlbiBpbnN0cnVtZW50YWwgaW4gdGhlIGRldmVsb3BtZW50IG9mCi0gKiAgICAgIG9mIHRoZSAyLnh4Lnh4IHNlcmllcyBmdXNpb24gZHJpdmVycywgYW5kIGhlciBjb250cmlidXRpb25zIGFyZQotICogICAgICBmYXIgdG9vIG51bWVyb3VzIHRvIGhvcGUgdG8gbGlzdCBpbiBvbmUgcGxhY2UuCi0gKgotICogICAgICBBbGwgbWFubmVyIG9mIGhlbHAgZnJvbSBTdGVwaGVuIFNoaXJyb24gKExTSSBMb2dpYyk6Ci0gKiAgICAgIGxvdy1sZXZlbCBGQyBhbmFseXNpcywgZGVidWcgKyB2YXJpb3VzIGZpeGVzIGluIEZDeHggZmlybXdhcmUsCi0gKiAgICAgIGluaXRpYWwgcG9ydCB0byBhbHBoYSBwbGF0Zm9ybSwgdmFyaW91cyBkcml2ZXIgY29kZSBvcHRpbWl6YXRpb25zLAotICogICAgICBiZWluZyBhIGZhaXRoZnVsIHNvdW5kaW5nIGJvYXJkIG9uIGFsbCBzb3J0cyBvZiBpc3N1ZXMgJiBpZGVhcywKLSAqICAgICAgZXRjLgotICoKLSAqICAgICAgQSBodWdlIGRlYnQgb2YgZ3JhdGl0dWRlIGlzIG93ZWQgdG8gRGF2aWQgUy4gTWlsbGVyIChEYXZlTSkKLSAqICAgICAgZm9yIGZpeGluZyBtdWNoIG9mIHRoZSBzdHVwaWQgYW5kIGJyb2tlbiBzdHVmZiBpbiB0aGUgZWFybHkKLSAqICAgICAgZHJpdmVyIHdoaWxlIHBvcnRpbmcgdG8gc3BhcmM2NCBwbGF0Zm9ybS4gIFRIQU5LIFlPVSEKLSAqCi0gKiAgICAgIFNwZWNpYWwgdGhhbmtzIGdvZXMgdG8gdGhlIEkyTyBMQU4gZHJpdmVyIHBlb3BsZSBhdCB0aGUKLSAqICAgICAgVW5pdmVyc2l0eSBvZiBIZWxzaW5raSwgd2hvLCB1bmJla25vd25zdCB0byB0aGVtLCBwcm92aWRlZAotICogICAgICB0aGUgaW5zcGlyYXRpb24gYW5kIGluaXRpYWwgc3RydWN0dXJlIGZvciB0aGlzIGRyaXZlci4KLSAqCi0gKiAgICAgIEEgcmVhbGx5IGh1Z2UgZGVidCBvZiBncmF0aXR1ZGUgaXMgb3dlZCB0byBFZGRpZSBDLiBEb3N0Ci0gKiAgICAgIGZvciBnb2JzIG9mIGhhcmQgd29yayBmaXhpbmcgYW5kIG9wdGltaXppbmcgTEFOIGNvZGUuCi0gKiAgICAgIFRIQU5LIFlPVSEKLSAqCi0gKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uCi0gKiAgT3JpZ2luYWxseSBCeTogU3RldmVuIEouIFJhbHN0b24KLSAqICAobWFpbHRvOnNqcmFsc3RvbjFAbmV0c2NhcGUubmV0KQorICogIENvcHlyaWdodCAoYykgMTk5OS0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbgogICogIChtYWlsdG86bXB0X2xpbnV4X2RldmVsb3BlckBsc2lsLmNvbSkKICAqCi0gKiAgJElkOiBtcHRiYXNlLmMsdiAxLjEyNiAyMDAyLzEyLzE2IDE1OjI4OjQ1IHBkZWxhbmV5IEV4cCAkCiAgKi8KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCkBAIC0xMDEsNiArNTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CQkvKiBuZWVkZWQgZm9yIGluX2ludGVycnVwdCgpIHByb3RvICovCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpZmRlZiBDT05GSUdfTVRSUgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+CkBAIC0yMTgsNDEgKzE3NywzNSBAQAogc3RhdGljIHZvaWQJbXB0X3NwX2xvZ19pbmZvKE1QVF9BREFQVEVSICppb2MsIHUzMiBsb2dfaW5mbyk7CiAKIC8qIG1vZHVsZSBlbnRyeSBwb2ludCAqLwotc3RhdGljIGludCAgX19kZXZpbml0IG1wdGJhc2VfcHJvYmUgKHN0cnVjdCBwY2lfZGV2ICosIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICopOwotc3RhdGljIHZvaWQgX19kZXZleGl0IG1wdGJhc2VfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICopOwotc3RhdGljIHZvaWQgbXB0YmFzZV9zaHV0ZG93bihzdHJ1Y3QgZGV2aWNlICogKTsKIHN0YXRpYyBpbnQgIF9faW5pdCAgICBmdXNpb25faW5pdCAgKHZvaWQpOwogc3RhdGljIHZvaWQgX19leGl0ICAgIGZ1c2lvbl9leGl0ICAodm9pZCk7CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBTdXBwb3J0ZWQgaGFyZHdhcmUKLSAqLwotCi1zdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXB0YmFzZV9wY2lfdGFibGVbXSA9IHsKLQl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkwOSwKLQkJUENJX0FOWV9JRCwgUENJX0FOWV9JRCB9LAotCXsgUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsIFBDSV9ERVZJQ0VfSURfTFNJX0ZDOTI5LAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywgUENJX0RFVklDRV9JRF9MU0lfRkM5MTksCi0JCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKLQl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkyOVgsCi0JCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKLQl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkxOVgsCi0JCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKLQl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV81M0MxMDMwLAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCi0JeyBQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywgUENJX0RFVklDRV9JRF9MU0lfMTAzMF81M0MxMDM1LAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCi0JezB9CS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG1wdGJhc2VfcGNpX3RhYmxlKTsKLQogI2RlZmluZSBDSElQUkVHX1JFQUQzMihhZGRyKSAJCXJlYWRsX3JlbGF4ZWQoYWRkcikKICNkZWZpbmUgQ0hJUFJFR19SRUFEMzJfZG1hc3luYyhhZGRyKQlyZWFkbChhZGRyKQogI2RlZmluZSBDSElQUkVHX1dSSVRFMzIoYWRkcix2YWwpIAl3cml0ZWwodmFsLCBhZGRyKQogI2RlZmluZSBDSElQUkVHX1BJT19XUklURTMyKGFkZHIsdmFsKQlvdXRsKHZhbCwgKHVuc2lnbmVkIGxvbmcpYWRkcikKICNkZWZpbmUgQ0hJUFJFR19QSU9fUkVBRDMyKGFkZHIpIAlpbmwoKHVuc2lnbmVkIGxvbmcpYWRkcikKIAorc3RhdGljIHZvaWQKK3BjaV9kaXNhYmxlX2lvX2FjY2VzcyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwl1MTYgY29tbWFuZF9yZWc7CisKKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwgJmNvbW1hbmRfcmVnKTsKKwljb21tYW5kX3JlZyAmPSB+MTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQocGRldiwgUENJX0NPTU1BTkQsIGNvbW1hbmRfcmVnKTsKK30KKworc3RhdGljIHZvaWQKK3BjaV9lbmFibGVfaW9fYWNjZXNzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQoreworCXUxNiBjb21tYW5kX3JlZzsKKworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCAmY29tbWFuZF9yZWcpOworCWNvbW1hbmRfcmVnIHw9IDE7CisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCBjb21tYW5kX3JlZyk7Cit9CisKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCiAgKgltcHRfaW50ZXJydXB0IC0gTVBUIGFkYXB0ZXIgKElPQykgc3BlY2lmaWMgaW50ZXJydXB0IGhhbmRsZXIuCkBAIC0zMzAsOCArMjgzLDcgQEAKIAkJCQkJaW9jLT5uYW1lLCBtciwgcmVxX2lkeCkpOwogCQkJREJHX0RVTVBfUkVQTFlfRlJBTUUobXIpCiAKLQkJCS8qIE5FVyEgIDIwMDEwMzAxIC1zcmFsc3RvbgotCQkJICogIENoZWNrL2xvZyBJT0MgbG9nIGluZm8KKwkJCS8qICBDaGVjay9sb2cgSU9DIGxvZyBpbmZvCiAJCQkgKi8KIAkJCWlvY19zdGF0ID0gbGUxNl90b19jcHUobXItPnUucmVwbHkuSU9DU3RhdHVzKTsKIAkJCWlmIChpb2Nfc3RhdCAmIE1QSV9JT0NTVEFUVVNfRkxBR19MT0dfSU5GT19BVkFJTEFCTEUpIHsKQEAgLTM1Nyw5ICszMDksNyBAQAogCQkJCW1yID0gKE1QVF9GUkFNRV9IRFIgKikgQ0FTVF9VMzJfVE9fUFRSKHBhKTsKIAkJCX0gZWxzZSBpZiAodHlwZSA9PSBNUElfQ09OVEVYVF9SRVBMWV9UWVBFX0xBTikgewogCQkJCWNiX2lkeCA9IG1wdF9sYW5faW5kZXg7Ci0JCQkJLyoKLQkJCQkgKiBCVUcgRklYISAgMjAwMDEyMTggLXNyYWxzdG9uCi0JCQkJICogIEJsaW5kIHNldCBvZiBtZiB0byBOVUxMIGhlcmUgd2FzIGZhdGFsCisJCQkJIC8qICBCbGluZCBzZXQgb2YgbWYgdG8gTlVMTCBoZXJlIHdhcyBmYXRhbAogCQkJCSAqICBhZnRlciBsYW5fcmVwbHkgc2F5cyAiZnJlZW1lIgogCQkJCSAqICBGaXggc29ydCBvZiBjb21iaW5lZCB3aXRoIGFuIG9wdGltaXphdGlvbiBoZXJlOwogCQkJCSAqICBhZGRlZCBleHBsaWNpdCBjaGVjayBmb3IgY2FzZSB3aGVyZSBsYW5fcmVwbHkKQEAgLTQzMCwxNSArMzgwLDggQEAKIAkJfQogCiAJCWlmIChmcmVlbWUpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KIAkJCS8qICBQdXQgUmVxdWVzdCBiYWNrIG9uIEZyZWVRISAgKi8KLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZpb2MtPkZyZWVRbG9jaywgZmxhZ3MpOwotCQkJbGlzdF9hZGRfdGFpbCgmbWYtPnUuZnJhbWUubGlua2FnZS5saXN0LCAmaW9jLT5GcmVlUSk7Ci0jaWZkZWYgTUZDTlQKLQkJCWlvYy0+bWZjbnQtLTsKLSNlbmRpZgotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9jLT5GcmVlUWxvY2ssIGZsYWdzKTsKKwkJCW1wdF9mcmVlX21zZ19mcmFtZShpb2MsIG1mKTsKIAkJfQogCiAJCW1iKCk7CkBAIC03MjUsMTEgKzY2OCw5IEBACiBtcHRfZGV2aWNlX2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgbXB0X3BjaV9kcml2ZXIgKiBkZF9jYmZ1bmMsIGludCBjYl9pZHgpCiB7CiAJTVBUX0FEQVBURVIJKmlvYzsKLQlpbnQgCQllcnJvcj0wOwogCiAJaWYgKGNiX2lkeCA8IDEgfHwgY2JfaWR4ID49IE1QVF9NQVhfUFJPVE9DT0xfRFJJVkVSUykgewotCQllcnJvcj0gLUVJTlZBTDsKLQkJcmV0dXJuIGVycm9yOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlNcHREZXZpY2VEcml2ZXJIYW5kbGVyc1tjYl9pZHhdID0gZGRfY2JmdW5jOwpAQCAtNzM3LDE0ICs2NzgsMTIgQEAKIAkvKiBjYWxsIHBlciBwY2kgZGV2aWNlIHByb2JlIGVudHJ5IHBvaW50ICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpb2MsICZpb2NfbGlzdCwgbGlzdCkgewogCQlpZihkZF9jYmZ1bmMtPnByb2JlKSB7Ci0JCQllcnJvciA9IGRkX2NiZnVuYy0+cHJvYmUoaW9jLT5wY2lkZXYsCisJCQlkZF9jYmZ1bmMtPnByb2JlKGlvYy0+cGNpZGV2LAogCQkJICBpb2MtPnBjaWRldi0+ZHJpdmVyLT5pZF90YWJsZSk7Ci0JCQlpZihlcnJvciAhPSAwKQotCQkJCXJldHVybiBlcnJvcjsKICAgCQl9CiAJIH0KIAotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gMDsKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtODA5LDggKzc0OCw4IEBACiAJCW1mLT51LmZyYW1lLmh3aGRyLm1zZ2N0eHUuZmxkLmNiX2lkeCA9IGhhbmRsZTsJLyogYnl0ZSAqLwogCQlyZXFfb2Zmc2V0ID0gKHU4ICopbWYgLSAodTggKilpb2MtPnJlcV9mcmFtZXM7CiAJCQkJCQkJCS8qIHUxNiEgKi8KLQkJcmVxX2lkeCA9IGNwdV90b19sZTE2KHJlcV9vZmZzZXQgLyBpb2MtPnJlcV9zeik7Ci0JCW1mLT51LmZyYW1lLmh3aGRyLm1zZ2N0eHUuZmxkLnJlcV9pZHggPSByZXFfaWR4OworCQlyZXFfaWR4ID0gcmVxX29mZnNldCAvIGlvYy0+cmVxX3N6OworCQltZi0+dS5mcmFtZS5od2hkci5tc2djdHh1LmZsZC5yZXFfaWR4ID0gY3B1X3RvX2xlMTYocmVxX2lkeCk7CiAJCW1mLT51LmZyYW1lLmh3aGRyLm1zZ2N0eHUuZmxkLnJzdmQgPSAwOwogCQlpb2MtPlJlcXVlc3ROQltyZXFfaWR4XSA9IGlvYy0+TkJfZm9yXzY0X2J5dGVfZnJhbWU7IC8qIERlZmF1bHQsIHdpbGwgYmUgY2hhbmdlZCBpZiBuZWNlc3NhcnkgaW4gU0cgZ2VuZXJhdGlvbiAqLwogI2lmZGVmIE1GQ05UCkBAIC04NTYsOCArNzk1LDggQEAKIAltZi0+dS5mcmFtZS5od2hkci5tc2djdHh1LmZsZC5jYl9pZHggPSBoYW5kbGU7CQkvKiBieXRlICovCiAJcmVxX29mZnNldCA9ICh1OCAqKW1mIC0gKHU4ICopaW9jLT5yZXFfZnJhbWVzOwogCQkJCQkJCQkvKiB1MTYhICovCi0JcmVxX2lkeCA9IGNwdV90b19sZTE2KHJlcV9vZmZzZXQgLyBpb2MtPnJlcV9zeik7Ci0JbWYtPnUuZnJhbWUuaHdoZHIubXNnY3R4dS5mbGQucmVxX2lkeCA9IHJlcV9pZHg7CisJcmVxX2lkeCA9IHJlcV9vZmZzZXQgLyBpb2MtPnJlcV9zejsKKwltZi0+dS5mcmFtZS5od2hkci5tc2djdHh1LmZsZC5yZXFfaWR4ID0gY3B1X3RvX2xlMTYocmVxX2lkeCk7CiAJbWYtPnUuZnJhbWUuaHdoZHIubXNnY3R4dS5mbGQucnN2ZCA9IDA7CiAKICNpZmRlZiBNUFRfREVCVUdfTVNHX0ZSQU1FCkBAIC0xMDU4LDcgKzk5Nyw3IEBACiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCi0gKgltcHRiYXNlX3Byb2JlIC0gSW5zdGFsbCBhIFBDSSBpbnRlbGxpZ2VudCBNUFQgYWRhcHRlci4KKyAqCW1wdF9hdHRhY2ggLSBJbnN0YWxsIGEgUENJIGludGVsbGlnZW50IE1QVCBhZGFwdGVyLgogICoJQHBkZXY6IFBvaW50ZXIgdG8gcGNpX2RldiBzdHJ1Y3R1cmUKICAqCiAgKglUaGlzIHJvdXRpbmUgcGVyZm9ybXMgYWxsIHRoZSBzdGVwcyBuZWNlc3NhcnkgdG8gYnJpbmcgdGhlIElPQyBvZgpAQCAtMTA3Myw4ICsxMDEyLDggQEAKICAqCiAgKglUT0RPOiBBZGQgc3VwcG9ydCBmb3IgcG9sbGVkIGNvbnRyb2xsZXJzCiAgKi8KLXN0YXRpYyBpbnQgX19kZXZpbml0Ci1tcHRiYXNlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCitpbnQKK21wdF9hdHRhY2goc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIHsKIAlNUFRfQURBUFRFUgkqaW9jOwogCXU4CQlfX2lvbWVtICptZW07CkBAIC0xMDg0LDcgKzEwMjMsNiBAQAogCXUzMgkJIHBzaXplOwogCWludAkJIGlpOwogCWludAkJIHIgPSAtRU5PREVWOwotCXU2NAkJIG1hc2sgPSAweGZmZmZmZmZmZmZmZmZmZmZVTEw7CiAJdTgJCSByZXZpc2lvbjsKIAl1OAkJIHBjaXhjbWQ7CiAJc3RhdGljIGludAkgbXB0X2lkcyA9IDA7CkBAIC0xMDk3LDE1ICsxMDM1LDE1IEBACiAJCiAJZGluaXRwcmludGsoKEtFUk5fV0FSTklORyBNWU5BTSAiOiBtcHRfYWRhcHRlcl9pbnN0YWxsXG4iKSk7CiAJCi0JaWYgKCFwY2lfc2V0X2RtYV9tYXNrKHBkZXYsIG1hc2spKSB7CisJaWYgKCFwY2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV82NEJJVF9NQVNLKSkgewogCQlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KIAkJCSI6IDY0IEJJVCBQQ0kgQlVTIERNQSBBRERSRVNTSU5HIFNVUFBPUlRFRFxuIikpOwotCX0gZWxzZSBpZiAocGNpX3NldF9kbWFfbWFzayhwZGV2LCAodTY0KSAweGZmZmZmZmZmKSkgeworCX0gZWxzZSBpZiAocGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfMzJCSVRfTUFTSykpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyBNWU5BTSAiOiAzMiBCSVQgUENJIEJVUyBETUEgQUREUkVTU0lORyBOT1QgU1VQUE9SVEVEXG4iKTsKIAkJcmV0dXJuIHI7CiAJfQogCi0JaWYgKCFwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGRldiwgbWFzaykpCisJaWYgKCFwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGRldiwgRE1BXzY0QklUX01BU0spKQogCQlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KIAkJCSI6IFVzaW5nIDY0IGJpdCBjb25zaXN0ZW50IG1hc2tcbiIpKTsKIAllbHNlCkBAIC0xMjQzLDYgKzExODEsMTYgQEAKIAkJcGNpeGNtZCAmPSAweDhGOwogCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUocGRldiwgMHg2YSwgcGNpeGNtZCk7CiAJfQorCWVsc2UgaWYgKHBkZXYtPmRldmljZSA9PSBNUElfTUFOVUZBQ1RQQUdFX0RFVklDRUlEX0ZDOTM5WCkgeworCQlpb2MtPnByb2RfbmFtZSA9ICJMU0lGQzkzOVgiOworCQlpb2MtPmJ1c190eXBlID0gRkM7CisJCWlvYy0+ZXJyYXRhX2ZsYWdfMTA2NCA9IDE7CisJfQorCWVsc2UgaWYgKHBkZXYtPmRldmljZSA9PSBNUElfTUFOVUZBQ1RQQUdFX0RFVklDRUlEX0ZDOTQ5WCkgeworCQlpb2MtPnByb2RfbmFtZSA9ICJMU0lGQzk0OVgiOworCQlpb2MtPmJ1c190eXBlID0gRkM7CisJCWlvYy0+ZXJyYXRhX2ZsYWdfMTA2NCA9IDE7CisJfQogCWVsc2UgaWYgKHBkZXYtPmRldmljZSA9PSBNUElfTUFOVUZBQ1RQQUdFX0RFVklEXzUzQzEwMzApIHsKIAkJaW9jLT5wcm9kX25hbWUgPSAiTFNJNTNDMTAzMCI7CiAJCWlvYy0+YnVzX3R5cGUgPSBTQ1NJOwpAQCAtMTI2MSw2ICsxMjA5LDkgQEAKIAkJaW9jLT5idXNfdHlwZSA9IFNDU0k7CiAJfQogCisJaWYgKGlvYy0+ZXJyYXRhX2ZsYWdfMTA2NCkKKwkJcGNpX2Rpc2FibGVfaW9fYWNjZXNzKHBkZXYpOworCiAJc3ByaW50Zihpb2MtPm5hbWUsICJpb2MlZCIsIGlvYy0+aWQpOwogCiAJc3Bpbl9sb2NrX2luaXQoJmlvYy0+RnJlZVFsb2NrKTsKQEAgLTEzMDMsOCArMTI1NCw3IEBACiAjZW5kaWYKIAl9CiAKLQkvKiBORVchICAyMDAxMDIyMCAtc3JhbHN0b24KLQkgKiBDaGVjayBmb3IgImJvdW5kIHBvcnRzIiAoOTI5LCA5MjlYLCAxMDMwLCAxMDM1KSB0byByZWR1Y2UgcmVkdW5kYW50IHJlc2V0cy4KKwkvKiBDaGVjayBmb3IgImJvdW5kIHBvcnRzIiAoOTI5LCA5MjlYLCAxMDMwLCAxMDM1KSB0byByZWR1Y2UgcmVkdW5kYW50IHJlc2V0cy4KIAkgKi8KIAltcHRfZGV0ZWN0X2JvdW5kX3BvcnRzKGlvYywgcGRldik7CiAKQEAgLTEzNTQsMTMgKzEzMDQsMTMgQEAKIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwogLyoKLSAqCW1wdGJhc2VfcmVtb3ZlIC0gUmVtb3ZlIGEgUENJIGludGVsbGlnZW50IE1QVCBhZGFwdGVyLgorICoJbXB0X2RldGFjaCAtIFJlbW92ZSBhIFBDSSBpbnRlbGxpZ2VudCBNUFQgYWRhcHRlci4KICAqCUBwZGV2OiBQb2ludGVyIHRvIHBjaV9kZXYgc3RydWN0dXJlCiAgKgogICovCiAKLXN0YXRpYyB2b2lkIF9fZGV2ZXhpdAotbXB0YmFzZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit2b2lkCittcHRfZGV0YWNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogCU1QVF9BREFQVEVSIAkqaW9jID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCWNoYXIgcG5hbWVbMzJdOwpAQCAtMTM5Nyw0MyArMTM0NywyMSBAQAogCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKIH0KIAotLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwotLyoKLSAqCW1wdGJhc2Vfc2h1dGRvd24gLQotICoKLSAqLwotc3RhdGljIHZvaWQKLW1wdGJhc2Vfc2h1dGRvd24oc3RydWN0IGRldmljZSAqIGRldikKLXsKLQlpbnQgaWk7Ci0KLQkvKiBjYWxsIHBlciBkZXZpY2UgZHJpdmVyIHNodXRkb3duIGVudHJ5IHBvaW50ICovCi0JZm9yKGlpPTA7IGlpPE1QVF9NQVhfUFJPVE9DT0xfRFJJVkVSUzsgaWkrKykgewotCQlpZihNcHREZXZpY2VEcml2ZXJIYW5kbGVyc1tpaV0gJiYKLQkJICBNcHREZXZpY2VEcml2ZXJIYW5kbGVyc1tpaV0tPnNodXRkb3duKSB7Ci0JCQlNcHREZXZpY2VEcml2ZXJIYW5kbGVyc1tpaV0tPnNodXRkb3duKGRldik7Ci0JCX0KLQl9Ci0KLX0KLQotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFBvd2VyIE1hbmFnZW1lbnQKICAqLwogI2lmZGVmIENPTkZJR19QTQogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwogLyoKLSAqCW1wdGJhc2Vfc3VzcGVuZCAtIEZ1c2lvbiBNUFQgYmFzZSBkcml2ZXIgc3VzcGVuZCByb3V0aW5lLgorICoJbXB0X3N1c3BlbmQgLSBGdXNpb24gTVBUIGJhc2UgZHJpdmVyIHN1c3BlbmQgcm91dGluZS4KICAqCiAgKgogICovCi1zdGF0aWMgaW50Ci1tcHRiYXNlX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK2ludAorbXB0X3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAl1MzIgZGV2aWNlX3N0YXRlOwogCU1QVF9BREFQVEVSICppb2MgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7Ci0JaW50IGlpOwogCiAJc3dpdGNoKHN0YXRlKQogCXsKQEAgLTE0NTMsMTQgKzEzODEsNiBAQAogCSJwY2ktc3VzcGVuZDogcGRldj0weCVwLCBzbG90PSVzLCBFbnRlcmluZyBvcGVyYXRpbmcgc3RhdGUgW0QlZF1cbiIsCiAJCWlvYy0+bmFtZSwgcGRldiwgcGNpX25hbWUocGRldiksIGRldmljZV9zdGF0ZSk7CiAKLQkvKiBjYWxsIHBlciBkZXZpY2UgZHJpdmVyIHN1c3BlbmQgZW50cnkgcG9pbnQgKi8KLQlmb3IoaWk9MDsgaWk8TVBUX01BWF9QUk9UT0NPTF9EUklWRVJTOyBpaSsrKSB7Ci0JCWlmKE1wdERldmljZURyaXZlckhhbmRsZXJzW2lpXSAmJgotCQkgIE1wdERldmljZURyaXZlckhhbmRsZXJzW2lpXS0+c3VzcGVuZCkgewotCQkJTXB0RGV2aWNlRHJpdmVySGFuZGxlcnNbaWldLT5zdXNwZW5kKHBkZXYsIHN0YXRlKTsKLQkJfQotCX0KLQogCXBjaV9zYXZlX3N0YXRlKHBkZXYpOwogCiAJLyogcHV0IGlvYyBpbnRvIFJFQURZX1NUQVRFICovCkBAIC0xNDg0LDE4ICsxNDA0LDE4IEBACiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCi0gKgltcHRiYXNlX3Jlc3VtZSAtIEZ1c2lvbiBNUFQgYmFzZSBkcml2ZXIgcmVzdW1lIHJvdXRpbmUuCisgKgltcHRfcmVzdW1lIC0gRnVzaW9uIE1QVCBiYXNlIGRyaXZlciByZXN1bWUgcm91dGluZS4KICAqCiAgKgogICovCi1zdGF0aWMgaW50Ci1tcHRiYXNlX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKK2ludAorbXB0X3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlNUFRfQURBUFRFUiAqaW9jID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXUzMiBkZXZpY2Vfc3RhdGUgPSBwZGV2LT5jdXJyZW50X3N0YXRlOwogCWludCByZWNvdmVyeV9zdGF0ZTsKIAlpbnQgaWk7Ci0KKwkKIAlwcmludGsoTVlJT0Nfc19JTkZPX0ZNVAogCSJwY2ktcmVzdW1lOiBwZGV2PTB4JXAsIHNsb3Q9JXMsIFByZXZpb3VzIG9wZXJhdGluZyBzdGF0ZSBbRCVkXVxuIiwKIAkJaW9jLT5uYW1lLCBwZGV2LCBwY2lfbmFtZShwZGV2KSwgZGV2aWNlX3N0YXRlKTsKQEAgLTE1MzMsMTQgKzE0NTMsNiBAQAogCQkJInBjaS1yZXN1bWU6IHN1Y2Nlc3NcbiIsIGlvYy0+bmFtZSk7CiAJfQogCi0JLyogY2FsbCBwZXIgZGV2aWNlIGRyaXZlciByZXN1bWUgZW50cnkgcG9pbnQgKi8KLQlmb3IoaWk9MDsgaWk8TVBUX01BWF9QUk9UT0NPTF9EUklWRVJTOyBpaSsrKSB7Ci0JCWlmKE1wdERldmljZURyaXZlckhhbmRsZXJzW2lpXSAmJgotCQkgIE1wdERldmljZURyaXZlckhhbmRsZXJzW2lpXS0+cmVzdW1lKSB7Ci0JCQlNcHREZXZpY2VEcml2ZXJIYW5kbGVyc1tpaV0tPnJlc3VtZShwZGV2KTsKLQkJfQotCX0KLQogCXJldHVybiAwOwogfQogI2VuZGlmCkBAIC0xNzE5LDggKzE2MzEsNyBAQAogCQlpb2MtPmFsdF9pb2MtPmFjdGl2ZSA9IDE7CiAJfQogCi0JLyogTkVXISAgMjAwMTAxMjAgLXNyYWxzdG9uCi0JICogIEVuYWJsZSBNUFQgYmFzZSBkcml2ZXIgbWFuYWdlbWVudCBvZiBFdmVudE5vdGlmaWNhdGlvbgorCS8qICBFbmFibGUgTVBUIGJhc2UgZHJpdmVyIG1hbmFnZW1lbnQgb2YgRXZlbnROb3RpZmljYXRpb24KIAkgKiAgYW5kIEV2ZW50QWNrIGhhbmRsaW5nLgogCSAqLwogCWlmICgocmV0ID09IDApICYmICghaW9jLT5mYWN0cy5FdmVudFN0YXRlKSkKQEAgLTE3MjksOSArMTY0MCw3IEBACiAJaWYgKGlvYy0+YWx0X2lvYyAmJiBhbHRfaW9jX3JlYWR5ICYmICFpb2MtPmFsdF9pb2MtPmZhY3RzLkV2ZW50U3RhdGUpCiAJCSh2b2lkKSBTZW5kRXZlbnROb3RpZmljYXRpb24oaW9jLT5hbHRfaW9jLCAxKTsJLyogMT1FbmFibGUgRXZlbnROb3RpZmljYXRpb24gKi8KIAotCS8qIChCdWd6aWxsYTpmaWJyZWJ1Z3MsICM1MTMpCi0JICogQnVnIGZpeCAocGFydCAyKSEgIDIwMDEwOTA1IC1zcmFsc3RvbgotCSAqCUFkZCBhZGRpdGlvbmFsICJyZWFzb24iIGNoZWNrIGJlZm9yZSBjYWxsIHRvIEdldExhbkNvbmZpZ1BhZ2VzCisJLyoJQWRkIGFkZGl0aW9uYWwgInJlYXNvbiIgY2hlY2sgYmVmb3JlIGNhbGwgdG8gR2V0TGFuQ29uZmlnUGFnZXMKIAkgKgkoY29tYmluZWQgd2l0aCBHZXRJb1VuaXRQYWdlMiBjYWxsKS4gIFRoaXMgcHJldmVudHMgYSBzb21ld2hhdAogCSAqCXJlY3Vyc2l2ZSBzY2VuYXJpbzsgR2V0TGFuQ29uZmlnUGFnZXMgdGltZXMgb3V0LCB0aW1lciBleHBpcmVkCiAJICoJcm91dGluZSBjYWxscyBIYXJkUmVzZXRIYW5kbGVyLCB3aGljaCBjYWxscyBpbnRvIGhlcmUgYWdhaW4sCkBAIC0xODI5LDM3ICsxNzM4LDQzIEBACiBzdGF0aWMgdm9pZAogbXB0X2RldGVjdF9ib3VuZF9wb3J0cyhNUFRfQURBUFRFUiAqaW9jLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQl1bnNpZ25lZCBpbnQgbWF0Y2hfbG8sIG1hdGNoX2hpOworCXN0cnVjdCBwY2lfZGV2ICpwZWVyPU5VTEw7CisJdW5zaWduZWQgaW50IHNsb3QgPSBQQ0lfU0xPVChwZGV2LT5kZXZmbik7CisJdW5zaWduZWQgaW50IGZ1bmMgPSBQQ0lfRlVOQyhwZGV2LT5kZXZmbik7CiAJTVBUX0FEQVBURVIgKmlvY19zcmNoOwogCi0JbWF0Y2hfbG8gPSBwZGV2LT5kZXZmbi0xOwotCW1hdGNoX2hpID0gcGRldi0+ZGV2Zm4rMTsKLQlkcHJpbnRrKChNWUlPQ19zX0lORk9fRk1UICJQQ0kgYnVzL2RldmZuPSV4LyV4LCBzZWFyY2hpbmcgZm9yIGRldmZuIG1hdGNoIG9uICV4IG9yICV4XG4iLAotCQkJaW9jLT5uYW1lLCBwZGV2LT5idXMtPm51bWJlciwgcGRldi0+ZGV2Zm4sIG1hdGNoX2xvLCBtYXRjaF9oaSkpOworCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQgIlBDSSBkZXZpY2UgJXMgZGV2Zm49JXgvJXgsIgorCSAgICAiIHNlYXJjaGluZyBmb3IgZGV2Zm4gbWF0Y2ggb24gJXggb3IgJXhcbiIsCisJCWlvYy0+bmFtZSwgcGNpX25hbWUocGRldiksIHBkZXYtPmRldmZuLAorCQlmdW5jLTEsIGZ1bmMrMSkpOworCisJcGVlciA9IHBjaV9nZXRfc2xvdChwZGV2LT5idXMsIFBDSV9ERVZGTihzbG90LGZ1bmMtMSkpOworCWlmICghcGVlcikgeworCQlwZWVyID0gcGNpX2dldF9zbG90KHBkZXYtPmJ1cywgUENJX0RFVkZOKHNsb3QsZnVuYysxKSk7CisJCWlmICghcGVlcikKKwkJCXJldHVybjsKKwl9CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvY19zcmNoLCAmaW9jX2xpc3QsIGxpc3QpIHsKIAkJc3RydWN0IHBjaV9kZXYgKl9wY2lkZXYgPSBpb2Nfc3JjaC0+cGNpZGV2OwotCi0JCWlmICgoX3BjaWRldi0+ZGV2aWNlID09IHBkZXYtPmRldmljZSkgJiYKLQkJICAgIChfcGNpZGV2LT5idXMtPm51bWJlciA9PSBwZGV2LT5idXMtPm51bWJlcikgJiYKLQkJICAgIChfcGNpZGV2LT5kZXZmbiA9PSBtYXRjaF9sbyB8fCBfcGNpZGV2LT5kZXZmbiA9PSBtYXRjaF9oaSkgKSB7CisJCWlmIChfcGNpZGV2ID09IHBlZXIpIHsKIAkJCS8qIFBhcmFub2lhIGNoZWNrcyAqLwogCQkJaWYgKGlvYy0+YWx0X2lvYyAhPSBOVUxMKSB7CiAJCQkJcHJpbnRrKEtFUk5fV0FSTklORyBNWU5BTSAiOiBPb3BzLCBhbHJlYWR5IGJvdW5kICglcyA8PT0+ICVzKSFcbiIsCi0JCQkJCQlpb2MtPm5hbWUsIGlvYy0+YWx0X2lvYy0+bmFtZSk7CisJCQkJCWlvYy0+bmFtZSwgaW9jLT5hbHRfaW9jLT5uYW1lKTsKIAkJCQlicmVhazsKIAkJCX0gZWxzZSBpZiAoaW9jX3NyY2gtPmFsdF9pb2MgIT0gTlVMTCkgewogCQkJCXByaW50ayhLRVJOX1dBUk5JTkcgTVlOQU0gIjogT29wcywgYWxyZWFkeSBib3VuZCAoJXMgPD09PiAlcykhXG4iLAotCQkJCQkJaW9jX3NyY2gtPm5hbWUsIGlvY19zcmNoLT5hbHRfaW9jLT5uYW1lKTsKKwkJCQkJaW9jX3NyY2gtPm5hbWUsIGlvY19zcmNoLT5hbHRfaW9jLT5uYW1lKTsKIAkJCQlicmVhazsKIAkJCX0KIAkJCWRwcmludGsoKEtFUk5fSU5GTyBNWU5BTSAiOiBGT1VORCEgYmluZGluZyAlcyA8PT0+ICVzXG4iLAotCQkJCQlpb2MtPm5hbWUsIGlvY19zcmNoLT5uYW1lKSk7CisJCQkJaW9jLT5uYW1lLCBpb2Nfc3JjaC0+bmFtZSkpOwogCQkJaW9jX3NyY2gtPmFsdF9pb2MgPSBpb2M7CiAJCQlpb2MtPmFsdF9pb2MgPSBpb2Nfc3JjaDsKLQkJCWJyZWFrOwogCQl9CiAJfQorCXBjaV9kZXZfcHV0KHBlZXIpOwogfQogCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCkBAIC0xOTIyLDE1ICsxODM3LDEwIEBACiAJCWlvYy0+YWxsb2NfdG90YWwgLT0gc3o7CiAJfQogCi0JaWYgKGlvYy0+c3BpX2RhdGEubnZyYW0gIT0gTlVMTCkgewotCQlrZnJlZShpb2MtPnNwaV9kYXRhLm52cmFtKTsKLQkJaW9jLT5zcGlfZGF0YS5udnJhbSA9IE5VTEw7Ci0JfQotCi0JaWYgKGlvYy0+c3BpX2RhdGEucElvY1BnMyAhPSBOVUxMKSB7Ci0JCWtmcmVlKGlvYy0+c3BpX2RhdGEucElvY1BnMyk7Ci0JCWlvYy0+c3BpX2RhdGEucElvY1BnMyA9IE5VTEw7Ci0JfQorCWtmcmVlKGlvYy0+c3BpX2RhdGEubnZyYW0pOworCWtmcmVlKGlvYy0+c3BpX2RhdGEucElvY1BnMyk7CisJaW9jLT5zcGlfZGF0YS5udnJhbSA9IE5VTEw7CisJaW9jLT5zcGlfZGF0YS5wSW9jUGczID0gTlVMTDsKIAogCWlmIChpb2MtPnNwaV9kYXRhLnBJb2NQZzQgIT0gTlVMTCkgewogCQlzeiA9IGlvYy0+c3BpX2RhdGEuSW9jUGc0U3o7CkBAIC0xOTQ3LDEwICsxODU3LDggQEAKIAkJaW9jLT5SZXFUb0NoYWluID0gTlVMTDsKIAl9CiAKLQlpZiAoaW9jLT5DaGFpblRvQ2hhaW4gIT0gTlVMTCkgewotCQlrZnJlZShpb2MtPkNoYWluVG9DaGFpbik7Ci0JCWlvYy0+Q2hhaW5Ub0NoYWluID0gTlVMTDsKLQl9CisJa2ZyZWUoaW9jLT5DaGFpblRvQ2hhaW4pOworCWlvYy0+Q2hhaW5Ub0NoYWluID0gTlVMTDsKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtMjMzMyw3ICsyMjQxLDcgQEAKIAkJCXJldHVybiAtNTU7CiAJCX0KIAotCQlyID0gc3ogPSBsZTMyX3RvX2NwdShmYWN0cy0+QmxvY2tTaXplKTsKKwkJciA9IHN6ID0gZmFjdHMtPkJsb2NrU2l6ZTsKIAkJdnYgPSAoKDYzIC8gKHN6ICogNCkpICsgMSkgJiAweDAzOwogCQlpb2MtPk5CX2Zvcl82NF9ieXRlX2ZyYW1lID0gdnY7CiAJCXdoaWxlICggc3ogKQpAQCAtMjc4NSw3ICsyNjkzLDcgQEAKIAkvKiBwcmV2ZW50IGEgc2Vjb25kIGRvd25sb2FkYm9vdCBhbmQgbWVtb3J5IGZyZWUgd2l0aCBhbHRfaW9jICovCiAJaWYgKGlvYy0+YWx0X2lvYyAmJiBpb2MtPmFsdF9pb2MtPmNhY2hlZF9mdykKIAkJaW9jLT5hbHRfaW9jLT5jYWNoZWRfZncgPSBOVUxMOwotCQorCiAJQ0hJUFJFR19XUklURTMyKCZpb2MtPmNoaXAtPldyaXRlU2VxdWVuY2UsIDB4RkYpOwogCUNISVBSRUdfV1JJVEUzMigmaW9jLT5jaGlwLT5Xcml0ZVNlcXVlbmNlLCBNUElfV1JTRVFfMVNUX0tFWV9WQUxVRSk7CiAJQ0hJUFJFR19XUklURTMyKCZpb2MtPmNoaXAtPldyaXRlU2VxdWVuY2UsIE1QSV9XUlNFUV8yTkRfS0VZX1ZBTFVFKTsKQEAgLTI4NDMsNiArMjc1MSw5IEBACiAJLyogV3JpdGUgdGhlIExvYWRTdGFydEFkZHJlc3MgdG8gdGhlIERpYWdSdyBBZGRyZXNzIFJlZ2lzdGVyCiAJICogdXNpbmcgUHJvZ3JhbW1lZCBJTwogCSAqLworCWlmIChpb2MtPmVycmF0YV9mbGFnXzEwNjQpCisJCXBjaV9lbmFibGVfaW9fYWNjZXNzKGlvYy0+cGNpZGV2KTsKKwogCUNISVBSRUdfUElPX1dSSVRFMzIoJmlvYy0+cGlvX2NoaXAtPkRpYWdSd0FkZHJlc3MsIHBGd0hlYWRlci0+TG9hZFN0YXJ0QWRkcmVzcyk7CiAJZGRscHJpbnRrKChNWUlPQ19zX0lORk9fRk1UICJMb2FkU3RhcnQgYWRkciB3cml0dGVuIDB4JXggXG4iLAogCQlpb2MtPm5hbWUsIHBGd0hlYWRlci0+TG9hZFN0YXJ0QWRkcmVzcykpOwpAQCAtMjg4OSw2ICsyODAwLDkgQEAKIAlDSElQUkVHX1BJT19XUklURTMyKCZpb2MtPnBpb19jaGlwLT5EaWFnUndBZGRyZXNzLCAweDNGMDAwMDAwKTsKIAlDSElQUkVHX1BJT19XUklURTMyKCZpb2MtPnBpb19jaGlwLT5EaWFnUndEYXRhLCBkaWFnUndEYXRhKTsKIAorCWlmIChpb2MtPmVycmF0YV9mbGFnXzEwNjQpCisJCXBjaV9kaXNhYmxlX2lvX2FjY2Vzcyhpb2MtPnBjaWRldik7CisKIAlkaWFnMHZhbCA9IENISVBSRUdfUkVBRDMyKCZpb2MtPmNoaXAtPkRpYWdub3N0aWMpOwogCWRkbHByaW50aygoTVlJT0Nfc19JTkZPX0ZNVCAiZG93bmxvYWRib290IGRpYWcwdmFsPSV4LCB0dXJuaW5nIG9mZiBQUkVWRU5UX0lPQ19CT09ULCBESVNBQkxFX0FSTVxuIiwKIAkJaW9jLT5uYW1lLCBkaWFnMHZhbCkpOwpAQCAtNDI1MCw3ICs0MTY0LDcgQEAKIAkJCQlpZiAoKGlvYy0+c3BpX2RhdGEuYnVzVHlwZSA9PSBNUElfU0NTSVBPUlRQQUdFMF9QSFlfU0lHTkFMX0hWRCkgfHwKIAkJCQkJKGlvYy0+c3BpX2RhdGEuYnVzVHlwZSA9PSBNUElfU0NTSVBPUlRQQUdFMF9QSFlfU0lHTkFMX1NFKSkgIHsKIAotCQkJCQlpZiAoaW9jLT5zcGlfZGF0YS5taW5TeW5jRmFjdG9yIDwgTVBUX1VMVFJBKQorCQkJCWlmIChpb2MtPnNwaV9kYXRhLm1pblN5bmNGYWN0b3IgPCBNUFRfVUxUUkEpCiAJCQkJCQlpb2MtPnNwaV9kYXRhLm1pblN5bmNGYWN0b3IgPSBNUFRfVUxUUkE7CiAJCQkJfQogCQkJfQpAQCAtNDQ4MiwxMCArNDM5Niw4IEBACiAKIAkvKiBGcmVlIHRoZSBvbGQgcGFnZQogCSAqLwotCWlmIChpb2MtPnNwaV9kYXRhLnBJb2NQZzMpIHsKLQkJa2ZyZWUoaW9jLT5zcGlfZGF0YS5wSW9jUGczKTsKLQkJaW9jLT5zcGlfZGF0YS5wSW9jUGczID0gTlVMTDsKLQl9CisJa2ZyZWUoaW9jLT5zcGlfZGF0YS5wSW9jUGczKTsKKwlpb2MtPnNwaV9kYXRhLnBJb2NQZzMgPSBOVUxMOwogCiAJLyogVGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBoeXNpY2FsIGRpc2suCiAJICogUmVhZCBhbmQgc2F2ZSBJT0MgUGFnZSAzCkBAIC00NzUzLDkgKzQ2NjUsNyBAQAogCXUzMgkJIGZsYWdzTGVuZ3RoOwogCWludAkJIGluX2lzcjsKIAotCS8qIChCdWd6aWxsYTpmaWJyZWJ1Z3MsICM1MTMpCi0JICogQnVnIGZpeCAocGFydCAxKSEgIDIwMDEwOTA1IC1zcmFsc3RvbgotCSAqCVByZXZlbnQgY2FsbGluZyB3YWl0X2V2ZW50KCkgKGJlbG93KSwgaWYgY2FsbGVyIGhhcHBlbnMKKwkvKglQcmV2ZW50IGNhbGxpbmcgd2FpdF9ldmVudCgpIChiZWxvdyksIGlmIGNhbGxlciBoYXBwZW5zCiAJICoJdG8gYmUgaW4gSVNSIGNvbnRleHQsIGJlY2F1c2UgdGhhdCBpcyBmYXRhbCEKIAkgKi8KIAlpbl9pc3IgPSBpbl9pbnRlcnJ1cHQoKTsKQEAgLTQ4NjEsOSArNDc3MSw3IEBACiAJdTMyCQkgZmxhZ3NMZW5ndGg7CiAJaW50CQkgaW5faXNyOwogCi0JLyogKEJ1Z3ppbGxhOmZpYnJlYnVncywgIzUxMykKLQkgKiBCdWcgZml4IChwYXJ0IDEpISAgMjAwMTA5MDUgLXNyYWxzdG9uCi0JICoJUHJldmVudCBjYWxsaW5nIHdhaXRfZXZlbnQoKSAoYmVsb3cpLCBpZiBjYWxsZXIgaGFwcGVucworCS8qCVByZXZlbnQgY2FsbGluZyB3YWl0X2V2ZW50KCkgKGJlbG93KSwgaWYgY2FsbGVyIGhhcHBlbnMKIAkgKgl0byBiZSBpbiBJU1IgY29udGV4dCwgYmVjYXVzZSB0aGF0IGlzIGZhdGFsIQogCSAqLwogCWluX2lzciA9IGluX2ludGVycnVwdCgpOwpAQCAtNTEzMCwyMCArNTAzOCwyNiBAQAogcHJvY21wdF92ZXJzaW9uX3JlYWQoY2hhciAqYnVmLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZnNldCwgaW50IHJlcXVlc3QsIGludCAqZW9mLCB2b2lkICpkYXRhKQogewogCWludAkgaWk7Ci0JaW50CSBzY3NpLCBsYW4sIGN0bCwgdGFyZywgZG1wOworCWludAkgc2NzaSwgZmMsIHNhcywgbGFuLCBjdGwsIHRhcmcsIGRtcDsKIAljaGFyCSpkcnZuYW1lOwogCWludAkgbGVuOwogCiAJbGVuID0gc3ByaW50ZihidWYsICIlcy0lc1xuIiwgIm1wdGxpbnV4IiwgTVBUX0xJTlVYX1ZFUlNJT05fQ09NTU9OKTsKIAlsZW4gKz0gc3ByaW50ZihidWYrbGVuLCAiICBGdXNpb24gTVBUIGJhc2UgZHJpdmVyXG4iKTsKIAotCXNjc2kgPSBsYW4gPSBjdGwgPSB0YXJnID0gZG1wID0gMDsKKwlzY3NpID0gZmMgPSBzYXMgPSBsYW4gPSBjdGwgPSB0YXJnID0gZG1wID0gMDsKIAlmb3IgKGlpPU1QVF9NQVhfUFJPVE9DT0xfRFJJVkVSUy0xOyBpaTsgaWktLSkgewogCQlkcnZuYW1lID0gTlVMTDsKIAkJaWYgKE1wdENhbGxiYWNrc1tpaV0pIHsKIAkJCXN3aXRjaCAoTXB0RHJpdmVyQ2xhc3NbaWldKSB7Ci0JCQljYXNlIE1QVFNDU0lIX0RSSVZFUjoKLQkJCQlpZiAoIXNjc2krKykgZHJ2bmFtZSA9ICJTQ1NJIGhvc3QiOworCQkJY2FzZSBNUFRTUElfRFJJVkVSOgorCQkJCWlmICghc2NzaSsrKSBkcnZuYW1lID0gIlNQSSBob3N0IjsKKwkJCQlicmVhazsKKwkJCWNhc2UgTVBURkNfRFJJVkVSOgorCQkJCWlmICghZmMrKykgZHJ2bmFtZSA9ICJGQyBob3N0IjsKKwkJCQlicmVhazsKKwkJCWNhc2UgTVBUU0FTX0RSSVZFUjoKKwkJCQlpZiAoIXNhcysrKSBkcnZuYW1lID0gIlNBUyBob3N0IjsKIAkJCQlicmVhazsKIAkJCWNhc2UgTVBUTEFOX0RSSVZFUjoKIAkJCQlpZiAoIWxhbisrKSBkcnZuYW1lID0gIkxBTiI7CkBAIC01ODMyLDYgKzU3NDYsMTIgQEAKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworRVhQT1JUX1NZTUJPTChtcHRfYXR0YWNoKTsKK0VYUE9SVF9TWU1CT0wobXB0X2RldGFjaCk7CisjaWZkZWYgQ09ORklHX1BNCitFWFBPUlRfU1lNQk9MKG1wdF9yZXN1bWUpOworRVhQT1JUX1NZTUJPTChtcHRfc3VzcGVuZCk7CisjZW5kaWYKIEVYUE9SVF9TWU1CT0woaW9jX2xpc3QpOwogRVhQT1JUX1NZTUJPTChtcHRfcHJvY19yb290X2Rpcik7CiBFWFBPUlRfU1lNQk9MKG1wdF9yZWdpc3Rlcik7CkBAIC01ODYwLDE5ICs1NzgwLDYgQEAKIEVYUE9SVF9TWU1CT0wobXB0X2FsbG9jX2Z3X21lbW9yeSk7CiBFWFBPUlRfU1lNQk9MKG1wdF9mcmVlX2Z3X21lbW9yeSk7CiAKLXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtcHRiYXNlX2RyaXZlciA9IHsKLQkubmFtZQkJPSAibXB0YmFzZSIsCi0JLmlkX3RhYmxlCT0gbXB0YmFzZV9wY2lfdGFibGUsCi0JLnByb2JlCQk9IG1wdGJhc2VfcHJvYmUsCi0JLnJlbW92ZQkJPSBfX2RldmV4aXRfcChtcHRiYXNlX3JlbW92ZSksCi0JLmRyaXZlciAgICAgICAgID0gewotCQkuc2h1dGRvd24gPSBtcHRiYXNlX3NodXRkb3duLAotICAgICAgICB9LAotI2lmZGVmIENPTkZJR19QTQotCS5zdXNwZW5kCT0gbXB0YmFzZV9zdXNwZW5kLAotCS5yZXN1bWUJCT0gbXB0YmFzZV9yZXN1bWUsCi0jZW5kaWYKLX07CiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCkBAIC01ODg0LDcgKzU3OTEsNiBAQAogZnVzaW9uX2luaXQodm9pZCkKIHsKIAlpbnQgaTsKLQlpbnQgcjsKIAogCXNob3dfbXB0bW9kX3ZlcihteV9OQU1FLCBteV9WRVJTSU9OKTsKIAlwcmludGsoS0VSTl9JTkZPIENPUFlSSUdIVCAiXG4iKTsKQEAgLTU4OTYsOCArNTgwMiw3IEBACiAJCU1wdFJlc2V0SGFuZGxlcnNbaV0gPSBOVUxMOwogCX0KIAotCS8qIE5FVyEgIDIwMDEwMTIwIC1zcmFsc3RvbgotCSAqICBSZWdpc3RlciBvdXJzZWx2ZXMgKG1wdGJhc2UpIGluIG9yZGVyIHRvIGZhY2lsaXRhdGUKKwkvKiAgUmVnaXN0ZXIgb3Vyc2VsdmVzIChtcHRiYXNlKSBpbiBvcmRlciB0byBmYWNpbGl0YXRlCiAJICogIEV2ZW50Tm90aWZpY2F0aW9uIGhhbmRsaW5nLgogCSAqLwogCW1wdF9iYXNlX2luZGV4ID0gbXB0X3JlZ2lzdGVyKG1wdF9iYXNlX3JlcGx5LCBNUFRCQVNFX0RSSVZFUik7CkBAIC01OTEzLDExICs1ODE4LDcgQEAKICNpZmRlZiBDT05GSUdfUFJPQ19GUwogCSh2b2lkKSBwcm9jbXB0X2NyZWF0ZSgpOwogI2VuZGlmCi0JciA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoJm1wdGJhc2VfZHJpdmVyKTsKLQlpZihyKQotCQlyZXR1cm4ocik7Ci0KLQlyZXR1cm4gcjsKKwlyZXR1cm4gMDsKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtNTkzMyw3ICs1ODM0LDYgQEAKIAogCWRleGl0cHJpbnRrKChLRVJOX0lORk8gTVlOQU0gIjogZnVzaW9uX2V4aXQoKSBjYWxsZWQhXG4iKSk7CiAKLQlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJm1wdGJhc2VfZHJpdmVyKTsKIAltcHRfcmVzZXRfZGVyZWdpc3RlcihtcHRfYmFzZV9pbmRleCk7CiAKICNpZmRlZiBDT05GSUdfUFJPQ19GUwpAQCAtNTk0MSw2ICs1ODQxLDUgQEAKICNlbmRpZgogfQogCi0KIG1vZHVsZV9pbml0KGZ1c2lvbl9pbml0KTsKIG1vZHVsZV9leGl0KGZ1c2lvbl9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5oIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmgKaW5kZXggNmQxNmFjYy4uODQ4ZmIyMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5oCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5oCkBAIC01LDE1ICs1LDkgQEAKICAqICAgICAgICAgIExTSUZDOXh4L0xTSTQwOXh4IEZpYnJlIENoYW5uZWwKICAqICAgICAgcnVubmluZyBMU0kgTG9naWMgRnVzaW9uIE1QVCAoTWVzc2FnZSBQYXNzaW5nIFRlY2hub2xvZ3kpIGZpcm13YXJlLgogICoKLSAqICBDcmVkaXRzOgotICogICAgIChzZWUgbXB0YmFzZS5jKQotICoKLSAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCBMU0kgTG9naWMgQ29ycG9yYXRpb24KLSAqICBPcmlnaW5hbGx5IEJ5OiBTdGV2ZW4gSi4gUmFsc3RvbgotICogIChtYWlsdG86c2pyYWxzdG9uMUBuZXRzY2FwZS5uZXQpCisgKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uCiAgKiAgKG1haWx0bzptcHRfbGludXhfZGV2ZWxvcGVyQGxzaWwuY29tKQogICoKLSAqICAkSWQ6IG1wdGJhc2UuaCx2IDEuMTQ0IDIwMDMvMDEvMjggMjE6MzE6NTYgcGRlbGFuZXkgRXhwICQKICAqLwogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwogLyoKQEAgLTcxLDcgKzY1LDYgQEAKICNpbmNsdWRlICJsc2kvbXBpX2ZjLmgiCQkvKiBGaWJyZSBDaGFubmVsIChsb3dsZXZlbCkgc3VwcG9ydCAqLwogI2luY2x1ZGUgImxzaS9tcGlfdGFyZy5oIgkvKiBTQ1NJL0ZDUCBUYXJnZXQgcHJvdGNvbCBzdXBwb3J0ICovCiAjaW5jbHVkZSAibHNpL21waV90b29sLmgiCS8qIFRvb2xzIHN1cHBvcnQgKi8KLSNpbmNsdWRlICJsc2kvZmNfbG9nLmgiCiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIApAQCAtODAsMTEgKzczLDExIEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT1BZUklHSFQKLSNkZWZpbmUgQ09QWVJJR0hUCSJDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCAiIE1PRFVMRUFVVEhPUgorI2RlZmluZSBDT1BZUklHSFQJIkNvcHlyaWdodCAoYykgMTk5OS0yMDA1ICIgTU9EVUxFQVVUSE9SCiAjZW5kaWYKIAotI2RlZmluZSBNUFRfTElOVVhfVkVSU0lPTl9DT01NT04JIjMuMDEuMjAiCi0jZGVmaW5lIE1QVF9MSU5VWF9QQUNLQUdFX05BTUUJCSJAKCMpbXB0bGludXgtMy4wMS4yMCIKKyNkZWZpbmUgTVBUX0xJTlVYX1ZFUlNJT05fQ09NTU9OCSIzLjAzLjAyIgorI2RlZmluZSBNUFRfTElOVVhfUEFDS0FHRV9OQU1FCQkiQCgjKW1wdGxpbnV4LTMuMDMuMDIiCiAjZGVmaW5lIFdIQVRfTUFHSUNfU1RSSU5HCQkiQCIgIigiICIjIiAiKSIKIAogI2RlZmluZSBzaG93X21wdG1vZF92ZXIocyx2ZXIpICBcCkBAIC0yMDMsNyArMTk2LDkgQEAKIHR5cGVkZWYgZW51bSB7CiAJTVBUQkFTRV9EUklWRVIsCQkvKiBNUFQgYmFzZSBjbGFzcyAqLwogCU1QVENUTF9EUklWRVIsCQkvKiBNUFQgaW9jdGwgY2xhc3MgKi8KLQlNUFRTQ1NJSF9EUklWRVIsCS8qIE1QVCBTQ1NJIGhvc3QgKGluaXRpYXRvcikgY2xhc3MgKi8KKwlNUFRTUElfRFJJVkVSLAkJLyogTVBUIFNQSSBob3N0IGNsYXNzICovCisJTVBURkNfRFJJVkVSLAkJLyogTVBUIEZDIGhvc3QgY2xhc3MgKi8KKwlNUFRTQVNfRFJJVkVSLAkJLyogTVBUIFNBUyBob3N0IGNsYXNzICovCiAJTVBUTEFOX0RSSVZFUiwJCS8qIE1QVCBMQU4gY2xhc3MgKi8KIAlNUFRTVE1fRFJJVkVSLAkJLyogTVBUIFNDU0kgdGFyZ2V0IG1vZGUgY2xhc3MgKi8KIAlNUFRVTktOT1dOX0RSSVZFUgpAQCAtMjEyLDExICsyMDcsNiBAQAogc3RydWN0IG1wdF9wY2lfZHJpdmVyewogCWludCAgKCpwcm9iZSkgKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCk7CiAJdm9pZCAoKnJlbW92ZSkgKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwotCXZvaWQgKCpzaHV0ZG93bikgKHN0cnVjdCBkZXZpY2UgKiBkZXYpOwotI2lmZGVmIENPTkZJR19QTQotCWludCAgKCpyZXN1bWUpIChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKLQlpbnQgICgqc3VzcGVuZCkgKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7Ci0jZW5kaWYKIH07CiAKIC8qCkBAIC00ODMsNiArNDczLDcgQEAKIAl1OAkJIGZvcmNlRHY7CQkvKiAxIHRvIGZvcmNlIERWIHNjaGVkdWxpbmcgKi8KIAl1OAkJIG5vUWFzOwkJCS8qIERpc2FibGUgUUFTIGZvciB0aGlzIGFkYXB0ZXIgKi8KIAl1OAkJIFNhZl9UZTsJCS8qIDEgdG8gZm9yY2UgYWxsIFByb2Nlc3NvcnMgYXMgU0FGLVRFIGlmIElucXVpcnkgZGF0YSBsZW5ndGggaXMgdG9vIHNob3J0IHRvIGNoZWNrIGZvciBTQUYtVEUgKi8KKwl1OAkJIG1wdF9kdjsJCS8qIGNvbW1hbmQgbGluZSBvcHRpb246IGVuaGFuY2VkPTEsIGJhc2ljPTAgKi8KIAl1OAkJIHJzdmRbMV07CiB9IFNjc2lDZmdEYXRhOwogCkBAIC01NzEsMTEgKzU2MiwyMSBAQAogCUZDUG9ydFBhZ2UwX3QJCSBmY19wb3J0X3BhZ2UwWzJdOwogCUxBTlBhZ2UwX3QJCSBsYW5fY25mZ19wYWdlMDsKIAlMQU5QYWdlMV90CQkgbGFuX2NuZmdfcGFnZTE7CisJLyogIAorCSAqIERlc2NyaXB0aW9uOiBlcnJhdGFfZmxhZ18xMDY0CisJICogSWYgYSBQQ0lYIHJlYWQgb2NjdXJzIHdpdGhpbiAxIG9yIDIgY3ljbGVzIGFmdGVyIHRoZSBjaGlwIHJlY2VpdmVzCisJICogYSBzcGxpdCBjb21wbGV0aW9uIGZvciBhIHJlYWQgZGF0YSwgYW4gaW50ZXJuYWwgYWRkcmVzcyBwb2ludGVyIGluY29ycmVjdGx5CisJICogaW5jcmVtZW50cyBieSAzMiBieXRlcworCSAqLworCWludAkJCSBlcnJhdGFfZmxhZ18xMDY0OwkKIAl1OAkJCSBGaXJzdFdob0luaXQ7CiAJdTgJCQkgdXBsb2FkX2Z3OwkvKiBJZiBzZXQsIGRvIGEgZncgdXBsb2FkICovCiAJdTgJCQkgcmVsb2FkX2Z3OwkvKiBGb3JjZSBhIEZXIFJlbG9hZCBvbiBuZXh0IHJlc2V0ICovCiAJdTgJCQkgTkJTaGlmdEZhY3RvcjsgIC8qIE5CIFNoaWZ0IEZhY3RvciBiYXNlZCBvbiBCbG9jayBTaXplIChGYWN0cykgICovICAgICAKIAl1OAkJCSBwYWQxWzRdOworCWludAkJCSBEb25lQ3R4OworCWludAkJCSBUYXNrQ3R4OworCWludAkJCSBJbnRlcm5hbEN0eDsKIAlzdHJ1Y3QgbGlzdF9oZWFkCSBsaXN0OyAKIAlzdHJ1Y3QgbmV0X2RldmljZQkqbmV0ZGV2OwogfSBNUFRfQURBUFRFUjsKQEAgLTc3MywxMiArNzc0LDYgQEAKICNkZWZpbmUgREJHX0RVTVBfVE1fUkVQTFlfRlJBTUUobWZwKQogI2VuZGlmCiAKLSNpZmRlZiBNUFRfREVCVUdfTkVICi0jZGVmaW5lIG5laHByaW50ayh4KSBwcmludGsgeAotI2Vsc2UKLSNkZWZpbmUgbmVocHJpbnRrKHgpCi0jZW5kaWYKLQogI2lmIGRlZmluZWQoTVBUX0RFQlVHX0NPTkZJRykgfHwgZGVmaW5lZChNUFRfREVCVUcpCiAjZGVmaW5lIGRjcHJpbnRrKHgpIHByaW50ayB4CiAjZWxzZQpAQCAtODk4LDYgKzg5MywxMSBAQAogCXVuc2lnbmVkIGxvbmcJCSAgc29mdF9yZXNldHM7CQkvKiBmdy9leHRlcm5hbCBidXMgcmVzZXRzIGNvdW50ICovCiAJdW5zaWduZWQgbG9uZwkJICB0aW1lb3V0czsJCS8qIGNtZCB0aW1lb3V0cyAqLwogCXVzaG9ydAkJCSAgc2VsX3RpbWVvdXRbTVBUX01BWF9GQ19ERVZJQ0VTXTsKKwljaGFyIAkJCSAgKmluZm9fa2J1ZjsKKwl3YWl0X3F1ZXVlX2hlYWRfdAkgIHNjYW5kdl93YWl0cTsKKwlpbnQJCQkgIHNjYW5kdl93YWl0X2RvbmU7CisJbG9uZwkJCSAgbGFzdF9xdWV1ZV9mdWxsOworCXU4CQkgCSAgbXB0X3BxX2ZpbHRlcjsKIH0gTVBUX1NDU0lfSE9TVDsKIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtOTMxLDYgKzkzMSwxMiBAQAogLyoKICAqICBQdWJsaWMgZW50cnkgcG9pbnRzLi4uCiAgKi8KK2V4dGVybiBpbnQJIG1wdF9hdHRhY2goc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCk7CitleHRlcm4gdm9pZAkgbXB0X2RldGFjaChzdHJ1Y3QgcGNpX2RldiAqcGRldik7CisjaWZkZWYgQ09ORklHX1BNCitleHRlcm4gaW50CSBtcHRfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKTsKK2V4dGVybiBpbnQJIG1wdF9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpOworI2VuZGlmCiBleHRlcm4gaW50CSBtcHRfcmVnaXN0ZXIoTVBUX0NBTExCQUNLIGNiZnVuYywgTVBUX0RSSVZFUl9DTEFTUyBkY2xhc3MpOwogZXh0ZXJuIHZvaWQJIG1wdF9kZXJlZ2lzdGVyKGludCBjYl9pZHgpOwogZXh0ZXJuIGludAkgbXB0X2V2ZW50X3JlZ2lzdGVyKGludCBjYl9pZHgsIE1QVF9FVkhBTkRMRVIgZXZfY2JmdW5jKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jCmluZGV4IDcwYjBjZmIuLjA1ZWE1OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYwpAQCAtMSw0MCArMSwxMiBAQAogLyoKICAqICBsaW51eC9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jCi0gKiAgICAgIEZ1c2lvbiBNUFQgbWlzYyBkZXZpY2UgKGlvY3RsKSBkcml2ZXIuCi0gKiAgICAgIEZvciB1c2Ugd2l0aCBQQ0kgY2hpcC9hZGFwdGVyKHMpOgotICogICAgICAgICAgTFNJRkM5eHgvTFNJNDA5eHggRmlicmUgQ2hhbm5lbAorICogICAgICBtcHQgSW9jdGwgZHJpdmVyLgorICogICAgICBGb3IgdXNlIHdpdGggTFNJIExvZ2ljIFBDSSBjaGlwL2FkYXB0ZXJzCiAgKiAgICAgIHJ1bm5pbmcgTFNJIExvZ2ljIEZ1c2lvbiBNUFQgKE1lc3NhZ2UgUGFzc2luZyBUZWNobm9sb2d5KSBmaXJtd2FyZS4KICAqCi0gKiAgQ3JlZGl0czoKLSAqICAgICAgVGhpcyBkcml2ZXIgd291bGQgbm90IGV4aXN0IGlmIG5vdCBmb3IgQWxhbiBDb3gncyBkZXZlbG9wbWVudAotICogICAgICBvZiB0aGUgbGludXggaTJvIGRyaXZlci4KLSAqCi0gKiAgICAgIEEgc3BlY2lhbCB0aGFua3MgdG8gUGFtZWxhIERlbGFuZXkgKExTSSBMb2dpYykgZm9yIHRvbnMgb2Ygd29yawotICogICAgICBhbmQgY291bnRsZXNzIGVuaGFuY2VtZW50cyB3aGlsZSBhZGRpbmcgc3VwcG9ydCBmb3IgdGhlIDEwMzAKLSAqICAgICAgY2hpcCBmYW1pbHkuICBQYW0gaGFzIGJlZW4gaW5zdHJ1bWVudGFsIGluIHRoZSBkZXZlbG9wbWVudCBvZgotICogICAgICBvZiB0aGUgMi54eC54eCBzZXJpZXMgZnVzaW9uIGRyaXZlcnMsIGFuZCBoZXIgY29udHJpYnV0aW9ucyBhcmUKLSAqICAgICAgZmFyIHRvbyBudW1lcm91cyB0byBob3BlIHRvIGxpc3QgaW4gb25lIHBsYWNlLgotICoKLSAqICAgICAgQSBodWdlIGRlYnQgb2YgZ3JhdGl0dWRlIGlzIG93ZWQgdG8gRGF2aWQgUy4gTWlsbGVyIChEYXZlTSkKLSAqICAgICAgZm9yIGZpeGluZyBtdWNoIG9mIHRoZSBzdHVwaWQgYW5kIGJyb2tlbiBzdHVmZiBpbiB0aGUgZWFybHkKLSAqICAgICAgZHJpdmVyIHdoaWxlIHBvcnRpbmcgdG8gc3BhcmM2NCBwbGF0Zm9ybS4gIFRIQU5LIFlPVSEKLSAqCi0gKiAgICAgIEEgYmlnIFRIQU5LUyB0byBFZGRpZSBDLiBEb3N0IGZvciBmaXhpbmcgdGhlIGlvY3RsIHBhdGgKLSAqICAgICAgYW5kIG1vc3QgaW1wb3J0YW50bHkgZi93IGRvd25sb2FkIG9uIHNwYXJjNjQgcGxhdGZvcm0hCi0gKiAgICAgIChwbHVzIEVkZGllJ3Mgb3RoZXIgaGVscGZ1bCBoaW50cyBhbmQgaW5zaWdodHMpCi0gKgotICogICAgICBUaGFua3MgdG8gQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIGZvciBmaW5kaW5nIGFuZCBwYXRjaGluZwotICogICAgICBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayBpbiBtcHRjdGxfZG9fZndfZG93bmxvYWQoKSwKLSAqICAgICAgYW5kIGZvciBzb21lIGttYWxsb2MgaW5zaWdodDotKQotICoKLSAqICAgICAgKHNlZSBhbHNvIG1wdGJhc2UuYykKLSAqCi0gKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uCi0gKiAgT3JpZ2luYWxseSBCeTogU3RldmVuIEouIFJhbHN0b24sIE5vYWggUm9tZXIKLSAqICAobWFpbHRvOnNqcmFsc3RvbjFAbmV0c2NhcGUubmV0KQorICogIENvcHlyaWdodCAoYykgMTk5OS0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbgogICogIChtYWlsdG86bXB0X2xpbnV4X2RldmVsb3BlckBsc2lsLmNvbSkKICAqCi0gKiAgJElkOiBtcHRjdGwuYyx2IDEuNjMgMjAwMi8xMi8wMyAyMToyNjozMyBwZGVsYW5leSBFeHAgJAogICovCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCiAvKgpAQCAtOTUsOCArNjcsOCBAQAogI2luY2x1ZGUgPHNjc2kvc2NzaV9ob3N0Lmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX3RjcS5oPgogCi0jZGVmaW5lIENPUFlSSUdIVAkiQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uIgotI2RlZmluZSBNT0RVTEVBVVRIT1IJIlN0ZXZlbiBKLiBSYWxzdG9uLCBOb2FoIFJvbWVyLCBQYW1lbGEgRGVsYW5leSIKKyNkZWZpbmUgQ09QWVJJR0hUCSJDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24iCisjZGVmaW5lIE1PRFVMRUFVVEhPUgkiTFNJIExvZ2ljIENvcnBvcmF0aW9uIgogI2luY2x1ZGUgIm1wdGJhc2UuaCIKICNpbmNsdWRlICJtcHRjdGwuaCIKIApAQCAtMTI3LDE0ICs5OSwxNCBAQAogICogYXJnIGNvbnRlbnRzIHNwZWNpZmljIHRvIGZ1bmN0aW9uLgogICovCiBzdGF0aWMgaW50IG1wdGN0bF9md19kb3dubG9hZCh1bnNpZ25lZCBsb25nIGFyZyk7Ci1zdGF0aWMgaW50IG1wdGN0bF9nZXRpb2NpbmZvICh1bnNpZ25lZCBsb25nIGFyZywgdW5zaWduZWQgaW50IGNtZCk7Ci1zdGF0aWMgaW50IG1wdGN0bF9nZXR0YXJnZXRpbmZvICh1bnNpZ25lZCBsb25nIGFyZyk7Ci1zdGF0aWMgaW50IG1wdGN0bF9yZWFkdGVzdCAodW5zaWduZWQgbG9uZyBhcmcpOwotc3RhdGljIGludCBtcHRjdGxfbXB0X2NvbW1hbmQgKHVuc2lnbmVkIGxvbmcgYXJnKTsKLXN0YXRpYyBpbnQgbXB0Y3RsX2V2ZW50cXVlcnkgKHVuc2lnbmVkIGxvbmcgYXJnKTsKLXN0YXRpYyBpbnQgbXB0Y3RsX2V2ZW50ZW5hYmxlICh1bnNpZ25lZCBsb25nIGFyZyk7Ci1zdGF0aWMgaW50IG1wdGN0bF9ldmVudHJlcG9ydCAodW5zaWduZWQgbG9uZyBhcmcpOwotc3RhdGljIGludCBtcHRjdGxfcmVwbGFjZV9mdyAodW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIGludCBtcHRjdGxfZ2V0aW9jaW5mbyh1bnNpZ25lZCBsb25nIGFyZywgdW5zaWduZWQgaW50IGNtZCk7CitzdGF0aWMgaW50IG1wdGN0bF9nZXR0YXJnZXRpbmZvKHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyBpbnQgbXB0Y3RsX3JlYWR0ZXN0KHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyBpbnQgbXB0Y3RsX21wdF9jb21tYW5kKHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyBpbnQgbXB0Y3RsX2V2ZW50cXVlcnkodW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIGludCBtcHRjdGxfZXZlbnRlbmFibGUodW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIGludCBtcHRjdGxfZXZlbnRyZXBvcnQodW5zaWduZWQgbG9uZyBhcmcpOworc3RhdGljIGludCBtcHRjdGxfcmVwbGFjZV9mdyh1bnNpZ25lZCBsb25nIGFyZyk7CiAKIHN0YXRpYyBpbnQgbXB0Y3RsX2RvX3Jlc2V0KHVuc2lnbmVkIGxvbmcgYXJnKTsKIHN0YXRpYyBpbnQgbXB0Y3RsX2hwX2hvc3RpbmZvKHVuc2lnbmVkIGxvbmcgYXJnLCB1bnNpZ25lZCBpbnQgY21kKTsKQEAgLTE0OSwxMSArMTIxLDExIEBACiAvKgogICogUHJpdmF0ZSBmdW5jdGlvbiBjYWxscy4KICAqLwotc3RhdGljIGludCBtcHRjdGxfZG9fbXB0X2NvbW1hbmQgKHN0cnVjdCBtcHRfaW9jdGxfY29tbWFuZCBrYXJnLCB2b2lkIF9fdXNlciAqbWZQdHIpOworc3RhdGljIGludCBtcHRjdGxfZG9fbXB0X2NvbW1hbmQoc3RydWN0IG1wdF9pb2N0bF9jb21tYW5kIGthcmcsIHZvaWQgX191c2VyICptZlB0cik7CiBzdGF0aWMgaW50IG1wdGN0bF9kb19md19kb3dubG9hZChpbnQgaW9jLCBjaGFyIF9fdXNlciAqdWZ3YnVmLCBzaXplX3QgZndsZW4pOwotc3RhdGljIE1wdFNnZV90ICprYnVmX2FsbG9jXzJfc2dsKCBpbnQgYnl0ZXMsIHUzMiBkaXIsIGludCBzZ2Vfb2Zmc2V0LCBpbnQgKmZyYWdzLAorc3RhdGljIE1wdFNnZV90ICprYnVmX2FsbG9jXzJfc2dsKGludCBieXRlcywgdTMyIGRpciwgaW50IHNnZV9vZmZzZXQsIGludCAqZnJhZ3MsCiAJCXN0cnVjdCBidWZsaXN0ICoqYmxwLCBkbWFfYWRkcl90ICpzZ2xidWZfZG1hLCBNUFRfQURBUFRFUiAqaW9jKTsKLXN0YXRpYyB2b2lkIGtmcmVlX3NnbCggTXB0U2dlX3QgKnNnbCwgZG1hX2FkZHJfdCBzZ2xfZG1hLAorc3RhdGljIHZvaWQga2ZyZWVfc2dsKE1wdFNnZV90ICpzZ2wsIGRtYV9hZGRyX3Qgc2dsX2RtYSwKIAkJc3RydWN0IGJ1Zmxpc3QgKmJ1Zmxpc3QsIE1QVF9BREFQVEVSICppb2MpOwogc3RhdGljIHZvaWQgbXB0Y3RsX3RpbWVvdXRfZXhwaXJlZCAoTVBUX0lPQ1RMICppb2N0bCk7CiBzdGF0aWMgaW50ICBtcHRjdGxfYnVzX3Jlc2V0KE1QVF9JT0NUTCAqaW9jdGwpOwpAQCAtMTExOSw3ICsxMDkxLDcgQEAKIAlpbnQJCQludW1EZXZpY2VzID0gMDsKIAl1bnNpZ25lZCBpbnQJCW1heF9pZDsKIAlpbnQJCQlpaTsKLQlpbnQJCQlwb3J0OworCXVuc2lnbmVkIGludAkJcG9ydDsKIAlpbnQJCQljaW1fcmV2OwogCXU4CQkJcmV2aXNpb247CiAKQEAgLTExNjIsOSArMTEzNCw3IEBACiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCS8qIFZlcmlmeSB0aGUgZGF0YSB0cmFuc2ZlciBzaXplIGlzIGNvcnJlY3QuCi0JICogSWdub3JlIHRoZSBwb3J0IHNldHRpbmcuCi0JICovCisJLyogVmVyaWZ5IHRoZSBkYXRhIHRyYW5zZmVyIHNpemUgaXMgY29ycmVjdC4gKi8KIAlpZiAoa2FyZy0+aGRyLm1heERhdGFTaXplICE9IGRhdGFfc2l6ZSkgewogCQlwcmludGsoS0VSTl9FUlIgIiVzQCVkOjptcHRjdGxfZ2V0aW9jaW5mbyAtICIKIAkJCSJTdHJ1Y3R1cmUgc2l6ZSBtaXNtYXRjaC4gQ29tbWFuZCBub3QgY29tcGxldGVkLlxuIiwKQEAgLTExODEsNiArMTE1MSw4IEBACiAJZWxzZQogCQlrYXJnLT5hZGFwdGVyVHlwZSA9IE1QVF9JT0NUTF9JTlRFUkZBQ0VfU0NTSTsKIAorCWlmIChrYXJnLT5oZHIucG9ydCA+IDEpCisJCXJldHVybiAtRUlOVkFMOwogCXBvcnQgPSBrYXJnLT5oZHIucG9ydDsKIAogCWthcmctPnBvcnQgPSBwb3J0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuaCBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmgKaW5kZXggY2M0ZWNmMC4uMjg3NTRhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuaAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5oCkBAIC01LDIyICs1LDkgQEAKICAqICAgICAgICAgIExTSUZDOXh4L0xTSTQwOXh4IEZpYnJlIENoYW5uZWwKICAqICAgICAgcnVubmluZyBMU0kgTG9naWMgRnVzaW9uIE1QVCAoTWVzc2FnZSBQYXNzaW5nIFRlY2hub2xvZ3kpIGZpcm13YXJlLgogICoKLSAqICBDcmVkaXRzOgotICogICAgICBUaGlzIGRyaXZlciB3b3VsZCBub3QgZXhpc3QgaWYgbm90IGZvciBBbGFuIENveCdzIGRldmVsb3BtZW50Ci0gKiAgICAgIG9mIHRoZSBsaW51eCBpMm8gZHJpdmVyLgotICoKLSAqICAgICAgQSBodWdlIGRlYnQgb2YgZ3JhdGl0dWRlIGlzIG93ZWQgdG8gRGF2aWQgUy4gTWlsbGVyIChEYXZlTSkKLSAqICAgICAgZm9yIGZpeGluZyBtdWNoIG9mIHRoZSBzdHVwaWQgYW5kIGJyb2tlbiBzdHVmZiBpbiB0aGUgZWFybHkKLSAqICAgICAgZHJpdmVyIHdoaWxlIHBvcnRpbmcgdG8gc3BhcmM2NCBwbGF0Zm9ybS4gIFRIQU5LIFlPVSEKLSAqCi0gKiAgICAgIChzZWUgYWxzbyBtcHRiYXNlLmMpCi0gKgotICogIENvcHlyaWdodCAoYykgMTk5OS0yMDA0IExTSSBMb2dpYyBDb3Jwb3JhdGlvbgotICogIE9yaWdpbmFsbHkgQnk6IFN0ZXZlbiBKLiBSYWxzdG9uCi0gKiAgKG1haWx0bzpzanJhbHN0b24xQG5ldHNjYXBlLm5ldCkKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24KICAqICAobWFpbHRvOm1wdF9saW51eF9kZXZlbG9wZXJAbHNpbC5jb20pCiAgKgotICogICRJZDogbXB0Y3RsLmgsdiAxLjEzIDIwMDIvMTIvMDMgMjE6MjY6MzMgcGRlbGFuZXkgRXhwICQKICAqLwogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0ZmMuYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0ZmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGQ2NTM5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRmYy5jCkBAIC0wLDAgKzEsNDMxIEBACisvKgorICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0ZmMuYworICogICAgICBGb3IgdXNlIHdpdGggTFNJIExvZ2ljIFBDSSBjaGlwL2FkYXB0ZXIocykKKyAqICAgICAgcnVubmluZyBMU0kgTG9naWMgRnVzaW9uIE1QVCAoTWVzc2FnZSBQYXNzaW5nIFRlY2hub2xvZ3kpIGZpcm13YXJlLgorICoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24KKyAqICAobWFpbHRvOm1wdF9saW51eF9kZXZlbG9wZXJAbHNpbC5jb20pCisgKgorICovCisvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCisvKgorICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgTk8gV0FSUkFOVFkKKyAgICBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IKKyAgICBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywgV0lUSE9VVAorICAgIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKKyAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLAorICAgIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorCisgICAgRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkKKyAgICBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWQorICAgIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICAgIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5ECisgICAgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgICAgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICAgIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRAorICAgIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMKKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisqLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworI2luY2x1ZGUgImxpbnV4X2NvbXBhdC5oIgkvKiBsaW51eC0yLjYgdHdlYWtzICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgva2Rldl90Lmg+CisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4JLyogZm9yIG1kZWxheSAqLworI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgkvKiBuZWVkZWQgZm9yIGluX2ludGVycnVwdCgpIHByb3RvICovCisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CS8qIG5vdGlmaWVyIGNvZGUgKi8KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCisjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2NtbmQuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfZGV2aWNlLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2hvc3QuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfdGNxLmg+CisKKyNpbmNsdWRlICJtcHRiYXNlLmgiCisjaW5jbHVkZSAibXB0c2NzaWguaCIKKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworI2RlZmluZSBteV9OQU1FCQkiRnVzaW9uIE1QVCBGQyBIb3N0IGRyaXZlciIKKyNkZWZpbmUgbXlfVkVSU0lPTglNUFRfTElOVVhfVkVSU0lPTl9DT01NT04KKyNkZWZpbmUgTVlOQU0JCSJtcHRmYyIKKworTU9EVUxFX0FVVEhPUihNT0RVTEVBVVRIT1IpOworTU9EVUxFX0RFU0NSSVBUSU9OKG15X05BTUUpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCisvKiBDb21tYW5kIGxpbmUgYXJncyAqLworc3RhdGljIGludCBtcHRfcHFfZmlsdGVyID0gMDsKK21vZHVsZV9wYXJhbShtcHRfcHFfZmlsdGVyLCBpbnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhtcHRfcHFfZmlsdGVyLCAiIEVuYWJsZSBwZXJpcGhlcmFsIHF1YWxpZmllciBmaWx0ZXI6IGVuYWJsZT0xICAoZGVmYXVsdD0wKSIpOworCitzdGF0aWMgaW50CW1wdGZjRG9uZUN0eCA9IC0xOworc3RhdGljIGludAltcHRmY1Rhc2tDdHggPSAtMTsKK3N0YXRpYyBpbnQJbXB0ZmNJbnRlcm5hbEN0eCA9IC0xOyAvKiBVc2VkIG9ubHkgZm9yIGludGVybmFsIGNvbW1hbmRzICovCisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBtcHRmY19xdWV1ZV9kZXB0aF9hdHRyID0geworCS5hdHRyID0geworCQkubmFtZSA9IAkicXVldWVfZGVwdGgiLAorCQkubW9kZSA9CQlTX0lXVVNSLAorCX0sCisJLnN0b3JlID0gbXB0c2NzaWhfc3RvcmVfcXVldWVfZGVwdGgsCit9OworCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKm1wdGZjX2Rldl9hdHRyc1tdID0geworCSZtcHRmY19xdWV1ZV9kZXB0aF9hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBtcHRmY19kcml2ZXJfdGVtcGxhdGUgPSB7CisJLnByb2NfbmFtZQkJCT0gIm1wdGZjIiwKKwkucHJvY19pbmZvCQkJPSBtcHRzY3NpaF9wcm9jX2luZm8sCisJLm5hbWUJCQkJPSAiTVBUIEZDIEhvc3QiLAorCS5pbmZvCQkJCT0gbXB0c2NzaWhfaW5mbywKKwkucXVldWVjb21tYW5kCQkJPSBtcHRzY3NpaF9xY21kLAorCS5zbGF2ZV9hbGxvYwkJCT0gbXB0c2NzaWhfc2xhdmVfYWxsb2MsCisJLnNsYXZlX2NvbmZpZ3VyZQkJPSBtcHRzY3NpaF9zbGF2ZV9jb25maWd1cmUsCisJLnNsYXZlX2Rlc3Ryb3kJCQk9IG1wdHNjc2loX3NsYXZlX2Rlc3Ryb3ksCisJLmVoX2Fib3J0X2hhbmRsZXIJCT0gbXB0c2NzaWhfYWJvcnQsCisJLmVoX2RldmljZV9yZXNldF9oYW5kbGVyCT0gbXB0c2NzaWhfZGV2X3Jlc2V0LAorCS5laF9idXNfcmVzZXRfaGFuZGxlcgkJPSBtcHRzY3NpaF9idXNfcmVzZXQsCisJLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgkJPSBtcHRzY3NpaF9ob3N0X3Jlc2V0LAorCS5iaW9zX3BhcmFtCQkJPSBtcHRzY3NpaF9iaW9zX3BhcmFtLAorCS5jYW5fcXVldWUJCQk9IE1QVF9GQ19DQU5fUVVFVUUsCisJLnRoaXNfaWQJCQk9IC0xLAorCS5zZ190YWJsZXNpemUJCQk9IE1QVF9TQ1NJX1NHX0RFUFRILAorCS5tYXhfc2VjdG9ycwkJCT0gODE5MiwKKwkuY21kX3Blcl9sdW4JCQk9IDcsCisJLnVzZV9jbHVzdGVyaW5nCQkJPSBFTkFCTEVfQ0xVU1RFUklORywKKwkuc2Rldl9hdHRycwkJCT0gbXB0ZmNfZGV2X2F0dHJzLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFN1cHBvcnRlZCBoYXJkd2FyZQorICovCisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtcHRmY19wY2lfdGFibGVbXSA9IHsKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkwOSwKKwkJUENJX0FOWV9JRCwgUENJX0FOWV9JRCB9LAorCXsgUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsIFBDSV9ERVZJQ0VfSURfTFNJX0ZDOTE5LAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCisJeyBQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywgUENJX0RFVklDRV9JRF9MU0lfRkM5MjksCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkxOVgsCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkyOVgsCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzkzOVgsCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV9GQzk0OVgsCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQgfSwKKwl7MH0JLyogVGVybWluYXRpbmcgZW50cnkgKi8KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbXB0ZmNfcGNpX3RhYmxlKTsKKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoKKyAqCW1wdGZjX3Byb2JlIC0gSW5zdGFsbHMgc2NzaSBkZXZpY2VzIHBlciBidXMuCisgKglAcGRldjogUG9pbnRlciB0byBwY2lfZGV2IHN0cnVjdHVyZQorICoKKyAqCVJldHVybnMgMCBmb3Igc3VjY2Vzcywgbm9uLXplcm8gZm9yIGZhaWx1cmUuCisgKgorICovCitzdGF0aWMgaW50CittcHRmY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCBTY3NpX0hvc3QJKnNoOworCU1QVF9TQ1NJX0hPU1QJCSpoZDsKKwlNUFRfQURBUFRFUiAJCSppb2M7CisJdW5zaWduZWQgbG9uZwkJIGZsYWdzOworCWludAkJCSBzeiwgaWk7CisJaW50CQkJIG51bVNHRSA9IDA7CisJaW50CQkJIHNjYWxlOworCWludAkJCSBpb2NfY2FwOworCXU4CQkJKm1lbTsKKwlpbnQJCQllcnJvcj0wOworCWludAkJCXI7CisJCQorCWlmICgociA9IG1wdF9hdHRhY2gocGRldixpZCkpICE9IDApCisJCXJldHVybiByOworCQorCWlvYyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlpb2MtPkRvbmVDdHggPSBtcHRmY0RvbmVDdHg7CisJaW9jLT5UYXNrQ3R4ID0gbXB0ZmNUYXNrQ3R4OworCWlvYy0+SW50ZXJuYWxDdHggPSBtcHRmY0ludGVybmFsQ3R4OworCisJLyogIEFkZGVkIHNhbml0eSBjaGVjayBvbiByZWFkaW5lc3Mgb2YgdGhlIE1QVCBhZGFwdGVyLgorCSAqLworCWlmIChpb2MtPmxhc3Rfc3RhdGUgIT0gTVBJX0lPQ19TVEFURV9PUEVSQVRJT05BTCkgeworCQlwcmludGsoTVlJT0Nfc19XQVJOX0ZNVAorCQkgICJTa2lwcGluZyBiZWNhdXNlIGl0J3Mgbm90IG9wZXJhdGlvbmFsIVxuIiwKKwkJICBpb2MtPm5hbWUpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpZiAoIWlvYy0+YWN0aXZlKSB7CisJCXByaW50ayhNWUlPQ19zX1dBUk5fRk1UICJTa2lwcGluZyBiZWNhdXNlIGl0J3MgZGlzYWJsZWQhXG4iLAorCQkgIGlvYy0+bmFtZSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCS8qICBTYW5pdHkgY2hlY2sgLSBlbnN1cmUgYXQgbGVhc3QgMSBwb3J0IGlzIElOSVRJQVRPUiBjYXBhYmxlCisJICovCisJaW9jX2NhcCA9IDA7CisJZm9yIChpaT0wOyBpaSA8IGlvYy0+ZmFjdHMuTnVtYmVyT2ZQb3J0czsgaWkrKykgeworCQlpZiAoaW9jLT5wZmFjdHNbaWldLlByb3RvY29sRmxhZ3MgJgorCQkgICAgTVBJX1BPUlRGQUNUU19QUk9UT0NPTF9JTklUSUFUT1IpCisJCQlpb2NfY2FwICsrOworCX0KKworCWlmICghaW9jX2NhcCkgeworCQlwcmludGsoTVlJT0Nfc19XQVJOX0ZNVAorCQkJIlNraXBwaW5nIGlvYz0lcCBiZWNhdXNlIFNDU0kgSW5pdGlhdG9yIG1vZGUgaXMgTk9UIGVuYWJsZWQhXG4iLAorCQkJaW9jLT5uYW1lLCBpb2MpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlzaCA9IHNjc2lfaG9zdF9hbGxvYygmbXB0ZmNfZHJpdmVyX3RlbXBsYXRlLCBzaXplb2YoTVBUX1NDU0lfSE9TVCkpOworCisJaWYgKCFzaCkgeworCQlwcmludGsoTVlJT0Nfc19XQVJOX0ZNVAorCQkJIlVuYWJsZSB0byByZWdpc3RlciBjb250cm9sbGVyIHdpdGggU0NTSSBzdWJzeXN0ZW1cbiIsCisJCQlpb2MtPm5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYy0+RnJlZVFsb2NrLCBmbGFncyk7CisKKwkvKiBBdHRhY2ggdGhlIFNDU0kgSG9zdCB0byB0aGUgSU9DIHN0cnVjdHVyZQorCSAqLworCWlvYy0+c2ggPSBzaDsKKworCXNoLT5pb19wb3J0ID0gMDsKKwlzaC0+bl9pb19wb3J0ID0gMDsKKwlzaC0+aXJxID0gMDsKKworCS8qIHNldCAxNiBieXRlIGNkYidzICovCisJc2gtPm1heF9jbWRfbGVuID0gMTY7CisKKwlzaC0+bWF4X2lkID0gTVBUX01BWF9GQ19ERVZJQ0VTPDI1NiA/IE1QVF9NQVhfRkNfREVWSUNFUyA6IDI1NTsKKworCXNoLT5tYXhfbHVuID0gTVBUX0xBU1RfTFVOICsgMTsKKwlzaC0+bWF4X2NoYW5uZWwgPSAwOworCXNoLT50aGlzX2lkID0gaW9jLT5wZmFjdHNbMF0uUG9ydFNDU0lJRDsKKworCS8qIFJlcXVpcmVkIGVudHJ5LgorCSAqLworCXNoLT51bmlxdWVfaWQgPSBpb2MtPmlkOworCisJLyogVmVyaWZ5IHRoYXQgd2Ugd29uJ3QgZXhjZWVkIHRoZSBtYXhpbXVtCisJICogbnVtYmVyIG9mIGNoYWluIGJ1ZmZlcnMKKwkgKiBXZSBjYW4gb3B0aW1pemU6ICBaWiA9IHJlcV9zei9zaXplb2YoU0dFKQorCSAqIEZvciAzMmJpdCBTR0UnczoKKwkgKiAgbnVtU0dFID0gMSArIChaWi0xKSoobWF4Q2hhaW4gLTEpICsgWloKKwkgKiAgICAgICAgICAgICAgICsgKHJlcV9zeiAtIDY0KS9zaXplb2YoU0dFKQorCSAqIEEgc2xpZ2h0bHkgZGlmZmVyZW50IGFsZ29yaXRobSBpcyByZXF1aXJlZCBmb3IKKwkgKiA2NGJpdCBTR0VzLgorCSAqLworCXNjYWxlID0gaW9jLT5yZXFfc3ovKHNpemVvZihkbWFfYWRkcl90KSArIHNpemVvZih1MzIpKTsKKwlpZiAoc2l6ZW9mKGRtYV9hZGRyX3QpID09IHNpemVvZih1NjQpKSB7CisJCW51bVNHRSA9IChzY2FsZSAtIDEpICoKKwkJICAoaW9jLT5mYWN0cy5NYXhDaGFpbkRlcHRoLTEpICsgc2NhbGUgKworCQkgIChpb2MtPnJlcV9zeiAtIDYwKSAvIChzaXplb2YoZG1hX2FkZHJfdCkgKworCQkgIHNpemVvZih1MzIpKTsKKwl9IGVsc2UgeworCQludW1TR0UgPSAxICsgKHNjYWxlIC0gMSkgKgorCQkgIChpb2MtPmZhY3RzLk1heENoYWluRGVwdGgtMSkgKyBzY2FsZSArCisJCSAgKGlvYy0+cmVxX3N6IC0gNjQpIC8gKHNpemVvZihkbWFfYWRkcl90KSArCisJCSAgc2l6ZW9mKHUzMikpOworCX0KKworCWlmIChudW1TR0UgPCBzaC0+c2dfdGFibGVzaXplKSB7CisJCS8qIFJlc2V0IHRoaXMgdmFsdWUgKi8KKwkJZHByaW50aygoTVlJT0Nfc19JTkZPX0ZNVAorCQkgICJSZXNldHRpbmcgc2dfdGFibGVzaXplIHRvICVkIGZyb20gJWRcbiIsCisJCSAgaW9jLT5uYW1lLCBudW1TR0UsIHNoLT5zZ190YWJsZXNpemUpKTsKKwkJc2gtPnNnX3RhYmxlc2l6ZSA9IG51bVNHRTsKKwl9CisKKwkvKiBTZXQgdGhlIHBjaSBkZXZpY2UgcG9pbnRlciBpbiBTY3NpX0hvc3Qgc3RydWN0dXJlLgorCSAqLworCXNjc2lfc2V0X2RldmljZShzaCwgJmlvYy0+cGNpZGV2LT5kZXYpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9jLT5GcmVlUWxvY2ssIGZsYWdzKTsKKworCWhkID0gKE1QVF9TQ1NJX0hPU1QgKikgc2gtPmhvc3RkYXRhOworCWhkLT5pb2MgPSBpb2M7CisKKwkvKiBTQ1NJIG5lZWRzIHNjc2lfY21uZCBsb29rdXAgdGFibGUhCisJICogKHdpdGggc2l6ZSBlcXVhbCB0byByZXFfZGVwdGgqUHRyU3ohKQorCSAqLworCXN6ID0gaW9jLT5yZXFfZGVwdGggKiBzaXplb2Yodm9pZCAqKTsKKwltZW0gPSBrbWFsbG9jKHN6LCBHRlBfQVRPTUlDKTsKKwlpZiAobWVtID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtRU5PTUVNOworCQlnb3RvIG1wdGZjX3Byb2JlX2ZhaWxlZDsKKwl9CisKKwltZW1zZXQobWVtLCAwLCBzeik7CisJaGQtPlNjc2lMb29rdXAgPSAoc3RydWN0IHNjc2lfY21uZCAqKikgbWVtOworCisJZHByaW50aygoTVlJT0Nfc19JTkZPX0ZNVCAiU2NzaUxvb2t1cCBAICVwLCBzej0lZFxuIiwKKwkJIGlvYy0+bmFtZSwgaGQtPlNjc2lMb29rdXAsIHN6KSk7CisKKwkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBkZXZpY2Ugc3RydWN0dXJlcy4KKwkgKiBBIG5vbi1OdWxsIHBvaW50ZXIgYXQgYW4gb2Zmc2V0CisJICogaW5kaWNhdGVzIGEgZGV2aWNlIGV4aXN0cy4KKwkgKiBtYXhfaWQgPSAxICsgbWF4aW11bSBpZCAoaG9zdHMuaCkKKwkgKi8KKwlzeiA9IHNoLT5tYXhfaWQgKiBzaXplb2Yodm9pZCAqKTsKKwltZW0gPSBrbWFsbG9jKHN6LCBHRlBfQVRPTUlDKTsKKwlpZiAobWVtID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtRU5PTUVNOworCQlnb3RvIG1wdGZjX3Byb2JlX2ZhaWxlZDsKKwl9CisKKwltZW1zZXQobWVtLCAwLCBzeik7CisJaGQtPlRhcmdldHMgPSAoVmlydERldmljZSAqKikgbWVtOworCisJZHByaW50aygoS0VSTl9JTkZPCisJICAiICBUYXJnZXRzIEAgJXAsIHN6PSVkXG4iLCBoZC0+VGFyZ2V0cywgc3opKTsKKworCS8qIENsZWFyIHRoZSBUTSBmbGFncworCSAqLworCWhkLT50bVBlbmRpbmcgPSAwOworCWhkLT50bVN0YXRlID0gVE1fU1RBVEVfTk9ORTsKKwloZC0+cmVzZXRQZW5kaW5nID0gMDsKKwloZC0+YWJvcnRTQ3BudCA9IE5VTEw7CisKKwkvKiBDbGVhciB0aGUgcG9pbnRlciB1c2VkIHRvIHN0b3JlCisJICogc2luZ2xlLXRocmVhZGVkIGNvbW1hbmRzLCBpLmUuLCB0aG9zZQorCSAqIGlzc3VlZCBkdXJpbmcgYSBidXMgc2NhbiwgZHYgYW5kCisJICogY29uZmlndXJhdGlvbiBwYWdlcy4KKwkgKi8KKwloZC0+Y21kUHRyID0gTlVMTDsKKworCS8qIEluaXRpYWxpemUgdGhpcyBTQ1NJIEhvc3RzJyB0aW1lcnMKKwkgKiBUbyB1c2UsIHNldCB0aGUgdGltZXIgZXhwaXJlcyBmaWVsZAorCSAqIGFuZCBhZGRfdGltZXIKKwkgKi8KKwlpbml0X3RpbWVyKCZoZC0+dGltZXIpOworCWhkLT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpIGhkOworCWhkLT50aW1lci5mdW5jdGlvbiA9IG1wdHNjc2loX3RpbWVyX2V4cGlyZWQ7CisKKwloZC0+bXB0X3BxX2ZpbHRlciA9IG1wdF9wcV9maWx0ZXI7CisKKwlkZHZwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQKKwkJIm1wdF9wcV9maWx0ZXIgJXhcbiIsCisJCWlvYy0+bmFtZSwgCisJCW1wdF9wcV9maWx0ZXIpKTsKKworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmhkLT5zY2FuZHZfd2FpdHEpOworCWhkLT5zY2FuZHZfd2FpdF9kb25lID0gMDsKKwloZC0+bGFzdF9xdWV1ZV9mdWxsID0gMDsKKworCWVycm9yID0gc2NzaV9hZGRfaG9zdCAoc2gsICZpb2MtPnBjaWRldi0+ZGV2KTsKKwlpZihlcnJvcikgeworCQlkcHJpbnRrKChLRVJOX0VSUiBNWU5BTQorCQkgICJzY3NpX2FkZF9ob3N0IGZhaWxlZFxuIikpOworCQlnb3RvIG1wdGZjX3Byb2JlX2ZhaWxlZDsKKwl9CisKKwlzY3NpX3NjYW5faG9zdChzaCk7CisJcmV0dXJuIDA7CisKK21wdGZjX3Byb2JlX2ZhaWxlZDoKKworCW1wdHNjc2loX3JlbW92ZShwZGV2KTsKKwlyZXR1cm4gZXJyb3I7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtcHRmY19kcml2ZXIgPSB7CisJLm5hbWUJCT0gIm1wdGZjIiwKKwkuaWRfdGFibGUJPSBtcHRmY19wY2lfdGFibGUsCisJLnByb2JlCQk9IG1wdGZjX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AobXB0c2NzaWhfcmVtb3ZlKSwKKwkuZHJpdmVyICAgICAgICAgPSB7CisJCS5zaHV0ZG93biA9IG1wdHNjc2loX3NodXRkb3duLAorICAgICAgICB9LAorI2lmZGVmIENPTkZJR19QTQorCS5zdXNwZW5kCT0gbXB0c2NzaWhfc3VzcGVuZCwKKwkucmVzdW1lCQk9IG1wdHNjc2loX3Jlc3VtZSwKKyNlbmRpZgorfTsKKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoqCisgKgltcHRmY19pbml0IC0gUmVnaXN0ZXIgTVBUIGFkYXB0ZXIocykgYXMgU0NTSSBob3N0KHMpIHdpdGgKKyAqCWxpbnV4IHNjc2kgbWlkLWxheWVyLgorICoKKyAqCVJldHVybnMgMCBmb3Igc3VjY2Vzcywgbm9uLXplcm8gZm9yIGZhaWx1cmUuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0CittcHRmY19pbml0KHZvaWQpCit7CisKKwlzaG93X21wdG1vZF92ZXIobXlfTkFNRSwgbXlfVkVSU0lPTik7CisKKwltcHRmY0RvbmVDdHggPSBtcHRfcmVnaXN0ZXIobXB0c2NzaWhfaW9fZG9uZSwgTVBURkNfRFJJVkVSKTsKKwltcHRmY1Rhc2tDdHggPSBtcHRfcmVnaXN0ZXIobXB0c2NzaWhfdGFza21nbXRfY29tcGxldGUsIE1QVEZDX0RSSVZFUik7CisJbXB0ZmNJbnRlcm5hbEN0eCA9IG1wdF9yZWdpc3RlcihtcHRzY3NpaF9zY2FuZHZfY29tcGxldGUsIE1QVEZDX0RSSVZFUik7CisKKwlpZiAobXB0X2V2ZW50X3JlZ2lzdGVyKG1wdGZjRG9uZUN0eCwgbXB0c2NzaWhfZXZlbnRfcHJvY2VzcykgPT0gMCkgeworCQlkZXZ0cHJpbnRrKChLRVJOX0lORk8gTVlOQU0KKwkJICAiOiBSZWdpc3RlcmVkIGZvciBJT0MgZXZlbnQgbm90aWZpY2F0aW9uc1xuIikpOworCX0KKworCWlmIChtcHRfcmVzZXRfcmVnaXN0ZXIobXB0ZmNEb25lQ3R4LCBtcHRzY3NpaF9pb2NfcmVzZXQpID09IDApIHsKKwkJZHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCisJCSAgIjogUmVnaXN0ZXJlZCBmb3IgSU9DIHJlc2V0IG5vdGlmaWNhdGlvbnNcbiIpKTsKKwl9CisKKwlyZXR1cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcigmbXB0ZmNfZHJpdmVyKTsKK30KKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoqCisgKgltcHRmY19leGl0IC0gVW5yZWdpc3RlcnMgTVBUIGFkYXB0ZXIocykKKyAqCisgKi8KK3N0YXRpYyB2b2lkIF9fZXhpdAorbXB0ZmNfZXhpdCh2b2lkKQoreworCXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmbXB0ZmNfZHJpdmVyKTsKKwkKKwltcHRfcmVzZXRfZGVyZWdpc3RlcihtcHRmY0RvbmVDdHgpOworCWRwcmludGsoKEtFUk5fSU5GTyBNWU5BTQorCSAgIjogRGVyZWdpc3RlcmVkIGZvciBJT0MgcmVzZXQgbm90aWZpY2F0aW9uc1xuIikpOworCisJbXB0X2V2ZW50X2RlcmVnaXN0ZXIobXB0ZmNEb25lQ3R4KTsKKwlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KKwkgICI6IERlcmVnaXN0ZXJlZCBmb3IgSU9DIGV2ZW50IG5vdGlmaWNhdGlvbnNcbiIpKTsKKworCW1wdF9kZXJlZ2lzdGVyKG1wdGZjSW50ZXJuYWxDdHgpOworCW1wdF9kZXJlZ2lzdGVyKG1wdGZjVGFza0N0eCk7CisJbXB0X2RlcmVnaXN0ZXIobXB0ZmNEb25lQ3R4KTsKK30KKworbW9kdWxlX2luaXQobXB0ZmNfaW5pdCk7Cittb2R1bGVfZXhpdChtcHRmY19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0bGFuLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGxhbi5jCmluZGV4IGVmMjcxM2IuLjUyNzk0YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0bGFuLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRsYW4uYwpAQCAtMSwzMyArMSwxMSBAQAogLyoKICAqICBsaW51eC9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGxhbi5jCiAgKiAgICAgIElQIE92ZXIgRmlicmUgQ2hhbm5lbCBkZXZpY2UgZHJpdmVyLgotICogICAgICBGb3IgdXNlIHdpdGggUENJIGNoaXAvYWRhcHRlcihzKToKLSAqICAgICAgICAgIExTSUZDOXh4L0xTSTQwOXh4IEZpYnJlIENoYW5uZWwKKyAqICAgICAgRm9yIHVzZSB3aXRoIExTSSBMb2dpYyBGaWJyZSBDaGFubmVsIFBDSSBjaGlwL2FkYXB0ZXJzCiAgKiAgICAgIHJ1bm5pbmcgTFNJIExvZ2ljIEZ1c2lvbiBNUFQgKE1lc3NhZ2UgUGFzc2luZyBUZWNobm9sb2d5KSBmaXJtd2FyZS4KICAqCi0gKiAgQ3JlZGl0czoKLSAqICAgICAgVGhpcyBkcml2ZXIgd291bGQgbm90IGV4aXN0IGlmIG5vdCBmb3IgQWxhbiBDb3gncyBkZXZlbG9wbWVudAotICogICAgICBvZiB0aGUgbGludXggaTJvIGRyaXZlci4KKyAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24KICAqCi0gKiAgICAgIFNwZWNpYWwgdGhhbmtzIGdvZXMgdG8gdGhlIEkyTyBMQU4gZHJpdmVyIHBlb3BsZSBhdCB0aGUKLSAqICAgICAgVW5pdmVyc2l0eSBvZiBIZWxzaW5raSwgd2hvLCB1bmJla25vd25zdCB0byB0aGVtLCBwcm92aWRlZAotICogICAgICB0aGUgaW5zcGlyYXRpb24gYW5kIGluaXRpYWwgc3RydWN0dXJlIGZvciB0aGlzIGRyaXZlci4KLSAqCi0gKiAgICAgIEEgaHVnZSBkZWJ0IG9mIGdyYXRpdHVkZSBpcyBvd2VkIHRvIERhdmlkIFMuIE1pbGxlciAoRGF2ZU0pCi0gKiAgICAgIGZvciBmaXhpbmcgbXVjaCBvZiB0aGUgc3R1cGlkIGFuZCBicm9rZW4gc3R1ZmYgaW4gdGhlIGVhcmx5Ci0gKiAgICAgIGRyaXZlciB3aGlsZSBwb3J0aW5nIHRvIHNwYXJjNjQgcGxhdGZvcm0uICBUSEFOSyBZT1UhCi0gKgotICogICAgICBBIHJlYWxseSBodWdlIGRlYnQgb2YgZ3JhdGl0dWRlIGlzIG93ZWQgdG8gRWRkaWUgQy4gRG9zdAotICogICAgICBmb3IgZ29icyBvZiBoYXJkIHdvcmsgZml4aW5nIGFuZCBvcHRpbWl6aW5nIExBTiBjb2RlLgotICogICAgICBUSEFOSyBZT1UhCi0gKgotICogICAgICAoc2VlIGFsc28gbXB0YmFzZS5jKQotICoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNCBMU0kgTG9naWMgQ29ycG9yYXRpb24KLSAqICBPcmlnaW5hbGx5IEJ5OiBOb2FoIFJvbWVyCi0gKiAgKG1haWx0bzptcHRfbGludXhfZGV2ZWxvcGVyQGxzaWwuY29tKQotICoKLSAqICAkSWQ6IG1wdGxhbi5jLHYgMS41MyAyMDAyLzEwLzE3IDIwOjE1OjU4IHBkZWxhbmV5IEV4cCAkCiAgKi8KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCkBAIC0yMjEsNyArMTk5LDcgQEAKIAogCQkvLyBOT1RFISAgKE9wdGltaXphdGlvbikgRmlyc3QgY2FzZSBoZXJlIGlzIG5vdyBjYXVnaHQgaW4KIAkJLy8gIG1wdGJhc2UuYzo6bXB0X2ludGVycnVwdCgpIHJvdXRpbmUgYW5kIGNhbGxjYWNrIGhlcmUKLQkJLy8gIGlzIG5vdyBza2lwcGVkIGZvciB0aGlzIGNhc2UhICAyMDAwMTIxOCAtc3JhbHN0b24KKwkJLy8gIGlzIG5vdyBza2lwcGVkIGZvciB0aGlzIGNhc2UhCiAjaWYgMAogCQljYXNlIExBTl9SRVBMWV9GT1JNX01FU1NBR0VfQ09OVEVYVDoKIC8vCQkJZGlvcHJpbnRrKChLRVJOX0lORk8gTVlOQU0gIi9sYW5fcmVwbHk6ICIKQEAgLTIzNCw3ICsyMTIsNyBAQAogLy8JCQlkaW9wcmludGsoKE1ZTkFNICIvbGFuX3JlcGx5OiAiCiAvLwkJCQkgICJjYWxsaW5nIG1wdF9sYW5fc2VuZF9yZXBseSAodHVyYm8pXG4iKSk7CiAKLQkJCS8vIFBvdGVudGlhbCBCVUcgaGVyZT8gIC1zcmFsc3RvbgorCQkJLy8gUG90ZW50aWFsIEJVRyBoZXJlPwogCQkJLy8JRnJlZVJlcUZyYW1lID0gbXB0X2xhbl9zZW5kX3R1cmJvKGRldiwgdG1zZyk7CiAJCQkvLyAgSWYvd2hlbiBtcHRfbGFuX3NlbmRfdHVyYm8gd291bGQgcmV0dXJuIDEgaGVyZSwKIAkJCS8vICBjYWxsaW5nIHJvdXRpbmUgKG1wdGJhc2UuY3xtcHRfaW50ZXJydXB0KQpAQCAtMzEwLDggKzI4OCw3IEBACiAKIAljYXNlIE1QSV9GVU5DVElPTl9FVkVOVF9OT1RJRklDQVRJT046CiAJY2FzZSBNUElfRlVOQ1RJT05fRVZFTlRfQUNLOgotCQkvKiBVUERBVEUhICAyMDAxMDEyMCAtc3JhbHN0b24KLQkJICogIF9FVkVOVF9OT1RJRklDQVRJT04gc2hvdWxkIE5PVCBjb21lIGRvd24gdGhpcyBwYXRoIGFueSBtb3JlLgorCQkvKiAgX0VWRU5UX05PVElGSUNBVElPTiBzaG91bGQgTk9UIGNvbWUgZG93biB0aGlzIHBhdGggYW55IG1vcmUuCiAJCSAqICBTaG91bGQgYmUgcm91dGVkIHRvIG1wdF9sYW5fZXZlbnRfcHJvY2VzcygpLCBidXQganVzdCBpbiBjYXNlLi4uCiAJCSAqLwogCQlGcmVlUmVxRnJhbWUgPSAxOwpAQCAtNTYxLDggKzUzOCw4IEBACiAJCX0KIAl9CiAKLQlrZnJlZSAocHJpdi0+UmN2Q3RsKTsKLQlrZnJlZSAocHJpdi0+bXB0X3J4ZmlkeCk7CisJa2ZyZWUocHJpdi0+UmN2Q3RsKTsKKwlrZnJlZShwcml2LT5tcHRfcnhmaWR4KTsKIAogCWZvciAoaSA9IDA7IGkgPCBwcml2LT50eF9tYXhfb3V0OyBpKyspIHsKIAkJaWYgKHByaXYtPlNlbmRDdGxbaV0uc2tiICE9IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0bGFuLmggYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGxhbi5oCmluZGV4IDA1NzkwNDIuLjc1MGUzNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0bGFuLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRsYW4uaApAQCAtMSwzICsxLDQ5IEBACisvKgorICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0bGFuLmgKKyAqICAgICAgSVAgT3ZlciBGaWJyZSBDaGFubmVsIGRldmljZSBkcml2ZXIuCisgKiAgICAgIEZvciB1c2Ugd2l0aCBMU0kgTG9naWMgRmlicmUgQ2hhbm5lbCBQQ0kgY2hpcC9hZGFwdGVycworICogICAgICBydW5uaW5nIExTSSBMb2dpYyBGdXNpb24gTVBUIChNZXNzYWdlIFBhc3NpbmcgVGVjaG5vbG9neSkgZmlybXdhcmUuCisgKgorICogIENvcHlyaWdodCAoYykgMjAwMC0yMDA1IExTSSBMb2dpYyBDb3Jwb3JhdGlvbgorICoKKyAqLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIE5PIFdBUlJBTlRZCisgICAgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SCisgICAgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQKKyAgICBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwKKyAgICBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKworICAgIERJU0NMQUlNRVIgT0YgTElBQklMSVRZCisgICAgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkKKyAgICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAgICBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORAorICAgIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICAgIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAgICBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQKKyAgICBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorKi8KKy8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KKwogLyogbXB0bGFuLmggKi8KIAogI2lmbmRlZiBMSU5VWF9NUFRMQU5fSF9JTkNMVURFRApAQCAtMjksNyArNzUsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAgICAgLyogT3ZlcnJpZGUgbXB0YmFzZS5oIGJ5IHByZS1kZWZpbmluZyB0aGVzZSEgKi8KLSAgICAjZGVmaW5lIE1PRFVMRUFVVEhPUiAiTm9haCBSb21lciwgRWRkaWUgQy4gRG9zdCIKKyNkZWZpbmUgTU9EVUxFQVVUSE9SCSJMU0kgTG9naWMgQ29ycG9yYXRpb24iCiAKICNpbmNsdWRlICJtcHRiYXNlLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguYwppbmRleCAzYTNlZjEyLi40OGZmMzE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNjc2loLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzY3NpaC5jCkBAIC0xLDMyICsxLDExIEBACiAvKgogICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguYwotICogICAgICBIaWdoIHBlcmZvcm1hbmNlIFNDU0kgLyBGaWJyZSBDaGFubmVsIFNDU0kgSG9zdCBkZXZpY2UgZHJpdmVyLgotICogICAgICBGb3IgdXNlIHdpdGggUENJIGNoaXAvYWRhcHRlcihzKToKLSAqICAgICAgICAgIExTSUZDOXh4L0xTSTQwOXh4IEZpYnJlIENoYW5uZWwKKyAqICAgICAgRm9yIHVzZSB3aXRoIExTSSBMb2dpYyBQQ0kgY2hpcC9hZGFwdGVyKHMpCiAgKiAgICAgIHJ1bm5pbmcgTFNJIExvZ2ljIEZ1c2lvbiBNUFQgKE1lc3NhZ2UgUGFzc2luZyBUZWNobm9sb2d5KSBmaXJtd2FyZS4KICAqCi0gKiAgQ3JlZGl0czoKLSAqICAgICAgVGhpcyBkcml2ZXIgd291bGQgbm90IGV4aXN0IGlmIG5vdCBmb3IgQWxhbiBDb3gncyBkZXZlbG9wbWVudAotICogICAgICBvZiB0aGUgbGludXggaTJvIGRyaXZlci4KLSAqCi0gKiAgICAgIEEgc3BlY2lhbCB0aGFua3MgdG8gUGFtZWxhIERlbGFuZXkgKExTSSBMb2dpYykgZm9yIHRvbnMgb2Ygd29yawotICogICAgICBhbmQgY291bnRsZXNzIGVuaGFuY2VtZW50cyB3aGlsZSBhZGRpbmcgc3VwcG9ydCBmb3IgdGhlIDEwMzAKLSAqICAgICAgY2hpcCBmYW1pbHkuICBQYW0gaGFzIGJlZW4gaW5zdHJ1bWVudGFsIGluIHRoZSBkZXZlbG9wbWVudCBvZgotICogICAgICBvZiB0aGUgMi54eC54eCBzZXJpZXMgZnVzaW9uIGRyaXZlcnMsIGFuZCBoZXIgY29udHJpYnV0aW9ucyBhcmUKLSAqICAgICAgZmFyIHRvbyBudW1lcm91cyB0byBob3BlIHRvIGxpc3QgaW4gb25lIHBsYWNlLgotICoKLSAqICAgICAgQSBodWdlIGRlYnQgb2YgZ3JhdGl0dWRlIGlzIG93ZWQgdG8gRGF2aWQgUy4gTWlsbGVyIChEYXZlTSkKLSAqICAgICAgZm9yIGZpeGluZyBtdWNoIG9mIHRoZSBzdHVwaWQgYW5kIGJyb2tlbiBzdHVmZiBpbiB0aGUgZWFybHkKLSAqICAgICAgZHJpdmVyIHdoaWxlIHBvcnRpbmcgdG8gc3BhcmM2NCBwbGF0Zm9ybS4gIFRIQU5LIFlPVSEKLSAqCi0gKiAgICAgIChzZWUgbXB0YmFzZS5jKQotICoKLSAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCBMU0kgTG9naWMgQ29ycG9yYXRpb24KLSAqICBPcmlnaW5hbCBhdXRob3I6IFN0ZXZlbiBKLiBSYWxzdG9uCi0gKiAgKG1haWx0bzpzanJhbHN0b24xQG5ldHNjYXBlLm5ldCkKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24KICAqICAobWFpbHRvOm1wdF9saW51eF9kZXZlbG9wZXJAbHNpbC5jb20pCiAgKgotICogICRJZDogbXB0c2NzaWguYyx2IDEuMTA0IDIwMDIvMTIvMDMgMjE6MjY6MzQgcGRlbGFuZXkgRXhwICQKICAqLwogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwogLyoKQEAgLTk2LDI3ICs3NSw2IEBACiBNT0RVTEVfREVTQ1JJUFRJT04obXlfTkFNRSk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKLS8qIENvbW1hbmQgbGluZSBhcmdzICovCi1zdGF0aWMgaW50IG1wdF9kdiA9IE1QVFNDU0lIX0RPTUFJTl9WQUxJREFUSU9OOwotTU9EVUxFX1BBUk0obXB0X2R2LCAiaSIpOwotTU9EVUxFX1BBUk1fREVTQyhtcHRfZHYsICIgRFYgQWxnb3JpdGhtOiBlbmhhbmNlZD0xLCBiYXNpYz0wIChkZWZhdWx0PU1QVFNDU0lIX0RPTUFJTl9WQUxJREFUSU9OPTEpIik7Ci0KLXN0YXRpYyBpbnQgbXB0X3dpZHRoID0gTVBUU0NTSUhfTUFYX1dJRFRIOwotTU9EVUxFX1BBUk0obXB0X3dpZHRoLCAiaSIpOwotTU9EVUxFX1BBUk1fREVTQyhtcHRfd2lkdGgsICIgTWF4IEJ1cyBXaWR0aDogd2lkZT0xLCBuYXJyb3c9MCAoZGVmYXVsdD1NUFRTQ1NJSF9NQVhfV0lEVEg9MSkiKTsKLQotc3RhdGljIGludCBtcHRfZmFjdG9yID0gTVBUU0NTSUhfTUlOX1NZTkM7Ci1NT0RVTEVfUEFSTShtcHRfZmFjdG9yLCAiaCIpOwotTU9EVUxFX1BBUk1fREVTQyhtcHRfZmFjdG9yLCAiIE1pbiBTeW5jIEZhY3RvciAoZGVmYXVsdD1NUFRTQ1NJSF9NSU5fU1lOQz0weDA4KSIpOwotCi1zdGF0aWMgaW50IG1wdF9zYWZfdGUgPSBNUFRTQ1NJSF9TQUZfVEU7Ci1NT0RVTEVfUEFSTShtcHRfc2FmX3RlLCAiaSIpOwotTU9EVUxFX1BBUk1fREVTQyhtcHRfc2FmX3RlLCAiIEZvcmNlIGVuYWJsaW5nIFNFUCBQcm9jZXNzb3I6IGVuYWJsZT0xICAoZGVmYXVsdD1NUFRTQ1NJSF9TQUZfVEU9MCkiKTsKLQotc3RhdGljIGludCBtcHRfcHFfZmlsdGVyID0gMDsKLU1PRFVMRV9QQVJNKG1wdF9wcV9maWx0ZXIsICJpIik7Ci1NT0RVTEVfUEFSTV9ERVNDKG1wdF9wcV9maWx0ZXIsICIgRW5hYmxlIHBlcmlwaGVyYWwgcXVhbGlmaWVyIGZpbHRlcjogZW5hYmxlPTEgIChkZWZhdWx0PTApIik7Ci0KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIAogdHlwZWRlZiBzdHJ1Y3QgX0JJR19TRU5TRV9CVUYgewpAQCAtMTY5LDE4ICsxMjcsMTcgQEAKIAl1MTYJCSBwYWQxOwogfSBEVlBBUkFNRVRFUlM7CiAKLQogLyoKICAqICBPdGhlciBwcml2YXRlL2ZvcndhcmQgcHJvdG9zLi4uCiAgKi8KLXN0YXRpYyBpbnQJbXB0c2NzaWhfaW9fZG9uZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7CitpbnQJCW1wdHNjc2loX2lvX2RvbmUoTVBUX0FEQVBURVIgKmlvYywgTVBUX0ZSQU1FX0hEUiAqbWYsIE1QVF9GUkFNRV9IRFIgKnIpOwogc3RhdGljIHZvaWQJbXB0c2NzaWhfcmVwb3J0X3F1ZXVlX2Z1bGwoc3RydWN0IHNjc2lfY21uZCAqc2MsIFNDU0lJT1JlcGx5X3QgKnBTY3NpUmVwbHksIFNDU0lJT1JlcXVlc3RfdCAqcFNjc2lSZXEpOwotc3RhdGljIGludAltcHRzY3NpaF90YXNrbWdtdF9jb21wbGV0ZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7CitpbnQJCW1wdHNjc2loX3Rhc2ttZ210X2NvbXBsZXRlKE1QVF9BREFQVEVSICppb2MsIE1QVF9GUkFNRV9IRFIgKm1mLCBNUFRfRlJBTUVfSERSICpyKTsKIAogc3RhdGljIGludAltcHRzY3NpaF9BZGRTR0UoTVBUX0FEQVBURVIgKmlvYywgc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsCiAJCQkJIFNDU0lJT1JlcXVlc3RfdCAqcFJlcSwgaW50IHJlcV9pZHgpOwogc3RhdGljIHZvaWQJbXB0c2NzaWhfZnJlZUNoYWluQnVmZmVycyhNUFRfQURBUFRFUiAqaW9jLCBpbnQgcmVxX2lkeCk7Ci1zdGF0aWMgdm9pZAljb3B5X3NlbnNlX2RhdGEoc3RydWN0IHNjc2lfY21uZCAqc2MsIE1QVF9TQ1NJX0hPU1QgKmhkLCBNUFRfRlJBTUVfSERSICptZiwgU0NTSUlPUmVwbHlfdCAqcFNjc2lSZXBseSk7CitzdGF0aWMgdm9pZAltcHRzY3NpaF9jb3B5X3NlbnNlX2RhdGEoc3RydWN0IHNjc2lfY21uZCAqc2MsIE1QVF9TQ1NJX0hPU1QgKmhkLCBNUFRfRlJBTUVfSERSICptZiwgU0NTSUlPUmVwbHlfdCAqcFNjc2lSZXBseSk7CiBzdGF0aWMgaW50CW1wdHNjc2loX3RtX3BlbmRpbmdfd2FpdChNUFRfU0NTSV9IT1NUICogaGQpOwogc3RhdGljIGludAltcHRzY3NpaF90bV93YWl0X2Zvcl9jb21wbGV0aW9uKE1QVF9TQ1NJX0hPU1QgKiBoZCwgdWxvbmcgdGltZW91dCApOwogc3RhdGljIHUzMglTQ1BOVF9UT19MT09LVVBfSURYKHN0cnVjdCBzY3NpX2NtbmQgKnNjKTsKQEAgLTE4OCw4ICsxNDUsOCBAQAogc3RhdGljIGludAltcHRzY3NpaF9UTUhhbmRsZXIoTVBUX1NDU0lfSE9TVCAqaGQsIHU4IHR5cGUsIHU4IGNoYW5uZWwsIHU4IHRhcmdldCwgdTggbHVuLCBpbnQgY3R4MmFib3J0LCB1bG9uZyB0aW1lb3V0KTsKIHN0YXRpYyBpbnQJbXB0c2NzaWhfSXNzdWVUYXNrTWdtdChNUFRfU0NTSV9IT1NUICpoZCwgdTggdHlwZSwgdTggY2hhbm5lbCwgdTggdGFyZ2V0LCB1OCBsdW4sIGludCBjdHgyYWJvcnQsIHVsb25nIHRpbWVvdXQpOwogCi1zdGF0aWMgaW50CW1wdHNjc2loX2lvY19yZXNldChNUFRfQURBUFRFUiAqaW9jLCBpbnQgcG9zdF9yZXNldCk7Ci1zdGF0aWMgaW50CW1wdHNjc2loX2V2ZW50X3Byb2Nlc3MoTVBUX0FEQVBURVIgKmlvYywgRXZlbnROb3RpZmljYXRpb25SZXBseV90ICpwRXZSZXBseSk7CitpbnQJCW1wdHNjc2loX2lvY19yZXNldChNUFRfQURBUFRFUiAqaW9jLCBpbnQgcG9zdF9yZXNldCk7CitpbnQJCW1wdHNjc2loX2V2ZW50X3Byb2Nlc3MoTVBUX0FEQVBURVIgKmlvYywgRXZlbnROb3RpZmljYXRpb25SZXBseV90ICpwRXZSZXBseSk7CiAKIHN0YXRpYyB2b2lkCW1wdHNjc2loX2luaXRUYXJnZXQoTVBUX1NDU0lfSE9TVCAqaGQsIGludCBidXNfaWQsIGludCB0YXJnZXRfaWQsIHU4IGx1biwgY2hhciAqZGF0YSwgaW50IGRsZW4pOwogc3RhdGljIHZvaWQJbXB0c2NzaWhfc2V0VGFyZ2V0TmVnb1Bhcm1zKE1QVF9TQ1NJX0hPU1QgKmhkLCBWaXJ0RGV2aWNlICp0YXJnZXQsIGNoYXIgYnl0ZTU2KTsKQEAgLTE5OCw4ICsxNTUsNyBAQAogc3RhdGljIHZvaWQJbXB0c2NzaWhfbm9fbmVnb3RpYXRlKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgdGFyZ2V0X2lkKTsKIHN0YXRpYyBpbnQJbXB0c2NzaWhfd3JpdGVTRFAxKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgcG9ydG51bSwgaW50IHRhcmdldCwgaW50IGZsYWdzKTsKIHN0YXRpYyBpbnQJbXB0c2NzaWhfd3JpdGVJT0NQYWdlNChNUFRfU0NTSV9IT1NUICpoZCwgaW50IHRhcmdldF9pZCwgaW50IGJ1cyk7Ci1zdGF0aWMgaW50CW1wdHNjc2loX3NjYW5kdl9jb21wbGV0ZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7Ci1zdGF0aWMgdm9pZAltcHRzY3NpaF90aW1lcl9leHBpcmVkKHVuc2lnbmVkIGxvbmcgZGF0YSk7CitpbnQJCW1wdHNjc2loX3NjYW5kdl9jb21wbGV0ZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7CiBzdGF0aWMgaW50CW1wdHNjc2loX2RvX2NtZChNUFRfU0NTSV9IT1NUICpoZCwgSU5URVJOQUxfQ01EICppb2NtZCk7CiBzdGF0aWMgaW50CW1wdHNjc2loX3N5bmNocm9uaXplX2NhY2hlKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgcG9ydG51bSk7CiAKQEAgLTIxMiwyOSArMTY4LDE0IEBACiBzdGF0aWMgdm9pZAltcHRzY3NpaF9kdl9wYXJtcyhNUFRfU0NTSV9IT1NUICpoZCwgRFZQQVJBTUVURVJTICpkdix2b2lkICpwUGFnZSk7CiBzdGF0aWMgdm9pZAltcHRzY3NpaF9maWxsYnVmKGNoYXIgKmJ1ZmZlciwgaW50IHNpemUsIGludCBpbmRleCwgaW50IHdpZHRoKTsKICNlbmRpZgotLyogbW9kdWxlIGVudHJ5IHBvaW50ICovCi1zdGF0aWMgaW50ICBfX2luaXQgICBtcHRzY3NpaF9pbml0ICAodm9pZCk7Ci1zdGF0aWMgdm9pZCBfX2V4aXQgICBtcHRzY3NpaF9leGl0ICAodm9pZCk7CiAKLXN0YXRpYyBpbnQgIG1wdHNjc2loX3Byb2JlIChzdHJ1Y3QgcGNpX2RldiAqLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqKTsKLXN0YXRpYyB2b2lkIG1wdHNjc2loX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqKTsKLXN0YXRpYyB2b2lkIG1wdHNjc2loX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKik7Cit2b2lkIAkJbXB0c2NzaWhfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICopOwordm9pZCAJCW1wdHNjc2loX3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKik7CiAjaWZkZWYgQ09ORklHX1BNCi1zdGF0aWMgaW50IG1wdHNjc2loX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7Ci1zdGF0aWMgaW50IG1wdHNjc2loX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CitpbnQgCQltcHRzY3NpaF9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworaW50IAkJbXB0c2NzaWhfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKICNlbmRpZgogCi0KLS8qCi0gKglQcml2YXRlIGRhdGEuLi4KLSAqLwotCi1zdGF0aWMgaW50CW1wdF9zY3NpX2hvc3RzID0gMDsKLQotc3RhdGljIGludAlTY3NpRG9uZUN0eCA9IC0xOwotc3RhdGljIGludAlTY3NpVGFza0N0eCA9IC0xOwotc3RhdGljIGludAlTY3NpU2NhbkR2Q3R4ID0gLTE7IC8qIFVzZWQgb25seSBmb3IgYnVzIHNjYW4gYW5kIGR2ICovCi0KICNkZWZpbmUgU05TX0xFTihzY3ApCXNpemVvZigoc2NwKS0+c2Vuc2VfYnVmZmVyKQogCiAjaWZkZWYgTVBUU0NTSUhfRU5BQkxFX0RPTUFJTl9WQUxJREFUSU9OCkBAIC0yNDQsMjAgKzE4NSw5IEBACiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGR2dGFza1FfbG9jayk7CiBzdGF0aWMgaW50IGR2dGFza1FfYWN0aXZlID0gMDsKIHN0YXRpYyBpbnQgZHZ0YXNrUV9yZWxlYXNlID0gMDsKLXN0YXRpYyBzdHJ1Y3Qgd29ya19zdHJ1Y3QJbXB0c2NzaWhfZHZUYXNrOworc3RhdGljIHN0cnVjdCB3b3JrX3N0cnVjdAlkdlRhc2tRX3Rhc2s7CiAjZW5kaWYKIAotLyoKLSAqIFdhaXQgUXVldWUgc2V0dXAKLSAqLwotc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEIChzY2FuZHZfd2FpdHEpOwotc3RhdGljIGludCBzY2FuZHZfd2FpdF9kb25lID0gMTsKLQotCi0vKiBEcml2ZXIgY29tbWFuZCBsaW5lIHN0cnVjdHVyZQotICovCi1zdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBkcml2ZXJfdGVtcGxhdGU7Ci0KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qKgogICoJbXB0c2NzaWhfYWRkX3NnZSAtIFBsYWNlIGEgc2ltcGxlIFNHRSBhdCBhZGRyZXNzIHBBZGRyLgpAQCAtNjE5LDcgKzU0OSw3IEBACiAgKgogICoJUmV0dXJucyAxIGluZGljYXRpbmcgYWxsb2MnZCByZXF1ZXN0IGZyYW1lIHB0ciBzaG91bGQgYmUgZnJlZWQuCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfaW9fZG9uZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqbXIpCiB7CiAJc3RydWN0IHNjc2lfY21uZAkqc2M7CkBAIC02NzcsOCArNjA3LDggQEAKIAkJCXNjLT5yZXF1ZXN0X2J1ZmZsZW4sIHhmZXJfY250KSk7CiAKIAkJaWYgKHNjc2lfc3RhdGUgJiBNUElfU0NTSV9TVEFURV9BVVRPU0VOU0VfVkFMSUQpCi0JCQljb3B5X3NlbnNlX2RhdGEoc2MsIGhkLCBtZiwgcFNjc2lSZXBseSk7Ci0gICAgICAgICAgICAgICAgCisJCQltcHRzY3NpaF9jb3B5X3NlbnNlX2RhdGEoc2MsIGhkLCBtZiwgcFNjc2lSZXBseSk7CisKIAkJLyoKIAkJICogIExvb2sgZm9yICsgZHVtcCBGQ1AgUmVzcG9uc2VJbmZvW10hCiAJCSAqLwpAQCAtNzQwLDcgKzY3MCw3IEBACiAJCQl9CiAJCQlkcmVwbHlwcmludGsoKEtFUk5fTk9USUNFICJSRVNJRFVBTF9NSVNNQVRDSDogcmVzdWx0PSV4IG9uIGlkPSVkXG4iLCBzYy0+cmVzdWx0LCBzYy0+dGFyZ2V0KSk7CiAJCQlicmVhazsKLQkJCisKIAkJY2FzZSBNUElfSU9DU1RBVFVTX1NDU0lfREFUQV9VTkRFUlJVTjoJCS8qIDB4MDA0NSAqLwogCQkJLyoKIAkJCSAqICBEbyB1cGZyb250IGNoZWNrIGZvciB2YWxpZCBTZW5zZURhdGEgYW5kIGdpdmUgaXQKQEAgLTc3Myw3ICs3MDMsNyBAQAogCQkJICovCiAJCQlpZiAoc2NzaV9zdGF0dXMgPT0gTVBJX1NDU0lfU1RBVFVTX1RBU0tfU0VUX0ZVTEwpCiAJCQkJbXB0c2NzaWhfcmVwb3J0X3F1ZXVlX2Z1bGwoc2MsIHBTY3NpUmVwbHksIHBTY3NpUmVxKTsKLQkJCQorCiAJCQlicmVhazsKIAogCQljYXNlIE1QSV9JT0NTVEFUVVNfU0NTSV9SRUNPVkVSRURfRVJST1I6CS8qIDB4MDA0MCAqLwpAQCAtOTA1LDE4ICs4MzUsMTYgQEAKIAkJCSAqIERvIE9TIGNhbGxiYWNrCiAJCQkgKiBGcmVlIGRyaXZlciByZXNvdXJjZXMgKGNoYWluLCBtc2cgYnVmZmVycykKIAkJCSAqLwotCQkJaWYgKHNjc2lfZGV2aWNlX29ubGluZShTQ3BudC0+ZGV2aWNlKSkgewotCQkJCWlmIChTQ3BudC0+dXNlX3NnKSB7Ci0JCQkJCXBjaV91bm1hcF9zZyhpb2MtPnBjaWRldiwKLQkJCQkJCShzdHJ1Y3Qgc2NhdHRlcmxpc3QgKikgU0NwbnQtPnJlcXVlc3RfYnVmZmVyLAotCQkJCQkJU0NwbnQtPnVzZV9zZywKLQkJCQkJCVNDcG50LT5zY19kYXRhX2RpcmVjdGlvbik7Ci0JCQkJfSBlbHNlIGlmIChTQ3BudC0+cmVxdWVzdF9idWZmbGVuKSB7Ci0JCQkJCXBjaV91bm1hcF9zaW5nbGUoaW9jLT5wY2lkZXYsCi0JCQkJCQlTQ3BudC0+U0NwLmRtYV9oYW5kbGUsCi0JCQkJCQlTQ3BudC0+cmVxdWVzdF9idWZmbGVuLAotCQkJCQkJU0NwbnQtPnNjX2RhdGFfZGlyZWN0aW9uKTsKLQkJCQl9CisJCQlpZiAoU0NwbnQtPnVzZV9zZykgeworCQkJCXBjaV91bm1hcF9zZyhpb2MtPnBjaWRldiwKKwkJCQkJKHN0cnVjdCBzY2F0dGVybGlzdCAqKSBTQ3BudC0+cmVxdWVzdF9idWZmZXIsCisJCQkJCVNDcG50LT51c2Vfc2csCisJCQkJCVNDcG50LT5zY19kYXRhX2RpcmVjdGlvbik7CisJCQl9IGVsc2UgaWYgKFNDcG50LT5yZXF1ZXN0X2J1ZmZsZW4pIHsKKwkJCQlwY2lfdW5tYXBfc2luZ2xlKGlvYy0+cGNpZGV2LAorCQkJCQlTQ3BudC0+U0NwLmRtYV9oYW5kbGUsCisJCQkJCVNDcG50LT5yZXF1ZXN0X2J1ZmZsZW4sCisJCQkJCVNDcG50LT5zY19kYXRhX2RpcmVjdGlvbik7CiAJCQl9CiAJCQlTQ3BudC0+cmVzdWx0ID0gRElEX1JFU0VUIDw8IDE2OwogCQkJU0NwbnQtPmhvc3Rfc2NyaWJibGUgPSBOVUxMOwpAQCAtOTgxLDExICs5MDksNiBAQAogfQogCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCi0vKgotICogIEhhY2shIEl0IG1pZ2h0IGJlIG5pY2UgdG8gcmVwb3J0IGlmIGEgZGV2aWNlIGlzIHJldHVybmluZyBRVUVVRV9GVUxMCi0gKiAgYnV0IG1heWJlIG5vdCBlYWNoIGFuZCBldmVyeSB0aW1lLi4uCi0gKi8KLXN0YXRpYyBsb25nIGxhc3RfcXVldWVfZnVsbCA9IDA7CiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCkBAIC0xMDAzLDI4MCArOTI2LDIwIEBACiBtcHRzY3NpaF9yZXBvcnRfcXVldWVfZnVsbChzdHJ1Y3Qgc2NzaV9jbW5kICpzYywgU0NTSUlPUmVwbHlfdCAqcFNjc2lSZXBseSwgU0NTSUlPUmVxdWVzdF90ICpwU2NzaVJlcSkKIHsKIAlsb25nIHRpbWUgPSBqaWZmaWVzOwotCi0JaWYgKHRpbWUgLSBsYXN0X3F1ZXVlX2Z1bGwgPiAxMCAqIEhaKSB7Ci0JCWNoYXIgKmlvY19zdHIgPSAiaW9jPyI7Ci0KLQkJaWYgKHNjLT5kZXZpY2UgJiYgc2MtPmRldmljZS0+aG9zdCAhPSBOVUxMICYmIHNjLT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhICE9IE5VTEwpCi0JCQlpb2Nfc3RyID0gKChNUFRfU0NTSV9IT1NUICopc2MtPmRldmljZS0+aG9zdC0+aG9zdGRhdGEpLT5pb2MtPm5hbWU7Ci0JCWRwcmludGsoKE1ZSU9DX3NfV0FSTl9GTVQgIkRldmljZSAoJWQ6JWQ6JWQpIHJlcG9ydGVkIFFVRVVFX0ZVTEwhXG4iLAotCQkJCWlvY19zdHIsIDAsIHNjLT5kZXZpY2UtPmlkLCBzYy0+ZGV2aWNlLT5sdW4pKTsKLQkJbGFzdF9xdWV1ZV9mdWxsID0gdGltZTsKLQl9Ci19Ci0KLS8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KLXN0YXRpYyBjaGFyICppbmZvX2tidWYgPSBOVUxMOwotCi0vKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCi0vKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCi0vKgotICoJbXB0c2NzaWhfcHJvYmUgLSBJbnN0YWxscyBzY3NpIGRldmljZXMgcGVyIGJ1cy4KLSAqCUBwZGV2OiBQb2ludGVyIHRvIHBjaV9kZXYgc3RydWN0dXJlCi0gKgotICoJUmV0dXJucyAwIGZvciBzdWNjZXNzLCBub24temVybyBmb3IgZmFpbHVyZS4KLSAqCi0gKi8KLQotc3RhdGljIGludAotbXB0c2NzaWhfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKLXsKLQlzdHJ1Y3QgU2NzaV9Ib3N0CSpzaDsKIAlNUFRfU0NTSV9IT1NUCQkqaGQ7Ci0JTVBUX0FEQVBURVIgCQkqaW9jID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwotCXVuc2lnbmVkIGxvbmcJCSBmbGFnczsKLQlpbnQJCQkgc3osIGlpOwotCWludAkJCSBudW1TR0UgPSAwOwotCWludAkJCSBzY2FsZTsKLQlpbnQJCQkgaW9jX2NhcDsKLQl1OAkJCSptZW07Ci0JaW50CQkJZXJyb3I9MDsKIAorCWlmIChzYy0+ZGV2aWNlID09IE5VTEwpCisJCXJldHVybjsKKwlpZiAoc2MtPmRldmljZS0+aG9zdCA9PSBOVUxMKQorCQlyZXR1cm47CisJaWYgKChoZCA9IChNUFRfU0NTSV9IT1NUICopc2MtPmRldmljZS0+aG9zdC0+aG9zdGRhdGEpID09IE5VTEwpCisJCXJldHVybjsKIAotCS8qIDIwMDEwMjAyIC1zcmFsc3RvbgotCSAqICBBZGRlZCBzYW5pdHkgY2hlY2sgb24gcmVhZGluZXNzIG9mIHRoZSBNUFQgYWRhcHRlci4KLQkgKi8KLQlpZiAoaW9jLT5sYXN0X3N0YXRlICE9IE1QSV9JT0NfU1RBVEVfT1BFUkFUSU9OQUwpIHsKLQkJcHJpbnRrKE1ZSU9DX3NfV0FSTl9GTVQKLQkJICAiU2tpcHBpbmcgYmVjYXVzZSBpdCdzIG5vdCBvcGVyYXRpb25hbCFcbiIsCi0JCSAgaW9jLT5uYW1lKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKHRpbWUgLSBoZC0+bGFzdF9xdWV1ZV9mdWxsID4gMTAgKiBIWikgeworCQlkcHJpbnRrKChNWUlPQ19zX1dBUk5fRk1UICJEZXZpY2UgKCVkOiVkOiVkKSByZXBvcnRlZCBRVUVVRV9GVUxMIVxuIiwKKwkJCQloZC0+aW9jLT5uYW1lLCAwLCBzYy0+ZGV2aWNlLT5pZCwgc2MtPmRldmljZS0+bHVuKSk7CisJCWhkLT5sYXN0X3F1ZXVlX2Z1bGwgPSB0aW1lOwogCX0KLQotCWlmICghaW9jLT5hY3RpdmUpIHsKLQkJcHJpbnRrKE1ZSU9DX3NfV0FSTl9GTVQgIlNraXBwaW5nIGJlY2F1c2UgaXQncyBkaXNhYmxlZCFcbiIsCi0JCSAgaW9jLT5uYW1lKTsKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JLyogIFNhbml0eSBjaGVjayAtIGVuc3VyZSBhdCBsZWFzdCAxIHBvcnQgaXMgSU5JVElBVE9SIGNhcGFibGUKLQkgKi8KLQlpb2NfY2FwID0gMDsKLQlmb3IgKGlpPTA7IGlpIDwgaW9jLT5mYWN0cy5OdW1iZXJPZlBvcnRzOyBpaSsrKSB7Ci0JCWlmIChpb2MtPnBmYWN0c1tpaV0uUHJvdG9jb2xGbGFncyAmCi0JCSAgICBNUElfUE9SVEZBQ1RTX1BST1RPQ09MX0lOSVRJQVRPUikKLQkJCWlvY19jYXAgKys7Ci0JfQotCi0JaWYgKCFpb2NfY2FwKSB7Ci0JCXByaW50ayhNWUlPQ19zX1dBUk5fRk1UCi0JCQkiU2tpcHBpbmcgaW9jPSVwIGJlY2F1c2UgU0NTSSBJbml0aWF0b3IgbW9kZSBpcyBOT1QgZW5hYmxlZCFcbiIsCi0JCQlpb2MtPm5hbWUsIGlvYyk7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KLQotCXNoID0gc2NzaV9ob3N0X2FsbG9jKCZkcml2ZXJfdGVtcGxhdGUsIHNpemVvZihNUFRfU0NTSV9IT1NUKSk7Ci0gICAgICAgIAotCWlmICghc2gpIHsKLQkJcHJpbnRrKE1ZSU9DX3NfV0FSTl9GTVQKLQkJCSJVbmFibGUgdG8gcmVnaXN0ZXIgY29udHJvbGxlciB3aXRoIFNDU0kgc3Vic3lzdGVtXG4iLAotCQkJaW9jLT5uYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLQkKLQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9jLT5GcmVlUWxvY2ssIGZsYWdzKTsKLQotCS8qIEF0dGFjaCB0aGUgU0NTSSBIb3N0IHRvIHRoZSBJT0Mgc3RydWN0dXJlCi0JICovCi0JaW9jLT5zaCA9IHNoOwotCi0Jc2gtPmlvX3BvcnQgPSAwOwotCXNoLT5uX2lvX3BvcnQgPSAwOwotCXNoLT5pcnEgPSAwOwotCi0JLyogc2V0IDE2IGJ5dGUgY2RiJ3MgKi8KLQlzaC0+bWF4X2NtZF9sZW4gPSAxNjsKLQotCS8qIFlpa2VzISAgVGhpcyBpcyBpbXBvcnRhbnQhCi0JICogT3RoZXJ3aXNlLCBieSBkZWZhdWx0LCBsaW51eAotCSAqIG9ubHkgc2NhbnMgdGFyZ2V0IElEcyAwLTchCi0JICogcGZhY3RzTi0+TWF4RGV2aWNlcyB1bnJlbGlhYmxlCi0JICogKG5vdCBzdXBwb3J0ZWQgaW4gZWFybHkKLQkgKgl2ZXJzaW9ucyBvZiB0aGUgRlcpLgotCSAqIG1heF9pZCA9IDEgKyBhY3R1YWwgbWF4IGlkLAotCSAqIG1heF9sdW4gPSAxICsgYWN0dWFsIGxhc3QgbHVuLAotCSAqCXNlZSBob3N0cy5oIDpvKAotCSAqLwotCWlmIChpb2MtPmJ1c190eXBlID09IFNDU0kpIHsKLQkJc2gtPm1heF9pZCA9IE1QVF9NQVhfU0NTSV9ERVZJQ0VTOwotCX0gZWxzZSB7Ci0JLyogRm9yIEZDLCBpbmNyZWFzZSB0aGUgcXVldWUgZGVwdGgKLQkgKiBmcm9tIE1QVF9TQ1NJX0NBTl9RVUVVRSAoMzEpCi0JICogdG8gTVBUX0ZDX0NBTl9RVUVVRSAoNjMpLgotCSAqLwotCQlzaC0+Y2FuX3F1ZXVlID0gTVBUX0ZDX0NBTl9RVUVVRTsKLQkJc2gtPm1heF9pZCA9Ci0JCSAgTVBUX01BWF9GQ19ERVZJQ0VTPDI1NiA/IE1QVF9NQVhfRkNfREVWSUNFUyA6IDI1NTsKLQl9Ci0JCQotCXNoLT5tYXhfbHVuID0gTVBUX0xBU1RfTFVOICsgMTsKLQlzaC0+bWF4X2NoYW5uZWwgPSAwOwotCXNoLT50aGlzX2lkID0gaW9jLT5wZmFjdHNbMF0uUG9ydFNDU0lJRDsKLQkJCi0JLyogUmVxdWlyZWQgZW50cnkuCi0JICovCi0Jc2gtPnVuaXF1ZV9pZCA9IGlvYy0+aWQ7Ci0KLQkvKiBWZXJpZnkgdGhhdCB3ZSB3b24ndCBleGNlZWQgdGhlIG1heGltdW0KLQkgKiBudW1iZXIgb2YgY2hhaW4gYnVmZmVycwotCSAqIFdlIGNhbiBvcHRpbWl6ZTogIFpaID0gcmVxX3N6L3NpemVvZihTR0UpCi0JICogRm9yIDMyYml0IFNHRSdzOgotCSAqICBudW1TR0UgPSAxICsgKFpaLTEpKihtYXhDaGFpbiAtMSkgKyBaWgotCSAqICAgICAgICAgICAgICAgKyAocmVxX3N6IC0gNjQpL3NpemVvZihTR0UpCi0JICogQSBzbGlnaHRseSBkaWZmZXJlbnQgYWxnb3JpdGhtIGlzIHJlcXVpcmVkIGZvcgotCSAqIDY0Yml0IFNHRXMuCi0JICovCi0Jc2NhbGUgPSBpb2MtPnJlcV9zei8oc2l6ZW9mKGRtYV9hZGRyX3QpICsgc2l6ZW9mKHUzMikpOwotCWlmIChzaXplb2YoZG1hX2FkZHJfdCkgPT0gc2l6ZW9mKHU2NCkpIHsKLQkJbnVtU0dFID0gKHNjYWxlIC0gMSkgKgotCQkgIChpb2MtPmZhY3RzLk1heENoYWluRGVwdGgtMSkgKyBzY2FsZSArCi0JCSAgKGlvYy0+cmVxX3N6IC0gNjApIC8gKHNpemVvZihkbWFfYWRkcl90KSArCi0JCSAgc2l6ZW9mKHUzMikpOwotCX0gZWxzZSB7Ci0JCW51bVNHRSA9IDEgKyAoc2NhbGUgLSAxKSAqCi0JCSAgKGlvYy0+ZmFjdHMuTWF4Q2hhaW5EZXB0aC0xKSArIHNjYWxlICsKLQkJICAoaW9jLT5yZXFfc3ogLSA2NCkgLyAoc2l6ZW9mKGRtYV9hZGRyX3QpICsKLQkJICBzaXplb2YodTMyKSk7Ci0JfQotCQkKLQlpZiAobnVtU0dFIDwgc2gtPnNnX3RhYmxlc2l6ZSkgewotCQkvKiBSZXNldCB0aGlzIHZhbHVlICovCi0JCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQKLQkJICAiUmVzZXR0aW5nIHNnX3RhYmxlc2l6ZSB0byAlZCBmcm9tICVkXG4iLAotCQkgIGlvYy0+bmFtZSwgbnVtU0dFLCBzaC0+c2dfdGFibGVzaXplKSk7Ci0JCXNoLT5zZ190YWJsZXNpemUgPSBudW1TR0U7Ci0JfQotCi0JLyogU2V0IHRoZSBwY2kgZGV2aWNlIHBvaW50ZXIgaW4gU2NzaV9Ib3N0IHN0cnVjdHVyZS4KLQkgKi8KLQlzY3NpX3NldF9kZXZpY2Uoc2gsICZpb2MtPnBjaWRldi0+ZGV2KTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYy0+RnJlZVFsb2NrLCBmbGFncyk7Ci0KLQloZCA9IChNUFRfU0NTSV9IT1NUICopIHNoLT5ob3N0ZGF0YTsKLQloZC0+aW9jID0gaW9jOwotCi0JLyogU0NTSSBuZWVkcyBzY3NpX2NtbmQgbG9va3VwIHRhYmxlIQotCSAqICh3aXRoIHNpemUgZXF1YWwgdG8gcmVxX2RlcHRoKlB0clN6ISkKLQkgKi8KLQlzeiA9IGlvYy0+cmVxX2RlcHRoICogc2l6ZW9mKHZvaWQgKik7Ci0JbWVtID0ga21hbGxvYyhzeiwgR0ZQX0FUT01JQyk7Ci0JaWYgKG1lbSA9PSBOVUxMKSB7Ci0JCWVycm9yID0gLUVOT01FTTsKLQkJZ290byBtcHRzY3NpaF9wcm9iZV9mYWlsZWQ7Ci0JfQotCi0JbWVtc2V0KG1lbSwgMCwgc3opOwotCWhkLT5TY3NpTG9va3VwID0gKHN0cnVjdCBzY3NpX2NtbmQgKiopIG1lbTsKLQotCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQgIlNjc2lMb29rdXAgQCAlcCwgc3o9JWRcbiIsCi0JCSBpb2MtPm5hbWUsIGhkLT5TY3NpTG9va3VwLCBzeikpOwotCQkKLQkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBkZXZpY2Ugc3RydWN0dXJlcy4KLQkgKiBBIG5vbi1OdWxsIHBvaW50ZXIgYXQgYW4gb2Zmc2V0Ci0JICogaW5kaWNhdGVzIGEgZGV2aWNlIGV4aXN0cy4KLQkgKiBtYXhfaWQgPSAxICsgbWF4aW11bSBpZCAoaG9zdHMuaCkKLQkgKi8KLQlzeiA9IHNoLT5tYXhfaWQgKiBzaXplb2Yodm9pZCAqKTsKLQltZW0gPSBrbWFsbG9jKHN6LCBHRlBfQVRPTUlDKTsKLQlpZiAobWVtID09IE5VTEwpIHsKLQkJZXJyb3IgPSAtRU5PTUVNOwotCQlnb3RvIG1wdHNjc2loX3Byb2JlX2ZhaWxlZDsKLQl9Ci0KLQltZW1zZXQobWVtLCAwLCBzeik7Ci0JaGQtPlRhcmdldHMgPSAoVmlydERldmljZSAqKikgbWVtOwotCi0JZHByaW50aygoS0VSTl9JTkZPCi0JICAiICBUYXJnZXRzIEAgJXAsIHN6PSVkXG4iLCBoZC0+VGFyZ2V0cywgc3opKTsKLQotCS8qIENsZWFyIHRoZSBUTSBmbGFncwotCSAqLwotCWhkLT50bVBlbmRpbmcgPSAwOwotCWhkLT50bVN0YXRlID0gVE1fU1RBVEVfTk9ORTsKLQloZC0+cmVzZXRQZW5kaW5nID0gMDsKLQloZC0+YWJvcnRTQ3BudCA9IE5VTEw7Ci0KLQkvKiBDbGVhciB0aGUgcG9pbnRlciB1c2VkIHRvIHN0b3JlCi0JICogc2luZ2xlLXRocmVhZGVkIGNvbW1hbmRzLCBpLmUuLCB0aG9zZQotCSAqIGlzc3VlZCBkdXJpbmcgYSBidXMgc2NhbiwgZHYgYW5kCi0JICogY29uZmlndXJhdGlvbiBwYWdlcy4KLQkgKi8KLQloZC0+Y21kUHRyID0gTlVMTDsKLQotCS8qIEluaXRpYWxpemUgdGhpcyBTQ1NJIEhvc3RzJyB0aW1lcnMKLQkgKiBUbyB1c2UsIHNldCB0aGUgdGltZXIgZXhwaXJlcyBmaWVsZAotCSAqIGFuZCBhZGRfdGltZXIKLQkgKi8KLQlpbml0X3RpbWVyKCZoZC0+dGltZXIpOwotCWhkLT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpIGhkOwotCWhkLT50aW1lci5mdW5jdGlvbiA9IG1wdHNjc2loX3RpbWVyX2V4cGlyZWQ7Ci0KLQlpZiAoaW9jLT5idXNfdHlwZSA9PSBTQ1NJKSB7Ci0JCS8qIFVwZGF0ZSB3aXRoIHRoZSBkcml2ZXIgc2V0dXAKLQkJICogdmFsdWVzLgotCQkgKi8KLQkJaWYgKGlvYy0+c3BpX2RhdGEubWF4QnVzV2lkdGggPiBtcHRfd2lkdGgpCi0JCQlpb2MtPnNwaV9kYXRhLm1heEJ1c1dpZHRoID0gbXB0X3dpZHRoOwotCQlpZiAoaW9jLT5zcGlfZGF0YS5taW5TeW5jRmFjdG9yIDwgbXB0X2ZhY3RvcikKLQkJCWlvYy0+c3BpX2RhdGEubWluU3luY0ZhY3RvciA9IG1wdF9mYWN0b3I7Ci0KLQkJaWYgKGlvYy0+c3BpX2RhdGEubWluU3luY0ZhY3RvciA9PSBNUFRfQVNZTkMpIHsKLQkJCWlvYy0+c3BpX2RhdGEubWF4U3luY09mZnNldCA9IDA7Ci0JCX0KLQotCQlpb2MtPnNwaV9kYXRhLlNhZl9UZSA9IG1wdF9zYWZfdGU7Ci0KLQkJaGQtPm5lZ29OdnJhbSA9IDA7Ci0jaWZuZGVmIE1QVFNDU0lIX0VOQUJMRV9ET01BSU5fVkFMSURBVElPTgotCQloZC0+bmVnb052cmFtID0gTVBUX1NDU0lDRkdfVVNFX05WUkFNOwotI2VuZGlmCi0JCWlvYy0+c3BpX2RhdGEuZm9yY2VEdiA9IDA7Ci0JCWlvYy0+c3BpX2RhdGEubm9RYXMgPSAwOwotCQlmb3IgKGlpPTA7IGlpIDwgTVBUX01BWF9TQ1NJX0RFVklDRVM7IGlpKyspIHsKLQkJCWlvYy0+c3BpX2RhdGEuZHZTdGF0dXNbaWldID0KLQkJCSAgTVBUX1NDU0lDRkdfTkVHT1RJQVRFOwotCQl9Ci0KLQkJZm9yIChpaT0wOyBpaSA8IE1QVF9NQVhfU0NTSV9ERVZJQ0VTOyBpaSsrKQotCQkJaW9jLT5zcGlfZGF0YS5kdlN0YXR1c1tpaV0gfD0KLQkJCSAgTVBUX1NDU0lDRkdfRFZfTk9UX0RPTkU7Ci0KLQkJZGluaXRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQKLQkJCSJkdiAleCB3aWR0aCAleCBmYWN0b3IgJXggc2FmX3RlICV4XG4iLAotCQkJaW9jLT5uYW1lLCBtcHRfZHYsCi0JCQltcHRfd2lkdGgsCi0JCQltcHRfZmFjdG9yLAotCQkJbXB0X3NhZl90ZSkpOwotCX0KLQotCW1wdF9zY3NpX2hvc3RzKys7Ci0KLQllcnJvciA9IHNjc2lfYWRkX2hvc3QgKHNoLCAmaW9jLT5wY2lkZXYtPmRldik7Ci0JaWYoZXJyb3IpIHsKLQkJZHByaW50aygoS0VSTl9FUlIgTVlOQU0KLQkJICAic2NzaV9hZGRfaG9zdCBmYWlsZWRcbiIpKTsKLQkJZ290byBtcHRzY3NpaF9wcm9iZV9mYWlsZWQ7Ci0JfQotCi0Jc2NzaV9zY2FuX2hvc3Qoc2gpOwotCXJldHVybiAwOwotCi1tcHRzY3NpaF9wcm9iZV9mYWlsZWQ6Ci0KLQltcHRzY3NpaF9yZW1vdmUocGRldik7Ci0JcmV0dXJuIGVycm9yOwotCiB9CiAKIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KQEAgLTEyODYsNyArOTQ5LDcgQEAKICAqCiAgKgogICovCi1zdGF0aWMgdm9pZAordm9pZAogbXB0c2NzaWhfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogCU1QVF9BREFQVEVSIAkJKmlvYyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKQEAgLTEyOTQsMTIgKzk1NywxNiBAQAogCU1QVF9TQ1NJX0hPU1QJCSpoZDsKIAlpbnQgCQkgCWNvdW50OwogCXVuc2lnbmVkIGxvbmcJIAlmbGFnczsKKwlpbnQgc3oxOwogCiAJaWYoIWhvc3QpCiAJCXJldHVybjsKIAogCXNjc2lfcmVtb3ZlX2hvc3QoaG9zdCk7CiAKKwlpZigoaGQgPSAoTVBUX1NDU0lfSE9TVCAqKWhvc3QtPmhvc3RkYXRhKSA9PSBOVUxMKQorCQlyZXR1cm47CisKICNpZmRlZiBNUFRTQ1NJSF9FTkFCTEVfRE9NQUlOX1ZBTElEQVRJT04KIAkvKiBDaGVjayBEViB0aHJlYWQgYWN0aXZlICovCiAJY291bnQgPSAxMCAqIEhaOwpAQCAtMTMyMSw0MCArOTg4LDM2IEBACiAjZW5kaWYKICNlbmRpZgogCi0JaGQgPSAoTVBUX1NDU0lfSE9TVCAqKWhvc3QtPmhvc3RkYXRhOwotCWlmIChoZCAhPSBOVUxMKSB7Ci0JCWludCBzejE7CisJbXB0c2NzaWhfc2h1dGRvd24oJnBkZXYtPmRldik7CiAKLQkJbXB0c2NzaWhfc2h1dGRvd24oJnBkZXYtPmRldik7CisJc3oxPTA7CiAKLQkJc3oxPTA7Ci0KLQkJaWYgKGhkLT5TY3NpTG9va3VwICE9IE5VTEwpIHsKLQkJCXN6MSA9IGhkLT5pb2MtPnJlcV9kZXB0aCAqIHNpemVvZih2b2lkICopOwotCQkJa2ZyZWUoaGQtPlNjc2lMb29rdXApOwotCQkJaGQtPlNjc2lMb29rdXAgPSBOVUxMOwotCQl9Ci0KLQkJaWYgKGhkLT5UYXJnZXRzICE9IE5VTEwpIHsKLQkJCS8qCi0JCQkgKiBGcmVlIHBvaW50ZXIgYXJyYXkuCi0JCQkgKi8KLQkJCWtmcmVlKGhkLT5UYXJnZXRzKTsKLQkJCWhkLT5UYXJnZXRzID0gTlVMTDsKLQkJfQotCi0JCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQgCi0JCSAgICAiRnJlZSdkIFNjc2lMb29rdXAgKCVkKSBtZW1vcnlcbiIsCi0JCSAgICBoZC0+aW9jLT5uYW1lLCBzejEpKTsKLQotCQkvKiBOVUxMIHRoZSBTY3NpX0hvc3QgcG9pbnRlcgotCQkgKi8KLQkJaGQtPmlvYy0+c2ggPSBOVUxMOworCWlmIChoZC0+U2NzaUxvb2t1cCAhPSBOVUxMKSB7CisJCXN6MSA9IGhkLT5pb2MtPnJlcV9kZXB0aCAqIHNpemVvZih2b2lkICopOworCQlrZnJlZShoZC0+U2NzaUxvb2t1cCk7CisJCWhkLT5TY3NpTG9va3VwID0gTlVMTDsKIAl9CiAKLQlzY3NpX2hvc3RfcHV0KGhvc3QpOwotCW1wdF9zY3NpX2hvc3RzLS07CisJLyoKKwkgKiBGcmVlIHBvaW50ZXIgYXJyYXkuCisJICovCisJa2ZyZWUoaGQtPlRhcmdldHMpOworCWhkLT5UYXJnZXRzID0gTlVMTDsKIAorCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQKKwkgICAgIkZyZWUnZCBTY3NpTG9va3VwICglZCkgbWVtb3J5XG4iLAorCSAgICBoZC0+aW9jLT5uYW1lLCBzejEpKTsKKworCWtmcmVlKGhkLT5pbmZvX2tidWYpOworCisJLyogTlVMTCB0aGUgU2NzaV9Ib3N0IHBvaW50ZXIKKwkgKi8KKwloZC0+aW9jLT5zaCA9IE5VTEw7CisKKwlzY3NpX2hvc3RfcHV0KGhvc3QpOworCisJbXB0X2RldGFjaChwZGV2KTsKKwkKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtMTM2Miw3ICsxMDI1LDcgQEAKICAqCW1wdHNjc2loX3NodXRkb3duIC0gcmVib290IG5vdGlmaWVyCiAgKgogICovCi1zdGF0aWMgdm9pZAordm9pZAogbXB0c2NzaWhfc2h1dGRvd24oc3RydWN0IGRldmljZSAqIGRldikKIHsKIAlNUFRfQURBUFRFUiAJCSppb2MgPSBwY2lfZ2V0X2RydmRhdGEodG9fcGNpX2RldihkZXYpKTsKQEAgLTEzODQsMTUgKzEwNDcsMTUgQEAKICNpZmRlZiBDT05GSUdfUE0KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCi0gKgltcHRzY3NpaF9zdXNwZW5kIC0gRnVzaW9uIE1QVCBzY3NpZSBkcml2ZXIgc3VzcGVuZCByb3V0aW5lLgorICoJbXB0c2NzaWhfc3VzcGVuZCAtIEZ1c2lvbiBNUFQgc2NzaSBkcml2ZXIgc3VzcGVuZCByb3V0aW5lLgogICoKICAqCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQogewogCW1wdHNjc2loX3NodXRkb3duKCZwZGV2LT5kZXYpOwotCXJldHVybiAwOworCXJldHVybiBtcHRfc3VzcGVuZChwZGV2LHN0YXRlKTsKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtMTQwMSwxMyArMTA2NCwxNSBAQAogICoKICAqCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogCU1QVF9BREFQVEVSIAkJKmlvYyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgU2NzaV9Ib3N0IAkqaG9zdCA9IGlvYy0+c2g7CiAJTVBUX1NDU0lfSE9TVAkJKmhkOwogCisJbXB0X3Jlc3VtZShwZGV2KTsKKwkKIAlpZighaG9zdCkKIAkJcmV0dXJuIDA7CiAKQEAgLTE0MjIsOSArMTA4Nyw5IEBACiAJaWYgKCFkdnRhc2tRX2FjdGl2ZSkgewogCQlkdnRhc2tRX2FjdGl2ZSA9IDE7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmR2dGFza1FfbG9jaywgbGZsYWdzKTsKLQkJSU5JVF9XT1JLKCZtcHRzY3NpaF9kdlRhc2ssCisJCUlOSVRfV09SSygmZHZUYXNrUV90YXNrLAogCQkgIG1wdHNjc2loX2RvbWFpblZhbGlkYXRpb24sICh2b2lkICopIGhkKTsKLQkJc2NoZWR1bGVfd29yaygmbXB0c2NzaWhfZHZUYXNrKTsKKwkJc2NoZWR1bGVfd29yaygmZHZUYXNrUV90YXNrKTsKIAl9IGVsc2UgewogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkdnRhc2tRX2xvY2ssIGxmbGFncyk7CiAJfQpAQCAtMTQzNSw4MiArMTEwMCw2IEBACiAKICNlbmRpZgogCi1zdGF0aWMgc3RydWN0IG1wdF9wY2lfZHJpdmVyIG1wdHNjc2loX2RyaXZlciA9IHsKLQkucHJvYmUJCT0gbXB0c2NzaWhfcHJvYmUsCi0JLnJlbW92ZQkJPSBtcHRzY3NpaF9yZW1vdmUsCi0JLnNodXRkb3duCT0gbXB0c2NzaWhfc2h1dGRvd24sCi0jaWZkZWYgQ09ORklHX1BNCi0JLnN1c3BlbmQJPSBtcHRzY3NpaF9zdXNwZW5kLAotCS5yZXN1bWUJCT0gbXB0c2NzaWhfcmVzdW1lLAotI2VuZGlmCi19OwotCi0vKiAgU0NTSSBob3N0IGZvcHMgc3RhcnQgaGVyZS4uLiAgKi8KLS8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KLS8qKgotICoJbXB0c2NzaWhfaW5pdCAtIFJlZ2lzdGVyIE1QVCBhZGFwdGVyKHMpIGFzIFNDU0kgaG9zdChzKSB3aXRoCi0gKglsaW51eCBzY3NpIG1pZC1sYXllci4KLSAqCi0gKglSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIG5vbi16ZXJvIGZvciBmYWlsdXJlLgotICovCi1zdGF0aWMgaW50IF9faW5pdAotbXB0c2NzaWhfaW5pdCh2b2lkKQotewotCi0Jc2hvd19tcHRtb2RfdmVyKG15X05BTUUsIG15X1ZFUlNJT04pOwotCi0JU2NzaURvbmVDdHggPSBtcHRfcmVnaXN0ZXIobXB0c2NzaWhfaW9fZG9uZSwgTVBUU0NTSUhfRFJJVkVSKTsKLQlTY3NpVGFza0N0eCA9IG1wdF9yZWdpc3RlcihtcHRzY3NpaF90YXNrbWdtdF9jb21wbGV0ZSwgTVBUU0NTSUhfRFJJVkVSKTsKLQlTY3NpU2NhbkR2Q3R4ID0gbXB0X3JlZ2lzdGVyKG1wdHNjc2loX3NjYW5kdl9jb21wbGV0ZSwgTVBUU0NTSUhfRFJJVkVSKTsKLQotCWlmIChtcHRfZXZlbnRfcmVnaXN0ZXIoU2NzaURvbmVDdHgsIG1wdHNjc2loX2V2ZW50X3Byb2Nlc3MpID09IDApIHsKLQkJZGV2dHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCi0JCSAgIjogUmVnaXN0ZXJlZCBmb3IgSU9DIGV2ZW50IG5vdGlmaWNhdGlvbnNcbiIpKTsKLQl9Ci0KLQlpZiAobXB0X3Jlc2V0X3JlZ2lzdGVyKFNjc2lEb25lQ3R4LCBtcHRzY3NpaF9pb2NfcmVzZXQpID09IDApIHsKLQkJZHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCi0JCSAgIjogUmVnaXN0ZXJlZCBmb3IgSU9DIHJlc2V0IG5vdGlmaWNhdGlvbnNcbiIpKTsKLQl9Ci0KLQlpZihtcHRfZGV2aWNlX2RyaXZlcl9yZWdpc3RlcigmbXB0c2NzaWhfZHJpdmVyLAotCSAgTVBUU0NTSUhfRFJJVkVSKSAhPSAwICkgewotCQlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KLQkJIjogZmFpbGVkIHRvIHJlZ2lzdGVyIGRkIGNhbGxiYWNrc1xuIikpOwotCX0KLQotCXJldHVybiAwOwotCi19Ci0KLS8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KLS8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KLS8qKgotICoJbXB0c2NzaWhfZXhpdCAtIFVucmVnaXN0ZXJzIE1QVCBhZGFwdGVyKHMpCi0gKgotICovCi1zdGF0aWMgdm9pZCBfX2V4aXQKLW1wdHNjc2loX2V4aXQodm9pZCkKLXsKLQltcHRfZGV2aWNlX2RyaXZlcl9kZXJlZ2lzdGVyKE1QVFNDU0lIX0RSSVZFUik7Ci0KLQltcHRfcmVzZXRfZGVyZWdpc3RlcihTY3NpRG9uZUN0eCk7Ci0JZHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCi0JICAiOiBEZXJlZ2lzdGVyZWQgZm9yIElPQyByZXNldCBub3RpZmljYXRpb25zXG4iKSk7Ci0KLQltcHRfZXZlbnRfZGVyZWdpc3RlcihTY3NpRG9uZUN0eCk7Ci0JZHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCi0JICAiOiBEZXJlZ2lzdGVyZWQgZm9yIElPQyBldmVudCBub3RpZmljYXRpb25zXG4iKSk7Ci0KLQltcHRfZGVyZWdpc3RlcihTY3NpU2NhbkR2Q3R4KTsKLQltcHRfZGVyZWdpc3RlcihTY3NpVGFza0N0eCk7Ci0JbXB0X2RlcmVnaXN0ZXIoU2NzaURvbmVDdHgpOwotCi0JaWYgKGluZm9fa2J1ZiAhPSBOVUxMKQotCQlrZnJlZShpbmZvX2tidWYpOwotCi19Ci0KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qKgogICoJbXB0c2NzaWhfaW5mbyAtIFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBNUFQgYWRhcHRlcgpAQCAtMTUyMCwyNCArMTEwOSwyNSBAQAogICoKICAqCVJldHVybnMgcG9pbnRlciB0byBidWZmZXIgd2hlcmUgaW5mb3JtYXRpb24gd2FzIHdyaXR0ZW4uCiAgKi8KLXN0YXRpYyBjb25zdCBjaGFyICoKK2NvbnN0IGNoYXIgKgogbXB0c2NzaWhfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICpTQ2hvc3QpCiB7CiAJTVBUX1NDU0lfSE9TVCAqaDsKIAlpbnQgc2l6ZSA9IDA7CiAKLQlpZiAoaW5mb19rYnVmID09IE5VTEwpCi0JCWlmICgoaW5mb19rYnVmID0ga21hbGxvYygweDEwMDAgLyogNEtiICovLCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkKLQkJCXJldHVybiBpbmZvX2tidWY7Ci0KIAloID0gKE1QVF9TQ1NJX0hPU1QgKilTQ2hvc3QtPmhvc3RkYXRhOwotCWluZm9fa2J1ZlswXSA9ICdcMCc7CisKIAlpZiAoaCkgewotCQltcHRfcHJpbnRfaW9jX3N1bW1hcnkoaC0+aW9jLCBpbmZvX2tidWYsICZzaXplLCAwLCAwKTsKLQkJaW5mb19rYnVmW3NpemUtMV0gPSAnXDAnOworCQlpZiAoaC0+aW5mb19rYnVmID09IE5VTEwpCisJCQlpZiAoKGgtPmluZm9fa2J1ZiA9IGttYWxsb2MoMHgxMDAwIC8qIDRLYiAqLywgR0ZQX0tFUk5FTCkpID09IE5VTEwpCisJCQkJcmV0dXJuIGgtPmluZm9fa2J1ZjsKKwkJaC0+aW5mb19rYnVmWzBdID0gJ1wwJzsKKworCQltcHRfcHJpbnRfaW9jX3N1bW1hcnkoaC0+aW9jLCBoLT5pbmZvX2tidWYsICZzaXplLCAwLCAwKTsKKwkJaC0+aW5mb19rYnVmW3NpemUtMV0gPSAnXDAnOwogCX0KIAotCXJldHVybiBpbmZvX2tidWY7CisJcmV0dXJuIGgtPmluZm9fa2J1ZjsKIH0KIAogc3RydWN0IGluZm9fc3RyIHsKQEAgLTE1NDcsNyArMTEzNyw4IEBACiAJaW50ICAgcG9zOwogfTsKIAotc3RhdGljIHZvaWQgY29weV9tZW1faW5mbyhzdHJ1Y3QgaW5mb19zdHIgKmluZm8sIGNoYXIgKmRhdGEsIGludCBsZW4pCitzdGF0aWMgdm9pZAorbXB0c2NzaWhfY29weV9tZW1faW5mbyhzdHJ1Y3QgaW5mb19zdHIgKmluZm8sIGNoYXIgKmRhdGEsIGludCBsZW4pCiB7CiAJaWYgKGluZm8tPnBvcyArIGxlbiA+IGluZm8tPmxlbmd0aCkKIAkJbGVuID0gaW5mby0+bGVuZ3RoIC0gaW5mby0+cG9zOwpAQCAtMTU2OCw3ICsxMTU5LDggQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgY29weV9pbmZvKHN0cnVjdCBpbmZvX3N0ciAqaW5mbywgY2hhciAqZm10LCAuLi4pCitzdGF0aWMgaW50CittcHRzY3NpaF9jb3B5X2luZm8oc3RydWN0IGluZm9fc3RyICppbmZvLCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0IGFyZ3M7CiAJY2hhciBidWZbODFdOwpAQCAtMTU3OCwxMSArMTE3MCwxMiBAQAogCWxlbiA9IHZzcHJpbnRmKGJ1ZiwgZm10LCBhcmdzKTsKIAl2YV9lbmQoYXJncyk7CiAKLQljb3B5X21lbV9pbmZvKGluZm8sIGJ1ZiwgbGVuKTsKKwltcHRzY3NpaF9jb3B5X21lbV9pbmZvKGluZm8sIGJ1ZiwgbGVuKTsKIAlyZXR1cm4gbGVuOwogfQogCi1zdGF0aWMgaW50IG1wdHNjc2loX2hvc3RfaW5mbyhNUFRfQURBUFRFUiAqaW9jLCBjaGFyICpwYnVmLCBvZmZfdCBvZmZzZXQsIGludCBsZW4pCitzdGF0aWMgaW50CittcHRzY3NpaF9ob3N0X2luZm8oTVBUX0FEQVBURVIgKmlvYywgY2hhciAqcGJ1Ziwgb2ZmX3Qgb2Zmc2V0LCBpbnQgbGVuKQogewogCXN0cnVjdCBpbmZvX3N0ciBpbmZvOwogCkBAIC0xNTkxLDEwICsxMTg0LDEwIEBACiAJaW5mby5vZmZzZXQJPSBvZmZzZXQ7CiAJaW5mby5wb3MJPSAwOwogCi0JY29weV9pbmZvKCZpbmZvLCAiJXM6ICVzLCAiLCBpb2MtPm5hbWUsIGlvYy0+cHJvZF9uYW1lKTsKLQljb3B5X2luZm8oJmluZm8sICIlcyUwOHhoLCAiLCBNUFRfRldfUkVWX01BR0lDX0lEX1NUUklORywgaW9jLT5mYWN0cy5GV1ZlcnNpb24uV29yZCk7Ci0JY29weV9pbmZvKCZpbmZvLCAiUG9ydHM9JWQsICIsIGlvYy0+ZmFjdHMuTnVtYmVyT2ZQb3J0cyk7Ci0JY29weV9pbmZvKCZpbmZvLCAiTWF4UT0lZFxuIiwgaW9jLT5yZXFfZGVwdGgpOworCW1wdHNjc2loX2NvcHlfaW5mbygmaW5mbywgIiVzOiAlcywgIiwgaW9jLT5uYW1lLCBpb2MtPnByb2RfbmFtZSk7CisJbXB0c2NzaWhfY29weV9pbmZvKCZpbmZvLCAiJXMlMDh4aCwgIiwgTVBUX0ZXX1JFVl9NQUdJQ19JRF9TVFJJTkcsIGlvYy0+ZmFjdHMuRldWZXJzaW9uLldvcmQpOworCW1wdHNjc2loX2NvcHlfaW5mbygmaW5mbywgIlBvcnRzPSVkLCAiLCBpb2MtPmZhY3RzLk51bWJlck9mUG9ydHMpOworCW1wdHNjc2loX2NvcHlfaW5mbygmaW5mbywgIk1heFE9JWRcbiIsIGlvYy0+cmVxX2RlcHRoKTsKIAogCXJldHVybiAoKGluZm8ucG9zID4gaW5mby5vZmZzZXQpID8gaW5mby5wb3MgLSBpbmZvLm9mZnNldCA6IDApOwogfQpAQCAtMTYxMiw3ICsxMjA1LDcgQEAKICAqIAlob3N0bm86IHNjc2kgaG9zdCBudW1iZXIKICAqCWZ1bmM6ICAgaWYgd3JpdGUgPSAxOyBpZiByZWFkID0gMAogICovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX3Byb2NfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBjaGFyICpidWZmZXIsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LAogCQkJaW50IGxlbmd0aCwgaW50IGZ1bmMpCiB7CkBAIC0xNjQ5LDcgKzEyNDIsNyBAQAogICoKICAqCVJldHVybnMgMC4gKHJ0biB2YWx1ZSBkaXNjYXJkZWQgYnkgbGludXggc2NzaSBtaWQtbGF5ZXIpCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfcWNtZChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCwgdm9pZCAoKmRvbmUpKHN0cnVjdCBzY3NpX2NtbmQgKikpCiB7CiAJTVBUX1NDU0lfSE9TVAkJKmhkOwpAQCAtMTY4NCw3ICsxMjc3LDcgQEAKIAkvKgogCSAqICBQdXQgdG9nZXRoZXIgYSBNUFQgU0NTSSByZXF1ZXN0Li4uCiAJICovCi0JaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKFNjc2lEb25lQ3R4LCBoZC0+aW9jKSkgPT0gTlVMTCkgeworCWlmICgobWYgPSBtcHRfZ2V0X21zZ19mcmFtZShoZC0+aW9jLT5Eb25lQ3R4LCBoZC0+aW9jKSkgPT0gTlVMTCkgewogCQlkcHJpbnRrKChNWUlPQ19zX1dBUk5fRk1UICJRdWV1ZUNtZCwgbm8gbXNnIGZyYW1lcyEhXG4iLAogCQkJCWhkLT5pb2MtPm5hbWUpKTsKIAkJcmV0dXJuIFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7CkBAIC0xNjk2LDggKzEyODksNyBAQAogCiAJQUREX0lOREVYX0xPRyhteV9pZHgpOwogCi0JLyogIEJVRyBGSVghICAxOTk5MTAzMCAtc3JhbHN0b24KLQkgKiAgICBUVVIncyBiZWluZyBpc3N1ZWQgd2l0aCBzY3NpY3RsPTB4MDIwMDAwMDAgKERBVEFfSU4pIQorCS8qICAgIFRVUidzIGJlaW5nIGlzc3VlZCB3aXRoIHNjc2ljdGw9MHgwMjAwMDAwMCAoREFUQV9JTikhCiAJICogICAgU2VlbXMgd2UgbWF5IHJlY2VpdmUgYSBidWZmZXIgKGRhdGFsZW4+MCkgZXZlbiB3aGVuIHRoZXJlCiAJICogICAgd2lsbCBiZSBubyBkYXRhIHRyYW5zZmVyISAgR1JSUlJSLi4uCiAJICovCkBAIC0xNzkxLDkgKzEzODMsOSBAQAogCQkJCWlmICghZHZ0YXNrUV9hY3RpdmUpIHsKIAkJCQkJZHZ0YXNrUV9hY3RpdmUgPSAxOwogCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkdnRhc2tRX2xvY2ssIGxmbGFncyk7Ci0JCQkJCUlOSVRfV09SSygmbXB0c2NzaWhfZHZUYXNrLCBtcHRzY3NpaF9kb21haW5WYWxpZGF0aW9uLCAodm9pZCAqKSBoZCk7CisJCQkJCUlOSVRfV09SSygmZHZUYXNrUV90YXNrLCBtcHRzY3NpaF9kb21haW5WYWxpZGF0aW9uLCAodm9pZCAqKSBoZCk7CiAKLQkJCQkJc2NoZWR1bGVfd29yaygmbXB0c2NzaWhfZHZUYXNrKTsKKwkJCQkJc2NoZWR1bGVfd29yaygmZHZUYXNrUV90YXNrKTsKIAkJCQl9IGVsc2UgewogCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkdnRhc2tRX2xvY2ssIGxmbGFncyk7CiAJCQkJfQpAQCAtMTgxOSw3ICsxNDExLDcgQEAKIAl9CiAjZW5kaWYKIAotCW1wdF9wdXRfbXNnX2ZyYW1lKFNjc2lEb25lQ3R4LCBoZC0+aW9jLCBtZik7CisJbXB0X3B1dF9tc2dfZnJhbWUoaGQtPmlvYy0+RG9uZUN0eCwgaGQtPmlvYywgbWYpOwogCWRtZnByaW50aygoTVlJT0Nfc19JTkZPX0ZNVCAiSXNzdWVkIFNDU0kgY21kICglcCkgbWY9JXAgaWR4PSVkXG4iLAogCQkJaGQtPmlvYy0+bmFtZSwgU0NwbnQsIG1mLCBteV9pZHgpKTsKIAlEQkdfRFVNUF9SRVFVRVNUX0ZSQU1FKG1mKQpAQCAtMjAzNiw3ICsxNjI4LDcgQEAKIAogCS8qIFJldHVybiBGYWlsIHRvIGNhbGxpbmcgZnVuY3Rpb24gaWYgbm8gbWVzc2FnZSBmcmFtZXMgYXZhaWxhYmxlLgogCSAqLwotCWlmICgobWYgPSBtcHRfZ2V0X21zZ19mcmFtZShTY3NpVGFza0N0eCwgaGQtPmlvYykpID09IE5VTEwpIHsKKwlpZiAoKG1mID0gbXB0X2dldF9tc2dfZnJhbWUoaGQtPmlvYy0+VGFza0N0eCwgaGQtPmlvYykpID09IE5VTEwpIHsKIAkJZGZhaWxwcmludGsoKE1ZSU9DX3NfRVJSX0ZNVCAiSXNzdWVUYXNrTWdtdCwgbm8gbXNnIGZyYW1lcyEhXG4iLAogCQkJCWhkLT5pb2MtPm5hbWUpKTsKIAkJLy9yZXR1cm4gRkFJTEVEOwpAQCAtMjA3NSw3ICsxNjY3LDcgQEAKIAogCURCR19EVU1QX1RNX1JFUVVFU1RfRlJBTUUoKHUzMiAqKXBTY3NpVG0pOwogCi0JaWYgKChyZXR2YWwgPSBtcHRfc2VuZF9oYW5kc2hha2VfcmVxdWVzdChTY3NpVGFza0N0eCwgaGQtPmlvYywKKwlpZiAoKHJldHZhbCA9IG1wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0KGhkLT5pb2MtPlRhc2tDdHgsIGhkLT5pb2MsCiAJCXNpemVvZihTQ1NJVGFza01nbXRfdCksICh1MzIqKXBTY3NpVG0sCiAJCUNBTl9TTEVFUCkpICE9IDApIHsKIAkJZGZhaWxwcmludGsoKE1ZSU9DX3NfRVJSX0ZNVCAiX3NlbmRfaGFuZHNoYWtlIEZBSUxFRCEiCkBAIC0yMTA3LDcgKzE2OTksNyBAQAogICoKICAqCVJldHVybnMgU1VDQ0VTUyBvciBGQUlMRUQuCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqIFNDcG50KQogewogCU1QVF9TQ1NJX0hPU1QJKmhkOwpAQCAtMjExNSw3ICsxNzA3LDYgQEAKIAlNUFRfRlJBTUVfSERSCSptZjsKIAl1MzIJCSBjdHgyYWJvcnQ7CiAJaW50CQkgc2NwbnRfaWR4OwotCXNwaW5sb2NrX3QJKmhvc3RfbG9jayA9IFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jazsKIAogCS8qIElmIHdlIGNhbid0IGxvY2F0ZSBvdXIgaG9zdCBhZGFwdGVyIHN0cnVjdHVyZSwgcmV0dXJuIEZBSUxFRCBzdGF0dXMuCiAJICovCkBAIC0yMTYzLDcgKzE3NTQsNiBAQAogCiAJaGQtPmFib3J0U0NwbnQgPSBTQ3BudDsKIAotCXNwaW5fdW5sb2NrX2lycShob3N0X2xvY2spOwogCWlmIChtcHRzY3NpaF9UTUhhbmRsZXIoaGQsIE1QSV9TQ1NJVEFTS01HTVRfVEFTS1RZUEVfQUJPUlRfVEFTSywKIAkJU0NwbnQtPmRldmljZS0+Y2hhbm5lbCwgU0NwbnQtPmRldmljZS0+aWQsIFNDcG50LT5kZXZpY2UtPmx1biwKIAkJY3R4MmFib3J0LCAyIC8qIDIgc2Vjb25kIHRpbWVvdXQgKi8pCkBAIC0yMTgwLDggKzE3NzAsNiBAQAogCQloZC0+dG1QZW5kaW5nID0gMDsKIAkJaGQtPnRtU3RhdGUgPSBUTV9TVEFURV9OT05FOwogCi0JCXNwaW5fbG9ja19pcnEoaG9zdF9sb2NrKTsKLQogCQkvKiBVbm1hcCB0aGUgRE1BIGJ1ZmZlcnMsIGlmIGFueS4gKi8KIAkJaWYgKFNDcG50LT51c2Vfc2cpIHsKIAkJCXBjaV91bm1hcF9zZyhpb2MtPnBjaWRldiwgKHN0cnVjdCBzY2F0dGVybGlzdCAqKSBTQ3BudC0+cmVxdWVzdF9idWZmZXIsCkBAIC0yMTk3LDcgKzE3ODUsNiBAQAogCQltcHRfZnJlZV9tc2dfZnJhbWUoaW9jLCBtZik7CiAJCXJldHVybiBGQUlMRUQ7CiAJfQotCXNwaW5fbG9ja19pcnEoaG9zdF9sb2NrKTsKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIApAQCAtMjIxMCwxMSArMTc5NywxMCBAQAogICoKICAqCVJldHVybnMgU1VDQ0VTUyBvciBGQUlMRUQuCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfZGV2X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKiBTQ3BudCkKIHsKIAlNUFRfU0NTSV9IT1NUCSpoZDsKLQlzcGlubG9ja190CSpob3N0X2xvY2sgPSBTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2s7CiAKIAkvKiBJZiB3ZSBjYW4ndCBsb2NhdGUgb3VyIGhvc3QgYWRhcHRlciBzdHJ1Y3R1cmUsIHJldHVybiBGQUlMRUQgc3RhdHVzLgogCSAqLwpAQCAtMjIzMSw3ICsxODE3LDYgQEAKIAlwcmludGsoS0VSTl9XQVJOSU5HIE1ZTkFNICI6ICVzOiA+PiBBdHRlbXB0aW5nIHRhcmdldCByZXNldCEgKHNjPSVwKVxuIiwKIAkgICAgICAgaGQtPmlvYy0+bmFtZSwgU0NwbnQpOwogCi0Jc3Bpbl91bmxvY2tfaXJxKGhvc3RfbG9jayk7CiAJaWYgKG1wdHNjc2loX1RNSGFuZGxlcihoZCwgTVBJX1NDU0lUQVNLTUdNVF9UQVNLVFlQRV9UQVJHRVRfUkVTRVQsCiAJCVNDcG50LT5kZXZpY2UtPmNoYW5uZWwsIFNDcG50LT5kZXZpY2UtPmlkLAogCQkwLCAwLCA1IC8qIDUgc2Vjb25kIHRpbWVvdXQgKi8pCkBAIC0yMjQzLDEyICsxODI4LDEwIEBACiAJCSAJCWhkLT5pb2MtPm5hbWUsIFNDcG50KTsKIAkJaGQtPnRtUGVuZGluZyA9IDA7CiAJCWhkLT50bVN0YXRlID0gVE1fU1RBVEVfTk9ORTsKLQkJc3Bpbl9sb2NrX2lycShob3N0X2xvY2spOwogCQlyZXR1cm4gRkFJTEVEOwogCX0KLQlzcGluX2xvY2tfaXJxKGhvc3RfbG9jayk7Ci0JcmV0dXJuIFNVQ0NFU1M7CiAKKwlyZXR1cm4gU1VDQ0VTUzsKIH0KIAogLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLwpAQCAtMjI2MCw3ICsxODQzLDcgQEAKICAqCiAgKglSZXR1cm5zIFNVQ0NFU1Mgb3IgRkFJTEVELgogICovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogU0NwbnQpCiB7CiAJTVBUX1NDU0lfSE9TVAkqaGQ7CkBAIC0yMjgyLDcgKzE4NjUsNiBAQAogCQloZC0+dGltZW91dHMrKzsKIAogCS8qIFdlIGFyZSBub3cgcmVhZHkgdG8gZXhlY3V0ZSB0aGUgdGFzayBtYW5hZ2VtZW50IHJlcXVlc3QuICovCi0Jc3Bpbl91bmxvY2tfaXJxKGhvc3RfbG9jayk7CiAJaWYgKG1wdHNjc2loX1RNSGFuZGxlcihoZCwgTVBJX1NDU0lUQVNLTUdNVF9UQVNLVFlQRV9SRVNFVF9CVVMsCiAJCVNDcG50LT5kZXZpY2UtPmNoYW5uZWwsIDAsIDAsIDAsIDUgLyogNSBzZWNvbmQgdGltZW91dCAqLykKIAkgICAgPCAwKXsKQEAgLTIyOTgsNyArMTg4MCw3IEBACiAJCXNwaW5fbG9ja19pcnEoaG9zdF9sb2NrKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9Ci0Jc3Bpbl9sb2NrX2lycShob3N0X2xvY2spOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKQEAgLTIzMTIsMTIgKzE4OTQsMTEgQEAKICAqCiAgKglSZXR1cm5zIFNVQ0NFU1Mgb3IgRkFJTEVELgogICovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiB7CiAJTVBUX1NDU0lfSE9TVCAqICBoZDsKIAlpbnQgICAgICAgICAgICAgIHN0YXR1cyA9IFNVQ0NFU1M7Ci0Jc3BpbmxvY2tfdAkqaG9zdF9sb2NrID0gU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrOwogCiAJLyogIElmIHdlIGNhbid0IGxvY2F0ZSB0aGUgaG9zdCB0byByZXNldCwgdGhlbiB3ZSBmYWlsZWQuICovCiAJaWYgKChoZCA9IChNUFRfU0NTSV9IT1NUICopIFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhKSA9PSBOVUxMKXsKQEAgLTIzMzMsNyArMTkxNCw2IEBACiAJLyogIElmIG91ciBhdHRlbXB0cyB0byByZXNldCB0aGUgaG9zdCBmYWlsZWQsIHRoZW4gcmV0dXJuIGEgZmFpbGVkCiAJICogIHN0YXR1cy4gIFRoZSBob3N0IHdpbGwgYmUgdGFrZW4gb2ZmIGxpbmUgYnkgdGhlIFNDU0kgbWlkLWxheWVyLgogCSAqLwotCXNwaW5fdW5sb2NrX2lycShob3N0X2xvY2spOwogCWlmIChtcHRfSGFyZFJlc2V0SGFuZGxlcihoZC0+aW9jLCBDQU5fU0xFRVApIDwgMCl7CiAJCXN0YXR1cyA9IEZBSUxFRDsKIAl9IGVsc2UgewpAQCAtMjM0Myw4ICsxOTIzLDYgQEAKIAkJaGQtPnRtUGVuZGluZyA9IDA7CiAJCWhkLT50bVN0YXRlID0gVE1fU1RBVEVfTk9ORTsKIAl9Ci0Jc3Bpbl9sb2NrX2lycShob3N0X2xvY2spOwotCiAKIAlkdG1wcmludGsoICggS0VSTl9XQVJOSU5HIE1ZTkFNICI6IG1wdHNjc2loX2hvc3RfcmVzZXQ6ICIKIAkJICAgICAiU3RhdHVzID0gJXNcbiIsCkBAIC0yNDI2LDcgKzIwMDQsNyBAQAogICoKICAqCVJldHVybnMgMSBpbmRpY2F0aW5nIGFsbG9jJ2QgcmVxdWVzdCBmcmFtZSBwdHIgc2hvdWxkIGJlIGZyZWVkLgogICovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX3Rhc2ttZ210X2NvbXBsZXRlKE1QVF9BREFQVEVSICppb2MsIE1QVF9GUkFNRV9IRFIgKm1mLCBNUFRfRlJBTUVfSERSICptcikKIHsKIAlTQ1NJVGFza01nbXRSZXBseV90CSpwU2NzaVRtUmVwbHk7CkBAIC0yNTA5LDcgKzIwODcsNyBAQAogLyoKICAqCVRoaXMgaXMgYW55b25lcyBndWVzcyBxdWl0ZSBmcmFua2x5LgogICovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX2Jpb3NfcGFyYW0oc3RydWN0IHNjc2lfZGV2aWNlICogc2Rldiwgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKIAkJc2VjdG9yX3QgY2FwYWNpdHksIGludCBnZW9tW10pCiB7CkBAIC0yNTU2LDcgKzIxMzQsNyBAQAogICoJUmV0dXJuIG5vbi16ZXJvIGlmIGFsbG9jYXRpb24gZmFpbHMuCiAgKglJbml0IG1lbW9yeSBvbmNlIHBlciBpZCAobm90IExVTikuCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfc2xhdmVfYWxsb2Moc3RydWN0IHNjc2lfZGV2aWNlICpkZXZpY2UpCiB7CiAJc3RydWN0IFNjc2lfSG9zdAkqaG9zdCA9IGRldmljZS0+aG9zdDsKQEAgLTI1OTksNyArMjE3Nyw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXB0c2NzaWhfaXNfcmFpZF92b2x1bWUoTVBUX1NDU0lfSE9TVCAqaGQsIHVpbnQgaWQpCitzdGF0aWMgaW50IAorbXB0c2NzaWhfaXNfcmFpZF92b2x1bWUoTVBUX1NDU0lfSE9TVCAqaGQsIHVpbnQgaWQpCiB7CiAJaW50IGk7CiAKQEAgLTI2MTgsNyArMjE5Nyw3IEBACiAgKglPUyBlbnRyeSBwb2ludCB0byBhbGxvdyBmb3IgaG9zdCBkcml2ZXIgdG8gZnJlZSBhbGxvY2F0ZWQgbWVtb3J5CiAgKglDYWxsZWQgaWYgbm8gZGV2aWNlIHByZXNlbnQgb3IgZGV2aWNlIGJlaW5nIHVubG9hZGVkCiAgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBtcHRzY3NpaF9zbGF2ZV9kZXN0cm95KHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKQogewogCXN0cnVjdCBTY3NpX0hvc3QJKmhvc3QgPSBkZXZpY2UtPmhvc3Q7CkBAIC0yNjM5LDcgKzIyMTgsNyBAQAogCiAJa2ZyZWUoaGQtPlRhcmdldHNbdGFyZ2V0XSk7CiAJaGQtPlRhcmdldHNbdGFyZ2V0XSA9IE5VTEw7Ci0JCisKIAlpZiAoaGQtPmlvYy0+YnVzX3R5cGUgPT0gU0NTSSkgewogCQlpZiAobXB0c2NzaWhfaXNfcmFpZF92b2x1bWUoaGQsIHRhcmdldCkpIHsKIAkJCWhkLT5pb2MtPnNwaV9kYXRhLmZvcmNlRHYgfD0gTVBUX1NDU0lDRkdfUkVMT0FEX0lPQ19QRzM7CkBAIC0yNjk1LDcgKzIyNzQsNyBAQAogICoJbWVtYmVyIHRvIDEgaWYgYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBRIHRhZ3MuCiAgKglSZXR1cm4gbm9uLXplcm8gaWYgZmFpbHMuCiAgKi8KLXN0YXRpYyBpbnQKK2ludAogbXB0c2NzaWhfc2xhdmVfY29uZmlndXJlKHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKQogewogCXN0cnVjdCBTY3NpX0hvc3QJKnNoID0gZGV2aWNlLT5ob3N0OwpAQCAtMjc1OCw3ICsyMzM3LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHNzaXplX3QKK3NzaXplX3QKIG1wdHNjc2loX3N0b3JlX3F1ZXVlX2RlcHRoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7CiAJaW50CQkJIGRlcHRoOwpAQCAtMjc4OCw3ICsyMzY3LDcgQEAKICAqCiAgKi8KIHN0YXRpYyB2b2lkCi1jb3B5X3NlbnNlX2RhdGEoc3RydWN0IHNjc2lfY21uZCAqc2MsIE1QVF9TQ1NJX0hPU1QgKmhkLCBNUFRfRlJBTUVfSERSICptZiwgU0NTSUlPUmVwbHlfdCAqcFNjc2lSZXBseSkKK21wdHNjc2loX2NvcHlfc2Vuc2VfZGF0YShzdHJ1Y3Qgc2NzaV9jbW5kICpzYywgTVBUX1NDU0lfSE9TVCAqaGQsIE1QVF9GUkFNRV9IRFIgKm1mLCBTQ1NJSU9SZXBseV90ICpwU2NzaVJlcGx5KQogewogCVZpcnREZXZpY2UJKnRhcmdldDsKIAlTQ1NJSU9SZXF1ZXN0X3QJKnBSZXE7CkBAIC0yODU0LDcgKzI0MzMsNyBAQAogfQogCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX2lvY19yZXNldChNUFRfQURBUFRFUiAqaW9jLCBpbnQgcmVzZXRfcGhhc2UpCiB7CiAJTVBUX1NDU0lfSE9TVAkqaGQ7CkBAIC0yOTQ5LDggKzI1MjgsOCBAQAogCQkJICovCiAJCQloZC0+cExvY2FsID0gJmhkLT5sb2NhbFJlcGx5OwogCQkJaGQtPnBMb2NhbC0+Y29tcGxldGlvbiA9IE1QVF9TQ0FORFZfRElEX1JFU0VUOwotCQkJc2NhbmR2X3dhaXRfZG9uZSA9IDE7Ci0JCQl3YWtlX3VwKCZzY2FuZHZfd2FpdHEpOworCQkJaGQtPnNjYW5kdl93YWl0X2RvbmUgPSAxOworCQkJd2FrZV91cCgmaGQtPnNjYW5kdl93YWl0cSk7CiAJCQloZC0+Y21kUHRyID0gTlVMTDsKIAkJfQogCkBAIC0yOTY5LDcgKzI1NDgsNyBAQAogfQogCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCi1zdGF0aWMgaW50CitpbnQKIG1wdHNjc2loX2V2ZW50X3Byb2Nlc3MoTVBUX0FEQVBURVIgKmlvYywgRXZlbnROb3RpZmljYXRpb25SZXBseV90ICpwRXZSZXBseSkKIHsKIAlNUFRfU0NTSV9IT1NUICpoZDsKQEAgLTMwODUsNDIgKzI2NjQsNiBAQAogCXJldHVybiAxOwkJLyogY3VycmVudGx5IG1lYW5zIG5vdGhpbmcgcmVhbGx5ICovCiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBtcHRzY3NpaF9xdWV1ZV9kZXB0aF9hdHRyID0gewotCS5hdHRyID0gewotCQkubmFtZSA9IAkicXVldWVfZGVwdGgiLAotCQkubW9kZSA9CQlTX0lXVVNSLAotCX0sCi0JLnN0b3JlID0gbXB0c2NzaWhfc3RvcmVfcXVldWVfZGVwdGgsCi19OwotCi1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKm1wdHNjc2loX2Rldl9hdHRyc1tdID0gewotCSZtcHRzY3NpaF9xdWV1ZV9kZXB0aF9hdHRyLAotCU5VTEwsCi19OwotCi1zdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBkcml2ZXJfdGVtcGxhdGUgPSB7Ci0JLnByb2NfbmFtZQkJCT0gIm1wdHNjc2loIiwKLQkucHJvY19pbmZvCQkJPSBtcHRzY3NpaF9wcm9jX2luZm8sCi0JLm5hbWUJCQkJPSAiTVBUIFNDU0kgSG9zdCIsCi0JLmluZm8JCQkJPSBtcHRzY3NpaF9pbmZvLAotCS5xdWV1ZWNvbW1hbmQJCQk9IG1wdHNjc2loX3FjbWQsCi0JLnNsYXZlX2FsbG9jCQkJPSBtcHRzY3NpaF9zbGF2ZV9hbGxvYywKLQkuc2xhdmVfY29uZmlndXJlCQk9IG1wdHNjc2loX3NsYXZlX2NvbmZpZ3VyZSwKLQkuc2xhdmVfZGVzdHJveQkJCT0gbXB0c2NzaWhfc2xhdmVfZGVzdHJveSwKLQkuZWhfYWJvcnRfaGFuZGxlcgkJPSBtcHRzY3NpaF9hYm9ydCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIJPSBtcHRzY3NpaF9kZXZfcmVzZXQsCi0JLmVoX2J1c19yZXNldF9oYW5kbGVyCQk9IG1wdHNjc2loX2J1c19yZXNldCwKLQkuZWhfaG9zdF9yZXNldF9oYW5kbGVyCQk9IG1wdHNjc2loX2hvc3RfcmVzZXQsCi0JLmJpb3NfcGFyYW0JCQk9IG1wdHNjc2loX2Jpb3NfcGFyYW0sCi0JLmNhbl9xdWV1ZQkJCT0gTVBUX1NDU0lfQ0FOX1FVRVVFLAotCS50aGlzX2lkCQkJPSAtMSwKLQkuc2dfdGFibGVzaXplCQkJPSBNUFRfU0NTSV9TR19ERVBUSCwKLQkubWF4X3NlY3RvcnMJCQk9IDgxOTIsCi0JLmNtZF9wZXJfbHVuCQkJPSA3LAotCS51c2VfY2x1c3RlcmluZwkJCT0gRU5BQkxFX0NMVVNURVJJTkcsCi0JLnNkZXZfYXR0cnMJCQk9IG1wdHNjc2loX2Rldl9hdHRycywKLX07Ci0KIC8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KIC8qCiAgKgltcHRzY3NpaF9pbml0VGFyZ2V0IC0gVGFyZ2V0LCBMVU4gYWxsb2MvZnJlZSBmdW5jdGlvbmFsaXR5LgpAQCAtMzE1OCw5ICsyNzAxLDkgQEAKIAkgKiBhcm91bmQgYSBidWcgaW4gdGggZW1pZC1sYXllciBpbiBzb21lIGRpc3RyaWJ1dGlvbnMgaW4gd2hpY2ggdGhlIG1pZC1sYXllciB3aWxsCiAJICogY29udGludWUgdG8gdHJ5IHRvIGNvbW11bmljYXRlIHRvIHRoZSBMVU4gYW5kIGV2bnR1YWxseSBjcmVhdGUgYSBkdW1teSBMVU4uCiAJKi8KLQlpZiAobXB0X3BxX2ZpbHRlciAmJiBkbGVuICYmIChkYXRhWzBdICYgMHhFMCkpCisJaWYgKGhkLT5tcHRfcHFfZmlsdGVyICYmIGRsZW4gJiYgKGRhdGFbMF0gJiAweEUwKSkKIAkJZGF0YVswXSB8PSAweDQwOwotCQorCiAJLyogSXMgTFVOIHN1cHBvcnRlZD8gSWYgc28sIHVwcGVyIDIgYml0cyB3aWxsIGJlIDAKIAkqIGluIGZpcnN0IGJ5dGUgb2YgaW5xdWlyeSBkYXRhLgogCSovCkBAIC0zMzA3LDcgKzI4NTAsNyBAQAogCQkJCWRkdnRwcmludGsoKEtFUk5fSU5GTyAiRW5hYmxpbmcgUUFTIG9uIGlkPSVkIGR1ZSB0byB+VEFSR0VUX0ZMQUdTX1ZBTElEXzU2IVxuIiwgaWQpKTsKIAkJCQlub1FhcyA9IDA7CiAJCQl9Ci0JCQkJCisKIAkJCW9mZnNldCA9IHBzcGlfZGF0YS0+bWF4U3luY09mZnNldDsKIAogCQkJLyogSWYgUkFJRCwgbmV2ZXIgZGlzYWJsZSBRQVMKQEAgLTM0MDEsNyArMjk0NCw3IEBACiAJCQkJaWYgKCAodmRldiA9IGhkLT5UYXJnZXRzW2lpXSkgKSB7CiAJCQkJCXZkZXYtPm5lZ29GbGFncyB8PSBNUFRfVEFSR0VUX05PX05FR09fUUFTOwogCQkJCQltcHRzY3NpaF93cml0ZVNEUDEoaGQsIDAsIGlpLCB2ZGV2LT5uZWdvRmxhZ3MpOwotCQkJCX0JCisJCQkJfQogCQkJfQogCQl9CiAJfQpAQCAtMzQyNiwxNCArMjk2OSwxNSBAQAogICogVGFwZXMsIGluaXRUYXJnZXQgd2lsbCBzZXQgdGhpcyBmbGFnIG9uIGNvbXBsZXRpb24gb2YgSW5xdWlyeSBjb21tYW5kLgogICogQ2FsbGVkIG9ubHkgaWYgRFZfTk9UX0RPTkUgZmxhZyBpcyBzZXQKICAqLwotc3RhdGljIHZvaWQgbXB0c2NzaWhfc2V0X2R2ZmxhZ3MoTVBUX1NDU0lfSE9TVCAqaGQsIFNDU0lJT1JlcXVlc3RfdCAqcFJlcSkKK3N0YXRpYyB2b2lkCittcHRzY3NpaF9zZXRfZHZmbGFncyhNUFRfU0NTSV9IT1NUICpoZCwgU0NTSUlPUmVxdWVzdF90ICpwUmVxKQogewogCXU4IGNtZDsKIAlTY3NpQ2ZnRGF0YSAqcFNwaTsKIAogCWRkdnRwcmludGsoKCIgc2V0X2R2ZmxhZ3M6IGlkPSVkIGx1bj0lZCBuZWdvTnZyYW09JXggY21kPSV4XG4iLCAKIAkJcFJlcS0+VGFyZ2V0SUQsIHBSZXEtPkxVTlsxXSwgaGQtPm5lZ29OdnJhbSwgcFJlcS0+Q0RCWzBdKSk7Ci0JCisKIAlpZiAoKHBSZXEtPkxVTlsxXSAhPSAwKSB8fCAoaGQtPm5lZ29OdnJhbSAhPSAwKSkKIAkJcmV0dXJuOwogCkBAIC0zNDY0LDcgKzMwMDgsOCBAQAogICogSWYgbm8gVGFyZ2V0LCBidXMgcmVzZXQgb24gMXN0IEkvTy4gU2V0IHRoZSBmbGFnIHRvCiAgKiBwcmV2ZW50IGFueSBmdXR1cmUgbmVnb3RpYXRpb25zIHRvIHRoaXMgZGV2aWNlLgogICovCi1zdGF0aWMgdm9pZCBtcHRzY3NpaF9ub19uZWdvdGlhdGUoTVBUX1NDU0lfSE9TVCAqaGQsIGludCB0YXJnZXRfaWQpCitzdGF0aWMgdm9pZAorbXB0c2NzaWhfbm9fbmVnb3RpYXRlKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgdGFyZ2V0X2lkKQogewogCiAJaWYgKChoZC0+VGFyZ2V0cykgJiYgKGhkLT5UYXJnZXRzW3RhcmdldF9pZF0gPT0gTlVMTCkpCkBAIC0zNjMxLDcgKzMxNzYsNyBAQAogCQkJb2Zmc2V0ID0gcFRhcmdldC0+bWF4T2Zmc2V0OwogCQkJbmVnb0ZsYWdzID0gcFRhcmdldC0+bmVnb0ZsYWdzOwogCQl9Ci0JCQorCiAjaWZkZWYgTVBUU0NTSUhfRU5BQkxFX0RPTUFJTl9WQUxJREFUSU9OCiAJCS8qIEZvcmNlIHRvIGFzeW5jIGFuZCBuYXJyb3cgaWYgRFYgaGFzIG5vdCBiZWVuIGV4ZWN1dGVkCiAJCSAqIGZvciB0aGlzIElECkBAIC0zNjUzLDcgKzMxOTgsNyBAQAogCiAJCS8qIEdldCBhIE1GIGZvciB0aGlzIGNvbW1hbmQuCiAJCSAqLwotCQlpZiAoKG1mID0gbXB0X2dldF9tc2dfZnJhbWUoU2NzaURvbmVDdHgsIGlvYykpID09IE5VTEwpIHsKKwkJaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKGlvYy0+RG9uZUN0eCwgaW9jKSkgPT0gTlVMTCkgewogCQkJZHByaW50aygoTVlJT0Nfc19XQVJOX0ZNVCAid3JpdGUgU0RQMTogbm8gbXNnIGZyYW1lcyFcbiIsCiAJCQkJCQlpb2MtPm5hbWUpKTsKIAkJCXJldHVybiAtRUFHQUlOOwpAQCAtMzcxNyw3ICszMjYyLDcgQEAKIAkJCQlpb2MtPm5hbWUsIGlkLCAoaWQgfCAoYnVzPDw4KSksCiAJCQkJcmVxdWVzdGVkLCBjb25maWd1cmF0aW9uKSk7CiAKLQkJbXB0X3B1dF9tc2dfZnJhbWUoU2NzaURvbmVDdHgsIGlvYywgbWYpOworCQltcHRfcHV0X21zZ19mcmFtZShpb2MtPkRvbmVDdHgsIGlvYywgbWYpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMzc0OCw3ICszMjkzLDcgQEAKIAogCS8qIEdldCBhIE1GIGZvciB0aGlzIGNvbW1hbmQuCiAJICovCi0JaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKFNjc2lEb25lQ3R4LCBpb2MpKSA9PSBOVUxMKSB7CisJaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKGlvYy0+RG9uZUN0eCwgaW9jKSkgPT0gTlVMTCkgewogCQlkcHJpbnRrKChNWUlPQ19zX1dBUk5fRk1UICJ3cml0ZUlPQ1BhZ2U0IDogbm8gbXNnIGZyYW1lcyFcbiIsCiAJCQkJCWlvYy0+bmFtZSkpOwogCQlyZXR1cm4gLUVBR0FJTjsKQEAgLTM3OTQsNyArMzMzOSw3IEBACiAJCSJ3cml0ZUlPQ1BhZ2U0OiBNYXhTRVA9JWQgQWN0aXZlU0VQPSVkIGlkPSVkIGJ1cz0lZFxuIiwKIAkJCWlvYy0+bmFtZSwgSU9DUGFnZTRQdHItPk1heFNFUCwgSU9DUGFnZTRQdHItPkFjdGl2ZVNFUCwgdGFyZ2V0X2lkLCBidXMpKTsKIAotCW1wdF9wdXRfbXNnX2ZyYW1lKFNjc2lEb25lQ3R4LCBpb2MsIG1mKTsKKwltcHRfcHV0X21zZ19mcmFtZShpb2MtPkRvbmVDdHgsIGlvYywgbWYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zODI0LDcgKzMzNjksNyBAQAogICoJaW4gdGhlIElPQyBtZW1iZXIgbG9jYWxSZXBseSBzdHJ1Y3R1cmUuCiAgKglVc2VkIE9OTFkgZm9yIERWIGFuZCBvdGhlciBpbnRlcm5hbCBjb21tYW5kcy4KICAqLwotc3RhdGljIGludAoraW50CiBtcHRzY3NpaF9zY2FuZHZfY29tcGxldGUoTVBUX0FEQVBURVIgKmlvYywgTVBUX0ZSQU1FX0hEUiAqbWYsIE1QVF9GUkFNRV9IRFIgKm1yKQogewogCU1QVF9TQ1NJX0hPU1QJKmhkOwpAQCAtMzgzMiw2ICszMzc3LDggQEAKIAlpbnQJCSBjb21wbGV0aW9uQ29kZTsKIAl1MTYJCSByZXFfaWR4OwogCisJaGQgPSAoTVBUX1NDU0lfSE9TVCAqKSBpb2MtPnNoLT5ob3N0ZGF0YTsKKwogCWlmICgobWYgPT0gTlVMTCkgfHwKIAkgICAgKG1mID49IE1QVF9JTkRFWF8yX01GUFRSKGlvYywgaW9jLT5yZXFfZGVwdGgpKSkgewogCQlwcmludGsoTVlJT0Nfc19FUlJfRk1UCkBAIC0zODQwLDcgKzMzODcsNiBAQAogCQlnb3RvIHdha2V1cDsKIAl9CiAKLQloZCA9IChNUFRfU0NTSV9IT1NUICopIGlvYy0+c2gtPmhvc3RkYXRhOwogCWRlbF90aW1lcigmaGQtPnRpbWVyKTsKIAlyZXFfaWR4ID0gbGUxNl90b19jcHUobWYtPnUuZnJhbWUuaHdoZHIubXNnY3R4dS5mbGQucmVxX2lkeCk7CiAJaGQtPlNjc2lMb29rdXBbcmVxX2lkeF0gPSBOVUxMOwpAQCAtMzk3Miw4ICszNTE4LDggQEAKIAkvKgogCSAqIFdha2UgdXAgdGhlIG9yaWdpbmFsIGNhbGxpbmcgdGhyZWFkCiAJICovCi0Jc2NhbmR2X3dhaXRfZG9uZSA9IDE7Ci0Jd2FrZV91cCgmc2NhbmR2X3dhaXRxKTsKKwloZC0+c2NhbmR2X3dhaXRfZG9uZSA9IDE7CisJd2FrZV91cCgmaGQtPnNjYW5kdl93YWl0cSk7CiAKIAlyZXR1cm4gMTsKIH0KQEAgLTM5ODQsNyArMzUzMCw4IEBACiAgKglAZGF0YTogUG9pbnRlciB0byBNUFRfU0NTSV9IT1NUIHJlY2FzdCBhcyBhbiB1bnNpZ25lZCBsb25nCiAgKgogICovCi1zdGF0aWMgdm9pZCBtcHRzY3NpaF90aW1lcl9leHBpcmVkKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3ZvaWQKK21wdHNjc2loX3RpbWVyX2V4cGlyZWQodW5zaWduZWQgbG9uZyBkYXRhKQogewogCU1QVF9TQ1NJX0hPU1QgKmhkID0gKE1QVF9TQ1NJX0hPU1QgKikgZGF0YTsKIApAQCAtNDA1MSw3ICszNTk4LDcgQEAKIAogCS8qIEdldCBhbmQgUG9wdWxhdGUgYSBmcmVlIEZyYW1lCiAJICovCi0JaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKFNjc2lTY2FuRHZDdHgsIGhkLT5pb2MpKSA9PSBOVUxMKSB7CisJaWYgKChtZiA9IG1wdF9nZXRfbXNnX2ZyYW1lKGhkLT5pb2MtPkludGVybmFsQ3R4LCBoZC0+aW9jKSkgPT0gTlVMTCkgewogCQlkZHZwcmludGsoKE1ZSU9DX3NfV0FSTl9GTVQgIl9kb19yYWlkOiBubyBtc2cgZnJhbWVzIVxuIiwKIAkJCQkJaGQtPmlvYy0+bmFtZSkpOwogCQlyZXR1cm4gLUVBR0FJTjsKQEAgLTQwNzcsNyArMzYyNCw3IEBACiAKIAloZC0+cExvY2FsID0gTlVMTDsKIAloZC0+dGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBIWioxMDsgLyogMTAgc2Vjb25kIHRpbWVvdXQgKi8KLQlzY2FuZHZfd2FpdF9kb25lID0gMDsKKwloZC0+c2NhbmR2X3dhaXRfZG9uZSA9IDA7CiAKIAkvKiBTYXZlIGNtZCBwb2ludGVyLCBmb3IgcmVzb3VyY2UgZnJlZSBpZiB0aW1lb3V0IG9yCiAJICogRlcgcmVsb2FkIG9jY3VycwpAQCAtNDA4NSw4ICszNjMyLDggQEAKIAloZC0+Y21kUHRyID0gbWY7CiAKIAlhZGRfdGltZXIoJmhkLT50aW1lcik7Ci0JbXB0X3B1dF9tc2dfZnJhbWUoU2NzaVNjYW5EdkN0eCwgaGQtPmlvYywgbWYpOwotCXdhaXRfZXZlbnQoc2NhbmR2X3dhaXRxLCBzY2FuZHZfd2FpdF9kb25lKTsKKwltcHRfcHV0X21zZ19mcmFtZShoZC0+aW9jLT5JbnRlcm5hbEN0eCwgaGQtPmlvYywgbWYpOworCXdhaXRfZXZlbnQoaGQtPnNjYW5kdl93YWl0cSwgaGQtPnNjYW5kdl93YWl0X2RvbmUpOwogCiAJaWYgKChoZC0+cExvY2FsID09IE5VTEwpIHx8IChoZC0+cExvY2FsLT5jb21wbGV0aW9uICE9IE1QVF9TQ0FORFZfR09PRCkpCiAJCXJldHVybiAtMTsKQEAgLTQyMzIsNyArMzc3OSw3IEBACiAKIAkvKiBHZXQgYW5kIFBvcHVsYXRlIGEgZnJlZSBGcmFtZQogCSAqLwotCWlmICgobWYgPSBtcHRfZ2V0X21zZ19mcmFtZShTY3NpU2NhbkR2Q3R4LCBoZC0+aW9jKSkgPT0gTlVMTCkgeworCWlmICgobWYgPSBtcHRfZ2V0X21zZ19mcmFtZShoZC0+aW9jLT5JbnRlcm5hbEN0eCwgaGQtPmlvYykpID09IE5VTEwpIHsKIAkJZGR2cHJpbnRrKChNWUlPQ19zX1dBUk5fRk1UICJObyBtc2cgZnJhbWVzIVxuIiwKIAkJCQkJaGQtPmlvYy0+bmFtZSkpOwogCQlyZXR1cm4gLUVCVVNZOwpAQCAtNDMxNCw3ICszODYxLDcgQEAKIAkgKi8KIAloZC0+cExvY2FsID0gTlVMTDsKIAloZC0+dGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBIWipjbWRUaW1lb3V0OwotCXNjYW5kdl93YWl0X2RvbmUgPSAwOworCWhkLT5zY2FuZHZfd2FpdF9kb25lID0gMDsKIAogCS8qIFNhdmUgY21kIHBvaW50ZXIsIGZvciByZXNvdXJjZSBmcmVlIGlmIHRpbWVvdXQgb3IKIAkgKiBGVyByZWxvYWQgb2NjdXJzCkBAIC00MzIyLDggKzM4NjksOCBAQAogCWhkLT5jbWRQdHIgPSBtZjsKIAogCWFkZF90aW1lcigmaGQtPnRpbWVyKTsKLQltcHRfcHV0X21zZ19mcmFtZShTY3NpU2NhbkR2Q3R4LCBoZC0+aW9jLCBtZik7Ci0Jd2FpdF9ldmVudChzY2FuZHZfd2FpdHEsIHNjYW5kdl93YWl0X2RvbmUpOworCW1wdF9wdXRfbXNnX2ZyYW1lKGhkLT5pb2MtPkludGVybmFsQ3R4LCBoZC0+aW9jLCBtZik7CisJd2FpdF9ldmVudChoZC0+c2NhbmR2X3dhaXRxLCBoZC0+c2NhbmR2X3dhaXRfZG9uZSk7CiAKIAlpZiAoaGQtPnBMb2NhbCkgewogCQlyYyA9IGhkLT5wTG9jYWwtPmNvbXBsZXRpb247CkBAIC00NjQwLDcgKzQxODcsOCBAQAogCiAvKiBTZWFyY2ggSU9DIHBhZ2UgMyB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBoaWRkZW4gcGh5c2ljYWwgZGlzawogICovCi1zdGF0aWMgaW50IG1wdHNjc2loX2lzX3BoeXNfZGlzayhNUFRfQURBUFRFUiAqaW9jLCBpbnQgaWQpCitzdGF0aWMgaW50IAorbXB0c2NzaWhfaXNfcGh5c19kaXNrKE1QVF9BREFQVEVSICppb2MsIGludCBpZCkKIHsKIAlpZiAoaW9jLT5zcGlfZGF0YS5wSW9jUGczKSB7CiAJCUlvYzNQaHlzRGlza190ICpwUERpc2sgPSAgaW9jLT5zcGlfZGF0YS5wSW9jUGczLT5QaHlzRGlzazsKQEAgLTQ2NTksNyArNDIwNyw4IEBACiAKIC8qIFdyaXRlIFNEUDEgaWYgbm8gUUFTIGhhcyBiZWVuIGVuYWJsZWQKICAqLwotc3RhdGljIHZvaWQgbXB0c2NzaWhfcWFzX2NoZWNrKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgaWQpCitzdGF0aWMgdm9pZAorbXB0c2NzaWhfcWFzX2NoZWNrKE1QVF9TQ1NJX0hPU1QgKmhkLCBpbnQgaWQpCiB7CiAJVmlydERldmljZSAqcFRhcmdldDsKIAlpbnQgaWk7CkBAIC01MTU3LDcgKzQ3MDYsNyBAQAogCX0KIAlkZHZwcmludGsoKE1ZSU9DX3NfTk9URV9GTVQgIkRWOiBCYXNpYyB0ZXN0IG9uIGlkPSVkIGNvbXBsZXRlZCBPSy5cbiIsIGlvYy0+bmFtZSwgaWQpKTsKIAotCWlmIChtcHRfZHYgPT0gMCkKKwlpZiAoaW9jLT5zcGlfZGF0YS5tcHRfZHYgPT0gMCkKIAkJZ290byB0YXJnZXRfZG9uZTsKIAogCWlucTAgPSAoKnBidWYxKSAmIDB4MUY7CkBAIC02MDE1LDcgKzU1NjQsMjkgQEAKIH0KICNlbmRpZiAvKiB+TVBUU0NTSUhfRU5BQkxFX0RPTUFJTl9WQUxJREFUSU9OICovCiAKLS8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfcmVtb3ZlKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfc2h1dGRvd24pOworI2lmZGVmIENPTkZJR19QTQorRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9zdXNwZW5kKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfcmVzdW1lKTsKKyNlbmRpZgorRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9wcm9jX2luZm8pOworRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9pbmZvKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfcWNtZCk7CitFWFBPUlRfU1lNQk9MKG1wdHNjc2loX3NsYXZlX2FsbG9jKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfc2xhdmVfZGVzdHJveSk7CitFWFBPUlRfU1lNQk9MKG1wdHNjc2loX3NsYXZlX2NvbmZpZ3VyZSk7CitFWFBPUlRfU1lNQk9MKG1wdHNjc2loX2Fib3J0KTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfZGV2X3Jlc2V0KTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfYnVzX3Jlc2V0KTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfaG9zdF9yZXNldCk7CitFWFBPUlRfU1lNQk9MKG1wdHNjc2loX2Jpb3NfcGFyYW0pOworRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9pb19kb25lKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfdGFza21nbXRfY29tcGxldGUpOworRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9zY2FuZHZfY29tcGxldGUpOworRVhQT1JUX1NZTUJPTChtcHRzY3NpaF9ldmVudF9wcm9jZXNzKTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfaW9jX3Jlc2V0KTsKK0VYUE9SVF9TWU1CT0wobXB0c2NzaWhfc3RvcmVfcXVldWVfZGVwdGgpOworRVhQT1JUX1NZTUJPTChtcHRzY3NpaF90aW1lcl9leHBpcmVkKTsKIAotbW9kdWxlX2luaXQobXB0c2NzaWhfaW5pdCk7Ci1tb2R1bGVfZXhpdChtcHRzY3NpaF9leGl0KTsKKy8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguaCBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguaAppbmRleCA1Y2IyZmQ0Li45ZjUxOTgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNjc2loLmgKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzY3NpaC5oCkBAIC0xLDI2ICsxLDEzIEBACiAvKgotICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguaAorICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaS5oCiAgKiAgICAgIEhpZ2ggcGVyZm9ybWFuY2UgU0NTSSAvIEZpYnJlIENoYW5uZWwgU0NTSSBIb3N0IGRldmljZSBkcml2ZXIuCiAgKiAgICAgIEZvciB1c2Ugd2l0aCBQQ0kgY2hpcC9hZGFwdGVyKHMpOgogICogICAgICAgICAgTFNJRkM5eHgvTFNJNDA5eHggRmlicmUgQ2hhbm5lbAogICogICAgICBydW5uaW5nIExTSSBMb2dpYyBGdXNpb24gTVBUIChNZXNzYWdlIFBhc3NpbmcgVGVjaG5vbG9neSkgZmlybXdhcmUuCiAgKgotICogIENyZWRpdHM6Ci0gKiAgICAgIFRoaXMgZHJpdmVyIHdvdWxkIG5vdCBleGlzdCBpZiBub3QgZm9yIEFsYW4gQ294J3MgZGV2ZWxvcG1lbnQKLSAqICAgICAgb2YgdGhlIGxpbnV4IGkybyBkcml2ZXIuCi0gKgotICogICAgICBBIGh1Z2UgZGVidCBvZiBncmF0aXR1ZGUgaXMgb3dlZCB0byBEYXZpZCBTLiBNaWxsZXIgKERhdmVNKQotICogICAgICBmb3IgZml4aW5nIG11Y2ggb2YgdGhlIHN0dXBpZCBhbmQgYnJva2VuIHN0dWZmIGluIHRoZSBlYXJseQotICogICAgICBkcml2ZXIgd2hpbGUgcG9ydGluZyB0byBzcGFyYzY0IHBsYXRmb3JtLiAgVEhBTksgWU9VIQotICoKLSAqICAgICAgKHNlZSBhbHNvIG1wdGJhc2UuYykKLSAqCi0gKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQgTFNJIExvZ2ljIENvcnBvcmF0aW9uCi0gKiAgT3JpZ2luYWxseSBCeTogU3RldmVuIEouIFJhbHN0b24KLSAqICAobWFpbHRvOm5ldHNjYXBlLm5ldCkKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSBMU0kgTG9naWMgQ29ycG9yYXRpb24KICAqICAobWFpbHRvOm1wdF9saW51eF9kZXZlbG9wZXJAbHNpbC5jb20pCiAgKgotICogICRJZDogbXB0c2NzaWguaCx2IDEuMjEgMjAwMi8xMi8wMyAyMToyNjozNSBwZGVsYW5leSBFeHAgJAogICovCiAvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCiAvKgpAQCAtOTEsNCArNzgsMzAgQEAKICNkZWZpbmUgTVBUU0NTSUhfTUlOX1NZTkMgICAgICAgICAgICAgICAweDA4CiAjZGVmaW5lIE1QVFNDU0lIX1NBRl9URSAgICAgICAgICAgICAgICAgMAogCisKICNlbmRpZgorCitleHRlcm4gdm9pZCBtcHRzY3NpaF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKik7CitleHRlcm4gdm9pZCBtcHRzY3NpaF9zaHV0ZG93bihzdHJ1Y3QgZGV2aWNlICopOworI2lmZGVmIENPTkZJR19QTQorZXh0ZXJuIGludCBtcHRzY3NpaF9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1MzIgc3RhdGUpOworZXh0ZXJuIGludCBtcHRzY3NpaF9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpOworI2VuZGlmCitleHRlcm4gaW50IG1wdHNjc2loX3Byb2NfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0LCBjaGFyICpidWZmZXIsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBpbnQgZnVuYyk7CitleHRlcm4gY29uc3QgY2hhciAqIG1wdHNjc2loX2luZm8oc3RydWN0IFNjc2lfSG9zdCAqU0Nob3N0KTsKK2V4dGVybiBpbnQgbXB0c2NzaWhfcWNtZChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCwgdm9pZCAoKmRvbmUpKHN0cnVjdCBzY3NpX2NtbmQgKikpOworZXh0ZXJuIGludCBtcHRzY3NpaF9zbGF2ZV9hbGxvYyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRldmljZSk7CitleHRlcm4gdm9pZCBtcHRzY3NpaF9zbGF2ZV9kZXN0cm95KHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKTsKK2V4dGVybiBpbnQgbXB0c2NzaWhfc2xhdmVfY29uZmlndXJlKHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKTsKK2V4dGVybiBpbnQgbXB0c2NzaWhfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqIFNDcG50KTsKK2V4dGVybiBpbnQgbXB0c2NzaWhfZGV2X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKiBTQ3BudCk7CitleHRlcm4gaW50IG1wdHNjc2loX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogU0NwbnQpOworZXh0ZXJuIGludCBtcHRzY3NpaF9ob3N0X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KTsKK2V4dGVybiBpbnQgbXB0c2NzaWhfYmlvc19wYXJhbShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKiBzZGV2LCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBjYXBhY2l0eSwgaW50IGdlb21bXSk7CitleHRlcm4gaW50IG1wdHNjc2loX2lvX2RvbmUoTVBUX0FEQVBURVIgKmlvYywgTVBUX0ZSQU1FX0hEUiAqbWYsIE1QVF9GUkFNRV9IRFIgKnIpOworZXh0ZXJuIGludCBtcHRzY3NpaF90YXNrbWdtdF9jb21wbGV0ZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7CitleHRlcm4gaW50IG1wdHNjc2loX3NjYW5kdl9jb21wbGV0ZShNUFRfQURBUFRFUiAqaW9jLCBNUFRfRlJBTUVfSERSICptZiwgTVBUX0ZSQU1FX0hEUiAqcik7CitleHRlcm4gaW50IG1wdHNjc2loX2V2ZW50X3Byb2Nlc3MoTVBUX0FEQVBURVIgKmlvYywgRXZlbnROb3RpZmljYXRpb25SZXBseV90ICpwRXZSZXBseSk7CitleHRlcm4gaW50IG1wdHNjc2loX2lvY19yZXNldChNUFRfQURBUFRFUiAqaW9jLCBpbnQgcG9zdF9yZXNldCk7CitleHRlcm4gc3NpemVfdCBtcHRzY3NpaF9zdG9yZV9xdWV1ZV9kZXB0aChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKK2V4dGVybiB2b2lkIG1wdHNjc2loX3RpbWVyX2V4cGlyZWQodW5zaWduZWQgbG9uZyBkYXRhKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmOWE2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jCkBAIC0wLDAgKzEsNDg2IEBACisvKgorICogIGxpbnV4L2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMKKyAqICAgICAgRm9yIHVzZSB3aXRoIExTSSBMb2dpYyBQQ0kgY2hpcC9hZGFwdGVyKHMpCisgKiAgICAgIHJ1bm5pbmcgTFNJIExvZ2ljIEZ1c2lvbiBNUFQgKE1lc3NhZ2UgUGFzc2luZyBUZWNobm9sb2d5KSBmaXJtd2FyZS4KKyAqCisgKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDUgTFNJIExvZ2ljIENvcnBvcmF0aW9uCisgKiAgKG1haWx0bzptcHRfbGludXhfZGV2ZWxvcGVyQGxzaWwuY29tKQorICoKKyAqLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIE5PIFdBUlJBTlRZCisgICAgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SCisgICAgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQKKyAgICBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwKKyAgICBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKworICAgIERJU0NMQUlNRVIgT0YgTElBQklMSVRZCisgICAgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkKKyAgICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAgICBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORAorICAgIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICAgIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAgICBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQKKyAgICBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorKi8KKy8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KKworI2luY2x1ZGUgImxpbnV4X2NvbXBhdC5oIgkvKiBsaW51eC0yLjYgdHdlYWtzICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgva2Rldl90Lmg+CisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4JLyogZm9yIG1kZWxheSAqLworI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgkvKiBuZWVkZWQgZm9yIGluX2ludGVycnVwdCgpIHByb3RvICovCisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CS8qIG5vdGlmaWVyIGNvZGUgKi8KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCisjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2NtbmQuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfZGV2aWNlLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2hvc3QuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfdGNxLmg+CisKKyNpbmNsdWRlICJtcHRiYXNlLmgiCisjaW5jbHVkZSAibXB0c2NzaWguaCIKKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworI2RlZmluZSBteV9OQU1FCQkiRnVzaW9uIE1QVCBTUEkgSG9zdCBkcml2ZXIiCisjZGVmaW5lIG15X1ZFUlNJT04JTVBUX0xJTlVYX1ZFUlNJT05fQ09NTU9OCisjZGVmaW5lIE1ZTkFNCQkibXB0c3BpIgorCitNT0RVTEVfQVVUSE9SKE1PRFVMRUFVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04obXlfTkFNRSk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKKy8qIENvbW1hbmQgbGluZSBhcmdzICovCisjaWZkZWYgTVBUU0NTSUhfRU5BQkxFX0RPTUFJTl9WQUxJREFUSU9OCitzdGF0aWMgaW50IG1wdF9kdiA9IE1QVFNDU0lIX0RPTUFJTl9WQUxJREFUSU9OOworbW9kdWxlX3BhcmFtKG1wdF9kdiwgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MobXB0X2R2LCAiIERWIEFsZ29yaXRobTogZW5oYW5jZWQ9MSwgYmFzaWM9MCAoZGVmYXVsdD1NUFRTQ1NJSF9ET01BSU5fVkFMSURBVElPTj0xKSIpOworCitzdGF0aWMgaW50IG1wdF93aWR0aCA9IE1QVFNDU0lIX01BWF9XSURUSDsKK21vZHVsZV9wYXJhbShtcHRfd2lkdGgsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKG1wdF93aWR0aCwgIiBNYXggQnVzIFdpZHRoOiB3aWRlPTEsIG5hcnJvdz0wIChkZWZhdWx0PU1QVFNDU0lIX01BWF9XSURUSD0xKSIpOworCitzdGF0aWMgdXNob3J0IG1wdF9mYWN0b3IgPSBNUFRTQ1NJSF9NSU5fU1lOQzsKK21vZHVsZV9wYXJhbShtcHRfZmFjdG9yLCB1c2hvcnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhtcHRfZmFjdG9yLCAiIE1pbiBTeW5jIEZhY3RvciAoZGVmYXVsdD1NUFRTQ1NJSF9NSU5fU1lOQz0weDA4KSIpOworI2VuZGlmCisKK3N0YXRpYyBpbnQgbXB0X3NhZl90ZSA9IE1QVFNDU0lIX1NBRl9URTsKK21vZHVsZV9wYXJhbShtcHRfc2FmX3RlLCBpbnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhtcHRfc2FmX3RlLCAiIEZvcmNlIGVuYWJsaW5nIFNFUCBQcm9jZXNzb3I6IGVuYWJsZT0xICAoZGVmYXVsdD1NUFRTQ1NJSF9TQUZfVEU9MCkiKTsKKworc3RhdGljIGludCBtcHRfcHFfZmlsdGVyID0gMDsKK21vZHVsZV9wYXJhbShtcHRfcHFfZmlsdGVyLCBpbnQsIDApOworTU9EVUxFX1BBUk1fREVTQyhtcHRfcHFfZmlsdGVyLCAiIEVuYWJsZSBwZXJpcGhlcmFsIHF1YWxpZmllciBmaWx0ZXI6IGVuYWJsZT0xICAoZGVmYXVsdD0wKSIpOworCitzdGF0aWMgaW50CW1wdHNwaURvbmVDdHggPSAtMTsKK3N0YXRpYyBpbnQJbXB0c3BpVGFza0N0eCA9IC0xOworc3RhdGljIGludAltcHRzcGlJbnRlcm5hbEN0eCA9IC0xOyAvKiBVc2VkIG9ubHkgZm9yIGludGVybmFsIGNvbW1hbmRzICovCisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBtcHRzcGlfcXVldWVfZGVwdGhfYXR0ciA9IHsKKwkuYXR0ciA9IHsKKwkJLm5hbWUgPSAJInF1ZXVlX2RlcHRoIiwKKwkJLm1vZGUgPQkJU19JV1VTUiwKKwl9LAorCS5zdG9yZSA9IG1wdHNjc2loX3N0b3JlX3F1ZXVlX2RlcHRoLAorfTsKKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICptcHRzcGlfZGV2X2F0dHJzW10gPSB7CisJJm1wdHNwaV9xdWV1ZV9kZXB0aF9hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBtcHRzcGlfZHJpdmVyX3RlbXBsYXRlID0geworCS5wcm9jX25hbWUJCQk9ICJtcHRzcGkiLAorCS5wcm9jX2luZm8JCQk9IG1wdHNjc2loX3Byb2NfaW5mbywKKwkubmFtZQkJCQk9ICJNUFQgU1BJIEhvc3QiLAorCS5pbmZvCQkJCT0gbXB0c2NzaWhfaW5mbywKKwkucXVldWVjb21tYW5kCQkJPSBtcHRzY3NpaF9xY21kLAorCS5zbGF2ZV9hbGxvYwkJCT0gbXB0c2NzaWhfc2xhdmVfYWxsb2MsCisJLnNsYXZlX2NvbmZpZ3VyZQkJPSBtcHRzY3NpaF9zbGF2ZV9jb25maWd1cmUsCisJLnNsYXZlX2Rlc3Ryb3kJCQk9IG1wdHNjc2loX3NsYXZlX2Rlc3Ryb3ksCisJLmVoX2Fib3J0X2hhbmRsZXIJCT0gbXB0c2NzaWhfYWJvcnQsCisJLmVoX2RldmljZV9yZXNldF9oYW5kbGVyCT0gbXB0c2NzaWhfZGV2X3Jlc2V0LAorCS5laF9idXNfcmVzZXRfaGFuZGxlcgkJPSBtcHRzY3NpaF9idXNfcmVzZXQsCisJLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgkJPSBtcHRzY3NpaF9ob3N0X3Jlc2V0LAorCS5iaW9zX3BhcmFtCQkJPSBtcHRzY3NpaF9iaW9zX3BhcmFtLAorCS5jYW5fcXVldWUJCQk9IE1QVF9TQ1NJX0NBTl9RVUVVRSwKKwkudGhpc19pZAkJCT0gLTEsCisJLnNnX3RhYmxlc2l6ZQkJCT0gTVBUX1NDU0lfU0dfREVQVEgsCisJLm1heF9zZWN0b3JzCQkJPSA4MTkyLAorCS5jbWRfcGVyX2x1bgkJCT0gNywKKwkudXNlX2NsdXN0ZXJpbmcJCQk9IEVOQUJMRV9DTFVTVEVSSU5HLAorCS5zZGV2X2F0dHJzCQkJPSBtcHRzcGlfZGV2X2F0dHJzLAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU3VwcG9ydGVkIGhhcmR3YXJlCisgKi8KKworc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIG1wdHNwaV9wY2lfdGFibGVbXSA9IHsKKwl7IFBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLCBQQ0lfREVWSUNFX0lEX0xTSV81M0MxMDMwLAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCisJeyBQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywgUENJX0RFVklDRV9JRF9MU0lfMTAzMF81M0MxMDM1LAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lEIH0sCisJezB9CS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG1wdHNwaV9wY2lfdGFibGUpOworCisvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCisvKj0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPSovCisvKgorICoJbXB0c3BpX3Byb2JlIC0gSW5zdGFsbHMgc2NzaSBkZXZpY2VzIHBlciBidXMuCisgKglAcGRldjogUG9pbnRlciB0byBwY2lfZGV2IHN0cnVjdHVyZQorICoKKyAqCVJldHVybnMgMCBmb3Igc3VjY2Vzcywgbm9uLXplcm8gZm9yIGZhaWx1cmUuCisgKgorICovCitzdGF0aWMgaW50CittcHRzcGlfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgU2NzaV9Ib3N0CSpzaDsKKwlNUFRfU0NTSV9IT1NUCQkqaGQ7CisJTVBUX0FEQVBURVIgCQkqaW9jOworCXVuc2lnbmVkIGxvbmcJCSBmbGFnczsKKwlpbnQJCQkgc3osIGlpOworCWludAkJCSBudW1TR0UgPSAwOworCWludAkJCSBzY2FsZTsKKwlpbnQJCQkgaW9jX2NhcDsKKwl1OAkJCSptZW07CisJaW50CQkJZXJyb3I9MDsKKwlpbnQJCQlyOworCQorCWlmICgociA9IG1wdF9hdHRhY2gocGRldixpZCkpICE9IDApCisJCXJldHVybiByOworCQorCWlvYyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlpb2MtPkRvbmVDdHggPSBtcHRzcGlEb25lQ3R4OworCWlvYy0+VGFza0N0eCA9IG1wdHNwaVRhc2tDdHg7CisJaW9jLT5JbnRlcm5hbEN0eCA9IG1wdHNwaUludGVybmFsQ3R4OworCQorCS8qICBBZGRlZCBzYW5pdHkgY2hlY2sgb24gcmVhZGluZXNzIG9mIHRoZSBNUFQgYWRhcHRlci4KKwkgKi8KKwlpZiAoaW9jLT5sYXN0X3N0YXRlICE9IE1QSV9JT0NfU1RBVEVfT1BFUkFUSU9OQUwpIHsKKwkJcHJpbnRrKE1ZSU9DX3NfV0FSTl9GTVQKKwkJICAiU2tpcHBpbmcgYmVjYXVzZSBpdCdzIG5vdCBvcGVyYXRpb25hbCFcbiIsCisJCSAgaW9jLT5uYW1lKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaWYgKCFpb2MtPmFjdGl2ZSkgeworCQlwcmludGsoTVlJT0Nfc19XQVJOX0ZNVCAiU2tpcHBpbmcgYmVjYXVzZSBpdCdzIGRpc2FibGVkIVxuIiwKKwkJICBpb2MtPm5hbWUpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvKiAgU2FuaXR5IGNoZWNrIC0gZW5zdXJlIGF0IGxlYXN0IDEgcG9ydCBpcyBJTklUSUFUT1IgY2FwYWJsZQorCSAqLworCWlvY19jYXAgPSAwOworCWZvciAoaWk9MDsgaWkgPCBpb2MtPmZhY3RzLk51bWJlck9mUG9ydHM7IGlpKyspIHsKKwkJaWYgKGlvYy0+cGZhY3RzW2lpXS5Qcm90b2NvbEZsYWdzICYKKwkJICAgIE1QSV9QT1JURkFDVFNfUFJPVE9DT0xfSU5JVElBVE9SKQorCQkJaW9jX2NhcCArKzsKKwl9CisKKwlpZiAoIWlvY19jYXApIHsKKwkJcHJpbnRrKE1ZSU9DX3NfV0FSTl9GTVQKKwkJCSJTa2lwcGluZyBpb2M9JXAgYmVjYXVzZSBTQ1NJIEluaXRpYXRvciBtb2RlIGlzIE5PVCBlbmFibGVkIVxuIiwKKwkJCWlvYy0+bmFtZSwgaW9jKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJc2ggPSBzY3NpX2hvc3RfYWxsb2MoJm1wdHNwaV9kcml2ZXJfdGVtcGxhdGUsIHNpemVvZihNUFRfU0NTSV9IT1NUKSk7CisKKwlpZiAoIXNoKSB7CisJCXByaW50ayhNWUlPQ19zX1dBUk5fRk1UCisJCQkiVW5hYmxlIHRvIHJlZ2lzdGVyIGNvbnRyb2xsZXIgd2l0aCBTQ1NJIHN1YnN5c3RlbVxuIiwKKwkJCWlvYy0+bmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaW9jLT5GcmVlUWxvY2ssIGZsYWdzKTsKKworCS8qIEF0dGFjaCB0aGUgU0NTSSBIb3N0IHRvIHRoZSBJT0Mgc3RydWN0dXJlCisJICovCisJaW9jLT5zaCA9IHNoOworCisJc2gtPmlvX3BvcnQgPSAwOworCXNoLT5uX2lvX3BvcnQgPSAwOworCXNoLT5pcnEgPSAwOworCisJLyogc2V0IDE2IGJ5dGUgY2RiJ3MgKi8KKwlzaC0+bWF4X2NtZF9sZW4gPSAxNjsKKworCS8qIFlpa2VzISAgVGhpcyBpcyBpbXBvcnRhbnQhCisJICogT3RoZXJ3aXNlLCBieSBkZWZhdWx0LCBsaW51eAorCSAqIG9ubHkgc2NhbnMgdGFyZ2V0IElEcyAwLTchCisJICogcGZhY3RzTi0+TWF4RGV2aWNlcyB1bnJlbGlhYmxlCisJICogKG5vdCBzdXBwb3J0ZWQgaW4gZWFybHkKKwkgKgl2ZXJzaW9ucyBvZiB0aGUgRlcpLgorCSAqIG1heF9pZCA9IDEgKyBhY3R1YWwgbWF4IGlkLAorCSAqIG1heF9sdW4gPSAxICsgYWN0dWFsIGxhc3QgbHVuLAorCSAqCXNlZSBob3N0cy5oIDpvKAorCSAqLworCXNoLT5tYXhfaWQgPSBNUFRfTUFYX1NDU0lfREVWSUNFUzsKKworCXNoLT5tYXhfbHVuID0gTVBUX0xBU1RfTFVOICsgMTsKKwlzaC0+bWF4X2NoYW5uZWwgPSAwOworCXNoLT50aGlzX2lkID0gaW9jLT5wZmFjdHNbMF0uUG9ydFNDU0lJRDsKKworCS8qIFJlcXVpcmVkIGVudHJ5LgorCSAqLworCXNoLT51bmlxdWVfaWQgPSBpb2MtPmlkOworCisJLyogVmVyaWZ5IHRoYXQgd2Ugd29uJ3QgZXhjZWVkIHRoZSBtYXhpbXVtCisJICogbnVtYmVyIG9mIGNoYWluIGJ1ZmZlcnMKKwkgKiBXZSBjYW4gb3B0aW1pemU6ICBaWiA9IHJlcV9zei9zaXplb2YoU0dFKQorCSAqIEZvciAzMmJpdCBTR0UnczoKKwkgKiAgbnVtU0dFID0gMSArIChaWi0xKSoobWF4Q2hhaW4gLTEpICsgWloKKwkgKiAgICAgICAgICAgICAgICsgKHJlcV9zeiAtIDY0KS9zaXplb2YoU0dFKQorCSAqIEEgc2xpZ2h0bHkgZGlmZmVyZW50IGFsZ29yaXRobSBpcyByZXF1aXJlZCBmb3IKKwkgKiA2NGJpdCBTR0VzLgorCSAqLworCXNjYWxlID0gaW9jLT5yZXFfc3ovKHNpemVvZihkbWFfYWRkcl90KSArIHNpemVvZih1MzIpKTsKKwlpZiAoc2l6ZW9mKGRtYV9hZGRyX3QpID09IHNpemVvZih1NjQpKSB7CisJCW51bVNHRSA9IChzY2FsZSAtIDEpICoKKwkJICAoaW9jLT5mYWN0cy5NYXhDaGFpbkRlcHRoLTEpICsgc2NhbGUgKworCQkgIChpb2MtPnJlcV9zeiAtIDYwKSAvIChzaXplb2YoZG1hX2FkZHJfdCkgKworCQkgIHNpemVvZih1MzIpKTsKKwl9IGVsc2UgeworCQludW1TR0UgPSAxICsgKHNjYWxlIC0gMSkgKgorCQkgIChpb2MtPmZhY3RzLk1heENoYWluRGVwdGgtMSkgKyBzY2FsZSArCisJCSAgKGlvYy0+cmVxX3N6IC0gNjQpIC8gKHNpemVvZihkbWFfYWRkcl90KSArCisJCSAgc2l6ZW9mKHUzMikpOworCX0KKworCWlmIChudW1TR0UgPCBzaC0+c2dfdGFibGVzaXplKSB7CisJCS8qIFJlc2V0IHRoaXMgdmFsdWUgKi8KKwkJZHByaW50aygoTVlJT0Nfc19JTkZPX0ZNVAorCQkgICJSZXNldHRpbmcgc2dfdGFibGVzaXplIHRvICVkIGZyb20gJWRcbiIsCisJCSAgaW9jLT5uYW1lLCBudW1TR0UsIHNoLT5zZ190YWJsZXNpemUpKTsKKwkJc2gtPnNnX3RhYmxlc2l6ZSA9IG51bVNHRTsKKwl9CisKKwkvKiBTZXQgdGhlIHBjaSBkZXZpY2UgcG9pbnRlciBpbiBTY3NpX0hvc3Qgc3RydWN0dXJlLgorCSAqLworCXNjc2lfc2V0X2RldmljZShzaCwgJmlvYy0+cGNpZGV2LT5kZXYpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9jLT5GcmVlUWxvY2ssIGZsYWdzKTsKKworCWhkID0gKE1QVF9TQ1NJX0hPU1QgKikgc2gtPmhvc3RkYXRhOworCWhkLT5pb2MgPSBpb2M7CisKKwkvKiBTQ1NJIG5lZWRzIHNjc2lfY21uZCBsb29rdXAgdGFibGUhCisJICogKHdpdGggc2l6ZSBlcXVhbCB0byByZXFfZGVwdGgqUHRyU3ohKQorCSAqLworCXN6ID0gaW9jLT5yZXFfZGVwdGggKiBzaXplb2Yodm9pZCAqKTsKKwltZW0gPSBrbWFsbG9jKHN6LCBHRlBfQVRPTUlDKTsKKwlpZiAobWVtID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtRU5PTUVNOworCQlnb3RvIG1wdHNwaV9wcm9iZV9mYWlsZWQ7CisJfQorCisJbWVtc2V0KG1lbSwgMCwgc3opOworCWhkLT5TY3NpTG9va3VwID0gKHN0cnVjdCBzY3NpX2NtbmQgKiopIG1lbTsKKworCWRwcmludGsoKE1ZSU9DX3NfSU5GT19GTVQgIlNjc2lMb29rdXAgQCAlcCwgc3o9JWRcbiIsCisJCSBpb2MtPm5hbWUsIGhkLT5TY3NpTG9va3VwLCBzeikpOworCisJLyogQWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgZGV2aWNlIHN0cnVjdHVyZXMuCisJICogQSBub24tTnVsbCBwb2ludGVyIGF0IGFuIG9mZnNldAorCSAqIGluZGljYXRlcyBhIGRldmljZSBleGlzdHMuCisJICogbWF4X2lkID0gMSArIG1heGltdW0gaWQgKGhvc3RzLmgpCisJICovCisJc3ogPSBzaC0+bWF4X2lkICogc2l6ZW9mKHZvaWQgKik7CisJbWVtID0ga21hbGxvYyhzeiwgR0ZQX0FUT01JQyk7CisJaWYgKG1lbSA9PSBOVUxMKSB7CisJCWVycm9yID0gLUVOT01FTTsKKwkJZ290byBtcHRzcGlfcHJvYmVfZmFpbGVkOworCX0KKworCW1lbXNldChtZW0sIDAsIHN6KTsKKwloZC0+VGFyZ2V0cyA9IChWaXJ0RGV2aWNlICoqKSBtZW07CisKKwlkcHJpbnRrKChLRVJOX0lORk8KKwkgICIgIFRhcmdldHMgQCAlcCwgc3o9JWRcbiIsIGhkLT5UYXJnZXRzLCBzeikpOworCisJLyogQ2xlYXIgdGhlIFRNIGZsYWdzCisJICovCisJaGQtPnRtUGVuZGluZyA9IDA7CisJaGQtPnRtU3RhdGUgPSBUTV9TVEFURV9OT05FOworCWhkLT5yZXNldFBlbmRpbmcgPSAwOworCWhkLT5hYm9ydFNDcG50ID0gTlVMTDsKKworCS8qIENsZWFyIHRoZSBwb2ludGVyIHVzZWQgdG8gc3RvcmUKKwkgKiBzaW5nbGUtdGhyZWFkZWQgY29tbWFuZHMsIGkuZS4sIHRob3NlCisJICogaXNzdWVkIGR1cmluZyBhIGJ1cyBzY2FuLCBkdiBhbmQKKwkgKiBjb25maWd1cmF0aW9uIHBhZ2VzLgorCSAqLworCWhkLT5jbWRQdHIgPSBOVUxMOworCisJLyogSW5pdGlhbGl6ZSB0aGlzIFNDU0kgSG9zdHMnIHRpbWVycworCSAqIFRvIHVzZSwgc2V0IHRoZSB0aW1lciBleHBpcmVzIGZpZWxkCisJICogYW5kIGFkZF90aW1lcgorCSAqLworCWluaXRfdGltZXIoJmhkLT50aW1lcik7CisJaGQtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZykgaGQ7CisJaGQtPnRpbWVyLmZ1bmN0aW9uID0gbXB0c2NzaWhfdGltZXJfZXhwaXJlZDsKKworCWlvYy0+c3BpX2RhdGEuU2FmX1RlID0gbXB0X3NhZl90ZTsKKwloZC0+bXB0X3BxX2ZpbHRlciA9IG1wdF9wcV9maWx0ZXI7CisKKyNpZmRlZiBNUFRTQ1NJSF9FTkFCTEVfRE9NQUlOX1ZBTElEQVRJT04KKwlpZiAoaW9jLT5zcGlfZGF0YS5tYXhCdXNXaWR0aCA+IG1wdF93aWR0aCkKKwkJaW9jLT5zcGlfZGF0YS5tYXhCdXNXaWR0aCA9IG1wdF93aWR0aDsKKwlpZiAoaW9jLT5zcGlfZGF0YS5taW5TeW5jRmFjdG9yIDwgbXB0X2ZhY3RvcikKKwkJaW9jLT5zcGlfZGF0YS5taW5TeW5jRmFjdG9yID0gbXB0X2ZhY3RvcjsKKwlpZiAoaW9jLT5zcGlfZGF0YS5taW5TeW5jRmFjdG9yID09IE1QVF9BU1lOQykgeworCQlpb2MtPnNwaV9kYXRhLm1heFN5bmNPZmZzZXQgPSAwOworCX0KKwlpb2MtPnNwaV9kYXRhLm1wdF9kdiA9IG1wdF9kdjsKKwloZC0+bmVnb052cmFtID0gMDsKKworCWRkdnByaW50aygoTVlJT0Nfc19JTkZPX0ZNVAorCQkiZHYgJXggd2lkdGggJXggZmFjdG9yICV4IHNhZl90ZSAleCBtcHRfcHFfZmlsdGVyICV4XG4iLAorCQlpb2MtPm5hbWUsCisJCW1wdF9kdiwKKwkJbXB0X3dpZHRoLAorCQltcHRfZmFjdG9yLAorCQltcHRfc2FmX3RlLAorCQltcHRfcHFfZmlsdGVyKSk7CisjZWxzZQorCWhkLT5uZWdvTnZyYW0gPSBNUFRfU0NTSUNGR19VU0VfTlZSQU07CisJZGR2cHJpbnRrKChNWUlPQ19zX0lORk9fRk1UCisJCSJzYWZfdGUgJXggbXB0X3BxX2ZpbHRlciAleFxuIiwKKwkJaW9jLT5uYW1lLAorCQltcHRfc2FmX3RlLAorCQltcHRfcHFfZmlsdGVyKSk7CisjZW5kaWYKKworCWlvYy0+c3BpX2RhdGEuZm9yY2VEdiA9IDA7CisJaW9jLT5zcGlfZGF0YS5ub1FhcyA9IDA7CisKKwlmb3IgKGlpPTA7IGlpIDwgTVBUX01BWF9TQ1NJX0RFVklDRVM7IGlpKyspCisJCWlvYy0+c3BpX2RhdGEuZHZTdGF0dXNbaWldID0KKwkJICBNUFRfU0NTSUNGR19ORUdPVElBVEU7CisKKwlmb3IgKGlpPTA7IGlpIDwgTVBUX01BWF9TQ1NJX0RFVklDRVM7IGlpKyspCisJCWlvYy0+c3BpX2RhdGEuZHZTdGF0dXNbaWldIHw9CisJCSAgTVBUX1NDU0lDRkdfRFZfTk9UX0RPTkU7CisKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZoZC0+c2NhbmR2X3dhaXRxKTsKKwloZC0+c2NhbmR2X3dhaXRfZG9uZSA9IDA7CisJaGQtPmxhc3RfcXVldWVfZnVsbCA9IDA7CisKKwllcnJvciA9IHNjc2lfYWRkX2hvc3QgKHNoLCAmaW9jLT5wY2lkZXYtPmRldik7CisJaWYoZXJyb3IpIHsKKwkJZHByaW50aygoS0VSTl9FUlIgTVlOQU0KKwkJICAic2NzaV9hZGRfaG9zdCBmYWlsZWRcbiIpKTsKKwkJZ290byBtcHRzcGlfcHJvYmVfZmFpbGVkOworCX0KKworCXNjc2lfc2Nhbl9ob3N0KHNoKTsKKwlyZXR1cm4gMDsKKworbXB0c3BpX3Byb2JlX2ZhaWxlZDoKKworCW1wdHNjc2loX3JlbW92ZShwZGV2KTsKKwlyZXR1cm4gZXJyb3I7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtcHRzcGlfZHJpdmVyID0geworCS5uYW1lCQk9ICJtcHRzcGkiLAorCS5pZF90YWJsZQk9IG1wdHNwaV9wY2lfdGFibGUsCisJLnByb2JlCQk9IG1wdHNwaV9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKG1wdHNjc2loX3JlbW92ZSksCisJLmRyaXZlciAgICAgICAgID0geworCQkuc2h1dGRvd24gPSBtcHRzY3NpaF9zaHV0ZG93biwKKyAgICAgICAgfSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZAk9IG1wdHNjc2loX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBtcHRzY3NpaF9yZXN1bWUsCisjZW5kaWYKK307CisKKy8qPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09Ki8KKy8qKgorICoJbXB0c3BpX2luaXQgLSBSZWdpc3RlciBNUFQgYWRhcHRlcihzKSBhcyBTQ1NJIGhvc3Qocykgd2l0aAorICoJbGludXggc2NzaSBtaWQtbGF5ZXIuCisgKgorICoJUmV0dXJucyAwIGZvciBzdWNjZXNzLCBub24temVybyBmb3IgZmFpbHVyZS4KKyAqLworc3RhdGljIGludCBfX2luaXQKK21wdHNwaV9pbml0KHZvaWQpCit7CisKKwlzaG93X21wdG1vZF92ZXIobXlfTkFNRSwgbXlfVkVSU0lPTik7CisKKwltcHRzcGlEb25lQ3R4ID0gbXB0X3JlZ2lzdGVyKG1wdHNjc2loX2lvX2RvbmUsIE1QVFNQSV9EUklWRVIpOworCW1wdHNwaVRhc2tDdHggPSBtcHRfcmVnaXN0ZXIobXB0c2NzaWhfdGFza21nbXRfY29tcGxldGUsIE1QVFNQSV9EUklWRVIpOworCW1wdHNwaUludGVybmFsQ3R4ID0gbXB0X3JlZ2lzdGVyKG1wdHNjc2loX3NjYW5kdl9jb21wbGV0ZSwgTVBUU1BJX0RSSVZFUik7CisKKwlpZiAobXB0X2V2ZW50X3JlZ2lzdGVyKG1wdHNwaURvbmVDdHgsIG1wdHNjc2loX2V2ZW50X3Byb2Nlc3MpID09IDApIHsKKwkJZGV2dHByaW50aygoS0VSTl9JTkZPIE1ZTkFNCisJCSAgIjogUmVnaXN0ZXJlZCBmb3IgSU9DIGV2ZW50IG5vdGlmaWNhdGlvbnNcbiIpKTsKKwl9CisKKwlpZiAobXB0X3Jlc2V0X3JlZ2lzdGVyKG1wdHNwaURvbmVDdHgsIG1wdHNjc2loX2lvY19yZXNldCkgPT0gMCkgeworCQlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KKwkJICAiOiBSZWdpc3RlcmVkIGZvciBJT0MgcmVzZXQgbm90aWZpY2F0aW9uc1xuIikpOworCX0KKworCXJldHVybiBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZtcHRzcGlfZHJpdmVyKTsKK30KKworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0qLworLyoqCisgKgltcHRzcGlfZXhpdCAtIFVucmVnaXN0ZXJzIE1QVCBhZGFwdGVyKHMpCisgKgorICovCitzdGF0aWMgdm9pZCBfX2V4aXQKK21wdHNwaV9leGl0KHZvaWQpCit7CisJcGNpX3VucmVnaXN0ZXJfZHJpdmVyKCZtcHRzcGlfZHJpdmVyKTsKKwkKKwltcHRfcmVzZXRfZGVyZWdpc3RlcihtcHRzcGlEb25lQ3R4KTsKKwlkcHJpbnRrKChLRVJOX0lORk8gTVlOQU0KKwkgICI6IERlcmVnaXN0ZXJlZCBmb3IgSU9DIHJlc2V0IG5vdGlmaWNhdGlvbnNcbiIpKTsKKworCW1wdF9ldmVudF9kZXJlZ2lzdGVyKG1wdHNwaURvbmVDdHgpOworCWRwcmludGsoKEtFUk5fSU5GTyBNWU5BTQorCSAgIjogRGVyZWdpc3RlcmVkIGZvciBJT0MgZXZlbnQgbm90aWZpY2F0aW9uc1xuIikpOworCisJbXB0X2RlcmVnaXN0ZXIobXB0c3BpSW50ZXJuYWxDdHgpOworCW1wdF9kZXJlZ2lzdGVyKG1wdHNwaVRhc2tDdHgpOworCW1wdF9kZXJlZ2lzdGVyKG1wdHNwaURvbmVDdHgpOworfQorCittb2R1bGVfaW5pdChtcHRzcGlfaW5pdCk7Cittb2R1bGVfZXhpdChtcHRzcGlfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19ibG9jay5jIGIvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fYmxvY2suYwppbmRleCA3Yjc0Yzg3Li40ODMwYjc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19ibG9jay5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9pMm8vaTJvX2Jsb2NrLmMKQEAgLTU3Myw2ICs1NzMsNyBAQAogc3RhdGljIHZvaWQgaTJvX2Jsb2NrX2V2ZW50KHN0cnVjdCBpMm9fZXZlbnQgKmV2dCkKIHsKIAlvc21faW5mbygiYmxvY2stb3NtOiBldmVudCByZWNlaXZlZFxuIik7CisJa2ZyZWUoZXZ0KTsKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL0tjb25maWcgYi9kcml2ZXJzL25ldC9pcmRhL0tjb25maWcKaW5kZXggMWM1NTNkNy4uY2E1OTE0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXJkYS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvS2NvbmZpZwpAQCAtMzg5LDcgKzM4OSw3IEBACiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBidWlsZCBzdXBwb3J0IGZvciB0aGUgVklBIFZUODIzMQogCSAgYW5kIFZJQSBWVDEyMTEgSXJEQSBjb250cm9sbGVycywgZm91bmQgb24gdGhlIG1vdGhlcmJvYXJkcyB1c2luZwotCSAgdGhvc2UgdGhvc2UgVklBIGNoaXBzZXRzLiBUbyB1c2UgdGhpcyBjb250cm9sbGVyLCB5b3Ugd2lsbCBuZWVkCisJICB0aG9zZSBWSUEgY2hpcHNldHMuIFRvIHVzZSB0aGlzIGNvbnRyb2xsZXIsIHlvdSB3aWxsIG5lZWQKIAkgIHRvIHBsdWcgYSBzcGVjaWZpYyA1IHBpbnMgRklSIElyREEgZG9uZ2xlIGluIHRoZSBzcGVjaWZpYwogCSAgbW90aGVyYm9hcmQgY29ubmVjdG9yLiBUaGUgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIFNJUiwgTUlSCiAJICBhbmQgRklSICg0TWJwcykgc3BlZWRzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXNlcmllc192ZXRoLmMgYi9kcml2ZXJzL25ldC9pc2VyaWVzX3ZldGguYwppbmRleCAxM2VkOGRjLi41NWFmMzJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pc2VyaWVzX3ZldGguYworKysgYi9kcml2ZXJzL25ldC9pc2VyaWVzX3ZldGguYwpAQCAtODAyLDEzICs4MDIsMTQgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5wZW5kaW5nX2dhdGUsIGZsYWdzKTsKIAorCWlmICghcG9ydC0+cGVuZGluZ19scG1hc2spIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+cGVuZGluZ19nYXRlLCBmbGFncyk7CisJCXJldHVybjsKKwl9CisKIAlwcmludGsoS0VSTl9XQVJOSU5HICIlczogVHggdGltZW91dCEgIFJlc2V0dGluZyBscCBjb25uZWN0aW9uczogJTA4eFxuIiwKIAkgICAgICAgZGV2LT5uYW1lLCBwb3J0LT5wZW5kaW5nX2xwbWFzayk7CiAKLQkvKiBJZiB3ZSd2ZSB0aW1lZCBvdXQgdGhlIHF1ZXVlIG11c3QgYmUgc3RvcHBlZCwgd2hpY2ggc2hvdWxkCi0JICogb25seSBldmVyIGhhcHBlbiB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBwYWNrZXQuICovCi0JV0FSTl9PTighIHBvcnQtPnBlbmRpbmdfbHBtYXNrKTsKLQogCWZvciAoaSA9IDA7IGkgPCBIVk1BWEFSQ0hJVEVDVEVETFBTOyBpKyspIHsKIAkJc3RydWN0IHZldGhfbHBhcl9jb25uZWN0aW9uICpjbnggPSB2ZXRoX2NueFtpXTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGNtY2lhLzNjNTc0X2NzLmMgYi9kcml2ZXJzL25ldC9wY21jaWEvM2M1NzRfY3MuYwppbmRleCA0MWU1MTcxLi5jNmU4YjI1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGNtY2lhLzNjNTc0X2NzLmMKKysrIGIvZHJpdmVycy9uZXQvcGNtY2lhLzNjNTc0X2NzLmMKQEAgLTEyNzQsNiArMTI3NCw5IEBACiAJCXNwaW5fbG9ja19pcnFzYXZlKCZscC0+d2luZG93X2xvY2ssIGZsYWdzKTsKIAkJdXBkYXRlX3N0YXRzKGRldik7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmxwLT53aW5kb3dfbG9jaywgZmxhZ3MpOworCisJCS8qIGZvcmNlIGludGVycnVwdHMgb2ZmICovCisJCW91dHcoU2V0SW50ckVuYiB8IDB4MDAwMCwgaW9hZGRyICsgRUwzX0NNRCk7CiAJfQogCiAJbGluay0+b3Blbi0tOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L3I4MTY5LmMKaW5kZXggODgyYzU5Zi4uY2U0NDlmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9yODE2OS5jCkBAIC00MzUsNyArNDM1LDcgQEAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdGFzazsKIH07CiAKLU1PRFVMRV9BVVRIT1IoIlJlYWx0ZWsgYW5kIHRoZSBMaW51eCByODE2OSBjcmV3IDxuZXRkZXZAb3NzLnNnaS5jb20+Iik7CitNT0RVTEVfQVVUSE9SKCJSZWFsdGVrIGFuZCB0aGUgTGludXggcjgxNjkgY3JldyA8bmV0ZGV2QHZnZXIua2VybmVsLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiUmVhbFRlayBSVEwtODE2OSBHaWdhYml0IEV0aGVybmV0IGRyaXZlciIpOwogbW9kdWxlX3BhcmFtX2FycmF5KG1lZGlhLCBpbnQsICZudW1fbWVkaWEsIDApOwogTU9EVUxFX1BBUk1fREVTQyhtZWRpYSwgImZvcmNlIHBoeSBvcGVyYXRpb24uIERlcHJlY2F0ZWQgYnkgZXRodG9vbCAoOCkuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZzMuYyBiL2RyaXZlcnMvbmV0L3RnMy5jCmluZGV4IGZjOWI1Y2QuLmEwYjg4NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RnMy5jCisrKyBiL2RyaXZlcnMvbmV0L3RnMy5jCkBAIC03LDcgKzcsMTIgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBCcm9hZGNvbSBDb3Jwb3JhdGlvbi4KICAqCiAgKiBGaXJtd2FyZSBpczoKLSAqIAlDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMyBCcm9hZGNvbSBDb3Jwb3JhdGlvbi4KKyAqCURlcml2ZWQgZnJvbSBwcm9wcmlldGFyeSB1bnB1Ymxpc2hlZCBzb3VyY2UgY29kZSwKKyAqCUNvcHlyaWdodCAoQykgMjAwMC0yMDAzIEJyb2FkY29tIENvcnBvcmF0aW9uLgorICoKKyAqCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorICoJZGF0YSBpbiBoZXhhZGVjaW1hbCBvciBlcXVpdmFsZW50IGZvcm1hdCwgcHJvdmlkZWQgdGhpcyBjb3B5cmlnaHQKKyAqCW5vdGljZSBpcyBhY2NvbXBhbnlpbmcgaXQuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgpAQCAtNjEsOCArNjYsOCBAQAogCiAjZGVmaW5lIERSVl9NT0RVTEVfTkFNRQkJInRnMyIKICNkZWZpbmUgUEZYIERSVl9NT0RVTEVfTkFNRQkiOiAiCi0jZGVmaW5lIERSVl9NT0RVTEVfVkVSU0lPTgkiMy4yOSIKLSNkZWZpbmUgRFJWX01PRFVMRV9SRUxEQVRFCSJNYXkgMjMsIDIwMDUiCisjZGVmaW5lIERSVl9NT0RVTEVfVkVSU0lPTgkiMy4zMSIKKyNkZWZpbmUgRFJWX01PRFVMRV9SRUxEQVRFCSJKdW5lIDgsIDIwMDUiCiAKICNkZWZpbmUgVEczX0RFRl9NQUNfTU9ERQkwCiAjZGVmaW5lIFRHM19ERUZfUlhfTU9ERQkJMApAQCAtODU1NSw2ICs4NTYwLDE2IEBACiAKIAkJY2FzZSBOSUNfU1JBTV9EQVRBX0NGR19MRURfTU9ERV9NQUM6CiAJCQl0cC0+bGVkX2N0cmwgPSBMRURfQ1RSTF9NT0RFX01BQzsKKworCQkJLyogRGVmYXVsdCB0byBQSFlfMV9NT0RFIGlmIDAgKE1BQ19NT0RFKSBpcworCQkJICogcmVhZCBvbiBzb21lIG9sZGVyIDU3MDAvNTcwMSBib290Y29kZS4KKwkJCSAqLworCQkJaWYgKEdFVF9BU0lDX1JFVih0cC0+cGNpX2NoaXBfcmV2X2lkKSA9PQorCQkJICAgIEFTSUNfUkVWXzU3MDAgfHwKKwkJCSAgICBHRVRfQVNJQ19SRVYodHAtPnBjaV9jaGlwX3Jldl9pZCkgPT0KKwkJCSAgICBBU0lDX1JFVl81NzAxKQorCQkJCXRwLT5sZWRfY3RybCA9IExFRF9DVFJMX01PREVfUEhZXzE7CisKIAkJCWJyZWFrOwogCiAJCWNhc2UgU0hBU1RBX0VYVF9MRURfU0hBUkVEOgpAQCAtOTY4MCwxMCArOTY5NSwyNCBAQAogCX0KIAlpZiAoKHRwLT5kbWFfcndjdHJsICYgRE1BX1JXQ1RSTF9XUklURV9CTkRSWV9NQVNLKSAhPQogCSAgICBETUFfUldDVFJMX1dSSVRFX0JORFJZXzE2KSB7CisJCXN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBkbWFfd2FpdF9zdGF0ZV9jaGlwc2V0c1tdID0geworCQkJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQVBQTEUsCisJCQkJICAgICBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX1BDSTE1KSB9LAorCQkJeyB9LAorCQl9OworCiAJCS8qIERNQSB0ZXN0IHBhc3NlZCB3aXRob3V0IGFkanVzdGluZyBETUEgYm91bmRhcnksCi0JCSAqIGp1c3QgcmVzdG9yZSB0aGUgY2FsY3VsYXRlZCBETUEgYm91bmRhcnkKKwkJICogbm93IGxvb2sgZm9yIGNoaXBzZXRzIHRoYXQgYXJlIGtub3duIHRvIGV4cG9zZSB0aGUKKwkJICogRE1BIGJ1ZyB3aXRob3V0IGZhaWxpbmcgdGhlIHRlc3QuCiAJCSAqLwotCQl0cC0+ZG1hX3J3Y3RybCA9IHNhdmVkX2RtYV9yd2N0cmw7CisJCWlmIChwY2lfZGV2X3ByZXNlbnQoZG1hX3dhaXRfc3RhdGVfY2hpcHNldHMpKSB7CisJCQl0cC0+ZG1hX3J3Y3RybCAmPSB+RE1BX1JXQ1RSTF9XUklURV9CTkRSWV9NQVNLOworCQkJdHAtPmRtYV9yd2N0cmwgfD0gRE1BX1JXQ1RSTF9XUklURV9CTkRSWV8xNjsKKwkJfQorCQllbHNlCisJCQkvKiBTYWZlIHRvIHVzZSB0aGUgY2FsY3VsYXRlZCBETUEgYm91bmRhcnkuICovCisJCQl0cC0+ZG1hX3J3Y3RybCA9IHNhdmVkX2RtYV9yd2N0cmw7CisKIAkJdHczMihURzNQQ0lfRE1BX1JXX0NUUkwsIHRwLT5kbWFfcndjdHJsKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX2NvcmUuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX2NvcmUuYwppbmRleCA4MTMyZDk0Li4zMGFmMTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwY2lfaG90cGx1Z19jb3JlLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9jcGNpX2hvdHBsdWdfY29yZS5jCkBAIC0yMTcsNiArMjE3LDggQEAKIAlrZnJlZShzbG90LT5ob3RwbHVnX3Nsb3QtPmluZm8pOwogCWtmcmVlKHNsb3QtPmhvdHBsdWdfc2xvdC0+bmFtZSk7CiAJa2ZyZWUoc2xvdC0+aG90cGx1Z19zbG90KTsKKwlpZiAoc2xvdC0+ZGV2KQorCQlwY2lfZGV2X3B1dChzbG90LT5kZXYpOwogCWtmcmVlKHNsb3QpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL2NwY2lfaG90cGx1Z19wY2kuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX3BjaS5jCmluZGV4IGM4NzgwMjguLjIyNWI1ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX3BjaS5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BjaV9ob3RwbHVnX3BjaS5jCkBAIC0zMTUsOSArMzE1LDEyIEBACiAJCQkJICAgIFBDSV9ERVZGTihQQ0lfU0xPVChzbG90LT5kZXZmbiksIGkpKTsKIAkJaWYgKGRldikgewogCQkJcGNpX3JlbW92ZV9idXNfZGV2aWNlKGRldik7Ci0JCQlzbG90LT5kZXYgPSBOVUxMOworCQkJcGNpX2Rldl9wdXQoZGV2KTsKIAkJfQogCX0KKwlwY2lfZGV2X3B1dChzbG90LT5kZXYpOworCXNsb3QtPmRldiA9IE5VTEw7CisKIAlkYmcoIiVzIC0gZXhpdCIsIF9fRlVOQ1RJT05fXyk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMKaW5kZXggZmU5ODU1My4uZjMxNWRmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCisrKyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYwpAQCAtMzkzLDcgKzM5MywxMCBAQAogCWRydi0+ZHJpdmVyLmJ1cyA9ICZwY2lfYnVzX3R5cGU7CiAJZHJ2LT5kcml2ZXIucHJvYmUgPSBwY2lfZGV2aWNlX3Byb2JlOwogCWRydi0+ZHJpdmVyLnJlbW92ZSA9IHBjaV9kZXZpY2VfcmVtb3ZlOwotCWRydi0+ZHJpdmVyLnNodXRkb3duID0gcGNpX2RldmljZV9zaHV0ZG93biwKKwkvKiBGSVhNRSwgb25jZSBhbGwgb2YgdGhlIGV4aXN0aW5nIFBDSSBkcml2ZXJzIGhhdmUgYmVlbiBmaXhlZCB0byBzZXQKKwkgKiB0aGUgcGNpIHNodXRkb3duIGZ1bmN0aW9uLCB0aGlzIHRlc3QgY2FuIGdvIGF3YXkuICovCisJaWYgKCFkcnYtPmRyaXZlci5zaHV0ZG93bikKKwkJZHJ2LT5kcml2ZXIuc2h1dGRvd24gPSBwY2lfZGV2aWNlX3NodXRkb3duLAogCWRydi0+ZHJpdmVyLm93bmVyID0gZHJ2LT5vd25lcjsKIAlkcnYtPmRyaXZlci5rb2JqLmt0eXBlID0gJnBjaV9kcml2ZXJfa29ial90eXBlOwogCXBjaV9pbml0X2R5bmlkcygmZHJ2LT5keW5pZHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmlkcyBiL2RyaXZlcnMvcGNpL3BjaS5pZHMKaW5kZXggOTM0ODFiNC4uMWQyZWYxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLmlkcworKysgYi9kcml2ZXJzL3BjaS9wY2kuaWRzCkBAIC03MTczLDYgKzcxNzMsNyBAQAogCTA4MGYgIFNlbnRyeTUgRERSL1NEUiBSQU0gQ29udHJvbGxlcgogCTA4MTEgIFNlbnRyeTUgRXh0ZXJuYWwgSW50ZXJmYWNlIENvcmUKIAkwODE2ICBCQ00zMzAyIFNlbnRyeTUgTUlQUzMyIENQVQorCTE2MDAgIE5ldFh0cmVtZSBCQ001NzUyIEdpZ2FiaXQgRXRoZXJuZXQgUENJIEV4cHJlc3MKIAkxNjQ0ICBOZXRYdHJlbWUgQkNNNTcwMCBHaWdhYml0IEV0aGVybmV0CiAJCTEwMTQgMDI3NyAgQnJvYWRjb20gVmlnaWwgQjU3MDAgMTAwMEJhc2UtVAogCQkxMDI4IDAwZDEgIEJyb2FkY29tIEJDTTU3MDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Byb2JlLmMgYi9kcml2ZXJzL3BjaS9wcm9iZS5jCmluZGV4IGI3YWU4NzguLmZkNDhiMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGIvZHJpdmVycy9wY2kvcHJvYmUuYwpAQCAtMTI1LDcgKzEyNSw3IEBACiAvKgogICogRmluZCB0aGUgZXh0ZW50IG9mIGEgUENJIGRlY29kZS4uCiAgKi8KLXN0YXRpYyB1MzIgcGNpX3NpemUodTMyIGJhc2UsIHUzMiBtYXhiYXNlLCB1bnNpZ25lZCBsb25nIG1hc2spCitzdGF0aWMgdTMyIHBjaV9zaXplKHUzMiBiYXNlLCB1MzIgbWF4YmFzZSwgdTMyIG1hc2spCiB7CiAJdTMyIHNpemUgPSBtYXNrICYgbWF4YmFzZTsJLyogRmluZCB0aGUgc2lnbmlmaWNhbnQgYml0cyAqLwogCWlmICghc2l6ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKaW5kZXggNjM3ZTk0OS4uOTY4MDMzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcXVpcmtzLmMKKysrIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKQEAgLTQ1NiwyMSArNDU2LDE2IEBACiB9IAogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9BTUQsIFBDSV9ERVZJQ0VfSURfQU1EXzgxMzFfQVBJQywgICAgICAgICBxdWlya19hbWRfODEzMV9pb2FwaWMgKTsgCiAKK3N0YXRpYyB2b2lkIF9faW5pdCBxdWlya19zdndfbXNpKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJcGNpX21zaV9xdWlyayA9IDE7CisJcHJpbnRrKEtFUk5fV0FSTklORyAiUENJOiBNU0kgcXVpcmsgZGV0ZWN0ZWQuIHBjaV9tc2lfcXVpcmsgc2V0LlxuIik7Cit9CitERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX1NFUlZFUldPUktTLCBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX0dDTkJfTEUsIHF1aXJrX3N2d19tc2kgKTsKICNlbmRpZiAvKiBDT05GSUdfWDg2X0lPX0FQSUMgKi8KIAogCiAvKgotICogVmlhIDY4NkEvQjogIFRoZSBQQ0lfSU5URVJSVVBUX0xJTkUgcmVnaXN0ZXIgZm9yIHRoZSBvbi1jaGlwCi0gKiBkZXZpY2VzLCBVU0IwLzEsIEFDOTcsIE1DOTcsIGFuZCBBQ1BJLCBoYXMgYW4gdW51c3VhbCBmZWF0dXJlOgotICogd2hlbiB3cml0dGVuLCBpdCBtYWtlcyBhbiBpbnRlcm5hbCBjb25uZWN0aW9uIHRvIHRoZSBQSUMuCi0gKiBGb3IgdGhlc2UgZGV2aWNlcywgdGhpcyByZWdpc3RlciBpcyBkZWZpbmVkIHRvIGJlIDQgYml0cyB3aWRlLgotICogTm9ybWFsbHkgdGhpcyBpcyBmaW5lLiAgSG93ZXZlciBmb3IgSU8tQVBJQyBtb3RoZXJib2FyZHMsIG9yCi0gKiBub24teDg2IGFyY2hpdGVjdHVyZXMgKHllcyBWaWEgZXhpc3RzIG9uIFBQQyBhbW9uZyBvdGhlciBwbGFjZXMpLAotICogd2UgbXVzdCBtYXNrIHRoZSBQQ0lfSU5URVJSVVBUX0xJTkUgdmFsdWUgdmVyc3VzIDB4ZiB0byBnZXQKLSAqIGludGVycnVwdHMgZGVsaXZlcmVkIHByb3Blcmx5LgotICovCi0KLS8qCiAgKiBGSVhNRTogaXQgaXMgcXVlc3Rpb25hYmxlIHRoYXQgcXVpcmtfdmlhX2FjcGkKICAqIGlzIG5lZWRlZC4gIEl0IHNob3dzIHVwIGFzIGFuIElTQSBicmlkZ2UsIGFuZCBkb2VzIG5vdAogICogc3VwcG9ydCB0aGUgUENJX0lOVEVSUlVQVF9MSU5FIHJlZ2lzdGVyIGF0IGFsbC4gIFRoZXJlZm9yZQpAQCAtNDkyLDI4ICs0ODcsMzAgQEAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX1ZJQSwJUENJX0RFVklDRV9JRF9WSUFfODJDNTg2XzMsCXF1aXJrX3ZpYV9hY3BpICk7CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9WSUEsCVBDSV9ERVZJQ0VfSURfVklBXzgyQzY4Nl80LAlxdWlya192aWFfYWNwaSApOwogCi1zdGF0aWMgdm9pZCBxdWlya192aWFfaXJxcGljKHN0cnVjdCBwY2lfZGV2ICpkZXYpCisvKgorICogVmlhIDY4NkEvQjogIFRoZSBQQ0lfSU5URVJSVVBUX0xJTkUgcmVnaXN0ZXIgZm9yIHRoZSBvbi1jaGlwCisgKiBkZXZpY2VzLCBVU0IwLzEsIEFDOTcsIE1DOTcsIGFuZCBBQ1BJLCBoYXMgYW4gdW51c3VhbCBmZWF0dXJlOgorICogd2hlbiB3cml0dGVuLCBpdCBtYWtlcyBhbiBpbnRlcm5hbCBjb25uZWN0aW9uIHRvIHRoZSBQSUMuCisgKiBGb3IgdGhlc2UgZGV2aWNlcywgdGhpcyByZWdpc3RlciBpcyBkZWZpbmVkIHRvIGJlIDQgYml0cyB3aWRlLgorICogTm9ybWFsbHkgdGhpcyBpcyBmaW5lLiAgSG93ZXZlciBmb3IgSU8tQVBJQyBtb3RoZXJib2FyZHMsIG9yCisgKiBub24teDg2IGFyY2hpdGVjdHVyZXMgKHllcyBWaWEgZXhpc3RzIG9uIFBQQyBhbW9uZyBvdGhlciBwbGFjZXMpLAorICogd2UgbXVzdCBtYXNrIHRoZSBQQ0lfSU5URVJSVVBUX0xJTkUgdmFsdWUgdmVyc3VzIDB4ZiB0byBnZXQKKyAqIGludGVycnVwdHMgZGVsaXZlcmVkIHByb3Blcmx5LgorICovCitzdGF0aWMgdm9pZCBxdWlya192aWFfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJdTggaXJxLCBuZXdfaXJxOwogCi0jaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCi0JaWYgKG5yX2lvYXBpY3MgJiYgIXNraXBfaW9hcGljX3NldHVwKQotCQlyZXR1cm47Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQUNQSQotCWlmIChhY3BpX2lycV9tb2RlbCAhPSBBQ1BJX0lSUV9NT0RFTF9QSUMpCi0JCXJldHVybjsKLSNlbmRpZgogCW5ld19pcnEgPSBkZXYtPmlycSAmIDB4ZjsKIAlwY2lfcmVhZF9jb25maWdfYnl0ZShkZXYsIFBDSV9JTlRFUlJVUFRfTElORSwgJmlycSk7CiAJaWYgKG5ld19pcnEgIT0gaXJxKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlBDSTogVmlhIFBJQyBJUlEgZml4dXAgZm9yICVzLCBmcm9tICVkIHRvICVkXG4iLAorCQlwcmludGsoS0VSTl9JTkZPICJQQ0k6IFZpYSBJUlEgZml4dXAgZm9yICVzLCBmcm9tICVkIHRvICVkXG4iLAogCQkJcGNpX25hbWUoZGV2KSwgaXJxLCBuZXdfaXJxKTsKIAkJdWRlbGF5KDE1KTsJLyogdW5rbm93biBpZiBkZWxheSByZWFsbHkgbmVlZGVkICovCiAJCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9JTlRFUlJVUFRfTElORSwgbmV3X2lycSk7CiAJfQogfQotREVDTEFSRV9QQ0lfRklYVVBfRU5BQkxFKFBDSV9WRU5ET1JfSURfVklBLCBQQ0lfQU5ZX0lELCBxdWlya192aWFfaXJxcGljKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0VOQUJMRShQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0FOWV9JRCwgcXVpcmtfdmlhX2lycSk7CiAKIC8qCiAgKiBQSUlYMyBVU0I6IFdlIGhhdmUgdG8gZGlzYWJsZSBVU0IgaW50ZXJydXB0cyB0aGF0IGFyZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9hdXguYyBiL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfYXV4LmMKaW5kZXggNjhkMTUxYS4uZTE3YjRkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9hdXguYworKysgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2F1eC5jCkBAIC05NywxMSArOTcsNiBAQAogCQkgIkZDIEVSUCBRRElPIENJTyBDb25maWcgRlNGIFNDU0kgT3RoZXIsICIKIAkJICJsZXZlbHM6IDA9bm9uZSAxPW5vcm1hbCAyPWRldmVsIDM9dHJhY2UiKTsKIAotI2lmZGVmIFpGQ1BfUFJJTlRfRkxBR1MKLXUzMiBmbGFnc19kdW1wID0gMDsKLW1vZHVsZV9wYXJhbShmbGFnc19kdW1wLCB1aW50LCAwKTsKLSNlbmRpZgotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKioqKioqKioqKioqKiBGdW5jdGlvbnMgd2l0aG91dCBsb2dnaW5nICoqKioqKioqKioqKioqKioqKioqKioqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0yMjMsMTMgKzIxOCwyMCBAQAogICogUGFyc2UgImRldmljZT0uLi4iIHBhcmFtZXRlciBzdHJpbmcuCiAgKi8KIHN0YXRpYyBpbnQgX19pbml0Ci16ZmNwX2RldmljZV9zZXR1cChjaGFyICpzdHIpCit6ZmNwX2RldmljZV9zZXR1cChjaGFyICpkZXZzdHIpCiB7Ci0JY2hhciAqdG1wOworCWNoYXIgKnRtcCwgKnN0cjsKKwlzaXplX3QgbGVuOwogCi0JaWYgKCFzdHIpCisJaWYgKCFkZXZzdHIpCiAJCXJldHVybiAwOwogCisJbGVuID0gc3RybGVuKGRldnN0cikgKyAxOworCXN0ciA9IChjaGFyICopIGttYWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0cikKKwkJZ290byBlcnJfb3V0OworCW1lbWNweShzdHIsIGRldnN0ciwgbGVuKTsKKwogCXRtcCA9IHN0cmNocihzdHIsICcsJyk7CiAJaWYgKCF0bXApCiAJCWdvdG8gZXJyX291dDsKQEAgLTI0NiwxMCArMjQ4LDEyIEBACiAJemZjcF9kYXRhLmluaXRfZmNwX2x1biA9IHNpbXBsZV9zdHJ0b3VsbCh0bXAsICZ0bXAsIDApOwogCWlmICgqdG1wICE9ICdcMCcpCiAJCWdvdG8gZXJyX291dDsKKwlrZnJlZShzdHIpOwogCXJldHVybiAxOwogCiAgZXJyX291dDoKIAlaRkNQX0xPR19OT1JNQUwoIlBhcnNlIGVycm9yIGZvciBkZXZpY2UgcGFyYW1ldGVyIHN0cmluZyAlc1xuIiwgc3RyKTsKKwlrZnJlZShzdHIpOwogCXJldHVybiAwOwogfQogCkBAIC01MjUsNyArNTI5LDcgQEAKIAogIG91dDoKIAlpZiAoZnNmX3JlcSAhPSBOVUxMKQotCQl6ZmNwX2ZzZl9yZXFfY2xlYW51cChmc2ZfcmVxKTsKKwkJemZjcF9mc2ZfcmVxX2ZyZWUoZnNmX3JlcSk7CiAKIAlpZiAoKGFkYXB0ZXIgIT0gTlVMTCkgJiYgKHJldHZhbCAhPSAtRU5YSU8pKQogCQl6ZmNwX2FkYXB0ZXJfcHV0KGFkYXB0ZXIpOwpAQCAtMTE1NCw3ICsxMTU4LDcgQEAKIAlJTklUX0xJU1RfSEVBRCgmYWRhcHRlci0+cG9ydF9yZW1vdmVfbGgpOwogCiAJLyogaW5pdGlhbGl6ZSBsaXN0IG9mIGZzZiByZXF1ZXN0cyAqLwotCXJ3bG9ja19pbml0KCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2hlYWQpOwogCiAJLyogaW5pdGlhbGl6ZSBhYm9ydCBsb2NrICovCkBAIC0xMjM5LDkgKzEyNDMsOSBAQAogCXpmY3Bfc3lzZnNfYWRhcHRlcl9yZW1vdmVfZmlsZXMoJmFkYXB0ZXItPmNjd19kZXZpY2UtPmRldik7CiAJZGV2X3NldF9kcnZkYXRhKCZhZGFwdGVyLT5jY3dfZGV2aWNlLT5kZXYsIE5VTEwpOwogCS8qIHNhbml0eSBjaGVjazogbm8gcGVuZGluZyBGU0YgcmVxdWVzdHMgKi8KLQlyZWFkX2xvY2tfaXJxc2F2ZSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2ssIGZsYWdzKTsKIAlyZXR2YWwgPSAhbGlzdF9lbXB0eSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2hlYWQpOwotCXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2ssIGZsYWdzKTsKIAlpZiAocmV0dmFsKSB7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBhZGFwdGVyICVzICglcCkgc3RpbGwgaW4gdXNlLCAiCiAJCQkJIiVpIHJlcXVlc3RzIG91dHN0YW5kaW5nXG4iLApAQCAtMTQ4MywxOSArMTQ4NywxNSBAQAogCQlmY3BfcnNjbl9lbGVtZW50Kys7CiAJCXN3aXRjaCAoZmNwX3JzY25fZWxlbWVudC0+YWRkcl9mb3JtYXQpIHsKIAkJY2FzZSBaRkNQX1BPUlRfQUREUkVTUzoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDEsICJaRkNQX1BPUlRfQUREUkVTU1xuIik7CiAJCQlyYW5nZV9tYXNrID0gWkZDUF9QT1JUU19SQU5HRV9QT1JUOwogCQkJYnJlYWs7CiAJCWNhc2UgWkZDUF9BUkVBX0FERFJFU1M6Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiWkZDUF9BUkVBX0FERFJFU1NcbiIpOwogCQkJcmFuZ2VfbWFzayA9IFpGQ1BfUE9SVFNfUkFOR0VfQVJFQTsKIAkJCWJyZWFrOwogCQljYXNlIFpGQ1BfRE9NQUlOX0FERFJFU1M6Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiWkZDUF9ET01BSU5fQUREUkVTU1xuIik7CiAJCQlyYW5nZV9tYXNrID0gWkZDUF9QT1JUU19SQU5HRV9ET01BSU47CiAJCQlicmVhazsKIAkJY2FzZSBaRkNQX0ZBQlJJQ19BRERSRVNTOgotCQkJWkZDUF9MT0dfRkxBR1MoMSwgIlpGQ1BfRkFCUklDX0FERFJFU1NcbiIpOwogCQkJcmFuZ2VfbWFzayA9IFpGQ1BfUE9SVFNfUkFOR0VfRkFCUklDOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0xNzYyLDcgKzE3NjIsMTAgQEAKIAljdF9pdV9yZXEgPSB6ZmNwX3NnX3RvX2FkZHJlc3MoY3QtPnJlcSk7CiAJY3RfaXVfcmVzcCA9IHpmY3Bfc2dfdG9fYWRkcmVzcyhjdC0+cmVzcCk7CiAKLQlpZiAoKGN0LT5zdGF0dXMgIT0gMCkgfHwgemZjcF9jaGVja19jdF9yZXNwb25zZSgmY3RfaXVfcmVzcC0+aGVhZGVyKSkgeworCWlmIChjdC0+c3RhdHVzICE9IDApCisJCWdvdG8gZmFpbGVkOworCisJaWYgKHpmY3BfY2hlY2tfY3RfcmVzcG9uc2UoJmN0X2l1X3Jlc3AtPmhlYWRlcikpIHsKIAkJLyogRklYTUU6IGRvIHdlIG5lZWQgc29tZSBzcGVjaWZpYyBlcnAgZW50cnkgcG9pbnRzICovCiAJCWF0b21pY19zZXRfbWFzayhaRkNQX1NUQVRVU19QT1JUX0lOVkFMSURfV1dQTiwgJnBvcnQtPnN0YXR1cyk7CiAJCWdvdG8gZmFpbGVkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9kZWYuaCBiL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZGVmLmgKaW5kZXggYzVkYWYzNy4uNDEwM2I1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9kZWYuaAorKysgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2RlZi5oCkBAIC02Miw5ICs2Miw2IEBACiAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIERFQlVHIEZMQUdTICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jZGVmaW5lCVpGQ1BfUFJJTlRfRkxBR1MKIAogLyoqKioqKioqKioqKioqKioqKioqKiBHRU5FUkFMIERFRklORVMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0xNTIsOCArMTQ5LDEwIEBACiAjZGVmaW5lIEZTRl9RVENCX1VOU09MSUNJVEVEX1NUQVRVUwkJMHg2MzA1CiAjZGVmaW5lIFpGQ1BfU1RBVFVTX1JFQURfRkFJTEVEX1RIUkVTSE9MRAkzCiAjZGVmaW5lIFpGQ1BfU1RBVFVTX1JFQURTX1JFQ09NCQkgICAgICAgIEZTRl9TVEFUVVNfUkVBRFNfUkVDT00KLSNkZWZpbmUgWkZDUF9FWENIQU5HRV9DT05GSUdfREFUQV9SRVRSSUVTCTYKLSNkZWZpbmUgWkZDUF9FWENIQU5HRV9DT05GSUdfREFUQV9TTEVFUAkJNTAKKworLyogRG8gMXN0IHJldHJ5IGluIDEgc2Vjb25kLCB0aGVuIGRvdWJsZSB0aGUgdGltZW91dCBmb3IgZWFjaCBmb2xsb3dpbmcgcmV0cnkgKi8KKyNkZWZpbmUgWkZDUF9FWENIQU5HRV9DT05GSUdfREFUQV9GSVJTVF9TTEVFUAkxMDAKKyNkZWZpbmUgWkZDUF9FWENIQU5HRV9DT05GSUdfREFUQV9SRVRSSUVTCTcKIAogLyogdGltZW91dCB2YWx1ZSBmb3IgImRlZmF1bHQgdGltZXIiIGZvciBmc2YgcmVxdWVzdHMgKi8KICNkZWZpbmUgWkZDUF9GU0ZfUkVRVUVTVF9USU1FT1VUICg2MCpIWik7CkBAIC00NzIsMTcgKzQ3MSw2IEBACiAJWkZDUF9MT0coWkZDUF9MT0dfTEVWRUxfVFJBQ0UsIGZtdCAsICMjYXJncykKICNlbmRpZgogCi0jaWZuZGVmIFpGQ1BfUFJJTlRfRkxBR1MKLSMgZGVmaW5lIFpGQ1BfTE9HX0ZMQUdTKGxldmVsLCBmbXQsIGFyZ3MuLi4pCi0jZWxzZQotZXh0ZXJuIHUzMiBmbGFnc19kdW1wOwotIyBkZWZpbmUgWkZDUF9MT0dfRkxBR1MobGV2ZWwsIGZtdCwgYXJncy4uLikgXAotZG8geyBcCi0JaWYgKGxldmVsIDw9IGZsYWdzX2R1bXApIFwKLQkJX1pGQ1BfTE9HKGZtdCwgIyNhcmdzKTsgXAotfSB3aGlsZSAoMCkKLSNlbmRpZgotCiAvKioqKioqKioqKioqKioqIEFEQVBURVIvUE9SVC9VTklUIEFORCBGU0ZfUkVRIFNUQVRVUyBGTEFHUyAqKioqKioqKioqKioqKioqKiovCiAKIC8qIApAQCAtNTAyLDYgKzQ5MCw3IEBACiAjZGVmaW5lIFpGQ1BfU1RBVFVTX0NPTU1PTl9DTE9TSU5HICAgICAgICAgICAgICAweDAyMDAwMDAwCiAjZGVmaW5lIFpGQ1BfU1RBVFVTX0NPTU1PTl9FUlBfSU5VU0UJCTB4MDEwMDAwMDAKICNkZWZpbmUgWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19ERU5JRUQJMHgwMDgwMDAwMAorI2RlZmluZSBaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0JPWEVECQkweDAwNDAwMDAwCiAKIC8qIGFkYXB0ZXIgc3RhdHVzICovCiAjZGVmaW5lIFpGQ1BfU1RBVFVTX0FEQVBURVJfUURJT1VQCQkweDAwMDAwMDAyCkBAIC03NjMsNiArNzUyLDcgQEAKIC8qKgogICogc3RydWN0IHpmY3Bfc2VuZF9lbHMgLSB1c2VkIHRvIHBhc3MgcGFyYW1ldGVycyB0byBmdW5jdGlvbiB6ZmNwX2ZzZl9zZW5kX2VscwogICogQGFkYXB0ZXI6IGFkYXB0ZXIgd2hlcmUgcmVxdWVzdCBpcyBzZW50IGZyb20KKyAqIEBwb3J0OiBwb3J0IHdoZXJlIEVMUyBpcyBkZXN0aW5hdGVkIChwb3J0IHJlZmVyZW5jZSBjb3VudCBoYXMgdG8gYmUgaW5jcmVhc2VkKQogICogQGRfaWQ6IGRlc3RpbmlhdGlvbiBpZCBvZiBwb3J0IHdoZXJlIHJlcXVlc3QgaXMgc2VudCB0bwogICogQHJlcTogc2NhdHRlci1nYXRoZXIgbGlzdCBmb3IgcmVxdWVzdAogICogQHJlc3A6IHNjYXR0ZXItZ2F0aGVyIGxpc3QgZm9yIHJlc3BvbnNlCkBAIC03NzcsNiArNzY3LDcgQEAKICAqLwogc3RydWN0IHpmY3Bfc2VuZF9lbHMgewogCXN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXI7CisJc3RydWN0IHpmY3BfcG9ydCAqcG9ydDsKIAlmY19pZF90IGRfaWQ7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpyZXE7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpyZXNwOwpAQCAtODcxLDcgKzg2Miw3IEBACiAJdTMyCQkJcG9ydHM7CSAgICAgICAgICAgLyogbnVtYmVyIG9mIHJlbW90ZSBwb3J0cyAqLwogICAgICAgICBzdHJ1Y3QgdGltZXJfbGlzdCAgICAgICBzY3NpX2VyX3RpbWVyOyAgICAgLyogU0NTSSBlcnIgcmVjb3Zlcnkgd2F0Y2ggKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkCWZzZl9yZXFfbGlzdF9oZWFkOyAvKiBoZWFkIG9mIEZTRiByZXEgbGlzdCAqLwotCXJ3bG9ja190CQlmc2ZfcmVxX2xpc3RfbG9jazsgLyogbG9jayBmb3Igb3BzIG9uIGxpc3Qgb2YKKwlzcGlubG9ja190CQlmc2ZfcmVxX2xpc3RfbG9jazsgLyogbG9jayBmb3Igb3BzIG9uIGxpc3Qgb2YKIAkJCQkJCSAgICAgIEZTRiByZXF1ZXN0cyAqLwogICAgICAgICBhdG9taWNfdCAgICAgICAJCWZzZl9yZXFzX2FjdGl2ZTsgICAvKiAjIGFjdGl2ZSBGU0YgcmVxcyAqLwogCXN0cnVjdCB6ZmNwX3FkaW9fcXVldWUJcmVxdWVzdF9xdWV1ZTsJICAgLyogcmVxdWVzdCBxdWV1ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9lcnAuYyBiL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZXJwLmMKaW5kZXggNTNlYmMxY2QuLjBjZjMxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZXJwLmMKKysrIGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9lcnAuYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjaW5jbHVkZSAiemZjcF9leHQuaCIKIAotc3RhdGljIGludCB6ZmNwX2VycF9hZGlzYyhzdHJ1Y3QgemZjcF9hZGFwdGVyICosIGZjX2lkX3QpOworc3RhdGljIGludCB6ZmNwX2VycF9hZGlzYyhzdHJ1Y3QgemZjcF9wb3J0ICopOwogc3RhdGljIHZvaWQgemZjcF9lcnBfYWRpc2NfaGFuZGxlcih1bnNpZ25lZCBsb25nKTsKIAogc3RhdGljIGludCB6ZmNwX2VycF9hZGFwdGVyX3Jlb3Blbl9pbnRlcm5hbChzdHJ1Y3QgemZjcF9hZGFwdGVyICosIGludCk7CkBAIC0yOTUsMTIgKzI5NSwxMiBAQAogCiAvKioKICAqIHpmY3BfZXJwX2FkaXNjIC0gc2VuZCBBRElTQyBFTFMgY29tbWFuZAotICogQGFkYXB0ZXI6IGFkYXB0ZXIgc3RydWN0dXJlCi0gKiBAZF9pZDogZF9pZCBvZiBwb3J0IHdoZXJlIEFESVNDIGlzIHNlbnQgdG8KKyAqIEBwb3J0OiBwb3J0IHN0cnVjdHVyZQogICovCiBpbnQKLXpmY3BfZXJwX2FkaXNjKHN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIsIGZjX2lkX3QgZF9pZCkKK3pmY3BfZXJwX2FkaXNjKHN0cnVjdCB6ZmNwX3BvcnQgKnBvcnQpCiB7CisJc3RydWN0IHpmY3BfYWRhcHRlciAqYWRhcHRlciA9IHBvcnQtPmFkYXB0ZXI7CiAJc3RydWN0IHpmY3Bfc2VuZF9lbHMgKnNlbmRfZWxzOwogCXN0cnVjdCB6ZmNwX2xzX2FkaXNjICphZGlzYzsKIAl2b2lkICphZGRyZXNzID0gTlVMTDsKQEAgLTMzMiw3ICszMzIsOCBAQAogCXNlbmRfZWxzLT5yZXFfY291bnQgPSBzZW5kX2Vscy0+cmVzcF9jb3VudCA9IDE7CiAKIAlzZW5kX2Vscy0+YWRhcHRlciA9IGFkYXB0ZXI7Ci0Jc2VuZF9lbHMtPmRfaWQgPSBkX2lkOworCXNlbmRfZWxzLT5wb3J0ID0gcG9ydDsKKwlzZW5kX2Vscy0+ZF9pZCA9IHBvcnQtPmRfaWQ7CiAJc2VuZF9lbHMtPmhhbmRsZXIgPSB6ZmNwX2VycF9hZGlzY19oYW5kbGVyOwogCXNlbmRfZWxzLT5oYW5kbGVyX2RhdGEgPSAodW5zaWduZWQgbG9uZykgc2VuZF9lbHM7CiAKQEAgLTM1MCw3ICszNTEsNyBAQAogCVpGQ1BfTE9HX0lORk8oIkFESVNDIHJlcXVlc3QgZnJvbSBzX2lkIDB4JTA4eCB0byBkX2lkIDB4JTA4eCAiCiAJCSAgICAgICIod3dwbj0weCUwMTZMeCwgd3dubj0weCUwMTZMeCwgIgogCQkgICAgICAiaGFyZF9ucG9ydF9pZD0weCUwOHgsIG5wb3J0X2lkPTB4JTA4eClcbiIsCi0JCSAgICAgIGFkYXB0ZXItPnNfaWQsIGRfaWQsICh3d25fdCkgYWRpc2MtPnd3cG4sCisJCSAgICAgIGFkYXB0ZXItPnNfaWQsIHNlbmRfZWxzLT5kX2lkLCAod3duX3QpIGFkaXNjLT53d3BuLAogCQkgICAgICAod3duX3QpIGFkaXNjLT53d25uLCBhZGlzYy0+aGFyZF9ucG9ydF9pZCwKIAkJICAgICAgYWRpc2MtPm5wb3J0X2lkKTsKIApAQCAtMzY3LDcgKzM2OCw3IEBACiAJcmV0dmFsID0gemZjcF9mc2Zfc2VuZF9lbHMoc2VuZF9lbHMpOwogCWlmIChyZXR2YWwgIT0gMCkgewogCQlaRkNQX0xPR19OT1JNQUwoImVycm9yOiBpbml0aWF0aW9uIG9mIFNlbmQgRUxTIGZhaWxlZCBmb3IgcG9ydCAiCi0JCQkJIjB4JTA4eCBvbiBhZGFwdGVyICVzXG4iLCBkX2lkLAorCQkJCSIweCUwOHggb24gYWRhcHRlciAlc1xuIiwgc2VuZF9lbHMtPmRfaWQsCiAJCQkJemZjcF9nZXRfYnVzaWRfYnlfYWRhcHRlcihhZGFwdGVyKSk7CiAJCWRlbF90aW1lcihzZW5kX2Vscy0+dGltZXIpOwogCQlnb3RvIGZyZWVtZW07CkBAIC00MTEsMTQgKzQxMiw5IEBACiAJZGVsX3RpbWVyKHNlbmRfZWxzLT50aW1lcik7CiAKIAlhZGFwdGVyID0gc2VuZF9lbHMtPmFkYXB0ZXI7CisJcG9ydCA9IHNlbmRfZWxzLT5wb3J0OwogCWRfaWQgPSBzZW5kX2Vscy0+ZF9pZDsKIAotCXJlYWRfbG9jaygmemZjcF9kYXRhLmNvbmZpZ19sb2NrKTsKLQlwb3J0ID0gemZjcF9nZXRfcG9ydF9ieV9kaWQoc2VuZF9lbHMtPmFkYXB0ZXIsIHNlbmRfZWxzLT5kX2lkKTsKLQlyZWFkX3VubG9jaygmemZjcF9kYXRhLmNvbmZpZ19sb2NrKTsKLQotCUJVR19PTihwb3J0ID09IE5VTEwpOwotCiAJLyogcmVxdWVzdCByZWplY3RlZCBvciB0aW1lZCBvdXQgKi8KIAlpZiAoc2VuZF9lbHMtPnN0YXR1cyAhPSAwKSB7CiAJCVpGQ1BfTE9HX05PUk1BTCgiRUxTIHJlcXVlc3QgcmVqZWN0ZWQvdGltZWQgb3V0LCAiCkBAIC00ODIsNyArNDc4LDcgQEAKIAlpbnQgcmV0dmFsOwogCiAJemZjcF9wb3J0X2dldChwb3J0KTsKLQlyZXR2YWwgPSB6ZmNwX2VycF9hZGlzYyhwb3J0LT5hZGFwdGVyLCBwb3J0LT5kX2lkKTsKKwlyZXR2YWwgPSB6ZmNwX2VycF9hZGlzYyhwb3J0KTsKIAlpZiAocmV0dmFsICE9IDApIHsKIAkJemZjcF9wb3J0X3B1dChwb3J0KTsKIAkJWkZDUF9MT0dfTk9STUFMKCJyZW9wZW4gbmVlZGVkIGZvciBwb3J0IDB4JTAxNkx4ICIKQEAgLTg5NSw3ICs4OTEsNyBAQAogCiAJaWYgKGVycF9hY3Rpb24tPmZzZl9yZXEpIHsKIAkJLyogdGFrZSBsb2NrIHRvIGVuc3VyZSB0aGF0IHJlcXVlc3QgaXMgbm90IGJlaW5nIGRlbGV0ZWQgbWVhbndoaWxlICovCi0JCXdyaXRlX2xvY2soJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrKTsKKwkJc3Bpbl9sb2NrKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jayk7CiAJCS8qIGNoZWNrIHdoZXRoZXIgZnNmIHJlcSBkb2VzIHN0aWxsIGV4aXN0ICovCiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoZnNmX3JlcSwgJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9oZWFkLCBsaXN0KQogCQkgICAgaWYgKGZzZl9yZXEgPT0gZXJwX2FjdGlvbi0+ZnNmX3JlcSkKQEAgLTkzOCw3ICs5MzQsNyBAQAogCQkJICovCiAJCQllcnBfYWN0aW9uLT5mc2ZfcmVxID0gTlVMTDsKIAkJfQotCQl3cml0ZV91bmxvY2soJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrKTsKIAl9IGVsc2UKIAkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAiYV9jYV9ub3JlcSIpOwogCkBAIC0yMjg2LDEyICsyMjgyLDEyIEBACiB7CiAJaW50IHJldHZhbCA9IFpGQ1BfRVJQX1NVQ0NFRURFRDsKIAlpbnQgcmV0cmllczsKKwlpbnQgc2xlZXAgPSBaRkNQX0VYQ0hBTkdFX0NPTkZJR19EQVRBX0ZJUlNUX1NMRUVQOwogCXN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIgPSBlcnBfYWN0aW9uLT5hZGFwdGVyOwogCiAJYXRvbWljX2NsZWFyX21hc2soWkZDUF9TVEFUVVNfQURBUFRFUl9YQ09ORklHX09LLCAmYWRhcHRlci0+c3RhdHVzKTsKLQlyZXRyaWVzID0gWkZDUF9FWENIQU5HRV9DT05GSUdfREFUQV9SRVRSSUVTOwogCi0JZG8geworCWZvciAocmV0cmllcyA9IFpGQ1BfRVhDSEFOR0VfQ09ORklHX0RBVEFfUkVUUklFUzsgcmV0cmllczsgcmV0cmllcy0tKSB7CiAJCWF0b21pY19jbGVhcl9tYXNrKFpGQ1BfU1RBVFVTX0FEQVBURVJfSE9TVF9DT05fSU5JVCwKIAkJCQkgICZhZGFwdGVyLT5zdGF0dXMpOwogCQlaRkNQX0xPR19ERUJVRygiRG9pbmcgZXhjaGFuZ2UgY29uZmlnIGRhdGFcbiIpOwpAQCAtMjMyOSwxNiArMjMyNSwxNyBAQAogCQkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlcikpOwogCQkJYnJlYWs7CiAJCX0KLQkJaWYgKGF0b21pY190ZXN0X21hc2soWkZDUF9TVEFUVVNfQURBUFRFUl9IT1NUX0NPTl9JTklULAotCQkJCSAgICAgJmFkYXB0ZXItPnN0YXR1cykpIHsKLQkJCVpGQ1BfTE9HX0RFQlVHKCJob3N0IGNvbm5lY3Rpb24gc3RpbGwgaW5pdGlhbGlzaW5nLi4uICIKLQkJCQkgICAgICAgIndhaXRpbmcgYW5kIHJldHJ5aW5nLi4uXG4iKTsKLQkJCS8qIHNsZWVwIGEgbGl0dGxlIGJpdCBiZWZvcmUgcmV0cnkgKi8KLQkJCW1zbGVlcChqaWZmaWVzX3RvX21zZWNzKFpGQ1BfRVhDSEFOR0VfQ09ORklHX0RBVEFfU0xFRVApKTsKLQkJfQotCX0gd2hpbGUgKChyZXRyaWVzLS0pICYmCi0JCSBhdG9taWNfdGVzdF9tYXNrKFpGQ1BfU1RBVFVTX0FEQVBURVJfSE9TVF9DT05fSU5JVCwKLQkJCQkgICZhZGFwdGVyLT5zdGF0dXMpKTsKKworCQlpZiAoIWF0b21pY190ZXN0X21hc2soWkZDUF9TVEFUVVNfQURBUFRFUl9IT1NUX0NPTl9JTklULAorCQkJCSAgICAgJmFkYXB0ZXItPnN0YXR1cykpCisJCQlicmVhazsKKworCQlaRkNQX0xPR19ERUJVRygiaG9zdCBjb25uZWN0aW9uIHN0aWxsIGluaXRpYWxpc2luZy4uLiAiCisJCQkgICAgICAgIndhaXRpbmcgYW5kIHJldHJ5aW5nLi4uXG4iKTsKKwkJLyogc2xlZXAgYSBsaXR0bGUgYml0IGJlZm9yZSByZXRyeSAqLworCQltc2xlZXAoamlmZmllc190b19tc2VjcyhzbGVlcCkpOworCQlzbGVlcCAqPSAyOworCX0KIAogCWlmICghYXRvbWljX3Rlc3RfbWFzayhaRkNQX1NUQVRVU19BREFQVEVSX1hDT05GSUdfT0ssCiAJCQkgICAgICAmYWRhcHRlci0+c3RhdHVzKSkgewpAQCAtMzQ4NSw2ICszNDgyLDQ1IEBACiB9CiAKIC8qCisgKiBmdW5jdGlvbjoJemZjcF9lcnBfcG9ydF9ib3hlZAorICoKKyAqIHB1cnBvc2U6CisgKi8KK3ZvaWQKK3pmY3BfZXJwX3BvcnRfYm94ZWQoc3RydWN0IHpmY3BfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgemZjcF9hZGFwdGVyICphZGFwdGVyID0gcG9ydC0+YWRhcHRlcjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAicF9hY2Nlc3NfYm94ZWQiKTsKKwlkZWJ1Z19ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAmcG9ydC0+d3dwbiwgc2l6ZW9mKHd3bl90KSk7CisJcmVhZF9sb2NrX2lycXNhdmUoJnpmY3BfZGF0YS5jb25maWdfbG9jaywgZmxhZ3MpOworCXpmY3BfZXJwX21vZGlmeV9wb3J0X3N0YXR1cyhwb3J0LAorCQkJWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19CT1hFRCwKKwkJCVpGQ1BfU0VUKTsKKwlyZWFkX3VubG9ja19pcnFyZXN0b3JlKCZ6ZmNwX2RhdGEuY29uZmlnX2xvY2ssIGZsYWdzKTsKKwl6ZmNwX2VycF9wb3J0X3Jlb3Blbihwb3J0LCBaRkNQX1NUQVRVU19DT01NT05fRVJQX0ZBSUxFRCk7Cit9CisKKy8qCisgKiBmdW5jdGlvbjoJemZjcF9lcnBfdW5pdF9ib3hlZAorICoKKyAqIHB1cnBvc2U6CisgKi8KK3ZvaWQKK3pmY3BfZXJwX3VuaXRfYm94ZWQoc3RydWN0IHpmY3BfdW5pdCAqdW5pdCkKK3sKKwlzdHJ1Y3QgemZjcF9hZGFwdGVyICphZGFwdGVyID0gdW5pdC0+cG9ydC0+YWRhcHRlcjsKKworCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgInVfYWNjZXNzX2JveGVkIik7CisJZGVidWdfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgJnVuaXQtPmZjcF9sdW4sIHNpemVvZihmY3BfbHVuX3QpKTsKKwl6ZmNwX2VycF9tb2RpZnlfdW5pdF9zdGF0dXModW5pdCwKKwkJCVpGQ1BfU1RBVFVTX0NPTU1PTl9BQ0NFU1NfQk9YRUQsCisJCQlaRkNQX1NFVCk7CisJemZjcF9lcnBfdW5pdF9yZW9wZW4odW5pdCwgWkZDUF9TVEFUVVNfQ09NTU9OX0VSUF9GQUlMRUQpOworfQorCisvKgogICogZnVuY3Rpb246CXpmY3BfZXJwX3BvcnRfYWNjZXNzX2RlbmllZAogICoKICAqIHB1cnBvc2U6CkBAIC0zNDk1LDExICszNTMxLDEzIEBACiAJc3RydWN0IHpmY3BfYWRhcHRlciAqYWRhcHRlciA9IHBvcnQtPmFkYXB0ZXI7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgInBfYWNjZXNzX2Jsb2NrIik7CisJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAicF9hY2Nlc3NfZGVuaWVkIik7CiAJZGVidWdfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgJnBvcnQtPnd3cG4sIHNpemVvZih3d25fdCkpOwogCXJlYWRfbG9ja19pcnFzYXZlKCZ6ZmNwX2RhdGEuY29uZmlnX2xvY2ssIGZsYWdzKTsKLQl6ZmNwX2VycF9tb2RpZnlfcG9ydF9zdGF0dXMocG9ydCwgWkZDUF9TVEFUVVNfQ09NTU9OX0VSUF9GQUlMRUQgfAotCQkJCSAgICBaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0RFTklFRCwgWkZDUF9TRVQpOworCXpmY3BfZXJwX21vZGlmeV9wb3J0X3N0YXR1cyhwb3J0LAorCQkJWkZDUF9TVEFUVVNfQ09NTU9OX0VSUF9GQUlMRUQgfAorCQkJWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19ERU5JRUQsCisJCQlaRkNQX1NFVCk7CiAJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmemZjcF9kYXRhLmNvbmZpZ19sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTM1MTMsMTAgKzM1NTEsMTIgQEAKIHsKIAlzdHJ1Y3QgemZjcF9hZGFwdGVyICphZGFwdGVyID0gdW5pdC0+cG9ydC0+YWRhcHRlcjsKIAotCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgInVfYWNjZXNzX2Jsb2NrIik7CisJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAidV9hY2Nlc3NfZGVuaWVkIik7CiAJZGVidWdfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgJnVuaXQtPmZjcF9sdW4sIHNpemVvZihmY3BfbHVuX3QpKTsKLQl6ZmNwX2VycF9tb2RpZnlfdW5pdF9zdGF0dXModW5pdCwgWkZDUF9TVEFUVVNfQ09NTU9OX0VSUF9GQUlMRUQgfAotCQkJCSAgICBaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0RFTklFRCwgWkZDUF9TRVQpOworCXpmY3BfZXJwX21vZGlmeV91bml0X3N0YXR1cyh1bml0LAorCQkJWkZDUF9TVEFUVVNfQ09NTU9OX0VSUF9GQUlMRUQgfAorCQkJWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19ERU5JRUQsCisJCQlaRkNQX1NFVCk7CiB9CiAKIC8qCkBAIC0zNTMwLDcgKzM1NzAsNyBAQAogCXN0cnVjdCB6ZmNwX3BvcnQgKnBvcnQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgImFfYWNjZXNzX3VuYmxvY2siKTsKKwlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJhX2FjY2Vzc19yZWNvdmVyIik7CiAJZGVidWdfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgJmFkYXB0ZXItPm5hbWUsIDgpOwogCiAJcmVhZF9sb2NrX2lycXNhdmUoJnpmY3BfZGF0YS5jb25maWdfbG9jaywgZmxhZ3MpOwpAQCAtMzU1MywxMCArMzU5MywxMiBAQAogCXN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwb3J0LT5hZGFwdGVyOwogCXN0cnVjdCB6ZmNwX3VuaXQgKnVuaXQ7CiAKLQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJwX2FjY2Vzc191bmJsb2NrIik7CisJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAicF9hY2Nlc3NfcmVjb3ZlciIpOwogCWRlYnVnX2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICZwb3J0LT53d3BuLCBzaXplb2Yod3duX3QpKTsKIAogCWlmICghYXRvbWljX3Rlc3RfbWFzayhaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0RFTklFRCwKKwkJCSAgICAgICZwb3J0LT5zdGF0dXMpICYmCisJICAgICFhdG9taWNfdGVzdF9tYXNrKFpGQ1BfU1RBVFVTX0NPTU1PTl9BQ0NFU1NfQk9YRUQsCiAJCQkgICAgICAmcG9ydC0+c3RhdHVzKSkgewogCQlpZiAoIWF0b21pY190ZXN0X21hc2soWkZDUF9TVEFUVVNfUE9SVF9XS0EsICZwb3J0LT5zdGF0dXMpKQogCQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh1bml0LCAmcG9ydC0+dW5pdF9saXN0X2hlYWQsIGxpc3QpCkBAIC0zNTgzLDEwICszNjI1LDEzIEBACiB7CiAJc3RydWN0IHpmY3BfYWRhcHRlciAqYWRhcHRlciA9IHVuaXQtPnBvcnQtPmFkYXB0ZXI7CiAKLQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJ1X2FjY2Vzc191bmJsb2NrIik7CisJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAzLCAidV9hY2Nlc3NfcmVjb3ZlciIpOwogCWRlYnVnX2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICZ1bml0LT5mY3BfbHVuLCBzaXplb2YoZmNwX2x1bl90KSk7CiAKLQlpZiAoIWF0b21pY190ZXN0X21hc2soWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19ERU5JRUQsICZ1bml0LT5zdGF0dXMpKQorCWlmICghYXRvbWljX3Rlc3RfbWFzayhaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0RFTklFRCwKKwkJCSAgICAgICZ1bml0LT5zdGF0dXMpICYmCisJICAgICFhdG9taWNfdGVzdF9tYXNrKFpGQ1BfU1RBVFVTX0NPTU1PTl9BQ0NFU1NfQk9YRUQsCisJCQkgICAgICAmdW5pdC0+c3RhdHVzKSkKIAkJcmV0dXJuOwogCiAJWkZDUF9MT0dfTk9STUFMKCJyZW9wZW4gb2YgdW5pdCAweCUwMTZMeCBvbiBwb3J0IDB4JTAxNkx4ICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZXh0LmggYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2V4dC5oCmluZGV4IGQ1ZmQ0MzMuLjQyZGY3ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZXh0LmgKKysrIGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9leHQuaApAQCAtMTE2LDcgKzExNiw3IEBACiAJCQkJCSAgIHN0cnVjdCB0aW1lcl9saXN0KiwgaW50KTsKIGV4dGVybiBpbnQgIHpmY3BfZnNmX3JlcV9jb21wbGV0ZShzdHJ1Y3QgemZjcF9mc2ZfcmVxICopOwogZXh0ZXJuIHZvaWQgemZjcF9mc2ZfaW5jb21pbmdfZWxzKHN0cnVjdCB6ZmNwX2ZzZl9yZXEgKik7Ci1leHRlcm4gdm9pZCB6ZmNwX2ZzZl9yZXFfY2xlYW51cChzdHJ1Y3QgemZjcF9mc2ZfcmVxICopOworZXh0ZXJuIHZvaWQgemZjcF9mc2ZfcmVxX2ZyZWUoc3RydWN0IHpmY3BfZnNmX3JlcSAqKTsKIGV4dGVybiBzdHJ1Y3QgemZjcF9mc2ZfcmVxICp6ZmNwX2ZzZl9zZW5kX2ZjcF9jb21tYW5kX3Rhc2tfbWFuYWdlbWVudCgKIAlzdHJ1Y3QgemZjcF9hZGFwdGVyICosIHN0cnVjdCB6ZmNwX3VuaXQgKiwgdTgsIGludCk7CiBleHRlcm4gc3RydWN0IHpmY3BfZnNmX3JlcSAqemZjcF9mc2ZfYWJvcnRfZmNwX2NvbW1hbmQoCkBAIC0xNzEsNiArMTcxLDggQEAKIAogZXh0ZXJuIGludCAgemZjcF90ZXN0X2xpbmsoc3RydWN0IHpmY3BfcG9ydCAqKTsKIAorZXh0ZXJuIHZvaWQgemZjcF9lcnBfcG9ydF9ib3hlZChzdHJ1Y3QgemZjcF9wb3J0ICopOworZXh0ZXJuIHZvaWQgemZjcF9lcnBfdW5pdF9ib3hlZChzdHJ1Y3QgemZjcF91bml0ICopOwogZXh0ZXJuIHZvaWQgemZjcF9lcnBfcG9ydF9hY2Nlc3NfZGVuaWVkKHN0cnVjdCB6ZmNwX3BvcnQgKik7CiBleHRlcm4gdm9pZCB6ZmNwX2VycF91bml0X2FjY2Vzc19kZW5pZWQoc3RydWN0IHpmY3BfdW5pdCAqKTsKIGV4dGVybiB2b2lkIHpmY3BfZXJwX2FkYXB0ZXJfYWNjZXNzX2NoYW5nZWQoc3RydWN0IHpmY3BfYWRhcHRlciAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZnNmLmMgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2ZzZi5jCmluZGV4IDE0OGIxMWMuLjBkOWYyMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZnNmLmMKKysrIGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9mc2YuYwpAQCAtNjEsNyArNjEsNiBAQAogc3RhdGljIGludCB6ZmNwX2ZzZl9mc2ZzdGF0dXNfcXVhbF9ldmFsKHN0cnVjdCB6ZmNwX2ZzZl9yZXEgKik7CiBzdGF0aWMgaW50IHpmY3BfZnNmX3JlcV9kaXNwYXRjaChzdHJ1Y3QgemZjcF9mc2ZfcmVxICopOwogc3RhdGljIHZvaWQgemZjcF9mc2ZfcmVxX2Rpc21pc3Moc3RydWN0IHpmY3BfZnNmX3JlcSAqKTsKLXN0YXRpYyB2b2lkIHpmY3BfZnNmX3JlcV9mcmVlKHN0cnVjdCB6ZmNwX2ZzZl9yZXEgKik7CiAKIC8qIGFzc29jaWF0aW9uIGJldHdlZW4gRlNGIGNvbW1hbmQgYW5kIEZTRiBRVENCIHR5cGUgKi8KIHN0YXRpYyB1MzIgZnNmX3F0Y2JfdHlwZVtdID0gewpAQCAtMTQ5LDEzICsxNDgsMTMgQEAKICAqCiAgKiBsb2NrczogICAgICAgbm9uZQogICovCi1zdGF0aWMgdm9pZAordm9pZAogemZjcF9mc2ZfcmVxX2ZyZWUoc3RydWN0IHpmY3BfZnNmX3JlcSAqZnNmX3JlcSkKIHsKIAlpZiAobGlrZWx5KGZzZl9yZXEtPnBvb2wgIT0gTlVMTCkpCiAJCW1lbXBvb2xfZnJlZShmc2ZfcmVxLCBmc2ZfcmVxLT5wb29sKTsKLQkJZWxzZQotCQkJa2ZyZWUoZnNmX3JlcSk7CisJZWxzZQorCQlrZnJlZShmc2ZfcmVxKTsKIH0KIAogLyoKQEAgLTE3MCwzMCArMTY5LDIxIEBACiBpbnQKIHpmY3BfZnNmX3JlcV9kaXNtaXNzX2FsbChzdHJ1Y3QgemZjcF9hZGFwdGVyICphZGFwdGVyKQogewotCWludCByZXR2YWwgPSAwOwogCXN0cnVjdCB6ZmNwX2ZzZl9yZXEgKmZzZl9yZXEsICp0bXA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlMSVNUX0hFQUQocmVtb3ZlX3F1ZXVlKTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmc2ZfcmVxLCB0bXAsICZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfaGVhZCwKLQkJCQkgbGlzdCkKLQkgICAgemZjcF9mc2ZfcmVxX2Rpc21pc3MoZnNmX3JlcSk7Ci0JLyogd2FpdF9ldmVudF90aW1lb3V0PyAqLwotCXdoaWxlICghbGlzdF9lbXB0eSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2hlYWQpKSB7Ci0JCVpGQ1BfTE9HX0RFQlVHKCJmc2YgcmVxIGxpc3Qgb2YgYWRhcHRlciAlcyBub3QgeWV0IGVtcHR5XG4iLAotCQkJICAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlcikpOwotCQkvKiB3YWl0IGZvciB3b2tlbiBpbnRpYXRvcnMgdG8gY2xlYW4gdXAgdGhlaXIgcmVxdWVzdHMgKi8KLQkJbXNsZWVwKGppZmZpZXNfdG9fbXNlY3MoWkZDUF9GU0ZSRVFfQ0xFQU5VUF9USU1FT1VUKSk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7CisJbGlzdF9zcGxpY2VfaW5pdCgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2hlYWQsICZyZW1vdmVfcXVldWUpOworCWF0b21pY19zZXQoJmFkYXB0ZXItPmZzZl9yZXFzX2FjdGl2ZSwgMCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2ssIGZsYWdzKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmc2ZfcmVxLCB0bXAsICZyZW1vdmVfcXVldWUsIGxpc3QpIHsKKwkJbGlzdF9kZWwoJmZzZl9yZXEtPmxpc3QpOworCQl6ZmNwX2ZzZl9yZXFfZGlzbWlzcyhmc2ZfcmVxKTsKIAl9CiAKLQkvKiBjb25zaXN0ZW5jeSBjaGVjayAqLwotCWlmIChhdG9taWNfcmVhZCgmYWRhcHRlci0+ZnNmX3JlcXNfYWN0aXZlKSkgewotCQlaRkNQX0xPR19OT1JNQUwoImJ1ZzogVGhlcmUgYXJlIHN0aWxsICVkIEZTRiByZXF1ZXN0cyBwZW5kaW5nICIKLQkJCQkib24gYWRhcHRlciAlcyBhZnRlciBjbGVhbnVwLlxuIiwKLQkJCQlhdG9taWNfcmVhZCgmYWRhcHRlci0+ZnNmX3JlcXNfYWN0aXZlKSwKLQkJCQl6ZmNwX2dldF9idXNpZF9ieV9hZGFwdGVyKGFkYXB0ZXIpKTsKLQkJYXRvbWljX3NldCgmYWRhcHRlci0+ZnNmX3JlcXNfYWN0aXZlLCAwKTsKLQl9Ci0KLQlyZXR1cm4gcmV0dmFsOworCXJldHVybiAwOwogfQogCiAvKgpAQCAtMjI2LDEwICsyMTYsNiBAQAogewogCWludCByZXR2YWwgPSAwOwogCWludCBjbGVhbnVwOwotCXN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIgPSBmc2ZfcmVxLT5hZGFwdGVyOwotCi0JLyogZG8gc29tZSBzdGF0aXN0aWNzICovCi0JYXRvbWljX2RlYygmYWRhcHRlci0+ZnNmX3JlcXNfYWN0aXZlKTsKIAogCWlmICh1bmxpa2VseShmc2ZfcmVxLT5mc2ZfY29tbWFuZCA9PSBGU0ZfUVRDQl9VTlNPTElDSVRFRF9TVEFUVVMpKSB7CiAJCVpGQ1BfTE9HX0RFQlVHKCJTdGF0dXMgcmVhZCByZXNwb25zZSByZWNlaXZlZFxuIik7CkBAIC0yNjAsNyArMjQ2LDcgQEAKIAkJICogbG9jayBtdXN0IG5vdCBiZSBoZWxkIGhlcmUgc2luY2UgaXQgd2lsbCBiZQogCQkgKiBncmFiZWQgYnkgdGhlIGNhbGxlZCByb3V0aW5lLCB0b28KIAkJICovCi0JCXpmY3BfZnNmX3JlcV9jbGVhbnVwKGZzZl9yZXEpOworCQl6ZmNwX2ZzZl9yZXFfZnJlZShmc2ZfcmVxKTsKIAl9IGVsc2UgewogCQkvKiBub3RpZnkgaW5pdGlhdG9yIHdhaXRpbmcgZm9yIHRoZSByZXF1ZXN0cyBjb21wbGV0aW9uICovCiAJCVpGQ1BfTE9HX1RSQUNFKCJ3YWtpbmcgaW5pdGlhdG9yIG9mIEZTRiByZXF1ZXN0ICVwXG4iLGZzZl9yZXEpOwpAQCAtMzQ2LDE1ICszMzIsMTAgQEAKIAlzd2l0Y2ggKGZzZl9yZXEtPnF0Y2ItPnByZWZpeC5wcm90X3N0YXR1cykgewogCiAJY2FzZSBGU0ZfUFJPVF9HT09EOgotCQlaRkNQX0xPR19UUkFDRSgiRlNGX1BST1RfR09PRFxuIik7Ci0JCWJyZWFrOwotCiAJY2FzZSBGU0ZfUFJPVF9GU0ZfU1RBVFVTX1BSRVNFTlRFRDoKLQkJWkZDUF9MT0dfVFJBQ0UoIkZTRl9QUk9UX0ZTRl9TVEFUVVNfUFJFU0VOVEVEXG4iKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9QUk9UX1FUQ0JfVkVSU0lPTl9FUlJPUjoKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9QUk9UX1FUQ0JfVkVSU0lPTl9FUlJPUlxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiZXJyb3I6IFRoZSBhZGFwdGVyICVzIGNvbnRhaW5zICIKIAkJCQkibWljcm9jb2RlIG9mIHZlcnNpb24gMHgleCwgdGhlIGRldmljZSBkcml2ZXIgIgogCQkJCSJvbmx5IHN1cHBvcnRzIDB4JXguIEFib3J0aW5nLlxuIiwKQEAgLTM3MSw3ICszNTIsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1BST1RfU0VRX05VTUJfRVJST1I6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJGU0ZfUFJPVF9TRVFfTlVNQl9FUlJPUlxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBTZXF1ZW5jZSBudW1iZXIgbWlzbWF0Y2ggYmV0d2VlbiAiCiAJCQkJImRyaXZlciAoMHgleCkgYW5kIGFkYXB0ZXIgJXMgKDB4JXgpLiAiCiAJCQkJIlJlc3RhcnRpbmcgYWxsIG9wZXJhdGlvbnMgb24gdGhpcyBhZGFwdGVyLlxuIiwKQEAgLTM5MCw3ICszNzAsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1BST1RfVU5TVVBQX1FUQ0JfVFlQRToKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9QUk9UX1VOU1VQX1FUQ0JfVFlQRVxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiZXJyb3I6IFBhY2tldCBoZWFkZXIgdHlwZSB1c2VkIGJ5IHRoZSAiCiAJCQkJImRldmljZSBkcml2ZXIgaXMgaW5jb21wYXRpYmxlIHdpdGggIgogCQkJCSJ0aGF0IHVzZWQgb24gYWRhcHRlciAlcy4gIgpAQCAtNDA1LDcgKzM4NCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUFJPVF9IT1NUX0NPTk5FQ1RJT05fSU5JVElBTElaSU5HOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1BST1RfSE9TVF9DT05ORUNUSU9OX0lOSVRJQUxJWklOR1xuIik7CiAJCXpmY3BfY21kX2RiZl9ldmVudF9mc2YoImhjb25pbml0IiwgZnNmX3JlcSwKIAkJCQkgICAgICAgJmZzZl9yZXEtPnF0Y2ItPnByZWZpeC5wcm90X3N0YXR1c19xdWFsLAogCQkJCSAgICAgICBzaXplb2YgKHVuaW9uIGZzZl9wcm90X3N0YXR1c19xdWFsKSk7CkBAIC00MTYsNyArMzk0LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9QUk9UX0RVUExJQ0FURV9SRVFVRVNUX0lEOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX1BST1RfRFVQTElDQVRFX1JFUVVFU1RfSURTXG4iKTsKIAkJaWYgKGZzZl9yZXEtPnF0Y2IpIHsKIAkJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBUaGUgcmVxdWVzdCBpZGVudGlmaWVyIDB4JUx4ICIKIAkJCQkJInRvIHRoZSBhZGFwdGVyICVzIGlzIGFtYmlndW91cy4gIgpAQCAtNDQ1LDcgKzQyMiw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUFJPVF9MSU5LX0RPV046Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfUFJPVF9MSU5LX0RPV05cbiIpOwogCQkvKgogCQkgKiAndGVzdCBhbmQgc2V0JyBpcyBub3QgYXRvbWljIGhlcmUgLQogCQkgKiBpdCdzIG9rIGFzIGxvbmcgYXMgY2FsbHMgdG8gb3VyIHJlc3BvbnNlIHF1ZXVlIGhhbmRsZXIKQEAgLTUwMiwxMyArNDc4LDExIEBACiAJCQkJCVpGQ1BfU1RBVFVTX0NPTU1PTl9FUlBfRkFJTEVELAogCQkJCQkmYWRhcHRlci0+c3RhdHVzKTsKIAkJCXpmY3BfZXJwX2FkYXB0ZXJfcmVvcGVuKGFkYXB0ZXIsIDApOwotCQkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAxLCAicHJvdF9saW5rX2Rvd24iKTsKIAkJfQogCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1BST1RfUkVFU1RfUVVFVUU6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfUFJPVF9SRUVTVF9RVUVVRVxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMSwgInByb3RfcmVlc3RfcXVldWUiKTsKIAkJWkZDUF9MT0dfSU5GTygiVGhlIGxvY2FsIGxpbmsgdG8gYWRhcHRlciB3aXRoICIKIAkJCSAgICAgICIlcyB3YXMgcmUtcGx1Z2dlZC4gIgpAQCAtNTI4LDcgKzUwMiw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUFJPVF9FUlJPUl9TVEFURToKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9QUk9UX0VSUk9SX1NUQVRFXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJlcnJvcjogVGhlIGFkYXB0ZXIgJXMgIgogCQkJCSJoYXMgZW50ZXJlZCB0aGUgZXJyb3Igc3RhdGUuICIKIAkJCQkiUmVzdGFydGluZyBhbGwgb3BlcmF0aW9ucyBvbiB0aGlzICIKQEAgLTU4OSw3ICs1NjIsNiBAQAogCS8qIGV2YWx1YXRlIEZTRiBTdGF0dXMgKi8KIAlzd2l0Y2ggKGZzZl9yZXEtPnF0Y2ItPmhlYWRlci5mc2Zfc3RhdHVzKSB7CiAJY2FzZSBGU0ZfVU5LTk9XTl9DT01NQU5EOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX1VOS05PV05fQ09NTUFORFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBDb21tYW5kIGlzc3VlZCBieSB0aGUgZGV2aWNlIGRyaXZlciBpcyAiCiAJCQkJIm5vdCBrbm93biBieSB0aGUgYWRhcHRlciAlcyAiCiAJCQkJIlN0b3BwaW5nIGFsbCBvcGVyYXRpb25zIG9uIHRoaXMgYWRhcHRlci4gIgpAQCAtNjA2LDE0ICs1NzgsMTIgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9GQ1BfUlNQX0FWQUlMQUJMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9GQ1BfUlNQX0FWQUlMQUJMRVxuIik7CiAJCVpGQ1BfTE9HX0RFQlVHKCJGQ1AgU2Vuc2UgZGF0YSB3aWxsIGJlIHByZXNlbnRlZCB0byB0aGUgIgogCQkJICAgICAgICJTQ1NJIHN0YWNrLlxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMywgImZzZl9zX3JzcCIpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEVcbiIpOwogCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDIsICJmc2Zfc19hc3RhdHVzIik7CiAJCXpmY3BfZnNmX2ZzZnN0YXR1c19xdWFsX2V2YWwoZnNmX3JlcSk7CiAJCWJyZWFrOwpAQCAtNjQ3LDExICs2MTcsOSBAQAogCiAJc3dpdGNoIChmc2ZfcmVxLT5xdGNiLT5oZWFkZXIuZnNmX3N0YXR1c19xdWFsLndvcmRbMF0pIHsKIAljYXNlIEZTRl9TUV9GQ1BfUlNQX0FWQUlMQUJMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9TUV9GQ1BfUlNQX0FWQUlMQUJMRVxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgNCwgImZzZl9zcV9yc3AiKTsKIAkJYnJlYWs7CiAJY2FzZSBGU0ZfU1FfUkVUUllfSUZfUE9TU0lCTEU6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfU1FfUkVUUllfSUZfUE9TU0lCTEVcbiIpOwogCQkvKiBUaGUgU0NTSS1zdGFjayBtYXkgbm93IGlzc3VlIHJldHJpZXMgb3IgZXNjYWxhdGUgKi8KIAkJZGVidWdfdGV4dF9ldmVudChmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAyLCAiZnNmX3NxX3JldHJ5Iik7CiAJCXpmY3BfY21kX2RiZl9ldmVudF9mc2YoInNxcmV0cnkiLCBmc2ZfcmVxLApAQCAtNjYwLDcgKzYyOCw2IEBACiAJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCWJyZWFrOwogCWNhc2UgRlNGX1NRX0NPTU1BTkRfQUJPUlRFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9TUV9DT01NQU5EX0FCT1JURURcbiIpOwogCQkvKiBDYXJyeSB0aGUgYWJvcnRlZCBzdGF0ZSBvbiB0byB1cHBlciBsYXllciAqLwogCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDIsICJmc2Zfc3FfYWJvcnQiKTsKIAkJemZjcF9jbWRfZGJmX2V2ZW50X2ZzZigic3FhYm9ydCIsIGZzZl9yZXEsCkBAIC02NzAsNyArNjM3LDYgQEAKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKIAkJYnJlYWs7CiAJY2FzZSBGU0ZfU1FfTk9fUkVDT006Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJGU0ZfU1FfTk9fUkVDT01cbiIpOwogCQlkZWJ1Z190ZXh0X2V4Y2VwdGlvbihmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAwLAogCQkJCSAgICAgImZzZl9zcV9ub19yZWMiKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJidWc6IE5vIHJlY29tbWVuZGF0aW9uIGNvdWxkIGJlIGdpdmVuIGZvciBhIgpAQCAtNjg0LDcgKzY1MCw2IEBACiAJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCWJyZWFrOwogCWNhc2UgRlNGX1NRX1VMUF9QUk9HUkFNTUlOR19FUlJPUjoKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9TUV9VTFBfUFJPR1JBTU1JTkdfRVJST1JcbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoImVycm9yOiBub3QgZW5vdWdoIFNCQUxzIGZvciBkYXRhIHRyYW5zZmVyICIKIAkJCQkiKGFkYXB0ZXIgJXMpXG4iLAogCQkJCXpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoZnNmX3JlcS0+YWRhcHRlcikpOwpAQCAtNzQwLDcyICs3MDUsNTggQEAKIAlzd2l0Y2ggKGZzZl9yZXEtPmZzZl9jb21tYW5kKSB7CiAKIAljYXNlIEZTRl9RVENCX0ZDUF9DTU5EOgotCQlaRkNQX0xPR19GTEFHUygzLCAiRlNGX1FUQ0JfRkNQX0NNTkRcbiIpOwogCQl6ZmNwX2ZzZl9zZW5kX2ZjcF9jb21tYW5kX2hhbmRsZXIoZnNmX3JlcSk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUVRDQl9BQk9SVF9GQ1BfQ01ORDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX0FCT1JUX0ZDUF9DTU5EXG4iKTsKIAkJemZjcF9mc2ZfYWJvcnRfZmNwX2NvbW1hbmRfaGFuZGxlcihmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9RVENCX1NFTkRfR0VORVJJQzoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX1NFTkRfR0VORVJJQ1xuIik7CiAJCXpmY3BfZnNmX3NlbmRfY3RfaGFuZGxlcihmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9RVENCX09QRU5fUE9SVF9XSVRIX0RJRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX09QRU5fUE9SVF9XSVRIX0RJRFxuIik7CiAJCXpmY3BfZnNmX29wZW5fcG9ydF9oYW5kbGVyKGZzZl9yZXEpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1FUQ0JfT1BFTl9MVU46Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfUVRDQl9PUEVOX0xVTlxuIik7CiAJCXpmY3BfZnNmX29wZW5fdW5pdF9oYW5kbGVyKGZzZl9yZXEpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1FUQ0JfQ0xPU0VfTFVOOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1FUQ0JfQ0xPU0VfTFVOXG4iKTsKIAkJemZjcF9mc2ZfY2xvc2VfdW5pdF9oYW5kbGVyKGZzZl9yZXEpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1FUQ0JfQ0xPU0VfUE9SVDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX0NMT1NFX1BPUlRcbiIpOwogCQl6ZmNwX2ZzZl9jbG9zZV9wb3J0X2hhbmRsZXIoZnNmX3JlcSk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUVRDQl9DTE9TRV9QSFlTSUNBTF9QT1JUOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1FUQ0JfQ0xPU0VfUEhZU0lDQUxfUE9SVFxuIik7CiAJCXpmY3BfZnNmX2Nsb3NlX3BoeXNpY2FsX3BvcnRfaGFuZGxlcihmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9RVENCX0VYQ0hBTkdFX0NPTkZJR19EQVRBOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1FUQ0JfRVhDSEFOR0VfQ09ORklHX0RBVEFcbiIpOwogCQl6ZmNwX2ZzZl9leGNoYW5nZV9jb25maWdfZGF0YV9oYW5kbGVyKGZzZl9yZXEpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1FUQ0JfRVhDSEFOR0VfUE9SVF9EQVRBOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1FUQ0JfRVhDSEFOR0VfUE9SVF9EQVRBXG4iKTsKIAkJemZjcF9mc2ZfZXhjaGFuZ2VfcG9ydF9kYXRhX2hhbmRsZXIoZnNmX3JlcSk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUVRDQl9TRU5EX0VMUzoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX1NFTkRfRUxTXG4iKTsKIAkJemZjcF9mc2Zfc2VuZF9lbHNfaGFuZGxlcihmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9RVENCX0RPV05MT0FEX0NPTlRST0xfRklMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX0RPV05MT0FEX0NPTlRST0xfRklMRVxuIik7CiAJCXpmY3BfZnNmX2NvbnRyb2xfZmlsZV9oYW5kbGVyKGZzZl9yZXEpOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1FUQ0JfVVBMT0FEX0NPTlRST0xfRklMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9RVENCX1VQTE9BRF9DT05UUk9MX0ZJTEVcbiIpOwogCQl6ZmNwX2ZzZl9jb250cm9sX2ZpbGVfaGFuZGxlcihmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1FUQ0JfVU5LTk9XTlxuIik7CiAJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBDb21tYW5kIGlzc3VlZCBieSB0aGUgZGV2aWNlIGRyaXZlciBpcyAiCiAJCQkJIm5vdCBzdXBwb3J0ZWQgYnkgdGhlIGFkYXB0ZXIgJXNcbiIsCkBAIC05MjksMTMgKzg4MCwxMSBAQAogCXN3aXRjaCAoc3RhdHVzX2J1ZmZlci0+c3RhdHVzX3N1YnR5cGUpIHsKIAogCWNhc2UgRlNGX1NUQVRVU19SRUFEX1NVQl9DTE9TRV9QSFlTX1BPUlQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfU1RBVFVTX1JFQURfU1VCX0NMT1NFX1BIWVNfUE9SVFxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgInVuc29sX3BjX3BoeXM6Iik7CiAJCXpmY3BfZXJwX3BvcnRfcmVvcGVuKHBvcnQsIDApOwogCQlicmVhazsKIAogCWNhc2UgRlNGX1NUQVRVU19SRUFEX1NVQl9FUlJPUl9QT1JUOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1NUQVRVU19SRUFEX1NVQl9FUlJPUl9QT1JUXG4iKTsKIAkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAxLCAidW5zb2xfcGNfZXJyOiIpOwogCQl6ZmNwX2VycF9wb3J0X3NodXRkb3duKHBvcnQsIDApOwogCQlicmVhazsKQEAgLTk3MywxNCArOTIyLDEzIEBACiAKIAlpZiAoZnNmX3JlcS0+c3RhdHVzICYgWkZDUF9TVEFUVVNfRlNGUkVRX0RJU01JU1NFRCkgewogCQltZW1wb29sX2ZyZWUoc3RhdHVzX2J1ZmZlciwgYWRhcHRlci0+cG9vbC5kYXRhX3N0YXR1c19yZWFkKTsKLQkJemZjcF9mc2ZfcmVxX2NsZWFudXAoZnNmX3JlcSk7CisJCXpmY3BfZnNmX3JlcV9mcmVlKGZzZl9yZXEpOwogCQlnb3RvIG91dDsKIAl9CiAKIAlzd2l0Y2ggKHN0YXR1c19idWZmZXItPnN0YXR1c190eXBlKSB7CiAKIAljYXNlIEZTRl9TVEFUVVNfUkVBRF9QT1JUX0NMT1NFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9TVEFUVVNfUkVBRF9QT1JUX0NMT1NFRFxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMywgInVuc29sX3BjbG9zZWQ6Iik7CiAJCWRlYnVnX2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsCiAJCQkgICAgJnN0YXR1c19idWZmZXItPmRfaWQsIHNpemVvZiAodTMyKSk7CkBAIC05ODgsMTMgKzkzNiwxMSBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1NUQVRVU19SRUFEX0lOQ09NSU5HX0VMUzoKLQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9TVEFUVVNfUkVBRF9JTkNPTUlOR19FTFNcbiIpOwogCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJ1bnNvbF9lbHM6Iik7CiAJCXpmY3BfZnNmX2luY29taW5nX2Vscyhmc2ZfcmVxKTsKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9TVEFUVVNfUkVBRF9TRU5TRV9EQVRBX0FWQUlMOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1NUQVRVU19SRUFEX1NFTlNFX0RBVEFfQVZBSUxcbiIpOwogCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJ1bnNvbF9zZW5zZToiKTsKIAkJWkZDUF9MT0dfSU5GTygidW5zb2xpY2l0ZWQgc2Vuc2UgZGF0YSByZWNlaXZlZCAoYWRhcHRlciAlcylcbiIsCiAJCQkgICAgICB6ZmNwX2dldF9idXNpZF9ieV9hZGFwdGVyKGFkYXB0ZXIpKTsKQEAgLTEwMDMsNyArOTQ5LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9TVEFUVVNfUkVBRF9CSVRfRVJST1JfVEhSRVNIT0xEOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1NUQVRVU19SRUFEX0JJVF9FUlJPUl9USFJFU0hPTERcbiIpOwogCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDMsICJ1bnNvbF9iaXRfZXJyOiIpOwogCQlaRkNQX0xPR19OT1JNQUwoIkJpdCBlcnJvciB0aHJlc2hvbGQgZGF0YSByZWNlaXZlZDpcbiIpOwogCQlaRkNQX0hFWF9EVU1QKFpGQ1BfTE9HX0xFVkVMX05PUk1BTCwKQEAgLTEwMTIsNyArOTU3LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9TVEFUVVNfUkVBRF9MSU5LX0RPV046Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfU1RBVFVTX1JFQURfTElOS19ET1dOXG4iKTsKIAkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAwLCAidW5zb2xfbGlua19kb3duOiIpOwogCQlaRkNQX0xPR19JTkZPKCJMb2NhbCBsaW5rIHRvIGFkYXB0ZXIgJXMgaXMgZG93blxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlcikpOwpAQCAtMTAyMiw3ICs5NjYsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1NUQVRVU19SRUFEX0xJTktfVVA6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfU1RBVFVTX1JFQURfTElOS19VUFxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMiwgInVuc29sX2xpbmtfdXA6Iik7CiAJCVpGQ1BfTE9HX0lORk8oIkxvY2FsIGxpbmsgdG8gYWRhcHRlciAlcyB3YXMgcmVwbHVnZ2VkLiAiCiAJCQkgICAgICAiUmVzdGFydGluZyBvcGVyYXRpb25zIG9uIHRoaXMgYWRhcHRlclxuIiwKQEAgLTEwMzcsNyArOTgwLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9TVEFUVVNfUkVBRF9DRkRDX1VQREFURUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfU1RBVFVTX1JFQURfQ0ZEQ19VUERBVEVEXG4iKTsKIAkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAyLCAidW5zb2xfY2ZkY191cGRhdGU6Iik7CiAJCVpGQ1BfTE9HX0lORk8oIkNGREMgaGFzIGJlZW4gdXBkYXRlZCBvbiB0aGUgYWRhcHRlciAlc1xuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlcikpOwpAQCAtMTA0NSw3ICs5ODcsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1NUQVRVU19SRUFEX0NGRENfSEFSREVORUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfU1RBVFVTX1JFQURfQ0ZEQ19IQVJERU5FRFxuIik7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMiwgInVuc29sX2NmZGNfaGFyZGVuOiIpOwogCQlzd2l0Y2ggKHN0YXR1c19idWZmZXItPnN0YXR1c19zdWJ0eXBlKSB7CiAJCWNhc2UgRlNGX1NUQVRVU19SRUFEX1NVQl9DRkRDX0hBUkRFTkVEX09OX1NFOgpAQCAtMTA3OCw3ICsxMDE5LDcgQEAKIAkJYnJlYWs7CiAJfQogCW1lbXBvb2xfZnJlZShzdGF0dXNfYnVmZmVyLCBhZGFwdGVyLT5wb29sLmRhdGFfc3RhdHVzX3JlYWQpOwotCXpmY3BfZnNmX3JlcV9jbGVhbnVwKGZzZl9yZXEpOworCXpmY3BfZnNmX3JlcV9mcmVlKGZzZl9yZXEpOwogCS8qCiAJICogcmVjeWNsZSBidWZmZXIgYW5kIHN0YXJ0IG5ldyByZXF1ZXN0IHJlcGVhdCB1bnRpbCBvdXRib3VuZAogCSAqIHF1ZXVlIGlzIGVtcHR5IG9yIGFkYXB0ZXIgc2h1dGRvd24gaXMgcmVxdWVzdGVkCkBAIC0xMjE0LDcgKzExNTUsNiBAQAogCiAJY2FzZSBGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEOgogCQlpZiAoc3RhdHVzX3F1YWwgPj4gNCAhPSBzdGF0dXNfcXVhbCAlIDB4ZikgewotCQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9QT1JUX0hBTkRMRV9OT1RfVkFMSURcbiIpOwogCQkJZGVidWdfdGV4dF9ldmVudChuZXdfZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMywKIAkJCQkJICJmc2Zfc19waGFuZF9udjAiKTsKIAkJCS8qCkBAIC0xMjIzLDcgKzExNjMsNiBAQAogCQkJICogZmluZS4KIAkJCSAqLwogCQl9IGVsc2UgewotCQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9QT1JUX0hBTkRMRV9OT1RfVkFMSURcbiIpOwogCQkJWkZDUF9MT0dfSU5GTygiVGVtcG9yYXJ5IHBvcnQgaWRlbnRpZmllciAweCV4IGZvciAiCiAJCQkJICAgICAgInBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyBpbnZhbGlkLiAiCiAJCQkJICAgICAgIlRoaXMgbWF5IGhhcHBlbiBvY2Nhc2lvbmFsbHkuXG4iLApAQCAtMTI0Niw3ICsxMTg1LDYgQEAKIAljYXNlIEZTRl9MVU5fSEFORExFX05PVF9WQUxJRDoKIAkJaWYgKHN0YXR1c19xdWFsID4+IDQgIT0gc3RhdHVzX3F1YWwgJSAweGYpIHsKIAkJCS8qIDIgKi8KLQkJCVpGQ1BfTE9HX0ZMQUdTKDAsICJGU0ZfTFVOX0hBTkRMRV9OT1RfVkFMSURcbiIpOwogCQkJZGVidWdfdGV4dF9ldmVudChuZXdfZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMywKIAkJCQkJICJmc2Zfc19saGFuZF9udjAiKTsKIAkJCS8qCkBAIC0xMjU1LDcgKzExOTMsNiBAQAogCQkJICogVGhpcyBpcyBmaW5lLgogCQkJICovCiAJCX0gZWxzZSB7Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX0xVTl9IQU5ETEVfTk9UX1ZBTElEXG4iKTsKIAkJCVpGQ1BfTE9HX0lORk8KIAkJCSAgICAoIldhcm5pbmc6IFRlbXBvcmFyeSBMVU4gaWRlbnRpZmllciAweCV4IG9mIExVTiAiCiAJCQkgICAgICIweCUwMTZMeCBvbiBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgaXMgIgpAQCAtMTI3OSw3ICsxMjE2LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9GQ1BfQ09NTUFORF9ET0VTX05PVF9FWElTVDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9GQ1BfQ09NTUFORF9ET0VTX05PVF9FWElTVFxuIik7CiAJCXJldHZhbCA9IDA7CiAJCWRlYnVnX3RleHRfZXZlbnQobmV3X2ZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDMsCiAJCQkJICJmc2Zfc19ub19leGlzdCIpOwpAQCAtMTI4Nyw1MCArMTIyMywzNyBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1BPUlRfQk9YRUQ6Ci0JCS8qIDIgKi8KLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9QT1JUX0JPWEVEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiUmVtb3RlIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyBuZWVkcyB0byAiCiAJCQkgICAgICAiYmUgcmVvcGVuZWRcbiIsIHVuaXQtPnBvcnQtPnd3cG4sCiAJCQkgICAgICB6ZmNwX2dldF9idXNpZF9ieV91bml0KHVuaXQpKTsKIAkJZGVidWdfdGV4dF9ldmVudChuZXdfZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMiwKIAkJCQkgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZCh1bml0LT5wb3J0KTsKIAkJbmV3X2ZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1IKIAkJICAgIHwgWkZDUF9TVEFUVVNfRlNGUkVRX1JFVFJZOwogCQlicmVhazsKIAogCWNhc2UgRlNGX0xVTl9CT1hFRDoKLSAgICAgICAgICAgICAgICBaRkNQX0xPR19GTEFHUygwLCAiRlNGX0xVTl9CT1hFRFxuIik7CiAgICAgICAgICAgICAgICAgWkZDUF9MT0dfSU5GTygKICAgICAgICAgICAgICAgICAgICAgICAgICJ1bml0IDB4JTAxNkx4IG9uIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyBuZWVkcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAidG8gYmUgcmVvcGVuZWRcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bml0LT5mY3BfbHVuLCB1bml0LT5wb3J0LT53d3BuLAogICAgICAgICAgICAgICAgICAgICAgICAgemZjcF9nZXRfYnVzaWRfYnlfdW5pdCh1bml0KSk7CiAgICAgICAgICAgICAgICAgZGVidWdfdGV4dF9ldmVudChuZXdfZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMSwgImZzZl9zX2xib3hlZCIpOwotICAgICAgICAgICAgICAgIHpmY3BfZXJwX3VuaXRfcmVvcGVuKHVuaXQsIDApOwotICAgICAgICAgICAgICAgIHpmY3BfY21kX2RiZl9ldmVudF9mc2YoInVuaXRib3giLCBuZXdfZnNmX3JlcSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfZnNmX3JlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXNfcXVhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1bmlvbiBmc2Zfc3RhdHVzX3F1YWwpKTsKKwkJemZjcF9lcnBfdW5pdF9ib3hlZCh1bml0KTsKICAgICAgICAgICAgICAgICBuZXdfZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUgogICAgICAgICAgICAgICAgICAgICAgICAgfCBaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKIAljYXNlIEZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEU6Ci0JCS8qIDIgKi8KLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEVcbiIpOwogCQlzd2l0Y2ggKG5ld19mc2ZfcmVxLT5xdGNiLT5oZWFkZXIuZnNmX3N0YXR1c19xdWFsLndvcmRbMF0pIHsKIAkJY2FzZSBGU0ZfU1FfSU5WT0tFX0xJTktfVEVTVF9QUk9DRURVUkU6Ci0JCQlaRkNQX0xPR19GTEFHUygyLAotCQkJCSAgICAgICAiRlNGX1NRX0lOVk9LRV9MSU5LX1RFU1RfUFJPQ0VEVVJFXG4iKTsKIAkJCWRlYnVnX3RleHRfZXZlbnQobmV3X2ZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDEsCiAJCQkJCSAiZnNmX3NxX2x0ZXN0Iik7Ci0JCQkvKiByZW9wZW5pbmcgbGluayB0byBwb3J0ICovCi0JCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKKwkJCXpmY3BfdGVzdF9saW5rKHVuaXQtPnBvcnQpOwogCQkJbmV3X2ZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCQlicmVhazsKIAkJY2FzZSBGU0ZfU1FfVUxQX0RFUEVOREVOVF9FUlBfUkVRVUlSRUQ6Ci0JCQlaRkNQX0xPR19GTEFHUygyLAotCQkJCSAgICAgICAiRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEXG4iKTsKIAkJCS8qIFNDU0kgc3RhY2sgd2lsbCBlc2NhbGF0ZSAqLwogCQkJZGVidWdfdGV4dF9ldmVudChuZXdfZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMSwKIAkJCQkJICJmc2Zfc3FfdWxwIik7CkBAIC0xMzUwLDggKzEyNzMsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCS8qIDMgKi8KLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9HT09EXG4iKTsKIAkJcmV0dmFsID0gMDsKIAkJbmV3X2ZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfQUJPUlRTVUNDRUVERUQ7CiAJCWJyZWFrOwpAQCAtMTU1MywxMiArMTQ3NCwxMCBAQAogCXN3aXRjaCAoaGVhZGVyLT5mc2Zfc3RhdHVzKSB7CiAKICAgICAgICAgY2FzZSBGU0ZfR09PRDoKLSAgICAgICAgICAgICAgICBaRkNQX0xPR19GTEFHUygyLCJGU0ZfR09PRFxuIik7CiAgICAgICAgICAgICAgICAgcmV0dmFsID0gMDsKIAkJYnJlYWs7CiAKICAgICAgICAgY2FzZSBGU0ZfU0VSVklDRV9DTEFTU19OT1RfU1VQUE9SVEVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1NFUlZJQ0VfQ0xBU1NfTk9UX1NVUFBPUlRFRFxuIik7CiAJCWlmIChhZGFwdGVyLT5mY19zZXJ2aWNlX2NsYXNzIDw9IDMpIHsKIAkJCVpGQ1BfTE9HX0lORk8oImVycm9yOiBhZGFwdGVyICVzIGRvZXMgbm90IHN1cHBvcnQgZmMgIgogCQkJCSAgICAgICJjbGFzcyAlZC5cbiIsCkBAIC0xNTc4LDE3ICsxNDk3LDE0IEBACiAJCWJyZWFrOwogCiAgICAgICAgIGNhc2UgRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRToKLSAgICAgICAgICAgICAgICBaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRVxuIik7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdKXsKICAgICAgICAgICAgICAgICBjYXNlIEZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRToKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsIkZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRVxuIik7CiAJCQkvKiByZW9wZW5pbmcgbGluayB0byBwb3J0ICovCiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc3FfbHRlc3QiKTsKIAkJCXpmY3BfdGVzdF9saW5rKHBvcnQpOwogCQkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKIAkJCWJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwiRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEXG4iKTsKIAkJCS8qIEVSUCBzdHJhdGVneSB3aWxsIGVzY2FsYXRlICovCiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc3FfdWxwIik7CiAJCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwpAQCAtMTYwMiw3ICsxNTE4LDYgQEAKICAgICAgICAgICAgICAgICBicmVhazsKIAogCWNhc2UgRlNGX0FDQ0VTU19ERU5JRUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQUNDRVNTX0RFTklFRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYWNjZXNzIGRlbmllZCwgY2Fubm90IHNlbmQgZ2VuZXJpYyBzZXJ2aWNlICIKIAkJCQkiY29tbWFuZCAoYWRhcHRlciAlcywgcG9ydCBkX2lkPTB4JTA4eClcbiIsCiAJCQkJemZjcF9nZXRfYnVzaWRfYnlfcG9ydChwb3J0KSwgcG9ydC0+ZF9pZCk7CkBAIC0xNjI1LDcgKzE1NDAsNiBAQAogCQlicmVhazsKIAogICAgICAgICBjYXNlIEZTRl9HRU5FUklDX0NPTU1BTkRfUkVKRUNURUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfR0VORVJJQ19DT01NQU5EX1JFSkVDVEVEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiZ2VuZXJpYyBzZXJ2aWNlIGNvbW1hbmQgcmVqZWN0ZWQgIgogCQkJICAgICAgIihhZGFwdGVyICVzLCBwb3J0IGRfaWQ9MHglMDh4KVxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X3BvcnQocG9ydCksIHBvcnQtPmRfaWQpOwpAQCAtMTYzOCw3ICsxNTUyLDYgQEAKIAkJYnJlYWs7CiAKICAgICAgICAgY2FzZSBGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1BPUlRfSEFORExFX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX0RFQlVHKCJUZW1wb3JhcnkgcG9ydCBpZGVudGlmaWVyIDB4JXggZm9yIHBvcnQgIgogCQkJICAgICAgICIweCUwMTZMeCBvbiBhZGFwdGVyICVzIGludmFsaWQuIFRoaXMgbWF5ICIKIAkJCSAgICAgICAiaGFwcGVuIG9jY2FzaW9uYWxseS5cbiIsIHBvcnQtPmhhbmRsZSwKQEAgLTE2NTMsMTIgKzE1NjYsMTEgQEAKIAkJYnJlYWs7CiAKICAgICAgICAgY2FzZSBGU0ZfUE9SVF9CT1hFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9QT1JUX0JPWEVEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygicG9ydCBuZWVkcyB0byBiZSByZW9wZW5lZCAiCiAJCQkgICAgICAiKGFkYXB0ZXIgJXMsIHBvcnQgZF9pZD0weCUwOHgpXG4iLAogCQkJICAgICAgemZjcF9nZXRfYnVzaWRfYnlfcG9ydChwb3J0KSwgcG9ydC0+ZF9pZCk7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMiwgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbihwb3J0LCAwKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZChwb3J0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUgogCQkgICAgfCBaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwpAQCAtMTY2Niw3ICsxNTc4LDYgQEAKIAkvKiBmb2xsb3dpbmcgc3RhdGVzIHNob3VsZCBuZXZlciBvY2N1cmUsIGFsbCBjYXNlcyBhdm9pZGVkCiAJICAgaW4gemZjcF9mc2Zfc2VuZF9jdCAtIGJ1dCB3aG8ga25vd3MgLi4uICovCiAJY2FzZSBGU0ZfUEFZTE9BRF9TSVpFX01JU01BVENIOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1BBWUxPQURfU0laRV9NSVNNQVRDSFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oInBheWxvYWQgc2l6ZSBtaXNtYXRjaCAoYWRhcHRlcjogJXMsICIKIAkJCSAgICAgICJyZXFfYnVmX2xlbmd0aD0lZCwgcmVzcF9idWZfbGVuZ3RoPSVkKVxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlciksCkBAIC0xNjc0LDcgKzE1ODUsNiBAQAogCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQlicmVhazsKIAljYXNlIEZTRl9SRVFVRVNUX1NJWkVfVE9PX0xBUkdFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1JFUVVFU1RfU0laRV9UT09fTEFSR0VcbiIpOwogCQlaRkNQX0xPR19JTkZPKCJyZXF1ZXN0IHNpemUgdG9vIGxhcmdlIChhZGFwdGVyOiAlcywgIgogCQkJICAgICAgInJlcV9idWZfbGVuZ3RoPSVkKVxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlciksCkBAIC0xNjgyLDcgKzE1OTIsNiBAQAogCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQlicmVhazsKIAljYXNlIEZTRl9SRVNQT05TRV9TSVpFX1RPT19MQVJHRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9SRVNQT05TRV9TSVpFX1RPT19MQVJHRVxuIik7CiAJCVpGQ1BfTE9HX0lORk8oInJlc3BvbnNlIHNpemUgdG9vIGxhcmdlIChhZGFwdGVyOiAlcywgIgogCQkJICAgICAgInJlc3BfYnVmX2xlbmd0aD0lZClcbiIsCiAJCQkgICAgICB6ZmNwX2dldF9idXNpZF9ieV9hZGFwdGVyKGFkYXB0ZXIpLApAQCAtMTY5MCw3ICsxNTk5LDYgQEAKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKIAkJYnJlYWs7CiAJY2FzZSBGU0ZfU0JBTF9NSVNNQVRDSDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9TQkFMX01JU01BVENIXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiU0JBTCBtaXNtYXRjaCAoYWRhcHRlcjogJXMsIHJlcV9idWZfbGVuZ3RoPSVkLCAiCiAJCQkgICAgICAicmVzcF9idWZfbGVuZ3RoPSVkKVxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlciksCkBAIC0xODQ2LDggKzE3NTQsOCBAQAogc3RhdGljIGludCB6ZmNwX2ZzZl9zZW5kX2Vsc19oYW5kbGVyKHN0cnVjdCB6ZmNwX2ZzZl9yZXEgKmZzZl9yZXEpCiB7CiAJc3RydWN0IHpmY3BfYWRhcHRlciAqYWRhcHRlcjsKLQlmY19pZF90IGRfaWQ7CiAJc3RydWN0IHpmY3BfcG9ydCAqcG9ydDsKKwlmY19pZF90IGRfaWQ7CiAJc3RydWN0IGZzZl9xdGNiX2hlYWRlciAqaGVhZGVyOwogCXN0cnVjdCBmc2ZfcXRjYl9ib3R0b21fc3VwcG9ydCAqYm90dG9tOwogCXN0cnVjdCB6ZmNwX3NlbmRfZWxzICpzZW5kX2VsczsKQEAgLTE4NTYsNiArMTc2NCw3IEBACiAKIAlzZW5kX2VscyA9IGZzZl9yZXEtPmRhdGEuc2VuZF9lbHM7CiAJYWRhcHRlciA9IHNlbmRfZWxzLT5hZGFwdGVyOworCXBvcnQgPSBzZW5kX2Vscy0+cG9ydDsKIAlkX2lkID0gc2VuZF9lbHMtPmRfaWQ7CiAJaGVhZGVyID0gJmZzZl9yZXEtPnF0Y2ItPmhlYWRlcjsKIAlib3R0b20gPSAmZnNmX3JlcS0+cXRjYi0+Ym90dG9tLnN1cHBvcnQ7CkBAIC0xODY2LDEyICsxNzc1LDEwIEBACiAJc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXMpIHsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfR09PRFxuIik7CiAJCXJldHZhbCA9IDA7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfU0VSVklDRV9DTEFTU19OT1RfU1VQUE9SVEVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1NFUlZJQ0VfQ0xBU1NfTk9UX1NVUFBPUlRFRFxuIik7CiAJCWlmIChhZGFwdGVyLT5mY19zZXJ2aWNlX2NsYXNzIDw9IDMpIHsKIAkJCVpGQ1BfTE9HX0lORk8oImVycm9yOiBhZGFwdGVyICVzIGRvZXMgIgogCQkJCSAgICAgICJub3Qgc3VwcG9ydCBmaWJyZWNoYW5uZWwgY2xhc3MgJWQuXG4iLApAQCAtMTg5MSwyMiArMTc5OCwxNCBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEVcbiIpOwogCQlzd2l0Y2ggKGhlYWRlci0+ZnNmX3N0YXR1c19xdWFsLndvcmRbMF0pewogCQljYXNlIEZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRToKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsIkZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRVxuIik7CiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc3FfbHRlc3QiKTsKLQkJCWlmIChzZW5kX2Vscy0+bHNfY29kZSAhPSBaRkNQX0xTX0FESVNDKSB7Ci0JCQkJcmVhZF9sb2NrKCZ6ZmNwX2RhdGEuY29uZmlnX2xvY2spOwotCQkJCXBvcnQgPSB6ZmNwX2dldF9wb3J0X2J5X2RpZChhZGFwdGVyLCBkX2lkKTsKLQkJCQlpZiAocG9ydCkKLQkJCQkJemZjcF90ZXN0X2xpbmsocG9ydCk7Ci0JCQkJcmVhZF91bmxvY2soJnpmY3BfZGF0YS5jb25maWdfbG9jayk7Ci0JCQl9CisJCQlpZiAocG9ydCAmJiAoc2VuZF9lbHMtPmxzX2NvZGUgIT0gWkZDUF9MU19BRElTQykpCisJCQkJemZjcF90ZXN0X2xpbmsocG9ydCk7CiAJCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQkJYnJlYWs7CiAJCWNhc2UgRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwiRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEXG4iKTsKIAkJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMSwgImZzZl9zcV91bHAiKTsKIAkJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCQlyZXR2YWwgPQpAQCAtMTkxNSw3ICsxODE0LDYgQEAKIAkJCQkJICAgICAgJmhlYWRlci0+ZnNmX3N0YXR1c19xdWFsLndvcmRbMl0pOwogCQkJYnJlYWs7CiAJCWNhc2UgRlNGX1NRX1JFVFJZX0lGX1BPU1NJQkxFOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9TUV9SRVRSWV9JRl9QT1NTSUJMRVxuIik7CiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc3FfcmV0cnkiKTsKIAkJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCQlicmVhazsKQEAgLTE5MjgsNyArMTgyNiw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfRUxTX0NPTU1BTkRfUkVKRUNURUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfRUxTX0NPTU1BTkRfUkVKRUNURURcbiIpOwogCQlaRkNQX0xPR19JTkZPKCJFTFMgaGFzIGJlZW4gcmVqZWN0ZWQgYmVjYXVzZSBjb21tYW5kIGZpbHRlciAiCiAJCQkgICAgICAicHJvaGliaXRlZCBzZW5kaW5nICIKIAkJCSAgICAgICIoYWRhcHRlcjogJXMsIHBvcnQgZF9pZDogMHglMDh4KVxuIiwKQEAgLTE5MzcsNyArMTgzNCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUEFZTE9BRF9TSVpFX01JU01BVENIOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1BBWUxPQURfU0laRV9NSVNNQVRDSFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oCiAJCQkiRUxTIHJlcXVlc3Qgc2l6ZSBhbmQgRUxTIHJlc3BvbnNlIHNpemUgbXVzdCBiZSBlaXRoZXIgIgogCQkJImJvdGggMCwgb3IgYm90aCBncmVhdGVyIHRoYW4gMCAiCkBAIC0xOTQ4LDcgKzE4NDQsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1JFUVVFU1RfU0laRV9UT09fTEFSR0U6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfUkVRVUVTVF9TSVpFX1RPT19MQVJHRVxuIik7CiAJCVpGQ1BfTE9HX0lORk8oCiAJCQkiTGVuZ3RoIG9mIHRoZSBFTFMgcmVxdWVzdCBidWZmZXIsICIKIAkJCSJzcGVjaWZpZWQgaW4gUVRDQiBib3R0b20sICIKQEAgLTE5NjAsNyArMTg1NSw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUkVTUE9OU0VfU0laRV9UT09fTEFSR0U6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfUkVTUE9OU0VfU0laRV9UT09fTEFSR0VcbiIpOwogCQlaRkNQX0xPR19JTkZPKAogCQkJIkxlbmd0aCBvZiB0aGUgRUxTIHJlc3BvbnNlIGJ1ZmZlciwgIgogCQkJInNwZWNpZmllZCBpbiBRVENCIGJvdHRvbSwgIgpAQCAtMTk3Myw3ICsxODY3LDYgQEAKIAogCWNhc2UgRlNGX1NCQUxfTUlTTUFUQ0g6CiAJCS8qIHNob3VsZCBuZXZlciBvY2N1cmUsIGF2b2lkZWQgaW4gemZjcF9mc2Zfc2VuZF9lbHMgKi8KLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9TQkFMX01JU01BVENIXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiU0JBTCBtaXNtYXRjaCAoYWRhcHRlcjogJXMsIHJlcV9idWZfbGVuZ3RoPSVkLCAiCiAJCQkgICAgICAicmVzcF9idWZfbGVuZ3RoPSVkKVxuIiwKIAkJCSAgICAgIHpmY3BfZ2V0X2J1c2lkX2J5X2FkYXB0ZXIoYWRhcHRlciksCkBAIC0xOTgyLDcgKzE4NzUsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0FDQ0VTU19ERU5JRUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQUNDRVNTX0RFTklFRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYWNjZXNzIGRlbmllZCwgY2Fubm90IHNlbmQgRUxTIGNvbW1hbmQgIgogCQkJCSIoYWRhcHRlciAlcywgcG9ydCBkX2lkPTB4JTA4eClcbiIsCiAJCQkJemZjcF9nZXRfYnVzaWRfYnlfYWRhcHRlcihhZGFwdGVyKSwgZF9pZCk7CkBAIC0yMDAwLDExICsxODkyLDggQEAKIAkJCX0KIAkJfQogCQlkZWJ1Z190ZXh0X2V2ZW50KGFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc19hY2Nlc3MiKTsKLQkJcmVhZF9sb2NrKCZ6ZmNwX2RhdGEuY29uZmlnX2xvY2spOwotCQlwb3J0ID0gemZjcF9nZXRfcG9ydF9ieV9kaWQoYWRhcHRlciwgZF9pZCk7CiAJCWlmIChwb3J0ICE9IE5VTEwpCiAJCQl6ZmNwX2VycF9wb3J0X2FjY2Vzc19kZW5pZWQocG9ydCk7Ci0JCXJlYWRfdW5sb2NrKCZ6ZmNwX2RhdGEuY29uZmlnX2xvY2spOwogCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQlicmVhazsKIApAQCAtMjE5NSwxNCArMjA4NCwxMSBAQAogCXN3aXRjaCAoZnNmX3JlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXMpIHsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfR09PRFxuIik7Ci0KIAkJaWYgKHpmY3BfZnNmX2V4Y2hhbmdlX2NvbmZpZ19ldmFsdWF0ZShmc2ZfcmVxLCAxKSkKIAkJCXJldHVybiAtRUlPOwogCiAJCXN3aXRjaCAoYWRhcHRlci0+ZmNfdG9wb2xvZ3kpIHsKIAkJY2FzZSBGU0ZfVE9QT19QMlA6Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1RPUE9fUDJQXG4iKTsKIAkJCVpGQ1BfTE9HX05PUk1BTCgiUG9pbnQtdG8tUG9pbnQgZmlicmVjaGFubmVsICIKIAkJCQkJImNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQgYXQgYWRhcHRlciAlc1xuIgogCQkJCQkiUGVlciBXV05OIDB4JTAxNmxseCwgIgpAQCAtMjIxNiw3ICsyMTAyLDYgQEAKIAkJCQkJICJ0b3AtcC10by1wIik7CiAJCQlicmVhazsKIAkJY2FzZSBGU0ZfVE9QT19BTDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfVE9QT19BTFxuIik7CiAJCQlaRkNQX0xPR19OT1JNQUwoImVycm9yOiBBcmJpdHJhdGVkIGxvb3AgZmlicmVjaGFubmVsICIKIAkJCQkJInRvcG9sb2d5IGRldGVjdGVkIGF0IGFkYXB0ZXIgJXMgIgogCQkJCQkidW5zdXBwb3J0ZWQsIHNodXR0aW5nIGRvd24gYWRhcHRlclxuIiwKQEAgLTIyMjYsNyArMjExMSw2IEBACiAJCQl6ZmNwX2VycF9hZGFwdGVyX3NodXRkb3duKGFkYXB0ZXIsIDApOwogCQkJcmV0dXJuIC1FSU87CiAJCWNhc2UgRlNGX1RPUE9fRkFCUklDOgotCQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9UT1BPX0ZBQlJJQ1xuIik7CiAJCQlaRkNQX0xPR19JTkZPKCJTd2l0Y2hlZCBmYWJyaWMgZmlicmVjaGFubmVsICIKIAkJCQkgICAgICAibmV0d29yayBkZXRlY3RlZCBhdCBhZGFwdGVyICVzLlxuIiwKIAkJCQkgICAgICB6ZmNwX2dldF9idXNpZF9ieV9hZGFwdGVyKGFkYXB0ZXIpKTsKQEAgLTIzNTcsNyArMjI0MSw3IEBACiAJd2FpdF9ldmVudChmc2ZfcmVxLT5jb21wbGV0aW9uX3dxLAogCQkgICBmc2ZfcmVxLT5zdGF0dXMgJiBaRkNQX1NUQVRVU19GU0ZSRVFfQ09NUExFVEVEKTsKIAlkZWxfdGltZXJfc3luYyh0aW1lcik7Ci0JemZjcF9mc2ZfcmVxX2NsZWFudXAoZnNmX3JlcSk7CisJemZjcF9mc2ZfcmVxX2ZyZWUoZnNmX3JlcSk7CiAgb3V0OgogCWtmcmVlKHRpbWVyKTsKIAlyZXR1cm4gcmV0dmFsOwpAQCAtMjM3OSw3ICsyMjYzLDYgQEAKIAogCXN3aXRjaCAoZnNmX3JlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXMpIHsKICAgICAgICAgY2FzZSBGU0ZfR09PRDoKLSAgICAgICAgICAgICAgICBaRkNQX0xPR19GTEFHUygyLCJGU0ZfR09PRFxuIik7CiAgICAgICAgICAgICAgICAgYm90dG9tID0gJmZzZl9yZXEtPnF0Y2ItPmJvdHRvbS5wb3J0OwogICAgICAgICAgICAgICAgIG1lbWNweShkYXRhLCBib3R0b20sIHNpemVvZigqZGF0YSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjQ4MSw3ICsyMzY0LDYgQEAKIAlzd2l0Y2ggKGhlYWRlci0+ZnNmX3N0YXR1cykgewogCiAJY2FzZSBGU0ZfUE9SVF9BTFJFQURZX09QRU46Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJGU0ZfUE9SVF9BTFJFQURZX09QRU5cbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoImJ1ZzogcmVtb3RlIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyAiCiAJCQkJImlzIGFscmVhZHkgb3Blbi5cbiIsCiAJCQkJcG9ydC0+d3dwbiwgemZjcF9nZXRfYnVzaWRfYnlfcG9ydChwb3J0KSk7CkBAIC0yNDk0LDcgKzIzNzYsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0FDQ0VTU19ERU5JRUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQUNDRVNTX0RFTklFRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiQWNjZXNzIGRlbmllZCwgY2Fubm90IG9wZW4gcG9ydCAweCUwMTZMeCAiCiAJCQkJIm9uIGFkYXB0ZXIgJXNcbiIsCiAJCQkJcG9ydC0+d3dwbiwgemZjcF9nZXRfYnVzaWRfYnlfcG9ydChwb3J0KSk7CkBAIC0yNTE3LDcgKzIzOTgsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX01BWElNVU1fTlVNQkVSX09GX1BPUlRTX0VYQ0VFREVEOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX01BWElNVU1fTlVNQkVSX09GX1BPUlRTX0VYQ0VFREVEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiZXJyb3I6IFRoZSBGU0YgYWRhcHRlciBpcyBvdXQgb2YgcmVzb3VyY2VzLiAiCiAJCQkgICAgICAiVGhlIHJlbW90ZSBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgIgogCQkJICAgICAgImNvdWxkIG5vdCBiZSBvcGVuZWQuIERpc2FibGluZyBpdC5cbiIsCkBAIC0yNTI5LDExICsyNDA5LDggQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEU6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQURBUFRFUl9TVEFUVVNfQVZBSUxBQkxFXG4iKTsKIAkJc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdKSB7CiAJCWNhc2UgRlNGX1NRX0lOVk9LRV9MSU5LX1RFU1RfUFJPQ0VEVVJFOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwKLQkJCQkgICAgICAgIkZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRVxuIik7CiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDEsCiAJCQkJCSAiZnNmX3NxX2x0ZXN0Iik7CiAJCQkvKiBFUlAgc3RyYXRlZ3kgd2lsbCBlc2NhbGF0ZSAqLwpAQCAtMjU0Niw3ICsyNDIzLDYgQEAKIAkJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfRVJST1I7CiAJCQlicmVhazsKIAkJY2FzZSBGU0ZfU1FfTk9fUkVUUllfUE9TU0lCTEU6Ci0JCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX1NRX05PX1JFVFJZX1BPU1NJQkxFXG4iKTsKIAkJCVpGQ1BfTE9HX05PUk1BTCgiVGhlIHJlbW90ZSBwb3J0IDB4JTAxNkx4IG9uICIKIAkJCQkJImFkYXB0ZXIgJXMgY291bGQgbm90IGJlIG9wZW5lZC4gIgogCQkJCQkiRGlzYWJsaW5nIGl0LlxuIiwKQEAgLTI1NzIsNyArMjQ0OCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfR09PRDoKLQkJWkZDUF9MT0dfRkxBR1MoMywgIkZTRl9HT09EXG4iKTsKIAkJLyogc2F2ZSBwb3J0IGhhbmRsZSBhc3NpZ25lZCBieSBGU0YgKi8KIAkJcG9ydC0+aGFuZGxlID0gaGVhZGVyLT5wb3J0X2hhbmRsZTsKIAkJWkZDUF9MT0dfSU5GTygiVGhlIHJlbW90ZSBwb3J0IDB4JTAxNkx4IHZpYSBhZGFwdGVyICVzICIKQEAgLTI1ODIsNiArMjQ1Nyw5IEBACiAJCS8qIG1hcmsgcG9ydCBhcyBvcGVuICovCiAJCWF0b21pY19zZXRfbWFzayhaRkNQX1NUQVRVU19DT01NT05fT1BFTiB8CiAJCQkJWkZDUF9TVEFUVVNfUE9SVF9QSFlTX09QRU4sICZwb3J0LT5zdGF0dXMpOworCQlhdG9taWNfY2xlYXJfbWFzayhaRkNQX1NUQVRVU19DT01NT05fQUNDRVNTX0RFTklFRCB8CisJCSAgICAgICAgICAgICAgICAgIFpGQ1BfU1RBVFVTX0NPTU1PTl9BQ0NFU1NfQk9YRUQsCisJCSAgICAgICAgICAgICAgICAgICZwb3J0LT5zdGF0dXMpOwogCQlyZXR2YWwgPSAwOwogCQkvKiBjaGVjayB3aGV0aGVyIERfSUQgaGFzIGNoYW5nZWQgZHVyaW5nIG9wZW4gKi8KIAkJLyoKQEAgLTI2MzAsNyArMjUwOCw2IEBACiAKIAljYXNlIEZTRl9VTktOT1dOX09QX1NVQlRZUEU6CiAJCS8qIHNob3VsZCBuZXZlciBvY2N1cmUsIHN1YnR5cGUgbm90IHNldCBpbiB6ZmNwX2ZzZl9vcGVuX3BvcnQgKi8KLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9VTktOT1dOX09QX1NVQlRZUEVcbiIpOwogCQlaRkNQX0xPR19JTkZPKCJ1bmtub3duIG9wZXJhdGlvbiBzdWJ0eXBlIChhZGFwdGVyOiAlcywgIgogCQkJICAgICAgIm9wX3N1YnR5cGU9MHgleClcbiIsCiAJCQkgICAgICB6ZmNwX2dldF9idXNpZF9ieV9wb3J0KHBvcnQpLApAQCAtMjczOSw3ICsyNjE2LDYgQEAKIAlzd2l0Y2ggKGZzZl9yZXEtPnF0Y2ItPmhlYWRlci5mc2Zfc3RhdHVzKSB7CiAKIAljYXNlIEZTRl9QT1JUX0hBTkRMRV9OT1RfVkFMSUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiVGVtcG9yYXJ5IHBvcnQgaWRlbnRpZmllciAweCV4IGZvciBwb3J0ICIKIAkJCSAgICAgICIweCUwMTZMeCBvbiBhZGFwdGVyICVzIGludmFsaWQuIFRoaXMgbWF5IGhhcHBlbiAiCiAJCQkgICAgICAib2NjYXNpb25hbGx5LlxuIiwgcG9ydC0+aGFuZGxlLApAQCAtMjc1NSw3ICsyNjMxLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEU6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQURBUFRFUl9TVEFUVVNfQVZBSUxBQkxFXG4iKTsKIAkJLyogTm90ZTogRlNGIGhhcyBhY3R1YWxseSBjbG9zZWQgdGhlIHBvcnQgaW4gdGhpcyBjYXNlLgogCQkgKiBUaGUgc3RhdHVzIGNvZGUgaXMganVzdCBkYWZ0LiBGaW5nZXJzIGNyb3NzZWQgZm9yIGEgY2hhbmdlCiAJCSAqLwpAQCAtMjc2Myw3ICsyNjM4LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9HT09EOgotCQlaRkNQX0xPR19GTEFHUygzLCAiRlNGX0dPT0RcbiIpOwogCQlaRkNQX0xPR19UUkFDRSgicmVtb3RlIHBvcnQgMHgwMTYlTHggb24gYWRhcHRlciAlcyBjbG9zZWQsICIKIAkJCSAgICAgICAicG9ydCBoYW5kbGUgMHgleFxuIiwgcG9ydC0+d3dwbiwKIAkJCSAgICAgICB6ZmNwX2dldF9idXNpZF9ieV9wb3J0KHBvcnQpLCBwb3J0LT5oYW5kbGUpOwpAQCAtMjg4NCw3ICsyNzU4LDYgQEAKIAlzd2l0Y2ggKGhlYWRlci0+ZnNmX3N0YXR1cykgewogCiAJY2FzZSBGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1BPUlRfSEFORExFX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oIlRlbXBvcmFyeSBwb3J0IGlkZW50aWZpZXIgMHgleCBpbnZhbGlkIgogCQkJICAgICAgIihhZGFwdGVyICVzLCBwb3J0IDB4JTAxNkx4KS4gIgogCQkJICAgICAgIlRoaXMgbWF5IGhhcHBlbiBvY2Nhc2lvbmFsbHkuXG4iLApAQCAtMjkwMiw3ICsyNzc1LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9BQ0NFU1NfREVOSUVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FDQ0VTU19ERU5JRURcbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoIkFjY2VzcyBkZW5pZWQsIGNhbm5vdCBjbG9zZSAiCiAJCQkJInBoeXNpY2FsIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlc1xuIiwKIAkJCQlwb3J0LT53d3BuLCB6ZmNwX2dldF9idXNpZF9ieV9wb3J0KHBvcnQpKTsKQEAgLTI5MjUsMzIgKzI3OTcsMjYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9QT1JUX0JPWEVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1BPUlRfQk9YRURcbiIpOwogCQlaRkNQX0xPR19ERUJVRygiVGhlIHJlbW90ZSBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgIgogCQkJICAgICAgICIlcyBuZWVkcyB0byBiZSByZW9wZW5lZCBidXQgaXQgd2FzIGF0dGVtcHRlZCAiCiAJCQkgICAgICAgInRvIGNsb3NlIGl0IHBoeXNpY2FsbHkuXG4iLAogCQkJICAgICAgIHBvcnQtPnd3cG4sCiAJCQkgICAgICAgemZjcF9nZXRfYnVzaWRfYnlfcG9ydChwb3J0KSk7CiAJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMSwgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbihwb3J0LCAwKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZChwb3J0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUiB8CiAJCQlaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQURBUFRFUl9TVEFUVVNfQVZBSUxBQkxFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRVxuIik7CiAJCXN3aXRjaCAoaGVhZGVyLT5mc2Zfc3RhdHVzX3F1YWwud29yZFswXSkgewogCQljYXNlIEZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRToKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJGU0ZfU1FfSU5WT0tFX0xJTktfVEVTVF9QUk9DRURVUkVcbiIpOwogCQkJZGVidWdfdGV4dF9ldmVudChmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAxLAogCQkJCQkgImZzZl9zcV9sdGVzdCIpOwogCQkJLyogVGhpcyB3aWxsIG5vdyBiZSBlc2NhbGF0ZWQgYnkgRVJQICovCiAJCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQkJYnJlYWs7CiAJCWNhc2UgRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwKLQkJCQkgICAgICAgIkZTRl9TUV9VTFBfREVQRU5ERU5UX0VSUF9SRVFVSVJFRFxuIik7CiAJCQkvKiBFUlAgc3RyYXRlZ3kgd2lsbCBlc2NhbGF0ZSAqLwogCQkJZGVidWdfdGV4dF9ldmVudChmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAxLAogCQkJCQkgImZzZl9zcV91bHAiKTsKQEAgLTI5NzAsNyArMjgzNiw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfR09PRDoKLQkJWkZDUF9MT0dfRkxBR1MoMywgIkZTRl9HT09EXG4iKTsKIAkJWkZDUF9MT0dfREVCVUcoIlJlbW90ZSBwb3J0IDB4JTAxNkx4IHZpYSBhZGFwdGVyICVzICIKIAkJCSAgICAgICAicGh5c2ljYWxseSBjbG9zZWQsIHBvcnQgaGFuZGxlIDB4JXhcbiIsCiAJCQkgICAgICAgcG9ydC0+d3dwbiwKQEAgLTMxMTYsNyArMjk4MSw2IEBACiAJc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXMpIHsKIAogCWNhc2UgRlNGX1BPUlRfSEFORExFX05PVF9WQUxJRDoKLQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9QT1JUX0hBTkRMRV9OT1RfVkFMSURcbiIpOwogCQlaRkNQX0xPR19JTkZPKCJUZW1wb3JhcnkgcG9ydCBpZGVudGlmaWVyIDB4JXggIgogCQkJICAgICAgImZvciBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgaW52YWxpZCAiCiAJCQkgICAgICAiVGhpcyBtYXkgaGFwcGVuIG9jY2FzaW9uYWxseVxuIiwKQEAgLTMxMzIsNyArMjk5Niw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfTFVOX0FMUkVBRFlfT1BFTjoKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9MVU5fQUxSRUFEWV9PUEVOXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJidWc6IEF0dGVtcHRlZCB0byBvcGVuIHVuaXQgMHglMDE2THggb24gIgogCQkJCSJyZW1vdGUgcG9ydCAweCUwMTZMeCBvbiBhZGFwdGVyICVzIHR3aWNlLlxuIiwKIAkJCQl1bml0LT5mY3BfbHVuLApAQCAtMzE0Myw3ICszMDA2LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9BQ0NFU1NfREVOSUVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FDQ0VTU19ERU5JRURcbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoIkFjY2VzcyBkZW5pZWQsIGNhbm5vdCBvcGVuIHVuaXQgMHglMDE2THggb24gIgogCQkJCSJyZW1vdGUgcG9ydCAweCUwMTZMeCBvbiBhZGFwdGVyICVzXG4iLAogCQkJCXVuaXQtPmZjcF9sdW4sIHVuaXQtPnBvcnQtPnd3cG4sCkBAIC0zMTY5LDE4ICszMDMxLDE2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUE9SVF9CT1hFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9QT1JUX0JPWEVEXG4iKTsKIAkJWkZDUF9MT0dfREVCVUcoIlRoZSByZW1vdGUgcG9ydCAweCUwMTZMeCBvbiBhZGFwdGVyICVzICIKIAkJCSAgICAgICAibmVlZHMgdG8gYmUgcmVvcGVuZWRcbiIsCiAJCQkgICAgICAgdW5pdC0+cG9ydC0+d3dwbiwgemZjcF9nZXRfYnVzaWRfYnlfdW5pdCh1bml0KSk7CiAJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMiwgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZCh1bml0LT5wb3J0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUiB8CiAJCQlaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfTFVOX1NIQVJJTkdfVklPTEFUSU9OOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0xVTl9TSEFSSU5HX1ZJT0xBVElPTlxuIik7CiAJCWlmIChoZWFkZXItPmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdICE9IDApIHsKIAkJCVpGQ1BfTE9HX05PUk1BTCgiRkNQLUxVTiAweCVMeCBhdCB0aGUgcmVtb3RlIHBvcnQgIgogCQkJCQkid2l0aCBXV1BOIDB4JUx4ICIKQEAgLTMyMjQsNyArMzA4NCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfTUFYSU1VTV9OVU1CRVJfT0ZfTFVOU19FWENFRURFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9NQVhJTVVNX05VTUJFUl9PRl9MVU5TX0VYQ0VFREVEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiZXJyb3I6IFRoZSBhZGFwdGVyIHJhbiBvdXQgb2YgcmVzb3VyY2VzLiAiCiAJCQkgICAgICAiVGhlcmUgaXMgbm8gaGFuZGxlICh0ZW1wb3JhcnkgcG9ydCBpZGVudGlmaWVyKSAiCiAJCQkgICAgICAiYXZhaWxhYmxlIGZvciB1bml0IDB4JTAxNkx4IG9uIHBvcnQgMHglMDE2THggIgpAQCAtMzIzOSwyMCArMzA5OCwxNSBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9BREFQVEVSX1NUQVRVU19BVkFJTEFCTEVcbiIpOwogCQlzd2l0Y2ggKGhlYWRlci0+ZnNmX3N0YXR1c19xdWFsLndvcmRbMF0pIHsKIAkJY2FzZSBGU0ZfU1FfSU5WT0tFX0xJTktfVEVTVF9QUk9DRURVUkU6Ci0JCQlaRkNQX0xPR19GTEFHUygyLAotCQkJCSAgICAgICAiRlNGX1NRX0lOVk9LRV9MSU5LX1RFU1RfUFJPQ0VEVVJFXG4iKTsKIAkJCS8qIFJlLWVzdGFibGlzaCBsaW5rIHRvIHBvcnQgKi8KIAkJCWRlYnVnX3RleHRfZXZlbnQoYWRhcHRlci0+ZXJwX2RiZiwgMSwKIAkJCQkJICJmc2Zfc3FfbHRlc3QiKTsKLQkJCXpmY3BfZXJwX3BvcnRfcmVvcGVuKHVuaXQtPnBvcnQsIDApOworCQkJemZjcF90ZXN0X2xpbmsodW5pdC0+cG9ydCk7CiAJCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQkJYnJlYWs7CiAJCWNhc2UgRlNGX1NRX1VMUF9ERVBFTkRFTlRfRVJQX1JFUVVJUkVEOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwKLQkJCQkgICAgICAgIkZTRl9TUV9VTFBfREVQRU5ERU5UX0VSUF9SRVFVSVJFRFxuIik7CiAJCQkvKiBFUlAgc3RyYXRlZ3kgd2lsbCBlc2NhbGF0ZSAqLwogCQkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAxLAogCQkJCQkgImZzZl9zcV91bHAiKTsKQEAgLTMyNzEsNyArMzEyNSw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfSU5WQUxJRF9DT01NQU5EX09QVElPTjoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9JTlZBTElEX0NPTU1BTkRfT1BUSU9OXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKAogCQkJIkludmFsaWQgb3B0aW9uIDB4JXggaGFzIGJlZW4gc3BlY2lmaWVkICIKIAkJCSJpbiBRVENCIGJvdHRvbSBzZW50IHRvIHRoZSBhZGFwdGVyICVzXG4iLApAQCAtMzI4Miw3ICszMTM1LDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9HT09EOgotCQlaRkNQX0xPR19GTEFHUygzLCAiRlNGX0dPT0RcbiIpOwogCQkvKiBzYXZlIExVTiBoYW5kbGUgYXNzaWduZWQgYnkgRlNGICovCiAJCXVuaXQtPmhhbmRsZSA9IGhlYWRlci0+bHVuX2hhbmRsZTsKIAkJWkZDUF9MT0dfVFJBQ0UoInVuaXQgMHglMDE2THggb24gcmVtb3RlIHBvcnQgMHglMDE2THggb24gIgpAQCAtMzI5Myw3ICszMTQ1LDkgQEAKIAkJCSAgICAgICB1bml0LT5oYW5kbGUpOwogCQkvKiBtYXJrIHVuaXQgYXMgb3BlbiAqLwogCQlhdG9taWNfc2V0X21hc2soWkZDUF9TVEFUVVNfQ09NTU9OX09QRU4sICZ1bml0LT5zdGF0dXMpOwotCisJCWF0b21pY19jbGVhcl9tYXNrKFpGQ1BfU1RBVFVTX0NPTU1PTl9BQ0NFU1NfREVOSUVEIHwKKwkJICAgICAgICAgICAgICAgICAgWkZDUF9TVEFUVVNfQ09NTU9OX0FDQ0VTU19CT1hFRCwKKwkJICAgICAgICAgICAgICAgICAgJnVuaXQtPnN0YXR1cyk7CiAJCWlmIChhZGFwdGVyLT5zdXBwb3J0ZWRfZmVhdHVyZXMgJiBGU0ZfRkVBVFVSRV9MVU5fU0hBUklORyl7CiAJCQlpZiAoIWV4Y2x1c2l2ZSkKIAkJICAgICAgICAgICAgICAgIGF0b21pY19zZXRfbWFzayhaRkNQX1NUQVRVU19VTklUX1NIQVJFRCwKQEAgLTM0MzcsNyArMzI5MSw2IEBACiAJc3dpdGNoIChmc2ZfcmVxLT5xdGNiLT5oZWFkZXIuZnNmX3N0YXR1cykgewogCiAJY2FzZSBGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1BPUlRfSEFORExFX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oIlRlbXBvcmFyeSBwb3J0IGlkZW50aWZpZXIgMHgleCBmb3IgcG9ydCAiCiAJCQkgICAgICAiMHglMDE2THggb24gYWRhcHRlciAlcyBpbnZhbGlkLiBUaGlzIG1heSAiCiAJCQkgICAgICAiaGFwcGVuIGluIHJhcmUgY2lyY3Vtc3RhbmNlc1xuIiwKQEAgLTM0NTgsNyArMzMxMSw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfTFVOX0hBTkRMRV9OT1RfVkFMSUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJGU0ZfTFVOX0hBTkRMRV9OT1RfVkFMSURcbiIpOwogCQlaRkNQX0xPR19JTkZPKCJUZW1wb3JhcnkgTFVOIGlkZW50aWZpZXIgMHgleCBvZiB1bml0ICIKIAkJCSAgICAgICIweCUwMTZMeCBvbiBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgaXMgIgogCQkJICAgICAgImludmFsaWQuIFRoaXMgbWF5IGhhcHBlbiBvY2Nhc2lvbmFsbHkuXG4iLApAQCAtMzQ4MCwzMiArMzMzMiwyNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX1BPUlRfQk9YRUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfUE9SVF9CT1hFRFxuIik7CiAJCVpGQ1BfTE9HX0RFQlVHKCJUaGUgcmVtb3RlIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyAiCiAJCQkgICAgICAgIm5lZWRzIHRvIGJlIHJlb3BlbmVkXG4iLAogCQkJICAgICAgIHVuaXQtPnBvcnQtPnd3cG4sCiAJCQkgICAgICAgemZjcF9nZXRfYnVzaWRfYnlfdW5pdCh1bml0KSk7CiAJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMiwgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZCh1bml0LT5wb3J0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUiB8CiAJCQlaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQURBUFRFUl9TVEFUVVNfQVZBSUxBQkxFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRVxuIik7CiAJCXN3aXRjaCAoZnNmX3JlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdKSB7CiAJCWNhc2UgRlNGX1NRX0lOVk9LRV9MSU5LX1RFU1RfUFJPQ0VEVVJFOgotCQkJWkZDUF9MT0dfRkxBR1MoMiwKLQkJCQkgICAgICAgIkZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRVxuIik7CiAJCQkvKiByZS1lc3RhYmxpc2ggbGluayB0byBwb3J0ICovCiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDEsCiAJCQkJCSAiZnNmX3NxX2x0ZXN0Iik7Ci0JCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKKwkJCXpmY3BfdGVzdF9saW5rKHVuaXQtPnBvcnQpOwogCQkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKIAkJCWJyZWFrOwogCQljYXNlIEZTRl9TUV9VTFBfREVQRU5ERU5UX0VSUF9SRVFVSVJFRDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJGU0ZfU1FfVUxQX0RFUEVOREVOVF9FUlBfUkVRVUlSRURcbiIpOwogCQkJLyogRVJQIHN0cmF0ZWd5IHdpbGwgZXNjYWxhdGUgKi8KIAkJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMSwKIAkJCQkJICJmc2Zfc3FfdWxwIik7CkBAIC0zNTI2LDcgKzMzNzIsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDMsICJGU0ZfR09PRFxuIik7CiAJCVpGQ1BfTE9HX1RSQUNFKCJ1bml0IDB4JTAxNkx4IG9uIHBvcnQgMHglMDE2THggb24gYWRhcHRlciAlcyAiCiAJCQkgICAgICAgImNsb3NlZCwgcG9ydCBoYW5kbGUgMHgleFxuIiwKIAkJCSAgICAgICB1bml0LT5mY3BfbHVuLApAQCAtMzYyMiw3ICszNDY3LDYgQEAKIAkgKi8KIAlzd2l0Y2ggKHNjc2lfY21uZC0+c2NfZGF0YV9kaXJlY3Rpb24pIHsKIAljYXNlIERNQV9OT05FOgotCQlaRkNQX0xPR19GTEFHUygzLCAiRE1BX05PTkVcbiIpOwogCQlmc2ZfcmVxLT5xdGNiLT5ib3R0b20uaW8uZGF0YV9kaXJlY3Rpb24gPSBGU0ZfREFUQURJUl9DTU5EOwogCQkvKgogCQkgKiBGSVhNRShxZGlvKToKQEAgLTM2MzIsMTkgKzM0NzYsMTYgQEAKIAkJc2J0eXBlID0gU0JBTF9GTEFHUzBfVFlQRV9SRUFEOwogCQlicmVhazsKIAljYXNlIERNQV9GUk9NX0RFVklDRToKLQkJWkZDUF9MT0dfRkxBR1MoMywgIkRNQV9GUk9NX0RFVklDRVxuIik7CiAJCWZzZl9yZXEtPnF0Y2ItPmJvdHRvbS5pby5kYXRhX2RpcmVjdGlvbiA9IEZTRl9EQVRBRElSX1JFQUQ7CiAJCXNidHlwZSA9IFNCQUxfRkxBR1MwX1RZUEVfUkVBRDsKIAkJZmNwX2NtbmRfaXUtPnJkZGF0YSA9IDE7CiAJCWJyZWFrOwogCWNhc2UgRE1BX1RPX0RFVklDRToKLQkJWkZDUF9MT0dfRkxBR1MoMywgIkRNQV9UT19ERVZJQ0VcbiIpOwogCQlmc2ZfcmVxLT5xdGNiLT5ib3R0b20uaW8uZGF0YV9kaXJlY3Rpb24gPSBGU0ZfREFUQURJUl9XUklURTsKIAkJc2J0eXBlID0gU0JBTF9GTEFHUzBfVFlQRV9XUklURTsKIAkJZmNwX2NtbmRfaXUtPndkZGF0YSA9IDE7CiAJCWJyZWFrOwogCWNhc2UgRE1BX0JJRElSRUNUSU9OQUw6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJETUFfQklESVJFQ1RJT05BTCBub3Qgc3VwcG9ydGVkXG4iKTsKIAlkZWZhdWx0OgogCQkvKgogCQkgKiBkdW1teSwgY2F0Y2ggdGhpcyBjb25kaXRpb24gZWFybGllcgpAQCAtMzg3Nyw3ICszNzE4LDYgQEAKIAlzd2l0Y2ggKGhlYWRlci0+ZnNmX3N0YXR1cykgewogCiAJY2FzZSBGU0ZfUE9SVF9IQU5ETEVfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygxLCAiRlNGX1BPUlRfSEFORExFX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oIlRlbXBvcmFyeSBwb3J0IGlkZW50aWZpZXIgMHgleCBmb3IgcG9ydCAiCiAJCQkgICAgICAiMHglMDE2THggb24gYWRhcHRlciAlcyBpbnZhbGlkXG4iLAogCQkJICAgICAgdW5pdC0+cG9ydC0+aGFuZGxlLApAQCAtMzg5Miw3ICszNzMyLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9MVU5fSEFORExFX05PVF9WQUxJRDoKLQkJWkZDUF9MT0dfRkxBR1MoMSwgIkZTRl9MVU5fSEFORExFX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX0lORk8oIlRlbXBvcmFyeSBMVU4gaWRlbnRpZmllciAweCV4IGZvciB1bml0ICIKIAkJCSAgICAgICIweCUwMTZMeCBvbiBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgaXMgIgogCQkJICAgICAgImludmFsaWQuIFRoaXMgbWF5IGhhcHBlbiBvY2Nhc2lvbmFsbHkuXG4iLApAQCAtMzkxMSw3ICszNzUwLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9IQU5ETEVfTUlTTUFUQ0g6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJGU0ZfSEFORExFX01JU01BVENIXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJidWc6IFRoZSBwb3J0IGhhbmRsZSAweCV4IGhhcyBjaGFuZ2VkICIKIAkJCQkidW5leHBlY3RlZGx5LiAoYWRhcHRlciAlcywgcG9ydCAweCUwMTZMeCwgIgogCQkJCSJ1bml0IDB4JTAxNkx4KVxuIiwKQEAgLTM5MzQsNyArMzc3Miw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfU0VSVklDRV9DTEFTU19OT1RfU1VQUE9SVEVEOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX1NFUlZJQ0VfQ0xBU1NfTk9UX1NVUFBPUlRFRFxuIik7CiAJCWlmIChmc2ZfcmVxLT5hZGFwdGVyLT5mY19zZXJ2aWNlX2NsYXNzIDw9IDMpIHsKIAkJCVpGQ1BfTE9HX05PUk1BTCgiZXJyb3I6IFRoZSBhZGFwdGVyICVzIGRvZXMgIgogCQkJCQkibm90IHN1cHBvcnQgZmlicmVjaGFubmVsIGNsYXNzICVkLlxuIiwKQEAgLTM5NTksNyArMzc5Niw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfRkNQTFVOX05PVF9WQUxJRDoKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIkZTRl9GQ1BMVU5fTk9UX1ZBTElEXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJidWc6IHVuaXQgMHglMDE2THggb24gcG9ydCAweCUwMTZMeCBvbiAiCiAJCQkJImFkYXB0ZXIgJXMgZG9lcyBub3QgaGF2ZSBjb3JyZWN0IHVuaXQgIgogCQkJCSJoYW5kbGUgMHgleFxuIiwKQEAgLTM5ODIsNyArMzgxOCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQUNDRVNTX0RFTklFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9BQ0NFU1NfREVOSUVEXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJBY2Nlc3MgZGVuaWVkLCBjYW5ub3Qgc2VuZCBGQ1AgY29tbWFuZCB0byAiCiAJCQkJInVuaXQgMHglMDE2THggb24gcG9ydCAweCUwMTZMeCBvbiAiCiAJCQkJImFkYXB0ZXIgJXNcbiIsCXVuaXQtPmZjcF9sdW4sIHVuaXQtPnBvcnQtPnd3cG4sCkBAIC00MDA2LDcgKzM4NDEsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0RJUkVDVElPTl9JTkRJQ0FUT1JfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX0RJUkVDVElPTl9JTkRJQ0FUT1JfTk9UX1ZBTElEXG4iKTsKIAkJWkZDUF9MT0dfSU5GTygiYnVnOiBJbnZhbGlkIGRhdGEgZGlyZWN0aW9uIGdpdmVuIGZvciB1bml0ICIKIAkJCSAgICAgICIweCUwMTZMeCBvbiBwb3J0IDB4JTAxNkx4IG9uIGFkYXB0ZXIgJXMgIgogCQkJICAgICAgIihkZWJ1ZyBpbmZvICVkKVxuIiwKQEAgLTQwMjYsNyArMzg2MCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQ01ORF9MRU5HVEhfTk9UX1ZBTElEOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX0NNTkRfTEVOR1RIX05PVF9WQUxJRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTAogCQkgICAgKCJidWc6IEFuIGludmFsaWQgY29udHJvbC1kYXRhLWJsb2NrIGxlbmd0aCBmaWVsZCAiCiAJCSAgICAgIndhcyBmb3VuZCBpbiBhIGNvbW1hbmQgZm9yIHVuaXQgMHglMDE2THggb24gcG9ydCAiCkBAIC00MDQ2LDY5ICszODc5LDQzIEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfUE9SVF9CT1hFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9QT1JUX0JPWEVEXG4iKTsKIAkJWkZDUF9MT0dfREVCVUcoIlRoZSByZW1vdGUgcG9ydCAweCUwMTZMeCBvbiBhZGFwdGVyICVzICIKIAkJCSAgICAgICAibmVlZHMgdG8gYmUgcmVvcGVuZWRcbiIsCiAJCQkgICAgICAgdW5pdC0+cG9ydC0+d3dwbiwgemZjcF9nZXRfYnVzaWRfYnlfdW5pdCh1bml0KSk7CiAJCWRlYnVnX3RleHRfZXZlbnQoZnNmX3JlcS0+YWRhcHRlci0+ZXJwX2RiZiwgMiwgImZzZl9zX3Bib3hlZCIpOwotCQl6ZmNwX2VycF9wb3J0X3Jlb3Blbih1bml0LT5wb3J0LCAwKTsKLQkJemZjcF9jbWRfZGJmX2V2ZW50X2ZzZigicG9ydGJveCIsIGZzZl9yZXEsCi0JCQkJICAgICAgICZoZWFkZXItPmZzZl9zdGF0dXNfcXVhbCwKLQkJCQkgICAgICAgc2l6ZW9mICh1bmlvbiBmc2Zfc3RhdHVzX3F1YWwpKTsKKwkJemZjcF9lcnBfcG9ydF9ib3hlZCh1bml0LT5wb3J0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUiB8CiAJCQlaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfTFVOX0JPWEVEOgotCQlaRkNQX0xPR19GTEFHUygwLCAiRlNGX0xVTl9CT1hFRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgidW5pdCBuZWVkcyB0byBiZSByZW9wZW5lZCAoYWRhcHRlciAlcywgIgogCQkJCSJ3d3BuPTB4JTAxNkx4LCBmY3BfbHVuPTB4JTAxNkx4KVxuIiwKIAkJCQl6ZmNwX2dldF9idXNpZF9ieV91bml0KHVuaXQpLAogCQkJCXVuaXQtPnBvcnQtPnd3cG4sIHVuaXQtPmZjcF9sdW4pOwogCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDEsICJmc2Zfc19sYm94ZWQiKTsKLQkJemZjcF9lcnBfdW5pdF9yZW9wZW4odW5pdCwgMCk7Ci0JCXpmY3BfY21kX2RiZl9ldmVudF9mc2YoInVuaXRib3giLCBmc2ZfcmVxLAotCQkJCSAgICAgICAmaGVhZGVyLT5mc2Zfc3RhdHVzX3F1YWwsCi0JCQkJICAgICAgIHNpemVvZih1bmlvbiBmc2Zfc3RhdHVzX3F1YWwpKTsKKwkJemZjcF9lcnBfdW5pdF9ib3hlZCh1bml0KTsKIAkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUgogCQkJfCBaRkNQX1NUQVRVU19GU0ZSRVFfUkVUUlk7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQURBUFRFUl9TVEFUVVNfQVZBSUxBQkxFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FEQVBURVJfU1RBVFVTX0FWQUlMQUJMRVxuIik7CiAJCXN3aXRjaCAoaGVhZGVyLT5mc2Zfc3RhdHVzX3F1YWwud29yZFswXSkgewogCQljYXNlIEZTRl9TUV9JTlZPS0VfTElOS19URVNUX1BST0NFRFVSRToKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJGU0ZfU1FfSU5WT0tFX0xJTktfVEVTVF9QUk9DRURVUkVcbiIpOwogCQkJLyogcmUtZXN0YWJsaXNoIGxpbmsgdG8gcG9ydCAqLwogCQkJZGVidWdfdGV4dF9ldmVudChmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAxLAogCQkJCQkgImZzZl9zcV9sdGVzdCIpOwotCQkJemZjcF9lcnBfcG9ydF9yZW9wZW4odW5pdC0+cG9ydCwgMCk7Ci0JCQl6ZmNwX2NtZF9kYmZfZXZlbnRfZnNmKAotCQkJCSJzcWx0ZXN0IiwKLQkJCQlmc2ZfcmVxLAotCQkJCSZoZWFkZXItPmZzZl9zdGF0dXNfcXVhbCwKLQkJCQlzaXplb2YgKHVuaW9uIGZzZl9zdGF0dXNfcXVhbCkpOwotCQkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKKyAJCQl6ZmNwX3Rlc3RfbGluayh1bml0LT5wb3J0KTsKIAkJCWJyZWFrOwogCQljYXNlIEZTRl9TUV9VTFBfREVQRU5ERU5UX0VSUF9SRVFVSVJFRDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDMsCi0JCQkJICAgICAgICJGU0ZfU1FfVUxQX0RFUEVOREVOVF9FUlBfUkVRVUlSRURcbiIpOwogCQkJLyogRklYTUUoaHcpIG5lZWQgcHJvcGVyIHNwZWNzIGZvciBwcm9wZXIgYWN0aW9uICovCiAJCQkvKiBsZXQgc2NzaSBzdGFjayBkZWFsIHdpdGggcmV0cmllcyBhbmQgZXNjYWxhdGlvbiAqLwogCQkJZGVidWdfdGV4dF9ldmVudChmc2ZfcmVxLT5hZGFwdGVyLT5lcnBfZGJmLCAxLAogCQkJCQkgImZzZl9zcV91bHAiKTsKLQkJCXpmY3BfY21kX2RiZl9ldmVudF9mc2YoCi0JCQkJInNxZGVwZXJwIiwKLQkJCQlmc2ZfcmVxLAotCQkJCSZoZWFkZXItPmZzZl9zdGF0dXNfcXVhbCwKLQkJCQlzaXplb2YgKHVuaW9uIGZzZl9zdGF0dXNfcXVhbCkpOwotCQkJZnNmX3JlcS0+c3RhdHVzIHw9IFpGQ1BfU1RBVFVTX0ZTRlJFUV9FUlJPUjsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJLyogRklYTUU6IHNoYWxsIHdlIGNvbnNpZGVyIHRoaXMgYSBzdWNjZXNzZnVsIHRyYW5zZmVyPyAqLwogCQkJWkZDUF9MT0dfTk9STUFMCi0JCQkgICAgKCJidWc6IFdyb25nIHN0YXR1cyBxdWFsaWZpZXIgMHgleCBhcnJpdmVkLlxuIiwKKyAJCQkgICAgKCJVbmtub3duIHN0YXR1cyBxdWFsaWZpZXIgMHgleCBhcnJpdmVkLlxuIiwKIAkJCSAgICAgaGVhZGVyLT5mc2Zfc3RhdHVzX3F1YWwud29yZFswXSk7CiAJCQlkZWJ1Z190ZXh0X2V2ZW50KGZzZl9yZXEtPmFkYXB0ZXItPmVycF9kYmYsIDAsCiAJCQkJCSAiZnNmX3NxX2ludmFsOiIpOwpAQCAtNDExNywxNCArMzkyNCwxMyBAQAogCQkJCQlzaXplb2YodTMyKSk7CiAJCQlicmVhazsKIAkJfQorCQlmc2ZfcmVxLT5zdGF0dXMgfD0gWkZDUF9TVEFUVVNfRlNGUkVRX0VSUk9SOwogCQlicmVhazsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDMsICJGU0ZfR09PRFxuIik7CiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfRkNQX1JTUF9BVkFJTEFCTEU6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfRkNQX1JTUF9BVkFJTEFCTEVcbiIpOwogCQlicmVhazsKIAogCWRlZmF1bHQ6CkBAIC00MjE3LDE0ICs0MDIzLDEyIEBACiAJCVpGQ1BfTE9HX0RFQlVHKCJyc3BfbGVuIGlzIHZhbGlkXG4iKTsKIAkJc3dpdGNoIChmY3BfcnNwX2luZm9bM10pIHsKIAkJY2FzZSBSU1BfQ09ERV9HT09EOgotCQkJWkZDUF9MT0dfRkxBR1MoMywgIlJTUF9DT0RFX0dPT0RcbiIpOwogCQkJLyogb2ssIGNvbnRpbnVlICovCiAJCQlaRkNQX0xPR19UUkFDRSgibm8gZmFpbHVyZSBvciBUYXNrIE1hbmFnZW1lbnQgIgogCQkJCSAgICAgICAiRnVuY3Rpb24gY29tcGxldGVcbiIpOwogCQkJc2V0X2hvc3RfYnl0ZSgmc2NwbnQtPnJlc3VsdCwgRElEX09LKTsKIAkJCWJyZWFrOwogCQljYXNlIFJTUF9DT0RFX0xFTkdUSF9NSVNNQVRDSDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDAsICJSU1BfQ09ERV9MRU5HVEhfTUlTTUFUQ0hcbiIpOwogCQkJLyogaGFyZHdhcmUgYnVnICovCiAJCQlaRkNQX0xPR19OT1JNQUwoImJ1ZzogRkNQIHJlc3BvbnNlIGNvZGUgaW5kaWN0YXRlcyAiCiAJCQkJCSJ0aGF0IHRoZSBmaWJyZWNoYW5uZWwgcHJvdG9jb2wgZGF0YSAiCkBAIC00MjQyLDcgKzQwNDYsNiBAQAogCQkJc2V0X2hvc3RfYnl0ZSgmc2NwbnQtPnJlc3VsdCwgRElEX0VSUk9SKTsKIAkJCWdvdG8gc2tpcF9mc2ZzdGF0dXM7CiAJCWNhc2UgUlNQX0NPREVfRklFTERfSU5WQUxJRDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDAsICJSU1BfQ09ERV9GSUVMRF9JTlZBTElEXG4iKTsKIAkJCS8qIGRyaXZlciBvciBoYXJkd2FyZSBidWcgKi8KIAkJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBGQ1AgcmVzcG9uc2UgY29kZSBpbmRpY3RhdGVzICIKIAkJCQkJInRoYXQgdGhlIGZpYnJlY2hhbm5lbCBwcm90b2NvbCBkYXRhICIKQEAgLTQyNjEsNyArNDA2NCw2IEBACiAJCQl6ZmNwX2NtZF9kYmZfZXZlbnRfZnNmKCJjb2RlaW52IiwgZnNmX3JlcSwgTlVMTCwgMCk7CiAJCQlnb3RvIHNraXBfZnNmc3RhdHVzOwogCQljYXNlIFJTUF9DT0RFX1JPX01JU01BVENIOgotCQkJWkZDUF9MT0dfRkxBR1MoMCwgIlJTUF9DT0RFX1JPX01JU01BVENIXG4iKTsKIAkJCS8qIGhhcmR3YXJlIGJ1ZyAqLwogCQkJWkZDUF9MT0dfTk9STUFMKCJidWc6IFRoZSBGQ1AgcmVzcG9uc2UgY29kZSBpbmRpY2F0ZXMgIgogCQkJCQkidGhhdCBjb25mbGljdGluZyAgdmFsdWVzIGZvciB0aGUgIgpAQCAtNDQwNywxMyArNDIwOSwxMSBAQAogCS8qIGNoZWNrIEZDUF9SU1BfSU5GTyAqLwogCXN3aXRjaCAoZmNwX3JzcF9pbmZvWzNdKSB7CiAJY2FzZSBSU1BfQ09ERV9HT09EOgotCQlaRkNQX0xPR19GTEFHUygzLCAiUlNQX0NPREVfR09PRFxuIik7CiAJCS8qIG9rLCBjb250aW51ZSAqLwogCQlaRkNQX0xPR19ERUJVRygibm8gZmFpbHVyZSBvciBUYXNrIE1hbmFnZW1lbnQgIgogCQkJICAgICAgICJGdW5jdGlvbiBjb21wbGV0ZVxuIik7CiAJCWJyZWFrOwogCWNhc2UgUlNQX0NPREVfVEFTS01BTl9VTlNVUFA6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDAsICJSU1BfQ09ERV9UQVNLTUFOX1VOU1VQUFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBBIHJldWVzdGVkIHRhc2sgbWFuYWdlbWVudCBmdW5jdGlvbiAiCiAJCQkJImlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIHRhcmdldCBkZXZpY2UgIgogCQkJCSJ1bml0IDB4JTAxNkx4LCBwb3J0IDB4JTAxNkx4LCBhZGFwdGVyICVzXG4gIiwKQEAgLTQ0MjMsNyArNDIyMyw2IEBACiAJCWZzZl9yZXEtPnN0YXR1cyB8PSBaRkNQX1NUQVRVU19GU0ZSRVFfVE1GVU5DTk9UU1VQUDsKIAkJYnJlYWs7CiAJY2FzZSBSU1BfQ09ERV9UQVNLTUFOX0ZBSUxFRDoKLQkJWkZDUF9MT0dfRkxBR1MoMCwgIlJTUF9DT0RFX1RBU0tNQU5fRkFJTEVEXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKCJidWc6IEEgcmV1ZXN0ZWQgdGFzayBtYW5hZ2VtZW50IGZ1bmN0aW9uICIKIAkJCQkiZmFpbGVkIHRvIGNvbXBsZXRlIHN1Y2Nlc3NmdWxseS4gIgogCQkJCSJ1bml0IDB4JTAxNkx4LCBwb3J0IDB4JTAxNkx4LCBhZGFwdGVyICVzLlxuIiwKQEAgLTQ2MTAsNyArNDQwOSw2IEBACiAJc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXMpIHsKIAogCWNhc2UgRlNGX0dPT0Q6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfR09PRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgKIAkJCSJUaGUgRlNGIHJlcXVlc3QgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZCAiCiAJCQkib24gdGhlIGFkYXB0ZXIgJXNcbiIsCkBAIC00NjE4LDcgKzQ0MTYsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX09QRVJBVElPTl9QQVJUSUFMTFlfU1VDQ0VTU0ZVTDoKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9PUEVSQVRJT05fUEFSVElBTExZX1NVQ0NFU1NGVUxcbiIpOwogCQlpZiAoYm90dG9tLT5vcGVyYXRpb25fc3VidHlwZSA9PSBGU0ZfQ0ZEQ19PUEVSQVRJT05fU1VCVFlQRSkgewogCQkJc3dpdGNoIChoZWFkZXItPmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdKSB7CiAKQEAgLTQ2NTUsNyArNDQ1Miw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQVVUSE9SSVpBVElPTl9GQUlMVVJFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FVVEhPUklaQVRJT05fRkFJTFVSRVxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgKIAkJCSJBZGFwdGVyICVzIGRvZXMgbm90IGFjY2VwdCBwcml2aWxlZ2VkIGNvbW1hbmRzXG4iLAogCQkJemZjcF9nZXRfYnVzaWRfYnlfYWRhcHRlcihhZGFwdGVyKSk7CkBAIC00NjY0LDcgKzQ0NjAsNiBAQAogCQlicmVhazsKIAogCWNhc2UgRlNGX0NGRENfRVJST1JfREVURUNURUQ6Ci0JCVpGQ1BfTE9HX0ZMQUdTKDIsICJGU0ZfQ0ZEQ19FUlJPUl9ERVRFQ1RFRFxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgKIAkJCSJFcnJvciBhdCBwb3NpdGlvbiAlZCBpbiB0aGUgQ0ZEQywgIgogCQkJIkNGREMgaXMgZGlzY2FyZGVkIGJ5IHRoZSBhZGFwdGVyICVzXG4iLApAQCAtNDY3NSw3ICs0NDcwLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9DT05UUk9MX0ZJTEVfVVBEQVRFX0VSUk9SOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0NPTlRST0xfRklMRV9VUERBVEVfRVJST1JcbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoCiAJCQkiQWRhcHRlciAlcyBjYW5ub3QgaGFyZGVuIHRoZSBjb250cm9sIGZpbGUsICIKIAkJCSJmaWxlIGlzIGRpc2NhcmRlZFxuIiwKQEAgLTQ2ODUsNyArNDQ3OSw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQ09OVFJPTF9GSUxFX1RPT19MQVJHRToKLQkJWkZDUF9MT0dfRkxBR1MoMiwgIkZTRl9DT05UUk9MX0ZJTEVfVE9PX0xBUkdFXG4iKTsKIAkJWkZDUF9MT0dfTk9STUFMKAogCQkJIkNvbnRyb2wgZmlsZSBpcyB0b28gbGFyZ2UsIGZpbGUgaXMgZGlzY2FyZGVkICIKIAkJCSJieSB0aGUgYWRhcHRlciAlc1xuIiwKQEAgLTQ2OTUsNyArNDQ4OCw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfQUNDRVNTX0NPTkZMSUNUX0RFVEVDVEVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0FDQ0VTU19DT05GTElDVF9ERVRFQ1RFRFxuIik7CiAJCWlmIChib3R0b20tPm9wZXJhdGlvbl9zdWJ0eXBlID09IEZTRl9DRkRDX09QRVJBVElPTl9TVUJUWVBFKQogCQkJWkZDUF9MT0dfTk9STUFMKAogCQkJCSJDRkRDIGhhcyBiZWVuIGRpc2NhcmRlZCBieSB0aGUgYWRhcHRlciAlcywgIgpAQCAtNDcwOCw3ICs0NTAwLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9DT05GTElDVFNfT1ZFUlJVTEVEOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0NPTkZMSUNUU19PVkVSUlVMRURcbiIpOwogCQlpZiAoYm90dG9tLT5vcGVyYXRpb25fc3VidHlwZSA9PSBGU0ZfQ0ZEQ19PUEVSQVRJT05fU1VCVFlQRSkKIAkJCVpGQ1BfTE9HX05PUk1BTCgKIAkJCQkiQ0ZEQyBoYXMgYmVlbiBhY3RpdmF0ZWQgb24gdGhlIGFkYXB0ZXIgJXMsICIKQEAgLTQ3MjEsNyArNDUxMiw2IEBACiAJCWJyZWFrOwogCiAJY2FzZSBGU0ZfVU5LTk9XTl9PUF9TVUJUWVBFOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX1VOS05PV05fT1BfU1VCVFlQRVxuIik7CiAJCVpGQ1BfTE9HX05PUk1BTCgidW5rbm93biBvcGVyYXRpb24gc3VidHlwZSAoYWRhcHRlcjogJXMsICIKIAkJCQkib3Bfc3VidHlwZT0weCV4KVxuIiwKIAkJCQl6ZmNwX2dldF9idXNpZF9ieV9hZGFwdGVyKGFkYXB0ZXIpLApAQCAtNDczMSw3ICs0NTIxLDYgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZTRl9JTlZBTElEX0NPTU1BTkRfT1BUSU9OOgotCQlaRkNQX0xPR19GTEFHUygyLCAiRlNGX0lOVkFMSURfQ09NTUFORF9PUFRJT05cbiIpOwogCQlaRkNQX0xPR19OT1JNQUwoCiAJCQkiSW52YWxpZCBvcHRpb24gMHgleCBoYXMgYmVlbiBzcGVjaWZpZWQgIgogCQkJImluIFFUQ0IgYm90dG9tIHNlbnQgdG8gdGhlIGFkYXB0ZXIgJXNcbiIsCkBAIC00ODAwLDcgKzQ1ODksNyBAQAogCSpzdGF0dXMgPSBmc2ZfcmVxLT5zdGF0dXM7CiAKIAkvKiBjbGVhbnVwIHJlcXVlc3QgKi8KLQl6ZmNwX2ZzZl9yZXFfY2xlYW51cChmc2ZfcmVxKTsKKwl6ZmNwX2ZzZl9yZXFfZnJlZShmc2ZfcmVxKTsKICBvdXQ6CiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTQ5OTksOSArNDc4OCw5IEBACiAJCWluY19zZXFfbm8gPSAwOwogCiAJLyogcHV0IGFsbG9jYXRlZCBGU0YgcmVxdWVzdCBhdCBsaXN0IHRhaWwgKi8KLQl3cml0ZV9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9hZGRfdGFpbCgmZnNmX3JlcS0+bGlzdCwgJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9oZWFkKTsKLQl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jaywgZmxhZ3MpOwogCiAJLyogZmlndXJlIG91dCBleHBpcmF0aW9uIHRpbWUgb2YgdGltZW91dCBhbmQgc3RhcnQgdGltZW91dCAqLwogCWlmICh1bmxpa2VseSh0aW1lcikpIHsKQEAgLTUwNDUsOSArNDgzNCw5IEBACiAJCSAqLwogCQlpZiAodGltZXIpCiAJCQlkZWxfdGltZXIodGltZXIpOwotCQl3cml0ZV9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jaywgZmxhZ3MpOwogCQlsaXN0X2RlbCgmZnNmX3JlcS0+bGlzdCk7Ci0JCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jaywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jaywgZmxhZ3MpOwogCQkvKgogCQkgKiBhZGp1c3QgdGhlIG51bWJlciBvZiBmcmVlIFNCQUxzIGluIHJlcXVlc3QgcXVldWUgYXMgd2VsbCBhcwogCQkgKiBwb3NpdGlvbiBvZiBmaXJzdCBvbmUKQEAgLTUwODUsMjUgKzQ4NzQsNCBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLS8qCi0gKiBmdW5jdGlvbjogICAgemZjcF9mc2ZfcmVxX2NsZWFudXAKLSAqCi0gKiBwdXJwb3NlOgljbGVhbnMgdXAgYW4gRlNGIHJlcXVlc3QgYW5kIHJlbW92ZXMgaXQgZnJvbSB0aGUgc3BlY2lmaWVkIGxpc3QKLSAqCi0gKiByZXR1cm5zOgotICoKLSAqIGFzc3VtcHRpb246CW5vIHBlbmRpbmcgU0IgaW4gU0JBTEVzIG90aGVyIHRoYW4gUVRDQgotICovCi12b2lkCi16ZmNwX2ZzZl9yZXFfY2xlYW51cChzdHJ1Y3QgemZjcF9mc2ZfcmVxICpmc2ZfcmVxKQotewotCXN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIgPSBmc2ZfcmVxLT5hZGFwdGVyOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQl3cml0ZV9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrLCBmbGFncyk7Ci0JbGlzdF9kZWwoJmZzZl9yZXEtPmxpc3QpOwotCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jaywgZmxhZ3MpOwotCXpmY3BfZnNmX3JlcV9mcmVlKGZzZl9yZXEpOwotfQotCiAjdW5kZWYgWkZDUF9MT0dfQVJFQQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9xZGlvLmMgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3FkaW8uYwppbmRleCAwNmU4NjJkLi4yNGUxNmVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3FkaW8uYworKysgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3FkaW8uYwpAQCAtMjI5LDUyICsyMjksMTQgQEAKIAkJCVpGQ1BfTE9HX1RSQUNFKCJzdGF0dXMgaXMiCiAJCQkJICAgICAgICIgUURJT19TVEFUVVNfT1VUQk9VTkRfSU5UIFxuIik7CiAJCX0KLQl9CQkJLy8gaWYgKFpGQ1BfTE9HX0NIRUNLKFpGQ1BfTE9HX0xFVkVMX1RSQUNFKSkKKwl9CiAJaWYgKHVubGlrZWx5KHN0YXR1cyAmIFFESU9fU1RBVFVTX0xPT0tfRk9SX0VSUk9SKSkgewogCQlyZXR2YWwgPSAtRUlPOwogCi0JCVpGQ1BfTE9HX0ZMQUdTKDEsICJRRElPX1NUQVRVU19MT09LX0ZPUl9FUlJPUiBcbiIpOwotCiAJCVpGQ1BfTE9HX0lORk8oIlFESU8gcHJvYmxlbSBvY2N1cnJlZCAoc3RhdHVzPTB4JXgsICIKIAkJCSAgICAgICJxZGlvX2Vycm9yPTB4JXgsIHNpZ2FfZXJyb3I9MHgleClcbiIsCiAJCQkgICAgICBzdGF0dXMsIHFkaW9fZXJyb3IsIHNpZ2FfZXJyb3IpOwogCi0JCWlmIChzdGF0dXMgJiBRRElPX1NUQVRVU19BQ1RJVkFURV9DSEVDS19DT05ESVRJT04pIHsKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJRRElPX1NUQVRVU19BQ1RJVkFURV9DSEVDS19DT05ESVRJT05cbiIpOwotCQl9Ci0JCWlmIChzdGF0dXMgJiBRRElPX1NUQVRVU19NT1JFX1RIQU5fT05FX1FESU9fRVJST1IpIHsKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJRRElPX1NUQVRVU19NT1JFX1RIQU5fT05FX1FESU9fRVJST1JcbiIpOwotCQl9Ci0JCWlmIChzdGF0dXMgJiBRRElPX1NUQVRVU19NT1JFX1RIQU5fT05FX1NJR0FfRVJST1IpIHsKLQkJCVpGQ1BfTE9HX0ZMQUdTKDIsCi0JCQkJICAgICAgICJRRElPX1NUQVRVU19NT1JFX1RIQU5fT05FX1NJR0FfRVJST1JcbiIpOwotCQl9Ci0KLQkJaWYgKHNpZ2FfZXJyb3IgJiBRRElPX1NJR0FfRVJST1JfQUNDRVNTX0VYQ0VQVElPTikgewotCQkJWkZDUF9MT0dfRkxBR1MoMiwgIlFESU9fU0lHQV9FUlJPUl9BQ0NFU1NfRVhDRVBUSU9OXG4iKTsKLQkJfQotCi0JCWlmIChzaWdhX2Vycm9yICYgUURJT19TSUdBX0VSUk9SX0JfQklUX1NFVCkgewotCQkJWkZDUF9MT0dfRkxBR1MoMiwgIlFESU9fU0lHQV9FUlJPUl9CX0JJVF9TRVRcbiIpOwotCQl9Ci0KLQkJc3dpdGNoIChxZGlvX2Vycm9yKSB7Ci0JCWNhc2UgMDoKLQkJCVpGQ1BfTE9HX0ZMQUdTKDMsICJRRElPX09LIik7Ci0JCQlicmVhazsKLQkJY2FzZSBTTFNCX1BfSU5QVVRfRVJST1I6Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiU0xTQl9QX0lOUFVUX0VSUk9SXG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIFNMU0JfUF9PVVRQVVRfRVJST1I6Ci0JCQlaRkNQX0xPR19GTEFHUygxLCAiU0xTQl9QX09VVFBVVF9FUlJPUlxuIik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiB1bmtub3duIFFESU8gZXJyb3IgMHgleFxuIiwKLQkJCQkJcWRpb19lcnJvcik7Ci0JCQlicmVhazsKLQkJfQogCQkvKiBSZXN0YXJ0aW5nIElPIG9uIHRoZSBmYWlsZWQgYWRhcHRlciBmcm9tIHNjcmF0Y2ggKi8KIAkJZGVidWdfdGV4dF9ldmVudChhZGFwdGVyLT5lcnBfZGJmLCAxLCAicWRpb19lcnIiKTsKICAgICAgICAgICAgICAgIC8qCkBAIC00ODQsMzcgKzQ0NiwzNyBAQAogemZjcF9xZGlvX3JlcWlkX2NoZWNrKHN0cnVjdCB6ZmNwX2FkYXB0ZXIgKmFkYXB0ZXIsIHZvaWQgKnNiYWxlX2FkZHIpCiB7CiAJc3RydWN0IHpmY3BfZnNmX3JlcSAqZnNmX3JlcTsKLQlpbnQgcmV0dmFsID0gMDsKIAogCS8qIGludmFsaWQgKHBlciBjb252ZW50aW9uIHVzZWQgaW4gdGhpcyBkcml2ZXIpICovCiAJaWYgKHVubGlrZWx5KCFzYmFsZV9hZGRyKSkgewogCQlaRkNQX0xPR19OT1JNQUwoImJ1ZzogaW52YWxpZCByZXFpZFxuIik7Ci0JCXJldHZhbCA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0OworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAkvKiB2YWxpZCByZXF1ZXN0IGlkIGFuZCB0aHVzIChob3BlZnVsbHkgOikgdmFsaWQgZnNmX3JlcSBhZGRyZXNzICovCiAJZnNmX3JlcSA9IChzdHJ1Y3QgemZjcF9mc2ZfcmVxICopIHNiYWxlX2FkZHI7CiAKKwkvKiBzZXJpYWxpemUgd2l0aCB6ZmNwX2ZzZl9yZXFfZGlzbWlzc19hbGwgKi8KKwlzcGluX2xvY2soJmFkYXB0ZXItPmZzZl9yZXFfbGlzdF9sb2NrKTsKKwlpZiAobGlzdF9lbXB0eSgmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2hlYWQpKSB7CisJCXNwaW5fdW5sb2NrKCZhZGFwdGVyLT5mc2ZfcmVxX2xpc3RfbG9jayk7CisJCXJldHVybiAwOworCX0KKwlsaXN0X2RlbCgmZnNmX3JlcS0+bGlzdCk7CisJYXRvbWljX2RlYygmYWRhcHRlci0+ZnNmX3JlcXNfYWN0aXZlKTsKKwlzcGluX3VubG9jaygmYWRhcHRlci0+ZnNmX3JlcV9saXN0X2xvY2spOworCQogCWlmICh1bmxpa2VseShhZGFwdGVyICE9IGZzZl9yZXEtPmFkYXB0ZXIpKSB7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBpbnZhbGlkIHJlcWlkIChmc2ZfcmVxPSVwLCAiCiAJCQkJImZzZl9yZXEtPmFkYXB0ZXI9JXAsIGFkYXB0ZXI9JXApXG4iLAogCQkJCWZzZl9yZXEsIGZzZl9yZXEtPmFkYXB0ZXIsIGFkYXB0ZXIpOwotCQlyZXR2YWwgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlaRkNQX0xPR19UUkFDRSgiZnNmX3JlcSBhdCAlcCwgUVRDQiBhdCAlcFxuIiwgZnNmX3JlcSwgZnNmX3JlcS0+cXRjYik7Ci0JaWYgKGxpa2VseShmc2ZfcmVxLT5xdGNiKSkgewotCQlaRkNQX0xPR19UUkFDRSgiaGV4IGR1bXAgb2YgUVRDQjpcbiIpOwotCQlaRkNQX0hFWF9EVU1QKFpGQ1BfTE9HX0xFVkVMX1RSQUNFLCAoY2hhciAqKSBmc2ZfcmVxLT5xdGNiLAotCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBmc2ZfcXRjYikpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAkvKiBmaW5pc2ggdGhlIEZTRiByZXF1ZXN0ICovCiAJemZjcF9mc2ZfcmVxX2NvbXBsZXRlKGZzZl9yZXEpOwotIG91dDoKLQlyZXR1cm4gcmV0dmFsOworCisJcmV0dXJuIDA7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9zY3NpLmMgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3Njc2kuYwppbmRleCBlMjFiNTQ3Li42OTY1OTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3Njc2kuYworKysgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3Njc2kuYwpAQCAtNDMzLDcgKzQzMyw3IEBACiAgKgkJRkFJTEVECS0gb3RoZXJ3aXNlCiAgKi8KIGludAotemZjcF9zY3NpX2VoX2Fib3J0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqc2NwbnQpCitfX3pmY3Bfc2NzaV9laF9hYm9ydF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKnNjcG50KQogewogCWludCByZXR2YWwgPSBTVUNDRVNTOwogCXN0cnVjdCB6ZmNwX2ZzZl9yZXEgKm5ld19mc2ZfcmVxLCAqb2xkX2ZzZl9yZXE7CkBAIC01NzUsNyArNTc1LDcgQEAKIAkgICAgKih1NjQgKikgJiBuZXdfZnNmX3JlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXNfcXVhbC53b3JkWzBdOwogCWRiZl9mc2ZfcXVhbFsxXSA9CiAJICAgICoodTY0ICopICYgbmV3X2ZzZl9yZXEtPnF0Y2ItPmhlYWRlci5mc2Zfc3RhdHVzX3F1YWwud29yZFsyXTsKLQl6ZmNwX2ZzZl9yZXFfY2xlYW51cChuZXdfZnNmX3JlcSk7CisJemZjcF9mc2ZfcmVxX2ZyZWUobmV3X2ZzZl9yZXEpOwogI2Vsc2UKIAlyZXR2YWwgPSB6ZmNwX2ZzZl9yZXFfd2FpdF9hbmRfY2xlYW51cChuZXdfZnNmX3JlcSwKIAkJCQkJICAgICAgIFpGQ1BfVU5JTlRFUlJVUFRJQkxFLCAmc3RhdHVzKTsKQEAgLTYxMSw2ICs2MTEsMTcgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCitpbnQKK3pmY3Bfc2NzaV9laF9hYm9ydF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKnNjcG50KQoreworCWludCByYzsKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzY3NpX2hvc3QgPSBzY3BudC0+ZGV2aWNlLT5ob3N0OworCXNwaW5fbG9ja19pcnEoc2NzaV9ob3N0LT5ob3N0X2xvY2spOworCXJjID0gX196ZmNwX3Njc2lfZWhfYWJvcnRfaGFuZGxlcihzY3BudCk7CisJc3Bpbl91bmxvY2tfaXJxKHNjc2lfaG9zdC0+aG9zdF9sb2NrKTsKKwlyZXR1cm4gcmM7Cit9CisKIC8qCiAgKiBmdW5jdGlvbjoJemZjcF9zY3NpX2VoX2RldmljZV9yZXNldF9oYW5kbGVyCiAgKgpAQCAtNjI1LDggKzYzNiw2IEBACiAJc3RydWN0IHpmY3BfdW5pdCAqdW5pdCA9IChzdHJ1Y3QgemZjcF91bml0ICopIHNjcG50LT5kZXZpY2UtPmhvc3RkYXRhOwogCXN0cnVjdCBTY3NpX0hvc3QgKnNjc2lfaG9zdCA9IHNjcG50LT5kZXZpY2UtPmhvc3Q7CiAKLQlzcGluX3VubG9ja19pcnEoc2NzaV9ob3N0LT5ob3N0X2xvY2spOwotCiAJaWYgKCF1bml0KSB7CiAJCVpGQ1BfTE9HX05PUk1BTCgiYnVnOiBUcmllZCByZXNldCBmb3Igbm9uZXhpc3RlbnQgdW5pdFxuIik7CiAJCXJldHZhbCA9IFNVQ0NFU1M7CkBAIC02NjksNyArNjc4LDYgQEAKIAkJcmV0dmFsID0gU1VDQ0VTUzsKIAl9CiAgb3V0OgotCXNwaW5fbG9ja19pcnEoc2NzaV9ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTcyMyw4ICs3MzEsNiBAQAogCXN0cnVjdCB6ZmNwX3VuaXQgKnVuaXQ7CiAJc3RydWN0IFNjc2lfSG9zdCAqc2NzaV9ob3N0ID0gc2NwbnQtPmRldmljZS0+aG9zdDsKIAotCXNwaW5fdW5sb2NrX2lycShzY3NpX2hvc3QtPmhvc3RfbG9jayk7Ci0KIAl1bml0ID0gKHN0cnVjdCB6ZmNwX3VuaXQgKikgc2NwbnQtPmRldmljZS0+aG9zdGRhdGE7CiAJWkZDUF9MT0dfTk9STUFMKCJidXMgcmVzZXQgYmVjYXVzZSBvZiBwcm9ibGVtcyB3aXRoICIKIAkJCSJ1bml0IDB4JTAxNkx4XG4iLCB1bml0LT5mY3BfbHVuKTsKQEAgLTczMiw3ICs3MzgsNiBAQAogCXpmY3BfZXJwX3dhaXQodW5pdC0+cG9ydC0+YWRhcHRlcik7CiAJcmV0dmFsID0gU1VDQ0VTUzsKIAotCXNwaW5fbG9ja19pcnEoc2NzaV9ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTc1MCw4ICs3NTUsNiBAQAogCXN0cnVjdCB6ZmNwX3VuaXQgKnVuaXQ7CiAJc3RydWN0IFNjc2lfSG9zdCAqc2NzaV9ob3N0ID0gc2NwbnQtPmRldmljZS0+aG9zdDsKIAotCXNwaW5fdW5sb2NrX2lycShzY3NpX2hvc3QtPmhvc3RfbG9jayk7Ci0KIAl1bml0ID0gKHN0cnVjdCB6ZmNwX3VuaXQgKikgc2NwbnQtPmRldmljZS0+aG9zdGRhdGE7CiAJWkZDUF9MT0dfTk9STUFMKCJob3N0IHJlc2V0IGJlY2F1c2Ugb2YgcHJvYmxlbXMgd2l0aCAiCiAJCQkidW5pdCAweCUwMTZMeFxuIiwgdW5pdC0+ZmNwX2x1bik7CkBAIC03NTksNyArNzYyLDYgQEAKIAl6ZmNwX2VycF93YWl0KHVuaXQtPnBvcnQtPmFkYXB0ZXIpOwogCXJldHZhbCA9IFNVQ0NFU1M7CiAKLQlzcGluX2xvY2tfaXJxKHNjc2lfaG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jIGIvZHJpdmVycy9zY3NpLzN3LTl4eHguYwppbmRleCBhMmIxOGY1Li4zNGRiYzM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKQEAgLTE2OTUsOCArMTY5NSw2IEBACiAKIAl0d19kZXYgPSAoVFdfRGV2aWNlX0V4dGVuc2lvbiAqKVNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCi0Jc3Bpbl91bmxvY2tfaXJxKHR3X2Rldi0+aG9zdC0+aG9zdF9sb2NrKTsKLQogCXR3X2Rldi0+bnVtX3Jlc2V0cysrOwogCiAJcHJpbnRrKEtFUk5fV0FSTklORyAiM3ctOXh4eDogc2NzaSVkOiBXQVJOSU5HOiAoMHglMDJYOjB4JTA0WCk6IFVuaXQgIyVkOiBDb21tYW5kICgweCV4KSB0aW1lZCBvdXQsIHJlc2V0dGluZyBjYXJkLlxuIiwgdHdfZGV2LT5ob3N0LT5ob3N0X25vLCBUV19EUklWRVIsIDB4MmMsIFNDcG50LT5kZXZpY2UtPmlkLCBTQ3BudC0+Y21uZFswXSk7CkBAIC0xNzA5LDcgKzE3MDcsNiBAQAogCiAJcmV0dmFsID0gU1VDQ0VTUzsKIG91dDoKLQlzcGluX2xvY2tfaXJxKHR3X2Rldi0+aG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gcmV0dmFsOwogfSAvKiBFbmQgdHdhX3Njc2lfZWhfcmVzZXQoKSAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3cteHh4eC5jIGIvZHJpdmVycy9zY3NpLzN3LXh4eHguYwppbmRleCA0OGY5ZWNlLi5iNmRjNTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvM3cteHh4eC5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMKQEAgLTE0MzAsOCArMTQzMCw2IEBACiAKIAl0d19kZXYgPSAoVFdfRGV2aWNlX0V4dGVuc2lvbiAqKVNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCi0Jc3Bpbl91bmxvY2tfaXJxKHR3X2Rldi0+aG9zdC0+aG9zdF9sb2NrKTsKLQogCXR3X2Rldi0+bnVtX3Jlc2V0cysrOwogCiAJcHJpbnRrKEtFUk5fV0FSTklORyAiM3cteHh4eDogc2NzaSVkOiBXQVJOSU5HOiBVbml0ICMlZDogQ29tbWFuZCAoMHgleCkgdGltZWQgb3V0LCByZXNldHRpbmcgY2FyZC5cbiIsIHR3X2Rldi0+aG9zdC0+aG9zdF9ubywgU0NwbnQtPmRldmljZS0+aWQsIFNDcG50LT5jbW5kWzBdKTsKQEAgLTE0NDQsNyArMTQ0Miw2IEBACiAKIAlyZXR2YWwgPSBTVUNDRVNTOwogb3V0OgotCXNwaW5fbG9ja19pcnEodHdfZGV2LT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiByZXR2YWw7CiB9IC8qIEVuZCB0d19zY3NpX2VoX3Jlc2V0KCkgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpLzUzYzcwMC5jIGIvZHJpdmVycy9zY3NpLzUzYzcwMC5jCmluZGV4IDRiMWJiNTIuLmQxNTFhZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS81M2M3MDAuYworKysgYi9kcml2ZXJzL3Njc2kvNTNjNzAwLmMKQEAgLTE3MCw3ICsxNzAsNiBAQAogU1RBVElDIGludCBOQ1JfNzAwX3F1ZXVlY29tbWFuZChzdHJ1Y3Qgc2NzaV9jbW5kICosIHZvaWQgKCpkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICopKTsKIFNUQVRJQyBpbnQgTkNSXzcwMF9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICogU0NwbnQpOwogU1RBVElDIGludCBOQ1JfNzAwX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogU0NwbnQpOwotU1RBVElDIGludCBOQ1JfNzAwX2Rldl9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogU0NwbnQpOwogU1RBVElDIGludCBOQ1JfNzAwX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqIFNDcG50KTsKIFNUQVRJQyB2b2lkIE5DUl83MDBfY2hpcF9zZXR1cChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KTsKIFNUQVRJQyB2b2lkIE5DUl83MDBfY2hpcF9yZXNldChzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KTsKQEAgLTMzMCw3ICszMjksNiBAQAogCS8qIEZpbGwgaW4gdGhlIG1pc3Npbmcgcm91dGluZXMgZnJvbSB0aGUgaG9zdCB0ZW1wbGF0ZSAqLwogCXRwbnQtPnF1ZXVlY29tbWFuZCA9IE5DUl83MDBfcXVldWVjb21tYW5kOwogCXRwbnQtPmVoX2Fib3J0X2hhbmRsZXIgPSBOQ1JfNzAwX2Fib3J0OwotCXRwbnQtPmVoX2RldmljZV9yZXNldF9oYW5kbGVyID0gTkNSXzcwMF9kZXZfcmVzZXQ7CiAJdHBudC0+ZWhfYnVzX3Jlc2V0X2hhbmRsZXIgPSBOQ1JfNzAwX2J1c19yZXNldDsKIAl0cG50LT5laF9ob3N0X3Jlc2V0X2hhbmRsZXIgPSBOQ1JfNzAwX2hvc3RfcmVzZXQ7CiAJdHBudC0+Y2FuX3F1ZXVlID0gTkNSXzcwMF9DT01NQU5EX1NMT1RTX1BFUl9IT1NUOwpAQCAtMTk1OSwzNCArMTk1NywzMSBAQAogCXByaW50ayhLRVJOX0lORk8gInNjc2klZCAoJWQ6JWQpIE5ldyBlcnJvciBoYW5kbGVyIHdhbnRzIEJVUyByZXNldCwgY21kICVwXG5cdCIsCiAJICAgICAgIFNDcC0+ZGV2aWNlLT5ob3N0LT5ob3N0X25vLCBTQ3AtPmRldmljZS0+aWQsIFNDcC0+ZGV2aWNlLT5sdW4sIFNDcCk7CiAJc2NzaV9wcmludF9jb21tYW5kKFNDcCk7CisKIAkvKiBJbiB0aGVvcnksIGVoX2NvbXBsZXRlIHNob3VsZCBhbHdheXMgYmUgbnVsbCBiZWNhdXNlIHRoZQogCSAqIGVoIGlzIHNpbmdsZSB0aHJlYWRlZCwgYnV0IGp1c3QgaW4gY2FzZSB3ZSdyZSBoYW5kbGluZyBhCiAJICogcmVzZXQgdmlhIHNnIG9yIHNvbWV0aGluZyAqLwotCXdoaWxlKGhvc3RkYXRhLT5laF9jb21wbGV0ZSAhPSBOVUxMKSB7CisJc3Bpbl9sb2NrX2lycShTQ3AtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwl3aGlsZSAoaG9zdGRhdGEtPmVoX2NvbXBsZXRlICE9IE5VTEwpIHsKIAkJc3Bpbl91bmxvY2tfaXJxKFNDcC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCQltc2xlZXBfaW50ZXJydXB0aWJsZSgxMDApOwogCQlzcGluX2xvY2tfaXJxKFNDcC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCX0KKwogCWhvc3RkYXRhLT5laF9jb21wbGV0ZSA9ICZjb21wbGV0ZTsKIAlOQ1JfNzAwX2ludGVybmFsX2J1c19yZXNldChTQ3AtPmRldmljZS0+aG9zdCk7CisKIAlzcGluX3VubG9ja19pcnEoU0NwLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmY29tcGxldGUpOwogCXNwaW5fbG9ja19pcnEoU0NwLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKIAlob3N0ZGF0YS0+ZWhfY29tcGxldGUgPSBOVUxMOwogCS8qIFJldmFsaWRhdGUgdGhlIHRyYW5zcG9ydCBwYXJhbWV0ZXJzIG9mIHRoZSBmYWlsaW5nIGRldmljZSAqLwogCWlmKGhvc3RkYXRhLT5mYXN0KQogCQlzcGlfc2NoZWR1bGVfZHZfZGV2aWNlKFNDcC0+ZGV2aWNlKTsKLQlyZXR1cm4gU1VDQ0VTUzsKLX0KIAotU1RBVElDIGludAotTkNSXzcwMF9kZXZfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqIFNDcCkKLXsKLQlwcmludGsoS0VSTl9JTkZPICJzY3NpJWQgKCVkOiVkKSBOZXcgZXJyb3IgaGFuZGxlciB3YW50cyBkZXZpY2UgcmVzZXRcblx0IiwKLQkgICAgICAgU0NwLT5kZXZpY2UtPmhvc3QtPmhvc3Rfbm8sIFNDcC0+ZGV2aWNlLT5pZCwgU0NwLT5kZXZpY2UtPmx1bik7Ci0Jc2NzaV9wcmludF9jb21tYW5kKFNDcCk7Ci0JCi0JcmV0dXJuIEZBSUxFRDsKKwlzcGluX3VubG9ja19pcnEoU0NwLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKIFNUQVRJQyBpbnQKQEAgLTE5OTYsOCArMTk5MSwxMyBAQAogCSAgICAgICBTQ3AtPmRldmljZS0+aG9zdC0+aG9zdF9ubywgU0NwLT5kZXZpY2UtPmlkLCBTQ3AtPmRldmljZS0+bHVuKTsKIAlzY3NpX3ByaW50X2NvbW1hbmQoU0NwKTsKIAorCXNwaW5fbG9ja19pcnEoU0NwLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKIAlOQ1JfNzAwX2ludGVybmFsX2J1c19yZXNldChTQ3AtPmRldmljZS0+aG9zdCk7CiAJTkNSXzcwMF9jaGlwX3Jlc2V0KFNDcC0+ZGV2aWNlLT5ob3N0KTsKKworCXNwaW5fdW5sb2NrX2lycShTQ3AtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvQnVzTG9naWMuYyBiL2RyaXZlcnMvc2NzaS9CdXNMb2dpYy5jCmluZGV4IDE1ZTRiMTIuLjlkNjA0MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9CdXNMb2dpYy5jCisrKyBiL2RyaXZlcnMvc2NzaS9CdXNMb2dpYy5jCkBAIC0yNzQ2LDkgKzI3NDYsMTUgQEAKIAogCXVuc2lnbmVkIGludCBpZCA9IFNDcG50LT5kZXZpY2UtPmlkOwogCXN0cnVjdCBCdXNMb2dpY19UYXJnZXRTdGF0aXN0aWNzICpzdGF0cyA9ICZIb3N0QWRhcHRlci0+VGFyZ2V0U3RhdGlzdGljc1tpZF07CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJQnVzTG9naWNfSW5jcmVtZW50RXJyb3JDb3VudGVyKCZzdGF0cy0+SG9zdEFkYXB0ZXJSZXNldHNSZXF1ZXN0ZWQpOwogCi0JcmV0dXJuIEJ1c0xvZ2ljX1Jlc2V0SG9zdEFkYXB0ZXIoSG9zdEFkYXB0ZXIsIGZhbHNlKTsKKwlyYyA9IEJ1c0xvZ2ljX1Jlc2V0SG9zdEFkYXB0ZXIoSG9zdEFkYXB0ZXIsIGZhbHNlKTsKKwlzcGluX3VubG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyZXR1cm4gcmM7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvRmxhc2hQb2ludC5jIGIvZHJpdmVycy9zY3NpL0ZsYXNoUG9pbnQuYwppbmRleCA1NmE2OTVjLi41YmVlZDRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvRmxhc2hQb2ludC5jCisrKyBiL2RyaXZlcnMvc2NzaS9GbGFzaFBvaW50LmMKQEAgLTIyLDggKzIyLDYgQEAKICNpZm5kZWYgQ09ORklHX1NDU0lfT01JVF9GTEFTSFBPSU5UCiAKIAotI2RlZmluZSBVTklYCi0jZGVmaW5lIEZXX1RZUEUJCV9TQ0NCX01HUl8KICNkZWZpbmUgTUFYX0NBUkRTCTgKICN1bmRlZiBCVVNUWVBFX1BDSQogCkBAIC0zNCw4ICszMiw2IEBACiAjZGVmaW5lIE9TX091dFBvcnRCeXRlKHBvcnQsIHZhbHVlKQlvdXRiKHZhbHVlLCBwb3J0KQogI2RlZmluZSBPU19PdXRQb3J0V29yZChwb3J0LCB2YWx1ZSkJb3V0dyh2YWx1ZSwgcG9ydCkKICNkZWZpbmUgT1NfT3V0UG9ydExvbmcocG9ydCwgdmFsdWUpCW91dGwodmFsdWUsIHBvcnQpCi0jZGVmaW5lIE9TX0xvY2soeCkKLSNkZWZpbmUgT1NfVW5Mb2NrKHgpCiAKIAogLyoKQEAgLTUxLDE2NCArNDcsMTcgQEAKICNkZWZpbmUgU2NjYk1ncl9pc3IJCQlGbGFzaFBvaW50X0hhbmRsZUludGVycnVwdAogCiAKLS8qCi0gIERlZmluZSBuYW1lIHJlcGxhY2VtZW50cyB0byBhdm9pZCBrZXJuZWwgbmFtZXNwYWNlIHBvbGx1dGlvbi4KLSovCi0KLSNkZWZpbmUgQkxfQ2FyZAkJCQlGUFRfQkxfQ2FyZAotI2RlZmluZSBCdXNNYXN0ZXJJbml0CQkJRlBUX0J1c01hc3RlckluaXQKLSNkZWZpbmUgQ2FsY0NyYzE2CQkJRlBUX0NhbGNDcmMxNgotI2RlZmluZSBDYWxjTHJjCQkJCUZQVF9DYWxjTHJjCi0jZGVmaW5lIENoa0lmQ2hpcEluaXRpYWxpemVkCQlGUFRfQ2hrSWZDaGlwSW5pdGlhbGl6ZWQKLSNkZWZpbmUgRGlhZ0J1c01hc3RlcgkJCUZQVF9EaWFnQnVzTWFzdGVyCi0jZGVmaW5lIERpYWdFRVBST00JCQlGUFRfRGlhZ0VFUFJPTQotI2RlZmluZSBEaWFnWGJvdwkJCUZQVF9EaWFnWGJvdwotI2RlZmluZSBHZXRUYXJMdW4JCQlGUFRfR2V0VGFyTHVuCi0jZGVmaW5lIFJOVlJhbURhdGEJCQlGUFRfUk5WUmFtRGF0YQotI2RlZmluZSBSZFN0YWNrCQkJCUZQVF9SZFN0YWNrCi0jZGVmaW5lIFNjY2JNZ3JUYWJsZUluaXRBbGwJCUZQVF9TY2NiTWdyVGFibGVJbml0QWxsCi0jZGVmaW5lIFNjY2JNZ3JUYWJsZUluaXRDYXJkCQlGUFRfU2NjYk1nclRhYmxlSW5pdENhcmQKLSNkZWZpbmUgU2NjYk1nclRhYmxlSW5pdFRhcmdldAkJRlBUX1NjY2JNZ3JUYWJsZUluaXRUYXJnZXQKLSNkZWZpbmUgU2NjYk1ncl9iYWRfaXNyCQkJRlBUX1NjY2JNZ3JfYmFkX2lzcgotI2RlZmluZSBTY2NiTWdyX3Njc2lfcmVzZXQJCUZQVF9TY2NiTWdyX3Njc2lfcmVzZXQKLSNkZWZpbmUgU2NjYk1ncl90aW1lcl9leHBpcmVkCQlGUFRfU2NjYk1ncl90aW1lcl9leHBpcmVkCi0jZGVmaW5lIFNlbmRNc2cJCQkJRlBUX1NlbmRNc2cKLSNkZWZpbmUgV2FpdAkJCQlGUFRfV2FpdAotI2RlZmluZSBXYWl0MVNlY29uZAkJCUZQVF9XYWl0MVNlY29uZAotI2RlZmluZSBXclN0YWNrCQkJCUZQVF9XclN0YWNrCi0jZGVmaW5lIFhib3dJbml0CQkJRlBUX1hib3dJbml0Ci0jZGVmaW5lIGF1dG9DbWRDbXBsdAkJCUZQVF9hdXRvQ21kQ21wbHQKLSNkZWZpbmUgYXV0b0xvYWREZWZhdWx0TWFwCQlGUFRfYXV0b0xvYWREZWZhdWx0TWFwCi0jZGVmaW5lIGJ1c01zdHJEYXRhWGZlclN0YXJ0CQlGUFRfYnVzTXN0ckRhdGFYZmVyU3RhcnQKLSNkZWZpbmUgYnVzTXN0clNHRGF0YVhmZXJTdGFydAkJRlBUX2J1c01zdHJTR0RhdGFYZmVyU3RhcnQKLSNkZWZpbmUgYnVzTXN0clRpbWVPdXQJCQlGUFRfYnVzTXN0clRpbWVPdXQKLSNkZWZpbmUgZGF0YVhmZXJQcm9jZXNzb3IJCUZQVF9kYXRhWGZlclByb2Nlc3NvcgotI2RlZmluZSBkZWZhdWx0X2ludGVuYQkJCUZQVF9kZWZhdWx0X2ludGVuYQotI2RlZmluZSBob3N0RGF0YVhmZXJBYm9ydAkJRlBUX2hvc3REYXRhWGZlckFib3J0Ci0jZGVmaW5lIGhvc3REYXRhWGZlclJlc3RhcnQJCUZQVF9ob3N0RGF0YVhmZXJSZXN0YXJ0Ci0jZGVmaW5lIGluaXNjaQkJCQlGUFRfaW5pc2NpCi0jZGVmaW5lIG1iQ2FyZHMJCQkJRlBUX21iQ2FyZHMKLSNkZWZpbmUgbnZSYW1JbmZvCQkJRlBUX252UmFtSW5mbwotI2RlZmluZSBwaGFzZUJ1c0ZyZWUJCQlGUFRfcGhhc2VCdXNGcmVlCi0jZGVmaW5lIHBoYXNlQ2hrRmlmbwkJCUZQVF9waGFzZUNoa0ZpZm8KLSNkZWZpbmUgcGhhc2VDb21tYW5kCQkJRlBUX3BoYXNlQ29tbWFuZAotI2RlZmluZSBwaGFzZURhdGFJbgkJCUZQVF9waGFzZURhdGFJbgotI2RlZmluZSBwaGFzZURhdGFPdXQJCQlGUFRfcGhhc2VEYXRhT3V0Ci0jZGVmaW5lIHBoYXNlRGVjb2RlCQkJRlBUX3BoYXNlRGVjb2RlCi0jZGVmaW5lIHBoYXNlSWxsZWdhbAkJCUZQVF9waGFzZUlsbGVnYWwKLSNkZWZpbmUgcGhhc2VNc2dJbgkJCUZQVF9waGFzZU1zZ0luCi0jZGVmaW5lIHBoYXNlTXNnT3V0CQkJRlBUX3BoYXNlTXNnT3V0Ci0jZGVmaW5lIHBoYXNlU3RhdHVzCQkJRlBUX3BoYXNlU3RhdHVzCi0jZGVmaW5lIHF1ZXVlQWRkU2NjYgkJCUZQVF9xdWV1ZUFkZFNjY2IKLSNkZWZpbmUgcXVldWVDbWRDb21wbGV0ZQkJRlBUX3F1ZXVlQ21kQ29tcGxldGUKLSNkZWZpbmUgcXVldWVEaXNjb25uZWN0CQkJRlBUX3F1ZXVlRGlzY29ubmVjdAotI2RlZmluZSBxdWV1ZUZpbmRTY2NiCQkJRlBUX3F1ZXVlRmluZFNjY2IKLSNkZWZpbmUgcXVldWVGbHVzaFNjY2IJCQlGUFRfcXVldWVGbHVzaFNjY2IKLSNkZWZpbmUgcXVldWVGbHVzaFRhcmdTY2NiCQlGUFRfcXVldWVGbHVzaFRhcmdTY2NiCi0jZGVmaW5lIHF1ZXVlU2VhcmNoU2VsZWN0CQlGUFRfcXVldWVTZWFyY2hTZWxlY3QKLSNkZWZpbmUgcXVldWVTZWxlY3RGYWlsCQkJRlBUX3F1ZXVlU2VsZWN0RmFpbAotI2RlZmluZSBzX1BoYXNlVGJsCQkJRlBUX3NfUGhhc2VUYmwKLSNkZWZpbmUgc2NhbUhBU3RyaW5nCQkJRlBUX3NjYW1IQVN0cmluZwotI2RlZmluZSBzY2FtSW5mbwkJCUZQVF9zY2FtSW5mbwotI2RlZmluZSBzY2FyYgkJCQlGUFRfc2NhcmIKLSNkZWZpbmUgc2Nhc2lkCQkJCUZQVF9zY2FzaWQKLSNkZWZpbmUgc2NidXNmCQkJCUZQVF9zY2J1c2YKLSNkZWZpbmUgc2NjYk1nclRibAkJCUZQVF9zY2NiTWdyVGJsCi0jZGVmaW5lIHNjaGtkZAkJCQlGUFRfc2Noa2RkCi0jZGVmaW5lIHNjaW5pCQkJCUZQVF9zY2luaQotI2RlZmluZSBzY2lzbwkJCQlGUFRfc2Npc28KLSNkZWZpbmUgc2NtYWNoaWQJCQlGUFRfc2NtYWNoaWQKLSNkZWZpbmUgc2NzYXZkaQkJCQlGUFRfc2NzYXZkaQotI2RlZmluZSBzY3NlbAkJCQlGUFRfc2NzZWwKLSNkZWZpbmUgc2NzZWxsCQkJCUZQVF9zY3NlbGwKLSNkZWZpbmUgc2NzZW5kaQkJCQlGUFRfc2NzZW5kaQotI2RlZmluZSBzY3ZhbHEJCQkJRlBUX3NjdmFscQotI2RlZmluZSBzY3dpcm9kCQkJCUZQVF9zY3dpcm9kCi0jZGVmaW5lIHNjd2lyb3MJCQkJRlBUX3Njd2lyb3MKLSNkZWZpbmUgc2N3dHNlbAkJCQlGUFRfc2N3dHNlbAotI2RlZmluZSBzY3hmZXJjCQkJCUZQVF9zY3hmZXJjCi0jZGVmaW5lIHNkZWNtCQkJCUZQVF9zZGVjbQotI2RlZmluZSBzZm0JCQkJRlBUX3NmbQotI2RlZmluZSBzaGFuZGVtCQkJCUZQVF9zaGFuZGVtCi0jZGVmaW5lIHNpbml0cwkJCQlGUFRfc2luaXRzCi0jZGVmaW5lIHNpc3luY24JCQkJRlBUX3Npc3luY24KLSNkZWZpbmUgc2lzeW5jcgkJCQlGUFRfc2lzeW5jcgotI2RlZmluZSBzaXdpZG4JCQkJRlBUX3Npd2lkbgotI2RlZmluZSBzaXdpZHIJCQkJRlBUX3Npd2lkcgotI2RlZmluZSBzcmVzCQkJCUZQVF9zcmVzCi0jZGVmaW5lIHNyZXNiCQkJCUZQVF9zcmVzYgotI2RlZmluZSBzc2VsCQkJCUZQVF9zc2VsCi0jZGVmaW5lIHNzZW5zcwkJCQlGUFRfc3NlbnNzCi0jZGVmaW5lIHNzc3luY3YJCQkJRlBUX3Nzc3luY3YKLSNkZWZpbmUgc3RzeW5jbgkJCQlGUFRfc3RzeW5jbgotI2RlZmluZSBzdHdpZG4JCQkJRlBUX3N0d2lkbgotI2RlZmluZSBzeGZycAkJCQlGUFRfc3hmcnAKLSNkZWZpbmUgdXRpbEVFUmVhZAkJCUZQVF91dGlsRUVSZWFkCi0jZGVmaW5lIHV0aWxFRVJlYWRPcmcJCQlGUFRfdXRpbEVFUmVhZE9yZwotI2RlZmluZSB1dGlsRUVTZW5kQ21kQWRkcgkJRlBUX3V0aWxFRVNlbmRDbWRBZGRyCi0jZGVmaW5lIHV0aWxFRVdyaXRlCQkJRlBUX3V0aWxFRVdyaXRlCi0jZGVmaW5lIHV0aWxFRVdyaXRlT25PZmYJCUZQVF91dGlsRUVXcml0ZU9uT2ZmCi0jZGVmaW5lIHV0aWxVcGRhdGVSZXNpZHVhbAkJRlBUX3V0aWxVcGRhdGVSZXNpZHVhbAotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqCi0gKiAgIENvcHlyaWdodCAxOTk1LTE5OTYgYnkgTXlsZXggQ29ycG9yYXRpb24uICBBbGwgUmlnaHRzIFJlc2VydmVkCi0gKgotICogICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGJvdGggdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFuZCBhIEJTRC1zdHlsZSBjb3B5cmlnaHQ7IHNlZSBMSUNFTlNFLkZsYXNoUG9pbnQgZm9yIGRldGFpbHMuCi0gKgotICogICAkV29ya2ZpbGU6ICAgZ2xvYmFscy5oICAkCi0gKgotICogICBEZXNjcmlwdGlvbjogIENvbW1vbiBzaGFyZWQgZ2xvYmFsIGRlZmluZXMuCi0gKgotICogICAkRGF0ZTogMTk5Ni8wOS8wNCAwMToyNjoxMyAkCi0gKgotICogICAkUmV2aXNpb246IDEuMTEgJAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWZuZGVmIF9fR0xPQkFMU19IX18KLSNkZWZpbmUgX19HTE9CQUxTX0hfXwotCi0jZGVmaW5lIF9VQ0JfTUdSXyAgMQotI2RlZmluZSBfU0NDQl9NR1JfIDIKLQotLyojaW5jbHVkZSA8b3NmbGFncy5oPiovCi0KICNkZWZpbmUgTUFYX0NEQkxFTiAgMTIKIAogI2RlZmluZSBTQ0FNX0xFVl8yCTEKIAogI2RlZmluZSBDUkNNQVNLCTB4QTAwMQogCi0vKiAgSW4geW91ciBvc2ZsYWdzLmggZmlsZSwgcGxlYXNlIEVOU1VSRSB0aGF0IG9ubHkgT05FIE9TIEZMQUcgCi0gICAgaXMgb24gYXQgYSB0aW1lICEhISBBbHNvLCBwbGVhc2UgbWFrZSBzdXJlIHlvdSB0dXJuIHNldCB0aGUgCi0gCSB2YXJpYWJsZSBGV19UWVBFIHRvIGVpdGhlciBfVUNCX01HUl8gb3IgX1NDQ0JfTUdSXyAgISEhICovCi0KLSNpZiBkZWZpbmVkKERPUykgfHwgZGVmaW5lZChXSU45NV8xNikgfHwgZGVmaW5lZChPUzIpIHx8IGRlZmluZWQoT1RIRVJfMTYpCi0gICAjZGVmaW5lICAgICAgIENPTVBJTEVSXzE2X0JJVCAxCi0jZWxpZiBkZWZpbmVkKE5FVFdBUkUpIHx8IGRlZmluZWQoTlQpIHx8IGRlZmluZWQoV0lOOTVfMzIpIHx8IGRlZmluZWQoVU5JWCkgfHwgZGVmaW5lZChPVEhFUl8zMikgfHwgZGVmaW5lZChTT0xBUklTX1JFQUxfTU9ERSkKLSAgICNkZWZpbmUgICAgICAgQ09NUElMRVJfMzJfQklUIDEKLSNlbmRpZgotCi0KICNkZWZpbmUgICAgIEJMX1ZFTkRPUl9JRCAgICAgIDB4MTA0QgogI2RlZmluZSAgICAgRlBfREVWSUNFX0lEICAgICAgMHg4MTMwCiAjZGVmaW5lICAgICBNTV9ERVZJQ0VfSUQgICAgICAweDEwNDAKIAogCi0jaWZuZGVmIEZBTFNFCi0jZGVmaW5lIEZBTFNFICAgICAgICAgICAwCi0jZW5kaWYKLSNpZm5kZWYgVFJVRQotI2RlZmluZSBUUlVFICAgICAgICAgICAgKCEoRkFMU0UpKQotI2VuZGlmCi0KLSNpZm5kZWYgTlVMTAotI2RlZmluZSBOVUxMICAgICAgICAgICAgMAotI2VuZGlmCi0KICNkZWZpbmUgRkFJTFVSRSAgICAgICAgIDB4RkZGRkZGRkZMCiAKIApAQCAtMjIyLDI3ICs3MSwxMSBAQAogdHlwZWRlZiB2b2lkICogICAgICAgICAgUFZPSUQ7CiAKIAotI2lmIGRlZmluZWQoQ09NUElMRVJfMTZfQklUKQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGZhciAgICAgICAqIHVjaGFyX3B0cjsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgZmFyICAgICAgKiB1c2hvcnRfcHRyOwotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGZhciAgICAgICAqIHVsb25nX3B0cjsKLSNlbmRpZiAgLyogMTZfQklUX0NPTVBJTEVSICovCi0KLSNpZiBkZWZpbmVkKENPTVBJTEVSXzMyX0JJVCkKIHR5cGVkZWYgdW5zaWduZWQgY2hhciAgICAgICAgICAgKiB1Y2hhcl9wdHI7CiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0ICAgICAgICAgICogdXNob3J0X3B0cjsKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICAgKiB1bG9uZ19wdHI7Ci0jZW5kaWYgIC8qIDMyX0JJVF9DT01QSUxFUiAqLwogCiAKLS8qCSAJCQlORVcgVFlQRSBERUZJTklUSU9OUyAoc2hhcmVkIHdpdGggTXlsZXggTm9ydGgpCi0KLSoqICBVc2UgZm9sbG93aW5nIHR5cGUgZGVmaW5lcyB0byBhdm9pZCBjb25mdXNpb24gaW4gMTYgYW5kIDMyLWJpdAotKiogIGVudmlyb25tZW50cy4gIEF2b2lkIHVzaW5nICdpbnQnIGFzIGl0IGRlbm90ZXMgMTYgYml0cyBpbiAxNi1iaXQKLSoqICBlbnZpcm9ubWVudCBhbmQgMzIgaW4gMzItYml0IGVudmlyb25tZW50cy4KLQotKi8KLQogI2RlZmluZSBzMDhiaXRzCWNoYXIKICNkZWZpbmUgczE2Yml0cyAJc2hvcnQKICNkZWZpbmUgczMyYml0cwlsb25nCkBAIC0yNTEsMTk1ICs4NCwxOSBAQAogI2RlZmluZSB1MTZiaXRzCXVuc2lnbmVkIHMxNmJpdHMKICNkZWZpbmUgdTMyYml0cwl1bnNpZ25lZCBzMzJiaXRzCiAKLSNpZiBkZWZpbmVkKENPTVBJTEVSXzE2X0JJVCkKLQotdHlwZWRlZiB1MDhiaXRzIGZhciAJKiBwdTA4Yml0czsKLXR5cGVkZWYgdTE2Yml0cyBmYXIgCSogcHUxNmJpdHM7Ci10eXBlZGVmIHUzMmJpdHMgZmFyCSogcHUzMmJpdHM7Ci0KLSNlbmRpZgkvKiBDT01QSUxFUl8xNl9CSVQgKi8KLQotI2lmIGRlZmluZWQoQ09NUElMRVJfMzJfQklUKQotCiB0eXBlZGVmIHUwOGJpdHMgCSogcHUwOGJpdHM7CiB0eXBlZGVmIHUxNmJpdHMgCSogcHUxNmJpdHM7CiB0eXBlZGVmIHUzMmJpdHMgCSogcHUzMmJpdHM7CiAKLSNlbmRpZgkvKiBDT01QSUxFUl8zMl9CSVQgKi8KLQogCiAjZGVmaW5lIEJJVCh4KSAgICAgICAgICAoKFVDSEFSKSgxPDwoeCkpKSAgICAvKiBzaW5nbGUtYml0IG1hc2sgaW4gYml0IHBvc2l0aW9uIHggKi8KICNkZWZpbmUgQklUVyh4KSAgICAgICAgICAoKFVTSE9SVCkoMTw8KHgpKSkgIC8qIHNpbmdsZS1iaXQgbWFzayBpbiBiaXQgcG9zaXRpb24geCAqLwogCiAKIAotI2lmIGRlZmluZWQoRE9TKQotLyojaW5jbHVkZSA8ZG9zLmg+Ki8KLQkjdW5kZWYgaW5wb3J0YiAgICAgICAgICAvKiB1bmRlZmluZSBmb3IgQm9ybGFuZCBMaWIgKi8KLQkjdW5kZWYgaW5wb3J0ICAgICAgICAgICAvKiB0aGV5IG1heSBoYXZlIGRlZmluZSBJL08gZnVuY3Rpb24gaW4gTElCICovCi0JI3VuZGVmIG91dHBvcnRiCi0JI3VuZGVmIG91dHBvcnQKIAotCSNkZWZpbmUgT1NfSW5Qb3J0Qnl0ZShpb3BvcnQpIAkJaW5wb3J0Yihpb3BvcnQpCi0JI2RlZmluZSBPU19JblBvcnRXb3JkKGlvcG9ydCkgCQlpbnBvcnQoaW9wb3J0KQotCSNkZWZpbmUgT1NfSW5Qb3J0TG9uZyhpb3BvcnQpCQkJaW5wb3J0cShpb3BvcnQsIHZhbCkKLQkjZGVmaW5lIE9TX091dFBvcnRCeXRlKGlvcG9ydCwgdmFsKSBvdXRwb3J0Yihpb3BvcnQsIHZhbCkKLQkjZGVmaW5lIE9TX091dFBvcnRXb3JkKGlvcG9ydCwgdmFsKQlvdXRwb3J0KGlvcG9ydCwgdmFsKQotCSNkZWZpbmUgT1NfT3V0UG9ydExvbmcoaW9wb3J0KQkJb3V0cG9ydHEoaW9wb3J0LCB2YWwpCi0jZW5kaWYJLyogRE9TICovCi0KLSNpZiBkZWZpbmVkKE5FVFdBUkUpIHx8IGRlZmluZWQoT1RIRVJfMzIpIHx8ICBkZWZpbmVkKE9USEVSXzE2KQotCWV4dGVybiB1MDhiaXRzCU9TX0luUG9ydEJ5dGUodTMyYml0cyBpb3BvcnQpOwotCWV4dGVybiB1MTZiaXRzCU9TX0luUG9ydFdvcmQodTMyYml0cyBpb3BvcnQpOwotCWV4dGVybiB1MzJiaXRzCU9TX0luUG9ydExvbmcodTMyYml0cyBpb3BvcnQpOwotCi0JZXh0ZXJuIE9TX0luUG9ydEJ5dGVCdWZmZXIodTMyYml0cyBpb3BvcnQsIHB1MDhiaXRzIGJ1ZmZlciwgdTMyYml0cyBjb3VudCk7Ci0JZXh0ZXJuIE9TX0luUG9ydFdvcmRCdWZmZXIodTMyYml0cyBpb3BvcnQsIHB1MTZiaXRzIGJ1ZmZlciwgdTMyYml0cyBjb3VudCk7Ci0JZXh0ZXJuIE9TX091dFBvcnRCeXRlKHUzMmJpdHMgaW9wb3J0LCB1MDhiaXRzIHZhbCk7Ci0JZXh0ZXJuIE9TX091dFBvcnRXb3JkKHUzMmJpdHMgaW9wb3J0LCB1MTZiaXRzIHZhbCk7Ci0JZXh0ZXJuIE9TX091dFBvcnRMb25nKHUzMmJpdHMgaW9wb3J0LCB1MzJiaXRzIHZhbCk7Ci0JZXh0ZXJuIE9TX091dFBvcnRCeXRlQnVmZmVyKHUzMmJpdHMgaW9wb3J0LCBwdTA4Yml0cyBidWZmZXIsIHUzMmJpdHMgY291bnQpOwotCWV4dGVybiBPU19PdXRQb3J0V29yZEJ1ZmZlcih1MzJiaXRzIGlvcG9ydCwgcHUxNmJpdHMgYnVmZmVyLCB1MzJiaXRzIGNvdW50KTsKLSNlbmRpZgkvKiBORVRXQVJFIHx8IE9USEVSXzMyIHx8IE9USEVSXzE2ICovCi0KLSNpZiBkZWZpbmVkIChOVCkgfHwgZGVmaW5lZChXSU45NV8zMikgfHwgZGVmaW5lZChXSU45NV8xNikKLQkjaWYgZGVmaW5lZChOVCkKLQotCQlleHRlcm4gX19kZWNsc3BlYyhkbGxpbXBvcnQpIHUwOGJpdHMgU2NzaVBvcnRSZWFkUG9ydFVjaGFyKHB1MDhiaXRzIGlvcG9ydCk7Ci0JCWV4dGVybiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdTE2Yml0cyBTY3NpUG9ydFJlYWRQb3J0VXNob3J0KHB1MTZiaXRzIGlvcG9ydCk7Ci0JCWV4dGVybiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdTMyYml0cyBTY3NpUG9ydFJlYWRQb3J0VWxvbmcocHUzMmJpdHMgaW9wb3J0KTsKLQkJZXh0ZXJuIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSB2b2lkIFNjc2lQb3J0V3JpdGVQb3J0VWNoYXIocHUwOGJpdHMgaW9wb3J0LCB1MDhiaXRzIHZhbCk7Ci0JCWV4dGVybiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdm9pZCBTY3NpUG9ydFdyaXRlUG9ydFVzaG9ydChwdTE2Yml0cyBwb3J0LCB1MTZiaXRzIHZhbCk7Ci0JCWV4dGVybiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdm9pZCBTY3NpUG9ydFdyaXRlUG9ydFVsb25nKHB1MzJiaXRzIHBvcnQsIHUzMmJpdHMgdmFsKTsKLQotCSNlbHNlCi0KLQkJZXh0ZXJuIHUwOGJpdHMgU2NzaVBvcnRSZWFkUG9ydFVjaGFyKHB1MDhiaXRzIGlvcG9ydCk7Ci0JCWV4dGVybiB1MTZiaXRzIFNjc2lQb3J0UmVhZFBvcnRVc2hvcnQocHUxNmJpdHMgaW9wb3J0KTsKLQkJZXh0ZXJuIHUzMmJpdHMgU2NzaVBvcnRSZWFkUG9ydFVsb25nKHB1MzJiaXRzIGlvcG9ydCk7Ci0JCWV4dGVybiB2b2lkIFNjc2lQb3J0V3JpdGVQb3J0VWNoYXIocHUwOGJpdHMgaW9wb3J0LCB1MDhiaXRzIHZhbCk7Ci0JCWV4dGVybiB2b2lkIFNjc2lQb3J0V3JpdGVQb3J0VXNob3J0KHB1MTZiaXRzIHBvcnQsIHUxNmJpdHMgdmFsKTsKLQkJZXh0ZXJuIHZvaWQgU2NzaVBvcnRXcml0ZVBvcnRVbG9uZyhwdTMyYml0cyBwb3J0LCB1MzJiaXRzIHZhbCk7Ci0JI2VuZGlmCi0KLQotCSNkZWZpbmUgT1NfSW5Qb3J0Qnl0ZShpb3BvcnQpIFNjc2lQb3J0UmVhZFBvcnRVY2hhcigocHUwOGJpdHMpIGlvcG9ydCkKLQkjZGVmaW5lIE9TX0luUG9ydFdvcmQoaW9wb3J0KSBTY3NpUG9ydFJlYWRQb3J0VXNob3J0KChwdTE2Yml0cykgaW9wb3J0KQotCSNkZWZpbmUgT1NfSW5Qb3J0TG9uZyhpb3BvcnQpIFNjc2lQb3J0UmVhZFBvcnRVbG9uZygocHUzMmJpdHMpIGlvcG9ydCkKLQotCSNkZWZpbmUgT1NfT3V0UG9ydEJ5dGUoaW9wb3J0LCB2YWwpIFNjc2lQb3J0V3JpdGVQb3J0VWNoYXIoKHB1MDhiaXRzKSBpb3BvcnQsICh1MDhiaXRzKSB2YWwpCi0JI2RlZmluZSBPU19PdXRQb3J0V29yZChpb3BvcnQsIHZhbCkgU2NzaVBvcnRXcml0ZVBvcnRVc2hvcnQoKHB1MTZiaXRzKSBpb3BvcnQsICh1MTZiaXRzKSB2YWwpCi0JI2RlZmluZSBPU19PdXRQb3J0TG9uZyhpb3BvcnQsIHZhbCkgU2NzaVBvcnRXcml0ZVBvcnRVbG9uZygocHUzMmJpdHMpIGlvcG9ydCwgKHUzMmJpdHMpIHZhbCkKLQkjZGVmaW5lIE9TX091dFBvcnRCeXRlQnVmZmVyKGlvcG9ydCwgYnVmZmVyLCBjb3VudCkgXAotCQlTY3NpUG9ydFdyaXRlUG9ydEJ1ZmZlclVjaGFyKChwdTA4Yml0cykmcG9ydCwgKHB1MDhiaXRzKSBidWZmZXIsICh1MzJiaXRzKSBjb3VudCkKLQkjZGVmaW5lIE9TX091dFBvcnRXb3JkQnVmZmVyKGlvcG9ydCwgYnVmZmVyLCBjb3VudCkgXAotCQlTY3NpUG9ydFdyaXRlUG9ydEJ1ZmZlclVzaG9ydCgocHUxNmJpdHMpJnBvcnQsIChwdTE2Yml0cykgYnVmZmVyLCAodTMyYml0cykgY291bnQpCi0KLQkjZGVmaW5lIE9TX0xvY2soeCkKLQkjZGVmaW5lIE9TX1VuTG9jayh4KQotI2VuZGlmIC8qIE5UIHx8IFdJTjk1XzMyIHx8IFdJTjk1XzE2ICovCi0KLSNpZiBkZWZpbmVkIChVTklYKSAmJiAhZGVmaW5lZChPU19JblBvcnRCeXRlKQotCSNkZWZpbmUgT1NfSW5Qb3J0Qnl0ZShpb3BvcnQpICAgIGluYigodTE2Yml0cylpb3BvcnQpCi0JI2RlZmluZSBPU19JblBvcnRXb3JkKGlvcG9ydCkgICAgaW53KCh1MTZiaXRzKWlvcG9ydCkKLQkjZGVmaW5lIE9TX0luUG9ydExvbmcoaW9wb3J0KSAgICBpbmwoKHUxNmJpdHMpaW9wb3J0KQotCSNkZWZpbmUgT1NfT3V0UG9ydEJ5dGUoaW9wb3J0LHZhbCkgIG91dGIoKHUxNmJpdHMpaW9wb3J0LCAodTA4Yml0cyl2YWwpCi0JI2RlZmluZSBPU19PdXRQb3J0V29yZChpb3BvcnQsdmFsKSAgb3V0dygodTE2Yml0cylpb3BvcnQsICh1MTZiaXRzKXZhbCkKLQkjZGVmaW5lIE9TX091dFBvcnRMb25nKGlvcG9ydCx2YWwpICBvdXRsKCh1MTZiaXRzKWlvcG9ydCwgKHUzMmJpdHMpdmFsKQotCi0JI2RlZmluZSBPU19Mb2NrKHgpCi0JI2RlZmluZSBPU19VbkxvY2soeCkKLSNlbmRpZiAvKiBVTklYICovCi0KLQotI2lmIGRlZmluZWQoT1MyKQotCWV4dGVybiB1MDhiaXRzCWluYih1MzJiaXRzIGlvcG9ydCk7Ci0JZXh0ZXJuIHUxNmJpdHMJaW53KHUzMmJpdHMgaW9wb3J0KTsKLQlleHRlcm4gdm9pZAlvdXRiKHUzMmJpdHMgaW9wb3J0LCB1MDhiaXRzIHZhbCk7Ci0JZXh0ZXJuIHZvaWQJb3V0dyh1MzJiaXRzIGlvcG9ydCwgdTE2Yml0cyB2YWwpOwotCi0JI2RlZmluZSBPU19JblBvcnRCeXRlKGlvcG9ydCkJCQlpbmIoaW9wb3J0KQotCSNkZWZpbmUgT1NfSW5Qb3J0V29yZChpb3BvcnQpCQkJaW53KGlvcG9ydCkKLQkjZGVmaW5lIE9TX091dFBvcnRCeXRlKGlvcG9ydCwgdmFsKQlvdXRiKGlvcG9ydCwgdmFsKQotCSNkZWZpbmUgT1NfT3V0UG9ydFdvcmQoaW9wb3J0LCB2YWwpCW91dHcoaW9wb3J0LCB2YWwpCi0JZXh0ZXJuIHUzMmJpdHMJT1NfSW5Qb3J0TG9uZyh1MzJiaXRzIGlvcG9ydCk7Ci0JZXh0ZXJuIHZvaWQJT1NfT3V0UG9ydExvbmcodTMyYml0cyBpb3BvcnQsIHUzMmJpdHMgdmFsKTsKLQotCSNkZWZpbmUgT1NfTG9jayh4KQotCSNkZWZpbmUgT1NfVW5Mb2NrKHgpCi0jZW5kaWYgLyogT1MyICovCi0KLSNpZiBkZWZpbmVkKFNPTEFSSVNfUkVBTF9NT0RFKQotCi1leHRlcm4gdW5zaWduZWQgY2hhciAgICBpbmIodW5zaWduZWQgbG9uZyBpb3BvcnQpOwotZXh0ZXJuIHVuc2lnbmVkIHNob3J0ICAgaW53KHVuc2lnbmVkIGxvbmcgaW9wb3J0KTsKLQotI2RlZmluZSBPU19JblBvcnRCeXRlKGlvcG9ydCkgICAgaW5iKGlvcG9ydCkKLSNkZWZpbmUgT1NfSW5Qb3J0V29yZChpb3BvcnQpICAgIGludyhpb3BvcnQpCi0KLWV4dGVybiB2b2lkIE9TX091dFBvcnRCeXRlKHVuc2lnbmVkIGxvbmcgaW9wb3J0LCB1bnNpZ25lZCBjaGFyIHZhbCk7Ci1leHRlcm4gdm9pZCBPU19PdXRQb3J0V29yZCh1bnNpZ25lZCBsb25nIGlvcG9ydCwgdW5zaWduZWQgc2hvcnQgdmFsKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nICBPU19JblBvcnRMb25nKHVuc2lnbmVkIGxvbmcgaW9wb3J0KTsKLWV4dGVybiB2b2lkICAgICBPU19PdXRQb3J0TG9uZyh1bnNpZ25lZCBsb25nIGlvcG9ydCwgdW5zaWduZWQgbG9uZyB2YWwpOwotCi0jZGVmaW5lIE9TX0xvY2soeCkKLSNkZWZpbmUgT1NfVW5Mb2NrKHgpCi0KLSNlbmRpZiAgLyogU09MQVJJU19SRUFMX01PREUgKi8KLQotI2VuZGlmICAvKiBfX0dMT0JBTFNfSF9fICovCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqCi0gKiAgIENvcHlyaWdodCAxOTk1LTE5OTYgYnkgTXlsZXggQ29ycG9yYXRpb24uICBBbGwgUmlnaHRzIFJlc2VydmVkCi0gKgotICogICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGJvdGggdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFuZCBhIEJTRC1zdHlsZSBjb3B5cmlnaHQ7IHNlZSBMSUNFTlNFLkZsYXNoUG9pbnQgZm9yIGRldGFpbHMuCi0gKgotICogICAkV29ya2ZpbGU6ICAgc2NjYm1nci5oICAkCi0gKgotICogICBEZXNjcmlwdGlvbjogIENvbW1vbiBzaGFyZWQgU0NDQiBJbnRlcmZhY2UgZGVmaW5lcyBhbmQgU0NDQiAKLSAqCQkJCQkJIE1hbmFnZXIgc3BlY2lmaWNzIGRlZmluZXMuCi0gKgotICogICAkRGF0ZTogMTk5Ni8xMC8yNCAyMzowOTozMyAkCi0gKgotICogICAkUmV2aXNpb246IDEuMTQgJAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZm5kZWYgX19TQ0NCX0hfXwotI2RlZmluZSBfX1NDQ0JfSF9fCi0KLS8qI2luY2x1ZGUgPG9zZmxhZ3MuaD4qLwotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0KLSNpZiBkZWZpbmVkKEJVR0JVRykKLSNkZWZpbmUgZGVidWdfc2l6ZSAzMgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKERPUykKLQotICAgdHlwZWRlZiBzdHJ1Y3QgX1NDQ0IgbmVhciAqUFNDQ0I7Ci0JI2lmIChGV19UWVBFID09IF9TQ0NCX01HUl8pCi0gICAJdHlwZWRlZiB2b2lkICgqQ0FMTF9CS19GTikoUFNDQ0IpOwotCSNlbmRpZgotCi0jZWxpZiBkZWZpbmVkKE9TMikKLQotICAgdHlwZWRlZiBzdHJ1Y3QgX1NDQ0IgZmFyICpQU0NDQjsKLQkjaWYgKEZXX1RZUEUgPT0gX1NDQ0JfTUdSXykKLSAgIAl0eXBlZGVmIHZvaWQgKGZhciAqQ0FMTF9CS19GTikoUFNDQ0IpOwotCSNlbmRpZgotCi0jZWxzZQotCi0gICB0eXBlZGVmIHN0cnVjdCBfU0NDQiAqUFNDQ0I7Ci0JI2lmIChGV19UWVBFID09IF9TQ0NCX01HUl8pCi0gICAJdHlwZWRlZiB2b2lkICgqQ0FMTF9CS19GTikoUFNDQ0IpOwotCSNlbmRpZgotCi0jZW5kaWYKK3R5cGVkZWYgc3RydWN0IF9TQ0NCICpQU0NDQjsKK3R5cGVkZWYgdm9pZCAoKkNBTExfQktfRk4pKFBTQ0NCKTsKIAogCiB0eXBlZGVmIHN0cnVjdCBTQ0NCTWdyX2luZm8gewpAQCAtNDY2LDI1ICsxMjMsMTMgQEAKICAgIFVMT05HICAgIHNpX3NlY29uZGFyeV9yYW5nZTsKIH0gU0NDQk1HUl9JTkZPOwogCi0jaWYgZGVmaW5lZChET1MpCi0gICB0eXBlZGVmIFNDQ0JNR1JfSU5GTyAqICAgICAgUFNDQ0JNR1JfSU5GTzsKLSNlbHNlCi0gICAjaWYgZGVmaW5lZCAoQ09NUElMRVJfMTZfQklUKQotICAgdHlwZWRlZiBTQ0NCTUdSX0lORk8gZmFyICogIFBTQ0NCTUdSX0lORk87Ci0gICAjZWxzZQotICAgdHlwZWRlZiBTQ0NCTUdSX0lORk8gKiAgICAgIFBTQ0NCTUdSX0lORk87Ci0gICAjZW5kaWYKLSNlbmRpZiAvLyBkZWZpbmVkKERPUykKK3R5cGVkZWYgU0NDQk1HUl9JTkZPICogICAgICBQU0NDQk1HUl9JTkZPOwogCiAKLQotCi0jaWYgKEZXX1RZUEU9PV9TQ0NCX01HUl8pCi0JI2RlZmluZSBTQ1NJX1BBUklUWV9FTkEJCSAgMHgwMDAxCi0JI2RlZmluZSBMT1dfQllURV9URVJNCQkgIDB4MDAxMAotCSNkZWZpbmUgSElHSF9CWVRFX1RFUk0JCSAgMHgwMDIwCi0JI2RlZmluZSBCVVNUWVBFX1BDSQkgIDB4MwotI2VuZGlmCisjZGVmaW5lIFNDU0lfUEFSSVRZX0VOQQkJICAweDAwMDEKKyNkZWZpbmUgTE9XX0JZVEVfVEVSTQkJICAweDAwMTAKKyNkZWZpbmUgSElHSF9CWVRFX1RFUk0JCSAgMHgwMDIwCisjZGVmaW5lIEJVU1RZUEVfUENJCSAgMHgzCiAKICNkZWZpbmUgU1VQUE9SVF8xNlRBUl8zMkxVTgkgIDB4MDAwMgogI2RlZmluZSBTT0ZUX1JFU0VUCQkgIDB4MDAwNApAQCAtNTUzLDkgKzE5OCw2IEBACiAgICBVQ0hBUiAgIFNhdmVfQ2RiTGVuOwogICAgVUNIQVIgICBTY2NiX1hmZXJTdGF0ZTsKICAgIFVMT05HICAgU2NjYl9TR29mZnNldDsKLSNpZiAoRldfVFlQRSA9PSBfVUNCX01HUl8pCi0gICBQVUNCICAgIFNjY2JfdWNiX3B0cjsKLSNlbmRpZgogICAgfSBTQ0NCOwogCiAjZGVmaW5lIFNDQ0JfU0laRSBzaXplb2YoU0NDQikKQEAgLTYyNiwyNSArMjY4LDkgQEAKIAogCiAKLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKSAgCi0gICAjZGVmaW5lICBIQkFfQVVUT19TRU5TRV9GQUlMICAgICAgICAweDFCICAKLSAgICNkZWZpbmUgIEhCQV9UUV9SRUpFQ1RFRCAgICAgICAgICAgIDB4MUMgIAotICAgI2RlZmluZSAgSEJBX1VOU1VQUE9SVEVEX01TRyAgICAgICAgIDB4MUQgIAotICAgI2RlZmluZSAgSEJBX0hXX0VSUk9SICAgICAgICAgICAgICAgMHgyMCAgCi0gICAjZGVmaW5lICBIQkFfQVROX05PVF9SRVNQT05ERUQgICAgICAweDIxICAKLSAgICNkZWZpbmUgIEhCQV9TQ1NJX1JFU0VUX0JZX0FEQVBURVIgIDB4MjIKLSAgICNkZWZpbmUgIEhCQV9TQ1NJX1JFU0VUX0JZX1RBUkdFVCAgIDB4MjMKLSAgICNkZWZpbmUgIEhCQV9XUk9OR19DT05ORUNUSU9OICAgICAgIDB4MjQKLSAgICNkZWZpbmUgIEhCQV9CVVNfREVWSUNFX1JFU0VUICAgICAgIDB4MjUKLSAgICNkZWZpbmUgIEhCQV9BQk9SVF9RVUVVRSAgICAgICAgICAgIDB4MjYKLQotI2Vsc2UgLy8gdGhlc2UgYXJlIG5vdCBkZWZpbmVkIGluIEJVREkvVUNCCi0KLSAgICNkZWZpbmUgU0NDQl9JTlZBTElEX0RJUkVDVElPTiAgICAgIDB4MTggIC8qIEludmFsaWQgdGFyZ2V0IGRpcmVjdGlvbiAqLwotICAgI2RlZmluZSBTQ0NCX0RVUExJQ0FURV9TQ0NCICAgICAgICAgMHgxOSAgLyogRHVwbGljYXRlIFNDQ0IgKi8KLSAgICNkZWZpbmUgU0NDQl9TQ1NJX1JTVCAgICAgICAgICAgICAgIDB4MzUgIC8qIFNDU0kgUkVTRVQgZGV0ZWN0ZWQuICovCi0KLSNlbmRpZiAvLyAoRldfVFlQRT09X1VDQl9NR1JfKSAgCisjZGVmaW5lIFNDQ0JfSU5WQUxJRF9ESVJFQ1RJT04gICAgICAweDE4ICAvKiBJbnZhbGlkIHRhcmdldCBkaXJlY3Rpb24gKi8KKyNkZWZpbmUgU0NDQl9EVVBMSUNBVEVfU0NDQiAgICAgICAgIDB4MTkgIC8qIER1cGxpY2F0ZSBTQ0NCICovCisjZGVmaW5lIFNDQ0JfU0NTSV9SU1QgICAgICAgICAgICAgICAweDM1ICAvKiBTQ1NJIFJFU0VUIGRldGVjdGVkLiAqLwogCiAKICNkZWZpbmUgU0NDQl9JTl9QUk9DRVNTICAgICAgICAgICAgMHgwMApAQCAtNjU3LDExNSArMjgzLDIwIEBACiAjZGVmaW5lIFNDQ0JfU0laRSBzaXplb2YoU0NDQikKIAogCi0KLQotI2lmIChGV19UWVBFID09IF9VQ0JfTUdSXykKLQl2b2lkIFNjY2JNZ3Jfc3RhcnRfc2NjYihDQVJEX0hBTkRMRSBwQ3VyckNhcmQsIFBVQ0IgcF91Y2IpOwotCXMzMmJpdHMgU2NjYk1ncl9hYm9ydF9zY2NiKENBUkRfSEFORExFIHBDdXJyQ2FyZCwgUFVDQiBwX3VjYik7Ci0JdTA4Yml0cyBTY2NiTWdyX215X2ludChDQVJEX0hBTkRMRSBwQ3VyckNhcmQpOwotCXMzMmJpdHMgU2NjYk1ncl9pc3IoQ0FSRF9IQU5ETEUgcEN1cnJDYXJkKTsKLQl2b2lkIFNjY2JNZ3Jfc2NzaV9yZXNldChDQVJEX0hBTkRMRSBwQ3VyckNhcmQpOwotCXZvaWQgU2NjYk1ncl90aW1lcl9leHBpcmVkKENBUkRfSEFORExFIHBDdXJyQ2FyZCk7Ci0Jdm9pZCBTY2NiTWdyX3VubG9hZF9jYXJkKENBUkRfSEFORExFIHBDdXJyQ2FyZCk7Ci0Jdm9pZCBTY2NiTWdyX3Jlc3RvcmVfZm9yZWlnbl9zdGF0ZShDQVJEX0hBTkRMRSBwQ3VyckNhcmQpOwotCXZvaWQgU2NjYk1ncl9yZXN0b3JlX25hdGl2ZV9zdGF0ZShDQVJEX0hBTkRMRSBwQ3VyckNhcmQpOwotCXZvaWQgU2NjYk1ncl9zYXZlX2ZvcmVpZ25fc3RhdGUoUEFEQVBURVJfSU5GTyBwQWRhcHRlckluZm8pOwotCi0jZW5kaWYKLQotCi0jaWYgKEZXX1RZUEUgPT0gX1NDQ0JfTUdSXykKLQotICNpZiBkZWZpbmVkIChET1MpCi0JaW50ICAgIFNjY2JNZ3Jfc2Vuc2VfYWRhcHRlcihQU0NDQk1HUl9JTkZPIHBDYXJkSW5mbyk7Ci0JVVNIT1JUIFNjY2JNZ3JfY29uZmlnX2FkYXB0ZXIoUFNDQ0JNR1JfSU5GTyBwQ2FyZEluZm8pOwotCXZvaWQgIFNjY2JNZ3Jfc3RhcnRfc2NjYihVU0hPUlQgcEN1cnJDYXJkLCBQU0NDQiBwX1NDQ0IpOwotCWludCAgIFNjY2JNZ3JfYWJvcnRfc2NjYihVU0hPUlQgcEN1cnJDYXJkLCBQU0NDQiBwX1NDQ0IpOwotCVVDSEFSIFNjY2JNZ3JfbXlfaW50KFVTSE9SVCBwQ3VyckNhcmQpOwotCWludCAgIFNjY2JNZ3JfaXNyKFVTSE9SVCBwQ3VyckNhcmQpOwotCXZvaWQgIFNjY2JNZ3Jfc2NzaV9yZXNldChVU0hPUlQgcEN1cnJDYXJkKTsKLQl2b2lkICBTY2NiTWdyX3RpbWVyX2V4cGlyZWQoVVNIT1JUIHBDdXJyQ2FyZCk7Ci0JVVNIT1JUIFNjY2JNZ3Jfc3RhdHVzKFVTSE9SVCBwQ3VyckNhcmQpOwotCXZvaWQgU2NjYk1ncl91bmxvYWRfY2FyZChVU0hPUlQgcEN1cnJDYXJkKTsKLQotICNlbHNlICAgIC8vbm9uLURPUwotCi0JaW50ICAgU2NjYk1ncl9zZW5zZV9hZGFwdGVyKFBTQ0NCTUdSX0lORk8gcENhcmRJbmZvKTsKLQlVTE9ORyBTY2NiTWdyX2NvbmZpZ19hZGFwdGVyKFBTQ0NCTUdSX0lORk8gcENhcmRJbmZvKTsKLQl2b2lkICBTY2NiTWdyX3N0YXJ0X3NjY2IoVUxPTkcgcEN1cnJDYXJkLCBQU0NDQiBwX1NDQ0IpOwotCWludCAgIFNjY2JNZ3JfYWJvcnRfc2NjYihVTE9ORyBwQ3VyckNhcmQsIFBTQ0NCIHBfU0NDQik7Ci0JVUNIQVIgU2NjYk1ncl9teV9pbnQoVUxPTkcgcEN1cnJDYXJkKTsKLQlpbnQgICBTY2NiTWdyX2lzcihVTE9ORyBwQ3VyckNhcmQpOwotCXZvaWQgIFNjY2JNZ3Jfc2NzaV9yZXNldChVTE9ORyBwQ3VyckNhcmQpOwotCXZvaWQgIFNjY2JNZ3JfZW5hYmxlX2ludChVTE9ORyBwQ3VyckNhcmQpOwotCXZvaWQgIFNjY2JNZ3JfZGlzYWJsZV9pbnQoVUxPTkcgcEN1cnJDYXJkKTsKLQl2b2lkICBTY2NiTWdyX3RpbWVyX2V4cGlyZWQoVUxPTkcgcEN1cnJDYXJkKTsKLQl2b2lkIFNjY2JNZ3JfdW5sb2FkX2NhcmQoVUxPTkcgcEN1cnJDYXJkKTsKLQotICAjZW5kaWYKLSNlbmRpZiAgLy8gKEZXX1RZUEUgPT0gX1NDQ0JfTUdSXykKLQotI2VuZGlmICAvKiBfX1NDQ0JfSF9fICovCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqCi0gKiAgIENvcHlyaWdodCAxOTk1LTE5OTYgYnkgTXlsZXggQ29ycG9yYXRpb24uICBBbGwgUmlnaHRzIFJlc2VydmVkCi0gKgotICogICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGJvdGggdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFuZCBhIEJTRC1zdHlsZSBjb3B5cmlnaHQ7IHNlZSBMSUNFTlNFLkZsYXNoUG9pbnQgZm9yIGRldGFpbHMuCi0gKgotICogICAkV29ya2ZpbGU6ICAgYmx4MzAuaCAgJAotICoKLSAqICAgRGVzY3JpcHRpb246IFRoaXMgbW9kdWxlIGNvbnRhaW5zIFNDQ0IvVUNCIE1hbmFnZXIgaW1wbGVtZW50YXRpb24KLSAqICAgICAgICAgICAgICAgIHNwZWNpZmljIHN0dWZmLgotICoKLSAqICAgJERhdGU6IDE5OTYvMTEvMTMgMTg6MzQ6MjIgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjEwICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0KLSNpZm5kZWYgX19ibHgzMF9IX18KLSNkZWZpbmUgX19ibHgzMF9IX18KLQotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0KICNkZWZpbmUgIE9SSU9OX0ZXX1JFViAgICAgIDMxMTAKIAotCi0KLQogI2RlZmluZSBIQVJQX1JFVkQgICAgMQogCiAKLSNpZiBkZWZpbmVkKERPUykKLSNkZWZpbmUgUVVFVUVfREVQVEggICAgIDgrMSAgICAgICAgICAgIC8qMSBmb3IgTm9ybWFsIGRpc2Nvbm5lY3QgMCBmb3IgUSdpbmcuICovCi0jZWxzZQogI2RlZmluZSBRVUVVRV9ERVBUSCAgICAgMjU0KzEgICAgICAgICAgICAvKjEgZm9yIE5vcm1hbCBkaXNjb25uZWN0IDMyIGZvciBRJ2luZy4gKi8KLSNlbmRpZiAgIC8vIGRlZmluZWQoRE9TKQogCiAjZGVmaW5lCU1BWF9NQl9DQVJEUwk0CQkJCQkvKiBNYXguIG5vIG9mIGNhcmRzIHN1cHBvZXJ0ZWQgb24gTW90aGVyIEJvYXJkICovCiAKICNkZWZpbmUgV0lERV9TQ1NJICAgICAgIDEKIAotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQotICAgI2lmIGRlZmluZWQoRE9TKQotICAgICAgI2RlZmluZSBNQVhfU0NTSV9UQVIgICAgMTYKLSAgICAgICNkZWZpbmUgTUFYX0xVTiAgICAgICAgIDgKLQkJI2RlZmluZSBMVU5fTUFTSwkJCTB4MDcKLSAgICNlbHNlCi0gICAgICAjZGVmaW5lIE1BWF9TQ1NJX1RBUiAgICAxNgotICAgICAgI2RlZmluZSBNQVhfTFVOICAgICAgICAgMzIKLQkJI2RlZmluZSBMVU5fTUFTSwkJCTB4MWYKLQkKLSAgICNlbmRpZgotI2Vsc2UKLSAgICNkZWZpbmUgTUFYX1NDU0lfVEFSICAgIDgKLSAgICNkZWZpbmUgTUFYX0xVTiAgICAgICAgIDgKLQkjZGVmaW5lIExVTl9NQVNLCQkJMHgwNwotI2VuZGlmIAorI2RlZmluZSBNQVhfU0NTSV9UQVIgICAgMTYKKyNkZWZpbmUgTUFYX0xVTiAgICAgICAgIDMyCisjZGVmaW5lIExVTl9NQVNLCQkJMHgxZgogCiAjaWYgZGVmaW5lZChIQVJQX1JFVkEpCiAjZGVmaW5lIFNHX0JVRl9DTlQgICAgICAxNSAgICAgICAgICAgICAvKk51bWJlciBvZiBwcmVmZXRjaGVkIGVsZW1lbnRzLiAqLwpAQCAtNzc4LDExNiArMzA5LDEyIEBACiAjZGVmaW5lIFNHX0VMRU1FTlRfTUFTSyAweEZGRkZGRkZGTAogCiAKLSNpZiAoRldfVFlQRSA9PSBfVUNCX01HUl8pCi0JI2RlZmluZSBPUENfREVDT0RFX05PUk1BTCAgICAgICAweDBmN2YKLSNlbmRpZiAgIC8vIF9VQ0JfTUdSXwotCi0KLQotI2lmIGRlZmluZWQoRE9TKQotCi0vKiNpbmNsdWRlIDxkb3MuaD4qLwotCSNkZWZpbmUgUkRfSEFSUE9PTihpb3BvcnQpICAgICAgICAgIChPU19JblBvcnRCeXRlKGlvcG9ydCkpCi0JI2RlZmluZSBSRFdfSEFSUE9PTihpb3BvcnQpICAgICAgICAgKE9TX0luUG9ydFdvcmQoaW9wb3J0KSkKLQkjZGVmaW5lIFdSX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgICAoT1NfT3V0UG9ydEJ5dGUoaW9wb3J0LHZhbCkpCi0JI2RlZmluZSBXUldfSEFSUE9PTihpb3BvcnQsdmFsKSAgICAgKE9TX091dFBvcnRXb3JkKGlvcG9ydCx2YWwpKQotCi0JI2RlZmluZSBSRF9IQVJQMzIocG9ydCxvZmZzZXQsZGF0YSkgIGFzbXtkYiA2Nmg7ICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBheDsgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92IGR4LHBvcnQ7ICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGR4LCBvZmZzZXQ7ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYXgsZHg7ICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92IHdvcmQgcHRyIGRhdGEsYXg7XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wIGF4fQotCi0JI2RlZmluZSBXUl9IQVJQMzIocG9ydCxvZmZzZXQsZGF0YSkgYXNte2RiIDY2aDsgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBheDsgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92IGR4LHBvcnQ7ICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGR4LCBvZmZzZXQ7ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92IGF4LHdvcmQgcHRyIGRhdGE7XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IGR4LGF4OyAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGIgNjZoOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wIGF4fQotI2VuZGlmCS8qIERPUyAqLwotCi0jaWYgZGVmaW5lZChORVRXQVJFKSB8fCBkZWZpbmVkKE9USEVSXzMyKSB8fCAgZGVmaW5lZChPVEhFUl8xNikKLQkjZGVmaW5lIFJEX0hBUlBPT04oaW9wb3J0KSAgICAgT1NfSW5Qb3J0Qnl0ZSgodW5zaWduZWQgbG9uZylpb3BvcnQpCi0JI2RlZmluZSBSRFdfSEFSUE9PTihpb3BvcnQpICAgIE9TX0luUG9ydFdvcmQoKHVuc2lnbmVkIGxvbmcpaW9wb3J0KQotCSNkZWZpbmUgUkRfSEFSUDMyKGlvcG9ydCxvZmZzZXQsZGF0YSkgKGRhdGEgPSBPU19JblBvcnRMb25nKGlvcG9ydCArIG9mZnNldCkpCi0JI2RlZmluZSBXUl9IQVJQT09OKGlvcG9ydCx2YWwpIE9TX091dFBvcnRCeXRlKChVTE9ORylpb3BvcnQsKFVDSEFSKSB2YWwpCi0JI2RlZmluZSBXUldfSEFSUE9PTihpb3BvcnQsdmFsKSAgT1NfT3V0UG9ydFdvcmQoKFVMT05HKWlvcG9ydCwoVVNIT1JUKXZhbCkKLQkjZGVmaW5lIFdSX0hBUlAzMihpb3BvcnQsb2Zmc2V0LGRhdGEpICBPU19PdXRQb3J0TG9uZygoaW9wb3J0ICsgb2Zmc2V0KSwgZGF0YSkKLSNlbmRpZgkvKiBORVRXQVJFIHx8IE9USEVSXzMyIHx8IE9USEVSXzE2ICovCi0KLSNpZiBkZWZpbmVkKE5UKSB8fCBkZWZpbmVkKFdJTjk1XzMyKSB8fCBkZWZpbmVkKFdJTjk1XzE2KQotCSNkZWZpbmUgUkRfSEFSUE9PTihpb3BvcnQpICAgICAgICAgIE9TX0luUG9ydEJ5dGUoKFVMT05HKWlvcG9ydCkKLQkjZGVmaW5lIFJEV19IQVJQT09OKGlvcG9ydCkgICAgICAgICBPU19JblBvcnRXb3JkKChVTE9ORylpb3BvcnQpCi0JI2RlZmluZSBSRF9IQVJQMzIoaW9wb3J0LG9mZnNldCxkYXRhKSAoZGF0YSA9IE9TX0luUG9ydExvbmcoKFVMT05HKShpb3BvcnQgKyBvZmZzZXQpKSkKLQkjZGVmaW5lIFdSX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgICBPU19PdXRQb3J0Qnl0ZSgoVUxPTkcpaW9wb3J0LChVQ0hBUikgdmFsKQotCSNkZWZpbmUgV1JXX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgIE9TX091dFBvcnRXb3JkKChVTE9ORylpb3BvcnQsKFVTSE9SVCl2YWwpCi0JI2RlZmluZSBXUl9IQVJQMzIoaW9wb3J0LG9mZnNldCxkYXRhKSAgT1NfT3V0UG9ydExvbmcoKFVMT05HKShpb3BvcnQgKyBvZmZzZXQpLCBkYXRhKQotI2VuZGlmIC8qIE5UIHx8IFdJTjk1XzMyIHx8IFdJTjk1XzE2ICovCi0KLSNpZiBkZWZpbmVkIChVTklYKQotCSNkZWZpbmUgUkRfSEFSUE9PTihpb3BvcnQpICAgICAgICAgIE9TX0luUG9ydEJ5dGUoKHUzMmJpdHMpaW9wb3J0KQotCSNkZWZpbmUgUkRXX0hBUlBPT04oaW9wb3J0KSAgICAgICAgIE9TX0luUG9ydFdvcmQoKHUzMmJpdHMpaW9wb3J0KQotCSNkZWZpbmUgUkRfSEFSUDMyKGlvcG9ydCxvZmZzZXQsZGF0YSkgKGRhdGEgPSBPU19JblBvcnRMb25nKCh1MzJiaXRzKShpb3BvcnQgKyBvZmZzZXQpKSkKLQkjZGVmaW5lIFdSX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgICBPU19PdXRQb3J0Qnl0ZSgodTMyYml0cylpb3BvcnQsKHUwOGJpdHMpIHZhbCkKLQkjZGVmaW5lIFdSV19IQVJQT09OKGlvcG9ydCx2YWwpICAgICAgIE9TX091dFBvcnRXb3JkKCh1MzJiaXRzKWlvcG9ydCwodTE2Yml0cyl2YWwpCi0JI2RlZmluZSBXUl9IQVJQMzIoaW9wb3J0LG9mZnNldCxkYXRhKSAgT1NfT3V0UG9ydExvbmcoKHUzMmJpdHMpKGlvcG9ydCArIG9mZnNldCksIGRhdGEpCi0jZW5kaWYgLyogVU5JWCAqLwotCi0jaWYgZGVmaW5lZChPUzIpCi0JI2RlZmluZSBSRF9IQVJQT09OKGlvcG9ydCkgICAgICAgICAgT1NfSW5Qb3J0Qnl0ZSgodW5zaWduZWQgbG9uZylpb3BvcnQpCi0JI2RlZmluZSBSRFdfSEFSUE9PTihpb3BvcnQpICAgICAgICAgT1NfSW5Qb3J0V29yZCgodW5zaWduZWQgbG9uZylpb3BvcnQpCi0JI2RlZmluZSBSRF9IQVJQMzIoaW9wb3J0LG9mZnNldCxkYXRhKSAoZGF0YSA9IE9TX0luUG9ydExvbmcoKFVMT05HKShpb3BvcnQgKyBvZmZzZXQpKSkKLQkjZGVmaW5lIFdSX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgICBPU19PdXRQb3J0Qnl0ZSgoVUxPTkcpaW9wb3J0LChVQ0hBUikgdmFsKQotCSNkZWZpbmUgV1JXX0hBUlBPT04oaW9wb3J0LHZhbCkgICAgICAgT1NfT3V0UG9ydFdvcmQoKFVMT05HKWlvcG9ydCwoVVNIT1JUKXZhbCkKLQkjZGVmaW5lIFdSX0hBUlAzMihpb3BvcnQsb2Zmc2V0LGRhdGEpICBPU19PdXRQb3J0TG9uZygoKFVMT05HKShpb3BvcnQgKyBvZmZzZXQpKSwgZGF0YSkKLSNlbmRpZiAvKiBPUzIgKi8KLQotI2lmIGRlZmluZWQoU09MQVJJU19SRUFMX01PREUpCi0KLQkjZGVmaW5lIFJEX0hBUlBPT04oaW9wb3J0KSAgICAgICAgICBPU19JblBvcnRCeXRlKCh1bnNpZ25lZCBsb25nKWlvcG9ydCkKLQkjZGVmaW5lIFJEV19IQVJQT09OKGlvcG9ydCkgICAgICAgICBPU19JblBvcnRXb3JkKCh1bnNpZ25lZCBsb25nKWlvcG9ydCkKLQkjZGVmaW5lIFJEX0hBUlAzMihpb3BvcnQsb2Zmc2V0LGRhdGEpIChkYXRhID0gT1NfSW5Qb3J0TG9uZygoVUxPTkcpKGlvcG9ydCArIG9mZnNldCkpKQotCSNkZWZpbmUgV1JfSEFSUE9PTihpb3BvcnQsdmFsKSAgICAgIE9TX091dFBvcnRCeXRlKChVTE9ORylpb3BvcnQsKFVDSEFSKSB2YWwpCi0JI2RlZmluZSBXUldfSEFSUE9PTihpb3BvcnQsdmFsKSAgICAgICBPU19PdXRQb3J0V29yZCgoVUxPTkcpaW9wb3J0LChVU0hPUlQpdmFsKQotCSNkZWZpbmUgV1JfSEFSUDMyKGlvcG9ydCxvZmZzZXQsZGF0YSkgIE9TX091dFBvcnRMb25nKChVTE9ORykoaW9wb3J0ICsgb2Zmc2V0KSwgKFVMT05HKWRhdGEpCi0KLSNlbmRpZiAgLyogU09MQVJJU19SRUFMX01PREUgKi8KLQotI2VuZGlmICAvKiBfX0JMWDMwX0hfXyAqLwotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogCi0gKgotICogICBDb3B5cmlnaHQgMTk5NS0xOTk2IGJ5IE15bGV4IENvcnBvcmF0aW9uLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAotICoKLSAqICAgVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSB1bmRlciBib3RoIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogICBhbmQgYSBCU0Qtc3R5bGUgY29weXJpZ2h0OyBzZWUgTElDRU5TRS5GbGFzaFBvaW50IGZvciBkZXRhaWxzLgotICoKLSAqICAgJFdvcmtmaWxlOiAgIHRhcmdldC5oICAkCi0gKgotICogICBEZXNjcmlwdGlvbjogIERlZmluaXRpb25zIGZvciBUYXJnZXQgcmVsYXRlZCBzdHJ1Y3R1cmVzCi0gKgotICogICAkRGF0ZTogMTk5Ni8xMi8xMSAyMjowNjoyMCAkCi0gKgotICogICAkUmV2aXNpb246IDEuOSAkCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmbmRlZiBfX1RBUkdFVF9fCi0jZGVmaW5lIF9fVEFSR0VUX18KLQotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0vKiNpbmNsdWRlIDxibHgzMC5oPiovCisjZGVmaW5lIFJEX0hBUlBPT04oaW9wb3J0KSAgICAgICAgICBPU19JblBvcnRCeXRlKCh1MzJiaXRzKWlvcG9ydCkKKyNkZWZpbmUgUkRXX0hBUlBPT04oaW9wb3J0KSAgICAgICAgIE9TX0luUG9ydFdvcmQoKHUzMmJpdHMpaW9wb3J0KQorI2RlZmluZSBSRF9IQVJQMzIoaW9wb3J0LG9mZnNldCxkYXRhKSAoZGF0YSA9IE9TX0luUG9ydExvbmcoKHUzMmJpdHMpKGlvcG9ydCArIG9mZnNldCkpKQorI2RlZmluZSBXUl9IQVJQT09OKGlvcG9ydCx2YWwpICAgICAgT1NfT3V0UG9ydEJ5dGUoKHUzMmJpdHMpaW9wb3J0LCh1MDhiaXRzKSB2YWwpCisjZGVmaW5lIFdSV19IQVJQT09OKGlvcG9ydCx2YWwpICAgICAgIE9TX091dFBvcnRXb3JkKCh1MzJiaXRzKWlvcG9ydCwodTE2Yml0cyl2YWwpCisjZGVmaW5lIFdSX0hBUlAzMihpb3BvcnQsb2Zmc2V0LGRhdGEpICBPU19PdXRQb3J0TG9uZygodTMyYml0cykoaW9wb3J0ICsgb2Zmc2V0KSwgZGF0YSkKIAogCiAjZGVmaW5lICBUQVJfU1lOQ19NQVNLICAgICAoQklUKDcpK0JJVCg2KSkKQEAgLTkxOSwxNiArMzQ2LDcgQEAKICNkZWZpbmUgIEVFX1dJREVfU0NTSSAgICAgIEJJVCg3KQogCiAKLSNpZiBkZWZpbmVkKERPUykKLSAgIHR5cGVkZWYgc3RydWN0IFNDQ0JNZ3JfdGFyX2luZm8gbmVhciAqUFNDQ0JNZ3JfdGFyX2luZm87Ci0KLSNlbGlmIGRlZmluZWQoT1MyKQotICAgdHlwZWRlZiBzdHJ1Y3QgU0NDQk1ncl90YXJfaW5mbyBmYXIgKlBTQ0NCTWdyX3Rhcl9pbmZvOwotCi0jZWxzZQotICAgdHlwZWRlZiBzdHJ1Y3QgU0NDQk1ncl90YXJfaW5mbyAqUFNDQ0JNZ3JfdGFyX2luZm87Ci0KLSNlbmRpZgordHlwZWRlZiBzdHJ1Y3QgU0NDQk1ncl90YXJfaW5mbyAqUFNDQ0JNZ3JfdGFyX2luZm87CiAKIAogdHlwZWRlZiBzdHJ1Y3QgU0NDQk1ncl90YXJfaW5mbyB7CkBAIC05NDksMTEgKzM2Nyw3IEBACiB0eXBlZGVmIHN0cnVjdCBOVlJBTUluZm8gewogCVVDSEFSCQluaU1vZGVsOwkJCQkJCQkJLyogTW9kZWwgTm8uIG9mIGNhcmQgKi8KIAlVQ0hBUgkJbmlDYXJkTm87CQkJCQkJCS8qIENhcmQgbm8uICovCi0jaWYgZGVmaW5lZChET1MpCi0JVVNIT1JUCW5pQmFzZUFkZHI7CQkJCQkJCS8qIFBvcnQgQWRkcmVzcyBvZiBjYXJkICovCi0jZWxzZQogCVVMT05HCQluaUJhc2VBZGRyOwkJCQkJCQkvKiBQb3J0IEFkZHJlc3Mgb2YgY2FyZCAqLwotI2VuZGlmCiAJVUNIQVIJCW5pU3lzQ29uZjsJCQkJCQkJLyogQWRhcHRlciBDb25maWd1cmF0aW9uIGJ5dGUgLSBCeXRlIDE2IG9mIGVlcHJvbSBtYXAgKi8KIAlVQ0hBUgkJbmlTY3NpQ29uZjsJCQkJCQkJLyogU0NTSSBDb25maWd1cmF0aW9uIGJ5dGUgLSBCeXRlIDE3IG9mIGVlcHJvbSBtYXAgKi8KIAlVQ0hBUgkJbmlTY2FtQ29uZjsJCQkJCQkJLyogU0NBTSBDb25maWd1cmF0aW9uIGJ5dGUgLSBCeXRlIDIwIG9mIGVlcHJvbSBtYXAgKi8KQEAgLTk2MiwxMyArMzc2LDcgQEAKIAlVQ0hBUgkJbmlTY2FtVGJsW01BWF9TQ1NJX1RBUl1bNF07CS8qIENvbXByZXNzZWQgU2NhbSBuYW1lIHN0cmluZyBvZiBUYXJnZXRzICovCiB9TlZSQU1JTkZPOwogCi0jaWYgZGVmaW5lZChET1MpCi10eXBlZGVmIE5WUkFNSU5GTyBuZWFyICpQTlZSYW1JbmZvOwotI2VsaWYgZGVmaW5lZCAoT1MyKQotdHlwZWRlZiBOVlJBTUlORk8gZmFyICpQTlZSYW1JbmZvOwotI2Vsc2UKIHR5cGVkZWYgTlZSQU1JTkZPICpQTlZSYW1JbmZvOwotI2VuZGlmCiAKICNkZWZpbmUJTU9ERUxfTFQJCTEKICNkZWZpbmUJTU9ERUxfREwJCTIKQEAgLTk3OCwxNyArMzg2LDkgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgU0NDQmNhcmQgewogICAgUFNDQ0IgY3VycmVudFNDQ0I7Ci0jaWYgKEZXX1RZUEU9PV9TQ0NCX01HUl8pCiAgICBQU0NDQk1HUl9JTkZPIGNhcmRJbmZvOwotI2Vsc2UKLSAgIFBBREFQVEVSX0lORk8gY2FyZEluZm87Ci0jZW5kaWYKIAotI2lmIGRlZmluZWQoRE9TKQotICAgVVNIT1JUIGlvUG9ydDsKLSNlbHNlCiAgICBVTE9ORyBpb1BvcnQ7Ci0jZW5kaWYKIAogICAgVVNIT1JUIGNtZENvdW50ZXI7CiAgICBVQ0hBUiAgZGlzY1FDb3VudDsKQEAgLTEwMDIsMTMgKzQwMiw3IEBACiAgICAgICAKIH1TQ0NCQ0FSRDsKIAotI2lmIGRlZmluZWQoRE9TKQotdHlwZWRlZiBzdHJ1Y3QgU0NDQmNhcmQgbmVhciAqUFNDQ0JjYXJkOwotI2VsaWYgZGVmaW5lZCAoT1MyKQotdHlwZWRlZiBzdHJ1Y3QgU0NDQmNhcmQgZmFyICpQU0NDQmNhcmQ7Ci0jZWxzZQogdHlwZWRlZiBzdHJ1Y3QgU0NDQmNhcmQgKlBTQ0NCY2FyZDsKLSNlbmRpZgogCiAKICNkZWZpbmUgRl9UQUdfU1RBUlRFRAkJMHgwMQpAQCAtMTA2MywyOSArNDU3LDYgQEAKICAgICAKIH0gU0NDQlNDQU1fSU5GTywgKlBTQ0NCU0NBTV9JTkZPOwogCi0jZW5kaWYKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqCi0gKiAgIENvcHlyaWdodCAxOTk1LTE5OTYgYnkgTXlsZXggQ29ycG9yYXRpb24uICBBbGwgUmlnaHRzIFJlc2VydmVkCi0gKgotICogICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGJvdGggdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFuZCBhIEJTRC1zdHlsZSBjb3B5cmlnaHQ7IHNlZSBMSUNFTlNFLkZsYXNoUG9pbnQgZm9yIGRldGFpbHMuCi0gKgotICogICAkV29ya2ZpbGU6ICAgc2NzaTIuaCAgJAotICoKLSAqICAgRGVzY3JpcHRpb246ICBSZWdpc3RlciBkZWZpbml0aW9ucyBmb3IgSEFSUE9PTiBBU0lDLgotICoKLSAqICAgJERhdGU6IDE5OTYvMTEvMTMgMTg6MzI6NTcgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjQgJAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZm5kZWYgX19TQ1NJX0hfXwotI2RlZmluZSBfX1NDU0lfSF9fCi0KLQogCiAjZGVmaW5lICBTQ1NJX1RFU1RfVU5JVF9SRUFEWSAgICAweDAwCiAjZGVmaW5lICBTQ1NJX1JFWkVST19VTklUICAgICAgICAweDAxCkBAIC0xMTk1LDI5ICs1NjYsNiBAQAogI2RlZmluZSAgU1lOQzVNQlMgICAgICAgICAgICAgICAgMHgzMgogI2RlZmluZSAgTUFYX09GRlNFVCAgICAgICAgICAgICAgMHgwRiAgLyogTWF4Ynl0ZW9mZnNldCBmb3IgU3luYyBYZmVycyAqLwogCi0jZW5kaWYKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogIAotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBlZXByb20uaCAgJAotICoKLSAqICAgRGVzY3JpcHRpb246ICBEZWZpbml0aW9ucyBmb3IgRUVQUk9NIHJlbGF0ZWQgc3RydWN0dXJlcwotICoKLSAqICAgJERhdGU6IDE5OTYvMTEvMTMgMTg6Mjg6MzkgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjQgJAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZm5kZWYgX19FRVBST01fXwotI2RlZmluZSBfX0VFUFJPTV9fCi0KLS8qI2luY2x1ZGUgPGdsb2JhbHMuaD4qLwogCiAjZGVmaW5lICBFRVBST01fV0RfQ05UICAgICAyNTYKIApAQCAtMTI4MCwzMSArNjI4LDYgQEAKICAgICNkZWZpbmUgIERJU0NfRU5BQkxFX0JJVCAgIEJJVCg2KQogCiAKLSNlbmRpZgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBoYXJwb29uLmggICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIEhBUlBPT04gQVNJQy4KLSAqCi0gKiAgICREYXRlOiAxOTk3LzA3LzA5IDIxOjQ0OjM2ICQKLSAqCi0gKiAgICRSZXZpc2lvbjogMS45ICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0KLS8qI2luY2x1ZGUgPGdsb2JhbHMuaD4qLwotCi0jaWZuZGVmIF9fSEFSUE9PTl9fCi0jZGVmaW5lIF9fSEFSUE9PTl9fCi0KIAogICAgI2RlZmluZSAgaHBfdmVuZG9yX2lkXzAgICAgICAgMHgwMAkJLyogTFNCICovCiAgICAgICAjZGVmaW5lICBPUklPTl9WRU5EXzAgICAweDRCCkBAIC0xNTc4LDggKzkwMSw2IEBACiAKIAogCi0gICBleHRlcm4gVVNIT1JUIGRlZmF1bHRfaW50ZW5hOwotCiAgICAjZGVmaW5lICBocF9pbnRlbmEJCSAweDQwCiAKICAgICAgICNkZWZpbmUgIFJFU0VUCQkgQklUVyg3KQpAQCAtMTk3MiwxNSArMTI5Myw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZmVyY250IDw8PSAxNixcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZmVyY250IHw9IFJEV19IQVJQT09OKChVU0hPUlQpKHBvcnQraHBfeGZlcmNudF8wKSkpCiAgKi8KLSNpZiBkZWZpbmVkKERPUykKLSNkZWZpbmUgSFBfU0VUVVBfQUREUl9DTlQocG9ydCxhZGRyLGNvdW50KSAoV1JXX0hBUlBPT04oKFVTSE9SVCkocG9ydCtocF9ob3N0X2FkZHJfbG8pLCAoVVNIT1JUKShhZGRyICYgMHgwMDAwRkZGRkwpKSxcCi0gICAgICAgICBhZGRyID4+PSAxNixcCi0gICAgICAgICBXUldfSEFSUE9PTigoVVNIT1JUKShwb3J0K2hwX2hvc3RfYWRkcl9obWkpLCAoVVNIT1JUKShhZGRyICYgMHgwMDAwRkZGRkwpKSxcCi0gICAgICAgICBXUl9IQVJQMzIocG9ydCxocF94ZmVyY250XzAsY291bnQpLFwKLSAgICAgICAgIFdSV19IQVJQT09OKChVU0hPUlQpKHBvcnQraHBfeGZlcl9jbnRfbG8pLCAoVVNIT1JUKShjb3VudCAmIDB4MDAwMEZGRkZMKSksXAotICAgICAgICAgY291bnQgPj49IDE2LFwKLSAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF94ZmVyX2NudF9oaSwgKGNvdW50ICYgMHhGRikpKQotI2Vsc2UKICNkZWZpbmUgSFBfU0VUVVBfQUREUl9DTlQocG9ydCxhZGRyLGNvdW50KSAoV1JXX0hBUlBPT04oKHBvcnQraHBfaG9zdF9hZGRyX2xvKSwgKFVTSE9SVCkoYWRkciAmIDB4MDAwMEZGRkZMKSksXAogICAgICAgICAgYWRkciA+Pj0gMTYsXAogICAgICAgICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaG9zdF9hZGRyX2htaSksIChVU0hPUlQpKGFkZHIgJiAweDAwMDBGRkZGTCkpLFwKQEAgLTE5ODgsNyArMTMwMCw2IEBACiAgICAgICAgICBXUldfSEFSUE9PTigocG9ydCtocF94ZmVyX2NudF9sbyksIChVU0hPUlQpKGNvdW50ICYgMHgwMDAwRkZGRkwpKSxcCiAgICAgICAgICBjb3VudCA+Pj0gMTYsXAogICAgICAgICAgV1JfSEFSUE9PTihwb3J0K2hwX3hmZXJfY250X2hpLCAoY291bnQgJiAweEZGKSkpCi0jZW5kaWYKIAogI2RlZmluZSBBQ0NFUFRfTVNHKHBvcnQpIHt3aGlsZShSRF9IQVJQT09OKHBvcnQraHBfc2NzaXNpZykgJiBTQ1NJX1JFUSl7fVwKICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JfSEFSUE9PTihwb3J0K2hwX3Njc2lzaWcsIFNfSUxMX1BIKTt9CkBAIC0yMDIwLDM4MyArMTMzMSwxNDUgQEAKIAogCiAKLSNlbmRpZgogCi0KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotdm9pZCBSZWFkTlZSYW0oUFNDQ0JjYXJkIHBDdXJyQ2FyZCxQVUNCIHBfdWNiKTsKLXZvaWQgV3JpdGVOVlJhbShQU0NDQmNhcmQgcEN1cnJDYXJkLFBVQ0IgcF91Y2IpOwotdm9pZCBVcGRhdGVDaGVja1N1bSh1MzJiaXRzIGJhc2Vwb3J0KTsKLSNlbmRpZiAvLyAoRldfVFlQRT09X1VDQl9NR1JfKQotCi0jaWYgZGVmaW5lZChET1MpCi1VQ0hBUiBzZm0oVVNIT1JUIHBvcnQsIFBTQ0NCIHBjdXJyU0NDQik7Ci12b2lkICBzY3NpU3RhcnRBdXRvKFVTSE9SVCBwb3J0KTsKLVVDSEFSIHNpc3luY24oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCwgVUNIQVIgc3luY0ZsYWcpOwotdm9pZCAgc3NlbChVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHNyZXMoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCk7Ci12b2lkICBzZGVjbShVQ0hBUiBtZXNzYWdlLCBVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHNoYW5kZW0oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCxQU0NDQiBwQ3VyclNDQ0IpOwotdm9pZCAgc3RzeW5jbihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHNpc3luY3IoVVNIT1JUIHBvcnQsVUNIQVIgc3luY19wdWxzZSwgVUNIQVIgb2Zmc2V0KTsKLXZvaWQgIHNzc3luY3YoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9pZCwgVUNIQVIgcF9zeW5jX3ZhbHVlLCBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm8pOwotdm9pZCAgc3Jlc2IoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci12b2lkICBzeGZycChVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgc2Noa2RkKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotVUNIQVIgUmRTdGFjayhVU0hPUlQgcG9ydCwgVUNIQVIgaW5kZXgpOwotdm9pZCAgV3JTdGFjayhVU0hPUlQgcG9ydEJhc2UsIFVDSEFSIGluZGV4LCBVQ0hBUiBkYXRhKTsKLVVDSEFSIENoa0lmQ2hpcEluaXRpYWxpemVkKFVTSE9SVCBpb1BvcnQpOwotCi0jaWYgZGVmaW5lZChWMzAyKQotVUNIQVIgR2V0VGFyTHVuKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQsIFVDSEFSIG91cl90YXJnZXQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFBVQ0hBUiB0YWcsIFBVQ0hBUiBsdW4pOwotI2VuZGlmCi0KLXZvaWQgU2VuZE1zZyhVU0hPUlQgcG9ydCwgVUNIQVIgbWVzc2FnZSk7Ci12b2lkICBxdWV1ZUZsdXNoVGFyZ1NjY2IoVUNIQVIgcF9jYXJkLCBVQ0hBUiB0aGlzVGFyZywgVUNIQVIgZXJyb3JfY29kZSk7Ci1VQ0hBUiBzY3NlbGxET1MoVVNIT1JUIHBfcG9ydCwgVUNIQVIgdGFyZ19pZCk7Ci0jZWxzZQotVUNIQVIgc2ZtKFVMT05HIHBvcnQsIFBTQ0NCIHBjdXJyU0NDQik7CiB2b2lkICBzY3NpU3RhcnRBdXRvKFVMT05HIHBvcnQpOwotVUNIQVIgc2lzeW5jbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQsIFVDSEFSIHN5bmNGbGFnKTsKLXZvaWQgIHNzZWwoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHNyZXMoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQmNhcmQgcEN1cnJDYXJkKTsKLXZvaWQgIHNkZWNtKFVDSEFSIG1lc3NhZ2UsIFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci12b2lkICBzaGFuZGVtKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCxQU0NDQiBwQ3VyclNDQ0IpOwotdm9pZCAgc3RzeW5jbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgc2lzeW5jcihVTE9ORyBwb3J0LFVDSEFSIHN5bmNfcHVsc2UsIFVDSEFSIG9mZnNldCk7Ci12b2lkICBzc3N5bmN2KFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZCwgVUNIQVIgcF9zeW5jX3ZhbHVlLCBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm8pOwotdm9pZCAgc3Jlc2IoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHN4ZnJwKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHNjaGtkZChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotVUNIQVIgUmRTdGFjayhVTE9ORyBwb3J0LCBVQ0hBUiBpbmRleCk7Ci12b2lkICBXclN0YWNrKFVMT05HIHBvcnRCYXNlLCBVQ0hBUiBpbmRleCwgVUNIQVIgZGF0YSk7Ci1VQ0hBUiBDaGtJZkNoaXBJbml0aWFsaXplZChVTE9ORyBpb1BvcnQpOworc3RhdGljIFVDSEFSIEZQVF9zaXN5bmNuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgVUNIQVIgc3luY0ZsYWcpOworc3RhdGljIHZvaWQgIEZQVF9zc2VsKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3NyZXMoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQmNhcmQgcEN1cnJDYXJkKTsKK3N0YXRpYyB2b2lkICBGUFRfc2hhbmRlbShVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQsUFNDQ0IgcEN1cnJTQ0NCKTsKK3N0YXRpYyB2b2lkICBGUFRfc3RzeW5jbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9zaXN5bmNyKFVMT05HIHBvcnQsVUNIQVIgc3luY19wdWxzZSwgVUNIQVIgb2Zmc2V0KTsKK3N0YXRpYyB2b2lkICBGUFRfc3NzeW5jdihVTE9ORyBwX3BvcnQsIFVDSEFSIHBfaWQsIFVDSEFSIHBfc3luY192YWx1ZSwKKwkJCSBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm8pOworc3RhdGljIHZvaWQgIEZQVF9zcmVzYihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9zeGZycChVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3NjaGtkZChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIFVDSEFSIEZQVF9SZFN0YWNrKFVMT05HIHBvcnQsIFVDSEFSIGluZGV4KTsKK3N0YXRpYyB2b2lkICBGUFRfV3JTdGFjayhVTE9ORyBwb3J0QmFzZSwgVUNIQVIgaW5kZXgsIFVDSEFSIGRhdGEpOworc3RhdGljIFVDSEFSIEZQVF9DaGtJZkNoaXBJbml0aWFsaXplZChVTE9ORyBpb1BvcnQpOwogCi0jaWYgZGVmaW5lZChWMzAyKQotVUNIQVIgR2V0VGFyTHVuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgVUNIQVIgb3VyX3RhcmdldCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgUFVDSEFSIHRhciwgUFVDSEFSIGx1bik7Ci0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9TZW5kTXNnKFVMT05HIHBvcnQsIFVDSEFSIG1lc3NhZ2UpOworc3RhdGljIHZvaWQgIEZQVF9xdWV1ZUZsdXNoVGFyZ1NjY2IoVUNIQVIgcF9jYXJkLCBVQ0hBUiB0aGlzVGFyZywKKwkJCQkgICAgVUNIQVIgZXJyb3JfY29kZSk7CiAKLXZvaWQgU2VuZE1zZyhVTE9ORyBwb3J0LCBVQ0hBUiBtZXNzYWdlKTsKLXZvaWQgIHF1ZXVlRmx1c2hUYXJnU2NjYihVQ0hBUiBwX2NhcmQsIFVDSEFSIHRoaXNUYXJnLCBVQ0hBUiBlcnJvcl9jb2RlKTsKLSNlbmRpZgorc3RhdGljIHZvaWQgIEZQVF9zaW5pdHMoUFNDQ0IgcF9zY2NiLCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9STlZSYW1EYXRhKFBOVlJhbUluZm8gcE52UmFtSW5mbyk7CiAKLXZvaWQgIHNzZW5zcyhQU0NDQmNhcmQgcEN1cnJDYXJkKTsKLXZvaWQgIHNpbml0cyhQU0NDQiBwX3NjY2IsIFVDSEFSIHBfY2FyZCk7Ci12b2lkICBSTlZSYW1EYXRhKFBOVlJhbUluZm8gcE52UmFtSW5mbyk7Ci0KLSNpZiBkZWZpbmVkKFdJREVfU0NTSSkKLSAgICNpZiBkZWZpbmVkKERPUykKLSAgIFVDSEFSIHNpd2lkbihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgIHZvaWQgIHN0d2lkbihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgIHZvaWQgIHNpd2lkcihVU0hPUlQgcG9ydCwgVUNIQVIgd2lkdGgpOwotICAgI2Vsc2UKLSAgIFVDSEFSIHNpd2lkbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgdm9pZCAgc3R3aWRuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICB2b2lkICBzaXdpZHIoVUxPTkcgcG9ydCwgVUNIQVIgd2lkdGgpOwotICAgI2VuZGlmCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2l3aWRuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3N0d2lkbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9zaXdpZHIoVUxPTkcgcG9ydCwgVUNIQVIgd2lkdGgpOwogCiAKLXZvaWQgIHF1ZXVlU2VsZWN0RmFpbChQU0NDQmNhcmQgcEN1cnJDYXJkLCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgcXVldWVEaXNjb25uZWN0KFBTQ0NCIHBfU0NDQiwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHF1ZXVlQ21kQ29tcGxldGUoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgUFNDQ0IgcF9TQ0NCLCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgcXVldWVTZWFyY2hTZWxlY3QoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHF1ZXVlRmx1c2hTY2NiKFVDSEFSIHBfY2FyZCwgVUNIQVIgZXJyb3JfY29kZSk7Ci12b2lkICBxdWV1ZUFkZFNjY2IoUFNDQ0IgcF9TQ0NCLCBVQ0hBUiBjYXJkKTsKLVVDSEFSIHF1ZXVlRmluZFNjY2IoUFNDQ0IgcF9TQ0NCLCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgdXRpbFVwZGF0ZVJlc2lkdWFsKFBTQ0NCIHBfU0NDQik7Ci1VU0hPUlQgQ2FsY0NyYzE2KFVDSEFSIGJ1ZmZlcltdKTsKLVVDSEFSICBDYWxjTHJjKFVDSEFSIGJ1ZmZlcltdKTsKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVTZWxlY3RGYWlsKFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3F1ZXVlRGlzY29ubmVjdChQU0NDQiBwX1NDQ0IsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3F1ZXVlQ21kQ29tcGxldGUoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgUFNDQ0IgcF9TQ0NCLAorCQkJCSAgVUNIQVIgcF9jYXJkKTsKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVTZWFyY2hTZWxlY3QoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVUNIQVIgcF9jYXJkKTsKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVGbHVzaFNjY2IoVUNIQVIgcF9jYXJkLCBVQ0hBUiBlcnJvcl9jb2RlKTsKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVBZGRTY2NiKFBTQ0NCIHBfU0NDQiwgVUNIQVIgY2FyZCk7CitzdGF0aWMgVUNIQVIgRlBUX3F1ZXVlRmluZFNjY2IoUFNDQ0IgcF9TQ0NCLCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF91dGlsVXBkYXRlUmVzaWR1YWwoUFNDQ0IgcF9TQ0NCKTsKK3N0YXRpYyBVU0hPUlQgRlBUX0NhbGNDcmMxNihVQ0hBUiBidWZmZXJbXSk7CitzdGF0aWMgVUNIQVIgIEZQVF9DYWxjTHJjKFVDSEFSIGJ1ZmZlcltdKTsKIAogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkICBXYWl0MVNlY29uZChVU0hPUlQgcF9wb3J0KTsKLXZvaWQgIFdhaXQoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9kZWxheSk7Ci12b2lkICB1dGlsRUVXcml0ZU9uT2ZmKFVTSE9SVCBwX3BvcnQsVUNIQVIgcF9tb2RlKTsKLXZvaWQgIHV0aWxFRVdyaXRlKFVTSE9SVCBwX3BvcnQsIFVTSE9SVCBlZV9kYXRhLCBVU0hPUlQgZWVfYWRkcik7Ci1VU0hPUlQgdXRpbEVFUmVhZChVU0hPUlQgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcik7Ci1VU0hPUlQgdXRpbEVFUmVhZE9yZyhVU0hPUlQgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcik7Ci12b2lkICB1dGlsRUVTZW5kQ21kQWRkcihVU0hPUlQgcF9wb3J0LCBVQ0hBUiBlZV9jbWQsIFVTSE9SVCBlZV9hZGRyKTsKLSNlbHNlCi12b2lkICBXYWl0MVNlY29uZChVTE9ORyBwX3BvcnQpOwotdm9pZCAgV2FpdChVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGVsYXkpOwotdm9pZCAgdXRpbEVFV3JpdGVPbk9mZihVTE9ORyBwX3BvcnQsVUNIQVIgcF9tb2RlKTsKLXZvaWQgIHV0aWxFRVdyaXRlKFVMT05HIHBfcG9ydCwgVVNIT1JUIGVlX2RhdGEsIFVTSE9SVCBlZV9hZGRyKTsKLVVTSE9SVCB1dGlsRUVSZWFkKFVMT05HIHBfcG9ydCwgVVNIT1JUIGVlX2FkZHIpOwotVVNIT1JUIHV0aWxFRVJlYWRPcmcoVUxPTkcgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcik7Ci12b2lkICB1dGlsRUVTZW5kQ21kQWRkcihVTE9ORyBwX3BvcnQsIFVDSEFSIGVlX2NtZCwgVVNIT1JUIGVlX2FkZHIpOwotI2VuZGlmCitzdGF0aWMgdm9pZCAgRlBUX1dhaXQxU2Vjb25kKFVMT05HIHBfcG9ydCk7CitzdGF0aWMgdm9pZCAgRlBUX1dhaXQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2RlbGF5KTsKK3N0YXRpYyB2b2lkICBGUFRfdXRpbEVFV3JpdGVPbk9mZihVTE9ORyBwX3BvcnQsVUNIQVIgcF9tb2RlKTsKK3N0YXRpYyB2b2lkICBGUFRfdXRpbEVFV3JpdGUoVUxPTkcgcF9wb3J0LCBVU0hPUlQgZWVfZGF0YSwgVVNIT1JUIGVlX2FkZHIpOworc3RhdGljIFVTSE9SVCBGUFRfdXRpbEVFUmVhZChVTE9ORyBwX3BvcnQsIFVTSE9SVCBlZV9hZGRyKTsKK3N0YXRpYyBVU0hPUlQgRlBUX3V0aWxFRVJlYWRPcmcoVUxPTkcgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcik7CitzdGF0aWMgdm9pZCAgRlBUX3V0aWxFRVNlbmRDbWRBZGRyKFVMT05HIHBfcG9ydCwgVUNIQVIgZWVfY21kLCBVU0hPUlQgZWVfYWRkcik7CiAKIAogCi0jaWYgZGVmaW5lZChPUzIpCi0gICB2b2lkICBmYXIgcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICB2b2lkICBmYXIgcGhhc2VEYXRhSW4oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgIHZvaWQgIGZhciBwaGFzZUNvbW1hbmQoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgIHZvaWQgIGZhciBwaGFzZVN0YXR1cyhVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgdm9pZCAgZmFyIHBoYXNlTXNnT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICB2b2lkICBmYXIgcGhhc2VNc2dJbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgdm9pZCAgZmFyIHBoYXNlSWxsZWdhbChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotI2Vsc2UKLSAgICNpZiBkZWZpbmVkKERPUykKLSAgICAgIHZvaWQgIHBoYXNlRGF0YU91dChVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgICAgIHZvaWQgIHBoYXNlRGF0YUluKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgICAgdm9pZCAgcGhhc2VDb21tYW5kKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgICAgdm9pZCAgcGhhc2VTdGF0dXMoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICAgICB2b2lkICBwaGFzZU1zZ091dChVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgICAgIHZvaWQgIHBoYXNlTXNnSW4oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICAgICB2b2lkICBwaGFzZUlsbGVnYWwoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICAjZWxzZQotICAgICAgdm9pZCAgcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICAgICB2b2lkICBwaGFzZURhdGFJbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgICAgdm9pZCAgcGhhc2VDb21tYW5kKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci0gICAgICB2b2lkICBwaGFzZVN0YXR1cyhVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgICAgdm9pZCAgcGhhc2VNc2dPdXQoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgICAgIHZvaWQgIHBoYXNlTXNnSW4oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLSAgICAgIHZvaWQgIHBoYXNlSWxsZWdhbChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwotICAgI2VuZGlmCi0jZW5kaWYKK3N0YXRpYyB2b2lkICBGUFRfcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3BoYXNlRGF0YUluKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3BoYXNlQ29tbWFuZChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9waGFzZVN0YXR1cyhVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9waGFzZU1zZ091dChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9waGFzZU1zZ0luKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3BoYXNlSWxsZWdhbChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpOwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkICBwaGFzZURlY29kZShVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHBoYXNlQ2hrRmlmbyhVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHBoYXNlQnVzRnJlZShVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpOwotI2Vsc2UKLXZvaWQgIHBoYXNlRGVjb2RlKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7Ci12b2lkICBwaGFzZUNoa0ZpZm8oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIHBoYXNlQnVzRnJlZShVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCk7Ci0jZW5kaWYKK3N0YXRpYyB2b2lkICBGUFRfcGhhc2VEZWNvZGUoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKTsKK3N0YXRpYyB2b2lkICBGUFRfcGhhc2VDaGtGaWZvKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCk7CitzdGF0aWMgdm9pZCAgRlBUX3BoYXNlQnVzRnJlZShVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCk7CiAKIAogCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgIFhib3dJbml0KFVTSE9SVCBwb3J0LCBVQ0hBUiBzY2FtRmxnKTsKLXZvaWQgIEJ1c01hc3RlckluaXQoVVNIT1JUIHBfcG9ydCk7Ci1pbnQgICBEaWFnWGJvdyhVU0hPUlQgcG9ydCk7Ci1pbnQgICBEaWFnQnVzTWFzdGVyKFVTSE9SVCBwb3J0KTsKLXZvaWQgIERpYWdFRVBST00oVVNIT1JUIHBfcG9ydCk7Ci0jZWxzZQotdm9pZCAgWGJvd0luaXQoVUxPTkcgcG9ydCwgVUNIQVIgc2NhbUZsZyk7Ci12b2lkICBCdXNNYXN0ZXJJbml0KFVMT05HIHBfcG9ydCk7Ci1pbnQgICBEaWFnWGJvdyhVTE9ORyBwb3J0KTsKLWludCAgIERpYWdCdXNNYXN0ZXIoVUxPTkcgcG9ydCk7Ci12b2lkICBEaWFnRUVQUk9NKFVMT05HIHBfcG9ydCk7Ci0jZW5kaWYKK3N0YXRpYyB2b2lkICBGUFRfWGJvd0luaXQoVUxPTkcgcG9ydCwgVUNIQVIgc2NhbUZsZyk7CitzdGF0aWMgdm9pZCAgRlBUX0J1c01hc3RlckluaXQoVUxPTkcgcF9wb3J0KTsKK3N0YXRpYyB2b2lkICBGUFRfRGlhZ0VFUFJPTShVTE9ORyBwX3BvcnQpOwogCiAKIAogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkICBidXNNc3RyQWJvcnQoVVNIT1JUIHBvcnQpOwotVUNIQVIgYnVzTXN0clRpbWVPdXQoVVNIT1JUIHBvcnQpOwotdm9pZCAgZGF0YVhmZXJQcm9jZXNzb3IoVVNIT1JUIHBvcnQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQpOwotdm9pZCAgYnVzTXN0clNHRGF0YVhmZXJTdGFydChVU0hPUlQgcG9ydCwgUFNDQ0IgcEN1cnJTQ0NCKTsKLXZvaWQgIGJ1c01zdHJEYXRhWGZlclN0YXJ0KFVTSE9SVCBwb3J0LCBQU0NDQiBwQ3VyclNDQ0IpOwotdm9pZCAgaG9zdERhdGFYZmVyQWJvcnQoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0IgcEN1cnJTQ0NCKTsKLSNlbHNlCiB2b2lkICBidXNNc3RyQWJvcnQoVUxPTkcgcG9ydCk7Ci1VQ0hBUiBidXNNc3RyVGltZU91dChVTE9ORyBwb3J0KTsKLXZvaWQgIGRhdGFYZmVyUHJvY2Vzc29yKFVMT05HIHBvcnQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQpOwotdm9pZCAgYnVzTXN0clNHRGF0YVhmZXJTdGFydChVTE9ORyBwb3J0LCBQU0NDQiBwQ3VyclNDQ0IpOwotdm9pZCAgYnVzTXN0ckRhdGFYZmVyU3RhcnQoVUxPTkcgcG9ydCwgUFNDQ0IgcEN1cnJTQ0NCKTsKLXZvaWQgIGhvc3REYXRhWGZlckFib3J0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0IgcEN1cnJTQ0NCKTsKLSNlbmRpZgotdm9pZCAgaG9zdERhdGFYZmVyUmVzdGFydChQU0NDQiBjdXJyU0NDQik7CitzdGF0aWMgdm9pZCAgRlBUX2RhdGFYZmVyUHJvY2Vzc29yKFVMT05HIHBvcnQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQpOworc3RhdGljIHZvaWQgIEZQVF9idXNNc3RyU0dEYXRhWGZlclN0YXJ0KFVMT05HIHBvcnQsIFBTQ0NCIHBDdXJyU0NDQik7CitzdGF0aWMgdm9pZCAgRlBUX2J1c01zdHJEYXRhWGZlclN0YXJ0KFVMT05HIHBvcnQsIFBTQ0NCIHBDdXJyU0NDQik7CitzdGF0aWMgdm9pZCAgRlBUX2hvc3REYXRhWGZlckFib3J0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0IgcEN1cnJTQ0NCKTsKK3N0YXRpYyB2b2lkICBGUFRfaG9zdERhdGFYZmVyUmVzdGFydChQU0NDQiBjdXJyU0NDQik7CiAKIAotI2lmIGRlZmluZWQgKERPUykKLVVDSEFSIFNjY2JNZ3JfYmFkX2lzcihVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2NhcmQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFVTSE9SVCBwX2ludCk7Ci0jZWxzZQotVUNIQVIgU2NjYk1ncl9iYWRfaXNyKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQmNhcmQgcEN1cnJDYXJkLCBVU0hPUlQgcF9pbnQpOworc3RhdGljIFVDSEFSIEZQVF9TY2NiTWdyX2JhZF9pc3IoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQsCisJCQkJIFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFVTSE9SVCBwX2ludCk7CiAKLSNlbmRpZgotCi12b2lkICBTY2NiTWdyVGFibGVJbml0QWxsKHZvaWQpOwotdm9pZCAgU2NjYk1nclRhYmxlSW5pdENhcmQoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVUNIQVIgcF9jYXJkKTsKLXZvaWQgIFNjY2JNZ3JUYWJsZUluaXRUYXJnZXQoVUNIQVIgcF9jYXJkLCBVQ0hBUiB0YXJnZXQpOworc3RhdGljIHZvaWQgIEZQVF9TY2NiTWdyVGFibGVJbml0QWxsKHZvaWQpOworc3RhdGljIHZvaWQgIEZQVF9TY2NiTWdyVGFibGVJbml0Q2FyZChQU0NDQmNhcmQgcEN1cnJDYXJkLCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9TY2NiTWdyVGFibGVJbml0VGFyZ2V0KFVDSEFSIHBfY2FyZCwgVUNIQVIgdGFyZ2V0KTsKIAogCiAKLXZvaWQgIHNjaW5pKFVDSEFSIHBfY2FyZCwgVUNIQVIgcF9vdXJfaWQsIFVDSEFSIHBfcG93ZXJfdXApOworc3RhdGljIHZvaWQgIEZQVF9zY2luaShVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfb3VyX2lkLCBVQ0hBUiBwX3Bvd2VyX3VwKTsKIAotI2lmIGRlZmluZWQoRE9TKQotaW50ICAgc2NhcmIoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9zZWxfdHlwZSk7Ci12b2lkICBzY2J1c2YoVVNIT1JUIHBfcG9ydCk7Ci12b2lkICBzY3NlbChVU0hPUlQgcF9wb3J0KTsKLXZvaWQgIHNjYXNpZChVQ0hBUiBwX2NhcmQsIFVTSE9SVCBwX3BvcnQpOwotVUNIQVIgc2N4ZmVyYyhVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2RhdGEpOwotVUNIQVIgc2NzZW5kaShVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2lkX3N0cmluZ1tdKTsKLVVDSEFSIHNjaXNvKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfaWRfc3RyaW5nW10pOwotdm9pZCAgc2N3aXJvZChVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2RhdGFfYml0KTsKLXZvaWQgIHNjd2lyb3MoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9kYXRhX2JpdCk7Ci1VQ0hBUiBzY3ZhbHEoVUNIQVIgcF9xdWludGV0KTsKLVVDSEFSIHNjc2VsbChVU0hPUlQgcF9wb3J0LCBVQ0hBUiB0YXJnX2lkKTsKLXZvaWQgIHNjd3RzZWwoVVNIT1JUIHBfcG9ydCk7Ci12b2lkICBpbmlzY2koVUNIQVIgcF9jYXJkLCBVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX291cl9pZCk7Ci12b2lkICBzY3NhdmRpKFVDSEFSIHBfY2FyZCwgVVNIT1JUIHBfcG9ydCk7Ci0jZWxzZQotaW50ICAgc2NhcmIoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX3NlbF90eXBlKTsKLXZvaWQgIHNjYnVzZihVTE9ORyBwX3BvcnQpOwotdm9pZCAgc2NzZWwoVUxPTkcgcF9wb3J0KTsKLXZvaWQgIHNjYXNpZChVQ0hBUiBwX2NhcmQsIFVMT05HIHBfcG9ydCk7Ci1VQ0hBUiBzY3hmZXJjKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9kYXRhKTsKLVVDSEFSIHNjc2VuZGkoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2lkX3N0cmluZ1tdKTsKLVVDSEFSIHNjaXNvKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZF9zdHJpbmdbXSk7Ci12b2lkICBzY3dpcm9kKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9kYXRhX2JpdCk7Ci12b2lkICBzY3dpcm9zKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9kYXRhX2JpdCk7Ci1VQ0hBUiBzY3ZhbHEoVUNIQVIgcF9xdWludGV0KTsKLVVDSEFSIHNjc2VsbChVTE9ORyBwX3BvcnQsIFVDSEFSIHRhcmdfaWQpOwotdm9pZCAgc2N3dHNlbChVTE9ORyBwX3BvcnQpOwotdm9pZCAgaW5pc2NpKFVDSEFSIHBfY2FyZCwgVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX291cl9pZCk7Ci12b2lkICBzY3NhdmRpKFVDSEFSIHBfY2FyZCwgVUxPTkcgcF9wb3J0KTsKLSNlbmRpZgotVUNIQVIgc2NtYWNoaWQoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX2lkX3N0cmluZ1tdKTsKK3N0YXRpYyBpbnQgICBGUFRfc2NhcmIoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX3NlbF90eXBlKTsKK3N0YXRpYyB2b2lkICBGUFRfc2NidXNmKFVMT05HIHBfcG9ydCk7CitzdGF0aWMgdm9pZCAgRlBUX3Njc2VsKFVMT05HIHBfcG9ydCk7CitzdGF0aWMgdm9pZCAgRlBUX3NjYXNpZChVQ0hBUiBwX2NhcmQsIFVMT05HIHBfcG9ydCk7CitzdGF0aWMgVUNIQVIgRlBUX3NjeGZlcmMoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2RhdGEpOworc3RhdGljIFVDSEFSIEZQVF9zY3NlbmRpKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZF9zdHJpbmdbXSk7CitzdGF0aWMgVUNIQVIgRlBUX3NjaXNvKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZF9zdHJpbmdbXSk7CitzdGF0aWMgdm9pZCAgRlBUX3Njd2lyb2QoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2RhdGFfYml0KTsKK3N0YXRpYyB2b2lkICBGUFRfc2N3aXJvcyhVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGF0YV9iaXQpOworc3RhdGljIFVDSEFSIEZQVF9zY3ZhbHEoVUNIQVIgcF9xdWludGV0KTsKK3N0YXRpYyBVQ0hBUiBGUFRfc2NzZWxsKFVMT05HIHBfcG9ydCwgVUNIQVIgdGFyZ19pZCk7CitzdGF0aWMgdm9pZCAgRlBUX3Njd3RzZWwoVUxPTkcgcF9wb3J0KTsKK3N0YXRpYyB2b2lkICBGUFRfaW5pc2NpKFVDSEFSIHBfY2FyZCwgVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX291cl9pZCk7CitzdGF0aWMgdm9pZCAgRlBUX3Njc2F2ZGkoVUNIQVIgcF9jYXJkLCBVTE9ORyBwX3BvcnQpOworc3RhdGljIFVDSEFSIEZQVF9zY21hY2hpZChVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfaWRfc3RyaW5nW10pOwogCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgIGF1dG9DbWRDbXBsdChVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpOwotdm9pZCAgYXV0b0xvYWREZWZhdWx0TWFwKFVTSE9SVCBwX3BvcnQpOwotI2Vsc2UKLXZvaWQgIGF1dG9DbWRDbXBsdChVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCk7Ci12b2lkICBhdXRvTG9hZERlZmF1bHRNYXAoVUxPTkcgcF9wb3J0KTsKLSNlbmRpZgorc3RhdGljIHZvaWQgIEZQVF9hdXRvQ21kQ21wbHQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpOworc3RhdGljIHZvaWQgIEZQVF9hdXRvTG9hZERlZmF1bHRNYXAoVUxPTkcgcF9wb3J0KTsKIAogCiAKLSNpZiAoRldfVFlQRT09X1NDQ0JfTUdSXykKLQl2b2lkICBPU19zdGFydF90aW1lcih1bnNpZ25lZCBsb25nIGlvcG9ydCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKLQl2b2lkICBPU19zdG9wX3RpbWVyKHVuc2lnbmVkIGxvbmcgaW9wb3J0LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwotCXZvaWQgIE9TX2Rpc2FibGVfaW50KHVuc2lnbmVkIGNoYXIgaW50dmVjKTsKLQl2b2lkICBPU19lbmFibGVfaW50KHVuc2lnbmVkIGNoYXIgaW50dmVjKTsKLQl2b2lkICBPU19kZWxheSh1bnNpZ25lZCBsb25nIGNvdW50KTsKLQlpbnQgICBPU19WaXJ0VG9QaHlzKHUzMmJpdHMgQ2FyZEhhbmRsZSwgdTMyYml0cyAqcGh5c2FkZHIsIHUzMmJpdHMgKnZpcnRhZGRyKTsKLQkjaWYgIShkZWZpbmVkKFVOSVgpIHx8IGRlZmluZWQoT1MyKSB8fCBkZWZpbmVkKFNPTEFSSVNfUkVBTF9NT0RFKSkgCi0Jdm9pZCAgT1NfTG9jayhQU0NDQk1HUl9JTkZPIHBDYXJkSW5mbyk7Ci0Jdm9pZCAgT1NfVW5Mb2NrKFBTQ0NCTUdSX0lORk8gcENhcmRJbmZvKTsKLSNlbmRpZiAvLyBpZiBGV19UWVBFID09IC4uLgordm9pZCAgT1Nfc3RhcnRfdGltZXIodW5zaWduZWQgbG9uZyBpb3BvcnQsIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7Cit2b2lkICBPU19zdG9wX3RpbWVyKHVuc2lnbmVkIGxvbmcgaW9wb3J0LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwordm9pZCAgT1NfZGlzYWJsZV9pbnQodW5zaWduZWQgY2hhciBpbnR2ZWMpOwordm9pZCAgT1NfZW5hYmxlX2ludCh1bnNpZ25lZCBjaGFyIGludHZlYyk7Cit2b2lkICBPU19kZWxheSh1bnNpZ25lZCBsb25nIGNvdW50KTsKK2ludCAgIE9TX1ZpcnRUb1BoeXModTMyYml0cyBDYXJkSGFuZGxlLCB1MzJiaXRzICpwaHlzYWRkciwgdTMyYml0cyAqdmlydGFkZHIpOwogCi0jZW5kaWYKLQotZXh0ZXJuIFNDQ0JDQVJEIEJMX0NhcmRbTUFYX0NBUkRTXTsKLWV4dGVybiBTQ0NCTUdSX1RBUl9JTkZPIHNjY2JNZ3JUYmxbTUFYX0NBUkRTXVtNQVhfU0NTSV9UQVJdOworc3RhdGljIFNDQ0JNR1JfVEFSX0lORk8gRlBUX3NjY2JNZ3JUYmxbTUFYX0NBUkRTXVtNQVhfU0NTSV9UQVJdID0geyB7IHsgMCB9IH0gfTsKK3N0YXRpYyBTQ0NCQ0FSRCBGUFRfQkxfQ2FyZFtNQVhfQ0FSRFNdID0geyB7IDAgfSB9Oworc3RhdGljIFNDQ0JTQ0FNX0lORk8gRlBUX3NjYW1JbmZvW01BWF9TQ1NJX1RBUl0gPSB7IHsgeyAwIH0gfSB9Oworc3RhdGljIE5WUkFNSU5GTyBGUFRfbnZSYW1JbmZvW01BWF9NQl9DQVJEU10gPSB7IHsgMCB9IH07CiAKIAotI2lmIGRlZmluZWQoT1MyKQotICAgZXh0ZXJuIHZvaWQgKGZhciAqc19QaGFzZVRibFs4XSkgKFVMT05HLCBVQ0hBUik7Ci0jZWxzZQotICAgI2lmIGRlZmluZWQoRE9TKQotICAgICAgZXh0ZXJuIHZvaWQgKCpzX1BoYXNlVGJsWzhdKSAoVVNIT1JULCBVQ0hBUik7Ci0gICAjZWxzZQotICAgICAgZXh0ZXJuIHZvaWQgKCpzX1BoYXNlVGJsWzhdKSAoVUxPTkcsIFVDSEFSKTsKLSAgICNlbmRpZgotI2VuZGlmCitzdGF0aWMgVUNIQVIgRlBUX21iQ2FyZHMgPSAwOworc3RhdGljIFVDSEFSIEZQVF9zY2FtSEFTdHJpbmdbXSA9IHsweDYzLCAweDA3LCAnQicsICdVJywgJ1MnLCAnTCcsICdPJywgJ0cnLCAnSScsICdDJywgXAorCQkJCSAgICcgJywgJ0InLCAnVCcsICctJywgJzknLCAnMycsICcwJywgXAorCQkJCSAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIFwKKwkJCQkgICAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwfTsKIAotZXh0ZXJuIFNDQ0JTQ0FNX0lORk8gc2NhbUluZm9bTUFYX1NDU0lfVEFSXTsKLWV4dGVybiBOVlJBTUlORk8gbnZSYW1JbmZvW01BWF9NQl9DQVJEU107Ci0jaWYgZGVmaW5lZChET1MpIHx8IGRlZmluZWQoT1MyKQotZXh0ZXJuIFVDSEFSIHRlbXBfaWRfc3RyaW5nW0lEX1NUUklOR19MRU5HVEhdOwotI2VuZGlmCi1leHRlcm4gVUNIQVIgc2NhbUhBU3RyaW5nW107CitzdGF0aWMgVVNIT1JUIEZQVF9kZWZhdWx0X2ludGVuYSA9IDA7CiAKIAotZXh0ZXJuIFVDSEFSIG1iQ2FyZHM7Ci0jaWYgZGVmaW5lZChCVUdCVUcpCi1leHRlcm4gVUNIQVIgZGVidWdfaW50W01BWF9DQVJEU11bZGVidWdfc2l6ZV07Ci1leHRlcm4gVUNIQVIgZGVidWdfaW5kZXhbTUFYX0NBUkRTXTsKLXZvaWQgRGVidWdfTG9hZChVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfYnVnX2RhdGEpOwotI2VuZGlmCitzdGF0aWMgdm9pZCAoKkZQVF9zX1BoYXNlVGJsWzhdKSAoVUxPTkcsIFVDSEFSKT0geyAwIH07CiAKLSNpZiAoRldfVFlQRT09X1NDQ0JfTUdSXykKLSNpZiBkZWZpbmVkKERPUykKLSAgIGV4dGVybiBVQ0hBUiBmaXJzdF90aW1lOwotI2VuZGlmCi0jZW5kaWYgLyogKEZXX1RZUEU9PV9TQ0NCX01HUl8pICovCi0KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotI2lmIGRlZmluZWQoRE9TKQotICAgZXh0ZXJuIHUwOGJpdHMgZmlyc3RfdGltZTsKLSNlbmRpZgotI2VuZGlmIC8qIChGV19UWVBFPT1fVUNCX01HUl8pICovCi0KLSNpZiBkZWZpbmVkKEJVR0JVRykKLXZvaWQgRGVidWdfTG9hZChVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfYnVnX2RhdGEpOwotI2VuZGlmCi0KLWV4dGVybiB1bnNpZ25lZCBpbnQgU2NjYkdsb2JhbEZsYWdzOwotCi0KLSNpZGVudCAiJElkOiBzY2NiLmMgMS4xOCAxOTk3LzA2LzEwIDE2OjQ3OjA0IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBzY2NiLmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgRnVuY3Rpb25zIHJlbGF0aW5nIHRvIGhhbmRsaW5nIG9mIHRoZSBTQ0NCIGludGVyZmFjZQotICogICAgICAgICAgICAgICAgIGJldHdlZW4gdGhlIGRldmljZSBkcml2ZXIgYW5kIHRoZSBIQVJQT09OLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDYvMTAgMTY6NDc6MDQgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjE4ICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiNpbmNsdWRlIDxnbG9iYWxzLmg+Ki8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JLyojaW5jbHVkZSA8YnVkaS5oPiovCi0JLyojaW5jbHVkZSA8YnVkaW9jdGwuaD4qLwotI2VuZGlmCi0KLS8qI2luY2x1ZGUgPHNjY2JtZ3IuaD4qLwotLyojaW5jbHVkZSA8Ymx4MzAuaD4qLwotLyojaW5jbHVkZSA8dGFyZ2V0Lmg+Ki8KLS8qI2luY2x1ZGUgPGVlcHJvbS5oPiovCi0vKiNpbmNsdWRlIDxzY3NpMi5oPiovCi0vKiNpbmNsdWRlIDxoYXJwb29uLmg+Ki8KLQotCi0KLSNpZiAoRldfVFlQRT09X1NDQ0JfTUdSXykKLSNkZWZpbmUgbU9TX0xvY2soY2FyZCkgICAgT1NfTG9jaygoUFNDQ0JNR1JfSU5GTykoKChQU0NDQmNhcmQpY2FyZCktPmNhcmRJbmZvKSkKLSNkZWZpbmUgbU9TX1VuTG9jayhjYXJkKSAgT1NfVW5Mb2NrKChQU0NDQk1HUl9JTkZPKSgoKFBTQ0NCY2FyZCljYXJkKS0+Y2FyZEluZm8pKQotI2Vsc2UgLyogRldfVFlQRT09X1VDQl9NR1JfICovCi0jZGVmaW5lIG1PU19Mb2NrKGNhcmQpICAgIE9TX0xvY2soKHUzMmJpdHMpKCgoUFNDQ0JjYXJkKWNhcmQpLT5pb1BvcnQpKQotI2RlZmluZSBtT1NfVW5Mb2NrKGNhcmQpICBPU19VbkxvY2soKHUzMmJpdHMpKCgoUFNDQ0JjYXJkKWNhcmQpLT5pb1BvcnQpKQotI2VuZGlmCi0KLQotLyoKLWV4dGVybiBTQ0NCTUdSX1RBUl9JTkZPIHNjY2JNZ3JUYmxbTUFYX0NBUkRTXVtNQVhfU0NTSV9UQVJdOwotZXh0ZXJuIFNDQ0JDQVJEIEJMX0NhcmRbTUFYX0NBUkRTXTsKLQotZXh0ZXJuIE5WUkFNSU5GTyBudlJhbUluZm9bTUFYX01CX0NBUkRTXTsKLWV4dGVybiBVQ0hBUiBtYkNhcmRzOwotCi0jaWYgZGVmaW5lZCAoT1MyKQotICAgZXh0ZXJuIHZvaWQgKGZhciAqc19QaGFzZVRibFs4XSkgKFVMT05HLCBVQ0hBUik7Ci0jZWxzZQotICAgI2lmIGRlZmluZWQoRE9TKQotICAgICAgZXh0ZXJuIHZvaWQgKCpzX1BoYXNlVGJsWzhdKSAoVVNIT1JULCBVQ0hBUik7Ci0gICAjZWxzZQotICAgICAgZXh0ZXJuIHZvaWQgKCpzX1BoYXNlVGJsWzhdKSAoVUxPTkcsIFVDSEFSKTsKLSAgICNlbmRpZgotI2VuZGlmCi0KLQotI2lmIGRlZmluZWQoQlVHQlVHKQotZXh0ZXJuIFVDSEFSIGRlYnVnX2ludFtNQVhfQ0FSRFNdW2RlYnVnX3NpemVdOwotZXh0ZXJuIFVDSEFSIGRlYnVnX2luZGV4W01BWF9DQVJEU107Ci12b2lkIERlYnVnX0xvYWQoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX2J1Z19kYXRhKTsKLSNlbmRpZgotKi8KLQotI2lmIChGV19UWVBFPT1fU0NDQl9NR1JfKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKQEAgLTI0MDYsMjcgKzE0NzksMTYgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWludCBTY2NiTWdyX3NlbnNlX2FkYXB0ZXIoUFNDQ0JNR1JfSU5GTyBwQ2FyZEluZm8pCitzdGF0aWMgaW50IFNjY2JNZ3Jfc2Vuc2VfYWRhcHRlcihQU0NDQk1HUl9JTkZPIHBDYXJkSW5mbykKIHsKLSNpZiBkZWZpbmVkKERPUykKLSNlbHNlCiAgICBzdGF0aWMgVUNIQVIgZmlyc3RfdGltZSA9IDE7Ci0jZW5kaWYKIAogICAgVUNIQVIgaSxqLGlkLFNjYW1GbGc7CiAgICBVU0hPUlQgdGVtcCx0ZW1wMix0ZW1wMyx0ZW1wNCx0ZW1wNSx0ZW1wNjsKLSNpZiBkZWZpbmVkKERPUykKLSAgIFVTSE9SVCBpb3BvcnQ7Ci0jZWxzZQogICAgVUxPTkcgaW9wb3J0OwotI2VuZGlmCiAJUE5WUmFtSW5mbyBwQ3Vyck52UmFtOwogCi0jaWYgZGVmaW5lZChET1MpCi0gICBpb3BvcnQgPSAoVVNIT1JUKXBDYXJkSW5mby0+c2lfYmFzZWFkZHI7Ci0jZWxzZQogICAgaW9wb3J0ID0gcENhcmRJbmZvLT5zaV9iYXNlYWRkcjsKLSNlbmRpZgogCiAKICAgIGlmIChSRF9IQVJQT09OKGlvcG9ydCtocF92ZW5kb3JfaWRfMCkgIT0gT1JJT05fVkVORF8wKQpAQCAtMjQ1NSwzNiArMTUxNywzMSBAQAogCiAgICBpZiAoZmlyc3RfdGltZSkKICAgICAgIHsKLSAgICAgIFNjY2JNZ3JUYWJsZUluaXRBbGwoKTsKKyAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0QWxsKCk7CiAgICAgICBmaXJzdF90aW1lID0gMDsKLQkJbWJDYXJkcyA9IDA7CisJCUZQVF9tYkNhcmRzID0gMDsKICAgICAgIH0KIAotCWlmKFJkU3RhY2soaW9wb3J0LCAwKSAhPSAweDAwKSB7Ci0JCWlmKENoa0lmQ2hpcEluaXRpYWxpemVkKGlvcG9ydCkgPT0gRkFMU0UpCisJaWYoRlBUX1JkU3RhY2soaW9wb3J0LCAwKSAhPSAweDAwKSB7CisJCWlmKEZQVF9DaGtJZkNoaXBJbml0aWFsaXplZChpb3BvcnQpID09IDApCiAJCXsKIAkJCXBDdXJyTnZSYW0gPSBOVUxMOwogCQkgICBXUl9IQVJQT09OKGlvcG9ydCtocF9zZW1hcGhvcmUsIDB4MDApOwotCQkJWGJvd0luaXQoaW9wb3J0LCAwKTsgICAgICAgICAgICAgLypNdXN0IEluaXQgdGhlIFNDU0kgYmVmb3JlIGF0dGVtcHRpbmcgKi8KLQkJCURpYWdFRVBST00oaW9wb3J0KTsKKwkJCUZQVF9YYm93SW5pdChpb3BvcnQsIDApOyAgICAgICAgICAgICAvKk11c3QgSW5pdCB0aGUgU0NTSSBiZWZvcmUgYXR0ZW1wdGluZyAqLworCQkJRlBUX0RpYWdFRVBST00oaW9wb3J0KTsKIAkJfQogCQllbHNlCiAJCXsKLQkJCWlmKG1iQ2FyZHMgPCBNQVhfTUJfQ0FSRFMpIHsKLQkJCQlwQ3Vyck52UmFtID0gJm52UmFtSW5mb1ttYkNhcmRzXTsKLQkJCQltYkNhcmRzKys7CisJCQlpZihGUFRfbWJDYXJkcyA8IE1BWF9NQl9DQVJEUykgeworCQkJCXBDdXJyTnZSYW0gPSAmRlBUX252UmFtSW5mb1tGUFRfbWJDYXJkc107CisJCQkJRlBUX21iQ2FyZHMrKzsKIAkJCQlwQ3Vyck52UmFtLT5uaUJhc2VBZGRyID0gaW9wb3J0OwotCQkJCVJOVlJhbURhdGEocEN1cnJOdlJhbSk7CisJCQkJRlBUX1JOVlJhbURhdGEocEN1cnJOdlJhbSk7CiAJCQl9ZWxzZQogCQkJCXJldHVybigoaW50KSBGQUlMVVJFKTsKIAkJfQogCX1lbHNlCiAJCXBDdXJyTnZSYW0gPSBOVUxMOwotI2lmIGRlZmluZWQgKE5PX0JJT1NfT1BUSU9OKQotCXBDdXJyTnZSYW0gPSBOVUxMOwotICAgWGJvd0luaXQoaW9wb3J0LCAwKTsgICAgICAgICAgICAgICAgLypNdXN0IEluaXQgdGhlIFNDU0kgYmVmb3JlIGF0dGVtcHRpbmcgKi8KLSAgIERpYWdFRVBST00oaW9wb3J0KTsKLSNlbmRpZiAgLyogTm8gQklPUyBPcHRpb24gKi8KIAogICAgV1JfSEFSUE9PTihpb3BvcnQraHBfY2xrY3RybF8wLCBDTEtDVFJMX0RFRkFVTFQpOwogICAgV1JfSEFSUE9PTihpb3BvcnQraHBfc3lzX2N0cmwsIDB4MDApOwpAQCAtMjQ5Miw3ICsxNTQ5LDcgQEAKIAlpZihwQ3Vyck52UmFtKQogCQlwQ2FyZEluZm8tPnNpX2lkID0gcEN1cnJOdlJhbS0+bmlBZGFwSWQ7CiAJZWxzZQotCSAgIHBDYXJkSW5mby0+c2lfaWQgPSAoVUNIQVIpKHV0aWxFRVJlYWQoaW9wb3J0LCAoQURBUFRFUl9TQ1NJX0lELzIpKSAmCisJICAgcENhcmRJbmZvLT5zaV9pZCA9IChVQ0hBUikoRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoQURBUFRFUl9TQ1NJX0lELzIpKSAmCiAgICAJICAgKFVDSEFSKTB4MEZGKTsKIAogICAgcENhcmRJbmZvLT5zaV9sdW4gPSAweDAwOwpAQCAtMjUxMCw3ICsxNTY3LDcgQEAKIAkJCXRlbXAgPSAoKHRlbXAgJiAweDAzKSArICgodGVtcCA8PCA0KSAmIDB4YzApKSArCiAJCQkJCSAoKCh0ZW1wIDw8IDQpICYgMHgwMzAwKSArICgodGVtcCA8PCA4KSAmIDB4YzAwMCkpOwogCQl9ZWxzZQotCSAgICAgIHRlbXAgPSB1dGlsRUVSZWFkKGlvcG9ydCwgKFVTSE9SVCkoKFNZTkNfUkFURV9UQkwvMikraWQpKTsKKwkgICAgICB0ZW1wID0gRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoVVNIT1JUKSgoU1lOQ19SQVRFX1RCTC8yKStpZCkpOwogCiAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjsgdGVtcCA+Pj04LGkrKykgewogCkBAIC0yNTQ5LDEyICsxNjA2LDEyIEBACiAJaWYocEN1cnJOdlJhbSkKIAkJaSA9IHBDdXJyTnZSYW0tPm5pU3lzQ29uZjsKIAllbHNlCi0JICAgaSA9IChVQ0hBUikodXRpbEVFUmVhZChpb3BvcnQsIChTWVNURU1fQ09ORklHLzIpKSk7CisJICAgaSA9IChVQ0hBUikoRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoU1lTVEVNX0NPTkZJRy8yKSkpOwogCiAJaWYocEN1cnJOdlJhbSkKIAkJU2NhbUZsZyA9IHBDdXJyTnZSYW0tPm5pU2NhbUNvbmY7CiAJZWxzZQotCSAgIFNjYW1GbGcgPSAoVUNIQVIpIHV0aWxFRVJlYWQoaW9wb3J0LCBTQ0FNX0NPTkZJRy8yKTsKKwkgICBTY2FtRmxnID0gKFVDSEFSKSBGUFRfdXRpbEVFUmVhZChpb3BvcnQsIFNDQU1fQ09ORklHLzIpOwogCiAgICBwQ2FyZEluZm8tPnNpX2ZsYWdzID0gMHgwMDAwOwogCkBAIC0yNjEzLDkgKzE2NzAsOSBAQAogCQkJCWJyZWFrOwogCQl9CiAJfWVsc2V7Ci0JICAgdGVtcCA9IHV0aWxFRVJlYWQoaW9wb3J0LCAoTU9ERUxfTlVNQl8wLzIpKTsKKwkgICB0ZW1wID0gRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoTU9ERUxfTlVNQl8wLzIpKTsKICAgIAlwQ2FyZEluZm8tPnNpX2NhcmRfbW9kZWxbMF0gPSAoVUNIQVIpKHRlbXAgPj4gOCk7Ci0JICAgdGVtcCA9IHV0aWxFRVJlYWQoaW9wb3J0LCAoTU9ERUxfTlVNQl8yLzIpKTsKKwkgICB0ZW1wID0gRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoTU9ERUxfTlVNQl8yLzIpKTsKIAogICAgCXBDYXJkSW5mby0+c2lfY2FyZF9tb2RlbFsxXSA9IChVQ0hBUikodGVtcCAmIDB4MDBGRik7CiAJICAgcENhcmRJbmZvLT5zaV9jYXJkX21vZGVsWzJdID0gKFVDSEFSKSh0ZW1wID4+IDgpOwpAQCAtMjY3NywyOSArMTczNCwxNyBAQAogCiAgICBTR1JBTV9BQ0NFU1MoaW9wb3J0KTsKIAotICAgc19QaGFzZVRibFswXSA9IHBoYXNlRGF0YU91dDsKLSAgIHNfUGhhc2VUYmxbMV0gPSBwaGFzZURhdGFJbjsKLSAgIHNfUGhhc2VUYmxbMl0gPSBwaGFzZUlsbGVnYWw7Ci0gICBzX1BoYXNlVGJsWzNdID0gcGhhc2VJbGxlZ2FsOwotICAgc19QaGFzZVRibFs0XSA9IHBoYXNlQ29tbWFuZDsKLSAgIHNfUGhhc2VUYmxbNV0gPSBwaGFzZVN0YXR1czsKLSAgIHNfUGhhc2VUYmxbNl0gPSBwaGFzZU1zZ091dDsKLSAgIHNfUGhhc2VUYmxbN10gPSBwaGFzZU1zZ0luOworICAgRlBUX3NfUGhhc2VUYmxbMF0gPSBGUFRfcGhhc2VEYXRhT3V0OworICAgRlBUX3NfUGhhc2VUYmxbMV0gPSBGUFRfcGhhc2VEYXRhSW47CisgICBGUFRfc19QaGFzZVRibFsyXSA9IEZQVF9waGFzZUlsbGVnYWw7CisgICBGUFRfc19QaGFzZVRibFszXSA9IEZQVF9waGFzZUlsbGVnYWw7CisgICBGUFRfc19QaGFzZVRibFs0XSA9IEZQVF9waGFzZUNvbW1hbmQ7CisgICBGUFRfc19QaGFzZVRibFs1XSA9IEZQVF9waGFzZVN0YXR1czsKKyAgIEZQVF9zX1BoYXNlVGJsWzZdID0gRlBUX3BoYXNlTXNnT3V0OworICAgRlBUX3NfUGhhc2VUYmxbN10gPSBGUFRfcGhhc2VNc2dJbjsKIAogICAgcENhcmRJbmZvLT5zaV9wcmVzZW50ID0gMHgwMTsKIAotI2lmIGRlZmluZWQoQlVHQlVHKQotCi0KLSAgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0FSRFM7IGkrKykgewotCi0gICAgICBmb3IgKGlkPTA7IGlkPGRlYnVnX3NpemU7IGlkKyspCi0gICAgICAgICBkZWJ1Z19pbnRbaV1baWRdID0gIChVQ0hBUikweDAwOwotICAgICAgZGVidWdfaW5kZXhbaV0gPSAwOwotICAgICAgfQotCi0jZW5kaWYKLQogICAgcmV0dXJuKDApOwogfQogCkBAIC0yNzEyLDI3ICsxNzU3LDE1IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi1VU0hPUlQgU2NjYk1ncl9jb25maWdfYWRhcHRlcihQU0NDQk1HUl9JTkZPIHBDYXJkSW5mbykKLSNlbHNlCi1VTE9ORyBTY2NiTWdyX2NvbmZpZ19hZGFwdGVyKFBTQ0NCTUdSX0lORk8gcENhcmRJbmZvKQotI2VuZGlmCitzdGF0aWMgVUxPTkcgU2NjYk1ncl9jb25maWdfYWRhcHRlcihQU0NDQk1HUl9JTkZPIHBDYXJkSW5mbykKIHsKICAgIFBTQ0NCY2FyZCBDdXJyQ2FyZCA9IE5VTEw7CiAJUE5WUmFtSW5mbyBwQ3Vyck52UmFtOwogICAgVUNIQVIgaSxqLHRoaXNDYXJkLCBTY2FtRmxnOwogICAgVVNIT1JUIHRlbXAsc3luY19iaXRfbWFwLGlkOwotI2lmIGRlZmluZWQoRE9TKQotICAgVVNIT1JUIGlvcG9ydDsKLSNlbHNlCiAgICBVTE9ORyBpb3BvcnQ7Ci0jZW5kaWYKIAotI2lmIGRlZmluZWQoRE9TKQotICAgaW9wb3J0ID0gKFVTSE9SVClwQ2FyZEluZm8tPnNpX2Jhc2VhZGRyOwotI2Vsc2UKICAgIGlvcG9ydCA9IHBDYXJkSW5mby0+c2lfYmFzZWFkZHI7Ci0jZW5kaWYKIAogICAgZm9yKHRoaXNDYXJkID0wOyB0aGlzQ2FyZCA8PSBNQVhfQ0FSRFM7IHRoaXNDYXJkKyspIHsKIApAQCAtMjc0MSwyNCArMTc3NCwyNCBAQAogCSByZXR1cm4oRkFJTFVSRSk7CiAgICAgICAgICB9CiAKLSAgICAgIGlmIChCTF9DYXJkW3RoaXNDYXJkXS5pb1BvcnQgPT0gaW9wb3J0KSB7CisgICAgICBpZiAoRlBUX0JMX0NhcmRbdGhpc0NhcmRdLmlvUG9ydCA9PSBpb3BvcnQpIHsKIAotICAgICAgICAgQ3VyckNhcmQgPSAmQkxfQ2FyZFt0aGlzQ2FyZF07Ci0gICAgICAgICBTY2NiTWdyVGFibGVJbml0Q2FyZChDdXJyQ2FyZCx0aGlzQ2FyZCk7CisgICAgICAgICBDdXJyQ2FyZCA9ICZGUFRfQkxfQ2FyZFt0aGlzQ2FyZF07CisgICAgICAgICBGUFRfU2NjYk1nclRhYmxlSW5pdENhcmQoQ3VyckNhcmQsdGhpc0NhcmQpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAKLSAgICAgIGVsc2UgaWYgKEJMX0NhcmRbdGhpc0NhcmRdLmlvUG9ydCA9PSAweDAwKSB7CisgICAgICBlbHNlIGlmIChGUFRfQkxfQ2FyZFt0aGlzQ2FyZF0uaW9Qb3J0ID09IDB4MDApIHsKIAotICAgICAgICAgQkxfQ2FyZFt0aGlzQ2FyZF0uaW9Qb3J0ID0gaW9wb3J0OwotICAgICAgICAgQ3VyckNhcmQgPSAmQkxfQ2FyZFt0aGlzQ2FyZF07CisgICAgICAgICBGUFRfQkxfQ2FyZFt0aGlzQ2FyZF0uaW9Qb3J0ID0gaW9wb3J0OworICAgICAgICAgQ3VyckNhcmQgPSAmRlBUX0JMX0NhcmRbdGhpc0NhcmRdOwogCi0JCQlpZihtYkNhcmRzKQotCQkJCWZvcihpID0gMDsgaSA8IG1iQ2FyZHM7IGkrKyl7Ci0JCQkJCWlmKEN1cnJDYXJkLT5pb1BvcnQgPT0gbnZSYW1JbmZvW2ldLm5pQmFzZUFkZHIpCi0JCQkJCQlDdXJyQ2FyZC0+cE52UmFtSW5mbyA9ICZudlJhbUluZm9baV07CisJCQlpZihGUFRfbWJDYXJkcykKKwkJCQlmb3IoaSA9IDA7IGkgPCBGUFRfbWJDYXJkczsgaSsrKXsKKwkJCQkJaWYoQ3VyckNhcmQtPmlvUG9ydCA9PSBGUFRfbnZSYW1JbmZvW2ldLm5pQmFzZUFkZHIpCisJCQkJCQlDdXJyQ2FyZC0+cE52UmFtSW5mbyA9ICZGUFRfbnZSYW1JbmZvW2ldOwogCQkJCX0KLSAgICAgICAgIFNjY2JNZ3JUYWJsZUluaXRDYXJkKEN1cnJDYXJkLHRoaXNDYXJkKTsKKyAgICAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0Q2FyZChDdXJyQ2FyZCx0aGlzQ2FyZCk7CiAgICAgICAgICBDdXJyQ2FyZC0+Y2FyZEluZGV4ID0gdGhpc0NhcmQ7CiAgICAgICAgICBDdXJyQ2FyZC0+Y2FyZEluZm8gPSBwQ2FyZEluZm87CiAKQEAgLTI3NzIsMjIgKzE4MDUsMTQgQEAKIAkJU2NhbUZsZyA9IHBDdXJyTnZSYW0tPm5pU2NhbUNvbmY7CiAJfQogCWVsc2V7Ci0JICAgU2NhbUZsZyA9IChVQ0hBUikgdXRpbEVFUmVhZChpb3BvcnQsIFNDQU1fQ09ORklHLzIpOworCSAgIFNjYW1GbGcgPSAoVUNIQVIpIEZQVF91dGlsRUVSZWFkKGlvcG9ydCwgU0NBTV9DT05GSUcvMik7CiAJfQogCiAKLSAgIEJ1c01hc3RlckluaXQoaW9wb3J0KTsKLSAgIFhib3dJbml0KGlvcG9ydCwgU2NhbUZsZyk7CisgICBGUFRfQnVzTWFzdGVySW5pdChpb3BvcnQpOworICAgRlBUX1hib3dJbml0KGlvcG9ydCwgU2NhbUZsZyk7CiAKLSNpZiBkZWZpbmVkIChOT19CSU9TX09QVElPTikKLQotCi0gICBpZiAoRGlhZ1hib3coaW9wb3J0KSkgcmV0dXJuKEZBSUxVUkUpOwotICAgaWYgKERpYWdCdXNNYXN0ZXIoaW9wb3J0KSkgcmV0dXJuKEZBSUxVUkUpOwotCi0jZW5kaWYgIC8qIE5vIEJJT1MgT3B0aW9uICovCi0KLSAgIGF1dG9Mb2FkRGVmYXVsdE1hcChpb3BvcnQpOworICAgRlBUX2F1dG9Mb2FkRGVmYXVsdE1hcChpb3BvcnQpOwogCiAKICAgIGZvciAoaSA9IDAsaWQgPSAweDAxOyBpICE9IHBDYXJkSW5mby0+c2lfaWQ7IGkrKyxpZCA8PD0gMSl7fQpAQCAtMjgxNCw5ICsxODM5LDkgQEAKIAogICAgaWYgKCEocENhcmRJbmZvLT5zaV9mbGFncyAmIFNPRlRfUkVTRVQpKSB7CiAKLSAgICAgIHNyZXNiKGlvcG9ydCx0aGlzQ2FyZCk7CisgICAgICBGUFRfc3Jlc2IoaW9wb3J0LHRoaXNDYXJkKTsKIAotICAgICAgICAgc2NpbmkodGhpc0NhcmQsIHBDYXJkSW5mby0+c2lfaWQsIDApOworICAgICAgICAgRlBUX3NjaW5pKHRoaXNDYXJkLCBwQ2FyZEluZm8tPnNpX2lkLCAwKTsKICAgICAgIH0KIAogCkBAIC0yODI5LDcgKzE4NTQsNyBAQAogCQkJQ3VyckNhcmQtPmdsb2JhbEZsYWdzIHw9IEZfR1JFRU5fUEM7CiAJfQogCWVsc2V7Ci0JICAgaWYgKHV0aWxFRVJlYWQoaW9wb3J0LCAoU1lTVEVNX0NPTkZJRy8yKSkgJiBHUkVFTl9QQ19FTkEpCisJICAgaWYgKEZQVF91dGlsRUVSZWFkKGlvcG9ydCwgKFNZU1RFTV9DT05GSUcvMikpICYgR1JFRU5fUENfRU5BKQogICAgCSAgIEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0dSRUVOX1BDOwogCX0KIApAQCAtMjg0MCw3ICsxODY1LDcgQEAKIAkJCUN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0RPX1JFTkVHTzsKIAl9CiAJZWxzZXsKLQkgICBpZiAodXRpbEVFUmVhZChpb3BvcnQsIChTQ1NJX0NPTkZJRy8yKSkgJiBSRU5FR09fRU5BKQorCSAgIGlmIChGUFRfdXRpbEVFUmVhZChpb3BvcnQsIChTQ1NJX0NPTkZJRy8yKSkgJiBSRU5FR09fRU5BKQogICAgCSAgIEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0RPX1JFTkVHTzsKIAl9CiAKQEAgLTI4NDksNyArMTg3NCw3IEBACiAJCQlDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgfD0gRl9DT05MVU5fSU87CiAJfQogCWVsc2V7Ci0JICAgaWYgKHV0aWxFRVJlYWQoaW9wb3J0LCAoU0NTSV9DT05GSUcvMikpICYgQ09OTklPX0VOQSkKKwkgICBpZiAoRlBUX3V0aWxFRVJlYWQoaW9wb3J0LCAoU0NTSV9DT05GSUcvMikpICYgQ09OTklPX0VOQSkKICAgIAkgICBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgfD0gRl9DT05MVU5fSU87CiAJfQogCkBAIC0yODU5LDcgKzE4ODQsNyBAQAogICAgZm9yIChpID0gMCxpZCA9IDE7IGkgPCBNQVhfU0NTSV9UQVI7IGkrKywgaWQgPDw9IDEpIHsKIAogICAgICAgaWYgKHRlbXAgJiBpZCkKLQkgc2NjYk1nclRibFt0aGlzQ2FyZF1baV0uVGFyU3RhdHVzIHw9IFRBUl9BTExPV19ESVNDOworCSBGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1baV0uVGFyU3RhdHVzIHw9IFRBUl9BTExPV19ESVNDOwogICAgICAgfQogCiAgICBzeW5jX2JpdF9tYXAgPSAweDAwMDE7CkBAIC0yODcxLDM5ICsxODk2LDM0IEBACiAJCQl0ZW1wID0gKCh0ZW1wICYgMHgwMykgKyAoKHRlbXAgPDwgNCkgJiAweGMwKSkgKwogCQkJCQkgKCgodGVtcCA8PCA0KSAmIDB4MDMwMCkgKyAoKHRlbXAgPDwgOCkgJiAweGMwMDApKTsKIAkJfWVsc2UKLQkgICAgICB0ZW1wID0gdXRpbEVFUmVhZChpb3BvcnQsIChVU0hPUlQpKChTWU5DX1JBVEVfVEJMLzIpK2lkKSk7CisJICAgICAgdGVtcCA9IEZQVF91dGlsRUVSZWFkKGlvcG9ydCwgKFVTSE9SVCkoKFNZTkNfUkFURV9UQkwvMikraWQpKTsKIAogICAgICAgZm9yIChpID0gMDsgaSA8IDI7IHRlbXAgPj49OCxpKyspIHsKIAogICAgICAgICAgaWYgKHBDYXJkSW5mby0+c2lfcGVyX3RhcmdfaW5pdF9zeW5jICYgc3luY19iaXRfbWFwKSB7CiAKLSAgICAgICAgICAgIHNjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyRUVWYWx1ZSA9IChVQ0hBUil0ZW1wOworICAgICAgICAgICAgRlBUX3NjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyRUVWYWx1ZSA9IChVQ0hBUil0ZW1wOwogICAgICAgICAgICAgfQogCiAgICAgICAgICBlbHNlIHsKLQkgICAgc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJTdGF0dXMgfD0gU1lOQ19TVVBQT1JURUQ7Ci0gICAgICAgICAgICBzY2NiTWdyVGJsW3RoaXNDYXJkXVtpZCoyK2ldLlRhckVFVmFsdWUgPQorCSAgICBGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJTdGF0dXMgfD0gU1lOQ19TVVBQT1JURUQ7CisgICAgICAgICAgICBGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJFRVZhbHVlID0KICAgICAgICAgICAgICAgIChVQ0hBUikodGVtcCAmIH5FRV9TWU5DX01BU0spOwogICAgICAgICAgICAgfQogCi0jaWYgZGVmaW5lZChXSURFX1NDU0kpCiAvKiAgICAgICAgIGlmICgocENhcmRJbmZvLT5zaV9wZXJfdGFyZ193aWRlX25lZ28gJiBzeW5jX2JpdF9tYXApIHx8CiAgICAgICAgICAgICAoaWQqMitpID49IDgpKXsKICovCiAgICAgICAgICBpZiAocENhcmRJbmZvLT5zaV9wZXJfdGFyZ193aWRlX25lZ28gJiBzeW5jX2JpdF9tYXApewogCi0gICAgICAgICAgICBzY2NiTWdyVGJsW3RoaXNDYXJkXVtpZCoyK2ldLlRhckVFVmFsdWUgfD0gRUVfV0lERV9TQ1NJOworICAgICAgICAgICAgRlBUX3NjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyRUVWYWx1ZSB8PSBFRV9XSURFX1NDU0k7CiAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgZWxzZSB7IC8qIE5BUlJPVyBTQ1NJICovCi0gICAgICAgICAgICBzY2NiTWdyVGJsW3RoaXNDYXJkXVtpZCoyK2ldLlRhclN0YXR1cyB8PSBXSURFX05FR09DSUFURUQ7CisgICAgICAgICAgICBGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJTdGF0dXMgfD0gV0lERV9ORUdPQ0lBVEVEOwogICAgICAgICAgICAgfQogCi0jZWxzZQotICAgICAgICAgc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJTdGF0dXMgfD0gV0lERV9ORUdPQ0lBVEVEOwotI2VuZGlmCi0KIAogCSBzeW5jX2JpdF9tYXAgPDw9IDE7CiAKQEAgLTI5MTUsMTI4NSArMTkzNSw5NyBAQAogICAgV1JfSEFSUE9PTigoaW9wb3J0K2hwX3NlbWFwaG9yZSksCiAgICAgICAoVUNIQVIpKFJEX0hBUlBPT04oKGlvcG9ydCtocF9zZW1hcGhvcmUpKSB8IFNDQ0JfTUdSX1BSRVNFTlQpKTsKIAotI2lmIGRlZmluZWQoRE9TKQotICAgcmV0dXJuKChVU0hPUlQpQ3VyckNhcmQpOwotI2Vsc2UKICAgIHJldHVybigoVUxPTkcpQ3VyckNhcmQpOwotI2VuZGlmCiB9CiAKLSNlbHNlICAJCQkvKiBlbmQgKEZXX1RZUEU9PV9TQ0NCX01HUl8pICAqLwotCi0KLQotU1RBVElDIHMxNmJpdHMgRlBfUHJlc2VuY2VDaGVjayhQTUdSX0lORk8gcE1nckluZm8pCi17Ci0JUE1HUl9FTlRSWVBOVFMJcE1ncl9FbnRyeVBudHMgPSAmcE1nckluZm8tPm1pX0Z1bmN0aW9uczsKLQotICAgICAgcE1ncl9FbnRyeVBudHMtPlVDQk1ncl9wcm9iZV9hZGFwdGVyID0gcHJvYmVfYWRhcHRlcjsKLSAgICAgIHBNZ3JfRW50cnlQbnRzLT5VQ0JNZ3JfaW5pdF9hZGFwdGVyID0gaW5pdF9hZGFwdGVyOwotICAgICAgcE1ncl9FbnRyeVBudHMtPlVDQk1ncl9zdGFydF9VQ0IgPSBTY2NiTWdyX3N0YXJ0X3NjY2I7Ci0gICAgICBwTWdyX0VudHJ5UG50cy0+VUNCTWdyX2J1aWxkX1VDQiA9IGJ1aWxkX1VDQjsKLSAgICAgIHBNZ3JfRW50cnlQbnRzLT5VQ0JNZ3JfYWJvcnRfVUNCID0gU2NjYk1ncl9hYm9ydF9zY2NiOwotICAgICAgcE1ncl9FbnRyeVBudHMtPlVDQk1ncl9teV9pbnQgPSBTY2NiTWdyX215X2ludDsKLSAgICAgIHBNZ3JfRW50cnlQbnRzLT5VQ0JNZ3JfaXNyID0gU2NjYk1ncl9pc3I7Ci0gICAgICBwTWdyX0VudHJ5UG50cy0+VUNCTWdyX3Njc2lfcmVzZXQgPSBTY2NiTWdyX3Njc2lfcmVzZXQ7Ci0gICAgICBwTWdyX0VudHJ5UG50cy0+VUNCTWdyX3RpbWVyX2V4cGlyZWQgPSBTY2NiTWdyX3RpbWVyX2V4cGlyZWQ7Ci0jaWZuZGVmIE5PX0lPQ1RMUwotCSAgcE1ncl9FbnRyeVBudHMtPlVDQk1ncl91bmxvYWRfY2FyZCA9IFNjY2JNZ3JfdW5sb2FkX2NhcmQ7Ci0JICBwTWdyX0VudHJ5UG50cy0+VUNCTWdyX3NhdmVfZm9yZWlnbl9zdGF0ZSA9Ci0JICAJCQkJCQkJCQlTY2NiTWdyX3NhdmVfZm9yZWlnbl9zdGF0ZTsKLQkgIHBNZ3JfRW50cnlQbnRzLT5VQ0JNZ3JfcmVzdG9yZV9mb3JlaWduX3N0YXRlID0KLQkgIAkJCQkJCQkJCVNjY2JNZ3JfcmVzdG9yZV9mb3JlaWduX3N0YXRlOwotCSAgcE1ncl9FbnRyeVBudHMtPlVDQk1ncl9yZXN0b3JlX25hdGl2ZV9zdGF0ZSA9Ci0JICAJCQkJCQkJCQlTY2NiTWdyX3Jlc3RvcmVfbmF0aXZlX3N0YXRlOwotI2VuZGlmIC8qTk9fSU9DVExTKi8KLQotICAgICAgcE1nckluZm8tPm1pX1NHTGlzdEZvcm1hdD0weDAxOwotICAgICAgcE1nckluZm8tPm1pX0RhdGFQdHJGb3JtYXQ9MHgwMTsKLSAgICAgIHBNZ3JJbmZvLT5taV9NYXhTR0VsZW1lbnRzPSAodTE2Yml0cykgMHhmZmZmZmZmZjsKLSAgICAgIHBNZ3JJbmZvLT5taV9NZ3JQcml2YXRlTGVuPXNpemVvZihTQ0NCKTsKLSAgICAgIHBNZ3JJbmZvLT5taV9QQ0lWZW5kb3JJRD1CTF9WRU5ET1JfSUQ7Ci0gICAgICBwTWdySW5mby0+bWlfUENJRGV2aWNlSUQ9RlBfREVWSUNFX0lEOwotICAgICAgcE1nckluZm8tPm1pX01nckF0dHJpYnV0ZXM9IEFUVFJfSU9fTUFQUEVEICsKLQkJCQkJCQkJCQkJIEFUVFJfUEhZU0lDQUxfQUREUkVTUyArCi0JCQkJCQkJCQkJCSBBVFRSX1ZJUlRVQUxfQUREUkVTUyArCi0JCQkJCQkJCQkJCSBBVFRSX09WRVJMQVBQRURfSU9fSU9DVExTX09LOwotICAgICAgcE1nckluZm8tPm1pX0lvUmFuZ2VMZW4gPSAyNTY7Ci0gICAgICByZXR1cm4oMCk7Ci19Ci0KLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIEZ1bmN0aW9uOiBwcm9iZV9hZGFwdGVyCi0gKgotICogRGVzY3JpcHRpb246IFNldHVwIGFuZC9vciBTZWFyY2ggZm9yIGNhcmRzIGFuZCByZXR1cm4gaW5mbyB0byBjYWxsZXIuCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotU1RBVElDIHMzMmJpdHMgcHJvYmVfYWRhcHRlcihQQURBUFRFUl9JTkZPIHBBZGFwdGVySW5mbykKLXsKLSAgIHUxNmJpdHMgdGVtcCx0ZW1wMix0ZW1wMyx0ZW1wNDsKLSAgIHUwOGJpdHMgaSxqLGlkOwotCi0jaWYgZGVmaW5lZChET1MpCi0jZWxzZQotICAgc3RhdGljIHUwOGJpdHMgZmlyc3RfdGltZSA9IDE7Ci0jZW5kaWYKLSAgIEJBU0VfUE9SVCBpb3BvcnQ7Ci0JUE5WUmFtSW5mbyBwQ3Vyck52UmFtOwotCi0gICBpb3BvcnQgPSAoQkFTRV9QT1JUKXBBZGFwdGVySW5mby0+YWlfYmFzZWFkZHI7Ci0KLQotCi0gICBpZiAoUkRfSEFSUE9PTihpb3BvcnQraHBfdmVuZG9yX2lkXzApICE9IE9SSU9OX1ZFTkRfMCkKLSAgICAgIHJldHVybigxKTsKLQotICAgaWYgKChSRF9IQVJQT09OKGlvcG9ydCtocF92ZW5kb3JfaWRfMSkgIT0gT1JJT05fVkVORF8xKSkKLSAgICAgIHJldHVybigyKTsKLQotICAgaWYgKChSRF9IQVJQT09OKGlvcG9ydCtocF9kZXZpY2VfaWRfMCkgIT0gT1JJT05fREVWXzApKQotICAgICAgcmV0dXJuKDMpOwotCi0gICBpZiAoKFJEX0hBUlBPT04oaW9wb3J0K2hwX2RldmljZV9pZF8xKSAhPSBPUklPTl9ERVZfMSkpCi0gICAgICByZXR1cm4oNCk7Ci0KLQotICAgaWYgKFJEX0hBUlBPT04oaW9wb3J0K2hwX3Jldl9udW0pICE9IDB4MGYpewotCi0KLS8qIEZvciBuZXcgSGFycG9vbiB0aGVuIGNoZWNrIGZvciBzdWJfZGV2aWNlIElEIExTQgotICAgdGhlIGJpdHMoMC0zKSBtdXN0IGJlIGFsbCBaRVJPIGZvciBjb21wYXRpYmxlIHdpdGgKLSAgIGN1cnJlbnQgdmVyc2lvbiBvZiBTQ0NCTWdyLCBlbHNlIHNraXAgdGhpcyBIYXJwb29uCi0JZGV2aWNlLiAqLwotCi0JICAgaWYgKFJEX0hBUlBPT04oaW9wb3J0K2hwX3N1Yl9kZXZpY2VfaWRfMCkgJiAweDBmKQotCSAgICAgIHJldHVybig1KTsKLQl9Ci0KLSAgIGlmIChmaXJzdF90aW1lKSB7Ci0KLSAgICAgIFNjY2JNZ3JUYWJsZUluaXRBbGwoKTsKLSAgICAgIGZpcnN0X3RpbWUgPSAwOwotCQltYkNhcmRzID0gMDsKLSAgICAgIH0KLQotCWlmKFJkU3RhY2soaW9wb3J0LCAwKSAhPSAweDAwKSB7Ci0JCWlmKENoa0lmQ2hpcEluaXRpYWxpemVkKGlvcG9ydCkgPT0gRkFMU0UpCi0JCXsKLQkJCXBDdXJyTnZSYW0gPSBOVUxMOwotCQkgICBXUl9IQVJQT09OKGlvcG9ydCtocF9zZW1hcGhvcmUsIDB4MDApOwotCQkJWGJvd0luaXQoaW9wb3J0LCAwKTsgICAgICAgICAgICAgICAgLypNdXN0IEluaXQgdGhlIFNDU0kgYmVmb3JlIGF0dGVtcHRpbmcgKi8KLQkJCURpYWdFRVBST00oaW9wb3J0KTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCWlmKG1iQ2FyZHMgPCBNQVhfTUJfQ0FSRFMpIHsKLQkJCQlwQ3Vyck52UmFtID0gJm52UmFtSW5mb1ttYkNhcmRzXTsKLQkJCQltYkNhcmRzKys7Ci0JCQkJcEN1cnJOdlJhbS0+bmlCYXNlQWRkciA9IGlvcG9ydDsKLQkJCQlSTlZSYW1EYXRhKHBDdXJyTnZSYW0pOwotCQkJfWVsc2UKLQkJCQlyZXR1cm4oKGludCkgRkFJTFVSRSk7Ci0JCX0KLQl9ZWxzZQotCQlwQ3Vyck52UmFtID0gTlVMTDsKLQotI2lmIGRlZmluZWQgKE5PX0JJT1NfT1BUSU9OKQotCXBDdXJyTnZSYW0gPSBOVUxMOwotICAgWGJvd0luaXQoaW9wb3J0LCAwKTsgICAgICAgICAgICAgICAgLypNdXN0IEluaXQgdGhlIFNDU0kgYmVmb3JlIGF0dGVtcHRpbmcgKi8KLSAgIERpYWdFRVBST00oaW9wb3J0KTsKLSNlbmRpZiAgLyogTm8gQklPUyBPcHRpb24gKi8KLQotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfY2xrY3RybF8wLCBDTEtDVFJMX0RFRkFVTFQpOwotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfc3lzX2N0cmwsIDB4MDApOwotCi0JaWYocEN1cnJOdlJhbSkKLQkJcEFkYXB0ZXJJbmZvLT5haV9pZCA9IHBDdXJyTnZSYW0tPm5pQWRhcElkOwotCWVsc2UKLSAgIAlwQWRhcHRlckluZm8tPmFpX2lkID0gKHUwOGJpdHMpKHV0aWxFRVJlYWQoaW9wb3J0LCAoQURBUFRFUl9TQ1NJX0lELzIpKSAmCi0gICAgICAJKHUwOGJpdHMpMHgwRkYpOwotCi0gICBwQWRhcHRlckluZm8tPmFpX2x1biA9IDB4MDA7Ci0gICBwQWRhcHRlckluZm8tPmFpX2Z3X3JldmlzaW9uWzBdID0gJzMnOwotICAgcEFkYXB0ZXJJbmZvLT5haV9md19yZXZpc2lvblsxXSA9ICcxJzsKLSAgIHBBZGFwdGVySW5mby0+YWlfZndfcmV2aXNpb25bMl0gPSAnMSc7Ci0gICBwQWRhcHRlckluZm8tPmFpX2Z3X3JldmlzaW9uWzNdID0gJyAnOwotICAgcEFkYXB0ZXJJbmZvLT5haV9OdW1DaGFubmVscyA9IDE7Ci0KLSAgIHRlbXAyID0gMHgwMDAwOwotICAgdGVtcDMgPSAweDAwMDA7Ci0gICB0ZW1wNCA9IDB4MDAwMDsKLQotICAgZm9yIChpZCA9IDA7IGlkIDwgKDE2LzIpOyBpZCsrKSB7Ci0KLQkJaWYocEN1cnJOdlJhbSl7Ci0JCQl0ZW1wID0gKFVTSE9SVCkgcEN1cnJOdlJhbS0+bmlTeW5jVGJsW2lkXTsKLQkJCXRlbXAgPSAoKHRlbXAgJiAweDAzKSArICgodGVtcCA8PCA0KSAmIDB4YzApKSArCi0JCQkJCSAoKCh0ZW1wIDw8IDQpICYgMHgwMzAwKSArICgodGVtcCA8PCA4KSAmIDB4YzAwMCkpOwotCQl9ZWxzZQotCSAgICAgIHRlbXAgPSB1dGlsRUVSZWFkKGlvcG9ydCwgKHUxNmJpdHMpKChTWU5DX1JBVEVfVEJMLzIpK2lkKSk7Ci0KLSAgICAgIGZvciAoaSA9IDA7IGkgPCAyOyB0ZW1wID4+PTgsaSsrKSB7Ci0KLSAgICAgICAgIGlmICgodGVtcCAmIDB4MDMpICE9IEFVVE9fUkFURV8wMCkgewotCi0gICAgICAgICAgICB0ZW1wMiA+Pj0gMHgwMTsKLSAgICAgICAgICAgIHRlbXAyIHw9IDB4ODAwMDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB0ZW1wMiA+Pj0gMHgwMTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgaWYgKHRlbXAgJiBESVNDX0VOQUJMRV9CSVQpIHsKLQotICAgICAgICAgICAgdGVtcDMgPj49IDB4MDE7Ci0gICAgICAgICAgICB0ZW1wMyB8PSAweDgwMDA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgdGVtcDMgPj49IDB4MDE7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgIGlmICh0ZW1wICYgV0lERV9ORUdPX0JJVCkgewotCi0gICAgICAgICAgICB0ZW1wNCA+Pj0gMHgwMTsKLSAgICAgICAgICAgIHRlbXA0IHw9IDB4ODAwMDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB0ZW1wNCA+Pj0gMHgwMTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgfQotICAgICAgfQotCi0gICBwQWRhcHRlckluZm8tPmFpX3Blcl90YXJnX2luaXRfc3luYyA9IHRlbXAyOwotICAgcEFkYXB0ZXJJbmZvLT5haV9wZXJfdGFyZ19ub19kaXNjID0gdGVtcDM7Ci0gICBwQWRhcHRlckluZm8tPmFpX3Blcl90YXJnX3dpZGVfbmVnbyA9IHRlbXA0OwotCWlmKHBDdXJyTnZSYW0pCi0JCWkgPSBwQ3Vyck52UmFtLT5uaVN5c0NvbmY7Ci0JZWxzZQotICAgCWkgPSAodTA4Yml0cykodXRpbEVFUmVhZChpb3BvcnQsIChTWVNURU1fQ09ORklHLzIpKSk7Ci0KLSAgIC8qCi0gICAqKiBpbnRlcnJ1cHRzIGFsd2F5cyBsZXZlbC10cmlnZ2VyZWQgZm9yIEZsYXNoUG9pbnQKLSAgICovCi0gICBwQWRhcHRlckluZm8tPmFpX3N0YXRlaW5mbyB8PSBMRVZFTF9UUklHOwotCi0gICBpZiAoaSAmIDB4MDEpCi0gICAgICBwQWRhcHRlckluZm8tPmFpX3N0YXRlaW5mbyB8PSBTQ1NJX1BBUklUWV9FTkE7Ci0KLQlpZiAoaSAmIDB4MDIpCS8qIFNDU0kgQnVzIHJlc2V0IGluIEF1dG9TQ1NJIFNldCA/ICovCi0JewotCQlpZihwQ3Vyck52UmFtKQotCQl7Ci0JCQlqID0gcEN1cnJOdlJhbS0+bmlTY2FtQ29uZjsKLQkJfQotCQllbHNlCi0JCXsKLQkJaiA9ICh1MDhiaXRzKSB1dGlsRUVSZWFkKGlvcG9ydCwgU0NBTV9DT05GSUcvMik7Ci0JCX0KLQkJaWYoaiAmIFNDQU1fRU5BQkxFRCkKLQkJewotCQkJaWYoaiAmIFNDQU1fTEVWRUwyKQotCQkJewotCQkJCXBBZGFwdGVySW5mby0+YWlfc3RhdGVpbmZvIHw9IFNDQU0yX0VOQTsKLQkJCX0KLQkJCWVsc2UKLQkJCXsKLQkJCQlwQWRhcHRlckluZm8tPmFpX3N0YXRlaW5mbyB8PSBTQ0FNMV9FTkE7Ci0JCQl9Ci0JCX0KLQl9Ci0gICBqID0gKFJEX0hBUlBPT04oaW9wb3J0K2hwX2JtX2N0cmwpICYgflNDU0lfVEVSTV9FTkFfTCk7Ci0gICBpZiAoaSAmIDB4MDQpIHsKLSAgICAgIGogfD0gU0NTSV9URVJNX0VOQV9MOwotICAgICAgcEFkYXB0ZXJJbmZvLT5haV9zdGF0ZWluZm8gfD0gTE9XX0JZVEVfVEVSTV9FTkE7Ci0gICAgICB9Ci0gICBXUl9IQVJQT09OKGlvcG9ydCtocF9ibV9jdHJsLCBqICk7Ci0KLSAgIGogPSAoUkRfSEFSUE9PTihpb3BvcnQraHBfZWVfY3RybCkgJiB+U0NTSV9URVJNX0VOQV9IKTsKLSAgIGlmIChpICYgMHgwOCkgewotICAgICAgaiB8PSBTQ1NJX1RFUk1fRU5BX0g7Ci0gICAgICBwQWRhcHRlckluZm8tPmFpX3N0YXRlaW5mbyB8PSBISUdIX0JZVEVfVEVSTV9FTkE7Ci0gICAgICB9Ci0gICBXUl9IQVJQT09OKGlvcG9ydCtocF9lZV9jdHJsLCBqICk7Ci0KLQlpZihSRF9IQVJQT09OKGlvcG9ydCArIGhwX3BhZ2VfY3RybCkgJiBCSU9TX1NIQURPVykKLQl7Ci0JCXBBZGFwdGVySW5mby0+YWlfRmxhc2hSb21TaXplID0gNjQgKiAxMDI0OwkvKiA2NGsgUk9NICovCi0JfQotCWVsc2UKLQl7Ci0JCXBBZGFwdGVySW5mby0+YWlfRmxhc2hSb21TaXplID0gMzIgKiAxMDI0OwkvKiAzMmsgUk9NICovCi0JfQotCi0gICBwQWRhcHRlckluZm8tPmFpX3N0YXRlaW5mbyB8PSAoRkFTVDIwX0VOQSB8IFRBR19RVUVVRV9FTkEpOwotICAgaWYgKCEoUkRfSEFSUE9PTihpb3BvcnQraHBfcGFnZV9jdHJsKSAmIE5BUlJPV19TQ1NJX0NBUkQpKQotCXsKLSAgICAgIHBBZGFwdGVySW5mby0+YWlfYXR0cmlidXRlcyB8PSAoV0lERV9DQVBBQkxFIHwgRkFTVDIwX0NBUEFCTEUKLQkJCQkJCQkJCQkJCQl8IFNDQU0yX0NBUEFCTEUKLQkJCQkJCQkJCQkJCQl8IFRBR19RVUVVRV9DQVBBQkxFCi0JCQkJCQkJCQkJCQkJfCBTVVBSRVNTX1VOREVSUlJVTlNfQ0FQQUJMRQotCQkJCQkJCQkJCQkJCXwgU0NTSV9QQVJJVFlfQ0FQQUJMRSk7Ci0JCXBBZGFwdGVySW5mby0+YWlfTWF4VGFyZyA9IDE2OwotCQlwQWRhcHRlckluZm8tPmFpX01heEx1biAgPSAzMjsKLQl9Ci0JZWxzZQotCXsKLSAgICAgIHBBZGFwdGVySW5mby0+YWlfYXR0cmlidXRlcyB8PSAoRkFTVDIwX0NBUEFCTEUgfCBTQ0FNMl9DQVBBQkxFCi0JCQkJCQkJCQkJCQkJfCBUQUdfUVVFVUVfQ0FQQUJMRQotCQkJCQkJCQkJCQkJCXwgU1VQUkVTU19VTkRFUlJSVU5TX0NBUEFCTEUKLQkJCQkJCQkJCQkJCQl8IFNDU0lfUEFSSVRZX0NBUEFCTEUpOwotCQlwQWRhcHRlckluZm8tPmFpX01heFRhcmcgPSA4OwotCQlwQWRhcHRlckluZm8tPmFpX01heEx1biAgPSA4OwotCX0KLQotICAgcEFkYXB0ZXJJbmZvLT5haV9wcm9kdWN0X2ZhbWlseSA9IEhBUlBPT05fRkFNSUxZOwotICAgcEFkYXB0ZXJJbmZvLT5haV9IQkFidXN0eXBlID0gQlVTVFlQRV9QQ0k7Ci0KLSAgIGZvciAoaT0wO2k8Q0FSRF9NT0RFTF9OQU1FTEVOO2krKykKLSAgIHsKLSAgICAgIHBBZGFwdGVySW5mby0+YWlfY2FyZF9tb2RlbFtpXT0nICc7IC8qIGluaXRpYWxpemUgdGhlIGFpX2NhcmRfbW9kZWwgKi8KLSAgIH0KLQotCWlmKHBDdXJyTnZSYW0pewotCXBBZGFwdGVySW5mby0+YWlfY2FyZF9tb2RlbFswXSA9ICc5JzsKLQkJc3dpdGNoKHBDdXJyTnZSYW0tPm5pTW9kZWwgJiAweDBmKXsKLQkJCWNhc2UgTU9ERUxfTFQ6Ci0JCQlwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMV0gPSAnMyc7Ci0JCQlwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMl0gPSAnMCc7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIE1PREVMX0xXOgotCQkJcEFkYXB0ZXJJbmZvLT5haV9jYXJkX21vZGVsWzFdID0gJzUnOwotCQkJcEFkYXB0ZXJJbmZvLT5haV9jYXJkX21vZGVsWzJdID0gJzAnOwotCQkJCWJyZWFrOwotCQkJY2FzZSBNT0RFTF9ETDoKLQkJCXBBZGFwdGVySW5mby0+YWlfY2FyZF9tb2RlbFsxXSA9ICczJzsKLQkJCXBBZGFwdGVySW5mby0+YWlfY2FyZF9tb2RlbFsyXSA9ICcyJzsKLQkJCQlicmVhazsKLQkJCWNhc2UgTU9ERUxfRFc6Ci0JCQlwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMV0gPSAnNSc7Ci0JCQlwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMl0gPSAnMic7Ci0JCQkJYnJlYWs7Ci0JCX0KLQl9ZWxzZXsKLQkgICB0ZW1wID0gdXRpbEVFUmVhZChpb3BvcnQsIChNT0RFTF9OVU1CXzAvMikpOwotCQlwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMF0gPSAodTA4Yml0cykodGVtcCA+PiA4KTsKLQkgICB0ZW1wID0gdXRpbEVFUmVhZChpb3BvcnQsIChNT0RFTF9OVU1CXzIvMikpOwotCi0JCXBBZGFwdGVySW5mby0+YWlfY2FyZF9tb2RlbFsxXSA9ICh1MDhiaXRzKSh0ZW1wICYgMHgwMEZGKTsKLQkgICBwQWRhcHRlckluZm8tPmFpX2NhcmRfbW9kZWxbMl0gPSAodTA4Yml0cykodGVtcCA+PiA4KTsKLQl9Ci0KLQotCi0gICBwQWRhcHRlckluZm8tPmFpX0ZpYmVyUHJvZHVjdFR5cGUgPSAwOwotCi0gICBwQWRhcHRlckluZm8tPmFpX3NlY29uZGFyeV9yYW5nZSA9IDA7Ci0KLSAgIGZvciAoaT0wO2k8V09STERfV0lERV9OQU1FTEVOO2krKykKLSAgIHsKLSAgICAgIHBBZGFwdGVySW5mby0+YWlfd29ybGR3aWRlbmFtZVtpXT0nXDAnOwotICAgfQotCi0gICBmb3IgKGk9MDtpPFZFTkRPUl9OQU1FTEVOO2krKykKLSAgIHsKLSAgICAgIHBBZGFwdGVySW5mby0+YWlfdmVuZG9yc3RyaW5nW2ldPSdcMCc7Ci0gICB9Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV92ZW5kb3JzdHJpbmdbMF09J0InOwotICAgCXBBZGFwdGVySW5mby0+YWlfdmVuZG9yc3RyaW5nWzFdPSdVJzsKLSAgIAlwQWRhcHRlckluZm8tPmFpX3ZlbmRvcnN0cmluZ1syXT0nUyc7Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV92ZW5kb3JzdHJpbmdbM109J0wnOwotICAgCXBBZGFwdGVySW5mby0+YWlfdmVuZG9yc3RyaW5nWzRdPSdPJzsKLSAgIAlwQWRhcHRlckluZm8tPmFpX3ZlbmRvcnN0cmluZ1s1XT0nRyc7Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV92ZW5kb3JzdHJpbmdbNl09J0knOwotICAgCXBBZGFwdGVySW5mby0+YWlfdmVuZG9yc3RyaW5nWzddPSdDJzsKLQotCWZvciAoaT0wO2k8RkFNSUxZX05BTUVMRU47aSsrKQotCXsKLQkgICBwQWRhcHRlckluZm8tPmFpX0FkYXB0ZXJGYW1pbHlTdHJpbmdbaV09J1wwJzsKLQl9Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV9BZGFwdGVyRmFtaWx5U3RyaW5nWzBdPSdGJzsKLSAgIAlwQWRhcHRlckluZm8tPmFpX0FkYXB0ZXJGYW1pbHlTdHJpbmdbMV09J0wnOwotICAgCXBBZGFwdGVySW5mby0+YWlfQWRhcHRlckZhbWlseVN0cmluZ1syXT0nQSc7Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV9BZGFwdGVyRmFtaWx5U3RyaW5nWzNdPSdTJzsKLSAgIAlwQWRhcHRlckluZm8tPmFpX0FkYXB0ZXJGYW1pbHlTdHJpbmdbNF09J0gnOwotICAgCXBBZGFwdGVySW5mby0+YWlfQWRhcHRlckZhbWlseVN0cmluZ1s1XT0nUCc7Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV9BZGFwdGVyRmFtaWx5U3RyaW5nWzZdPSdPJzsKLSAgIAlwQWRhcHRlckluZm8tPmFpX0FkYXB0ZXJGYW1pbHlTdHJpbmdbN109J0knOwotICAgCXBBZGFwdGVySW5mby0+YWlfQWRhcHRlckZhbWlseVN0cmluZ1s4XT0nTic7Ci0gICAJcEFkYXB0ZXJJbmZvLT5haV9BZGFwdGVyRmFtaWx5U3RyaW5nWzldPSdUJzsKLQotICAgQVJBTV9BQ0NFU1MoaW9wb3J0KTsKLQotICAgZm9yICggaSA9IDA7IGkgPCA0OyBpKysgKSB7Ci0KLSAgICAgIHBBZGFwdGVySW5mby0+YWlfWGxhdEluZm9baV0gPQotICAgICAgICAgUkRfSEFSUE9PTihpb3BvcnQraHBfYXJhbUJhc2UrQklPU19EQVRBX09GRlNFVCtpKTsKLSAgICAgIH0KLQotCS8qIHJldHVybiB3aXRoIC0xIGlmIG5vIHNvcnQsIGVsc2UgcmV0dXJuIHdpdGgKLQkgICBsb2dpY2FsIGNhcmQgbnVtYmVyIHNvcnRlZCBieSBCSU9TICh6ZXJvLWJhc2VkKSAqLwotCi0KLQlwQWRhcHRlckluZm8tPmFpX3JlbGF0aXZlX2NhcmRudW0gPSAKLSAgICAgICh1MDhiaXRzKShSRF9IQVJQT09OKGlvcG9ydCtocF9hcmFtQmFzZStCSU9TX1JFTEFUSVZFX0NBUkQpLTEpOyAKLQotICAgU0dSQU1fQUNDRVNTKGlvcG9ydCk7Ci0KLSAgIHNfUGhhc2VUYmxbMF0gPSBwaGFzZURhdGFPdXQ7Ci0gICBzX1BoYXNlVGJsWzFdID0gcGhhc2VEYXRhSW47Ci0gICBzX1BoYXNlVGJsWzJdID0gcGhhc2VJbGxlZ2FsOwotICAgc19QaGFzZVRibFszXSA9IHBoYXNlSWxsZWdhbDsKLSAgIHNfUGhhc2VUYmxbNF0gPSBwaGFzZUNvbW1hbmQ7Ci0gICBzX1BoYXNlVGJsWzVdID0gcGhhc2VTdGF0dXM7Ci0gICBzX1BoYXNlVGJsWzZdID0gcGhhc2VNc2dPdXQ7Ci0gICBzX1BoYXNlVGJsWzddID0gcGhhc2VNc2dJbjsKLQotICAgcEFkYXB0ZXJJbmZvLT5haV9wcmVzZW50ID0gMHgwMTsKLQotI2lmIGRlZmluZWQoQlVHQlVHKQotCi0KLSAgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0FSRFM7IGkrKykgewotCi0gICAgICBmb3IgKGlkPTA7IGlkPGRlYnVnX3NpemU7IGlkKyspCi0gICAgICAgICBkZWJ1Z19pbnRbaV1baWRdID0gICh1MDhiaXRzKTB4MDA7Ci0gICAgICBkZWJ1Z19pbmRleFtpXSA9IDA7Ci0gICAgICB9Ci0KLSNlbmRpZgotCi0gICByZXR1cm4oMCk7Ci19Ci0KLQotCi0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogaW5pdF9hZGFwdGVyLCBleHBvcnRlZCB0byBCVURJIHZpYSBVQ0JNZ3JfaW5pdF9hZGFwdGVyIGVudHJ5Ci0gKgotICoKLSAqIERlc2NyaXB0aW9uOiBTZXR1cCBhZGFwdGVyIGZvciBub3JtYWwgb3BlcmF0aW9uIChoYXJkIHJlc2V0KS4KLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi1TVEFUSUMgQ0FSRF9IQU5ETEUgaW5pdF9hZGFwdGVyKFBBREFQVEVSX0lORk8gcENhcmRJbmZvKQotewotICAgUFNDQ0JjYXJkIEN1cnJDYXJkOwotCVBOVlJhbUluZm8gcEN1cnJOdlJhbTsKLSAgIHUwOGJpdHMgaSxqLHRoaXNDYXJkLCBTY2FtRmxnOwotICAgdTE2Yml0cyB0ZW1wLHN5bmNfYml0X21hcCxpZDsKLSAgIEJBU0VfUE9SVCBpb3BvcnQ7Ci0KLSAgIGlvcG9ydCA9IChCQVNFX1BPUlQpcENhcmRJbmZvLT5haV9iYXNlYWRkcjsKLQotICAgZm9yKHRoaXNDYXJkID0wOyB0aGlzQ2FyZCA8PSBNQVhfQ0FSRFM7IHRoaXNDYXJkKyspIHsKLQotICAgICAgaWYgKHRoaXNDYXJkID09IE1BWF9DQVJEUykgewotCi0gICAgICAgICByZXR1cm4oRkFJTFVSRSk7Ci0gICAgICAgICB9Ci0KLSAgICAgIGlmIChCTF9DYXJkW3RoaXNDYXJkXS5pb1BvcnQgPT0gaW9wb3J0KSB7Ci0KLSAgICAgICAgIEN1cnJDYXJkID0gJkJMX0NhcmRbdGhpc0NhcmRdOwotICAgICAgICAgU2NjYk1nclRhYmxlSW5pdENhcmQoQ3VyckNhcmQsdGhpc0NhcmQpOwotICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0KLSAgICAgIGVsc2UgaWYgKEJMX0NhcmRbdGhpc0NhcmRdLmlvUG9ydCA9PSAweDAwKSB7Ci0KLSAgICAgICAgIEJMX0NhcmRbdGhpc0NhcmRdLmlvUG9ydCA9IGlvcG9ydDsKLSAgICAgICAgIEN1cnJDYXJkID0gJkJMX0NhcmRbdGhpc0NhcmRdOwotCi0JCQlpZihtYkNhcmRzKQotCQkJCWZvcihpID0gMDsgaSA8IG1iQ2FyZHM7IGkrKyl7Ci0JCQkJCWlmKEN1cnJDYXJkLT5pb1BvcnQgPT0gbnZSYW1JbmZvW2ldLm5pQmFzZUFkZHIpCi0JCQkJCQlDdXJyQ2FyZC0+cE52UmFtSW5mbyA9ICZudlJhbUluZm9baV07Ci0JCQkJfQotICAgICAgICAgU2NjYk1nclRhYmxlSW5pdENhcmQoQ3VyckNhcmQsdGhpc0NhcmQpOwotICAgICAgICAgQ3VyckNhcmQtPmNhcmRJbmRleCA9IHRoaXNDYXJkOwotICAgICAgICAgQ3VyckNhcmQtPmNhcmRJbmZvID0gcENhcmRJbmZvOwotCi0gICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLSAgICAgIH0KLQotCXBDdXJyTnZSYW0gPSBDdXJyQ2FyZC0+cE52UmFtSW5mbzsKLQotICAgCi0JaWYocEN1cnJOdlJhbSl7Ci0JCVNjYW1GbGcgPSBwQ3Vyck52UmFtLT5uaVNjYW1Db25mOwotCX0KLQllbHNlewotCSAgIFNjYW1GbGcgPSAoVUNIQVIpIHV0aWxFRVJlYWQoaW9wb3J0LCBTQ0FNX0NPTkZJRy8yKTsKLQl9Ci0JCi0KLSAgIEJ1c01hc3RlckluaXQoaW9wb3J0KTsKLSAgIFhib3dJbml0KGlvcG9ydCwgU2NhbUZsZyk7Ci0KLSNpZiBkZWZpbmVkIChOT19CSU9TX09QVElPTikKLQotCi0gICBpZiAoRGlhZ1hib3coaW9wb3J0KSkgcmV0dXJuKEZBSUxVUkUpOwotICAgaWYgKERpYWdCdXNNYXN0ZXIoaW9wb3J0KSkgcmV0dXJuKEZBSUxVUkUpOwotCi0jZW5kaWYgIC8qIE5vIEJJT1MgT3B0aW9uICovCi0KLSAgIGF1dG9Mb2FkRGVmYXVsdE1hcChpb3BvcnQpOwotCi0KLSAgIGZvciAoaSA9IDAsaWQgPSAweDAxOyBpICE9IHBDYXJkSW5mby0+YWlfaWQ7IGkrKyxpZCA8PD0gMSl7fQotCi0gICBXUl9IQVJQT09OKGlvcG9ydCtocF9zZWxmaWRfMCwgaWQpOwotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfc2VsZmlkXzEsIDB4MDApOwotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfYXJiX2lkLCBwQ2FyZEluZm8tPmFpX2lkKTsKLSAgIEN1cnJDYXJkLT5vdXJJZCA9ICh1bnNpZ25lZCBjaGFyKSBwQ2FyZEluZm8tPmFpX2lkOwotCi0gICBpID0gKHUwOGJpdHMpIHBDYXJkSW5mby0+YWlfc3RhdGVpbmZvOwotICAgaWYgKGkgJiBTQ1NJX1BBUklUWV9FTkEpCi0gICAgICAgV1JfSEFSUE9PTihpb3BvcnQraHBfcG9ydGN0cmxfMSwoSE9TVF9NT0RFOCB8IENIS19TQ1NJX1ApKTsKLQotICAgaiA9IChSRF9IQVJQT09OKGlvcG9ydCtocF9ibV9jdHJsKSAmIH5TQ1NJX1RFUk1fRU5BX0wpOwotICAgaWYgKGkgJiBMT1dfQllURV9URVJNX0VOQSkKLSAgICAgIGogfD0gU0NTSV9URVJNX0VOQV9MOwotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfYm1fY3RybCwgaik7Ci0KLSAgIGogPSAoUkRfSEFSUE9PTihpb3BvcnQraHBfZWVfY3RybCkgJiB+U0NTSV9URVJNX0VOQV9IKTsKLSAgIGlmIChpICYgSElHSF9CWVRFX1RFUk1fRU5BKQotICAgICAgaiB8PSBTQ1NJX1RFUk1fRU5BX0g7Ci0gICBXUl9IQVJQT09OKGlvcG9ydCtocF9lZV9jdHJsLCBqICk7Ci0KLQotICAgaWYgKCEocENhcmRJbmZvLT5haV9zdGF0ZWluZm8gJiBOT19SRVNFVF9JTl9JTklUKSkgewotCi0gICAgICBzcmVzYihpb3BvcnQsdGhpc0NhcmQpOwotCi0gICAgICAgICBzY2luaSh0aGlzQ2FyZCwgKHUwOGJpdHMpIHBDYXJkSW5mby0+YWlfaWQsIDApOwotICAgICAgfQotCi0KLQotICAgaWYgKHBDYXJkSW5mby0+YWlfc3RhdGVpbmZvICYgU1VQUkVTU19VTkRFUlJSVU5TX0VOQSkKLSAgICAgIEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX05PX0ZJTFRFUjsKLQotCWlmKHBDdXJyTnZSYW0pewotCQlpZihwQ3Vyck52UmFtLT5uaVN5c0NvbmYgJiAweDEwKQotCQkJQ3VyckNhcmQtPmdsb2JhbEZsYWdzIHw9IEZfR1JFRU5fUEM7Ci0JfQotCWVsc2V7Ci0JICAgaWYgKHV0aWxFRVJlYWQoaW9wb3J0LCAoU1lTVEVNX0NPTkZJRy8yKSkgJiBHUkVFTl9QQ19FTkEpCi0gICAJICAgQ3VyckNhcmQtPmdsb2JhbEZsYWdzIHw9IEZfR1JFRU5fUEM7Ci0JfQotCi0JLyogU2V0IGdsb2JhbCBmbGFnIHRvIGluZGljYXRlIFJlLU5lZ290aWF0aW9uIHRvIGJlIGRvbmUgb24gYWxsCi0JCWNrZWNrIGNvbmRpdGlvbiAqLwotCWlmKHBDdXJyTnZSYW0pewotCQlpZihwQ3Vyck52UmFtLT5uaVNjc2lDb25mICYgMHgwNCkKLQkJCUN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0RPX1JFTkVHTzsKLQl9Ci0JZWxzZXsKLQkgICBpZiAodXRpbEVFUmVhZChpb3BvcnQsIChTQ1NJX0NPTkZJRy8yKSkgJiBSRU5FR09fRU5BKQotICAgCSAgIEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0RPX1JFTkVHTzsKLQl9Ci0KLQlpZihwQ3Vyck52UmFtKXsKLQkJaWYocEN1cnJOdlJhbS0+bmlTY3NpQ29uZiAmIDB4MDgpCi0JCQlDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgfD0gRl9DT05MVU5fSU87Ci0JfQotCWVsc2V7Ci0JICAgaWYgKHV0aWxFRVJlYWQoaW9wb3J0LCAoU0NTSV9DT05GSUcvMikpICYgQ09OTklPX0VOQSkKLSAgIAkgICBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgfD0gRl9DT05MVU5fSU87Ci0JfQotCi0gICB0ZW1wID0gcENhcmRJbmZvLT5haV9wZXJfdGFyZ19ub19kaXNjOwotCi0gICBmb3IgKGkgPSAwLGlkID0gMTsgaSA8IE1BWF9TQ1NJX1RBUjsgaSsrLCBpZCA8PD0gMSkgewotCi0gICAgICBpZiAodGVtcCAmIGlkKQotICAgICAgICAgc2NjYk1nclRibFt0aGlzQ2FyZF1baV0uVGFyU3RhdHVzIHw9IFRBUl9BTExPV19ESVNDOwotICAgICAgfQotCi0gICBzeW5jX2JpdF9tYXAgPSAweDAwMDE7Ci0KLSAgIGZvciAoaWQgPSAwOyBpZCA8IChNQVhfU0NTSV9UQVIvMik7IGlkKyspewotCi0JCWlmKHBDdXJyTnZSYW0pewotCQkJdGVtcCA9IChVU0hPUlQpIHBDdXJyTnZSYW0tPm5pU3luY1RibFtpZF07Ci0JCQl0ZW1wID0gKCh0ZW1wICYgMHgwMykgKyAoKHRlbXAgPDwgNCkgJiAweGMwKSkgKwotCQkJCQkgKCgodGVtcCA8PCA0KSAmIDB4MDMwMCkgKyAoKHRlbXAgPDwgOCkgJiAweGMwMDApKTsKLQkJfWVsc2UKLQkgICAgICB0ZW1wID0gdXRpbEVFUmVhZChpb3BvcnQsICh1MTZiaXRzKSgoU1lOQ19SQVRFX1RCTC8yKStpZCkpOwotCi0gICAgICBmb3IgKGkgPSAwOyBpIDwgMjsgdGVtcCA+Pj04LGkrKyl7Ci0KLSAgICAgICAgIGlmIChwQ2FyZEluZm8tPmFpX3Blcl90YXJnX2luaXRfc3luYyAmIHN5bmNfYml0X21hcCl7Ci0KLSAgICAgICAgICAgIHNjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyRUVWYWx1ZSA9ICh1MDhiaXRzKXRlbXA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJTdGF0dXMgfD0gU1lOQ19TVVBQT1JURUQ7Ci0gICAgICAgICAgICBzY2NiTWdyVGJsW3RoaXNDYXJkXVtpZCoyK2ldLlRhckVFVmFsdWUgPQotICAgICAgICAgICAgICAgKHUwOGJpdHMpKHRlbXAgJiB+RUVfU1lOQ19NQVNLKTsKLSAgICAgICAgICAgIH0KLQotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQotLyogICAgICAgICBpZiAoKHBDYXJkSW5mby0+YWlfcGVyX3Rhcmdfd2lkZV9uZWdvICYgc3luY19iaXRfbWFwKSB8fAotICAgICAgICAgICAgKGlkKjIraSA+PSA4KSl7Ci0qLwotICAgICAgICAgaWYgKHBDYXJkSW5mby0+YWlfcGVyX3Rhcmdfd2lkZV9uZWdvICYgc3luY19iaXRfbWFwKXsKLQotICAgICAgICAgICAgc2NjYk1nclRibFt0aGlzQ2FyZF1baWQqMitpXS5UYXJFRVZhbHVlIHw9IEVFX1dJREVfU0NTSTsKLQotICAgICAgICAgICAgfQotCi0gICAgICAgICBlbHNlIHsgLyogTkFSUk9XIFNDU0kgKi8KLSAgICAgICAgICAgIHNjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyU3RhdHVzIHw9IFdJREVfTkVHT0NJQVRFRDsKLSAgICAgICAgICAgIH0KLQotI2Vsc2UKLSAgICAgICAgIHNjY2JNZ3JUYmxbdGhpc0NhcmRdW2lkKjIraV0uVGFyU3RhdHVzIHw9IFdJREVfTkVHT0NJQVRFRDsKLSNlbmRpZgotCi0KLSAgICAgICAgIHN5bmNfYml0X21hcCA8PD0gMTsKLSAgICAgICAgIH0KLSAgICAgIH0KLQotCi0gICBwQ2FyZEluZm8tPmFpX1NHTGlzdEZvcm1hdD0weDAxOwotICAgcENhcmRJbmZvLT5haV9EYXRhUHRyRm9ybWF0PTB4MDE7Ci0gICBwQ2FyZEluZm8tPmFpX0FFTl9tYXNrICY9IFNDU0lfUkVTRVRfQ09NUExFVEU7Ci0KLSAgIFdSX0hBUlBPT04oKGlvcG9ydCtocF9zZW1hcGhvcmUpLAotICAgICAgKHUwOGJpdHMpKFJEX0hBUlBPT04oKGlvcG9ydCtocF9zZW1hcGhvcmUpKSB8IFNDQ0JfTUdSX1BSRVNFTlQpKTsKLQotICAgcmV0dXJuKCh1MzJiaXRzKUN1cnJDYXJkKTsKLQotfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRnVuY3Rpb246IGJ1aWxkX3VjYiwgZXhwb3J0ZWQgdG8gQlVESSB2aWEgVUNCTWdyX2J1aWxkX3VjYiBlbnRyeQotICoKLSAqIERlc2NyaXB0aW9uOiBwcmVwYXJlIGZ3IHBvcnRpb24gb2YgdWNiLiBkbyBub3Qgc3RhcnQsIHJlc291cmNlIG5vdCBndWFyYW50ZWVkCi0gKiAgICAgICAgICAgICBzbyBkb24ndCBtYW5pcHVsYXRlIGFueXRoaW5nIHRoYXQncyBkZXJpdmVkIGZyb20gc3RhdGVzIHdoaWNoCi0gKiAgICAgICAgICAgICBtYXkgY2hhbmdlCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotdm9pZCBidWlsZF9VQ0IoQ0FSRF9IQU5ETEUgcEN1cnJDYXJkLCBQVUNCIHBfdWNiKQotewotCi0gICB1MDhiaXRzIHRoaXNDYXJkOwotICAgdTA4Yml0cyBpLGo7Ci0KLSAgIFBTQ0NCIHBfc2NjYjsKLQotCi0gICB0aGlzQ2FyZCA9ICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jYXJkSW5kZXg7Ci0KLQotICAgcF9zY2NiPShQU0NDQilwX3VjYi0+VUNCX01nclByaXZhdGVQdHI7Ci0KLQotICAgcF9zY2NiLT5TY2NiX3VjYl9wdHI9cF91Y2I7Ci0KLSAgIHN3aXRjaCAocF91Y2ItPlVDQl9vcGNvZGUgJiAoT1BDX0RFVklDRV9SRVNFVCtPUENfWEZFUl9TRytPUENfQ0hLX1JFU0lEVUFMKSkKLSAgIHsKLSAgICAgIGNhc2UgT1BDX0RFVklDRV9SRVNFVDoKLSAgICAgICAgIHBfc2NjYi0+T3BlcmF0aW9uQ29kZT1SRVNFVF9DT01NQU5EOwotICAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIE9QQ19YRkVSX1NHOgotICAgICAgICAgcF9zY2NiLT5PcGVyYXRpb25Db2RlPVNDQVRURVJfR0FUSEVSX0NPTU1BTkQ7Ci0gICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgT1BDX1hGRVJfU0crT1BDX0NIS19SRVNJRFVBTDoKLSAgICAgICAgIHBfc2NjYi0+T3BlcmF0aW9uQ29kZT1SRVNJRFVBTF9TR19DT01NQU5EOwotICAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIE9QQ19DSEtfUkVTSURVQUw6Ci0KLQkgICAgICBwX3NjY2ItPk9wZXJhdGlvbkNvZGU9UkVTSURVQUxfQ09NTUFORDsKLQkgICAgICBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0JICAgICAgcF9zY2NiLT5PcGVyYXRpb25Db2RlPVNDU0lfSU5JVElBVE9SX0NPTU1BTkQ7Ci0JICAgICAgYnJlYWs7Ci0gICB9Ci0KLSAgIGlmIChwX3VjYi0+VUNCX29wY29kZSAmIE9QQ19UUV9FTkFCTEUpCi0gICB7Ci0gICAgICBwX3NjY2ItPkNvbnRyb2xCeXRlID0gKHUwOGJpdHMpKChwX3VjYi0+VUNCX29wY29kZSAmIE9QQ19UUV9NQVNLKT4+MikgfCBGX1VTRV9DTURfUTsKLSAgIH0KLSAgIGVsc2UKLSAgIHsKLSAgICAgIHBfc2NjYi0+Q29udHJvbEJ5dGUgPSAwOwotICAgfQotCi0KLSAgIHBfc2NjYi0+Q2RiTGVuZ3RoID0gKHUwOGJpdHMpcF91Y2ItPlVDQl9jZGJsZW47Ci0KLSAgIGlmIChwX3VjYi0+VUNCX29wY29kZSAmIE9QQ19OT19BVVRPX1NFTlNFKQotICAgewotICAgICAgcF9zY2NiLT5SZXF1ZXN0U2Vuc2VMZW5ndGggPSAwOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgcF9zY2NiLT5SZXF1ZXN0U2Vuc2VMZW5ndGggPSAodW5zaWduZWQgY2hhcikgcF91Y2ItPlVDQl9zZW5zZWxlbjsKLSAgIH0KLQotCi0gICBpZiAocF91Y2ItPlVDQl9vcGNvZGUgJiBPUENfWEZFUl9TRykKLSAgIHsKLSAgICAgIHBfc2NjYi0+RGF0YVBvaW50ZXI9cF91Y2ItPlVDQl92aXJ0X2RhdGFwdHI7Ci0gICAgICBwX3NjY2ItPkRhdGFMZW5ndGggPSAoKCh1MzJiaXRzKXBfdWNiLT5VQ0JfTnVtU2dFbGVtZW50cyk8PDMpOwotICAgfQotICAgZWxzZQotICAgewotICAgICAgcF9zY2NiLT5EYXRhUG9pbnRlcj1wX3VjYi0+VUNCX3BoeXNfZGF0YXB0cjsKLSAgICAgIHBfc2NjYi0+RGF0YUxlbmd0aD1wX3VjYi0+VUNCX2RhdGFsZW47Ci0gICB9OwotCi0gICBwX3NjY2ItPkhvc3RTdGF0dXM9MDsKLSAgIHBfc2NjYi0+VGFyZ2V0U3RhdHVzPTA7Ci0gICBwX3NjY2ItPlRhcmdJRD0odW5zaWduZWQgY2hhcilwX3VjYi0+VUNCX3RhcmdpZDsKLSAgIHBfc2NjYi0+THVuPSh1bnNpZ25lZCBjaGFyKSBwX3VjYi0+VUNCX2x1bjsKLSAgIHBfc2NjYi0+U2NjYklPUG9ydD0oKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5pb1BvcnQ7Ci0KLSAgIGo9cF91Y2ItPlVDQl9jZGJsZW47Ci0gICBmb3IgKGk9MDtpPGo7aSsrKQotICAgewotICAgICAgcF9zY2NiLT5DZGJbaV0gPSBwX3VjYi0+VUNCX2NkYltpXTsKLSAgIH0KLQotICAgcF9zY2NiLT5TZW5zZVBvaW50ZXI9cF91Y2ItPlVDQl9waHlzX3NlbnNlcHRyOwotCi0gICBzaW5pdHMocF9zY2NiLHRoaXNDYXJkKTsKLQotfQotI2lmbmRlZiBOT19JT0NUTFMKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogR2V0RGV2U3luY1JhdGUKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi1TVEFUSUMgIGludCBHZXREZXZTeW5jUmF0ZShQU0NDQmNhcmQgcEN1cnJDYXJkLFBVQ0IgcF91Y2IpCi17Ci0Jc3RydWN0IF9TWU5DX1JBVEVfSU5GTyAqIHBTeW5jU3RyOwotICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwotCUJBU0VfUE9SVCBpb3BvcnQ7Ci0JdTA4Yml0cyBzY3NpSUQsIGo7Ci0KLSNpZiAoRldfVFlQRSAhPSBfU0NDQl9NR1JfKQotCWlmKCBwX3VjYi0+VUNCX3RhcmdpZCA+PSBwQ3VyckNhcmQtPmNhcmRJbmZvLT5haV9NYXhUYXJnICkKLQl7Ci0JCXJldHVybigxKTsKLQl9Ci0jZW5kaWYKLQotCWlvcG9ydCAgPSBwQ3VyckNhcmQtPmlvUG9ydDsKLQlwU3luY1N0cgk9IChzdHJ1Y3QgX1NZTkNfUkFURV9JTkZPICopIHBfdWNiLT5VQ0JfdmlydF9kYXRhcHRyOwotCXNjc2lJRCA9ICh1MDhiaXRzKSBwX3VjYi0+VUNCX3RhcmdpZDsKLSAgIGN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BDdXJyQ2FyZC0+Y2FyZEluZGV4XVtzY3NpSURdOwotCWogPSBjdXJyVGFyX0luZm8tPlRhclN5bmNDdHJsOwotCi0Jc3dpdGNoIChjdXJyVGFyX0luZm8tPlRhckVFVmFsdWUgJiBFRV9TWU5DX01BU0spCi0JewotCQljYXNlIEVFX1NZTkNfQVNZTkM6Ci0JCQlwU3luY1N0ci0+UmVxdWVzdE1lZ2FYZmVyUmF0ZSA9IDB4MDA7Ci0JCQlicmVhazsKLQkJY2FzZSBFRV9TWU5DXzVNQjoKLQkJCXBTeW5jU3RyLT5SZXF1ZXN0TWVnYVhmZXJSYXRlID0gKGogJiBOQVJST1dfU0NTSSkgPyA1MCA6IDEwMDsKLQkJCWJyZWFrOwotCQljYXNlIEVFX1NZTkNfMTBNQjoKLQkJCXBTeW5jU3RyLT5SZXF1ZXN0TWVnYVhmZXJSYXRlID0gKGogJiBOQVJST1dfU0NTSSkgPyAxMDAgOiAyMDA7Ci0JCQlicmVhazsKLQkJY2FzZSBFRV9TWU5DXzIwTUI6Ci0JCQlwU3luY1N0ci0+UmVxdWVzdE1lZ2FYZmVyUmF0ZSA9IChqICYgTkFSUk9XX1NDU0kpID8gMjAwIDogNDAwOwotCQkJYnJlYWs7Ci0JfQotCi0Jc3dpdGNoICgoaiA+PiA1KSAmIDB4MDcpCi0JewotCQljYXNlIDB4MDA6Ci0JCQlpZigoaiAmIDB4MDcpID09IDB4MDApCi0JCQl7Ci0JCQkJcFN5bmNTdHItPkFjdHVhbE1lZ2FYZmVyUmF0ZSA9IDB4MDA7CS8qIEFzeW5jIE1vZGUgKi8KLQkJCX0KLQkJCWVsc2UKLQkJCXsKLQkJCQlwU3luY1N0ci0+QWN0dWFsTWVnYVhmZXJSYXRlID0gKGogJiBOQVJST1dfU0NTSSkgPyAyMDAgOiA0MDA7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSAweDAxOgotCQkJcFN5bmNTdHItPkFjdHVhbE1lZ2FYZmVyUmF0ZSA9IChqICYgTkFSUk9XX1NDU0kpID8gMTAwIDogMjAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMjoKLQkJCXBTeW5jU3RyLT5BY3R1YWxNZWdhWGZlclJhdGUgPSAoaiAmIE5BUlJPV19TQ1NJKSA/IDY2IDogMTIyOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMzoKLQkJCXBTeW5jU3RyLT5BY3R1YWxNZWdhWGZlclJhdGUgPSAoaiAmIE5BUlJPV19TQ1NJKSA/IDUwIDogMTAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwNDoKLQkJCXBTeW5jU3RyLT5BY3R1YWxNZWdhWGZlclJhdGUgPSAoaiAmIE5BUlJPV19TQ1NJKSA/IDQwIDogODA7Ci0JCQlicmVhazsKLQkJY2FzZSAweDA1OgotCQkJcFN5bmNTdHItPkFjdHVhbE1lZ2FYZmVyUmF0ZSA9IChqICYgTkFSUk9XX1NDU0kpID8gMzMgOiA2NjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDY6Ci0JCQlwU3luY1N0ci0+QWN0dWFsTWVnYVhmZXJSYXRlID0gKGogJiBOQVJST1dfU0NTSSkgPyAyOCA6IDU2OwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwNzoKLQkJCXBTeW5jU3RyLT5BY3R1YWxNZWdhWGZlclJhdGUgPSAoaiAmIE5BUlJPV19TQ1NJKSA/IDI1IDogNTA7Ci0JCQlicmVhazsKLQl9Ci0JcFN5bmNTdHItPk5lZ290aWF0ZWRPZmZzZXQgPSBqICYgMHgwZjsKLQotCXJldHVybigwKTsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogU2V0RGV2U3luY1JhdGUKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi1TVEFUSUMgaW50IFNldERldlN5bmNSYXRlKFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFBVQ0IgcF91Y2IpCi17Ci0Jc3RydWN0IF9TWU5DX1JBVEVfSU5GTyAqIHBTeW5jU3RyOwotICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwotCUJBU0VfUE9SVCBpb1BvcnQ7Ci0JdTA4Yml0cyBzY3NpSUQsIGksIGosIHN5bmNWYWw7Ci0JdTE2Yml0cyBzeW5jT2Zmc2V0LCBhY3R1YWxYZmVyUmF0ZTsKLQl1bmlvbiB7Ci0JCXUwOGJpdHMgdGVtcGJbMl07Ci0JCXUxNmJpdHMgdGVtcHc7Ci0JfXRlbXAyOwotCi0jaWYgKEZXX1RZUEUgIT0gX1NDQ0JfTUdSXykKLQlpZiggcF91Y2ItPlVDQl90YXJnaWQgPj0gcEN1cnJDYXJkLT5jYXJkSW5mby0+YWlfTWF4VGFyZyApCi0JewotCQlyZXR1cm4oMSk7Ci0JfQotI2VuZGlmCi0KLQlpb1BvcnQgID0gcEN1cnJDYXJkLT5pb1BvcnQ7Ci0JcFN5bmNTdHIJPSAoc3RydWN0IF9TWU5DX1JBVEVfSU5GTyAqKSBwX3VjYi0+VUNCX3ZpcnRfZGF0YXB0cjsKLQlzY3NpSUQgPSAodTA4Yml0cykgcF91Y2ItPlVDQl90YXJnaWQ7Ci0gICBjdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwQ3VyckNhcmQtPmNhcmRJbmRleF1bc2NzaUlEXTsKLQlpID0gUkRfSEFSUE9PTihpb1BvcnQraHBfeGZlcl9wYWQpOwkJLyogU2F2ZSBjdXJyZW50IHZhbHVlICovCi0JV1JfSEFSUE9PTihpb1BvcnQraHBfeGZlcl9wYWQsIChpIHwgSURfVU5MT0NLKSk7Ci0JV1JfSEFSUE9PTihpb1BvcnQraHBfc2VsZWN0X2lkLCAoKHNjc2lJRCA8PCA0KSB8IHNjc2lJRCkpOwotCWogPSBSRF9IQVJQT09OKGlvUG9ydCtocF9zeW5jdGFyZ18wKTsKLQlXUl9IQVJQT09OKGlvUG9ydCtocF94ZmVyX3BhZCwgaSk7CQkvKiByZXN0b3JlIHZhbHVlICovCi0KLQlhY3R1YWxYZmVyUmF0ZSA9IHBTeW5jU3RyLT5BY3R1YWxNZWdhWGZlclJhdGU7Ci0JaWYoIShqICYgTkFSUk9XX1NDU0kpKQotCXsKLQkJYWN0dWFsWGZlclJhdGUgPDw9IDE7Ci0JfQotCWlmKGFjdHVhbFhmZXJSYXRlID09IDB4MDApCi0JewotCQlzeW5jVmFsID0gRUVfU1lOQ19BU1lOQzsJCQkvKiBBc3luYyBNb2RlICovCi0JfQotCWlmKGFjdHVhbFhmZXJSYXRlID09IDB4MDIwMCkKLQl7Ci0JCXN5bmNWYWwgPSBFRV9TWU5DXzIwTUI7CQkJCS8qIDIwLzQwIE1CIE1vZGUgKi8KLQl9Ci0JaWYoYWN0dWFsWGZlclJhdGUgPiAweDAwNTAgJiYgYWN0dWFsWGZlclJhdGUgPCAweDAyMDAgKQotCXsKLQkJc3luY1ZhbCA9IEVFX1NZTkNfMTBNQjsJCQkJLyogMTAvMjAgTUIgTW9kZSAqLwotCX0KLQllbHNlCi0JewotCQlzeW5jVmFsID0gRUVfU1lOQ181TUI7CQkJCS8qIDUvMTAgTUIgTW9kZSAqLwotCX0KLQlpZihjdXJyVGFyX0luZm8tPlRhckVFVmFsdWUgJiYgRUVfU1lOQ19NQVNLID09IHN5bmNWYWwpCi0JCXJldHVybigwKTsKLQljdXJyVGFyX0luZm8tPlRhckVFVmFsdWUgPSAoY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICYgIUVFX1NZTkNfTUFTSykKLQkJCQkJCQkJCQkJfCBzeW5jVmFsOwotCXN5bmNPZmZzZXQgPSAoU1lOQ19SQVRFX1RCTCArIHNjc2lJRCkgLyAyOwotCXRlbXAyLnRlbXB3ID0gdXRpbEVFUmVhZChpb1BvcnQsIHN5bmNPZmZzZXQpOwotCWlmKHNjc2lJRCAmIDB4MDEpCi0JewotCQl0ZW1wMi50ZW1wYlswXSA9ICh0ZW1wMi50ZW1wYlswXSAmICFFRV9TWU5DX01BU0spIHwgc3luY1ZhbDsKLQl9Ci0JZWxzZQotCXsKLQkJdGVtcDIudGVtcGJbMV0gPSAodGVtcDIudGVtcGJbMV0gJiAhRUVfU1lOQ19NQVNLKSB8IHN5bmNWYWw7Ci0JfQotCXV0aWxFRVdyaXRlT25PZmYoaW9Qb3J0LCAxKTsKLQl1dGlsRUVXcml0ZShpb1BvcnQsIHRlbXAyLnRlbXB3LCBzeW5jT2Zmc2V0KTsKLQl1dGlsRUVXcml0ZU9uT2ZmKGlvUG9ydCwgMCk7Ci0JVXBkYXRlQ2hlY2tTdW0oaW9Qb3J0KTsKLQotCXJldHVybigwKTsKLX0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRnVuY3Rpb246IEdldERldldpZGVNb2RlCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotaW50IEdldERldldpZGVNb2RlKFBTQ0NCY2FyZCBwQ3VyckNhcmQsUFVDQiBwX3VjYikKLXsKLQl1MDhiaXRzICpwRGF0YTsKLQotCXBEYXRhID0gKHUwOGJpdHMgKilwX3VjYi0+VUNCX3ZpcnRfZGF0YXB0cjsKLQlpZihzY2NiTWdyVGJsW3BDdXJyQ2FyZC0+Y2FyZEluZGV4XVtwX3VjYi0+VUNCX3RhcmdpZF0uVGFyRUVWYWx1ZQotCQkJCSYgRUVfV0lERV9TQ1NJKQotCXsKLQkJKnBEYXRhID0gMTsKLQl9Ci0JZWxzZQotCXsKLQkJKnBEYXRhID0gMDsKLQl9Ci0KLQlyZXR1cm4oMCk7Ci19Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRnVuY3Rpb246IFNldERldldpZGVNb2RlCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotaW50IFNldERldldpZGVNb2RlKFBTQ0NCY2FyZCBwQ3VyckNhcmQsUFVDQiBwX3VjYikKLXsKLQl1MDhiaXRzICpwRGF0YTsKLSAgIFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKLQlCQVNFX1BPUlQgaW9Qb3J0OwotCXUwOGJpdHMgc2NzaUlELCBzY3NpV2lkZU1vZGU7Ci0JdTE2Yml0cyBzeW5jT2Zmc2V0OwotCXVuaW9uIHsKLQkJdTA4Yml0cyB0ZW1wYlsyXTsKLQkJdTE2Yml0cyB0ZW1wdzsKLQl9dGVtcDI7Ci0KLSNpZiAoRldfVFlQRSAhPSBfU0NDQl9NR1JfKQotCWlmKCAhKHBDdXJyQ2FyZC0+Y2FyZEluZm8tPmFpX2F0dHJpYnV0ZXMgJiBXSURFX0NBUEFCTEUpICkKLQl7Ci0JCXJldHVybigxKTsKLQl9Ci0KLQlpZiggcF91Y2ItPlVDQl90YXJnaWQgPj0gcEN1cnJDYXJkLT5jYXJkSW5mby0+YWlfTWF4VGFyZyApCi0JewotCQlyZXR1cm4oMSk7Ci0JfQotI2VuZGlmCi0KLQlpb1BvcnQgID0gcEN1cnJDYXJkLT5pb1BvcnQ7Ci0JcERhdGEgPSAodTA4Yml0cyAqKXBfdWNiLT5VQ0JfdmlydF9kYXRhcHRyOwotCXNjc2lJRCA9ICh1MDhiaXRzKSBwX3VjYi0+VUNCX3RhcmdpZDsKLQljdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwQ3VyckNhcmQtPmNhcmRJbmRleF1bc2NzaUlEXTsKLQotCWlmKCpwRGF0YSkKLQl7Ci0JCWlmKGN1cnJUYXJfSW5mby0+VGFyRUVWYWx1ZSAmIEVFX1dJREVfU0NTSSkKLQkJewotCQkJcmV0dXJuKDApOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJc2NzaVdpZGVNb2RlID0gRUVfV0lERV9TQ1NJOwotCQl9Ci0JfQotCWVsc2UKLQl7Ci0JCWlmKCEoY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICYgRUVfV0lERV9TQ1NJKSkKLQkJewotCQkJcmV0dXJuKDApOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJc2NzaVdpZGVNb2RlID0gMDsKLQkJfQotCX0KLQljdXJyVGFyX0luZm8tPlRhckVFVmFsdWUgPSAoY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICYgIUVFX1dJREVfU0NTSSkKLQkJCQkJCQkJCQkJfCBzY3NpV2lkZU1vZGU7Ci0KLQlzeW5jT2Zmc2V0ID0gKFNZTkNfUkFURV9UQkwgKyBzY3NpSUQpIC8gMjsKLQl0ZW1wMi50ZW1wdyA9IHV0aWxFRVJlYWQoaW9Qb3J0LCBzeW5jT2Zmc2V0KTsKLQlpZihzY3NpSUQgJiAweDAxKQotCXsKLQkJdGVtcDIudGVtcGJbMF0gPSAodGVtcDIudGVtcGJbMF0gJiAhRUVfV0lERV9TQ1NJKSB8IHNjc2lXaWRlTW9kZTsKLQl9Ci0JZWxzZQotCXsKLQkJdGVtcDIudGVtcGJbMV0gPSAodGVtcDIudGVtcGJbMV0gJiAhRUVfV0lERV9TQ1NJKSB8IHNjc2lXaWRlTW9kZTsKLQl9Ci0JdXRpbEVFV3JpdGVPbk9mZihpb1BvcnQsIDEpOwotCXV0aWxFRVdyaXRlKGlvUG9ydCwgdGVtcDIudGVtcHcsIHN5bmNPZmZzZXQpOwotCXV0aWxFRVdyaXRlT25PZmYoaW9Qb3J0LCAwKTsKLQlVcGRhdGVDaGVja1N1bShpb1BvcnQpOwotCi0JcmV0dXJuKDApOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIEZ1bmN0aW9uOiBSZWFkTlZSYW0KLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi12b2lkIFJlYWROVlJhbShQU0NDQmNhcmQgcEN1cnJDYXJkLFBVQ0IgcF91Y2IpCi17Ci0JdTA4Yml0cyAqcGRhdGE7Ci0JdTE2Yml0cyBpLG51bXdyZHMsbnVtYnl0ZXMsb2Zmc2V0LHRlbXA7Ci0JdTA4Yml0cyBPbmVNb3JlID0gRkFMU0U7Ci0jaWYgZGVmaW5lZChET1MpCi0JdTE2Yml0cyBpb3BvcnQ7Ci0jZWxzZQotCXUzMmJpdHMgaW9wb3J0OwotI2VuZGlmCi0KLQludW1ieXRlcyA9ICh1MTZiaXRzKSBwX3VjYi0+VUNCX2RhdGFsZW47Ci0JaW9wb3J0ICA9IHBDdXJyQ2FyZC0+aW9Qb3J0OwotICAgcGRhdGEgICA9ICh1MDhiaXRzICopIHBfdWNiLT5VQ0JfdmlydF9kYXRhcHRyOwotCW9mZnNldCAgPSAodTE2Yml0cykgKHBfdWNiLT5VQ0JfSU9DVExQYXJhbXNbMF0pOwotCi0KLQotICAgaWYgKG9mZnNldCAmIDB4MSkKLQl7Ci0JICAgICooKHUxNmJpdHMqKSBwZGF0YSkgPSB1dGlsRUVSZWFkKGlvcG9ydCwodTE2Yml0cykoKG9mZnNldCAtIDEpIC8gMikpOyAvKiAxNiBiaXQgcmVhZCAqLwotCQkgKnBkYXRhID0gKihwZGF0YSArIDEpOwotCQkgKytvZmZzZXQ7Ci0gICAJICsrcGRhdGE7Ci0JCSAtLW51bWJ5dGVzOwotCX0KLQotCW51bXdyZHMgPSBudW1ieXRlcyAvIDI7Ci0JaWYgKG51bWJ5dGVzICYgMSkKLQkgCU9uZU1vcmUgPSBUUlVFOwotCi0JZm9yIChpID0gMDsgaSA8IG51bXdyZHM7IGkrKykKLQl7Ci0gICAJKigodTE2Yml0cyopIHBkYXRhKSA9IHV0aWxFRVJlYWQoaW9wb3J0LCh1MTZiaXRzKShvZmZzZXQgLyAyKSk7Ci0JCXBkYXRhICs9IDI7Ci0JCW9mZnNldCArPSAyOwotICAgfQotCWlmIChPbmVNb3JlKQotCXsKLQkJLS1wZGF0YTsKLQkJLS0gb2Zmc2V0OwotICAgCXRlbXAgPSB1dGlsRUVSZWFkKGlvcG9ydCwodTE2Yml0cykob2Zmc2V0IC8gMikpOwotCQkqcGRhdGEgPSAodTA4Yml0cykgKHRlbXApOwotCX0KLQotfSAvKiBlbmQgcHJvYyBSZWFkTlZSYW0gKi8KLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIEZ1bmN0aW9uOiBXcml0ZU5WUmFtCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotdm9pZCBXcml0ZU5WUmFtKFBTQ0NCY2FyZCBwQ3VyckNhcmQsUFVDQiBwX3VjYikKLXsKLQl1MDhiaXRzICpwZGF0YTsKLQl1MTZiaXRzIGksbnVtd3JkcyxudW1ieXRlcyxvZmZzZXQsIGVlcHJvbV9lbmQ7Ci0JdTA4Yml0cyBPbmVNb3JlID0gRkFMU0U7Ci0JdW5pb24gewotCQl1MDhiaXRzICB0ZW1wYlsyXTsKLQkJdTE2Yml0cyAgdGVtcHc7Ci0JfSB0ZW1wMjsKLQotI2lmIGRlZmluZWQoRE9TKQotCXUxNmJpdHMgaW9wb3J0OwotI2Vsc2UKLQl1MzJiaXRzIGlvcG9ydDsKLSNlbmRpZgotCi0JbnVtYnl0ZXMgPSAodTE2Yml0cykgcF91Y2ItPlVDQl9kYXRhbGVuOwotCWlvcG9ydCAgPSBwQ3VyckNhcmQtPmlvUG9ydDsKLSAgIHBkYXRhICAgPSAodTA4Yml0cyAqKSBwX3VjYi0+VUNCX3ZpcnRfZGF0YXB0cjsKLQlvZmZzZXQgID0gKHUxNmJpdHMpIChwX3VjYi0+VUNCX0lPQ1RMUGFyYW1zWzBdKTsKLQotICAgaWYgKFJEX0hBUlBPT04oaW9wb3J0K2hwX3BhZ2VfY3RybCkgJiBOQVJST1dfU0NTSV9DQVJEKQotICAgICAgZWVwcm9tX2VuZCA9IDUxMjsKLSAgIGVsc2UKLSAgICAgIGVlcHJvbV9lbmQgPSA3Njg7Ci0JCi0JaWYob2Zmc2V0ID4gZWVwcm9tX2VuZCkKLQkJcmV0dXJuOwotCi0JaWYoKG9mZnNldCArIG51bWJ5dGVzKSA+IGVlcHJvbV9lbmQpCi0JCW51bWJ5dGVzID0gZWVwcm9tX2VuZCAtIG9mZnNldDsKLQotICAgIHV0aWxFRVdyaXRlT25PZmYoaW9wb3J0LDEpOyAgIC8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MgdG8gdGhlIEVFUFJPTSAqLwotCi0KLQotICAgaWYgKG9mZnNldCAmIDB4MSkKLQl7Ci0JICAgIHRlbXAyLnRlbXB3ID0gdXRpbEVFUmVhZChpb3BvcnQsKHUxNmJpdHMpKChvZmZzZXQgLSAxKSAvIDIpKTsgLyogMTYgYml0IHJlYWQgKi8KLQkJIHRlbXAyLnRlbXBiWzFdID0gKnBkYXRhOwotCSAgICB1dGlsRUVXcml0ZShpb3BvcnQsIHRlbXAyLnRlbXB3LCAodTE2Yml0cykoKG9mZnNldCAtMSkgLyAyKSk7Ci0JCSAqcGRhdGEgPSAqKHBkYXRhICsgMSk7Ci0JCSArK29mZnNldDsKLSAgIAkgKytwZGF0YTsKLQkJIC0tbnVtYnl0ZXM7Ci0JfQotCi0JbnVtd3JkcyA9IG51bWJ5dGVzIC8gMjsKLQlpZiAobnVtYnl0ZXMgJiAxKQotCSAJT25lTW9yZSA9IFRSVUU7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbnVtd3JkczsgaSsrKQotCXsKLSAgIAl1dGlsRUVXcml0ZShpb3BvcnQsICooKHB1MTZiaXRzKXBkYXRhKSwodTE2Yml0cykob2Zmc2V0IC8gMikpOwotCQlwZGF0YSArPSAyOwotCQlvZmZzZXQgKz0gMjsKLSAgIH0KLQlpZiAoT25lTW9yZSkKLQl7Ci0KLSAgIAl0ZW1wMi50ZW1wdyA9IHV0aWxFRVJlYWQoaW9wb3J0LCh1MTZiaXRzKShvZmZzZXQgLyAyKSk7Ci0JCXRlbXAyLnRlbXBiWzBdID0gKnBkYXRhOwotICAgCXV0aWxFRVdyaXRlKGlvcG9ydCwgdGVtcDIudGVtcHcsICh1MTZiaXRzKShvZmZzZXQgLyAyKSk7Ci0JfQotICAgdXRpbEVFV3JpdGVPbk9mZihpb3BvcnQsMCk7ICAgLyogVHVybiBvZmYgd3JpdGUgYWNjZXNzICovCi0gICBVcGRhdGVDaGVja1N1bSgodTMyYml0cylpb3BvcnQpOwotCi19IC8qIGVuZCBwcm9jIFdyaXRlTlZSYW0gKi8KLQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRnVuY3Rpb246IFVwZGF0ZUNoZWNrU3VtCi0gKgotICogRGVzY3JpcHRpb246IFVwZGF0ZSBDaGVjayBTdW0gaW4gRUVQUk9NCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0KLXZvaWQgVXBkYXRlQ2hlY2tTdW0odTMyYml0cyBiYXNlcG9ydCkKLXsKLQlVU0hPUlQgaSxzdW1fZGF0YSwgZWVwcm9tX2VuZDsKLQotCXN1bV9kYXRhID0gMHgwMDAwOwotCi0KLSAgIGlmIChSRF9IQVJQT09OKGJhc2Vwb3J0K2hwX3BhZ2VfY3RybCkgJiBOQVJST1dfU0NTSV9DQVJEKQotICAgICAgZWVwcm9tX2VuZCA9IDUxMjsKLSAgIGVsc2UKLSAgICAgIGVlcHJvbV9lbmQgPSA3Njg7Ci0KLQlmb3IgKGkgPSAxOyBpIDwgZWVwcm9tX2VuZC8yOyBpKyspCi0JewotCQlzdW1fZGF0YSArPSB1dGlsRUVSZWFkKGJhc2Vwb3J0LCBpKTsKLQl9Ci0KLSAgIHV0aWxFRVdyaXRlT25PZmYoYmFzZXBvcnQsMSk7ICAgLyogRW5hYmxlIHdyaXRlIGFjY2VzcyB0byB0aGUgRUVQUk9NICovCi0KLSAgIHV0aWxFRVdyaXRlKGJhc2Vwb3J0LCBzdW1fZGF0YSwgRUVQUk9NX0NIRUNLX1NVTS8yKTsKLSAgIHV0aWxFRVdyaXRlT25PZmYoYmFzZXBvcnQsMCk7ICAgLyogVHVybiBvZmYgd3JpdGUgYWNjZXNzICovCi19Ci0KLXZvaWQgU2NjYk1ncl9zYXZlX2ZvcmVpZ25fc3RhdGUoUEFEQVBURVJfSU5GTyBwQWRhcHRlckluZm8pCi17Ci19Ci0KLQotdm9pZCBTY2NiTWdyX3Jlc3RvcmVfZm9yZWlnbl9zdGF0ZShDQVJEX0hBTkRMRSBwQ3VyckNhcmQpCi17Ci19Ci0KLXZvaWQgU2NjYk1ncl9yZXN0b3JlX25hdGl2ZV9zdGF0ZShDQVJEX0hBTkRMRSBwQ3VyckNhcmQpCi17Ci19Ci0KLSNlbmRpZiAvKiBOT19JT0NUTFMgKi8KLQotI2VuZGlmIC8qIChGV19UWVBFPT1fVUNCX01HUl8pICAgKi8KLQotI2lmbmRlZiBOT19JT0NUTFMKLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotdm9pZCBTY2NiTWdyX3VubG9hZF9jYXJkKENBUkRfSEFORExFIHBDdXJyQ2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIFNjY2JNZ3JfdW5sb2FkX2NhcmQoVVNIT1JUIHBDdXJyQ2FyZCkKLSNlbHNlCi12b2lkIFNjY2JNZ3JfdW5sb2FkX2NhcmQoVUxPTkcgcEN1cnJDYXJkKQotI2VuZGlmCi0jZW5kaWYKK3N0YXRpYyB2b2lkIFNjY2JNZ3JfdW5sb2FkX2NhcmQoVUxPTkcgcEN1cnJDYXJkKQogewogCVVDSEFSIGk7Ci0jaWYgZGVmaW5lZChET1MpCi0JVVNIT1JUIHBvcnRCYXNlOwotCVVTSE9SVCByZWdPZmZzZXQ7Ci0jZWxzZQogCVVMT05HIHBvcnRCYXNlOwogCVVMT05HIHJlZ09mZnNldDsKLSNlbmRpZgogCVVMT05HIHNjYW1EYXRhOwotI2lmIGRlZmluZWQoT1MyKQotCVVMT05HIGZhciAqcFNjYW1UYmw7Ci0jZWxzZQogCVVMT05HICpwU2NhbVRibDsKLSNlbmRpZgogCVBOVlJhbUluZm8gcEN1cnJOdlJhbTsKIAogCXBDdXJyTnZSYW0gPSAoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5wTnZSYW1JbmZvOwogCiAJaWYocEN1cnJOdlJhbSl7Ci0JCVdyU3RhY2socEN1cnJOdlJhbS0+bmlCYXNlQWRkciwgMCwgcEN1cnJOdlJhbS0+bmlNb2RlbCk7Ci0JCVdyU3RhY2socEN1cnJOdlJhbS0+bmlCYXNlQWRkciwgMSwgcEN1cnJOdlJhbS0+bmlTeXNDb25mKTsKLQkJV3JTdGFjayhwQ3Vyck52UmFtLT5uaUJhc2VBZGRyLCAyLCBwQ3Vyck52UmFtLT5uaVNjc2lDb25mKTsKLQkJV3JTdGFjayhwQ3Vyck52UmFtLT5uaUJhc2VBZGRyLCAzLCBwQ3Vyck52UmFtLT5uaVNjYW1Db25mKTsKLQkJV3JTdGFjayhwQ3Vyck52UmFtLT5uaUJhc2VBZGRyLCA0LCBwQ3Vyck52UmFtLT5uaUFkYXBJZCk7CisJCUZQVF9XclN0YWNrKHBDdXJyTnZSYW0tPm5pQmFzZUFkZHIsIDAsIHBDdXJyTnZSYW0tPm5pTW9kZWwpOworCQlGUFRfV3JTdGFjayhwQ3Vyck52UmFtLT5uaUJhc2VBZGRyLCAxLCBwQ3Vyck52UmFtLT5uaVN5c0NvbmYpOworCQlGUFRfV3JTdGFjayhwQ3Vyck52UmFtLT5uaUJhc2VBZGRyLCAyLCBwQ3Vyck52UmFtLT5uaVNjc2lDb25mKTsKKwkJRlBUX1dyU3RhY2socEN1cnJOdlJhbS0+bmlCYXNlQWRkciwgMywgcEN1cnJOdlJhbS0+bmlTY2FtQ29uZik7CisJCUZQVF9XclN0YWNrKHBDdXJyTnZSYW0tPm5pQmFzZUFkZHIsIDQsIHBDdXJyTnZSYW0tPm5pQWRhcElkKTsKIAogCQlmb3IoaSA9IDA7IGkgPCBNQVhfU0NTSV9UQVIgLyAyOyBpKyspCi0JCQlXclN0YWNrKHBDdXJyTnZSYW0tPm5pQmFzZUFkZHIsIChVQ0hBUikoaSs1KSwgcEN1cnJOdlJhbS0+bmlTeW5jVGJsW2ldKTsKKwkJCUZQVF9XclN0YWNrKHBDdXJyTnZSYW0tPm5pQmFzZUFkZHIsIChVQ0hBUikoaSs1KSwgcEN1cnJOdlJhbS0+bmlTeW5jVGJsW2ldKTsKIAogCQlwb3J0QmFzZSA9IHBDdXJyTnZSYW0tPm5pQmFzZUFkZHI7CiAKIAkJZm9yKGkgPSAwOyBpIDwgTUFYX1NDU0lfVEFSOyBpKyspewogCQkJcmVnT2Zmc2V0ID0gaHBfYXJhbUJhc2UgKyA2NCArIGkqNDsKLSNpZiBkZWZpbmVkKE9TMikKLQkJCXBTY2FtVGJsID0gKFVMT05HIGZhciAqKSAmcEN1cnJOdlJhbS0+bmlTY2FtVGJsW2ldOwotI2Vsc2UKIAkJCXBTY2FtVGJsID0gKFVMT05HICopICZwQ3Vyck52UmFtLT5uaVNjYW1UYmxbaV07Ci0jZW5kaWYKIAkJCXNjYW1EYXRhID0gKnBTY2FtVGJsOwogCQkJV1JfSEFSUDMyKHBvcnRCYXNlLCByZWdPZmZzZXQsIHNjYW1EYXRhKTsKIAkJfQogCiAJfWVsc2V7Ci0JCVdyU3RhY2soKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+aW9Qb3J0LCAwLCAwKTsKKwkJRlBUX1dyU3RhY2soKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+aW9Qb3J0LCAwLCAwKTsKIAl9CiB9Ci0jZW5kaWYgLyogTk9fSU9DVExTICovCiAKIAotdm9pZCBSTlZSYW1EYXRhKFBOVlJhbUluZm8gcE52UmFtSW5mbykKK3N0YXRpYyB2b2lkIEZQVF9STlZSYW1EYXRhKFBOVlJhbUluZm8gcE52UmFtSW5mbykKIHsKIAlVQ0hBUiBpOwotI2lmIGRlZmluZWQoRE9TKQotCVVTSE9SVCBwb3J0QmFzZTsKLQlVU0hPUlQgcmVnT2Zmc2V0OwotI2Vsc2UKIAlVTE9ORyBwb3J0QmFzZTsKIAlVTE9ORyByZWdPZmZzZXQ7Ci0jZW5kaWYKIAlVTE9ORyBzY2FtRGF0YTsKLSNpZiBkZWZpbmVkIChPUzIpCi0JVUxPTkcgZmFyICpwU2NhbVRibDsKLSNlbHNlCiAJVUxPTkcgKnBTY2FtVGJsOwotI2VuZGlmCiAKLQlwTnZSYW1JbmZvLT5uaU1vZGVsICAgID0gUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCAwKTsKLQlwTnZSYW1JbmZvLT5uaVN5c0NvbmYgID0gUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCAxKTsKLQlwTnZSYW1JbmZvLT5uaVNjc2lDb25mID0gUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCAyKTsKLQlwTnZSYW1JbmZvLT5uaVNjYW1Db25mID0gUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCAzKTsKLQlwTnZSYW1JbmZvLT5uaUFkYXBJZCAgID0gUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCA0KTsKKwlwTnZSYW1JbmZvLT5uaU1vZGVsICAgID0gRlBUX1JkU3RhY2socE52UmFtSW5mby0+bmlCYXNlQWRkciwgMCk7CisJcE52UmFtSW5mby0+bmlTeXNDb25mICA9IEZQVF9SZFN0YWNrKHBOdlJhbUluZm8tPm5pQmFzZUFkZHIsIDEpOworCXBOdlJhbUluZm8tPm5pU2NzaUNvbmYgPSBGUFRfUmRTdGFjayhwTnZSYW1JbmZvLT5uaUJhc2VBZGRyLCAyKTsKKwlwTnZSYW1JbmZvLT5uaVNjYW1Db25mID0gRlBUX1JkU3RhY2socE52UmFtSW5mby0+bmlCYXNlQWRkciwgMyk7CisJcE52UmFtSW5mby0+bmlBZGFwSWQgICA9IEZQVF9SZFN0YWNrKHBOdlJhbUluZm8tPm5pQmFzZUFkZHIsIDQpOwogCiAJZm9yKGkgPSAwOyBpIDwgTUFYX1NDU0lfVEFSIC8gMjsgaSsrKQotCQlwTnZSYW1JbmZvLT5uaVN5bmNUYmxbaV0gPSBSZFN0YWNrKHBOdlJhbUluZm8tPm5pQmFzZUFkZHIsIChVQ0hBUikoaSs1KSk7CisJCXBOdlJhbUluZm8tPm5pU3luY1RibFtpXSA9IEZQVF9SZFN0YWNrKHBOdlJhbUluZm8tPm5pQmFzZUFkZHIsIChVQ0hBUikoaSs1KSk7CiAKIAlwb3J0QmFzZSA9IHBOdlJhbUluZm8tPm5pQmFzZUFkZHI7CiAKIAlmb3IoaSA9IDA7IGkgPCBNQVhfU0NTSV9UQVI7IGkrKyl7CiAJCXJlZ09mZnNldCA9IGhwX2FyYW1CYXNlICsgNjQgKyBpKjQ7CiAJCVJEX0hBUlAzMihwb3J0QmFzZSwgcmVnT2Zmc2V0LCBzY2FtRGF0YSk7Ci0jaWYgZGVmaW5lZChPUzIpCi0JCXBTY2FtVGJsID0gKFVMT05HIGZhciAqKSAmcE52UmFtSW5mby0+bmlTY2FtVGJsW2ldOwotI2Vsc2UKIAkJcFNjYW1UYmwgPSAoVUxPTkcgKikgJnBOdlJhbUluZm8tPm5pU2NhbVRibFtpXTsKLSNlbmRpZgogCQkqcFNjYW1UYmwgPSBzY2FtRGF0YTsKIAl9CiAKIH0KIAotI2lmIGRlZmluZWQoRE9TKQotVUNIQVIgUmRTdGFjayhVU0hPUlQgcG9ydEJhc2UsIFVDSEFSIGluZGV4KQotI2Vsc2UKLVVDSEFSIFJkU3RhY2soVUxPTkcgcG9ydEJhc2UsIFVDSEFSIGluZGV4KQotI2VuZGlmCitzdGF0aWMgVUNIQVIgRlBUX1JkU3RhY2soVUxPTkcgcG9ydEJhc2UsIFVDSEFSIGluZGV4KQogewogCVdSX0hBUlBPT04ocG9ydEJhc2UgKyBocF9zdGFja19hZGRyLCBpbmRleCk7CiAJcmV0dXJuKFJEX0hBUlBPT04ocG9ydEJhc2UgKyBocF9zdGFja19kYXRhKSk7CiB9CiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgV3JTdGFjayhVU0hPUlQgcG9ydEJhc2UsIFVDSEFSIGluZGV4LCBVQ0hBUiBkYXRhKQotI2Vsc2UKLXZvaWQgV3JTdGFjayhVTE9ORyBwb3J0QmFzZSwgVUNIQVIgaW5kZXgsIFVDSEFSIGRhdGEpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9XclN0YWNrKFVMT05HIHBvcnRCYXNlLCBVQ0hBUiBpbmRleCwgVUNIQVIgZGF0YSkKIHsKIAlXUl9IQVJQT09OKHBvcnRCYXNlICsgaHBfc3RhY2tfYWRkciwgaW5kZXgpOwogCVdSX0hBUlBPT04ocG9ydEJhc2UgKyBocF9zdGFja19kYXRhLCBkYXRhKTsKIH0KIAogCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLXUwOGJpdHMgQ2hrSWZDaGlwSW5pdGlhbGl6ZWQoQkFTRV9QT1JUIGlvUG9ydCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi1VQ0hBUiBDaGtJZkNoaXBJbml0aWFsaXplZChVU0hPUlQgaW9Qb3J0KQotI2Vsc2UKLVVDSEFSIENoa0lmQ2hpcEluaXRpYWxpemVkKFVMT05HIGlvUG9ydCkKLSNlbmRpZgotI2VuZGlmCitzdGF0aWMgVUNIQVIgRlBUX0Noa0lmQ2hpcEluaXRpYWxpemVkKFVMT05HIGlvUG9ydCkKIHsKLQlpZigoUkRfSEFSUE9PTihpb1BvcnQgKyBocF9hcmJfaWQpICYgMHgwZikgIT0gUmRTdGFjayhpb1BvcnQsIDQpKQotCQlyZXR1cm4oRkFMU0UpOworCWlmKChSRF9IQVJQT09OKGlvUG9ydCArIGhwX2FyYl9pZCkgJiAweDBmKSAhPSBGUFRfUmRTdGFjayhpb1BvcnQsIDQpKQorCQlyZXR1cm4oMCk7CiAJaWYoKFJEX0hBUlBPT04oaW9Qb3J0ICsgaHBfY2xrY3RybF8wKSAmIENMS0NUUkxfREVGQVVMVCkKIAkJCQkJCQkJIT0gQ0xLQ1RSTF9ERUZBVUxUKQotCQlyZXR1cm4oRkFMU0UpOworCQlyZXR1cm4oMCk7CiAJaWYoKFJEX0hBUlBPT04oaW9Qb3J0ICsgaHBfc2VsdGltZW91dCkgPT0gVE9fMjUwbXMpIHx8CiAJCShSRF9IQVJQT09OKGlvUG9ydCArIGhwX3NlbHRpbWVvdXQpID09IFRPXzI5MG1zKSkKLQkJcmV0dXJuKFRSVUUpOwotCXJldHVybihGQUxTRSk7CisJCXJldHVybigxKTsKKwlyZXR1cm4oMCk7CiAKIH0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MjA1LDE4NSArMjAzNywyOSBAQAogICogICAgICAgICAgICAgIGNhbGxiYWNrIGZ1bmN0aW9uLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotdm9pZCBTY2NiTWdyX3N0YXJ0X3NjY2IoQ0FSRF9IQU5ETEUgcEN1cnJDYXJkLCBQVUNCIHBfdWNiKQotI2Vsc2UKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgU2NjYk1ncl9zdGFydF9zY2NiKFVTSE9SVCBwQ3VyckNhcmQsIFBTQ0NCIHBfU2NjYikKLSNlbHNlCi12b2lkIFNjY2JNZ3Jfc3RhcnRfc2NjYihVTE9ORyBwQ3VyckNhcmQsIFBTQ0NCIHBfU2NjYikKLSNlbmRpZgotI2VuZGlmCitzdGF0aWMgdm9pZCBTY2NiTWdyX3N0YXJ0X3NjY2IoVUxPTkcgcEN1cnJDYXJkLCBQU0NDQiBwX1NjY2IpCiB7Ci0jaWYgZGVmaW5lZChET1MpCi0gICBVU0hPUlQgaW9wb3J0OwotI2Vsc2UKICAgIFVMT05HIGlvcG9ydDsKLSNlbmRpZgogICAgVUNIQVIgdGhpc0NhcmQsIGx1bjsKIAlQU0NDQiBwU2F2ZVNjY2I7CiAgICBDQUxMX0JLX0ZOIGNhbGxiYWNrOwogCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLSAgIFBTQ0NCIHBfU2NjYjsKLSNlbmRpZgotCi0gICBtT1NfTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAgICB0aGlzQ2FyZCA9ICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jYXJkSW5kZXg7CiAgICBpb3BvcnQgPSAoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+aW9Qb3J0OwogCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLSAgIHBfU2NjYiA9IChQU0NDQilwX3VjYi0+VUNCX01nclByaXZhdGVQdHI7Ci0jZW5kaWYKLQogCWlmKChwX1NjY2ItPlRhcmdJRCA+IE1BWF9TQ1NJX1RBUikgfHwgKHBfU2NjYi0+THVuID4gTUFYX0xVTikpCiAJewogCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLQkJcF91Y2ItPlVDQl9oYmFzdGF0ID0gU0NDQl9DT01QTEVURTsKLQkJcF91Y2ItPlVDQl9zdGF0dXM9U0NDQl9FUlJPUjsKLQkJY2FsbGJhY2sgPSAoQ0FMTF9CS19GTilwX3VjYi0+VUNCX2NhbGxiYWNrOwotCQlpZiAoY2FsbGJhY2spCi0JCQljYWxsYmFjayhwX3VjYik7Ci0jZW5kaWYKLQotI2lmIChGV19UWVBFPT1fU0NDQl9NR1JfKQogCQlwX1NjY2ItPkhvc3RTdGF0dXMgPSBTQ0NCX0NPTVBMRVRFOwogCQlwX1NjY2ItPlNjY2JTdGF0dXMgPSBTQ0NCX0VSUk9SOwogCQljYWxsYmFjayA9IChDQUxMX0JLX0ZOKXBfU2NjYi0+U2NjYkNhbGxiYWNrOwogCQlpZiAoY2FsbGJhY2spCiAJCQljYWxsYmFjayhwX1NjY2IpOwotI2VuZGlmCiAKLQkJbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAJCXJldHVybjsKIAl9CiAKLSNpZiAoRldfVFlQRT09X1NDQ0JfTUdSXykKLSAgIHNpbml0cyhwX1NjY2IsdGhpc0NhcmQpOwotI2VuZGlmCi0KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0jaWZuZGVmIE5PX0lPQ1RMUwotCi0gICBpZiAocF91Y2ItPlVDQl9vcGNvZGUgJiBPUENfSU9DVEwpCi0JewotCi0JCXN3aXRjaCAocF91Y2ItPlVDQl9JT0NUTENvbW1hbmQpIAotCQl7Ci0JCQljYXNlIFJFQURfTlZSQU06Ci0JCQkJUmVhZE5WUmFtKChQU0NDQmNhcmQpcEN1cnJDYXJkLHBfdWNiKTsKLQkJCQlwX3VjYi0+VUNCX3N0YXR1cz1VQ0JfU1VDQ0VTUzsKLQkJCQljYWxsYmFjayA9IChDQUxMX0JLX0ZOKXBfdWNiLT5VQ0JfY2FsbGJhY2s7Ci0JCQkJaWYgKGNhbGxiYWNrKQotCQkJCQljYWxsYmFjayhwX3VjYik7Ci0JCQkJbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0JCQkJcmV0dXJuOwotCi0JCQljYXNlIFdSSVRFX05WUkFNOgotCQkJCVdyaXRlTlZSYW0oKFBTQ0NCY2FyZClwQ3VyckNhcmQscF91Y2IpOwotCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzPVVDQl9TVUNDRVNTOwotCQkJCWNhbGxiYWNrID0gKENBTExfQktfRk4pcF91Y2ItPlVDQl9jYWxsYmFjazsKLQkJCQlpZiAoY2FsbGJhY2spCi0JCQkJCWNhbGxiYWNrKHBfdWNiKTsKLQkJCQltT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQkJCQlyZXR1cm47Ci0KLQkJCWNhc2UgU0VORF9TQ1NJX1BBU1NUSFJVOgotI2lmIChGV19UWVBFICE9IF9TQ0NCX01HUl8pCi0JCQkJaWYoIHBfdWNiLT5VQ0JfdGFyZ2lkID49Ci0JCQkJICAgICgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmNhcmRJbmZvLT5haV9NYXhUYXJnICkKLQkJCQl7Ci0JCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzID0gVUNCX0VSUk9SOwotCQkJCQlwX3VjYi0+VUNCX2hiYXN0YXQgPSBIQVNUQVRfSFdfRVJST1I7Ci0JCQkJCWNhbGxiYWNrID0gKENBTExfQktfRk4pcF91Y2ItPlVDQl9jYWxsYmFjazsKLQkJCQkJaWYgKGNhbGxiYWNrKQotCQkJCQkJY2FsbGJhY2socF91Y2IpOwotCQkJCQltT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQkJCQkJcmV0dXJuOwotCQkJCX0KLSNlbmRpZgotCQkJCWJyZWFrOwotCi0JCQljYXNlIEhBUkRfUkVTRVQ6Ci0JCQkJcF91Y2ItPlVDQl9zdGF0dXMgPSBVQ0JfSU5WQUxJRDsKLQkJCQljYWxsYmFjayA9IChDQUxMX0JLX0ZOKXBfdWNiLT5VQ0JfY2FsbGJhY2s7Ci0JCQkJaWYgKGNhbGxiYWNrKQotCQkJCQljYWxsYmFjayhwX3VjYik7Ci0JCQkJbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBHRVRfREVWSUNFX1NZTkNSQVRFOgotCQkJCWlmKCAhR2V0RGV2U3luY1JhdGUoKFBTQ0NCY2FyZClwQ3VyckNhcmQscF91Y2IpICkKLQkJCQl7Ci0JCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzID0gVUNCX1NVQ0NFU1M7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQl7Ci0JCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzID0gVUNCX0VSUk9SOwotCQkJCQlwX3VjYi0+VUNCX2hiYXN0YXQgPSBIQVNUQVRfSFdfRVJST1I7Ci0JCQkJfQotCQkJCWNhbGxiYWNrID0gKENBTExfQktfRk4pcF91Y2ItPlVDQl9jYWxsYmFjazsKLQkJCQlpZiAoY2FsbGJhY2spCi0JCQkJCWNhbGxiYWNrKHBfdWNiKTsKLQkJCQltT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNFVF9ERVZJQ0VfU1lOQ1JBVEU6Ci0JCQkJaWYoICFTZXREZXZTeW5jUmF0ZSgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCxwX3VjYikgKQotCQkJCXsKLQkJCQkJcF91Y2ItPlVDQl9zdGF0dXMgPSBVQ0JfU1VDQ0VTUzsKLQkJCQl9Ci0JCQkJZWxzZQotCQkJCXsKLQkJCQkJcF91Y2ItPlVDQl9zdGF0dXMgPSBVQ0JfRVJST1I7Ci0JCQkJCXBfdWNiLT5VQ0JfaGJhc3RhdCA9IEhBU1RBVF9IV19FUlJPUjsKLQkJCQl9Ci0JCQkJY2FsbGJhY2sgPSAoQ0FMTF9CS19GTilwX3VjYi0+VUNCX2NhbGxiYWNrOwotCQkJCWlmIChjYWxsYmFjaykKLQkJCQkJY2FsbGJhY2socF91Y2IpOwotCQkJCW1PU19VbkxvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgR0VUX1dJREVfTU9ERToKLQkJCQlpZiggIUdldERldldpZGVNb2RlKChQU0NDQmNhcmQpcEN1cnJDYXJkLHBfdWNiKSApCi0JCQkJewotCQkJCQlwX3VjYi0+VUNCX3N0YXR1cyA9IFVDQl9TVUNDRVNTOwotCQkJCX0KLQkJCQllbHNlCi0JCQkJewotCQkJCQlwX3VjYi0+VUNCX3N0YXR1cyA9IFVDQl9FUlJPUjsKLQkJCQkJcF91Y2ItPlVDQl9oYmFzdGF0ID0gSEFTVEFUX0hXX0VSUk9SOwotCQkJCX0KLQkJCQljYWxsYmFjayA9IChDQUxMX0JLX0ZOKXBfdWNiLT5VQ0JfY2FsbGJhY2s7Ci0JCQkJaWYgKGNhbGxiYWNrKQotCQkJCQljYWxsYmFjayhwX3VjYik7Ci0JCQkJbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBTRVRfV0lERV9NT0RFOgotCQkJCWlmKCAhU2V0RGV2V2lkZU1vZGUoKFBTQ0NCY2FyZClwQ3VyckNhcmQscF91Y2IpICkKLQkJCQl7Ci0JCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzID0gVUNCX1NVQ0NFU1M7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQl7Ci0JCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzID0gVUNCX0VSUk9SOwotCQkJCQlwX3VjYi0+VUNCX2hiYXN0YXQgPSBIQVNUQVRfSFdfRVJST1I7Ci0JCQkJfQotCQkJCWNhbGxiYWNrID0gKENBTExfQktfRk4pcF91Y2ItPlVDQl9jYWxsYmFjazsKLQkJCQlpZiAoY2FsbGJhY2spCi0JCQkJCWNhbGxiYWNrKHBfdWNiKTsKLQkJCQltT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQkJCQlyZXR1cm47Ci0JCQlkZWZhdWx0OgotCQkJCXBfdWNiLT5VQ0Jfc3RhdHVzPVVDQl9JTlZBTElEOwotCQkJCWNhbGxiYWNrID0gKENBTExfQktfRk4pcF91Y2ItPlVDQl9jYWxsYmFjazsKLQkJCQlpZiAoY2FsbGJhY2spCi0JCQkJCWNhbGxiYWNrKHBfdWNiKTsKLQkJCQltT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQl9Ci0jZW5kaWYgLyogTk9fSU9DVExTICovCi0jZW5kaWYgLyogKEZXX1RZUEU9PV9VQ0JfTUdSXykgKi8KKyAgIEZQVF9zaW5pdHMocF9TY2NiLHRoaXNDYXJkKTsKIAogCiAgICBpZiAoISgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jbWRDb3VudGVyKQpAQCAtNDQwOCwxMiArMjA4NCwxMiBAQAogCQkJewogCQkJCXBTYXZlU2NjYiA9ICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQjsKIAkJCQkoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgPSBwX1NjY2I7Ci0JCQkJcXVldWVTZWxlY3RGYWlsKCZCTF9DYXJkW3RoaXNDYXJkXSwgdGhpc0NhcmQpOworCQkJCUZQVF9xdWV1ZVNlbGVjdEZhaWwoJkZQVF9CTF9DYXJkW3RoaXNDYXJkXSwgdGhpc0NhcmQpOwogCQkJCSgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9IHBTYXZlU2NjYjsKIAkJCX0KIAkJZWxzZQogCQkJewotCSAgICAgIHF1ZXVlQWRkU2NjYihwX1NjY2IsdGhpc0NhcmQpOworCSAgICAgIEZQVF9xdWV1ZUFkZFNjY2IocF9TY2NiLHRoaXNDYXJkKTsKIAkJCX0KICAgICAgIH0KIApAQCAtNDQyMywxMiArMjA5OSwxMiBAQAogCQkJCXsKIAkJCQkJcFNhdmVTY2NiID0gKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmN1cnJlbnRTQ0NCOwogCQkJCQkoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgPSBwX1NjY2I7Ci0JCQkJCXF1ZXVlU2VsZWN0RmFpbCgmQkxfQ2FyZFt0aGlzQ2FyZF0sIHRoaXNDYXJkKTsKKwkJCQkJRlBUX3F1ZXVlU2VsZWN0RmFpbCgmRlBUX0JMX0NhcmRbdGhpc0NhcmRdLCB0aGlzQ2FyZCk7CiAJCQkJCSgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9IHBTYXZlU2NjYjsKIAkJCQl9CiAJCQllbHNlCiAJCQkJewotCQkgICAgICBxdWV1ZUFkZFNjY2IocF9TY2NiLHRoaXNDYXJkKTsKKwkJICAgICAgRlBUX3F1ZXVlQWRkU2NjYihwX1NjY2IsdGhpc0NhcmQpOwogCQkJCX0KICAgICAgIH0KIApAQCAtNDQzNywyMyArMjExMywxNyBAQAogICAgICAgTURJU0FCTEVfSU5UKGlvcG9ydCk7CiAKIAkJaWYoKCgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJiAKLQkJCSgoc2NjYk1nclRibFt0aGlzQ2FyZF1bcF9TY2NiLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQorCQkJKChGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1bcF9TY2NiLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQogCQkJbHVuID0gcF9TY2NiLT5MdW47CiAJCWVsc2UKIAkJCWx1biA9IDA7CiAgICAgICBpZiAoKCgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9PSBOVUxMKSAmJgotICAgICAgICAgKHNjY2JNZ3JUYmxbdGhpc0NhcmRdW3BfU2NjYi0+VGFyZ0lEXS5UYXJTZWxRX0NudCA9PSAwKSAmJgotICAgICAgICAgKHNjY2JNZ3JUYmxbdGhpc0NhcmRdW3BfU2NjYi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2x1bl0KLSAgICAgICAgID09IEZBTFNFKSkgeworICAgICAgICAgKEZQVF9zY2NiTWdyVGJsW3RoaXNDYXJkXVtwX1NjY2ItPlRhcmdJRF0uVGFyU2VsUV9DbnQgPT0gMCkgJiYKKyAgICAgICAgIChGUFRfc2NjYk1nclRibFt0aGlzQ2FyZF1bcF9TY2NiLT5UYXJnSURdLlRhckxVTkJ1c3lbbHVuXQorICAgICAgICAgPT0gMCkpIHsKIAogICAgICAgICAgICAgKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmN1cnJlbnRTQ0NCID0gcF9TY2NiOwotCQkJICAgbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0jaWYgZGVmaW5lZChET1MpCi0gICAgICAgICAgICBzc2VsKChVU0hPUlQpcF9TY2NiLT5TY2NiSU9Qb3J0LHRoaXNDYXJkKTsKLSNlbHNlCi0JICAgIHNzZWwocF9TY2NiLT5TY2NiSU9Qb3J0LHRoaXNDYXJkKTsKLSNlbmRpZgotCQkJICAgbU9TX0xvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOworCSAgICBGUFRfc3NlbChwX1NjY2ItPlNjY2JJT1BvcnQsdGhpc0NhcmQpOwogICAgICAgICAgfQogCiAgICAgICBlbHNlIHsKQEAgLTQ0NjIsMTIgKzIxMzIsMTIgQEAKIAkJCQl7CiAJCQkJCXBTYXZlU2NjYiA9ICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQjsKIAkJCQkJKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmN1cnJlbnRTQ0NCID0gcF9TY2NiOwotCQkJCQlxdWV1ZVNlbGVjdEZhaWwoJkJMX0NhcmRbdGhpc0NhcmRdLCB0aGlzQ2FyZCk7CisJCQkJCUZQVF9xdWV1ZVNlbGVjdEZhaWwoJkZQVF9CTF9DYXJkW3RoaXNDYXJkXSwgdGhpc0NhcmQpOwogCQkJCQkoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgPSBwU2F2ZVNjY2I7CiAJCQkJfQogCQkJZWxzZQogCQkJCXsKLQkgICAgICAgICAJcXVldWVBZGRTY2NiKHBfU2NjYix0aGlzQ2FyZCk7CisJICAgICAgICAgCUZQVF9xdWV1ZUFkZFNjY2IocF9TY2NiLHRoaXNDYXJkKTsKIAkJCQl9CiAgICAgICAgICB9CiAKQEAgLTQ0NzUsNyArMjE0NSw2IEBACiAgICAgICBNRU5BQkxFX0lOVChpb3BvcnQpOwogICAgICAgfQogCi0gICBtT1NfVW5Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKIH0KIAogCkBAIC00NDg4LDIyICsyMTU3LDkgQEAKICAqICAgICAgICAgICAgICBjYWxsYmFjayBmdW5jdGlvbi4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLXMzMmJpdHMgU2NjYk1ncl9hYm9ydF9zY2NiKENBUkRfSEFORExFIHBDdXJyQ2FyZCwgUFVDQiBwX3VjYikKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi1pbnQgU2NjYk1ncl9hYm9ydF9zY2NiKFVTSE9SVCBwQ3VyckNhcmQsIFBTQ0NCIHBfU2NjYikKLSNlbHNlCi1pbnQgU2NjYk1ncl9hYm9ydF9zY2NiKFVMT05HIHBDdXJyQ2FyZCwgUFNDQ0IgcF9TY2NiKQotI2VuZGlmCi0jZW5kaWYKLQorc3RhdGljIGludCBTY2NiTWdyX2Fib3J0X3NjY2IoVUxPTkcgcEN1cnJDYXJkLCBQU0NDQiBwX1NjY2IpCiB7Ci0jaWYgZGVmaW5lZChET1MpCi0JVVNIT1JUIGlvcG9ydDsKLSNlbHNlCiAJVUxPTkcgaW9wb3J0OwotI2VuZGlmCiAKIAlVQ0hBUiB0aGlzQ2FyZDsKIAlDQUxMX0JLX0ZOIGNhbGxiYWNrOwpAQCAtNDUxMiw1MyArMjE2OCwzMSBAQAogCVBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKIAogCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLQlQU0NDQiAgICBwX1NjY2I7Ci0JcF9TY2NiPShQU0NDQilwX3VjYi0+VUNCX01nclByaXZhdGVQdHI7Ci0jZW5kaWYKLQogCWlvcG9ydCA9ICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5pb1BvcnQ7CiAKIAl0aGlzQ2FyZCA9ICgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmNhcmRJbmRleDsKIAotCW1PU19Mb2NrKChQU0NDQmNhcmQpcEN1cnJDYXJkKTsKLQotCWlmIChSRF9IQVJQT09OKGlvcG9ydCtocF9wYWdlX2N0cmwpICYgR19JTlRfRElTQUJMRSkKLQl7Ci0JCW1PU19VbkxvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwotCX0KLQotCWVsc2UKKwlpZiAoIShSRF9IQVJQT09OKGlvcG9ydCtocF9wYWdlX2N0cmwpICYgR19JTlRfRElTQUJMRSkpCiAJewogCi0JCWlmIChxdWV1ZUZpbmRTY2NiKHBfU2NjYix0aGlzQ2FyZCkpCisJCWlmIChGUFRfcXVldWVGaW5kU2NjYihwX1NjY2IsdGhpc0NhcmQpKQogCQl7CiAKLQkJCW1PU19VbkxvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwotCiAJCQkoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5jbWRDb3VudGVyLS07CiAKIAkJCWlmICghKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Y21kQ291bnRlcikKIAkJCQlXUl9IQVJQT09OKGlvcG9ydCtocF9zZW1hcGhvcmUsKFJEX0hBUlBPT04oaW9wb3J0K2hwX3NlbWFwaG9yZSkKIAkJCQkJJiAoVUNIQVIpKH4oU0NDQl9NR1JfQUNUSVZFIHwgVElDS0xFX01FKSkgKSk7CiAKLSNpZiAoRldfVFlQRT09X1NDQ0JfTUdSXykKIAkJCXBfU2NjYi0+U2NjYlN0YXR1cyA9IFNDQ0JfQUJPUlQ7CiAJCQljYWxsYmFjayA9IHBfU2NjYi0+U2NjYkNhbGxiYWNrOwogCQkJY2FsbGJhY2socF9TY2NiKTsKLSNlbHNlCi0JCQlwX3VjYi0+VUNCX3N0YXR1cz1TQ0NCX0FCT1JUOwotCQkJY2FsbGJhY2sgPSAoQ0FMTF9CS19GTilwX3VjYi0+VUNCX2NhbGxiYWNrOwotCQkJY2FsbGJhY2socF91Y2IpOwotI2VuZGlmCiAKIAkJCXJldHVybigwKTsKIAkJfQogCiAJCWVsc2UKIAkJewotCQkJbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0KIAkJCWlmICgoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9PSBwX1NjY2IpCiAJCQl7CiAJCQkJcF9TY2NiLT5TY2NiU3RhdHVzID0gU0NDQl9BQk9SVDsKQEAgLTQ1NzksMjEgKzIyMTMsMTggQEAKIAkJCQkJewogCQkJCQkJcF9TY2NiLT5TY2NiU3RhdHVzID0gU0NDQl9BQk9SVDsKIAkJCQkJCXBfU2NjYi0+U2NjYl9zY3Npc3RhdCA9IEFCT1JUX1NUOwotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JCQkJCQlwX3VjYi0+VUNCX3N0YXR1cz1TQ0NCX0FCT1JUOwotI2VuZGlmCiAJCQkJCQlwX1NjY2ItPlNjY2Jfc2NzaW1zZyA9IFNNQUJPUlRfVEFHOwogCiAJCQkJCQlpZigoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgPT0gTlVMTCkKIAkJCQkJCXsKIAkJCQkJCQkoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgPSBwX1NjY2I7Ci0JCQkJCQkJc3NlbChpb3BvcnQsIHRoaXNDYXJkKTsKKwkJCQkJCQlGUFRfc3NlbChpb3BvcnQsIHRoaXNDYXJkKTsKIAkJCQkJCX0KIAkJCQkJCWVsc2UKIAkJCQkJCXsKIAkJCQkJCQlwU2F2ZVNDQ0IgPSAoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0I7CiAJCQkJCQkJKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmN1cnJlbnRTQ0NCID0gcF9TY2NiOwotCQkJCQkJCXF1ZXVlU2VsZWN0RmFpbCgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQsIHRoaXNDYXJkKTsKKwkJCQkJCQlGUFRfcXVldWVTZWxlY3RGYWlsKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCwgdGhpc0NhcmQpOwogCQkJCQkJCSgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9IHBTYXZlU0NDQjsKIAkJCQkJCX0KIAkJCQkJfQpAQCAtNDYwMiw5ICsyMjMzLDkgQEAKIAkJCQl9CiAJCQkJZWxzZQogCQkJCXsKLQkJCQkJY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbdGhpc0NhcmRdW3BfU2NjYi0+VGFyZ0lEXTsKKwkJCQkJY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3RoaXNDYXJkXVtwX1NjY2ItPlRhcmdJRF07CiAKLQkJCQkJaWYoQkxfQ2FyZFt0aGlzQ2FyZF0uZGlzY1FfVGJsW2N1cnJUYXJfSW5mby0+THVuRGlzY1FfSWR4W3BfU2NjYi0+THVuXV0gCisJCQkJCWlmKEZQVF9CTF9DYXJkW3RoaXNDYXJkXS5kaXNjUV9UYmxbY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbcF9TY2NiLT5MdW5dXSAKIAkJCQkJCQk9PSBwX1NjY2IpCiAJCQkJCXsKIAkJCQkJCXBfU2NjYi0+U2NjYlN0YXR1cyA9IFNDQ0JfQUJPUlQ7CkBAIC00NjI2LDM3ICsyMjU3LDIwIEBACiAgKiAgICAgICAgICAgICAgaW50ZXJydXB0IGZvciB0aGlzIGNhcmQgYW5kIGRpc2FibGUgdGhlIElSUSBQaW4gaWYgc28uCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi11MDhiaXRzIFNjY2JNZ3JfbXlfaW50KENBUkRfSEFORExFIHBDdXJyQ2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi1VQ0hBUiBTY2NiTWdyX215X2ludChVU0hPUlQgcEN1cnJDYXJkKQotI2Vsc2UKLVVDSEFSIFNjY2JNZ3JfbXlfaW50KFVMT05HIHBDdXJyQ2FyZCkKLSNlbmRpZgotI2VuZGlmCitzdGF0aWMgVUNIQVIgU2NjYk1ncl9teV9pbnQoVUxPTkcgcEN1cnJDYXJkKQogewotI2lmIGRlZmluZWQoRE9TKQotICAgVVNIT1JUIGlvcG9ydDsKLSNlbHNlCiAgICBVTE9ORyBpb3BvcnQ7Ci0jZW5kaWYKIAogICAgaW9wb3J0ID0gKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+aW9Qb3J0OwogCiAgICBpZiAoUkRfSEFSUE9PTihpb3BvcnQraHBfaW50X3N0YXR1cykgJiBJTlRfQVNTRVJURUQpCiAgICB7Ci0KLSNpZiBkZWZpbmVkKERPUykKLSAgICAgIE1ESVNBQkxFX0lOVChpb3BvcnQpOwotI2VuZGlmCi0KLSAgICAgIHJldHVybihUUlVFKTsKKyAgICAgIHJldHVybigxKTsKICAgIH0KIAogICAgZWxzZQogCi0gICAgICByZXR1cm4oRkFMU0UpOworICAgICAgcmV0dXJuKDApOwogfQogCiAKQEAgLTQ2NzAsMzcgKzIyODQsMTkgQEAKICAqICAgICAgICAgICAgICB1cy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLXMzMmJpdHMgU2NjYk1ncl9pc3IoQ0FSRF9IQU5ETEUgcEN1cnJDYXJkKQotI2Vsc2UKLSNpZiBkZWZpbmVkKERPUykKLWludCBTY2NiTWdyX2lzcihVU0hPUlQgcEN1cnJDYXJkKQotI2Vsc2UKLWludCBTY2NiTWdyX2lzcihVTE9ORyBwQ3VyckNhcmQpCi0jZW5kaWYKLSNlbmRpZgorc3RhdGljIGludCBTY2NiTWdyX2lzcihVTE9ORyBwQ3VyckNhcmQpCiB7CiAgICBQU0NDQiBjdXJyU0NDQjsKICAgIFVDSEFSIHRoaXNDYXJkLHJlc3VsdCxibV9zdGF0dXMsIGJtX2ludF9zdDsKICAgIFVTSE9SVCBocF9pbnQ7CiAgICBVQ0hBUiBpLCB0YXJnZXQ7Ci0jaWYgZGVmaW5lZChET1MpCi0gICBVU0hPUlQgaW9wb3J0OwotI2Vsc2UKICAgIFVMT05HIGlvcG9ydDsKLSNlbmRpZgotCi0gICBtT1NfTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAKICAgIHRoaXNDYXJkID0gKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Y2FyZEluZGV4OwogICAgaW9wb3J0ID0gKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+aW9Qb3J0OwogCiAgICBNRElTQUJMRV9JTlQoaW9wb3J0KTsKIAotI2lmIGRlZmluZWQoQlVHQlVHKQotICAgV1JfSEFSUE9PTihpb3BvcnQraHBfdXNlcl9kZWZpbmVkX0QsIFJEX0hBUlBPT04oaW9wb3J0K2hwX2ludF9zdGF0dXMpKTsKLSNlbmRpZgotCiAgICBpZiAoKGJtX2ludF9zdD1SRF9IQVJQT09OKGlvcG9ydCtocF9pbnRfc3RhdHVzKSkgJiBFWFRfU1RBVFVTX09OKQogCQlibV9zdGF0dXMgPSBSRF9IQVJQT09OKGlvcG9ydCtocF9leHRfc3RhdHVzKSAmIChVQ0hBUilCQURfRVhUX1NUQVRVUzsKICAgIGVsc2UKQEAgLTQ3MDgsMzMgKzIzMDQsMjAgQEAKIAogICAgV1JfSEFSUE9PTihpb3BvcnQraHBfaW50X21hc2ssIChJTlRfQ01EX0NPTVBMIHwgU0NTSV9JTlRFUlJVUFQpKTsKIAotICAgbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci0KLSAgIHdoaWxlICgoaHBfaW50ID0gUkRXX0hBUlBPT04oKGlvcG9ydCtocF9pbnRzdGF0KSkgJiBkZWZhdWx0X2ludGVuYSkgfAorICAgd2hpbGUgKChocF9pbnQgPSBSRFdfSEFSUE9PTigoaW9wb3J0K2hwX2ludHN0YXQpKSAmIEZQVF9kZWZhdWx0X2ludGVuYSkgfAogCSAgYm1fc3RhdHVzKQogICAgICB7CiAKICAgICAgICBjdXJyU0NDQiA9ICgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmN1cnJlbnRTQ0NCOwogCi0jaWYgZGVmaW5lZChCVUdCVUcpCi0gICBEZWJ1Z19Mb2FkKHRoaXNDYXJkLChVQ0hBUikgMFhGRik7Ci0gICBEZWJ1Z19Mb2FkKHRoaXNDYXJkLGJtX2ludF9zdCk7Ci0KLSAgIERlYnVnX0xvYWQodGhpc0NhcmQsaHBfaW50XzApOwotICAgRGVidWdfTG9hZCh0aGlzQ2FyZCxocF9pbnRfMSk7Ci0jZW5kaWYKLQotCiAgICAgICBpZiAoaHBfaW50ICYgKEZJRk8gfCBUSU1FT1VUIHwgUkVTRVQgfCBTQ0FNX1NFTCkgfHwgYm1fc3RhdHVzKSB7Ci0gICAgICAgICByZXN1bHQgPSBTY2NiTWdyX2JhZF9pc3IoaW9wb3J0LHRoaXNDYXJkLCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCksaHBfaW50KTsKKyAgICAgICAgIHJlc3VsdCA9IEZQVF9TY2NiTWdyX2JhZF9pc3IoaW9wb3J0LHRoaXNDYXJkLCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCksaHBfaW50KTsKICAgICAgICAgIFdSV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCksIChGSUZPIHwgVElNRU9VVCB8IFJFU0VUIHwgU0NBTV9TRUwpKTsKICAgICAgICAgIGJtX3N0YXR1cyA9IDA7CiAKICAgICAgICAgIGlmIChyZXN1bHQpIHsKIAotCQkJICAgbU9TX0xvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwogICAgICAgICAgICAgTUVOQUJMRV9JTlQoaW9wb3J0KTsKLQkJCSAgIG1PU19VbkxvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwogICAgICAgICAgICAgcmV0dXJuKHJlc3VsdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICB9CkBAIC00NzUzLDcgKzIzMzYsNyBAQAogCiAgICAgICAgICBpZiAoKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Z2xvYmFsRmxhZ3MgJiBGX0hPU1RfWEZFUl9BQ1QpCiAKLSAgICAgICAgICAgIHBoYXNlQ2hrRmlmbyhpb3BvcnQsIHRoaXNDYXJkKTsKKyAgICAgICAgICAgIEZQVF9waGFzZUNoa0ZpZm8oaW9wb3J0LCB0aGlzQ2FyZCk7CiAKIC8qICAgICAgICAgV1JXX0hBUlBPT04oKGlvcG9ydCtocF9pbnRzdGF0KSwKICAgICAgICAgICAgIChCVVNfRlJFRSB8IElDTURfQ09NUCB8IElUQVJfRElTQyB8IFhGRVJfQ05UXzApKTsKQEAgLTQ3NjEsNyArMjM0NCw3IEBACiAKIAkJIFdSV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCksIENMUl9BTExfSU5UXzEpOwogCi0gICAgICAgICBhdXRvQ21kQ21wbHQoaW9wb3J0LHRoaXNDYXJkKTsKKyAgICAgICAgIEZQVF9hdXRvQ21kQ21wbHQoaW9wb3J0LHRoaXNDYXJkKTsKIAogICAgICAgICAgfQogCkBAIC00NzcxLDcgKzIzNTQsNyBAQAogCiAgICAgICAgICBpZiAoKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Z2xvYmFsRmxhZ3MgJiBGX0hPU1RfWEZFUl9BQ1QpIHsKIAotICAgICAgICAgICAgcGhhc2VDaGtGaWZvKGlvcG9ydCwgdGhpc0NhcmQpOworICAgICAgICAgICAgRlBUX3BoYXNlQ2hrRmlmbyhpb3BvcnQsIHRoaXNDYXJkKTsKIAogICAgICAgICAgICAgfQogCkBAIC00Nzg0LDcgKzIzNjcsNyBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICBjdXJyU0NDQi0+U2NjYl9zY3Npc3RhdCA9IERJU0NPTk5FQ1RfU1Q7Ci0gICAgICAgICBxdWV1ZURpc2Nvbm5lY3QoY3VyclNDQ0IsdGhpc0NhcmQpOworICAgICAgICAgRlBUX3F1ZXVlRGlzY29ubmVjdChjdXJyU0NDQix0aGlzQ2FyZCk7CiAKICAgICAgICAgICAgIC8qIFdhaXQgZm9yIHRoZSBCdXNGcmVlIGJlZm9yZSBzdGFydGluZyBhIG5ldyBjb21tYW5kLiAgV2UKICAgICAgICAgICAgICAgIG11c3QgYWxzbyBjaGVjayBmb3IgYmVpbmcgcmVzZWxlY3RlZCBzaW5jZSB0aGUgQnVzRnJlZQpAQCAtNDgwMyw5ICsyMzg2LDcgQEAKIAkgICAqLwogCSAgIGlmICghKFJEV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCkpICYgKEJVU19GUkVFIHwgUlNFTCkpKQogCSAgICAgewotCSAgICAgICBtT1NfTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAJICAgICAgIE1FTkFCTEVfSU5UKGlvcG9ydCk7Ci0JICAgICAgIG1PU19VbkxvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwogCSAgICAgICByZXR1cm4gMHhGRTsKIAkgICAgIH0KIApAQCAtNDgyNSw3ICsyNDA2LDcgQEAKIAkJICAgICAgewogICAgICAgICAgICAgaWYgKCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmdsb2JhbEZsYWdzICYgRl9IT1NUX1hGRVJfQUNUKQogCQkJICAgICAgewotICAgICAgICAgICAgICAgcGhhc2VDaGtGaWZvKGlvcG9ydCwgdGhpc0NhcmQpOworICAgICAgICAgICAgICAgRlBUX3BoYXNlQ2hrRmlmbyhpb3BvcnQsIHRoaXNDYXJkKTsKICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKFJEX0hBUlBPT04oaW9wb3J0K2hwX2dwX3JlZ18xKSA9PSBTTVNBVkVfREFUQV9QVFIpCkBAIC00ODM3LDExICsyNDE4LDExIEBACiAKICAgICAgICAgICAgIFdSV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCksIChCVVNfRlJFRSB8IElUQVJfRElTQykpOwogICAgICAgICAgICAgY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPSBESVNDT05ORUNUX1NUOwotICAgICAgICAgICAgcXVldWVEaXNjb25uZWN0KGN1cnJTQ0NCLHRoaXNDYXJkKTsKKyAgICAgICAgICAgIEZQVF9xdWV1ZURpc2Nvbm5lY3QoY3VyclNDQ0IsdGhpc0NhcmQpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICBzcmVzKGlvcG9ydCx0aGlzQ2FyZCwoKFBTQ0NCY2FyZClwQ3VyckNhcmQpKTsKLSAgICAgICAgIHBoYXNlRGVjb2RlKGlvcG9ydCx0aGlzQ2FyZCk7CisgICAgICAgICBGUFRfc3Jlcyhpb3BvcnQsdGhpc0NhcmQsKChQU0NDQmNhcmQpcEN1cnJDYXJkKSk7CisgICAgICAgICBGUFRfcGhhc2VEZWNvZGUoaW9wb3J0LHRoaXNDYXJkKTsKIAogICAgICAgICAgfQogCkBAIC00ODUwLDcgKzI0MzEsNyBAQAogICAgICAgICAgewogCiAgICAgICAgICAgICBXUldfSEFSUE9PTigoaW9wb3J0K2hwX2ludHN0YXQpLCAoSURPX1NUUlQgfCBYRkVSX0NOVF8wKSk7Ci0gICAgICAgICAgICBwaGFzZURlY29kZShpb3BvcnQsdGhpc0NhcmQpOworICAgICAgICAgICAgRlBUX3BoYXNlRGVjb2RlKGlvcG9ydCx0aGlzQ2FyZCk7CiAKICAgICAgICAgIH0KIApAQCAtNDg2MCw3ICsyNDQxLDcgQEAKIAkgCSAgIFdSV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCksIChQSEFTRSB8IElVTktXTiB8IFBST0dfSExUKSk7CiAJIAkgICBpZiAoKFJEX0hBUlBPT04oaW9wb3J0K2hwX3ByZ21jbnRfMCkgJiAoVUNIQVIpMHgzZik8IChVQ0hBUilTRUxDSEspCiAJICAgIAkJewotCSAgICAJCXBoYXNlRGVjb2RlKGlvcG9ydCx0aGlzQ2FyZCk7CisJICAgIAkJRlBUX3BoYXNlRGVjb2RlKGlvcG9ydCx0aGlzQ2FyZCk7CiAJICAgIAkJfQogCSAJICAgZWxzZQogCSAgICAJCXsKQEAgLTQ4ODUsNyArMjQ2Niw3IEBACiAKICAgICAgICAgIFdSV19IQVJQT09OKChpb3BvcnQraHBfaW50c3RhdCksIFhGRVJfQ05UXzApOwogCi0gICAgICAgICBzY2hrZGQoaW9wb3J0LHRoaXNDYXJkKTsKKyAgICAgICAgIEZQVF9zY2hrZGQoaW9wb3J0LHRoaXNDYXJkKTsKIAogICAgICAgICAgfQogCkBAIC00ODk2LDEwICsyNDc3LDEwIEBACiAKICAgICAgICAgCWlmICgoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5nbG9iYWxGbGFncyAmIEZfSE9TVF9YRkVSX0FDVCkgewogCi0gICAgICAgICAgIAlob3N0RGF0YVhmZXJBYm9ydChpb3BvcnQsdGhpc0NhcmQsY3VyclNDQ0IpOworICAgICAgICAgICAJRlBUX2hvc3REYXRhWGZlckFib3J0KGlvcG9ydCx0aGlzQ2FyZCxjdXJyU0NDQik7CiAJCQkJfQogCi0gICAgICAgICBwaGFzZUJ1c0ZyZWUoaW9wb3J0LHRoaXNDYXJkKTsKKyAgICAgICAgIEZQVF9waGFzZUJ1c0ZyZWUoaW9wb3J0LHRoaXNDYXJkKTsKIAkJCX0KIAogCkBAIC00OTE5LDEyICsyNTAwLDEyIEBACiAKICAgICAgICAgIGlmICgoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5jdXJyZW50U0NDQiA9PSBOVUxMKSB7CiAKLSAgICAgICAgICAgIHF1ZXVlU2VhcmNoU2VsZWN0KCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCksdGhpc0NhcmQpOworICAgICAgICAgICAgRlBUX3F1ZXVlU2VhcmNoU2VsZWN0KCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCksdGhpc0NhcmQpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICBpZiAoKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Y3VycmVudFNDQ0IgIT0gTlVMTCkgewogICAgICAgICAgICAgKChQU0NDQmNhcmQpcEN1cnJDYXJkKS0+Z2xvYmFsRmxhZ3MgJj0gfkZfTkVXX1NDQ0JfQ01EOwotICAgICAgICAgICAgc3NlbChpb3BvcnQsdGhpc0NhcmQpOworICAgICAgICAgICAgRlBUX3NzZWwoaW9wb3J0LHRoaXNDYXJkKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgYnJlYWs7CkBAIC00OTMzLDkgKzI1MTQsNyBAQAogCiAgICAgICB9ICAvKmVuZCB3aGlsZSAqLwogCi0gICBtT1NfTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAgICBNRU5BQkxFX0lOVChpb3BvcnQpOwotICAgbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7CiAKICAgIHJldHVybigwKTsKIH0KQEAgLTQ5NTAsMTggKzI1MjksMTIgQEAKICAqICAgICAgICAgICAgICBwcm9jZXNzaW5nIHRpbWUuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotVUNIQVIgU2NjYk1ncl9iYWRfaXNyKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVVNIT1JUIHBfaW50KQotI2Vsc2UKLVVDSEFSIFNjY2JNZ3JfYmFkX2lzcihVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVVNIT1JUIHBfaW50KQotI2VuZGlmCitzdGF0aWMgVUNIQVIgRlBUX1NjY2JNZ3JfYmFkX2lzcihVTE9ORyBwX3BvcnQsIFVDSEFSIHBfY2FyZCwKKwkJCQkgUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVVNIT1JUIHBfaW50KQogewotI2lmIGRlZmluZWQoSEFSUF9SRVZYKQotICAgVUxPTkcgdGltZXI7Ci0jZW5kaWYKLVVDSEFSIHRlbXAsIFNjYW1GbGc7Ci1QU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87Ci1QTlZSYW1JbmZvIHBDdXJyTnZSYW07CisgICBVQ0hBUiB0ZW1wLCBTY2FtRmxnOworICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOworICAgUE5WUmFtSW5mbyBwQ3Vyck52UmFtOwogCiAKICAgIGlmIChSRF9IQVJQT09OKHBfcG9ydCtocF9leHRfc3RhdHVzKSAmCkBAIC00OTcxLDcgKzI1NDQsNyBAQAogICAgICAgaWYgKHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJiBGX0hPU1RfWEZFUl9BQ1QpCiAgICAgICAgICB7CiAKLSAgICAgICAgIGhvc3REYXRhWGZlckFib3J0KHBfcG9ydCxwX2NhcmQsIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IpOworICAgICAgICAgRlBUX2hvc3REYXRhWGZlckFib3J0KHBfcG9ydCxwX2NhcmQsIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IpOwogICAgICAgICAgfQogCiAgICAgICBpZiAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGNpX3N0YXRfY2ZnKSAmIFJFQ19NQVNURVJfQUJPUlQpCkBAIC00OTkwLDcgKzI1NjMsNyBAQAogICAgICAgICAgaWYgKCFwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5Ib3N0U3RhdHVzKQogICAgICAgICAgICAgcEN1cnJDYXJkLT5jdXJyZW50U0NDQi0+SG9zdFN0YXR1cyA9IFNDQ0JfQk1fRVJSOwogCi0gICAgICAgICBzeGZycChwX3BvcnQscF9jYXJkKTsKKyAgICAgICAgIEZQVF9zeGZycChwX3BvcnQscF9jYXJkKTsKIAogCSAgICAgdGVtcCA9IChVQ0hBUikoUkRfSEFSUE9PTihwX3BvcnQraHBfZWVfY3RybCkgJgogCQkJCQkJCShFWFRfQVJCX0FDSyB8IFNDU0lfVEVSTV9FTkFfSCkpOwpAQCAtNDk5OSw3ICsyNTcyLDcgQEAKIAogICAgICAgICAgaWYgKCEoUkRXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRzdGF0KSkgJiAoQlVTX0ZSRUUgfCBSRVNFVCkpKQogICAgICAgICAgICAgewotICAgICAgICAgICAgcGhhc2VEZWNvZGUocF9wb3J0LHBfY2FyZCk7CisgICAgICAgICAgICBGUFRfcGhhc2VEZWNvZGUocF9wb3J0LHBfY2FyZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICB9CkBAIC01MDE0LDEzICsyNTg3LDEzIEBACiAKICAgICAgICAgICAgICAgIGlmIChwQ3VyckNhcmQtPmdsb2JhbEZsYWdzICYgRl9IT1NUX1hGRVJfQUNUKQogCi0gICAgICAgICAgICAgICBob3N0RGF0YVhmZXJBYm9ydChwX3BvcnQscF9jYXJkLCBwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCKTsKKyAgICAgICAgICAgICAgIEZQVF9ob3N0RGF0YVhmZXJBYm9ydChwX3BvcnQscF9jYXJkLCBwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCKTsKICAgICAgICAgICAgICAgIH0KIAogCiAgICAgICAgICAgIERJU0FCTEVfQVVUTyhwX3BvcnQpOwogCi0gICAgICAgICAgIHNyZXNiKHBfcG9ydCxwX2NhcmQpOworICAgICAgICAgICBGUFRfc3Jlc2IocF9wb3J0LHBfY2FyZCk7CiAKICAgICAgICAgICAgd2hpbGUoUkRfSEFSUE9PTihwX3BvcnQraHBfc2NzaWN0cmxfMCkgJiBTQ1NJX1JTVCkge30KIApAQCAtNTAyOSwxMiArMjYwMiwxMiBAQAogCQkJCQlTY2FtRmxnID0gcEN1cnJOdlJhbS0+bmlTY2FtQ29uZjsKIAkJCQl9CiAJCQkJZWxzZXsKLQkJCQkgICBTY2FtRmxnID0gKFVDSEFSKSB1dGlsRUVSZWFkKHBfcG9ydCwgU0NBTV9DT05GSUcvMik7CisJCQkJICAgU2NhbUZsZyA9IChVQ0hBUikgRlBUX3V0aWxFRVJlYWQocF9wb3J0LCBTQ0FNX0NPTkZJRy8yKTsKIAkJCQl9CiAKLSAgICAgICAgICAgWGJvd0luaXQocF9wb3J0LCBTY2FtRmxnKTsKKyAgICAgICAgICAgRlBUX1hib3dJbml0KHBfcG9ydCwgU2NhbUZsZyk7CiAKLSAgICAgICAgICAgICAgIHNjaW5pKHBfY2FyZCwgcEN1cnJDYXJkLT5vdXJJZCwgMCk7CisgICAgICAgICAgICAgICBGUFRfc2NpbmkocF9jYXJkLCBwQ3VyckNhcmQtPm91cklkLCAwKTsKIAogICAgICAgICAgICByZXR1cm4oMHhGRik7CiAgICAgICAgICB9CkBAIC01MDQ0LDM0ICsyNjE3LDggQEAKIAogICAgICAgV1JXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRzdGF0KSwgRklGTyk7CiAKLSNpZiBkZWZpbmVkKEhBUlBfUkVWWCkKLQotICAgICAgZm9yICh0aW1lcj0weDAwRkZGRkZGTDsgdGltZXIgIT0gMHgwMDAwMDAwMEw7IHRpbWVyLS0pIHsKLQotICAgICAgICAgaWYgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3hmZXJzdGF0KSAmIEZJRk9fRU1QVFkpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgaWYgKFJEV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCkpICYgQlVTX0ZSRUUpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLQotCi0gICAgICBpZiAoIChSRF9IQVJQT09OKHBfcG9ydCtocF94ZmVyc3RhdCkgJiBGSUZPX0VNUFRZKSAmJgotICAgICAgICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfZmlmb3JlYWQpICE9Ci0gICAgICAgICAgICBSRF9IQVJQT09OKHBfcG9ydCtocF9maWZvd3JpdGUpKSAmJgotICAgICAgICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfeGZlcmNudF8wKSkKLSAgICAgICAgICkKLQotICAgICAgICAgICAgV1JfSEFSUE9PTigocF9wb3J0K2hwX3hmZXJzdGF0KSwgMHgwMSk7Ci0KLS8qICAgICAgZWxzZQotICovCi0vKiAgICAgICAgIHN4ZnJwKHBfcG9ydCxwX2NhcmQpOwotICovCi0jZWxzZQogICAgICAgaWYgKHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IgIT0gTlVMTCkKLSAgICAgICAgIHN4ZnJwKHBfcG9ydCxwX2NhcmQpOwotI2VuZGlmCisgICAgICAgICBGUFRfc3hmcnAocF9wb3J0LHBfY2FyZCk7CiAgICAgICB9CiAKICAgIGVsc2UgaWYgKHBfaW50ICYgVElNRU9VVCkKQEAgLTUwODUsMTIgKzI2MzIsMTIgQEAKICAgICAgIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX1NFTEVDVElPTl9USU1FT1VUOwogCiAKLQkJY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5UYXJnSURdOworCQljdXJyVGFyX0luZm8gPSAmRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5UYXJnSURdOwogCQlpZigocEN1cnJDYXJkLT5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgogCQkJKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQotCSAgICAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5MdW5dID0gRkFMU0U7CisJICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W3BDdXJyQ2FyZC0+Y3VycmVudFNDQ0ItPkx1bl0gPSAwOwogCQllbHNlCi0JICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5WzBdID0gRkFMU0U7CisJICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5WzBdID0gMDsKIAogCiAgICAgICBpZiAoY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICYgRUVfU1lOQ19NQVNLKQpAQCAtNTEwNCwyNiArMjY1MSwyMyBAQAogICAgICAgICAgY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJj0gflRBUl9XSURFX01BU0s7CiAgICAgICAgICB9CiAKLSAgICAgIHNzc3luY3YocF9wb3J0LCBwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5UYXJnSUQsIE5BUlJPV19TQ1NJLGN1cnJUYXJfSW5mbyk7CisgICAgICBGUFRfc3NzeW5jdihwX3BvcnQsIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0ItPlRhcmdJRCwgTkFSUk9XX1NDU0ksY3VyclRhcl9JbmZvKTsKIAotICAgICAgcXVldWVDbWRDb21wbGV0ZShwQ3VyckNhcmQsIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IsIHBfY2FyZCk7CisgICAgICBGUFRfcXVldWVDbWRDb21wbGV0ZShwQ3VyckNhcmQsIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IsIHBfY2FyZCk7CiAKICAgICAgIH0KIAotI2lmIGRlZmluZWQoU0NBTV9MRVZfMikKLQogICAgZWxzZSBpZiAocF9pbnQgJiBTQ0FNX1NFTCkKICAgICAgIHsKIAotICAgICAgc2NhcmIocF9wb3J0LExFVkVMMl9UQVIpOwotICAgICAgc2NzZWwocF9wb3J0KTsKLSAgICAgIHNjYXNpZChwX2NhcmQsIHBfcG9ydCk7CisgICAgICBGUFRfc2NhcmIocF9wb3J0LExFVkVMMl9UQVIpOworICAgICAgRlBUX3Njc2VsKHBfcG9ydCk7CisgICAgICBGUFRfc2Nhc2lkKHBfY2FyZCwgcF9wb3J0KTsKIAotICAgICAgc2NidXNmKHBfcG9ydCk7CisgICAgICBGUFRfc2NidXNmKHBfcG9ydCk7CiAKICAgICAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCksIFNDQU1fU0VMKTsKICAgICAgIH0KLSNlbmRpZgogCiAgICByZXR1cm4oMHgwMCk7CiB9CkBAIC01MTMxLDEyNiArMjY3NSwyNSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBTY2NiTWdyX3Njc2lfcmVzZXQKLSAqCi0gKiBEZXNjcmlwdGlvbjogQSBTQ1NJIGJ1cyByZXNldCB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgYWxsIG91dHN0YW5kaW5nCi0gKiAgICAgICAgICAgICAgU2NjYnMgd2lsbCBiZSByZXR1cm5lZCB2aWEgdGhlIGNhbGxiYWNrLgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotdm9pZCBTY2NiTWdyX3Njc2lfcmVzZXQoQ0FSRF9IQU5ETEUgcEN1cnJDYXJkKQotI2Vsc2UKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgU2NjYk1ncl9zY3NpX3Jlc2V0KFVTSE9SVCBwQ3VyckNhcmQpCi0jZWxzZQotdm9pZCBTY2NiTWdyX3Njc2lfcmVzZXQoVUxPTkcgcEN1cnJDYXJkKQotI2VuZGlmCi0jZW5kaWYKLXsKLSAgIFVDSEFSIHRoaXNDYXJkOwotCi0gICB0aGlzQ2FyZCA9ICgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmNhcmRJbmRleDsKLQotICAgbU9TX0xvY2soKFBTQ0NCY2FyZClwQ3VyckNhcmQpOwotCi0gICBpZiAoKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmdsb2JhbEZsYWdzICYgRl9HUkVFTl9QQykKLSAgICAgIHsKLSAgICAgIFdSX0hBUlBPT04oKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmlvUG9ydCtocF9jbGtjdHJsXzAsIENMS0NUUkxfREVGQVVMVCk7Ci0gICAgICBXUl9IQVJQT09OKCgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5pb1BvcnQraHBfc3lzX2N0cmwsIDB4MDApOwotICAgICAgfQotCi0gICBzcmVzYigoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5pb1BvcnQsdGhpc0NhcmQpOwotCi0gICBpZiAoUkRfSEFSUE9PTigoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5pb1BvcnQraHBfZXh0X3N0YXR1cykgJiBCTV9DTURfQlVTWSkKLSAgICAgIHsKLSAgICAgIFdSX0hBUlBPT04oKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmlvUG9ydCtocF9wYWdlX2N0cmwsCi0gICAgICAgICAoUkRfSEFSUE9PTigoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+aW9Qb3J0K2hwX3BhZ2VfY3RybCkKLSAgICAgICAgICYgflNDQVRURVJfRU4pKTsKLQotICAgICAgV1JfSEFSUE9PTigoKFBTQ0NCY2FyZCkgcEN1cnJDYXJkKS0+aW9Qb3J0K2hwX3NnX2FkZHIsMHgwMCk7Ci0KLSAgICAgICgoUFNDQ0JjYXJkKSBwQ3VyckNhcmQpLT5nbG9iYWxGbGFncyAmPSB+Rl9IT1NUX1hGRVJfQUNUOwotICAgICAgYnVzTXN0clRpbWVPdXQoKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmlvUG9ydCk7Ci0KLSAgICAgIFdSX0hBUlBPT04oKChQU0NDQmNhcmQpIHBDdXJyQ2FyZCktPmlvUG9ydCtocF9pbnRfbWFzaywKLSAgICAgICAgIChJTlRfQ01EX0NPTVBMIHwgU0NTSV9JTlRFUlJVUFQpKTsKLSAgICAgIH0KLQotLyoKLSAgICAgIGlmICh1dGlsRUVSZWFkKCgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPmlvUG9ydCwgKFNDQU1fQ09ORklHLzIpKQotICAgICAgICAgICAgJiBTQ0FNX0VOQUJMRUQpCi0qLwotICAgICAgICAgc2NpbmkodGhpc0NhcmQsICgoUFNDQ0JjYXJkKXBDdXJyQ2FyZCktPm91cklkLCAwKTsKLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0gICAoKFBTQ0NCY2FyZClwQ3VyckNhcmQpLT5jYXJkSW5mby0+YWlfQUVOX3JvdXRpbmUoMHgwMSxwQ3VyckNhcmQsMCwwLDAsMCk7Ci0jZW5kaWYKLQotICAgbU9TX1VuTG9jaygoUFNDQ0JjYXJkKXBDdXJyQ2FyZCk7Ci19Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogU2NjYk1ncl90aW1lcl9leHBpcmVkCi0gKgotICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gYWxsb3cgbWUgdG8ga2lsbCBteSBvd24gam9iIHRoYXQgaGFzIG5vdAotICogICAgICAgICAgICAgIHlldCBjb21wbGV0ZWQsIGFuZCBoYXMgY2F1c2UgYSB0aW1lb3V0IHRvIG9jY3VyLiAgVGhpcwotICogICAgICAgICAgICAgIHRpbWVvdXQgaGFzIGNhdXNlZCB0aGUgdXBwZXIgbGV2ZWwgZHJpdmVyIHRvIGNhbGwgdGhpcwotICogICAgICAgICAgICAgIGZ1bmN0aW9uLgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi12b2lkIFNjY2JNZ3JfdGltZXJfZXhwaXJlZChDQVJEX0hBTkRMRSBwQ3VyckNhcmQpCi0jZWxzZQotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBTY2NiTWdyX3RpbWVyX2V4cGlyZWQoVVNIT1JUIHBDdXJyQ2FyZCkKLSNlbHNlCi12b2lkIFNjY2JNZ3JfdGltZXJfZXhwaXJlZChVTE9ORyBwQ3VyckNhcmQpCi0jZW5kaWYKLSNlbmRpZgotewotfQotCi0jaWYgZGVmaW5lZChET1MpCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIEZ1bmN0aW9uOiBTY2NiTWdyX3N0YXR1cwotICoKLSAqIERlc2NyaXB0aW9uOiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIG51bWJlciBvZiBvdXRzdGFuZGluZyBTQ0NCJ3MuCi0gKiAgICAgICAgICAgICAgVGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgRE9TIGVudmlyb21lbnQsIHdoaWNoIG5lZWRzIHRoaXMKLSAqICAgICAgICAgICAgICB0byBoZWxwIHRoZW0ga2VlcCBwcm90ZWN0ZWQgYW5kIHJlYWwgbW9kZSBjb21tYW5kcyBzdGFpZ2h0LgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotVVNIT1JUIFNjY2JNZ3Jfc3RhdHVzKFVTSE9SVCBwQ3VyckNhcmQpCi17Ci0gICByZXR1cm4oQkxfQ2FyZFtwQ3VyckNhcmRdLmNtZENvdW50ZXIpOwotfQotI2VuZGlmCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgogICogRnVuY3Rpb246IFNjY2JNZ3JUYWJsZUluaXQKICAqCiAgKiBEZXNjcmlwdGlvbjogSW5pdGlhbGl6ZSBhbGwgU2NjYiBtYW5hZ2VyIGRhdGEgc3RydWN0dXJlcy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXZvaWQgU2NjYk1nclRhYmxlSW5pdEFsbCgpCitzdGF0aWMgdm9pZCBGUFRfU2NjYk1nclRhYmxlSW5pdEFsbCgpCiB7CiAgICBVQ0hBUiB0aGlzQ2FyZDsKIAogICAgZm9yICh0aGlzQ2FyZCA9IDA7IHRoaXNDYXJkIDwgTUFYX0NBUkRTOyB0aGlzQ2FyZCsrKQogICAgICAgewotICAgICAgU2NjYk1nclRhYmxlSW5pdENhcmQoJkJMX0NhcmRbdGhpc0NhcmRdLHRoaXNDYXJkKTsKKyAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0Q2FyZCgmRlBUX0JMX0NhcmRbdGhpc0NhcmRdLHRoaXNDYXJkKTsKIAotICAgICAgQkxfQ2FyZFt0aGlzQ2FyZF0uaW9Qb3J0ICAgICAgPSAweDAwOwotICAgICAgQkxfQ2FyZFt0aGlzQ2FyZF0uY2FyZEluZm8gICAgPSBOVUxMOwotICAgICAgQkxfQ2FyZFt0aGlzQ2FyZF0uY2FyZEluZGV4ICAgPSAweEZGOwotICAgICAgQkxfQ2FyZFt0aGlzQ2FyZF0ub3VySWQgICAgICAgPSAweDAwOwotCQlCTF9DYXJkW3RoaXNDYXJkXS5wTnZSYW1JbmZvCT0gTlVMTDsKKyAgICAgIEZQVF9CTF9DYXJkW3RoaXNDYXJkXS5pb1BvcnQgICAgICA9IDB4MDA7CisgICAgICBGUFRfQkxfQ2FyZFt0aGlzQ2FyZF0uY2FyZEluZm8gICAgPSBOVUxMOworICAgICAgRlBUX0JMX0NhcmRbdGhpc0NhcmRdLmNhcmRJbmRleCAgID0gMHhGRjsKKyAgICAgIEZQVF9CTF9DYXJkW3RoaXNDYXJkXS5vdXJJZCAgICAgICA9IDB4MDA7CisJCUZQVF9CTF9DYXJkW3RoaXNDYXJkXS5wTnZSYW1JbmZvCT0gTlVMTDsKICAgICAgIH0KIH0KIApAQCAtNTI2MywyMCArMjcwNiwyMCBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdm9pZCBTY2NiTWdyVGFibGVJbml0Q2FyZChQU0NDQmNhcmQgcEN1cnJDYXJkLCBVQ0hBUiBwX2NhcmQpCitzdGF0aWMgdm9pZCBGUFRfU2NjYk1nclRhYmxlSW5pdENhcmQoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgVUNIQVIgcF9jYXJkKQogewogICAgVUNIQVIgc2NzaUlELCBxdGFnOwogCiAJZm9yIChxdGFnID0gMDsgcXRhZyA8IFFVRVVFX0RFUFRIOyBxdGFnKyspCiAJewotCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddID0gTlVMTDsKKwkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10gPSBOVUxMOwogCX0KIAogICAgZm9yIChzY3NpSUQgPSAwOyBzY3NpSUQgPCBNQVhfU0NTSV9UQVI7IHNjc2lJRCsrKQogICAgICAgewotICAgICAgc2NjYk1nclRibFtwX2NhcmRdW3Njc2lJRF0uVGFyU3RhdHVzID0gMDsKLSAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhckVFVmFsdWUgPSAwOwotICAgICAgU2NjYk1nclRhYmxlSW5pdFRhcmdldChwX2NhcmQsIHNjc2lJRCk7CisgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Njc2lJRF0uVGFyU3RhdHVzID0gMDsKKyAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bc2NzaUlEXS5UYXJFRVZhbHVlID0gMDsKKyAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCwgc2NzaUlEKTsKICAgICAgIH0KIAogICAgcEN1cnJDYXJkLT5zY2FuSW5kZXggPSAweDAwOwpAQCAtNTI5OCwxMyArMjc0MSwxMyBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdm9pZCBTY2NiTWdyVGFibGVJbml0VGFyZ2V0KFVDSEFSIHBfY2FyZCwgVUNIQVIgdGFyZ2V0KQorc3RhdGljIHZvaWQgRlBUX1NjY2JNZ3JUYWJsZUluaXRUYXJnZXQoVUNIQVIgcF9jYXJkLCBVQ0hBUiB0YXJnZXQpCiB7CiAKIAlVQ0hBUiBsdW4sIHF0YWc7CiAJUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwogCi0JY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVt0YXJnZXRdOworCWN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3RhcmdldF07CiAKIAljdXJyVGFyX0luZm8tPlRhclNlbFFfQ250ID0gMDsKIAljdXJyVGFyX0luZm8tPlRhclN5bmNDdHJsID0gMDsKQEAgLTUzMTIsMTYwICsyNzU1LDI4IEBACiAJY3VyclRhcl9JbmZvLT5UYXJTZWxRX0hlYWQgPSBOVUxMOwogCWN1cnJUYXJfSW5mby0+VGFyU2VsUV9UYWlsID0gTlVMTDsKIAljdXJyVGFyX0luZm8tPlRhclRhZ1FfQ250ID0gMDsKLQljdXJyVGFyX0luZm8tPlRhckxVTl9DQSA9IEZBTFNFOworCWN1cnJUYXJfSW5mby0+VGFyTFVOX0NBID0gMDsKIAogCiAJZm9yIChsdW4gPSAwOyBsdW4gPCBNQVhfTFVOOyBsdW4rKykKIAl7Ci0JCWN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gRkFMU0U7CisJCWN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gMDsKIAkJY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbbHVuXSA9IDA7CiAJfQogCiAJZm9yIChxdGFnID0gMDsgcXRhZyA8IFFVRVVFX0RFUFRIOyBxdGFnKyspCiAJewotCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddICE9IE5VTEwpCisJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddICE9IE5VTEwpCiAJCXsKLQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10tPlRhcmdJRCA9PSB0YXJnZXQpCisJCQlpZihGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXS0+VGFyZ0lEID09IHRhcmdldCkKIAkJCXsKLQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddID0gTlVMTDsKLQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOworCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddID0gTlVMTDsKKwkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKIAkJCX0KIAkJfQogCX0KIH0KIAotI2lmIGRlZmluZWQoQlVHQlVHKQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFNhdmUgdGhlIGN1cnJlbnQgYnl0ZSBpbiB0aGUgZGVidWcgYXJyYXkKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotCi12b2lkIERlYnVnX0xvYWQoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX2J1Z19kYXRhKQotewotICAgZGVidWdfaW50W3BfY2FyZF1bZGVidWdfaW5kZXhbcF9jYXJkXV0gPSBwX2J1Z19kYXRhOwotICAgZGVidWdfaW5kZXhbcF9jYXJkXSsrOwotCi0gICBpZiAoZGVidWdfaW5kZXhbcF9jYXJkXSA9PSBkZWJ1Z19zaXplKQotCi0gICAgICBkZWJ1Z19pbmRleFtwX2NhcmRdID0gMDsKLX0KLQotI2VuZGlmCi0jaWRlbnQgIiRJZDogc2NjYl9kYXQuYyAxLjEwIDE5OTcvMDIvMjIgMDM6MTY6MDIgYXdpbiBFeHAgJCIKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqCi0gKiAgIENvcHlyaWdodCAxOTk1LTE5OTYgYnkgTXlsZXggQ29ycG9yYXRpb24uICBBbGwgUmlnaHRzIFJlc2VydmVkCi0gKgotICogICBUaGlzIGZpbGUgaXMgYXZhaWxhYmxlIHVuZGVyIGJvdGggdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFuZCBhIEJTRC1zdHlsZSBjb3B5cmlnaHQ7IHNlZSBMSUNFTlNFLkZsYXNoUG9pbnQgZm9yIGRldGFpbHMuCi0gKgotICogICAkV29ya2ZpbGU6ICAgc2NjYl9kYXQuYyAgJAotICoKLSAqICAgRGVzY3JpcHRpb246ICBGdW5jdGlvbnMgcmVsYXRpbmcgdG8gaGFuZGxpbmcgb2YgdGhlIFNDQ0IgaW50ZXJmYWNlIAotICogICAgICAgICAgICAgICAgIGJldHdlZW4gdGhlIGRldmljZSBkcml2ZXIgYW5kIHRoZSBIQVJQT09OLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDIvMjIgMDM6MTY6MDIgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjEwICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiNpbmNsdWRlIDxnbG9iYWxzLmg+Ki8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JLyojaW5jbHVkZSA8YnVkaS5oPiovCi0jZW5kaWYKLQotLyojaW5jbHVkZSA8c2NjYm1nci5oPiovCi0vKiNpbmNsdWRlIDxibHgzMC5oPiovCi0vKiNpbmNsdWRlIDx0YXJnZXQuaD4qLwotLyojaW5jbHVkZSA8aGFycG9vbi5oPiovCi0KLS8qCi0qKiAgSU1QT1JUQU5UIE5PVEUhISEKLSoqCi0qKiAgWW91IE1VU1QgcHJlYXNzaWduIGFsbCBkYXRhIHRvIGEgdmFsaWQgdmFsdWUgb3IgemVyby4gIFRoaXMgaXMKLSoqICByZXF1aXJlZCBkdWUgdG8gdGhlIE1TIGNvbXBpbGVyIGJ1ZyB1bmRlciBPUy8yIGFuZCBTb2xhcmlzIFJlYWwtTW9kZQotKiogIGRyaXZlciBlbnZpcm9ubWVudC4KLSovCi0KLQotU0NDQk1HUl9UQVJfSU5GTyBzY2NiTWdyVGJsW01BWF9DQVJEU11bTUFYX1NDU0lfVEFSXSA9IHsgeyB7IDAgfSB9IH07Ci1TQ0NCQ0FSRCBCTF9DYXJkW01BWF9DQVJEU10gPSB7IHsgMCB9IH07Ci1TQ0NCU0NBTV9JTkZPIHNjYW1JbmZvW01BWF9TQ1NJX1RBUl0gPSB7IHsgeyAwIH0gfSB9OwotTlZSQU1JTkZPIG52UmFtSW5mb1tNQVhfTUJfQ0FSRFNdID0geyB7IDAgfSB9OwotCi0KLSNpZiBkZWZpbmVkKE9TMikKLXZvaWQgKGZhciAqc19QaGFzZVRibFs4XSkgKFVMT05HLCBVQ0hBUikgPSB7IDAgfTsKLVVDSEFSIHRlbXBfaWRfc3RyaW5nW0lEX1NUUklOR19MRU5HVEhdID0geyAwIH07Ci0jZWxpZiBkZWZpbmVkKFNPTEFSSVNfUkVBTF9NT0RFKSB8fCBkZWZpbmVkKF9fU1REQ19fKQotdm9pZCAoKnNfUGhhc2VUYmxbOF0pIChVTE9ORywgVUNIQVIpID0geyAwIH07Ci0jZWxzZQotdm9pZCAoKnNfUGhhc2VUYmxbOF0pICgpOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIGZpcnN0X3RpbWUgPSAwOwotI2VuZGlmCi0KLVVDSEFSIG1iQ2FyZHMgPSAwOwotVUNIQVIgc2NhbUhBU3RyaW5nW10gPSB7MHg2MywgMHgwNywgJ0InLCAnVScsICdTJywgJ0wnLCAnTycsICdHJywgJ0knLCAnQycsIFwKLQkJCQkJCQkJJyAnLCAnQicsICdUJywgJy0nLCAnOScsICczJywgJzAnLCBcCi0JCQkJCQkJCTB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIFwKLQkJCQkJCQkJMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMH07Ci0KLVVTSE9SVCBkZWZhdWx0X2ludGVuYSA9IDA7Ci0KLSNpZiBkZWZpbmVkKEJVR0JVRykKLVVDSEFSICAgIGRlYnVnX2ludFtNQVhfQ0FSRFNdW2RlYnVnX3NpemVdID0geyAwIH07Ci1VQ0hBUiAgICBkZWJ1Z19pbmRleFtNQVhfQ0FSRFNdID0geyAwIH07Ci1VQ0hBUiAgICByZXNlcnZlZF8xWzNdID0geyAwIH07Ci0jZW5kaWYKLSNpZGVudCAiJElkOiBzY3NpLmMgMS4yMyAxOTk3LzA3LzA5IDIxOjQyOjU0IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBzY3NpLmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgRnVuY3Rpb25zIGZvciBoYW5kbGluZyBTQ1NJIGJ1cyBmdW5jdGlvbnMgc3VjaCBhcwotICogICAgICAgICAgICAgICAgIHNlbGVjdGlvbi9yZXNlbGVjdGlvbiwgc3luYyBuZWdvdGlhdGlvbiwgbWVzc2FnZS1pbgotICogICAgICAgICAgICAgICAgIGRlY29kaW5nLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDcvMDkgMjE6NDI6NTQgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjIzICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiNpbmNsdWRlIDxnbG9iYWxzLmg+Ki8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JLyojaW5jbHVkZSA8YnVkaS5oPiovCi0jZW5kaWYKLQotLyojaW5jbHVkZSA8c2NjYm1nci5oPiovCi0vKiNpbmNsdWRlIDxibHgzMC5oPiovCi0vKiNpbmNsdWRlIDx0YXJnZXQuaD4qLwotLyojaW5jbHVkZSA8c2NzaTIuaD4qLwotLyojaW5jbHVkZSA8ZWVwcm9tLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwotCi0KLS8qCi1leHRlcm4gU0NDQkNBUkQgQkxfQ2FyZFtNQVhfQ0FSRFNdOwotZXh0ZXJuIFNDQ0JNR1JfVEFSX0lORk8gc2NjYk1nclRibFtNQVhfQ0FSRFNdW01BWF9TQ1NJX1RBUl07Ci0jaWYgZGVmaW5lZChCVUdCVUcpCi12b2lkIERlYnVnX0xvYWQoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX2J1Z19kYXRhKTsKLSNlbmRpZgotKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCkBAIC01NDc2LDExICsyNzg3LDcgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIHNmbShVU0hPUlQgcG9ydCwgUFNDQ0IgcEN1cnJTQ0NCKQotI2Vsc2UKLVVDSEFSIHNmbShVTE9ORyBwb3J0LCBQU0NDQiBwQ3VyclNDQ0IpCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2ZtKFVMT05HIHBvcnQsIFBTQ0NCIHBDdXJyU0NDQikKIHsKIAlVQ0hBUiBtZXNzYWdlOwogCVVTSE9SVCBUaW1lT3V0TG9vcDsKQEAgLTU1NDcsNDIgKzI4NTQsMjcgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc3NlbAorICogRnVuY3Rpb246IEZQVF9zc2VsCiAgKgogICogRGVzY3JpcHRpb246IExvYWQgdXAgYXV0b21hdGlvbiBhbmQgc2VsZWN0IHRhcmdldCBkZXZpY2UuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHNzZWwoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHNzZWwoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc3NlbChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCiB7CiAKLSNpZiBkZWZpbmVkKERPUykKICAgIFVDSEFSIGF1dG9fbG9hZGVkLCBpLCB0YXJnZXQsICp0aGVDQ0I7Ci0jZWxpZiBkZWZpbmVkKE9TMikKLSAgIFVDSEFSIGF1dG9fbG9hZGVkLCBpLCB0YXJnZXQ7Ci0gICBVQ0hBUiBmYXIgKnRoZUNDQjsKLSNlbHNlCi0gICBVQ0hBUiBhdXRvX2xvYWRlZCwgaSwgdGFyZ2V0LCAqdGhlQ0NCOwotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKERPUykKLSAgIFVTSE9SVCBjZGJfcmVnOwotI2Vsc2UKICAgIFVMT05HIGNkYl9yZWc7Ci0jZW5kaWYKICAgIFBTQ0NCY2FyZCBDdXJyQ2FyZDsKICAgIFBTQ0NCIGN1cnJTQ0NCOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwogICAgVUNIQVIgbGFzdFRhZywgbHVuOwogCi0gICBDdXJyQ2FyZCA9ICZCTF9DYXJkW3BfY2FyZF07CisgICBDdXJyQ2FyZCA9ICZGUFRfQkxfQ2FyZFtwX2NhcmRdOwogICAgY3VyclNDQ0IgPSBDdXJyQ2FyZC0+Y3VycmVudFNDQ0I7CiAgICB0YXJnZXQgPSBjdXJyU0NDQi0+VGFyZ0lEOwotICAgY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVt0YXJnZXRdOworICAgY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bdGFyZ2V0XTsKICAgIGxhc3RUYWcgPSBDdXJyQ2FyZC0+dGFnUV9Mc3Q7CiAKICAgIEFSQU1fQUNDRVNTKHBvcnQpOwpAQCAtNTU5OSw2MCArMjg5MSw1MyBAQAogCQlsdW4gPSAwOwogCiAKLSNpZiBkZWZpbmVkKERPUykKLSAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gVFJVRTsKLQotI2Vsc2UKLQogICAgaWYgKEN1cnJDYXJkLT5nbG9iYWxGbGFncyAmIEZfVEFHX1NUQVJURUQpCiAgICAgICB7CiAgICAgICBpZiAoIShjdXJyU0NDQi0+Q29udHJvbEJ5dGUgJiBGX1VTRV9DTURfUSkpCiAgICAgICAgICB7Ci0gICAgICAJaWYgKChjdXJyVGFyX0luZm8tPlRhckxVTl9DQSA9PSBGQUxTRSkKKyAgICAgIAlpZiAoKGN1cnJUYXJfSW5mby0+VGFyTFVOX0NBID09IDApCiAgICAgICAJICAgICYmICgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykKICAgICAgIAkgICAgPT0gVEFHX1FfVFJZSU5HKSkKICAgICAgICAgICAgIHsKIAogCSAgICAgICAgIGlmIChjdXJyVGFyX0luZm8tPlRhclRhZ1FfQ250ICE9MCkKICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgIAkJICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOwotICAgICAgICAgICAgCQlxdWV1ZVNlbGVjdEZhaWwoQ3VyckNhcmQscF9jYXJkKTsKKyAgICAgICAgIAkJICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSAxOworICAgICAgICAgICAgCQlGUFRfcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CiAJCQkJCSAgIFNHUkFNX0FDQ0VTUyhwb3J0KTsKICAgICAgICAgIAkJICAgcmV0dXJuOwogICAgICAgICAgCQkgICB9CiAKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgCQkgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gVFJVRTsKKyAgICAgICAgIAkJICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CiAgICAgICAgICAJCSAgfQogCiAgICAJICAgICAgfSAgLypFbmQgbm9uLXRhZ2dlZCAqLwogCiAJICAgICAgZWxzZSB7Ci0JICAgICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOworCSAgICAgICAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gMTsKIAkgICAgICAgICB9CiAKIAkgICAgICB9ICAvKiFVc2UgY21kIFEgVGFnZ2VkICovCiAKIAkgICBlbHNlIHsKLSAgIAkgICAgIGlmIChjdXJyVGFyX0luZm8tPlRhckxVTl9DQSA9PSBUUlVFKQorICAgCSAgICAgaWYgKGN1cnJUYXJfSW5mby0+VGFyTFVOX0NBID09IDEpCiAgICAgICAgICAgICAgICB7Ci0gICAgICAJICAgICAgcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CisgICAgICAJICAgICAgRlBUX3F1ZXVlU2VsZWN0RmFpbChDdXJyQ2FyZCxwX2NhcmQpOwogCQkJCSAgIFNHUkFNX0FDQ0VTUyhwb3J0KTsKICAgICAgIAkgICAgICByZXR1cm47CiAJICAgICAgICAgICAgfQogCi0JICAgICAgICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IFRSVUU7CisJICAgICAgICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CiAKICAgIAkgICAgIH0gIC8qZWxzZSB1c2UgY21kIFEgdGFnZ2VkICovCiAKICAgICAgIH0gIC8qaWYgZ2xvYiB0YWdnZWQgc3RhcnRlZCAqLwogCiAgICBlbHNlIHsKLSAgICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOworICAgICAgICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CiAgICAgICAgIH0KIAotI2VuZGlmIC8qIERPUyAqLwotCiAKIAogCWlmKCgoKEN1cnJDYXJkLT5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJiAKQEAgLTU2NjEsOCArMjk0Niw4IEBACiAJewogCQlpZihDdXJyQ2FyZC0+ZGlzY1FDb3VudCA+PSBRVUVVRV9ERVBUSCkKIAkJewotCQkJY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOwotCQkJcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CisJCQljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CisJCQlGUFRfcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CiAJCQlTR1JBTV9BQ0NFU1MocG9ydCk7CiAJCQlyZXR1cm47CiAJCX0KQEAgLTU2ODAsOCArMjk2NSw4IEBACiAJCX0KIAkJaWYoaSA9PSBRVUVVRV9ERVBUSCkKIAkJewotCQkJY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOwotCQkJcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CisJCQljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CisJCQlGUFRfcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CiAJCQlTR1JBTV9BQ0NFU1MocG9ydCk7CiAJCQlyZXR1cm47CiAJCX0KQEAgLTU2ODksNyArMjk3NCw3IEBACiAKIAogCi0gICBhdXRvX2xvYWRlZCA9IEZBTFNFOworICAgYXV0b19sb2FkZWQgPSAwOwogCiAgICBXUl9IQVJQT09OKHBvcnQraHBfc2VsZWN0X2lkLCB0YXJnZXQpOwogICAgV1JfSEFSUE9PTihwb3J0K2hwX2dwX3JlZ18zLCB0YXJnZXQpOyAgLyogVXNlIGJ5IG5ldyBhdXRvbWF0aW9uIGxvZ2ljICovCkBAIC01NzAzLDcgKzI5ODgsNyBAQAogICAgICAgY3VyclNDQ0ItPlNjY2Jfc2NzaW1zZyA9IFNNREVWX1JFU0VUOwogCiAgICAgICBXUl9IQVJQT09OKHBvcnQraHBfYXV0b3N0YXJ0XzMsIChTRUxFQ1QrU0VMQ0hLX1NUUlQpKTsKLSAgICAgIGF1dG9fbG9hZGVkID0gVFJVRTsKKyAgICAgIGF1dG9fbG9hZGVkID0gMTsKICAgICAgIGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID0gU0VMRUNUX0JEUl9TVDsKIAogICAgICAgaWYgKGN1cnJUYXJfSW5mby0+VGFyRUVWYWx1ZSAmIEVFX1NZTkNfTUFTSykKQEAgLTU3MTIsMTYgKzI5OTcsMTMgQEAKIAkgICAgICBjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmPSB+VEFSX1NZTkNfTUFTSzsKIAkgICAgICB9CiAKLSNpZiBkZWZpbmVkKFdJREVfU0NTSSkKLQogICAgICAgaWYgKGN1cnJUYXJfSW5mby0+VGFyRUVWYWx1ZSAmIEVFX1dJREVfU0NTSSkKICAgICAgICAgIHsKICAgICAgIAljdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmPSB+VEFSX1dJREVfTUFTSzsKICAgICAgIAl9Ci0jZW5kaWYKIAotICAgICAgc3NzeW5jdihwb3J0LCB0YXJnZXQsIE5BUlJPV19TQ1NJLGN1cnJUYXJfSW5mbyk7Ci0gICAgICBTY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCwgdGFyZ2V0KTsKKyAgICAgIEZQVF9zc3N5bmN2KHBvcnQsIHRhcmdldCwgTkFSUk9XX1NDU0ksY3VyclRhcl9JbmZvKTsKKyAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCwgdGFyZ2V0KTsKIAogICAgICAgfQogCkBAIC01NzQwLDI0ICszMDIyLDE4IEBACiAJCQlXUldfSEFSUE9PTigocG9ydCtTWU5DX01TR1MrNCksIChCUkhfT1ArQUxXQVlTK05QICkpOwogCiAJCQlXUl9IQVJQT09OKHBvcnQraHBfYXV0b3N0YXJ0XzMsIChTRUxFQ1QrU0VMQ0hLX1NUUlQpKTsKLQkJCWF1dG9fbG9hZGVkID0gVFJVRTsKKwkJCWF1dG9fbG9hZGVkID0gMTsKIAkJCiAJCX0KIAotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQotCi0KICAgIGVsc2UgaWYgKCEoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBXSURFX05FR09DSUFURUQpKSAgewotICAgICAgYXV0b19sb2FkZWQgPSBzaXdpZG4ocG9ydCxwX2NhcmQpOworICAgICAgYXV0b19sb2FkZWQgPSBGUFRfc2l3aWRuKHBvcnQscF9jYXJkKTsKICAgICAgIGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID0gU0VMRUNUX1dOX1NUOwogICAgICAgfQogCi0jZW5kaWYKLQotCiAgICBlbHNlIGlmICghKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmIFRBUl9TWU5DX01BU0spCiAgICAgICA9PSBTWU5DX1NVUFBPUlRFRCkpICB7Ci0gICAgICBhdXRvX2xvYWRlZCA9IHNpc3luY24ocG9ydCxwX2NhcmQsIEZBTFNFKTsKKyAgICAgIGF1dG9fbG9hZGVkID0gRlBUX3Npc3luY24ocG9ydCxwX2NhcmQsIDApOwogICAgICAgY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPSBTRUxFQ1RfU05fU1Q7CiAgICAgICB9CiAKQEAgLTU3NjUsNyArMzA0MSw2IEBACiAgICBpZiAoIWF1dG9fbG9hZGVkKQogICAgICAgewogCi0jaWYgIWRlZmluZWQoRE9TKQogICAgICAgaWYgKGN1cnJTQ0NCLT5Db250cm9sQnl0ZSAmIEZfVVNFX0NNRF9RKQogICAgICAgICAgewogCkBAIC01Nzg5LDcgKzMwNjQsNyBAQAogICAgICAgICAgICAgICAgdGhlIHdoZWVscyBmYWxsIG9mZi4gKi8KICAgICAgICAgICAgIGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID0gU0VMRUNUX1NUOwogCi0JICAgICAgICAgY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOworCSAgICAgICAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVtsdW5dID0gMTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgZWxzZQpAQCAtNTgxOCw4ICszMDkzLDggQEAKIAogICAgICAgICAgICAgaWYgKCBpID09IFFVRVVFX0RFUFRIICkKICAgICAgICAgICAgICAgIHsKLSAgIAkgICAgICAgICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IFRSVUU7Ci0gICAgICAgICAgICAgICBxdWV1ZVNlbGVjdEZhaWwoQ3VyckNhcmQscF9jYXJkKTsKKyAgIAkgICAgICAgICBjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CisgICAgICAgICAgICAgICBGUFRfcXVldWVTZWxlY3RGYWlsKEN1cnJDYXJkLHBfY2FyZCk7CiAJCQkJICAgU0dSQU1fQUNDRVNTKHBvcnQpOwogICAgCSAgICAgICAgIHJldHVybjsKICAgIAkgICAgICAgICB9CkBAIC01ODMyLDcgKzMxMDcsNiBAQAogCiAgICAgICBlbHNlCiAgICAgICAgICB7Ci0jZW5kaWYgICAvKiAhRE9TICovCiAKICAgICAgICAgIFdSV19IQVJQT09OKChwb3J0K0lEX01TR19TVFJUKSxCUkhfT1ArQUxXQVlTK05UQ01EKTsKIApAQCAtNTg0MiwxNiArMzExNiwxMCBAQAogICAgICAgICAgY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPSBTRUxFQ1RfU1Q7CiAKICAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9hdXRvc3RhcnRfMywgKFNFTEVDVCtTRUxDSEtfU1RSVCkpOwotI2lmICFkZWZpbmVkKERPUykKICAgICAgICAgIH0KLSNlbmRpZgogCiAKLSNpZiBkZWZpbmVkKE9TMikKLSAgICAgIHRoZUNDQiA9IChVQ0hBUiBmYXIgKikmY3VyclNDQ0ItPkNkYlswXTsKLSNlbHNlCiAgICAgICB0aGVDQ0IgPSAoVUNIQVIgKikmY3VyclNDQ0ItPkNkYlswXTsKLSNlbmRpZgogCiAgICAgICBjZGJfcmVnID0gcG9ydCArIENNRF9TVFJUOwogCkBAIC01ODY3LDEwICszMTM1LDggQEAKIAogICAgICAgfSAgLyogYXV0b19sb2FkZWQgKi8KIAotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQogICAgV1JXX0hBUlBPT04oKHBvcnQraHBfZmlmb3JlYWQpLCAoVVNIT1JUKSAweDAwKTsKICAgIFdSX0hBUlBPT04ocG9ydCtocF94ZmVyc3RhdCwgMHgwMCk7Ci0jZW5kaWYKIAogICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaW50c3RhdCksIChQUk9HX0hMVCB8IFRJTUVPVVQgfCBTRUwgfCBCVVNfRlJFRSkpOwogCkBAIC01ODk5LDMwICszMTY1LDE2IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNyZXMKKyAqIEZ1bmN0aW9uOiBGUFRfc3JlcwogICoKICAqIERlc2NyaXB0aW9uOiBIb29rdXAgdGhlIGNvcnJlY3QgQ0NCIGFuZCBoYW5kbGUgdGhlIGluY29taW5nIG1lc3NhZ2VzLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzcmVzKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQpCi0jZWxzZQotdm9pZCBzcmVzKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3NyZXMoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQmNhcmQgcEN1cnJDYXJkKQogewogCi0jaWYgZGVmaW5lZChWMzAyKQotI2lmZGVmIERPUwotICAgVUNIQVIgb3VyX3RhcmdldCxtZXNzYWdlLCBtc2dSZXRyeUNvdW50OwotICAgZXh0ZXJuIFVDSEFSIGx1biwgdGFnOwotI2Vsc2UKLSAgIFVDSEFSIG91cl90YXJnZXQsbWVzc2FnZSxsdW4sdGFnLCBtc2dSZXRyeUNvdW50OwotI2VuZGlmCi0KLSNlbHNlICAvKiBWMzAyICovCiAgICBVQ0hBUiBvdXJfdGFyZ2V0LCBtZXNzYWdlLCBsdW4gPSAwLCB0YWcsIG1zZ1JldHJ5Q291bnQ7Ci0jZW5kaWYgLyogVjMwMiAqLwogCiAKICAgIFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKQEAgLTU5MzMsNyArMzE4NSw3IEBACiAKIAlpZihwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCICE9IE5VTEwpCiAJewotCQljdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3BDdXJyQ2FyZC0+Y3VycmVudFNDQ0ItPlRhcmdJRF07CisJCWN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3BDdXJyQ2FyZC0+Y3VycmVudFNDQ0ItPlRhcmdJRF07CiAJCURJU0FCTEVfQVVUTyhwb3J0KTsKIAogCkBAIC01OTU0LDcgKzMyMDYsNyBAQAogCQlpZigoKHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKIAkJCSgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkpCiAJCXsKLSAgICAgIAljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBGQUxTRTsKKyAgICAgIAljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSAwOwogCQkJaWYoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgIT0gQUJPUlRfU1QpCiAJCQl7CiAJCQkJcEN1cnJDYXJkLT5kaXNjUUNvdW50LS07CkBAIC01OTY0LDcgKzMyMTYsNyBAQAogCQl9CiAJCWVsc2UKIAkJewotCSAgICAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVswXSA9IEZBTFNFOworCSAgICAgIGN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVswXSA9IDA7CiAJCQlpZihjdXJyU0NDQi0+U2NjYl90YWcpCiAJCQl7CiAJCQkJaWYoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgIT0gQUJPUlRfU1QpCkBAIC01OTgyLDI5ICszMjM0LDIxIEBACiAJCQl9CiAJCX0KIAotICAgICAgcXVldWVTZWxlY3RGYWlsKCZCTF9DYXJkW3BfY2FyZF0scF9jYXJkKTsKKyAgICAgIEZQVF9xdWV1ZVNlbGVjdEZhaWwoJkZQVF9CTF9DYXJkW3BfY2FyZF0scF9jYXJkKTsKIAl9CiAKLSNpZiBkZWZpbmVkKFdJREVfU0NTSSkKIAlXUldfSEFSUE9PTigocG9ydCtocF9maWZvcmVhZCksIChVU0hPUlQpIDB4MDApOwotI2VuZGlmCiAKIAogCW91cl90YXJnZXQgPSAoVUNIQVIpKFJEX0hBUlBPT04ocG9ydCtocF9zZWxlY3RfaWQpID4+IDQpOwotCWN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bb3VyX3RhcmdldF07CisJY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bb3VyX3RhcmdldF07CiAKIAogCW1zZ1JldHJ5Q291bnQgPSAwOwogCWRvCiAJewogCi0jaWYgZGVmaW5lZChWMzAyKQotCi0JCW1lc3NhZ2UgPSBHZXRUYXJMdW4ocG9ydCwgcF9jYXJkLCBvdXJfdGFyZ2V0LCBwQ3VyckNhcmQsICZ0YWcsICZsdW4pOwotCi0jZWxzZSAvKiBWMzAyICovCi0KLQkJY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtvdXJfdGFyZ2V0XTsKKwkJY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bb3VyX3RhcmdldF07CiAJCXRhZyA9IDA7CiAKIApAQCAtNjAyMiw3ICszMjY2LDcgQEAKIAkJaWYgKChSRF9IQVJQT09OKHBvcnQraHBfc2NzaXNpZykgJiBTX1NDU0lfUEhaKSA9PSBTX01TR0lfUEgpCiAJCXsKIAotCQkJbWVzc2FnZSA9IHNmbShwb3J0LHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IpOworCQkJbWVzc2FnZSA9IEZQVF9zZm0ocG9ydCxwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCKTsKIAkJCWlmIChtZXNzYWdlKQogCQkJewogCkBAIC02MDMwLDcgKzMyNzQsNiBAQAogCQkJCXsKIAkJCQkJbHVuID0gbWVzc2FnZSAmIChVQ0hBUilMVU5fTUFTSzsKIAotI2lmICFkZWZpbmVkKERPUykKIAkJCQkJaWYgKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSA9PSBUQUdfUV9UUllJTkcpCiAJCQkJCXsKIAkJCQkJCWlmIChjdXJyVGFyX0luZm8tPlRhclRhZ1FfQ250ICE9IDApCkBAIC02MDQxLDIxICszMjg0LDIxIEBACiAJCQkJCQkJCUFDQ0VQVF9NU0cocG9ydCk7ICAgIC8qUmVsZWFzZSB0aGUgQUNLIGZvciBJRCBtc2cuICovCiAKIAotCQkJCQkJCQltZXNzYWdlID0gc2ZtKHBvcnQscEN1cnJDYXJkLT5jdXJyZW50U0NDQik7CisJCQkJCQkJCW1lc3NhZ2UgPSBGUFRfc2ZtKHBvcnQscEN1cnJDYXJkLT5jdXJyZW50U0NDQik7CiAJCQkJCQkJCWlmIChtZXNzYWdlKQogCQkJCQkJCQl7CiAJCQkJCQkJCQlBQ0NFUFRfTVNHKHBvcnQpOwogCQkJCQkJCQl9CiAKIAkJCQkJCQkJZWxzZQotICAgCQkJCQkJCQltZXNzYWdlID0gRkFMU0U7CisgICAJCQkJCQkJCW1lc3NhZ2UgPSAwOwogCi0JCQkJCQkJCWlmKG1lc3NhZ2UgIT0gRkFMU0UpCisJCQkJCQkJCWlmKG1lc3NhZ2UgIT0gMCkKIAkJCQkJCQkJewotCQkJCQkJCQkJdGFnID0gc2ZtKHBvcnQscEN1cnJDYXJkLT5jdXJyZW50U0NDQik7CisJCQkJCQkJCQl0YWcgPSBGUFRfc2ZtKHBvcnQscEN1cnJDYXJkLT5jdXJyZW50U0NDQik7CiAKIAkJCQkJCQkJCWlmICghKHRhZykpIAotCQkJCQkJCQkJCW1lc3NhZ2UgPSBGQUxTRTsKKwkJCQkJCQkJCQltZXNzYWdlID0gMDsKIAkJCQkJCQkJfQogCiAJCQkJCQkJfSAvKkMuQS4gZXhpc3RzISAqLwpAQCAtNjA2Myw3ICszMzA2LDYgQEAKIAkJCQkJCX0gLypFbmQgUSBjbnQgIT0gMCAqLwogCiAJCQkJCX0gLypFbmQgVGFnIGNtZHMgc3VwcG9ydGVkISAqLwotI2VuZGlmIC8qICFET1MgKi8KIAogCQkJCX0gLypFbmQgdmFsaWQgSUQgbWVzc2FnZS4gICovCiAKQEAgLTYwNzgsNyArMzMyMCw3IEBACiAJCQllbHNlCiAJCQl7CiAKLQkJCQltZXNzYWdlID0gRkFMU0U7CisJCQkJbWVzc2FnZSA9IDA7CiAJCQl9CiAJCX0KIAkJZWxzZQpAQCAtNjA5MSw0OSArMzMzMyw0NyBAQAogCiAJCQlyZXR1cm47CiAJCX0KLQkKLSNlbmRpZiAvKiBWMzAyICovCiAKLQkJaWYobWVzc2FnZSA9PSBGQUxTRSkKKwkJaWYobWVzc2FnZSA9PSAwKQogCQl7CiAJCQltc2dSZXRyeUNvdW50Kys7CiAJCQlpZihtc2dSZXRyeUNvdW50ID09IDEpCiAJCQl7Ci0JCQkJU2VuZE1zZyhwb3J0LCBTTVBBUklUWSk7CisJCQkJRlBUX1NlbmRNc2cocG9ydCwgU01QQVJJVFkpOwogCQkJfQogCQkJZWxzZQogCQkJewotCQkJCVNlbmRNc2cocG9ydCwgU01ERVZfUkVTRVQpOworCQkJCUZQVF9TZW5kTXNnKHBvcnQsIFNNREVWX1JFU0VUKTsKIAotCQkJCXNzc3luY3YocG9ydCwgb3VyX3RhcmdldCwgTkFSUk9XX1NDU0ksY3VyclRhcl9JbmZvKTsKKwkJCQlGUFRfc3NzeW5jdihwb3J0LCBvdXJfdGFyZ2V0LCBOQVJST1dfU0NTSSxjdXJyVGFyX0luZm8pOwogCi0JCQkJaWYgKHNjY2JNZ3JUYmxbcF9jYXJkXVtvdXJfdGFyZ2V0XS5UYXJFRVZhbHVlICYgRUVfU1lOQ19NQVNLKSAKKwkJCQlpZiAoRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtvdXJfdGFyZ2V0XS5UYXJFRVZhbHVlICYgRUVfU1lOQ19NQVNLKSAKIAkJCQl7CiAJCQkKLQkJCQkJc2NjYk1nclRibFtwX2NhcmRdW291cl90YXJnZXRdLlRhclN0YXR1cyAmPSB+VEFSX1NZTkNfTUFTSzsKKwkJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtvdXJfdGFyZ2V0XS5UYXJTdGF0dXMgJj0gflRBUl9TWU5DX01BU0s7CiAKIAkJCQl9CiAKLQkJCQlpZiAoc2NjYk1nclRibFtwX2NhcmRdW291cl90YXJnZXRdLlRhckVFVmFsdWUgJiBFRV9XSURFX1NDU0kpIAorCQkJCWlmIChGUFRfc2NjYk1nclRibFtwX2NhcmRdW291cl90YXJnZXRdLlRhckVFVmFsdWUgJiBFRV9XSURFX1NDU0kpIAogCQkJCXsKIAotCQkJCQlzY2NiTWdyVGJsW3BfY2FyZF1bb3VyX3RhcmdldF0uVGFyU3RhdHVzICY9IH5UQVJfV0lERV9NQVNLOworCQkJCQlGUFRfc2NjYk1nclRibFtwX2NhcmRdW291cl90YXJnZXRdLlRhclN0YXR1cyAmPSB+VEFSX1dJREVfTUFTSzsKIAkJCQl9CiAKIAotCQkJCXF1ZXVlRmx1c2hUYXJnU2NjYihwX2NhcmQsIG91cl90YXJnZXQsIFNDQ0JfQ09NUExFVEUpOwotCQkJCVNjY2JNZ3JUYWJsZUluaXRUYXJnZXQocF9jYXJkLG91cl90YXJnZXQpOworCQkJCUZQVF9xdWV1ZUZsdXNoVGFyZ1NjY2IocF9jYXJkLCBvdXJfdGFyZ2V0LCBTQ0NCX0NPTVBMRVRFKTsKKwkJCQlGUFRfU2NjYk1nclRhYmxlSW5pdFRhcmdldChwX2NhcmQsb3VyX3RhcmdldCk7CiAJCQkJcmV0dXJuOwogCQkJfQogCQl9Ci0JfXdoaWxlKG1lc3NhZ2UgPT0gRkFMU0UpOworCX13aGlsZShtZXNzYWdlID09IDApOwogCiAKIAogCWlmKCgocEN1cnJDYXJkLT5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgogCQkoKGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpKQogCXsKLQkJY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPSBUUlVFOworCQljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9IDE7CiAJCXBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IgPSBwQ3VyckNhcmQtPmRpc2NRX1RibFtjdXJyVGFyX0luZm8tPkx1bkRpc2NRX0lkeFtsdW5dXTsKIAkJaWYocEN1cnJDYXJkLT5jdXJyZW50U0NDQiAhPSBOVUxMKQogCQl7CkBAIC02MTQ2LDcgKzMzODYsNyBAQAogCX0KIAllbHNlCiAJewotCQljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbMF0gPSBUUlVFOworCQljdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbMF0gPSAxOwogCiAKIAkJaWYgKHRhZykKQEAgLTYxODIsNyArMzQyMiw3IEBACiAJCS8qIER1cmluZyBBYm9ydCBUYWcgY29tbWFuZCwgdGhlIHRhcmdldCBjb3VsZCBoYXZlIGdvdCByZS1zZWxlY3RlZAogCQkJYW5kIGNvbXBsZXRlZCB0aGUgY29tbWFuZC4gQ2hlY2sgdGhlIHNlbGVjdCBRIGFuZCByZW1vdmUgdGhlIENDQgogCQkJaWYgaXQgaXMgaW4gdGhlIFNlbGVjdCBRICovCi0JCQlxdWV1ZUZpbmRTY2NiKHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IsIHBfY2FyZCk7CisJCQlGUFRfcXVldWVGaW5kU2NjYihwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLCBwX2NhcmQpOwogCQl9CiAJfQogCkBAIC02MTkyLDEwNiArMzQzMiw3IEBACiAJICAoUkRfSEFSUE9PTihwb3J0K2hwX3Njc2lzaWcpICYgU0NTSV9CU1kpKSA7CiB9CiAKLSNpZiBkZWZpbmVkKFYzMDIpCi0KLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIEdldFRhckx1bihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkLCBVQ0hBUiBvdXJfdGFyZ2V0LCBQU0NDQmNhcmQgcEN1cnJDYXJkLCBQVUNIQVIgdGFnLCBQVUNIQVIgbHVuKQotI2Vsc2UKLVVDSEFSIEdldFRhckx1bihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQsIFVDSEFSIG91cl90YXJnZXQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFBVQ0hBUiB0YWcsIFBVQ0hBUiBsdW4pCi0jZW5kaWYKLXsKLSAgIFVDSEFSIG1lc3NhZ2U7Ci0gICBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87Ci0KLQotCWN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bb3VyX3RhcmdldF07Ci0JKnRhZyA9IDA7Ci0KLQotCXdoaWxlKCEoUkRfSEFSUE9PTihwb3J0K2hwX3Njc2lzaWcpICYgU0NTSV9SRVEpKQotCXsKLQkJaWYgKCEgKFJEX0hBUlBPT04ocG9ydCtocF9zY3Npc2lnKSAmIFNDU0lfQlNZKSkKLQkJewotCi0JCQlXUldfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSwgUEhBU0UpOwotCQkJcmV0dXJuKFRSVUUpOwotCQl9Ci0JfQotCi0JV1JXX0hBUlBPT04oKHBvcnQraHBfaW50c3RhdCksIFBIQVNFKTsKLQlpZiAoKFJEX0hBUlBPT04ocG9ydCtocF9zY3Npc2lnKSAmIFNfU0NTSV9QSFopID09IFNfTVNHSV9QSCkKLQl7Ci0KLQkJbWVzc2FnZSA9IHNmbShwb3J0LHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IpOwotCQlpZiAobWVzc2FnZSkKLQkJewotCi0JCQlpZiAobWVzc2FnZSA8PSAoMHg4MCB8IExVTl9NQVNLKSkKLQkJCXsKLQkJCQkqbHVuID0gbWVzc2FnZSAmIChVQ0hBUilMVU5fTUFTSzsKLQotI2lmICFkZWZpbmVkKERPUykKLQkJCQlpZiAoKGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spID09IFRBR19RX1RSWUlORykKLQkJCQl7Ci0JCQkJCWlmIChjdXJyVGFyX0luZm8tPlRhclRhZ1FfQ250ICE9IDApCi0JCQkJCXsKLQotCQkJCQkJaWYgKCEoY3VyclRhcl9JbmZvLT5UYXJMVU5fQ0EpKQotCQkJCQkJewotCQkJCQkJCUFDQ0VQVF9NU0cocG9ydCk7ICAgIC8qUmVsZWFzZSB0aGUgQUNLIGZvciBJRCBtc2cuICovCi0KLQotCQkJCQkJCW1lc3NhZ2UgPSBzZm0ocG9ydCxwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCKTsKLQkJCQkJCQlpZiAobWVzc2FnZSkKLQkJCQkJCQl7Ci0JCQkJCQkJCUFDQ0VQVF9NU0cocG9ydCk7Ci0JCQkJCQkJfQotCi0JCQkJCQkJZWxzZQotICAgCQkJCQkJCXJldHVybihGQUxTRSk7Ci0KLQkJCQkJCQkqdGFnID0gc2ZtKHBvcnQscEN1cnJDYXJkLT5jdXJyZW50U0NDQik7Ci0KLQkJCQkJCQlpZiAoISgqdGFnKSkgcmV0dXJuKEZBTFNFKTsKLQotCQkJCQkJfSAvKkMuQS4gZXhpc3RzISAqLwotCi0JCQkJCX0gLypFbmQgUSBjbnQgIT0gMCAqLwotCi0JCQkJfSAvKkVuZCBUYWcgY21kcyBzdXBwb3J0ZWQhICovCi0jZW5kaWYgLyogIURPUyAqLwotCi0JCQl9IC8qRW5kIHZhbGlkIElEIG1lc3NhZ2UuICAqLwotCi0JCQllbHNlCi0JCQl7Ci0KLQkJCQlBQ0NFUFRfTVNHX0FUTihwb3J0KTsKLQkJCX0KLQotCQl9IC8qIEVuZCBnb29kIGlkIG1lc3NhZ2UuICovCi0KLQkJZWxzZQotCQl7Ci0KLQkJCXJldHVybihGQUxTRSk7Ci0JCX0KLQl9Ci0JZWxzZQotCXsKLQkJQUNDRVBUX01TR19BVE4ocG9ydCk7Ci0JCXJldHVybihUUlVFKTsKLQl9Ci0JcmV0dXJuKFRSVUUpOwotfQotCi0jZW5kaWYgLyogVjMwMiAqLwotCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIFNlbmRNc2coVVNIT1JUIHBvcnQsIFVDSEFSIG1lc3NhZ2UpCi0jZWxzZQotdm9pZCBTZW5kTXNnKFVMT05HIHBvcnQsIFVDSEFSIG1lc3NhZ2UpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9TZW5kTXNnKFVMT05HIHBvcnQsIFVDSEFSIG1lc3NhZ2UpCiB7CiAJd2hpbGUoIShSRF9IQVJQT09OKHBvcnQraHBfc2NzaXNpZykgJiBTQ1NJX1JFUSkpCiAJewpAQCAtNjMzNCwyNiArMzQ3NSwyMiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzZGVjbQorICogRnVuY3Rpb246IEZQVF9zZGVjbQogICoKICAqIERlc2NyaXB0aW9uOiBEZXRlcm1pbmUgdGhlIHByb3BlciByZXNwb25jZSB0byB0aGUgbWVzc2FnZSBmcm9tIHRoZQogICogICAgICAgICAgICAgIHRhcmdldCBkZXZpY2UuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzZGVjbShVQ0hBUiBtZXNzYWdlLCBVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2Vsc2UKLXZvaWQgc2RlY20oVUNIQVIgbWVzc2FnZSwgVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc2RlY20oVUNIQVIgbWVzc2FnZSwgVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogCVBTQ0NCIGN1cnJTQ0NCOwogCVBTQ0NCY2FyZCBDdXJyQ2FyZDsKIAlQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLQlDdXJyQ2FyZCA9ICZCTF9DYXJkW3BfY2FyZF07CisJQ3VyckNhcmQgPSAmRlBUX0JMX0NhcmRbcF9jYXJkXTsKIAljdXJyU0NDQiA9IEN1cnJDYXJkLT5jdXJyZW50U0NDQjsKIAotCWN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF07CisJY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF07CiAKIAlpZiAobWVzc2FnZSA9PSBTTVJFU1RfREFUQV9QVFIpCiAJewpAQCAtNjM2MSw3ICszNDk4LDcgQEAKIAkJewogCQkJY3VyclNDQ0ItPlNjY2JfQVRDID0gY3VyclNDQ0ItPlNjY2Jfc2F2ZWRBVEM7CiAKLQkJCWhvc3REYXRhWGZlclJlc3RhcnQoY3VyclNDQ0IpOworCQkJRlBUX2hvc3REYXRhWGZlclJlc3RhcnQoY3VyclNDQ0IpOwogCQl9CiAKIAkJQUNDRVBUX01TRyhwb3J0KTsKQEAgLTY0MTcsNyArMzU1NCw2IEBACiAJCQkJCWN1cnJUYXJfSW5mby0+VGFyRUVWYWx1ZSAmPSB+RUVfU1lOQ19NQVNLOwogCQkJCX0KIAotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQogCQkJCWVsc2UgaWYgKChjdXJyU0NDQi0+U2NjYl9zY3Npc3RhdCA9PSBTRUxFQ1RfV05fU1QpKQogCQkJCXsKIApAQCAtNjQyOCw3ICszNTY0LDYgQEAKIAkJCQkJY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICY9IH5FRV9XSURFX1NDU0k7CiAKIAkJCQl9Ci0jZW5kaWYKIAogCQkJCWVsc2UgaWYgKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSA9PSBUQUdfUV9UUllJTkcgKQogCQkJCXsKQEAgLTY0NjAsOSArMzU5NSw5IEBACiAKIAkJCQlpZigoQ3VyckNhcmQtPmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCiAJCQkJCSgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkKLQkJCQkJY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gVFJVRTsKKwkJCQkJY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gMTsKIAkJCQllbHNlCi0JCQkJCWN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVswXSA9IFRSVUU7CisJCQkJCWN1cnJUYXJfSW5mby0+VGFyTFVOQnVzeVswXSA9IDE7CiAKIAogCQkJCWN1cnJTQ0NCLT5Db250cm9sQnl0ZSAmPSB+KFVDSEFSKUZfVVNFX0NNRF9ROwpAQCAtNjQ5MCw3ICszNjI1LDcgQEAKIAl7CiAKIAkJQUNDRVBUX01TRyhwb3J0KTsKLQkJc2hhbmRlbShwb3J0LHBfY2FyZCxjdXJyU0NDQik7CisJCUZQVF9zaGFuZGVtKHBvcnQscF9jYXJkLGN1cnJTQ0NCKTsKIAl9CiAKIAllbHNlIGlmIChtZXNzYWdlID09IFNNSUdOT1JXUikKQEAgLTY0OTgsNyArMzYzMyw3IEBACiAKIAkJQUNDRVBUX01TRyhwb3J0KTsgICAgICAgICAgLyogQUNLIHRoZSBSRVNJRFVFIE1TRyAqLwogCi0JCW1lc3NhZ2UgPSBzZm0ocG9ydCxjdXJyU0NDQik7CisJCW1lc3NhZ2UgPSBGUFRfc2ZtKHBvcnQsY3VyclNDQ0IpOwogCiAJCWlmKGN1cnJTQ0NCLT5TY2NiX3Njc2ltc2cgIT0gU01QQVJJVFkpCiAJCQlBQ0NFUFRfTVNHKHBvcnQpOwpAQCAtNjUyMCwyNSArMzY1NSwyMSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzaGFuZGVtCisgKiBGdW5jdGlvbjogRlBUX3NoYW5kZW0KICAqCiAgKiBEZXNjcmlwdGlvbjogRGVjaWRlIHdoYXQgdG8gZG8gd2l0aCB0aGUgZXh0ZW5kZWQgbWVzc2FnZS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHNoYW5kZW0oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0IgcEN1cnJTQ0NCKQotI2Vsc2UKLXZvaWQgc2hhbmRlbShVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQsIFBTQ0NCIHBDdXJyU0NDQikKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3NoYW5kZW0oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQiBwQ3VyclNDQ0IpCiB7CiAJVUNIQVIgbGVuZ3RoLG1lc3NhZ2U7CiAKLQlsZW5ndGggPSBzZm0ocG9ydCxwQ3VyclNDQ0IpOworCWxlbmd0aCA9IEZQVF9zZm0ocG9ydCxwQ3VyclNDQ0IpOwogCWlmIChsZW5ndGgpIAogCXsKIAogCQlBQ0NFUFRfTVNHKHBvcnQpOwotCQltZXNzYWdlID0gc2ZtKHBvcnQscEN1cnJTQ0NCKTsKKwkJbWVzc2FnZSA9IEZQVF9zZm0ocG9ydCxwQ3VyclNDQ0IpOwogCQlpZiAobWVzc2FnZSkgCiAJCXsKIApAQCAtNjU0OSw3ICszNjgwLDcgQEAKIAkJCQl7CiAKIAkJCQkJQUNDRVBUX01TRyhwb3J0KTsKLQkJCQkJc3RzeW5jbihwb3J0LHBfY2FyZCk7CisJCQkJCUZQVF9zdHN5bmNuKHBvcnQscF9jYXJkKTsKIAkJCQl9CiAJCQkJZWxzZSAKIAkJCQl7CkBAIC02NTU4LDcgKzM2ODksNiBAQAogCQkJCQlBQ0NFUFRfTVNHX0FUTihwb3J0KTsKIAkJCQl9CiAJCQl9Ci0jaWYgZGVmaW5lZChXSURFX1NDU0kpCiAJCQllbHNlIGlmIChtZXNzYWdlID09IFNNV0RUUikgCiAJCQl7CiAKQEAgLTY1NjYsNyArMzY5Niw3IEBACiAJCQkJewogCiAJCQkJCUFDQ0VQVF9NU0cocG9ydCk7Ci0JCQkJCXN0d2lkbihwb3J0LHBfY2FyZCk7CisJCQkJCUZQVF9zdHdpZG4ocG9ydCxwX2NhcmQpOwogCQkJCX0KIAkJCQllbHNlIAogCQkJCXsKQEAgLTY1NzcsNyArMzcwNyw2IEBACiAJCQkJCVdSX0hBUlBPT04ocG9ydCtocF9hdXRvc3RhcnRfMSwgKEFVVE9fSU1NRUQrRElTQ09OTkVDVF9TVEFSVCkpOwogCQkJCX0KIAkJCX0KLSNlbmRpZgogCQkJZWxzZSAKIAkJCXsKIApAQCAtNjYwMywyNCArMzczMiwyMCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzaXN5bmNuCisgKiBGdW5jdGlvbjogRlBUX3Npc3luY24KICAqCiAgKiBEZXNjcmlwdGlvbjogUmVhZCBpbiBhIG1lc3NhZ2UgYnl0ZSBmcm9tIHRoZSBTQ1NJIGJ1cywgYW5kIGNoZWNrCiAgKiAgICAgICAgICAgICAgZm9yIGEgcGFyaXR5IGVycm9yLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotVUNIQVIgc2lzeW5jbihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkLCBVQ0hBUiBzeW5jRmxhZykKLSNlbHNlCi1VQ0hBUiBzaXN5bmNuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgVUNIQVIgc3luY0ZsYWcpCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2lzeW5jbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQsIFVDSEFSIHN5bmNGbGFnKQogewogICAgUFNDQ0IgY3VyclNDQ0I7CiAgICBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwotICAgY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXTsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdOwogCiAgICBpZiAoISgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfU1lOQ19NQVNLKSA9PSBTWU5DX1RSWUlORykpIHsKIApAQCAtNjY1Niw3ICszNzgxLDcgQEAKICAgICAgIFdSV19IQVJQT09OKChwb3J0K1NZTkNfTVNHUysxMiksKEJSSF9PUCtBTFdBWVMrTlAgICAgICApKTsKIAogCi0JCWlmKHN5bmNGbGFnID09IEZBTFNFKQorCQlpZihzeW5jRmxhZyA9PSAwKQogCQl7CiAJCSAgIFdSX0hBUlBPT04ocG9ydCtocF9hdXRvc3RhcnRfMywgKFNFTEVDVCtTRUxDSEtfU1RSVCkpOwogCSAgICAgIGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzID0gKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmCkBAIC02NjY4LDE0ICszNzkzLDE0IEBACiAJCX0KIAogCi0gICAgICByZXR1cm4oVFJVRSk7CisgICAgICByZXR1cm4oMSk7CiAgICAgICB9CiAKICAgIGVsc2UgewogCiAgICAgICBjdXJyVGFyX0luZm8tPlRhclN0YXR1cyB8PQkgKFVDSEFSKVNZTkNfU1VQUE9SVEVEOwogICAgICAgY3VyclRhcl9JbmZvLT5UYXJFRVZhbHVlICY9IH5FRV9TWU5DX01BU0s7Ci0gICAgICByZXR1cm4oRkFMU0UpOworICAgICAgcmV0dXJuKDApOwogICAgICAgfQogfQogCkBAIC02NjgzLDI2ICszODA4LDIyIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHN0c3luY24KKyAqIEZ1bmN0aW9uOiBGUFRfc3RzeW5jbgogICoKICAqIERlc2NyaXB0aW9uOiBUaGUgaGFzIHNlbnQgdXMgYSBTeW5jIE5lZ28gbWVzc2FnZSBzbyBoYW5kbGUgaXQgYXMKICAqICAgICAgICAgICAgICBuZWNlc3NhcnkuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzdHN5bmNuKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBzdHN5bmNuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3N0c3luY24oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgVUNIQVIgc3luY19tc2csb2Zmc2V0LHN5bmNfcmVnLG91cl9zeW5jX21zZzsKICAgIFBTQ0NCIGN1cnJTQ0NCOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKLSAgIGN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF07CisgICBjdXJyU0NDQiA9IEZQVF9CTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0I7CisgICBjdXJyVGFyX0luZm8gPSAmRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXTsKIAotICAgc3luY19tc2cgPSBzZm0ocG9ydCxjdXJyU0NDQik7CisgICBzeW5jX21zZyA9IEZQVF9zZm0ocG9ydCxjdXJyU0NDQik7CiAKIAlpZigoc3luY19tc2cgPT0gMHgwMCkgJiYgKGN1cnJTQ0NCLT5TY2NiX3Njc2ltc2cgPT0gU01QQVJJVFkpKQogCXsKQEAgLTY3MTMsNyArMzgzNCw3IEBACiAgICBBQ0NFUFRfTVNHKHBvcnQpOwogCiAKLSAgIG9mZnNldCA9IHNmbShwb3J0LGN1cnJTQ0NCKTsKKyAgIG9mZnNldCA9IEZQVF9zZm0ocG9ydCxjdXJyU0NDQik7CiAKIAlpZigob2Zmc2V0ID09IDB4MDApICYmIChjdXJyU0NDQi0+U2NjYl9zY3NpbXNnID09IFNNUEFSSVRZKSkKIAl7CkBAIC02NzgzLDcgKzM5MDQsNiBAQAogICAgICAgfQogCiAKLSNpZiBkZWZpbmVkKFdJREVfU0NTSSkKICAgIGlmIChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmIFdJREVfRU5BQkxFRCkKIAogICAgICAgc3luY19yZWcgfD0gb2Zmc2V0OwpAQCAtNjc5MiwxMSArMzkxMiw3IEBACiAKICAgICAgIHN5bmNfcmVnIHw9IChvZmZzZXQgfCBOQVJST1dfU0NTSSk7CiAKLSNlbHNlCi0gICBzeW5jX3JlZyB8PSAob2Zmc2V0IHwgTkFSUk9XX1NDU0kpOwotI2VuZGlmCi0KLSAgIHNzc3luY3YocG9ydCxjdXJyU0NDQi0+VGFyZ0lELHN5bmNfcmVnLGN1cnJUYXJfSW5mbyk7CisgICBGUFRfc3NzeW5jdihwb3J0LGN1cnJTQ0NCLT5UYXJnSUQsc3luY19yZWcsY3VyclRhcl9JbmZvKTsKIAogCiAgICBpZiAoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPT0gU0VMRUNUX1NOX1NUKSB7CkBAIC02ODE1LDcgKzM5MzEsNyBAQAogCiAgICAgICBBQ0NFUFRfTVNHX0FUTihwb3J0KTsKIAotICAgICAgc2lzeW5jcihwb3J0LHN5bmNfbXNnLG9mZnNldCk7CisgICAgICBGUFRfc2lzeW5jcihwb3J0LHN5bmNfbXNnLG9mZnNldCk7CiAKICAgICAgIGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzID0gKChjdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmCiAgICAgICAgICB+KFVDSEFSKVRBUl9TWU5DX01BU0spIHwgKFVDSEFSKVNZTkNfU1VQUE9SVEVEKTsKQEAgLTY4MjUsMTYgKzM5NDEsMTIgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc2lzeW5jcgorICogRnVuY3Rpb246IEZQVF9zaXN5bmNyCiAgKgogICogRGVzY3JpcHRpb246IEFuc3dlciB0aGUgdGFyZ2V0cyBzeW5jIG1lc3NhZ2UuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzaXN5bmNyKFVTSE9SVCBwb3J0LFVDSEFSIHN5bmNfcHVsc2UsIFVDSEFSIG9mZnNldCkKLSNlbHNlCi12b2lkIHNpc3luY3IoVUxPTkcgcG9ydCxVQ0hBUiBzeW5jX3B1bHNlLCBVQ0hBUiBvZmZzZXQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zaXN5bmNyKFVMT05HIHBvcnQsVUNIQVIgc3luY19wdWxzZSwgVUNIQVIgb2Zmc2V0KQogewogICAgQVJBTV9BQ0NFU1MocG9ydCk7CiAgICBXUldfSEFSUE9PTigocG9ydCtTWU5DX01TR1MrMCksIChNUE1fT1ArQU1TR19PVVQrU01FWFQgKSk7CkBAIC02ODU2LDI4ICszOTY4LDIyIEBACiAKIAogCi0jaWYgZGVmaW5lZChXSURFX1NDU0kpCi0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNpd2lkbgorICogRnVuY3Rpb246IEZQVF9zaXdpZG4KICAqCiAgKiBEZXNjcmlwdGlvbjogUmVhZCBpbiBhIG1lc3NhZ2UgYnl0ZSBmcm9tIHRoZSBTQ1NJIGJ1cywgYW5kIGNoZWNrCiAgKiAgICAgICAgICAgICAgZm9yIGEgcGFyaXR5IGVycm9yLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotVUNIQVIgc2l3aWRuKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotVUNIQVIgc2l3aWRuKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbmRpZgorc3RhdGljIFVDSEFSIEZQVF9zaXdpZG4oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgUFNDQ0IgY3VyclNDQ0I7CiAgICBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwotICAgY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXTsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdOwogCiAgICBpZiAoISgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfV0lERV9NQVNLKSA9PSBXSURFX05FR09DSUFURUQpKSB7CiAKQEAgLTY5MDAsNyArNDAwNiw3IEBACiAgICAgICBjdXJyVGFyX0luZm8tPlRhclN0YXR1cyA9ICgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJgogICAgICAgICAgfihVQ0hBUilUQVJfV0lERV9NQVNLKSB8IChVQ0hBUilXSURFX0VOQUJMRUQpOwogCi0gICAgICByZXR1cm4oVFJVRSk7CisgICAgICByZXR1cm4oMSk7CiAgICAgICB9CiAKICAgIGVsc2UgewpAQCAtNjkwOSw3ICs0MDE1LDcgQEAKICAgICAgICAgICAgICAgIH4oVUNIQVIpVEFSX1dJREVfTUFTSykgfCBXSURFX05FR09DSUFURUQpOwogCiAgICAgICBjdXJyVGFyX0luZm8tPlRhckVFVmFsdWUgJj0gfkVFX1dJREVfU0NTSTsKLSAgICAgIHJldHVybihGQUxTRSk7CisgICAgICByZXR1cm4oMCk7CiAgICAgICB9CiB9CiAKQEAgLTY5MTcsMjYgKzQwMjMsMjIgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc3R3aWRuCisgKiBGdW5jdGlvbjogRlBUX3N0d2lkbgogICoKICAqIERlc2NyaXB0aW9uOiBUaGUgaGFzIHNlbnQgdXMgYSBXaWRlIE5lZ28gbWVzc2FnZSBzbyBoYW5kbGUgaXQgYXMKICAqICAgICAgICAgICAgICBuZWNlc3NhcnkuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzdHdpZG4oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHN0d2lkbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zdHdpZG4oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgVUNIQVIgd2lkdGg7CiAgICBQU0NDQiBjdXJyU0NDQjsKICAgIFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKIAotICAgY3VyclNDQ0IgPSBCTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0I7Ci0gICBjdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdOworICAgY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOworICAgY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF07CiAKLSAgIHdpZHRoID0gc2ZtKHBvcnQsY3VyclNDQ0IpOworICAgd2lkdGggPSBGUFRfc2ZtKHBvcnQsY3VyclNDQ0IpOwogCiAJaWYoKHdpZHRoID09IDB4MDApICYmIChjdXJyU0NDQi0+U2NjYl9zY3NpbXNnID09IFNNUEFSSVRZKSkKIAl7CkBAIC02OTU4LDcgKzQwNjAsNyBAQAogICAgICAgfQogCiAKLSAgIHNzc3luY3YocG9ydCxjdXJyU0NDQi0+VGFyZ0lELHdpZHRoLGN1cnJUYXJfSW5mbyk7CisgICBGUFRfc3NzeW5jdihwb3J0LGN1cnJTQ0NCLT5UYXJnSUQsd2lkdGgsY3VyclRhcl9JbmZvKTsKIAogCiAgICBpZiAoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPT0gU0VMRUNUX1dOX1NUKQpAQCAtNjk3Miw3ICs0MDc0LDcgQEAKIAkJewogCSAgICAgIEFDQ0VQVF9NU0dfQVROKHBvcnQpOwogCQkgICBBUkFNX0FDQ0VTUyhwb3J0KTsKLQkgICAgIAlzaXN5bmNuKHBvcnQscF9jYXJkLCBUUlVFKTsKKwkgICAgIAlGUFRfc2lzeW5jbihwb3J0LHBfY2FyZCwgMSk7CiAJICAgICAgY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPSBTRUxFQ1RfU05fU1Q7CiAJCSAgIFNHUkFNX0FDQ0VTUyhwb3J0KTsKIAkJfQpAQCAtNjk5Myw3ICs0MDk1LDcgQEAKICAgICAgIGVsc2UKICAgICAgIAkgd2lkdGggPSBTTThCSVQ7CiAKLSAgICAgIHNpd2lkcihwb3J0LHdpZHRoKTsKKyAgICAgIEZQVF9zaXdpZHIocG9ydCx3aWR0aCk7CiAKICAgICAgIGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzIHw9IChXSURFX05FR09DSUFURUQgfCBXSURFX0VOQUJMRUQpOwogICAgICAgfQpAQCAtNzAwMiwxNiArNDEwNCwxMiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzaXdpZHIKKyAqIEZ1bmN0aW9uOiBGUFRfc2l3aWRyCiAgKgogICogRGVzY3JpcHRpb246IEFuc3dlciB0aGUgdGFyZ2V0cyBXaWRlIG5lZ28gbWVzc2FnZS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHNpd2lkcihVU0hPUlQgcG9ydCwgVUNIQVIgd2lkdGgpCi0jZWxzZQotdm9pZCBzaXdpZHIoVUxPTkcgcG9ydCwgVUNIQVIgd2lkdGgpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zaXdpZHIoVUxPTkcgcG9ydCwgVUNIQVIgd2lkdGgpCiB7CiAgICBBUkFNX0FDQ0VTUyhwb3J0KTsKICAgIFdSV19IQVJQT09OKChwb3J0K1NZTkNfTVNHUyswKSwgKE1QTV9PUCtBTVNHX09VVCtTTUVYVCApKTsKQEAgLTcwMzAsMjMgKzQxMjgsMTggQEAKICAgIHdoaWxlICghKFJEV19IQVJQT09OKChwb3J0K2hwX2ludHN0YXQpKSAmIChCVVNfRlJFRSB8IEFVVE9fSU5UKSkpIHt9CiB9CiAKLSNlbmRpZgotCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc3NzeW5jdgorICogRnVuY3Rpb246IEZQVF9zc3N5bmN2CiAgKgogICogRGVzY3JpcHRpb246IFdyaXRlIHRoZSBkZXNpcmVkIHZhbHVlIHRvIHRoZSBTeW5jIFJlZ2lzdGVyIGZvciB0aGUKICAqICAgICAgICAgICAgICBJRCBzcGVjaWZpZWQuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzc3N5bmN2KFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfaWQsIFVDSEFSIHBfc3luY192YWx1ZSxQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm8pCi0jZWxzZQotdm9pZCBzc3N5bmN2KFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZCwgVUNIQVIgcF9zeW5jX3ZhbHVlLFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbykKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3Nzc3luY3YoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2lkLCBVQ0hBUiBwX3N5bmNfdmFsdWUsCisJCQlQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm8pCiB7CiAgICBVQ0hBUiBpbmRleDsKIApAQCAtNzExMiwxNiArNDIwNSwxMiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzcmVzYgorICogRnVuY3Rpb246IEZQVF9zcmVzYgogICoKICAqIERlc2NyaXB0aW9uOiBSZXNldCB0aGUgZGVzaXJlZCBjYXJkJ3MgU0NTSSBidXMuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzcmVzYihVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2Vsc2UKLXZvaWQgc3Jlc2IoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc3Jlc2IoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgVUNIQVIgc2NzaUlELCBpOwogCkBAIC03MTQ1LDcgKzQyMzQsNyBAQAogCiAgICBXUl9IQVJQT09OKHBvcnQraHBfc2NzaWN0cmxfMCwgRU5BX1NDQU1fU0VMKTsKIAotICAgV2FpdChwb3J0LCBUT181bXMpOworICAgRlBUX1dhaXQocG9ydCwgVE9fNW1zKTsKIAogICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaW50c3RhdCksIENMUl9BTExfSU5UKTsKIApAQCAtNzE1Myw3ICs0MjQyLDcgQEAKIAogICAgZm9yIChzY3NpSUQgPSAwOyBzY3NpSUQgPCBNQVhfU0NTSV9UQVI7IHNjc2lJRCsrKQogICAgICAgewotICAgICAgY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdOworICAgICAgY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bc2NzaUlEXTsKIAogICAgICAgaWYgKGN1cnJUYXJfSW5mby0+VGFyRUVWYWx1ZSAmIEVFX1NZTkNfTUFTSykKICAgICAgICAgIHsKQEAgLTcxNjYsMjEgKzQyNTUsMjEgQEAKICAgICAgIAljdXJyVGFyX0luZm8tPlRhclN0YXR1cyAmPSB+VEFSX1dJREVfTUFTSzsKICAgICAgIAl9CiAKLSAgICAgIHNzc3luY3YocG9ydCwgc2NzaUlELCBOQVJST1dfU0NTSSxjdXJyVGFyX0luZm8pOworICAgICAgRlBUX3Nzc3luY3YocG9ydCwgc2NzaUlELCBOQVJST1dfU0NTSSxjdXJyVGFyX0luZm8pOwogCi0gICAgICBTY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCwgc2NzaUlEKTsKKyAgICAgIEZQVF9TY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCwgc2NzaUlEKTsKICAgICAgIH0KIAotICAgQkxfQ2FyZFtwX2NhcmRdLnNjYW5JbmRleCA9IDB4MDA7Ci0gICBCTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0IgPSBOVUxMOwotICAgQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICY9IH4oRl9UQUdfU1RBUlRFRCB8IEZfSE9TVF9YRkVSX0FDVCAKKyAgIEZQVF9CTF9DYXJkW3BfY2FyZF0uc2NhbkluZGV4ID0gMHgwMDsKKyAgIEZQVF9CTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0IgPSBOVUxMOworICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmPSB+KEZfVEFHX1NUQVJURUQgfCBGX0hPU1RfWEZFUl9BQ1QgCiAJCQkJCQkJCQkJCQkJfCBGX05FV19TQ0NCX0NNRCk7Ci0gICBCTF9DYXJkW3BfY2FyZF0uY21kQ291bnRlciAgPSAweDAwOwotCUJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ID0gMHgwMDsKLSAgIEJMX0NhcmRbcF9jYXJkXS50YWdRX0xzdCA9IDB4MDE7IAorICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5jbWRDb3VudGVyICA9IDB4MDA7CisJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ID0gMHgwMDsKKyAgIEZQVF9CTF9DYXJkW3BfY2FyZF0udGFnUV9Mc3QgPSAweDAxOyAKIAogCWZvcihpID0gMDsgaSA8IFFVRVVFX0RFUFRIOyBpKyspCi0JCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbaV0gPSBOVUxMOworCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtpXSA9IE5VTEw7CiAKICAgIFdSX0hBUlBPT04ocG9ydCtocF9wYWdlX2N0cmwsCiAgICAgICAoUkRfSEFSUE9PTihwb3J0K2hwX3BhZ2VfY3RybCkgJiB+R19JTlRfRElTQUJMRSkpOwpAQCAtNzE4OSwxMiArNDI3OCwxMiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzc2Vuc3MKKyAqIEZ1bmN0aW9uOiBGUFRfc3NlbnNzCiAgKgogICogRGVzY3JpcHRpb246IFNldHVwIGZvciB0aGUgQXV0byBTZW5zZSBjb21tYW5kLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLXZvaWQgc3NlbnNzKFBTQ0NCY2FyZCBwQ3VyckNhcmQpCitzdGF0aWMgdm9pZCBGUFRfc3NlbnNzKFBTQ0NCY2FyZCBwQ3VyckNhcmQpCiB7CiAgICBVQ0hBUiBpOwogICAgUFNDQ0IgY3VyclNDQ0I7CkBAIC03MjM2LDI3ICs0MzI1LDIzIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHN4ZnJwCisgKiBGdW5jdGlvbjogRlBUX3N4ZnJwCiAgKgogICogRGVzY3JpcHRpb246IFRyYW5zZmVyIGRhdGEgaW50byB0aGUgYml0IGJ1Y2tldCB1bnRpbCB0aGUgZGV2aWNlCiAgKiAgICAgICAgICAgICAgZGVjaWRlcyB0byBzd2l0Y2ggcGhhc2UuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHN4ZnJwKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHN4ZnJwKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc3hmcnAoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCiB7CiAgICBVQ0hBUiBjdXJyX3BoejsKIAogCiAgICBESVNBQkxFX0FVVE8ocF9wb3J0KTsKIAotICAgaWYgKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfSE9TVF9YRkVSX0FDVCkgeworICAgaWYgKEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0hPU1RfWEZFUl9BQ1QpIHsKIAotICAgICAgaG9zdERhdGFYZmVyQWJvcnQocF9wb3J0LHBfY2FyZCxCTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0IpOworICAgICAgRlBUX2hvc3REYXRhWGZlckFib3J0KHBfcG9ydCxwX2NhcmQsRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQik7CiAKICAgICAgIH0KIApAQCAtNzMyMiwyNSArNDQwNywyMSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY2hrZGQKKyAqIEZ1bmN0aW9uOiBGUFRfc2Noa2RkCiAgKgogICogRGVzY3JpcHRpb246IE1ha2Ugc3VyZSBkYXRhIGhhcyBiZWVuIGZsdXNoZWQgZnJvbSBib3RoIEZJRk9zIGFuZCBhYm9ydAogICogICAgICAgICAgICAgIHRoZSBvcGVyYXRpb25zIGlmIG5lY2Vzc2FyeS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgc2Noa2RkKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBzY2hrZGQoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc2Noa2RkKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKICAgIFVTSE9SVCBUaW1lT3V0TG9vcDsKIAlVQ0hBUiBzUGhhc2U7CiAKICAgIFBTQ0NCIGN1cnJTQ0NCOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKIAogCiAgICBpZiAoKGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ICE9IERBVEFfT1VUX1NUKSAmJgpAQCAtNzM3OCw3ICs0NDU5LDcgQEAKICAgICAgIH0KIAogCi0gICBob3N0RGF0YVhmZXJBYm9ydChwb3J0LHBfY2FyZCxjdXJyU0NDQik7CisgICBGUFRfaG9zdERhdGFYZmVyQWJvcnQocG9ydCxwX2NhcmQsY3VyclNDQ0IpOwogCiAKICAgIHdoaWxlIChSRF9IQVJQT09OKHBvcnQraHBfc2NzaXNpZykgJiBTQ1NJX0FDSykge30KQEAgLTc0MTIsMjEgKzQ0OTMsMjEgQEAKIAkgICBpZiAoIShjdXJyU0NDQi0+U2NjYl9YZmVyU3RhdGUgJiBGX0FMTF9YRkVSUkVEKSkKICAgICAgICAgIHsKIAkgICAgICBpZiAoY3VyclNDQ0ItPlNjY2JfWGZlclN0YXRlICYgRl9IT1NUX1hGRVJfRElSKSB7Ci0JICAgICAgICAgcGhhc2VEYXRhSW4ocG9ydCxwX2NhcmQpOworCSAgICAgICAgIEZQVF9waGFzZURhdGFJbihwb3J0LHBfY2FyZCk7CiAJICAgICAgCX0KIAogCSAgIAllbHNlIHsKLQkgICAgICAgcGhhc2VEYXRhT3V0KHBvcnQscF9jYXJkKTsKKwkgICAgICAgRlBUX3BoYXNlRGF0YU91dChwb3J0LHBfY2FyZCk7CiAJICAgICAgIAl9CiAJICAgCX0KIAkJZWxzZQogICAgICAgCXsKLQkgICAJc3hmcnAocG9ydCxwX2NhcmQpOworCSAgIAlGUFRfc3hmcnAocG9ydCxwX2NhcmQpOwogCSAgIAlpZiAoIShSRFdfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSkgJgogCQkgICAgICAoQlVTX0ZSRUUgfCBJQ01EX0NPTVAgfCBJVEFSX0RJU0MgfCBSRVNFVCkpKQogICAgICAgICAgewogICAgCQlXUldfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSwgQVVUT19JTlQpOwotCQkgICBwaGFzZURlY29kZShwb3J0LHBfY2FyZCk7CisJCSAgIEZQVF9waGFzZURlY29kZShwb3J0LHBfY2FyZCk7CiAJCSAgIH0KIAkgICB9CiAKQEAgLTc0NDAsMTMgKzQ1MjEsMTMgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc2luaXRzCisgKiBGdW5jdGlvbjogRlBUX3Npbml0cwogICoKICAqIERlc2NyaXB0aW9uOiBTZXR1cCBTQ0NCIG1hbmFnZXIgZmllbGRzIGluIHRoaXMgU0NDQi4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXZvaWQgc2luaXRzKFBTQ0NCIHBfc2NjYiwgVUNIQVIgcF9jYXJkKQorc3RhdGljIHZvaWQgRlBUX3Npbml0cyhQU0NDQiBwX3NjY2IsIFVDSEFSIHBfY2FyZCkKIHsKICAgIFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKIApAQCAtNzQ1NCw3ICs0NTM1LDcgQEAKIAl7CiAJCXJldHVybjsKIAl9Ci0gICBjdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXTsKKyAgIGN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXTsKIAogICAgcF9zY2NiLT5TY2NiX1hmZXJTdGF0ZSAgICAgPSAweDAwOwogICAgcF9zY2NiLT5TY2NiX1hmZXJDbnQgICAgICAgPSBwX3NjY2ItPkRhdGFMZW5ndGg7CkBAIC03NDg1LDcgKzQ1NjYsNyBAQAogCWVsc2Ugc2VuZCBDbWQgd2l0aCBEaXNjb25uZWN0IERpc2FibGUgKi8KIAogLyoKLSAgIGlmICgoKCEoQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICYgRl9TSU5HTEVfREVWSUNFKSkgJiYKKyAgIGlmICgoKCEoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfU0lOR0xFX0RFVklDRSkpICYmCiAgICAgICAoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfQUxMT1dfRElTQykpIHx8CiAgICAgICAoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQUdfUV9UUllJTkcpKSB7CiAqLwpAQCAtNzUxOCw1NSArNDU5OSw2IEBACiB9CiAKIAotI2lkZW50ICIkSWQ6IHBoYXNlLmMgMS4xMSAxOTk3LzAxLzMxIDAyOjA4OjQ5IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBwaGFzZS5jICAkCi0gKgotICogICBEZXNjcmlwdGlvbjogIEZ1bmN0aW9ucyB0byBpbml0aWFsbHkgaGFuZGxlIHRoZSBTQ1NJIGJ1cyBwaGFzZSB3aGVuCi0gKiAgICAgICAgICAgICAgICAgdGhlIHRhcmdldCBhc3NlcnRzIHJlcXVlc3QgKGFuZCB0aGUgYXV0b21hdGlvbiBpcyBub3QKLSAqICAgICAgICAgICAgICAgICBlbmFibGVkIHRvIGhhbmRsZSB0aGUgc2l0dWF0aW9uKS4KLSAqCi0gKiAgICREYXRlOiAxOTk3LzAxLzMxIDAyOjA4OjQ5ICQKLSAqCi0gKiAgICRSZXZpc2lvbjogMS4xMSAkCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotCS8qI2luY2x1ZGUgPGJ1ZGkuaD4qLwotI2VuZGlmCi0KLS8qI2luY2x1ZGUgPHNjY2JtZ3IuaD4qLwotLyojaW5jbHVkZSA8Ymx4MzAuaD4qLwotLyojaW5jbHVkZSA8dGFyZ2V0Lmg+Ki8KLS8qI2luY2x1ZGUgPHNjc2kyLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwotCi0KLS8qCi1leHRlcm4gU0NDQkNBUkQgQkxfQ2FyZFtNQVhfQ0FSRFNdOwotZXh0ZXJuIFNDQ0JNR1JfVEFSX0lORk8gc2NjYk1nclRibFtNQVhfQ0FSRFNdW01BWF9TQ1NJX1RBUl07Ci0KLSNpZiBkZWZpbmVkKE9TMikKLSAgIGV4dGVybiB2b2lkIChmYXIgKnNfUGhhc2VUYmxbOF0pIChVTE9ORywgVUNIQVIpOwotI2Vsc2UKLSAgICNpZiBkZWZpbmVkKERPUykKLSAgICAgIGV4dGVybiB2b2lkICgqc19QaGFzZVRibFs4XSkgKFVTSE9SVCwgVUNIQVIpOwotICAgI2Vsc2UKLSAgICAgIGV4dGVybiB2b2lkICgqc19QaGFzZVRibFs4XSkgKFVMT05HLCBVQ0hBUik7Ci0gICAjZW5kaWYKLSNlbmRpZgotKi8KLQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBGdW5jdGlvbjogUGhhc2UgRGVjb2RlCkBAIC03NTc1LDI5ICs0NjA3LDE3IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlRGVjb2RlKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHBoYXNlRGVjb2RlKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfcGhhc2VEZWNvZGUoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCiB7CiAgICB1bnNpZ25lZCBjaGFyIHBoYXNlX3JlZjsKLSNpZiBkZWZpbmVkKE9TMikKLSAgIHZvaWQgKGZhciAqcGhhc2UpIChVTE9ORywgVUNIQVIpOwotI2Vsc2UKLSAgICNpZiBkZWZpbmVkKERPUykKLSAgICAgIHZvaWQgKCpwaGFzZSkgKFVTSE9SVCwgVUNIQVIpOwotICAgI2Vsc2UKLSAgICAgIHZvaWQgKCpwaGFzZSkgKFVMT05HLCBVQ0hBUik7Ci0gICAjZW5kaWYKLSNlbmRpZgorICAgdm9pZCAoKnBoYXNlKSAoVUxPTkcsIFVDSEFSKTsKIAogCiAgICBESVNBQkxFX0FVVE8ocF9wb3J0KTsKIAogICAgcGhhc2VfcmVmID0gKFVDSEFSKSAoUkRfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZykgJiBTX1NDU0lfUEhaKTsKIAotICAgcGhhc2UgPSBzX1BoYXNlVGJsW3BoYXNlX3JlZl07CisgICBwaGFzZSA9IEZQVF9zX1BoYXNlVGJsW3BoYXNlX3JlZl07CiAKICAgICgqcGhhc2UpKHBfcG9ydCwgcF9jYXJkKTsgICAgICAgICAgIC8qIENhbGwgdGhlIGNvcnJlY3QgcGhhc2UgZnVuYyAqLwogfQpAQCAtNzYxMiwyMCArNDYzMiwxMiBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoT1MyKQotdm9pZCBmYXIgcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlRGF0YU91dChVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2Vsc2UKLXZvaWQgcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbmRpZgotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfcGhhc2VEYXRhT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKIAogICAgUFNDQ0IgY3VyclNDQ0I7CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOworICAgY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwogICAgaWYgKGN1cnJTQ0NCID09IE5VTEwpCiAgICAgICB7CiAgICAgICByZXR1cm47ICAvKiBFeGl0IGlmIE5vIFNDQ0IgcmVjb3JkICovCkBAIC03NjQwLDE0ICs0NjUyLDcgQEAKIAogICAgV1JfSEFSUE9PTihwb3J0K2hwX2F1dG9zdGFydF8wLCAoRU5EX0RBVEErRU5EX0RBVEFfU1RBUlQpKTsKIAotICAgZGF0YVhmZXJQcm9jZXNzb3IocG9ydCwgJkJMX0NhcmRbcF9jYXJkXSk7Ci0KLSNpZiBkZWZpbmVkKE5PQlVHQlVHKQotICAgaWYgKFJEV19IQVJQT09OKChwb3J0K2hwX2ludHN0YXQpKSAmIFhGRVJfQ05UXzApCi0gICAgICBXUldfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSwgWEZFUl9DTlRfMCk7Ci0KLSNlbmRpZgotCisgICBGUFRfZGF0YVhmZXJQcm9jZXNzb3IocG9ydCwgJkZQVF9CTF9DYXJkW3BfY2FyZF0pOwogCiAgICBpZiAoY3VyclNDQ0ItPlNjY2JfWGZlckNudCA9PSAwKSB7CiAKQEAgLTc2NTYsOSArNDY2MSw5IEBACiAJIChjdXJyU0NDQi0+SG9zdFN0YXR1cyA9PSBTQ0NCX0NPTVBMRVRFKSkKIAkgY3VyclNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX0RBVEFfT1ZFUl9SVU47CiAKLSAgICAgIHN4ZnJwKHBvcnQscF9jYXJkKTsKKyAgICAgIEZQVF9zeGZycChwb3J0LHBfY2FyZCk7CiAgICAgICBpZiAoIShSRFdfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSkgJiAoQlVTX0ZSRUUgfCBSRVNFVCkpKQotCSAgICBwaGFzZURlY29kZShwb3J0LHBfY2FyZCk7CisJICAgIEZQVF9waGFzZURlY29kZShwb3J0LHBfY2FyZCk7CiAgICAgICB9CiB9CiAKQEAgLTc2NzEsMjAgKzQ2NzYsMTIgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKE9TMikKLXZvaWQgZmFyIHBoYXNlRGF0YUluKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlRGF0YUluKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBwaGFzZURhdGFJbihVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3BoYXNlRGF0YUluKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKIAogICAgUFNDQ0IgY3VyclNDQ0I7CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOworICAgY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwogCiAgICBpZiAoY3VyclNDQ0IgPT0gTlVMTCkKICAgICAgIHsKQEAgLTc3MDIsNyArNDY5OSw3IEBACiAKICAgIFdSX0hBUlBPT04ocG9ydCtocF9hdXRvc3RhcnRfMCwgKEVORF9EQVRBK0VORF9EQVRBX1NUQVJUKSk7CiAKLSAgIGRhdGFYZmVyUHJvY2Vzc29yKHBvcnQsICZCTF9DYXJkW3BfY2FyZF0pOworICAgRlBUX2RhdGFYZmVyUHJvY2Vzc29yKHBvcnQsICZGUFRfQkxfQ2FyZFtwX2NhcmRdKTsKIAogICAgaWYgKGN1cnJTQ0NCLT5TY2NiX1hmZXJDbnQgPT0gMCkgewogCkBAIC03NzExLDkgKzQ3MDgsOSBAQAogCSAoY3VyclNDQ0ItPkhvc3RTdGF0dXMgPT0gU0NDQl9DT01QTEVURSkpCiAJIGN1cnJTQ0NCLT5Ib3N0U3RhdHVzID0gU0NDQl9EQVRBX09WRVJfUlVOOwogCi0gICAgICBzeGZycChwb3J0LHBfY2FyZCk7CisgICAgICBGUFRfc3hmcnAocG9ydCxwX2NhcmQpOwogICAgICAgaWYgKCEoUkRXX0hBUlBPT04oKHBvcnQraHBfaW50c3RhdCkpICYgKEJVU19GUkVFIHwgUkVTRVQpKSkKLQkgICAgcGhhc2VEZWNvZGUocG9ydCxwX2NhcmQpOworCSAgICBGUFRfcGhhc2VEZWNvZGUocG9ydCxwX2NhcmQpOwogCiAgICAgICB9CiB9CkBAIC03NzI2LDI1ICs0NzIzLDEzIEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChPUzIpCi12b2lkIGZhciBwaGFzZUNvbW1hbmQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBwaGFzZUNvbW1hbmQoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9jYXJkKQotI2Vsc2UKLXZvaWQgcGhhc2VDb21tYW5kKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9waGFzZUNvbW1hbmQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCiB7CiAgICBQU0NDQiBjdXJyU0NDQjsKLSNpZiBkZWZpbmVkKERPUykKLSAgIFVTSE9SVCBjZGJfcmVnOwotI2Vsc2UKICAgIFVMT05HIGNkYl9yZWc7Ci0jZW5kaWYKICAgIFVDSEFSIGk7CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOworICAgY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwogCiAgICBpZiAoY3VyclNDQ0ItPk9wZXJhdGlvbkNvZGUgPT0gUkVTRVRfQ09NTUFORCkgewogCkBAIC03NzkwLDE1ICs0Nzc1LDcgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKE9TMikKLXZvaWQgZmFyIHBoYXNlU3RhdHVzKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlU3RhdHVzKFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBwaGFzZVN0YXR1cyhVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3BoYXNlU3RhdHVzKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKICAgIC8qIFN0YXJ0LXVwIHRoZSBhdXRvbWF0aW9uIHRvIGZpbmlzaCBvZmYgdGhpcyBjb21tYW5kIGFuZCBsZXQgdGhlCiAgICAgICBpc3IgaGFuZGxlIHRoZSBpbnRlcnJ1cHQgZm9yIGNvbW1hbmQgY29tcGxldGUgd2hlbiBpdCBjb21lcyBpbi4KQEAgLTc4MjAsMjEgKzQ3OTcsMTMgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKE9TMikKLXZvaWQgZmFyIHBoYXNlTXNnT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlTXNnT3V0KFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBwaGFzZU1zZ091dChVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3BoYXNlTXNnT3V0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKIAlVQ0hBUiBtZXNzYWdlLHNjc2lJRDsKIAlQU0NDQiBjdXJyU0NDQjsKIAlQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLQljdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKwljdXJyU0NDQiA9IEZQVF9CTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0I7CiAKIAlpZiAoY3VyclNDQ0IgIT0gTlVMTCkgewogCkBAIC03ODQ1LDM0ICs0ODE0LDM0IEBACiAJCXsKIAogCi0JCQljdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3Njc2lJRF07CisJCQljdXJyVGFyX0luZm8gPSAmRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdOwogCQkJY3VyclRhcl9JbmZvLT5UYXJTeW5jQ3RybCA9IDA7Ci0JCQlzc3N5bmN2KHBvcnQsIHNjc2lJRCwgTkFSUk9XX1NDU0ksY3VyclRhcl9JbmZvKTsKKwkJCUZQVF9zc3N5bmN2KHBvcnQsIHNjc2lJRCwgTkFSUk9XX1NDU0ksY3VyclRhcl9JbmZvKTsKIAotCQkJaWYgKHNjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhckVFVmFsdWUgJiBFRV9TWU5DX01BU0spIAorCQkJaWYgKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bc2NzaUlEXS5UYXJFRVZhbHVlICYgRUVfU1lOQ19NQVNLKSAKIAkJCXsKIAotCQkJCXNjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhclN0YXR1cyAmPSB+VEFSX1NZTkNfTUFTSzsKKwkJCQlGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Njc2lJRF0uVGFyU3RhdHVzICY9IH5UQVJfU1lOQ19NQVNLOwogCiAJCQl9CiAKLQkJCWlmIChzY2NiTWdyVGJsW3BfY2FyZF1bc2NzaUlEXS5UYXJFRVZhbHVlICYgRUVfV0lERV9TQ1NJKSAKKwkJCWlmIChGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Njc2lJRF0uVGFyRUVWYWx1ZSAmIEVFX1dJREVfU0NTSSkgCiAJCQl7CiAKLQkJCQlzY2NiTWdyVGJsW3BfY2FyZF1bc2NzaUlEXS5UYXJTdGF0dXMgJj0gflRBUl9XSURFX01BU0s7CisJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhclN0YXR1cyAmPSB+VEFSX1dJREVfTUFTSzsKIAkJCX0KIAogCi0JCQlxdWV1ZUZsdXNoU2NjYihwX2NhcmQsU0NDQl9DT01QTEVURSk7Ci0JCQlTY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCxzY3NpSUQpOworCQkJRlBUX3F1ZXVlRmx1c2hTY2NiKHBfY2FyZCxTQ0NCX0NPTVBMRVRFKTsKKwkJCUZQVF9TY2NiTWdyVGFibGVJbml0VGFyZ2V0KHBfY2FyZCxzY3NpSUQpOwogCQl9CiAJCWVsc2UgaWYgKGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID09IEFCT1JUX1NUKQogCQl7CiAJCQljdXJyU0NDQi0+SG9zdFN0YXR1cyA9IFNDQ0JfQ09NUExFVEU7Ci0JCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gIT0gTlVMTCkKKwkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gIT0gTlVMTCkKIAkJCXsKLQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gPSBOVUxMOwotCQkJCXNjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhclRhZ1FfQ250LS07CisJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7CisJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtzY3NpSURdLlRhclRhZ1FfQ250LS07CiAJCQl9CiAJCQkJCQogCQl9CkBAIC03ODg1LDcgKzQ4NTQsNyBAQAogCQkJewogCQkJCWN1cnJTQ0NCLT5TY2NiX01HUkZsYWdzIHw9IEZfREVWX1NFTEVDVEVEOwogCQkKLQkJCQlzc2VsKHBvcnQscF9jYXJkKTsKKwkJCQlGUFRfc3NlbChwb3J0LHBfY2FyZCk7CiAJCQkJcmV0dXJuOwogCQkJfQogCQl9CkBAIC03ODk1LDcgKzQ4NjQsNyBAQAogCiAJCQlpZiAobWVzc2FnZSA9PSBTTUFCT1JUKQogCi0JCQkJcXVldWVGbHVzaFNjY2IocF9jYXJkLFNDQ0JfQ09NUExFVEUpOworCQkJCUZQVF9xdWV1ZUZsdXNoU2NjYihwX2NhcmQsU0NDQl9DT01QTEVURSk7CiAJCX0KIAogCX0KQEAgLTc5MzAsMjUgKzQ4OTksMjUgQEAKIAkJCWlmIChjdXJyU0NDQiAhPSBOVUxMKSAKIAkJCXsKIAotCQkJCWlmKChCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJCQkJKChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCi0JCQkJCXNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gRkFMU0U7CisJCQkJaWYoKEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKKwkJCQkJKChGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQorCQkJCQlGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSAwOwogCQkJCWVsc2UKLQkJCQkJc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBGQUxTRTsKKwkJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5WzBdID0gMDsKIAotCQkJCXF1ZXVlQ21kQ29tcGxldGUoJkJMX0NhcmRbcF9jYXJkXSxjdXJyU0NDQiwgcF9jYXJkKTsKKwkJCQlGUFRfcXVldWVDbWRDb21wbGV0ZSgmRlBUX0JMX0NhcmRbcF9jYXJkXSxjdXJyU0NDQiwgcF9jYXJkKTsKIAkJCX0KIAogCQkJZWxzZSAKIAkJCXsKLQkJCQlCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgfD0gRl9ORVdfU0NDQl9DTUQ7CisJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKIAkJCX0KIAkJfQogCiAJCWVsc2UgCiAJCXsKIAotCQkJc3hmcnAocG9ydCxwX2NhcmQpOworCQkJRlBUX3N4ZnJwKHBvcnQscF9jYXJkKTsKIAkJfQogCX0KIApAQCAtNzk2Miw3ICs0OTMxLDcgQEAKIAkJfQogCQllbHNlCiAJCXsKLQkJCXN4ZnJwKHBvcnQscF9jYXJkKTsKKwkJCUZQVF9zeGZycChwb3J0LHBfY2FyZCk7CiAJCX0KIAl9CiB9CkBAIC03OTc2LDI1ICs0OTQ1LDE3IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChPUzIpCi12b2lkIGZhciBwaGFzZU1zZ0luKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlTXNnSW4oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHBoYXNlTXNnSW4oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2VuZGlmCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9waGFzZU1zZ0luKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKIAlVQ0hBUiBtZXNzYWdlOwogCVBTQ0NCIGN1cnJTQ0NCOwogCi0JY3VyclNDQ0IgPSBCTF9DYXJkW3BfY2FyZF0uY3VycmVudFNDQ0I7CisJY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwogCi0JaWYgKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfSE9TVF9YRkVSX0FDVCkgCisJaWYgKEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0hPU1RfWEZFUl9BQ1QpIAogCXsKIAotCQlwaGFzZUNoa0ZpZm8ocG9ydCwgcF9jYXJkKTsKKwkJRlBUX3BoYXNlQ2hrRmlmbyhwb3J0LCBwX2NhcmQpOwogCX0KIAogCW1lc3NhZ2UgPSBSRF9IQVJQT09OKHBvcnQraHBfc2NzaWRhdGFfMCk7CkBAIC04MDA4LDEyICs0OTY5LDEyIEBACiAJZWxzZSAKIAl7CiAKLQkJbWVzc2FnZSA9IHNmbShwb3J0LGN1cnJTQ0NCKTsKKwkJbWVzc2FnZSA9IEZQVF9zZm0ocG9ydCxjdXJyU0NDQik7CiAJCWlmIChtZXNzYWdlKSAKIAkJewogCiAKLQkJCXNkZWNtKG1lc3NhZ2UscG9ydCxwX2NhcmQpOworCQkJRlBUX3NkZWNtKG1lc3NhZ2UscG9ydCxwX2NhcmQpOwogCiAJCX0KIAkJZWxzZQpAQCAtODAzNywxOSArNDk5OCwxMSBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoT1MyKQotdm9pZCBmYXIgcGhhc2VJbGxlZ2FsKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHBoYXNlSWxsZWdhbChVU0hPUlQgcG9ydCwgVUNIQVIgcF9jYXJkKQotI2Vsc2UKLXZvaWQgcGhhc2VJbGxlZ2FsKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbmRpZgotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfcGhhc2VJbGxlZ2FsKFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCkKIHsKICAgIFBTQ0NCIGN1cnJTQ0NCOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKIAogICAgV1JfSEFSUE9PTihwb3J0K2hwX3Njc2lzaWcsIFJEX0hBUlBPT04ocG9ydCtocF9zY3Npc2lnKSk7CiAgICBpZiAoY3VyclNDQ0IgIT0gTlVMTCkgewpAQCAtODA3MywxNiArNTAyNiwxMiBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBwaGFzZUNoa0ZpZm8oVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHBoYXNlQ2hrRmlmbyhVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9waGFzZUNoa0ZpZm8oVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgVUxPTkcgeGZlcmNudDsKICAgIFBTQ0NCIGN1cnJTQ0NCOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKIAogICAgaWYgKGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID09IERBVEFfSU5fU1QpCiAgICAgICB7CkBAIC04MTA0LDkgKzUwNTMsOSBAQAogCSAgICAgICAgIFdSV19IQVJQT09OKChwb3J0K2hwX2ludHN0YXQpLCBQQVJJVFkpOwogCSAgICAgICAgIH0KIAotCSAgICAgIGhvc3REYXRhWGZlckFib3J0KHBvcnQscF9jYXJkLGN1cnJTQ0NCKTsKKwkgICAgICBGUFRfaG9zdERhdGFYZmVyQWJvcnQocG9ydCxwX2NhcmQsY3VyclNDQ0IpOwogCi0JICAgICAgZGF0YVhmZXJQcm9jZXNzb3IocG9ydCwgJkJMX0NhcmRbcF9jYXJkXSk7CisJICAgICAgRlBUX2RhdGFYZmVyUHJvY2Vzc29yKHBvcnQsICZGUFRfQkxfQ2FyZFtwX2NhcmRdKTsKIAogCSAgICAgIHdoaWxlKCghKFJEX0hBUlBPT04ocG9ydCtocF94ZmVyc3RhdCkgJiBGSUZPX0VNUFRZKSkgJiYKIAkgICAgICAgICAoUkRfSEFSUE9PTihwb3J0K2hwX2V4dF9zdGF0dXMpICYgQk1fQ01EX0JVU1kpKSB7fQpAQCAtODExNiwyMiArNTA2NSw3IEBACiAKIAogCi0jaWYgZGVmaW5lZChET1MpCi0gICBhc20geyBtb3YgZHgscG9ydDsKLSAgICAgIGFkZCBkeCxocF94ZmVyY250XzI7Ci0gICAgICBpbiAgYWwsZHg7Ci0gICAgICBkZWMgZHg7Ci0gICAgICB4b3IgYWgsYWg7Ci0gICAgICBtb3Ygd29yZCBwdHIgeGZlcmNudCsyLGF4OwotICAgICAgaW4gIGFsLGR4OwotICAgICAgZGVjIGR4OwotICAgICAgbW92IGFoLGFsOwotICAgICAgaW4gIGFsLGR4OwotICAgICAgbW92IHdvcmQgcHRyIHhmZXJjbnQsYXg7Ci0gICAgICB9Ci0jZWxzZQogICAgR0VUX1hGRVJfQ05UKHBvcnQseGZlcmNudCk7Ci0jZW5kaWYKIAogCiAgICBXUl9IQVJQT09OKHBvcnQraHBfeGZlcmNudF8wLCAweDAwKTsKQEAgLTgxNTEsNyArNTA4NSw3IEBACiAgICAgICB9CiAKIAotICAgaG9zdERhdGFYZmVyQWJvcnQocG9ydCxwX2NhcmQsY3VyclNDQ0IpOworICAgRlBUX2hvc3REYXRhWGZlckFib3J0KHBvcnQscF9jYXJkLGN1cnJTQ0NCKTsKIAogCiAgICBXUl9IQVJQT09OKHBvcnQraHBfZmlmb3dyaXRlLCAweDAwKTsKQEAgLTgxNzAsMTUgKzUxMDQsMTEgQEAKICAqICAgICAgICAgICAgICBiZWNhdXNlIG9mIGNvbW1hbmQgY29tcGxldGUgb3IgZnJvbSBhIGRpc2Nvbm5lY3QuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBwaGFzZUJ1c0ZyZWUoVVNIT1JUIHBvcnQsIFVDSEFSIHBfY2FyZCkKLSNlbHNlCi12b2lkIHBoYXNlQnVzRnJlZShVTE9ORyBwb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9waGFzZUJ1c0ZyZWUoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkKQogewogICAgUFNDQ0IgY3VyclNDQ0I7CiAKLSAgIGN1cnJTQ0NCID0gQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOworICAgY3VyclNDQ0IgPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLmN1cnJlbnRTQ0NCOwogCiAgICBpZiAoY3VyclNDQ0IgIT0gTlVMTCkKICAgICAgIHsKQEAgLTgxODksMzUgKzUxMTksMzQgQEAKICAgICAgIGlmIChjdXJyU0NDQi0+T3BlcmF0aW9uQ29kZSA9PSBSRVNFVF9DT01NQU5EKQogICAgICAgICAgewogCi0JCQlpZigoQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCi0JCQkJKChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCi0JICAgCQkgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBGQUxTRTsKKwkJCWlmKChGUFRfQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCisJCQkJKChGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQorCSAgIAkJIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVtjdXJyU0NDQi0+THVuXSA9IDA7CiAJCQllbHNlCi0JCSAgIAkgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBGQUxTRTsKKwkJICAgCSBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSAwOwogCi0JICAgICAgcXVldWVDbWRDb21wbGV0ZSgmQkxfQ2FyZFtwX2NhcmRdLCBjdXJyU0NDQiwgcF9jYXJkKTsKKwkgICAgICBGUFRfcXVldWVDbWRDb21wbGV0ZSgmRlBUX0JMX0NhcmRbcF9jYXJkXSwgY3VyclNDQ0IsIHBfY2FyZCk7CiAKLQkgICAgICBxdWV1ZVNlYXJjaFNlbGVjdCgmQkxfQ2FyZFtwX2NhcmRdLHBfY2FyZCk7CisJICAgICAgRlBUX3F1ZXVlU2VhcmNoU2VsZWN0KCZGUFRfQkxfQ2FyZFtwX2NhcmRdLHBfY2FyZCk7CiAKIAkgICAgICB9CiAKICAgICAgIGVsc2UgaWYoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPT0gU0VMRUNUX1NOX1NUKQogCSAgICAgIHsKLQkgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzIHw9CisJICAgICAgRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgfD0KIAkJCSAgICAgICAgIChVQ0hBUilTWU5DX1NVUFBPUlRFRDsKLQkgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfU1lOQ19NQVNLOworCSAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfU1lOQ19NQVNLOwogCSAgICAgIH0KIAogICAgICAgZWxzZSBpZihjdXJyU0NDQi0+U2NjYl9zY3Npc3RhdCA9PSBTRUxFQ1RfV05fU1QpCiAJICAgICAgewotCSAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgPQotCQkgICAgICAgICAgICAoc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLgorCSAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzID0KKwkJICAgICAgICAgICAgKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uCiAJCSAgIFRhclN0YXR1cyAmIH5XSURFX0VOQUJMRUQpIHwgV0lERV9ORUdPQ0lBVEVEOwogCi0JICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckVFVmFsdWUgJj0gfkVFX1dJREVfU0NTSTsKKwkgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckVFVmFsdWUgJj0gfkVFX1dJREVfU0NTSTsKIAkgICAgICB9CiAKLSNpZiAhZGVmaW5lZChET1MpCiAgICAgICBlbHNlIGlmKGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID09IFNFTEVDVF9RX1NUKQogCSAgICAgIHsKIAkgICAgICAvKiBNYWtlIHN1cmUgdGhpcyBpcyBub3QgYSBwaG9ueSBCVVNfRlJFRS4gIElmIHdlIHdlcmUKQEAgLTgyMjcsOCArNTE1Niw4IEBACiAJICAgICAgaWYgKCghKFJEX0hBUlBPT04ocG9ydCtocF9zY3Npc2lnKSAmIFNDU0lfQlNZKSkgfHwKIAkgICAgICAgICAoUkRXX0hBUlBPT04oKHBvcnQraHBfaW50c3RhdCkpICYgUlNFTCkpCiAJICAgICAgICAgewotCSAgICAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJj0gflRBUl9UQUdfUV9NQVNLOwotCSAgICAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgfD0gVEFHX1FfUkVKRUNUOworCSAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICY9IH5UQVJfVEFHX1FfTUFTSzsKKwkgICAgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyB8PSBUQUdfUV9SRUpFQ1Q7CiAJICAgICAgICAgfQogCiAJICAgICAgZWxzZQpAQCAtODIzNiw3ICs1MTY1LDYgQEAKIAkgICAgICAgICByZXR1cm47CiAJICAgICAgICAgfQogICAgICAgICAgfQotI2VuZGlmCiAKICAgICAgIGVsc2UKIAkgICAgICB7CkBAIC04MjQ4LDE4ICs1MTc2LDE4IEBACiAJICAgICAgICAgY3VyclNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX1BIQVNFX1NFUVVFTkNFX0ZBSUw7CiAJICAgICAgICAgfQogCi0JCQlpZigoQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCi0JCQkJKChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCi0JICAgCQkgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBGQUxTRTsKKwkJCWlmKChGUFRfQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCisJCQkJKChGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKQorCSAgIAkJIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVtjdXJyU0NDQi0+THVuXSA9IDA7CiAJCQllbHNlCi0JCSAgIAkgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBGQUxTRTsKKwkJICAgCSBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSAwOwogCi0JICAgICAgcXVldWVDbWRDb21wbGV0ZSgmQkxfQ2FyZFtwX2NhcmRdLCBjdXJyU0NDQiwgcF9jYXJkKTsKKwkgICAgICBGUFRfcXVldWVDbWRDb21wbGV0ZSgmRlBUX0JMX0NhcmRbcF9jYXJkXSwgY3VyclNDQ0IsIHBfY2FyZCk7CiAJICAgICAgcmV0dXJuOwogCSAgICAgIH0KIAogCi0gICAgICBCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgfD0gRl9ORVdfU0NDQl9DTUQ7CisgICAgICBGUFRfQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfTkVXX1NDQ0JfQ01EOwogCiAgICAgICB9IC8qZW5kIGlmICE9bnVsbCAqLwogfQpAQCAtODI2Nyw0NCArNTE5NSw2IEBACiAKIAogCi0jaWRlbnQgIiRJZDogYXV0b21hdGUuYyAxLjE0IDE5OTcvMDEvMzEgMDI6MTE6NDYgbW9oYW4gRXhwICQiCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKgotICogICBDb3B5cmlnaHQgMTk5NS0xOTk2IGJ5IE15bGV4IENvcnBvcmF0aW9uLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZAotICoKLSAqICAgVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSB1bmRlciBib3RoIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogICBhbmQgYSBCU0Qtc3R5bGUgY29weXJpZ2h0OyBzZWUgTElDRU5TRS5GbGFzaFBvaW50IGZvciBkZXRhaWxzLgotICoKLSAqICAgJFdvcmtmaWxlOiAgIGF1dG9tYXRlLmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgRnVuY3Rpb25zIHJlbGF0aW5nIHRvIHByb2dyYW1taW5nIHRoZSBhdXRvbWF0aW9uIG9mCi0gKiAgICAgICAgICAgICAgICAgdGhlIEhBUlBPT04uCi0gKgotICogICAkRGF0ZTogMTk5Ny8wMS8zMSAwMjoxMTo0NiAkCi0gKgotICogICAkUmV2aXNpb246IDEuMTQgJAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qI2luY2x1ZGUgPGdsb2JhbHMuaD4qLwotCi0jaWYgKEZXX1RZUEU9PV9VQ0JfTUdSXykKLQkvKiNpbmNsdWRlIDxidWRpLmg+Ki8KLSNlbmRpZgotCi0vKiNpbmNsdWRlIDxzY2NibWdyLmg+Ki8KLS8qI2luY2x1ZGUgPGJseDMwLmg+Ki8KLS8qI2luY2x1ZGUgPHRhcmdldC5oPiovCi0vKiNpbmNsdWRlIDxzY3NpMi5oPiovCi0vKiNpbmNsdWRlIDxoYXJwb29uLmg+Ki8KLQotLyoKLWV4dGVybiBTQ0NCQ0FSRCBCTF9DYXJkW01BWF9DQVJEU107Ci1leHRlcm4gU0NDQk1HUl9UQVJfSU5GTyBzY2NiTWdyVGJsW01BWF9DQVJEU11bTUFYX1NDU0lfVEFSXTsKLWV4dGVybiBTQ0NCQ0FSRCBCTF9DYXJkW01BWF9DQVJEU107Ci0qLwotCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIEZ1bmN0aW9uOiBBdXRvIExvYWQgRGVmYXVsdCBNYXAKQEAgLTgzMTIsMTcgKzUyMDIsOSBAQAogICogRGVzY3JpcHRpb246IExvYWQgdGhlIEF1dG9tYXRpb24gUkFNIHdpdGggdGhlIGRlZnVhbHQgbWFwIHZhbHVlcy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIGF1dG9Mb2FkRGVmYXVsdE1hcChVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgYXV0b0xvYWREZWZhdWx0TWFwKFVMT05HIHBfcG9ydCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX2F1dG9Mb2FkRGVmYXVsdE1hcChVTE9ORyBwX3BvcnQpCiB7Ci0jaWYgZGVmaW5lZChET1MpCi0gICBVU0hPUlQgbWFwX2FkZHI7Ci0jZWxzZQogICAgVUxPTkcgbWFwX2FkZHI7Ci0jZW5kaWYKIAogICAgQVJBTV9BQ0NFU1MocF9wb3J0KTsKICAgIG1hcF9hZGRyID0gcF9wb3J0ICsgaHBfYXJhbUJhc2U7CkBAIC04NDI4LDg2ICs1MzEwLDgyIEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIGF1dG9DbWRDbXBsdChVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZWxzZQotdm9pZCBhdXRvQ21kQ21wbHQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9hdXRvQ21kQ21wbHQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2NhcmQpCiB7CiAgICBQU0NDQiBjdXJyU0NDQjsKICAgIFVDSEFSIHN0YXR1c19ieXRlOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKIAogICAgc3RhdHVzX2J5dGUgPSBSRF9IQVJQT09OKHBfcG9ydCtocF9ncF9yZWdfMCk7CiAKLSAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5fQ0EgPSBGQUxTRTsKKyAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOX0NBID0gMDsKIAogICAgaWYgKHN0YXR1c19ieXRlICE9IFNTR09PRCkgewogCiAgICAgICBpZiAoc3RhdHVzX2J5dGUgPT0gU1NRX0ZVTEwpIHsKIAogCi0JCQlpZigoKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgotCQkJCSgoc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKSkKKwkJCWlmKCgoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgorCQkJCSgoRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkpCiAJCQl7Ci0JICAgICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBUUlVFOwotCQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCi0JCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07Ci0JCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4W2N1cnJTQ0NCLT5MdW5dXSA9IE5VTEw7CisJICAgICAgICAgRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gMTsKKwkJCQlpZihGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKKwkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5MdW5EaXNjUV9JZHhbY3VyclNDQ0ItPkx1bl1dID0gTlVMTDsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkgICAgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVswXSA9IFRSVUU7CisJICAgICAgICAgRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5WzBdID0gMTsKIAkJCQlpZihjdXJyU0NDQi0+U2NjYl90YWcpCiAJCQkJewotCQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKLQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtjdXJyU0NDQi0+U2NjYl90YWddID0gTlVMTDsKKwkJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKKwkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7CiAJCQkJfWVsc2UKIAkJCQl7Ci0JCQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCi0JCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5MdW5EaXNjUV9JZHhbMF1dID0gTlVMTDsKKwkJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKKwkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5MdW5EaXNjUV9JZHhbMF1dID0gTlVMTDsKIAkJCQl9CiAJCQl9CiAKICAgICAgICAgIGN1cnJTQ0NCLT5TY2NiX01HUkZsYWdzIHw9IEZfU1RBVFVTTE9BREVEOwogCi0gICAgICAgICBxdWV1ZVNlbGVjdEZhaWwoJkJMX0NhcmRbcF9jYXJkXSxwX2NhcmQpOworICAgICAgICAgRlBUX3F1ZXVlU2VsZWN0RmFpbCgmRlBUX0JMX0NhcmRbcF9jYXJkXSxwX2NhcmQpOwogCiAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAKICAgICAgIGlmKGN1cnJTQ0NCLT5TY2NiX3Njc2lzdGF0ID09IFNFTEVDVF9TTl9TVCkKICAgICAgICAgIHsKLSAgICAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgfD0KKyAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzIHw9CiAgICAgICAgICAgICAoVUNIQVIpU1lOQ19TVVBQT1JURUQ7CiAKLQkgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfU1lOQ19NQVNLOwotICAgICAgICAgQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfTkVXX1NDQ0JfQ01EOworCSAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfU1lOQ19NQVNLOworICAgICAgICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKIAotCQkJaWYoKChCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJCQkoKHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkpCisJCQlpZigoKEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKKwkJCQkoKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpKQogCQkJewotCSAgICAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gVFJVRTsKLQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLkx1bkRpc2NRX0lkeFtjdXJyU0NDQi0+THVuXV0gPSBOVUxMOworCSAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVtjdXJyU0NDQi0+THVuXSA9IDE7CisJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOworCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW0ZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4W2N1cnJTQ0NCLT5MdW5dXSA9IE5VTEw7CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JICAgICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBUUlVFOworCSAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVswXSA9IDE7CiAJCQkJaWYoY3VyclNDQ0ItPlNjY2JfdGFnKQogCQkJCXsKLQkJCQkJaWYoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKLQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07Ci0JCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7CisJCQkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQorCQkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gPSBOVUxMOwogCQkJCX1lbHNlCiAJCQkJewotCQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKLQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4WzBdXSA9IE5VTEw7CisJCQkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQorCQkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW0ZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4WzBdXSA9IE5VTEw7CiAJCQkJfQogCQkJfQogICAgICAgICAgcmV0dXJuOwpAQCAtODUxNywzNCArNTM5NSwzNCBAQAogICAgICAgaWYoY3VyclNDQ0ItPlNjY2Jfc2NzaXN0YXQgPT0gU0VMRUNUX1dOX1NUKQogICAgICAgICAgewogCi0JICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyA9Ci0JICAgICAgICAgKHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS4KKwkgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyA9CisJICAgICAgICAgKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uCiAJICAgICAgICAgVGFyU3RhdHVzICYgfldJREVfRU5BQkxFRCkgfCBXSURFX05FR09DSUFURUQ7CiAKLQkgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfV0lERV9TQ1NJOwotICAgICAgICAgQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfTkVXX1NDQ0JfQ01EOworCSAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmPSB+RUVfV0lERV9TQ1NJOworICAgICAgICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKIAotCQkJaWYoKChCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJCQkoKHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkpCisJCQlpZigoKEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKKwkJCQkoKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpKQogCQkJewotCSAgICAgICAgIHNjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gVFJVRTsKLQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLkx1bkRpc2NRX0lkeFtjdXJyU0NDQi0+THVuXV0gPSBOVUxMOworCSAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVtjdXJyU0NDQi0+THVuXSA9IDE7CisJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOworCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW0ZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4W2N1cnJTQ0NCLT5MdW5dXSA9IE5VTEw7CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JICAgICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBUUlVFOworCSAgICAgICAgIEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVswXSA9IDE7CiAJCQkJaWYoY3VyclNDQ0ItPlNjY2JfdGFnKQogCQkJCXsKLQkJCQkJaWYoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKLQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07Ci0JCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7CisJCQkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQorCQkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gPSBOVUxMOwogCQkJCX1lbHNlCiAJCQkJewotCQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKLQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4WzBdXSA9IE5VTEw7CisJCQkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQorCQkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW0ZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4WzBdXSA9IE5VTEw7CiAJCQkJfQogCQkJfQogICAgICAgICAgcmV0dXJuOwpAQCAtODU1MywxNSArNTQzMSwxNSBAQAogICAgICAKIAkgICBpZiAoc3RhdHVzX2J5dGUgPT0gU1NDSEVDSykgCiAJCXsKLQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfRE9fUkVORUdPKQorCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfRE9fUkVORUdPKQogCQkJewotCQkJCWlmIChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmIEVFX1NZTkNfTUFTSykKKwkJCQlpZiAoRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJFRVZhbHVlICYgRUVfU1lOQ19NQVNLKQogCQkJCXsKLQkJCQkJc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmPSB+VEFSX1NZTkNfTUFTSzsKKwkJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJj0gflRBUl9TWU5DX01BU0s7CiAJCQkJfQotCQkJCWlmIChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyRUVWYWx1ZSAmIEVFX1dJREVfU0NTSSkKKwkJCQlpZiAoRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJFRVZhbHVlICYgRUVfV0lERV9TQ1NJKQogCQkJCXsKLQkJCQkJc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmPSB+VEFSX1dJREVfTUFTSzsKKwkJCQkJRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJTdGF0dXMgJj0gflRBUl9XSURFX01BU0s7CiAJCQkJfQogCQkJfQogCQl9CkBAIC04NTczLDEzNSArNTQ1MSw2MSBAQAogCiAgICAgICAgICBpZiAoc3RhdHVzX2J5dGUgPT0gU1NDSEVDSykgewogCi0gICAgICAgICAgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOX0NBCi0gICAgICAgICAgICAgICA9IFRSVUU7CisgICAgICAgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTl9DQQorICAgICAgICAgICAgICAgPSAxOwogICAgICAKIAotI2lmIChGV19UWVBFPT1fU0NDQl9NR1JfKQogICAgICAgICAgICAgaWYgKGN1cnJTQ0NCLT5SZXF1ZXN0U2Vuc2VMZW5ndGggIT0gTk9fQVVUT19SRVFVRVNUX1NFTlNFKSB7CiAKICAgICAgICAgICAgICAgIGlmIChjdXJyU0NDQi0+UmVxdWVzdFNlbnNlTGVuZ3RoID09IDApCiAgICAgICAgICAgICAgICAgICBjdXJyU0NDQi0+UmVxdWVzdFNlbnNlTGVuZ3RoID0gMTQ7CiAKLSAgICAgICAgICAgICAgIHNzZW5zcygmQkxfQ2FyZFtwX2NhcmRdKTsKLSAgICAgICAgICAgICAgIEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKKyAgICAgICAgICAgICAgIEZQVF9zc2Vuc3MoJkZQVF9CTF9DYXJkW3BfY2FyZF0pOworICAgICAgICAgICAgICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKIAotIAkJCQkJaWYoKChCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJCQkJCSgoc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKSkKKyAJCQkJCWlmKCgoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgorCQkJCQkJKChGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKSkKIAkJCQkJewotCQkJICAgICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBUUlVFOwotCQkJCQkJaWYoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKLQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uTHVuRGlzY1FfSWR4W2N1cnJTQ0NCLT5MdW5dXSA9IE5VTEw7CisJCQkgICAgICAgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSAxOworCQkJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07CisJCQkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLkx1bkRpc2NRX0lkeFtjdXJyU0NDQi0+THVuXV0gPSBOVUxMOwogCQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJewotCSAgIAkJICAgICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBUUlVFOworCSAgIAkJICAgICAgRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5WzBdID0gMTsKIAkJCQkJCWlmKGN1cnJTQ0NCLT5TY2NiX3RhZykKIAkJCQkJCXsKLQkJCQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7CisJCQkJCQkJaWYoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCisJCQkJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOworCQkJCQkJCUZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW2N1cnJTQ0NCLT5TY2NiX3RhZ10gPSBOVUxMOwogCQkJCQkJfWVsc2UKIAkJCQkJCXsKLQkJCQkJCQlpZihCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQotCQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLkx1bkRpc2NRX0lkeFswXV0gPSBOVUxMOworCQkJCQkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudCAhPSAwKQorCQkJCQkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKKwkJCQkJCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLkx1bkRpc2NRX0lkeFswXV0gPSBOVUxMOwogCQkJCQkJfQogCQkJCQl9CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9Ci0jZWxzZQotCQkJCSAgIGlmICgoIShjdXJyU0NDQi0+U2NjYl91Y2JfcHRyLT5VQ0Jfb3Bjb2RlICYgT1BDX05PX0FVVE9fU0VOU0UpKSAmJgotCQkJICAgCQkoY3VyclNDQ0ItPlJlcXVlc3RTZW5zZUxlbmd0aCkpCi0JCQkJICAgewotCQkJCSAgIAlzc2Vuc3MoJkJMX0NhcmRbcF9jYXJkXSk7Ci0JCQkJICAgICAgQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfTkVXX1NDQ0JfQ01EOwotCi0JCQkJCQlpZigoKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgotCQkJCQkJCSgoc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhclN0YXR1cyAmIFRBUl9UQUdfUV9NQVNLKSAhPSBUQUdfUV9UUllJTkcpKSkKLQkJCQkJCXsKLQkgICAgICAJCQkgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVtjdXJyU0NDQi0+THVuXSA9IFRSVUU7Ci0JCQkJCQkJaWYoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKLQkJCQkJCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQtLTsKLQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5MdW5EaXNjUV9JZHhbY3VyclNDQ0ItPkx1bl1dID0gTlVMTDsKLQkJCQkJCX0KLQkJCQkJCWVsc2UKLQkJCQkJCXsKLQkgICAgICAJCQkgICBzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyTFVOQnVzeVswXSA9IFRSVUU7Ci0JCQkJCQkJaWYoY3VyclNDQ0ItPlNjY2JfdGFnKQotCQkJCQkJCXsKLQkJCQkJCQkJaWYoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRQ291bnQgIT0gMCkKLQkJCQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50LS07Ci0JCQkJCQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclNDQ0ItPlNjY2JfdGFnXSA9IE5VTEw7Ci0JCQkJCQkJfWVsc2UKLQkJCQkJCQl7Ci0JCQkJCQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5kaXNjUUNvdW50ICE9IDApCi0JCQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FDb3VudC0tOwotCQkJCQkJCQlCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5MdW5EaXNjUV9JZHhbMF1dID0gTlVMTDsKLQkJCQkJCQl9Ci0JCQkJCQl9Ci0JCQkJICAgICAgcmV0dXJuOwotCQkJCSAgIH0KLQotI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICB9CiAKIAotCWlmKChCTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJKChzY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCi0JICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbY3VyclNDQ0ItPkx1bl0gPSBGQUxTRTsKKwlpZigoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgorCQkoKEZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bY3VyclNDQ0ItPlRhcmdJRF0uVGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCisJICAgRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtjdXJyU0NDQi0+VGFyZ0lEXS5UYXJMVU5CdXN5W2N1cnJTQ0NCLT5MdW5dID0gMDsKIAllbHNlCi0JICAgc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSBGQUxTRTsKKwkgICBGUFRfc2NjYk1nclRibFtwX2NhcmRdW2N1cnJTQ0NCLT5UYXJnSURdLlRhckxVTkJ1c3lbMF0gPSAwOwogCiAKLSAgIHF1ZXVlQ21kQ29tcGxldGUoJkJMX0NhcmRbcF9jYXJkXSwgY3VyclNDQ0IsIHBfY2FyZCk7CisgICBGUFRfcXVldWVDbWRDb21wbGV0ZSgmRlBUX0JMX0NhcmRbcF9jYXJkXSwgY3VyclNDQ0IsIHBfY2FyZCk7CiB9Ci0jaWRlbnQgIiRJZDogYnVzbXN0ci5jIDEuOCAxOTk3LzAxLzMxIDAyOjEwOjI3IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBidXNtc3RyLmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgRnVuY3Rpb25zIHRvIHN0YXJ0LCBzdG9wLCBhbmQgYWJvcnQgQnVzTWFzdGVyIG9wZXJhdGlvbnMuCi0gKgotICogICAkRGF0ZTogMTk5Ny8wMS8zMSAwMjoxMDoyNyAkCi0gKgotICogICAkUmV2aXNpb246IDEuOCAkCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotCS8qI2luY2x1ZGUgPGJ1ZGkuaD4qLwotI2VuZGlmCi0KLS8qI2luY2x1ZGUgPHNjY2JtZ3IuaD4qLwotLyojaW5jbHVkZSA8Ymx4MzAuaD4qLwotLyojaW5jbHVkZSA8dGFyZ2V0Lmg+Ki8KLS8qI2luY2x1ZGUgPHNjc2kyLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwotCi0KLS8qCi1leHRlcm4gU0NDQkNBUkQgQkxfQ2FyZFtNQVhfQ0FSRFNdOwotZXh0ZXJuIFNDQ0JNR1JfVEFSX0lORk8gc2NjYk1nclRibFtNQVhfQ0FSRFNdW01BWF9TQ1NJX1RBUl07Ci0qLwogCiAjZGVmaW5lIFNIT1JUX1dBSVQgICAweDAwMDAwMDBGCiAjZGVmaW5lIExPTkdfV0FJVCAgICAweDAwMDBGRkZGTAogCi0jaWYgZGVmaW5lZChCVUdCVUcpCi12b2lkIERlYnVnX0xvYWQoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX2J1Z19kYXRhKTsKLSNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKQEAgLTg3MjEsMTEgKzU1MjUsNyBAQAogICogICAgICAgICAgICAgIAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIGRhdGFYZmVyUHJvY2Vzc29yKFVTSE9SVCBwb3J0LCBQU0NDQmNhcmQgcEN1cnJDYXJkKQotI2Vsc2UKLXZvaWQgZGF0YVhmZXJQcm9jZXNzb3IoVUxPTkcgcG9ydCwgUFNDQ0JjYXJkIHBDdXJyQ2FyZCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX2RhdGFYZmVyUHJvY2Vzc29yKFVMT05HIHBvcnQsIFBTQ0NCY2FyZCBwQ3VyckNhcmQpCiB7CiAgICBQU0NDQiBjdXJyU0NDQjsKIApAQCAtODc0MSw3ICs1NTQxLDcgQEAKICAJCQkJfQogCQkJcEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX0hPU1RfWEZFUl9BQ1Q7CiAgICAgICAgICAKLSAgICAgICAgIGJ1c01zdHJTR0RhdGFYZmVyU3RhcnQocG9ydCwgY3VyclNDQ0IpOworICAgICAgICAgRlBUX2J1c01zdHJTR0RhdGFYZmVyU3RhcnQocG9ydCwgY3VyclNDQ0IpOwogCQkJfQogCiAgICAgICBlbHNlCkBAIC04NzUwLDcgKzU1NTAsNyBAQAogCQkJCXsKIAkJCQlwQ3VyckNhcmQtPmdsb2JhbEZsYWdzIHw9IEZfSE9TVF9YRkVSX0FDVDsKICAgICAgICAgIAotICAgICAgICAgCWJ1c01zdHJEYXRhWGZlclN0YXJ0KHBvcnQsIGN1cnJTQ0NCKTsKKyAgICAgICAgIAlGUFRfYnVzTXN0ckRhdGFYZmVyU3RhcnQocG9ydCwgY3VyclNDQ0IpOwogICAgICAgICAgCX0KIAkJCX0KIH0KQEAgLTg3NjMsMjAgKzU1NjMsMTIgQEAKICAqIERlc2NyaXB0aW9uOgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgYnVzTXN0clNHRGF0YVhmZXJTdGFydChVU0hPUlQgcF9wb3J0LCBQU0NDQiBwY3VyclNDQ0IpCi0jZWxzZQotdm9pZCBidXNNc3RyU0dEYXRhWGZlclN0YXJ0KFVMT05HIHBfcG9ydCwgUFNDQ0IgcGN1cnJTQ0NCKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfYnVzTXN0clNHRGF0YVhmZXJTdGFydChVTE9ORyBwX3BvcnQsIFBTQ0NCIHBjdXJyU0NDQikKIHsKICAgIFVMT05HIGNvdW50LGFkZHIsdG1wU0dDbnQ7CiAgICBVSU5UIHNnX2luZGV4OwogICAgVUNIQVIgc2dfY291bnQsIGk7Ci0jaWYgZGVmaW5lZChET1MpCi0gICBVU0hPUlQgcmVnX29mZnNldDsKLSNlbHNlCiAgICBVTE9ORyByZWdfb2Zmc2V0OwotI2VuZGlmCiAKIAogICAgaWYgKHBjdXJyU0NDQi0+U2NjYl9YZmVyU3RhdGUgJiBGX0hPU1RfWEZFUl9ESVIpIHsKQEAgLTg4MDIsMTcgKzU1OTQsNiBAQAogICAgd2hpbGUgKChzZ19jb3VudCA8IChVQ0hBUilTR19CVUZfQ05UKSAmJgogICAgICAgKChVTE9ORykoc2dfaW5kZXggKiAoVUlOVClTR19FTEVNRU5UX1NJWkUpIDwgcGN1cnJTQ0NCLT5EYXRhTGVuZ3RoKSApIHsKIAotI2lmIGRlZmluZWQoQ09NUElMRVJfMTZfQklUKSAmJiAhZGVmaW5lZChET1MpCi0gICAgICB0bXBTR0NudCArPSAqKCgoVUxPTkcgZmFyICopcGN1cnJTQ0NCLT5EYXRhUG9pbnRlcikrCi0gICAgICAgICAoc2dfaW5kZXggKiAyKSk7Ci0KLSAgICAgIGNvdW50IHw9ICooKChVTE9ORyBmYXIgKilwY3VyclNDQ0ItPkRhdGFQb2ludGVyKSsKLSAgICAgICAgIChzZ19pbmRleCAqIDIpKTsKLQotICAgICAgYWRkciA9ICooKChVTE9ORyBmYXIgKilwY3VyclNDQ0ItPkRhdGFQb2ludGVyKSsKLSAgICAgICAgICgoc2dfaW5kZXggKiAyKSArIDEpKTsKLQotI2Vsc2UKICAgICAgIHRtcFNHQ250ICs9ICooKChVTE9ORyAqKXBjdXJyU0NDQi0+RGF0YVBvaW50ZXIpKwogICAgICAgICAgKHNnX2luZGV4ICogMikpOwogCkBAIC04ODIxLDcgKzU2MDIsNiBAQAogCiAgICAgICBhZGRyID0gKigoKFVMT05HICopcGN1cnJTQ0NCLT5EYXRhUG9pbnRlcikrCiAgICAgICAgICAoKHNnX2luZGV4ICogMikgKyAxKSk7Ci0jZW5kaWYKIAogCiAgICAgICBpZiAoKCFzZ19jb3VudCkgJiYgKHBjdXJyU0NDQi0+U2NjYl9TR29mZnNldCkpIHsKQEAgLTg4ODgsMTEgKzU2NjgsNyBAQAogICogRGVzY3JpcHRpb246IAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgYnVzTXN0ckRhdGFYZmVyU3RhcnQoVVNIT1JUIHBfcG9ydCwgUFNDQ0IgcGN1cnJTQ0NCKQotI2Vsc2UKLXZvaWQgYnVzTXN0ckRhdGFYZmVyU3RhcnQoVUxPTkcgcF9wb3J0LCBQU0NDQiBwY3VyclNDQ0IpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9idXNNc3RyRGF0YVhmZXJTdGFydChVTE9ORyBwX3BvcnQsIFBTQ0NCIHBjdXJyU0NDQikKIHsKICAgIFVMT05HIGFkZHIsY291bnQ7CiAKQEAgLTg5MDksMzcgKzU2ODUsNyBAQAogCiAgICAgICB9CiAKLSNpZiBkZWZpbmVkKERPUykKLSAgIGFzbSB7IG1vdiBkeCxwX3BvcnQ7Ci0gICAgICAgICBtb3YgYXgsd29yZCBwdHIgY291bnQ7Ci0gICAgICAgICBhZGQgZHgsaHBfeGZlcl9jbnRfbG87Ci0gICAgICAgICBvdXQgZHgsYWw7Ci0gICAgICAgICBpbmMgZHg7Ci0gICAgICAgICB4Y2hnIGFoLGFsCi0gICAgICAgICBvdXQgZHgsYWw7Ci0gICAgICAgICBpbmMgZHg7Ci0gICAgICAgICBtb3YgYXgsd29yZCBwdHIgY291bnQrMjsKLSAgICAgICAgIG91dCBkeCxhbDsKLSAgICAgICAgIGluYyBkeDsKLSAgICAgICAgIGluYyBkeDsKLSAgICAgICAgIG1vdiBheCx3b3JkIHB0ciBhZGRyOwotICAgICAgICAgb3V0IGR4LGFsOwotICAgICAgICAgaW5jIGR4OwotICAgICAgICAgeGNoZyBhaCxhbAotICAgICAgICAgb3V0IGR4LGFsOwotICAgICAgICAgaW5jIGR4OwotICAgICAgICAgbW92IGF4LHdvcmQgcHRyIGFkZHIrMjsKLSAgICAgICAgIG91dCBkeCxhbDsKLSAgICAgICAgIGluYyBkeDsKLSAgICAgICAgIHhjaGcgYWgsYWwKLSAgICAgICAgIG91dCBkeCxhbDsKLSAgICAgICAgIH0KLQotICAgV1JfSEFSUDMyKHBfcG9ydCxocF94ZmVyY250XzAsY291bnQpOwotCi0jZWxzZQogICAgSFBfU0VUVVBfQUREUl9DTlQocF9wb3J0LGFkZHIsY291bnQpOwotI2VuZGlmCiAKIAogICAgaWYgKHBjdXJyU0NDQi0+U2NjYl9YZmVyU3RhdGUgJiBGX0hPU1RfWEZFUl9ESVIpIHsKQEAgLTg5NzUsMTEgKzU3MjEsNyBAQAogICogICAgICAgICAgICAgICBjb21tYW5kIGJ1c3kgaXMgYWxzbyB0aW1lIG91dCwgaXQnbGwganVzdCBnaXZlIHVwLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIGJ1c01zdHJUaW1lT3V0KFVTSE9SVCBwX3BvcnQpCi0jZWxzZQotVUNIQVIgYnVzTXN0clRpbWVPdXQoVUxPTkcgcF9wb3J0KQotI2VuZGlmCitzdGF0aWMgVUNIQVIgRlBUX2J1c01zdHJUaW1lT3V0KFVMT05HIHBfcG9ydCkKIHsKICAgIFVMT05HIHRpbWVvdXQ7CiAKQEAgLTkwMDEsMTEgKzU3NDMsMTEgQEAKICAgIFJEX0hBUlBPT04ocF9wb3J0K2hwX2ludF9zdGF0dXMpOyAgICAgICAgICAgLypDbGVhciBjb21tYW5kIGNvbXBsZXRlICovCiAKICAgIGlmIChSRF9IQVJQT09OKHBfcG9ydCtocF9leHRfc3RhdHVzKSAmIEJNX0NNRF9CVVNZKSB7Ci0gICAgICByZXR1cm4oVFJVRSk7CisgICAgICByZXR1cm4oMSk7CiAgICAgICB9CiAKICAgIGVsc2UgewotICAgICAgcmV0dXJuKEZBTFNFKTsKKyAgICAgIHJldHVybigwKTsKICAgICAgIH0KIH0KIApAQCAtOTAxNywxOCArNTc1OSwxNCBAQAogICogRGVzY3JpcHRpb246IEFib3J0IGFueSBpbiBwcm9ncmVzcyB0cmFuc2Zlci4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIGhvc3REYXRhWGZlckFib3J0KFVTSE9SVCBwb3J0LCBVQ0hBUiBwX2NhcmQsIFBTQ0NCIHBDdXJyU0NDQikKLSNlbHNlCi12b2lkIGhvc3REYXRhWGZlckFib3J0KFVMT05HIHBvcnQsIFVDSEFSIHBfY2FyZCwgUFNDQ0IgcEN1cnJTQ0NCKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfaG9zdERhdGFYZmVyQWJvcnQoVUxPTkcgcG9ydCwgVUNIQVIgcF9jYXJkLCBQU0NDQiBwQ3VyclNDQ0IpCiB7CiAKICAgIFVMT05HIHRpbWVvdXQ7CiAgICBVTE9ORyByZW1haW5fY250OwogICAgVUlOVCBzZ19wdHI7CiAKLSAgIEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmPSB+Rl9IT1NUX1hGRVJfQUNUOworICAgRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmPSB+Rl9IT1NUX1hGRVJfQUNUOwogCiAgICBpZiAocEN1cnJTQ0NCLT5TY2NiX1hmZXJTdGF0ZSAmIEZfQVVUT19TRU5TRSkgewogCkBAIC05MDQ0LDcgKzU3ODIsNyBAQAogCiAgICAgICAgICBpZiAoUkRfSEFSUE9PTihwb3J0K2hwX2V4dF9zdGF0dXMpICYgQk1fQ01EX0JVU1kpIHsKIAotICAgICAgICAgICAgaWYgKGJ1c01zdHJUaW1lT3V0KHBvcnQpKSB7CisgICAgICAgICAgICBpZiAoRlBUX2J1c01zdHJUaW1lT3V0KHBvcnQpKSB7CiAKICAgICAgICAgICAgICAgIGlmIChwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPT0gMHgwMCkKIApAQCAtOTA2MCwxMCArNTc5OCw2IEBACiAKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIHBDdXJyU0NDQi0+SG9zdFN0YXR1cyA9IFNDQ0JfQk1fRVJSOwotI2lmIGRlZmluZWQoQlVHQlVHKQotICAgICAgICAgICAgICAgICAgICAgV1JfSEFSUE9PTihwb3J0K2hwX2R1YWxfYWRkcl9sbywKLSAgICAgICAgICAgICAgICAgICAgICAgIFJEX0hBUlBPT04ocG9ydCtocF9leHRfc3RhdHVzKSk7Ci0jZW5kaWYKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgIH0KQEAgLTkwOTIsMjIgKzU4MjYsMTIgQEAKIAogICAgICAgICAgICAgc2dfcHRyLS07CiAKLSNpZiBkZWZpbmVkKENPTVBJTEVSXzE2X0JJVCkgJiYgIWRlZmluZWQoRE9TKQotICAgICAgICAgICAgaWYgKHJlbWFpbl9jbnQgPiAoVUxPTkcpKCooKChVTE9ORyBmYXIgKilwQ3VyclNDQ0ItPgotICAgICAgICAgICAgICAgRGF0YVBvaW50ZXIpICsgKHNnX3B0ciAqIDIpKSkpIHsKLQotICAgICAgICAgICAgICAgcmVtYWluX2NudCAtPSAoVUxPTkcpKCooKChVTE9ORyBmYXIgKilwQ3VyclNDQ0ItPgotICAgICAgICAgICAgICAgICAgRGF0YVBvaW50ZXIpICsgKHNnX3B0ciAqIDIpKSk7Ci0gICAgICAgICAgICAgICB9Ci0KLSNlbHNlCiAgICAgICAgICAgICBpZiAocmVtYWluX2NudCA+IChVTE9ORykoKigoKFVMT05HICopcEN1cnJTQ0NCLT4KICAgICAgICAgICAgICAgIERhdGFQb2ludGVyKSArIChzZ19wdHIgKiAyKSkpKSB7CiAKICAgICAgICAgICAgICAgIHJlbWFpbl9jbnQgLT0gKFVMT05HKSgqKCgoVUxPTkcgKilwQ3VyclNDQ0ItPgogICAgICAgICAgICAgICAgICAgRGF0YVBvaW50ZXIpICsgKHNnX3B0ciAqIDIpKSk7CiAgICAgICAgICAgICAgICB9Ci0jZW5kaWYKIAogICAgICAgICAgICAgZWxzZSB7CiAKQEAgLTkxNDcsNyArNTg3MSw3IEBACiAKICAgICAgICAgIGlmIChSRF9IQVJQT09OKHBvcnQraHBfZXh0X3N0YXR1cykgJiBCTV9DTURfQlVTWSkgewogCi0gICAgICAgICAgICBidXNNc3RyVGltZU91dChwb3J0KTsKKyAgICAgICAgICAgIEZQVF9idXNNc3RyVGltZU91dChwb3J0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgZWxzZSB7CkBAIC05MTU5LDEwICs1ODgzLDYgQEAKICAgICAgICAgICAgICAgICAgIGlmIChwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPT0gMHgwMCkgewogCiAgICAgICAgICAgICAgICAgICAgICBwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX0JNX0VSUjsKLSNpZiBkZWZpbmVkKEJVR0JVRykKLSAgICAgICAgICAgICAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9kdWFsX2FkZHJfbG8sCi0gICAgICAgICAgICAgICAgICAgICAgICBSRF9IQVJQT09OKHBvcnQraHBfZXh0X3N0YXR1cykpOwotI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CkBAIC05MjAzLDcgKzU5MjMsNyBAQAogICAgICAgICAgICAgICAgICAgcEN1cnJTQ0NCLT5Ib3N0U3RhdHVzID0gU0NDQl9CTV9FUlI7CiAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgIGJ1c01zdHJUaW1lT3V0KHBvcnQpOworICAgICAgICAgICAgICAgRlBUX2J1c01zdHJUaW1lT3V0KHBvcnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC05MjE0LDEwICs1OTM0LDYgQEAKICAgICAgICAgICAgICAgIGlmIChwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPT0gMHgwMCkgewogCiAgICAgICAgICAgICAgICAgICBwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX0JNX0VSUjsKLSNpZiBkZWZpbmVkKEJVR0JVRykKLSAgICAgICAgICAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9kdWFsX2FkZHJfbG8sCi0gICAgICAgICAgICAgICAgICAgICBSRF9IQVJQT09OKHBvcnQraHBfZXh0X3N0YXR1cykpOwotI2VuZGlmCiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC05MjQxLDcgKzU5NTcsNyBAQAogICAgICAgICAgICAgICAgcEN1cnJTQ0NCLT5Ib3N0U3RhdHVzID0gU0NDQl9CTV9FUlI7CiAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGJ1c01zdHJUaW1lT3V0KHBvcnQpOworICAgICAgICAgICAgRlBUX2J1c01zdHJUaW1lT3V0KHBvcnQpOwogICAgICAgICAgICAgfQogICAgICAgICAgfQogCkBAIC05MjUzLDEwICs1OTY5LDYgQEAKICAgICAgICAgICAgIGlmIChwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPT0gMHgwMCkgewogCiAgICAgICAgICAgICAgICBwQ3VyclNDQ0ItPkhvc3RTdGF0dXMgPSBTQ0NCX0JNX0VSUjsKLSNpZiBkZWZpbmVkKEJVR0JVRykKLSAgICAgICAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9kdWFsX2FkZHJfbG8sCi0gICAgICAgICAgICAgICAgICBSRF9IQVJQT09OKHBvcnQraHBfZXh0X3N0YXR1cykpOwotI2VuZGlmCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTkzMDUsMTUgKzYwMTcsMTEgQEAKICAqICAgICAgICAgICAgICBwb2ludGVycyBtZXNzYWdlLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLXZvaWQgaG9zdERhdGFYZmVyUmVzdGFydChQU0NDQiBjdXJyU0NDQikKK3N0YXRpYyB2b2lkIEZQVF9ob3N0RGF0YVhmZXJSZXN0YXJ0KFBTQ0NCIGN1cnJTQ0NCKQogewogICAgVUxPTkcgZGF0YV9jb3VudDsKICAgIFVJTlQgIHNnX2luZGV4OwotI2lmIGRlZmluZWQoQ09NUElMRVJfMTZfQklUKSAmJiAhZGVmaW5lZChET1MpCi0gICBVTE9ORyBmYXIgKnNnX3B0cjsKLSNlbHNlCiAgICBVTE9ORyAqc2dfcHRyOwotI2VuZGlmCiAKICAgIGlmIChjdXJyU0NDQi0+U2NjYl9YZmVyU3RhdGUgJiBGX1NHX1hGRVIpIHsKIApAQCAtOTMyMiwxMSArNjAzMCw3IEBACiAgICAgICBzZ19pbmRleCA9IDB4ZmZmZjsgICAgICAgICAvKkluZGV4IGJ5IGxvbmcgd29yZHMgaW50byBzZyBsaXN0LiAqLwogICAgICAgZGF0YV9jb3VudCA9IDA7ICAgICAgICAgICAgLypSdW5uaW5nIGNvdW50IG9mIFNHIHhmZXIgY291bnRzLiAqLwogCi0jaWYgZGVmaW5lZChDT01QSUxFUl8xNl9CSVQpICYmICFkZWZpbmVkKERPUykKLSAgICAgIHNnX3B0ciA9IChVTE9ORyBmYXIgKiljdXJyU0NDQi0+RGF0YVBvaW50ZXI7Ci0jZWxzZQogICAgICAgc2dfcHRyID0gKFVMT05HICopY3VyclNDQ0ItPkRhdGFQb2ludGVyOwotI2VuZGlmCiAKICAgICAgIHdoaWxlIChkYXRhX2NvdW50IDwgY3VyclNDQ0ItPlNjY2JfQVRDKSB7CiAKQEAgLTkzNTEsNzggKzYwNTUsMjggQEAKICAgICAgIGN1cnJTQ0NCLT5TY2NiX1hmZXJDbnQgPSBjdXJyU0NDQi0+RGF0YUxlbmd0aCAtIGN1cnJTQ0NCLT5TY2NiX0FUQzsKICAgICAgIH0KIH0KLSNpZGVudCAiJElkOiBzY2FtLmMgMS4xNyAxOTk3LzAzLzIwIDIzOjQ5OjM3IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBzY2FtLmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgRnVuY3Rpb25zIHJlbGF0aW5nIHRvIGhhbmRsaW5nIG9mIHRoZSBTQ0FNIHNlbGVjdGlvbgotICogICAgICAgICAgICAgICAgIGFuZCB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB0aGUgU0NTSSBJRHMgdG8gYmUgYXNzaWduZWQKLSAqICAgICAgICAgICAgICAgICB0byBhbGwgcGVyc3BlY3RpdmUgU0NTSSB0YXJnZXRzLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDMvMjAgMjM6NDk6MzcgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjE3ICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiNpbmNsdWRlIDxnbG9iYWxzLmg+Ki8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JLyojaW5jbHVkZSA8YnVkaS5oPiovCi0jZW5kaWYKLQotLyojaW5jbHVkZSA8c2NjYm1nci5oPiovCi0vKiNpbmNsdWRlIDxibHgzMC5oPiovCi0vKiNpbmNsdWRlIDx0YXJnZXQuaD4qLwotLyojaW5jbHVkZSA8c2NzaTIuaD4qLwotLyojaW5jbHVkZSA8ZWVwcm9tLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwogCiAKIAotLyoKLWV4dGVybiBTQ0NCTUdSX1RBUl9JTkZPIHNjY2JNZ3JUYmxbTUFYX0NBUkRTXVtNQVhfU0NTSV9UQVJdOwotZXh0ZXJuIFNDQ0JDQVJEIEJMX0NhcmRbTUFYX0NBUkRTXTsKLWV4dGVybiBTQ0NCU0NBTV9JTkZPIHNjYW1JbmZvW01BWF9TQ1NJX1RBUl07Ci1leHRlcm4gTlZSQU1JTkZPIG52UmFtSW5mb1tNQVhfTUJfQ0FSRFNdOwotI2lmIGRlZmluZWQoRE9TKSB8fCBkZWZpbmVkKE9TMikKLWV4dGVybiBVQ0hBUiB0ZW1wX2lkX3N0cmluZ1tJRF9TVFJJTkdfTEVOR1RIXTsKLSNlbmRpZgotZXh0ZXJuIFVDSEFSIHNjYW1IQVN0cmluZ1tdOwotKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjaW5pCisgKiBGdW5jdGlvbjogRlBUX3NjaW5pCiAgKgogICogRGVzY3JpcHRpb246IFNldHVwIGFsbCBkYXRhIHN0cnVjdHVyZXMgbmVjZXNzYXJ5IGZvciBTQ0FNIHNlbGVjdGlvbi4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXZvaWQgc2NpbmkoVUNIQVIgcF9jYXJkLCBVQ0hBUiBwX291cl9pZCwgVUNIQVIgcF9wb3dlcl91cCkKK3N0YXRpYyB2b2lkIEZQVF9zY2luaShVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfb3VyX2lkLCBVQ0hBUiBwX3Bvd2VyX3VwKQogewogCi0jaWYgZGVmaW5lZChTQ0FNX0xFVl8yKQogICAgVUNIQVIgbG9zZXIsYXNzaWduZWRfaWQ7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKERPUykKLQotICAgVVNIT1JUIHBfcG9ydDsKLSNlbHNlCiAgICBVTE9ORyBwX3BvcnQ7Ci0jZW5kaWYKIAogICAgVUNIQVIgaSxrLFNjYW1GbGcgOwogICAgUFNDQ0JjYXJkIGN1cnJDYXJkOwogCVBOVlJhbUluZm8gcEN1cnJOdlJhbTsKIAotICAgY3VyckNhcmQgPSAmQkxfQ2FyZFtwX2NhcmRdOworICAgY3VyckNhcmQgPSAmRlBUX0JMX0NhcmRbcF9jYXJkXTsKICAgIHBfcG9ydCA9IGN1cnJDYXJkLT5pb1BvcnQ7CiAJcEN1cnJOdlJhbSA9IGN1cnJDYXJkLT5wTnZSYW1JbmZvOwogCkBAIC05NDMyLDcyICs2MDg2LDY4IEBACiAJCWkgPSBwQ3Vyck52UmFtLT5uaVN5c0NvbmY7CiAJfQogCWVsc2V7Ci0JICAgU2NhbUZsZyA9IChVQ0hBUikgdXRpbEVFUmVhZChwX3BvcnQsIFNDQU1fQ09ORklHLzIpOwotCSAgIGkgPSAoVUNIQVIpKHV0aWxFRVJlYWQocF9wb3J0LCAoU1lTVEVNX0NPTkZJRy8yKSkpOworCSAgIFNjYW1GbGcgPSAoVUNIQVIpIEZQVF91dGlsRUVSZWFkKHBfcG9ydCwgU0NBTV9DT05GSUcvMik7CisJICAgaSA9IChVQ0hBUikoRlBUX3V0aWxFRVJlYWQocF9wb3J0LCAoU1lTVEVNX0NPTkZJRy8yKSkpOwogCX0KIAlpZighKGkgJiAweDAyKSkJLyogY2hlY2sgaWYgcmVzZXQgYnVzIGluIEF1dG9TQ1NJIHBhcmFtZXRlciBzZXQgKi8KIAkJcmV0dXJuOwogCi0gICBpbmlzY2kocF9jYXJkLHBfcG9ydCwgcF9vdXJfaWQpOworICAgRlBUX2luaXNjaShwX2NhcmQscF9wb3J0LCBwX291cl9pZCk7CiAKICAgIC8qIEZvcmNlIHRvIHdhaXQgMSBzZWMgYWZ0ZXIgU0NTSSBidXMgcmVzZXQuIFNvbWUgU0NBTSBkZXZpY2UgRlcKICAgICAgIHRvbyBzbG93IHRvIHJldHVybiB0byBTQ0FNIHNlbGVjdGlvbiAqLwogCiAgICAvKiBpZiAocF9wb3dlcl91cCkKLSAgICAgICAgIFdhaXQxU2Vjb25kKHBfcG9ydCk7CisgICAgICAgICBGUFRfV2FpdDFTZWNvbmQocF9wb3J0KTsKICAgICAgIGVsc2UKLSAgICAgICAgIFdhaXQocF9wb3J0LCBUT18yNTBtcyk7ICovCisgICAgICAgICBGUFRfV2FpdChwX3BvcnQsIFRPXzI1MG1zKTsgKi8KIAotICAgV2FpdDFTZWNvbmQocF9wb3J0KTsKLQotI2lmIGRlZmluZWQoU0NBTV9MRVZfMikKKyAgIEZQVF9XYWl0MVNlY29uZChwX3BvcnQpOwogCiAgICBpZiAoKFNjYW1GbGcgJiBTQ0FNX0VOQUJMRUQpICYmIChTY2FtRmxnICYgU0NBTV9MRVZFTDIpKQogICAgICAgewotICAgICAgd2hpbGUgKCEoc2NhcmIocF9wb3J0LElOSVRfU0VMVEQpKSkge30KKyAgICAgIHdoaWxlICghKEZQVF9zY2FyYihwX3BvcnQsSU5JVF9TRUxURCkpKSB7fQogCi0gICAgICBzY3NlbChwX3BvcnQpOworICAgICAgRlBUX3Njc2VsKHBfcG9ydCk7CiAKICAgICAgIGRvIHsKLSAgICAgICAgIHNjeGZlcmMocF9wb3J0LFNZTkNfUFRSTik7Ci0gICAgICAgICBzY3hmZXJjKHBfcG9ydCxET01fTVNUUik7Ci0gICAgICAgICBsb3NlciA9IHNjc2VuZGkocF9wb3J0LCZzY2FtSW5mb1twX291cl9pZF0uaWRfc3RyaW5nWzBdKTsKKyAgICAgICAgIEZQVF9zY3hmZXJjKHBfcG9ydCxTWU5DX1BUUk4pOworICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LERPTV9NU1RSKTsKKyAgICAgICAgIGxvc2VyID0gRlBUX3Njc2VuZGkocF9wb3J0LCZGUFRfc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1swXSk7CiAgICAgICAgICB9IHdoaWxlICggbG9zZXIgPT0gMHhGRiApOwogCi0gICAgICBzY2J1c2YocF9wb3J0KTsKKyAgICAgIEZQVF9zY2J1c2YocF9wb3J0KTsKIAogICAgICAgaWYgKChwX3Bvd2VyX3VwKSAmJiAoIWxvc2VyKSkKICAgICAgICAgIHsKLSAgICAgICAgIHNyZXNiKHBfcG9ydCxwX2NhcmQpOwotICAgICAgICAgV2FpdChwX3BvcnQsIFRPXzI1MG1zKTsKKyAgICAgICAgIEZQVF9zcmVzYihwX3BvcnQscF9jYXJkKTsKKyAgICAgICAgIEZQVF9XYWl0KHBfcG9ydCwgVE9fMjUwbXMpOwogCi0gICAgICAgICB3aGlsZSAoIShzY2FyYihwX3BvcnQsSU5JVF9TRUxURCkpKSB7fQorICAgICAgICAgd2hpbGUgKCEoRlBUX3NjYXJiKHBfcG9ydCxJTklUX1NFTFREKSkpIHt9CiAKLSAgICAgICAgIHNjc2VsKHBfcG9ydCk7CisgICAgICAgICBGUFRfc2NzZWwocF9wb3J0KTsKIAogICAgICAgICAgZG8gewotICAgICAgICAgICAgc2N4ZmVyYyhwX3BvcnQsIFNZTkNfUFRSTik7Ci0gICAgICAgICAgICBzY3hmZXJjKHBfcG9ydCwgRE9NX01TVFIpOwotICAgICAgICAgICAgbG9zZXIgPSBzY3NlbmRpKHBfcG9ydCwmc2NhbUluZm9bcF9vdXJfaWRdLgorICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LCBTWU5DX1BUUk4pOworICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LCBET01fTVNUUik7CisgICAgICAgICAgICBsb3NlciA9IEZQVF9zY3NlbmRpKHBfcG9ydCwmRlBUX3NjYW1JbmZvW3Bfb3VyX2lkXS4KICAgICAgICAgICAgICAgIGlkX3N0cmluZ1swXSk7CiAgICAgICAgICAgICB9IHdoaWxlICggbG9zZXIgPT0gMHhGRiApOwogCi0gICAgICAgICBzY2J1c2YocF9wb3J0KTsKKyAgICAgICAgIEZQVF9zY2J1c2YocF9wb3J0KTsKICAgICAgICAgIH0KICAgICAgIH0KIAogICAgZWxzZQogICAgICAgewotICAgICAgbG9zZXIgPSBGQUxTRTsKKyAgICAgIGxvc2VyID0gMDsKICAgICAgIH0KIAogCiAgICBpZiAoIWxvc2VyKQogICAgICAgewogCi0jZW5kaWYgIC8qIFNDQU1fTEVWXzIgKi8KLQotICAgICAgc2NhbUluZm9bcF9vdXJfaWRdLnN0YXRlID0gSURfQVNTSUdORUQ7CisgICAgICBGUFRfc2NhbUluZm9bcF9vdXJfaWRdLnN0YXRlID0gSURfQVNTSUdORUQ7CiAKIAogCQlpZiAoU2NhbUZsZyAmIFNDQU1fRU5BQkxFRCkKQEAgLTk1MDUsMTggKzYxNTUsMTggQEAKIAogCSAgICAgIGZvciAoaT0wOyBpIDwgTUFYX1NDU0lfVEFSOyBpKyspCiAgIAkJICAgewotICAgICAgCSAgIGlmICgoc2NhbUluZm9baV0uc3RhdGUgPT0gSURfVU5BU1NJR05FRCkgfHwKLSAgCSAgICAgIAkgICAoc2NhbUluZm9baV0uc3RhdGUgPT0gSURfVU5VU0VEKSkKKyAgICAgIAkgICBpZiAoKEZQVF9zY2FtSW5mb1tpXS5zdGF0ZSA9PSBJRF9VTkFTU0lHTkVEKSB8fAorICAJICAgICAgCSAgIChGUFRfc2NhbUluZm9baV0uc3RhdGUgPT0gSURfVU5VU0VEKSkKIAkgIAkgICAgICB7Ci0gICAJICAgICAJICAgaWYgKHNjc2VsbChwX3BvcnQsaSkpCisgICAJICAgICAJICAgaWYgKEZQVF9zY3NlbGwocF9wb3J0LGkpKQogICAgICAgCSAgCSAgIHsKLSAgICAgICAgICAgIAkgICBzY2FtSW5mb1tpXS5zdGF0ZSA9IExFR0FDWTsKLSAgCSAgICAgICAgICAgIAlpZiAoKHNjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSAhPSAweEZGKSB8fAotICAgICAJICAgICAgICAgICAgCShzY2FtSW5mb1tpXS5pZF9zdHJpbmdbMV0gIT0gMHhGQSkpCisgICAgICAgICAgICAJICAgRlBUX3NjYW1JbmZvW2ldLnN0YXRlID0gTEVHQUNZOworICAJICAgICAgICAgICAgCWlmICgoRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSAhPSAweEZGKSB8fAorICAgICAJICAgICAgICAgICAgCShGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nWzFdICE9IDB4RkEpKQogCSAgICAgCSAgICAgICAgIHsKIAotICAgCSAgICAgICAgCSAgICAgIHNjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSA9IDB4RkY7Ci0gICAgICAJICAgICAgICAJICAgc2NhbUluZm9baV0uaWRfc3RyaW5nWzFdID0gMHhGQTsKKyAgIAkgICAgICAgIAkgICAgICBGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nWzBdID0gMHhGRjsKKyAgICAgIAkgICAgICAgIAkgICBGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nWzFdID0gMHhGQTsKIAkJCQkJCQlpZihwQ3Vyck52UmFtID09IE5VTEwpCiAJICAgICAgICAgCSAgICAgICAgIGN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX1VQREFURV9FRVBST007CiAgICAgICAgICAgICAgICAJfQpAQCAtOTUyNCw0NSArNjE3NCw0MyBAQAogICAgCSAgCSAgIH0KICAgICAgIAl9CiAKLQkgICAgICBzcmVzYihwX3BvcnQscF9jYXJkKTsKLSAgICAgIAlXYWl0MVNlY29uZChwX3BvcnQpOwotICAgICAgICAgd2hpbGUgKCEoc2NhcmIocF9wb3J0LElOSVRfU0VMVEQpKSkge30KLSAgICAgICAgIHNjc2VsKHBfcG9ydCk7Ci0gICAgICAgICBzY2FzaWQocF9jYXJkLCBwX3BvcnQpOworCSAgICAgIEZQVF9zcmVzYihwX3BvcnQscF9jYXJkKTsKKyAgICAgIAlGUFRfV2FpdDFTZWNvbmQocF9wb3J0KTsKKyAgICAgICAgIHdoaWxlICghKEZQVF9zY2FyYihwX3BvcnQsSU5JVF9TRUxURCkpKSB7fQorICAgICAgICAgRlBUX3Njc2VsKHBfcG9ydCk7CisgICAgICAgICBGUFRfc2Nhc2lkKHBfY2FyZCwgcF9wb3J0KTsKICAgICAgICAgIH0KIAotI2lmIGRlZmluZWQoU0NBTV9MRVZfMikKLQogICAgICAgfQogCiAgICBlbHNlIGlmICgobG9zZXIpICYmIChTY2FtRmxnICYgU0NBTV9FTkFCTEVEKSkKICAgICAgIHsKLSAgICAgIHNjYW1JbmZvW3Bfb3VyX2lkXS5pZF9zdHJpbmdbMF0gPSBTTFZfVFlQRV9DT0RFMDsKLSAgICAgIGFzc2lnbmVkX2lkID0gRkFMU0U7Ci0gICAgICBzY3d0c2VsKHBfcG9ydCk7CisgICAgICBGUFRfc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1swXSA9IFNMVl9UWVBFX0NPREUwOworICAgICAgYXNzaWduZWRfaWQgPSAwOworICAgICAgRlBUX3Njd3RzZWwocF9wb3J0KTsKIAogICAgICAgZG8gewotICAgICAgICAgd2hpbGUgKHNjeGZlcmMocF9wb3J0LDB4MDApICE9IFNZTkNfUFRSTikge30KKyAgICAgICAgIHdoaWxlIChGUFRfc2N4ZmVyYyhwX3BvcnQsMHgwMCkgIT0gU1lOQ19QVFJOKSB7fQogCi0gICAgICAgICBpID0gc2N4ZmVyYyhwX3BvcnQsMHgwMCk7CisgICAgICAgICBpID0gRlBUX3NjeGZlcmMocF9wb3J0LDB4MDApOwogICAgICAgICAgaWYgKGkgPT0gQVNTSUdOX0lEKQogICAgICAgICAgICAgewotICAgICAgICAgICAgaWYgKCEoc2NzZW5kaShwX3BvcnQsJnNjYW1JbmZvW3Bfb3VyX2lkXS5pZF9zdHJpbmdbMF0pKSkKKyAgICAgICAgICAgIGlmICghKEZQVF9zY3NlbmRpKHBfcG9ydCwmRlBUX3NjYW1JbmZvW3Bfb3VyX2lkXS5pZF9zdHJpbmdbMF0pKSkKICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGkgPSBzY3hmZXJjKHBfcG9ydCwweDAwKTsKLSAgICAgICAgICAgICAgICAgIGlmIChzY3ZhbHEoaSkpCisgICAgICAgICAgICAgICAgICBpID0gRlBUX3NjeGZlcmMocF9wb3J0LDB4MDApOworICAgICAgICAgICAgICAgICAgaWYgKEZQVF9zY3ZhbHEoaSkpCiAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBrID0gc2N4ZmVyYyhwX3BvcnQsMHgwMCk7CisgICAgICAgICAgICAgICAgICAgICBrID0gRlBUX3NjeGZlcmMocF9wb3J0LDB4MDApOwogCi0gICAgICAgICAgICAgICAgICAgICBpZiAoc2N2YWxxKGspKQorICAgICAgICAgICAgICAgICAgICAgaWYgKEZQVF9zY3ZhbHEoaykpCiAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyQ2FyZC0+b3VySWQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChVQ0hBUikoaTw8MykrKGsgJiAoVUNIQVIpNykpICYgKFVDSEFSKSAweDNGOwotICAgICAgICAgICAgICAgICAgICAgICAgaW5pc2NpKHBfY2FyZCwgcF9wb3J0LCBwX291cl9pZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY2FtSW5mb1tjdXJyQ2FyZC0+b3VySWRdLnN0YXRlID0gSURfQVNTSUdORUQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY2FtSW5mb1tjdXJyQ2FyZC0+b3VySWRdLmlkX3N0cmluZ1swXQorICAgICAgICAgICAgICAgICAgICAgICAgRlBUX2luaXNjaShwX2NhcmQsIHBfcG9ydCwgcF9vdXJfaWQpOworICAgICAgICAgICAgICAgICAgICAgICAgRlBUX3NjYW1JbmZvW2N1cnJDYXJkLT5vdXJJZF0uc3RhdGUgPSBJRF9BU1NJR05FRDsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZQVF9zY2FtSW5mb1tjdXJyQ2FyZC0+b3VySWRdLmlkX3N0cmluZ1swXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTTFZfVFlQRV9DT0RFMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbmVkX2lkID0gVFJVRTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbmVkX2lkID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIH0KQEAgLTk1NzAsNDMgKzYyMTgsMzEgQEAKIAogICAgICAgICAgZWxzZSBpZiAoaSA9PSBTRVRfUF9GTEFHKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgaWYgKCEoc2NzZW5kaShwX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAmc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1swXSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1swXSB8PSAweDgwOworICAgICAgICAgICAgICAgaWYgKCEoRlBUX3Njc2VuZGkocF9wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgJkZQVF9zY2FtSW5mb1twX291cl9pZF0uaWRfc3RyaW5nWzBdKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBGUFRfc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1swXSB8PSAweDgwOwogICAgICAgICAgICAgfQogICAgICAgICAgfXdoaWxlICghYXNzaWduZWRfaWQpOwogCi0gICAgICB3aGlsZSAoc2N4ZmVyYyhwX3BvcnQsMHgwMCkgIT0gQ0ZHX0NNUExUKSB7fQorICAgICAgd2hpbGUgKEZQVF9zY3hmZXJjKHBfcG9ydCwweDAwKSAhPSBDRkdfQ01QTFQpIHt9CiAgICAgICB9CiAKLSNlbmRpZiAgIC8qIFNDQU1fTEVWXzIgKi8KICAgIGlmIChTY2FtRmxnICYgU0NBTV9FTkFCTEVEKQogICAgICAgewotICAgICAgc2NidXNmKHBfcG9ydCk7CisgICAgICBGUFRfc2NidXNmKHBfcG9ydCk7CiAgICAgICBpZiAoY3VyckNhcmQtPmdsb2JhbEZsYWdzICYgRl9VUERBVEVfRUVQUk9NKQogICAgICAgICAgewotICAgICAgICAgc2NzYXZkaShwX2NhcmQsIHBfcG9ydCk7CisgICAgICAgICBGUFRfc2NzYXZkaShwX2NhcmQsIHBfcG9ydCk7CiAgICAgICAgICBjdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJj0gfkZfVVBEQVRFX0VFUFJPTTsKICAgICAgICAgIH0KICAgICAgIH0KIAogCi0jaWYgZGVmaW5lZChET1MpCi0gICBmb3IgKGk9MDsgaSA8IE1BWF9TQ1NJX1RBUjsgaSsrKQotICAgewotICAgICAJaWYgKCgoU2NhbUZsZyAmIFNDQU1fRU5BQkxFRCkgJiYgKHNjYW1JbmZvW2ldLnN0YXRlID09IExFR0FDWSkpCi0JCQl8fCAoaSAhPSBwX291cl9pZCkpCi0gICAgICAgIAl7Ci0gICAgICAgICBzY3NlbGxET1MocF9wb3J0LGkpOwotICAJICAgICAgfQotICAJfQotI2VuZGlmCi0KIC8qCiAgICBmb3IgKGk9MCxrPTA7IGkgPCBNQVhfU0NTSV9UQVI7IGkrKykKICAgICAgIHsKLSAgICAgIGlmICgoc2NhbUluZm9baV0uc3RhdGUgPT0gSURfQVNTSUdORUQpIHx8Ci0gICAgICAgICAoc2NhbUluZm9baV0uc3RhdGUgPT0gTEVHQUNZKSkKKyAgICAgIGlmICgoRlBUX3NjYW1JbmZvW2ldLnN0YXRlID09IElEX0FTU0lHTkVEKSB8fAorICAgICAgICAgKEZQVF9zY2FtSW5mb1tpXS5zdGF0ZSA9PSBMRUdBQ1kpKQogICAgICAgICAgaysrOwogICAgICAgfQogCkBAIC05NjIwLDE3ICs2MjU2LDEzIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjYXJiCisgKiBGdW5jdGlvbjogRlBUX3NjYXJiCiAgKgogICogRGVzY3JpcHRpb246IEdhaW4gY29udHJvbCBvZiB0aGUgYnVzIGFuZCB3YWl0IFNDQU0gc2VsZWN0IHRpbWUgKDI1MG1zKQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotaW50IHNjYXJiKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfc2VsX3R5cGUpCi0jZWxzZQotaW50IHNjYXJiKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9zZWxfdHlwZSkKLSNlbmRpZgorc3RhdGljIGludCBGUFRfc2NhcmIoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX3NlbF90eXBlKQogewogICAgaWYgKHBfc2VsX3R5cGUgPT0gSU5JVF9TRUxURCkKICAgICAgIHsKQEAgLTk2MzksMTAgKzYyNzEsMTAgQEAKIAogCiAgICAgICBpZiAoUkRfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZykgJiBTQ1NJX1NFTCkKLSAgICAgICAgIHJldHVybihGQUxTRSk7CisgICAgICAgICByZXR1cm4oMCk7CiAKICAgICAgIGlmIChSRF9IQVJQT09OKHBfcG9ydCtocF9zY3NpZGF0YV8wKSAhPSAwMCkKLSAgICAgICAgIHJldHVybihGQUxTRSk7CisgICAgICAgICByZXR1cm4oMCk7CiAKICAgICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcsIChSRF9IQVJQT09OKHBfcG9ydCtocF9zY3Npc2lnKSB8IFNDU0lfQlNZKSk7CiAKQEAgLTk2NTAsNyArNjI4Miw3IEBACiAKICAgICAgICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcsIChSRF9IQVJQT09OKHBfcG9ydCtocF9zY3Npc2lnKSAmCiAgICAgICAgICAgICB+U0NTSV9CU1kpKTsKLSAgICAgICAgIHJldHVybihGQUxTRSk7CisgICAgICAgICByZXR1cm4oMCk7CiAgICAgICAgICB9CiAKIApAQCAtOTY2MCw3ICs2MjkyLDcgQEAKIAogICAgICAgICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZywgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcpICYKICAgICAgICAgICAgIH4oU0NTSV9CU1kgfCBTQ1NJX1NFTCkpKTsKLSAgICAgICAgIHJldHVybihGQUxTRSk7CisgICAgICAgICByZXR1cm4oMCk7CiAgICAgICAgICB9CiAgICAgICB9CiAKQEAgLTk2NjksOSArNjMwMSw3IEBACiAgICAgICAmIH5BQ1RkZWFzc2VydCkpOwogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaXJlc2V0LCBTQ0FNX0VOKTsKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lkYXRhXzAsIDB4MDApOwotI2lmIGRlZmluZWQoV0lERV9TQ1NJKQogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaWRhdGFfMSwgMHgwMCk7Ci0jZW5kaWYKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3BvcnRjdHJsXzAsIFNDU0lfQlVTX0VOKTsKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZywgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcpIHwgU0NTSV9NU0cpKTsKQEAgLTk2NzksMjUgKzYzMDksMjEgQEAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcsIChSRF9IQVJQT09OKHBfcG9ydCtocF9zY3Npc2lnKQogICAgICAgJiB+U0NTSV9CU1kpKTsKIAotICAgV2FpdChwX3BvcnQsVE9fMjUwbXMpOworICAgRlBUX1dhaXQocF9wb3J0LFRPXzI1MG1zKTsKIAotICAgcmV0dXJuKFRSVUUpOworICAgcmV0dXJuKDEpOwogfQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjYnVzZgorICogRnVuY3Rpb246IEZQVF9zY2J1c2YKICAqCiAgKiBEZXNjcmlwdGlvbjogUmVsZWFzZSB0aGUgU0NTSSBidXMgYW5kIGRpc2FibGUgU0NBTSBzZWxlY3Rpb24uCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIHNjYnVzZihVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgc2NidXNmKFVMT05HIHBfcG9ydCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3NjYnVzZihVTE9ORyBwX3BvcnQpCiB7CiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwsCiAgICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsKSB8IEdfSU5UX0RJU0FCTEUpKTsKQEAgLTk3MTcsMTEgKzYzNDMsNyBAQAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfY2xrY3RybF8wLCAoUkRfSEFSUE9PTihwX3BvcnQraHBfY2xrY3RybF8wKQogICAgICAgfCBBQ1RkZWFzc2VydCkpOwogCi0jaWYgZGVmaW5lZChTQ0FNX0xFVl8yKQogICAgV1JXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRzdGF0KSwgKEJVU19GUkVFIHwgQVVUT19JTlQgfCBTQ0FNX1NFTCkpOwotI2Vsc2UKLSAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCksIChCVVNfRlJFRSB8IEFVVE9fSU5UKSk7Ci0jZW5kaWYKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsLAogICAgICAgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3BhZ2VfY3RybCkgJiB+R19JTlRfRElTQUJMRSkpOwpAQCAtOTczMSwzNSArNjM1MywyNCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY2FzaWQKKyAqIEZ1bmN0aW9uOiBGUFRfc2Nhc2lkCiAgKgogICogRGVzY3JpcHRpb246IEFzc2lnbiBhbiBJRCB0byBhbGwgdGhlIFNDQU0gZGV2aWNlcy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgc2Nhc2lkKFVDSEFSIHBfY2FyZCwgVVNIT1JUIHBfcG9ydCkKLSNlbHNlCi12b2lkIHNjYXNpZChVQ0hBUiBwX2NhcmQsIFVMT05HIHBfcG9ydCkKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3NjYXNpZChVQ0hBUiBwX2NhcmQsIFVMT05HIHBfcG9ydCkKIHsKLSNpZiBkZWZpbmVkKERPUykgfHwgZGVmaW5lZChPUzIpCi0gICAvKiBVc2UgZXh0ZXJuYWwgZGVmaW5lZCBpbiBnbG9iYWwgc3BhY2UgYXJlYSwgaW5zdGVhZCBvZiBTdGFjawotICAgICAgc3BhY2UuIFdJTi85NSBET1MgZG9lc25vdCB3b3JrIFRJTlkgbW9kZS4gVGhlIE9TIGRvZXNub3QgaW50aWFsaXplCi0gICAgICBTUyBlcXVhbCB0byBEUy4gVGh1cyB0aGUgYXJyYXkgYWxsb2NhdGVkIG9uIHN0YWNrIGRvZXNub3QgZ2V0Ci0gICAgICBhY2Nlc3MgY29ycmVjdGx5ICovCi0jZWxzZQogICAgVUNIQVIgdGVtcF9pZF9zdHJpbmdbSURfU1RSSU5HX0xFTkdUSF07Ci0jZW5kaWYKIAogICAgVUNIQVIgaSxrLHNjYW1faWQ7CiAJVUNIQVIgY3JjQnl0ZXNbM107CiAJUE5WUmFtSW5mbyBwQ3Vyck52UmFtOwogCXVzaG9ydF9wdHIgcENyY0J5dGVzOwogCi0JcEN1cnJOdlJhbSA9IEJMX0NhcmRbcF9jYXJkXS5wTnZSYW1JbmZvOworCXBDdXJyTnZSYW0gPSBGUFRfQkxfQ2FyZFtwX2NhcmRdLnBOdlJhbUluZm87CiAKLSAgIGk9RkFMU0U7CisgICBpPTA7CiAKICAgIHdoaWxlICghaSkKICAgICAgIHsKQEAgLTk3NjksMzYgKzYzODAsMzYgQEAKICAgICAgICAgIHRlbXBfaWRfc3RyaW5nW2tdID0gKFVDSEFSKSAweDAwOwogICAgICAgICAgfQogCi0gICAgICBzY3hmZXJjKHBfcG9ydCxTWU5DX1BUUk4pOwotICAgICAgc2N4ZmVyYyhwX3BvcnQsQVNTSUdOX0lEKTsKKyAgICAgIEZQVF9zY3hmZXJjKHBfcG9ydCxTWU5DX1BUUk4pOworICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LEFTU0lHTl9JRCk7CiAKLSAgICAgIGlmICghKHNjaXNvKHBfcG9ydCwmdGVtcF9pZF9zdHJpbmdbMF0pKSkKKyAgICAgIGlmICghKEZQVF9zY2lzbyhwX3BvcnQsJnRlbXBfaWRfc3RyaW5nWzBdKSkpCiAgICAgICAgICB7CiAJCQlpZihwQ3Vyck52UmFtKXsKIAkJCQlwQ3JjQnl0ZXMgPSAodXNob3J0X3B0cikmY3JjQnl0ZXNbMF07Ci0JCQkJKnBDcmNCeXRlcyA9IENhbGNDcmMxNigmdGVtcF9pZF9zdHJpbmdbMF0pOwotCQkJCWNyY0J5dGVzWzJdID0gQ2FsY0xyYygmdGVtcF9pZF9zdHJpbmdbMF0pOworCQkJCSpwQ3JjQnl0ZXMgPSBGUFRfQ2FsY0NyYzE2KCZ0ZW1wX2lkX3N0cmluZ1swXSk7CisJCQkJY3JjQnl0ZXNbMl0gPSBGUFRfQ2FsY0xyYygmdGVtcF9pZF9zdHJpbmdbMF0pOwogCQkJCXRlbXBfaWRfc3RyaW5nWzFdID0gY3JjQnl0ZXNbMl07CiAJCQkJdGVtcF9pZF9zdHJpbmdbMl0gPSBjcmNCeXRlc1swXTsKIAkJCQl0ZW1wX2lkX3N0cmluZ1szXSA9IGNyY0J5dGVzWzFdOwogCQkJCWZvcihrID0gNDsgayA8IElEX1NUUklOR19MRU5HVEg7IGsrKykKIAkJCQkJdGVtcF9pZF9zdHJpbmdba10gPSAoVUNIQVIpIDB4MDA7CiAJCQl9Ci0gICAgICAgICBpID0gc2NtYWNoaWQocF9jYXJkLHRlbXBfaWRfc3RyaW5nKTsKKyAgICAgICAgIGkgPSBGUFRfc2NtYWNoaWQocF9jYXJkLHRlbXBfaWRfc3RyaW5nKTsKIAogICAgICAgICAgaWYgKGkgPT0gQ0xSX1BSSU9SSVRZKQogICAgICAgICAgICAgewotICAgICAgICAgICAgc2N4ZmVyYyhwX3BvcnQsTUlTQ19DT0RFKTsKLSAgICAgICAgICAgIHNjeGZlcmMocF9wb3J0LENMUl9QX0ZMQUcpOwotICAgICAgICAgICAgaSA9IEZBTFNFOyAgLypOb3QgdGhlIGxhc3QgSUQgeWV0LiAqLworICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LE1JU0NfQ09ERSk7CisgICAgICAgICAgICBGUFRfc2N4ZmVyYyhwX3BvcnQsQ0xSX1BfRkxBRyk7CisgICAgICAgICAgICBpID0gMDsgIC8qTm90IHRoZSBsYXN0IElEIHlldC4gKi8KICAgICAgICAgICAgIH0KIAogICAgICAgICAgZWxzZSBpZiAoaSAhPSBOT19JRF9BVkFJTCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChpIDwgOCApCi0gICAgICAgICAgICAgICBzY3hmZXJjKHBfcG9ydCxJRF8wXzcpOworICAgICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LElEXzBfNyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICBzY3hmZXJjKHBfcG9ydCxJRF84X0YpOworICAgICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LElEXzhfRik7CiAKICAgICAgICAgICAgIHNjYW1faWQgPSAoaSAmIChVQ0hBUikgMHgwNyk7CiAKQEAgLTk4MDcsMjEgKzY0MTgsMjEgQEAKICAgICAgICAgICAgICAgIGlmICghKCBrICYgaSApKQogICAgICAgICAgICAgICAgICAgc2NhbV9pZCArPSAweDA4OyAgICAgICAgLypDb3VudCBudW1iZXIgb2YgemVyb3MgaW4gREIwLTMuICovCiAKLSAgICAgICAgICAgIHNjeGZlcmMocF9wb3J0LHNjYW1faWQpOworICAgICAgICAgICAgRlBUX3NjeGZlcmMocF9wb3J0LHNjYW1faWQpOwogCi0gICAgICAgICAgICBpID0gRkFMU0U7ICAvKk5vdCB0aGUgbGFzdCBJRCB5ZXQuICovCisgICAgICAgICAgICBpID0gMDsgIC8qTm90IHRoZSBsYXN0IElEIHlldC4gKi8KICAgICAgICAgICAgIH0KICAgICAgICAgIH0KIAogICAgICAgZWxzZQogICAgICAgICAgewotICAgICAgICAgaSA9IFRSVUU7CisgICAgICAgICBpID0gMTsKICAgICAgICAgIH0KIAogICAgICAgfSAgLypFbmQgd2hpbGUgKi8KIAotICAgc2N4ZmVyYyhwX3BvcnQsU1lOQ19QVFJOKTsKLSAgIHNjeGZlcmMocF9wb3J0LENGR19DTVBMVCk7CisgICBGUFRfc2N4ZmVyYyhwX3BvcnQsU1lOQ19QVFJOKTsKKyAgIEZQVF9zY3hmZXJjKHBfcG9ydCxDRkdfQ01QTFQpOwogfQogCiAKQEAgLTk4MzAsMjEgKzY0NDEsMTcgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc2NzZWwKKyAqIEZ1bmN0aW9uOiBGUFRfc2NzZWwKICAqCiAgKiBEZXNjcmlwdGlvbjogU2VsZWN0IGFsbCB0aGUgU0NBTSBkZXZpY2VzLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzY3NlbChVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgc2NzZWwoVUxPTkcgcF9wb3J0KQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfc2NzZWwoVUxPTkcgcF9wb3J0KQogewogCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9zY3Npc2lnLCBTQ1NJX1NFTCk7Ci0gICBzY3dpcm9zKHBfcG9ydCwgU0NTSV9NU0cpOworICAgRlBUX3Njd2lyb3MocF9wb3J0LCBTQ1NJX01TRyk7CiAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcsIChTQ1NJX1NFTCB8IFNDU0lfQlNZKSk7CiAKQEAgLTk4NTUsMTEgKzY0NjIsMTEgQEAKIAogCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9zY3Npc2lnLCAoU0NTSV9CU1kgfCBTQ1NJX0lPQklUIHwgU0NTSV9DRCkpOwotICAgc2N3aXJvcyhwX3BvcnQsIFNDU0lfU0VMKTsKKyAgIEZQVF9zY3dpcm9zKHBfcG9ydCwgU0NTSV9TRUwpOwogCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9zY3NpZGF0YV8wLCAoVUNIQVIpKFJEX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lkYXRhXzApICYKICAgICAgIH4oVUNIQVIpQklUKDYpKSk7Ci0gICBzY3dpcm9kKHBfcG9ydCwgQklUKDYpKTsKKyAgIEZQVF9zY3dpcm9kKHBfcG9ydCwgQklUKDYpKTsKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZywgKFNDU0lfU0VMIHwgU0NTSV9CU1kgfCBTQ1NJX0lPQklUIHwgU0NTSV9DRCkpOwogfQpAQCAtOTg2OCwxNyArNjQ3NSwxMyBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY3hmZXJjCisgKiBGdW5jdGlvbjogRlBUX3NjeGZlcmMKICAqCiAgKiBEZXNjcmlwdGlvbjogSGFuZHNoYWtlIHRoZSBwX2RhdGEgKERCNC0wKSBhY3Jvc3MgdGhlIGJ1cy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIHNjeGZlcmMoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9kYXRhKQotI2Vsc2UKLVVDSEFSIHNjeGZlcmMoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2RhdGEpCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2N4ZmVyYyhVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGF0YSkKIHsKICAgIFVDSEFSIGN1cnJfZGF0YSwgcmV0X2RhdGE7CiAKQEAgLTk4OTAsNyArNjQ5Myw3IEBACiAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lkYXRhXzAsIGN1cnJfZGF0YSk7CiAKLSAgIHNjd2lyb2QocF9wb3J0LEJJVCg3KSk7ICAgICAgICAgICAgICAvKldhaXQgZm9yIERCNyB0byBiZSByZWxlYXNlZC4gKi8KKyAgIEZQVF9zY3dpcm9kKHBfcG9ydCxCSVQoNykpOyAgICAgICAgICAgICAgLypXYWl0IGZvciBEQjcgdG8gYmUgcmVsZWFzZWQuICovCiAJd2hpbGUgKCEoUkRfSEFSUE9PTihwX3BvcnQraHBfc2NzaWRhdGFfMCkgJiBCSVQoNSkpKTsKIAogICAgcmV0X2RhdGEgPSAoUkRfSEFSUE9PTihwX3BvcnQraHBfc2NzaWRhdGFfMCkgJiAoVUNIQVIpIDB4MUYpOwpAQCAtOTkwMyw3ICs2NTA2LDcgQEAKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaWRhdGFfMCwgY3Vycl9kYXRhKTsKIAotICAgc2N3aXJvZChwX3BvcnQsQklUKDUpKTsgICAgICAgICAgICAgIC8qV2FpdCBmb3IgREI1IHRvIGJlIHJlbGVhc2VkLiAqLworICAgRlBUX3Njd2lyb2QocF9wb3J0LEJJVCg1KSk7ICAgICAgICAgICAgICAvKldhaXQgZm9yIERCNSB0byBiZSByZWxlYXNlZC4gKi8KIAogICAgY3Vycl9kYXRhICY9IH4oQklUKDQpfEJJVCgzKXxCSVQoMil8QklUKDEpfEJJVCgwKSk7IC8qUmVsZWFzZSBkYXRhIGJpdHMgKi8KICAgIGN1cnJfZGF0YSB8PSBCSVQoNyk7CkBAIC05OTE0LDcgKzY1MTcsNyBAQAogCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9zY3NpZGF0YV8wLCBjdXJyX2RhdGEpOwogCi0gICBzY3dpcm9kKHBfcG9ydCxCSVQoNikpOyAgICAgICAgICAgICAgLypXYWl0IGZvciBEQjYgdG8gYmUgcmVsZWFzZWQuICovCisgICBGUFRfc2N3aXJvZChwX3BvcnQsQklUKDYpKTsgICAgICAgICAgICAgIC8qV2FpdCBmb3IgREI2IHRvIGJlIHJlbGVhc2VkLiAqLwogCiAgICByZXR1cm4ocmV0X2RhdGEpOwogfQpAQCAtOTkyMiwzOSArNjUyNSwzNSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY3NlbmRpCisgKiBGdW5jdGlvbjogRlBUX3Njc2VuZGkKICAqCiAgKiBEZXNjcmlwdGlvbjogVHJhbnNmZXIgb3VyIElkZW50aWZpY2F0aW9uIHN0cmluZyB0byBkZXRlcm1pbmUgaWYgd2UKICAqICAgICAgICAgICAgICB3aWxsIGJlIHRoZSBkb21pbmFudCBtYXN0ZXIuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi1VQ0hBUiBzY3NlbmRpKFVTSE9SVCBwX3BvcnQsIFVDSEFSIHBfaWRfc3RyaW5nW10pCi0jZWxzZQotVUNIQVIgc2NzZW5kaShVTE9ORyBwX3BvcnQsIFVDSEFSIHBfaWRfc3RyaW5nW10pCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2NzZW5kaShVTE9ORyBwX3BvcnQsIFVDSEFSIHBfaWRfc3RyaW5nW10pCiB7CiAgICBVQ0hBUiByZXRfZGF0YSxieXRlX2NudCxiaXRfY250LGRlZmVyOwogCi0gICBkZWZlciA9IEZBTFNFOworICAgZGVmZXIgPSAwOwogCiAgICBmb3IgKGJ5dGVfY250ID0gMDsgYnl0ZV9jbnQgPCBJRF9TVFJJTkdfTEVOR1RIOyBieXRlX2NudCsrKSB7CiAKICAgICAgIGZvciAoYml0X2NudCA9IDB4ODA7IGJpdF9jbnQgIT0gMCA7IGJpdF9jbnQgPj49IDEpIHsKIAogICAgICAgICAgaWYgKGRlZmVyKQotICAgICAgICAgICAgcmV0X2RhdGEgPSBzY3hmZXJjKHBfcG9ydCwwMCk7CisgICAgICAgICAgICByZXRfZGF0YSA9IEZQVF9zY3hmZXJjKHBfcG9ydCwwMCk7CiAKICAgICAgICAgIGVsc2UgaWYgKHBfaWRfc3RyaW5nW2J5dGVfY250XSAmIGJpdF9jbnQpCiAKLSAgICAgICAgICAgICAgIHJldF9kYXRhID0gc2N4ZmVyYyhwX3BvcnQsMDIpOworICAgICAgICAgICAgICAgcmV0X2RhdGEgPSBGUFRfc2N4ZmVyYyhwX3BvcnQsMDIpOwogCiAgICAgICAgICAgICBlbHNlIHsKIAotICAgICAgICAgICAgICAgcmV0X2RhdGEgPSBzY3hmZXJjKHBfcG9ydCwwMSk7CisgICAgICAgICAgICAgICByZXRfZGF0YSA9IEZQVF9zY3hmZXJjKHBfcG9ydCwwMSk7CiAgICAgICAgICAgICAgICBpZiAocmV0X2RhdGEgJiAwMikKLSAgICAgICAgICAgICAgICAgIGRlZmVyID0gVFJVRTsKKyAgICAgICAgICAgICAgICAgIGRlZmVyID0gMTsKICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgaWYgKChyZXRfZGF0YSAmIDB4MUMpID09IDB4MTApCkBAIC05OTgwLDE3ICs2NTc5LDEzIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjaXNvCisgKiBGdW5jdGlvbjogRlBUX3NjaXNvCiAgKgogICogRGVzY3JpcHRpb246IFRyYW5zZmVyIHRoZSBJZGVudGlmaWNhdGlvbiBzdHJpbmcuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi1VQ0hBUiBzY2lzbyhVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2lkX3N0cmluZ1tdKQotI2Vsc2UKLVVDSEFSIHNjaXNvKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9pZF9zdHJpbmdbXSkKLSNlbmRpZgorc3RhdGljIFVDSEFSIEZQVF9zY2lzbyhVTE9ORyBwX3BvcnQsIFVDSEFSIHBfaWRfc3RyaW5nW10pCiB7CiAgICBVQ0hBUiByZXRfZGF0YSx0aGVfZGF0YSxieXRlX2NudCxiaXRfY250OwogCkBAIC0xMDAwMCw3ICs2NTk1LDcgQEAKIAogICAgICAgZm9yIChiaXRfY250ID0gMDsgYml0X2NudCA8IDg7IGJpdF9jbnQrKykgewogCi0gICAgICAgICByZXRfZGF0YSA9IHNjeGZlcmMocF9wb3J0LDApOworICAgICAgICAgcmV0X2RhdGEgPSBGUFRfc2N4ZmVyYyhwX3BvcnQsMCk7CiAKICAgICAgICAgIGlmIChyZXRfZGF0YSAmIDB4RkMpCiAgICAgICAgICAgICByZXR1cm4oMHhGRik7CkBAIC0xMDAyMCw4ICs2NjE1LDggQEAKIAkJCQl7CiAJCQkJCWJ5dGVfY250ID0gMDsKIAkJCQkJYml0X2NudCA9IDA7Ci0JCQkJCXNjeGZlcmMocF9wb3J0LCBTWU5DX1BUUk4pOwotCQkJCQlzY3hmZXJjKHBfcG9ydCwgQVNTSUdOX0lEKTsKKwkJCQkJRlBUX3NjeGZlcmMocF9wb3J0LCBTWU5DX1BUUk4pOworCQkJCQlGUFRfc2N4ZmVyYyhwX3BvcnQsIEFTU0lHTl9JRCk7CiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KICovCkBAIC0xMDA0NCwxOCArNjYzOSwxNCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY3dpcm9kCisgKiBGdW5jdGlvbjogRlBUX3Njd2lyb2QKICAqCiAgKiBEZXNjcmlwdGlvbjogU2FtcGxlIHRoZSBTQ1NJIGRhdGEgYnVzIG1ha2luZyBzdXJlIHRoZSBzaWduYWwgaGFzIGJlZW4KICAqICAgICAgICAgICAgICBkZWFzc2VydGVkIGZvciB0aGUgY29ycmVjdCBudW1iZXIgb2YgY29uc2VjdXRpdmUgc2FtcGxlcy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgc2N3aXJvZChVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2RhdGFfYml0KQotI2Vsc2UKLXZvaWQgc2N3aXJvZChVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGF0YV9iaXQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zY3dpcm9kKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9kYXRhX2JpdCkKIHsKICAgIFVDSEFSIGk7CiAKQEAgLTEwMDc3LDE4ICs2NjY4LDE0IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjd2lyb3MKKyAqIEZ1bmN0aW9uOiBGUFRfc2N3aXJvcwogICoKICAqIERlc2NyaXB0aW9uOiBTYW1wbGUgdGhlIFNDU0kgU2lnbmFsIGxpbmVzIG1ha2luZyBzdXJlIHRoZSBzaWduYWwgaGFzIGJlZW4KICAqICAgICAgICAgICAgICBkZWFzc2VydGVkIGZvciB0aGUgY29ycmVjdCBudW1iZXIgb2YgY29uc2VjdXRpdmUgc2FtcGxlcy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgc2N3aXJvcyhVU0hPUlQgcF9wb3J0LCBVQ0hBUiBwX2RhdGFfYml0KQotI2Vsc2UKLXZvaWQgc2N3aXJvcyhVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGF0YV9iaXQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zY3dpcm9zKFVMT05HIHBfcG9ydCwgVUNIQVIgcF9kYXRhX2JpdCkKIHsKICAgIFVDSEFSIGk7CiAKQEAgLTEwMTA5LDEzICs2Njk2LDEzIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjdmFscQorICogRnVuY3Rpb246IEZQVF9zY3ZhbHEKICAqCiAgKiBEZXNjcmlwdGlvbjogTWFrZSBzdXJlIHdlIHJlY2VpdmVkIGEgdmFsaWQgZGF0YSBieXRlLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotVUNIQVIgc2N2YWxxKFVDSEFSIHBfcXVpbnRldCkKK3N0YXRpYyBVQ0hBUiBGUFRfc2N2YWxxKFVDSEFSIHBfcXVpbnRldCkKIHsKICAgIFVDSEFSIGNvdW50OwogCkBAIC0xMDEyNSwxNiArNjcxMiwxNiBAQAogICAgICAgfQogCiAgICBpZiAocF9xdWludGV0ICYgMHgxOCkKLSAgICAgIHJldHVybihGQUxTRSk7CisgICAgICByZXR1cm4oMCk7CiAKICAgIGVsc2UKLSAgICAgIHJldHVybihUUlVFKTsKKyAgICAgIHJldHVybigxKTsKIH0KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBzY3NlbGwKKyAqIEZ1bmN0aW9uOiBGUFRfc2NzZWxsCiAgKgogICogRGVzY3JpcHRpb246IFNlbGVjdCB0aGUgc3BlY2lmaWVkIGRldmljZSBJRCB1c2luZyBhIHNlbGVjdGlvbiB0aW1lb3V0CiAgKiAgICAgICAgICAgICAgbGVzcyB0aGFuIDRtcy4gIElmIHNvbWVib2R5IHJlc3BvbmRzIHRoZW4gaXQgaXMgYSBsZWdhY3kKQEAgLTEwMTQyLDE3ICs2NzI5LDkgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLVVDSEFSIHNjc2VsbChVU0hPUlQgcF9wb3J0LCBVQ0hBUiB0YXJnX2lkKQotI2Vsc2UKLVVDSEFSIHNjc2VsbChVTE9ORyBwX3BvcnQsIFVDSEFSIHRhcmdfaWQpCi0jZW5kaWYKK3N0YXRpYyBVQ0hBUiBGUFRfc2NzZWxsKFVMT05HIHBfcG9ydCwgVUNIQVIgdGFyZ19pZCkKIHsKLSNpZiBkZWZpbmVkKERPUykKLSAgIFVTSE9SVCBpOwotI2Vsc2UKICAgIFVMT05HIGk7Ci0jZW5kaWYKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsLAogICAgICAgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3BhZ2VfY3RybCkgfCBHX0lOVF9ESVNBQkxFKSk7CkBAIC0xMDE4Miw3ICs2NzYxLDcgQEAKIAkgICAgKFJFU0VUIHwgUFJPR19ITFQgfCBUSU1FT1VUIHwgQVVUT19JTlQpKSkge30KIAogICAgaWYgKFJEV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCkpICYgUkVTRVQpCi0gICAgICAgICBXYWl0KHBfcG9ydCwgVE9fMjUwbXMpOworICAgICAgICAgRlBUX1dhaXQocF9wb3J0LCBUT18yNTBtcyk7CiAKICAgIERJU0FCTEVfQVVUTyhwX3BvcnQpOwogCkBAIC0xMDE5OSw3ICs2Nzc4LDcgQEAKICAgICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3BhZ2VfY3RybCwKICAgICAgICAgIChSRF9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwpICYgfkdfSU5UX0RJU0FCTEUpKTsKIAotICAgICAgcmV0dXJuKEZBTFNFKTsgIC8qTm8gbGVnYWN5IGRldmljZSAqLworICAgICAgcmV0dXJuKDApOyAgLypObyBsZWdhY3kgZGV2aWNlICovCiAgICAgICB9CiAKICAgIGVsc2UgewpAQCAtMTAyMTcsMTA4ICs2Nzk2LDE5IEBACiAgICAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwsCiAgICAgICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsKSAmIH5HX0lOVF9ESVNBQkxFKSk7CiAKLSAgICAgIHJldHVybihUUlVFKTsgIC8qRm91bmQgb25lIG9mIHRoZW0gb2xkaWVzISAqLworICAgICAgcmV0dXJuKDEpOyAgLypGb3VuZCBvbmUgb2YgdGhlbSBvbGRpZXMhICovCiAgICAgICB9CiB9CiAKLSNpZiBkZWZpbmVkKERPUykKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogRnVuY3Rpb246IHNjc2VsbCBmb3IgRE9TCi0gKgotICogRGVzY3JpcHRpb246IFNlbGVjdCB0aGUgc3BlY2lmaWVkIGRldmljZSBJRCB1c2luZyBhIHNlbGVjdGlvbiB0aW1lb3V0Ci0gKiAgICAgICAgICAgICAgbGVzcyB0aGFuIDJtcy4gIFRoaXMgd2FzIHNwZWNpYWxseSByZXF1aXJlZCB0byBzb2x2ZQotICogICAgICAgICAgICAgIHRoZSBwcm9ibGVtIHdpdGggUGxleHRvciAxMlggQ0QtUk9NIGRyaXZlLiBUaGlzIGRyaXZlCi0gKgkJCQkJIHdhcyByZXNwb25kaW5nIHRoZSBTZWxlY3Rpb24gYXQgdGhlIGVuZCBvZiA0bXMgYW5kIAotICoJCQkJCSBoYW5naW5nIHRoZSBzeXN0ZW0uCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1VQ0hBUiBzY3NlbGxET1MoVVNIT1JUIHBfcG9ydCwgVUNIQVIgdGFyZ19pZCkKLXsKLSAgIFVTSE9SVCBpOwotCi0gICBXUl9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwsCi0gICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsKSB8IEdfSU5UX0RJU0FCTEUpKTsKLQotICAgQVJBTV9BQ0NFU1MocF9wb3J0KTsKLQotICAgV1JfSEFSUE9PTihwX3BvcnQraHBfYWRkc3RhdCwoUkRfSEFSUE9PTihwX3BvcnQraHBfYWRkc3RhdCkgfCBTQ0FNX1RJTUVSKSk7Ci0gICBXUl9IQVJQT09OKHBfcG9ydCtocF9zZWx0aW1lb3V0LFRPXzJtcyk7Ci0KLQotICAgZm9yIChpID0gcF9wb3J0K0NNRF9TVFJUOyBpIDwgcF9wb3J0K0NNRF9TVFJUKzEyOyBpKz0yKSB7Ci0gICAgICBXUldfSEFSUE9PTihpLCAoTVBNX09QK0FDT01NQU5EKSk7Ci0gICAgICB9Ci0gICBXUldfSEFSUE9PTihpLCAoQlJIX09QK0FMV0FZUysgICAgTlApKTsKLQotICAgV1JXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRzdGF0KSwKLQkgICAgICAgKFJFU0VUIHwgVElNRU9VVCB8IFNFTCB8IEJVU19GUkVFIHwgQVVUT19JTlQpKTsKLQotICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2VsZWN0X2lkLCB0YXJnX2lkKTsKLQotICAgV1JfSEFSUE9PTihwX3BvcnQraHBfcG9ydGN0cmxfMCwgU0NTSV9QT1JUKTsKLSAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX2F1dG9zdGFydF8zLCAoU0VMRUNUIHwgQ01EX09OTFlfU1RSVCkpOwotICAgV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaWN0cmxfMCwgKFNFTF9UQVIgfCBFTkFfUkVTRUwpKTsKLQotCi0gICB3aGlsZSAoIShSRFdfSEFSUE9PTigocF9wb3J0K2hwX2ludHN0YXQpKSAmCi0JICAgIChSRVNFVCB8IFBST0dfSExUIHwgVElNRU9VVCB8IEFVVE9fSU5UKSkpIHt9Ci0KLSAgIGlmIChSRFdfSEFSUE9PTigocF9wb3J0K2hwX2ludHN0YXQpKSAmIFJFU0VUKQotICAgICAgICAgV2FpdChwX3BvcnQsIFRPXzI1MG1zKTsKLQotICAgRElTQUJMRV9BVVRPKHBfcG9ydCk7Ci0KLSAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX2FkZHN0YXQsKFJEX0hBUlBPT04ocF9wb3J0K2hwX2FkZHN0YXQpICYgflNDQU1fVElNRVIpKTsKLSAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3NlbHRpbWVvdXQsVE9fMjkwbXMpOwotCi0gICBTR1JBTV9BQ0NFU1MocF9wb3J0KTsKLQotICAgaWYgKFJEV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCkpICYgKFJFU0VUIHwgVElNRU9VVCkgKSB7Ci0KLSAgICAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCksCi0JCSAgKFJFU0VUIHwgVElNRU9VVCB8IFNFTCB8IEJVU19GUkVFIHwgUEhBU0UpKTsKLQotICAgICAgV1JfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsLAotICAgICAgICAgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3BhZ2VfY3RybCkgJiB+R19JTlRfRElTQUJMRSkpOwotCi0gICAgICByZXR1cm4oRkFMU0UpOyAgLypObyBsZWdhY3kgZGV2aWNlICovCi0gICAgICB9Ci0KLSAgIGVsc2UgewotCi0gICAgICB3aGlsZSghKFJEV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCkpICYgQlVTX0ZSRUUpKSB7Ci0JCQkJaWYgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3Njc2lzaWcpICYgU0NTSV9SRVEpCi0JCQkJCXsKLQkJCQkJV1JfSEFSUE9PTihwX3BvcnQraHBfc2NzaXNpZywgKFNDU0lfQUNLICsgU19JTExfUEgpKTsKLSAgICAgIAkJCUFDQ0VQVF9NU0cocF9wb3J0KTsKLQkJCQkJfQotCQl9Ci0KLSAgICAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCksIENMUl9BTExfSU5UXzEpOwotCi0gICAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwsCi0gICAgICAgICAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGFnZV9jdHJsKSAmIH5HX0lOVF9ESVNBQkxFKSk7Ci0KLSAgICAgIHJldHVybihUUlVFKTsgIC8qRm91bmQgb25lIG9mIHRoZW0gb2xkaWVzISAqLwotICAgICAgfQotfQotI2VuZGlmICAvKiBET1MgKi8KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogc2N3dHNlbAorICogRnVuY3Rpb246IEZQVF9zY3d0c2VsCiAgKgogICogRGVzY3JpcHRpb246IFdhaXQgdG8gYmUgc2VsZWN0ZWQgYnkgYW5vdGhlciBTQ0FNIGluaXRpYXRvci4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgc2N3dHNlbChVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgc2N3dHNlbChVTE9ORyBwX3BvcnQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zY3d0c2VsKFVMT05HIHBfcG9ydCkKIHsKICAgIHdoaWxlKCEoUkRXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRzdGF0KSkgJiBTQ0FNX1NFTCkpIHt9CiB9CkBAIC0xMDMyNiwyMyArNjgxNiwxOSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBpbmlzY2kKKyAqIEZ1bmN0aW9uOiBGUFRfaW5pc2NpCiAgKgogICogRGVzY3JpcHRpb246IFNldHVwIHRoZSBkYXRhIFN0cnVjdHVyZSB3aXRoIHRoZSBpbmZvIGZyb20gdGhlIEVFUFJPTS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgaW5pc2NpKFVDSEFSIHBfY2FyZCwgVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9vdXJfaWQpCi0jZWxzZQotdm9pZCBpbmlzY2koVUNIQVIgcF9jYXJkLCBVTE9ORyBwX3BvcnQsIFVDSEFSIHBfb3VyX2lkKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfaW5pc2NpKFVDSEFSIHBfY2FyZCwgVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX291cl9pZCkKIHsKICAgIFVDSEFSIGksayxtYXhfaWQ7CiAgICBVU0hPUlQgZWVfZGF0YTsKIAlQTlZSYW1JbmZvIHBDdXJyTnZSYW07CiAKLQlwQ3Vyck52UmFtID0gQkxfQ2FyZFtwX2NhcmRdLnBOdlJhbUluZm87CisJcEN1cnJOdlJhbSA9IEZQVF9CTF9DYXJkW3BfY2FyZF0ucE52UmFtSW5mbzsKIAogICAgaWYgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3BhZ2VfY3RybCkgJiBOQVJST1dfU0NTSV9DQVJEKQogICAgICAgbWF4X2lkID0gMHgwODsKQEAgLTEwMzU0LDE0ICs2ODQwLDE0IEBACiAJCWZvcihpID0gMDsgaSA8IG1heF9pZDsgaSsrKXsKIAogCQkJZm9yKGsgPSAwOyBrIDwgNDsgaysrKQotCQkJCXNjYW1JbmZvW2ldLmlkX3N0cmluZ1trXSA9IHBDdXJyTnZSYW0tPm5pU2NhbVRibFtpXVtrXTsKKwkJCQlGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nW2tdID0gcEN1cnJOdlJhbS0+bmlTY2FtVGJsW2ldW2tdOwogCQkJZm9yKGsgPSA0OyBrIDwgSURfU1RSSU5HX0xFTkdUSDsgaysrKQotCQkJCXNjYW1JbmZvW2ldLmlkX3N0cmluZ1trXSA9IChVQ0hBUikgMHgwMDsKKwkJCQlGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nW2tdID0gKFVDSEFSKSAweDAwOwogCi0JICAgICAgaWYoc2NhbUluZm9baV0uaWRfc3RyaW5nWzBdID09IDB4MDApCi0gICAgICAJICAgc2NhbUluZm9baV0uc3RhdGUgPSBJRF9VTlVTRUQ7ICAvKkRlZmF1bHQgdG8gdW51c2VkIElELiAqLworCSAgICAgIGlmKEZQVF9zY2FtSW5mb1tpXS5pZF9zdHJpbmdbMF0gPT0gMHgwMCkKKyAgICAgIAkgICBGUFRfc2NhbUluZm9baV0uc3RhdGUgPSBJRF9VTlVTRUQ7ICAvKkRlZmF1bHQgdG8gdW51c2VkIElELiAqLwogCSAgICAgIGVsc2UKLSAgIAkgICAgICBzY2FtSW5mb1tpXS5zdGF0ZSA9IElEX1VOQVNTSUdORUQ7ICAvKkRlZmF1bHQgdG8gdW5hc3NpZ25lZCBJRC4gKi8KKyAgIAkgICAgICBGUFRfc2NhbUluZm9baV0uc3RhdGUgPSBJRF9VTkFTU0lHTkVEOyAgLypEZWZhdWx0IHRvIHVuYXNzaWduZWQgSUQuICovCiAKIAkJfQogCX1lbHNlIHsKQEAgLTEwMzY5LDM4ICs2ODU1LDM4IEBACiAgICAJICAgewogICAgICAgCWZvciAoaz0wOyBrIDwgSURfU1RSSU5HX0xFTkdUSDsgays9MikKIAkgICAgICAgICB7Ci0gICAJICAgICAgZWVfZGF0YSA9IHV0aWxFRVJlYWQocF9wb3J0LCAoVVNIT1JUKSgoRUVfU0NBTUJBU0UvMikgKworICAgCSAgICAgIGVlX2RhdGEgPSBGUFRfdXRpbEVFUmVhZChwX3BvcnQsIChVU0hPUlQpKChFRV9TQ0FNQkFTRS8yKSArCiAgICAgICAJICAgICAoVVNIT1JUKSAoaSooKFVTSE9SVClJRF9TVFJJTkdfTEVOR1RILzIpKSArIChVU0hPUlQpKGsvMikpKTsKLSAgICAgICAgIAlzY2FtSW5mb1tpXS5pZF9zdHJpbmdba10gPSAoVUNIQVIpIGVlX2RhdGE7CisgICAgICAgICAJRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1trXSA9IChVQ0hBUikgZWVfZGF0YTsKIAkgICAgICAgICBlZV9kYXRhID4+PSA4OwotICAgCSAgICAgIHNjYW1JbmZvW2ldLmlkX3N0cmluZ1trKzFdID0gKFVDSEFSKSBlZV9kYXRhOworICAgCSAgICAgIEZQVF9zY2FtSW5mb1tpXS5pZF9zdHJpbmdbaysxXSA9IChVQ0hBUikgZWVfZGF0YTsKICAgICAgIAkgICB9CiAKLQkgICAgICBpZiAoKHNjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSA9PSAweDAwKSB8fAotICAgCSAgICAgICAoc2NhbUluZm9baV0uaWRfc3RyaW5nWzBdID09IDB4RkYpKQorCSAgICAgIGlmICgoRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSA9PSAweDAwKSB8fAorICAgCSAgICAgICAoRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1swXSA9PSAweEZGKSkKIAotICAgICAgCSAgIHNjYW1JbmZvW2ldLnN0YXRlID0gSURfVU5VU0VEOyAgLypEZWZhdWx0IHRvIHVudXNlZCBJRC4gKi8KKyAgICAgIAkgICBGUFRfc2NhbUluZm9baV0uc3RhdGUgPSBJRF9VTlVTRUQ7ICAvKkRlZmF1bHQgdG8gdW51c2VkIElELiAqLwogCiAJICAgICAgZWxzZQotICAgCSAgICAgIHNjYW1JbmZvW2ldLnN0YXRlID0gSURfVU5BU1NJR05FRDsgIC8qRGVmYXVsdCB0byB1bmFzc2lnbmVkIElELiAqLworICAgCSAgICAgIEZQVF9zY2FtSW5mb1tpXS5zdGF0ZSA9IElEX1VOQVNTSUdORUQ7ICAvKkRlZmF1bHQgdG8gdW5hc3NpZ25lZCBJRC4gKi8KIAogICAgICAgCX0KIAl9CiAJZm9yKGsgPSAwOyBrIDwgSURfU1RSSU5HX0xFTkdUSDsgaysrKQotCQlzY2FtSW5mb1twX291cl9pZF0uaWRfc3RyaW5nW2tdID0gc2NhbUhBU3RyaW5nW2tdOworCQlGUFRfc2NhbUluZm9bcF9vdXJfaWRdLmlkX3N0cmluZ1trXSA9IEZQVF9zY2FtSEFTdHJpbmdba107CiAKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc2NtYWNoaWQKKyAqIEZ1bmN0aW9uOiBGUFRfc2NtYWNoaWQKICAqCiAgKiBEZXNjcmlwdGlvbjogTWF0Y2ggdGhlIERldmljZSBJRCBzdHJpbmcgd2l0aCBvdXIgdmFsdWVzIHN0b3JlZCBpbgogICogICAgICAgICAgICAgIHRoZSBFRVBST00uCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1VQ0hBUiBzY21hY2hpZChVQ0hBUiBwX2NhcmQsIFVDSEFSIHBfaWRfc3RyaW5nW10pCitzdGF0aWMgVUNIQVIgRlBUX3NjbWFjaGlkKFVDSEFSIHBfY2FyZCwgVUNIQVIgcF9pZF9zdHJpbmdbXSkKIHsKIAogICAgVUNIQVIgaSxrLG1hdGNoOwpAQCAtMTA0MDgsMjggKzY4OTQsMjAgQEAKIAogICAgZm9yIChpPTA7IGkgPCBNQVhfU0NTSV9UQVI7IGkrKykgewogCi0jaWYgIWRlZmluZWQoU0NBTV9MRVZfMikKLSAgICAgIGlmIChzY2FtSW5mb1tpXS5zdGF0ZSA9PSBJRF9VTkFTU0lHTkVEKQotICAgICAgICAgewotI2VuZGlmCi0gICAgICAgICBtYXRjaCA9IFRSVUU7CisgICAgICAgICBtYXRjaCA9IDE7CiAKICAgICAgICAgIGZvciAoaz0wOyBrIDwgSURfU1RSSU5HX0xFTkdUSDsgaysrKQogICAgICAgICAgICAgewotICAgICAgICAgICAgaWYgKHBfaWRfc3RyaW5nW2tdICE9IHNjYW1JbmZvW2ldLmlkX3N0cmluZ1trXSkKLSAgICAgICAgICAgICAgIG1hdGNoID0gRkFMU0U7CisgICAgICAgICAgICBpZiAocF9pZF9zdHJpbmdba10gIT0gRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1trXSkKKyAgICAgICAgICAgICAgIG1hdGNoID0gMDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgaWYgKG1hdGNoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgc2NhbUluZm9baV0uc3RhdGUgPSBJRF9BU1NJR05FRDsKKyAgICAgICAgICAgIEZQVF9zY2FtSW5mb1tpXS5zdGF0ZSA9IElEX0FTU0lHTkVEOwogICAgICAgICAgICAgcmV0dXJuKGkpOwogICAgICAgICAgICAgfQogCi0jaWYgIWRlZmluZWQoU0NBTV9MRVZfMikKLSAgICAgICAgIH0KLSNlbmRpZgotCiAgICAgICB9CiAKIApAQCAtMTA0NDgsMTcgKzY5MjYsMTcgQEAKICAgICAgIHsKICAgICAgIGktLTsKIAotICAgICAgaWYgKHNjYW1JbmZvW21hdGNoXS5zdGF0ZSA9PSBJRF9VTlVTRUQpCisgICAgICBpZiAoRlBUX3NjYW1JbmZvW21hdGNoXS5zdGF0ZSA9PSBJRF9VTlVTRUQpCiAgICAgICAgICB7CiAgICAgICAgICBmb3IgKGs9MDsgayA8IElEX1NUUklOR19MRU5HVEg7IGsrKykKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgIHNjYW1JbmZvW21hdGNoXS5pZF9zdHJpbmdba10gPSBwX2lkX3N0cmluZ1trXTsKKyAgICAgICAgICAgIEZQVF9zY2FtSW5mb1ttYXRjaF0uaWRfc3RyaW5nW2tdID0gcF9pZF9zdHJpbmdba107CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgIHNjYW1JbmZvW21hdGNoXS5zdGF0ZSA9IElEX0FTU0lHTkVEOworICAgICAgICAgRlBUX3NjYW1JbmZvW21hdGNoXS5zdGF0ZSA9IElEX0FTU0lHTkVEOwogCi0JCQlpZihCTF9DYXJkW3BfY2FyZF0ucE52UmFtSW5mbyA9PSBOVUxMKQotCSAgICAgICAgIEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyB8PSBGX1VQREFURV9FRVBST007CisJCQlpZihGUFRfQkxfQ2FyZFtwX2NhcmRdLnBOdlJhbUluZm8gPT0gTlVMTCkKKwkgICAgICAgICBGUFRfQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfVVBEQVRFX0VFUFJPTTsKICAgICAgICAgIHJldHVybihtYXRjaCk7CiAKICAgICAgICAgIH0KQEAgLTEwNDk4LDE3ICs2OTc2LDE3IEBACiAKICAgICAgIGktLTsKIAotICAgICAgaWYgKHNjYW1JbmZvW21hdGNoXS5zdGF0ZSA9PSBJRF9VTkFTU0lHTkVEKQorICAgICAgaWYgKEZQVF9zY2FtSW5mb1ttYXRjaF0uc3RhdGUgPT0gSURfVU5BU1NJR05FRCkKICAgICAgICAgIHsKICAgICAgICAgIGZvciAoaz0wOyBrIDwgSURfU1RSSU5HX0xFTkdUSDsgaysrKQogICAgICAgICAgICAgewotICAgICAgICAgICAgc2NhbUluZm9bbWF0Y2hdLmlkX3N0cmluZ1trXSA9IHBfaWRfc3RyaW5nW2tdOworICAgICAgICAgICAgRlBUX3NjYW1JbmZvW21hdGNoXS5pZF9zdHJpbmdba10gPSBwX2lkX3N0cmluZ1trXTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgc2NhbUluZm9bbWF0Y2hdLmlkX3N0cmluZ1swXSB8PSBCSVQoNyk7Ci0gICAgICAgICBzY2FtSW5mb1ttYXRjaF0uc3RhdGUgPSBJRF9BU1NJR05FRDsKLQkJCWlmKEJMX0NhcmRbcF9jYXJkXS5wTnZSYW1JbmZvID09IE5VTEwpCi0JICAgICAgICAgQkxfQ2FyZFtwX2NhcmRdLmdsb2JhbEZsYWdzIHw9IEZfVVBEQVRFX0VFUFJPTTsKKyAgICAgICAgIEZQVF9zY2FtSW5mb1ttYXRjaF0uaWRfc3RyaW5nWzBdIHw9IEJJVCg3KTsKKyAgICAgICAgIEZQVF9zY2FtSW5mb1ttYXRjaF0uc3RhdGUgPSBJRF9BU1NJR05FRDsKKwkJCWlmKEZQVF9CTF9DYXJkW3BfY2FyZF0ucE52UmFtSW5mbyA9PSBOVUxMKQorCSAgICAgICAgIEZQVF9CTF9DYXJkW3BfY2FyZF0uZ2xvYmFsRmxhZ3MgfD0gRl9VUERBVEVfRUVQUk9NOwogICAgICAgICAgcmV0dXJuKG1hdGNoKTsKIAogICAgICAgICAgfQpAQCAtMTA1MzEsMTcgKzcwMDksMTMgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogc2NzYXZkaQorICogRnVuY3Rpb246IEZQVF9zY3NhdmRpCiAgKgogICogRGVzY3JpcHRpb246IFNhdmUgb2ZmIHRoZSBkZXZpY2UgU0NBTSBJRCBzdHJpbmdzLgogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotdm9pZCBzY3NhdmRpKFVDSEFSIHBfY2FyZCwgVVNIT1JUIHBfcG9ydCkKLSNlbHNlCi12b2lkIHNjc2F2ZGkoVUNIQVIgcF9jYXJkLCBVTE9ORyBwX3BvcnQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9zY3NhdmRpKFVDSEFSIHBfY2FyZCwgVUxPTkcgcF9wb3J0KQogewogICAgVUNIQVIgaSxrLG1heF9pZDsKICAgIFVTSE9SVCBlZV9kYXRhLHN1bV9kYXRhOwpAQCAtMTA1NTEsMTEgKzcwMjUsMTEgQEAKIAogICAgZm9yIChpID0gMTsgaSA8IEVFX1NDQU1CQVNFLzI7IGkrKykKICAgICAgIHsKLSAgICAgIHN1bV9kYXRhICs9IHV0aWxFRVJlYWQocF9wb3J0LCBpKTsKKyAgICAgIHN1bV9kYXRhICs9IEZQVF91dGlsRUVSZWFkKHBfcG9ydCwgaSk7CiAgICAgICB9CiAKIAotICAgdXRpbEVFV3JpdGVPbk9mZihwX3BvcnQsMSk7ICAgLyogRW5hYmxlIHdyaXRlIGFjY2VzcyB0byB0aGUgRUVQUk9NICovCisgICBGUFRfdXRpbEVFV3JpdGVPbk9mZihwX3BvcnQsMSk7ICAgLyogRW5hYmxlIHdyaXRlIGFjY2VzcyB0byB0aGUgRUVQUk9NICovCiAKICAgIGlmIChSRF9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwpICYgTkFSUk9XX1NDU0lfQ0FSRCkKICAgICAgIG1heF9pZCA9IDB4MDg7CkBAIC0xMDU2OCw2NCArNzA0MiwyOSBAQAogCiAgICAgICBmb3IgKGs9MDsgayA8IElEX1NUUklOR19MRU5HVEg7IGsrPTIpCiAgICAgICAgICB7Ci0gICAgICAgICBlZV9kYXRhID0gc2NhbUluZm9baV0uaWRfc3RyaW5nW2srMV07CisgICAgICAgICBlZV9kYXRhID0gRlBUX3NjYW1JbmZvW2ldLmlkX3N0cmluZ1trKzFdOwogICAgICAgICAgZWVfZGF0YSA8PD0gODsKLSAgICAgICAgIGVlX2RhdGEgfD0gc2NhbUluZm9baV0uaWRfc3RyaW5nW2tdOworICAgICAgICAgZWVfZGF0YSB8PSBGUFRfc2NhbUluZm9baV0uaWRfc3RyaW5nW2tdOwogICAgICAgICAgc3VtX2RhdGEgKz0gZWVfZGF0YTsKLSAgICAgICAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgZWVfZGF0YSwgKFVTSE9SVCkoKEVFX1NDQU1CQVNFLzIpICsKKyAgICAgICAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIGVlX2RhdGEsIChVU0hPUlQpKChFRV9TQ0FNQkFTRS8yKSArCiAgICAgICAgICAgICAoVVNIT1JUKShpKigoVVNIT1JUKUlEX1NUUklOR19MRU5HVEgvMikpICsgKFVTSE9SVCkoay8yKSkpOwogICAgICAgICAgfQogICAgICAgfQogCiAKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgc3VtX2RhdGEsIEVFUFJPTV9DSEVDS19TVU0vMik7Ci0gICB1dGlsRUVXcml0ZU9uT2ZmKHBfcG9ydCwwKTsgICAvKiBUdXJuIG9mZiB3cml0ZSBhY2Nlc3MgKi8KKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIHN1bV9kYXRhLCBFRVBST01fQ0hFQ0tfU1VNLzIpOworICAgRlBUX3V0aWxFRVdyaXRlT25PZmYocF9wb3J0LDApOyAgIC8qIFR1cm4gb2ZmIHdyaXRlIGFjY2VzcyAqLwogfQotI2lkZW50ICIkSWQ6IGRpYWdub3NlLmMgMS4xMCAxOTk3LzA2LzEwIDE2OjUxOjQ3IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICBkaWFnbm9zZS5jICAkCi0gKgotICogICBEZXNjcmlwdGlvbjogIERpYWdub3N0aWMgZnVudGlvbnMgZm9yIHRlc3RpbmcgdGhlIGludGVncml0eSBvZgotICogICAgICAgICAgICAgICAgIHRoZSBIQVJQT09OLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDYvMTAgMTY6NTE6NDcgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjEwICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiNpbmNsdWRlIDxnbG9iYWxzLmg+Ki8KLQotI2lmIChGV19UWVBFPT1fVUNCX01HUl8pCi0JLyojaW5jbHVkZSA8YnVkaS5oPiovCi0jZW5kaWYKLQotLyojaW5jbHVkZSA8c2NjYm1nci5oPiovCi0vKiNpbmNsdWRlIDxibHgzMC5oPiovCi0vKiNpbmNsdWRlIDx0YXJnZXQuaD4qLwotLyojaW5jbHVkZSA8ZWVwcm9tLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBYYm93SW5pdAorICogRnVuY3Rpb246IEZQVF9YYm93SW5pdAogICoKICAqIERlc2NyaXB0aW9uOiBTZXR1cCB0aGUgWGJvdyBmb3Igbm9ybWFsIG9wZXJhdGlvbi4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgWGJvd0luaXQoVVNIT1JUIHBvcnQsIFVDSEFSIFNjYW1GbGcpCi0jZWxzZQotdm9pZCBYYm93SW5pdChVTE9ORyBwb3J0LCBVQ0hBUiBTY2FtRmxnKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfWGJvd0luaXQoVUxPTkcgcG9ydCwgVUNIQVIgU2NhbUZsZykKIHsKIFVDSEFSIGk7CiAKQEAgLTEwNjQ3LDE4ICs3MDg2LDEzIEBACiAKICAgIFdSV19IQVJQT09OKChwb3J0K2hwX2ludHN0YXQpLCBDTFJfQUxMX0lOVCk7CiAKLSNpZiBkZWZpbmVkKFNDQU1fTEVWXzIpCi0gICBkZWZhdWx0X2ludGVuYSA9IFJFU0VUIHwgUlNFTCB8IFBST0dfSExUIHwgVElNRU9VVCB8CisgICBGUFRfZGVmYXVsdF9pbnRlbmEgPSBSRVNFVCB8IFJTRUwgfCBQUk9HX0hMVCB8IFRJTUVPVVQgfAogCQkgICAgQlVTX0ZSRUUgfCBYRkVSX0NOVF8wIHwgQVVUT19JTlQ7CiAKICAgIGlmICgoU2NhbUZsZyAmIFNDQU1fRU5BQkxFRCkgJiYgKFNjYW1GbGcgJiBTQ0FNX0xFVkVMMikpCi0JCWRlZmF1bHRfaW50ZW5hIHw9IFNDQU1fU0VMOworCQlGUFRfZGVmYXVsdF9pbnRlbmEgfD0gU0NBTV9TRUw7CiAKLSNlbHNlCi0gICBkZWZhdWx0X2ludGVuYSA9IFJFU0VUIHwgUlNFTCB8IFBST0dfSExUIHwgVElNRU9VVCB8Ci0JCSAgICBCVVNfRlJFRSB8IFhGRVJfQ05UXzAgfCBBVVRPX0lOVDsKLSNlbmRpZgotICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaW50ZW5hKSwgZGVmYXVsdF9pbnRlbmEpOworICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaW50ZW5hKSwgRlBUX2RlZmF1bHRfaW50ZW5hKTsKIAogICAgV1JfSEFSUE9PTihwb3J0K2hwX3NlbHRpbWVvdXQsVE9fMjkwbXMpOwogCkBAIC0xMDY2NywyNiArNzEwMSw2IEBACiAgICBpZiAoUkRfSEFSUE9PTihwb3J0K2hwX3BhZ2VfY3RybCkgJiBOQVJST1dfU0NTSV9DQVJEKQogICAgICAgV1JfSEFSUE9PTihwb3J0K2hwX2FkZHN0YXQsU0NTSV9NT0RFOCk7CiAKLSNpZiBkZWZpbmVkKE5PX0JJT1NfT1BUSU9OKQotCi0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMCxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMSxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMixOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMyxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfNCxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfNSxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfNixOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfNyxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfOCxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfOSxOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMTAsTkFSUk9XX1NDU0kpOwotICAgV1JfSEFSUE9PTihwb3J0K2hwX3N5bmN0YXJnXzExLE5BUlJPV19TQ1NJKTsKLSAgIFdSX0hBUlBPT04ocG9ydCtocF9zeW5jdGFyZ18xMixOQVJST1dfU0NTSSk7Ci0gICBXUl9IQVJQT09OKHBvcnQraHBfc3luY3RhcmdfMTMsTkFSUk9XX1NDU0kpOwotICAgV1JfSEFSUE9PTihwb3J0K2hwX3N5bmN0YXJnXzE0LE5BUlJPV19TQ1NJKTsKLSAgIFdSX0hBUlBPT04ocG9ydCtocF9zeW5jdGFyZ18xNSxOQVJST1dfU0NTSSk7Ci0KLSNlbmRpZgogCVdSX0hBUlBPT04ocG9ydCtocF9wYWdlX2N0cmwsIGkpOwogCiB9CkBAIC0xMDY5NCwxNyArNzEwOCwxMyBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBCdXNNYXN0ZXJJbml0CisgKiBGdW5jdGlvbjogRlBUX0J1c01hc3RlckluaXQKICAqCiAgKiBEZXNjcmlwdGlvbjogSW5pdGlhbGl6ZSB0aGUgQnVzTWFzdGVyIGZvciBub3JtYWwgb3BlcmF0aW9ucy4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgQnVzTWFzdGVySW5pdChVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgQnVzTWFzdGVySW5pdChVTE9ORyBwX3BvcnQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9CdXNNYXN0ZXJJbml0KFVMT05HIHBfcG9ydCkKIHsKIAogCkBAIC0xMDcxOSwxMyArNzEyOSw2IEBACiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9lZV9jdHJsLCAoU0NTSV9URVJNX0VOQV9IKSk7CiAKIAotI2lmIGRlZmluZWQoTlQpCi0KLSAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3BjaV9jbWRfY2ZnLCAoUkRfSEFSUE9PTihwX3BvcnQraHBfcGNpX2NtZF9jZmcpCi0gICAgICAmIH5NRU1fU1BBQ0VfRU5BKSk7Ci0KLSNlbmRpZgotCiAgICBSRF9IQVJQT09OKHBfcG9ydCtocF9pbnRfc3RhdHVzKTsgICAgICAgIC8qQ2xlYXIgaW50ZXJydXB0cy4gKi8KICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX2ludF9tYXNrLCAoSU5UX0NNRF9DT01QTCB8IFNDU0lfSU5URVJSVVBUKSk7CiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwsIChSRF9IQVJQT09OKHBfcG9ydCtocF9wYWdlX2N0cmwpICYKQEAgLTEwNzM1LDE0NyArNzEzOCwxNCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIEZ1bmN0aW9uOiBEaWFnWGJvdwotICoKLSAqIERlc2NyaXB0aW9uOiBUZXN0IFhib3cgaW50ZWdyaXR5LiAgTm9uLXplcm8gcmV0dXJuIGluZGljYXRlcyBhbiBlcnJvci4KLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZiBkZWZpbmVkKERPUykKLWludCBEaWFnWGJvdyhVU0hPUlQgcG9ydCkKLSNlbHNlCi1pbnQgRGlhZ1hib3coVUxPTkcgcG9ydCkKLSNlbmRpZgotewotICAgdW5zaWduZWQgY2hhciBmaWZvX2NudCxsb29wX2NudDsKLQotICAgdW5zaWduZWQgY2hhciBmaWZvZGF0YVs1XTsKLSAgIGZpZm9kYXRhWzBdID0gMHgwMDsKLSAgIGZpZm9kYXRhWzFdID0gMHhGRjsKLSAgIGZpZm9kYXRhWzJdID0gMHg1NTsKLSAgIGZpZm9kYXRhWzNdID0gMHhBQTsKLSAgIGZpZm9kYXRhWzRdID0gMHgwMDsKLQotCi0gICBXUldfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSwgQ0xSX0FMTF9JTlQpOwotICAgV1JXX0hBUlBPT04oKHBvcnQraHBfaW50ZW5hKSwgMHgwMDAwKTsKLQotICAgV1JfSEFSUE9PTihwb3J0K2hwX3NlbHRpbWVvdXQsVE9fNW1zKTsKLQotICAgV1JfSEFSUE9PTihwb3J0K2hwX3BvcnRjdHJsXzAsU1RBUlRfVE8pOwotCi0KLSAgIGZvcihmaWZvZGF0YVs0XSA9IDB4MDE7IGZpZm9kYXRhWzRdICE9IChVQ0hBUikgMDsgZmlmb2RhdGFbNF0gPSBmaWZvZGF0YVs0XSA8PCAxKSB7Ci0KLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9zZWxmaWRfMCxmaWZvZGF0YVs0XSk7Ci0gICAgICBXUl9IQVJQT09OKHBvcnQraHBfc2VsZmlkXzEsZmlmb2RhdGFbNF0pOwotCi0gICAgICBpZiAoKFJEX0hBUlBPT04ocG9ydCtocF9zZWxmaWRfMCkgIT0gZmlmb2RhdGFbNF0pIHx8Ci0gICAgICAgICAgKFJEX0hBUlBPT04ocG9ydCtocF9zZWxmaWRfMSkgIT0gZmlmb2RhdGFbNF0pKQotICAgICAgICAgcmV0dXJuKDEpOwotICAgICAgfQotCi0KLSAgIGZvcihsb29wX2NudCA9IDA7IGxvb3BfY250IDwgNDsgbG9vcF9jbnQrKykgewotCi0gICAgICBXUl9IQVJQT09OKHBvcnQraHBfcG9ydGN0cmxfMCwoSE9TVF9QT1JUIHwgSE9TVF9XUlQgfCBTVEFSVF9UTykpOwotCi0KLSAgICAgIGZvciAoZmlmb19jbnQgPSAwOyBmaWZvX2NudCA8IEZJRk9fTEVOOyBmaWZvX2NudCsrKSB7Ci0KLSAgICAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9maWZvZGF0YV8wLCBmaWZvZGF0YVtsb29wX2NudF0pOwotICAgICAgICAgfQotCi0KLSAgICAgIGlmICghKFJEX0hBUlBPT04ocG9ydCtocF94ZmVyc3RhdCkgJiBGSUZPX0ZVTEwpKQotICAgICAgICAgcmV0dXJuKDEpOwotCi0KLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9wb3J0Y3RybF8wLChIT1NUX1BPUlQgfCBTVEFSVF9UTykpOwotCi0gICAgICBmb3IgKGZpZm9fY250ID0gMDsgZmlmb19jbnQgPCBGSUZPX0xFTjsgZmlmb19jbnQrKykgewotCi0gICAgICAgICBpZiAoUkRfSEFSUE9PTihwb3J0K2hwX2ZpZm9kYXRhXzApICE9IGZpZm9kYXRhW2xvb3BfY250XSkKLSAgICAgICAgICAgIHJldHVybigxKTsKLSAgICAgICAgIH0KLQotCi0gICAgICBpZiAoIShSRF9IQVJQT09OKHBvcnQraHBfeGZlcnN0YXQpICYgRklGT19FTVBUWSkpCi0gICAgICAgICByZXR1cm4oMSk7Ci0gICAgICB9Ci0KLQotICAgd2hpbGUoIShSRFdfSEFSUE9PTigocG9ydCtocF9pbnRzdGF0KSkgJiBUSU1FT1VUKSkge30KLQotCi0gICBXUl9IQVJQT09OKHBvcnQraHBfc2VsdGltZW91dCxUT18yOTBtcyk7Ci0KLSAgIFdSV19IQVJQT09OKChwb3J0K2hwX2ludHN0YXQpLCBDTFJfQUxMX0lOVCk7Ci0KLSAgIFdSV19IQVJQT09OKChwb3J0K2hwX2ludGVuYSksIGRlZmF1bHRfaW50ZW5hKTsKLQotICAgcmV0dXJuKDApOwotfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRnVuY3Rpb246IERpYWdCdXNNYXN0ZXIKLSAqCi0gKiBEZXNjcmlwdGlvbjogVGVzdCBCdXNNYXN0ZXIgaW50ZWdyaXR5LiAgTm9uLXplcm8gcmV0dXJuIGluZGljYXRlcyBhbgotICogICAgICAgICAgICAgIGVycm9yLgotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmIGRlZmluZWQoRE9TKQotaW50IERpYWdCdXNNYXN0ZXIoVVNIT1JUIHBvcnQpCi0jZWxzZQotaW50IERpYWdCdXNNYXN0ZXIoVUxPTkcgcG9ydCkKLSNlbmRpZgotewotICAgVUNIQVIgdGVzdGRhdGE7Ci0KLSAgIGZvcih0ZXN0ZGF0YSA9IChVQ0hBUikgMTsgdGVzdGRhdGEgIT0gKFVDSEFSKTA7IHRlc3RkYXRhID0gdGVzdGRhdGEgPDwgMSkgewotCi0gICAgICBXUl9IQVJQT09OKHBvcnQraHBfeGZlcl9jbnRfbG8sdGVzdGRhdGEpOwotICAgICAgV1JfSEFSUE9PTihwb3J0K2hwX3hmZXJfY250X21pLHRlc3RkYXRhKTsKLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF94ZmVyX2NudF9oaSx0ZXN0ZGF0YSk7Ci0gICAgICBXUl9IQVJQT09OKHBvcnQraHBfaG9zdF9hZGRyX2xvLHRlc3RkYXRhKTsKLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9ob3N0X2FkZHJfbG1pLHRlc3RkYXRhKTsKLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9ob3N0X2FkZHJfaG1pLHRlc3RkYXRhKTsKLSAgICAgIFdSX0hBUlBPT04ocG9ydCtocF9ob3N0X2FkZHJfaGksdGVzdGRhdGEpOwotCi0gICAgICBpZiAoKFJEX0hBUlBPT04ocG9ydCtocF94ZmVyX2NudF9sbykgIT0gdGVzdGRhdGEpICAgfHwKLSAgICAgICAgICAoUkRfSEFSUE9PTihwb3J0K2hwX3hmZXJfY250X21pKSAhPSB0ZXN0ZGF0YSkgICB8fAotICAgICAgICAgIChSRF9IQVJQT09OKHBvcnQraHBfeGZlcl9jbnRfaGkpICE9IHRlc3RkYXRhKSAgIHx8Ci0gICAgICAgICAgKFJEX0hBUlBPT04ocG9ydCtocF9ob3N0X2FkZHJfbG8pICE9IHRlc3RkYXRhKSAgfHwKLSAgICAgICAgICAoUkRfSEFSUE9PTihwb3J0K2hwX2hvc3RfYWRkcl9sbWkpICE9IHRlc3RkYXRhKSB8fAotICAgICAgICAgIChSRF9IQVJQT09OKHBvcnQraHBfaG9zdF9hZGRyX2htaSkgIT0gdGVzdGRhdGEpIHx8Ci0gICAgICAgICAgKFJEX0hBUlBPT04ocG9ydCtocF9ob3N0X2FkZHJfaGkpICE9IHRlc3RkYXRhKSkKLQotICAgICAgICAgcmV0dXJuKDEpOwotICAgICAgfQotICAgUkRfSEFSUE9PTihwb3J0K2hwX2ludF9zdGF0dXMpOyAgICAgICAgLypDbGVhciBpbnRlcnJ1cHRzLiAqLwotICAgcmV0dXJuKDApOwotfQotCi0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBGdW5jdGlvbjogRGlhZ0VFUFJPTQorICogRnVuY3Rpb246IEZQVF9EaWFnRUVQUk9NCiAgKgogICogRGVzY3JpcHRpb246IFZlcmZpeSBjaGVja3N1bSBhbmQgJ0tleScgYW5kIGluaXRpYWxpemUgdGhlIEVFUFJPTSBpZgogICogICAgICAgICAgICAgIG5lY2Vzc2FyeS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgRGlhZ0VFUFJPTShVU0hPUlQgcF9wb3J0KQotI2Vsc2UKLXZvaWQgRGlhZ0VFUFJPTShVTE9ORyBwX3BvcnQpCi0jZW5kaWYKLQorc3RhdGljIHZvaWQgRlBUX0RpYWdFRVBST00oVUxPTkcgcF9wb3J0KQogewogICAgVVNIT1JUIGluZGV4LHRlbXAsbWF4X3dkX2NudDsKIApAQCAtMTA4ODQsMTg1ICs3MTU0LDE0OCBAQAogICAgZWxzZQogICAgICAgbWF4X3dkX2NudCA9IEVFUFJPTV9XRF9DTlQgKiAyOwogCi0gICB0ZW1wID0gdXRpbEVFUmVhZChwX3BvcnQsIEZXX1NJR05BVFVSRS8yKTsKKyAgIHRlbXAgPSBGUFRfdXRpbEVFUmVhZChwX3BvcnQsIEZXX1NJR05BVFVSRS8yKTsKIAogICAgaWYgKHRlbXAgPT0gMHg0NjQxKSB7CiAKICAgICAgIGZvciAoaW5kZXggPSAyOyBpbmRleCA8IG1heF93ZF9jbnQ7IGluZGV4KyspIHsKIAotICAgICAgICAgdGVtcCArPSB1dGlsRUVSZWFkKHBfcG9ydCwgaW5kZXgpOworICAgICAgICAgdGVtcCArPSBGUFRfdXRpbEVFUmVhZChwX3BvcnQsIGluZGV4KTsKIAogICAgICAgICAgfQogCi0gICAgICBpZiAodGVtcCA9PSB1dGlsRUVSZWFkKHBfcG9ydCwgRUVQUk9NX0NIRUNLX1NVTS8yKSkgeworICAgICAgaWYgKHRlbXAgPT0gRlBUX3V0aWxFRVJlYWQocF9wb3J0LCBFRVBST01fQ0hFQ0tfU1VNLzIpKSB7CiAKICAgICAgICAgIHJldHVybjsgICAgICAgICAgLypFRVBST00gaXMgT2theSBzbyByZXR1cm4gbm93ISAqLwogICAgICAgICAgfQogICAgICAgfQogCiAKLSAgIHV0aWxFRVdyaXRlT25PZmYocF9wb3J0LChVQ0hBUikxKTsKKyAgIEZQVF91dGlsRUVXcml0ZU9uT2ZmKHBfcG9ydCwoVUNIQVIpMSk7CiAKICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IG1heF93ZF9jbnQ7IGluZGV4KyspIHsKIAotICAgICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDAwMDAsIGluZGV4KTsKKyAgICAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MDAwMCwgaW5kZXgpOwogICAgICAgfQogCiAgICB0ZW1wID0gMDsKIAotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDQ2NDEsIEZXX1NJR05BVFVSRS8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NDY0MSwgRldfU0lHTkFUVVJFLzIpOwogICAgdGVtcCArPSAweDQ2NDE7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4MzkyMCwgTU9ERUxfTlVNQl8wLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgzOTIwLCBNT0RFTF9OVU1CXzAvMik7CiAgICB0ZW1wICs9IDB4MzkyMDsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHgzMDMzLCBNT0RFTF9OVU1CXzIvMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDMwMzMsIE1PREVMX05VTUJfMi8yKTsKICAgIHRlbXAgKz0gMHgzMDMzOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwMjAsIE1PREVMX05VTUJfNC8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MjAyMCwgTU9ERUxfTlVNQl80LzIpOwogICAgdGVtcCArPSAweDIwMjA7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4NzBEMywgU1lTVEVNX0NPTkZJRy8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NzBEMywgU1lTVEVNX0NPTkZJRy8yKTsKICAgIHRlbXAgKz0gMHg3MEQzOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDAwMTAsIEJJT1NfQ09ORklHLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgwMDEwLCBCSU9TX0NPTkZJRy8yKTsKICAgIHRlbXAgKz0gMHgwMDEwOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDAwMDMsIFNDQU1fQ09ORklHLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgwMDAzLCBTQ0FNX0NPTkZJRy8yKTsKICAgIHRlbXAgKz0gMHgwMDAzOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDAwMDcsIEFEQVBURVJfU0NTSV9JRC8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MDAwNywgQURBUFRFUl9TQ1NJX0lELzIpOwogICAgdGVtcCArPSAweDAwMDc7CiAKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHgwMDAwLCBJR05PUkVfQl9TQ0FOLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgwMDAwLCBJR05PUkVfQl9TQ0FOLzIpOwogICAgdGVtcCArPSAweDAwMDA7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4MDAwMCwgU0VORF9TVEFSVF9FTkEvMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDAwMDAsIFNFTkRfU1RBUlRfRU5BLzIpOwogICAgdGVtcCArPSAweDAwMDA7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4MDAwMCwgREVWSUNFX0VOQUJMRS8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MDAwMCwgREVWSUNFX0VOQUJMRS8yKTsKICAgIHRlbXAgKz0gMHgwMDAwOwogCi0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4NDI0MiwgU1lOQ19SQVRFX1RCTDAxLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMMDEvMik7CiAgICB0ZW1wICs9IDB4NDI0MjsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMMjMvMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDQyNDIsIFNZTkNfUkFURV9UQkwyMy8yKTsKICAgIHRlbXAgKz0gMHg0MjQyOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDQyNDIsIFNZTkNfUkFURV9UQkw0NS8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NDI0MiwgU1lOQ19SQVRFX1RCTDQ1LzIpOwogICAgdGVtcCArPSAweDQyNDI7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4NDI0MiwgU1lOQ19SQVRFX1RCTDY3LzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMNjcvMik7CiAgICB0ZW1wICs9IDB4NDI0MjsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMODkvMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDQyNDIsIFNZTkNfUkFURV9UQkw4OS8yKTsKICAgIHRlbXAgKz0gMHg0MjQyOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDQyNDIsIFNZTkNfUkFURV9UQkxhYi8yKTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NDI0MiwgU1lOQ19SQVRFX1RCTGFiLzIpOwogICAgdGVtcCArPSAweDQyNDI7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4NDI0MiwgU1lOQ19SQVRFX1RCTGNkLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMY2QvMik7CiAgICB0ZW1wICs9IDB4NDI0MjsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHg0MjQyLCBTWU5DX1JBVEVfVEJMZWYvMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDQyNDIsIFNZTkNfUkFURV9UQkxlZi8yKTsKICAgIHRlbXAgKz0gMHg0MjQyOwogCiAKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHg2QzQ2LCA2NC8yKTsgIC8qUFJPRFVDVCBJRCAqLworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg2QzQ2LCA2NC8yKTsgIC8qUFJPRFVDVCBJRCAqLwogICAgdGVtcCArPSAweDZDNDY7Ci0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4NzM2MSwgNjYvMik7ICAvKiBGbGFzaFBvaW50IExUICAgKi8KKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NzM2MSwgNjYvMik7ICAvKiBGbGFzaFBvaW50IExUICAgKi8KICAgIHRlbXAgKz0gMHg3MzYxOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDUwNjgsIDY4LzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg1MDY4LCA2OC8yKTsKICAgIHRlbXAgKz0gMHg1MDY4OwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDY5NkYsIDcwLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg2OTZGLCA3MC8yKTsKICAgIHRlbXAgKz0gMHg2OTZGOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDc0NkUsIDcyLzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg3NDZFLCA3Mi8yKTsKICAgIHRlbXAgKz0gMHg3NDZFOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDRDMjAsIDc0LzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg0QzIwLCA3NC8yKTsKICAgIHRlbXAgKz0gMHg0QzIwOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwNTQsIDc2LzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgyMDU0LCA3Ni8yKTsKICAgIHRlbXAgKz0gMHgyMDU0OwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwMjAsIDc4LzIpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHgyMDIwLCA3OC8yKTsKICAgIHRlbXAgKz0gMHgyMDIwOwogCiAgICBpbmRleCA9ICgoRUVfU0NBTUJBU0UvMikrKDcqMTYpKTsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgKDB4MDcwMCtUWVBFX0NPREUwKSwgaW5kZXgpOworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgKDB4MDcwMCtUWVBFX0NPREUwKSwgaW5kZXgpOwogICAgdGVtcCArPSAoMHgwNzAwK1RZUEVfQ09ERTApOwogICAgaW5kZXgrKzsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHg1NTQyLCBpbmRleCk7ICAgICAgICAgICAgLypWZW5kb3IgSUQgY29kZSAqLworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg1NTQyLCBpbmRleCk7ICAgICAgICAgICAgLypWZW5kb3IgSUQgY29kZSAqLwogICAgdGVtcCArPSAweDU1NDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCVVNMT0dJQyAgICAgICovCiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDRDNTMsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NEM1MywgaW5kZXgpOwogICAgdGVtcCArPSAweDRDNTM7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDQ3NEYsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NDc0RiwgaW5kZXgpOwogICAgdGVtcCArPSAweDQ3NEY7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDQzNDksIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NDM0OSwgaW5kZXgpOwogICAgdGVtcCArPSAweDQzNDk7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDU0NDIsIGluZGV4KTsgICAgICAgICAgICAvKlZlbmRvciB1bmlxdWUgY29kZSAqLworICAgRlBUX3V0aWxFRVdyaXRlKHBfcG9ydCwgMHg1NDQyLCBpbmRleCk7ICAgICAgICAgICAgLypWZW5kb3IgdW5pcXVlIGNvZGUgKi8KICAgIHRlbXAgKz0gMHg1NDQyOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCVC0gOTMwICAgICAgICAgICAqLwogICAgaW5kZXgrKzsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHgyMDJELCBpbmRleCk7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwMkQsIGluZGV4KTsKICAgIHRlbXAgKz0gMHgyMDJEOwogICAgaW5kZXgrKzsKLSAgIHV0aWxFRVdyaXRlKHBfcG9ydCwgMHgzMzM5LCBpbmRleCk7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDMzMzksIGluZGV4KTsKICAgIHRlbXAgKz0gMHgzMzM5OwogICAgaW5kZXgrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlNlcmlhbCAjICAgICAgICAgICovCi0gICB1dGlsRUVXcml0ZShwX3BvcnQsIDB4MjAzMCwgaW5kZXgpOyAgICAgICAgICAgICAvKiAwMTIzNDU2NyAgICAgICAgICovCisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwMzAsIGluZGV4KTsgICAgICAgICAgICAgLyogMDEyMzQ1NjcgICAgICAgICAqLwogICAgdGVtcCArPSAweDIwMzA7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDU0NTMsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NTQ1MywgaW5kZXgpOwogICAgdGVtcCArPSAweDU0NTM7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDU2NDUsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NTY0NSwgaW5kZXgpOwogICAgdGVtcCArPSAweDU2NDU7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwNDUsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MjA0NSwgaW5kZXgpOwogICAgdGVtcCArPSAweDIwNDU7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwMkYsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MjAyRiwgaW5kZXgpOwogICAgdGVtcCArPSAweDIwMkY7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDRGNEEsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4NEY0QSwgaW5kZXgpOwogICAgdGVtcCArPSAweDRGNEE7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDIwNEUsIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MjA0RSwgaW5kZXgpOwogICAgdGVtcCArPSAweDIwNEU7CiAgICBpbmRleCsrOwotICAgdXRpbEVFV3JpdGUocF9wb3J0LCAweDM1MzksIGluZGV4KTsKKyAgIEZQVF91dGlsRUVXcml0ZShwX3BvcnQsIDB4MzUzOSwgaW5kZXgpOwogICAgdGVtcCArPSAweDM1Mzk7CiAKIAogCi0gICB1dGlsRUVXcml0ZShwX3BvcnQsIHRlbXAsIEVFUFJPTV9DSEVDS19TVU0vMik7CisgICBGUFRfdXRpbEVFV3JpdGUocF9wb3J0LCB0ZW1wLCBFRVBST01fQ0hFQ0tfU1VNLzIpOwogCi0gICB1dGlsRUVXcml0ZU9uT2ZmKHBfcG9ydCwoVUNIQVIpMCk7CisgICBGUFRfdXRpbEVFV3JpdGVPbk9mZihwX3BvcnQsKFVDSEFSKTApOwogCiB9CiAKLSNpZGVudCAiJElkOiB1dGlsaXR5LmMgMS4yMyAxOTk3LzA2LzEwIDE2OjU1OjA2IG1vaGFuIEV4cCAkIgotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoKLSAqICAgQ29weXJpZ2h0IDE5OTUtMTk5NiBieSBNeWxleCBDb3Jwb3JhdGlvbi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLSAqCi0gKiAgIFRoaXMgZmlsZSBpcyBhdmFpbGFibGUgdW5kZXIgYm90aCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYW5kIGEgQlNELXN0eWxlIGNvcHlyaWdodDsgc2VlIExJQ0VOU0UuRmxhc2hQb2ludCBmb3IgZGV0YWlscy4KLSAqCi0gKiAgICRXb3JrZmlsZTogICB1dGlsaXR5LmMgICQKLSAqCi0gKiAgIERlc2NyaXB0aW9uOiAgVXRpbGl0eSBmdW5jdGlvbnMgcmVsYXRpbmcgdG8gcXVldWVpbmcgYW5kIEVFUFJPTQotICogICAgICAgICAgICAgICAgIG1hbmlwdWxhdGlvbiBhbmQgYW55IG90aGVyIGdhcmJhZ2UgZnVuY3Rpb25zLgotICoKLSAqICAgJERhdGU6IDE5OTcvMDYvMTAgMTY6NTU6MDYgJAotICoKLSAqICAgJFJldmlzaW9uOiAxLjIzICQKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLyojaW5jbHVkZSA8Z2xvYmFscy5oPiovCi0KLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotCS8qI2luY2x1ZGUgPGJ1ZGkuaD4qLwotI2VuZGlmCi0KLS8qI2luY2x1ZGUgPHNjY2JtZ3IuaD4qLwotLyojaW5jbHVkZSA8Ymx4MzAuaD4qLwotLyojaW5jbHVkZSA8dGFyZ2V0Lmg+Ki8KLS8qI2luY2x1ZGUgPHNjc2kyLmg+Ki8KLS8qI2luY2x1ZGUgPGhhcnBvb24uaD4qLwotCi0KLS8qCi1leHRlcm4gU0NDQkNBUkQgQkxfQ2FyZFtNQVhfQ0FSRFNdOwotZXh0ZXJuIFNDQ0JNR1JfVEFSX0lORk8gc2NjYk1nclRibFtNQVhfQ0FSRFNdW01BWF9TQ1NJX1RBUl07Ci1leHRlcm4gdW5zaWduZWQgaW50IFNjY2JHbG9iYWxGbGFnczsKLSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgpAQCAtMTEwNzIsNyArNzMwNSw3IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi12b2lkIHF1ZXVlU2VhcmNoU2VsZWN0KFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFVDSEFSIHBfY2FyZCkKK3N0YXRpYyB2b2lkIEZQVF9xdWV1ZVNlYXJjaFNlbGVjdChQU0NDQmNhcmQgcEN1cnJDYXJkLCBVQ0hBUiBwX2NhcmQpCiB7CiAgICBVQ0hBUiBzY2FuX3B0ciwgbHVuOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwpAQCAtMTEwODEsNyArNzMxNCw3IEBACiAgICBzY2FuX3B0ciA9IHBDdXJyQ2FyZC0+c2NhbkluZGV4OwogCWRvIAogCXsKLQkJY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtzY2FuX3B0cl07CisJCWN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3NjYW5fcHRyXTsKIAkJaWYoKHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYgCiAJCQkoKGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpCiAJCXsKQEAgLTExMDk0LDcgKzczMjcsNyBAQAogCQkJCQogCQkJCWZvcihsdW49MDsgbHVuIDwgTUFYX0xVTjsgbHVuKyspCiAJCQkJewotCQkJCQlpZihjdXJyVGFyX0luZm8tPlRhckxVTkJ1c3lbbHVuXSA9PSBGQUxTRSkKKwkJCQkJaWYoY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5W2x1bl0gPT0gMCkKIAkJCQkJewogCiAJCQkJCQlwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCID0gY3VyclRhcl9JbmZvLT5UYXJTZWxRX0hlYWQ7CkBAIC0xMTE1Myw3ICs3Mzg2LDcgQEAKIAkJZWxzZQogCQl7CiAJCQlpZiAoKGN1cnJUYXJfSW5mby0+VGFyU2VsUV9DbnQgIT0gMCkgJiYKLQkJCQkoY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5WzBdID09IEZBTFNFKSkKKwkJCQkoY3VyclRhcl9JbmZvLT5UYXJMVU5CdXN5WzBdID09IDApKQogCQkJewogCiAJCQkJcEN1cnJDYXJkLT5jdXJyZW50U0NDQiA9IGN1cnJUYXJfSW5mby0+VGFyU2VsUV9IZWFkOwpAQCAtMTEyMDMsNyArNzQzNiw3IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi12b2lkIHF1ZXVlU2VsZWN0RmFpbChQU0NDQmNhcmQgcEN1cnJDYXJkLCBVQ0hBUiBwX2NhcmQpCitzdGF0aWMgdm9pZCBGUFRfcXVldWVTZWxlY3RGYWlsKFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFVDSEFSIHBfY2FyZCkKIHsKICAgIFVDSEFSIHRoaXNUYXJnOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwpAQCAtMTEyMTEsNyArNzQ0NCw3IEBACiAgICBpZiAocEN1cnJDYXJkLT5jdXJyZW50U0NDQiAhPSBOVUxMKQogCSAgewogCSAgdGhpc1RhcmcgPSAoVUNIQVIpKCgoUFNDQ0IpKHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IpKS0+VGFyZ0lEKTsKLSAgICAgIGN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bdGhpc1RhcmddOworICAgICAgY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bdGhpc1RhcmddOwogCiAgICAgICBwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCLT5TY2NiX2JhY2tsaW5rID0gKFBTQ0NCKU5VTEw7CiAKQEAgLTExMjQyLDEwMyArNzQ3NSwxMCBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdm9pZCBxdWV1ZUNtZENvbXBsZXRlKFBTQ0NCY2FyZCBwQ3VyckNhcmQsIFBTQ0NCIHBfc2NjYiwgVUNIQVIgcF9jYXJkKQorc3RhdGljIHZvaWQgRlBUX3F1ZXVlQ21kQ29tcGxldGUoUFNDQ0JjYXJkIHBDdXJyQ2FyZCwgUFNDQ0IgcF9zY2NiLAorCQkJCSBVQ0hBUiBwX2NhcmQpCiB7CiAKLSNpZiAoRldfVFlQRT09X1VDQl9NR1JfKQotCi0gICB1MDhiaXRzIFNDU0ljbWQ7Ci0gICBDQUxMX0JLX0ZOIGNhbGxiYWNrOwotICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwotCi0gICBQVUNCIHBfdWNiOwotICAgcF91Y2I9cF9zY2NiLT5TY2NiX3VjYl9wdHI7Ci0KLSAgIFNDU0ljbWQgPSBwX3NjY2ItPkNkYlswXTsKLQotCi0gICBpZiAoIShwX3NjY2ItPlNjY2JfWGZlclN0YXRlICYgRl9BTExfWEZFUlJFRCkpCi0gICB7Ci0KLSAgICAgIGlmICgocF91Y2ItPlVDQl9vcGNvZGUgJiBPUENfQ0hLX1VOREVSX09WRVJfUlVOKSAgICAgICAgICAgICAgICAgICAgICYmCi0gICAgICAgICAocF9zY2NiLT5Ib3N0U3RhdHVzID09IFNDQ0JfQ09NUExFVEUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJgotICAgICAgICAgKHBfc2NjYi0+VGFyZ2V0U3RhdHVzICE9IFNTQ0hFQ0spKQotCi0gICAgICAgICBpZiAoKFNDU0ljbWQgPT0gU0NTSV9SRUFEKSAgICAgICAgICAgICB8fAotICAgICAgICAgICAgIChTQ1NJY21kID09IFNDU0lfV1JJVEUpICAgICAgICAgICAgfHwKLSAgICAgICAgICAgICAoU0NTSWNtZCA9PSBTQ1NJX1JFQURfRVhURU5ERUQpICAgIHx8Ci0gICAgICAgICAgICAgKFNDU0ljbWQgPT0gU0NTSV9XUklURV9FWFRFTkRFRCkgICB8fAotICAgICAgICAgICAgIChTQ1NJY21kID09IFNDU0lfV1JJVEVfQU5EX1ZFUklGWSkgfHwKLSAgICAgICAgICAgICAoU0NTSWNtZCA9PSBTQ1NJX1NUQVJUX1NUT1BfVU5JVCkgIHx8Ci0gICAgICAgICAgICAgKHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJiBGX05PX0ZJTFRFUikKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgIHBfc2NjYi0+SG9zdFN0YXR1cyA9IFNDQ0JfREFUQV9VTkRFUl9SVU47Ci0gICB9Ci0KLSAgIHBfdWNiLT5VQ0Jfc3RhdHVzPVNDQ0JfU1VDQ0VTUzsKLQotICAgaWYgKChwX3VjYi0+VUNCX2hiYXN0YXQ9cF9zY2NiLT5Ib3N0U3RhdHVzKSB8fCAocF91Y2ItPlVDQl9zY3Npc3RhdD1wX3NjY2ItPlRhcmdldFN0YXR1cykpCi0gICB7Ci0gICAgICBwX3VjYi0+VUNCX3N0YXR1cz1TQ0NCX0VSUk9SOwotICAgfQotCi0gICBpZiAoKHBfc2NjYi0+T3BlcmF0aW9uQ29kZSA9PSBSRVNJRFVBTF9TR19DT01NQU5EKSB8fAotICAgICAgKHBfc2NjYi0+T3BlcmF0aW9uQ29kZSA9PSBSRVNJRFVBTF9DT01NQU5EKSkKLSAgIHsKLQotICAgICAgICAgdXRpbFVwZGF0ZVJlc2lkdWFsKHBfc2NjYik7Ci0KLSAgICAgICAgIHBfdWNiLT5VQ0JfZGF0YWxlbj1wX3NjY2ItPkRhdGFMZW5ndGg7Ci0gICB9Ci0KLSAgIHBDdXJyQ2FyZC0+Y21kQ291bnRlci0tOwotICAgaWYgKCFwQ3VyckNhcmQtPmNtZENvdW50ZXIpCi0gICB7Ci0KLSAgICAgIGlmIChwQ3VyckNhcmQtPmdsb2JhbEZsYWdzICYgRl9HUkVFTl9QQykKLSAgICAgIHsKLSAgICAgICAgIFdSX0hBUlBPT04ocEN1cnJDYXJkLT5pb1BvcnQraHBfY2xrY3RybF8wLChQV1JfRFdOIHwgQ0xLQ1RSTF9ERUZBVUxUKSk7Ci0gICAgICAgICBXUl9IQVJQT09OKHBDdXJyQ2FyZC0+aW9Qb3J0K2hwX3N5c19jdHJsLCBTVE9QX0NMSyk7Ci0gICAgICB9Ci0KLSAgICAgIFdSX0hBUlBPT04ocEN1cnJDYXJkLT5pb1BvcnQraHBfc2VtYXBob3JlLAotICAgICAgKFJEX0hBUlBPT04ocEN1cnJDYXJkLT5pb1BvcnQraHBfc2VtYXBob3JlKSAmIH5TQ0NCX01HUl9BQ1RJVkUpKTsKLSAgIH0KLQotCWlmKHBDdXJyQ2FyZC0+ZGlzY1FDb3VudCAhPSAwKQotCXsKLSAgICAgIGN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bcF9zY2NiLT5UYXJnSURdOwotCQlpZigoKHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgJiBGX0NPTkxVTl9JTykgJiYKLQkJCSgoY3VyclRhcl9JbmZvLT5UYXJTdGF0dXMgJiBUQVJfVEFHX1FfTUFTSykgIT0gVEFHX1FfVFJZSU5HKSkpCi0JCXsKLQkJCXBDdXJyQ2FyZC0+ZGlzY1FDb3VudC0tOwotCQkJcEN1cnJDYXJkLT5kaXNjUV9UYmxbY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbcF9zY2NiLT5MdW5dXSA9IE5VTEw7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlpZihwX3NjY2ItPlNjY2JfdGFnKQotCQkJewotCQkJCXBDdXJyQ2FyZC0+ZGlzY1FDb3VudC0tOwotCQkJCXBDdXJyQ2FyZC0+ZGlzY1FfVGJsW3Bfc2NjYi0+U2NjYl90YWddID0gTlVMTDsKLQkJCX1lbHNlCi0JCQl7Ci0JCQkJcEN1cnJDYXJkLT5kaXNjUUNvdW50LS07Ci0JCQkJcEN1cnJDYXJkLT5kaXNjUV9UYmxbY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbMF1dID0gTlVMTDsKLQkJCX0KLQkJfQotCi0JfQotICAgY2FsbGJhY2sgPSAoQ0FMTF9CS19GTilwX3VjYi0+VUNCX2NhbGxiYWNrOwotICAgY2FsbGJhY2socF91Y2IpOwotICAgcEN1cnJDYXJkLT5nbG9iYWxGbGFncyB8PSBGX05FV19TQ0NCX0NNRDsKLSAgIHBDdXJyQ2FyZC0+Y3VycmVudFNDQ0IgPSBOVUxMOwotfQotCi0KLQotCi0jZWxzZQotCiAgICBVQ0hBUiBpLCBTQ1NJY21kOwogICAgQ0FMTF9CS19GTiBjYWxsYmFjazsKICAgIFBTQ0NCTWdyX3Rhcl9pbmZvIGN1cnJUYXJfSW5mbzsKQEAgLTExMzgzLDcgKzc1MjMsNyBAQAogICAgaWYgKChwX3NjY2ItPk9wZXJhdGlvbkNvZGUgPT0gUkVTSURVQUxfU0dfQ09NTUFORCkgfHwKIAkgIChwX3NjY2ItPk9wZXJhdGlvbkNvZGUgPT0gUkVTSURVQUxfQ09NTUFORCkpIHsKIAotCQkgdXRpbFVwZGF0ZVJlc2lkdWFsKHBfc2NjYik7CisJCSBGUFRfdXRpbFVwZGF0ZVJlc2lkdWFsKHBfc2NjYik7CiAJCSB9CiAKICAgIHBDdXJyQ2FyZC0+Y21kQ291bnRlci0tOwpAQCAtMTE0MDEsNyArNzU0MSw3IEBACiAKIAlpZihwQ3VyckNhcmQtPmRpc2NRQ291bnQgIT0gMCkKIAl7Ci0gICAgICBjdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXTsKKyAgICAgIGN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXTsKIAkJaWYoKChwQ3VyckNhcmQtPmdsb2JhbEZsYWdzICYgRl9DT05MVU5fSU8pICYmCiAJCQkoKGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpKQogCQl7CkBAIC0xMTQyOCw3ICs3NTY4LDYgQEAKICAgIHBDdXJyQ2FyZC0+Z2xvYmFsRmxhZ3MgfD0gRl9ORVdfU0NDQl9DTUQ7CiAgICBwQ3VyckNhcmQtPmN1cnJlbnRTQ0NCID0gTlVMTDsKIH0KLSNlbmRpZiAvKiAoIGlmIEZXX1RZUEU9PS4uLikgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE0MzgsMzAgKzc1NzcsMzAgQEAKICAqIERlc2NyaXB0aW9uOiBBZGQgU0NDQiB0byBvdXIgZGlzY29ubmVjdCBhcnJheS4KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi12b2lkIHF1ZXVlRGlzY29ubmVjdChQU0NDQiBwX3NjY2IsIFVDSEFSIHBfY2FyZCkKK3N0YXRpYyB2b2lkIEZQVF9xdWV1ZURpc2Nvbm5lY3QoUFNDQ0IgcF9zY2NiLCBVQ0hBUiBwX2NhcmQpCiB7CiAgICBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLQljdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXTsKKwljdXJyVGFyX0luZm8gPSAmRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtwX3NjY2ItPlRhcmdJRF07CiAKLQlpZigoKEJMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgorCWlmKCgoRlBUX0JMX0NhcmRbcF9jYXJkXS5nbG9iYWxGbGFncyAmIEZfQ09OTFVOX0lPKSAmJgogCQkoKGN1cnJUYXJfSW5mby0+VGFyU3RhdHVzICYgVEFSX1RBR19RX01BU0spICE9IFRBR19RX1RSWUlORykpKQogCXsKLQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtjdXJyVGFyX0luZm8tPkx1bkRpc2NRX0lkeFtwX3NjY2ItPkx1bl1dID0gcF9zY2NiOworCQlGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtjdXJyVGFyX0luZm8tPkx1bkRpc2NRX0lkeFtwX3NjY2ItPkx1bl1dID0gcF9zY2NiOwogCX0KIAllbHNlCiAJewogCQlpZiAocF9zY2NiLT5TY2NiX3RhZykKIAkJewotCQkJQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtwX3NjY2ItPlNjY2JfdGFnXSA9IHBfc2NjYjsKLQkJCXNjY2JNZ3JUYmxbcF9jYXJkXVtwX3NjY2ItPlRhcmdJRF0uVGFyTFVOQnVzeVswXSA9IEZBTFNFOwotCQkJc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXS5UYXJUYWdRX0NudCsrOworCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcF9zY2NiLT5TY2NiX3RhZ10gPSBwX3NjY2I7CisJCQlGUFRfc2NjYk1nclRibFtwX2NhcmRdW3Bfc2NjYi0+VGFyZ0lEXS5UYXJMVU5CdXN5WzBdID0gMDsKKwkJCUZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bcF9zY2NiLT5UYXJnSURdLlRhclRhZ1FfQ250Kys7CiAJCX1lbHNlCiAJCXsKLQkJCUJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbMF1dID0gcF9zY2NiOworCQkJRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbY3VyclRhcl9JbmZvLT5MdW5EaXNjUV9JZHhbMF1dID0gcF9zY2NiOwogCQl9CiAJfQotCUJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQiA9IE5VTEw7CisJRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQiA9IE5VTEw7CiB9CiAKIApAQCAtMTE0NzMsMjkgKzc2MTIsMjkgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXZvaWQgIHF1ZXVlRmx1c2hTY2NiKFVDSEFSIHBfY2FyZCwgVUNIQVIgZXJyb3JfY29kZSkKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVGbHVzaFNjY2IoVUNIQVIgcF9jYXJkLCBVQ0hBUiBlcnJvcl9jb2RlKQogewogICAgVUNIQVIgcXRhZyx0aGlzVGFyZzsKICAgIFBTQ0NCIGN1cnJTQ0NCOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwogCi0gICBjdXJyU0NDQiA9IEJMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKKyAgIGN1cnJTQ0NCID0gRlBUX0JMX0NhcmRbcF9jYXJkXS5jdXJyZW50U0NDQjsKIAlpZihjdXJyU0NDQiAhPSBOVUxMKQogCXsKIAkgICB0aGlzVGFyZyA9IChVQ0hBUiljdXJyU0NDQi0+VGFyZ0lEOwotICAgCWN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bdGhpc1RhcmddOworICAgCWN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3RoaXNUYXJnXTsKIAogCSAgIGZvciAocXRhZz0wOyBxdGFnPFFVRVVFX0RFUFRIOyBxdGFnKyspIHsKIAotCQkgIGlmIChCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddICYmIAotCQkJCQkoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXS0+VGFyZ0lEID09IHRoaXNUYXJnKSkKKwkJICBpZiAoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10gJiYgCisJCQkJCShGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXS0+VGFyZ0lEID09IHRoaXNUYXJnKSkKIAkJCSB7CiAKLQkJCSBCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddLT5Ib3N0U3RhdHVzID0gKFVDSEFSKWVycm9yX2NvZGU7CisJCQkgRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10tPkhvc3RTdGF0dXMgPSAoVUNIQVIpZXJyb3JfY29kZTsKIAkJCQotCQkJIHF1ZXVlQ21kQ29tcGxldGUoJkJMX0NhcmRbcF9jYXJkXSxCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddLCBwX2NhcmQpOworCQkJIEZQVF9xdWV1ZUNtZENvbXBsZXRlKCZGUFRfQkxfQ2FyZFtwX2NhcmRdLEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddLCBwX2NhcmQpOwogCi0JCQkgQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXSA9IE5VTEw7CisJCQkgRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10gPSBOVUxMOwogCQkJIGN1cnJUYXJfSW5mby0+VGFyVGFnUV9DbnQtLTsKIAogCQkJIH0KQEAgLTExNTEyLDI0ICs3NjUxLDI1IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi12b2lkICBxdWV1ZUZsdXNoVGFyZ1NjY2IoVUNIQVIgcF9jYXJkLCBVQ0hBUiB0aGlzVGFyZywgVUNIQVIgZXJyb3JfY29kZSkKK3N0YXRpYyB2b2lkICBGUFRfcXVldWVGbHVzaFRhcmdTY2NiKFVDSEFSIHBfY2FyZCwgVUNIQVIgdGhpc1RhcmcsCisJCQkJICAgIFVDSEFSIGVycm9yX2NvZGUpCiB7CiAgICBVQ0hBUiBxdGFnOwogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwogCi0gICBjdXJyVGFyX0luZm8gPSAmc2NjYk1nclRibFtwX2NhcmRdW3RoaXNUYXJnXTsKKyAgIGN1cnJUYXJfSW5mbyA9ICZGUFRfc2NjYk1nclRibFtwX2NhcmRdW3RoaXNUYXJnXTsKIAogICAgZm9yIChxdGFnPTA7IHF0YWc8UVVFVUVfREVQVEg7IHF0YWcrKykgewogCi0JICBpZiAoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXSAmJiAKLQkJCQkoQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXS0+VGFyZ0lEID09IHRoaXNUYXJnKSkKKwkgIGlmIChGUFRfQkxfQ2FyZFtwX2NhcmRdLmRpc2NRX1RibFtxdGFnXSAmJiAKKwkJCQkoRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10tPlRhcmdJRCA9PSB0aGlzVGFyZykpCiAJCSB7CiAKLQkJIEJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10tPkhvc3RTdGF0dXMgPSAoVUNIQVIpZXJyb3JfY29kZTsKKwkJIEZQVF9CTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddLT5Ib3N0U3RhdHVzID0gKFVDSEFSKWVycm9yX2NvZGU7CiAKLQkJIHF1ZXVlQ21kQ29tcGxldGUoJkJMX0NhcmRbcF9jYXJkXSxCTF9DYXJkW3BfY2FyZF0uZGlzY1FfVGJsW3F0YWddLCBwX2NhcmQpOworCQkgRlBUX3F1ZXVlQ21kQ29tcGxldGUoJkZQVF9CTF9DYXJkW3BfY2FyZF0sRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10sIHBfY2FyZCk7CiAKLQkJIEJMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10gPSBOVUxMOworCQkgRlBUX0JMX0NhcmRbcF9jYXJkXS5kaXNjUV9UYmxbcXRhZ10gPSBOVUxMOwogCQkgY3VyclRhcl9JbmZvLT5UYXJUYWdRX0NudC0tOwogCiAJCSB9CkBAIC0xMTU0MSwxMCArNzY4MSwxMCBAQAogCiAKIAotdm9pZCBxdWV1ZUFkZFNjY2IoUFNDQ0IgcF9TQ0NCLCBVQ0hBUiBwX2NhcmQpCitzdGF0aWMgdm9pZCBGUFRfcXVldWVBZGRTY2NiKFBTQ0NCIHBfU0NDQiwgVUNIQVIgcF9jYXJkKQogewogICAgUFNDQ0JNZ3JfdGFyX2luZm8gY3VyclRhcl9JbmZvOwotICAgY3VyclRhcl9JbmZvID0gJnNjY2JNZ3JUYmxbcF9jYXJkXVtwX1NDQ0ItPlRhcmdJRF07CisgICBjdXJyVGFyX0luZm8gPSAmRlBUX3NjY2JNZ3JUYmxbcF9jYXJkXVtwX1NDQ0ItPlRhcmdJRF07CiAKICAgIHBfU0NDQi0+U2NjYl9mb3J3YXJkbGluayA9IE5VTEw7CiAKQEAgLTExNTc1LDEyICs3NzE1LDEyIEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1VQ0hBUiBxdWV1ZUZpbmRTY2NiKFBTQ0NCIHBfU0NDQiwgVUNIQVIgcF9jYXJkKQorc3RhdGljIFVDSEFSIEZQVF9xdWV1ZUZpbmRTY2NiKFBTQ0NCIHBfU0NDQiwgVUNIQVIgcF9jYXJkKQogewogICAgUFNDQ0IgcV9wdHI7CiAgICBQU0NDQk1ncl90YXJfaW5mbyBjdXJyVGFyX0luZm87CiAKLSAgIGN1cnJUYXJfSW5mbyA9ICZzY2NiTWdyVGJsW3BfY2FyZF1bcF9TQ0NCLT5UYXJnSURdOworICAgY3VyclRhcl9JbmZvID0gJkZQVF9zY2NiTWdyVGJsW3BfY2FyZF1bcF9TQ0NCLT5UYXJnSURdOwogCiAgICBxX3B0ciA9IGN1cnJUYXJfSW5mby0+VGFyU2VsUV9IZWFkOwogCkBAIC0xMTYwOSw3ICs3NzQ5LDcgQEAKIAogCQkgY3VyclRhcl9JbmZvLT5UYXJTZWxRX0NudC0tOwogCi0JCSByZXR1cm4oVFJVRSk7CisJCSByZXR1cm4oMSk7CiAJCSB9CiAKIAkgIGVsc2UgewpAQCAtMTE2MTgsNyArNzc1OCw3IEBACiAJICB9CiAKIAotICAgcmV0dXJuKEZBTFNFKTsKKyAgIHJldHVybigwKTsKIAogfQogCkBAIC0xMTYzNiwxNSArNzc3NiwxMSBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdm9pZCAgdXRpbFVwZGF0ZVJlc2lkdWFsKFBTQ0NCIHBfU0NDQikKK3N0YXRpYyB2b2lkICBGUFRfdXRpbFVwZGF0ZVJlc2lkdWFsKFBTQ0NCIHBfU0NDQikKIHsKICAgIFVMT05HIHBhcnRpYWxfY250OwogICAgVUlOVCAgc2dfaW5kZXg7Ci0jaWYgZGVmaW5lZChDT01QSUxFUl8xNl9CSVQpICYmICFkZWZpbmVkKERPUykKLSAgIFVMT05HIGZhciAqc2dfcHRyOwotI2Vsc2UKICAgIFVMT05HICpzZ19wdHI7Ci0jZW5kaWYKIAogICAgaWYgKHBfU0NDQi0+U2NjYl9YZmVyU3RhdGUgJiBGX0FMTF9YRkVSUkVEKSB7CiAKQEAgLTExNjU3LDExICs3NzkzLDcgQEAKIAogCQkgc2dfaW5kZXggPSBwX1NDQ0ItPlNjY2Jfc2dzZWc7CiAKLSNpZiBkZWZpbmVkKENPTVBJTEVSXzE2X0JJVCkgJiYgIWRlZmluZWQoRE9TKQotCQkgc2dfcHRyID0gKFVMT05HIGZhciAqKXBfU0NDQi0+RGF0YVBvaW50ZXI7Ci0jZWxzZQogCQkgc2dfcHRyID0gKFVMT05HICopcF9TQ0NCLT5EYXRhUG9pbnRlcjsKLSNlbmRpZgogCiAJCSBpZiAocF9TQ0NCLT5TY2NiX1NHb2Zmc2V0KSB7CiAKQEAgLTExNjk0LDE3ICs3ODI2LDEzIEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIFdhaXQxU2Vjb25kKFVTSE9SVCBwX3BvcnQpCi0jZWxzZQotdm9pZCBXYWl0MVNlY29uZChVTE9ORyBwX3BvcnQpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF9XYWl0MVNlY29uZChVTE9ORyBwX3BvcnQpCiB7CiAgICBVQ0hBUiBpOwogCiAgICBmb3IoaT0wOyBpIDwgNDsgaSsrKSB7CiAKLQkgIFdhaXQocF9wb3J0LCBUT18yNTBtcyk7CisJICBGUFRfV2FpdChwX3BvcnQsIFRPXzI1MG1zKTsKIAogCSAgaWYgKChSRF9IQVJQT09OKHBfcG9ydCtocF9zY3NpY3RybF8wKSAmIFNDU0lfUlNUKSkKIAkJIGJyZWFrOwpAQCAtMTE3MTcsMTcgKzc4NDUsMTMgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBGdW5jdGlvbjogV2FpdAorICogRnVuY3Rpb246IEZQVF9XYWl0CiAgKgogICogRGVzY3JpcHRpb246IFdhaXQgdGhlIGRlc2lyZWQgZGVsYXkuCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi12b2lkIFdhaXQoVVNIT1JUIHBfcG9ydCwgVUNIQVIgcF9kZWxheSkKLSNlbHNlCi12b2lkIFdhaXQoVUxPTkcgcF9wb3J0LCBVQ0hBUiBwX2RlbGF5KQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfV2FpdChVTE9ORyBwX3BvcnQsIFVDSEFSIHBfZGVsYXkpCiB7CiAgICBVQ0hBUiBvbGRfdGltZXI7CiAgICBVQ0hBUiBncmVlbl9mbGFnOwpAQCAtMTE3MzksNyArNzg2Myw3IEBACiAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX3NlbHRpbWVvdXQscF9kZWxheSk7CiAgICBXUldfSEFSUE9PTigocF9wb3J0K2hwX2ludHN0YXQpLCBUSU1FT1VUKTsKLSAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50ZW5hKSwgKGRlZmF1bHRfaW50ZW5hICYgflRJTUVPVVQpKTsKKyAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50ZW5hKSwgKEZQVF9kZWZhdWx0X2ludGVuYSAmIH5USU1FT1VUKSk7CiAKIAogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfcG9ydGN0cmxfMCwKQEAgLTExNzU4LDcgKzc4ODIsNyBAQAogCSAgKFJEX0hBUlBPT04ocF9wb3J0K2hwX3BvcnRjdHJsXzApICYgflNUQVJUX1RPKSk7CiAKICAgIFdSV19IQVJQT09OKChwX3BvcnQraHBfaW50c3RhdCksIFRJTUVPVVQpOwotICAgV1JXX0hBUlBPT04oKHBfcG9ydCtocF9pbnRlbmEpLCBkZWZhdWx0X2ludGVuYSk7CisgICBXUldfSEFSUE9PTigocF9wb3J0K2hwX2ludGVuYSksIEZQVF9kZWZhdWx0X2ludGVuYSk7CiAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX2Nsa2N0cmxfMCxncmVlbl9mbGFnKTsKIApAQCAtMTE3NzUsMTEgKzc4OTksNyBAQAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoRE9TKQotdm9pZCB1dGlsRUVXcml0ZU9uT2ZmKFVTSE9SVCBwX3BvcnQsVUNIQVIgcF9tb2RlKQotI2Vsc2UKLXZvaWQgdXRpbEVFV3JpdGVPbk9mZihVTE9ORyBwX3BvcnQsVUNIQVIgcF9tb2RlKQotI2VuZGlmCitzdGF0aWMgdm9pZCBGUFRfdXRpbEVFV3JpdGVPbk9mZihVTE9ORyBwX3BvcnQsVUNIQVIgcF9tb2RlKQogewogICAgVUNIQVIgZWVfdmFsdWU7CiAKQEAgLTExNzg3LDEyICs3OTA3LDEyIEBACiAKICAgIGlmIChwX21vZGUpCiAKLQkgIHV0aWxFRVNlbmRDbWRBZGRyKHBfcG9ydCwgRVdFTiwgRVdFTl9BRERSKTsKKwkgIEZQVF91dGlsRUVTZW5kQ21kQWRkcihwX3BvcnQsIEVXRU4sIEVXRU5fQUREUik7CiAKICAgIGVsc2UKIAogCi0JICB1dGlsRUVTZW5kQ21kQWRkcihwX3BvcnQsIEVXRFMsIEVXRFNfQUREUik7CisJICBGUFRfdXRpbEVFU2VuZENtZEFkZHIocF9wb3J0LCBFV0RTLCBFV0RTX0FERFIpOwogCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9lZV9jdHJsLCAoZWVfdmFsdWUgfCBTRUVfTVMpKTsgLypUdXJuIG9mZiBDUyAqLwogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfZWVfY3RybCwgZWVfdmFsdWUpOyAgICAgICAvKlR1cm4gb2ZmIE1hc3RlciBTZWxlY3QgKi8KQEAgLTExODA4LDExICs3OTI4LDcgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgdXRpbEVFV3JpdGUoVVNIT1JUIHBfcG9ydCwgVVNIT1JUIGVlX2RhdGEsIFVTSE9SVCBlZV9hZGRyKQotI2Vsc2UKLXZvaWQgdXRpbEVFV3JpdGUoVUxPTkcgcF9wb3J0LCBVU0hPUlQgZWVfZGF0YSwgVVNIT1JUIGVlX2FkZHIpCi0jZW5kaWYKK3N0YXRpYyB2b2lkIEZQVF91dGlsRUVXcml0ZShVTE9ORyBwX3BvcnQsIFVTSE9SVCBlZV9kYXRhLCBVU0hPUlQgZWVfYWRkcikKIHsKIAogICAgVUNIQVIgZWVfdmFsdWU7CkBAIC0xMTgyMyw3ICs3OTM5LDcgQEAKIAogCiAKLSAgIHV0aWxFRVNlbmRDbWRBZGRyKHBfcG9ydCwgRUVfV1JJVEUsIGVlX2FkZHIpOworICAgRlBUX3V0aWxFRVNlbmRDbWRBZGRyKHBfcG9ydCwgRUVfV1JJVEUsIGVlX2FkZHIpOwogCiAKICAgIGVlX3ZhbHVlIHw9IChTRUVfTVMgKyBTRUVfQ1MpOwpAQCAtMTE4NDcsNyArNzk2Myw3IEBACiAgICBlZV92YWx1ZSAmPSAoRVhUX0FSQl9BQ0sgfCBTQ1NJX1RFUk1fRU5BX0gpOwogICAgV1JfSEFSUE9PTihwX3BvcnQraHBfZWVfY3RybCwgKGVlX3ZhbHVlIHwgU0VFX01TKSk7CiAKLSAgIFdhaXQocF9wb3J0LCBUT18xMG1zKTsKKyAgIEZQVF9XYWl0KHBfcG9ydCwgVE9fMTBtcyk7CiAKICAgIFdSX0hBUlBPT04ocF9wb3J0K2hwX2VlX2N0cmwsIChlZV92YWx1ZSB8IFNFRV9NUyB8IFNFRV9DUykpOyAvKiBTZXQgQ1MgdG8gRUVQUk9NICovCiAgICBXUl9IQVJQT09OKHBfcG9ydCtocF9lZV9jdHJsLCAoZWVfdmFsdWUgfCBTRUVfTVMpKTsgICAgICAgLyogVHVybiBvZmYgQ1MgKi8KQEAgLTExODYzLDE5ICs3OTc5LDE1IEBACiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWYgZGVmaW5lZChET1MpCi1VU0hPUlQgdXRpbEVFUmVhZChVU0hPUlQgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcikKLSNlbHNlCi1VU0hPUlQgdXRpbEVFUmVhZChVTE9ORyBwX3BvcnQsIFVTSE9SVCBlZV9hZGRyKQotI2VuZGlmCitzdGF0aWMgVVNIT1JUIEZQVF91dGlsRUVSZWFkKFVMT05HIHBfcG9ydCwgVVNIT1JUIGVlX2FkZHIpCiB7CiAgICBVU0hPUlQgaSwgZWVfZGF0YTEsIGVlX2RhdGEyOwogCiAJaSA9IDA7Ci0JZWVfZGF0YTEgPSB1dGlsRUVSZWFkT3JnKHBfcG9ydCwgZWVfYWRkcik7CisJZWVfZGF0YTEgPSBGUFRfdXRpbEVFUmVhZE9yZyhwX3BvcnQsIGVlX2FkZHIpOwogCWRvCiAJewotCQllZV9kYXRhMiA9IHV0aWxFRVJlYWRPcmcocF9wb3J0LCBlZV9hZGRyKTsKKwkJZWVfZGF0YTIgPSBGUFRfdXRpbEVFUmVhZE9yZyhwX3BvcnQsIGVlX2FkZHIpOwogCiAJCWlmKGVlX2RhdGExID09IGVlX2RhdGEyKQogCQkJcmV0dXJuKGVlX2RhdGExKTsKQEAgLTExODk3LDExICs4MDA5LDcgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLVVTSE9SVCB1dGlsRUVSZWFkT3JnKFVTSE9SVCBwX3BvcnQsIFVTSE9SVCBlZV9hZGRyKQotI2Vsc2UKLVVTSE9SVCB1dGlsRUVSZWFkT3JnKFVMT05HIHBfcG9ydCwgVVNIT1JUIGVlX2FkZHIpCi0jZW5kaWYKK3N0YXRpYyBVU0hPUlQgRlBUX3V0aWxFRVJlYWRPcmcoVUxPTkcgcF9wb3J0LCBVU0hPUlQgZWVfYWRkcikKIHsKIAogICAgVUNIQVIgZWVfdmFsdWU7CkBAIC0xMTkxMSw3ICs4MDE5LDcgQEAKIAkJICAgKFNFRV9NUyB8IFNFRV9DUykpOwogCiAKLSAgIHV0aWxFRVNlbmRDbWRBZGRyKHBfcG9ydCwgRUVfUkVBRCwgZWVfYWRkcik7CisgICBGUFRfdXRpbEVFU2VuZENtZEFkZHIocF9wb3J0LCBFRV9SRUFELCBlZV9hZGRyKTsKIAogCiAgICBlZV92YWx1ZSB8PSAoU0VFX01TICsgU0VFX0NTKTsKQEAgLTExOTQ5LDExICs4MDU3LDcgQEAKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKERPUykKLXZvaWQgdXRpbEVFU2VuZENtZEFkZHIoVVNIT1JUIHBfcG9ydCwgVUNIQVIgZWVfY21kLCBVU0hPUlQgZWVfYWRkcikKLSNlbHNlCi12b2lkIHV0aWxFRVNlbmRDbWRBZGRyKFVMT05HIHBfcG9ydCwgVUNIQVIgZWVfY21kLCBVU0hPUlQgZWVfYWRkcikKLSNlbmRpZgorc3RhdGljIHZvaWQgRlBUX3V0aWxFRVNlbmRDbWRBZGRyKFVMT05HIHBfcG9ydCwgVUNIQVIgZWVfY21kLCBVU0hPUlQgZWVfYWRkcikKIHsKICAgIFVDSEFSIGVlX3ZhbHVlOwogICAgVUNIQVIgbmFycm93X2ZsZzsKQEAgLTEyMDE2LDcgKzgxMjAsNyBAQAogCSAgfQogfQogCi1VU0hPUlQgQ2FsY0NyYzE2KFVDSEFSIGJ1ZmZlcltdKQorc3RhdGljIFVTSE9SVCBGUFRfQ2FsY0NyYzE2KFVDSEFSIGJ1ZmZlcltdKQogewogICAgVVNIT1JUIGNyYz0wOwogCWludCBpLGo7CkBAIC0xMjAzNiw3ICs4MTQwLDcgQEAKIAlyZXR1cm4oY3JjKTsKIH0KIAotVUNIQVIgQ2FsY0xyYyhVQ0hBUiBidWZmZXJbXSkKK3N0YXRpYyBVQ0hBUiBGUFRfQ2FsY0xyYyhVQ0hBUiBidWZmZXJbXSkKIHsKIAlpbnQgaTsKIAlVQ0hBUiBscmM7CkBAIC0xMjEwOSwzMyArODIxMyw2IEBACiAjZGVmaW5lIEZsYXNoUG9pbnRfSGFuZGxlSW50ZXJydXB0CSAgICBGbGFzaFBvaW50X19IYW5kbGVJbnRlcnJ1cHQKIAogCi0vKgotICBGbGFzaFBvaW50X0lucXVpcmVUYXJnZXRJbmZvIHJldHVybnMgdGhlIFN5bmNocm9ub3VzIFBlcmlvZCwgU3luY2hyb25vdXMKLSAgT2Zmc2V0LCBhbmQgV2lkZSBUcmFuc2ZlcnMgQWN0aXZlIGluZm9ybWF0aW9uIGZvciBUYXJnZXRJRCBvbiBDYXJkSGFuZGxlLgotKi8KLQotdm9pZCBGbGFzaFBvaW50X0lucXVpcmVUYXJnZXRJbmZvKEZsYXNoUG9pbnRfQ2FyZEhhbmRsZV9UIENhcmRIYW5kbGUsCi0JCQkJICBpbnQgVGFyZ2V0SUQsCi0JCQkJICB1bnNpZ25lZCBjaGFyICpTeW5jaHJvbm91c1BlcmlvZCwKLQkJCQkgIHVuc2lnbmVkIGNoYXIgKlN5bmNocm9ub3VzT2Zmc2V0LAotCQkJCSAgdW5zaWduZWQgY2hhciAqV2lkZVRyYW5zZmVyc0FjdGl2ZSkKLXsKLSAgU0NDQk1HUl9UQVJfSU5GTyAqVGFyZ2V0SW5mbyA9Ci0gICAgJnNjY2JNZ3JUYmxbKChTQ0NCQ0FSRCAqKUNhcmRIYW5kbGUpLT5jYXJkSW5kZXhdW1RhcmdldElEXTsKLSAgaWYgKChUYXJnZXRJbmZvLT5UYXJTeW5jQ3RybCAmIFNZTkNfT0ZGU0VUKSA+IDApCi0gICAgewotICAgICAgKlN5bmNocm9ub3VzUGVyaW9kID0gNSAqICgoVGFyZ2V0SW5mby0+VGFyU3luY0N0cmwgPj4gNSkgKyAxKTsKLSAgICAgICpTeW5jaHJvbm91c09mZnNldCA9IFRhcmdldEluZm8tPlRhclN5bmNDdHJsICYgU1lOQ19PRkZTRVQ7Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgICAgKlN5bmNocm9ub3VzUGVyaW9kID0gMDsKLSAgICAgICpTeW5jaHJvbm91c09mZnNldCA9IDA7Ci0gICAgfQotICAqV2lkZVRyYW5zZmVyc0FjdGl2ZSA9IChUYXJnZXRJbmZvLT5UYXJTeW5jQ3RybCAmIE5BUlJPV19TQ1NJID8gMCA6IDEpOwotfQotCi0KICNlbHNlICAvKiBDT05GSUdfU0NTSV9PTUlUX0ZMQVNIUE9JTlQgKi8KIAogCkBAIC0xMjE1MSw5ICs4MjI4LDYgQEAKIGV4dGVybiBib29sZWFuIEZsYXNoUG9pbnRfSW50ZXJydXB0UGVuZGluZyhGbGFzaFBvaW50X0NhcmRIYW5kbGVfVCk7CiBleHRlcm4gaW50IEZsYXNoUG9pbnRfSGFuZGxlSW50ZXJydXB0KEZsYXNoUG9pbnRfQ2FyZEhhbmRsZV9UKTsKIGV4dGVybiB2b2lkIEZsYXNoUG9pbnRfUmVsZWFzZUhvc3RBZGFwdGVyKEZsYXNoUG9pbnRfQ2FyZEhhbmRsZV9UKTsKLWV4dGVybiB2b2lkIEZsYXNoUG9pbnRfSW5xdWlyZVRhcmdldEluZm8oRmxhc2hQb2ludF9DYXJkSGFuZGxlX1QsCi0JCQkJCSBpbnQsIHVuc2lnbmVkIGNoYXIgKiwKLQkJCQkJIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKTsKIAogCiAjZW5kaWYgLyogQ09ORklHX1NDU0lfT01JVF9GTEFTSFBPSU5UICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvS2NvbmZpZyBiL2RyaXZlcnMvc2NzaS9LY29uZmlnCmluZGV4IDE4MTFjYjIuLjk2ZGYxNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2NzaS9LY29uZmlnCkBAIC0xMzcsNiArMTM3LDI0IEBACiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBDSFJfREVWX1NDSAorCXRyaXN0YXRlICJTQ1NJIG1lZGlhIGNoYW5nZXIgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFNDU0kKKwktLS1oZWxwLS0tCisJICBUaGlzIGlzIGEgZHJpdmVyIGZvciBTQ1NJIG1lZGlhIGNoYW5nZXJzLiAgTW9zdCBjb21tb24gZGV2aWNlcyBhcmUKKwkgIHRhcGUgbGlicmFyaWVzIGFuZCBNT0QvQ0RST00ganVrZWJveGVzLiAgKlJlYWwqIGp1a2Vib3hlcywgeW91CisJICBkb24ndCBuZWVkIHRoaXMgZm9yIHRob3NlIHRpbnkgNi1zbG90IGNkcm9tIGNoYW5nZXJzLiAgTWVkaWEKKwkgIGNoYW5nZXJzIGFyZSBsaXN0ZWQgYXMgIlR5cGU6IE1lZGl1bSBDaGFuZ2VyIiBpbiAvcHJvYy9zY3NpL3Njc2kuCisJICBJZiB5b3UgaGF2ZSBzdWNoIGhhcmR3YXJlIGFuZCB3YW50IHRvIHVzZSBpdCB3aXRoIGxpbnV4LCBzYXkgWQorCSAgaGVyZS4gIENoZWNrIDxmaWxlOkRvY3VtZW50YXRpb24vc2NzaS1jaGFuZ2VyLnR4dD4gZm9yIGRldGFpbHMuCisJCisJICBJZiB5b3Ugd2FudCB0byBjb21waWxlIHRoaXMgYXMgYSBtb2R1bGUgKCA9IGNvZGUgd2hpY2ggY2FuIGJlCisJICBpbnNlcnRlZCBpbiBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBydW5uaW5nIGtlcm5lbCB3aGVuZXZlciB5b3Ugd2FudCksCisJICBzYXkgTSBoZXJlIGFuZCByZWFkIDxmaWxlOkRvY3VtZW50YXRpb24vbW9kdWxlcy50eHQ+IGFuZAorCSAgPGZpbGU6RG9jdW1lbnRhdGlvbi9zY3NpLnR4dD4uIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2guby4KKwkgIElmIHVuc3VyZSwgc2F5IE4uCisJCisKIGNvbW1lbnQgIlNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcyIKIAlkZXBlbmRzIG9uIFNDU0kKIApAQCAtMTE5MiwyOCArMTIxMCw2IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwYXMxNi4KIAotY29uZmlnIFNDU0lfUENJMjAwMAotCXRyaXN0YXRlICJQQ0kyMDAwIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQQ0kgJiYgU0NTSSAmJiBCUk9LRU4KLQloZWxwCi0JICBUaGlzIGlzIHN1cHBvcnQgZm9yIHRoZSBQQ0kyMDAwSSBFSURFIGludGVyZmFjZSBjYXJkIHdoaWNoIGFjdHMgYXMgYQotCSAgU0NTSSBob3N0IGFkYXB0ZXIuICBQbGVhc2UgcmVhZCB0aGUgU0NTSS1IT1dUTywgYXZhaWxhYmxlIGZyb20KLQkgIDxodHRwOi8vd3d3LnRsZHAub3JnL2RvY3MuaHRtbCNob3d0bz4uCi0KLQkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHBjaTIwMDAuCi0KLWNvbmZpZyBTQ1NJX1BDSTIyMjBJCi0JdHJpc3RhdGUgIlBDSTIyMjBpIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQQ0kgJiYgU0NTSSAmJiBCUk9LRU4KLQloZWxwCi0JICBUaGlzIGlzIHN1cHBvcnQgZm9yIHRoZSBQQ0kyMjIwaSBFSURFIGludGVyZmFjZSBjYXJkIHdoaWNoIGFjdHMgYXMgYQotCSAgU0NTSSBob3N0IGFkYXB0ZXIuICBQbGVhc2UgcmVhZCB0aGUgU0NTSS1IT1dUTywgYXZhaWxhYmxlIGZyb20KLQkgIDxodHRwOi8vd3d3LnRsZHAub3JnL2RvY3MuaHRtbCNob3d0bz4uCi0KLQkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHBjaTIyMjBpLgotCiBjb25maWcgU0NTSV9QU0kyNDBJCiAJdHJpc3RhdGUgIlBTSTI0MGkgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIElTQSAmJiBTQ1NJCkBAIC0xNzUyLDcgKzE3NDgsNyBAQAogCiBjb25maWcgU1VOM19TQ1NJCiAJdHJpc3RhdGUgIlN1bjMgTkNSNTM4MCBTQ1NJIgotCWRlcGVuZHMgb24gU1VOMyAmJiBTQ1NJCisJZGVwZW5kcyBvbiBTVU4zICYmIFNDU0kgJiYgQlJPS0VOCiAJaGVscAogCSAgVGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgdGhlIE9CSU8gKG9uYm9hcmQgaW8pIE5DUjUzODAKIAkgIFNDU0kgY29udHJvbGxlciBmb3VuZCBpbiB0aGUgU3VuIDMvNTAgYW5kIDMvNjAsIGFzIHdlbGwgYXMgZm9yCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvTWFrZWZpbGUgYi9kcml2ZXJzL3Njc2kvTWFrZWZpbGUKaW5kZXggOWNiOWZlNy4uMzc0NmZiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvc2NzaS9NYWtlZmlsZQpAQCAtNTAsOCArNTAsNiBAQAogb2JqLSQoQ09ORklHX0JWTUU2MDAwX1NDU0kpCSs9IGJ2bWU2MDAwLm8JNTNjN3h4Lm8KIG9iai0kKENPTkZJR19TQ1NJX1NJTTcxMCkJKz0gNTNjNzAwLm8Jc2ltNzEwLm8KIG9iai0kKENPTkZJR19TQ1NJX0FEVkFOU1lTKQkrPSBhZHZhbnN5cy5vCi1vYmotJChDT05GSUdfU0NTSV9QQ0kyMDAwKQkrPSBwY2kyMDAwLm8KLW9iai0kKENPTkZJR19TQ1NJX1BDSTIyMjBJKQkrPSBwY2kyMjIwaS5vCiBvYmotJChDT05GSUdfU0NTSV9QU0kyNDBJKQkrPSBwc2kyNDBpLm8KIG9iai0kKENPTkZJR19TQ1NJX0JVU0xPR0lDKQkrPSBCdXNMb2dpYy5vCiBvYmotJChDT05GSUdfU0NTSV9EUFRfSTJPKQkrPSBkcHRfaTJvLm8KQEAgLTE0Miw2ICsxNDAsNyBAQAogb2JqLSQoQ09ORklHX0JMS19ERVZfU0QpCSs9IHNkX21vZC5vCiBvYmotJChDT05GSUdfQkxLX0RFVl9TUikJKz0gc3JfbW9kLm8KIG9iai0kKENPTkZJR19DSFJfREVWX1NHKQkrPSBzZy5vCitvYmotJChDT05GSUdfQ0hSX0RFVl9TQ0gpCSs9IGNoLm8KIAogc2NzaV9tb2QteQkJCSs9IHNjc2kubyBob3N0cy5vIHNjc2lfaW9jdGwubyBjb25zdGFudHMubyBcCiAJCQkJICAgc2NzaWNhbS5vIHNjc2lfZXJyb3IubyBzY3NpX2xpYi5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9OQ1I1MzgwLmMgYi9kcml2ZXJzL3Njc2kvTkNSNTM4MC5jCmluZGV4IDc3MGZhODQuLmY4ZWM2ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9OQ1I1MzgwLmMKKysrIGIvZHJpdmVycy9zY3NpL05DUjUzODAuYwpAQCAtMjgyNSwzOSArMjgyNSwxNyBAQAogICogTG9ja3M6IGhvc3QgbG9jayB0YWtlbiBieSBjYWxsZXIKICAqLwogCi1zdGF0aWMgaW50IE5DUjUzODBfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqIGNtZCkgeworc3RhdGljIGludCBOQ1I1MzgwX2J1c19yZXNldChTY3NpX0NtbmQgKiBjbWQpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqaW5zdGFuY2UgPSBjbWQtPmRldmljZS0+aG9zdDsKKwogCU5DUjUzODBfbG9jYWxfZGVjbGFyZSgpOwotCU5DUjUzODBfc2V0dXAoY21kLT5kZXZpY2UtPmhvc3QpOworCU5DUjUzODBfc2V0dXAoaW5zdGFuY2UpOworCU5DUjUzODBfcHJpbnRfc3RhdHVzKGluc3RhbmNlKTsKIAotCU5DUjUzODBfcHJpbnRfc3RhdHVzKGNtZC0+ZGV2aWNlLT5ob3N0KTsKLQlkb19yZXNldChjbWQtPmRldmljZS0+aG9zdCk7CisJc3Bpbl9sb2NrX2lycShpbnN0YW5jZS0+aG9zdF9sb2NrKTsKKwlkb19yZXNldChpbnN0YW5jZSk7CisJc3Bpbl91bmxvY2tfaXJxKGluc3RhbmNlLT5ob3N0X2xvY2spOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9Ci0KLS8qIAotICogRnVuY3Rpb24gOiBpbnQgTkNSNTM4MF9kZXZpY2VfcmVzZXQgKFNjc2lfQ21uZCAqY21kKQotICogCi0gKiBQdXJwb3NlIDogcmVzZXQgYSBTQ1NJIGRldmljZQotICoKLSAqIFJldHVybnMgOiBGQUlMRUQKLSAqCi0gKiBMb2NrczogaW9fcmVxdWVzdF9sb2NrIGhlbGQgYnkgY2FsbGVyCi0gKi8KLQotc3RhdGljIGludCBOQ1I1MzgwX2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBjbWQpIHsKLQlyZXR1cm4gRkFJTEVEOwotfQotCi0vKiAKLSAqIEZ1bmN0aW9uIDogaW50IE5DUjUzODBfaG9zdF9yZXNldCAoU2NzaV9DbW5kICpjbWQpCi0gKiAKLSAqIFB1cnBvc2UgOiByZXNldCBhIFNDU0kgZGV2aWNlCi0gKgotICogUmV0dXJucyA6IEZBSUxFRAotICoKLSAqIExvY2tzOiBpb19yZXF1ZXN0X2xvY2sgaGVsZCBieSBjYWxsZXIKLSAqLwotCi1zdGF0aWMgaW50IE5DUjUzODBfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBjbWQpIHsKLQlyZXR1cm4gRkFJTEVEOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL05DUjUzODAuaCBiL2RyaXZlcnMvc2NzaS9OQ1I1MzgwLmgKaW5kZXggYjUxMDNmOS4uYzM0NjJlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL05DUjUzODAuaAorKysgYi9kcml2ZXJzL3Njc2kvTkNSNTM4MC5oCkBAIC0zMDYsOCArMzA2LDYgQEAKICNlbmRpZgogc3RhdGljIGludCBOQ1I1MzgwX2Fib3J0KFNjc2lfQ21uZCAqIGNtZCk7CiBzdGF0aWMgaW50IE5DUjUzODBfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqIGNtZCk7Ci1zdGF0aWMgaW50IE5DUjUzODBfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBjbWQpOwotc3RhdGljIGludCBOQ1I1MzgwX2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBjbWQpOwogc3RhdGljIGludCBOQ1I1MzgwX3F1ZXVlX2NvbW1hbmQoU2NzaV9DbW5kICogY21kLCB2b2lkICgqZG9uZSkgKFNjc2lfQ21uZCAqKSk7CiBzdGF0aWMgaW50IE5DUjUzODBfcHJvY19pbmZvKHN0cnVjdCBTY3NpX0hvc3QgKmluc3RhbmNlLCBjaGFyICpidWZmZXIsIGNoYXIgKipzdGFydCwKIG9mZl90IG9mZnNldCwgaW50IGxlbmd0aCwgaW50IGlub3V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9OQ1I1M0M5eC5jIGIvZHJpdmVycy9zY3NpL05DUjUzQzl4LmMKaW5kZXggNzRiOTM1Ni4uNmNlYWJiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL05DUjUzQzl4LmMKKysrIGIvZHJpdmVycy9zY3NpL05DUjUzQzl4LmMKQEAgLTk0LDcgKzk0LDcgQEAKIH07CiAKIC8qIFRoZSBtYXN0ZXIgcmluZyBvZiBhbGwgZXNwIGhvc3RzIHdlIGFyZSBtYW5hZ2luZyBpbiB0aGlzIGRyaXZlci4gKi8KLXN0cnVjdCBOQ1JfRVNQICplc3BjaGFpbjsKK3N0YXRpYyBzdHJ1Y3QgTkNSX0VTUCAqZXNwY2hhaW47CiBpbnQgbmVzcHMgPSAwLCBlc3BzX2luX3VzZSA9IDAsIGVzcHNfcnVubmluZyA9IDA7CiAKIGlycXJldHVybl90IGVzcF9pbnRyKGludCBpcnEsIHZvaWQgKmRldl9pZCwgc3RydWN0IHB0X3JlZ3MgKnByZWdzKTsKQEAgLTE0NjcsMTQgKzE0NjcsMTIgQEAKIHsKIAlzdHJ1Y3QgTkNSX0VTUCAqZXNwID0gKHN0cnVjdCBOQ1JfRVNQICopIFNDcHRyLT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCisJc3Bpbl9sb2NrX2lycShlc3AtPmVob3N0LT5ob3N0X2xvY2spOwogCSh2b2lkKSBlc3BfZG9fcmVzZXRidXMoZXNwLCBlc3AtPmVyZWdzKTsKLQogCXNwaW5fdW5sb2NrX2lycShlc3AtPmVob3N0LT5ob3N0X2xvY2spOwogCiAJd2FpdF9ldmVudChlc3AtPnJlc2V0X3F1ZXVlLCAoZXNwLT5yZXNldHRpbmdfYnVzID09IDApKTsKIAotCXNwaW5fbG9ja19pcnEoZXNwLT5laG9zdC0+aG9zdF9sb2NrKTsKLQogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvTkNSNTNjNDA2YS5jIGIvZHJpdmVycy9zY3NpL05DUjUzYzQwNmEuYwppbmRleCBjNjg1ZDU0Li5iMjAwMmJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvTkNSNTNjNDA2YS5jCisrKyBiL2RyaXZlcnMvc2NzaS9OQ1I1M2M0MDZhLmMKQEAgLTcyMiwxNSArNzIyLDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgTkNSNTNjNDA2YV9hYm9ydChTY3NpX0NtbmQgKiBTQ3BudCkKLXsKLQlERUIocHJpbnRrKCJOQ1I1M2M0MDZhX2Fib3J0IGNhbGxlZFxuIikpOwotCXJldHVybiBGQUlMRUQ7CQkvKiBEb24ndCBrbm93IGhvdyB0byBhYm9ydCAqLwotfQotCiBzdGF0aWMgaW50IE5DUjUzYzQwNmFfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBTQ3BudCkKIHsKIAlERUIocHJpbnRrKCJOQ1I1M2M0MDZhX3Jlc2V0IGNhbGxlZFxuIikpOworCisJc3Bpbl9sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJb3V0YihDNF9JTUcsIENPTkZJRzQpOwkvKiBTZWxlY3QgcmVnIHNldCAwICovCiAJb3V0YihDSElQX1JFU0VULCBDTURfUkVHKTsKIAlvdXRiKFNDU0lfTk9QLCBDTURfUkVHKTsJLyogcmVxdWlyZWQgYWZ0ZXIgcmVzZXQgKi8KQEAgLTczOCwxOSArNzM1LDEyIEBACiAJY2hpcF9pbml0KCk7CiAKIAlydHJjKDIpOworCisJc3Bpbl91bmxvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIAotc3RhdGljIGludCBOQ1I1M2M0MDZhX2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBTQ3BudCkKLXsKLQlyZXR1cm4gRkFJTEVEOwotfQotCi1zdGF0aWMgaW50IE5DUjUzYzQwNmFfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqIFNDcG50KQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgTkNSNTNjNDA2YV9iaW9zcGFybShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGJsb2NrX2RldmljZSAqZGV2LAogCQkJICAgICAgIHNlY3Rvcl90IGNhcGFjaXR5LCBpbnQgKmluZm9fYXJyYXkpCkBAIC0xMDc1LDkgKzEwNjUsNiBAQAogICAgICAucmVsZWFzZSAgICAgICAgICAgIAk9IE5DUjUzYzQwNmFfcmVsZWFzZSwKICAgICAgLmluZm8gICAgICAgICAgICAgIAk9IE5DUjUzYzQwNmFfaW5mbwkJLyogaW5mbyAqLywgICAgICAgICAgICAgCiAgICAgIC5xdWV1ZWNvbW1hbmQgICAgICAJPSBOQ1I1M2M0MDZhX3F1ZXVlCS8qIHF1ZXVlY29tbWFuZCAqLywgICAgIAotICAgICAuZWhfYWJvcnRfaGFuZGxlciAgCT0gTkNSNTNjNDA2YV9hYm9ydAkvKiBhYm9ydCAqLywgICAgICAgICAgICAKLSAgICAgLmVoX2J1c19yZXNldF9oYW5kbGVyICAgICAgPSBOQ1I1M2M0MDZhX2J1c19yZXNldAkvKiByZXNldCAqLywgICAgICAgICAgICAKLSAgICAgLmVoX2RldmljZV9yZXNldF9oYW5kbGVyICAgPSBOQ1I1M2M0MDZhX2RldmljZV9yZXNldAkvKiByZXNldCAqLywgICAgICAgICAgICAKICAgICAgLmVoX2hvc3RfcmVzZXRfaGFuZGxlciAgICAgPSBOQ1I1M2M0MDZhX2hvc3RfcmVzZXQJLyogcmVzZXQgKi8sICAgICAgICAgICAgCiAgICAgIC5iaW9zX3BhcmFtICAgICAgICAJPSBOQ1I1M2M0MDZhX2Jpb3NwYXJtCS8qIGJpb3NwYXJtICovLCAgICAgICAgIAogICAgICAuY2FuX3F1ZXVlICAgICAgICAgCT0gMQkJCS8qIGNhbl9xdWV1ZSAqLywgICAgICAgIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2EyMDkxLmMgYi9kcml2ZXJzL3Njc2kvYTIwOTEuYwppbmRleCA5OTI4YTJmLi5mN2ExNzUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYTIwOTEuYworKysgYi9kcml2ZXJzL3Njc2kvYTIwOTEuYwpAQCAtMjIxLDcgKzIyMSwxNCBAQAogc3RhdGljIGludCBhMjA5MV9idXNfcmVzZXQoU2NzaV9DbW5kICpjbWQpCiB7CiAJLyogRklYTUUgcGVyZm9ybSBidXMtc3BlY2lmaWMgcmVzZXQgKi8KKworCS8qIEZJWE1FIDI6IGtpbGwgdGhpcyBmdW5jdGlvbiwgYW5kIGxldCBtaWRsYXllciBmYWxsIGJhY2sKKwkgICB0byB0aGUgc2FtZSBhY3Rpb24sIGNhbGxpbmcgd2QzM2M5M19ob3N0X3Jlc2V0KCkgKi8KKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJd2QzM2M5M19ob3N0X3Jlc2V0KGNtZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hMzAwMC5jIGIvZHJpdmVycy9zY3NpL2EzMDAwLmMKaW5kZXggZjhhODllYy4uMzA2Y2FmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2EzMDAwLmMKKysrIGIvZHJpdmVycy9zY3NpL2EzMDAwLmMKQEAgLTIwOCw3ICsyMDgsMTQgQEAKIHN0YXRpYyBpbnQgYTMwMDBfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqY21kKQogewogCS8qIEZJWE1FIHBlcmZvcm0gYnVzLXNwZWNpZmljIHJlc2V0ICovCisJCisJLyogRklYTUUgMjoga2lsbCB0aGlzIGVudGlyZSBmdW5jdGlvbiwgd2hpY2ggc2hvdWxkCisJICAgY2F1c2UgbWlkLWxheWVyIHRvIGNhbGwgd2QzM2M5M19ob3N0X3Jlc2V0IGFueXdheT8gKi8KKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJd2QzM2M5M19ob3N0X3Jlc2V0KGNtZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY2hiYS5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjaGJhLmMKaW5kZXggZjNmYzM1My4uZjAyYzk5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjaGJhLmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjaGJhLmMKQEAgLTUzLDEwICs1Myw2IEBACiAjZGVmaW5lCUlOUURfUERUX0RNQVNLCTB4MUYJLyogUGVyaXBoZXJhbCBEZXZpY2UgVHlwZSBNYXNrICovCiAjZGVmaW5lCUlOUURfUERUX1FNQVNLCTB4RTAJLyogUGVyaXBoZXJhbCBEZXZpY2UgUXVhbGlmZXIgTWFzayAqLwogCi0jZGVmaW5lIE1BWF9GSUJfREFUQSAoc2l6ZW9mKHN0cnVjdCBod19maWIpIC0gc2l6ZW9mKEZJQl9IRUFERVIpKQotCi0jZGVmaW5lIE1BWF9EUklWRVJfU0dfU0VHTUVOVF9DT1VOVCAxNwotCiAvKgogICoJU2Vuc2UgY29kZXMKICAqLwpAQCAtMTU4LDYgKzE1NCwxMyBAQAogbW9kdWxlX3BhcmFtKGNvbW1pdCwgaW50LCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoY29tbWl0LCAiQ29udHJvbCB3aGV0aGVyIGEgQ09NTUlUX0NPTkZJRyBpcyBpc3N1ZWQgdG8gdGhlIGFkYXB0ZXIgZm9yIGZvcmVpZ24gYXJyYXlzLlxuVGhpcyBpcyB0eXBpY2FsbHkgbmVlZGVkIGluIHN5c3RlbXMgdGhhdCBkbyBub3QgaGF2ZSBhIEJJT1MuIDA9b2ZmLCAxPW9uIik7CiAKK2ludCBudW1hY2IgPSAtMTsKK21vZHVsZV9wYXJhbShudW1hY2IsIGludCwgU19JUlVHT3xTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MobnVtYWNiLCAiUmVxdWVzdCBhIGxpbWl0IHRvIHRoZSBudW1iZXIgb2YgYWRhcHRlciBjb250cm9sIGJsb2NrcyAoRklCKSBhbGxvY2F0ZWQuIFZhbGlkXG52YWx1ZXMgYXJlIDUxMiBhbmQgZG93bi4gRGVmYXVsdCBpcyB0byB1c2Ugc3VnZ2VzdGlvbiBmcm9tIEZpcm13YXJlLiIpOworCitpbnQgYWNic2l6ZSA9IC0xOworbW9kdWxlX3BhcmFtKGFjYnNpemUsIGludCwgU19JUlVHT3xTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0MoYWNic2l6ZSwgIlJlcXVlc3QgYSBzcGVjaWZpYyBhZGFwdGVyIGNvbnRyb2wgYmxvY2sgKEZJQikgc2l6ZS4gVmFsaWQgdmFsdWVzIGFyZSA1MTIsXG4yMDQ4LCA0MDk2IGFuZCA4MTkyLiBEZWZhdWx0IGlzIHRvIHVzZSBzdWdnZXN0aW9uIGZyb20gRmlybXdhcmUuIik7CiAvKioKICAqCWFhY19nZXRfY29uZmlnX3N0YXR1cwktCWNoZWNrIHRoZSBhZGFwdGVyIGNvbmZpZ3VyYXRpb24KICAqCUBjb21tb246IGFkYXB0ZXIgdG8gcXVlcnkKQEAgLTQ2Miw3ICs0NjUsNyBAQAogCQkJICAgIDEsIDEsCiAJCQkgICAgTlVMTCwgTlVMTCk7CiAJaWYgKHN0YXR1cyA8IDApIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYWFjcmFpZDogcHJvYmVfY29udGFpbmVycyBxdWVyeSBmYWlsZWQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYWFjcmFpZDogcHJvYmVfY29udGFpbmVyIHF1ZXJ5IGZhaWxlZC5cbiIpOwogCQlnb3RvIGVycm9yOwogCX0KIApAQCAtNTYyLDEwICs1NjUsMTAgQEAKIAlpbnFzdHJjcHkgKCJWMS4wIiwgc3RyLT5wcmwpOwogfQogCi12b2lkIHNldF9zZW5zZSh1OCAqc2Vuc2VfYnVmLCB1OCBzZW5zZV9rZXksIHU4IHNlbnNlX2NvZGUsCi0JCSAgICB1OCBhX3NlbnNlX2NvZGUsIHU4IGluY29ycmVjdF9sZW5ndGgsCi0JCSAgICB1OCBiaXRfcG9pbnRlciwgdTE2IGZpZWxkX3BvaW50ZXIsCi0JCSAgICB1MzIgcmVzaWR1ZSkKK3N0YXRpYyB2b2lkIHNldF9zZW5zZSh1OCAqc2Vuc2VfYnVmLCB1OCBzZW5zZV9rZXksIHU4IHNlbnNlX2NvZGUsCisJCSAgICAgIHU4IGFfc2Vuc2VfY29kZSwgdTggaW5jb3JyZWN0X2xlbmd0aCwKKwkJICAgICAgdTggYml0X3BvaW50ZXIsIHUxNiBmaWVsZF9wb2ludGVyLAorCQkgICAgICB1MzIgcmVzaWR1ZSkKIHsKIAlzZW5zZV9idWZbMF0gPSAweEYwOwkvKiBTZW5zZSBkYXRhIHZhbGlkLCBlcnIgY29kZSA3MGggKGN1cnJlbnQgZXJyb3IpICovCiAJc2Vuc2VfYnVmWzFdID0gMDsJLyogU2VnbWVudCBudW1iZXIsIGFsd2F5cyB6ZXJvICovCkBAIC02MDUsMzUgKzYwOCw2MyBAQAogaW50IGFhY19nZXRfYWRhcHRlcl9pbmZvKHN0cnVjdCBhYWNfZGV2KiBkZXYpCiB7CiAJc3RydWN0IGZpYiogZmlicHRyOwotCXN0cnVjdCBhYWNfYWRhcHRlcl9pbmZvKiBpbmZvOwogCWludCByY29kZTsKIAl1MzIgdG1wOworCXN0cnVjdCBhYWNfYWRhcHRlcl9pbmZvICogaW5mbzsKKwogCWlmICghKGZpYnB0ciA9IGZpYl9hbGxvYyhkZXYpKSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlmaWJfaW5pdChmaWJwdHIpOwotCWluZm8gPSAoc3RydWN0IGFhY19hZGFwdGVyX2luZm8qKSBmaWJfZGF0YShmaWJwdHIpOwotCi0JbWVtc2V0KGluZm8sMCxzaXplb2Yoc3RydWN0IGFhY19hZGFwdGVyX2luZm8pKTsKKwlpbmZvID0gKHN0cnVjdCBhYWNfYWRhcHRlcl9pbmZvICopIGZpYl9kYXRhKGZpYnB0cik7CisJbWVtc2V0KGluZm8sMCxzaXplb2YoKmluZm8pKTsKIAogCXJjb2RlID0gZmliX3NlbmQoUmVxdWVzdEFkYXB0ZXJJbmZvLAotCQkJZmlicHRyLCAKLQkJCXNpemVvZihzdHJ1Y3QgYWFjX2FkYXB0ZXJfaW5mbyksCi0JCQlGc2FOb3JtYWwsIAotCQkJMSwgMSwgCi0JCQlOVUxMLCAKLQkJCU5VTEwpOworCQkJIGZpYnB0ciwgCisJCQkgc2l6ZW9mKCppbmZvKSwKKwkJCSBGc2FOb3JtYWwsIAorCQkJIDEsIDEsIAorCQkJIE5VTEwsIAorCQkJIE5VTEwpOwogCi0JbWVtY3B5KCZkZXYtPmFkYXB0ZXJfaW5mbywgaW5mbywgc2l6ZW9mKHN0cnVjdCBhYWNfYWRhcHRlcl9pbmZvKSk7CisJaWYgKHJjb2RlIDwgMCkgeworCQlmaWJfY29tcGxldGUoZmlicHRyKTsKKwkJZmliX2ZyZWUoZmlicHRyKTsKKwkJcmV0dXJuIHJjb2RlOworCX0KKwltZW1jcHkoJmRldi0+YWRhcHRlcl9pbmZvLCBpbmZvLCBzaXplb2YoKmluZm8pKTsKKworCWlmIChkZXYtPmFkYXB0ZXJfaW5mby5vcHRpb25zICYgQUFDX09QVF9TVVBQTEVNRU5UX0FEQVBURVJfSU5GTykgeworCQlzdHJ1Y3QgYWFjX3N1cHBsZW1lbnRfYWRhcHRlcl9pbmZvICogaW5mbzsKKworCQlmaWJfaW5pdChmaWJwdHIpOworCisJCWluZm8gPSAoc3RydWN0IGFhY19zdXBwbGVtZW50X2FkYXB0ZXJfaW5mbyAqKSBmaWJfZGF0YShmaWJwdHIpOworCisJCW1lbXNldChpbmZvLDAsc2l6ZW9mKCppbmZvKSk7CisKKwkJcmNvZGUgPSBmaWJfc2VuZChSZXF1ZXN0U3VwcGxlbWVudEFkYXB0ZXJJbmZvLAorCQkJCSBmaWJwdHIsCisJCQkJIHNpemVvZigqaW5mbyksCisJCQkJIEZzYU5vcm1hbCwKKwkJCQkgMSwgMSwKKwkJCQkgTlVMTCwKKwkJCQkgTlVMTCk7CisKKwkJaWYgKHJjb2RlID49IDApCisJCQltZW1jcHkoJmRldi0+c3VwcGxlbWVudF9hZGFwdGVyX2luZm8sIGluZm8sIHNpemVvZigqaW5mbykpOworCX0KIAogCXRtcCA9IGxlMzJfdG9fY3B1KGRldi0+YWRhcHRlcl9pbmZvLmtlcm5lbHJldik7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiJXMlZDoga2VybmVsICVkLiVkLSVkWyVkXVxuIiwgCisJcHJpbnRrKEtFUk5fSU5GTyAiJXMlZDoga2VybmVsICVkLiVkLSVkWyVkXSAlLipzXG4iLCAKIAkJCWRldi0+bmFtZSwgCiAJCQlkZXYtPmlkLAogCQkJdG1wPj4yNCwKIAkJCSh0bXA+PjE2KSYweGZmLAogCQkJdG1wJjB4ZmYsCi0JCQlsZTMyX3RvX2NwdShkZXYtPmFkYXB0ZXJfaW5mby5rZXJuZWxidWlsZCkpOworCQkJbGUzMl90b19jcHUoZGV2LT5hZGFwdGVyX2luZm8ua2VybmVsYnVpbGQpLAorCQkJKGludClzaXplb2YoZGV2LT5zdXBwbGVtZW50X2FkYXB0ZXJfaW5mby5CdWlsZERhdGUpLAorCQkJZGV2LT5zdXBwbGVtZW50X2FkYXB0ZXJfaW5mby5CdWlsZERhdGUpOwogCXRtcCA9IGxlMzJfdG9fY3B1KGRldi0+YWRhcHRlcl9pbmZvLm1vbml0b3JyZXYpOwogCXByaW50ayhLRVJOX0lORk8gIiVzJWQ6IG1vbml0b3IgJWQuJWQtJWRbJWRdXG4iLCAKIAkJCWRldi0+bmFtZSwgZGV2LT5pZCwKQEAgLTcwNyw2ICs3MzgsMzggQEAKIAkJCXJjb2RlID0gLUVOT01FTTsKIAkJfQogCX0KKwkvKiAKKwkgKiA1NyBzY2F0dGVyIGdhdGhlciBlbGVtZW50cyAKKwkgKi8KKwlkZXYtPnNjc2lfaG9zdF9wdHItPnNnX3RhYmxlc2l6ZSA9IChkZXYtPm1heF9maWJfc2l6ZSAtCisJCXNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikgLQorCQlzaXplb2Yoc3RydWN0IGFhY193cml0ZSkgKyBzaXplb2Yoc3RydWN0IHNnbWFwKSkgLworCQkJc2l6ZW9mKHN0cnVjdCBzZ21hcCk7CisJaWYgKGRldi0+ZGFjX3N1cHBvcnQpIHsKKwkJLyogCisJCSAqIDM4IHNjYXR0ZXIgZ2F0aGVyIGVsZW1lbnRzIAorCQkgKi8KKwkJZGV2LT5zY3NpX2hvc3RfcHRyLT5zZ190YWJsZXNpemUgPQorCQkJKGRldi0+bWF4X2ZpYl9zaXplIC0KKwkJCXNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikgLQorCQkJc2l6ZW9mKHN0cnVjdCBhYWNfd3JpdGU2NCkgKworCQkJc2l6ZW9mKHN0cnVjdCBzZ21hcDY0KSkgLworCQkJCXNpemVvZihzdHJ1Y3Qgc2dtYXA2NCk7CisJfQorCWRldi0+c2NzaV9ob3N0X3B0ci0+bWF4X3NlY3RvcnMgPSBBQUNfTUFYXzMyQklUX1NHQkNPVU5UOworCWlmKCEoZGV2LT5hZGFwdGVyX2luZm8ub3B0aW9ucyAmIEFBQ19PUFRfTkVXX0NPTU0pKSB7CisJCS8qCisJCSAqIFdvcnN0IGNhc2Ugc2l6ZSB0aGF0IGNvdWxkIGNhdXNlIHNnIG92ZXJmbG93IHdoZW4KKwkJICogd2UgYnJlYWsgdXAgU0cgZWxlbWVudHMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gNjRLQi4KKwkJICogV291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCB0ZWxsIHRoZSBTQ1NJIGxheWVyIHdoYXQKKwkJICogdGhlIG1heGltdW0gU0cgZWxlbWVudCBzaXplIGNhbiBiZS4gV29yc3QgY2FzZSBpcworCQkgKiAoc2dfdGFibGVzaXplLTEpIDRLQiBlbGVtZW50cyB3aXRoIG9uZSA2NEtCCisJCSAqIGVsZW1lbnQuCisJCSAqCTMyYml0IC0+IDQ2OCBvciAyMzhLQgk2NGJpdCAtPiA0MjQgb3IgMjEyS0IKKwkJICovCisJCWRldi0+c2NzaV9ob3N0X3B0ci0+bWF4X3NlY3RvcnMgPQorCQkgIChkZXYtPnNjc2lfaG9zdF9wdHItPnNnX3RhYmxlc2l6ZSAqIDgpICsgMTEyOworCX0KIAogCWZpYl9jb21wbGV0ZShmaWJwdHIpOwogCWZpYl9mcmVlKGZpYnB0cik7CkBAIC03NDcsOCArODEwLDEwIEBACiAJaWYgKGxlMzJfdG9fY3B1KHJlYWRyZXBseS0+c3RhdHVzKSA9PSBTVF9PSykKIAkJc2NzaWNtZC0+cmVzdWx0ID0gRElEX09LIDw8IDE2IHwgQ09NTUFORF9DT01QTEVURSA8PCA4IHwgU0FNX1NUQVRfR09PRDsKIAllbHNlIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAicmVhZF9jYWxsYmFjazogcmVhZCBmYWlsZWQsIHN0YXR1cyA9ICVkXG4iLAotCQkJCWxlMzJfdG9fY3B1KHJlYWRyZXBseS0+c3RhdHVzKSk7CisjaWZkZWYgQUFDX0RFVEFJTEVEX1NUQVRVU19JTkZPCisJCXByaW50ayhLRVJOX1dBUk5JTkcgInJlYWRfY2FsbGJhY2s6IGlvIGZhaWxlZCwgc3RhdHVzID0gJWRcbiIsCisJCSAgbGUzMl90b19jcHUocmVhZHJlcGx5LT5zdGF0dXMpKTsKKyNlbmRpZgogCQlzY3NpY21kLT5yZXN1bHQgPSBESURfT0sgPDwgMTYgfCBDT01NQU5EX0NPTVBMRVRFIDw8IDggfCBTQU1fU1RBVF9DSEVDS19DT05ESVRJT047CiAJCXNldF9zZW5zZSgodTggKikgJmRldi0+ZnNhX2RldltjaWRdLnNlbnNlX2RhdGEsCiAJCQkJICAgIEhBUkRXQVJFX0VSUk9SLApAQCAtODEzLDcgKzg3OCw3IEBACiAJYWFjX2lvX2RvbmUoc2NzaWNtZCk7CiB9CiAKLWludCBhYWNfcmVhZChzdHJ1Y3Qgc2NzaV9jbW5kICogc2NzaWNtZCwgaW50IGNpZCkKK3N0YXRpYyBpbnQgYWFjX3JlYWQoc3RydWN0IHNjc2lfY21uZCAqIHNjc2ljbWQsIGludCBjaWQpCiB7CiAJdTMyIGxiYTsKIAl1MzIgY291bnQ7CkBAIC04NDIsNyArOTA3LDggQEAKIAkJbGJhID0gKHNjc2ljbWQtPmNtbmRbMl0gPDwgMjQpIHwgKHNjc2ljbWQtPmNtbmRbM10gPDwgMTYpIHwgKHNjc2ljbWQtPmNtbmRbNF0gPDwgOCkgfCBzY3NpY21kLT5jbW5kWzVdOwogCQljb3VudCA9IChzY3NpY21kLT5jbW5kWzddIDw8IDgpIHwgc2NzaWNtZC0+Y21uZFs4XTsKIAl9Ci0JZHByaW50aygoS0VSTl9ERUJVRyAiYWFjX3JlYWRbY3B1ICVkXTogbGJhID0gJXUsIHQgPSAlbGQuXG4iLCBzbXBfcHJvY2Vzc29yX2lkKCksIGxiYSwgamlmZmllcykpOworCWRwcmludGsoKEtFUk5fREVCVUcgImFhY19yZWFkW2NwdSAlZF06IGxiYSA9ICV1LCB0ID0gJWxkLlxuIiwKKwkgIHNtcF9wcm9jZXNzb3JfaWQoKSwgKHVuc2lnbmVkIGxvbmcgbG9uZylsYmEsIGppZmZpZXMpKTsKIAkvKgogCSAqCUFsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBGaWIKIAkgKi8KQEAgLTg1Miw3ICs5MTgsNyBAQAogCiAJZmliX2luaXQoY21kX2ZpYmNvbnRleHQpOwogCi0JaWYoZGV2LT5kYWNfc3VwcG9ydCA9PSAxKSB7CisJaWYgKGRldi0+ZGFjX3N1cHBvcnQgPT0gMSkgewogCQlzdHJ1Y3QgYWFjX3JlYWQ2NCAqcmVhZGNtZDsKIAkJcmVhZGNtZCA9IChzdHJ1Y3QgYWFjX3JlYWQ2NCAqKSBmaWJfZGF0YShjbWRfZmliY29udGV4dCk7CiAJCXJlYWRjbWQtPmNvbW1hbmQgPSBjcHVfdG9fbGUzMihWTV9DdEhvc3RSZWFkNjQpOwpAQCAtODg2LDE0ICs5NTIsMTEgQEAKIAkJcmVhZGNtZC0+YmxvY2sgPSBjcHVfdG9fbGUzMihsYmEpOwogCQlyZWFkY21kLT5jb3VudCA9IGNwdV90b19sZTMyKGNvdW50ICogNTEyKTsKIAotCQlpZiAoY291bnQgKiA1MTIgPiAoNjQgKiAxMDI0KSkKLQkJCUJVRygpOwotCiAJCWFhY19idWlsZF9zZyhzY3NpY21kLCAmcmVhZGNtZC0+c2cpOwogCQlmaWJzaXplID0gc2l6ZW9mKHN0cnVjdCBhYWNfcmVhZCkgKyAKIAkJCSgobGUzMl90b19jcHUocmVhZGNtZC0+c2cuY291bnQpIC0gMSkgKiAKIAkJCSBzaXplb2YgKHN0cnVjdCBzZ2VudHJ5KSk7Ci0JCUJVR19PTiAoZmlic2l6ZSA+IChzaXplb2Yoc3RydWN0IGh3X2ZpYikgLSAKKwkJQlVHX09OIChmaWJzaXplID4gKGRldi0+bWF4X2ZpYl9zaXplIC0KIAkJCQkJc2l6ZW9mKHN0cnVjdCBhYWNfZmliaGRyKSkpOwogCQkvKgogCQkgKglOb3cgc2VuZCB0aGUgRmliIHRvIHRoZSBhZGFwdGVyCkBAIC05NzYsNyArMTAzOSw3IEBACiAJCWZpYnNpemUgPSBzaXplb2Yoc3RydWN0IGFhY193cml0ZTY0KSArIAogCQkJKChsZTMyX3RvX2NwdSh3cml0ZWNtZC0+c2cuY291bnQpIC0gMSkgKiAKIAkJCSBzaXplb2YgKHN0cnVjdCBzZ2VudHJ5NjQpKTsKLQkJQlVHX09OIChmaWJzaXplID4gKHNpemVvZihzdHJ1Y3QgaHdfZmliKSAtIAorCQlCVUdfT04gKGZpYnNpemUgPiAoZGV2LT5tYXhfZmliX3NpemUgLQogCQkJCQlzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpKSk7CiAJCS8qCiAJCSAqCU5vdyBzZW5kIHRoZSBGaWIgdG8gdGhlIGFkYXB0ZXIKQEAgLTk5OCwxNSArMTA2MSwxMSBAQAogCQl3cml0ZWNtZC0+c2cuY291bnQgPSBjcHVfdG9fbGUzMigxKTsKIAkJLyogLT5zdGFibGUgaXMgbm90IHVzZWQgLSBpdCBkaWQgbWVhbiB3aGljaCB0eXBlIG9mIHdyaXRlICovCiAKLQkJaWYgKGNvdW50ICogNTEyID4gKDY0ICogMTAyNCkpIHsKLQkJCUJVRygpOwotCQl9Ci0KIAkJYWFjX2J1aWxkX3NnKHNjc2ljbWQsICZ3cml0ZWNtZC0+c2cpOwogCQlmaWJzaXplID0gc2l6ZW9mKHN0cnVjdCBhYWNfd3JpdGUpICsgCiAJCQkoKGxlMzJfdG9fY3B1KHdyaXRlY21kLT5zZy5jb3VudCkgLSAxKSAqIAogCQkJIHNpemVvZiAoc3RydWN0IHNnZW50cnkpKTsKLQkJQlVHX09OIChmaWJzaXplID4gKHNpemVvZihzdHJ1Y3QgaHdfZmliKSAtIAorCQlCVUdfT04gKGZpYnNpemUgPiAoZGV2LT5tYXhfZmliX3NpemUgLQogCQkJCQlzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpKSk7CiAJCS8qCiAJCSAqCU5vdyBzZW5kIHRoZSBGaWIgdG8gdGhlIGFkYXB0ZXIKQEAgLTEwMjUsNyArMTA4NCw2IEBACiAJICovCiAJaWYgKHN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpCiAJewotCQlkcHJpbnRrKCJ3cml0ZSBxdWV1ZWQuXG4iKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0xMTExLDcgKzExNjksNyBAQAogCQlyZXR1cm4gU0NTSV9NTFFVRVVFX0RFVklDRV9CVVNZOwogCiAJLyoKLQkgKglBbG9jYXRlIGFuZCBpbml0aWFsaXplIGEgRmliCisJICoJQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBGaWIKIAkgKi8KIAlpZiAoIShjbWRfZmliY29udGV4dCA9IAogCSAgICBmaWJfYWxsb2MoKHN0cnVjdCBhYWNfZGV2ICopc2NzaWNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YSkpKSAKQEAgLTE0MDMsNyArMTQ2MSw3IEBACiAJCQkvKgogCQkJICoJVW5oYW5kbGVkIGNvbW1hbmRzCiAJCQkgKi8KLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVuaGFuZGxlZCBTQ1NJIENvbW1hbmQ6IDB4JXguXG4iLCBzY3NpY21kLT5jbW5kWzBdKTsKKwkJCWRwcmludGsoKEtFUk5fV0FSTklORyAiVW5oYW5kbGVkIFNDU0kgQ29tbWFuZDogMHgleC5cbiIsIHNjc2ljbWQtPmNtbmRbMF0pKTsKIAkJCXNjc2ljbWQtPnJlc3VsdCA9IERJRF9PSyA8PCAxNiB8IENPTU1BTkRfQ09NUExFVEUgPDwgOCB8IFNBTV9TVEFUX0NIRUNLX0NPTkRJVElPTjsKIAkJCXNldF9zZW5zZSgodTggKikgJmRldi0+ZnNhX2RldltjaWRdLnNlbnNlX2RhdGEsCiAJCQkJSUxMRUdBTF9SRVFVRVNULCBTRU5DT0RFX0lOVkFMSURfQ09NTUFORCwKQEAgLTE4MTgsNyArMTg3Niw3IEBACiAJCWZpYnNpemUgPSBzaXplb2YgKHN0cnVjdCBhYWNfc3JiKSAtIHNpemVvZiAoc3RydWN0IHNnZW50cnkpICsKIAkJCSgobGUzMl90b19jcHUoc3JiY21kLT5zZy5jb3VudCkgJiAweGZmKSAqIAogCQkJIHNpemVvZiAoc3RydWN0IHNnZW50cnk2NCkpOwotCQlCVUdfT04gKGZpYnNpemUgPiAoc2l6ZW9mKHN0cnVjdCBod19maWIpIC0gCisJCUJVR19PTiAoZmlic2l6ZSA+IChkZXYtPm1heF9maWJfc2l6ZSAtCiAJCQkJCXNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikpKTsKIAogCQkvKgpAQCAtMTg0MCw3ICsxODk4LDcgQEAKIAkJZmlic2l6ZSA9IHNpemVvZiAoc3RydWN0IGFhY19zcmIpICsgCiAJCQkoKChsZTMyX3RvX2NwdShzcmJjbWQtPnNnLmNvdW50KSAmIDB4ZmYpIC0gMSkgKiAKIAkJCSBzaXplb2YgKHN0cnVjdCBzZ2VudHJ5KSk7Ci0JCUJVR19PTiAoZmlic2l6ZSA+IChzaXplb2Yoc3RydWN0IGh3X2ZpYikgLSAKKwkJQlVHX09OIChmaWJzaXplID4gKGRldi0+bWF4X2ZpYl9zaXplIC0KIAkJCQkJc2l6ZW9mKHN0cnVjdCBhYWNfZmliaGRyKSkpOwogCiAJCS8qCkBAIC0xODkzLDcgKzE5NTEsOSBAQAogCQl9CiAJCS8qIGhiYSB3YW50cyB0aGUgc2l6ZSB0byBiZSBleGFjdCAqLwogCQlpZihieXRlX2NvdW50ID4gc2NzaWNtZC0+cmVxdWVzdF9idWZmbGVuKXsKLQkJCXBzZy0+c2dbaS0xXS5jb3VudCAtPSAoYnl0ZV9jb3VudCAtIHNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbik7CisJCQl1MzIgdGVtcCA9IGxlMzJfdG9fY3B1KHBzZy0+c2dbaS0xXS5jb3VudCkgLSAKKwkJCQkoYnl0ZV9jb3VudCAtIHNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbik7CisJCQlwc2ctPnNnW2ktMV0uY291bnQgPSBjcHVfdG9fbGUzMih0ZW1wKTsKIAkJCWJ5dGVfY291bnQgPSBzY3NpY21kLT5yZXF1ZXN0X2J1ZmZsZW47CiAJCX0KIAkJLyogQ2hlY2sgZm9yIGNvbW1hbmQgdW5kZXJmbG93ICovCkBAIC0xOTIyLDcgKzE5ODIsNyBAQAogewogCXN0cnVjdCBhYWNfZGV2ICpkZXY7CiAJdW5zaWduZWQgbG9uZyBieXRlX2NvdW50ID0gMDsKLQl1NjQgbGVfYWRkcjsKKwl1NjQgYWRkcjsKIAogCWRldiA9IChzdHJ1Y3QgYWFjX2RldiAqKXNjc2ljbWQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CiAJLy8gR2V0IHJpZCBvZiBvbGQgZGF0YQpAQCAtMTk0MywxNiArMjAwMywxOCBAQAogCQlieXRlX2NvdW50ID0gMDsKIAogCQlmb3IgKGkgPSAwOyBpIDwgc2dfY291bnQ7IGkrKykgewotCQkJbGVfYWRkciA9IGNwdV90b19sZTY0KHNnX2RtYV9hZGRyZXNzKHNnKSk7Ci0JCQlwc2ctPnNnW2ldLmFkZHJbMV0gPSAodTMyKShsZV9hZGRyPj4zMik7Ci0JCQlwc2ctPnNnW2ldLmFkZHJbMF0gPSAodTMyKShsZV9hZGRyICYgMHhmZmZmZmZmZik7CisJCQlhZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOworCQkJcHNnLT5zZ1tpXS5hZGRyWzBdID0gY3B1X3RvX2xlMzIoYWRkciAmIDB4ZmZmZmZmZmYpOworCQkJcHNnLT5zZ1tpXS5hZGRyWzFdID0gY3B1X3RvX2xlMzIoYWRkcj4+MzIpOwogCQkJcHNnLT5zZ1tpXS5jb3VudCA9IGNwdV90b19sZTMyKHNnX2RtYV9sZW4oc2cpKTsKIAkJCWJ5dGVfY291bnQgKz0gc2dfZG1hX2xlbihzZyk7CiAJCQlzZysrOwogCQl9CiAJCS8qIGhiYSB3YW50cyB0aGUgc2l6ZSB0byBiZSBleGFjdCAqLwogCQlpZihieXRlX2NvdW50ID4gc2NzaWNtZC0+cmVxdWVzdF9idWZmbGVuKXsKLQkJCXBzZy0+c2dbaS0xXS5jb3VudCAtPSAoYnl0ZV9jb3VudCAtIHNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbik7CisJCQl1MzIgdGVtcCA9IGxlMzJfdG9fY3B1KHBzZy0+c2dbaS0xXS5jb3VudCkgLSAKKwkJCQkoYnl0ZV9jb3VudCAtIHNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbik7CisJCQlwc2ctPnNnW2ktMV0uY291bnQgPSBjcHVfdG9fbGUzMih0ZW1wKTsKIAkJCWJ5dGVfY291bnQgPSBzY3NpY21kLT5yZXF1ZXN0X2J1ZmZsZW47CiAJCX0KIAkJLyogQ2hlY2sgZm9yIGNvbW1hbmQgdW5kZXJmbG93ICovCkBAIC0xOTYyLDE1ICsyMDI0LDE0IEBACiAJCX0KIAl9CiAJZWxzZSBpZihzY3NpY21kLT5yZXF1ZXN0X2J1ZmZsZW4pIHsKLQkJZG1hX2FkZHJfdCBhZGRyOyAKKwkJdTY0IGFkZHI7IAogCQlhZGRyID0gcGNpX21hcF9zaW5nbGUoZGV2LT5wZGV2LAogCQkJCXNjc2ljbWQtPnJlcXVlc3RfYnVmZmVyLAogCQkJCXNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbiwKIAkJCQlzY3NpY21kLT5zY19kYXRhX2RpcmVjdGlvbik7CiAJCXBzZy0+Y291bnQgPSBjcHVfdG9fbGUzMigxKTsKLQkJbGVfYWRkciA9IGNwdV90b19sZTY0KGFkZHIpOwotCQlwc2ctPnNnWzBdLmFkZHJbMV0gPSAodTMyKShsZV9hZGRyPj4zMik7Ci0JCXBzZy0+c2dbMF0uYWRkclswXSA9ICh1MzIpKGxlX2FkZHIgJiAweGZmZmZmZmZmKTsKKwkJcHNnLT5zZ1swXS5hZGRyWzBdID0gY3B1X3RvX2xlMzIoYWRkciAmIDB4ZmZmZmZmZmYpOworCQlwc2ctPnNnWzBdLmFkZHJbMV0gPSBjcHVfdG9fbGUzMihhZGRyID4+IDMyKTsKIAkJcHNnLT5zZ1swXS5jb3VudCA9IGNwdV90b19sZTMyKHNjc2ljbWQtPnJlcXVlc3RfYnVmZmxlbik7ICAKIAkJc2NzaWNtZC0+U0NwLmRtYV9oYW5kbGUgPSBhZGRyOwogCQlieXRlX2NvdW50ID0gc2NzaWNtZC0+cmVxdWVzdF9idWZmbGVuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjcmFpZC5oIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjcmFpZC5oCmluZGV4IDcwMGQ5MDMuLjQyNDg0NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY3JhaWQuaAorKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9hYWNyYWlkLmgKQEAgLTgsMTIgKzgsMTggQEAKIAogI2RlZmluZSBNQVhJTVVNX05VTV9DT05UQUlORVJTCTMyCiAKLSNkZWZpbmUgQUFDX05VTV9GSUIJCSgyNTYgKyA2NCkKLSNkZWZpbmUgQUFDX05VTV9JT19GSUIJCTEwMAorI2RlZmluZSBBQUNfTlVNX01HVF9GSUIgICAgICAgICA4CisjZGVmaW5lIEFBQ19OVU1fSU9fRklCCQkoNTEyIC0gQUFDX05VTV9NR1RfRklCKQorI2RlZmluZSBBQUNfTlVNX0ZJQgkJKEFBQ19OVU1fSU9fRklCICsgQUFDX05VTV9NR1RfRklCKQogCiAjZGVmaW5lIEFBQ19NQVhfTFVOCQkoOCkKIAogI2RlZmluZSBBQUNfTUFYX0hPU1RQSFlTTUVNUEFHRVMgKDB4ZmZmZmYpCisvKgorICogIG1heF9zZWN0b3JzIGlzIGFuIHVuc2lnbmVkIHNob3J0LCBvdGhlcndpc2UgbGltaXQgaXMgMHgxMDAwMDAwMDAgLyA1MTIKKyAqIExpbnV4IGhhcyBzdGFydmF0aW9uIHByb2JsZW1zIGlmIHdlIHBlcm1pdCBsYXJnZXIgdGhhbiA0TUIgSS9PIC4uLgorICovCisjZGVmaW5lIEFBQ19NQVhfMzJCSVRfU0dCQ09VTlQJKCh1bnNpZ25lZCBzaG9ydCk4MTkyKQogCiAvKgogICogVGhlc2UgbWFjcm9zIGNvbnZlcnQgZnJvbSBwaHlzaWNhbCBjaGFubmVscyB0byB2aXJ0dWFsIGNoYW5uZWxzCkBAIC04OSwxMSArOTUsMjEgQEAKICAqCW9uIDY0IGJpdCBzeXN0ZW1zIG5vdCBhbGwgY2FyZHMgc3VwcG9ydCB0aGUgNjQgYml0IHZlcnNpb24KICAqLwogc3RydWN0IHNnZW50cnkgeworCV9fbGUzMglhZGRyOwkvKiAzMi1iaXQgYWRkcmVzcy4gKi8KKwlfX2xlMzIJY291bnQ7CS8qIExlbmd0aC4gKi8KK307CisKK3N0cnVjdCB1c2VyX3NnZW50cnkgewogCXUzMglhZGRyOwkvKiAzMi1iaXQgYWRkcmVzcy4gKi8KIAl1MzIJY291bnQ7CS8qIExlbmd0aC4gKi8KIH07CiAKIHN0cnVjdCBzZ2VudHJ5NjQgeworCV9fbGUzMglhZGRyWzJdOwkvKiA2NC1iaXQgYWRkci4gMiBwaWVjZXMgZm9yIGRhdGEgYWxpZ25tZW50ICovCisJX19sZTMyCWNvdW50OwkvKiBMZW5ndGguICovCit9OworCitzdHJ1Y3QgdXNlcl9zZ2VudHJ5NjQgewogCXUzMglhZGRyWzJdOwkvKiA2NC1iaXQgYWRkci4gMiBwaWVjZXMgZm9yIGRhdGEgYWxpZ25tZW50ICovCiAJdTMyCWNvdW50OwkvKiBMZW5ndGguICovCiB9OwpAQCAtMTA2LDE1ICsxMjIsMjUgQEAKICAqLwogCiBzdHJ1Y3Qgc2dtYXAgewotCXUzMgkJY291bnQ7CisJX19sZTMyCQljb3VudDsKIAlzdHJ1Y3Qgc2dlbnRyeQlzZ1sxXTsgCiB9OwogCi1zdHJ1Y3Qgc2dtYXA2NCB7CitzdHJ1Y3QgdXNlcl9zZ21hcCB7CiAJdTMyCQljb3VudDsKKwlzdHJ1Y3QgdXNlcl9zZ2VudHJ5CXNnWzFdOyAKK307CisKK3N0cnVjdCBzZ21hcDY0IHsKKwlfX2xlMzIJCWNvdW50OwogCXN0cnVjdCBzZ2VudHJ5NjQgc2dbMV07CiB9OwogCitzdHJ1Y3QgdXNlcl9zZ21hcDY0IHsKKwl1MzIJCWNvdW50OworCXN0cnVjdCB1c2VyX3NnZW50cnk2NCBzZ1sxXTsKK307CisKIHN0cnVjdCBjcmVhdGlvbl9pbmZvCiB7CiAJdTggCQlidWlsZG51bTsJCS8qIGUuZy4sIDU4OCAqLwpAQCAtMTIzLDE0ICsxNDksMTQgQEAKIAkJCQkJCSAqIAkgMiA9IEFQSQogCQkJCQkJICovCiAJdTgJIAl5ZWFyOwkJIAkvKiBlLmcuLCAxOTk3ID0gOTcgKi8KLQl1MzIJCWRhdGU7CQkJLyoKKwlfX2xlMzIJCWRhdGU7CQkJLyoKIAkJCQkJCSAqIHVuc2lnbmVkIAlNb250aAkJOjQ7CS8vIDEgLSAxMgogCQkJCQkJICogdW5zaWduZWQgCURheQkJOjY7CS8vIDEgLSAzMgogCQkJCQkJICogdW5zaWduZWQgCUhvdXIJCTo2OwkvLyAwIC0gMjMKIAkJCQkJCSAqIHVuc2lnbmVkIAlNaW51dGUJCTo2OwkvLyAwIC0gNjAKIAkJCQkJCSAqIHVuc2lnbmVkIAlTZWNvbmQJCTo2OwkvLyAwIC0gNjAKIAkJCQkJCSAqLwotCXUzMgkJc2VyaWFsWzJdOwkJCS8qIGUuZy4sIDB4MURFQURCMEJGQUZBRjAwMSAqLworCV9fbGUzMgkJc2VyaWFsWzJdOwkJCS8qIGUuZy4sIDB4MURFQURCMEJGQUZBRjAwMSAqLwogfTsKIAogCkBAIC0xNzUsOCArMjAxLDggQEAKICAqLwogCiBzdHJ1Y3QgYWFjX2VudHJ5IHsKLQl1MzIgc2l6ZTsgICAgICAgICAgLyogU2l6ZSBpbiBieXRlcyBvZiBGaWIgd2hpY2ggdGhpcyBRRSBwb2ludHMgdG8gKi8KLQl1MzIgYWRkcjsgLyogUmVjZWl2ZXIgYWRkcmVzcyBvZiB0aGUgRklCICovCisJX19sZTMyIHNpemU7IC8qIFNpemUgaW4gYnl0ZXMgb2YgRmliIHdoaWNoIHRoaXMgUUUgcG9pbnRzIHRvICovCisJX19sZTMyIGFkZHI7IC8qIFJlY2VpdmVyIGFkZHJlc3Mgb2YgdGhlIEZJQiAqLwogfTsKIAogLyoKQEAgLTE4NSw5ICsyMTEsMTAgQEAKICAqLwogIAogc3RydWN0IGFhY19xaGRyIHsKLQl1NjQgaGVhZGVyX2FkZHI7CQkvKiBBZGRyZXNzIHRvIGhhbmQgdGhlIGFkYXB0ZXIgdG8gYWNjZXNzIHRvIHRoaXMgcXVldWUgaGVhZCAqLwotCXUzMiAqcHJvZHVjZXI7CQkJLyogVGhlIHByb2R1Y2VyIGluZGV4IGZvciB0aGlzIHF1ZXVlIChob3N0IGFkZHJlc3MpICovCi0JdTMyICpjb25zdW1lcjsJCQkvKiBUaGUgY29uc3VtZXIgaW5kZXggZm9yIHRoaXMgcXVldWUgKGhvc3QgYWRkcmVzcykgKi8KKwlfX2xlNjQgaGVhZGVyX2FkZHI7LyogQWRkcmVzcyB0byBoYW5kIHRoZSBhZGFwdGVyIHRvIGFjY2VzcyAKKwkJCSAgICAgIHRvIHRoaXMgcXVldWUgaGVhZCAqLworCV9fbGUzMiAqcHJvZHVjZXI7IC8qIFRoZSBwcm9kdWNlciBpbmRleCBmb3IgdGhpcyBxdWV1ZSAoaG9zdCBhZGRyZXNzKSAqLworCV9fbGUzMiAqY29uc3VtZXI7IC8qIFRoZSBjb25zdW1lciBpbmRleCBmb3IgdGhpcyBxdWV1ZSAoaG9zdCBhZGRyZXNzKSAqLwogfTsKIAogLyoKQEAgLTI2MSwyOSArMjg4LDMwIEBACiAgKi8KIAogc3RydWN0IGFhY19maWJoZHIgewotCXUzMiBYZmVyU3RhdGU7CQkJLy8gQ3VycmVudCB0cmFuc2ZlciBzdGF0ZSBmb3IgdGhpcyBDQ0IKLQl1MTYgQ29tbWFuZDsJCQkvLyBSb3V0aW5nIGluZm9ybWF0aW9uIGZvciB0aGUgZGVzdGluYXRpb24KLQl1OCBTdHJ1Y3RUeXBlOwkJCS8vIFR5cGUgRklCCi0JdTggRmxhZ3M7CQkJLy8gRmxhZ3MgZm9yIEZJQgotCXUxNiBTaXplOwkJCS8vIFNpemUgb2YgdGhpcyBGSUIgaW4gYnl0ZXMKLQl1MTYgU2VuZGVyU2l6ZTsJCQkvLyBTaXplIG9mIHRoZSBGSUIgaW4gdGhlIHNlbmRlciAoZm9yIHJlc3BvbnNlIHNpemluZykKLQl1MzIgU2VuZGVyRmliQWRkcmVzczsJCS8vIEhvc3QgZGVmaW5lZCBkYXRhIGluIHRoZSBGSUIKLQl1MzIgUmVjZWl2ZXJGaWJBZGRyZXNzOwkJLy8gTG9naWNhbCBhZGRyZXNzIG9mIHRoaXMgRklCIGZvciB0aGUgYWRhcHRlcgotCXUzMiBTZW5kZXJEYXRhOwkJCS8vIFBsYWNlIGhvbGRlciBmb3IgdGhlIHNlbmRlciB0byBzdG9yZSBkYXRhCisJX19sZTMyIFhmZXJTdGF0ZTsJLyogQ3VycmVudCB0cmFuc2ZlciBzdGF0ZSBmb3IgdGhpcyBDQ0IgKi8KKwlfX2xlMTYgQ29tbWFuZDsJCS8qIFJvdXRpbmcgaW5mb3JtYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbiAqLworCXU4IFN0cnVjdFR5cGU7CQkvKiBUeXBlIEZJQiAqLworCXU4IEZsYWdzOwkJLyogRmxhZ3MgZm9yIEZJQiAqLworCV9fbGUxNiBTaXplOwkJLyogU2l6ZSBvZiB0aGlzIEZJQiBpbiBieXRlcyAqLworCV9fbGUxNiBTZW5kZXJTaXplOwkvKiBTaXplIG9mIHRoZSBGSUIgaW4gdGhlIHNlbmRlciAKKwkJCQkgICAoZm9yIHJlc3BvbnNlIHNpemluZykgKi8KKwlfX2xlMzIgU2VuZGVyRmliQWRkcmVzczsgIC8qIEhvc3QgZGVmaW5lZCBkYXRhIGluIHRoZSBGSUIgKi8KKwlfX2xlMzIgUmVjZWl2ZXJGaWJBZGRyZXNzOy8qIExvZ2ljYWwgYWRkcmVzcyBvZiB0aGlzIEZJQiBmb3IgCisJCQkJICAgICB0aGUgYWRhcHRlciAqLworCXUzMiBTZW5kZXJEYXRhOwkJLyogUGxhY2UgaG9sZGVyIGZvciB0aGUgc2VuZGVyIHRvIHN0b3JlIGRhdGEgKi8KIAl1bmlvbiB7CiAJCXN0cnVjdCB7Ci0JCSAgICB1MzIgX1JlY2VpdmVyVGltZVN0YXJ0OyAJLy8gVGltZXN0YW1wIGZvciByZWNlaXB0IG9mIGZpYgotCQkgICAgdTMyIF9SZWNlaXZlclRpbWVEb25lOwkvLyBUaW1lc3RhbXAgZm9yIGNvbXBsZXRpb24gb2YgZmliCisJCSAgICBfX2xlMzIgX1JlY2VpdmVyVGltZVN0YXJ0OyAJLyogVGltZXN0YW1wIGZvciAKKwkJCQkJCSAgIHJlY2VpcHQgb2YgZmliICovCisJCSAgICBfX2xlMzIgX1JlY2VpdmVyVGltZURvbmU7CS8qIFRpbWVzdGFtcCBmb3IgCisJCQkJCQkgICBjb21wbGV0aW9uIG9mIGZpYiAqLwogCQl9IF9zOwogCX0gX3U7CiB9OwogCi0jZGVmaW5lIEZJQl9EQVRBX1NJWkVfSU5fQllURVMgKDUxMiAtIHNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikpCi0KLQogc3RydWN0IGh3X2ZpYiB7CiAJc3RydWN0IGFhY19maWJoZHIgaGVhZGVyOwotCXU4IGRhdGFbRklCX0RBVEFfU0laRV9JTl9CWVRFU107CQkvLyBDb21tYW5kIHNwZWNpZmljIGRhdGEKKwl1OCBkYXRhWzUxMi1zaXplb2Yoc3RydWN0IGFhY19maWJoZHIpXTsJLy8gQ29tbWFuZCBzcGVjaWZpYyBkYXRhCiB9OwogCiAvKgpAQCAtMzQ1LDExICszNzMsMTIgQEAKICNkZWZpbmUJCVJlcXVlc3RBZGFwdGVySW5mbwkJNzAzCiAjZGVmaW5lCQlJc0FkYXB0ZXJQYXVzZWQJCQk3MDQKICNkZWZpbmUJCVNlbmRIb3N0VGltZQkJCTcwNQotI2RlZmluZQkJTGFzdE1pc2NDb21tYW5kCQkJNzA2CisjZGVmaW5lCQlSZXF1ZXN0U3VwcGxlbWVudEFkYXB0ZXJJbmZvCTcwNgorI2RlZmluZQkJTGFzdE1pc2NDb21tYW5kCQkJNzA3CiAKLS8vCi0vLyBDb21tYW5kcyB0aGF0IHdpbGwgdGFyZ2V0IHRoZSBmYWlsb3ZlciBsZXZlbCBvbiB0aGUgRlNBIGFkYXB0ZXIKLS8vCisvKgorICogQ29tbWFuZHMgdGhhdCB3aWxsIHRhcmdldCB0aGUgZmFpbG92ZXIgbGV2ZWwgb24gdGhlIEZTQSBhZGFwdGVyCisgKi8KIAogZW51bSBmaWJfeGZlcl9zdGF0ZSB7CiAJSG9zdE93bmVkIAkJCT0gKDE8PDApLApAQCAtMzgyLDIyICs0MTEsMzIgQEAKICAqLwogCiAjZGVmaW5lIEFEQVBURVJfSU5JVF9TVFJVQ1RfUkVWSVNJT04JCTMKKyNkZWZpbmUgQURBUFRFUl9JTklUX1NUUlVDVF9SRVZJU0lPTl80CQk0IC8vIHJvY2tldCBzY2llbmNlCiAKIHN0cnVjdCBhYWNfaW5pdAogewotCXUzMglJbml0U3RydWN0UmV2aXNpb247Ci0JdTMyCU1pbmlQb3J0UmV2aXNpb247Ci0JdTMyCWZzcmV2OwotCXUzMglDb21tSGVhZGVyQWRkcmVzczsKLQl1MzIJRmFzdElvQ29tbUFyZWFBZGRyZXNzOwotCXUzMglBZGFwdGVyRmlic1BoeXNpY2FsQWRkcmVzczsKLQl1MzIJQWRhcHRlckZpYnNWaXJ0dWFsQWRkcmVzczsKLQl1MzIJQWRhcHRlckZpYnNTaXplOwotCXUzMglBZGFwdGVyRmliQWxpZ247Ci0JdTMyCXByaW50ZmJ1ZjsKLQl1MzIJcHJpbnRmYnVmc2l6OwotCXUzMglIb3N0UGh5c01lbVBhZ2VzOwkJLy8gbnVtYmVyIG9mIDRrIHBhZ2VzIG9mIGhvc3QgcGh5c2ljYWwgbWVtb3J5Ci0JdTMyCUhvc3RFbGFwc2VkU2Vjb25kczsJCS8vIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIDE5NzAuCisJX19sZTMyCUluaXRTdHJ1Y3RSZXZpc2lvbjsKKwlfX2xlMzIJTWluaVBvcnRSZXZpc2lvbjsKKwlfX2xlMzIJZnNyZXY7CisJX19sZTMyCUNvbW1IZWFkZXJBZGRyZXNzOworCV9fbGUzMglGYXN0SW9Db21tQXJlYUFkZHJlc3M7CisJX19sZTMyCUFkYXB0ZXJGaWJzUGh5c2ljYWxBZGRyZXNzOworCV9fbGUzMglBZGFwdGVyRmlic1ZpcnR1YWxBZGRyZXNzOworCV9fbGUzMglBZGFwdGVyRmlic1NpemU7CisJX19sZTMyCUFkYXB0ZXJGaWJBbGlnbjsKKwlfX2xlMzIJcHJpbnRmYnVmOworCV9fbGUzMglwcmludGZidWZzaXo7CisJX19sZTMyCUhvc3RQaHlzTWVtUGFnZXM7ICAgLyogbnVtYmVyIG9mIDRrIHBhZ2VzIG9mIGhvc3QgCisJCQkJICAgICAgIHBoeXNpY2FsIG1lbW9yeSAqLworCV9fbGUzMglIb3N0RWxhcHNlZFNlY29uZHM7IC8qIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIDE5NzAuICovCisJLyoKKwkgKiBBREFQVEVSX0lOSVRfU1RSVUNUX1JFVklTSU9OXzQgYmVnaW5zIGhlcmUKKwkgKi8KKwlfX2xlMzIJSW5pdEZsYWdzOwkvKiBmbGFncyBmb3Igc3VwcG9ydGVkIGZlYXR1cmVzICovCisjZGVmaW5lIElOSVRGTEFHU19ORVdfQ09NTV9TVVBQT1JURUQJMHgwMDAwMDAwMQorCV9fbGUzMglNYXhJb0NvbW1hbmRzOwkvKiBtYXggb3V0c3RhbmRpbmcgY29tbWFuZHMgKi8KKwlfX2xlMzIJTWF4SW9TaXplOwkvKiBsYXJnZXN0IEkvTyBjb21tYW5kICovCisJX19sZTMyCU1heEZpYlNpemU7CS8qIGxhcmdlc3QgRklCIHRvIGFkYXB0ZXIgKi8KIH07CiAKIGVudW0gYWFjX2xvZ19sZXZlbCB7CkBAIC00MjEsNyArNDYwLDcgQEAKIHsKIAl2b2lkICgqYWRhcHRlcl9pbnRlcnJ1cHQpKHN0cnVjdCBhYWNfZGV2ICpkZXYpOwogCXZvaWQgKCphZGFwdGVyX25vdGlmeSkoc3RydWN0IGFhY19kZXYgKmRldiwgdTMyIGV2ZW50KTsKLQlpbnQgICgqYWRhcHRlcl9zeW5jX2NtZCkoc3RydWN0IGFhY19kZXYgKmRldiwgdTMyIGNvbW1hbmQsIHUzMiBwMSwgdTMyICpzdGF0dXMpOworCWludCAgKCphZGFwdGVyX3N5bmNfY21kKShzdHJ1Y3QgYWFjX2RldiAqZGV2LCB1MzIgY29tbWFuZCwgdTMyIHAxLCB1MzIgcDIsIHUzMiBwMywgdTMyIHA0LCB1MzIgcDUsIHUzMiBwNiwgdTMyICpzdGF0dXMsIHUzMiAqcjEsIHUzMiAqcjIsIHUzMiAqcjMsIHUzMiAqcjQpOwogCWludCAgKCphZGFwdGVyX2NoZWNrX2hlYWx0aCkoc3RydWN0IGFhY19kZXYgKmRldik7CiB9OwogCkBAIC01NDEsNiArNTgwLDcgQEAKICNkZWZpbmUgTWFpbGJveDMJU2FEYkNTUi5NQUlMQk9YMwogI2RlZmluZSBNYWlsYm94NAlTYURiQ1NSLk1BSUxCT1g0CiAjZGVmaW5lIE1haWxib3g1CVNhRGJDU1IuTUFJTEJPWDUKKyNkZWZpbmUgTWFpbGJveDYJU2FEYkNTUi5NQUlMQk9YNgogI2RlZmluZSBNYWlsYm94NwlTYURiQ1NSLk1BSUxCT1g3CiAJCiAjZGVmaW5lIERvb3JiZWxsUmVnX3AgU2FEYkNTUi5QUklTRVRJUlEKQEAgLTc2MywyOSArODAzLDQ4IEBACiAgCiBzdHJ1Y3QgYWFjX2FkYXB0ZXJfaW5mbwogewotCXUzMglwbGF0Zm9ybTsKLQl1MzIJY3B1OwotCXUzMglzdWJjcHU7Ci0JdTMyCWNsb2NrOwotCXUzMglleGVjbWVtOwotCXUzMglidWZmZXJtZW07Ci0JdTMyCXRvdGFsbWVtOwotCXUzMglrZXJuZWxyZXY7Ci0JdTMyCWtlcm5lbGJ1aWxkOwotCXUzMgltb25pdG9ycmV2OwotCXUzMgltb25pdG9yYnVpbGQ7Ci0JdTMyCWh3cmV2OwotCXUzMglod2J1aWxkOwotCXUzMgliaW9zcmV2OwotCXUzMgliaW9zYnVpbGQ7Ci0JdTMyCWNsdXN0ZXI7Ci0JdTMyCWNsdXN0ZXJjaGFubmVsbWFzazsgCi0JdTMyCXNlcmlhbFsyXTsKLQl1MzIJYmF0dGVyeTsKLQl1MzIJb3B0aW9uczsKLQl1MzIJT0VNOworCV9fbGUzMglwbGF0Zm9ybTsKKwlfX2xlMzIJY3B1OworCV9fbGUzMglzdWJjcHU7CisJX19sZTMyCWNsb2NrOworCV9fbGUzMglleGVjbWVtOworCV9fbGUzMglidWZmZXJtZW07CisJX19sZTMyCXRvdGFsbWVtOworCV9fbGUzMglrZXJuZWxyZXY7CisJX19sZTMyCWtlcm5lbGJ1aWxkOworCV9fbGUzMgltb25pdG9ycmV2OworCV9fbGUzMgltb25pdG9yYnVpbGQ7CisJX19sZTMyCWh3cmV2OworCV9fbGUzMglod2J1aWxkOworCV9fbGUzMgliaW9zcmV2OworCV9fbGUzMgliaW9zYnVpbGQ7CisJX19sZTMyCWNsdXN0ZXI7CisJX19sZTMyCWNsdXN0ZXJjaGFubmVsbWFzazsgCisJX19sZTMyCXNlcmlhbFsyXTsKKwlfX2xlMzIJYmF0dGVyeTsKKwlfX2xlMzIJb3B0aW9uczsKKwlfX2xlMzIJT0VNOwogfTsKIAorc3RydWN0IGFhY19zdXBwbGVtZW50X2FkYXB0ZXJfaW5mbworeworCXU4CUFkYXB0ZXJUeXBlVGV4dFsxNysxXTsKKwl1OAlQYWRbMl07CisJX19sZTMyCUZsYXNoTWVtb3J5Qnl0ZVNpemU7CisJX19sZTMyCUZsYXNoSW1hZ2VJZDsKKwlfX2xlMzIJTWF4TnVtYmVyUG9ydHM7CisJX19sZTMyCVZlcnNpb247CisJX19sZTMyCUZlYXR1cmVCaXRzOworCXU4CVNsb3ROdW1iZXI7CisJdTgJUmVzZXJ2ZWRQYWQwWzBdOworCXU4CUJ1aWxkRGF0ZVsxMl07CisJX19sZTMyCUN1cnJlbnROdW1iZXJQb3J0czsKKwlfX2xlMzIJUmVzZXJ2ZWRHcm93dGhbMjRdOworfTsKKyNkZWZpbmUgQUFDX0ZFQVRVUkVfRkFMQ09OCTB4MDAwMDAwMTAKKyNkZWZpbmUgQUFDX1NJU19WRVJTSU9OX1YzCTMKKyNkZWZpbmUgQUFDX1NJU19TTE9UX1VOS05PV04JMHhGRgorCiAvKgogICogQmF0dGVyeSBwbGF0Zm9ybXMKICAqLwpAQCAtODMxLDYgKzg5MCwxMiBAQAogCiAJdTE2CQkJaXJxX21hc2s7CiAJLyoKKwkgKgluZWdvdGlhdGVkIEZJQiBzZXR0aW5ncworCSAqLworCXVuc2lnbmVkCQltYXhfZmliX3NpemU7CisJdW5zaWduZWQJCXNnX3RhYmxlc2l6ZTsKKworCS8qCiAJICoJTWFwIGZvciAxMjggZmliIG9iamVjdHMgKDY0aykKIAkgKi8JCiAJZG1hX2FkZHJfdAkJaHdfZmliX3BhOwpAQCAtODg5LDEyICs5NTQsMTQgQEAKIAl1MzIJCQlhaWZfdGhyZWFkOwogCXN0cnVjdCBjb21wbGV0aW9uCWFpZl9jb21wbGV0aW9uOwogCXN0cnVjdCBhYWNfYWRhcHRlcl9pbmZvIGFkYXB0ZXJfaW5mbzsKKwlzdHJ1Y3QgYWFjX3N1cHBsZW1lbnRfYWRhcHRlcl9pbmZvIHN1cHBsZW1lbnRfYWRhcHRlcl9pbmZvOwogCS8qIFRoZXNlIGFyZSBpbiBhZGFwdGVyIGluZm8gYnV0IHRoZXkgYXJlIGluIHRoZSBpbyBmbG93IHNvCiAJICogbGV0cyBicmVhayB0aGVtIG91dCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIGFuIEFORCB0byBjaGVjayB0aGVtCiAJICovCiAJdTgJCQlub25kYXNkX3N1cHBvcnQ7IAogCXU4CQkJZGFjX3N1cHBvcnQ7CiAJdTgJCQlyYWlkX3Njc2lfbW9kZTsKKwl1OAkJCXByaW50Zl9lbmFibGVkOwogfTsKIAogI2RlZmluZSBhYWNfYWRhcHRlcl9pbnRlcnJ1cHQoZGV2KSBcCkBAIC05MDMsNiArOTcwLDggQEAKICNkZWZpbmUgYWFjX2FkYXB0ZXJfbm90aWZ5KGRldiwgZXZlbnQpIFwKIAkoZGV2KS0+YV9vcHMuYWRhcHRlcl9ub3RpZnkoZGV2LCBldmVudCkKIAorI2RlZmluZSBhYWNfYWRhcHRlcl9zeW5jX2NtZChkZXYsIGNvbW1hbmQsIHAxLCBwMiwgcDMsIHA0LCBwNSwgcDYsIHN0YXR1cywgcjEsIHIyLCByMywgcjQpIFwKKwkoZGV2KS0+YV9vcHMuYWRhcHRlcl9zeW5jX2NtZChkZXYsIGNvbW1hbmQsIHAxLCBwMiwgcDMsIHA0LCBwNSwgcDYsIHN0YXR1cywgcjEsIHIyLCByMywgcjQpCiAKICNkZWZpbmUgYWFjX2FkYXB0ZXJfY2hlY2tfaGVhbHRoKGRldikgXAogCShkZXYpLT5hX29wcy5hZGFwdGVyX2NoZWNrX2hlYWx0aChkZXYpCkBAIC0xMDE2LDgzICsxMDg1LDEwMiBAQAogCiBzdHJ1Y3QgYWFjX3JlYWQKIHsKLQl1MzIJIAljb21tYW5kOwotCXUzMiAJCWNpZDsKLQl1MzIgCQlibG9jazsKLQl1MzIgCQljb3VudDsKKwlfX2xlMzIJIAljb21tYW5kOworCV9fbGUzMiAJCWNpZDsKKwlfX2xlMzIgCQlibG9jazsKKwlfX2xlMzIgCQljb3VudDsKIAlzdHJ1Y3Qgc2dtYXAJc2c7CS8vIE11c3QgYmUgbGFzdCBpbiBzdHJ1Y3QgYmVjYXVzZSBpdCBpcyB2YXJpYWJsZQogfTsKIAogc3RydWN0IGFhY19yZWFkNjQKIHsKLQl1MzIJIAljb21tYW5kOwotCXUxNiAJCWNpZDsKLQl1MTYgCQlzZWN0b3JfY291bnQ7Ci0JdTMyIAkJYmxvY2s7Ci0JdTE2CQlwYWQ7Ci0JdTE2CQlmbGFnczsKKwlfX2xlMzIJIAljb21tYW5kOworCV9fbGUxNiAJCWNpZDsKKwlfX2xlMTYgCQlzZWN0b3JfY291bnQ7CisJX19sZTMyIAkJYmxvY2s7CisJX19sZTE2CQlwYWQ7CisJX19sZTE2CQlmbGFnczsKIAlzdHJ1Y3Qgc2dtYXA2NAlzZzsJLy8gTXVzdCBiZSBsYXN0IGluIHN0cnVjdCBiZWNhdXNlIGl0IGlzIHZhcmlhYmxlCiB9OwogCiBzdHJ1Y3QgYWFjX3JlYWRfcmVwbHkKIHsKLQl1MzIJIAlzdGF0dXM7Ci0JdTMyIAkJY291bnQ7CisJX19sZTMyCSAJc3RhdHVzOworCV9fbGUzMiAJCWNvdW50OwogfTsKIAogc3RydWN0IGFhY193cml0ZQogewotCXUzMgkJY29tbWFuZDsKLQl1MzIgCQljaWQ7Ci0JdTMyIAkJYmxvY2s7Ci0JdTMyIAkJY291bnQ7Ci0JdTMyCSAJc3RhYmxlOwkvLyBOb3QgdXNlZAorCV9fbGUzMgkJY29tbWFuZDsKKwlfX2xlMzIgCQljaWQ7CisJX19sZTMyIAkJYmxvY2s7CisJX19sZTMyIAkJY291bnQ7CisJX19sZTMyCSAJc3RhYmxlOwkvLyBOb3QgdXNlZAogCXN0cnVjdCBzZ21hcAlzZzsJLy8gTXVzdCBiZSBsYXN0IGluIHN0cnVjdCBiZWNhdXNlIGl0IGlzIHZhcmlhYmxlCiB9OwogCiBzdHJ1Y3QgYWFjX3dyaXRlNjQKIHsKLQl1MzIJIAljb21tYW5kOwotCXUxNiAJCWNpZDsKLQl1MTYgCQlzZWN0b3JfY291bnQ7Ci0JdTMyIAkJYmxvY2s7Ci0JdTE2CQlwYWQ7Ci0JdTE2CQlmbGFnczsKKwlfX2xlMzIJIAljb21tYW5kOworCV9fbGUxNiAJCWNpZDsKKwlfX2xlMTYgCQlzZWN0b3JfY291bnQ7CisJX19sZTMyIAkJYmxvY2s7CisJX19sZTE2CQlwYWQ7CisJX19sZTE2CQlmbGFnczsKIAlzdHJ1Y3Qgc2dtYXA2NAlzZzsJLy8gTXVzdCBiZSBsYXN0IGluIHN0cnVjdCBiZWNhdXNlIGl0IGlzIHZhcmlhYmxlCiB9Owogc3RydWN0IGFhY193cml0ZV9yZXBseQogewotCXUzMgkJc3RhdHVzOwotCXUzMiAJCWNvdW50OwotCXUzMgkJY29tbWl0dGVkOworCV9fbGUzMgkJc3RhdHVzOworCV9fbGUzMiAJCWNvdW50OworCV9fbGUzMgkJY29tbWl0dGVkOwogfTsKIAogI2RlZmluZSBDVF9GTFVTSF9DQUNIRSAxMjkKIHN0cnVjdCBhYWNfc3luY2hyb25pemUgewotCXUzMgkJY29tbWFuZDsJLyogVk1fQ29udGFpbmVyQ29uZmlnICovCi0JdTMyCQl0eXBlOwkJLyogQ1RfRkxVU0hfQ0FDSEUgKi8KLQl1MzIJCWNpZDsKLQl1MzIJCXBhcm0xOwotCXUzMgkJcGFybTI7Ci0JdTMyCQlwYXJtMzsKLQl1MzIJCXBhcm00OwotCXUzMgkJY291bnQ7CS8qIHNpemVvZigoKHN0cnVjdCBhYWNfc3luY2hyb25pemVfcmVwbHkgKilOVUxMKS0+ZGF0YSkgKi8KKwlfX2xlMzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLworCV9fbGUzMgkJdHlwZTsJCS8qIENUX0ZMVVNIX0NBQ0hFICovCisJX19sZTMyCQljaWQ7CisJX19sZTMyCQlwYXJtMTsKKwlfX2xlMzIJCXBhcm0yOworCV9fbGUzMgkJcGFybTM7CisJX19sZTMyCQlwYXJtNDsKKwlfX2xlMzIJCWNvdW50OwkvKiBzaXplb2YoKChzdHJ1Y3QgYWFjX3N5bmNocm9uaXplX3JlcGx5ICopTlVMTCktPmRhdGEpICovCiB9OwogCiBzdHJ1Y3QgYWFjX3N5bmNocm9uaXplX3JlcGx5IHsKLQl1MzIJCWR1bW15MDsKLQl1MzIJCWR1bW15MTsKLQl1MzIJCXN0YXR1czsJLyogQ1RfT0sgKi8KLQl1MzIJCXBhcm0xOwotCXUzMgkJcGFybTI7Ci0JdTMyCQlwYXJtMzsKLQl1MzIJCXBhcm00OwotCXUzMgkJcGFybTU7CisJX19sZTMyCQlkdW1teTA7CisJX19sZTMyCQlkdW1teTE7CisJX19sZTMyCQlzdGF0dXM7CS8qIENUX09LICovCisJX19sZTMyCQlwYXJtMTsKKwlfX2xlMzIJCXBhcm0yOworCV9fbGUzMgkJcGFybTM7CisJX19sZTMyCQlwYXJtNDsKKwlfX2xlMzIJCXBhcm01OwogCXU4CQlkYXRhWzE2XTsKIH07CiAKIHN0cnVjdCBhYWNfc3JiCiB7CisJX19sZTMyCQlmdW5jdGlvbjsKKwlfX2xlMzIJCWNoYW5uZWw7CisJX19sZTMyCQlpZDsKKwlfX2xlMzIJCWx1bjsKKwlfX2xlMzIJCXRpbWVvdXQ7CisJX19sZTMyCQlmbGFnczsKKwlfX2xlMzIJCWNvdW50OwkJLy8gRGF0YSB4ZmVyIHNpemUKKwlfX2xlMzIJCXJldHJ5X2xpbWl0OworCV9fbGUzMgkJY2RiX3NpemU7CisJdTgJCWNkYlsxNl07CisJc3RydWN0CXNnbWFwCXNnOworfTsKKworLyoKKyAqIFRoaXMgYW5kIGFzc29jYXRlZCBkYXRhIHN0cnVjdHMgYXJlIHVzZWQgYnkgdGhlIAorICogaW9jdGwgY2FsbGVyIGFuZCBhcmUgaW4gY3B1IG9yZGVyLgorICovCitzdHJ1Y3QgdXNlcl9hYWNfc3JiCit7CiAJdTMyCQlmdW5jdGlvbjsKIAl1MzIJCWNoYW5uZWw7CiAJdTMyCQlpZDsKQEAgLTExMDMsMjAgKzExOTEsMTggQEAKIAl1MzIJCXJldHJ5X2xpbWl0OwogCXUzMgkJY2RiX3NpemU7CiAJdTgJCWNkYlsxNl07Ci0Jc3RydWN0CXNnbWFwCXNnOworCXN0cnVjdAl1c2VyX3NnbWFwCXNnOwogfTsKIAotCi0KICNkZWZpbmUJCUFBQ19TRU5TRV9CVUZGRVJTSVpFCSAzMAogCiBzdHJ1Y3QgYWFjX3NyYl9yZXBseQogewotCXUzMgkJc3RhdHVzOwotCXUzMgkJc3JiX3N0YXR1czsKLQl1MzIJCXNjc2lfc3RhdHVzOwotCXUzMgkJZGF0YV94ZmVyX2xlbmd0aDsKLQl1MzIJCXNlbnNlX2RhdGFfc2l6ZTsKKwlfX2xlMzIJCXN0YXR1czsKKwlfX2xlMzIJCXNyYl9zdGF0dXM7CisJX19sZTMyCQlzY3NpX3N0YXR1czsKKwlfX2xlMzIJCWRhdGFfeGZlcl9sZW5ndGg7CisJX19sZTMyCQlzZW5zZV9kYXRhX3NpemU7CiAJdTgJCXNlbnNlX2RhdGFbQUFDX1NFTlNFX0JVRkZFUlNJWkVdOyAvLyBDYW4gdGhpcyBiZSBTQ1NJX1NFTlNFX0JVRkZFUlNJWkUKIH07CiAvKgpAQCAtMTIyMywxNCArMTMwOSwxNCBAQAogICovCiAKIHN0cnVjdCBhYWNfZnNpbmZvIHsKLQl1MzIgIGZzVG90YWxTaXplOwkvKiBDb25zdW1lZCBieSBmcywgaW5jbC4gbWV0YWRhdGEgKi8KLQl1MzIgIGZzQmxvY2tTaXplOwotCXUzMiAgZnNGcmFnU2l6ZTsKLQl1MzIgIGZzTWF4RXh0ZW5kU2l6ZTsKLQl1MzIgIGZzU3BhY2VVbml0czsKLQl1MzIgIGZzTWF4TnVtRmlsZXM7Ci0JdTMyICBmc051bUZyZWVGaWxlczsKLQl1MzIgIGZzSW5vZGVEZW5zaXR5OworCV9fbGUzMiAgZnNUb3RhbFNpemU7CS8qIENvbnN1bWVkIGJ5IGZzLCBpbmNsLiBtZXRhZGF0YSAqLworCV9fbGUzMiAgZnNCbG9ja1NpemU7CisJX19sZTMyICBmc0ZyYWdTaXplOworCV9fbGUzMiAgZnNNYXhFeHRlbmRTaXplOworCV9fbGUzMiAgZnNTcGFjZVVuaXRzOworCV9fbGUzMiAgZnNNYXhOdW1GaWxlczsKKwlfX2xlMzIgIGZzTnVtRnJlZUZpbGVzOworCV9fbGUzMiAgZnNJbm9kZURlbnNpdHk7CiB9OwkvKiB2YWxpZCBpZmYgT2JqVHlwZSA9PSBGVF9GSUxFU1lTICYmICEoQ29udGVudFN0YXRlICYgRlNDU19OT1RDTEVBTikgKi8KIAogdW5pb24gYWFjX2NvbnRlbnRpbmZvIHsKQEAgLTEyNDMsMzIgKzEzMjksMzIgQEAKIAogI2RlZmluZSBDVF9HRVRfQ09ORklHX1NUQVRVUyAxNDcKIHN0cnVjdCBhYWNfZ2V0X2NvbmZpZ19zdGF0dXMgewotCXUzMgkJY29tbWFuZDsJLyogVk1fQ29udGFpbmVyQ29uZmlnICovCi0JdTMyCQl0eXBlOwkJLyogQ1RfR0VUX0NPTkZJR19TVEFUVVMgKi8KLQl1MzIJCXBhcm0xOwotCXUzMgkJcGFybTI7Ci0JdTMyCQlwYXJtMzsKLQl1MzIJCXBhcm00OwotCXUzMgkJcGFybTU7Ci0JdTMyCQljb3VudDsJLyogc2l6ZW9mKCgoc3RydWN0IGFhY19nZXRfY29uZmlnX3N0YXR1c19yZXNwICopTlVMTCktPmRhdGEpICovCisJX19sZTMyCQljb21tYW5kOwkvKiBWTV9Db250YWluZXJDb25maWcgKi8KKwlfX2xlMzIJCXR5cGU7CQkvKiBDVF9HRVRfQ09ORklHX1NUQVRVUyAqLworCV9fbGUzMgkJcGFybTE7CisJX19sZTMyCQlwYXJtMjsKKwlfX2xlMzIJCXBhcm0zOworCV9fbGUzMgkJcGFybTQ7CisJX19sZTMyCQlwYXJtNTsKKwlfX2xlMzIJCWNvdW50OwkvKiBzaXplb2YoKChzdHJ1Y3QgYWFjX2dldF9jb25maWdfc3RhdHVzX3Jlc3AgKilOVUxMKS0+ZGF0YSkgKi8KIH07CiAKICNkZWZpbmUgQ0ZBQ1RfQ09OVElOVUUgMAogI2RlZmluZSBDRkFDVF9QQVVTRSAgICAxCiAjZGVmaW5lIENGQUNUX0FCT1JUICAgIDIKIHN0cnVjdCBhYWNfZ2V0X2NvbmZpZ19zdGF0dXNfcmVzcCB7Ci0JdTMyCQlyZXNwb25zZTsgLyogU1RfT0sgKi8KLQl1MzIJCWR1bW15MDsKLQl1MzIJCXN0YXR1czsJLyogQ1RfT0sgKi8KLQl1MzIJCXBhcm0xOwotCXUzMgkJcGFybTI7Ci0JdTMyCQlwYXJtMzsKLQl1MzIJCXBhcm00OwotCXUzMgkJcGFybTU7CisJX19sZTMyCQlyZXNwb25zZTsgLyogU1RfT0sgKi8KKwlfX2xlMzIJCWR1bW15MDsKKwlfX2xlMzIJCXN0YXR1czsJLyogQ1RfT0sgKi8KKwlfX2xlMzIJCXBhcm0xOworCV9fbGUzMgkJcGFybTI7CisJX19sZTMyCQlwYXJtMzsKKwlfX2xlMzIJCXBhcm00OworCV9fbGUzMgkJcGFybTU7CiAJc3RydWN0IHsKLQkJdTMyCWFjdGlvbjsgLyogQ0ZBQ1RfQ09OVElOVUUsIENGQUNUX1BBVVNFIG9yIENGQUNUX0FCT1JUICovCi0JCXUxNglmbGFnczsKLQkJczE2CWNvdW50OworCQlfX2xlMzIJYWN0aW9uOyAvKiBDRkFDVF9DT05USU5VRSwgQ0ZBQ1RfUEFVU0Ugb3IgQ0ZBQ1RfQUJPUlQgKi8KKwkJX19sZTE2CWZsYWdzOworCQlfX2xlMTYJY291bnQ7CiAJfQkJZGF0YTsKIH07CiAKQEAgLTEyNzksMjYgKzEzNjUsMjYgQEAKICNkZWZpbmUgQ1RfQ09NTUlUX0NPTkZJRyAxNTIKIAogc3RydWN0IGFhY19jb21taXRfY29uZmlnIHsKLQl1MzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLwotCXUzMgkJdHlwZTsJCS8qIENUX0NPTU1JVF9DT05GSUcgKi8KKwlfX2xlMzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLworCV9fbGUzMgkJdHlwZTsJCS8qIENUX0NPTU1JVF9DT05GSUcgKi8KIH07CiAKIC8qCi0gKglRdWVyeSBmb3IgQ29udGFpbmVyIENvbmZpZ3VyYXRpb24gQ291bnQKKyAqCVF1ZXJ5IGZvciBDb250YWluZXIgQ29uZmlndXJhdGlvbiBTdGF0dXMKICAqLwogCiAjZGVmaW5lIENUX0dFVF9DT05UQUlORVJfQ09VTlQgNAogc3RydWN0IGFhY19nZXRfY29udGFpbmVyX2NvdW50IHsKLQl1MzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLwotCXUzMgkJdHlwZTsJCS8qIENUX0dFVF9DT05UQUlORVJfQ09VTlQgKi8KKwlfX2xlMzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLworCV9fbGUzMgkJdHlwZTsJCS8qIENUX0dFVF9DT05UQUlORVJfQ09VTlQgKi8KIH07CiAKIHN0cnVjdCBhYWNfZ2V0X2NvbnRhaW5lcl9jb3VudF9yZXNwIHsKLQl1MzIJCXJlc3BvbnNlOyAvKiBTVF9PSyAqLwotCXUzMgkJZHVtbXkwOwotCXUzMgkJTWF4Q29udGFpbmVyczsKLQl1MzIJCUNvbnRhaW5lclN3aXRjaEVudHJpZXM7Ci0JdTMyCQlNYXhQYXJ0aXRpb25zOworCV9fbGUzMgkJcmVzcG9uc2U7IC8qIFNUX09LICovCisJX19sZTMyCQlkdW1teTA7CisJX19sZTMyCQlNYXhDb250YWluZXJzOworCV9fbGUzMgkJQ29udGFpbmVyU3dpdGNoRW50cmllczsKKwlfX2xlMzIJCU1heFBhcnRpdGlvbnM7CiB9OwogCiAKQEAgLTEzMDgsMTUgKzEzOTQsMTkgQEAKICAqLwogCiBzdHJ1Y3QgYWFjX21udGVudCB7Ci0JdTMyICAgIAkJCW9pZDsKLQl1OAkJCW5hbWVbMTZdOwkvLyBpZiBhcHBsaWNhYmxlCi0Jc3RydWN0IGNyZWF0aW9uX2luZm8JY3JlYXRlX2luZm87CS8vIGlmIGFwcGxpY2FibGUKLQl1MzIJCQljYXBhY2l0eTsKLQl1MzIJCQl2b2w7ICAgIAkvLyBzdWJzdHJhdGUgc3RydWN0dXJlCi0JdTMyCQkJb2JqOwkgICAgICAgIC8vIEZUX0ZJTEVTWVMsIEZUX0RBVEFCQVNFLCBldGMuCi0JdTMyCQkJc3RhdGU7CQkvLyB1bnJlYWR5IGZvciBtb3VudGluZywgcmVhZG9ubHksIGV0Yy4KLQl1bmlvbiBhYWNfY29udGVudGluZm8JZmlsZWluZm87CS8vIEluZm8gc3BlY2lmaWMgdG8gY29udGVudCBtYW5hZ2VyIChlZywgZmlsZXN5c3RlbSkKLQl1MzIJCQlhbHRvaWQ7CQkvLyAhPSBvaWQgPD09PiBzbmFwc2hvdCBvciBicm9rZW4gbWlycm9yIGV4aXN0cworCV9fbGUzMiAgICAJCW9pZDsKKwl1OAkJCW5hbWVbMTZdOwkvKiBpZiBhcHBsaWNhYmxlICovCisJc3RydWN0IGNyZWF0aW9uX2luZm8JY3JlYXRlX2luZm87CS8qIGlmIGFwcGxpY2FibGUgKi8KKwlfX2xlMzIJCQljYXBhY2l0eTsKKwlfX2xlMzIJCQl2b2w7ICAgIAkvKiBzdWJzdHJhdGUgc3RydWN0dXJlICovCisJX19sZTMyCQkJb2JqOwkgICAgICAgIC8qIEZUX0ZJTEVTWVMsIAorCQkJCQkJICAgRlRfREFUQUJBU0UsIGV0Yy4gKi8KKwlfX2xlMzIJCQlzdGF0ZTsJCS8qIHVucmVhZHkgZm9yIG1vdW50aW5nLCAKKwkJCQkJCSAgIHJlYWRvbmx5LCBldGMuICovCisJdW5pb24gYWFjX2NvbnRlbnRpbmZvCWZpbGVpbmZvOwkvKiBJbmZvIHNwZWNpZmljIHRvIGNvbnRlbnQgCisJCQkJCQkgICBtYW5hZ2VyIChlZywgZmlsZXN5c3RlbSkgKi8KKwlfX2xlMzIJCQlhbHRvaWQ7CQkvKiAhPSBvaWQgPD09PiBzbmFwc2hvdCBvciAKKwkJCQkJCSAgIGJyb2tlbiBtaXJyb3IgZXhpc3RzICovCiB9OwogCiAjZGVmaW5lIEZTQ1NfTk9UQ0xFQU4JMHgwMDAxICAvKiBmc2NrIGlzIG5lY2Nlc3NhcnkgYmVmb3JlIG1vdW50aW5nICovCkBAIC0xMzI0LDQwICsxNDE0LDQwIEBACiAjZGVmaW5lIEZTQ1NfSElEREVOCTB4MDAwNAkvKiBzaG91bGQgYmUgaWdub3JlZCAtIHNldCBkdXJpbmcgYSBjbGVhciAqLwogCiBzdHJ1Y3QgYWFjX3F1ZXJ5X21vdW50IHsKLQl1MzIJCWNvbW1hbmQ7Ci0JdTMyCQl0eXBlOwotCXUzMgkJY291bnQ7CisJX19sZTMyCQljb21tYW5kOworCV9fbGUzMgkJdHlwZTsKKwlfX2xlMzIJCWNvdW50OwogfTsKIAogc3RydWN0IGFhY19tb3VudCB7Ci0JdTMyCQlzdGF0dXM7Ci0JdTMyCSAgIAl0eXBlOyAgICAgICAgICAgLyogc2hvdWxkIGJlIHNhbWUgYXMgdGhhdCByZXF1ZXN0ZWQgKi8KLQl1MzIJCWNvdW50OworCV9fbGUzMgkJc3RhdHVzOworCV9fbGUzMgkgICAJdHlwZTsgICAgICAgICAgIC8qIHNob3VsZCBiZSBzYW1lIGFzIHRoYXQgcmVxdWVzdGVkICovCisJX19sZTMyCQljb3VudDsKIAlzdHJ1Y3QgYWFjX21udGVudCBtbnRbMV07CiB9OwogCiAjZGVmaW5lIENUX1JFQURfTkFNRSAxMzAKIHN0cnVjdCBhYWNfZ2V0X25hbWUgewotCXUzMgkJY29tbWFuZDsJLyogVk1fQ29udGFpbmVyQ29uZmlnICovCi0JdTMyCQl0eXBlOwkJLyogQ1RfUkVBRF9OQU1FICovCi0JdTMyCQljaWQ7Ci0JdTMyCQlwYXJtMTsKLQl1MzIJCXBhcm0yOwotCXUzMgkJcGFybTM7Ci0JdTMyCQlwYXJtNDsKLQl1MzIJCWNvdW50OwkvKiBzaXplb2YoKChzdHJ1Y3QgYWFjX2dldF9uYW1lX3Jlc3AgKilOVUxMKS0+ZGF0YSkgKi8KKwlfX2xlMzIJCWNvbW1hbmQ7CS8qIFZNX0NvbnRhaW5lckNvbmZpZyAqLworCV9fbGUzMgkJdHlwZTsJCS8qIENUX1JFQURfTkFNRSAqLworCV9fbGUzMgkJY2lkOworCV9fbGUzMgkJcGFybTE7CisJX19sZTMyCQlwYXJtMjsKKwlfX2xlMzIJCXBhcm0zOworCV9fbGUzMgkJcGFybTQ7CisJX19sZTMyCQljb3VudDsJLyogc2l6ZW9mKCgoc3RydWN0IGFhY19nZXRfbmFtZV9yZXNwICopTlVMTCktPmRhdGEpICovCiB9OwogCiAjZGVmaW5lIENUX09LICAgICAgICAyMTgKIHN0cnVjdCBhYWNfZ2V0X25hbWVfcmVzcCB7Ci0JdTMyCQlkdW1teTA7Ci0JdTMyCQlkdW1teTE7Ci0JdTMyCQlzdGF0dXM7CS8qIENUX09LICovCi0JdTMyCQlwYXJtMTsKLQl1MzIJCXBhcm0yOwotCXUzMgkJcGFybTM7Ci0JdTMyCQlwYXJtNDsKLQl1MzIJCXBhcm01OworCV9fbGUzMgkJZHVtbXkwOworCV9fbGUzMgkJZHVtbXkxOworCV9fbGUzMgkJc3RhdHVzOwkvKiBDVF9PSyAqLworCV9fbGUzMgkJcGFybTE7CisJX19sZTMyCQlwYXJtMjsKKwlfX2xlMzIJCXBhcm0zOworCV9fbGUzMgkJcGFybTQ7CisJX19sZTMyCQlwYXJtNTsKIAl1OAkJZGF0YVsxNl07CiB9OwogCkBAIC0xMzY2LDggKzE0NTYsOCBAQAogICovCiAKIHN0cnVjdCBhYWNfY2xvc2UgewotCXUzMgljb21tYW5kOwotCXUzMgljaWQ7CisJX19sZTMyCWNvbW1hbmQ7CisJX19sZTMyCWNpZDsKIH07CiAKIHN0cnVjdCBhYWNfcXVlcnlfZGlzawpAQCAtMTQzNCw2ICsxNTI0LDcgQEAKICNkZWZpbmUgRlNBQ1RMX0dFVF9QQ0lfSU5GTyAgICAgICAgICAgICAgIAlDVExfQ09ERSgyMTE5LCBNRVRIT0RfQlVGRkVSRUQpCiAjZGVmaW5lIEZTQUNUTF9GT1JDRV9ERUxFVEVfRElTSwkJQ1RMX0NPREUoMjEyMCwgTUVUSE9EX05FSVRIRVIpCiAjZGVmaW5lIEZTQUNUTF9HRVRfQ09OVEFJTkVSUwkJCTIxMzEKKyNkZWZpbmUgRlNBQ1RMX1NFTkRfTEFSR0VfRklCCQkJQ1RMX0NPREUoMjEzOCwgTUVUSE9EX0JVRkZFUkVEKQogCiAKIHN0cnVjdCBhYWNfY29tbW9uCkBAIC0xNTczLDggKzE2NjQsOCBAQAogICovCiAKIHN0cnVjdCBhYWNfYWlmY21kIHsKLQl1MzIgY29tbWFuZDsJCS8qIFRlbGwgaG9zdCB3aGF0IHR5cGUgb2Ygbm90aWZ5IHRoaXMgaXMgKi8KLQl1MzIgc2VxbnVtOwkJLyogVG8gYWxsb3cgb3JkZXJpbmcgb2YgcmVwb3J0cyAoaWYgbmVjZXNzYXJ5KSAqLworCV9fbGUzMiBjb21tYW5kOwkJLyogVGVsbCBob3N0IHdoYXQgdHlwZSBvZiBub3RpZnkgdGhpcyBpcyAqLworCV9fbGUzMiBzZXFudW07CQkvKiBUbyBhbGxvdyBvcmRlcmluZyBvZiByZXBvcnRzIChpZiBuZWNlc3NhcnkpICovCiAJdTggZGF0YVsxXTsJCS8qIFVuZGVmaW5lZCBsZW5ndGggKGZyb20ga2VybmVsIHZpZXdwb2ludCkgKi8KIH07CiAKQEAgLTE1OTcsNyArMTY4OCw2IEBACiB2b2lkIGZpYl9tYXBfZnJlZShzdHJ1Y3QgYWFjX2RldiAqZGV2KTsKIHZvaWQgZmliX2ZyZWUoc3RydWN0IGZpYiAqIGNvbnRleHQpOwogdm9pZCBmaWJfaW5pdChzdHJ1Y3QgZmliICogY29udGV4dCk7Ci12b2lkIGZpYl9kZWFsbG9jKHN0cnVjdCBmaWIgKiBjb250ZXh0KTsKIHZvaWQgYWFjX3ByaW50ZihzdHJ1Y3QgYWFjX2RldiAqZGV2LCB1MzIgdmFsKTsKIGludCBmaWJfc2VuZCh1MTYgY29tbWFuZCwgc3RydWN0IGZpYiAqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IHByaW9yaXR5LCBpbnQgd2FpdCwgaW50IHJlcGx5LCBmaWJfY2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmN0eHQpOwogaW50IGFhY19jb25zdW1lcl9nZXQoc3RydWN0IGFhY19kZXYgKiBkZXYsIHN0cnVjdCBhYWNfcXVldWUgKiBxLCBzdHJ1Y3QgYWFjX2VudHJ5ICoqZW50cnkpOwpAQCAtMTYyMSwzICsxNzExLDUgQEAKIHN0cnVjdCBhYWNfZHJpdmVyX2lkZW50KiBhYWNfZ2V0X2RyaXZlcl9pZGVudChpbnQgZGV2dHlwZSk7CiBpbnQgYWFjX2dldF9hZGFwdGVyX2luZm8oc3RydWN0IGFhY19kZXYqIGRldik7CiBpbnQgYWFjX3NlbmRfc2h1dGRvd24oc3RydWN0IGFhY19kZXYgKmRldik7CitleHRlcm4gaW50IG51bWFjYjsKK2V4dGVybiBpbnQgYWNic2l6ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1jdHJsLmMgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tY3RybC5jCmluZGV4IDMwZGQxZjcuLjFmZWY5MmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1jdHJsLmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbWN0cmwuYwpAQCAtNTEsMTUgKzUxLDIyIEBACiAgKglUaGlzIHJvdXRpbmUgc2VuZHMgYSBmaWIgdG8gdGhlIGFkYXB0ZXIgb24gYmVoYWxmIG9mIGEgdXNlciBsZXZlbAogICoJcHJvZ3JhbS4KICAqLworIyBkZWZpbmUgQUFDX0RFQlVHX1BSRUFNQkxFCUtFUk5fSU5GTworIyBkZWZpbmUgQUFDX0RFQlVHX1BPU1RBTUJMRQogIAogc3RhdGljIGludCBpb2N0bF9zZW5kX2ZpYihzdHJ1Y3QgYWFjX2RldiAqIGRldiwgdm9pZCBfX3VzZXIgKmFyZykKIHsKIAlzdHJ1Y3QgaHdfZmliICoga2ZpYjsKIAlzdHJ1Y3QgZmliICpmaWJwdHI7CisJc3RydWN0IGh3X2ZpYiAqIGh3X2ZpYiA9IChzdHJ1Y3QgaHdfZmliICopMDsKKwlkbWFfYWRkcl90IGh3X2ZpYl9wYSA9IChkbWFfYWRkcl90KTBMTDsKKwl1bnNpZ25lZCBzaXplOworCWludCByZXR2YWw7CiAKIAlmaWJwdHIgPSBmaWJfYWxsb2MoZGV2KTsKLQlpZihmaWJwdHIgPT0gTlVMTCkKKwlpZihmaWJwdHIgPT0gTlVMTCkgewogCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAJCQogCWtmaWIgPSBmaWJwdHItPmh3X2ZpYjsKIAkvKgpAQCAtNzQsMTkgKzgxLDI0IEBACiAJICoJd2lsbCBub3Qgb3ZlcnJ1biB0aGUgYnVmZmVyIHdoZW4gd2UgY29weSB0aGUgbWVtb3J5LiBSZXR1cm4KIAkgKglhbiBlcnJvciBpZiB3ZSB3b3VsZC4KIAkgKi8KLQlpZiAobGUxNl90b19jcHUoa2ZpYi0+aGVhZGVyLlNpemUpID4gCi0JCQlzaXplb2Yoc3RydWN0IGh3X2ZpYikgLSBzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpKSB7Ci0JCWZpYl9mcmVlKGZpYnB0cik7Ci0JCXJldHVybiAtRUlOVkFMOworCXNpemUgPSBsZTE2X3RvX2NwdShrZmliLT5oZWFkZXIuU2l6ZSkgKyBzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpOworCWlmIChzaXplIDwgbGUxNl90b19jcHUoa2ZpYi0+aGVhZGVyLlNlbmRlclNpemUpKQorCQlzaXplID0gbGUxNl90b19jcHUoa2ZpYi0+aGVhZGVyLlNlbmRlclNpemUpOworCWlmIChzaXplID4gZGV2LT5tYXhfZmliX3NpemUpIHsKKwkJLyogSGlnaGphY2sgdGhlIGh3X2ZpYiAqLworCQlod19maWIgPSBmaWJwdHItPmh3X2ZpYjsKKwkJaHdfZmliX3BhID0gZmlicHRyLT5od19maWJfcGE7CisJCWZpYnB0ci0+aHdfZmliID0ga2ZpYiA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGRldi0+cGRldiwgc2l6ZSwgJmZpYnB0ci0+aHdfZmliX3BhKTsKKwkJbWVtc2V0KCgoY2hhciAqKWtmaWIpICsgZGV2LT5tYXhfZmliX3NpemUsIDAsIHNpemUgLSBkZXYtPm1heF9maWJfc2l6ZSk7CisJCW1lbWNweShrZmliLCBod19maWIsIGRldi0+bWF4X2ZpYl9zaXplKTsKIAl9CiAKLQlpZiAoY29weV9mcm9tX3VzZXIoa2ZpYiwgYXJnLCBsZTE2X3RvX2NwdShrZmliLT5oZWFkZXIuU2l6ZSkgKwotCQkJCXNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikpKSB7Ci0JCWZpYl9mcmVlKGZpYnB0cik7Ci0JCXJldHVybiAtRUZBVUxUOworCWlmIChjb3B5X2Zyb21fdXNlcihrZmliLCBhcmcsIHNpemUpKSB7CisJCXJldHZhbCA9IC1FRkFVTFQ7CisJCWdvdG8gY2xlYW51cDsKIAl9CiAKLQlpZiAoa2ZpYi0+aGVhZGVyLkNvbW1hbmQgPT0gY3B1X3RvX2xlMzIoVGFrZUFCcmVha1B0KSkgeworCWlmIChrZmliLT5oZWFkZXIuQ29tbWFuZCA9PSBjcHVfdG9fbGUxNihUYWtlQUJyZWFrUHQpKSB7CiAJCWFhY19hZGFwdGVyX2ludGVycnVwdChkZXYpOwogCQkvKgogCQkgKiBTaW5jZSB3ZSBkaWRuJ3QgcmVhbGx5IHNlbmQgYSBmaWIsIHplcm8gb3V0IHRoZSBzdGF0ZSB0byBhbGxvdyAKQEAgLTk0LDE2ICsxMDYsMTUgQEAKIAkJICovCiAJCWtmaWItPmhlYWRlci5YZmVyU3RhdGUgPSAwOwogCX0gZWxzZSB7Ci0JCWludCByZXR2YWwgPSBmaWJfc2VuZChrZmliLT5oZWFkZXIuQ29tbWFuZCwgZmlicHRyLAorCQlyZXR2YWwgPSBmaWJfc2VuZChsZTE2X3RvX2NwdShrZmliLT5oZWFkZXIuQ29tbWFuZCksIGZpYnB0ciwKIAkJCQlsZTE2X3RvX2NwdShrZmliLT5oZWFkZXIuU2l6ZSkgLCBGc2FOb3JtYWwsCiAJCQkJMSwgMSwgTlVMTCwgTlVMTCk7CiAJCWlmIChyZXR2YWwpIHsKLQkJCWZpYl9mcmVlKGZpYnB0cik7Ci0JCQlyZXR1cm4gcmV0dmFsOworCQkJZ290byBjbGVhbnVwOwogCQl9CiAJCWlmIChmaWJfY29tcGxldGUoZmlicHRyKSAhPSAwKSB7Ci0JCQlmaWJfZnJlZShmaWJwdHIpOwotCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlyZXR2YWwgPSAtRUlOVkFMOworCQkJZ290byBjbGVhbnVwOwogCQl9CiAJfQogCS8qCkBAIC0xMTQsMTIgKzEyNSwxNyBAQAogCSAqCXdhcyBhbHJlYWR5IGluY2x1ZGVkIGJ5IHRoZSBhZGFwdGVyLikKIAkgKi8KIAotCWlmIChjb3B5X3RvX3VzZXIoYXJnLCAodm9pZCAqKWtmaWIsIGtmaWItPmhlYWRlci5TaXplKSkgewotCQlmaWJfZnJlZShmaWJwdHIpOwotCQlyZXR1cm4gLUVGQVVMVDsKKwlyZXR2YWwgPSAwOworCWlmIChjb3B5X3RvX3VzZXIoYXJnLCAodm9pZCAqKWtmaWIsIHNpemUpKQorCQlyZXR2YWwgPSAtRUZBVUxUOworY2xlYW51cDoKKwlpZiAoaHdfZmliKSB7CisJCXBjaV9mcmVlX2NvbnNpc3RlbnQoZGV2LT5wZGV2LCBzaXplLCBrZmliLCBmaWJwdHItPmh3X2ZpYl9wYSk7CisJCWZpYnB0ci0+aHdfZmliX3BhID0gaHdfZmliX3BhOworCQlmaWJwdHItPmh3X2ZpYiA9IGh3X2ZpYjsKIAl9CiAJZmliX2ZyZWUoZmlicHRyKTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiAvKioKQEAgLTM5MSwyNiArNDA3LDI4IEBACiAJc3RydWN0IHJldmlzaW9uIHJlc3BvbnNlOwogCiAJcmVzcG9uc2UuY29tcGF0ID0gMTsKLQlyZXNwb25zZS52ZXJzaW9uID0gZGV2LT5hZGFwdGVyX2luZm8ua2VybmVscmV2OwotCXJlc3BvbnNlLmJ1aWxkID0gZGV2LT5hZGFwdGVyX2luZm8ua2VybmVsYnVpbGQ7CisJcmVzcG9uc2UudmVyc2lvbiA9IGxlMzJfdG9fY3B1KGRldi0+YWRhcHRlcl9pbmZvLmtlcm5lbHJldik7CisJcmVzcG9uc2UuYnVpbGQgPSBsZTMyX3RvX2NwdShkZXYtPmFkYXB0ZXJfaW5mby5rZXJuZWxidWlsZCk7CiAKIAlpZiAoY29weV90b191c2VyKGFyZywgJnJlc3BvbnNlLCBzaXplb2YocmVzcG9uc2UpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJcmV0dXJuIDA7CiB9CiAKKwogLyoqCiAgKgogICogYWFjX3NlbmRfcmF3X3NjYgogICoKICAqLwogCi1pbnQgYWFjX3NlbmRfcmF3X3NyYihzdHJ1Y3QgYWFjX2RldiogZGV2LCB2b2lkIF9fdXNlciAqIGFyZykKK3N0YXRpYyBpbnQgYWFjX3NlbmRfcmF3X3NyYihzdHJ1Y3QgYWFjX2RldiogZGV2LCB2b2lkIF9fdXNlciAqIGFyZykKIHsKIAlzdHJ1Y3QgZmliKiBzcmJmaWI7CiAJaW50IHN0YXR1czsKLQlzdHJ1Y3QgYWFjX3NyYiAqc3JiY21kOwotCXN0cnVjdCBhYWNfc3JiIF9fdXNlciAqdXNlcl9zcmIgPSBhcmc7CisJc3RydWN0IGFhY19zcmIgKnNyYmNtZCA9IE5VTEw7CisJc3RydWN0IHVzZXJfYWFjX3NyYiAqdXNlcl9zcmJjbWQgPSBOVUxMOworCXN0cnVjdCB1c2VyX2FhY19zcmIgX191c2VyICp1c2VyX3NyYiA9IGFyZzsKIAlzdHJ1Y3QgYWFjX3NyYl9yZXBseSBfX3VzZXIgKnVzZXJfcmVwbHk7CiAJc3RydWN0IGFhY19zcmJfcmVwbHkqIHJlcGx5OwogCXUzMiBmaWJzaXplID0gMDsKQEAgLTQyNiw1MCArNDQ0LDU5IEBACiAKIAogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSl7Ci0JCXByaW50ayhLRVJOX0RFQlVHImFhY3JhaWQ6IE5vIHBlcm1pc3Npb24gdG8gc2VuZCByYXcgc3JiXG4iKTsgCisJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogTm8gcGVybWlzc2lvbiB0byBzZW5kIHJhdyBzcmJcbiIpKTsgCiAJCXJldHVybiAtRVBFUk07CiAJfQogCS8qCiAJICoJQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBGaWIgdGhlbiBzZXR1cCBhIEJsb2NrV3JpdGUgY29tbWFuZAogCSAqLwogCWlmICghKHNyYmZpYiA9IGZpYl9hbGxvYyhkZXYpKSkgewotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAlmaWJfaW5pdChzcmJmaWIpOwogCiAJc3JiY21kID0gKHN0cnVjdCBhYWNfc3JiKikgZmliX2RhdGEoc3JiZmliKTsKIAorCW1lbXNldChzZ19saXN0LCAwLCBzaXplb2Yoc2dfbGlzdCkpOyAvKiBjbGVhbnVwIG1heSB0YWtlIGlzc3VlICovCiAJaWYoY29weV9mcm9tX3VzZXIoJmZpYnNpemUsICZ1c2VyX3NyYi0+Y291bnQsc2l6ZW9mKHUzMikpKXsKLQkJcHJpbnRrKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGNvcHkgZGF0YSBzaXplIGZyb20gdXNlclxuIik7IAorCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IGRhdGEgc2l6ZSBmcm9tIHVzZXJcbiIpKTsgCiAJCXJjb2RlID0gLUVGQVVMVDsKIAkJZ290byBjbGVhbnVwOwogCX0KIAotCWlmIChmaWJzaXplID4gRklCX0RBVEFfU0laRV9JTl9CWVRFUykgeworCWlmIChmaWJzaXplID4gKGRldi0+bWF4X2ZpYl9zaXplIC0gc2l6ZW9mKHN0cnVjdCBhYWNfZmliaGRyKSkpIHsKIAkJcmNvZGUgPSAtRUlOVkFMOwogCQlnb3RvIGNsZWFudXA7CiAJfQogCi0JaWYoY29weV9mcm9tX3VzZXIoc3JiY21kLCB1c2VyX3NyYixmaWJzaXplKSl7Ci0JCXByaW50ayhLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHNyYiBmcm9tIHVzZXJcbiIpOyAKKwl1c2VyX3NyYmNtZCA9IGttYWxsb2MoR0ZQX0tFUk5FTCwgZmlic2l6ZSk7CisJaWYgKCF1c2VyX3NyYmNtZCkgeworCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBtYWtlIGEgY29weSBvZiB0aGUgc3JiXG4iKSk7CisJCXJjb2RlID0gLUVOT01FTTsKKwkJZ290byBjbGVhbnVwOworCX0KKwlpZihjb3B5X2Zyb21fdXNlcih1c2VyX3NyYmNtZCwgdXNlcl9zcmIsZmlic2l6ZSkpeworCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHNyYiBmcm9tIHVzZXJcbiIpKTsgCiAJCXJjb2RlID0gLUVGQVVMVDsKIAkJZ290byBjbGVhbnVwOwogCX0KIAogCXVzZXJfcmVwbHkgPSBhcmcrZmlic2l6ZTsKIAotCWZsYWdzID0gc3JiY21kLT5mbGFnczsKKwlmbGFncyA9IHVzZXJfc3JiY21kLT5mbGFnczsgLyogZnJvbSB1c2VyIGluIGNwdSBvcmRlciAqLwogCS8vIEZpeCB1cCBzcmIgZm9yIGVuZGlhbiBhbmQgZm9yY2Ugc29tZSB2YWx1ZXMKKwogCXNyYmNtZC0+ZnVuY3Rpb24gPSBjcHVfdG9fbGUzMihTUkJGX0V4ZWN1dGVTY3NpKTsJLy8gRm9yY2UgdGhpcwotCXNyYmNtZC0+Y2hhbm5lbCAgPSBjcHVfdG9fbGUzMihzcmJjbWQtPmNoYW5uZWwpOwotCXNyYmNtZC0+aWQJID0gY3B1X3RvX2xlMzIoc3JiY21kLT5pZCk7Ci0Jc3JiY21kLT5sdW4gICAgICA9IGNwdV90b19sZTMyKHNyYmNtZC0+bHVuKTsKLQlzcmJjbWQtPmZsYWdzICAgID0gY3B1X3RvX2xlMzIoc3JiY21kLT5mbGFncyk7Ci0Jc3JiY21kLT50aW1lb3V0ICA9IGNwdV90b19sZTMyKHNyYmNtZC0+dGltZW91dCk7Ci0Jc3JiY21kLT5yZXRyeV9saW1pdCA9Y3B1X3RvX2xlMzIoMCk7IC8vIE9ic29sZXRlIHBhcmFtZXRlcgotCXNyYmNtZC0+Y2RiX3NpemUgPSBjcHVfdG9fbGUzMihzcmJjbWQtPmNkYl9zaXplKTsKKwlzcmJjbWQtPmNoYW5uZWwgID0gY3B1X3RvX2xlMzIodXNlcl9zcmJjbWQtPmNoYW5uZWwpOworCXNyYmNtZC0+aWQJID0gY3B1X3RvX2xlMzIodXNlcl9zcmJjbWQtPmlkKTsKKwlzcmJjbWQtPmx1biAgICAgID0gY3B1X3RvX2xlMzIodXNlcl9zcmJjbWQtPmx1bik7CisJc3JiY21kLT50aW1lb3V0ICA9IGNwdV90b19sZTMyKHVzZXJfc3JiY21kLT50aW1lb3V0KTsKKwlzcmJjbWQtPmZsYWdzICAgID0gY3B1X3RvX2xlMzIoZmxhZ3MpOworCXNyYmNtZC0+cmV0cnlfbGltaXQgPSAwOyAvLyBPYnNvbGV0ZSBwYXJhbWV0ZXIKKwlzcmJjbWQtPmNkYl9zaXplID0gY3B1X3RvX2xlMzIodXNlcl9zcmJjbWQtPmNkYl9zaXplKTsKKwltZW1jcHkoc3JiY21kLT5jZGIsIHVzZXJfc3JiY21kLT5jZGIsIHNpemVvZihzcmJjbWQtPmNkYikpOwogCQotCXN3aXRjaCAoc3JiY21kLT5mbGFncyAmIChTUkJfRGF0YUluIHwgU1JCX0RhdGFPdXQpKSB7CisJc3dpdGNoIChmbGFncyAmIChTUkJfRGF0YUluIHwgU1JCX0RhdGFPdXQpKSB7CiAJY2FzZSBTUkJfRGF0YU91dDoKIAkJZGF0YV9kaXIgPSBETUFfVE9fREVWSUNFOwogCQlicmVhazsKQEAgLTQ4MiwxMTggKzUwOSwxNDggQEAKIAlkZWZhdWx0OgogCQlkYXRhX2RpciA9IERNQV9OT05FOwogCX0KKwlpZiAodXNlcl9zcmJjbWQtPnNnLmNvdW50ID4gKHNpemVvZihzZ19saXN0KS9zaXplb2Yoc2dfbGlzdFswXSkpKSB7CisJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogdG9vIG1hbnkgc2cgZW50cmllcyAlZFxuIiwKKwkJICBsZTMyX3RvX2NwdShzcmJjbWQtPnNnLmNvdW50KSkpOworCQlyY29kZSA9IC1FSU5WQUw7CisJCWdvdG8gY2xlYW51cDsKKwl9CiAJaWYgKGRldi0+ZGFjX3N1cHBvcnQgPT0gMSkgewotCQlzdHJ1Y3Qgc2dtYXA2NCogcHNnID0gKHN0cnVjdCBzZ21hcDY0Kikmc3JiY21kLT5zZzsKKwkJc3RydWN0IHVzZXJfc2dtYXA2NCogdXBzZyA9IChzdHJ1Y3QgdXNlcl9zZ21hcDY0KikmdXNlcl9zcmJjbWQtPnNnOworCQlzdHJ1Y3Qgc2dtYXA2NCogcHNnID0gKHN0cnVjdCBzZ21hcDY0KikmdXNlcl9zcmJjbWQtPnNnOworCQlzdHJ1Y3QgdXNlcl9zZ21hcCogdXNnOwogCQlieXRlX2NvdW50ID0gMDsKIAogCQkvKgogCQkgKiBUaGlzIHNob3VsZCBhbHNvIGNhdGNoIGlmIHVzZXIgdXNlZCB0aGUgMzIgYml0IHNnbWFwCiAJCSAqLwogCQlhY3R1YWxfZmlic2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWFjX3NyYikgLSAKLQkJCXNpemVvZihzdHJ1Y3Qgc2dlbnRyeSkgKyAoKHNyYmNtZC0+c2cuY291bnQgJiAweGZmKSAqIAotCQkJIAlzaXplb2Yoc3RydWN0IHNnZW50cnk2NCkpOworCQkJc2l6ZW9mKHN0cnVjdCBzZ2VudHJ5KSArCisJCQkoKHVwc2ctPmNvdW50ICYgMHhmZikgKiAKKwkJIAlzaXplb2Yoc3RydWN0IHNnZW50cnkpKTsKIAkJaWYoYWN0dWFsX2ZpYnNpemUgIT0gZmlic2l6ZSl7IC8vIFVzZXIgbWFkZSBhIG1pc3Rha2UgLSBzaG91bGQgbm90IGNvbnRpbnVlCi0JCQlwcmludGsoS0VSTl9ERUJVRyJhYWNyYWlkOiBCYWQgU2l6ZSBzcGVjaWZpZWQgaW4gUmF3IFNSQiBjb21tYW5kXG4iKTsKKwkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQmFkIFNpemUgc3BlY2lmaWVkIGluIFJhdyBTUkIgY29tbWFuZFxuIikpOwogCQkJcmNvZGUgPSAtRUlOVkFMOwogCQkJZ290byBjbGVhbnVwOwogCQl9Ci0JCWlmICgoZGF0YV9kaXIgPT0gRE1BX05PTkUpICYmIHBzZy0+Y291bnQpIHsgCi0JCQlwcmludGsoS0VSTl9ERUJVRyJhYWNyYWlkOiBTRyB3aXRoIG5vIGRpcmVjdGlvbiBzcGVjaWZpZWQgaW4gUmF3IFNSQiBjb21tYW5kXG4iKTsKKwkJdXNnID0ga21hbGxvYyhhY3R1YWxfZmlic2l6ZSAtIHNpemVvZihzdHJ1Y3QgYWFjX3NyYikKKwkJICArIHNpemVvZihzdHJ1Y3Qgc2dtYXApLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCF1c2cpIHsKKwkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQWxsb2NhdGlvbiBlcnJvciBpbiBSYXcgU1JCIGNvbW1hbmRcbiIpKTsKKwkJCXJjb2RlID0gLUVOT01FTTsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQorCQltZW1jcHkgKHVzZywgdXBzZywgYWN0dWFsX2ZpYnNpemUgLSBzaXplb2Yoc3RydWN0IGFhY19zcmIpCisJCSAgKyBzaXplb2Yoc3RydWN0IHNnbWFwKSk7CisJCWFjdHVhbF9maWJzaXplID0gc2l6ZW9mKHN0cnVjdCBhYWNfc3JiKSAtIAorCQkJc2l6ZW9mKHN0cnVjdCBzZ2VudHJ5KSArICgodXNnLT5jb3VudCAmIDB4ZmYpICogCisJCQkgCXNpemVvZihzdHJ1Y3Qgc2dlbnRyeTY0KSk7CisJCWlmICgoZGF0YV9kaXIgPT0gRE1BX05PTkUpICYmIHVwc2ctPmNvdW50KSB7CisJCQlrZnJlZSAodXNnKTsKKwkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogU0cgd2l0aCBubyBkaXJlY3Rpb24gc3BlY2lmaWVkIGluIFJhdyBTUkIgY29tbWFuZFxuIikpOwogCQkJcmNvZGUgPSAtRUlOVkFMOwogCQkJZ290byBjbGVhbnVwOwogCQl9CiAKLQkJZm9yIChpID0gMDsgaSA8IHBzZy0+Y291bnQ7IGkrKykgewotCQkJZG1hX2FkZHJfdCBhZGRyOyAKLQkJCXU2NCBsZV9hZGRyOworCQlmb3IgKGkgPSAwOyBpIDwgdXNnLT5jb3VudDsgaSsrKSB7CisJCQl1NjQgYWRkcjsKIAkJCXZvaWQqIHA7Ci0JCQlwID0ga21hbGxvYyhwc2ctPnNnW2ldLmNvdW50LEdGUF9LRVJORUx8X19HRlBfRE1BKTsKKwkJCS8qIERvZXMgdGhpcyByZWFsbHkgbmVlZCB0byBiZSBHRlBfRE1BPyAqLworCQkJcCA9IGttYWxsb2ModXNnLT5zZ1tpXS5jb3VudCxHRlBfS0VSTkVMfF9fR0ZQX0RNQSk7CiAJCQlpZihwID09IDApIHsKLQkJCQlwcmludGsoS0VSTl9ERUJVRyJhYWNyYWlkOiBDb3VsZCBub3QgYWxsb2NhdGUgU0cgYnVmZmVyIC0gc2l6ZSA9ICVkIGJ1ZmZlciBudW1iZXIgJWQgb2YgJWRcbiIsCi0JCQkJcHNnLT5zZ1tpXS5jb3VudCxpLHBzZy0+Y291bnQpOworCQkJCWtmcmVlICh1c2cpOworCQkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGFsbG9jYXRlIFNHIGJ1ZmZlciAtIHNpemUgPSAlZCBidWZmZXIgbnVtYmVyICVkIG9mICVkXG4iLAorCQkJCSAgdXNnLT5zZ1tpXS5jb3VudCxpLHVzZy0+Y291bnQpKTsKIAkJCQlyY29kZSA9IC1FTk9NRU07CiAJCQkJZ290byBjbGVhbnVwOwogCQkJfQotCQkJc2dfdXNlcltpXSA9ICh2b2lkIF9fdXNlciAqKXBzZy0+c2dbaV0uYWRkcjsKKwkJCXNnX3VzZXJbaV0gPSAodm9pZCBfX3VzZXIgKil1c2ctPnNnW2ldLmFkZHI7CiAJCQlzZ19saXN0W2ldID0gcDsgLy8gc2F2ZSBzbyB3ZSBjYW4gY2xlYW4gdXAgbGF0ZXIKIAkJCXNnX2luZHggPSBpOwogCiAJCQlpZiggZmxhZ3MgJiBTUkJfRGF0YU91dCApewotCQkJCWlmKGNvcHlfZnJvbV91c2VyKHAsc2dfdXNlcltpXSxwc2ctPnNnW2ldLmNvdW50KSl7Ci0JCQkJCXByaW50ayhLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHNnIGRhdGEgZnJvbSB1c2VyXG4iKTsgCisJCQkJaWYoY29weV9mcm9tX3VzZXIocCxzZ191c2VyW2ldLHVwc2ctPnNnW2ldLmNvdW50KSl7CisJCQkJCWtmcmVlICh1c2cpOworCQkJCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHNnIGRhdGEgZnJvbSB1c2VyXG4iKSk7IAogCQkJCQlyY29kZSA9IC1FRkFVTFQ7CiAJCQkJCWdvdG8gY2xlYW51cDsKIAkJCQl9CiAJCQl9Ci0JCQlhZGRyID0gcGNpX21hcF9zaW5nbGUoZGV2LT5wZGV2LCBwLCBwc2ctPnNnW2ldLmNvdW50LCBkYXRhX2Rpcik7CisJCQlhZGRyID0gcGNpX21hcF9zaW5nbGUoZGV2LT5wZGV2LCBwLCB1c2ctPnNnW2ldLmNvdW50LCBkYXRhX2Rpcik7CiAKLQkJCWxlX2FkZHIgPSBjcHVfdG9fbGU2NChhZGRyKTsKLQkJCXBzZy0+c2dbaV0uYWRkclsxXSA9ICh1MzIpKGxlX2FkZHI+PjMyKTsKLQkJCXBzZy0+c2dbaV0uYWRkclswXSA9ICh1MzIpKGxlX2FkZHIgJiAweGZmZmZmZmZmKTsKLQkJCXBzZy0+c2dbaV0uY291bnQgPSBjcHVfdG9fbGUzMihwc2ctPnNnW2ldLmNvdW50KTsgIAotCQkJYnl0ZV9jb3VudCArPSBwc2ctPnNnW2ldLmNvdW50OworCQkJcHNnLT5zZ1tpXS5hZGRyWzBdID0gY3B1X3RvX2xlMzIoYWRkciAmIDB4ZmZmZmZmZmYpOworCQkJcHNnLT5zZ1tpXS5hZGRyWzFdID0gY3B1X3RvX2xlMzIoYWRkcj4+MzIpOworCQkJcHNnLT5zZ1tpXS5jb3VudCA9IGNwdV90b19sZTMyKHVzZy0+c2dbaV0uY291bnQpOyAgCisJCQlieXRlX2NvdW50ICs9IHVzZy0+c2dbaV0uY291bnQ7CiAJCX0KKwkJa2ZyZWUgKHVzZyk7CiAKIAkJc3JiY21kLT5jb3VudCA9IGNwdV90b19sZTMyKGJ5dGVfY291bnQpOworCQlwc2ctPmNvdW50ID0gY3B1X3RvX2xlMzIoc2dfaW5keCsxKTsKIAkJc3RhdHVzID0gZmliX3NlbmQoU2NzaVBvcnRDb21tYW5kNjQsIHNyYmZpYiwgYWN0dWFsX2ZpYnNpemUsIEZzYU5vcm1hbCwgMSwgMSxOVUxMLE5VTEwpOwogCX0gZWxzZSB7CisJCXN0cnVjdCB1c2VyX3NnbWFwKiB1cHNnID0gJnVzZXJfc3JiY21kLT5zZzsKIAkJc3RydWN0IHNnbWFwKiBwc2cgPSAmc3JiY21kLT5zZzsKIAkJYnl0ZV9jb3VudCA9IDA7CiAKLQkJYWN0dWFsX2ZpYnNpemUgPSBzaXplb2YgKHN0cnVjdCBhYWNfc3JiKSArIAotCQkJKCgobGUzMl90b19jcHUoc3JiY21kLT5zZy5jb3VudCkgJiAweGZmKSAtIDEpICogCi0JCQkgc2l6ZW9mIChzdHJ1Y3Qgc2dlbnRyeSkpOworCQlhY3R1YWxfZmlic2l6ZSA9IHNpemVvZiAoc3RydWN0IGFhY19zcmIpICsgKCgodXNlcl9zcmJjbWQtPnNnLmNvdW50ICYgMHhmZikgLSAxKSAqIHNpemVvZiAoc3RydWN0IHNnZW50cnkpKTsKIAkJaWYoYWN0dWFsX2ZpYnNpemUgIT0gZmlic2l6ZSl7IC8vIFVzZXIgbWFkZSBhIG1pc3Rha2UgLSBzaG91bGQgbm90IGNvbnRpbnVlCi0JCQlwcmludGsoS0VSTl9ERUJVRyJhYWNyYWlkOiBCYWQgU2l6ZSBzcGVjaWZpZWQgaW4gUmF3IFNSQiBjb21tYW5kXG4iKTsKKwkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQmFkIFNpemUgc3BlY2lmaWVkIGluIFJhdyBTUkIgY29tbWFuZFxuIikpOwogCQkJcmNvZGUgPSAtRUlOVkFMOwogCQkJZ290byBjbGVhbnVwOwogCQl9Ci0JCWlmICgoZGF0YV9kaXIgPT0gRE1BX05PTkUpICYmIHBzZy0+Y291bnQpIHsKLQkJCXByaW50ayhLRVJOX0RFQlVHImFhY3JhaWQ6IFNHIHdpdGggbm8gZGlyZWN0aW9uIHNwZWNpZmllZCBpbiBSYXcgU1JCIGNvbW1hbmRcbiIpOworCQlpZiAoKGRhdGFfZGlyID09IERNQV9OT05FKSAmJiB1cHNnLT5jb3VudCkgeworCQkJZHByaW50aygoS0VSTl9ERUJVRyJhYWNyYWlkOiBTRyB3aXRoIG5vIGRpcmVjdGlvbiBzcGVjaWZpZWQgaW4gUmF3IFNSQiBjb21tYW5kXG4iKSk7CiAJCQlyY29kZSA9IC1FSU5WQUw7CiAJCQlnb3RvIGNsZWFudXA7CiAJCX0KLQkJZm9yIChpID0gMDsgaSA8IHBzZy0+Y291bnQ7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgdXBzZy0+Y291bnQ7IGkrKykgewogCQkJZG1hX2FkZHJfdCBhZGRyOyAKIAkJCXZvaWQqIHA7Ci0JCQlwID0ga21hbGxvYyhwc2ctPnNnW2ldLmNvdW50LEdGUF9LRVJORUwpOworCQkJcCA9IGttYWxsb2ModXBzZy0+c2dbaV0uY291bnQsIEdGUF9LRVJORUwpOwogCQkJaWYocCA9PSAwKSB7Ci0JCQkJcHJpbnRrKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGFsbG9jYXRlIFNHIGJ1ZmZlciAtIHNpemUgPSAlZCBidWZmZXIgbnVtYmVyICVkIG9mICVkXG4iLAotCQkJCXBzZy0+c2dbaV0uY291bnQsaSxwc2ctPmNvdW50KTsKKwkJCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBhbGxvY2F0ZSBTRyBidWZmZXIgLSBzaXplID0gJWQgYnVmZmVyIG51bWJlciAlZCBvZiAlZFxuIiwKKwkJCQkgIHVwc2ctPnNnW2ldLmNvdW50LCBpLCB1cHNnLT5jb3VudCkpOwogCQkJCXJjb2RlID0gLUVOT01FTTsKIAkJCQlnb3RvIGNsZWFudXA7CiAJCQl9Ci0JCQlzZ191c2VyW2ldID0gKHZvaWQgX191c2VyICopKHBzZy0+c2dbaV0uYWRkcik7CisJCQlzZ191c2VyW2ldID0gKHZvaWQgX191c2VyICopdXBzZy0+c2dbaV0uYWRkcjsKIAkJCXNnX2xpc3RbaV0gPSBwOyAvLyBzYXZlIHNvIHdlIGNhbiBjbGVhbiB1cCBsYXRlcgogCQkJc2dfaW5keCA9IGk7CiAKIAkJCWlmKCBmbGFncyAmIFNSQl9EYXRhT3V0ICl7Ci0JCQkJaWYoY29weV9mcm9tX3VzZXIocCxzZ191c2VyW2ldLHBzZy0+c2dbaV0uY291bnQpKXsKLQkJCQkJcHJpbnRrKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGNvcHkgc2cgZGF0YSBmcm9tIHVzZXJcbiIpOyAKKwkJCQlpZihjb3B5X2Zyb21fdXNlcihwLCBzZ191c2VyW2ldLAorCQkJCQkJdXBzZy0+c2dbaV0uY291bnQpKSB7CisJCQkJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGNvcHkgc2cgZGF0YSBmcm9tIHVzZXJcbiIpKTsgCiAJCQkJCXJjb2RlID0gLUVGQVVMVDsKIAkJCQkJZ290byBjbGVhbnVwOwogCQkJCX0KIAkJCX0KLQkJCWFkZHIgPSBwY2lfbWFwX3NpbmdsZShkZXYtPnBkZXYsIHAsIHBzZy0+c2dbaV0uY291bnQsIGRhdGFfZGlyKTsKKwkJCWFkZHIgPSBwY2lfbWFwX3NpbmdsZShkZXYtPnBkZXYsIHAsCisJCQkJdXBzZy0+c2dbaV0uY291bnQsIGRhdGFfZGlyKTsKIAogCQkJcHNnLT5zZ1tpXS5hZGRyID0gY3B1X3RvX2xlMzIoYWRkcik7Ci0JCQlwc2ctPnNnW2ldLmNvdW50ID0gY3B1X3RvX2xlMzIocHNnLT5zZ1tpXS5jb3VudCk7ICAKLQkJCWJ5dGVfY291bnQgKz0gcHNnLT5zZ1tpXS5jb3VudDsKKwkJCXBzZy0+c2dbaV0uY291bnQgPSBjcHVfdG9fbGUzMih1cHNnLT5zZ1tpXS5jb3VudCk7ICAKKwkJCWJ5dGVfY291bnQgKz0gdXBzZy0+c2dbaV0uY291bnQ7CiAJCX0KIAkJc3JiY21kLT5jb3VudCA9IGNwdV90b19sZTMyKGJ5dGVfY291bnQpOworCQlwc2ctPmNvdW50ID0gY3B1X3RvX2xlMzIoc2dfaW5keCsxKTsKIAkJc3RhdHVzID0gZmliX3NlbmQoU2NzaVBvcnRDb21tYW5kLCBzcmJmaWIsIGFjdHVhbF9maWJzaXplLCBGc2FOb3JtYWwsIDEsIDEsIE5VTEwsIE5VTEwpOwogCX0KIAogCWlmIChzdGF0dXMgIT0gMCl7Ci0JCXByaW50ayhLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBzZW5kIHJhdyBzcmIgZmliIHRvIGhiYVxuIik7IAotCQlyY29kZSA9IC0xOworCQlkcHJpbnRrKChLRVJOX0RFQlVHImFhY3JhaWQ6IENvdWxkIG5vdCBzZW5kIHJhdyBzcmIgZmliIHRvIGhiYVxuIikpOyAKKwkJcmNvZGUgPSAtRU5YSU87CiAJCWdvdG8gY2xlYW51cDsKIAl9CiAKIAlpZiggZmxhZ3MgJiBTUkJfRGF0YUluICkgewogCQlmb3IoaSA9IDAgOyBpIDw9IHNnX2luZHg7IGkrKyl7Ci0JCQlpZihjb3B5X3RvX3VzZXIoc2dfdXNlcltpXSxzZ19saXN0W2ldLGxlMzJfdG9fY3B1KHNyYmNtZC0+c2cuc2dbaV0uY291bnQpKSl7Ci0JCQkJcHJpbnRrKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGNvcHkgc2cgZGF0YSB0byB1c2VyXG4iKTsgCisJCQlieXRlX2NvdW50ID0gbGUzMl90b19jcHUoKGRldi0+ZGFjX3N1cHBvcnQgPT0gMSkKKwkJCSAgICAgID8gKChzdHJ1Y3Qgc2dtYXA2NCopJnNyYmNtZC0+c2cpLT5zZ1tpXS5jb3VudAorCQkJICAgICAgOiBzcmJjbWQtPnNnLnNnW2ldLmNvdW50KTsKKwkJCWlmKGNvcHlfdG9fdXNlcihzZ191c2VyW2ldLCBzZ19saXN0W2ldLCBieXRlX2NvdW50KSl7CisJCQkJZHByaW50aygoS0VSTl9ERUJVRyJhYWNyYWlkOiBDb3VsZCBub3QgY29weSBzZyBkYXRhIHRvIHVzZXJcbiIpKTsgCiAJCQkJcmNvZGUgPSAtRUZBVUxUOwogCQkJCWdvdG8gY2xlYW51cDsKIApAQCAtNjAzLDEyICs2NjAsMTMgQEAKIAogCXJlcGx5ID0gKHN0cnVjdCBhYWNfc3JiX3JlcGx5ICopIGZpYl9kYXRhKHNyYmZpYik7CiAJaWYoY29weV90b191c2VyKHVzZXJfcmVwbHkscmVwbHksc2l6ZW9mKHN0cnVjdCBhYWNfc3JiX3JlcGx5KSkpewotCQlwcmludGsoS0VSTl9ERUJVRyJhYWNyYWlkOiBDb3VsZCBub3QgY29weSByZXBseSB0byB1c2VyXG4iKTsgCisJCWRwcmludGsoKEtFUk5fREVCVUciYWFjcmFpZDogQ291bGQgbm90IGNvcHkgcmVwbHkgdG8gdXNlclxuIikpOyAKIAkJcmNvZGUgPSAtRUZBVUxUOwogCQlnb3RvIGNsZWFudXA7CiAJfQogCiBjbGVhbnVwOgorCWtmcmVlKHVzZXJfc3JiY21kKTsKIAlmb3IoaT0wOyBpIDw9IHNnX2luZHg7IGkrKyl7CiAJCWtmcmVlKHNnX2xpc3RbaV0pOwogCX0KQEAgLTYxOCwxNCArNjc2LDEzIEBACiAJcmV0dXJuIHJjb2RlOwogfQogCi0KIHN0cnVjdCBhYWNfcGNpX2luZm8gewogICAgICAgICB1MzIgYnVzOwogICAgICAgICB1MzIgc2xvdDsKIH07CiAKIAotaW50IGFhY19nZXRfcGNpX2luZm8oc3RydWN0IGFhY19kZXYqIGRldiwgdm9pZCBfX3VzZXIgKmFyZykKK3N0YXRpYyBpbnQgYWFjX2dldF9wY2lfaW5mbyhzdHJ1Y3QgYWFjX2RldiogZGV2LCB2b2lkIF9fdXNlciAqYXJnKQogewogICAgICAgICBzdHJ1Y3QgYWFjX3BjaV9pbmZvIHBjaV9pbmZvOwogCkBAIC02MzMsMTEgKzY5MCwxMSBAQAogCXBjaV9pbmZvLnNsb3QgPSBQQ0lfU0xPVChkZXYtPnBkZXYtPmRldmZuKTsKIAogICAgICAgIGlmIChjb3B5X3RvX3VzZXIoYXJnLCAmcGNpX2luZm8sIHNpemVvZihzdHJ1Y3QgYWFjX3BjaV9pbmZvKSkpIHsKLQkJcHJpbnRrKEtFUk5fREVCVUcgImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHBjaSBpbmZvXG4iKTsKKyAgICAgICAgICAgICAgIGRwcmludGsoKEtFUk5fREVCVUcgImFhY3JhaWQ6IENvdWxkIG5vdCBjb3B5IHBjaSBpbmZvXG4iKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAl9CiAgICAgICAgIHJldHVybiAwOwotIH0KK30KICAKIAogaW50IGFhY19kb19pb2N0bChzdHJ1Y3QgYWFjX2RldiAqIGRldiwgaW50IGNtZCwgdm9pZCBfX3VzZXIgKmFyZykKQEAgLTY1Niw2ICs3MTMsNyBAQAogCWNhc2UgRlNBQ1RMX01JTklQT1JUX1JFVl9DSEVDSzoKIAkJc3RhdHVzID0gY2hlY2tfcmV2aXNpb24oZGV2LCBhcmcpOwogCQlicmVhazsKKwljYXNlIEZTQUNUTF9TRU5EX0xBUkdFX0ZJQjoKIAljYXNlIEZTQUNUTF9TRU5ERklCOgogCQlzdGF0dXMgPSBpb2N0bF9zZW5kX2ZpYihkZXYsIGFyZyk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbWluaXQuYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1pbml0LmMKaW5kZXggNjgzMmE1NS4uNDM1NTdiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbWluaXQuYworKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21taW5pdC5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2hvc3QuaD4KICNpbmNsdWRlIDxhc20vc2VtYXBob3JlLmg+CiAKICNpbmNsdWRlICJhYWNyYWlkLmgiCkBAIC00OSw4ICs1MCw4IEBACiB7CiAJdW5zaWduZWQgY2hhciAqYmFzZTsKIAl1bnNpZ25lZCBsb25nIHNpemUsIGFsaWduOwotCXVuc2lnbmVkIGxvbmcgZmlic2l6ZSA9IDQwOTY7Ci0JdW5zaWduZWQgbG9uZyBwcmludGZidWZzaXogPSAyNTY7CisJY29uc3QgdW5zaWduZWQgbG9uZyBmaWJzaXplID0gNDA5NjsKKwljb25zdCB1bnNpZ25lZCBsb25nIHByaW50ZmJ1ZnNpeiA9IDI1NjsKIAlzdHJ1Y3QgYWFjX2luaXQgKmluaXQ7CiAJZG1hX2FkZHJfdCBwaHlzOwogCkBAIC03NCw2ICs3NSw4IEBACiAJaW5pdCA9IGRldi0+aW5pdDsKIAogCWluaXQtPkluaXRTdHJ1Y3RSZXZpc2lvbiA9IGNwdV90b19sZTMyKEFEQVBURVJfSU5JVF9TVFJVQ1RfUkVWSVNJT04pOworCWlmIChkZXYtPm1heF9maWJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGh3X2ZpYikpCisJCWluaXQtPkluaXRTdHJ1Y3RSZXZpc2lvbiA9IGNwdV90b19sZTMyKEFEQVBURVJfSU5JVF9TVFJVQ1RfUkVWSVNJT05fNCk7CiAJaW5pdC0+TWluaVBvcnRSZXZpc2lvbiA9IGNwdV90b19sZTMyKFNhX01JTklQT1JUX1JFVklTSU9OKTsKIAlpbml0LT5mc3JldiA9IGNwdV90b19sZTMyKGRldi0+ZnNyZXYpOwogCkBAIC0xMTAsNiArMTEzLDEwIEBACiAJCWluaXQtPkhvc3RQaHlzTWVtUGFnZXMgPSBjcHVfdG9fbGUzMihBQUNfTUFYX0hPU1RQSFlTTUVNUEFHRVMpOwogCX0KIAorCWluaXQtPkluaXRGbGFncyA9IDA7CisJaW5pdC0+TWF4SW9Db21tYW5kcyA9IGNwdV90b19sZTMyKGRldi0+c2NzaV9ob3N0X3B0ci0+Y2FuX3F1ZXVlICsgQUFDX05VTV9NR1RfRklCKTsKKwlpbml0LT5NYXhJb1NpemUgPSBjcHVfdG9fbGUzMihkZXYtPnNjc2lfaG9zdF9wdHItPm1heF9zZWN0b3JzIDw8IDkpOworCWluaXQtPk1heEZpYlNpemUgPSBjcHVfdG9fbGUzMihkZXYtPm1heF9maWJfc2l6ZSk7CiAKIAkvKgogCSAqIEluY3JlbWVudCB0aGUgYmFzZSBhZGRyZXNzIGJ5IHRoZSBhbW91bnQgYWxyZWFkeSB1c2VkCkBAIC0xNTIsOCArMTU5LDggQEAKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZxLT5xZnVsbCk7CiAJc3Bpbl9sb2NrX2luaXQoJnEtPmxvY2tkYXRhKTsKIAlxLT5sb2NrID0gJnEtPmxvY2tkYXRhOwotCXEtPmhlYWRlcnMucHJvZHVjZXIgPSBtZW07Ci0JcS0+aGVhZGVycy5jb25zdW1lciA9IG1lbSsxOworCXEtPmhlYWRlcnMucHJvZHVjZXIgPSAoX19sZTMyICopbWVtOworCXEtPmhlYWRlcnMuY29uc3VtZXIgPSAoX19sZTMyICopKG1lbSsxKTsKIAkqKHEtPmhlYWRlcnMucHJvZHVjZXIpID0gY3B1X3RvX2xlMzIocXNpemUpOwogCSoocS0+aGVhZGVycy5jb25zdW1lcikgPSBjcHVfdG9fbGUzMihxc2l6ZSk7CiAJcS0+ZW50cmllcyA9IHFzaXplOwpAQCAtMTczLDYgKzE4MCw4IEBACiAJaW50IHN0YXR1czsKIAogCWZpYmN0eCA9IGZpYl9hbGxvYyhkZXYpOworCWlmICghZmliY3R4KQorCQlyZXR1cm4gLUVOT01FTTsKIAlmaWJfaW5pdChmaWJjdHgpOwogCiAJY21kID0gKHN0cnVjdCBhYWNfY2xvc2UgKikgZmliX2RhdGEoZmliY3R4KTsKQEAgLTIwNCw3ICsyMTMsNyBAQAogICoJCTAgLSBJZiB0aGVyZSB3ZXJlIGVycm9ycyBpbml0aW5nLiBUaGlzIGlzIGEgZmF0YWwgZXJyb3IuCiAgKi8KICAKLWludCBhYWNfY29tbV9pbml0KHN0cnVjdCBhYWNfZGV2ICogZGV2KQorc3RhdGljIGludCBhYWNfY29tbV9pbml0KHN0cnVjdCBhYWNfZGV2ICogZGV2KQogewogCXVuc2lnbmVkIGxvbmcgaGRyc2l6ZSA9IChzaXplb2YodTMyKSAqIE5VTUJFUl9PRl9DT01NX1FVRVVFUykgKiAyOwogCXVuc2lnbmVkIGxvbmcgcXVldWVzaXplID0gc2l6ZW9mKHN0cnVjdCBhYWNfZW50cnkpICogVE9UQUxfUVVFVUVfRU5UUklFUzsKQEAgLTI5Myw2ICszMDIsNzkgQEAKIAogc3RydWN0IGFhY19kZXYgKmFhY19pbml0X2FkYXB0ZXIoc3RydWN0IGFhY19kZXYgKmRldikKIHsKKwl1MzIgc3RhdHVzWzVdOworCXN0cnVjdCBTY3NpX0hvc3QgKiBob3N0ID0gZGV2LT5zY3NpX2hvc3RfcHRyOworCisJLyoKKwkgKglDaGVjayB0aGUgcHJlZmVycmVkIGNvbW0gc2V0dGluZ3MsIGRlZmF1bHRzIGZyb20gdGVtcGxhdGUuCisJICovCisJZGV2LT5tYXhfZmliX3NpemUgPSBzaXplb2Yoc3RydWN0IGh3X2ZpYik7CisJZGV2LT5zZ190YWJsZXNpemUgPSBob3N0LT5zZ190YWJsZXNpemUgPSAoZGV2LT5tYXhfZmliX3NpemUKKwkJLSBzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpCisJCS0gc2l6ZW9mKHN0cnVjdCBhYWNfd3JpdGUpICsgc2l6ZW9mKHN0cnVjdCBzZ21hcCkpCisJCQkvIHNpemVvZihzdHJ1Y3Qgc2dtYXApOworCWlmICgoIWFhY19hZGFwdGVyX3N5bmNfY21kKGRldiwgR0VUX0NPTU1fUFJFRkVSUkVEX1NFVFRJTkdTLAorCSAgMCwgMCwgMCwgMCwgMCwgMCwKKwkgIHN0YXR1cyswLCBzdGF0dXMrMSwgc3RhdHVzKzIsIHN0YXR1cyszLCBzdGF0dXMrNCkpCisJICYmIChzdGF0dXNbMF0gPT0gMHgwMDAwMDAwMSkpIHsKKwkJLyoKKwkJICoJc3RhdHVzWzFdID4+IDE2CQltYXhpbXVtIGNvbW1hbmQgc2l6ZSBpbiBLQgorCQkgKglzdGF0dXNbMV0gJiAweEZGRkYJbWF4aW11bSBGSUIgc2l6ZQorCQkgKglzdGF0dXNbMl0gPj4gMTYJCW1heGltdW0gU0cgZWxlbWVudHMgdG8gZHJpdmVyCisJCSAqCXN0YXR1c1syXSAmIDB4RkZGRgltYXhpbXVtIFNHIGVsZW1lbnRzIGZyb20gZHJpdmVyCisJCSAqCXN0YXR1c1szXSAmIDB4RkZGRgltYXhpbXVtIG51bWJlciBGSUJzIG91dHN0YW5kaW5nCisJCSAqLworCQlob3N0LT5tYXhfc2VjdG9ycyA9IChzdGF0dXNbMV0gPj4gMTYpIDw8IDE7CisJCWRldi0+bWF4X2ZpYl9zaXplID0gc3RhdHVzWzFdICYgMHhGRkZGOworCQlob3N0LT5zZ190YWJsZXNpemUgPSBzdGF0dXNbMl0gPj4gMTY7CisJCWRldi0+c2dfdGFibGVzaXplID0gc3RhdHVzWzJdICYgMHhGRkZGOworCQlob3N0LT5jYW5fcXVldWUgPSAoc3RhdHVzWzNdICYgMHhGRkZGKSAtIEFBQ19OVU1fTUdUX0ZJQjsKKwkJLyoKKwkJICoJTk9URToKKwkJICoJQWxsIHRoZXNlIG92ZXJyaWRlcyBhcmUgYmFzZWQgb24gYSBmaXhlZCBpbnRlcm5hbAorCQkgKglrbm93bGVkZ2UgYW5kIHVuZGVyc3RhbmRpbmcgb2YgZXhpc3RpbmcgYWRhcHRlcnMsCisJCSAqCWFjYnNpemUgc2hvdWxkIGJlIHNldCB3aXRoIGNhdXRpb24uCisJCSAqLworCQlpZiAoYWNic2l6ZSA9PSA1MTIpIHsKKwkJCWhvc3QtPm1heF9zZWN0b3JzID0gQUFDX01BWF8zMkJJVF9TR0JDT1VOVDsKKwkJCWRldi0+bWF4X2ZpYl9zaXplID0gNTEyOworCQkJZGV2LT5zZ190YWJsZXNpemUgPSBob3N0LT5zZ190YWJsZXNpemUKKwkJCSAgPSAoNTEyIC0gc2l6ZW9mKHN0cnVjdCBhYWNfZmliaGRyKQorCQkJICAgIC0gc2l6ZW9mKHN0cnVjdCBhYWNfd3JpdGUpICsgc2l6ZW9mKHN0cnVjdCBzZ21hcCkpCisJCQkgICAgIC8gc2l6ZW9mKHN0cnVjdCBzZ21hcCk7CisJCQlob3N0LT5jYW5fcXVldWUgPSBBQUNfTlVNX0lPX0ZJQjsKKwkJfSBlbHNlIGlmIChhY2JzaXplID09IDIwNDgpIHsKKwkJCWhvc3QtPm1heF9zZWN0b3JzID0gNTEyOworCQkJZGV2LT5tYXhfZmliX3NpemUgPSAyMDQ4OworCQkJaG9zdC0+c2dfdGFibGVzaXplID0gNjU7CisJCQlkZXYtPnNnX3RhYmxlc2l6ZSA9IDgxOworCQkJaG9zdC0+Y2FuX3F1ZXVlID0gNTEyIC0gQUFDX05VTV9NR1RfRklCOworCQl9IGVsc2UgaWYgKGFjYnNpemUgPT0gNDA5NikgeworCQkJaG9zdC0+bWF4X3NlY3RvcnMgPSAxMDI0OworCQkJZGV2LT5tYXhfZmliX3NpemUgPSA0MDk2OworCQkJaG9zdC0+c2dfdGFibGVzaXplID0gMTI5OworCQkJZGV2LT5zZ190YWJsZXNpemUgPSAxNjY7CisJCQlob3N0LT5jYW5fcXVldWUgPSAyNTYgLSBBQUNfTlVNX01HVF9GSUI7CisJCX0gZWxzZSBpZiAoYWNic2l6ZSA9PSA4MTkyKSB7CisJCQlob3N0LT5tYXhfc2VjdG9ycyA9IDIwNDg7CisJCQlkZXYtPm1heF9maWJfc2l6ZSA9IDgxOTI7CisJCQlob3N0LT5zZ190YWJsZXNpemUgPSAyNTc7CisJCQlkZXYtPnNnX3RhYmxlc2l6ZSA9IDMzNzsKKwkJCWhvc3QtPmNhbl9xdWV1ZSA9IDEyOCAtIEFBQ19OVU1fTUdUX0ZJQjsKKwkJfSBlbHNlIGlmIChhY2JzaXplID4gMCkgeworCQkJcHJpbnRrKCJJbGxlZ2FsIGFjYnNpemU9JWQgaWdub3JlZFxuIiwgYWNic2l6ZSk7CisJCX0KKwl9CisJeworCisJCWlmIChudW1hY2IgPiAwKSB7CisJCQlpZiAobnVtYWNiIDwgaG9zdC0+Y2FuX3F1ZXVlKQorCQkJCWhvc3QtPmNhbl9xdWV1ZSA9IG51bWFjYjsKKwkJCWVsc2UKKwkJCQlwcmludGsoIm51bWFjYj0lZCBpZ25vcmVkXG4iLCBudW1hY2IpOworCQl9CisJfQorCiAJLyoKIAkgKglPayBub3cgaW5pdCB0aGUgY29tbXVuaWNhdGlvbiBzdWJzeXN0ZW0KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYwppbmRleCAzZjM2ZGJhLi41MzIyODY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tc3VwLmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbXN1cC5jCkBAIC0yNSw3ICsyNSw3IEBACiAgKiAgY29tbXN1cC5jCiAgKgogICogQWJzdHJhY3Q6IENvbnRhaW4gYWxsIHJvdXRpbmVzIHRoYXQgYXJlIHJlcXVpcmVkIGZvciBGU0EgaG9zdC9hZGFwdGVyCi0gKiAgICBjb21tdWljYXRpb24uCisgKiAgICBjb21tdW5pY2F0aW9uLgogICoKICAqLwogCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfaG9zdC5oPgogI2luY2x1ZGUgPGFzbS9zZW1hcGhvcmUuaD4KIAogI2luY2x1ZGUgImFhY3JhaWQuaCIKQEAgLTUyLDcgKzUzLDEzIEBACiAgCiBzdGF0aWMgaW50IGZpYl9tYXBfYWxsb2Moc3RydWN0IGFhY19kZXYgKmRldikKIHsKLQlpZigoZGV2LT5od19maWJfdmEgPSBwY2lfYWxsb2NfY29uc2lzdGVudChkZXYtPnBkZXYsIHNpemVvZihzdHJ1Y3QgaHdfZmliKSAqIEFBQ19OVU1fRklCLCAmZGV2LT5od19maWJfcGEpKT09TlVMTCkKKwlkcHJpbnRrKChLRVJOX0lORk8KKwkgICJhbGxvY2F0ZSBoYXJkd2FyZSBmaWJzIHBjaV9hbGxvY19jb25zaXN0ZW50KCVwLCAlZCAqICglZCArICVkKSwgJXApXG4iLAorCSAgZGV2LT5wZGV2LCBkZXYtPm1heF9maWJfc2l6ZSwgZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUsCisJICBBQUNfTlVNX01HVF9GSUIsICZkZXYtPmh3X2ZpYl9wYSkpOworCWlmKChkZXYtPmh3X2ZpYl92YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGRldi0+cGRldiwgZGV2LT5tYXhfZmliX3NpemUKKwkgICogKGRldi0+c2NzaV9ob3N0X3B0ci0+Y2FuX3F1ZXVlICsgQUFDX05VTV9NR1RfRklCKSwKKwkgICZkZXYtPmh3X2ZpYl9wYSkpPT1OVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAlyZXR1cm4gMDsKIH0KQEAgLTY3LDcgKzc0LDcgQEAKIAogdm9pZCBmaWJfbWFwX2ZyZWUoc3RydWN0IGFhY19kZXYgKmRldikKIHsKLQlwY2lfZnJlZV9jb25zaXN0ZW50KGRldi0+cGRldiwgc2l6ZW9mKHN0cnVjdCBod19maWIpICogQUFDX05VTV9GSUIsIGRldi0+aHdfZmliX3ZhLCBkZXYtPmh3X2ZpYl9wYSk7CisJcGNpX2ZyZWVfY29uc2lzdGVudChkZXYtPnBkZXYsIGRldi0+bWF4X2ZpYl9zaXplICogKGRldi0+c2NzaV9ob3N0X3B0ci0+Y2FuX3F1ZXVlICsgQUFDX05VTV9NR1RfRklCKSwgZGV2LT5od19maWJfdmEsIGRldi0+aHdfZmliX3BhKTsKIH0KIAogLyoqCkBAIC04NCwxNyArOTEsMjIgQEAKIAlzdHJ1Y3QgaHdfZmliICpod19maWJfdmE7CiAJZG1hX2FkZHJfdCBod19maWJfcGE7CiAJaW50IGk7Ci0JCi0JaWYoZmliX21hcF9hbGxvYyhkZXYpPDApCisKKwl3aGlsZSAoKChpID0gZmliX21hcF9hbGxvYyhkZXYpKSA9PSAtRU5PTUVNKQorCSAmJiAoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgPiAoNjQgLSBBQUNfTlVNX01HVF9GSUIpKSkgeworCQlkZXYtPmluaXQtPk1heElvQ29tbWFuZHMgPSBjcHVfdG9fbGUzMigoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgKyBBQUNfTlVNX01HVF9GSUIpID4+IDEpOworCQlkZXYtPnNjc2lfaG9zdF9wdHItPmNhbl9xdWV1ZSA9IGxlMzJfdG9fY3B1KGRldi0+aW5pdC0+TWF4SW9Db21tYW5kcykgLSBBQUNfTlVNX01HVF9GSUI7CisJfQorCWlmIChpPDApCiAJCXJldHVybiAtRU5PTUVNOwogCQkKIAlod19maWJfdmEgPSBkZXYtPmh3X2ZpYl92YTsKIAlod19maWJfcGEgPSBkZXYtPmh3X2ZpYl9wYTsKLQltZW1zZXQoaHdfZmliX3ZhLCAwLCBzaXplb2Yoc3RydWN0IGh3X2ZpYikgKiBBQUNfTlVNX0ZJQik7CisJbWVtc2V0KGh3X2ZpYl92YSwgMCwgZGV2LT5tYXhfZmliX3NpemUgKiAoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgKyBBQUNfTlVNX01HVF9GSUIpKTsKIAkvKgogCSAqCUluaXRpYWxpc2UgdGhlIGZpYnMKIAkgKi8KLQlmb3IgKGkgPSAwLCBmaWJwdHIgPSAmZGV2LT5maWJzW2ldOyBpIDwgQUFDX05VTV9GSUI7IGkrKywgZmlicHRyKyspIAorCWZvciAoaSA9IDAsIGZpYnB0ciA9ICZkZXYtPmZpYnNbaV07IGkgPCAoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgKyBBQUNfTlVNX01HVF9GSUIpOyBpKyssIGZpYnB0cisrKSAKIAl7CiAJCWZpYnB0ci0+ZGV2ID0gZGV2OwogCQlmaWJwdHItPmh3X2ZpYiA9IGh3X2ZpYl92YTsKQEAgLTEwMiwxNiArMTE0LDE2IEBACiAJCWZpYnB0ci0+bmV4dCA9IGZpYnB0cisxOwkvKiBGb3J3YXJkIGNoYWluIHRoZSBmaWJzICovCiAJCWluaXRfTVVURVhfTE9DS0VEKCZmaWJwdHItPmV2ZW50X3dhaXQpOwogCQlzcGluX2xvY2tfaW5pdCgmZmlicHRyLT5ldmVudF9sb2NrKTsKLQkJaHdfZmliX3ZhLT5oZWFkZXIuWGZlclN0YXRlID0gMHhmZmZmZmZmZjsKLQkJaHdfZmliX3ZhLT5oZWFkZXIuU2VuZGVyU2l6ZSA9IGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaHdfZmliKSk7CisJCWh3X2ZpYl92YS0+aGVhZGVyLlhmZXJTdGF0ZSA9IGNwdV90b19sZTMyKDB4ZmZmZmZmZmYpOworCQlod19maWJfdmEtPmhlYWRlci5TZW5kZXJTaXplID0gY3B1X3RvX2xlMTYoZGV2LT5tYXhfZmliX3NpemUpOwogCQlmaWJwdHItPmh3X2ZpYl9wYSA9IGh3X2ZpYl9wYTsKLQkJaHdfZmliX3ZhID0gKHN0cnVjdCBod19maWIgKikoKHVuc2lnbmVkIGNoYXIgKilod19maWJfdmEgKyBzaXplb2Yoc3RydWN0IGh3X2ZpYikpOwotCQlod19maWJfcGEgPSBod19maWJfcGEgKyBzaXplb2Yoc3RydWN0IGh3X2ZpYik7IAorCQlod19maWJfdmEgPSAoc3RydWN0IGh3X2ZpYiAqKSgodW5zaWduZWQgY2hhciAqKWh3X2ZpYl92YSArIGRldi0+bWF4X2ZpYl9zaXplKTsKKwkJaHdfZmliX3BhID0gaHdfZmliX3BhICsgZGV2LT5tYXhfZmliX3NpemU7CiAJfQogCS8qCiAJICoJQWRkIHRoZSBmaWIgY2hhaW4gdG8gdGhlIGZyZWUgbGlzdAogCSAqLwotCWRldi0+Zmlic1tBQUNfTlVNX0ZJQi0xXS5uZXh0ID0gTlVMTDsKKwlkZXYtPmZpYnNbZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgKyBBQUNfTlVNX01HVF9GSUIgLSAxXS5uZXh0ID0gTlVMTDsKIAkvKgogCSAqCUVuYWJsZSB0aGlzIHRvIGRlYnVnIG91dCBvZiBxdWV1ZSBzcGFjZQogCSAqLwpAQCAtMTI0LDcgKzEzNiw3IEBACiAgKglAZGV2OiBBZGFwdGVyIHRvIGFsbG9jYXRlIHRoZSBmaWIgZm9yCiAgKgogICoJQWxsb2NhdGUgYSBmaWIgZnJvbSB0aGUgYWRhcHRlciBmaWIgcG9vbC4gSWYgdGhlIHBvb2wgaXMgZW1wdHkgd2UKLSAqCXdhaXQgZm9yIGZpYnMgdG8gYmVjb21lIGZyZWUuCisgKglyZXR1cm4gTlVMTC4KICAqLwogIAogc3RydWN0IGZpYiAqIGZpYl9hbGxvYyhzdHJ1Y3QgYWFjX2RldiAqZGV2KQpAQCAtMTMzLDEwICsxNDUsMTAgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmZpYl9sb2NrLCBmbGFncyk7CiAJZmlicHRyID0gZGV2LT5mcmVlX2ZpYjsJCi0JLyogQ2Fubm90IHNsZWVwIGhlcmUgb3IgeW91IGdldCBoYW5ncy4gSW5zdGVhZCB3ZSBkaWQgdGhlCi0JICAgbWF0aHMgYXQgY29tcGlsZSB0aW1lLiAqLwotCWlmKCFmaWJwdHIpCi0JCUJVRygpOworCWlmKCFmaWJwdHIpeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmZpYl9sb2NrLCBmbGFncyk7CisJCXJldHVybiBmaWJwdHI7CisJfQogCWRldi0+ZnJlZV9maWIgPSBmaWJwdHItPm5leHQ7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5maWJfbG9jaywgZmxhZ3MpOwogCS8qCkBAIC0xOTYsMTEgKzIwOCwxMSBAQAogCXN0cnVjdCBod19maWIgKmh3X2ZpYiA9IGZpYnB0ci0+aHdfZmliOwogCiAJaHdfZmliLT5oZWFkZXIuU3RydWN0VHlwZSA9IEZJQl9NQUdJQzsKLQlod19maWItPmhlYWRlci5TaXplID0gY3B1X3RvX2xlMTYoc2l6ZW9mKHN0cnVjdCBod19maWIpKTsKLSAgICAgICAgaHdfZmliLT5oZWFkZXIuWGZlclN0YXRlID0gY3B1X3RvX2xlMzIoSG9zdE93bmVkIHwgRmliSW5pdGlhbGl6ZWQgfCBGaWJFbXB0eSB8IEZhc3RSZXNwb25zZUNhcGFibGUpOworCWh3X2ZpYi0+aGVhZGVyLlNpemUgPSBjcHVfdG9fbGUxNihmaWJwdHItPmRldi0+bWF4X2ZpYl9zaXplKTsKKwlod19maWItPmhlYWRlci5YZmVyU3RhdGUgPSBjcHVfdG9fbGUzMihIb3N0T3duZWQgfCBGaWJJbml0aWFsaXplZCB8IEZpYkVtcHR5IHwgRmFzdFJlc3BvbnNlQ2FwYWJsZSk7CiAJaHdfZmliLT5oZWFkZXIuU2VuZGVyRmliQWRkcmVzcyA9IGNwdV90b19sZTMyKGZpYnB0ci0+aHdfZmliX3BhKTsKIAlod19maWItPmhlYWRlci5SZWNlaXZlckZpYkFkZHJlc3MgPSBjcHVfdG9fbGUzMihmaWJwdHItPmh3X2ZpYl9wYSk7Ci0JaHdfZmliLT5oZWFkZXIuU2VuZGVyU2l6ZSA9IGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaHdfZmliKSk7CisJaHdfZmliLT5oZWFkZXIuU2VuZGVyU2l6ZSA9IGNwdV90b19sZTE2KGZpYnB0ci0+ZGV2LT5tYXhfZmliX3NpemUpOwogfQogCiAvKioKQEAgLTIxMSw3ICsyMjMsNyBAQAogICoJY2FsbGVyLgogICovCiAgCi12b2lkIGZpYl9kZWFsbG9jKHN0cnVjdCBmaWIgKiBmaWJwdHIpCitzdGF0aWMgdm9pZCBmaWJfZGVhbGxvYyhzdHJ1Y3QgZmliICogZmlicHRyKQogewogCXN0cnVjdCBod19maWIgKmh3X2ZpYiA9IGZpYnB0ci0+aHdfZmliOwogCWlmKGh3X2ZpYi0+aGVhZGVyLlN0cnVjdFR5cGUgIT0gRklCX01BR0lDKSAKQEAgLTI3OSw3ICsyOTEsNyBAQAogCX0KIAogICAgICAgICBpZiAoKCppbmRleCArIDEpID09IGxlMzJfdG9fY3B1KCoocS0+aGVhZGVycy5jb25zdW1lcikpKSB7IC8qIFF1ZXVlIGlzIGZ1bGwgKi8KLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiUXVldWUgJWQgZnVsbCwgJWQgb3V0c3RhbmRpbmcuXG4iLAorCQlwcmludGsoS0VSTl9XQVJOSU5HICJRdWV1ZSAlZCBmdWxsLCAldSBvdXRzdGFuZGluZy5cbiIsCiAJCQkJcWlkLCBxLT5udW1wZW5kaW5nKTsKIAkJcmV0dXJuIDA7CiAJfSBlbHNlIHsKQEAgLTY1OCw5ICs2NzAsOCBAQAogCQkJfQogCQkJaWYgKGFhY19pbnNlcnRfZW50cnkoZGV2LCBpbmRleCwgQWRhcEhpZ2hSZXNwUXVldWUsICAobm9pbnRyICYgKGludClhYWNfY29uZmlnLmlycV9tb2QpKSAhPSAwKSB7CiAJCQl9Ci0JCX0KLQkJZWxzZSBpZiAoaHdfZmliLT5oZWFkZXIuWGZlclN0YXRlICYgTm9ybWFsUHJpb3JpdHkpIAotCQl7CisJCX0gZWxzZSBpZiAoaHdfZmliLT5oZWFkZXIuWGZlclN0YXRlICYgCisJCQkJY3B1X3RvX2xlMzIoTm9ybWFsUHJpb3JpdHkpKSB7CiAJCQl1MzIgaW5kZXg7CiAKIAkJCWlmIChzaXplKSB7CkBAIC03NDQsMjIgKzc1NSwyNSBAQAogCiB2b2lkIGFhY19wcmludGYoc3RydWN0IGFhY19kZXYgKmRldiwgdTMyIHZhbCkKIHsKLQlpbnQgbGVuZ3RoID0gdmFsICYgMHhmZmZmOwotCWludCBsZXZlbCA9ICh2YWwgPj4gMTYpICYgMHhmZmZmOwogCWNoYXIgKmNwID0gZGV2LT5wcmludGZidWY7Ci0JCi0JLyoKLQkgKglUaGUgc2l6ZSBvZiB0aGUgcHJpbnRmYnVmIGlzIHNldCBpbiBwb3J0LmMKLQkgKglUaGVyZSBpcyBubyB2YXJpYWJsZSBvciBkZWZpbmUgZm9yIGl0Ci0JICovCi0JaWYgKGxlbmd0aCA+IDI1NSkKLQkJbGVuZ3RoID0gMjU1OwotCWlmIChjcFtsZW5ndGhdICE9IDApCi0JCWNwW2xlbmd0aF0gPSAwOwotCWlmIChsZXZlbCA9PSBMT0dfQUFDX0hJR0hfRVJST1IpCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImFhY3JhaWQ6JXMiLCBjcCk7Ci0JZWxzZQotCQlwcmludGsoS0VSTl9JTkZPICJhYWNyYWlkOiVzIiwgY3ApOworCWlmIChkZXYtPnByaW50Zl9lbmFibGVkKQorCXsKKwkJaW50IGxlbmd0aCA9IHZhbCAmIDB4ZmZmZjsKKwkJaW50IGxldmVsID0gKHZhbCA+PiAxNikgJiAweGZmZmY7CisJCQorCQkvKgorCQkgKglUaGUgc2l6ZSBvZiB0aGUgcHJpbnRmYnVmIGlzIHNldCBpbiBwb3J0LmMKKwkJICoJVGhlcmUgaXMgbm8gdmFyaWFibGUgb3IgZGVmaW5lIGZvciBpdAorCQkgKi8KKwkJaWYgKGxlbmd0aCA+IDI1NSkKKwkJCWxlbmd0aCA9IDI1NTsKKwkJaWYgKGNwW2xlbmd0aF0gIT0gMCkKKwkJCWNwW2xlbmd0aF0gPSAwOworCQlpZiAobGV2ZWwgPT0gTE9HX0FBQ19ISUdIX0VSUk9SKQorCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYWFjcmFpZDolcyIsIGNwKTsKKwkJZWxzZQorCQkJcHJpbnRrKEtFUk5fSU5GTyAiYWFjcmFpZDolcyIsIGNwKTsKKwl9CiAJbWVtc2V0KGNwLCAwLCAgMjU2KTsKIH0KIApAQCAtODMyLDggKzg0Niw4IEBACiAJCQlhaWZjbWQgPSAoc3RydWN0IGFhY19haWZjbWQgKikgaHdfZmliLT5kYXRhOwogCQkJaWYgKGFpZmNtZC0+Y29tbWFuZCA9PSBjcHVfdG9fbGUzMihBaWZDbWREcml2ZXJOb3RpZnkpKSB7CiAJCQkJLyogSGFuZGxlIERyaXZlciBOb3RpZnkgRXZlbnRzICovCi0JCQkJKih1MzIgKilod19maWItPmRhdGEgPSBjcHVfdG9fbGUzMihTVF9PSyk7Ci0JCQkJZmliX2FkYXB0ZXJfY29tcGxldGUoZmliLCBzaXplb2YodTMyKSk7CisJCQkJKihfX2xlMzIgKilod19maWItPmRhdGEgPSBjcHVfdG9fbGUzMihTVF9PSyk7CisJCQkJZmliX2FkYXB0ZXJfY29tcGxldGUoZmliLCAodTE2KXNpemVvZih1MzIpKTsKIAkJCX0gZWxzZSB7CiAJCQkJc3RydWN0IGxpc3RfaGVhZCAqZW50cnk7CiAJCQkJLyogVGhlIHUzMiBoZXJlIGlzIGltcG9ydGFudCBhbmQgaW50ZW5kZWQuIFdlIGFyZSB1c2luZwpAQCAtOTE2LDcgKzkzMCw3IEBACiAJCQkJLyoKIAkJCQkgKglTZXQgdGhlIHN0YXR1cyBvZiB0aGlzIEZJQgogCQkJCSAqLwotCQkJCSoodTMyICopaHdfZmliLT5kYXRhID0gY3B1X3RvX2xlMzIoU1RfT0spOworCQkJCSooX19sZTMyICopaHdfZmliLT5kYXRhID0gY3B1X3RvX2xlMzIoU1RfT0spOwogCQkJCWZpYl9hZGFwdGVyX2NvbXBsZXRlKGZpYiwgc2l6ZW9mKHUzMikpOwogCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZmliX2xvY2ssIGZsYWd2KTsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2RwY3N1cC5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvZHBjc3VwLmMKaW5kZXggODQ4MGI0Mi4uYmUyZTk4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvZHBjc3VwLmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvZHBjc3VwLmMKQEAgLTk5LDcgKzk5LDcgQEAKIAkJCS8qCiAJCQkgKglEb2N0b3IgdGhlIGZpYgogCQkJICovCi0JCQkqKHUzMiAqKWh3ZmliLT5kYXRhID0gY3B1X3RvX2xlMzIoU1RfT0spOworCQkJKihfX2xlMzIgKilod2ZpYi0+ZGF0YSA9IGNwdV90b19sZTMyKFNUX09LKTsKIAkJCWh3ZmliLT5oZWFkZXIuWGZlclN0YXRlIHw9IGNwdV90b19sZTMyKEFkYXB0ZXJQcm9jZXNzZWQpOwogCQl9CiAKQEAgLTEwNyw3ICsxMDcsNyBAQAogCiAJCWlmIChod2ZpYi0+aGVhZGVyLkNvbW1hbmQgPT0gY3B1X3RvX2xlMTYoTnVGaWxlU3lzdGVtKSkKIAkJewotCQkJdTMyICpwc3RhdHVzID0gKHUzMiAqKWh3ZmliLT5kYXRhOworCQkJX19sZTMyICpwc3RhdHVzID0gKF9fbGUzMiAqKWh3ZmliLT5kYXRhOwogCQkJaWYgKCpwc3RhdHVzICYgY3B1X3RvX2xlMzIoMHhmZmZmMDAwMCkpCiAJCQkJKnBzdGF0dXMgPSBjcHVfdG9fbGUzMihTVF9PSyk7CiAJCX0KQEAgLTIwNSw3ICsyMDUsNyBAQAogCQkJLyoKIAkJCSAqCVNldCB0aGUgc3RhdHVzIG9mIHRoaXMgRklCCiAJCQkgKi8KLQkJCSoodTMyICopaHdfZmliLT5kYXRhID0gY3B1X3RvX2xlMzIoU1RfT0spOworCQkJKihfX2xlMzIgKilod19maWItPmRhdGEgPSBjcHVfdG9fbGUzMihTVF9PSyk7CiAJCQlmaWJfYWRhcHRlcl9jb21wbGV0ZShmaWIsIHNpemVvZih1MzIpKTsKIAkJCXNwaW5fbG9ja19pcnFzYXZlKHEtPmxvY2ssIGZsYWdzKTsKIAkJfQkJCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYwppbmRleCAyNDJmYTc3Li5mN2U5Yzg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMKQEAgLTIxNSw3ICsyMTUsNyBAQAogICoJUmV0dXJucyBhIHN0YXRpYyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgZGV2aWNlIGluIHF1ZXN0aW9uCiAgKi8KIAotY29uc3QgY2hhciAqYWFjX2luZm8oc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QpCitzdGF0aWMgY29uc3QgY2hhciAqYWFjX2luZm8oc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QpCiB7CiAJc3RydWN0IGFhY19kZXYgKmRldiA9IChzdHJ1Y3QgYWFjX2RldiAqKXNob3N0LT5ob3N0ZGF0YTsKIAlyZXR1cm4gYWFjX2RyaXZlcnNbZGV2LT5jYXJkdHlwZV0ubmFtZTsKQEAgLTI4OCw3ICsyODgsNyBAQAogCSAqCXRyYW5zbGF0aW9ucyAoIDY0LzMyLCAxMjgvMzIsIDI1NS82MyApLgogCSAqLwogCWJ1ZiA9IHNjc2lfYmlvc19wdGFibGUoYmRldik7Ci0JaWYoKih1bnNpZ25lZCBzaG9ydCAqKShidWYgKyAweDQwKSA9PSBjcHVfdG9fbGUxNigweGFhNTUpKSB7CisJaWYoKihfX2xlMTYgKikoYnVmICsgMHg0MCkgPT0gY3B1X3RvX2xlMTYoMHhhYTU1KSkgewogCQlzdHJ1Y3QgcGFydGl0aW9uICpmaXJzdCA9IChzdHJ1Y3QgcGFydGl0aW9uICogKWJ1ZjsKIAkJc3RydWN0IHBhcnRpdGlvbiAqZW50cnkgPSBmaXJzdDsKIAkJaW50IHNhdmVkX2N5bGluZGVycyA9IHBhcmFtLT5jeWxpbmRlcnM7CkBAIC0zNDcsMTAgKzM0NywxNiBAQAogCiBzdGF0aWMgaW50IGFhY19zbGF2ZV9jb25maWd1cmUoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2KQogeworCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3QgPSBzZGV2LT5ob3N0OworCiAJaWYgKHNkZXYtPnRhZ2dlZF9zdXBwb3J0ZWQpCiAJCXNjc2lfYWRqdXN0X3F1ZXVlX2RlcHRoKHNkZXYsIE1TR19PUkRFUkVEX1RBRywgMTI4KTsKIAllbHNlCiAJCXNjc2lfYWRqdXN0X3F1ZXVlX2RlcHRoKHNkZXYsIDAsIDEpOworCisJaWYgKGhvc3QtPm1heF9zZWN0b3JzIDwgQUFDX01BWF8zMkJJVF9TR0JDT1VOVCkKKwkJYmxrX3F1ZXVlX21heF9zZWdtZW50X3NpemUoc2Rldi0+cmVxdWVzdF9xdWV1ZSwgNjU1MzYpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM2MSwxNCArMzY3LDYgQEAKIH0KIAogLyoKLSAqIFhYWDogZG9lcyBhYWMgcmVhbGx5IG5lZWQgbm8gZXJyb3IgaGFuZGxpbmc/PwotICovCi1zdGF0aWMgaW50IGFhY19laF9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQotLyoKICAqCWFhY19laF9yZXNldAktIFJlc2V0IGNvbW1hbmQgaGFuZGxpbmcKICAqCUBzY3NpX2NtZDoJU0NTSSBjb21tYW5kIGJsb2NrIGNhdXNpbmcgdGhlIHJlc2V0CiAgKgpAQCAtMzg2LDEwICszODQsMTMgQEAKIAkJCQkJQUFDX0RSSVZFUk5BTUUpOwogCiAKKwlzcGluX2xvY2tfaXJxKGhvc3QtPmhvc3RfbG9jayk7CisKIAlhYWMgPSAoc3RydWN0IGFhY19kZXYgKilob3N0LT5ob3N0ZGF0YTsKIAlpZiAoYWFjX2FkYXB0ZXJfY2hlY2tfaGVhbHRoKGFhYykpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogSG9zdCBhZGFwdGVyIGFwcGVhcnMgZGVhZFxuIiwgCiAJCQkJQUFDX0RSSVZFUk5BTUUpOworCQlzcGluX3VubG9ja19pcnEoaG9zdC0+aG9zdF9sb2NrKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCS8qCkBAIC00MjAsNiArNDIxLDcgQEAKIAkJc3NsZWVwKDEpOwogCQlzcGluX2xvY2tfaXJxKGhvc3QtPmhvc3RfbG9jayk7CiAJfQorCXNwaW5fdW5sb2NrX2lycShob3N0LT5ob3N0X2xvY2spOwogCXByaW50ayhLRVJOX0VSUiAiJXM6IFNDU0kgYnVzIGFwcGVhcnMgaHVuZ1xuIiwgQUFDX0RSSVZFUk5BTUUpOwogCXJldHVybiAtRVRJTUVET1VUOwogfQpAQCAtNDM5LDExICs0NDEsMTEgQEAKIHN0YXRpYyBpbnQgYWFjX2NmZ19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXN0cnVjdCBhYWNfZGV2ICphYWM7Ci0JdW5zaWduZWQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCXVuc2lnbmVkIG1pbm9yX251bWJlciA9IGltaW5vcihpbm9kZSk7CiAJaW50IGVyciA9IC1FTk9ERVY7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFhYywgJmFhY19kZXZpY2VzLCBlbnRyeSkgewotCQlpZiAoYWFjLT5pZCA9PSBtaW5vcikgeworCQlpZiAoYWFjLT5pZCA9PSBtaW5vcl9udW1iZXIpIHsKIAkJCWZpbGUtPnByaXZhdGVfZGF0YSA9IGFhYzsKIAkJCWVyciA9IDA7CiAJCQlicmVhazsKQEAgLTQ4OSw2ICs0OTEsNyBAQAogCWNhc2UgRlNBQ1RMX0RFTEVURV9ESVNLOgogCWNhc2UgRlNBQ1RMX0ZPUkNFX0RFTEVURV9ESVNLOgogCWNhc2UgRlNBQ1RMX0dFVF9DT05UQUlORVJTOiAKKwljYXNlIEZTQUNUTF9TRU5EX0xBUkdFX0ZJQjoKIAkJcmV0ID0gYWFjX2RvX2lvY3RsKGRldiwgY21kLCAodm9pZCBfX3VzZXIgKilhcmcpOwogCQlicmVhazsKIApAQCAtNTI2LDYgKzUyOSwxMzQgQEAKIH0KICNlbmRpZgogCitzdGF0aWMgc3NpemVfdCBhYWNfc2hvd19tb2RlbChzdHJ1Y3QgY2xhc3NfZGV2aWNlICpjbGFzc19kZXYsCisJCWNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgYWFjX2RldiAqZGV2ID0gKHN0cnVjdCBhYWNfZGV2KiljbGFzc190b19zaG9zdChjbGFzc19kZXYpLT5ob3N0ZGF0YTsKKwlpbnQgbGVuOworCisJbGVuID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlc1xuIiwKKwkJICBhYWNfZHJpdmVyc1tkZXYtPmNhcmR0eXBlXS5tb2RlbCk7CisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIHNzaXplX3QgYWFjX3Nob3dfdmVuZG9yKHN0cnVjdCBjbGFzc19kZXZpY2UgKmNsYXNzX2RldiwKKwkJY2hhciAqYnVmKQoreworCXN0cnVjdCBhYWNfZGV2ICpkZXYgPSAoc3RydWN0IGFhY19kZXYqKWNsYXNzX3RvX3Nob3N0KGNsYXNzX2RldiktPmhvc3RkYXRhOworCWludCBsZW47CisKKwlsZW4gPSBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLAorCQkgIGFhY19kcml2ZXJzW2Rldi0+Y2FyZHR5cGVdLnZuYW1lKTsKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3NpemVfdCBhYWNfc2hvd19rZXJuZWxfdmVyc2lvbihzdHJ1Y3QgY2xhc3NfZGV2aWNlICpjbGFzc19kZXYsCisJCWNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgYWFjX2RldiAqZGV2ID0gKHN0cnVjdCBhYWNfZGV2KiljbGFzc190b19zaG9zdChjbGFzc19kZXYpLT5ob3N0ZGF0YTsKKwlpbnQgbGVuLCB0bXA7CisKKwl0bXAgPSBsZTMyX3RvX2NwdShkZXYtPmFkYXB0ZXJfaW5mby5rZXJuZWxyZXYpOworCWxlbiA9IHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWQuJWQtJWRbJWRdXG4iLCAKKwkgIHRtcCA+PiAyNCwgKHRtcCA+PiAxNikgJiAweGZmLCB0bXAgJiAweGZmLAorCSAgbGUzMl90b19jcHUoZGV2LT5hZGFwdGVyX2luZm8ua2VybmVsYnVpbGQpKTsKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3NpemVfdCBhYWNfc2hvd19tb25pdG9yX3ZlcnNpb24oc3RydWN0IGNsYXNzX2RldmljZSAqY2xhc3NfZGV2LAorCQljaGFyICpidWYpCit7CisJc3RydWN0IGFhY19kZXYgKmRldiA9IChzdHJ1Y3QgYWFjX2RldiopY2xhc3NfdG9fc2hvc3QoY2xhc3NfZGV2KS0+aG9zdGRhdGE7CisJaW50IGxlbiwgdG1wOworCisJdG1wID0gbGUzMl90b19jcHUoZGV2LT5hZGFwdGVyX2luZm8ubW9uaXRvcnJldik7CisJbGVuID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZC4lZC0lZFslZF1cbiIsIAorCSAgdG1wID4+IDI0LCAodG1wID4+IDE2KSAmIDB4ZmYsIHRtcCAmIDB4ZmYsCisJICBsZTMyX3RvX2NwdShkZXYtPmFkYXB0ZXJfaW5mby5tb25pdG9yYnVpbGQpKTsKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3NpemVfdCBhYWNfc2hvd19iaW9zX3ZlcnNpb24oc3RydWN0IGNsYXNzX2RldmljZSAqY2xhc3NfZGV2LAorCQljaGFyICpidWYpCit7CisJc3RydWN0IGFhY19kZXYgKmRldiA9IChzdHJ1Y3QgYWFjX2RldiopY2xhc3NfdG9fc2hvc3QoY2xhc3NfZGV2KS0+aG9zdGRhdGE7CisJaW50IGxlbiwgdG1wOworCisJdG1wID0gbGUzMl90b19jcHUoZGV2LT5hZGFwdGVyX2luZm8uYmlvc3Jldik7CisJbGVuID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZC4lZC0lZFslZF1cbiIsIAorCSAgdG1wID4+IDI0LCAodG1wID4+IDE2KSAmIDB4ZmYsIHRtcCAmIDB4ZmYsCisJICBsZTMyX3RvX2NwdShkZXYtPmFkYXB0ZXJfaW5mby5iaW9zYnVpbGQpKTsKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3NpemVfdCBhYWNfc2hvd19zZXJpYWxfbnVtYmVyKHN0cnVjdCBjbGFzc19kZXZpY2UgKmNsYXNzX2RldiwKKwkJY2hhciAqYnVmKQoreworCXN0cnVjdCBhYWNfZGV2ICpkZXYgPSAoc3RydWN0IGFhY19kZXYqKWNsYXNzX3RvX3Nob3N0KGNsYXNzX2RldiktPmhvc3RkYXRhOworCWludCBsZW4gPSAwOworCisJaWYgKGxlMzJfdG9fY3B1KGRldi0+YWRhcHRlcl9pbmZvLnNlcmlhbFswXSkgIT0gMHhCQUQwKQorCQlsZW4gPSBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiV4XG4iLAorCQkgIGxlMzJfdG9fY3B1KGRldi0+YWRhcHRlcl9pbmZvLnNlcmlhbFswXSkpOworCXJldHVybiBsZW47Cit9CisKKworc3RhdGljIHN0cnVjdCBjbGFzc19kZXZpY2VfYXR0cmlidXRlIGFhY19tb2RlbCA9IHsKKwkuYXR0ciA9IHsKKwkJLm5hbWUgPSAibW9kZWwiLAorCQkubW9kZSA9IFNfSVJVR08sCisJfSwKKwkuc2hvdyA9IGFhY19zaG93X21vZGVsLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xhc3NfZGV2aWNlX2F0dHJpYnV0ZSBhYWNfdmVuZG9yID0geworCS5hdHRyID0geworCQkubmFtZSA9ICJ2ZW5kb3IiLAorCQkubW9kZSA9IFNfSVJVR08sCisJfSwKKwkuc2hvdyA9IGFhY19zaG93X3ZlbmRvciwKK307CitzdGF0aWMgc3RydWN0IGNsYXNzX2RldmljZV9hdHRyaWJ1dGUgYWFjX2tlcm5lbF92ZXJzaW9uID0geworCS5hdHRyID0geworCQkubmFtZSA9ICJoYmFfa2VybmVsX3ZlcnNpb24iLAorCQkubW9kZSA9IFNfSVJVR08sCisJfSwKKwkuc2hvdyA9IGFhY19zaG93X2tlcm5lbF92ZXJzaW9uLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xhc3NfZGV2aWNlX2F0dHJpYnV0ZSBhYWNfbW9uaXRvcl92ZXJzaW9uID0geworCS5hdHRyID0geworCQkubmFtZSA9ICJoYmFfbW9uaXRvcl92ZXJzaW9uIiwKKwkJLm1vZGUgPSBTX0lSVUdPLAorCX0sCisJLnNob3cgPSBhYWNfc2hvd19tb25pdG9yX3ZlcnNpb24sCit9Oworc3RhdGljIHN0cnVjdCBjbGFzc19kZXZpY2VfYXR0cmlidXRlIGFhY19iaW9zX3ZlcnNpb24gPSB7CisJLmF0dHIgPSB7CisJCS5uYW1lID0gImhiYV9iaW9zX3ZlcnNpb24iLAorCQkubW9kZSA9IFNfSVJVR08sCisJfSwKKwkuc2hvdyA9IGFhY19zaG93X2Jpb3NfdmVyc2lvbiwKK307CitzdGF0aWMgc3RydWN0IGNsYXNzX2RldmljZV9hdHRyaWJ1dGUgYWFjX3NlcmlhbF9udW1iZXIgPSB7CisJLmF0dHIgPSB7CisJCS5uYW1lID0gInNlcmlhbF9udW1iZXIiLAorCQkubW9kZSA9IFNfSVJVR08sCisJfSwKKwkuc2hvdyA9IGFhY19zaG93X3NlcmlhbF9udW1iZXIsCit9OworCitzdGF0aWMgc3RydWN0IGNsYXNzX2RldmljZV9hdHRyaWJ1dGUgKmFhY19hdHRyc1tdID0geworCSZhYWNfbW9kZWwsCisJJmFhY192ZW5kb3IsCisJJmFhY19rZXJuZWxfdmVyc2lvbiwKKwkmYWFjX21vbml0b3JfdmVyc2lvbiwKKwkmYWFjX2Jpb3NfdmVyc2lvbiwKKwkmYWFjX3NlcmlhbF9udW1iZXIsCisJTlVMTAorfTsKKworCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBhYWNfY2ZnX2ZvcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pb2N0bAkJPSBhYWNfY2ZnX2lvY3RsLApAQCAtNTM4LDcgKzY2OSw3IEBACiBzdGF0aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBhYWNfZHJpdmVyX3RlbXBsYXRlID0gewogCS5tb2R1bGUJCQkJPSBUSElTX01PRFVMRSwKIAkubmFtZSAgICAgICAgICAgCQk9ICJBQUMiLAotCS5wcm9jX25hbWUJCQk9ICJhYWNyYWlkIiwKKwkucHJvY19uYW1lCQkJPSBBQUNfRFJJVkVSTkFNRSwKIAkuaW5mbyAgICAgICAgICAgCQk9IGFhY19pbmZvLAogCS5pb2N0bCAgICAgICAgICAJCT0gYWFjX2lvY3RsLAogI2lmZGVmIENPTkZJR19DT01QQVQKQEAgLTU0Niw4ICs2NzcsOCBAQAogI2VuZGlmCiAJLnF1ZXVlY29tbWFuZCAgIAkJPSBhYWNfcXVldWVjb21tYW5kLAogCS5iaW9zX3BhcmFtICAgICAJCT0gYWFjX2Jpb3NwYXJtLAkKKwkuc2hvc3RfYXR0cnMJCQk9IGFhY19hdHRycywKIAkuc2xhdmVfY29uZmlndXJlCQk9IGFhY19zbGF2ZV9jb25maWd1cmUsCi0JLmVoX2Fib3J0X2hhbmRsZXIJCT0gYWFjX2VoX2Fib3J0LAogCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJCT0gYWFjX2VoX3Jlc2V0LAogCS5jYW5fcXVldWUgICAgICAJCT0gQUFDX05VTV9JT19GSUIsCQogCS50aGlzX2lkICAgICAgICAJCT0gMTYsCkBAIC02MTIsNyArNzQzLDcgQEAKIAlhYWMtPmNhcmR0eXBlID0gIGluZGV4OwogCUlOSVRfTElTVF9IRUFEKCZhYWMtPmVudHJ5KTsKIAotCWFhYy0+ZmlicyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBmaWIpICogQUFDX05VTV9GSUIsIEdGUF9LRVJORUwpOworCWFhYy0+ZmlicyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBmaWIpICogKHNob3N0LT5jYW5fcXVldWUgKyBBQUNfTlVNX01HVF9GSUIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWFhYy0+ZmlicykKIAkJZ290byBvdXRfZnJlZV9ob3N0OwogCXNwaW5fbG9ja19pbml0KCZhYWMtPmZpYl9sb2NrKTsKQEAgLTYzMiw2ICs3NjMsMjQgQEAKIAlhYWNfZ2V0X2FkYXB0ZXJfaW5mbyhhYWMpOwogCiAJLyoKKyAJICogTGV0cyBvdmVycmlkZSBuZWdvdGlhdGlvbnMgYW5kIGRyb3AgdGhlIG1heGltdW0gU0cgbGltaXQgdG8gMzQKKyAJICovCisgCWlmICgoYWFjX2RyaXZlcnNbaW5kZXhdLnF1aXJrcyAmIEFBQ19RVUlSS18zNFNHKSAmJiAKKwkJCShhYWMtPnNjc2lfaG9zdF9wdHItPnNnX3RhYmxlc2l6ZSA+IDM0KSkgeworIAkJYWFjLT5zY3NpX2hvc3RfcHRyLT5zZ190YWJsZXNpemUgPSAzNDsKKyAJCWFhYy0+c2NzaV9ob3N0X3B0ci0+bWF4X3NlY3RvcnMKKyAJCSAgPSAoYWFjLT5zY3NpX2hvc3RfcHRyLT5zZ190YWJsZXNpemUgKiA4KSArIDExMjsKKyAJfQorCisJLyoKKwkgKiBGaXJ3YXJlIHByaW50ZiB3b3JrcyBvbmx5IHdpdGggb2xkZXIgZmlybXdhcmUuCisJICovCisJaWYgKGFhY19kcml2ZXJzW2luZGV4XS5xdWlya3MgJiBBQUNfUVVJUktfMzRTRykgCisJCWFhYy0+cHJpbnRmX2VuYWJsZWQgPSAxOworCWVsc2UKKwkJYWFjLT5wcmludGZfZW5hYmxlZCA9IDA7CisgCisgCS8qCiAJICogbWF4IGNoYW5uZWwgd2lsbCBiZSB0aGUgcGh5c2ljYWwgY2hhbm5lbHMgcGx1cyAxIHZpcnR1YWwgY2hhbm5lbAogCSAqIGFsbCBjb250YWluZXJzIGFyZSBvbiB0aGUgdmlydHVhbCBjaGFubmVsIDAKIAkgKiBwaHlzaWNhbCBjaGFubmVscyBhcmUgYWRkcmVzcyBieSB0aGVpciBhY3R1YWwgcGh5c2ljYWwgbnVtYmVyKzEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL3JrdC5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvcmt0LmMKaW5kZXggMWI4ZWQ0Ny4uN2Q2OGI3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvcmt0LmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvcmt0LmMKQEAgLTk4LDcgKzk4LDkgQEAKICAqCWZvciBpdHMJY29tcGxldGlvbi4KICAqLwogCi1zdGF0aWMgaW50IHJrdF9zeW5jX2NtZChzdHJ1Y3QgYWFjX2RldiAqZGV2LCB1MzIgY29tbWFuZCwgdTMyIHAxLCB1MzIgKnN0YXR1cykKK3N0YXRpYyBpbnQgcmt0X3N5bmNfY21kKHN0cnVjdCBhYWNfZGV2ICpkZXYsIHUzMiBjb21tYW5kLAorCXUzMiBwMSwgdTMyIHAyLCB1MzIgcDMsIHUzMiBwNCwgdTMyIHA1LCB1MzIgcDYsCisJdTMyICpzdGF0dXMsIHUzMiAqcjEsIHUzMiAqcjIsIHUzMiAqcjMsIHUzMiAqcjQpCiB7CiAJdW5zaWduZWQgbG9uZyBzdGFydDsKIAlpbnQgb2s7CkBAIC0xMDcsMTIgKzEwOSwxMiBAQAogCSAqLwogCXJrdF93cml0ZWwoZGV2LCBJbmJvdW5kTWFpbGJveDAsIGNvbW1hbmQpOwogCS8qCi0JICoJV3JpdGUgdGhlIHBhcmFtZXRlcnMgaW50byBNYWlsYm94ZXMgMSAtIDQKKwkgKglXcml0ZSB0aGUgcGFyYW1ldGVycyBpbnRvIE1haWxib3hlcyAxIC0gNgogCSAqLwogCXJrdF93cml0ZWwoZGV2LCBJbmJvdW5kTWFpbGJveDEsIHAxKTsKLQlya3Rfd3JpdGVsKGRldiwgSW5ib3VuZE1haWxib3gyLCAwKTsKLQlya3Rfd3JpdGVsKGRldiwgSW5ib3VuZE1haWxib3gzLCAwKTsKLQlya3Rfd3JpdGVsKGRldiwgSW5ib3VuZE1haWxib3g0LCAwKTsKKwlya3Rfd3JpdGVsKGRldiwgSW5ib3VuZE1haWxib3gyLCBwMik7CisJcmt0X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94MywgcDMpOworCXJrdF93cml0ZWwoZGV2LCBJbmJvdW5kTWFpbGJveDQsIHA0KTsKIAkvKgogCSAqCUNsZWFyIHRoZSBzeW5jaCBjb21tYW5kIGRvb3JiZWxsIHRvIHN0YXJ0IG9uIGEgY2xlYW4gc2xhdGUuCiAJICovCkBAIC0xNjksNiArMTcxLDE0IEBACiAJICovCiAJaWYgKHN0YXR1cykKIAkJKnN0YXR1cyA9IHJrdF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzBdKTsKKwlpZiAocjEpCisJCSpyMSA9IHJrdF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzFdKTsKKwlpZiAocjIpCisJCSpyMiA9IHJrdF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzJdKTsKKwlpZiAocjMpCisJCSpyMyA9IHJrdF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzNdKTsKKwlpZiAocjQpCisJCSpyNCA9IHJrdF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzRdKTsKIAkvKgogCSAqCUNsZWFyIHRoZSBzeW5jaCBjb21tYW5kIGRvb3JiZWxsLgogCSAqLwpAQCAtMTkwLDggKzIwMCw4IEBACiAKIHN0YXRpYyB2b2lkIGFhY19ya3RfaW50ZXJydXB0X2FkYXB0ZXIoc3RydWN0IGFhY19kZXYgKmRldikKIHsKLQl1MzIgcmV0OwotCXJrdF9zeW5jX2NtZChkZXYsIEJSRUFLUE9JTlRfUkVRVUVTVCwgMCwgJnJldCk7CisJcmt0X3N5bmNfY21kKGRldiwgQlJFQUtQT0lOVF9SRVFVRVNULCAwLCAwLCAwLCAwLCAwLCAwLAorCSAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CiB9CiAKIC8qKgpAQCAtMjIwLDcgKzIzMCw4IEBACiAJCXJrdF93cml0ZWwoZGV2LCBNVW5pdC5JRFIsSU5CT1VORERPT1JCRUxMXzMpOwogCQlicmVhazsKIAljYXNlIEhvc3RTaHV0ZG93bjoKLS8vCQlya3Rfc3luY19jbWQoZGV2LCBIT1NUX0NSQVNISU5HLCAwLCAwLCAwLCAwLCAmcmV0KTsKKy8vCQlya3Rfc3luY19jbWQoZGV2LCBIT1NUX0NSQVNISU5HLCAwLCAwLCAwLCAwLCAwLCAwLAorLy8JCSAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJCWJyZWFrOwogCWNhc2UgRmFzdElvOgogCQlya3Rfd3JpdGVsKGRldiwgTVVuaXQuSURSLElOQk9VTkRET09SQkVMTF82KTsKQEAgLTI0MywxNyArMjU0LDExIEBACiAKIHN0YXRpYyB2b2lkIGFhY19ya3Rfc3RhcnRfYWRhcHRlcihzdHJ1Y3QgYWFjX2RldiAqZGV2KQogewotCXUzMiBzdGF0dXM7CiAJc3RydWN0IGFhY19pbml0ICppbml0OwogCiAJaW5pdCA9IGRldi0+aW5pdDsKIAlpbml0LT5Ib3N0RWxhcHNlZFNlY29uZHMgPSBjcHVfdG9fbGUzMihnZXRfc2Vjb25kcygpKTsKIAkvKgotCSAqCVRlbGwgdGhlIGFkYXB0ZXIgd2UgYXJlIGJhY2sgYW5kIHVwIGFuZCBydW5uaW5nIHNvIGl0IHdpbGwgc2NhbgotCSAqCWl0cyBjb21tYW5kIHF1ZXVlcyBhbmQgZW5hYmxlIG91ciBpbnRlcnJ1cHRzCi0JICovCi0JZGV2LT5pcnFfbWFzayA9IChEb29yQmVsbFByaW50ZlJlYWR5IHwgT1VUQk9VTkRET09SQkVMTF8xIHwgT1VUQk9VTkRET09SQkVMTF8yIHwgT1VUQk9VTkRET09SQkVMTF8zIHwgT1VUQk9VTkRET09SQkVMTF80KTsKLQkvKgogCSAqCUZpcnN0IGNsZWFyIG91dCBhbGwgaW50ZXJydXB0cy4gIFRoZW4gZW5hYmxlIHRoZSBvbmUncyB0aGF0IHdlCiAJICoJY2FuIGhhbmRsZS4KIAkgKi8KQEAgLTI2Myw3ICsyNjgsOCBAQAogCXJrdF93cml0ZWIoZGV2LCBNVW5pdC5PSU1SLCBkZXYtPk9JTVIgPSAweGZiKTsKIAogCS8vIFdlIGNhbiBvbmx5IHVzZSBhIDMyIGJpdCBhZGRyZXNzIGhlcmUKLQlya3Rfc3luY19jbWQoZGV2LCBJTklUX1NUUlVDVF9CQVNFX0FERFJFU1MsICh1MzIpKHVsb25nKWRldi0+aW5pdF9wYSwgJnN0YXR1cyk7CisJcmt0X3N5bmNfY21kKGRldiwgSU5JVF9TVFJVQ1RfQkFTRV9BRERSRVNTLCAodTMyKSh1bG9uZylkZXYtPmluaXRfcGEsCisJICAwLCAwLCAwLCAwLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKIH0KIAogLyoqCkBAIC0yODgsOCArMjk0LDggQEAKIAlpZiAoc3RhdHVzICYgS0VSTkVMX1BBTklDKSB7CiAJCWNoYXIgKiBidWZmZXI7CiAJCXN0cnVjdCBQT1NUU1RBVFVTIHsKLQkJCXUzMiBQb3N0X0NvbW1hbmQ7Ci0JCQl1MzIgUG9zdF9BZGRyZXNzOworCQkJX19sZTMyIFBvc3RfQ29tbWFuZDsKKwkJCV9fbGUzMiBQb3N0X0FkZHJlc3M7CiAJCX0gKiBwb3N0OwogCQlkbWFfYWRkcl90IHBhZGRyLCBiYWRkcjsKIAkJaW50IHJldDsKQEAgLTMxMCw3ICszMTYsOCBAQAogCQlwb3N0LT5Qb3N0X0NvbW1hbmQgPSBjcHVfdG9fbGUzMihDT01NQU5EX1BPU1RfUkVTVUxUUyk7CiAgICAgICAgICAgICAgICAgcG9zdC0+UG9zdF9BZGRyZXNzID0gY3B1X3RvX2xlMzIoYmFkZHIpOwogICAgICAgICAgICAgICAgIHJrdF93cml0ZWwoZGV2LCBNVW5pdC5JTVJ4WzBdLCBwYWRkcik7Ci0gICAgICAgICAgICAgICAgcmt0X3N5bmNfY21kKGRldiwgQ09NTUFORF9QT1NUX1JFU1VMVFMsIGJhZGRyLCAmc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBya3Rfc3luY19jbWQoZGV2LCBDT01NQU5EX1BPU1RfUkVTVUxUUywgYmFkZHIsIDAsIDAsIDAsIDAsIDAsCisJCSAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJCXBjaV9mcmVlX2NvbnNpc3RlbnQoZGV2LT5wZGV2LCBzaXplb2Yoc3RydWN0IFBPU1RTVEFUVVMpLAogCQkgIHBvc3QsIHBhZGRyKTsKICAgICAgICAgICAgICAgICBpZiAoKGJ1ZmZlclswXSA9PSAnMCcpICYmIChidWZmZXJbMV0gPT0gJ3gnKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvcnguYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL3J4LmMKaW5kZXggNjMwYjk5ZS4uMWZmMjVmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvcnguYworKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9yeC5jCkBAIC02Myw3ICs2Myw3IEBACiAJewogCQliZWxsYml0cyA9IHJ4X3JlYWRsKGRldiwgT3V0Ym91bmREb29yYmVsbFJlZyk7CiAJCWlmIChiZWxsYml0cyAmIERvb3JCZWxsUHJpbnRmUmVhZHkpIHsKLQkJCWFhY19wcmludGYoZGV2LCBsZTMyX3RvX2NwdShyeF9yZWFkbCAoZGV2LCBJbmRleFJlZ3MuTWFpbGJveFs1XSkpKTsKKwkJCWFhY19wcmludGYoZGV2LCByeF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzVdKSk7CiAJCQlyeF93cml0ZWwoZGV2LCBNVW5pdC5PRFIsRG9vckJlbGxQcmludGZSZWFkeSk7CiAJCQlyeF93cml0ZWwoZGV2LCBJbmJvdW5kRG9vcmJlbGxSZWcsRG9vckJlbGxQcmludGZEb25lKTsKIAkJfQpAQCAtOTgsNyArOTgsOSBAQAogICoJZm9yIGl0cwljb21wbGV0aW9uLgogICovCiAKLXN0YXRpYyBpbnQgcnhfc3luY19jbWQoc3RydWN0IGFhY19kZXYgKmRldiwgdTMyIGNvbW1hbmQsIHUzMiBwMSwgdTMyICpzdGF0dXMpCitzdGF0aWMgaW50IHJ4X3N5bmNfY21kKHN0cnVjdCBhYWNfZGV2ICpkZXYsIHUzMiBjb21tYW5kLAorCXUzMiBwMSwgdTMyIHAyLCB1MzIgcDMsIHUzMiBwNCwgdTMyIHA1LCB1MzIgcDYsCisJdTMyICpzdGF0dXMsIHUzMiAqIHIxLCB1MzIgKiByMiwgdTMyICogcjMsIHUzMiAqIHI0KQogewogCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CiAJaW50IG9rOwpAQCAtMTA3LDEyICsxMDksMTIgQEAKIAkgKi8KIAlyeF93cml0ZWwoZGV2LCBJbmJvdW5kTWFpbGJveDAsIGNvbW1hbmQpOwogCS8qCi0JICoJV3JpdGUgdGhlIHBhcmFtZXRlcnMgaW50byBNYWlsYm94ZXMgMSAtIDQKKwkgKglXcml0ZSB0aGUgcGFyYW1ldGVycyBpbnRvIE1haWxib3hlcyAxIC0gNgogCSAqLwogCXJ4X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94MSwgcDEpOwotCXJ4X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94MiwgMCk7Ci0Jcnhfd3JpdGVsKGRldiwgSW5ib3VuZE1haWxib3gzLCAwKTsKLQlyeF93cml0ZWwoZGV2LCBJbmJvdW5kTWFpbGJveDQsIDApOworCXJ4X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94MiwgcDIpOworCXJ4X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94MywgcDMpOworCXJ4X3dyaXRlbChkZXYsIEluYm91bmRNYWlsYm94NCwgcDQpOwogCS8qCiAJICoJQ2xlYXIgdGhlIHN5bmNoIGNvbW1hbmQgZG9vcmJlbGwgdG8gc3RhcnQgb24gYSBjbGVhbiBzbGF0ZS4KIAkgKi8KQEAgLTEyMCw3ICsxMjIsNyBAQAogCS8qCiAJICoJRGlzYWJsZSBkb29yYmVsbCBpbnRlcnJ1cHRzCiAJICovCi0Jcnhfd3JpdGViKGRldiwgTVVuaXQuT0lNUiwgZGV2LT5PSU1SIHw9IDB4MDQpOworCXJ4X3dyaXRlYihkZXYsIE1Vbml0Lk9JTVIsIGRldi0+T0lNUiA9IDB4ZmYpOwogCS8qCiAJICoJRm9yY2UgdGhlIGNvbXBsZXRpb24gb2YgdGhlIG1hc2sgcmVnaXN0ZXIgd3JpdGUgYmVmb3JlIGlzc3VpbmcKIAkgKgl0aGUgaW50ZXJydXB0LgpAQCAtMTY5LDYgKzE3MSwxNCBAQAogCSAqLwogCWlmIChzdGF0dXMpCiAJCSpzdGF0dXMgPSByeF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzBdKTsKKwlpZiAocjEpCisJCSpyMSA9IHJ4X3JlYWRsKGRldiwgSW5kZXhSZWdzLk1haWxib3hbMV0pOworCWlmIChyMikKKwkJKnIyID0gcnhfcmVhZGwoZGV2LCBJbmRleFJlZ3MuTWFpbGJveFsyXSk7CisJaWYgKHIzKQorCQkqcjMgPSByeF9yZWFkbChkZXYsIEluZGV4UmVncy5NYWlsYm94WzNdKTsKKwlpZiAocjQpCisJCSpyNCA9IHJ4X3JlYWRsKGRldiwgSW5kZXhSZWdzLk1haWxib3hbNF0pOwogCS8qCiAJICoJQ2xlYXIgdGhlIHN5bmNoIGNvbW1hbmQgZG9vcmJlbGwuCiAJICovCkBAIC0xOTAsOCArMjAwLDcgQEAKIAogc3RhdGljIHZvaWQgYWFjX3J4X2ludGVycnVwdF9hZGFwdGVyKHN0cnVjdCBhYWNfZGV2ICpkZXYpCiB7Ci0JdTMyIHJldDsKLQlyeF9zeW5jX2NtZChkZXYsIEJSRUFLUE9JTlRfUkVRVUVTVCwgMCwgJnJldCk7CisJcnhfc3luY19jbWQoZGV2LCBCUkVBS1BPSU5UX1JFUVVFU1QsIDAsIDAsIDAsIDAsIDAsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOwogfQogCiAvKioKQEAgLTIyMCw3ICsyMjksOCBAQAogCQlyeF93cml0ZWwoZGV2LCBNVW5pdC5JRFIsSU5CT1VORERPT1JCRUxMXzMpOwogCQlicmVhazsKIAljYXNlIEhvc3RTaHV0ZG93bjoKLS8vCQlyeF9zeW5jX2NtZChkZXYsIEhPU1RfQ1JBU0hJTkcsIDAsIDAsIDAsIDAsICZyZXQpOworLy8JCXJ4X3N5bmNfY21kKGRldiwgSE9TVF9DUkFTSElORywgMCwgMCwgMCwgMCwgMCwgMCwKKy8vCQkgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOwogCQlicmVhazsKIAljYXNlIEZhc3RJbzoKIAkJcnhfd3JpdGVsKGRldiwgTVVuaXQuSURSLElOQk9VTkRET09SQkVMTF82KTsKQEAgLTI0MywxNyArMjUzLDExIEBACiAKIHN0YXRpYyB2b2lkIGFhY19yeF9zdGFydF9hZGFwdGVyKHN0cnVjdCBhYWNfZGV2ICpkZXYpCiB7Ci0JdTMyIHN0YXR1czsKIAlzdHJ1Y3QgYWFjX2luaXQgKmluaXQ7CiAKIAlpbml0ID0gZGV2LT5pbml0OwogCWluaXQtPkhvc3RFbGFwc2VkU2Vjb25kcyA9IGNwdV90b19sZTMyKGdldF9zZWNvbmRzKCkpOwogCS8qCi0JICoJVGVsbCB0aGUgYWRhcHRlciB3ZSBhcmUgYmFjayBhbmQgdXAgYW5kIHJ1bm5pbmcgc28gaXQgd2lsbCBzY2FuCi0JICoJaXRzIGNvbW1hbmQgcXVldWVzIGFuZCBlbmFibGUgb3VyIGludGVycnVwdHMKLQkgKi8KLQlkZXYtPmlycV9tYXNrID0gKERvb3JCZWxsUHJpbnRmUmVhZHkgfCBPVVRCT1VORERPT1JCRUxMXzEgfCBPVVRCT1VORERPT1JCRUxMXzIgfCBPVVRCT1VORERPT1JCRUxMXzMgfCBPVVRCT1VORERPT1JCRUxMXzQpOwotCS8qCiAJICoJRmlyc3QgY2xlYXIgb3V0IGFsbCBpbnRlcnJ1cHRzLiAgVGhlbiBlbmFibGUgdGhlIG9uZSdzIHRoYXQgd2UKIAkgKgljYW4gaGFuZGxlLgogCSAqLwpAQCAtMjYzLDcgKzI2Nyw4IEBACiAJcnhfd3JpdGViKGRldiwgTVVuaXQuT0lNUiwgZGV2LT5PSU1SID0gMHhmYik7CiAKIAkvLyBXZSBjYW4gb25seSB1c2UgYSAzMiBiaXQgYWRkcmVzcyBoZXJlCi0Jcnhfc3luY19jbWQoZGV2LCBJTklUX1NUUlVDVF9CQVNFX0FERFJFU1MsICh1MzIpKHVsb25nKWRldi0+aW5pdF9wYSwgJnN0YXR1cyk7CisJcnhfc3luY19jbWQoZGV2LCBJTklUX1NUUlVDVF9CQVNFX0FERFJFU1MsICh1MzIpKHVsb25nKWRldi0+aW5pdF9wYSwKKwkgIDAsIDAsIDAsIDAsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOwogfQogCiAvKioKQEAgLTI4OCw4ICsyOTMsOCBAQAogCWlmIChzdGF0dXMgJiBLRVJORUxfUEFOSUMpIHsKIAkJY2hhciAqIGJ1ZmZlcjsKIAkJc3RydWN0IFBPU1RTVEFUVVMgewotCQkJdTMyIFBvc3RfQ29tbWFuZDsKLQkJCXUzMiBQb3N0X0FkZHJlc3M7CisJCQlfX2xlMzIgUG9zdF9Db21tYW5kOworCQkJX19sZTMyIFBvc3RfQWRkcmVzczsKIAkJfSAqIHBvc3Q7CiAJCWRtYV9hZGRyX3QgcGFkZHIsIGJhZGRyOwogCQlpbnQgcmV0OwpAQCAtMzEwLDcgKzMxNSw4IEBACiAJCXBvc3QtPlBvc3RfQ29tbWFuZCA9IGNwdV90b19sZTMyKENPTU1BTkRfUE9TVF9SRVNVTFRTKTsKIAkJcG9zdC0+UG9zdF9BZGRyZXNzID0gY3B1X3RvX2xlMzIoYmFkZHIpOwogCQlyeF93cml0ZWwoZGV2LCBNVW5pdC5JTVJ4WzBdLCBwYWRkcik7Ci0JCXJ4X3N5bmNfY21kKGRldiwgQ09NTUFORF9QT1NUX1JFU1VMVFMsIGJhZGRyLCAmc3RhdHVzKTsKKwkJcnhfc3luY19jbWQoZGV2LCBDT01NQU5EX1BPU1RfUkVTVUxUUywgYmFkZHIsIDAsIDAsIDAsIDAsIDAsCisJCSAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJCXBjaV9mcmVlX2NvbnNpc3RlbnQoZGV2LT5wZGV2LCBzaXplb2Yoc3RydWN0IFBPU1RTVEFUVVMpLAogCQkgIHBvc3QsIHBhZGRyKTsKIAkJaWYgKChidWZmZXJbMF0gPT0gJzAnKSAmJiAoYnVmZmVyWzFdID09ICd4JykpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL3NhLmMgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9zYS5jCmluZGV4IGJkNmMzMDcuLjA2ODAyNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL3NhLmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvc2EuYwpAQCAtODksNyArODksNyBAQAogICoJTm90aWZ5IHRoZSBhZGFwdGVyIG9mIGFuIGV2ZW50CiAgKi8KICAKLXZvaWQgYWFjX3NhX25vdGlmeV9hZGFwdGVyKHN0cnVjdCBhYWNfZGV2ICpkZXYsIHUzMiBldmVudCkKK3N0YXRpYyB2b2lkIGFhY19zYV9ub3RpZnlfYWRhcHRlcihzdHJ1Y3QgYWFjX2RldiAqZGV2LCB1MzIgZXZlbnQpCiB7CiAJc3dpdGNoIChldmVudCkgewogCkBAIC0xMDYsNyArMTA2LDEwIEBACiAJCXNhX3dyaXRldyhkZXYsIERvb3JiZWxsUmVnX3MsRE9PUkJFTExfMyk7CiAJCWJyZWFrOwogCWNhc2UgSG9zdFNodXRkb3duOgotCQkvL3NhX3N5bmNfY21kKGRldiwgSE9TVF9DUkFTSElORywgMCwgJnJldCk7CisJCS8qCisJCXNhX3N5bmNfY21kKGRldiwgSE9TVF9DUkFTSElORywgMCwgMCwgMCwgMCwgMCwgMCwKKwkJTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJCSovCiAJCWJyZWFrOwogCWNhc2UgRmFzdElvOgogCQlzYV93cml0ZXcoZGV2LCBEb29yYmVsbFJlZ19zLERPT1JCRUxMXzYpOwpAQCAtMTMyLDcgKzEzNSw5IEBACiAgKglmb3IgaXRzCWNvbXBsZXRpb24uCiAgKi8KIAotc3RhdGljIGludCBzYV9zeW5jX2NtZChzdHJ1Y3QgYWFjX2RldiAqZGV2LCB1MzIgY29tbWFuZCwgdTMyIHAxLCB1MzIgKnJldCkKK3N0YXRpYyBpbnQgc2Ffc3luY19jbWQoc3RydWN0IGFhY19kZXYgKmRldiwgdTMyIGNvbW1hbmQsIAorCQl1MzIgcDEsIHUzMiBwMiwgdTMyIHAzLCB1MzIgcDQsIHUzMiBwNSwgdTMyIHA2LAorCQl1MzIgKnJldCwgdTMyICpyMSwgdTMyICpyMiwgdTMyICpyMywgdTMyICpyNCkKIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0OwogIAlpbnQgb2s7CkBAIC0xNDQsOSArMTQ5LDEwIEBACiAJICoJV3JpdGUgdGhlIHBhcmFtZXRlcnMgaW50byBNYWlsYm94ZXMgMSAtIDQKIAkgKi8KIAlzYV93cml0ZWwoZGV2LCBNYWlsYm94MSwgcDEpOwotCXNhX3dyaXRlbChkZXYsIE1haWxib3gyLCAwKTsKLQlzYV93cml0ZWwoZGV2LCBNYWlsYm94MywgMCk7Ci0Jc2Ffd3JpdGVsKGRldiwgTWFpbGJveDQsIDApOworCXNhX3dyaXRlbChkZXYsIE1haWxib3gyLCBwMik7CisJc2Ffd3JpdGVsKGRldiwgTWFpbGJveDMsIHAzKTsKKwlzYV93cml0ZWwoZGV2LCBNYWlsYm94NCwgcDQpOworCiAJLyoKIAkgKglDbGVhciB0aGUgc3luY2ggY29tbWFuZCBkb29yYmVsbCB0byBzdGFydCBvbiBhIGNsZWFuIHNsYXRlLgogCSAqLwpAQCAtMTg4LDYgKzE5NCwxNCBAQAogCSAqLwogCWlmIChyZXQpCiAJCSpyZXQgPSBzYV9yZWFkbChkZXYsIE1haWxib3gwKTsKKwlpZiAocjEpCisJCSpyMSA9IHNhX3JlYWRsKGRldiwgTWFpbGJveDEpOworCWlmIChyMikKKwkJKnIyID0gc2FfcmVhZGwoZGV2LCBNYWlsYm94Mik7CisJaWYgKHIzKQorCQkqcjMgPSBzYV9yZWFkbChkZXYsIE1haWxib3gzKTsKKwlpZiAocjQpCisJCSpyNCA9IHNhX3JlYWRsKGRldiwgTWFpbGJveDQpOwogCXJldHVybiAwOwogfQogCkBAIC0yMDEsNyArMjE1LDggQEAKIHN0YXRpYyB2b2lkIGFhY19zYV9pbnRlcnJ1cHRfYWRhcHRlciAoc3RydWN0IGFhY19kZXYgKmRldikKIHsKIAl1MzIgcmV0OwotCXNhX3N5bmNfY21kKGRldiwgQlJFQUtQT0lOVF9SRVFVRVNULCAwLCAmcmV0KTsKKwlzYV9zeW5jX2NtZChkZXYsIEJSRUFLUE9JTlRfUkVRVUVTVCwgMCwgMCwgMCwgMCwgMCwgMCwKKwkJCSZyZXQsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOwogfQogCiAvKioKQEAgLTIzMCwxMCArMjQ1LDEyIEBACiAJICoJRmlyc3QgY2xlYXIgb3V0IGFsbCBpbnRlcnJ1cHRzLiAgVGhlbiBlbmFibGUgdGhlIG9uZSdzIHRoYXQgCiAJICoJd2UgY2FuIGhhbmRsZS4KIAkgKi8KLQlzYV93cml0ZXcoZGV2LCBTYURiQ1NSLlBSSVNFVElSUU1BU0ssIGNwdV90b19sZTE2KDB4ZmZmZikpOworCXNhX3dyaXRldyhkZXYsIFNhRGJDU1IuUFJJU0VUSVJRTUFTSywgMHhmZmZmKTsKIAlzYV93cml0ZXcoZGV2LCBTYURiQ1NSLlBSSUNMRUFSSVJRTUFTSywgKFByaW50ZlJlYWR5IHwgRE9PUkJFTExfMSB8IERPT1JCRUxMXzIgfCBET09SQkVMTF8zIHwgRE9PUkJFTExfNCkpOwogCS8qIFdlIGNhbiBvbmx5IHVzZSBhIDMyIGJpdCBhZGRyZXNzIGhlcmUgKi8KLQlzYV9zeW5jX2NtZChkZXYsIElOSVRfU1RSVUNUX0JBU0VfQUREUkVTUywgKHUzMikodWxvbmcpZGV2LT5pbml0X3BhLCAmcmV0KTsKKwlzYV9zeW5jX2NtZChkZXYsIElOSVRfU1RSVUNUX0JBU0VfQUREUkVTUywgCisJCQkodTMyKSh1bG9uZylkZXYtPmluaXRfcGEsIDAsIDAsIDAsIDAsIDAsCisJCQkmcmV0LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWhhMTUyeC5jIGIvZHJpdmVycy9zY3NpL2FoYTE1MnguYwppbmRleCA4OGQxMTlmLi42MzBiMTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWhhMTUyeC5jCisrKyBiL2RyaXZlcnMvc2NzaS9haGExNTJ4LmMKQEAgLTEyMjUsOCArMTIyNSw2IEBACiAJfQogCiAJRE9fVU5MT0NLKGZsYWdzKTsKLQotCXNwaW5fbG9ja19pcnEoc2hwbnQtPmhvc3RfbG9jayk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FoYTE1NDIuYyBiL2RyaXZlcnMvc2NzaS9haGExNTQyLmMKaW5kZXggZTk5MjBhMC4uOWVjNDY0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FoYTE1NDIuYworKysgYi9kcml2ZXJzL3Njc2kvYWhhMTU0Mi5jCkBAIC0xMzQ4LDIwICsxMzQ4LDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBhaGExNTQyX2Fib3J0KFNjc2lfQ21uZCAqIFNDcG50KQotewotCi0JLyoKLQkgKiBUaGUgYWJvcnQgY29tbWFuZCBkb2VzIG5vdCBsZWF2ZSB0aGUgZGV2aWNlIGluIGEgY2xlYW4gc3RhdGUgd2hlcmUKLQkgKiAgaXQgaXMgYXZhaWxhYmxlIHRvIGJlIHVzZWQgYWdhaW4uICBVbnRpbCB0aGlzIGdldHMgd29ya2VkIG91dCwgd2UKLQkgKiB3aWxsIGxlYXZlIGl0IGNvbW1lbnRlZCBvdXQuICAKLQkgKi8KLQotCXByaW50ayhLRVJOX0VSUiAiYWhhMTU0Mi5jOiBVbmFibGUgdG8gYWJvcnQgY29tbWFuZCBmb3IgdGFyZ2V0ICVkXG4iLAotCSAgICAgICBTQ3BudC0+ZGV2aWNlLT5pZCk7Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQogLyoKICAqIFRoaXMgaXMgYSBkZXZpY2UgcmVzZXQuICBUaGlzIGlzIGhhbmRsZWQgYnkgc2VuZGluZyBhIHNwZWNpYWwgY29tbWFuZAogICogdG8gdGhlIGRldmljZS4KQEAgLTE0NzgsOCArMTQ2NCw4IEBACiAJICogY2hlY2sgZm9yIHRpbWVvdXQsIGFuZCBpZiB3ZSBhcmUgZG9pbmcgc29tZXRoaW5nIGxpa2UgdGhpcwogCSAqIHdlIGFyZSBwcmV0dHkgZGVzcGVyYXRlIGFueXdheXMuCiAJICovCi0Jc3Bpbl91bmxvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJc3NsZWVwKDQpOworCiAJc3Bpbl9sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCiAJV0FJVChTVEFUVVMoU0NwbnQtPmRldmljZS0+aG9zdC0+aW9fcG9ydCksCkBAIC0xNTE3LDkgKzE1MDMsMTEgQEAKIAkJfQogCX0KIAorCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBTVUNDRVNTOwogCiBmYWlsOgorCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBGQUlMRUQ7CiB9CiAKQEAgLTE1NDIsNyArMTUzMCw2IEBACiAJICogY2hlY2sgZm9yIHRpbWVvdXQsIGFuZCBpZiB3ZSBhcmUgZG9pbmcgc29tZXRoaW5nIGxpa2UgdGhpcwogCSAqIHdlIGFyZSBwcmV0dHkgZGVzcGVyYXRlIGFueXdheXMuCiAJICovCi0Jc3Bpbl91bmxvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJc3NsZWVwKDQpOwogCXNwaW5fbG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIApAQCAtMTU4Niw5ICsxNTczLDExIEBACiAJCX0KIAl9CiAKKwlzcGluX3VubG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gU1VDQ0VTUzsKIAogZmFpbDoKKwlzcGluX3VubG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gRkFJTEVEOwogfQogCkBAIC0xODE3LDcgKzE4MDYsNiBAQAogCS5kZXRlY3QJCQk9IGFoYTE1NDJfZGV0ZWN0LAogCS5yZWxlYXNlCQk9IGFoYTE1NDJfcmVsZWFzZSwKIAkucXVldWVjb21tYW5kCQk9IGFoYTE1NDJfcXVldWVjb21tYW5kLAotCS5laF9hYm9ydF9oYW5kbGVyCT0gYWhhMTU0Ml9hYm9ydCwKIAkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXI9IGFoYTE1NDJfZGV2X3Jlc2V0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlcgk9IGFoYTE1NDJfYnVzX3Jlc2V0LAogCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJPSBhaGExNTQyX2hvc3RfcmVzZXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWhhMTU0Mi5oIGIvZHJpdmVycy9zY3NpL2FoYTE1NDIuaAppbmRleCBjNDAyMzUxLi4zODIxZWUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWhhMTU0Mi5oCisrKyBiL2RyaXZlcnMvc2NzaS9haGExNTQyLmgKQEAgLTEzMyw3ICsxMzMsNiBAQAogCiBzdGF0aWMgaW50IGFoYTE1NDJfZGV0ZWN0KFNjc2lfSG9zdF9UZW1wbGF0ZSAqKTsKIHN0YXRpYyBpbnQgYWhhMTU0Ml9xdWV1ZWNvbW1hbmQoU2NzaV9DbW5kICosIHZvaWQgKCpkb25lKShTY3NpX0NtbmQgKikpOwotc3RhdGljIGludCBhaGExNTQyX2Fib3J0KFNjc2lfQ21uZCAqIFNDcG50KTsKIHN0YXRpYyBpbnQgYWhhMTU0Ml9idXNfcmVzZXQoU2NzaV9DbW5kICogU0NwbnQpOwogc3RhdGljIGludCBhaGExNTQyX2Rldl9yZXNldChTY3NpX0NtbmQgKiBTQ3BudCk7CiBzdGF0aWMgaW50IGFoYTE1NDJfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBTQ3BudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3NzcwX29zbS5jIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzc3MF9vc20uYwppbmRleCA2ODJjYTBiLi5kNGVkNWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3NzcwX29zbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc3NzBfb3NtLmMKQEAgLTQ0LDEwOSArNDQsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vpc2EuaD4KIAotI2RlZmluZSBFSVNBX01GQ1RSX0NIQVIwKElEKSAoY2hhcikoKChJRD4+MjYpICYgMHgxRikgfCAnQCcpICAvKiBCaXRzIDI2LTMwICovCi0jZGVmaW5lIEVJU0FfTUZDVFJfQ0hBUjEoSUQpIChjaGFyKSgoKElEPj4yMSkgJiAweDFGKSB8ICdAJykgIC8qIEJpdHMgMjEtMjUgKi8KLSNkZWZpbmUgRUlTQV9NRkNUUl9DSEFSMihJRCkgKGNoYXIpKCgoSUQ+PjE2KSAmIDB4MUYpIHwgJ0AnKSAgLyogQml0cyAxNi0yMCAqLwotI2RlZmluZSBFSVNBX1BST0RVQ1RfSUQoSUQpICAoc2hvcnQpKChJRD4+NCkgICYgMHhGRkYpICAgICAgICAvKiBCaXRzICA0LTE1ICovCi0jZGVmaW5lIEVJU0FfUkVWSVNJT05fSUQoSUQpICh1aW50OF90KShJRCAmIDB4MEYpICAgICAgICAgICAgIC8qIEJpdHMgIDAtMyAgKi8KLQotc3RhdGljIGludCBhaWM3NzcwX2Vpc2FfZGV2X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldik7Ci1zdGF0aWMgaW50IGFpYzc3NzBfZWlzYV9kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldik7Ci1zdGF0aWMgc3RydWN0IGVpc2FfZHJpdmVyIGFpYzc3NzBfZHJpdmVyID0gewotCS5kcml2ZXIgPSB7Ci0JCS5uYW1lICAgPSAiYWljN3h4eCIsCi0JCS5wcm9iZSAgPSBhaWM3NzcwX2Vpc2FfZGV2X3Byb2JlLAotCQkucmVtb3ZlID0gYWljNzc3MF9laXNhX2Rldl9yZW1vdmUsCi0JfQotfTsKLQotdHlwZWRlZiAgc3RydWN0IGRldmljZSAqYWljNzc3MF9kZXZfdDsKLQotc3RhdGljIGludCBhaWM3NzcwX2xpbnV4X2NvbmZpZyhzdHJ1Y3QgYWljNzc3MF9pZGVudGl0eSAqZW50cnksCi0JCQkJYWljNzc3MF9kZXZfdCBkZXYsIHVfaW50IGVpc2FCYXNlKTsKLQotaW50Ci1haGNfbGludXhfZWlzYV9pbml0KHZvaWQpCi17Ci0Jc3RydWN0IGVpc2FfZGV2aWNlX2lkICplaWQ7Ci0Jc3RydWN0IGFpYzc3NzBfaWRlbnRpdHkgKmlkOwotCWludCBpOwotCi0JaWYgKGFpYzd4eHhfcHJvYmVfZWlzYV92bCA9PSAwKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCS8qCi0JICogTGludXggcmVxdWlyZXMgdGhlIEVJU0EgSURzIHRvIGJlIHNwZWNpZmllZCBpbgotCSAqIHRoZSBFSVNBIElEIHN0cmluZyBmb3JtYXQuICBQZXJmb3JtIHRoZSBjb252ZXJzaW9uCi0JICogYW5kIHNldHVwIGEgdGFibGUgd2l0aCBhIE5VTCB0ZXJtaW5hbCBlbnRyeS4KLQkgKi8KLQlhaWM3NzcwX2RyaXZlci5pZF90YWJsZSA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGVpc2FfZGV2aWNlX2lkKSAqCi0JCQkJCSAoYWhjX251bV9haWM3NzcwX2RldnMgKyAxKSwKLQkJCQkJIE1fREVWQlVGLCBNX05PV0FJVCk7Ci0JaWYgKGFpYzc3NzBfZHJpdmVyLmlkX3RhYmxlID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZm9yIChlaWQgPSAoc3RydWN0IGVpc2FfZGV2aWNlX2lkICopYWljNzc3MF9kcml2ZXIuaWRfdGFibGUsCi0JICAgICBpZCA9IGFpYzc3NzBfaWRlbnRfdGFibGUsIGkgPSAwOwotCSAgICAgaSA8IGFoY19udW1fYWljNzc3MF9kZXZzOyBlaWQrKywgaWQrKywgaSsrKSB7Ci0KLQkJc3ByaW50ZihlaWQtPnNpZywgIiVjJWMlYyUwM1glMDFYIiwKLQkJCUVJU0FfTUZDVFJfQ0hBUjAoaWQtPmZ1bGxfaWQpLAotCQkJRUlTQV9NRkNUUl9DSEFSMShpZC0+ZnVsbF9pZCksCi0JCQlFSVNBX01GQ1RSX0NIQVIyKGlkLT5mdWxsX2lkKSwKLQkJCUVJU0FfUFJPRFVDVF9JRChpZC0+ZnVsbF9pZCksCi0JCQlFSVNBX1JFVklTSU9OX0lEKGlkLT5mdWxsX2lkKSk7Ci0JCWVpZC0+ZHJpdmVyX2RhdGEgPSBpOwotCX0KLQllaWQtPnNpZ1swXSA9IDA7Ci0KLQlyZXR1cm4gZWlzYV9kcml2ZXJfcmVnaXN0ZXIoJmFpYzc3NzBfZHJpdmVyKTsKLX0KLQotdm9pZAotYWhjX2xpbnV4X2Vpc2FfZXhpdCh2b2lkKQotewotCWlmKGFpYzd4eHhfcHJvYmVfZWlzYV92bCAhPSAwICYmIGFpYzc3NzBfZHJpdmVyLmlkX3RhYmxlICE9IE5VTEwpIHsKLQkJZWlzYV9kcml2ZXJfdW5yZWdpc3RlcigmYWljNzc3MF9kcml2ZXIpOwotCQlmcmVlKGFpYzc3NzBfZHJpdmVyLmlkX3RhYmxlLCBNX0RFVkJVRik7Ci0JfQotfQotCi1zdGF0aWMgaW50Ci1haWM3NzcwX2xpbnV4X2NvbmZpZyhzdHJ1Y3QgYWljNzc3MF9pZGVudGl0eSAqZW50cnksIGFpYzc3NzBfZGV2X3QgZGV2LAotCQkgICAgIHVfaW50IGVpc2FCYXNlKQotewotCXN0cnVjdAlhaGNfc29mdGMgKmFoYzsKLQljaGFyCWJ1Zls4MF07Ci0JY2hhciAgICpuYW1lOwotCWludAllcnJvcjsKLQotCS8qCi0JICogQWxsb2NhdGUgYSBzb2Z0YyBmb3IgdGhpcyBjYXJkIGFuZAotCSAqIHNldCBpdCB1cCBmb3IgYXR0YWNobWVudCBieSBvdXIKLQkgKiBjb21tb24gZGV0ZWN0IHJvdXRpbmUuCi0JICovCi0Jc3ByaW50ZihidWYsICJhaGNfZWlzYTolZCIsIGVpc2FCYXNlID4+IDEyKTsKLQluYW1lID0gbWFsbG9jKHN0cmxlbihidWYpICsgMSwgTV9ERVZCVUYsIE1fTk9XQUlUKTsKLQlpZiAobmFtZSA9PSBOVUxMKQotCQlyZXR1cm4gKEVOT01FTSk7Ci0Jc3RyY3B5KG5hbWUsIGJ1Zik7Ci0JYWhjID0gYWhjX2FsbG9jKCZhaWM3eHh4X2RyaXZlcl90ZW1wbGF0ZSwgbmFtZSk7Ci0JaWYgKGFoYyA9PSBOVUxMKQotCQlyZXR1cm4gKEVOT01FTSk7Ci0JZXJyb3IgPSBhaWM3NzcwX2NvbmZpZyhhaGMsIGVudHJ5LCBlaXNhQmFzZSk7Ci0JaWYgKGVycm9yICE9IDApIHsKLQkJYWhjLT5ic2guaW9wb3J0ID0gMDsKLQkJYWhjX2ZyZWUoYWhjKTsKLQkJcmV0dXJuIChlcnJvcik7Ci0JfQotCi0JZGV2LT5kcml2ZXJfZGF0YSA9ICh2b2lkICopYWhjOwotCWlmIChhaWM3eHh4X2RldGVjdF9jb21wbGV0ZSkKLQkJZXJyb3IgPSBhaGNfbGludXhfcmVnaXN0ZXJfaG9zdChhaGMsICZhaWM3eHh4X2RyaXZlcl90ZW1wbGF0ZSk7Ci0JcmV0dXJuIChlcnJvcik7Ci19Ci0KIGludAogYWljNzc3MF9tYXBfcmVnaXN0ZXJzKHN0cnVjdCBhaGNfc29mdGMgKmFoYywgdV9pbnQgcG9ydCkKIHsKQEAgLTE3OCwzNyArNzUsNzkgQEAKIH0KIAogc3RhdGljIGludAotYWljNzc3MF9laXNhX2Rldl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCithaWM3NzcwX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgZWlzYV9kZXZpY2UgKmVkZXY7CisJc3RydWN0IGVpc2FfZGV2aWNlICplZGV2ID0gdG9fZWlzYV9kZXZpY2UoZGV2KTsKKwl1X2ludCBlaXNhQmFzZSA9IGVkZXYtPmJhc2VfYWRkcitBSENfRUlTQV9TTE9UX09GRlNFVDsKKwlzdHJ1Y3QJYWhjX3NvZnRjICphaGM7CisJY2hhcglidWZbODBdOworCWNoYXIgICAqbmFtZTsKKwlpbnQJZXJyb3I7CiAKLQllZGV2ID0gdG9fZWlzYV9kZXZpY2UoZGV2KTsKLQlyZXR1cm4gKGFpYzc3NzBfbGludXhfY29uZmlnKGFpYzc3NzBfaWRlbnRfdGFibGUgKyBlZGV2LT5pZC5kcml2ZXJfZGF0YSwKLQkJCQkgICAgZGV2LCBlZGV2LT5iYXNlX2FkZHIrQUhDX0VJU0FfU0xPVF9PRkZTRVQpKTsKKwlzcHJpbnRmKGJ1ZiwgImFoY19laXNhOiVkIiwgZWlzYUJhc2UgPj4gMTIpOworCW5hbWUgPSBtYWxsb2Moc3RybGVuKGJ1ZikgKyAxLCBNX0RFVkJVRiwgTV9OT1dBSVQpOworCWlmIChuYW1lID09IE5VTEwpCisJCXJldHVybiAoRU5PTUVNKTsKKwlzdHJjcHkobmFtZSwgYnVmKTsKKwlhaGMgPSBhaGNfYWxsb2MoJmFpYzd4eHhfZHJpdmVyX3RlbXBsYXRlLCBuYW1lKTsKKwlpZiAoYWhjID09IE5VTEwpCisJCXJldHVybiAoRU5PTUVNKTsKKwllcnJvciA9IGFpYzc3NzBfY29uZmlnKGFoYywgYWljNzc3MF9pZGVudF90YWJsZSArIGVkZXYtPmlkLmRyaXZlcl9kYXRhLAorCQkJICAgICAgIGVpc2FCYXNlKTsKKwlpZiAoZXJyb3IgIT0gMCkgeworCQlhaGMtPmJzaC5pb3BvcnQgPSAwOworCQlhaGNfZnJlZShhaGMpOworCQlyZXR1cm4gKGVycm9yKTsKKwl9CisKKyAJZGV2X3NldF9kcnZkYXRhKGRldiwgYWhjKTsKKworCWlmIChhaWM3eHh4X2RldGVjdF9jb21wbGV0ZSkKKwkJZXJyb3IgPSBhaGNfbGludXhfcmVnaXN0ZXJfaG9zdChhaGMsICZhaWM3eHh4X2RyaXZlcl90ZW1wbGF0ZSk7CisJcmV0dXJuIChlcnJvcik7CiB9CiAKIHN0YXRpYyBpbnQKLWFpYzc3NzBfZWlzYV9kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKK2FpYzc3NzBfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGM7Ci0JdV9sb25nIGw7CisJc3RydWN0IGFoY19zb2Z0YyAqYWhjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdV9sb25nIHM7CiAKLQkvKgotCSAqIFdlIHNob3VsZCBiZSBhYmxlIHRvIGp1c3QgcGVyZm9ybQotCSAqIHRoZSBmcmVlIGRpcmVjdGx5LCBidXQgY2hlY2sgb3VyCi0JICogbGlzdCBmb3IgZXh0cmEgc2FuaXR5LgotCSAqLwotCWFoY19saXN0X2xvY2soJmwpOwotCWFoYyA9IGFoY19maW5kX3NvZnRjKChzdHJ1Y3QgYWhjX3NvZnRjICopZGV2LT5kcml2ZXJfZGF0YSk7Ci0JaWYgKGFoYyAhPSBOVUxMKSB7Ci0JCXVfbG9uZyBzOworCWFoY19sb2NrKGFoYywgJnMpOworCWFoY19pbnRyX2VuYWJsZShhaGMsIEZBTFNFKTsKKwlhaGNfdW5sb2NrKGFoYywgJnMpOwogCi0JCWFoY19sb2NrKGFoYywgJnMpOwotCQlhaGNfaW50cl9lbmFibGUoYWhjLCBGQUxTRSk7Ci0JCWFoY191bmxvY2soYWhjLCAmcyk7Ci0JCWFoY19mcmVlKGFoYyk7CisJYWhjX2ZyZWUoYWhjKTsKKwlyZXR1cm4gMDsKK30KKyAKK3N0YXRpYyBzdHJ1Y3QgZWlzYV9kZXZpY2VfaWQgYWljNzc3MF9pZHNbXSA9IHsKKwl7ICJBRFA3NzcxIiwgMCB9LCAvKiBBSEEgMjc0eCAqLworCXsgIkFEUDc3NTYiLCAxIH0sIC8qIEFIQSAyODR4IEJJT1MgZW5hYmxlZCAqLworCXsgIkFEUDc3NTciLCAyIH0sIC8qIEFIQSAyODR4IEJJT1MgZGlzYWJsZWQgKi8KKwl7ICJBRFA3NzgyIiwgMyB9LCAvKiBBSEEgMjc0eCBPbGl2ZXR0aSBPRU0gKi8KKwl7ICJBRFA3NzgzIiwgNCB9LCAvKiBBSEEgMjc0eCBPbGl2ZXR0aSBPRU0gKERpZmZlcmVudGlhbCkgKi8KKwl7ICJBRFA3NzcwIiwgNSB9LCAvKiBBSUM3NzcwIGdlbmVyaWMgKi8KKwl7ICIiIH0KK307CisgIAorc3RhdGljIHN0cnVjdCBlaXNhX2RyaXZlciBhaWM3NzcwX2RyaXZlciA9IHsKKwkuaWRfdGFibGUJPSBhaWM3NzcwX2lkcywKKwkuZHJpdmVyID0geworCQkubmFtZSAgID0gImFpYzd4eHgiLAorCQkucHJvYmUgID0gYWljNzc3MF9wcm9iZSwKKwkJLnJlbW92ZSA9IGFpYzc3NzBfcmVtb3ZlLAogCX0KLQlhaGNfbGlzdF91bmxvY2soJmwpOwotCi0JcmV0dXJuICgwKTsKK307CisgIAoraW50CithaGNfbGludXhfZWlzYV9pbml0KHZvaWQpCit7CisJcmV0dXJuIGVpc2FfZHJpdmVyX3JlZ2lzdGVyKCZhaWM3NzcwX2RyaXZlcik7Cit9CisgIAordm9pZAorYWhjX2xpbnV4X2Vpc2FfZXhpdCh2b2lkKQoreworCWVpc2FfZHJpdmVyX3VucmVnaXN0ZXIoJmFpYzc3NzBfZHJpdmVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jCmluZGV4IDdjMDJiN2QuLmM0ZWFhYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYwpAQCAtOTQxLDcgKzk0MSw3IEBACiAJICovCiAJY21kLT5zY3NpX2RvbmUgPSBzY3NpX2RvbmU7CiAKLQlhaGRfbWlkbGF5ZXJfZW50cnlwb2ludF9sb2NrKGFoZCwgJmZsYWdzKTsKKwlhaGRfbG9jayhhaGQsICZmbGFncyk7CiAKIAkvKgogCSAqIENsb3NlIHRoZSByYWNlIG9mIGEgY29tbWFuZCB0aGF0IHdhcyBpbiB0aGUgcHJvY2VzcyBvZgpAQCAtOTU1LDcgKzk1NSw3IEBACiAJCWFoZF9jbWRfc2V0X3RyYW5zYWN0aW9uX3N0YXR1cyhjbWQsIENBTV9SRVFVRVVFX1JFUSk7CiAJCWFoZF9saW51eF9xdWV1ZV9jbWRfY29tcGxldGUoYWhkLCBjbWQpOwogCQlhaGRfc2NoZWR1bGVfY29tcGxldGVxKGFoZCk7Ci0JCWFoZF9taWRsYXllcl9lbnRyeXBvaW50X3VubG9jayhhaGQsICZmbGFncyk7CisJCWFoZF91bmxvY2soYWhkLCAmZmxhZ3MpOwogCQlyZXR1cm4gKDApOwogCX0KIAlkZXYgPSBhaGRfbGludXhfZ2V0X2RldmljZShhaGQsIGNtZC0+ZGV2aWNlLT5jaGFubmVsLApAQCAtOTY1LDcgKzk2NSw3IEBACiAJCWFoZF9jbWRfc2V0X3RyYW5zYWN0aW9uX3N0YXR1cyhjbWQsIENBTV9SRVNSQ19VTkFWQUlMKTsKIAkJYWhkX2xpbnV4X3F1ZXVlX2NtZF9jb21wbGV0ZShhaGQsIGNtZCk7CiAJCWFoZF9zY2hlZHVsZV9jb21wbGV0ZXEoYWhkKTsKLQkJYWhkX21pZGxheWVyX2VudHJ5cG9pbnRfdW5sb2NrKGFoZCwgJmZsYWdzKTsKKwkJYWhkX3VubG9jayhhaGQsICZmbGFncyk7CiAJCXByaW50ZigiJXM6IGFpYzc5eHhfbGludXhfcXVldWUgLSBVbmFibGUgdG8gYWxsb2NhdGUgZGV2aWNlIVxuIiwKIAkJICAgICAgIGFoZF9uYW1lKGFoZCkpOwogCQlyZXR1cm4gKDApOwpAQCAtOTc5LDcgKzk3OSw3IEBACiAJCWRldi0+ZmxhZ3MgfD0gQUhEX0RFVl9PTl9SVU5fTElTVDsKIAkJYWhkX2xpbnV4X3J1bl9kZXZpY2VfcXVldWVzKGFoZCk7CiAJfQotCWFoZF9taWRsYXllcl9lbnRyeXBvaW50X3VubG9jayhhaGQsICZmbGFncyk7CisJYWhkX3VubG9jayhhaGQsICZmbGFncyk7CiAJcmV0dXJuICgwKTsKIH0KIApAQCAtMTUxMSwxNyArMTUxMSwxNyBAQAogCQkgICAgICAgYWhkX25hbWUoYWhkKSwgY21kLT5kZXZpY2UtPmNoYW5uZWwsIGNtZC0+ZGV2aWNlLT5pZCwKIAkJICAgICAgIGNtZC0+ZGV2aWNlLT5sdW4sIGNtZCk7CiAjZW5kaWYKLQlhaGRfbWlkbGF5ZXJfZW50cnlwb2ludF9sb2NrKGFoZCwgJnMpOworCWFoZF9sb2NrKGFoZCwgJnMpOwogCiAJZGV2ID0gYWhkX2xpbnV4X2dldF9kZXZpY2UoYWhkLCBjbWQtPmRldmljZS0+Y2hhbm5lbCwgY21kLT5kZXZpY2UtPmlkLAogCQkJCSAgIGNtZC0+ZGV2aWNlLT5sdW4sIC8qYWxsb2MqL0ZBTFNFKTsKIAlpZiAoZGV2ID09IE5VTEwpIHsKLQkJYWhkX21pZGxheWVyX2VudHJ5cG9pbnRfdW5sb2NrKGFoZCwgJnMpOworCQlhaGRfdW5sb2NrKGFoZCwgJnMpOwogCQlrZnJlZShyZWNvdmVyeV9jbWQpOwogCQlyZXR1cm4gKEZBSUxFRCk7CiAJfQogCWlmICgoc2NiID0gYWhkX2dldF9zY2IoYWhkLCBBSERfTkVWRVJfQ09MX0lEWCkpID09IE5VTEwpIHsKLQkJYWhkX21pZGxheWVyX2VudHJ5cG9pbnRfdW5sb2NrKGFoZCwgJnMpOworCQlhaGRfdW5sb2NrKGFoZCwgJnMpOwogCQlrZnJlZShyZWNvdmVyeV9jbWQpOwogCQlyZXR1cm4gKEZBSUxFRCk7CiAJfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAKIAlzcGluX2xvY2tfaXJxKCZhaGQtPnBsYXRmb3JtX2RhdGEtPnNwaW5fbG9jayk7CiAJYWhkX3NjaGVkdWxlX3J1bnEoYWhkKTsKIAlhaGRfbGludXhfcnVuX2NvbXBsZXRlX3F1ZXVlKGFoZCk7Ci0JYWhkX21pZGxheWVyX2VudHJ5cG9pbnRfdW5sb2NrKGFoZCwgJnMpOworCWFoZF91bmxvY2soYWhkLCAmcyk7CiAJcHJpbnRmKCIlczogRGV2aWNlIHJlc2V0IHJldHVybmluZyAweCV4XG4iLCBhaGRfbmFtZShhaGQpLCByZXR2YWwpOwogCXJldHVybiAocmV0dmFsKTsKIH0KQEAgLTE1OTEsMTEgKzE1OTEsMTEgQEAKIAkJcHJpbnRmKCIlczogQnVzIHJlc2V0IGNhbGxlZCBmb3IgY21kICVwXG4iLAogCQkgICAgICAgYWhkX25hbWUoYWhkKSwgY21kKTsKICNlbmRpZgotCWFoZF9taWRsYXllcl9lbnRyeXBvaW50X2xvY2soYWhkLCAmcyk7CisJYWhkX2xvY2soYWhkLCAmcyk7CiAJZm91bmQgPSBhaGRfcmVzZXRfY2hhbm5lbChhaGQsIGNtZC0+ZGV2aWNlLT5jaGFubmVsICsgJ0EnLAogCQkJCSAgLyppbml0aWF0ZSByZXNldCovVFJVRSk7CiAJYWhkX2xpbnV4X3J1bl9jb21wbGV0ZV9xdWV1ZShhaGQpOwotCWFoZF9taWRsYXllcl9lbnRyeXBvaW50X3VubG9jayhhaGQsICZzKTsKKwlhaGRfdW5sb2NrKGFoZCwgJnMpOwogCiAJaWYgKGJvb3R2ZXJib3NlKQogCQlwcmludGYoIiVzOiBTQ1NJIGJ1cyByZXNldCBkZWxpdmVyZWQuICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmggYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5oCmluZGV4IDYwNWY5MmIuLjc4MjNlNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmgKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uaApAQCAtMTEyLDIzICsxMTIsNiBAQAogI2RlZmluZSBhaGRfbGUzMnRvaCh4KQlsZTMyX3RvX2NwdSh4KQogI2RlZmluZSBhaGRfbGU2NHRvaCh4KQlsZTY0X3RvX2NwdSh4KQogCi0jaWZuZGVmIExJVFRMRV9FTkRJQU4KLSNkZWZpbmUgTElUVExFX0VORElBTiAxMjM0Ci0jZW5kaWYKLQotI2lmbmRlZiBCSUdfRU5ESUFOCi0jZGVmaW5lIEJJR19FTkRJQU4gNDMyMQotI2VuZGlmCi0KLSNpZm5kZWYgQllURV9PUkRFUgotI2lmIGRlZmluZWQoX19CSUdfRU5ESUFOKQotI2RlZmluZSBCWVRFX09SREVSIEJJR19FTkRJQU4KLSNlbmRpZgotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKQotI2RlZmluZSBCWVRFX09SREVSIExJVFRMRV9FTkRJQU4KLSNlbmRpZgotI2VuZGlmIC8qIEJZVEVfT1JERVIgKi8KLQogLyoqKioqKioqKioqKioqKioqKioqKioqKiogQ29uZmlndXJhdGlvbiBEYXRhICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGV4dGVybiB1aW50MzJfdCBhaWM3OXh4X2FsbG93X21lbWlvOwogZXh0ZXJuIGludCBhaWM3OXh4X2RldGVjdF9jb21wbGV0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHguaCBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHguaAppbmRleCA4ZmYxNmZkLi4wOTQ4ZDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4LmgKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eC5oCkBAIC0zNDYsNyArMzQ2LDYgQEAKIAkJCQkJICAqIGNvbnRyb2xsZXIuCiAJCQkJCSAgKi8KIAlBSENfTkVXRUVQUk9NX0ZNVCAgICAgPSAweDQwMDAsCi0JQUhDX1JFU09VUkNFX1NIT1JUQUdFID0gMHg4MDAwLAogCUFIQ19UUUlORklGT19CTE9DS0VEICA9IDB4MTAwMDAsICAvKiBCbG9ja2VkIHdhaXRpbmcgZm9yIEFUSU9zICovCiAJQUhDX0lOVDUwX1NQRUVERkxFWCAgID0gMHgyMDAwMCwgIC8qCiAJCQkJCSAgICogSW50ZXJuYWwgNTBwaW4gY29ubmVjdG9yCkBAIC0xMjAwLDcgKzExOTksNiBAQAogaW50CQkJIGFoY19zdXNwZW5kKHN0cnVjdCBhaGNfc29mdGMgKmFoYyk7IAogaW50CQkJIGFoY19yZXN1bWUoc3RydWN0IGFoY19zb2Z0YyAqYWhjKTsKIHZvaWQJCQkgYWhjX3NvZnRjX2luc2VydChzdHJ1Y3QgYWhjX3NvZnRjICopOwotc3RydWN0IGFoY19zb2Z0YwkqYWhjX2ZpbmRfc29mdGMoc3RydWN0IGFoY19zb2Z0YyAqYWhjKTsKIHZvaWQJCQkgYWhjX3NldF91bml0KHN0cnVjdCBhaGNfc29mdGMgKiwgaW50KTsKIHZvaWQJCQkgYWhjX3NldF9uYW1lKHN0cnVjdCBhaGNfc29mdGMgKiwgY2hhciAqKTsKIHZvaWQJCQkgYWhjX2FsbG9jX3NjYnMoc3RydWN0IGFoY19zb2Z0YyAqYWhjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfY29yZS5jIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eF9jb3JlLmMKaW5kZXggOWE2YjRhNS4uOGEyYmI2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eF9jb3JlLmMKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eF9jb3JlLmMKQEAgLTM5MzQsMjIgKzM5MzQsNiBAQAogCWFoYy0+aW5pdF9sZXZlbCsrOwogfQogCi0vKgotICogVmVyaWZ5IHRoYXQgdGhlIHBhc3NlZCBpbiBzb2Z0YyBwb2ludGVyIGlzIGZvciBhCi0gKiBjb250cm9sbGVyIHRoYXQgaXMgc3RpbGwgY29uZmlndXJlZC4KLSAqLwotc3RydWN0IGFoY19zb2Z0YyAqCi1haGNfZmluZF9zb2Z0YyhzdHJ1Y3QgYWhjX3NvZnRjICphaGMpCi17Ci0Jc3RydWN0IGFoY19zb2Z0YyAqbGlzdF9haGM7Ci0KLQlUQUlMUV9GT1JFQUNIKGxpc3RfYWhjLCAmYWhjX3RhaWxxLCBsaW5rcykgewotCQlpZiAobGlzdF9haGMgPT0gYWhjKQotCQkJcmV0dXJuIChhaGMpOwotCX0KLQlyZXR1cm4gKE5VTEwpOwotfQotCiB2b2lkCiBhaGNfc2V0X3VuaXQoc3RydWN0IGFoY19zb2Z0YyAqYWhjLCBpbnQgdW5pdCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtLmMgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4X29zbS5jCmluZGV4IGMxM2U1NjMuLmI4OTA5NGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtLmMKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eF9vc20uYwpAQCAtMTIyLDggKzEyMiw2IEBACiAjaW5jbHVkZSAiYWljN3h4eF9vc20uaCIKICNpbmNsdWRlICJhaWM3eHh4X2lubGluZS5oIgogI2luY2x1ZGUgPHNjc2kvc2NzaWNhbS5oPgotI2luY2x1ZGUgPHNjc2kvc2NzaV90cmFuc3BvcnQuaD4KLSNpbmNsdWRlIDxzY3NpL3Njc2lfdHJhbnNwb3J0X3NwaS5oPgogCiBzdGF0aWMgc3RydWN0IHNjc2lfdHJhbnNwb3J0X3RlbXBsYXRlICphaGNfbGludXhfdHJhbnNwb3J0X3RlbXBsYXRlID0gTlVMTDsKIApAQCAtMzMyLDIyICszMzAsNiBAQAogc3RhdGljIHVpbnQzMl90IGFpYzd4eHhfcGNpX3Bhcml0eSA9IH4wOwogCiAvKgotICogQ2VydGFpbiBuZXdlciBtb3RoZXJib2FyZHMgaGF2ZSBwdXQgbmV3IFBDSSBiYXNlZCBkZXZpY2VzIGludG8gdGhlCi0gKiBJTyBzcGFjZXMgdGhhdCB1c2VkIHRvIHR5cGljYWxseSBiZSBvY2N1cGllZCBieSBWTEIgb3IgRUlTQSBjYXJkcy4KLSAqIFRoaXMgb3ZlcmxhcCBjYW4gY2F1c2UgdGhlc2UgbmV3ZXIgbW90aGVyYm9hcmRzIHRvIGxvY2sgdXAgd2hlbiBzY2FubmVkCi0gKiBmb3Igb2xkZXIgRUlTQSBhbmQgVkxCIGRldmljZXMuICBTZXR0aW5nIHRoaXMgb3B0aW9uIHRvIG5vbi0wIHdpbGwKLSAqIGNhdXNlIHRoZSBkcml2ZXIgdG8gc2tpcCBzY2FubmluZyBmb3IgYW55IFZMQiBvciBFSVNBIGNvbnRyb2xsZXJzIGFuZAotICogb25seSBzdXBwb3J0IHRoZSBQQ0kgY29udHJvbGxlcnMuICBOT1RFOiB0aGlzIG1lYW5zIHRoYXQgaWYgdGhlIGtlcm5lbAotICogb3MgY29tcGlsZWQgd2l0aCBQQ0kgc3VwcG9ydCBkaXNhYmxlZCwgdGhlbiBzZXR0aW5nIHRoaXMgdG8gbm9uLTAKLSAqIHdvdWxkIHJlc3VsdCBpbiBuZXZlciBmaW5kaW5nIGFueSBkZXZpY2VzIDopCi0gKi8KLSNpZm5kZWYgQ09ORklHX0FJQzdYWFhfUFJPQkVfRUlTQV9WTAotdWludDMyX3QgYWljN3h4eF9wcm9iZV9laXNhX3ZsOwotI2Vsc2UKLXVpbnQzMl90IGFpYzd4eHhfcHJvYmVfZWlzYV92bCA9IH4wOwotI2VuZGlmCi0KLS8qCiAgKiBUaGVyZSBhcmUgbG90cyBvZiBicm9rZW4gY2hpcHNldHMgaW4gdGhlIHdvcmxkLiAgU29tZSBvZiB0aGVtIHdpbGwKICAqIHZpb2xhdGUgdGhlIFBDSSBzcGVjIHdoZW4gd2UgaXNzdWUgYnl0ZSBzaXplZCBtZW1vcnkgd3JpdGVzIHRvIG91cgogICogY29udHJvbGxlci4gIEkvTyBtYXBwZWQgcmVnaXN0ZXIgYWNjZXNzLCBpZiBhbGxvd2VkIGJ5IHRoZSBnaXZlbgpAQCAtNDIzLDcgKzQwNSw3IEBACiApOwogCiBzdGF0aWMgdm9pZCBhaGNfbGludXhfaGFuZGxlX3Njc2lfc3RhdHVzKHN0cnVjdCBhaGNfc29mdGMgKiwKLQkJCQkJIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlICosCisJCQkJCSBzdHJ1Y3Qgc2NzaV9kZXZpY2UgKiwKIAkJCQkJIHN0cnVjdCBzY2IgKik7CiBzdGF0aWMgdm9pZCBhaGNfbGludXhfcXVldWVfY21kX2NvbXBsZXRlKHN0cnVjdCBhaGNfc29mdGMgKmFoYywKIAkJCQkJIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCk7CkBAIC00MzQsMTcgKzQxNiw3IEBACiBzdGF0aWMgdm9pZCBhaGNfbGludXhfaW5pdGlhbGl6ZV9zY3NpX2J1cyhzdHJ1Y3QgYWhjX3NvZnRjICphaGMpOwogc3RhdGljIHVfaW50IGFoY19saW51eF91c2VyX3RhZ2RlcHRoKHN0cnVjdCBhaGNfc29mdGMgKmFoYywKIAkJCQkgICAgIHN0cnVjdCBhaGNfZGV2aW5mbyAqZGV2aW5mbyk7Ci1zdGF0aWMgdm9pZCBhaGNfbGludXhfZGV2aWNlX3F1ZXVlX2RlcHRoKHN0cnVjdCBhaGNfc29mdGMgKmFoYywKLQkJCQkJIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXYpOwotc3RhdGljIHN0cnVjdCBhaGNfbGludXhfdGFyZ2V0KglhaGNfbGludXhfYWxsb2NfdGFyZ2V0KHN0cnVjdCBhaGNfc29mdGMqLAotCQkJCQkJICAgICAgIHVfaW50LCB1X2ludCk7Ci1zdGF0aWMgdm9pZAkJCWFoY19saW51eF9mcmVlX3RhcmdldChzdHJ1Y3QgYWhjX3NvZnRjKiwKLQkJCQkJCSAgICAgIHN0cnVjdCBhaGNfbGludXhfdGFyZ2V0Kik7Ci1zdGF0aWMgc3RydWN0IGFoY19saW51eF9kZXZpY2UqCWFoY19saW51eF9hbGxvY19kZXZpY2Uoc3RydWN0IGFoY19zb2Z0YyosCi0JCQkJCQkgICAgICAgc3RydWN0IGFoY19saW51eF90YXJnZXQqLAotCQkJCQkJICAgICAgIHVfaW50KTsKLXN0YXRpYyB2b2lkCQkJYWhjX2xpbnV4X2ZyZWVfZGV2aWNlKHN0cnVjdCBhaGNfc29mdGMqLAotCQkJCQkJICAgICAgc3RydWN0IGFoY19saW51eF9kZXZpY2UqKTsKK3N0YXRpYyB2b2lkIGFoY19saW51eF9kZXZpY2VfcXVldWVfZGVwdGgoc3RydWN0IHNjc2lfZGV2aWNlICopOwogc3RhdGljIGludCBhaGNfbGludXhfcnVuX2NvbW1hbmQoc3RydWN0IGFoY19zb2Z0YyosCiAJCQkJIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlICosCiAJCQkJIHN0cnVjdCBzY3NpX2NtbmQgKik7CkBAIC00NTQsMzIgKzQyNiwxMiBAQAogc3RhdGljIGludCAgYWhjX2xpbnV4X25leHRfdW5pdCh2b2lkKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBJbmxpbmVzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBfX2lubGluZSBzdHJ1Y3QgYWhjX2xpbnV4X2RldmljZSoKLQkJICAgICBhaGNfbGludXhfZ2V0X2RldmljZShzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHVfaW50IGNoYW5uZWwsCi0JCQkJCSAgdV9pbnQgdGFyZ2V0LCB1X2ludCBsdW4pOwogc3RhdGljIF9faW5saW5lIHZvaWQgYWhjX2xpbnV4X3VubWFwX3NjYihzdHJ1Y3QgYWhjX3NvZnRjKiwgc3RydWN0IHNjYiopOwogCiBzdGF0aWMgX19pbmxpbmUgaW50IGFoY19saW51eF9tYXBfc2VnKHN0cnVjdCBhaGNfc29mdGMgKmFoYywgc3RydWN0IHNjYiAqc2NiLAogCQkgCQkgICAgICBzdHJ1Y3QgYWhjX2RtYV9zZWcgKnNnLAogCQkJCSAgICAgIGRtYV9hZGRyX3QgYWRkciwgYnVzX3NpemVfdCBsZW4pOwogCi1zdGF0aWMgX19pbmxpbmUgc3RydWN0IGFoY19saW51eF9kZXZpY2UqCi1haGNfbGludXhfZ2V0X2RldmljZShzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHVfaW50IGNoYW5uZWwsIHVfaW50IHRhcmdldCwKLQkJICAgICB1X2ludCBsdW4pCi17Ci0Jc3RydWN0IGFoY19saW51eF90YXJnZXQgKnRhcmc7Ci0Jc3RydWN0IGFoY19saW51eF9kZXZpY2UgKmRldjsKLQl1X2ludCB0YXJnZXRfb2Zmc2V0OwotCi0JdGFyZ2V0X29mZnNldCA9IHRhcmdldDsKLQlpZiAoY2hhbm5lbCAhPSAwKQotCQl0YXJnZXRfb2Zmc2V0ICs9IDg7Ci0JdGFyZyA9IGFoYy0+cGxhdGZvcm1fZGF0YS0+dGFyZ2V0c1t0YXJnZXRfb2Zmc2V0XTsKLQlCVUdfT04odGFyZyA9PSBOVUxMKTsKLQlkZXYgPSB0YXJnLT5kZXZpY2VzW2x1bl07Ci0JcmV0dXJuIGRldjsKLX0KLQogc3RhdGljIF9faW5saW5lIHZvaWQKIGFoY19saW51eF91bm1hcF9zY2Ioc3RydWN0IGFoY19zb2Z0YyAqYWhjLCBzdHJ1Y3Qgc2NiICpzY2IpCiB7CkBAIC01MzMsMTcgKzQ4NSw2IEBACiAJaW50ICAgICBmb3VuZCA9IDA7CiAKIAkvKgotCSAqIFNhbml0eSBjaGVja2luZyBvZiBMaW51eCBTQ1NJIGRhdGEgc3RydWN0dXJlcyBzbwotCSAqIHRoYXQgc29tZSBvZiBvdXIgaGFja3NeSF5IXkheSF5IYXNzdW1wdGlvbnMgYXJlbid0Ci0JICogdmlvbGF0ZWQuCi0JICovCi0JaWYgKG9mZnNldG9mKHN0cnVjdCBhaGNfY21kX2ludGVybmFsLCBlbmQpCi0JICA+IG9mZnNldG9mKHN0cnVjdCBzY3NpX2NtbmQsIGhvc3Rfc2NyaWJibGUpKSB7Ci0JCXByaW50ZigiYWhjX2xpbnV4X2RldGVjdDogU0NTSSBkYXRhIHN0cnVjdHVyZXMgY2hhbmdlZC5cbiIpOwotCQlwcmludGYoImFoY19saW51eF9kZXRlY3Q6IFVuYWJsZSB0byBhdHRhY2hcbiIpOwotCQlyZXR1cm4gKDApOwotCX0KLQkvKgogCSAqIElmIHdlJ3ZlIGJlZW4gcGFzc2VkIGFueSBwYXJhbWV0ZXJzLCBwcm9jZXNzIHRoZW0gbm93LgogCSAqLwogCWlmIChhaWM3eHh4KQpAQCAtNjExLDcgKzU1Miw3IEBACiBhaGNfbGludXhfcXVldWUoc3RydWN0IHNjc2lfY21uZCAqIGNtZCwgdm9pZCAoKnNjc2lfZG9uZSkgKHN0cnVjdCBzY3NpX2NtbmQgKikpCiB7CiAJc3RydWN0CSBhaGNfc29mdGMgKmFoYzsKLQlzdHJ1Y3QJIGFoY19saW51eF9kZXZpY2UgKmRldjsKKwlzdHJ1Y3QJIGFoY19saW51eF9kZXZpY2UgKmRldiA9IHNjc2lfdHJhbnNwb3J0X2RldmljZV9kYXRhKGNtZC0+ZGV2aWNlKTsKIAogCWFoYyA9ICooc3RydWN0IGFoY19zb2Z0YyAqKiljbWQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CiAKQEAgLTYyOSwxMzIgKzU3MCwxNzcgQEAKIAlpZiAoYWhjLT5wbGF0Zm9ybV9kYXRhLT5xZnJvemVuICE9IDApCiAJCXJldHVybiBTQ1NJX01MUVVFVUVfSE9TVF9CVVNZOwogCi0JZGV2ID0gYWhjX2xpbnV4X2dldF9kZXZpY2UoYWhjLCBjbWQtPmRldmljZS0+Y2hhbm5lbCwgY21kLT5kZXZpY2UtPmlkLAotCQkJCSAgIGNtZC0+ZGV2aWNlLT5sdW4pOwotCUJVR19PTihkZXYgPT0gTlVMTCk7Ci0KIAljbWQtPnJlc3VsdCA9IENBTV9SRVFfSU5QUk9HIDw8IDE2OwogCiAJcmV0dXJuIGFoY19saW51eF9ydW5fY29tbWFuZChhaGMsIGRldiwgY21kKTsKIH0KIAotc3RhdGljIGludAotYWhjX2xpbnV4X3NsYXZlX2FsbG9jKHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKQorc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2NzaV90YXJnZXQgKioKK2FoY19saW51eF90YXJnZXRfaW5fc29mdGMoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQogewotCXN0cnVjdAlhaGNfc29mdGMgKmFoYzsKLQlzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldCAqdGFyZzsKLQlzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQgPSBkZXZpY2UtPnNkZXZfdGFyZ2V0OwotCXN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXY7CisJc3RydWN0CWFoY19zb2Z0YyAqYWhjID0KKwkJKigoc3RydWN0IGFoY19zb2Z0YyAqKilkZXZfdG9fc2hvc3QoJnN0YXJnZXQtPmRldiktPmhvc3RkYXRhKTsKIAl1bnNpZ25lZCBpbnQgdGFyZ2V0X29mZnNldDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXR2YWwgPSAtRU5PTUVNOwogCiAJdGFyZ2V0X29mZnNldCA9IHN0YXJnZXQtPmlkOwogCWlmIChzdGFyZ2V0LT5jaGFubmVsICE9IDApCiAJCXRhcmdldF9vZmZzZXQgKz0gODsKIAotCWFoYyA9ICooKHN0cnVjdCBhaGNfc29mdGMgKiopZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YSk7Ci0JaWYgKGJvb3R2ZXJib3NlKQotCQlwcmludGYoIiVzOiBTbGF2ZSBBbGxvYyAlZFxuIiwgYWhjX25hbWUoYWhjKSwgZGV2aWNlLT5pZCk7Ci0JYWhjX2xvY2soYWhjLCAmZmxhZ3MpOwotCXRhcmcgPSBhaGMtPnBsYXRmb3JtX2RhdGEtPnRhcmdldHNbdGFyZ2V0X29mZnNldF07Ci0JaWYgKHRhcmcgPT0gTlVMTCkgewotCQlzdHJ1Y3Qgc2VlcHJvbV9jb25maWcgKnNjOwotCi0JCXRhcmcgPSBhaGNfbGludXhfYWxsb2NfdGFyZ2V0KGFoYywgc3RhcmdldC0+Y2hhbm5lbCwKLQkJCQkJCXN0YXJnZXQtPmlkKTsKLQkJc2MgPSBhaGMtPnNlZXBfY29uZmlnOwotCQlpZiAodGFyZyA9PSBOVUxMKQotCQkJZ290byBvdXQ7Ci0KLQkJaWYgKHNjKSB7Ci0JCQl1bnNpZ25lZCBzaG9ydCBzY3NpcmF0ZTsKLQkJCXN0cnVjdCBhaGNfZGV2aW5mbyBkZXZpbmZvOwotCQkJc3RydWN0IGFoY19pbml0aWF0b3JfdGluZm8gKnRpbmZvOwotCQkJc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQkJCWNoYXIgY2hhbm5lbCA9IHN0YXJnZXQtPmNoYW5uZWwgKyAnQSc7Ci0JCQl1bnNpZ25lZCBpbnQgb3VyX2lkID0gYWhjLT5vdXJfaWQ7Ci0KLQkJCWlmIChzdGFyZ2V0LT5jaGFubmVsKQotCQkJCW91cl9pZCA9IGFoYy0+b3VyX2lkX2I7Ci0KLQkJCWlmICgoYWhjLT5mZWF0dXJlcyAmIEFIQ19VTFRSQTIpICE9IDApIHsKLQkJCQlzY3NpcmF0ZSA9IHNjLT5kZXZpY2VfZmxhZ3NbdGFyZ2V0X29mZnNldF0gJiBDRlhGRVI7Ci0JCQl9IGVsc2UgewotCQkJCXNjc2lyYXRlID0gKHNjLT5kZXZpY2VfZmxhZ3NbdGFyZ2V0X29mZnNldF0gJiBDRlhGRVIpIDw8IDQ7Ci0JCQkJaWYgKHNjLT5kZXZpY2VfZmxhZ3NbdGFyZ2V0X29mZnNldF0gJiBDRlNZTkNIKQotCQkJCQlzY3NpcmF0ZSB8PSBTT0ZTOwotCQkJfQotCQkJaWYgKHNjLT5kZXZpY2VfZmxhZ3NbdGFyZ2V0X29mZnNldF0gJiBDRldJREVCKSB7Ci0JCQkJc2NzaXJhdGUgfD0gV0lERVhGRVI7Ci0JCQkJc3BpX21heF93aWR0aChzdGFyZ2V0KSA9IDE7Ci0JCQl9IGVsc2UKLQkJCQlzcGlfbWF4X3dpZHRoKHN0YXJnZXQpID0gMDsKLQkJCXNwaV9taW5fcGVyaW9kKHN0YXJnZXQpID0gCi0JCQkJYWhjX2ZpbmRfcGVyaW9kKGFoYywgc2NzaXJhdGUsIEFIQ19TWU5DUkFURV9EVCk7Ci0JCQl0aW5mbyA9IGFoY19mZXRjaF90cmFuc2luZm8oYWhjLCBjaGFubmVsLCBhaGMtPm91cl9pZCwKLQkJCQkJCSAgICB0YXJnLT50YXJnZXQsICZ0c3RhdGUpOwotCQkJYWhjX2NvbXBpbGVfZGV2aW5mbygmZGV2aW5mbywgb3VyX2lkLCB0YXJnLT50YXJnZXQsCi0JCQkJCSAgICBDQU1fTFVOX1dJTERDQVJELCBjaGFubmVsLAotCQkJCQkgICAgUk9MRV9JTklUSUFUT1IpOwotCQkJYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBOVUxMLCAwLCAwLCAwLAotCQkJCQkgQUhDX1RSQU5TX0dPQUwsIC8qcGF1c2VkKi9GQUxTRSk7Ci0JCQlhaGNfc2V0X3dpZHRoKGFoYywgJmRldmluZm8sIE1TR19FWFRfV0RUUl9CVVNfOF9CSVQsCi0JCQkJICAgICAgQUhDX1RSQU5TX0dPQUwsIC8qcGF1c2VkKi9GQUxTRSk7Ci0JCX0KLQkJCQotCX0KLQlkZXYgPSB0YXJnLT5kZXZpY2VzW2RldmljZS0+bHVuXTsKLQlpZiAoZGV2ID09IE5VTEwpIHsKLQkJZGV2ID0gYWhjX2xpbnV4X2FsbG9jX2RldmljZShhaGMsIHRhcmcsIGRldmljZS0+bHVuKTsKLQkJaWYgKGRldiA9PSBOVUxMKQotCQkJZ290byBvdXQ7Ci0JfQotCXJldHZhbCA9IDA7Ci0KLSBvdXQ6Ci0JYWhjX3VubG9jayhhaGMsICZmbGFncyk7Ci0JcmV0dXJuIHJldHZhbDsKKwlyZXR1cm4gJmFoYy0+cGxhdGZvcm1fZGF0YS0+c3RhcmdldFt0YXJnZXRfb2Zmc2V0XTsKIH0KIAogc3RhdGljIGludAotYWhjX2xpbnV4X3NsYXZlX2NvbmZpZ3VyZShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRldmljZSkKK2FoY19saW51eF90YXJnZXRfYWxsb2Moc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQogewotCXN0cnVjdAlhaGNfc29mdGMgKmFoYzsKLQlzdHJ1Y3QJYWhjX2xpbnV4X2RldmljZSAqZGV2OworCXN0cnVjdAlhaGNfc29mdGMgKmFoYyA9CisJCSooKHN0cnVjdCBhaGNfc29mdGMgKiopZGV2X3RvX3Nob3N0KCZzdGFyZ2V0LT5kZXYpLT5ob3N0ZGF0YSk7CisJc3RydWN0IHNlZXByb21fY29uZmlnICpzYyA9IGFoYy0+c2VlcF9jb25maWc7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3Qgc2NzaV90YXJnZXQgKiphaGNfdGFyZ3AgPSBhaGNfbGludXhfdGFyZ2V0X2luX3NvZnRjKHN0YXJnZXQpOworCXN0cnVjdCBhaGNfbGludXhfdGFyZ2V0ICp0YXJnID0gc2NzaV90cmFuc3BvcnRfdGFyZ2V0X2RhdGEoc3RhcmdldCk7CisJdW5zaWduZWQgc2hvcnQgc2NzaXJhdGU7CisJc3RydWN0IGFoY19kZXZpbmZvIGRldmluZm87CisJc3RydWN0IGFoY19pbml0aWF0b3JfdGluZm8gKnRpbmZvOworCXN0cnVjdCBhaGNfdG1vZGVfdHN0YXRlICp0c3RhdGU7CisJY2hhciBjaGFubmVsID0gc3RhcmdldC0+Y2hhbm5lbCArICdBJzsKKwl1bnNpZ25lZCBpbnQgb3VyX2lkID0gYWhjLT5vdXJfaWQ7CisJdW5zaWduZWQgaW50IHRhcmdldF9vZmZzZXQ7CiAKLQlhaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKWRldmljZS0+aG9zdC0+aG9zdGRhdGEpOworCXRhcmdldF9vZmZzZXQgPSBzdGFyZ2V0LT5pZDsKKwlpZiAoc3RhcmdldC0+Y2hhbm5lbCAhPSAwKQorCQl0YXJnZXRfb2Zmc2V0ICs9IDg7CisJICAKKwlpZiAoc3RhcmdldC0+Y2hhbm5lbCkKKwkJb3VyX2lkID0gYWhjLT5vdXJfaWRfYjsKIAotCWlmIChib290dmVyYm9zZSkKLQkJcHJpbnRmKCIlczogU2xhdmUgQ29uZmlndXJlICVkXG4iLCBhaGNfbmFtZShhaGMpLCBkZXZpY2UtPmlkKTsKKwlhaGNfbG9jayhhaGMsICZmbGFncyk7CiAKLQlkZXYgPSBhaGNfbGludXhfZ2V0X2RldmljZShhaGMsIGRldmljZS0+Y2hhbm5lbCwgZGV2aWNlLT5pZCwKLQkJCQkgICBkZXZpY2UtPmx1bik7Ci0JZGV2LT5zY3NpX2RldmljZSA9IGRldmljZTsKLQlhaGNfbGludXhfZGV2aWNlX3F1ZXVlX2RlcHRoKGFoYywgZGV2KTsKKwlCVUdfT04oKmFoY190YXJncCAhPSBOVUxMKTsKIAotCS8qIEluaXRpYWwgRG9tYWluIFZhbGlkYXRpb24gKi8KLQlpZiAoIXNwaV9pbml0aWFsX2R2KGRldmljZS0+c2Rldl90YXJnZXQpKQotCQlzcGlfZHZfZGV2aWNlKGRldmljZSk7CisJKmFoY190YXJncCA9IHN0YXJnZXQ7CisJbWVtc2V0KHRhcmcsIDAsIHNpemVvZigqdGFyZykpOworCisJaWYgKHNjKSB7CisJCWludCBtYXhzeW5jID0gQUhDX1NZTkNSQVRFX0RUOworCQlpbnQgdWx0cmEgPSAwOworCQlpbnQgZmxhZ3MgPSBzYy0+ZGV2aWNlX2ZsYWdzW3RhcmdldF9vZmZzZXRdOworCisJCWlmIChhaGMtPmZsYWdzICYgQUhDX05FV0VFUFJPTV9GTVQpIHsKKwkJICAgIGlmIChmbGFncyAmIENGU1lOQ0hJU1VMVFJBKQorCQkJdWx0cmEgPSAxOworCQl9IGVsc2UgaWYgKGZsYWdzICYgQ0ZVTFRSQUVOKQorCQkJdWx0cmEgPSAxOworCQkvKiBBSUMgbnV0Y2FzZTsgMTBNSHogYXBwZWFycyBhcyB1bHRyYSA9IDEsIENGWEZFUiA9IDB4MDQKKwkJICogY2hhbmdlIGl0IHRvIHVsdHJhPTAsIENGWEZFUiA9IDAgKi8KKwkJaWYodWx0cmEgJiYgKGZsYWdzICYgQ0ZYRkVSKSA9PSAweDA0KSB7CisJCQl1bHRyYSA9IDA7CisJCQlmbGFncyAmPSB+Q0ZYRkVSOworCQl9CisJICAgIAorCQlpZiAoKGFoYy0+ZmVhdHVyZXMgJiBBSENfVUxUUkEyKSAhPSAwKSB7CisJCQlzY3NpcmF0ZSA9IChmbGFncyAmIENGWEZFUikgfCAodWx0cmEgPyAweDggOiAwKTsKKwkJfSBlbHNlIHsKKwkJCXNjc2lyYXRlID0gKGZsYWdzICYgQ0ZYRkVSKSA8PCA0OworCQkJbWF4c3luYyA9IHVsdHJhID8gQUhDX1NZTkNSQVRFX1VMVFJBIDogCisJCQkJQUhDX1NZTkNSQVRFX0ZBU1Q7CisJCX0KKwkJc3BpX21heF93aWR0aChzdGFyZ2V0KSA9IChmbGFncyAmIENGV0lERUIpID8gMSA6IDA7CisJCWlmICghKGZsYWdzICYgQ0ZTWU5DSCkpCisJCQlzcGlfbWF4X29mZnNldChzdGFyZ2V0KSA9IDA7CisJCXNwaV9taW5fcGVyaW9kKHN0YXJnZXQpID0gCisJCQlhaGNfZmluZF9wZXJpb2QoYWhjLCBzY3NpcmF0ZSwgbWF4c3luYyk7CisKKwkJdGluZm8gPSBhaGNfZmV0Y2hfdHJhbnNpbmZvKGFoYywgY2hhbm5lbCwgYWhjLT5vdXJfaWQsCisJCQkJCSAgICBzdGFyZ2V0LT5pZCwgJnRzdGF0ZSk7CisJfQorCWFoY19jb21waWxlX2RldmluZm8oJmRldmluZm8sIG91cl9pZCwgc3RhcmdldC0+aWQsCisJCQkgICAgQ0FNX0xVTl9XSUxEQ0FSRCwgY2hhbm5lbCwKKwkJCSAgICBST0xFX0lOSVRJQVRPUik7CisJYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBOVUxMLCAwLCAwLCAwLAorCQkJIEFIQ19UUkFOU19HT0FMLCAvKnBhdXNlZCovRkFMU0UpOworCWFoY19zZXRfd2lkdGgoYWhjLCAmZGV2aW5mbywgTVNHX0VYVF9XRFRSX0JVU184X0JJVCwKKwkJICAgICAgQUhDX1RSQU5TX0dPQUwsIC8qcGF1c2VkKi9GQUxTRSk7CisJYWhjX3VubG9jayhhaGMsICZmbGFncyk7CiAKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQKLWFoY19saW51eF9zbGF2ZV9kZXN0cm95KHN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlKQorYWhjX2xpbnV4X3RhcmdldF9kZXN0cm95KHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKK3sKKwlzdHJ1Y3Qgc2NzaV90YXJnZXQgKiphaGNfdGFyZ3AgPSBhaGNfbGludXhfdGFyZ2V0X2luX3NvZnRjKHN0YXJnZXQpOworCisJKmFoY190YXJncCA9IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQKK2FoY19saW51eF9zbGF2ZV9hbGxvYyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpCit7CisJc3RydWN0CWFoY19zb2Z0YyAqYWhjID0KKwkJKigoc3RydWN0IGFoY19zb2Z0YyAqKilzZGV2LT5ob3N0LT5ob3N0ZGF0YSk7CisJc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0ID0gc2Rldi0+c2Rldl90YXJnZXQ7CisJc3RydWN0IGFoY19saW51eF90YXJnZXQgKnRhcmcgPSBzY3NpX3RyYW5zcG9ydF90YXJnZXRfZGF0YShzdGFyZ2V0KTsKKwlzdHJ1Y3QgYWhjX2xpbnV4X2RldmljZSAqZGV2OworCisJaWYgKGJvb3R2ZXJib3NlKQorCQlwcmludGYoIiVzOiBTbGF2ZSBBbGxvYyAlZFxuIiwgYWhjX25hbWUoYWhjKSwgc2Rldi0+aWQpOworCisJQlVHX09OKHRhcmctPnNkZXZbc2Rldi0+bHVuXSAhPSBOVUxMKTsKKworCWRldiA9IHNjc2lfdHJhbnNwb3J0X2RldmljZV9kYXRhKHNkZXYpOworCW1lbXNldChkZXYsIDAsIHNpemVvZigqZGV2KSk7CisKKwkvKgorCSAqIFdlIHN0YXJ0IG91dCBsaWZlIHVzaW5nIHVudGFnZ2VkCisJICogdHJhbnNhY3Rpb25zIG9mIHdoaWNoIHdlIGFsbG93IG9uZS4KKwkgKi8KKwlkZXYtPm9wZW5pbmdzID0gMTsKKworCS8qCisJICogU2V0IG1heHRhZ3MgdG8gMC4gIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGlmIHdlCisJICogbGF0ZXIgZGV0ZXJtaW5lIHRoYXQgd2UgYXJlIGRlYWxpbmcgd2l0aAorCSAqIGEgdGFnZ2VkIHF1ZXVpbmcgY2FwYWJsZSBkZXZpY2UuCisJICovCisJZGV2LT5tYXh0YWdzID0gMDsKKwkKKwl0YXJnLT5zZGV2W3NkZXYtPmx1bl0gPSBzZGV2OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2FoY19saW51eF9zbGF2ZV9jb25maWd1cmUoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2KQogewogCXN0cnVjdAlhaGNfc29mdGMgKmFoYzsKLQlzdHJ1Y3QJYWhjX2xpbnV4X2RldmljZSAqZGV2OwogCi0JYWhjID0gKigoc3RydWN0IGFoY19zb2Z0YyAqKilkZXZpY2UtPmhvc3QtPmhvc3RkYXRhKTsKKwlhaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNkZXYtPmhvc3QtPmhvc3RkYXRhKTsKKwogCWlmIChib290dmVyYm9zZSkKLQkJcHJpbnRmKCIlczogU2xhdmUgRGVzdHJveSAlZFxuIiwgYWhjX25hbWUoYWhjKSwgZGV2aWNlLT5pZCk7Ci0JZGV2ID0gYWhjX2xpbnV4X2dldF9kZXZpY2UoYWhjLCBkZXZpY2UtPmNoYW5uZWwsCi0JCQkJICAgZGV2aWNlLT5pZCwgZGV2aWNlLT5sdW4pOworCQlwcmludGYoIiVzOiBTbGF2ZSBDb25maWd1cmUgJWRcbiIsIGFoY19uYW1lKGFoYyksIHNkZXYtPmlkKTsKKworCWFoY19saW51eF9kZXZpY2VfcXVldWVfZGVwdGgoc2Rldik7CisKKwkvKiBJbml0aWFsIERvbWFpbiBWYWxpZGF0aW9uICovCisJaWYgKCFzcGlfaW5pdGlhbF9kdihzZGV2LT5zZGV2X3RhcmdldCkpCisJCXNwaV9kdl9kZXZpY2Uoc2Rldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2FoY19saW51eF9zbGF2ZV9kZXN0cm95KHN0cnVjdCBzY3NpX2RldmljZSAqc2RldikKK3sKKwlzdHJ1Y3QJYWhjX3NvZnRjICphaGM7CisJc3RydWN0CWFoY19saW51eF9kZXZpY2UgKmRldiA9IHNjc2lfdHJhbnNwb3J0X2RldmljZV9kYXRhKHNkZXYpOworCXN0cnVjdAlhaGNfbGludXhfdGFyZ2V0ICp0YXJnID0gc2NzaV90cmFuc3BvcnRfdGFyZ2V0X2RhdGEoc2Rldi0+c2Rldl90YXJnZXQpOworCisJYWhjID0gKigoc3RydWN0IGFoY19zb2Z0YyAqKilzZGV2LT5ob3N0LT5ob3N0ZGF0YSk7CisJaWYgKGJvb3R2ZXJib3NlKQorCQlwcmludGYoIiVzOiBTbGF2ZSBEZXN0cm95ICVkXG4iLCBhaGNfbmFtZShhaGMpLCBzZGV2LT5pZCk7CiAKIAlCVUdfT04oZGV2LT5hY3RpdmUpOwogCi0JYWhjX2xpbnV4X2ZyZWVfZGV2aWNlKGFoYywgZGV2KTsKKwl0YXJnLT5zZGV2W3NkZXYtPmx1bl0gPSBOVUxMOwogfQogCiAjaWYgZGVmaW5lZChfX2kzODZfXykKQEAgLTg0MywxMCArODI5LDE0IEBACiB7CiAJc3RydWN0IGFoY19zb2Z0YyAqYWhjOwogCWludCAgICBmb3VuZDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJYWhjID0gKihzdHJ1Y3QgYWhjX3NvZnRjICoqKWNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKKworCWFoY19sb2NrKGFoYywgJmZsYWdzKTsKIAlmb3VuZCA9IGFoY19yZXNldF9jaGFubmVsKGFoYywgY21kLT5kZXZpY2UtPmNoYW5uZWwgKyAnQScsCiAJCQkJICAvKmluaXRpYXRlIHJlc2V0Ki9UUlVFKTsKKwlhaGNfdW5sb2NrKGFoYywgJmZsYWdzKTsKIAogCWlmIChib290dmVyYm9zZSkKIAkJcHJpbnRmKCIlczogU0NTSSBidXMgcmVzZXQgZGVsaXZlcmVkLiAiCkBAIC04NzQsNiArODY0LDggQEAKIAkuc2xhdmVfYWxsb2MJCT0gYWhjX2xpbnV4X3NsYXZlX2FsbG9jLAogCS5zbGF2ZV9jb25maWd1cmUJPSBhaGNfbGludXhfc2xhdmVfY29uZmlndXJlLAogCS5zbGF2ZV9kZXN0cm95CQk9IGFoY19saW51eF9zbGF2ZV9kZXN0cm95LAorCS50YXJnZXRfYWxsb2MJCT0gYWhjX2xpbnV4X3RhcmdldF9hbGxvYywKKwkudGFyZ2V0X2Rlc3Ryb3kJCT0gYWhjX2xpbnV4X3RhcmdldF9kZXN0cm95LAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVGFza2xldCBIYW5kbGVyICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTExMTIsOCArMTEwNCw2IEBACiAJCXsgImRlYnVnIiwgJmFoY19kZWJ1ZyB9LAogI2VuZGlmCiAJCXsgInJldmVyc2Vfc2NhbiIsICZhaWM3eHh4X3JldmVyc2Vfc2NhbiB9LAotCQl7ICJub19wcm9iZSIsICZhaWM3eHh4X3Byb2JlX2Vpc2FfdmwgfSwKLQkJeyAicHJvYmVfZWlzYV92bCIsICZhaWM3eHh4X3Byb2JlX2Vpc2FfdmwgfSwKIAkJeyAicGVyaW9kaWNfb3RhZyIsICZhaWM3eHh4X3BlcmlvZGljX290YWcgfSwKIAkJeyAicGNpX3Bhcml0eSIsICZhaWM3eHh4X3BjaV9wYXJpdHkgfSwKIAkJeyAic2VsdGltZSIsICZhaWM3eHh4X3NlbHRpbWUgfSwKQEAgLTEzMzUsOCArMTMyNSw3IEBACiB2b2lkCiBhaGNfcGxhdGZvcm1fZnJlZShzdHJ1Y3QgYWhjX3NvZnRjICphaGMpCiB7Ci0Jc3RydWN0IGFoY19saW51eF90YXJnZXQgKnRhcmc7Ci0Jc3RydWN0IGFoY19saW51eF9kZXZpY2UgKmRldjsKKwlzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQ7CiAJaW50IGksIGo7CiAKIAlpZiAoYWhjLT5wbGF0Zm9ybV9kYXRhICE9IE5VTEwpIHsKQEAgLTEzNDcsMjIgKzEzMzYsMTcgQEAKIAogCQkvKiBkZXN0cm95IGFsbCBvZiB0aGUgZGV2aWNlIGFuZCB0YXJnZXQgb2JqZWN0cyAqLwogCQlmb3IgKGkgPSAwOyBpIDwgQUhDX05VTV9UQVJHRVRTOyBpKyspIHsKLQkJCXRhcmcgPSBhaGMtPnBsYXRmb3JtX2RhdGEtPnRhcmdldHNbaV07Ci0JCQlpZiAodGFyZyAhPSBOVUxMKSB7Ci0JCQkJLyogS2VlcCB0YXJnZXQgYXJvdW5kIHRocm91Z2ggdGhlIGxvb3AuICovCi0JCQkJdGFyZy0+cmVmY291bnQrKzsKKwkJCXN0YXJnZXQgPSBhaGMtPnBsYXRmb3JtX2RhdGEtPnN0YXJnZXRbaV07CisJCQlpZiAoc3RhcmdldCAhPSBOVUxMKSB7CiAJCQkJZm9yIChqID0gMDsgaiA8IEFIQ19OVU1fTFVOUzsgaisrKSB7CisJCQkJCXN0cnVjdCBhaGNfbGludXhfdGFyZ2V0ICp0YXJnID0KKwkJCQkJCXNjc2lfdHJhbnNwb3J0X3RhcmdldF9kYXRhKHN0YXJnZXQpOwogCi0JCQkJCWlmICh0YXJnLT5kZXZpY2VzW2pdID09IE5VTEwpCisJCQkJCWlmICh0YXJnLT5zZGV2W2pdID09IE5VTEwpCiAJCQkJCQljb250aW51ZTsKLQkJCQkJZGV2ID0gdGFyZy0+ZGV2aWNlc1tqXTsKLQkJCQkJYWhjX2xpbnV4X2ZyZWVfZGV2aWNlKGFoYywgZGV2KTsKKwkJCQkJdGFyZy0+c2RldltqXSA9IE5VTEw7CiAJCQkJfQotCQkJCS8qCi0JCQkJICogRm9yY2libHkgZnJlZSB0aGUgdGFyZ2V0IG5vdyB0aGF0Ci0JCQkJICogYWxsIGRldmljZXMgYXJlIGdvbmUuCi0JCQkJICovCi0JCQkJYWhjX2xpbnV4X2ZyZWVfdGFyZ2V0KGFoYywgdGFyZyk7CisJCQkJYWhjLT5wbGF0Zm9ybV9kYXRhLT5zdGFyZ2V0W2ldID0gTlVMTDsKICAJCQl9CiAgCQl9CiAKQEAgLTEzOTUsMTUgKzEzNzksMjUgQEAKIGFoY19wbGF0Zm9ybV9zZXRfdGFncyhzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHN0cnVjdCBhaGNfZGV2aW5mbyAqZGV2aW5mbywKIAkJICAgICAgYWhjX3F1ZXVlX2FsZyBhbGcpCiB7CisJc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0OworCXN0cnVjdCBhaGNfbGludXhfdGFyZ2V0ICp0YXJnOwogCXN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXY7CisJc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2OworCXVfaW50IHRhcmdldF9vZmZzZXQ7CiAJaW50IHdhc19xdWV1aW5nOwogCWludCBub3dfcXVldWluZzsKIAotCWRldiA9IGFoY19saW51eF9nZXRfZGV2aWNlKGFoYywgZGV2aW5mby0+Y2hhbm5lbCAtICdBJywKLQkJCQkgICBkZXZpbmZvLT50YXJnZXQsCi0JCQkJICAgZGV2aW5mby0+bHVuKTsKLQlpZiAoZGV2ID09IE5VTEwpCisJdGFyZ2V0X29mZnNldCA9IGRldmluZm8tPnRhcmdldDsKKwlpZiAoZGV2aW5mby0+Y2hhbm5lbCAhPSAnQScpCisJCXRhcmdldF9vZmZzZXQgKz0gODsKKwlzdGFyZ2V0ID0gYWhjLT5wbGF0Zm9ybV9kYXRhLT5zdGFyZ2V0W3RhcmdldF9vZmZzZXRdOworCXRhcmcgPSBzY3NpX3RyYW5zcG9ydF90YXJnZXRfZGF0YShzdGFyZ2V0KTsKKwlCVUdfT04odGFyZyA9PSBOVUxMKTsKKwlzZGV2ID0gdGFyZy0+c2RldltkZXZpbmZvLT5sdW5dOworCWlmIChzZGV2ID09IE5VTEwpCiAJCXJldHVybjsKKwlkZXYgPSBzY3NpX3RyYW5zcG9ydF9kZXZpY2VfZGF0YShzZGV2KTsKKwogCXdhc19xdWV1aW5nID0gZGV2LT5mbGFncyAmIChBSENfREVWX1FfQkFTSUN8QUhDX0RFVl9RX1RBR0dFRCk7CiAJc3dpdGNoIChhbGcpIHsKIAlkZWZhdWx0OgpAQCAtMTQ1NCwzMCArMTQ0OCwyOCBAQAogCQlkZXYtPm1heHRhZ3MgPSAwOwogCQlkZXYtPm9wZW5pbmdzID0gIDEgLSBkZXYtPmFjdGl2ZTsKIAl9Ci0JaWYgKGRldi0+c2NzaV9kZXZpY2UgIT0gTlVMTCkgewotCQlzd2l0Y2ggKChkZXYtPmZsYWdzICYgKEFIQ19ERVZfUV9CQVNJQ3xBSENfREVWX1FfVEFHR0VEKSkpIHsKLQkJY2FzZSBBSENfREVWX1FfQkFTSUM6Ci0JCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChkZXYtPnNjc2lfZGV2aWNlLAotCQkJCQkJTVNHX1NJTVBMRV9UQVNLLAotCQkJCQkJZGV2LT5vcGVuaW5ncyArIGRldi0+YWN0aXZlKTsKLQkJCWJyZWFrOwotCQljYXNlIEFIQ19ERVZfUV9UQUdHRUQ6Ci0JCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChkZXYtPnNjc2lfZGV2aWNlLAotCQkJCQkJTVNHX09SREVSRURfVEFTSywKLQkJCQkJCWRldi0+b3BlbmluZ3MgKyBkZXYtPmFjdGl2ZSk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCS8qCi0JCQkgKiBXZSBhbGxvdyB0aGUgT1MgdG8gcXVldWUgMiB1bnRhZ2dlZCB0cmFuc2FjdGlvbnMgdG8KLQkJCSAqIHVzIGF0IGFueSB0aW1lIGV2ZW4gdGhvdWdoIHdlIGNhbiBvbmx5IGV4ZWN1dGUgdGhlbQotCQkJICogc2VyaWFsbHkgb24gdGhlIGNvbnRyb2xsZXIvZGV2aWNlLiAgVGhpcyBzaG91bGQKLQkJCSAqIHJlbW92ZSBzb21lIGxhdGVuY3kuCi0JCQkgKi8KLQkJCXNjc2lfYWRqdXN0X3F1ZXVlX2RlcHRoKGRldi0+c2NzaV9kZXZpY2UsCi0JCQkJCQkvKk5PTi1UQUdHRUQqLzAsCi0JCQkJCQkvKnF1ZXVlIGRlcHRoKi8yKTsKLQkJCWJyZWFrOwotCQl9CisJc3dpdGNoICgoZGV2LT5mbGFncyAmIChBSENfREVWX1FfQkFTSUN8QUhDX0RFVl9RX1RBR0dFRCkpKSB7CisJY2FzZSBBSENfREVWX1FfQkFTSUM6CisJCXNjc2lfYWRqdXN0X3F1ZXVlX2RlcHRoKHNkZXYsCisJCQkJCU1TR19TSU1QTEVfVEFTSywKKwkJCQkJZGV2LT5vcGVuaW5ncyArIGRldi0+YWN0aXZlKTsKKwkJYnJlYWs7CisJY2FzZSBBSENfREVWX1FfVEFHR0VEOgorCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChzZGV2LAorCQkJCQlNU0dfT1JERVJFRF9UQVNLLAorCQkJCQlkZXYtPm9wZW5pbmdzICsgZGV2LT5hY3RpdmUpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKgorCQkgKiBXZSBhbGxvdyB0aGUgT1MgdG8gcXVldWUgMiB1bnRhZ2dlZCB0cmFuc2FjdGlvbnMgdG8KKwkJICogdXMgYXQgYW55IHRpbWUgZXZlbiB0aG91Z2ggd2UgY2FuIG9ubHkgZXhlY3V0ZSB0aGVtCisJCSAqIHNlcmlhbGx5IG9uIHRoZSBjb250cm9sbGVyL2RldmljZS4gIFRoaXMgc2hvdWxkCisJCSAqIHJlbW92ZSBzb21lIGxhdGVuY3kuCisJCSAqLworCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChzZGV2LAorCQkJCQkvKk5PTi1UQUdHRUQqLzAsCisJCQkJCS8qcXVldWUgZGVwdGgqLzIpOworCQlicmVhazsKIAl9CiB9CiAKQEAgLTE1MjMsMjIgKzE1MTUsMjAgQEAKICAqIERldGVybWluZXMgdGhlIHF1ZXVlIGRlcHRoIGZvciBhIGdpdmVuIGRldmljZS4KICAqLwogc3RhdGljIHZvaWQKLWFoY19saW51eF9kZXZpY2VfcXVldWVfZGVwdGgoc3RydWN0IGFoY19zb2Z0YyAqYWhjLAotCQkJICAgICBzdHJ1Y3QgYWhjX2xpbnV4X2RldmljZSAqZGV2KQorYWhjX2xpbnV4X2RldmljZV9xdWV1ZV9kZXB0aChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpCiB7CiAJc3RydWN0CWFoY19kZXZpbmZvIGRldmluZm87CiAJdV9pbnQJdGFnczsKKwlzdHJ1Y3QgYWhjX3NvZnRjICphaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNkZXYtPmhvc3QtPmhvc3RkYXRhKTsKIAogCWFoY19jb21waWxlX2RldmluZm8oJmRldmluZm8sCi0JCQkgICAgZGV2LT50YXJnZXQtPmNoYW5uZWwgPT0gMAorCQkJICAgIHNkZXYtPnNkZXZfdGFyZ2V0LT5jaGFubmVsID09IDAKIAkJCSAgPyBhaGMtPm91cl9pZCA6IGFoYy0+b3VyX2lkX2IsCi0JCQkgICAgZGV2LT50YXJnZXQtPnRhcmdldCwgZGV2LT5sdW4sCi0JCQkgICAgZGV2LT50YXJnZXQtPmNoYW5uZWwgPT0gMCA/ICdBJyA6ICdCJywKKwkJCSAgICBzZGV2LT5zZGV2X3RhcmdldC0+aWQsIHNkZXYtPmx1biwKKwkJCSAgICBzZGV2LT5zZGV2X3RhcmdldC0+Y2hhbm5lbCA9PSAwID8gJ0EnIDogJ0InLAogCQkJICAgIFJPTEVfSU5JVElBVE9SKTsKIAl0YWdzID0gYWhjX2xpbnV4X3VzZXJfdGFnZGVwdGgoYWhjLCAmZGV2aW5mbyk7Ci0JaWYgKHRhZ3MgIT0gMAotCSAmJiBkZXYtPnNjc2lfZGV2aWNlICE9IE5VTEwKLQkgJiYgZGV2LT5zY3NpX2RldmljZS0+dGFnZ2VkX3N1cHBvcnRlZCAhPSAwKSB7CisJaWYgKHRhZ3MgIT0gMCAmJiBzZGV2LT50YWdnZWRfc3VwcG9ydGVkICE9IDApIHsKIAogCQlhaGNfc2V0X3RhZ3MoYWhjLCAmZGV2aW5mbywgQUhDX1FVRVVFX1RBR0dFRCk7CiAJCWFoY19wcmludF9kZXZpbmZvKGFoYywgJmRldmluZm8pOwpAQCAtMTU4NywxMCArMTU3Nyw5IEBACiAJLyoKIAkgKiBHZXQgYW4gc2NiIHRvIHVzZS4KIAkgKi8KLQlpZiAoKHNjYiA9IGFoY19nZXRfc2NiKGFoYykpID09IE5VTEwpIHsKLQkJCWFoYy0+ZmxhZ3MgfD0gQUhDX1JFU09VUkNFX1NIT1JUQUdFOwotCQkJcmV0dXJuIFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7Ci0JfQorCXNjYiA9IGFoY19nZXRfc2NiKGFoYyk7CisJaWYgKCFzY2IpCisJCXJldHVybiBTQ1NJX01MUVVFVUVfSE9TVF9CVVNZOwogCiAJc2NiLT5pb19jdHggPSBjbWQ7CiAJc2NiLT5wbGF0Zm9ybV9kYXRhLT5kZXYgPSBkZXY7CkBAIC0xNzY3LDEwNiArMTc1Niw2IEBACiAKIH0KIAotc3RhdGljIHN0cnVjdCBhaGNfbGludXhfdGFyZ2V0KgotYWhjX2xpbnV4X2FsbG9jX3RhcmdldChzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHVfaW50IGNoYW5uZWwsIHVfaW50IHRhcmdldCkKLXsKLQlzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldCAqdGFyZzsKLQl1X2ludCB0YXJnZXRfb2Zmc2V0OwotCi0JdGFyZ2V0X29mZnNldCA9IHRhcmdldDsKLQlpZiAoY2hhbm5lbCAhPSAwKQotCQl0YXJnZXRfb2Zmc2V0ICs9IDg7Ci0KLQl0YXJnID0gbWFsbG9jKHNpemVvZigqdGFyZyksIE1fREVWQlVHLCBNX05PV0FJVCk7Ci0JaWYgKHRhcmcgPT0gTlVMTCkKLQkJcmV0dXJuIChOVUxMKTsKLQltZW1zZXQodGFyZywgMCwgc2l6ZW9mKCp0YXJnKSk7Ci0JdGFyZy0+Y2hhbm5lbCA9IGNoYW5uZWw7Ci0JdGFyZy0+dGFyZ2V0ID0gdGFyZ2V0OwotCXRhcmctPmFoYyA9IGFoYzsKLQlhaGMtPnBsYXRmb3JtX2RhdGEtPnRhcmdldHNbdGFyZ2V0X29mZnNldF0gPSB0YXJnOwotCXJldHVybiAodGFyZyk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1haGNfbGludXhfZnJlZV90YXJnZXQoc3RydWN0IGFoY19zb2Z0YyAqYWhjLCBzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldCAqdGFyZykKLXsKLQlzdHJ1Y3QgYWhjX2RldmluZm8gZGV2aW5mbzsKLQlzdHJ1Y3QgYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm87Ci0Jc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQl1X2ludCBvdXJfaWQ7Ci0JdV9pbnQgdGFyZ2V0X29mZnNldDsKLQljaGFyIGNoYW5uZWw7Ci0KLQkvKgotCSAqIEZvcmNlIGEgbmVnb3RpYXRpb24gdG8gYXN5bmMvbmFycm93IG9uIGFueQotCSAqIGZ1dHVyZSBjb21tYW5kIHRvIHRoaXMgZGV2aWNlIHVubGVzcyBhIGJ1cwotCSAqIHJlc2V0IG9jY3VycyBiZXR3ZWVuIG5vdyBhbmQgdGhhdCBjb21tYW5kLgotCSAqLwotCWNoYW5uZWwgPSAnQScgKyB0YXJnLT5jaGFubmVsOwotCW91cl9pZCA9IGFoYy0+b3VyX2lkOwotCXRhcmdldF9vZmZzZXQgPSB0YXJnLT50YXJnZXQ7Ci0JaWYgKHRhcmctPmNoYW5uZWwgIT0gMCkgewotCQl0YXJnZXRfb2Zmc2V0ICs9IDg7Ci0JCW91cl9pZCA9IGFoYy0+b3VyX2lkX2I7Ci0JfQotCXRpbmZvID0gYWhjX2ZldGNoX3RyYW5zaW5mbyhhaGMsIGNoYW5uZWwsIG91cl9pZCwKLQkJCQkgICAgdGFyZy0+dGFyZ2V0LCAmdHN0YXRlKTsKLQlhaGNfY29tcGlsZV9kZXZpbmZvKCZkZXZpbmZvLCBvdXJfaWQsIHRhcmctPnRhcmdldCwgQ0FNX0xVTl9XSUxEQ0FSRCwKLQkJCSAgICBjaGFubmVsLCBST0xFX0lOSVRJQVRPUik7Ci0JYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBOVUxMLCAwLCAwLCAwLAotCQkJIEFIQ19UUkFOU19HT0FMLCAvKnBhdXNlZCovRkFMU0UpOwotCWFoY19zZXRfd2lkdGgoYWhjLCAmZGV2aW5mbywgTVNHX0VYVF9XRFRSX0JVU184X0JJVCwKLQkJICAgICAgQUhDX1RSQU5TX0dPQUwsIC8qcGF1c2VkKi9GQUxTRSk7Ci0JYWhjX3VwZGF0ZV9uZWdfcmVxdWVzdChhaGMsICZkZXZpbmZvLCB0c3RhdGUsIHRpbmZvLCBBSENfTkVHX0FMV0FZUyk7Ci0JYWhjLT5wbGF0Zm9ybV9kYXRhLT50YXJnZXRzW3RhcmdldF9vZmZzZXRdID0gTlVMTDsKLQlmcmVlKHRhcmcsIE1fREVWQlVGKTsKLX0KLQotc3RhdGljIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlKgotYWhjX2xpbnV4X2FsbG9jX2RldmljZShzdHJ1Y3QgYWhjX3NvZnRjICphaGMsCi0JCSBzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldCAqdGFyZywgdV9pbnQgbHVuKQotewotCXN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXY7Ci0KLQlkZXYgPSBtYWxsb2Moc2l6ZW9mKCpkZXYpLCBNX0RFVkJVRywgTV9OT1dBSVQpOwotCWlmIChkZXYgPT0gTlVMTCkKLQkJcmV0dXJuIChOVUxMKTsKLQltZW1zZXQoZGV2LCAwLCBzaXplb2YoKmRldikpOwotCWRldi0+bHVuID0gbHVuOwotCWRldi0+dGFyZ2V0ID0gdGFyZzsKLQotCS8qCi0JICogV2Ugc3RhcnQgb3V0IGxpZmUgdXNpbmcgdW50YWdnZWQKLQkgKiB0cmFuc2FjdGlvbnMgb2Ygd2hpY2ggd2UgYWxsb3cgb25lLgotCSAqLwotCWRldi0+b3BlbmluZ3MgPSAxOwotCi0JLyoKLQkgKiBTZXQgbWF4dGFncyB0byAwLiAgVGhpcyB3aWxsIGJlIGNoYW5nZWQgaWYgd2UKLQkgKiBsYXRlciBkZXRlcm1pbmUgdGhhdCB3ZSBhcmUgZGVhbGluZyB3aXRoCi0JICogYSB0YWdnZWQgcXVldWluZyBjYXBhYmxlIGRldmljZS4KLQkgKi8KLQlkZXYtPm1heHRhZ3MgPSAwOwotCQotCXRhcmctPnJlZmNvdW50Kys7Ci0JdGFyZy0+ZGV2aWNlc1tsdW5dID0gZGV2OwotCXJldHVybiAoZGV2KTsKLX0KLQotc3RhdGljIHZvaWQKLWFoY19saW51eF9mcmVlX2RldmljZShzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGFoY19saW51eF90YXJnZXQgKnRhcmc7Ci0KLQl0YXJnID0gZGV2LT50YXJnZXQ7Ci0JdGFyZy0+ZGV2aWNlc1tkZXYtPmx1bl0gPSBOVUxMOwotCWZyZWUoZGV2LCBNX0RFVkJVRik7Ci0JdGFyZy0+cmVmY291bnQtLTsKLQlpZiAodGFyZy0+cmVmY291bnQgPT0gMCkKLQkJYWhjX2xpbnV4X2ZyZWVfdGFyZ2V0KGFoYywgdGFyZyk7Ci19Ci0KIHZvaWQKIGFoY19zZW5kX2FzeW5jKHN0cnVjdCBhaGNfc29mdGMgKmFoYywgY2hhciBjaGFubmVsLAogCSAgICAgICB1X2ludCB0YXJnZXQsIHVfaW50IGx1biwgYWNfY29kZSBjb2RlLCB2b2lkICphcmcpCkBAIC0xODc1LDExICsxNzY0LDE1IEBACiAJY2FzZSBBQ19UUkFOU0ZFUl9ORUc6CiAJewogCQljaGFyCWJ1Zls4MF07CisJCXN0cnVjdAlzY3NpX3RhcmdldCAqc3RhcmdldDsKIAkJc3RydWN0CWFoY19saW51eF90YXJnZXQgKnRhcmc7CiAJCXN0cnVjdAlpbmZvX3N0ciBpbmZvOwogCQlzdHJ1Y3QJYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm87CiAJCXN0cnVjdAlhaGNfdG1vZGVfdHN0YXRlICp0c3RhdGU7CiAJCWludAl0YXJnZXRfb2Zmc2V0OworCQl1bnNpZ25lZCBpbnQgdGFyZ2V0X3Bwcl9vcHRpb25zOworCisJCUJVR19PTih0YXJnZXQgPT0gQ0FNX1RBUkdFVF9XSUxEQ0FSRCk7CiAKIAkJaW5mby5idWZmZXIgPSBidWY7CiAJCWluZm8ubGVuZ3RoID0gc2l6ZW9mKGJ1Zik7CkBAIC0xOTA4LDMyICsxODAxLDMwIEBACiAJCXRhcmdldF9vZmZzZXQgPSB0YXJnZXQ7CiAJCWlmIChjaGFubmVsID09ICdCJykKIAkJCXRhcmdldF9vZmZzZXQgKz0gODsKLQkJdGFyZyA9IGFoYy0+cGxhdGZvcm1fZGF0YS0+dGFyZ2V0c1t0YXJnZXRfb2Zmc2V0XTsKKwkJc3RhcmdldCA9IGFoYy0+cGxhdGZvcm1fZGF0YS0+c3RhcmdldFt0YXJnZXRfb2Zmc2V0XTsKKwkJdGFyZyA9IHNjc2lfdHJhbnNwb3J0X3RhcmdldF9kYXRhKHN0YXJnZXQpOwogCQlpZiAodGFyZyA9PSBOVUxMKQogCQkJYnJlYWs7Ci0JCWlmICh0aW5mby0+Y3Vyci5wZXJpb2QgPT0gdGFyZy0+bGFzdF90aW5mby5wZXJpb2QKLQkJICYmIHRpbmZvLT5jdXJyLndpZHRoID09IHRhcmctPmxhc3RfdGluZm8ud2lkdGgKLQkJICYmIHRpbmZvLT5jdXJyLm9mZnNldCA9PSB0YXJnLT5sYXN0X3RpbmZvLm9mZnNldAotCQkgJiYgdGluZm8tPmN1cnIucHByX29wdGlvbnMgPT0gdGFyZy0+bGFzdF90aW5mby5wcHJfb3B0aW9ucykKKworCQl0YXJnZXRfcHByX29wdGlvbnMgPQorCQkJKHNwaV9kdChzdGFyZ2V0KSA/IE1TR19FWFRfUFBSX0RUX1JFUSA6IDApCisJCQkrIChzcGlfcWFzKHN0YXJnZXQpID8gTVNHX0VYVF9QUFJfUUFTX1JFUSA6IDApCisJCQkrIChzcGlfaXUoc3RhcmdldCkgPyAgTVNHX0VYVF9QUFJfSVVfUkVRIDogMCk7CisKKwkJaWYgKHRpbmZvLT5jdXJyLnBlcmlvZCA9PSBzcGlfcGVyaW9kKHN0YXJnZXQpCisJCSAgICAmJiB0aW5mby0+Y3Vyci53aWR0aCA9PSBzcGlfd2lkdGgoc3RhcmdldCkKKwkJICAgICYmIHRpbmZvLT5jdXJyLm9mZnNldCA9PSBzcGlfb2Zmc2V0KHN0YXJnZXQpCisJCSAmJiB0aW5mby0+Y3Vyci5wcHJfb3B0aW9ucyA9PSB0YXJnZXRfcHByX29wdGlvbnMpCiAJCQlpZiAoYm9vdHZlcmJvc2UgPT0gMCkKIAkJCQlicmVhazsKIAotCQl0YXJnLT5sYXN0X3RpbmZvLnBlcmlvZCA9IHRpbmZvLT5jdXJyLnBlcmlvZDsKLQkJdGFyZy0+bGFzdF90aW5mby53aWR0aCA9IHRpbmZvLT5jdXJyLndpZHRoOwotCQl0YXJnLT5sYXN0X3RpbmZvLm9mZnNldCA9IHRpbmZvLT5jdXJyLm9mZnNldDsKLQkJdGFyZy0+bGFzdF90aW5mby5wcHJfb3B0aW9ucyA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zOwotCi0JCXByaW50ZigiKCVzOiVjOiIsIGFoY19uYW1lKGFoYyksIGNoYW5uZWwpOwotCQlpZiAodGFyZ2V0ID09IENBTV9UQVJHRVRfV0lMRENBUkQpCi0JCQlwcmludGYoIiopOiAiKTsKLQkJZWxzZQotCQkJcHJpbnRmKCIlZCk6ICIsIHRhcmdldCk7Ci0JCWFoY19mb3JtYXRfdHJhbnNpbmZvKCZpbmZvLCAmdGluZm8tPmN1cnIpOwotCQlpZiAoaW5mby5wb3MgPCBpbmZvLmxlbmd0aCkKLQkJCSppbmZvLmJ1ZmZlciA9ICdcMCc7Ci0JCWVsc2UKLQkJCWJ1ZltpbmZvLmxlbmd0aCAtIDFdID0gJ1wwJzsKLQkJcHJpbnRmKCIlcyIsIGJ1Zik7CisJCXNwaV9wZXJpb2Qoc3RhcmdldCkgPSB0aW5mby0+Y3Vyci5wZXJpb2Q7CisJCXNwaV93aWR0aChzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLndpZHRoOworCQlzcGlfb2Zmc2V0KHN0YXJnZXQpID0gdGluZm8tPmN1cnIub2Zmc2V0OworCQlzcGlfZHQoc3RhcmdldCkgPSB0aW5mby0+Y3Vyci5wcHJfb3B0aW9ucyAmIE1TR19FWFRfUFBSX0RUX1JFUTsKKwkJc3BpX3FhcyhzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zICYgTVNHX0VYVF9QUFJfUUFTX1JFUTsKKwkJc3BpX2l1KHN0YXJnZXQpID0gdGluZm8tPmN1cnIucHByX29wdGlvbnMgJiBNU0dfRVhUX1BQUl9JVV9SRVE7CisJCXNwaV9kaXNwbGF5X3hmZXJfYWdyZWVtZW50KHN0YXJnZXQpOwogCQlicmVhazsKIAl9CiAgICAgICAgIGNhc2UgQUNfU0VOVF9CRFI6CkBAIC0yMDM4LDcgKzE5MjksNyBAQAogCQkJYWhjX3NldF90cmFuc2FjdGlvbl9zdGF0dXMoc2NiLCBDQU1fUkVRX0NNUCk7CiAJCX0KIAl9IGVsc2UgaWYgKGFoY19nZXRfdHJhbnNhY3Rpb25fc3RhdHVzKHNjYikgPT0gQ0FNX1NDU0lfU1RBVFVTX0VSUk9SKSB7Ci0JCWFoY19saW51eF9oYW5kbGVfc2NzaV9zdGF0dXMoYWhjLCBkZXYsIHNjYik7CisJCWFoY19saW51eF9oYW5kbGVfc2NzaV9zdGF0dXMoYWhjLCBjbWQtPmRldmljZSwgc2NiKTsKIAl9CiAKIAlpZiAoZGV2LT5vcGVuaW5ncyA9PSAxCkBAIC0yMDc3LDE0ICsxOTY4LDE1IEBACiAKIHN0YXRpYyB2b2lkCiBhaGNfbGludXhfaGFuZGxlX3Njc2lfc3RhdHVzKHN0cnVjdCBhaGNfc29mdGMgKmFoYywKLQkJCSAgICAgc3RydWN0IGFoY19saW51eF9kZXZpY2UgKmRldiwgc3RydWN0IHNjYiAqc2NiKQorCQkJICAgICBzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsIHN0cnVjdCBzY2IgKnNjYikKIHsKIAlzdHJ1Y3QJYWhjX2RldmluZm8gZGV2aW5mbzsKKwlzdHJ1Y3QgYWhjX2xpbnV4X2RldmljZSAqZGV2ID0gc2NzaV90cmFuc3BvcnRfZGV2aWNlX2RhdGEoc2Rldik7CiAKIAlhaGNfY29tcGlsZV9kZXZpbmZvKCZkZXZpbmZvLAogCQkJICAgIGFoYy0+b3VyX2lkLAotCQkJICAgIGRldi0+dGFyZ2V0LT50YXJnZXQsIGRldi0+bHVuLAotCQkJICAgIGRldi0+dGFyZ2V0LT5jaGFubmVsID09IDAgPyAnQScgOiAnQicsCisJCQkgICAgc2Rldi0+c2Rldl90YXJnZXQtPmlkLCBzZGV2LT5sdW4sCisJCQkgICAgc2Rldi0+c2Rldl90YXJnZXQtPmNoYW5uZWwgPT0gMCA/ICdBJyA6ICdCJywKIAkJCSAgICBST0xFX0lOSVRJQVRPUik7CiAJCiAJLyoKQEAgLTIzNjEsNiArMjI1Myw4IEBACiAJCXByaW50ZigiIDB4JXgiLCBjbWQtPmNtbmRbY2RiX2J5dGVdKTsKIAlwcmludGYoIlxuIik7CiAKKwlzcGluX2xvY2tfaXJxKCZhaGMtPnBsYXRmb3JtX2RhdGEtPnNwaW5fbG9jayk7CisKIAkvKgogCSAqIEZpcnN0IGRldGVybWluZSBpZiB3ZSBjdXJyZW50bHkgb3duIHRoaXMgY29tbWFuZC4KIAkgKiBTdGFydCBieSBzZWFyY2hpbmcgdGhlIGRldmljZSBxdWV1ZS4gIElmIG5vdCBmb3VuZApAQCAtMjM2OCw4ICsyMjYyLDcgQEAKIAkgKiBhdCBhbGwsIGFuZCB0aGUgc3lzdGVtIHdhbnRlZCB1cyB0byBqdXN0IGFib3J0IHRoZQogCSAqIGNvbW1hbmQsIHJldHVybiBzdWNjZXNzLgogCSAqLwotCWRldiA9IGFoY19saW51eF9nZXRfZGV2aWNlKGFoYywgY21kLT5kZXZpY2UtPmNoYW5uZWwsIGNtZC0+ZGV2aWNlLT5pZCwKLQkJCQkgICBjbWQtPmRldmljZS0+bHVuKTsKKwlkZXYgPSBzY3NpX3RyYW5zcG9ydF9kZXZpY2VfZGF0YShjbWQtPmRldmljZSk7CiAKIAlpZiAoZGV2ID09IE5VTEwpIHsKIAkJLyoKQEAgLTI2MTYsNiArMjUwOSw4IEBACiAJCX0KIAkJc3Bpbl9sb2NrX2lycSgmYWhjLT5wbGF0Zm9ybV9kYXRhLT5zcGluX2xvY2spOwogCX0KKworCXNwaW5fdW5sb2NrX2lycSgmYWhjLT5wbGF0Zm9ybV9kYXRhLT5zcGluX2xvY2spOwogCXJldHVybiAocmV0dmFsKTsKIH0KIApAQCAtMjYyNiwxOCArMjUyMSw2IEBACiAKIHN0YXRpYyB2b2lkIGFoY19saW51eF9leGl0KHZvaWQpOwogCi1zdGF0aWMgdm9pZCBhaGNfbGludXhfZ2V0X3dpZHRoKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKLXsKLQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNob3N0LT5ob3N0ZGF0YSk7Ci0Jc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQlzdHJ1Y3QgYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm8gCi0JCT0gYWhjX2ZldGNoX3RyYW5zaW5mbyhhaGMsCi0JCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKLQkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwotCXNwaV93aWR0aChzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLndpZHRoOwotfQotCiBzdGF0aWMgdm9pZCBhaGNfbGludXhfc2V0X3dpZHRoKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCwgaW50IHdpZHRoKQogewogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KHN0YXJnZXQtPmRldi5wYXJlbnQpOwpAQCAtMjY1MiwxOCArMjUzNSw2IEBACiAJYWhjX3VubG9jayhhaGMsICZmbGFncyk7CiB9CiAKLXN0YXRpYyB2b2lkIGFoY19saW51eF9nZXRfcGVyaW9kKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKLXsKLQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNob3N0LT5ob3N0ZGF0YSk7Ci0Jc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQlzdHJ1Y3QgYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm8gCi0JCT0gYWhjX2ZldGNoX3RyYW5zaW5mbyhhaGMsCi0JCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKLQkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwotCXNwaV9wZXJpb2Qoc3RhcmdldCkgPSB0aW5mby0+Y3Vyci5wZXJpb2Q7Ci19Ci0KIHN0YXRpYyB2b2lkIGFoY19saW51eF9zZXRfcGVyaW9kKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCwgaW50IHBlcmlvZCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKQEAgLTI2NzQsOSArMjU0NSw5IEBACiAJCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKIAkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwogCXN0cnVjdCBhaGNfZGV2aW5mbyBkZXZpbmZvOwotCXVuc2lnbmVkIGludCBwcHJfb3B0aW9ucyA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zOworCXVuc2lnbmVkIGludCBwcHJfb3B0aW9ucyA9IHRpbmZvLT5nb2FsLnBwcl9vcHRpb25zOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQgPSB0aW5mby0+Y3Vyci5vZmZzZXQ7CisJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSB0aW5mby0+Z29hbC5vZmZzZXQ7CiAJc3RydWN0IGFoY19zeW5jcmF0ZSAqc3luY3JhdGU7CiAKIAlpZiAob2Zmc2V0ID09IDApCkBAIC0yNjkyLDcgKzI1NjMsNiBAQAogCiAJLyogYWxsIFBQUiByZXF1ZXN0cyBhcGFydCBmcm9tIFFBUyByZXF1aXJlIHdpZGUgdHJhbnNmZXJzICovCiAJaWYgKHBwcl9vcHRpb25zICYgfk1TR19FWFRfUFBSX1FBU19SRVEpIHsKLQkJYWhjX2xpbnV4X2dldF93aWR0aChzdGFyZ2V0KTsKIAkJaWYgKHNwaV93aWR0aChzdGFyZ2V0KSA9PSAwKQogCQkJcHByX29wdGlvbnMgJj0gTVNHX0VYVF9QUFJfUUFTX1JFUTsKIAl9CkBAIC0yNzA0LDE4ICsyNTc0LDYgQEAKIAlhaGNfdW5sb2NrKGFoYywgJmZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgYWhjX2xpbnV4X2dldF9vZmZzZXQoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQotewotCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KHN0YXJnZXQtPmRldi5wYXJlbnQpOwotCXN0cnVjdCBhaGNfc29mdGMgKmFoYyA9ICooKHN0cnVjdCBhaGNfc29mdGMgKiopc2hvc3QtPmhvc3RkYXRhKTsKLQlzdHJ1Y3QgYWhjX3Rtb2RlX3RzdGF0ZSAqdHN0YXRlOwotCXN0cnVjdCBhaGNfaW5pdGlhdG9yX3RpbmZvICp0aW5mbyAKLQkJPSBhaGNfZmV0Y2hfdHJhbnNpbmZvKGFoYywKLQkJCQkgICAgICBzdGFyZ2V0LT5jaGFubmVsICsgJ0EnLAotCQkJCSAgICAgIHNob3N0LT50aGlzX2lkLCBzdGFyZ2V0LT5pZCwgJnRzdGF0ZSk7Ci0Jc3BpX29mZnNldChzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLm9mZnNldDsKLX0KLQogc3RhdGljIHZvaWQgYWhjX2xpbnV4X3NldF9vZmZzZXQoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0LCBpbnQgb2Zmc2V0KQogewogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KHN0YXJnZXQtPmRldi5wYXJlbnQpOwpAQCAtMjczNSw4ICsyNTkzLDggQEAKIAkJCSAgICBzdGFyZ2V0LT5jaGFubmVsICsgJ0EnLCBST0xFX0lOSVRJQVRPUik7CiAJaWYgKG9mZnNldCAhPSAwKSB7CiAJCXN5bmNyYXRlID0gYWhjX2ZpbmRfc3luY3JhdGUoYWhjLCAmcGVyaW9kLCAmcHByX29wdGlvbnMsIEFIQ19TWU5DUkFURV9EVCk7Ci0JCXBlcmlvZCA9IHRpbmZvLT5jdXJyLnBlcmlvZDsKLQkJcHByX29wdGlvbnMgPSB0aW5mby0+Y3Vyci5wcHJfb3B0aW9uczsKKwkJcGVyaW9kID0gdGluZm8tPmdvYWwucGVyaW9kOworCQlwcHJfb3B0aW9ucyA9IHRpbmZvLT5nb2FsLnBwcl9vcHRpb25zOwogCX0KIAlhaGNfbG9jayhhaGMsICZmbGFncyk7CiAJYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBzeW5jcmF0ZSwgcGVyaW9kLCBvZmZzZXQsCkBAIC0yNzQ0LDE4ICsyNjAyLDYgQEAKIAlhaGNfdW5sb2NrKGFoYywgJmZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgYWhjX2xpbnV4X2dldF9kdChzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQpCi17Ci0Jc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBkZXZfdG9fc2hvc3Qoc3RhcmdldC0+ZGV2LnBhcmVudCk7Ci0Jc3RydWN0IGFoY19zb2Z0YyAqYWhjID0gKigoc3RydWN0IGFoY19zb2Z0YyAqKilzaG9zdC0+aG9zdGRhdGEpOwotCXN0cnVjdCBhaGNfdG1vZGVfdHN0YXRlICp0c3RhdGU7Ci0Jc3RydWN0IGFoY19pbml0aWF0b3JfdGluZm8gKnRpbmZvIAotCQk9IGFoY19mZXRjaF90cmFuc2luZm8oYWhjLAotCQkJCSAgICAgIHN0YXJnZXQtPmNoYW5uZWwgKyAnQScsCi0JCQkJICAgICAgc2hvc3QtPnRoaXNfaWQsIHN0YXJnZXQtPmlkLCAmdHN0YXRlKTsKLQlzcGlfZHQoc3RhcmdldCkgPSB0aW5mby0+Y3Vyci5wcHJfb3B0aW9ucyAmIE1TR19FWFRfUFBSX0RUX1JFUTsKLX0KLQogc3RhdGljIHZvaWQgYWhjX2xpbnV4X3NldF9kdChzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQsIGludCBkdCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKQEAgLTI3NjYsOSArMjYxMiw5IEBACiAJCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKIAkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwogCXN0cnVjdCBhaGNfZGV2aW5mbyBkZXZpbmZvOwotCXVuc2lnbmVkIGludCBwcHJfb3B0aW9ucyA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zCisJdW5zaWduZWQgaW50IHBwcl9vcHRpb25zID0gdGluZm8tPmdvYWwucHByX29wdGlvbnMKIAkJJiB+TVNHX0VYVF9QUFJfRFRfUkVROwotCXVuc2lnbmVkIGludCBwZXJpb2QgPSB0aW5mby0+Y3Vyci5wZXJpb2Q7CisJdW5zaWduZWQgaW50IHBlcmlvZCA9IHRpbmZvLT5nb2FsLnBlcmlvZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBhaGNfc3luY3JhdGUgKnN5bmNyYXRlOwogCkBAIC0yNzgyLDIzICsyNjI4LDExIEBACiAJCQkgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywgUk9MRV9JTklUSUFUT1IpOwogCXN5bmNyYXRlID0gYWhjX2ZpbmRfc3luY3JhdGUoYWhjLCAmcGVyaW9kLCAmcHByX29wdGlvbnMsQUhDX1NZTkNSQVRFX0RUKTsKIAlhaGNfbG9jayhhaGMsICZmbGFncyk7Ci0JYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBzeW5jcmF0ZSwgcGVyaW9kLCB0aW5mby0+Y3Vyci5vZmZzZXQsCisJYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBzeW5jcmF0ZSwgcGVyaW9kLCB0aW5mby0+Z29hbC5vZmZzZXQsCiAJCQkgcHByX29wdGlvbnMsIEFIQ19UUkFOU19HT0FMLCBGQUxTRSk7CiAJYWhjX3VubG9jayhhaGMsICZmbGFncyk7CiB9CiAKLXN0YXRpYyB2b2lkIGFoY19saW51eF9nZXRfcWFzKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKLXsKLQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNob3N0LT5ob3N0ZGF0YSk7Ci0Jc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQlzdHJ1Y3QgYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm8gCi0JCT0gYWhjX2ZldGNoX3RyYW5zaW5mbyhhaGMsCi0JCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKLQkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwotCXNwaV9kdChzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zICYgTVNHX0VYVF9QUFJfUUFTX1JFUTsKLX0KLQogc3RhdGljIHZvaWQgYWhjX2xpbnV4X3NldF9xYXMoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0LCBpbnQgcWFzKQogewogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KHN0YXJnZXQtPmRldi5wYXJlbnQpOwpAQCAtMjgwOSw5ICsyNjQzLDkgQEAKIAkJCQkgICAgICBzdGFyZ2V0LT5jaGFubmVsICsgJ0EnLAogCQkJCSAgICAgIHNob3N0LT50aGlzX2lkLCBzdGFyZ2V0LT5pZCwgJnRzdGF0ZSk7CiAJc3RydWN0IGFoY19kZXZpbmZvIGRldmluZm87Ci0JdW5zaWduZWQgaW50IHBwcl9vcHRpb25zID0gdGluZm8tPmN1cnIucHByX29wdGlvbnMKKwl1bnNpZ25lZCBpbnQgcHByX29wdGlvbnMgPSB0aW5mby0+Z29hbC5wcHJfb3B0aW9ucwogCQkmIH5NU0dfRVhUX1BQUl9RQVNfUkVROwotCXVuc2lnbmVkIGludCBwZXJpb2QgPSB0aW5mby0+Y3Vyci5wZXJpb2Q7CisJdW5zaWduZWQgaW50IHBlcmlvZCA9IHRpbmZvLT5nb2FsLnBlcmlvZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBhaGNfc3luY3JhdGUgKnN5bmNyYXRlOwogCkBAIC0yODIyLDIzICsyNjU2LDExIEBACiAJCQkgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywgUk9MRV9JTklUSUFUT1IpOwogCXN5bmNyYXRlID0gYWhjX2ZpbmRfc3luY3JhdGUoYWhjLCAmcGVyaW9kLCAmcHByX29wdGlvbnMsIEFIQ19TWU5DUkFURV9EVCk7CiAJYWhjX2xvY2soYWhjLCAmZmxhZ3MpOwotCWFoY19zZXRfc3luY3JhdGUoYWhjLCAmZGV2aW5mbywgc3luY3JhdGUsIHBlcmlvZCwgdGluZm8tPmN1cnIub2Zmc2V0LAorCWFoY19zZXRfc3luY3JhdGUoYWhjLCAmZGV2aW5mbywgc3luY3JhdGUsIHBlcmlvZCwgdGluZm8tPmdvYWwub2Zmc2V0LAogCQkJIHBwcl9vcHRpb25zLCBBSENfVFJBTlNfR09BTCwgRkFMU0UpOwogCWFoY191bmxvY2soYWhjLCAmZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCBhaGNfbGludXhfZ2V0X2l1KHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKLXsKLQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGRldl90b19zaG9zdChzdGFyZ2V0LT5kZXYucGFyZW50KTsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGMgPSAqKChzdHJ1Y3QgYWhjX3NvZnRjICoqKXNob3N0LT5ob3N0ZGF0YSk7Ci0Jc3RydWN0IGFoY190bW9kZV90c3RhdGUgKnRzdGF0ZTsKLQlzdHJ1Y3QgYWhjX2luaXRpYXRvcl90aW5mbyAqdGluZm8gCi0JCT0gYWhjX2ZldGNoX3RyYW5zaW5mbyhhaGMsCi0JCQkJICAgICAgc3RhcmdldC0+Y2hhbm5lbCArICdBJywKLQkJCQkgICAgICBzaG9zdC0+dGhpc19pZCwgc3RhcmdldC0+aWQsICZ0c3RhdGUpOwotCXNwaV9kdChzdGFyZ2V0KSA9IHRpbmZvLT5jdXJyLnBwcl9vcHRpb25zICYgTVNHX0VYVF9QUFJfSVVfUkVROwotfQotCiBzdGF0aWMgdm9pZCBhaGNfbGludXhfc2V0X2l1KHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCwgaW50IGl1KQogewogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KHN0YXJnZXQtPmRldi5wYXJlbnQpOwpAQCAtMjg0OSw5ICsyNjcxLDkgQEAKIAkJCQkgICAgICBzdGFyZ2V0LT5jaGFubmVsICsgJ0EnLAogCQkJCSAgICAgIHNob3N0LT50aGlzX2lkLCBzdGFyZ2V0LT5pZCwgJnRzdGF0ZSk7CiAJc3RydWN0IGFoY19kZXZpbmZvIGRldmluZm87Ci0JdW5zaWduZWQgaW50IHBwcl9vcHRpb25zID0gdGluZm8tPmN1cnIucHByX29wdGlvbnMKKwl1bnNpZ25lZCBpbnQgcHByX29wdGlvbnMgPSB0aW5mby0+Z29hbC5wcHJfb3B0aW9ucwogCQkmIH5NU0dfRVhUX1BQUl9JVV9SRVE7Ci0JdW5zaWduZWQgaW50IHBlcmlvZCA9IHRpbmZvLT5jdXJyLnBlcmlvZDsKKwl1bnNpZ25lZCBpbnQgcGVyaW9kID0gdGluZm8tPmdvYWwucGVyaW9kOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IGFoY19zeW5jcmF0ZSAqc3luY3JhdGU7CiAKQEAgLTI4NjIsMjggKzI2ODQsMjIgQEAKIAkJCSAgICBzdGFyZ2V0LT5jaGFubmVsICsgJ0EnLCBST0xFX0lOSVRJQVRPUik7CiAJc3luY3JhdGUgPSBhaGNfZmluZF9zeW5jcmF0ZShhaGMsICZwZXJpb2QsICZwcHJfb3B0aW9ucywgQUhDX1NZTkNSQVRFX0RUKTsKIAlhaGNfbG9jayhhaGMsICZmbGFncyk7Ci0JYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBzeW5jcmF0ZSwgcGVyaW9kLCB0aW5mby0+Y3Vyci5vZmZzZXQsCisJYWhjX3NldF9zeW5jcmF0ZShhaGMsICZkZXZpbmZvLCBzeW5jcmF0ZSwgcGVyaW9kLCB0aW5mby0+Z29hbC5vZmZzZXQsCiAJCQkgcHByX29wdGlvbnMsIEFIQ19UUkFOU19HT0FMLCBGQUxTRSk7CiAJYWhjX3VubG9jayhhaGMsICZmbGFncyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc3BpX2Z1bmN0aW9uX3RlbXBsYXRlIGFoY19saW51eF90cmFuc3BvcnRfZnVuY3Rpb25zID0gewotCS5nZXRfb2Zmc2V0CT0gYWhjX2xpbnV4X2dldF9vZmZzZXQsCiAJLnNldF9vZmZzZXQJPSBhaGNfbGludXhfc2V0X29mZnNldCwKIAkuc2hvd19vZmZzZXQJPSAxLAotCS5nZXRfcGVyaW9kCT0gYWhjX2xpbnV4X2dldF9wZXJpb2QsCiAJLnNldF9wZXJpb2QJPSBhaGNfbGludXhfc2V0X3BlcmlvZCwKIAkuc2hvd19wZXJpb2QJPSAxLAotCS5nZXRfd2lkdGgJPSBhaGNfbGludXhfZ2V0X3dpZHRoLAogCS5zZXRfd2lkdGgJPSBhaGNfbGludXhfc2V0X3dpZHRoLAogCS5zaG93X3dpZHRoCT0gMSwKLQkuZ2V0X2R0CQk9IGFoY19saW51eF9nZXRfZHQsCiAJLnNldF9kdAkJPSBhaGNfbGludXhfc2V0X2R0LAogCS5zaG93X2R0CT0gMSwKLQkuZ2V0X2l1CQk9IGFoY19saW51eF9nZXRfaXUsCiAJLnNldF9pdQkJPSBhaGNfbGludXhfc2V0X2l1LAogCS5zaG93X2l1CT0gMSwKLQkuZ2V0X3Fhcwk9IGFoY19saW51eF9nZXRfcWFzLAogCS5zZXRfcWFzCT0gYWhjX2xpbnV4X3NldF9xYXMsCiAJLnNob3dfcWFzCT0gMSwKIH07CkBAIC0yODk2LDYgKzI3MTIsMTAgQEAKIAlhaGNfbGludXhfdHJhbnNwb3J0X3RlbXBsYXRlID0gc3BpX2F0dGFjaF90cmFuc3BvcnQoJmFoY19saW51eF90cmFuc3BvcnRfZnVuY3Rpb25zKTsKIAlpZiAoIWFoY19saW51eF90cmFuc3BvcnRfdGVtcGxhdGUpCiAJCXJldHVybiAtRU5PREVWOworCXNjc2lfdHJhbnNwb3J0X3Jlc2VydmVfdGFyZ2V0KGFoY19saW51eF90cmFuc3BvcnRfdGVtcGxhdGUsCisJCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBhaGNfbGludXhfdGFyZ2V0KSk7CisJc2NzaV90cmFuc3BvcnRfcmVzZXJ2ZV9kZXZpY2UoYWhjX2xpbnV4X3RyYW5zcG9ydF90ZW1wbGF0ZSwKKwkJCQkgICAgICBzaXplb2Yoc3RydWN0IGFoY19saW51eF9kZXZpY2UpKTsKIAlpZiAoYWhjX2xpbnV4X2RldGVjdCgmYWljN3h4eF9kcml2ZXJfdGVtcGxhdGUpKQogCQlyZXR1cm4gMDsKIAlzcGlfcmVsZWFzZV90cmFuc3BvcnQoYWhjX2xpbnV4X3RyYW5zcG9ydF90ZW1wbGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4X29zbS5oIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljN3h4eF9vc20uaAppbmRleCAzMGMyMDBkLi44ZmZlMmQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4X29zbS5oCisrKyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtLmgKQEAgLTc5LDYgKzc5LDggQEAKICNpbmNsdWRlIDxzY3NpL3Njc2lfZGV2aWNlLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX2hvc3QuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfdGNxLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX3RyYW5zcG9ydC5oPgorI2luY2x1ZGUgPHNjc2kvc2NzaV90cmFuc3BvcnRfc3BpLmg+CiAKIC8qIENvcmUgU0NTSSBkZWZpbml0aW9ucyAqLwogI2RlZmluZSBBSUNfTElCX1BSRUZJWCBhaGMKQEAgLTEyNywyMyArMTI5LDYgQEAKICNkZWZpbmUgYWhjX2xlMzJ0b2goeCkJbGUzMl90b19jcHUoeCkKICNkZWZpbmUgYWhjX2xlNjR0b2goeCkJbGU2NF90b19jcHUoeCkKIAotI2lmbmRlZiBMSVRUTEVfRU5ESUFOCi0jZGVmaW5lIExJVFRMRV9FTkRJQU4gMTIzNAotI2VuZGlmCi0KLSNpZm5kZWYgQklHX0VORElBTgotI2RlZmluZSBCSUdfRU5ESUFOIDQzMjEKLSNlbmRpZgotCi0jaWZuZGVmIEJZVEVfT1JERVIKLSNpZiBkZWZpbmVkKF9fQklHX0VORElBTikKLSNkZWZpbmUgQllURV9PUkRFUiBCSUdfRU5ESUFOCi0jZW5kaWYKLSNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikKLSNkZWZpbmUgQllURV9PUkRFUiBMSVRUTEVfRU5ESUFOCi0jZW5kaWYKLSNlbmRpZiAvKiBCWVRFX09SREVSICovCi0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqIENvbmZpZ3VyYXRpb24gRGF0YSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBleHRlcm4gdV9pbnQgYWljN3h4eF9ub19wcm9iZTsKIGV4dGVybiB1X2ludCBhaWM3eHh4X2FsbG93X21lbWlvOwpAQCAtMjgzLDM1ICsyNjgsNiBAQAogCiAjZGVmaW5lIEFJQzdYWFhfRFJJVkVSX1ZFUlNJT04gIjYuMi4zNiIKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogRnJvbnQgRW5kIFF1ZXVlcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCi0gKiBEYXRhIHN0cnVjdHVyZSB1c2VkIHRvIGNhc3QgdGhlIExpbnV4IHN0cnVjdCBzY3NpX2NtbmQgdG8gc29tZXRoaW5nCi0gKiB0aGF0IGFsbG93cyB1cyB0byB1c2UgdGhlIHF1ZXVlIG1hY3Jvcy4gIFRoZSBsaW51eCBzdHJ1Y3R1cmUgaGFzCi0gKiBwbGVudHkgb2Ygc3BhY2UgdG8gaG9sZCB0aGUgbGlua3MgZmllbGRzIGFzIHJlcXVpcmVkIGJ5IHRoZSBxdWV1ZQotICogbWFjcm9zLCBidXQgdGhlIHF1ZXVlIG1hY29ycyByZXF1aXJlIHRoZW0gdG8gaGF2ZSB0aGUgY29ycmVjdCB0eXBlLgotICovCi1zdHJ1Y3QgYWhjX2NtZF9pbnRlcm5hbCB7Ci0JLyogQXJlYSBvd25lZCBieSB0aGUgTGludXggc2NzaSBsYXllci4gKi8KLQl1aW50OF90CXByaXZhdGVbb2Zmc2V0b2Yoc3RydWN0IHNjc2lfY21uZCwgU0NwLlN0YXR1cyldOwotCXVuaW9uIHsKLQkJU1RBSUxRX0VOVFJZKGFoY19jbWQpCXN0ZTsKLQkJTElTVF9FTlRSWShhaGNfY21kKQlsZTsKLQkJVEFJTFFfRU5UUlkoYWhjX2NtZCkJdHFlOwotCX0gbGlua3M7Ci0JdWludDMyX3QJCQllbmQ7Ci19OwotCi1zdHJ1Y3QgYWhjX2NtZCB7Ci0JdW5pb24gewotCQlzdHJ1Y3QgYWhjX2NtZF9pbnRlcm5hbAlpY21kOwotCQlzdHJ1Y3Qgc2NzaV9jbW5kCXNjc2lfY21kOwotCX0gdW47Ci19OwotCi0jZGVmaW5lIGFjbWRfaWNtZChjbWQpICgoY21kKS0+dW4uaWNtZCkKLSNkZWZpbmUgYWNtZF9zY3NpX2NtZChjbWQpICgoY21kKS0+dW4uc2NzaV9jbWQpCi0jZGVmaW5lIGFjbWRfbGlua3MgdW4uaWNtZC5saW5rcwotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqIERldmljZSBEYXRhIFN0cnVjdHVyZXMgKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKICAqIEEgcGVyIHByb2JlZCBkZXZpY2Ugc3RydWN0dXJlIHVzZWQgdG8gZGVhbCB3aXRoIHNvbWUgZXJyb3IgcmVjb3ZlcnkKQEAgLTMyMCw3ICsyNzYsNiBAQAogICogYWZ0ZXIgYSBzdWNjZXNzZnVsbHkgY29tcGxldGVkIGlucXVpcnkgY29tbWFuZCB0byB0aGUgdGFyZ2V0IHdoZW4KICAqIHRoYXQgaW5xdWlyeSBkYXRhIGluZGljYXRlcyBhIGx1biBpcyBwcmVzZW50LgogICovCi1UQUlMUV9IRUFEKGFoY19idXN5cSwgYWhjX2NtZCk7CiB0eXBlZGVmIGVudW0gewogCUFIQ19ERVZfRlJFRVpFX1RJTF9FTVBUWSA9IDB4MDIsIC8qIEZyZWV6ZSBxdWV1ZSB1bnRpbCBhY3RpdmUgPT0gMCAqLwogCUFIQ19ERVZfUV9CQVNJQwkJID0gMHgxMCwgLyogQWxsb3cgYmFzaWMgZGV2aWNlIHF1ZXVpbmcgKi8KQEAgLTMzMCw4ICsyODUsNiBAQAogCiBzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldDsKIHN0cnVjdCBhaGNfbGludXhfZGV2aWNlIHsKLQlUQUlMUV9FTlRSWShhaGNfbGludXhfZGV2aWNlKSBsaW5rczsKLQogCS8qCiAJICogVGhlIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgY3VycmVudGx5CiAJICogcXVldWVkIHRvIHRoZSBkZXZpY2UuCkBAIC00MDEsMTcgKzM1NCwxMCBAQAogCSAqLwogCXVfaW50CQkJY29tbWFuZHNfc2luY2VfaWRsZV9vcl9vdGFnOwogI2RlZmluZSBBSENfT1RBR19USFJFU0gJNTAwCi0KLQlpbnQJCQlsdW47Ci0Jc3RydWN0IHNjc2lfZGV2aWNlICAgICAgICpzY3NpX2RldmljZTsKLQlzdHJ1Y3QJCQlhaGNfbGludXhfdGFyZ2V0ICp0YXJnZXQ7CiB9OwogCiBzdHJ1Y3QgYWhjX2xpbnV4X3RhcmdldCB7Ci0Jc3RydWN0IGFoY19saW51eF9kZXZpY2UJICpkZXZpY2VzW0FIQ19OVU1fTFVOU107Ci0JaW50CQkJICBjaGFubmVsOwotCWludAkJCSAgdGFyZ2V0OwotCWludAkJCSAgcmVmY291bnQ7CisJc3RydWN0IHNjc2lfZGV2aWNlCSAqc2RldltBSENfTlVNX0xVTlNdOwogCXN0cnVjdCBhaGNfdHJhbnNpbmZvCSAgbGFzdF90aW5mbzsKIAlzdHJ1Y3QgYWhjX3NvZnRjCSAqYWhjOwogfTsKQEAgLTQ0NSw3ICszOTEsNyBAQAogCS8qCiAJICogRmllbGRzIGFjY2Vzc2VkIGZyb20gaW50ZXJydXB0IGNvbnRleHQuCiAJICovCi0Jc3RydWN0IGFoY19saW51eF90YXJnZXQgKnRhcmdldHNbQUhDX05VTV9UQVJHRVRTXTsgCisJc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0W0FIQ19OVU1fVEFSR0VUU107IAogCiAJc3BpbmxvY2tfdAkJIHNwaW5fbG9jazsKIAl1X2ludAkJCSBxZnJvemVuOwpAQCAtNjU5LDcgKzYwNSw2IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFZML0VJU0EgUm91dGluZXMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjaWZkZWYgQ09ORklHX0VJU0EKLWV4dGVybiB1aW50MzJfdCBhaWM3eHh4X3Byb2JlX2Vpc2Ffdmw7CiBpbnQJCQkgYWhjX2xpbnV4X2Vpc2FfaW5pdCh2b2lkKTsKIHZvaWQJCQkgYWhjX2xpbnV4X2Vpc2FfZXhpdCh2b2lkKTsKIGludAkJCSBhaWM3NzcwX21hcF9yZWdpc3RlcnMoc3RydWN0IGFoY19zb2Z0YyAqYWhjLApAQCAtOTI0LDcgKzg2OSw2IEBACiBzdGF0aWMgX19pbmxpbmUgdm9pZAogYWhjX3BsYXRmb3JtX3NjYl9mcmVlKHN0cnVjdCBhaGNfc29mdGMgKmFoYywgc3RydWN0IHNjYiAqc2NiKQogewotCWFoYy0+ZmxhZ3MgJj0gfkFIQ19SRVNPVVJDRV9TSE9SVEFHRTsKIH0KIAogaW50CWFoY19wbGF0Zm9ybV9hbGxvYyhzdHJ1Y3QgYWhjX3NvZnRjICphaGMsIHZvaWQgKnBsYXRmb3JtX2FyZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4X29zbV9wY2kuYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtX3BjaS5jCmluZGV4IDJhMGViY2UuLjg5ZDczN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtX3BjaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfb3NtX3BjaS5jCkBAIC0xNDAsMjcgKzE0MCwxNyBAQAogc3RhdGljIHZvaWQKIGFoY19saW51eF9wY2lfZGV2X3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQlzdHJ1Y3QgYWhjX3NvZnRjICphaGM7Ci0JdV9sb25nIGw7CisJc3RydWN0IGFoY19zb2Z0YyAqYWhjID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXVfbG9uZyBzOwogCi0JLyoKLQkgKiBXZSBzaG91bGQgYmUgYWJsZSB0byBqdXN0IHBlcmZvcm0KLQkgKiB0aGUgZnJlZSBkaXJlY3RseSwgYnV0IGNoZWNrIG91cgotCSAqIGxpc3QgZm9yIGV4dHJhIHNhbml0eS4KLQkgKi8KLQlhaGNfbGlzdF9sb2NrKCZsKTsKLQlhaGMgPSBhaGNfZmluZF9zb2Z0Yygoc3RydWN0IGFoY19zb2Z0YyAqKXBjaV9nZXRfZHJ2ZGF0YShwZGV2KSk7Ci0JaWYgKGFoYyAhPSBOVUxMKSB7Ci0JCXVfbG9uZyBzOworCWFoY19saXN0X2xvY2soJnMpOworCVRBSUxRX1JFTU9WRSgmYWhjX3RhaWxxLCBhaGMsIGxpbmtzKTsKKwlhaGNfbGlzdF91bmxvY2soJnMpOwogCi0JCVRBSUxRX1JFTU9WRSgmYWhjX3RhaWxxLCBhaGMsIGxpbmtzKTsKLQkJYWhjX2xpc3RfdW5sb2NrKCZsKTsKLQkJYWhjX2xvY2soYWhjLCAmcyk7Ci0JCWFoY19pbnRyX2VuYWJsZShhaGMsIEZBTFNFKTsKLQkJYWhjX3VubG9jayhhaGMsICZzKTsKLQkJYWhjX2ZyZWUoYWhjKTsKLQl9IGVsc2UKLQkJYWhjX2xpc3RfdW5sb2NrKCZsKTsKKwlhaGNfbG9jayhhaGMsICZzKTsKKwlhaGNfaW50cl9lbmFibGUoYWhjLCBGQUxTRSk7CisJYWhjX3VubG9jayhhaGMsICZzKTsKKwlhaGNfZnJlZShhaGMpOwogfQogCiBzdGF0aWMgaW50CkBAIC0xNzQsMjIgKzE2NCw2IEBACiAJY2hhcgkJKm5hbWU7CiAJaW50CQkgZXJyb3I7CiAKLQkvKgotCSAqIFNvbWUgQklPU2VuIHJlcG9ydCB0aGUgc2FtZSBkZXZpY2UgbXVsdGlwbGUgdGltZXMuCi0JICovCi0JVEFJTFFfRk9SRUFDSChhaGMsICZhaGNfdGFpbHEsIGxpbmtzKSB7Ci0JCXN0cnVjdCBwY2lfZGV2ICpwcm9iZWRfcGRldjsKLQotCQlwcm9iZWRfcGRldiA9IGFoYy0+ZGV2X3NvZnRjOwotCQlpZiAocHJvYmVkX3BkZXYtPmJ1cy0+bnVtYmVyID09IHBkZXYtPmJ1cy0+bnVtYmVyCi0JCSAmJiBwcm9iZWRfcGRldi0+ZGV2Zm4gPT0gcGRldi0+ZGV2Zm4pCi0JCQlicmVhazsKLQl9Ci0JaWYgKGFoYyAhPSBOVUxMKSB7Ci0JCS8qIFNraXAgZHVwbGljYXRlLiAqLwotCQlyZXR1cm4gKC1FTk9ERVYpOwotCX0KLQogCXBjaSA9IHBkZXY7CiAJZW50cnkgPSBhaGNfZmluZF9wY2lfZGV2aWNlKHBjaSk7CiAJaWYgKGVudHJ5ID09IE5VTEwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3eHh4X3Byb2MuYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfcHJvYy5jCmluZGV4IDVmZWNlODUuLmFiNDQ2OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfcHJvYy5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzd4eHhfcHJvYy5jCkBAIC01MCw3ICs1MCw3IEBACiAJCQkJICAgICAgdV9pbnQgb3VyX2lkLCBjaGFyIGNoYW5uZWwsCiAJCQkJICAgICAgdV9pbnQgdGFyZ2V0X2lkLCB1X2ludCB0YXJnZXRfb2Zmc2V0KTsKIHN0YXRpYyB2b2lkCWFoY19kdW1wX2RldmljZV9zdGF0ZShzdHJ1Y3QgaW5mb19zdHIgKmluZm8sCi0JCQkJICAgICAgc3RydWN0IGFoY19saW51eF9kZXZpY2UgKmRldik7CisJCQkJICAgICAgc3RydWN0IHNjc2lfZGV2aWNlICpkZXYpOwogc3RhdGljIGludAlhaGNfcHJvY193cml0ZV9zZWVwcm9tKHN0cnVjdCBhaGNfc29mdGMgKmFoYywKIAkJCQkgICAgICAgY2hhciAqYnVmZmVyLCBpbnQgbGVuZ3RoKTsKIApAQCAtMTQyLDYgKzE0Miw3IEBACiAJCSAgICAgIHVfaW50IHRhcmdldF9vZmZzZXQpCiB7CiAJc3RydWN0CWFoY19saW51eF90YXJnZXQgKnRhcmc7CisJc3RydWN0CXNjc2lfdGFyZ2V0ICpzdGFyZ2V0OwogCXN0cnVjdAlhaGNfaW5pdGlhdG9yX3RpbmZvICp0aW5mbzsKIAlzdHJ1Y3QJYWhjX3Rtb2RlX3RzdGF0ZSAqdHN0YXRlOwogCWludAlsdW47CkBAIC0xNTMsNyArMTU0LDggQEAKIAljb3B5X2luZm8oaW5mbywgIlRhcmdldCAlZCBOZWdvdGlhdGlvbiBTZXR0aW5nc1xuIiwgdGFyZ2V0X2lkKTsKIAljb3B5X2luZm8oaW5mbywgIlx0VXNlcjogIik7CiAJYWhjX2Zvcm1hdF90cmFuc2luZm8oaW5mbywgJnRpbmZvLT51c2VyKTsKLQl0YXJnID0gYWhjLT5wbGF0Zm9ybV9kYXRhLT50YXJnZXRzW3RhcmdldF9vZmZzZXRdOworCXN0YXJnZXQgPSBhaGMtPnBsYXRmb3JtX2RhdGEtPnN0YXJnZXRbdGFyZ2V0X29mZnNldF07CisJdGFyZyA9IHNjc2lfdHJhbnNwb3J0X3RhcmdldF9kYXRhKHN0YXJnZXQpOwogCWlmICh0YXJnID09IE5VTEwpCiAJCXJldHVybjsKIApAQCAtMTYzLDIyICsxNjUsMjUgQEAKIAlhaGNfZm9ybWF0X3RyYW5zaW5mbyhpbmZvLCAmdGluZm8tPmN1cnIpOwogCiAJZm9yIChsdW4gPSAwOyBsdW4gPCBBSENfTlVNX0xVTlM7IGx1bisrKSB7Ci0JCXN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXY7CisJCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldjsKIAotCQlkZXYgPSB0YXJnLT5kZXZpY2VzW2x1bl07CisJCXNkZXYgPSB0YXJnLT5zZGV2W2x1bl07CiAKLQkJaWYgKGRldiA9PSBOVUxMKQorCQlpZiAoc2RldiA9PSBOVUxMKQogCQkJY29udGludWU7CiAKLQkJYWhjX2R1bXBfZGV2aWNlX3N0YXRlKGluZm8sIGRldik7CisJCWFoY19kdW1wX2RldmljZV9zdGF0ZShpbmZvLCBzZGV2KTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkCi1haGNfZHVtcF9kZXZpY2Vfc3RhdGUoc3RydWN0IGluZm9fc3RyICppbmZvLCBzdHJ1Y3QgYWhjX2xpbnV4X2RldmljZSAqZGV2KQorYWhjX2R1bXBfZGV2aWNlX3N0YXRlKHN0cnVjdCBpbmZvX3N0ciAqaW5mbywgc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2KQogeworCXN0cnVjdCBhaGNfbGludXhfZGV2aWNlICpkZXYgPSBzY3NpX3RyYW5zcG9ydF9kZXZpY2VfZGF0YShzZGV2KTsKKwogCWNvcHlfaW5mbyhpbmZvLCAiXHRDaGFubmVsICVjIFRhcmdldCAlZCBMdW4gJWQgU2V0dGluZ3NcbiIsCi0JCSAgZGV2LT50YXJnZXQtPmNoYW5uZWwgKyAnQScsIGRldi0+dGFyZ2V0LT50YXJnZXQsIGRldi0+bHVuKTsKKwkJICBzZGV2LT5zZGV2X3RhcmdldC0+Y2hhbm5lbCArICdBJywKKwkJICBzZGV2LT5zZGV2X3RhcmdldC0+aWQsIHNkZXYtPmx1bik7CiAKIAljb3B5X2luZm8oaW5mbywgIlx0XHRDb21tYW5kcyBRdWV1ZWQgJWxkXG4iLCBkZXYtPmNvbW1hbmRzX2lzc3VlZCk7CiAJY29weV9pbmZvKGluZm8sICJcdFx0Q29tbWFuZHMgQWN0aXZlICVkXG4iLCBkZXYtPmFjdGl2ZSk7CkBAIC0yOTIsMjAgKzI5NywxMyBAQAogYWhjX2xpbnV4X3Byb2NfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCwgY2hhciAqYnVmZmVyLCBjaGFyICoqc3RhcnQsCiAJCSAgICBvZmZfdCBvZmZzZXQsIGludCBsZW5ndGgsIGludCBpbm91dCkKIHsKLQlzdHJ1Y3QJYWhjX3NvZnRjICphaGM7CisJc3RydWN0CWFoY19zb2Z0YyAqYWhjID0gKihzdHJ1Y3QgYWhjX3NvZnRjICoqKXNob3N0LT5ob3N0ZGF0YTsKIAlzdHJ1Y3QJaW5mb19zdHIgaW5mbzsKIAljaGFyCWFoY19pbmZvWzI1Nl07Ci0JdV9sb25nCXM7CiAJdV9pbnQJbWF4X3Rhcmc7CiAJdV9pbnQJaTsKIAlpbnQJcmV0dmFsOwogCi0JcmV0dmFsID0gLUVJTlZBTDsKLQlhaGNfbGlzdF9sb2NrKCZzKTsKLQlhaGMgPSBhaGNfZmluZF9zb2Z0YygqKHN0cnVjdCBhaGNfc29mdGMgKiopc2hvc3QtPmhvc3RkYXRhKTsKLQlpZiAoYWhjID09IE5VTEwpCi0JCWdvdG8gZG9uZTsKLQogCSAvKiBIYXMgZGF0YSBiZWVuIHdyaXR0ZW4gdG8gdGhlIGZpbGU/ICovIAogCWlmIChpbm91dCA9PSBUUlVFKSB7CiAJCXJldHZhbCA9IGFoY19wcm9jX3dyaXRlX3NlZXByb20oYWhjLCBidWZmZXIsIGxlbmd0aCk7CkBAIC0zNjcsNiArMzY1LDUgQEAKIAl9CiAJcmV0dmFsID0gaW5mby5wb3MgPiBpbmZvLm9mZnNldCA/IGluZm8ucG9zIC0gaW5mby5vZmZzZXQgOiAwOwogZG9uZToKLQlhaGNfbGlzdF91bmxvY2soJnMpOwogCXJldHVybiAocmV0dmFsKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4X29sZC5jIGIvZHJpdmVycy9zY3NpL2FpYzd4eHhfb2xkLmMKaW5kZXggOWU5ZDBjNC4uZmFjMDkxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzd4eHhfb2xkLmMKKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHhfb2xkLmMKQEAgLTEwMzU4LDcgKzEwMzU4LDcgQEAKICAqICAgUmV0dXJucyBhbiBlbnVtZXJhdGVkIHR5cGUgdGhhdCBpbmRpY2F0ZXMgdGhlIHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLgogICotRioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgaW50Ci1haWM3eHh4X2J1c19kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICpjbWQpCitfX2FpYzd4eHhfYnVzX2RldmljZV9yZXNldChTY3NpX0NtbmQgKmNtZCkKIHsKICAgc3RydWN0IGFpYzd4eHhfaG9zdCAgKnA7CiAgIHN0cnVjdCBhaWM3eHh4X3NjYiAgICpzY2I7CkBAIC0xMDU1MSw2ICsxMDU1MSwxOCBAQAogICAgIHJldHVybiBTVUNDRVNTOwogfQogCitzdGF0aWMgaW50CithaWM3eHh4X2J1c19kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICpjbWQpCit7CisgICAgICBpbnQgcmM7CisKKyAgICAgIHNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisgICAgICByYyA9IF9fYWljN3h4eF9idXNfZGV2aWNlX3Jlc2V0KGNtZCk7CisgICAgICBzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKyAgICAgIHJldHVybiByYzsKK30KKwogCiAvKitGKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRnVuY3Rpb246CkBAIC0xMDU4NSw3ICsxMDU5Nyw3IEBACiAgKiAgIEFib3J0IHRoZSBjdXJyZW50IFNDU0kgY29tbWFuZChzKS4KICAqLUYqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIGludAotYWljN3h4eF9hYm9ydChTY3NpX0NtbmQgKmNtZCkKK19fYWljN3h4eF9hYm9ydChTY3NpX0NtbmQgKmNtZCkKIHsKICAgc3RydWN0IGFpYzd4eHhfc2NiICAqc2NiID0gTlVMTDsKICAgc3RydWN0IGFpYzd4eHhfaG9zdCAqcDsKQEAgLTEwODAyLDYgKzEwODE0LDE5IEBACiAgIHJldHVybiBTVUNDRVNTOwogfQogCitzdGF0aWMgaW50CithaWM3eHh4X2Fib3J0KFNjc2lfQ21uZCAqY21kKQoreworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBfX2FpYzd4eHhfYWJvcnQoY21kKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7Cit9CisKKwogLyorRioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEZ1bmN0aW9uOgogICogICBhaWM3eHh4X3Jlc2V0CkBAIC0xMDgyMCw2ICsxMDg0NSw4IEBACiAgIHN0cnVjdCBhaWNfZGV2X2RhdGEgKmFpY19kZXY7CiAKICAgcCA9IChzdHJ1Y3QgYWljN3h4eF9ob3N0ICopIGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKKyAgc3Bpbl9sb2NrX2lycShwLT5ob3N0LT5ob3N0X2xvY2spOworCiAgIGFpY19kZXYgPSBBSUNfREVWKGNtZCk7CiAgIGlmKGFpYzd4eHhfcG9zaXRpb24oY21kKSA8IHAtPnNjYl9kYXRhLT5udW1zY2JzKQogICB7CkBAIC0xMDg1OSw2ICsxMDg4Niw3IEBACiAgICAgICogbG9uZ2VyIGhhdmUgaXQuCiAgICAgICovCiAgICAgdW5wYXVzZV9zZXF1ZW5jZXIocCwgRkFMU0UpOworICAgIHNwaW5fdW5sb2NrX2lycShwLT5ob3N0LT5ob3N0X2xvY2spOwogICAgIHJldHVybiBTVUNDRVNTOwogICB9CiAgICAgCkBAIC0xMDg4Miw3ICsxMDkxMCw2IEBACiAgIHVucGF1c2Vfc2VxdWVuY2VyKHAsIEZBTFNFKTsKICAgc3Bpbl91bmxvY2tfaXJxKHAtPmhvc3QtPmhvc3RfbG9jayk7CiAgIHNzbGVlcCgyKTsKLSAgc3Bpbl9sb2NrX2lycShwLT5ob3N0LT5ob3N0X2xvY2spOwogICByZXR1cm4gU1VDQ0VTUzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jIGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jCmluZGV4IDI3MjcxYmYuLjI2NDk4NTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2N1bWFuYV8xLmMKKysrIGIvZHJpdmVycy9zY3NpL2FybS9jdW1hbmFfMS5jCkBAIC0yNDQsOSArMjQ0LDcgQEAKIAkuaW5mbwkJCT0gY3VtYW5hc2NzaV9pbmZvLAogCS5xdWV1ZWNvbW1hbmQJCT0gY3VtYW5hc2NzaV9xdWV1ZV9jb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyCT0gTkNSNTM4MF9hYm9ydCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXI9IE5DUjUzODBfZGV2aWNlX3Jlc2V0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlcgk9IE5DUjUzODBfYnVzX3Jlc2V0LAotCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJPSBOQ1I1MzgwX2hvc3RfcmVzZXQsCiAJLmNhbl9xdWV1ZQkJPSAxNiwKIAkudGhpc19pZAkJPSA3LAogCS5zZ190YWJsZXNpemUJCT0gU0dfQUxMLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9lY29zY3NpLmMgYi9kcml2ZXJzL3Njc2kvYXJtL2Vjb3Njc2kuYwppbmRleCAzMDM2NDhhLi5mOGE3ZmRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Vjb3Njc2kuYworKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Vjb3Njc2kuYwpAQCAtMTYyLDkgKzE2Miw3IEBACiAJLmluZm8JCT0gZWNvc2NzaV9pbmZvLAogCS5xdWV1ZWNvbW1hbmQJPSBlY29zY3NpX3F1ZXVlX2NvbW1hbmQsCiAJLmVoX2Fib3J0X2hhbmRsZXIJPSBOQ1I1MzgwX2Fib3J0LAotCS5laF9kZXZpY2VfcmVzZXRfaGFuZGxlcj0gTkNSNTM4MF9kZXZpY2VfcmVzZXQsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gTkNSNTM4MF9idXNfcmVzZXQsCi0JLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgk9IE5DUjUzODBfaG9zdF9yZXNldCwKIAkuY2FuX3F1ZXVlCT0gMTYsCiAJLnRoaXNfaWQJPSA3LAogCS5zZ190YWJsZXNpemUJPSBTR19BTEwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2ZhczIxNi5jIGIvZHJpdmVycy9zY3NpL2FybS9mYXMyMTYuYwppbmRleCAzODM4Zjg4Li40NzcyZmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2ZhczIxNi5jCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vZmFzMjE2LmMKQEAgLTI2NTksNiArMjY1OSw4IEBACiB7CiAJRkFTMjE2X0luZm8gKmluZm8gPSAoRkFTMjE2X0luZm8gKilTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKIAorCXNwaW5fbG9ja19pcnEoaW5mby0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCWZhczIxNl9jaGVja21hZ2ljKGluZm8pOwogCiAJcHJpbnRrKCJzY3NpJWQuJWM6ICVzOiByZXNldHRpbmcgaG9zdFxuIiwKQEAgLTI2ODYsNiArMjY4OCw3IEBACiAKIAlmYXMyMTZfaW5pdF9jaGlwKGluZm8pOwogCisJc3Bpbl91bmxvY2tfaXJxKGluZm8tPmhvc3QtPmhvc3RfbG9jayk7CiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMgYi9kcml2ZXJzL3Njc2kvYXJtL29hay5jCmluZGV4IGZmMjU1NGYuLmRlMjRiYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vb2FrLmMKKysrIGIvZHJpdmVycy9zY3NpL2FybS9vYWsuYwpAQCAtMTE4LDkgKzExOCw3IEBACiAJLmluZm8JCQk9IG9ha3Njc2lfaW5mbywKIAkucXVldWVjb21tYW5kCQk9IG9ha3Njc2lfcXVldWVfY29tbWFuZCwKIAkuZWhfYWJvcnRfaGFuZGxlcgk9IE5DUjUzODBfYWJvcnQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyPSBOQ1I1MzgwX2RldmljZV9yZXNldCwKIAkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJPSBOQ1I1MzgwX2J1c19yZXNldCwKLQkuZWhfaG9zdF9yZXNldF9oYW5kbGVyCT0gTkNSNTM4MF9ob3N0X3Jlc2V0LAogCS5jYW5fcXVldWUJCT0gMTYsCiAJLnRoaXNfaWQJCT0gNywKIAkuc2dfdGFibGVzaXplCQk9IFNHX0FMTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hdHA4NzB1LmMgYi9kcml2ZXJzL3Njc2kvYXRwODcwdS5jCmluZGV4IDQ1Yjc1ZGRhLi5lNjE1M2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXRwODcwdS5jCisrKyBiL2RyaXZlcnMvc2NzaS9hdHA4NzB1LmMKQEAgLTMxNDYsOCArMzE0Niw4IEBACiB9CiAKICNkZWZpbmUgQkxTIGJ1ZmZlciArIGxlbiArIHNpemUKLWludCBhdHA4NzB1X3Byb2NfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICpIQkFwdHIsIGNoYXIgKmJ1ZmZlciwgCi0JCSAgICAgIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBpbnQgaW5vdXQpCitzdGF0aWMgaW50IGF0cDg3MHVfcHJvY19pbmZvKHN0cnVjdCBTY3NpX0hvc3QgKkhCQXB0ciwgY2hhciAqYnVmZmVyLCAKKwkJCSAgICAgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsIGludCBsZW5ndGgsIGludCBpbm91dCkKIHsKIAlzdGF0aWMgdTggYnVmZls1MTJdOwogCWludCBzaXplID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9jaC5jIGIvZHJpdmVycy9zY3NpL2NoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkwMGUyOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2NzaS9jaC5jCkBAIC0wLDAgKzEsMTAyNiBAQAorLyoKKyAqIFNDU0kgTWVkaWEgQ2hhbmdlciBkZXZpY2UgZHJpdmVyIGZvciBMaW51eCAyLjYKKyAqCisgKiAgICAgKGMpIDE5OTYtMjAwMyBHZXJkIEtub3JyIDxrcmF4ZWxAYnl0ZXNleC5vcmc+CisgKgorICovCisKKyNkZWZpbmUgVkVSU0lPTiAiMC4yNSIKKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmZzX2ZzX2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KKyNpbmNsdWRlIDxsaW51eC9jaGlvLmg+CQkJLyogaGVyZSBhcmUgYWxsIHRoZSBpb2N0bHMgKi8KKworI2luY2x1ZGUgPHNjc2kvc2NzaS5oPgorI2luY2x1ZGUgPHNjc2kvc2NzaV9jbW5kLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2RyaXZlci5oPgorI2luY2x1ZGUgPHNjc2kvc2NzaV9pb2N0bC5oPgorI2luY2x1ZGUgPHNjc2kvc2NzaV9ob3N0Lmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2RldmljZS5oPgorI2luY2x1ZGUgPHNjc2kvc2NzaV9yZXF1ZXN0Lmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpX2RiZy5oPgorCisjZGVmaW5lIENIX0RUX01BWCAgICAgICAxNgorI2RlZmluZSBDSF9UWVBFUyAgICAgICAgOAorCitNT0RVTEVfREVTQ1JJUFRJT04oImRldmljZSBkcml2ZXIgZm9yIHNjc2kgbWVkaWEgY2hhbmdlciBkZXZpY2VzIik7CitNT0RVTEVfQVVUSE9SKCJHZXJkIEtub3JyIDxrcmF4ZWxAYnl0ZXNleC5vcmc+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK3N0YXRpYyBpbnQgaW5pdCA9IDE7Cittb2R1bGVfcGFyYW0oaW5pdCwgaW50LCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoaW5pdCwgXAorICAgICJpbml0aWFsaXplIGVsZW1lbnQgc3RhdHVzIG9uIGRyaXZlciBsb2FkIChkZWZhdWx0OiBvbikiKTsKKworc3RhdGljIGludCB0aW1lb3V0X21vdmUgPSAzMDA7Cittb2R1bGVfcGFyYW0odGltZW91dF9tb3ZlLCBpbnQsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyh0aW1lb3V0X21vdmUsInRpbWVvdXQgZm9yIG1vdmUgY29tbWFuZHMgIgorCQkgIihkZWZhdWx0OiAzMDAgc2Vjb25kcykiKTsKKworc3RhdGljIGludCB0aW1lb3V0X2luaXQgPSAzNjAwOworbW9kdWxlX3BhcmFtKHRpbWVvdXRfaW5pdCwgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0ModGltZW91dF9pbml0LCJ0aW1lb3V0IGZvciBJTklUSUFMSVpFIEVMRU1FTlQgU1RBVFVTICIKKwkJICIoZGVmYXVsdDogMzYwMCBzZWNvbmRzKSIpOworCitzdGF0aWMgaW50IHZlcmJvc2UgPSAxOworbW9kdWxlX3BhcmFtKHZlcmJvc2UsIGludCwgMDY0NCk7CitNT0RVTEVfUEFSTV9ERVNDKHZlcmJvc2UsImJlIHZlcmJvc2UgKGRlZmF1bHQ6IG9uKSIpOworCitzdGF0aWMgaW50IGRlYnVnID0gMDsKK21vZHVsZV9wYXJhbShkZWJ1ZywgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsImVuYWJsZS9kaXNhYmxlIGRlYnVnIG1lc3NhZ2VzLCBhbHNvIHByaW50cyBtb3JlICIKKwkJICJkZXRhaWxlZCBzZW5zZSBjb2RlcyBvbiBzY3NpIGVycm9ycyAoZGVmYXVsdDogb2ZmKSIpOworCitzdGF0aWMgaW50IGR0X2lkW0NIX0RUX01BWF0gPSB7IFsgMCAuLi4gKENIX0RUX01BWC0xKSBdID0gLTEgfTsKK3N0YXRpYyBpbnQgZHRfbHVuW0NIX0RUX01BWF07Cittb2R1bGVfcGFyYW1fYXJyYXkoZHRfaWQsICBpbnQsIE5VTEwsIDA0NDQpOworbW9kdWxlX3BhcmFtX2FycmF5KGR0X2x1biwgaW50LCBOVUxMLCAwNDQ0KTsKKworLyogdGVsbCB0aGUgZHJpdmVyIGFib3V0IHZlbmRvci1zcGVjaWZpYyBzbG90cyAqLworc3RhdGljIGludCB2ZW5kb3JfZmlyc3RzW0NIX1RZUEVTLTRdOworc3RhdGljIGludCB2ZW5kb3JfY291bnRzW0NIX1RZUEVTLTRdOworbW9kdWxlX3BhcmFtX2FycmF5KHZlbmRvcl9maXJzdHMsIGludCwgTlVMTCwgMDQ0NCk7Cittb2R1bGVfcGFyYW1fYXJyYXkodmVuZG9yX2NvdW50cywgaW50LCBOVUxMLCAwNDQ0KTsKKworc3RhdGljIGNoYXIgKnZlbmRvcl9sYWJlbHNbQ0hfVFlQRVMtNF0gPSB7CisJInYwIiwgInYxIiwgInYyIiwgInYzIgorfTsKKy8vIG1vZHVsZV9wYXJhbV9zdHJpbmdfYXJyYXkodmVuZG9yX2xhYmVscywgTlVMTCwgMDQ0NCk7CisKKyNkZWZpbmUgZHByaW50ayhmbXQsIGFyZy4uLikgICAgaWYgKGRlYnVnKSBcCisgICAgICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogIiBmbXQsIGNoLT5uYW1lICwgIyMgYXJnKQorI2RlZmluZSB2cHJpbnRrKGZtdCwgYXJnLi4uKSAgICBpZiAodmVyYm9zZSkgXAorICAgICAgICBwcmludGsoS0VSTl9JTkZPICIlczogIiBmbXQsIGNoLT5uYW1lICwgIyMgYXJnKQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNkZWZpbmUgTUFYX1JFVFJJRVMgICAxCisKK3N0YXRpYyBpbnQgIGNoX3Byb2JlKHN0cnVjdCBkZXZpY2UgKik7CitzdGF0aWMgaW50ICBjaF9yZW1vdmUoc3RydWN0IGRldmljZSAqKTsKK3N0YXRpYyBpbnQgIGNoX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCk7CitzdGF0aWMgaW50ICBjaF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApOworc3RhdGljIGludCAgY2hfaW9jdGwoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCwKKwkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CisjaWZkZWYgQ09ORklHX0NPTVBBVAorc3RhdGljIGxvbmcgY2hfaW9jdGxfY29tcGF0KHN0cnVjdCBmaWxlICogZmlscCwKKwkJCSAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBjbGFzcyAqIGNoX3N5c2ZzX2NsYXNzOworCit0eXBlZGVmIHN0cnVjdCB7CisJc3RydWN0IGxpc3RfaGVhZCAgICBsaXN0OworCWludCAgICAgICAgICAgICAgICAgbWlub3I7CisJY2hhciAgICAgICAgICAgICAgICBuYW1lWzhdOworCXN0cnVjdCBzY3NpX2RldmljZSAgKmRldmljZTsKKwlzdHJ1Y3Qgc2NzaV9kZXZpY2UgICoqZHQ7ICAgICAgICAvKiBwdHJzIHRvIGRhdGEgdHJhbnNmZXIgZWxlbWVudHMgKi8KKwl1X2ludCAgICAgICAgICAgICAgIGZpcnN0c1tDSF9UWVBFU107CisJdV9pbnQgICAgICAgICAgICAgICBjb3VudHNbQ0hfVFlQRVNdOworCXVfaW50ICAgICAgICAgICAgICAgdW5pdF9hdHRlbnRpb247CisJdV9pbnQJCSAgICB2b2x0YWdzOworCXN0cnVjdCBzZW1hcGhvcmUgICAgbG9jazsKK30gc2NzaV9jaGFuZ2VyOworCitzdGF0aWMgTElTVF9IRUFEKGNoX2Rldmxpc3QpOworc3RhdGljIHNwaW5sb2NrX3QgY2hfZGV2bGlzdF9sb2NrID0gU1BJTl9MT0NLX1VOTE9DS0VEOworc3RhdGljIGludCBjaF9kZXZjb3VudDsKKworc3RhdGljIHN0cnVjdCBzY3NpX2RyaXZlciBjaF90ZW1wbGF0ZSA9Cit7CisJLm93bmVyICAgICAJPSBUSElTX01PRFVMRSwKKwkuZ2VuZHJ2ICAgICAJPSB7CisJCS5uYW1lCT0gImNoIiwKKwkJLnByb2JlICA9IGNoX3Byb2JlLAorCQkucmVtb3ZlID0gY2hfcmVtb3ZlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBjaGFuZ2VyX2ZvcHMgPQoreworCS5vd25lciAgICAgICAgPSBUSElTX01PRFVMRSwKKwkub3BlbiAgICAgICAgID0gY2hfb3BlbiwKKwkucmVsZWFzZSAgICAgID0gY2hfcmVsZWFzZSwKKwkuaW9jdGwgICAgICAgID0gY2hfaW9jdGwsCisjaWZkZWYgQ09ORklHX0NPTVBBVAorCS5jb21wYXRfaW9jdGwgPSBjaF9pb2N0bF9jb21wYXQsCisjZW5kaWYKK307CisKK3N0YXRpYyBzdHJ1Y3QgeworCXVuc2lnbmVkIGNoYXIgIHNlbnNlOworCXVuc2lnbmVkIGNoYXIgIGFzYzsKKwl1bnNpZ25lZCBjaGFyICBhc2NxOworCWludAkgICAgICAgZXJybm87Cit9IGVycltdID0geworLyogSnVzdCBmaWxsZWQgaW4gd2hhdCBsb29rcyByaWdodC4gSGF2J250IGNoZWNrZWQgYW55IHN0YW5kYXJkIHBhcGVyIGZvcgorICAgdGhlc2UgZXJybm8gYXNzaWdubWVudHMsIHNvIHRoZXkgbWF5IGJlIHdyb25nLi4uICovCisJeworCQkuc2Vuc2UgID0gSUxMRUdBTF9SRVFVRVNULAorCQkuYXNjICAgID0gMHgyMSwKKwkJLmFzY3EgICA9IDB4MDEsCisJCS5lcnJubyAgPSBFQkFEU0xULCAvKiBJbnZhbGlkIGVsZW1lbnQgYWRkcmVzcyAqLworCX0seworCQkuc2Vuc2UgID0gSUxMRUdBTF9SRVFVRVNULAorCQkuYXNjICAgID0gMHgyOCwKKwkJLmFzY3EgICA9IDB4MDEsCisJCS5lcnJubyAgPSBFQkFERSwgICAvKiBJbXBvcnQgb3IgZXhwb3J0IGVsZW1lbnQgYWNjZXNzZWQgKi8KKwl9LHsKKwkJLnNlbnNlICA9IElMTEVHQUxfUkVRVUVTVCwKKwkJLmFzYyAgICA9IDB4M0IsCisJCS5hc2NxICAgPSAweDBELAorCQkuZXJybm8gID0gRVhGVUxMLCAgLyogTWVkaXVtIGRlc3RpbmF0aW9uIGVsZW1lbnQgZnVsbCAqLworCX0seworCQkuc2Vuc2UgID0gSUxMRUdBTF9SRVFVRVNULAorCQkuYXNjICAgID0gMHgzQiwKKwkJLmFzY3EgICA9IDB4MEUsCisJCS5lcnJubyAgPSBFQkFERSwgICAvKiBNZWRpdW0gc291cmNlIGVsZW1lbnQgZW1wdHkgKi8KKwl9LHsKKwkJLnNlbnNlICA9IElMTEVHQUxfUkVRVUVTVCwKKwkJLmFzYyAgICA9IDB4MjAsCisJCS5hc2NxICAgPSAweDAwLAorCQkuZXJybm8gID0gRUJBRFJRQywgLyogSW52YWxpZCBjb21tYW5kIG9wZXJhdGlvbiBjb2RlICovCisJfSx7CisJICAgICAgICAvKiBlbmQgb2YgbGlzdCAqLworCX0KK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworc3RhdGljIGludCBjaF9maW5kX2Vycm5vKHVuc2lnbmVkIGNoYXIgKnNlbnNlX2J1ZmZlcikKK3sKKwlpbnQgaSxlcnJubyA9IDA7CisKKwkvKiBDaGVjayB0byBzZWUgaWYgYWRkaXRpb25hbCBzZW5zZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgKi8KKwlpZiAoc2Vuc2VfYnVmZmVyWzddICA+IDUgJiYKKwkgICAgc2Vuc2VfYnVmZmVyWzEyXSAhPSAwKSB7CisJCWZvciAoaSA9IDA7IGVycltpXS5lcnJubyAhPSAwOyBpKyspIHsKKwkJCWlmIChlcnJbaV0uc2Vuc2UgPT0gc2Vuc2VfYnVmZmVyWyAyXSAmJgorCQkJICAgIGVycltpXS5hc2MgICA9PSBzZW5zZV9idWZmZXJbMTJdICYmCisJCQkgICAgZXJyW2ldLmFzY3EgID09IHNlbnNlX2J1ZmZlclsxM10pIHsKKwkJCQllcnJubyA9IC1lcnJbaV0uZXJybm87CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisJaWYgKGVycm5vID09IDApCisJCWVycm5vID0gLUVJTzsKKwlyZXR1cm4gZXJybm87Cit9CisKK3N0YXRpYyBpbnQKK2NoX2RvX3Njc2koc2NzaV9jaGFuZ2VyICpjaCwgdW5zaWduZWQgY2hhciAqY21kLAorCSAgIHZvaWQgKmJ1ZmZlciwgdW5zaWduZWQgYnVmbGVuZ3RoLAorCSAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKwlpbnQgZXJybm8sIHJldHJpZXMgPSAwLCB0aW1lb3V0OworCXN0cnVjdCBzY3NpX3JlcXVlc3QgKnNyOworCQorCXNyID0gc2NzaV9hbGxvY2F0ZV9yZXF1ZXN0KGNoLT5kZXZpY2UsIEdGUF9LRVJORUwpOworCWlmIChOVUxMID09IHNyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXRpbWVvdXQgPSAoY21kWzBdID09IElOSVRJQUxJWkVfRUxFTUVOVF9TVEFUVVMpCisJCT8gdGltZW91dF9pbml0IDogdGltZW91dF9tb3ZlOworCisgcmV0cnk6CisJZXJybm8gPSAwOworCWlmIChkZWJ1ZykgeworCQlkcHJpbnRrKCJjb21tYW5kOiAiKTsKKwkJX19zY3NpX3ByaW50X2NvbW1hbmQoY21kKTsKKwl9CisKKyAgICAgICAgc2NzaV93YWl0X3JlcShzciwgY21kLCBidWZmZXIsIGJ1Zmxlbmd0aCwKKwkJICAgICAgdGltZW91dCAqIEhaLCBNQVhfUkVUUklFUyk7CisKKwlkcHJpbnRrKCJyZXN1bHQ6IDB4JXhcbiIsc3ItPnNyX3Jlc3VsdCk7CisJaWYgKGRyaXZlcl9ieXRlKHNyLT5zcl9yZXN1bHQpICYgRFJJVkVSX1NFTlNFKSB7CisJCWlmIChkZWJ1ZykKKwkJCXNjc2lfcHJpbnRfcmVxX3NlbnNlKGNoLT5uYW1lLCBzcik7CisJCWVycm5vID0gY2hfZmluZF9lcnJubyhzci0+c3Jfc2Vuc2VfYnVmZmVyKTsKKworCQlzd2l0Y2goc3ItPnNyX3NlbnNlX2J1ZmZlclsyXSAmIDB4ZikgeworCQljYXNlIFVOSVRfQVRURU5USU9OOgorCQkJY2gtPnVuaXRfYXR0ZW50aW9uID0gMTsKKwkJCWlmIChyZXRyaWVzKysgPCAzKQorCQkJCWdvdG8gcmV0cnk7CisJCQlicmVhazsKKwkJfQorCX0KKwlzY3NpX3JlbGVhc2VfcmVxdWVzdChzcik7CisJcmV0dXJuIGVycm5vOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworc3RhdGljIGludAorY2hfZWxlbV90b190eXBlY29kZShzY3NpX2NoYW5nZXIgKmNoLCB1X2ludCBlbGVtKQoreworCWludCBpOworCQorCWZvciAoaSA9IDA7IGkgPCBDSF9UWVBFUzsgaSsrKSB7CisJCWlmIChlbGVtID49IGNoLT5maXJzdHNbaV0gICYmCisJCSAgICBlbGVtIDwgIGNoLT5maXJzdHNbaV0gKworCSAgICAgICAgICAgIGNoLT5jb3VudHNbaV0pCisJCQlyZXR1cm4gaSsxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY2hfcmVhZF9lbGVtZW50X3N0YXR1cyhzY3NpX2NoYW5nZXIgKmNoLCB1X2ludCBlbGVtLCBjaGFyICpkYXRhKQoreworCXVfY2hhciAgY21kWzEyXTsKKwl1X2NoYXIgICpidWZmZXI7CisJaW50ICAgICByZXN1bHQ7CisJCisJYnVmZmVyID0ga21hbGxvYyg1MTIsIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZighYnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKwkKKyByZXRyeToKKwltZW1zZXQoY21kLDAsc2l6ZW9mKGNtZCkpOworCWNtZFswXSA9IFJFQURfRUxFTUVOVF9TVEFUVVM7CisJY21kWzFdID0gKGNoLT5kZXZpY2UtPmx1biA8PCA1KSB8IAorCQkoY2gtPnZvbHRhZ3MgPyAweDEwIDogMCkgfAorCQljaF9lbGVtX3RvX3R5cGVjb2RlKGNoLGVsZW0pOworCWNtZFsyXSA9IChlbGVtID4+IDgpICYgMHhmZjsKKwljbWRbM10gPSBlbGVtICAgICAgICAmIDB4ZmY7CisJY21kWzVdID0gMTsKKwljbWRbOV0gPSAyNTU7CisJaWYgKDAgPT0gKHJlc3VsdCA9IGNoX2RvX3Njc2koY2gsIGNtZCwgYnVmZmVyLCAyNTYsIERNQV9GUk9NX0RFVklDRSkpKSB7CisJCWlmICgoKGJ1ZmZlclsxNl0gPDwgOCkgfCBidWZmZXJbMTddKSAhPSBlbGVtKSB7CisJCQlkcHJpbnRrKCJhc2tlZCBmb3IgZWxlbWVudCAweCUwMngsIGdvdCAweCUwMnhcbiIsCisJCQkJZWxlbSwoYnVmZmVyWzE2XSA8PCA4KSB8IGJ1ZmZlclsxN10pOworCQkJa2ZyZWUoYnVmZmVyKTsKKwkJCXJldHVybiAtRUlPOworCQl9CisJCW1lbWNweShkYXRhLGJ1ZmZlcisxNiwxNik7CisJfSBlbHNlIHsKKwkJaWYgKGNoLT52b2x0YWdzKSB7CisJCQljaC0+dm9sdGFncyA9IDA7CisJCQl2cHJpbnRrKCJkZXZpY2UgaGFzIG5vIHZvbHVtZSB0YWcgc3VwcG9ydFxuIik7CisJCQlnb3RvIHJldHJ5OworCQl9CisJCWRwcmludGsoIlJFQUQgRUxFTUVOVCBTVEFUVVMgZm9yIGVsZW1lbnQgMHgleCBmYWlsZWRcbiIsZWxlbSk7CisJfQorCWtmcmVlKGJ1ZmZlcik7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCAKK2NoX2luaXRfZWxlbShzY3NpX2NoYW5nZXIgKmNoKQoreworCWludCBlcnI7CisJdV9jaGFyIGNtZFs2XTsKKworCXZwcmludGsoIklOSVRJQUxJWkUgRUxFTUVOVCBTVEFUVVMsIG1heSB0YWtlIHNvbWUgdGltZSAuLi5cbiIpOworCW1lbXNldChjbWQsMCxzaXplb2YoY21kKSk7CisJY21kWzBdID0gSU5JVElBTElaRV9FTEVNRU5UX1NUQVRVUzsKKwljbWRbMV0gPSBjaC0+ZGV2aWNlLT5sdW4gPDwgNTsKKwllcnIgPSBjaF9kb19zY3NpKGNoLCBjbWQsIE5VTEwsIDAsIERNQV9OT05FKTsKKwl2cHJpbnRrKCIuLi4gZmluaXNoZWRcbiIpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQKK2NoX3JlYWRjb25maWcoc2NzaV9jaGFuZ2VyICpjaCkKK3sKKwl1X2NoYXIgIGNtZFsxMF0sIGRhdGFbMTZdOworCXVfY2hhciAgKmJ1ZmZlcjsKKwlpbnQgICAgIHJlc3VsdCxpZCxsdW4saTsKKwl1X2ludCAgIGVsZW07CisKKwlidWZmZXIgPSBrbWFsbG9jKDUxMiwgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghYnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKwltZW1zZXQoYnVmZmVyLDAsNTEyKTsKKwkKKwltZW1zZXQoY21kLDAsc2l6ZW9mKGNtZCkpOworCWNtZFswXSA9IE1PREVfU0VOU0U7CisJY21kWzFdID0gY2gtPmRldmljZS0+bHVuIDw8IDU7CisJY21kWzJdID0gMHgxZDsKKwljbWRbNF0gPSAyNTU7CisJcmVzdWx0ID0gY2hfZG9fc2NzaShjaCwgY21kLCBidWZmZXIsIDI1NSwgRE1BX0ZST01fREVWSUNFKTsKKwlpZiAoMCAhPSByZXN1bHQpIHsKKwkJY21kWzFdIHw9ICgxPDwzKTsKKwkJcmVzdWx0ICA9IGNoX2RvX3Njc2koY2gsIGNtZCwgYnVmZmVyLCAyNTUsIERNQV9GUk9NX0RFVklDRSk7CisJfQorCWlmICgwID09IHJlc3VsdCkgeworCQljaC0+Zmlyc3RzW0NIRVRfTVRdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKyA2XSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rIDddOworCQljaC0+Y291bnRzW0NIRVRfTVRdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKyA4XSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rIDldOworCQljaC0+Zmlyc3RzW0NIRVRfU1RdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzEwXSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMTFdOworCQljaC0+Y291bnRzW0NIRVRfU1RdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzEyXSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMTNdOworCQljaC0+Zmlyc3RzW0NIRVRfSUVdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzE0XSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMTVdOworCQljaC0+Y291bnRzW0NIRVRfSUVdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzE2XSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMTddOworCQljaC0+Zmlyc3RzW0NIRVRfRFRdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzE4XSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMTldOworCQljaC0+Y291bnRzW0NIRVRfRFRdID0KKwkJCShidWZmZXJbYnVmZmVyWzNdKzIwXSA8PCA4KSB8IGJ1ZmZlcltidWZmZXJbM10rMjFdOworCQl2cHJpbnRrKCJ0eXBlICMxIChtdCk6IDB4JXgrJWQgW21lZGl1bSB0cmFuc3BvcnRdXG4iLAorCQkJY2gtPmZpcnN0c1tDSEVUX01UXSwKKwkJCWNoLT5jb3VudHNbQ0hFVF9NVF0pOworCQl2cHJpbnRrKCJ0eXBlICMyIChzdCk6IDB4JXgrJWQgW3N0b3JhZ2VdXG4iLAorCQkJY2gtPmZpcnN0c1tDSEVUX1NUXSwKKwkJCWNoLT5jb3VudHNbQ0hFVF9TVF0pOworCQl2cHJpbnRrKCJ0eXBlICMzIChpZSk6IDB4JXgrJWQgW2ltcG9ydC9leHBvcnRdXG4iLAorCQkJY2gtPmZpcnN0c1tDSEVUX0lFXSwKKwkJCWNoLT5jb3VudHNbQ0hFVF9JRV0pOworCQl2cHJpbnRrKCJ0eXBlICM0IChkdCk6IDB4JXgrJWQgW2RhdGEgdHJhbnNmZXJdXG4iLAorCQkJY2gtPmZpcnN0c1tDSEVUX0RUXSwKKwkJCWNoLT5jb3VudHNbQ0hFVF9EVF0pOworCX0gZWxzZSB7CisJCXZwcmludGsoInJlYWRpbmcgZWxlbWVudCBhZGRyZXNzIGFzc2lnbWVudCBwYWdlIGZhaWxlZCFcbiIpOworCX0KKwkKKwkvKiB2ZW5kb3Igc3BlY2lmaWMgZWxlbWVudCB0eXBlcyAqLworCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJaWYgKDAgPT0gdmVuZG9yX2NvdW50c1tpXSkKKwkJCWNvbnRpbnVlOworCQlpZiAoTlVMTCA9PSB2ZW5kb3JfbGFiZWxzW2ldKQorCQkJY29udGludWU7CisJCWNoLT5maXJzdHNbQ0hFVF9WMStpXSA9IHZlbmRvcl9maXJzdHNbaV07CisJCWNoLT5jb3VudHNbQ0hFVF9WMStpXSA9IHZlbmRvcl9jb3VudHNbaV07CisJCXZwcmludGsoInR5cGUgIyVkICh2JWQpOiAweCV4KyVkIFslcywgdmVuZG9yIHNwZWNpZmljXVxuIiwKKwkJCWkrNSxpKzEsdmVuZG9yX2ZpcnN0c1tpXSx2ZW5kb3JfY291bnRzW2ldLAorCQkJdmVuZG9yX2xhYmVsc1tpXSk7CisJfQorCisJLyogbG9vayB1cCB0aGUgZGV2aWNlcyBvZiB0aGUgZGF0YSB0cmFuc2ZlciBlbGVtZW50cyAqLworCWNoLT5kdCA9IGttYWxsb2MoY2gtPmNvdW50c1tDSEVUX0RUXSpzaXplb2Yoc3RydWN0IHNjc2lfZGV2aWNlKSwKKwkJCSBHRlBfS0VSTkVMKTsKKwlmb3IgKGVsZW0gPSAwOyBlbGVtIDwgY2gtPmNvdW50c1tDSEVUX0RUXTsgZWxlbSsrKSB7CisJCWlkICA9IC0xOworCQlsdW4gPSAwOworCQlpZiAoZWxlbSA8IENIX0RUX01BWCAgJiYgIC0xICE9IGR0X2lkW2VsZW1dKSB7CisJCQlpZCAgPSBkdF9pZFtlbGVtXTsKKwkJCWx1biA9IGR0X2x1bltlbGVtXTsKKwkJCXZwcmludGsoImR0IDB4JXg6IFtpbnNtb2Qgb3B0aW9uXSAiLAorCQkJCWVsZW0rY2gtPmZpcnN0c1tDSEVUX0RUXSk7CisJCX0gZWxzZSBpZiAoMCAhPSBjaF9yZWFkX2VsZW1lbnRfc3RhdHVzCisJCQkgICAoY2gsZWxlbStjaC0+Zmlyc3RzW0NIRVRfRFRdLGRhdGEpKSB7CisJCQl2cHJpbnRrKCJkdCAweCV4OiBSRUFEIEVMRU1FTlQgU1RBVFVTIGZhaWxlZFxuIiwKKwkJCQllbGVtK2NoLT5maXJzdHNbQ0hFVF9EVF0pOworCQl9IGVsc2UgeworCQkJdnByaW50aygiZHQgMHgleDogIixlbGVtK2NoLT5maXJzdHNbQ0hFVF9EVF0pOworCQkJaWYgKGRhdGFbNl0gJiAweDgwKSB7CisJCQkJaWYgKHZlcmJvc2UpCisJCQkJCXByaW50aygibm90IHRoaXMgU0NTSSBidXNcbiIpOworCQkJCWNoLT5kdFtlbGVtXSA9IE5VTEw7CisJCQl9IGVsc2UgaWYgKDAgPT0gKGRhdGFbNl0gJiAweDMwKSkgeworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGsoIklEL0xVTiB1bmtub3duXG4iKTsKKwkJCQljaC0+ZHRbZWxlbV0gPSBOVUxMOworCQkJfSBlbHNlIHsKKwkJCQlpZCAgPSBjaC0+ZGV2aWNlLT5pZDsKKwkJCQlsdW4gPSAwOworCQkJCWlmIChkYXRhWzZdICYgMHgyMCkgaWQgID0gZGF0YVs3XTsKKwkJCQlpZiAoZGF0YVs2XSAmIDB4MTApIGx1biA9IGRhdGFbNl0gJiA3OworCQkJfQorCQl9CisJCWlmICgtMSAhPSBpZCkgeworCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRrKCJJRCAlaSwgTFVOICVpLCAiLGlkLGx1bik7CisJCQljaC0+ZHRbZWxlbV0gPQorCQkJCXNjc2lfZGV2aWNlX2xvb2t1cChjaC0+ZGV2aWNlLT5ob3N0LAorCQkJCQkJICAgY2gtPmRldmljZS0+Y2hhbm5lbCwKKwkJCQkJCSAgIGlkLGx1bik7CisJCQlpZiAoIWNoLT5kdFtlbGVtXSkgeworCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCisJCQkJaWYgKHZlcmJvc2UpCisJCQkJCXByaW50aygiSHVoPyBkZXZpY2Ugbm90IGZvdW5kIVxuIik7CisJCQl9IGVsc2UgeworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGsoIm5hbWU6ICU4LjhzICUxNi4xNnMgJTQuNHNcbiIsCisJCQkJCSAgICAgICBjaC0+ZHRbZWxlbV0tPnZlbmRvciwKKwkJCQkJICAgICAgIGNoLT5kdFtlbGVtXS0+bW9kZWwsCisJCQkJCSAgICAgICBjaC0+ZHRbZWxlbV0tPnJldik7CisJCQl9CisJCX0KKwl9CisJY2gtPnZvbHRhZ3MgPSAxOworCWtmcmVlKGJ1ZmZlcik7CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK3N0YXRpYyBpbnQKK2NoX3Bvc2l0aW9uKHNjc2lfY2hhbmdlciAqY2gsIHVfaW50IHRyYW5zLCB1X2ludCBlbGVtLCBpbnQgcm90YXRlKQoreworCXVfY2hhciAgY21kWzEwXTsKKwkKKwlkcHJpbnRrKCJwb3NpdGlvbjogMHgleFxuIixlbGVtKTsKKwlpZiAoMCA9PSB0cmFucykKKwkJdHJhbnMgPSBjaC0+Zmlyc3RzW0NIRVRfTVRdOworCW1lbXNldChjbWQsMCxzaXplb2YoY21kKSk7CisJY21kWzBdICA9IFBPU0lUSU9OX1RPX0VMRU1FTlQ7CisJY21kWzFdICA9IGNoLT5kZXZpY2UtPmx1biA8PCA1OworCWNtZFsyXSAgPSAodHJhbnMgPj4gOCkgJiAweGZmOworCWNtZFszXSAgPSAgdHJhbnMgICAgICAgJiAweGZmOworCWNtZFs0XSAgPSAoZWxlbSAgPj4gOCkgJiAweGZmOworCWNtZFs1XSAgPSAgZWxlbSAgICAgICAgJiAweGZmOworCWNtZFs4XSAgPSByb3RhdGUgPyAxIDogMDsKKwlyZXR1cm4gY2hfZG9fc2NzaShjaCwgY21kLCBOVUxMLCAwLCBETUFfTk9ORSk7Cit9CisKK3N0YXRpYyBpbnQKK2NoX21vdmUoc2NzaV9jaGFuZ2VyICpjaCwgdV9pbnQgdHJhbnMsIHVfaW50IHNyYywgdV9pbnQgZGVzdCwgaW50IHJvdGF0ZSkKK3sKKwl1X2NoYXIgIGNtZFsxMl07CisJCisJZHByaW50aygibW92ZTogMHgleCA9PiAweCV4XG4iLHNyYyxkZXN0KTsKKwlpZiAoMCA9PSB0cmFucykKKwkJdHJhbnMgPSBjaC0+Zmlyc3RzW0NIRVRfTVRdOworCW1lbXNldChjbWQsMCxzaXplb2YoY21kKSk7CisJY21kWzBdICA9IE1PVkVfTUVESVVNOworCWNtZFsxXSAgPSBjaC0+ZGV2aWNlLT5sdW4gPDwgNTsKKwljbWRbMl0gID0gKHRyYW5zID4+IDgpICYgMHhmZjsKKwljbWRbM10gID0gIHRyYW5zICAgICAgICYgMHhmZjsKKwljbWRbNF0gID0gKHNyYyAgID4+IDgpICYgMHhmZjsKKwljbWRbNV0gID0gIHNyYyAgICAgICAgICYgMHhmZjsKKwljbWRbNl0gID0gKGRlc3QgID4+IDgpICYgMHhmZjsKKwljbWRbN10gID0gIGRlc3QgICAgICAgICYgMHhmZjsKKwljbWRbMTBdID0gcm90YXRlID8gMSA6IDA7CisJcmV0dXJuIGNoX2RvX3Njc2koY2gsIGNtZCwgTlVMTCwwLCBETUFfTk9ORSk7Cit9CisKK3N0YXRpYyBpbnQKK2NoX2V4Y2hhbmdlKHNjc2lfY2hhbmdlciAqY2gsIHVfaW50IHRyYW5zLCB1X2ludCBzcmMsCisJICAgIHVfaW50IGRlc3QxLCB1X2ludCBkZXN0MiwgaW50IHJvdGF0ZTEsIGludCByb3RhdGUyKQoreworCXVfY2hhciAgY21kWzEyXTsKKwkKKwlkcHJpbnRrKCJleGNoYW5nZTogMHgleCA9PiAweCV4ID0+IDB4JXhcbiIsCisJCXNyYyxkZXN0MSxkZXN0Mik7CisJaWYgKDAgPT0gdHJhbnMpCisJCXRyYW5zID0gY2gtPmZpcnN0c1tDSEVUX01UXTsKKwltZW1zZXQoY21kLDAsc2l6ZW9mKGNtZCkpOworCWNtZFswXSAgPSBFWENIQU5HRV9NRURJVU07CisJY21kWzFdICA9IGNoLT5kZXZpY2UtPmx1biA8PCA1OworCWNtZFsyXSAgPSAodHJhbnMgPj4gOCkgJiAweGZmOworCWNtZFszXSAgPSAgdHJhbnMgICAgICAgJiAweGZmOworCWNtZFs0XSAgPSAoc3JjICAgPj4gOCkgJiAweGZmOworCWNtZFs1XSAgPSAgc3JjICAgICAgICAgJiAweGZmOworCWNtZFs2XSAgPSAoZGVzdDEgPj4gOCkgJiAweGZmOworCWNtZFs3XSAgPSAgZGVzdDEgICAgICAgJiAweGZmOworCWNtZFs4XSAgPSAoZGVzdDIgPj4gOCkgJiAweGZmOworCWNtZFs5XSAgPSAgZGVzdDIgICAgICAgJiAweGZmOworCWNtZFsxMF0gPSAocm90YXRlMSA/IDEgOiAwKSB8IChyb3RhdGUyID8gMiA6IDApOworCQorCXJldHVybiBjaF9kb19zY3NpKGNoLCBjbWQsIE5VTEwsMCwgRE1BX05PTkUpOworfQorCitzdGF0aWMgdm9pZAorY2hfY2hlY2tfdm9sdGFnKGNoYXIgKnRhZykKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisJCS8qIHJlc3RyaWN0IHRvIGFzY2lpICovCisJCWlmICh0YWdbaV0gPj0gMHg3ZiB8fCB0YWdbaV0gPCAweDIwKQorCQkJdGFnW2ldID0gJyAnOworCQkvKiBkb24ndCBhbGxvdyBzZWFyY2ggd2lsZGNhcmRzICovCisJCWlmICh0YWdbaV0gPT0gJz8nIHx8CisJCSAgICB0YWdbaV0gPT0gJyonKQorCQkJdGFnW2ldID0gJyAnOworCX0KK30KKworc3RhdGljIGludAorY2hfc2V0X3ZvbHRhZyhzY3NpX2NoYW5nZXIgKmNoLCB1X2ludCBlbGVtLAorCSAgICAgIGludCBhbHRlcm5hdGUsIGludCBjbGVhciwgdV9jaGFyICp0YWcpCit7CisJdV9jaGFyICBjbWRbMTJdOworCXVfY2hhciAgKmJ1ZmZlcjsKKwlpbnQgcmVzdWx0OworCisJYnVmZmVyID0ga21hbGxvYyg1MTIsIEdGUF9LRVJORUwpOworCWlmICghYnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKwltZW1zZXQoYnVmZmVyLDAsNTEyKTsKKworCWRwcmludGsoIiVzICVzIHZvbHRhZzogMHgleCA9PiBcIiVzXCJcbiIsCisJCWNsZWFyICAgICA/ICJjbGVhciIgICAgIDogInNldCIsCisJCWFsdGVybmF0ZSA/ICJhbHRlcm5hdGUiIDogInByaW1hcnkiLAorCQllbGVtLCB0YWcpOworCW1lbXNldChjbWQsMCxzaXplb2YoY21kKSk7CisJY21kWzBdICA9IFNFTkRfVk9MVU1FX1RBRzsKKwljbWRbMV0gPSAoY2gtPmRldmljZS0+bHVuIDw8IDUpIHwgCisJCWNoX2VsZW1fdG9fdHlwZWNvZGUoY2gsZWxlbSk7CisJY21kWzJdID0gKGVsZW0gPj4gOCkgJiAweGZmOworCWNtZFszXSA9IGVsZW0gICAgICAgICYgMHhmZjsKKwljbWRbNV0gPSBjbGVhcgorCQk/IChhbHRlcm5hdGUgPyAweDBkIDogMHgwYykKKwkJOiAoYWx0ZXJuYXRlID8gMHgwYiA6IDB4MGEpOworCQorCWNtZFs5XSA9IDI1NTsKKworCW1lbWNweShidWZmZXIsdGFnLDMyKTsKKwljaF9jaGVja192b2x0YWcoYnVmZmVyKTsKKworCXJlc3VsdCA9IGNoX2RvX3Njc2koY2gsIGNtZCwgYnVmZmVyLCAyNTYsIERNQV9UT19ERVZJQ0UpOworCWtmcmVlKGJ1ZmZlcik7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBjaF9nc3RhdHVzKHNjc2lfY2hhbmdlciAqY2gsIGludCB0eXBlLCB1bnNpZ25lZCBjaGFyICpkZXN0KQoreworCWludCByZXR2YWwgPSAwOworCXVfY2hhciBkYXRhWzE2XTsKKwl1bnNpZ25lZCBpbnQgaTsKKwkKKwlkb3duKCZjaC0+bG9jayk7CisJZm9yIChpID0gMDsgaSA8IGNoLT5jb3VudHNbdHlwZV07IGkrKykgeworCQlpZiAoMCAhPSBjaF9yZWFkX2VsZW1lbnRfc3RhdHVzCisJCSAgICAoY2gsIGNoLT5maXJzdHNbdHlwZV0raSxkYXRhKSkgeworCQkJcmV0dmFsID0gLUVJTzsKKwkJCWJyZWFrOworCQl9CisJCXB1dF91c2VyKGRhdGFbMl0sIGRlc3QraSk7CisJCWlmIChkYXRhWzJdICYgQ0VTVEFUVVNfRVhDRVBUKQorCQkJdnByaW50aygiZWxlbWVudCAweCV4OiBhc2M9MHgleCwgYXNjcT0weCV4XG4iLAorCQkJCWNoLT5maXJzdHNbdHlwZV0raSwKKwkJCQkoaW50KWRhdGFbNF0sKGludClkYXRhWzVdKTsKKwkJcmV0dmFsID0gY2hfcmVhZF9lbGVtZW50X3N0YXR1cworCQkJKGNoLCBjaC0+Zmlyc3RzW3R5cGVdK2ksZGF0YSk7CisJCWlmICgwICE9IHJldHZhbCkKKwkJCWJyZWFrOworCX0KKwl1cCgmY2gtPmxvY2spOworCXJldHVybiByZXR2YWw7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCitzdGF0aWMgaW50CitjaF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXNjc2lfY2hhbmdlciAqY2ggPSBmaWxlLT5wcml2YXRlX2RhdGE7CisKKwlzY3NpX2RldmljZV9wdXQoY2gtPmRldmljZSk7CisJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY2hfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzY3NpX2NoYW5nZXIgKnRtcCwgKmNoOworCWludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CisKKwlzcGluX2xvY2soJmNoX2Rldmxpc3RfbG9jayk7CisJY2ggPSBOVUxMOworCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wLCZjaF9kZXZsaXN0LGxpc3QpIHsKKwkJaWYgKHRtcC0+bWlub3IgPT0gbWlub3IpCisJCQljaCA9IHRtcDsKKwl9CisJaWYgKE5VTEwgPT0gY2ggfHwgc2NzaV9kZXZpY2VfZ2V0KGNoLT5kZXZpY2UpKSB7CisJCXNwaW5fdW5sb2NrKCZjaF9kZXZsaXN0X2xvY2spOworCQlyZXR1cm4gLUVOWElPOworCX0KKwlzcGluX3VubG9jaygmY2hfZGV2bGlzdF9sb2NrKTsKKworCWZpbGUtPnByaXZhdGVfZGF0YSA9IGNoOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitjaF9jaGVja3JhbmdlKHNjc2lfY2hhbmdlciAqY2gsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgdW5pdCkKK3sKKwlpZiAodHlwZSA+PSBDSF9UWVBFUyAgfHwgIHVuaXQgPj0gY2gtPmNvdW50c1t0eXBlXSkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNoX2lvY3RsKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCisJCSAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzY3NpX2NoYW5nZXIgKmNoID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCWludCByZXR2YWw7CisJCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIENISU9HUEFSQU1TOgorCXsKKwkJc3RydWN0IGNoYW5nZXJfcGFyYW1zIHBhcmFtczsKKwkJCisJCXBhcmFtcy5jcF9jdXJwaWNrZXIgPSAwOworCQlwYXJhbXMuY3BfbnBpY2tlcnMgID0gY2gtPmNvdW50c1tDSEVUX01UXTsKKwkJcGFyYW1zLmNwX25zbG90cyAgICA9IGNoLT5jb3VudHNbQ0hFVF9TVF07CisJCXBhcmFtcy5jcF9ucG9ydGFscyAgPSBjaC0+Y291bnRzW0NIRVRfSUVdOworCQlwYXJhbXMuY3BfbmRyaXZlcyAgID0gY2gtPmNvdW50c1tDSEVUX0RUXTsKKwkJCisJCWlmIChjb3B5X3RvX3VzZXIoKHZvaWQgKikgYXJnLCAmcGFyYW1zLCBzaXplb2YocGFyYW1zKSkpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIDA7CisJfQorCWNhc2UgQ0hJT0dWUEFSQU1TOgorCXsKKwkJc3RydWN0IGNoYW5nZXJfdmVuZG9yX3BhcmFtcyB2cGFyYW1zOworCisJCW1lbXNldCgmdnBhcmFtcywwLHNpemVvZih2cGFyYW1zKSk7CisJCWlmIChjaC0+Y291bnRzW0NIRVRfVjFdKSB7CisJCQl2cGFyYW1zLmN2cF9uMSAgPSBjaC0+Y291bnRzW0NIRVRfVjFdOworCQkJc3RybmNweSh2cGFyYW1zLmN2cF9sYWJlbDEsdmVuZG9yX2xhYmVsc1swXSwxNik7CisJCX0KKwkJaWYgKGNoLT5jb3VudHNbQ0hFVF9WMl0pIHsKKwkJCXZwYXJhbXMuY3ZwX24yICA9IGNoLT5jb3VudHNbQ0hFVF9WMl07CisJCQlzdHJuY3B5KHZwYXJhbXMuY3ZwX2xhYmVsMix2ZW5kb3JfbGFiZWxzWzFdLDE2KTsKKwkJfQorCQlpZiAoY2gtPmNvdW50c1tDSEVUX1YzXSkgeworCQkJdnBhcmFtcy5jdnBfbjMgID0gY2gtPmNvdW50c1tDSEVUX1YzXTsKKwkJCXN0cm5jcHkodnBhcmFtcy5jdnBfbGFiZWwzLHZlbmRvcl9sYWJlbHNbMl0sMTYpOworCQl9CisJCWlmIChjaC0+Y291bnRzW0NIRVRfVjRdKSB7CisJCQl2cGFyYW1zLmN2cF9uNCAgPSBjaC0+Y291bnRzW0NIRVRfVjRdOworCQkJc3RybmNweSh2cGFyYW1zLmN2cF9sYWJlbDQsdmVuZG9yX2xhYmVsc1szXSwxNik7CisJCX0KKwkJaWYgKGNvcHlfdG9fdXNlcigodm9pZCAqKSBhcmcsICZ2cGFyYW1zLCBzaXplb2YodnBhcmFtcykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJCXJldHVybiAwOworCX0KKwkKKwljYXNlIENISU9QT1NJVElPTjoKKwl7CisJCXN0cnVjdCBjaGFuZ2VyX3Bvc2l0aW9uIHBvczsKKwkJCisJCWlmIChjb3B5X2Zyb21fdXNlcigmcG9zLCAodm9pZCopYXJnLCBzaXplb2YgKHBvcykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJaWYgKDAgIT0gY2hfY2hlY2tyYW5nZShjaCwgcG9zLmNwX3R5cGUsIHBvcy5jcF91bml0KSkgeworCQkJZHByaW50aygiQ0hJT1BPU0lUSU9OOiBpbnZhbGlkIHBhcmFtZXRlclxuIik7CisJCQlyZXR1cm4gLUVCQURTTFQ7CisJCX0KKwkJZG93bigmY2gtPmxvY2spOworCQlyZXR2YWwgPSBjaF9wb3NpdGlvbihjaCwwLAorCQkJCSAgICAgY2gtPmZpcnN0c1twb3MuY3BfdHlwZV0gKyBwb3MuY3BfdW5pdCwKKwkJCQkgICAgIHBvcy5jcF9mbGFncyAmIENQX0lOVkVSVCk7CisJCXVwKCZjaC0+bG9jayk7CisJCXJldHVybiByZXR2YWw7CisJfQorCQorCWNhc2UgQ0hJT01PVkU6CisJeworCQlzdHJ1Y3QgY2hhbmdlcl9tb3ZlIG12OworCisJCWlmIChjb3B5X2Zyb21fdXNlcigmbXYsICh2b2lkKilhcmcsIHNpemVvZiAobXYpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmICgwICE9IGNoX2NoZWNrcmFuZ2UoY2gsIG12LmNtX2Zyb210eXBlLCBtdi5jbV9mcm9tdW5pdCkgfHwKKwkJICAgIDAgIT0gY2hfY2hlY2tyYW5nZShjaCwgbXYuY21fdG90eXBlLCAgIG12LmNtX3RvdW5pdCAgKSkgeworCQkJZHByaW50aygiQ0hJT01PVkU6IGludmFsaWQgcGFyYW1ldGVyXG4iKTsKKwkJCXJldHVybiAtRUJBRFNMVDsKKwkJfQorCQkKKwkJZG93bigmY2gtPmxvY2spOworCQlyZXR2YWwgPSBjaF9tb3ZlKGNoLDAsCisJCQkJIGNoLT5maXJzdHNbbXYuY21fZnJvbXR5cGVdICsgbXYuY21fZnJvbXVuaXQsCisJCQkJIGNoLT5maXJzdHNbbXYuY21fdG90eXBlXSAgICsgbXYuY21fdG91bml0LAorCQkJCSBtdi5jbV9mbGFncyAmIENNX0lOVkVSVCk7CisJCXVwKCZjaC0+bG9jayk7CisJCXJldHVybiByZXR2YWw7CisJfQorCisJY2FzZSBDSElPRVhDSEFOR0U6CisJeworCQlzdHJ1Y3QgY2hhbmdlcl9leGNoYW5nZSBtdjsKKwkJCisJCWlmIChjb3B5X2Zyb21fdXNlcigmbXYsICh2b2lkKilhcmcsIHNpemVvZiAobXYpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmICgwICE9IGNoX2NoZWNrcmFuZ2UoY2gsIG12LmNlX3NyY3R5cGUsICBtdi5jZV9zcmN1bml0ICkgfHwKKwkJICAgIDAgIT0gY2hfY2hlY2tyYW5nZShjaCwgbXYuY2VfZmRzdHR5cGUsIG12LmNlX2Zkc3R1bml0KSB8fAorCQkgICAgMCAhPSBjaF9jaGVja3JhbmdlKGNoLCBtdi5jZV9zZHN0dHlwZSwgbXYuY2Vfc2RzdHVuaXQpKSB7CisJCQlkcHJpbnRrKCJDSElPRVhDSEFOR0U6IGludmFsaWQgcGFyYW1ldGVyXG4iKTsKKwkJCXJldHVybiAtRUJBRFNMVDsKKwkJfQorCQkKKwkJZG93bigmY2gtPmxvY2spOworCQlyZXR2YWwgPSBjaF9leGNoYW5nZQorCQkJKGNoLDAsCisJCQkgY2gtPmZpcnN0c1ttdi5jZV9zcmN0eXBlXSAgKyBtdi5jZV9zcmN1bml0LAorCQkJIGNoLT5maXJzdHNbbXYuY2VfZmRzdHR5cGVdICsgbXYuY2VfZmRzdHVuaXQsCisJCQkgY2gtPmZpcnN0c1ttdi5jZV9zZHN0dHlwZV0gKyBtdi5jZV9zZHN0dW5pdCwKKwkJCSBtdi5jZV9mbGFncyAmIENFX0lOVkVSVDEsIG12LmNlX2ZsYWdzICYgQ0VfSU5WRVJUMik7CisJCXVwKCZjaC0+bG9jayk7CisJCXJldHVybiByZXR2YWw7CisJfQorCisJY2FzZSBDSElPR1NUQVRVUzoKKwl7CisJCXN0cnVjdCBjaGFuZ2VyX2VsZW1lbnRfc3RhdHVzIGNlczsKKwkJCisJCWlmIChjb3B5X2Zyb21fdXNlcigmY2VzLCAodm9pZCopYXJnLCBzaXplb2YgKGNlcykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJCWlmIChjZXMuY2VzX3R5cGUgPCAwIHx8IGNlcy5jZXNfdHlwZSA+PSBDSF9UWVBFUykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCXJldHVybiBjaF9nc3RhdHVzKGNoLCBjZXMuY2VzX3R5cGUsIGNlcy5jZXNfZGF0YSk7CisJfQorCisJY2FzZSBDSElPR0VMRU06CisJeworCQlzdHJ1Y3QgY2hhbmdlcl9nZXRfZWxlbWVudCBjZ2U7CisJCXVfY2hhciAgY21kWzEyXTsKKwkJdV9jaGFyICAqYnVmZmVyOworCQl1bnNpZ25lZCBpbnQgZWxlbTsKKwkJaW50ICAgICByZXN1bHQsaTsKKwkJCisJCWlmIChjb3B5X2Zyb21fdXNlcigmY2dlLCAodm9pZCopYXJnLCBzaXplb2YgKGNnZSkpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJaWYgKDAgIT0gY2hfY2hlY2tyYW5nZShjaCwgY2dlLmNnZV90eXBlLCBjZ2UuY2dlX3VuaXQpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCWVsZW0gPSBjaC0+Zmlyc3RzW2NnZS5jZ2VfdHlwZV0gKyBjZ2UuY2dlX3VuaXQ7CisJCQorCQlidWZmZXIgPSBrbWFsbG9jKDUxMiwgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCQlpZiAoIWJ1ZmZlcikKKwkJCXJldHVybiAtRU5PTUVNOworCQlkb3duKCZjaC0+bG9jayk7CisJCQorCXZvbHRhZ19yZXRyeToKKwkJbWVtc2V0KGNtZCwwLHNpemVvZihjbWQpKTsKKwkJY21kWzBdID0gUkVBRF9FTEVNRU5UX1NUQVRVUzsKKwkJY21kWzFdID0gKGNoLT5kZXZpY2UtPmx1biA8PCA1KSB8CisJCQkoY2gtPnZvbHRhZ3MgPyAweDEwIDogMCkgfAorCQkJY2hfZWxlbV90b190eXBlY29kZShjaCxlbGVtKTsKKwkJY21kWzJdID0gKGVsZW0gPj4gOCkgJiAweGZmOworCQljbWRbM10gPSBlbGVtICAgICAgICAmIDB4ZmY7CisJCWNtZFs1XSA9IDE7CisJCWNtZFs5XSA9IDI1NTsKKwkJCisJCWlmICgwID09IChyZXN1bHQgPSBjaF9kb19zY3NpKGNoLCBjbWQsIGJ1ZmZlciwgMjU2LCBETUFfRlJPTV9ERVZJQ0UpKSkgeworCQkJY2dlLmNnZV9zdGF0dXMgPSBidWZmZXJbMThdOworCQkJY2dlLmNnZV9mbGFncyA9IDA7CisJCQlpZiAoYnVmZmVyWzE4XSAmIENFU1RBVFVTX0VYQ0VQVCkgeworCQkJCWNnZS5jZ2VfZXJybm8gPSBFSU87CisJCQl9CisJCQlpZiAoYnVmZmVyWzI1XSAmIDB4ODApIHsKKwkJCQljZ2UuY2dlX2ZsYWdzIHw9IENHRV9TUkM7CisJCQkJaWYgKGJ1ZmZlclsyNV0gJiAweDQwKQorCQkJCQljZ2UuY2dlX2ZsYWdzIHw9IENHRV9JTlZFUlQ7CisJCQkJZWxlbSA9IChidWZmZXJbMjZdPDw4KSB8IGJ1ZmZlclsyN107CisJCQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQkJCQlpZiAoZWxlbSA+PSBjaC0+Zmlyc3RzW2ldICYmCisJCQkJCSAgICBlbGVtIDwgIGNoLT5maXJzdHNbaV0gKyBjaC0+Y291bnRzW2ldKSB7CisJCQkJCQljZ2UuY2dlX3NyY3R5cGUgPSBpOworCQkJCQkJY2dlLmNnZV9zcmN1bml0ID0gZWxlbS1jaC0+Zmlyc3RzW2ldOworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJaWYgKChidWZmZXJbMjJdICYgMHgzMCkgPT0gMHgzMCkgeworCQkJCWNnZS5jZ2VfZmxhZ3MgfD0gQ0dFX0lETFVOOworCQkJCWNnZS5jZ2VfaWQgID0gYnVmZmVyWzIzXTsKKwkJCQljZ2UuY2dlX2x1biA9IGJ1ZmZlclsyMl0gJiA3OworCQkJfQorCQkJaWYgKGJ1ZmZlcls5XSAmIDB4ODApIHsKKwkJCQljZ2UuY2dlX2ZsYWdzIHw9IENHRV9QVk9MVEFHOworCQkJCW1lbWNweShjZ2UuY2dlX3B2b2x0YWcsYnVmZmVyKzI4LDM2KTsKKwkJCX0KKwkJCWlmIChidWZmZXJbOV0gJiAweDQwKSB7CisJCQkJY2dlLmNnZV9mbGFncyB8PSBDR0VfQVZPTFRBRzsKKwkJCQltZW1jcHkoY2dlLmNnZV9hdm9sdGFnLGJ1ZmZlcis2NCwzNik7CisJCQl9CisJCX0gZWxzZSBpZiAoY2gtPnZvbHRhZ3MpIHsKKwkJCWNoLT52b2x0YWdzID0gMDsKKwkJCXZwcmludGsoImRldmljZSBoYXMgbm8gdm9sdW1lIHRhZyBzdXBwb3J0XG4iKTsKKwkJCWdvdG8gdm9sdGFnX3JldHJ5OworCQl9CisJCWtmcmVlKGJ1ZmZlcik7CisJCXVwKCZjaC0+bG9jayk7CisJCQorCQlpZiAoY29weV90b191c2VyKCh2b2lkKilhcmcsICZjZ2UsIHNpemVvZiAoY2dlKSkpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwljYXNlIENISU9JTklURUxFTToKKwl7CisJCWRvd24oJmNoLT5sb2NrKTsKKwkJcmV0dmFsID0gY2hfaW5pdF9lbGVtKGNoKTsKKwkJdXAoJmNoLT5sb2NrKTsKKwkJcmV0dXJuIHJldHZhbDsKKwl9CisJCQorCWNhc2UgQ0hJT1NWT0xUQUc6CisJeworCQlzdHJ1Y3QgY2hhbmdlcl9zZXRfdm9sdGFnIGNzdjsKKwkJaW50IGVsZW07CisKKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZjc3YsICh2b2lkKilhcmcsIHNpemVvZihjc3YpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmICgwICE9IGNoX2NoZWNrcmFuZ2UoY2gsIGNzdi5jc3ZfdHlwZSwgY3N2LmNzdl91bml0KSkgeworCQkJZHByaW50aygiQ0hJT1NWT0xUQUc6IGludmFsaWQgcGFyYW1ldGVyXG4iKTsKKwkJCXJldHVybiAtRUJBRFNMVDsKKwkJfQorCQllbGVtID0gY2gtPmZpcnN0c1tjc3YuY3N2X3R5cGVdICsgY3N2LmNzdl91bml0OworCQlkb3duKCZjaC0+bG9jayk7CisJCXJldHZhbCA9IGNoX3NldF92b2x0YWcoY2gsIGVsZW0sCisJCQkJICAgICAgIGNzdi5jc3ZfZmxhZ3MgJiBDU1ZfQVZPTFRBRywKKwkJCQkgICAgICAgY3N2LmNzdl9mbGFncyAmIENTVl9DTEVBUlRBRywKKwkJCQkgICAgICAgY3N2LmNzdl92b2x0YWcpOworCQl1cCgmY2gtPmxvY2spOworCQlyZXR1cm4gcmV0dmFsOworCX0KKworCWRlZmF1bHQ6CisJCXJldHVybiBzY3NpX2lvY3RsKGNoLT5kZXZpY2UsIGNtZCwgKHZvaWQqKWFyZyk7CisKKwl9Cit9CisKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisKK3N0cnVjdCBjaGFuZ2VyX2VsZW1lbnRfc3RhdHVzMzIgeworCWludAkJY2VzX3R5cGU7CisJY29tcGF0X3VwdHJfdAljZXNfZGF0YTsKK307CisjZGVmaW5lIENISU9HU1RBVFVTMzIgIF9JT1coJ2MnLCA4LHN0cnVjdCBjaGFuZ2VyX2VsZW1lbnRfc3RhdHVzMzIpCisKK3N0YXRpYyBsb25nIGNoX2lvY3RsX2NvbXBhdChzdHJ1Y3QgZmlsZSAqIGZpbGUsCisJCQkgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc2NzaV9jaGFuZ2VyICpjaCA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgQ0hJT0dQQVJBTVM6CisJY2FzZSBDSElPR1ZQQVJBTVM6CisJY2FzZSBDSElPUE9TSVRJT046CisJY2FzZSBDSElPTU9WRToKKwljYXNlIENISU9FWENIQU5HRToKKwljYXNlIENISU9HRUxFTToKKwljYXNlIENISU9JTklURUxFTToKKwljYXNlIENISU9TVk9MVEFHOgorCQkvKiBjb21wYXRpYmxlICovCisJCXJldHVybiBjaF9pb2N0bChOVUxMIC8qIGlub2RlLCB1bnVzZWQgKi8sCisJCQkJZmlsZSwgY21kLCBhcmcpOworCWNhc2UgQ0hJT0dTVEFUVVMzMjoKKwl7CisJCXN0cnVjdCBjaGFuZ2VyX2VsZW1lbnRfc3RhdHVzMzIgY2VzMzI7CisJCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisJCQorCQlpZiAoY29weV9mcm9tX3VzZXIoJmNlczMyLCAodm9pZCopYXJnLCBzaXplb2YgKGNlczMyKSkpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJaWYgKGNlczMyLmNlc190eXBlIDwgMCB8fCBjZXMzMi5jZXNfdHlwZSA+PSBDSF9UWVBFUykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWRhdGEgPSBjb21wYXRfcHRyKGNlczMyLmNlc19kYXRhKTsKKwkJcmV0dXJuIGNoX2dzdGF0dXMoY2gsIGNlczMyLmNlc190eXBlLCBkYXRhKTsKKwl9CisJZGVmYXVsdDoKKwkJLy8gcmV0dXJuIHNjc2lfaW9jdGxfY29tcGF0KGNoLT5kZXZpY2UsIGNtZCwgKHZvaWQqKWFyZyk7CisJCXJldHVybiAtRU5PSU9DVExDTUQ7CisKKwl9Cit9CisjZW5kaWYKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK3N0YXRpYyBpbnQgY2hfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBzY3NpX2RldmljZSAqc2QgPSB0b19zY3NpX2RldmljZShkZXYpOworCXNjc2lfY2hhbmdlciAqY2g7CisJCisJaWYgKHNkLT50eXBlICE9IFRZUEVfTUVESVVNX0NIQU5HRVIpCisJCXJldHVybiAtRU5PREVWOworICAgIAorCWNoID0ga21hbGxvYyhzaXplb2YoKmNoKSwgR0ZQX0tFUk5FTCk7CisJaWYgKE5VTEwgPT0gY2gpCisJCXJldHVybiAtRU5PTUVNOworCisJbWVtc2V0KGNoLDAsc2l6ZW9mKCpjaCkpOworCWNoLT5taW5vciA9IGNoX2RldmNvdW50OworCXNwcmludGYoY2gtPm5hbWUsImNoJWQiLGNoLT5taW5vcik7CisJaW5pdF9NVVRFWCgmY2gtPmxvY2spOworCWNoLT5kZXZpY2UgPSBzZDsKKwljaF9yZWFkY29uZmlnKGNoKTsKKwlpZiAoaW5pdCkKKwkJY2hfaW5pdF9lbGVtKGNoKTsKKworCWRldmZzX21rX2NkZXYoTUtERVYoU0NTSV9DSEFOR0VSX01BSk9SLGNoLT5taW5vciksCisJCSAgICAgIFNfSUZDSFIgfCBTX0lSVUdPIHwgU19JV1VHTywgY2gtPm5hbWUpOworCWNsYXNzX2RldmljZV9jcmVhdGUoY2hfc3lzZnNfY2xhc3MsCisJCQkgICAgTUtERVYoU0NTSV9DSEFOR0VSX01BSk9SLGNoLT5taW5vciksCisJCQkgICAgZGV2LCAicyVzIiwgY2gtPm5hbWUpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQXR0YWNoZWQgc2NzaSBjaGFuZ2VyICVzICIKKwkgICAgICAgImF0IHNjc2klZCwgY2hhbm5lbCAlZCwgaWQgJWQsIGx1biAlZFxuIiwgCisJICAgICAgIGNoLT5uYW1lLCBzZC0+aG9zdC0+aG9zdF9ubywgc2QtPmNoYW5uZWwsIHNkLT5pZCwgc2QtPmx1bik7CisJCisJc3Bpbl9sb2NrKCZjaF9kZXZsaXN0X2xvY2spOworCWxpc3RfYWRkX3RhaWwoJmNoLT5saXN0LCZjaF9kZXZsaXN0KTsKKwljaF9kZXZjb3VudCsrOworCXNwaW5fdW5sb2NrKCZjaF9kZXZsaXN0X2xvY2spOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNoX3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHNjc2lfZGV2aWNlICpzZCA9IHRvX3Njc2lfZGV2aWNlKGRldik7CisJc2NzaV9jaGFuZ2VyICp0bXAsICpjaDsKKworCXNwaW5fbG9jaygmY2hfZGV2bGlzdF9sb2NrKTsKKwljaCA9IE5VTEw7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAsJmNoX2Rldmxpc3QsbGlzdCkgeworCQlpZiAodG1wLT5kZXZpY2UgPT0gc2QpCisJCQljaCA9IHRtcDsKKwl9CisJQlVHX09OKE5VTEwgPT0gY2gpOworCWxpc3RfZGVsKCZjaC0+bGlzdCk7CisJc3Bpbl91bmxvY2soJmNoX2Rldmxpc3RfbG9jayk7CisKKwljbGFzc19kZXZpY2VfZGVzdHJveShjaF9zeXNmc19jbGFzcywKKwkJCSAgICAgTUtERVYoU0NTSV9DSEFOR0VSX01BSk9SLGNoLT5taW5vcikpOworCWRldmZzX3JlbW92ZShjaC0+bmFtZSk7CisJa2ZyZWUoY2gtPmR0KTsKKwlrZnJlZShjaCk7CisJY2hfZGV2Y291bnQtLTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF9jaF9tb2R1bGUodm9pZCkKK3sKKwlpbnQgcmM7CisJCisJcHJpbnRrKEtFUk5fSU5GTyAiU0NTSSBNZWRpYSBDaGFuZ2VyIGRyaXZlciB2IiBWRVJTSU9OICIgXG4iKTsKKyAgICAgICAgY2hfc3lzZnNfY2xhc3MgPSBjbGFzc19jcmVhdGUoVEhJU19NT0RVTEUsICJzY3NpX2NoYW5nZXIiKTsKKyAgICAgICAgaWYgKElTX0VSUihjaF9zeXNmc19jbGFzcykpIHsKKwkJcmMgPSBQVFJfRVJSKGNoX3N5c2ZzX2NsYXNzKTsKKwkJcmV0dXJuIHJjOworICAgICAgICB9CisJcmMgPSByZWdpc3Rlcl9jaHJkZXYoU0NTSV9DSEFOR0VSX01BSk9SLCJjaCIsJmNoYW5nZXJfZm9wcyk7CisJaWYgKHJjIDwgMCkgeworCQlwcmludGsoIlVuYWJsZSB0byBnZXQgbWFqb3IgJWQgZm9yIFNDU0ktQ2hhbmdlclxuIiwKKwkJICAgICAgIFNDU0lfQ0hBTkdFUl9NQUpPUik7CisJCWdvdG8gZmFpbDE7CisJfQorCXJjID0gc2NzaV9yZWdpc3Rlcl9kcml2ZXIoJmNoX3RlbXBsYXRlLmdlbmRydik7CisJaWYgKHJjIDwgMCkKKwkJZ290byBmYWlsMjsKKwlyZXR1cm4gMDsKKworIGZhaWwyOgorCXVucmVnaXN0ZXJfY2hyZGV2KFNDU0lfQ0hBTkdFUl9NQUpPUiwgImNoIik7CisgZmFpbDE6CisJY2xhc3NfZGVzdHJveShjaF9zeXNmc19jbGFzcyk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9jaF9tb2R1bGUodm9pZCkgCit7CisJc2NzaV91bnJlZ2lzdGVyX2RyaXZlcigmY2hfdGVtcGxhdGUuZ2VuZHJ2KTsKKwl1bnJlZ2lzdGVyX2NocmRldihTQ1NJX0NIQU5HRVJfTUFKT1IsICJjaCIpOworCWNsYXNzX2Rlc3Ryb3koY2hfc3lzZnNfY2xhc3MpOworfQorCittb2R1bGVfaW5pdChpbml0X2NoX21vZHVsZSk7Cittb2R1bGVfZXhpdChleGl0X2NoX21vZHVsZSk7CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBjLWJhc2ljLW9mZnNldDogOAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZGMzOTV4LmMgYi9kcml2ZXJzL3Njc2kvZGMzOTV4LmMKaW5kZXggY2NhNDFjZi4uYWUxM2MwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2RjMzk1eC5jCisrKyBiL2RyaXZlcnMvc2NzaS9kYzM5NXguYwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAKICAqIEBjbWQgLSBzb21lIGNvbW1hbmQgZm9yIHRoaXMgaG9zdCAoZm9yIGZldGNoaW5nIGhvb2tzKQogICogUmV0dXJuczogU1VDQ0VTUyAoMHgyMDAyKSBvbiBzdWNjZXNzLCBlbHNlIEZBSUxFRCAoMHgyMDAzKS4KICAqLwotc3RhdGljIGludCBkYzM5NXhfZWhfYnVzX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKK3N0YXRpYyBpbnQgX19kYzM5NXhfZWhfYnVzX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIHsKIAlzdHJ1Y3QgQWRhcHRlckN0bEJsayAqYWNiID0KIAkJKHN0cnVjdCBBZGFwdGVyQ3RsQmxrICopY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwpAQCAtMTM1Niw2ICsxMzU2LDE2IEBACiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKK3N0YXRpYyBpbnQgZGMzOTV4X2VoX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCit7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9fZGMzOTV4X2VoX2J1c19yZXNldChjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKK30KIAogLyoKICAqIGFib3J0IGFuIGVycmFudCBTQ1NJIGNvbW1hbmQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kbXgzMTkxZC5jIGIvZHJpdmVycy9zY3NpL2RteDMxOTFkLmMKaW5kZXggMWQyMjQyNC4uNzkwNWI5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2RteDMxOTFkLmMKKysrIGIvZHJpdmVycy9zY3NpL2RteDMxOTFkLmMKQEAgLTYxLDggKzYxLDYgQEAKIAkucXVldWVjb21tYW5kCQk9IE5DUjUzODBfcXVldWVfY29tbWFuZCwKIAkuZWhfYWJvcnRfaGFuZGxlcgk9IE5DUjUzODBfYWJvcnQsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gTkNSNTM4MF9idXNfcmVzZXQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyPSBOQ1I1MzgwX2RldmljZV9yZXNldCwKLQkuZWhfaG9zdF9yZXNldF9oYW5kbGVyCT0gTkNSNTM4MF9ob3N0X3Jlc2V0LAogCS5jYW5fcXVldWUJCT0gMzIsCiAJLnRoaXNfaWQJCT0gNywKIAkuc2dfdGFibGVzaXplCQk9IFNHX0FMTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMgYi9kcml2ZXJzL3Njc2kvZHB0X2kyby5jCmluZGV4IDUzYzliOTMuLjljYzAwMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMKKysrIGIvZHJpdmVycy9zY3NpL2RwdF9pMm8uYwpAQCAtMTEzLDcgKzExMyw2IEBACiBzdGF0aWMgaW50IHN5c190YmxfaW5kID0gMDsKIHN0YXRpYyBpbnQgc3lzX3RibF9sZW4gPSAwOwogCi1zdGF0aWMgYWRwdF9oYmEqIGhiYXNbRFBUSV9NQVhfSEJBXTsKIHN0YXRpYyBhZHB0X2hiYSogaGJhX2NoYWluID0gTlVMTDsKIHN0YXRpYyBpbnQgaGJhX2NvdW50ID0gMDsKIApAQCAtNjkxLDcgKzY5MCw3IEBACiAJdTMyIG1zZ1s0XTsKIAl1MzIgcmNvZGU7CiAJaW50IG9sZF9zdGF0ZTsKLQlzdHJ1Y3QgYWRwdF9kZXZpY2UqIGQgPSAodm9pZCopIGNtZC0+ZGV2aWNlLT5ob3N0ZGF0YTsKKwlzdHJ1Y3QgYWRwdF9kZXZpY2UqIGQgPSBjbWQtPmRldmljZS0+aG9zdGRhdGE7CiAKIAlwSGJhID0gKHZvaWQqKSBjbWQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGFbMF07CiAJcHJpbnRrKEtFUk5fSU5GTyIlczogVHJ5aW5nIHRvIHJlc2V0IGRldmljZVxuIixwSGJhLT5uYW1lKTsKQEAgLTcwNyw3ICs3MDYsNyBAQAogCiAJb2xkX3N0YXRlID0gZC0+c3RhdGU7CiAJZC0+c3RhdGUgfD0gRFBUSV9ERVZfUkVTRVQ7Ci0JaWYoIChyY29kZSA9IGFkcHRfaTJvX3Bvc3Rfd2FpdChwSGJhLCAodm9pZCopbXNnLHNpemVvZihtc2cpLCBGT1JFVkVSKSkgKXsKKwlpZiggKHJjb2RlID0gYWRwdF9pMm9fcG9zdF93YWl0KHBIYmEsIG1zZyxzaXplb2YobXNnKSwgRk9SRVZFUikpICl7CiAJCWQtPnN0YXRlID0gb2xkX3N0YXRlOwogCQlpZihyY29kZSA9PSAtRU9QTk9UU1VQUCApewogCQkJcHJpbnRrKEtFUk5fSU5GTyIlczogRGV2aWNlIHJlc2V0IG5vdCBzdXBwb3J0ZWRcbiIscEhiYS0+bmFtZSk7CkBAIC03MzcsNyArNzM2LDcgQEAKIAltc2dbMV0gPSAoSTJPX0hCQV9CVVNfUkVTRVQ8PDI0fEhPU1RfVElEPDwxMnxwSGJhLT5jaGFubmVsW2NtZC0+ZGV2aWNlLT5jaGFubmVsXS50aWQpOwogCW1zZ1syXSA9IDA7CiAJbXNnWzNdID0gMDsKLQlpZihhZHB0X2kyb19wb3N0X3dhaXQocEhiYSwgKHZvaWQqKW1zZyxzaXplb2YobXNnKSwgRk9SRVZFUikgKXsKKwlpZihhZHB0X2kyb19wb3N0X3dhaXQocEhiYSwgbXNnLHNpemVvZihtc2cpLCBGT1JFVkVSKSApewogCQlwcmludGsoS0VSTl9XQVJOSU5HIiVzOiBCdXMgcmVzZXQgZmFpbGVkLlxuIixwSGJhLT5uYW1lKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9IGVsc2UgewpAQCAtNzQ3LDcgKzc0Niw3IEBACiB9CiAKIC8vIFRoaXMgdmVyc2lvbiBvZiByZXNldCBpcyBjYWxsZWQgYnkgdGhlIGVoX2Vycm9yX2hhbmRsZXIKLXN0YXRpYyBpbnQgYWRwdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kKiBjbWQpCitzdGF0aWMgaW50IF9fYWRwdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kKiBjbWQpCiB7CiAJYWRwdF9oYmEqIHBIYmE7CiAJaW50IHJjb2RlOwpAQCAtNzYzLDYgKzc2MiwxNyBAQAogCX0KIH0KIAorc3RhdGljIGludCBhZHB0X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQqIGNtZCkKK3sKKwlpbnQgcmM7CisKKwlzcGluX2xvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCXJjID0gX19hZHB0X3Jlc2V0KGNtZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCisJcmV0dXJuIHJjOworfQorCiAvLyBUaGlzIHZlcnNpb24gb2YgcmVzZXQgaXMgY2FsbGVkIGJ5IHRoZSBpb2N0bHMgYW5kIGluZGlyZWN0bHkgZnJvbSBlaF9lcnJvcl9oYW5kbGVyIHZpYSBhZHB0X3Jlc2V0CiBzdGF0aWMgaW50IGFkcHRfaGJhX3Jlc2V0KGFkcHRfaGJhKiBwSGJhKQogewpAQCAtODc1LDcgKzg4NSw2IEBACiAJdm9pZCBfX2lvbWVtICptc2dfYWRkcl92aXJ0ID0gTlVMTDsKIAogCWludCByYXB0b3JGbGFnID0gRkFMU0U7Ci0JaW50IGk7CiAKIAlpZihwY2lfZW5hYmxlX2RldmljZShwRGV2KSkgewogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTkzNSwxMiArOTQ0LDYgQEAKIAltZW1zZXQocEhiYSwgMCwgc2l6ZW9mKGFkcHRfaGJhKSk7CiAKIAlkb3duKCZhZHB0X2NvbmZpZ3VyYXRpb25fbG9jayk7Ci0JZm9yKGk9MDtpPERQVElfTUFYX0hCQTtpKyspIHsKLQkJaWYoaGJhc1tpXT09TlVMTCkgewotCQkJaGJhc1tpXT1wSGJhOwotCQkJYnJlYWs7Ci0JCX0KLQl9CiAKIAlpZihoYmFfY2hhaW4gIT0gTlVMTCl7CiAJCWZvcihwID0gaGJhX2NoYWluOyBwLT5uZXh0OyBwID0gcC0+bmV4dCk7CkBAIC05NTAsNyArOTUzLDcgQEAKIAl9CiAJcEhiYS0+bmV4dCA9IE5VTEw7CiAJcEhiYS0+dW5pdCA9IGhiYV9jb3VudDsKLQlzcHJpbnRmKHBIYmEtPm5hbWUsICJkcHRpJWQiLCBpKTsKKwlzcHJpbnRmKHBIYmEtPm5hbWUsICJkcHRpJWQiLCBoYmFfY291bnQpOwogCWhiYV9jb3VudCsrOwogCQogCXVwKCZhZHB0X2NvbmZpZ3VyYXRpb25fbG9jayk7CkBAIC0xMDE1LDExICsxMDE4LDYgQEAKIAlpZihwSGJhLT5ob3N0KXsKIAkJZnJlZV9pcnEocEhiYS0+aG9zdC0+aXJxLCBwSGJhKTsKIAl9Ci0JZm9yKGk9MDtpPERQVElfTUFYX0hCQTtpKyspIHsKLQkJaWYoaGJhc1tpXT09cEhiYSkgewotCQkJaGJhc1tpXSA9IE5VTEw7Ci0JCX0KLQl9CiAJcDIgPSBOVUxMOwogCWZvciggcDEgPSBoYmFfY2hhaW47IHAxOyBwMiA9IHAxLHAxPXAxLT5uZXh0KXsKIAkJaWYocDEgPT0gcEhiYSkgewpAQCAtMTA3NiwxMiArMTA3NCw3IEBACiAKIHN0YXRpYyBpbnQgYWRwdF9pbml0KHZvaWQpCiB7Ci0JaW50IGk7Ci0KIAlwcmludGsoIkxvYWRpbmcgQWRhcHRlYyBJMk8gUkFJRDogVmVyc2lvbiAiIERQVF9JMk9fVkVSU0lPTiAiXG4iKTsKLQlmb3IgKGkgPSAwOyBpIDwgRFBUSV9NQVhfSEJBOyBpKyspIHsKLQkJaGJhc1tpXSA9IE5VTEw7Ci0JfQogI2lmZGVmIFJFQk9PVF9OT1RJRklFUgogCXJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmYWRwdF9yZWJvb3Rfbm90aWZpZXIpOwogI2VuZGlmCkBAIC0xNDU0LDcgKzE0NDcsNyBAQAogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KIAkJCi0JCWQtPmNvbnRyb2xsZXIgPSAodm9pZCopcEhiYTsKKwkJZC0+Y29udHJvbGxlciA9IHBIYmE7CiAJCWQtPm5leHQgPSBOVUxMOwogCiAJCW1lbWNweSgmZC0+bGN0X2RhdGEsICZsY3QtPmxjdF9lbnRyeVtpXSwgc2l6ZW9mKGkyb19sY3RfZW50cnkpKTsKQEAgLTIwMDAsNyArMTk5Myw3IEBACiAJc3RydWN0IHNjc2lfY21uZCogY21kOwogCWFkcHRfaGJhKiBwSGJhID0gZGV2X2lkOwogCXUzMiBtOwotCXVsb25nIHJlcGx5OworCXZvaWQgX19pb21lbSAqcmVwbHk7CiAJdTMyIHN0YXR1cz0wOwogCXUzMiBjb250ZXh0OwogCXVsb25nIGZsYWdzID0gMDsKQEAgLTIwMjUsMTEgKzIwMTgsMTEgQEAKIAkJCQlnb3RvIG91dDsKIAkJCX0KIAkJfQotCQlyZXBseSA9ICh1bG9uZylidXNfdG9fdmlydChtKTsKKwkJcmVwbHkgPSBidXNfdG9fdmlydChtKTsKIAogCQlpZiAocmVhZGwocmVwbHkpICYgTVNHX0ZBSUwpIHsKIAkJCXUzMiBvbGRfbSA9IHJlYWRsKHJlcGx5KzI4KTsgCi0JCQl1bG9uZyBtc2c7CisJCQl2b2lkIF9faW9tZW0gKm1zZzsKIAkJCXUzMiBvbGRfY29udGV4dDsKIAkJCVBERUJVRygiJXM6IEZhaWxlZCBtZXNzYWdlXG4iLHBIYmEtPm5hbWUpOwogCQkJaWYob2xkX20gPj0gMHgxMDAwMDApewpAQCAtMjAzOCwxNiArMjAzMSwxNiBAQAogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJLy8gVHJhbnNhY3Rpb24gY29udGV4dCBpcyAwIGluIGZhaWxlZCByZXBseSBmcmFtZQotCQkJbXNnID0gKHVsb25nKShwSGJhLT5tc2dfYWRkcl92aXJ0ICsgb2xkX20pOworCQkJbXNnID0gcEhiYS0+bXNnX2FkZHJfdmlydCArIG9sZF9tOwogCQkJb2xkX2NvbnRleHQgPSByZWFkbChtc2crMTIpOwogCQkJd3JpdGVsKG9sZF9jb250ZXh0LCByZXBseSsxMik7CiAJCQlhZHB0X3NlbmRfbm9wKHBIYmEsIG9sZF9tKTsKIAkJfSAKIAkJY29udGV4dCA9IHJlYWRsKHJlcGx5KzgpOwogCQlpZihjb250ZXh0ICYgMHg0MDAwMDAwMCl7IC8vIElPQ1RMCi0JCQl1bG9uZyBwID0gKHVsb25nKShyZWFkbChyZXBseSsxMikpOwotCQkJaWYoIHAgIT0gMCkgewotCQkJCW1lbWNweSgodm9pZCopcCwgKHZvaWQqKXJlcGx5LCBSRVBMWV9GUkFNRV9TSVpFICogNCk7CisJCQl2b2lkICpwID0gKHZvaWQgKilyZWFkbChyZXBseSsxMik7CisJCQlpZiggcCAhPSBOVUxMKSB7CisJCQkJbWVtY3B5X2Zyb21pbyhwLCByZXBseSwgUkVQTFlfRlJBTUVfU0laRSAqIDQpOwogCQkJfQogCQkJLy8gQWxsIElPQ1RMcyB3aWxsIGFsc28gYmUgcG9zdCB3YWl0CiAJCX0KQEAgLTIyMzEsNyArMjIyNCw3IEBACiB9CiAKIAotc3RhdGljIHMzMiBhZHB0X2kyb190b19zY3NpKHVsb25nIHJlcGx5LCBzdHJ1Y3Qgc2NzaV9jbW5kKiBjbWQpCitzdGF0aWMgczMyIGFkcHRfaTJvX3RvX3Njc2kodm9pZCBfX2lvbWVtICpyZXBseSwgc3RydWN0IHNjc2lfY21uZCogY21kKQogewogCWFkcHRfaGJhKiBwSGJhOwogCXUzMiBoYmFfc3RhdHVzOwpAQCAtMjMyMyw3ICsyMzE2LDcgQEAKIAkJCXUzMiBsZW4gPSBzaXplb2YoY21kLT5zZW5zZV9idWZmZXIpOwogCQkJbGVuID0gKGxlbiA+IDQwKSA/ICA0MCA6IGxlbjsKIAkJCS8vIENvcHkgb3ZlciB0aGUgc2Vuc2UgZGF0YQotCQkJbWVtY3B5KGNtZC0+c2Vuc2VfYnVmZmVyLCAodm9pZCopKHJlcGx5KzI4KSAsIGxlbik7CisJCQltZW1jcHlfZnJvbWlvKGNtZC0+c2Vuc2VfYnVmZmVyLCAocmVwbHkrMjgpICwgbGVuKTsKIAkJCWlmKGNtZC0+c2Vuc2VfYnVmZmVyWzBdID09IDB4NzAgLyogY2xhc3MgNyAqLyAmJiAKIAkJCSAgIGNtZC0+c2Vuc2VfYnVmZmVyWzJdID09IERBVEFfUFJPVEVDVCApewogCQkJCS8qIFRoaXMgaXMgdG8gaGFuZGxlIGFuIGFycmF5IGZhaWxlZCAqLwpAQCAtMjQzOCw3ICsyNDMxLDcgQEAKIAkJCQkJcmV0dXJuIC1FTk9NRU07CiAJCQkJfQogCQkJCQotCQkJCWQtPmNvbnRyb2xsZXIgPSAodm9pZCopcEhiYTsKKwkJCQlkLT5jb250cm9sbGVyID0gcEhiYTsKIAkJCQlkLT5uZXh0ID0gTlVMTDsKIAogCQkJCW1lbWNweSgmZC0+bGN0X2RhdGEsICZsY3QtPmxjdF9lbnRyeVtpXSwgc2l6ZW9mKGkyb19sY3RfZW50cnkpKTsKQEAgLTI5ODUsOCArMjk3OCw4IEBACiAJCXN5c190YmwtPmlvcHNbY291bnRdLmZyYW1lX3NpemUgPSBwSGJhLT5zdGF0dXNfYmxvY2stPmluYm91bmRfZnJhbWVfc2l6ZTsKIAkJc3lzX3RibC0+aW9wc1tjb3VudF0ubGFzdF9jaGFuZ2VkID0gc3lzX3RibF9pbmQgLSAxOyAvLyA/PwogCQlzeXNfdGJsLT5pb3BzW2NvdW50XS5pb3BfY2FwYWJpbGl0aWVzID0gcEhiYS0+c3RhdHVzX2Jsb2NrLT5pb3BfY2FwYWJpbGl0aWVzOwotCQlzeXNfdGJsLT5pb3BzW2NvdW50XS5pbmJvdW5kX2xvdyA9ICh1MzIpdmlydF90b19idXMoKHZvaWQqKXBIYmEtPnBvc3RfcG9ydCk7Ci0JCXN5c190YmwtPmlvcHNbY291bnRdLmluYm91bmRfaGlnaCA9ICh1MzIpKCh1NjQpdmlydF90b19idXMoKHZvaWQqKXBIYmEtPnBvc3RfcG9ydCk+PjMyKTsKKwkJc3lzX3RibC0+aW9wc1tjb3VudF0uaW5ib3VuZF9sb3cgPSAodTMyKXZpcnRfdG9fYnVzKHBIYmEtPnBvc3RfcG9ydCk7CisJCXN5c190YmwtPmlvcHNbY291bnRdLmluYm91bmRfaGlnaCA9ICh1MzIpKCh1NjQpdmlydF90b19idXMocEhiYS0+cG9zdF9wb3J0KT4+MzIpOwogCiAJCWNvdW50Kys7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2RwdGkuaCBiL2RyaXZlcnMvc2NzaS9kcHRpLmgKaW5kZXggNDI2ZTE1ZC4uOTgyMTc4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2RwdGkuaAorKysgYi9kcml2ZXJzL3Njc2kvZHB0aS5oCkBAIC0yOTYsNyArMjk2LDcgQEAKIHN0YXRpYyBzMzIgYWRwdF9pMm9faW5pdF9vdXRib3VuZF9xKGFkcHRfaGJhKiBwSGJhKTsKIHN0YXRpYyBzMzIgYWRwdF9pMm9faHJ0X2dldChhZHB0X2hiYSogcEhiYSk7CiBzdGF0aWMgczMyIGFkcHRfc2NzaV90b19pMm8oYWRwdF9oYmEqIHBIYmEsIHN0cnVjdCBzY3NpX2NtbmQqIGNtZCwgc3RydWN0IGFkcHRfZGV2aWNlKiBkcHRkZXZpY2UpOwotc3RhdGljIHMzMiBhZHB0X2kyb190b19zY3NpKHVsb25nIHJlcGx5LCBzdHJ1Y3Qgc2NzaV9jbW5kKiBjbWQpOworc3RhdGljIHMzMiBhZHB0X2kyb190b19zY3NpKHZvaWQgX19pb21lbSAqcmVwbHksIHN0cnVjdCBzY3NpX2NtbmQqIGNtZCk7CiBzdGF0aWMgczMyIGFkcHRfc2NzaV9yZWdpc3RlcihhZHB0X2hiYSogcEhiYSxzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlICogc2h0KTsKIHN0YXRpYyBzMzIgYWRwdF9oYmFfcmVzZXQoYWRwdF9oYmEqIHBIYmEpOwogc3RhdGljIHMzMiBhZHB0X2kyb19yZXNldF9oYmEoYWRwdF9oYmEqIHBIYmEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2R0Yy5jIGIvZHJpdmVycy9zY3NpL2R0Yy5jCmluZGV4IGRhMWFhYTQuLmFiOWRlMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kdGMuYworKysgYi9kcml2ZXJzL3Njc2kvZHRjLmMKQEAgLTQ4Miw4ICs0ODIsNiBAQAogCS5xdWV1ZWNvbW1hbmQJCQk9IGR0Y19xdWV1ZV9jb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyCQk9IGR0Y19hYm9ydCwKIAkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJCT0gZHRjX2J1c19yZXNldCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIJPSBkdGNfZGV2aWNlX3Jlc2V0LAotCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIgICAgICAgICAgPSBkdGNfaG9zdF9yZXNldCwKIAkuYmlvc19wYXJhbSAgICAgCQk9IGR0Y19iaW9zcGFyYW0sCiAJLmNhbl9xdWV1ZSAgICAgIAkJPSBDQU5fUVVFVUUsCiAJLnRoaXNfaWQgICAgICAgIAkJPSA3LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2R0Yy5oIGIvZHJpdmVycy9zY3NpL2R0Yy5oCmluZGV4IGM0YmNkYmYuLmVkNzM2MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kdGMuaAorKysgYi9kcml2ZXJzL3Njc2kvZHRjLmgKQEAgLTM0LDggKzM0LDYgQEAKIHN0YXRpYyBpbnQgZHRjX2RldGVjdChTY3NpX0hvc3RfVGVtcGxhdGUgKik7CiBzdGF0aWMgaW50IGR0Y19xdWV1ZV9jb21tYW5kKFNjc2lfQ21uZCAqLCB2b2lkICgqZG9uZSkoU2NzaV9DbW5kICopKTsKIHN0YXRpYyBpbnQgZHRjX2J1c19yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IGR0Y19kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICopOwotc3RhdGljIGludCBkdGNfaG9zdF9yZXNldChTY3NpX0NtbmQgKik7CiAKICNpZm5kZWYgQ01EX1BFUl9MVU4KICNkZWZpbmUgQ01EX1BFUl9MVU4gMgpAQCAtODYsOCArODQsNiBAQAogI2RlZmluZSBOQ1I1MzgwX3F1ZXVlX2NvbW1hbmQJCWR0Y19xdWV1ZV9jb21tYW5kCiAjZGVmaW5lIE5DUjUzODBfYWJvcnQJCQlkdGNfYWJvcnQKICNkZWZpbmUgTkNSNTM4MF9idXNfcmVzZXQJCWR0Y19idXNfcmVzZXQKLSNkZWZpbmUgTkNSNTM4MF9kZXZpY2VfcmVzZXQJCWR0Y19kZXZpY2VfcmVzZXQKLSNkZWZpbmUgTkNSNTM4MF9ob3N0X3Jlc2V0CQlkdGNfaG9zdF9yZXNldAogI2RlZmluZSBOQ1I1MzgwX3Byb2NfaW5mbwkJZHRjX3Byb2NfaW5mbyAKIAogLyogMTUgMTIgMTEgMTAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lYXRhLmMgYi9kcml2ZXJzL3Njc2kvZWF0YS5jCmluZGV4IDgxZDE2Y2YuLjFiYjg3MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9lYXRhLmMKKysrIGIvZHJpdmVycy9zY3NpL2VhdGEuYwpAQCAtNTE4LDggKzUxOCw2IEBACiAJLnJlbGVhc2UgPSBlYXRhMnhfcmVsZWFzZSwKIAkucXVldWVjb21tYW5kID0gZWF0YTJ4X3F1ZXVlY29tbWFuZCwKIAkuZWhfYWJvcnRfaGFuZGxlciA9IGVhdGEyeF9laF9hYm9ydCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBOVUxMLAotCS5laF9idXNfcmVzZXRfaGFuZGxlciA9IE5VTEwsCiAJLmVoX2hvc3RfcmVzZXRfaGFuZGxlciA9IGVhdGEyeF9laF9ob3N0X3Jlc2V0LAogCS5iaW9zX3BhcmFtID0gZWF0YTJ4X2Jpb3NfcGFyYW0sCiAJLnNsYXZlX2NvbmZpZ3VyZSA9IGVhdGEyeF9zbGF2ZV9jb25maWd1cmUsCkBAIC0xOTUwLDE2ICsxOTQ4LDIwIEBACiAJICAgICAgIGhhLT5ib2FyZF9uYW1lLCBTQ2FyZy0+ZGV2aWNlLT5jaGFubmVsLCBTQ2FyZy0+ZGV2aWNlLT5pZCwKIAkgICAgICAgU0NhcmctPmRldmljZS0+bHVuLCBTQ2FyZy0+cGlkKTsKIAorCXNwaW5fbG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisKIAlpZiAoU0NhcmctPmhvc3Rfc2NyaWJibGUgPT0gTlVMTCkKIAkJcHJpbnRrKCIlczogcmVzZXQsIHBpZCAlbGQgaW5hY3RpdmUuXG4iLCBoYS0+Ym9hcmRfbmFtZSwgU0NhcmctPnBpZCk7CiAKIAlpZiAoaGEtPmluX3Jlc2V0KSB7CiAJCXByaW50aygiJXM6IHJlc2V0LCBleGl0LCBhbHJlYWR5IGluIHJlc2V0LlxuIiwgaGEtPmJvYXJkX25hbWUpOworCQlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CiAJCXJldHVybiBGQUlMRUQ7CiAJfQogCiAJaWYgKHdhaXRfb25fYnVzeShzaG9zdC0+aW9fcG9ydCwgTUFYTE9PUCkpIHsKIAkJcHJpbnRrKCIlczogcmVzZXQsIGV4aXQsIHRpbWVvdXQgZXJyb3IuXG4iLCBoYS0+Ym9hcmRfbmFtZSk7CisJCXNwaW5fdW5sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKQEAgLTIwMTQsNiArMjAxNiw3IEBACiAKIAlpZiAoZG9fZG1hKHNob3N0LT5pb19wb3J0LCAwLCBSRVNFVF9QSU8pKSB7CiAJCXByaW50aygiJXM6IHJlc2V0LCBjYW5ub3QgcmVzZXQsIHRpbWVvdXQgZXJyb3IuXG4iLCBoYS0+Ym9hcmRfbmFtZSk7CisJCXNwaW5fdW5sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKQEAgLTIwMjYsOSArMjAyOSwxMiBAQAogCWhhLT5pbl9yZXNldCA9IDE7CiAKIAlzcGluX3VubG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CisKKwkvKiBGSVhNRTogdXNlIGEgc2xlZXAgaW5zdGVhZCAqLwogCXRpbWUgPSBqaWZmaWVzOwogCXdoaWxlICgoamlmZmllcyAtIHRpbWUpIDwgKDEwICogSFopICYmIGxpbWl0KysgPCAyMDAwMDApCiAJCXVkZWxheSgxMDBMKTsKKwogCXNwaW5fbG9ja19pcnEoc2hvc3QtPmhvc3RfbG9jayk7CiAKIAlwcmludGsoIiVzOiByZXNldCwgaW50ZXJydXB0cyBkaXNhYmxlZCwgbG9vcHMgJWQuXG4iLCBoYS0+Ym9hcmRfbmFtZSwgbGltaXQpOwpAQCAtMjA3OCw2ICsyMDg0LDcgQEAKIAllbHNlCiAJCXByaW50aygiJXM6IHJlc2V0LCBleGl0LlxuIiwgaGEtPmJvYXJkX25hbWUpOwogCisJc3Bpbl91bmxvY2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZWF0YV9waW8uYyBiL2RyaXZlcnMvc2NzaS9lYXRhX3Bpby5jCmluZGV4IDBlZTQ5ZGMuLjA0YTA2YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9lYXRhX3Bpby5jCisrKyBiL2RyaXZlcnMvc2NzaS9lYXRhX3Bpby5jCkBAIC00ODYsOCArNDg2LDExIEBACiAKIAlEQkcoREJHX0FCTk9STSwgcHJpbnRrKEtFUk5fV0FSTklORyAiZWF0YV9waW9fcmVzZXQgY2FsbGVkIHBpZDolbGQgdGFyZ2V0OiIgIiAleCBsdW46ICV4IHJlYXNvbiAleFxuIiwgY21kLT5waWQsIGNtZC0+ZGV2aWNlLT5pZCwgY21kLT5kZXZpY2UtPmx1biwgY21kLT5hYm9ydF9yZWFzb24pKTsKIAorCXNwaW5fbG9ja19pcnEoaG9zdC0+aG9zdF9sb2NrKTsKKwogCWlmIChIRChjbWQpLT5zdGF0ZSA9PSBSRVNFVCkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJlYXRhX3Bpb19yZXNldDogZXhpdCwgYWxyZWFkeSBpbiByZXNldC5cbiIpOworCQlzcGluX3VubG9ja19pcnEoaG9zdC0+aG9zdF9sb2NrKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKQEAgLTUzNiw2ICs1MzksOCBAQAogCiAJSEQoY21kKS0+c3RhdGUgPSAwOwogCisJc3Bpbl91bmxvY2tfaXJxKGhvc3QtPmhvc3RfbG9jayk7CisKIAlpZiAoc3VjY2VzcykgewkJLyogaG1tbS4uLiAqLwogCQlEQkcoREJHX0FCTk9STSwgcHJpbnRrKEtFUk5fV0FSTklORyAiZWF0YV9waW9fcmVzZXQ6IGV4aXQsIHN1Y2Nlc3MuXG4iKSk7CiAJCXJldHVybiBTVUNDRVNTOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2ZjYWwuYyBiL2RyaXZlcnMvc2NzaS9mY2FsLmMKaW5kZXggMGRhZDg5ZC4uYTZmMTIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2ZjYWwuYworKysgYi9kcml2ZXJzL3Njc2kvZmNhbC5jCkBAIC0zMTEsNyArMzExLDYgQEAKIAkudXNlX2NsdXN0ZXJpbmcJCT0gRU5BQkxFX0NMVVNURVJJTkcsCiAJLmVoX2Fib3J0X2hhbmRsZXIJPSBmY3Bfc2NzaV9hYm9ydCwKIAkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBmY3Bfc2NzaV9kZXZfcmVzZXQsCi0JLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gZmNwX3Njc2lfYnVzX3Jlc2V0LAogCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJPSBmY3Bfc2NzaV9ob3N0X3Jlc2V0LAogfTsKICNpbmNsdWRlICJzY3NpX21vZHVsZS5jIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2ZkX21jcy5jIGIvZHJpdmVycy9zY3NpL2ZkX21jcy5jCmluZGV4IDc3MDkzMGUuLmZhNjUyZjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZmRfbWNzLmMKKysrIGIvZHJpdmVycy9zY3NpL2ZkX21jcy5jCkBAIC0xMjQxLDE4ICsxMjQxLDkgQEAKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIAotc3RhdGljIGludCBmZF9tY3NfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBTQ3BudCkKLXsKLQlyZXR1cm4gRkFJTEVEOwotfQotCi1zdGF0aWMgaW50IGZkX21jc19kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICogU0NwbnQpIAotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgZmRfbWNzX2J1c19yZXNldChTY3NpX0NtbmQgKiBTQ3BudCkgewogCXN0cnVjdCBTY3NpX0hvc3QgKnNocG50ID0gU0NwbnQtPmRldmljZS0+aG9zdDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAjaWYgREVCVUdfUkVTRVQKIAlzdGF0aWMgaW50IGNhbGxlZF9vbmNlID0gMDsKQEAgLTEyNjksNiArMTI2MCw4IEBACiAJY2FsbGVkX29uY2UgPSAxOwogI2VuZGlmCiAKKwlzcGluX2xvY2tfaXJxc2F2ZShzaHBudC0+aG9zdF9sb2NrLCBmbGFncyk7CisKIAlvdXRiKDEsIFNDU0lfQ250bF9wb3J0KTsKIAlkb19wYXVzZSgyKTsKIAlvdXRiKDAsIFNDU0lfQ250bF9wb3J0KTsKQEAgLTEyNzYsNiArMTI2OSw4IEBACiAJb3V0YigwLCBTQ1NJX01vZGVfQ250bF9wb3J0KTsKIAlvdXRiKFBBUklUWV9NQVNLLCBUTUNfQ250bF9wb3J0KTsKIAorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hwbnQtPmhvc3RfbG9jaywgZmxhZ3MpOworCiAJLyogVW5sZXNzIHRoaXMgaXMgdGhlIHZlcnkgZmlyc3QgY2FsbCAoaS5lLiwgU0NQbnQgPT0gTlVMTCksIGV2ZXJ5dGhpbmcKIAkgICBpcyBwcm9iYWJseSBob3NlZCBhdCB0aGlzIHBvaW50LiAgV2Ugd2lsbCwgaG93ZXZlciwgdHJ5IHRvIGtlZXAKIAkgICB0aGluZ3MgZ29pbmcgYnkgaW5mb3JtaW5nIHRoZSBoaWdoLWxldmVsIGNvZGUgdGhhdCB3ZSBuZWVkIGhlbHAuICovCkBAIC0xMzU3LDggKzEzNTIsNiBAQAogCS5xdWV1ZWNvbW1hbmQgICAJCT0gZmRfbWNzX3F1ZXVlLCAKIAkuZWhfYWJvcnRfaGFuZGxlcgkJPSBmZF9tY3NfYWJvcnQsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCQk9IGZkX21jc19idXNfcmVzZXQsCi0JLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgkJPSBmZF9tY3NfaG9zdF9yZXNldCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIJPSBmZF9tY3NfZGV2aWNlX3Jlc2V0LAogCS5iaW9zX3BhcmFtICAgICAJCT0gZmRfbWNzX2Jpb3NwYXJhbSwKIAkuY2FuX3F1ZXVlICAgICAgCQk9IDEsCiAJLnRoaXNfaWQgICAgICAgIAkJPSA3LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2Zkb21haW4uYyBiL2RyaXZlcnMvc2NzaS9mZG9tYWluLmMKaW5kZXggYTg0M2MwOC4uNGJhNmExNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2Zkb21haW4uYworKysgYi9kcml2ZXJzL3Njc2kvZmRvbWFpbi5jCkBAIC0xNTQzLDEyICsxNTQzLDE4IEBACiAKIGludCBmZG9tYWluXzE2eDBfYnVzX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQogeworICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKworICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCiAgICBvdXRiKDEsIHBvcnRfYmFzZSArIFNDU0lfQ250bCk7CiAgICBkb19wYXVzZSggMiApOwogICAgb3V0YigwLCBwb3J0X2Jhc2UgKyBTQ1NJX0NudGwpOwogICAgZG9fcGF1c2UoIDExNSApOwogICAgb3V0YigwLCBwb3J0X2Jhc2UgKyBTQ1NJX01vZGVfQ250bCk7CiAgICBvdXRiKFBBUklUWV9NQVNLLCBwb3J0X2Jhc2UgKyBUTUNfQ250bCk7CisKKyAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKICAgIHJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZ19OQ1I1MzgwLmMgYi9kcml2ZXJzL3Njc2kvZ19OQ1I1MzgwLmMKaW5kZXggY2E5ZDViZC4uYTNhYTcyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2dfTkNSNTM4MC5jCisrKyBiL2RyaXZlcnMvc2NzaS9nX05DUjUzODAuYwpAQCAtOTA4LDggKzkwOCw2IEBACiAJLnF1ZXVlY29tbWFuZCAgIAk9IGdlbmVyaWNfTkNSNTM4MF9xdWV1ZV9jb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyCT0gZ2VuZXJpY19OQ1I1MzgwX2Fib3J0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlcgk9IGdlbmVyaWNfTkNSNTM4MF9idXNfcmVzZXQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyID0gZ2VuZXJpY19OQ1I1MzgwX2RldmljZV9yZXNldCwKLQkuZWhfaG9zdF9yZXNldF9oYW5kbGVyCT0gZ2VuZXJpY19OQ1I1MzgwX2hvc3RfcmVzZXQsCiAJLmJpb3NfcGFyYW0gICAgIAk9IE5DUjUzODBfQklPU1BBUkFNLAogCS5jYW5fcXVldWUgICAgICAJPSBDQU5fUVVFVUUsCiAgICAgICAgIC50aGlzX2lkICAgICAgICAJPSA3LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2dfTkNSNTM4MC5oIGIvZHJpdmVycy9zY3NpL2dfTkNSNTM4MC5oCmluZGV4IDBjMDRjZWYuLmM4YWRjNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9nX05DUjUzODAuaAorKysgYi9kcml2ZXJzL3Njc2kvZ19OQ1I1MzgwLmgKQEAgLTQ5LDggKzQ5LDYgQEAKIHN0YXRpYyBpbnQgZ2VuZXJpY19OQ1I1MzgwX3JlbGVhc2VfcmVzb3VyY2VzKHN0cnVjdCBTY3NpX0hvc3QgKik7CiBzdGF0aWMgaW50IGdlbmVyaWNfTkNSNTM4MF9xdWV1ZV9jb21tYW5kKFNjc2lfQ21uZCAqLCB2b2lkICgqZG9uZSkoU2NzaV9DbW5kICopKTsKIHN0YXRpYyBpbnQgZ2VuZXJpY19OQ1I1MzgwX2J1c19yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IGdlbmVyaWNfTkNSNTM4MF9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqKTsKLXN0YXRpYyBpbnQgZ2VuZXJpY19OQ1I1MzgwX2RldmljZV9yZXNldChTY3NpX0NtbmQgKik7CiBzdGF0aWMgY29uc3QgY2hhciogZ2VuZXJpY19OQ1I1MzgwX2luZm8oc3RydWN0IFNjc2lfSG9zdCAqKTsKIAogI2lmbmRlZiBDTURfUEVSX0xVTgpAQCAtMTE0LDggKzExMiw2IEBACiAjZGVmaW5lIE5DUjUzODBfcXVldWVfY29tbWFuZCBnZW5lcmljX05DUjUzODBfcXVldWVfY29tbWFuZAogI2RlZmluZSBOQ1I1MzgwX2Fib3J0IGdlbmVyaWNfTkNSNTM4MF9hYm9ydAogI2RlZmluZSBOQ1I1MzgwX2J1c19yZXNldCBnZW5lcmljX05DUjUzODBfYnVzX3Jlc2V0Ci0jZGVmaW5lIE5DUjUzODBfZGV2aWNlX3Jlc2V0IGdlbmVyaWNfTkNSNTM4MF9kZXZpY2VfcmVzZXQKLSNkZWZpbmUgTkNSNTM4MF9ob3N0X3Jlc2V0IGdlbmVyaWNfTkNSNTM4MF9ob3N0X3Jlc2V0CiAjZGVmaW5lIE5DUjUzODBfcHJlYWQgZ2VuZXJpY19OQ1I1MzgwX3ByZWFkCiAjZGVmaW5lIE5DUjUzODBfcHdyaXRlIGdlbmVyaWNfTkNSNTM4MF9wd3JpdGUKICNkZWZpbmUgTkNSNTM4MF9wcm9jX2luZm8gbm90eWV0X2dlbmVyaWNfcHJvY19pbmZvCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZ2R0aC5jIGIvZHJpdmVycy9zY3NpL2dkdGguYwppbmRleCBhOWVhYWI5Li40NTUyY2NjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZ2R0aC5jCisrKyBiL2RyaXZlcnMvc2NzaS9nZHRoLmMKQEAgLTQ3MDMsMTkgKzQ3MDMsNiBAQAogICAgIHJldHVybiAoKGNvbnN0IGNoYXIgKiloYS0+YmluZm8udHlwZV9zdHJpbmcpOwogfQogCi0vKiBuZXcgZXJyb3IgaGFuZGxpbmcgKi8KLXN0YXRpYyBpbnQgZ2R0aF9laF9hYm9ydChTY3NpX0NtbmQgKnNjcCkKLXsKLSAgICBUUkFDRTIoKCJnZHRoX2VoX2Fib3J0KClcbiIpKTsKLSAgICByZXR1cm4gRkFJTEVEOwotfQotCi1zdGF0aWMgaW50IGdkdGhfZWhfZGV2aWNlX3Jlc2V0KFNjc2lfQ21uZCAqc2NwKQotewotICAgIFRSQUNFMigoImdkdGhfZWhfZGV2aWNlX3Jlc2V0KClcbiIpKTsKLSAgICByZXR1cm4gRkFJTEVEOwotfQotCiBzdGF0aWMgaW50IGdkdGhfZWhfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqc2NwKQogewogICAgIGludCBpLCBoYW51bTsKQEAgLTQ3NzAsMTMgKzQ3NTcsNiBAQAogICAgIHJldHVybiBTVUNDRVNTOwogfQogCi1zdGF0aWMgaW50IGdkdGhfZWhfaG9zdF9yZXNldChTY3NpX0NtbmQgKnNjcCkKLXsKLSAgICBUUkFDRTIoKCJnZHRoX2VoX2hvc3RfcmVzZXQoKVxuIikpOwotICAgIHJldHVybiBGQUlMRUQ7Ci19Ci0KLQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMCkKIHN0YXRpYyBpbnQgZ2R0aF9iaW9zX3BhcmFtKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldixzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LHNlY3Rvcl90IGNhcCxpbnQgKmlwKQogI2Vsc2UKQEAgLTU3MTMsMTAgKzU2OTMsNyBAQAogICAgICAgICAucmVsZWFzZSAgICAgICAgICAgICAgICA9IGdkdGhfcmVsZWFzZSwKICAgICAgICAgLmluZm8gICAgICAgICAgICAgICAgICAgPSBnZHRoX2luZm8sIAogICAgICAgICAucXVldWVjb21tYW5kICAgICAgICAgICA9IGdkdGhfcXVldWVjb21tYW5kLAotICAgICAgICAuZWhfYWJvcnRfaGFuZGxlciAgICAgICA9IGdkdGhfZWhfYWJvcnQsIAotICAgICAgICAuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBnZHRoX2VoX2RldmljZV9yZXNldCwKICAgICAgICAgLmVoX2J1c19yZXNldF9oYW5kbGVyICAgPSBnZHRoX2VoX2J1c19yZXNldCwKLSAgICAgICAgLmVoX2hvc3RfcmVzZXRfaGFuZGxlciAgPSBnZHRoX2VoX2hvc3RfcmVzZXQsCiAgICAgICAgIC5iaW9zX3BhcmFtICAgICAgICAgICAgID0gZ2R0aF9iaW9zX3BhcmFtLAogICAgICAgICAuY2FuX3F1ZXVlICAgICAgICAgICAgICA9IEdEVEhfTUFYQ01EUywKICAgICAgICAgLnRoaXNfaWQgICAgICAgICAgICAgICAgPSAtMSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9ndnAxMS5jIGIvZHJpdmVycy9zY3NpL2d2cDExLmMKaW5kZXggMzBjYmY3My4uZDEyMzQyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2d2cDExLmMKKysrIGIvZHJpdmVycy9zY3NpL2d2cDExLmMKQEAgLTM0NSw3ICszNDUsMTUgQEAKIHN0YXRpYyBpbnQgZ3ZwMTFfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqY21kKQogewogCS8qIEZJWE1FIHBlcmZvcm0gYnVzLXNwZWNpZmljIHJlc2V0ICovCisKKwkvKiBGSVhNRSAyOiBzaG91bGRuJ3Qgd2Ugbm8tb3AgdGhpcyBmdW5jdGlvbiAocmV0dXJuCisJICAgRkFJTEVEKSwgYW5kIGZhbGwgYmFjayB0byBob3N0IHJlc2V0IGZ1bmN0aW9uLAorCSAgIHdkMzNjOTNfaG9zdF9yZXNldCA/ICovCisKKwlzcGluX2xvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXdkMzNjOTNfaG9zdF9yZXNldChjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaWJtbWNhLmMgYi9kcml2ZXJzL3Njc2kvaWJtbWNhLmMKaW5kZXggYTNmZGVhZC4uYjVkYzM1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2libW1jYS5jCisrKyBiL2RyaXZlcnMvc2NzaS9pYm1tY2EuYwpAQCAtMjExOCw3ICsyMTE4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpYm1tY2FfYWJvcnQoU2NzaV9DbW5kICogY21kKQorc3RhdGljIGludCBfX2libW1jYV9hYm9ydChTY3NpX0NtbmQgKiBjbWQpCiB7CiAJLyogQWJvcnQgZG9lcyBub3Qgd29yaywgYXMgdGhlIGFkYXB0ZXIgbmV2ZXIgZ2VuZXJhdGVzIGFuIGludGVycnVwdCBvbgogCSAqIHdoYXRldmVyIHNpdHVhdGlvbiBpcyBzaW11bGF0ZWQsIGV2ZW4gd2hlbiByZWFsbHkgcGVuZGluZyBjb21tYW5kcwpAQCAtMjIyNSw3ICsyMjI1LDE5IEBACiAJfQogfQogCi1zdGF0aWMgaW50IGlibW1jYV9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqIGNtZCkKK3N0YXRpYyBpbnQgaWJtbWNhX2Fib3J0KFNjc2lfQ21uZCAqIGNtZCkKK3sKKwlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaHBudCA9IGNtZC0+ZGV2aWNlLT5ob3N0OworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoc2hwbnQtPmhvc3RfbG9jayk7CisJcmMgPSBfX2libW1jYV9hYm9ydChjbWQpOworCXNwaW5fdW5sb2NrX2lycShzaHBudC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBfX2libW1jYV9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqIGNtZCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaHBudDsKIAlTY3NpX0NtbmQgKmNtZF9haWQ7CkBAIC0yMzEyLDYgKzIzMjQsMTggQEAKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIAorc3RhdGljIGludCBpYm1tY2FfaG9zdF9yZXNldChTY3NpX0NtbmQgKiBjbWQpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hwbnQgPSBjbWQtPmRldmljZS0+aG9zdDsKKwlpbnQgcmM7CisKKwlzcGluX2xvY2tfaXJxKHNocG50LT5ob3N0X2xvY2spOworCXJjID0gX19pYm1tY2FfaG9zdF9yZXNldChjbWQpOworCXNwaW5fdW5sb2NrX2lycShzaHBudC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKK30KKwogc3RhdGljIGludCBpYm1tY2FfYmlvc3BhcmFtKHN0cnVjdCBzY3NpX2RldmljZSAqc2Rldiwgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3QgY2FwYWNpdHksIGludCAqaW5mbykKIHsKIAlpbnQgc2l6ZSA9IGNhcGFjaXR5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3NpLmMgYi9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvaWJtdnNjc2kuYwppbmRleCBlODlmNzZlLi5kODliOGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvaWJtdnNjc2kuYworKysgYi9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvaWJtdnNjc2kuYwpAQCAtODc0LDkgKzg3NCw3IEBACiAJCXJldHVybiBGQUlMRUQ7CiAJfQogCi0Jc3Bpbl91bmxvY2tfaXJxKGhvc3RkYXRhLT5ob3N0LT5ob3N0X2xvY2spOwogCXdhaXRfZm9yX2NvbXBsZXRpb24oJmV2dC0+Y29tcCk7Ci0Jc3Bpbl9sb2NrX2lycShob3N0ZGF0YS0+aG9zdC0+aG9zdF9sb2NrKTsKIAogCS8qIG1ha2Ugc3VyZSB3ZSBnb3QgYSBnb29kIHJlc3BvbnNlICovCiAJaWYgKHVubGlrZWx5KHNycF9yc3Auc3JwLmdlbmVyaWMudHlwZSAhPSBTUlBfUlNQX1RZUEUpKSB7CkBAIC05NzgsOSArOTc2LDcgQEAKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKLQlzcGluX3VubG9ja19pcnEoaG9zdGRhdGEtPmhvc3QtPmhvc3RfbG9jayk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmZXZ0LT5jb21wKTsKLQlzcGluX2xvY2tfaXJxKGhvc3RkYXRhLT5ob3N0LT5ob3N0X2xvY2spOwogCiAJLyogbWFrZSBzdXJlIHdlIGdvdCBhIGdvb2QgcmVzcG9uc2UgKi8KIAlpZiAodW5saWtlbHkoc3JwX3JzcC5zcnAuZ2VuZXJpYy50eXBlICE9IFNSUF9SU1BfVFlQRSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pZGUtc2NzaS5jIGIvZHJpdmVycy9zY3NpL2lkZS1zY3NpLmMKaW5kZXggODNmMDYyZS4uM2Q2MmM5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2lkZS1zY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2lkZS1zY3NpLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvaWRlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2JpdG9wcy5oPgpAQCAtMTAyNiwxMSArMTAyNywxMyBAQAogCQlyZXR1cm4gRkFJTEVEOwogCX0KIAotCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCXNwaW5fbG9jaygmaWRlX2xvY2spOwogCiAJaWYgKCFzY3NpLT5wYyB8fCAocmVxID0gc2NzaS0+cGMtPnJxKSAhPSBIV0dST1VQKGRyaXZlKS0+cnEgfHwgIUhXR1JPVVAoZHJpdmUpLT5oYW5kbGVyKSB7CiAJCXByaW50ayAoS0VSTl9XQVJOSU5HICJpZGUtc2NzaTogTm8gYWN0aXZlIHJlcXVlc3QgaW4gaWRlc2NzaV9laF9yZXNldFxuIik7CiAJCXNwaW5fdW5sb2NrKCZpZGVfbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAkJcmV0dXJuIEZBSUxFRDsKIAl9CiAKQEAgLTEwNTIsMTYgKzEwNTUsMTUgQEAKIAlIV0dST1VQKGRyaXZlKS0+cnEgPSBOVUxMOwogCUhXR1JPVVAoZHJpdmUpLT5oYW5kbGVyID0gTlVMTDsKIAlIV0dST1VQKGRyaXZlKS0+YnVzeSA9IDE7CQkvKiB3aWxsIHNldCB0aGlzIHRvIHplcm8gd2hlbiBpZGUgcmVzZXQgZmluaXNoZWQgKi8KLQlzcGluX3VubG9ja19pcnEoJmlkZV9sb2NrKTsKKwlzcGluX3VubG9jaygmaWRlX2xvY2spOwogCiAJaWRlX2RvX3Jlc2V0KGRyaXZlKTsKIAogCS8qIGlkZV9kb19yZXNldCBzdGFydHMgYSBwb2xsaW5nIGhhbmRsZXIgd2hpY2ggcmVzdGFydHMgaXRzZWxmIGV2ZXJ5IDUwbXMgdW50aWwgdGhlIHJlc2V0IGZpbmlzaGVzICovCiAKIAlkbyB7Ci0JCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKIAkJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwotCQlzY2hlZHVsZV90aW1lb3V0KEhaLzIwKTsKKwkJbXNsZWVwKDUwKTsKIAkJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAl9IHdoaWxlICggSFdHUk9VUChkcml2ZSktPmhhbmRsZXIgKTsKIApAQCAtMTA3Miw2ICsxMDc0LDcgQEAKIAkJcmV0ID0gRkFJTEVEOwogCX0KIAorCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaW1tLmMgYi9kcml2ZXJzL3Njc2kvaW1tLmMKaW5kZXggYmU3ZjJjYS4uNjVlODQ1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2ltbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9pbW0uYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3BhcnBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CkBAIC02MTAsOSArNjExLDkgQEAKIAlpZiAoaW1tX2Nvbm5lY3QoZGV2LCAwKSAhPSAxKQogCQlyZXR1cm4gLUVJTzsKIAlpbW1fcmVzZXRfcHVsc2UoZGV2LT5iYXNlKTsKLQl1ZGVsYXkoMTAwMCk7CS8qIERlbGF5IHRvIGFsbG93IGRldmljZXMgdG8gc2V0dGxlICovCisJbWRlbGF5KDEpOwkvKiBEZWxheSB0byBhbGxvdyBkZXZpY2VzIHRvIHNldHRsZSAqLwogCWltbV9kaXNjb25uZWN0KGRldik7Ci0JdWRlbGF5KDEwMDApOwkvKiBBbm90aGVyIGRlbGF5IHRvIGFsbG93IGRldmljZXMgdG8gc2V0dGxlICovCisJbWRlbGF5KDEpOwkvKiBBbm90aGVyIGRlbGF5IHRvIGFsbG93IGRldmljZXMgdG8gc2V0dGxlICovCiAJcmV0dXJuIGRldmljZV9jaGVjayhkZXYpOwogfQogCkBAIC0xMDI2LDkgKzEwMjcsOSBAQAogCiAJaW1tX2Nvbm5lY3QoZGV2LCBDT05ORUNUX05PUk1BTCk7CiAJaW1tX3Jlc2V0X3B1bHNlKGRldi0+YmFzZSk7Ci0JdWRlbGF5KDEwMDApOwkJLyogZGV2aWNlIHNldHRsZSBkZWxheSAqLworCW1kZWxheSgxKTsJCS8qIGRldmljZSBzZXR0bGUgZGVsYXkgKi8KIAlpbW1fZGlzY29ubmVjdChkZXYpOwotCXVkZWxheSgxMDAwKTsJCS8qIGRldmljZSBzZXR0bGUgZGVsYXkgKi8KKwltZGVsYXkoMSk7CQkvKiBkZXZpY2Ugc2V0dGxlIGRlbGF5ICovCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pbjIwMDAuYyBiL2RyaXZlcnMvc2NzaS9pbjIwMDAuYwppbmRleCAwYmIwMzY5Li5hZWQ3ZTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaW4yMDAwLmMKKysrIGIvZHJpdmVycy9zY3NpL2luMjAwMC5jCkBAIC0xNjQ0LDE0ICsxNjQ0LDE2IEBACiAJc3RydWN0IFNjc2lfSG9zdCAqaW5zdGFuY2U7CiAJc3RydWN0IElOMjAwMF9ob3N0ZGF0YSAqaG9zdGRhdGE7CiAJaW50IHg7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWluc3RhbmNlID0gY21kLT5kZXZpY2UtPmhvc3Q7CiAJaG9zdGRhdGEgPSAoc3RydWN0IElOMjAwMF9ob3N0ZGF0YSAqKSBpbnN0YW5jZS0+aG9zdGRhdGE7CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJzY3NpJWQ6IFJlc2V0LiAiLCBpbnN0YW5jZS0+aG9zdF9ubyk7CiAKLQkvKiBkbyBzY3NpLXJlc2V0IGhlcmUgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZShpbnN0YW5jZS0+aG9zdF9sb2NrLCBmbGFncyk7CiAKKwkvKiBkbyBzY3NpLXJlc2V0IGhlcmUgKi8KIAlyZXNldF9oYXJkd2FyZShpbnN0YW5jZSwgUkVTRVRfQ0FSRF9BTkRfQlVTKTsKIAlmb3IgKHggPSAwOyB4IDwgODsgeCsrKSB7CiAJCWhvc3RkYXRhLT5idXN5W3hdID0gMDsKQEAgLTE2NjgsMjEgKzE2NzAsMTIgQEAKIAlob3N0ZGF0YS0+b3V0Z29pbmdfbGVuID0gMDsKIAogCWNtZC0+cmVzdWx0ID0gRElEX1JFU0VUIDw8IDE2OworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShpbnN0YW5jZS0+aG9zdF9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKLXN0YXRpYyBpbnQgaW4yMDAwX2hvc3RfcmVzZXQoU2NzaV9DbW5kICogY21kKQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KLXN0YXRpYyBpbnQgaW4yMDAwX2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBjbWQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQotCi1zdGF0aWMgaW50IGluMjAwMF9hYm9ydChTY3NpX0NtbmQgKiBjbWQpCitzdGF0aWMgaW50IF9faW4yMDAwX2Fib3J0KFNjc2lfQ21uZCAqIGNtZCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICppbnN0YW5jZTsKIAlzdHJ1Y3QgSU4yMDAwX2hvc3RkYXRhICpob3N0ZGF0YTsKQEAgLTE4MDMsNiArMTc5NiwxNiBAQAogCXJldHVybiBTVUNDRVNTOwogfQogCitzdGF0aWMgaW50IGluMjAwMF9hYm9ydChTY3NpX0NtbmQgKiBjbWQpCit7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9faW4yMDAwX2Fib3J0KGNtZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCisJcmV0dXJuIHJjOworfQogCiAKICNkZWZpbmUgTUFYX0lOMjAwMF9IT1NUUyAzCkBAIC0yMzExLDggKzIzMTQsNiBAQAogCS5xdWV1ZWNvbW1hbmQgICAgCQk9IGluMjAwMF9xdWV1ZWNvbW1hbmQsCiAJLmVoX2Fib3J0X2hhbmRsZXIJCT0gaW4yMDAwX2Fib3J0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlcgkJPSBpbjIwMDBfYnVzX3Jlc2V0LAotCS5laF9kZXZpY2VfcmVzZXRfaGFuZGxlcgk9IGluMjAwMF9kZXZpY2VfcmVzZXQsCi0JLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgk9IGluMjAwMF9ob3N0X3Jlc2V0LCAKIAkuYmlvc19wYXJhbSAgICAgIAkJPSBpbjIwMDBfYmlvc3BhcmFtLCAKIAkuY2FuX3F1ZXVlICAgICAgIAkJPSBJTjIwMDBfQ0FOX1EsCiAJLnRoaXNfaWQgICAgICAgICAJCT0gSU4yMDAwX0hPU1RfSUQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaW4yMDAwLmggYi9kcml2ZXJzL3Njc2kvaW4yMDAwLmgKaW5kZXggMDE5ZTQ1ZC4uYTI0MGI1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2luMjAwMC5oCisrKyBiL2RyaXZlcnMvc2NzaS9pbjIwMDAuaApAQCAtNDAxLDkgKzQwMSw3IEBACiBzdGF0aWMgdm9pZCBpbjIwMDBfc2V0dXAoY2hhciAqLCBpbnQgKikgaW4yMDAwX19JTklUOwogc3RhdGljIGludCBpbjIwMDBfYmlvc3BhcmFtKHN0cnVjdCBzY3NpX2RldmljZSAqLCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICosCiAJCXNlY3Rvcl90LCBpbnQgKik7Ci1zdGF0aWMgaW50IGluMjAwMF9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqKTsKIHN0YXRpYyBpbnQgaW4yMDAwX2J1c19yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IGluMjAwMF9kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICopOwogCiAKICNkZWZpbmUgSU4yMDAwX0NBTl9RICAgIDE2CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaW5pdGlvLmMgYi9kcml2ZXJzL3Njc2kvaW5pdGlvLmMKaW5kZXggYTdiNzRkOC4uZjdkZGM5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2luaXRpby5jCisrKyBiL2RyaXZlcnMvc2NzaS9pbml0aW8uYwpAQCAtMzAxNCw3ICszMDE0LDExIEBACiAJSENTICpwSENCOwogCiAJcEhDQiA9IChIQ1MgKikgU0NwbnQtPmRldmljZS0+aG9zdC0+YmFzZTsKKworCXNwaW5fbG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAl0dWxfcmVzZXRfc2NzaShwSENCLCAwKTsKKwlzcGluX3VubG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaXByLmMgYi9kcml2ZXJzL3Njc2kvaXByLmMKaW5kZXggNTQ0MTUzMS4uMTdiMTA2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2lwci5jCisrKyBiL2RyaXZlcnMvc2NzaS9pcHIuYwpAQCAtMTA1Myw3ICsxMDUzLDcgQEAKIAkJCQlhcnJheV9lbnRyeS0+ZGV2X3Jlc19hZGRyLmx1bik7CiAJCX0KIAotCQlpZiAoYXJyYXlfZW50cnktPmRldl9yZXNfYWRkci5idXMgPj0gSVBSX01BWF9OVU1fQlVTRVMpIHsKKwkJaWYgKGFycmF5X2VudHJ5LT5leHBlY3RlZF9kZXZfcmVzX2FkZHIuYnVzID49IElQUl9NQVhfTlVNX0JVU0VTKSB7CiAJCQlpcHJfZXJyKCJFeHBlY3RlZCBMb2NhdGlvbjogdW5rbm93blxuIik7CiAJCX0gZWxzZSB7CiAJCQlpcHJfZXJyKCJFeHBlY3RlZCBMb2NhdGlvbjogJWQ6JWQ6JWQ6JWRcbiIsCkBAIC0yODg1LDcgKzI4ODUsNyBAQAogICogUmV0dXJuIHZhbHVlOgogICogCVNVQ0NFU1MgLyBGQUlMRUQKICAqKi8KLXN0YXRpYyBpbnQgaXByX2VoX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqIHNjc2lfY21kKQorc3RhdGljIGludCBfX2lwcl9laF9ob3N0X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKiBzY3NpX2NtZCkKIHsKIAlzdHJ1Y3QgaXByX2lvYV9jZmcgKmlvYV9jZmc7CiAJaW50IHJjOwpAQCAtMjkwNSw2ICsyOTA1LDE3IEBACiAJcmV0dXJuIHJjOwogfQogCitzdGF0aWMgaW50IGlwcl9laF9ob3N0X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKiBjbWQpCit7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9faXByX2VoX2hvc3RfcmVzZXQoY21kKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7Cit9CisKIC8qKgogICogaXByX2VoX2Rldl9yZXNldCAtIFJlc2V0IHRoZSBkZXZpY2UKICAqIEBzY3NpX2NtZDoJc2NzaSBjb21tYW5kIHN0cnVjdApAQCAtMjkxNiw3ICsyOTI3LDcgQEAKICAqIFJldHVybiB2YWx1ZToKICAqCVNVQ0NFU1MgLyBGQUlMRUQKICAqKi8KLXN0YXRpYyBpbnQgaXByX2VoX2Rldl9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogc2NzaV9jbWQpCitzdGF0aWMgaW50IF9faXByX2VoX2Rldl9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICogc2NzaV9jbWQpCiB7CiAJc3RydWN0IGlwcl9jbW5kICppcHJfY21kOwogCXN0cnVjdCBpcHJfaW9hX2NmZyAqaW9hX2NmZzsKQEAgLTI5NzAsNiArMjk4MSwxNyBAQAogCXJldHVybiAoSVBSX0lPQVNDX1NFTlNFX0tFWShpb2FzYykgPyBGQUlMRUQgOiBTVUNDRVNTKTsKIH0KIAorc3RhdGljIGludCBpcHJfZWhfZGV2X3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKiBjbWQpCit7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9faXByX2VoX2Rldl9yZXNldChjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKK30KKwogLyoqCiAgKiBpcHJfYnVzX3Jlc2V0X2RvbmUgLSBPcCBkb25lIGZ1bmN0aW9uIGZvciBidXMgcmVzZXQuCiAgKiBAaXByX2NtZDoJaXByIGNvbW1hbmQgc3RydWN0CkBAIC0zMDY4LDYgKzMwOTAsMTIgQEAKIAlpb2FfY2ZnID0gKHN0cnVjdCBpcHJfaW9hX2NmZyAqKXNjc2lfY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCXJlcyA9IHNjc2lfY21kLT5kZXZpY2UtPmhvc3RkYXRhOwogCisJLyogSWYgd2UgYXJlIGN1cnJlbnRseSBnb2luZyB0aHJvdWdoIHJlc2V0L3JlbG9hZCwgcmV0dXJuIGZhaWxlZC4KKwkgKiBUaGlzIHdpbGwgZm9yY2UgdGhlIG1pZC1sYXllciB0byBjYWxsIGlwcl9laF9ob3N0X3Jlc2V0LAorCSAqIHdoaWNoIHdpbGwgdGhlbiBnbyB0byBzbGVlcCBhbmQgd2FpdCBmb3IgdGhlIHJlc2V0IHRvIGNvbXBsZXRlCisJICovCisJaWYgKGlvYV9jZmctPmluX3Jlc2V0X3JlbG9hZCB8fCBpb2FfY2ZnLT5pb2FfaXNfZGVhZCkKKwkJcmV0dXJuIEZBSUxFRDsKIAlpZiAoIXJlcyB8fCAoIWlwcl9pc19nc2NzaShyZXMpICYmICFpcHJfaXNfdnNldF9kZXZpY2UocmVzKSkpCiAJCXJldHVybiBGQUlMRUQ7CiAKQEAgLTMxMTgsMjMgKzMxNDYsMTcgQEAKICAqKi8KIHN0YXRpYyBpbnQgaXByX2VoX2Fib3J0KHN0cnVjdCBzY3NpX2NtbmQgKiBzY3NpX2NtZCkKIHsKLQlzdHJ1Y3QgaXByX2lvYV9jZmcgKmlvYV9jZmc7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmM7CiAKIAlFTlRFUjsKLQlpb2FfY2ZnID0gKHN0cnVjdCBpcHJfaW9hX2NmZyAqKSBzY3NpX2NtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKIAotCS8qIElmIHdlIGFyZSBjdXJyZW50bHkgZ29pbmcgdGhyb3VnaCByZXNldC9yZWxvYWQsIHJldHVybiBmYWlsZWQuIFRoaXMgd2lsbCBmb3JjZSB0aGUKLQkgICBtaWQtbGF5ZXIgdG8gY2FsbCBpcHJfZWhfaG9zdF9yZXNldCwgd2hpY2ggd2lsbCB0aGVuIGdvIHRvIHNsZWVwIGFuZCB3YWl0IGZvciB0aGUKLQkgICByZXNldCB0byBjb21wbGV0ZSAqLwotCWlmIChpb2FfY2ZnLT5pbl9yZXNldF9yZWxvYWQpCi0JCXJldHVybiBGQUlMRUQ7Ci0JaWYgKGlvYV9jZmctPmlvYV9pc19kZWFkKQotCQlyZXR1cm4gRkFJTEVEOwotCWlmICghc2NzaV9jbWQtPmRldmljZS0+aG9zdGRhdGEpCi0JCXJldHVybiBGQUlMRUQ7CisJc3Bpbl9sb2NrX2lycXNhdmUoc2NzaV9jbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CisJcmMgPSBpcHJfY2FuY2VsX29wKHNjc2lfY21kKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjc2lfY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCiAJTEVBVkU7Ci0JcmV0dXJuIGlwcl9jYW5jZWxfb3Aoc2NzaV9jbWQpOworCXJldHVybiByYzsKIH0KIAogLyoqCkBAIC01ODg2LDYgKzU5MDgsNyBAQAogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShpb2FfY2ZnLT5ob3N0LT5ob3N0X2xvY2ssIGhvc3RfbG9ja19mbGFncyk7CiAJd2FpdF9ldmVudChpb2FfY2ZnLT5yZXNldF93YWl0X3EsICFpb2FfY2ZnLT5pbl9yZXNldF9yZWxvYWQpOworCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoaW9hX2NmZy0+aG9zdC0+aG9zdF9sb2NrLCBob3N0X2xvY2tfZmxhZ3MpOwogCiAJc3Bpbl9sb2NrKCZpcHJfZHJpdmVyX2xvY2spOwpAQCAtNTkxNiw4ICs1OTM5LDYgQEAKIAogCUVOVEVSOwogCi0JaW9hX2NmZy0+YWxsb3dfY21kcyA9IDA7Ci0JZmx1c2hfc2NoZWR1bGVkX3dvcmsoKTsKIAlpcHJfcmVtb3ZlX3RyYWNlX2ZpbGUoJmlvYV9jZmctPmhvc3QtPnNob3N0X2NsYXNzZGV2LmtvYmosCiAJCQkgICAgICAmaXByX3RyYWNlX2F0dHIpOwogCWlwcl9yZW1vdmVfZHVtcF9maWxlKCZpb2FfY2ZnLT5ob3N0LT5zaG9zdF9jbGFzc2Rldi5rb2JqLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2lwci5oIGIvZHJpdmVycy9zY3NpL2lwci5oCmluZGV4IDQ0NmY0MjUuLmNiZmYzZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9pcHIuaAorKysgYi9kcml2ZXJzL3Njc2kvaXByLmgKQEAgLTM2LDggKzM2LDggQEAKIC8qCiAgKiBMaXRlcmFscwogICovCi0jZGVmaW5lIElQUl9EUklWRVJfVkVSU0lPTiAiMi4wLjEzIgotI2RlZmluZSBJUFJfRFJJVkVSX0RBVEUgIihGZWJydWFyeSAyMSwgMjAwNSkiCisjZGVmaW5lIElQUl9EUklWRVJfVkVSU0lPTiAiMi4wLjE0IgorI2RlZmluZSBJUFJfRFJJVkVSX0RBVEUgIihNYXkgMiwgMjAwNSkiCiAKIC8qCiAgKiBJUFJfREJHX1RSQUNFOiBTZXR0aW5nIHRoaXMgdG8gMSB3aWxsIHR1cm4gb24gc29tZSBnZW5lcmFsIGZ1bmN0aW9uIHRyYWNpbmcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pcHMuYyBiL2RyaXZlcnMvc2NzaS9pcHMuYwppbmRleCBmYmMyY2I2Li42ZGZjYjRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaXBzLmMKKysrIGIvZHJpdmVycy9zY3NpL2lwcy5jCkBAIC04MTksMTIgKzgxOSwxNSBAQAogCWlwc19oYV90ICpoYTsKIAlpcHNfY29wcF93YWl0X2l0ZW1fdCAqaXRlbTsKIAlpbnQgcmV0OworCXVuc2lnbmVkIGxvbmcgY3B1X2ZsYWdzOworCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q7CiAKIAlNRVRIT0RfVFJBQ0UoImlwc19laF9hYm9ydCIsIDEpOwogCiAJaWYgKCFTQykKIAkJcmV0dXJuIChGQUlMRUQpOwogCisJaG9zdCA9IFNDLT5kZXZpY2UtPmhvc3Q7CiAJaGEgPSAoaXBzX2hhX3QgKikgU0MtPmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CiAKIAlpZiAoIWhhKQpAQCAtODMzLDYgKzgzNiw4IEBACiAJaWYgKCFoYS0+YWN0aXZlKQogCQlyZXR1cm4gKEZBSUxFRCk7CiAKKwlJUFNfTE9DS19TQVZFKGhvc3QtPmhvc3RfbG9jaywgY3B1X2ZsYWdzKTsKKwogCS8qIFNlZSBpZiB0aGUgY29tbWFuZCBpcyBvbiB0aGUgY29wcCBxdWV1ZSAqLwogCWl0ZW0gPSBoYS0+Y29wcF93YWl0bGlzdC5oZWFkOwogCXdoaWxlICgoaXRlbSkgJiYgKGl0ZW0tPnNjc2lfY21kICE9IFNDKSkKQEAgLTg1MSw2ICs4NTYsOCBAQAogCQkvKiBjb21tYW5kIG11c3QgaGF2ZSBhbHJlYWR5IGJlZW4gc2VudCAqLwogCQlyZXQgPSAoRkFJTEVEKTsKIAl9CisKKwlJUFNfVU5MT0NLX1JFU1RPUkUoaG9zdC0+aG9zdF9sb2NrLCBjcHVfZmxhZ3MpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTg2Niw3ICs4NzMsNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBpbnQKLWlwc19laF9yZXNldChTY3NpX0NtbmQgKiBTQykKK19faXBzX2VoX3Jlc2V0KFNjc2lfQ21uZCAqIFNDKQogewogCWludCByZXQ7CiAJaW50IGk7CkBAIC0xMDUzLDYgKzEwNjAsMTggQEAKIAogfQogCitzdGF0aWMgaW50CitpcHNfZWhfcmVzZXQoU2NzaV9DbW5kICogU0MpCit7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShTQy0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCXJjID0gX19pcHNfZWhfcmVzZXQoU0MpOworCXNwaW5fdW5sb2NrX2lycShTQy0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCisJcmV0dXJuIHJjOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogUm91dGluZSBOYW1lOiBpcHNfcXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbGliYXRhLWNvcmUuYyBiL2RyaXZlcnMvc2NzaS9saWJhdGEtY29yZS5jCmluZGV4IDIxZDE5NGMuLjllNThmMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9saWJhdGEtY29yZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9saWJhdGEtY29yZS5jCkBAIC0yNTc3LDcgKzI1NzcsNiBAQAogbmV4dF9zZzoKIAlzZyA9ICZxYy0+c2dbcWMtPmN1cnNnXTsKIAotbmV4dF9wYWdlOgogCXBhZ2UgPSBzZy0+cGFnZTsKIAlvZmZzZXQgPSBzZy0+b2Zmc2V0ICsgcWMtPmN1cnNnX29mczsKIApAQCAtMjU4NSw2ICsyNTg0LDcgQEAKIAlwYWdlID0gbnRoX3BhZ2UocGFnZSwgKG9mZnNldCA+PiBQQUdFX1NISUZUKSk7CiAJb2Zmc2V0ICU9IFBBR0VfU0laRTsKIAorCS8qIGRvbid0IG92ZXJydW4gY3VycmVudCBzZyAqLwogCWNvdW50ID0gbWluKHNnLT5sZW5ndGggLSBxYy0+Y3Vyc2dfb2ZzLCBieXRlcyk7CiAKIAkvKiBkb24ndCBjcm9zcyBwYWdlIGJvdW5kYXJpZXMgKi8KQEAgLTI2MDksOCArMjYwOSw2IEBACiAJa3VubWFwKHBhZ2UpOwogCiAJaWYgKGJ5dGVzKSB7Ci0JCWlmIChxYy0+Y3Vyc2dfb2ZzIDwgc2ctPmxlbmd0aCkKLQkJCWdvdG8gbmV4dF9wYWdlOwogCQlnb3RvIG5leHRfc2c7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zY3NpLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYwppbmRleCA0MmZhYjAzLi5mMmFmZjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYworKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYwpAQCAtNzk4LDcgKzc5OCw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLWxwZmNfYWJvcnRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQorX19scGZjX2Fib3J0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIHsKIAlzdHJ1Y3QgbHBmY19oYmEgKnBoYmEgPQogCQkJKHN0cnVjdCBscGZjX2hiYSAqKWNtbmQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGFbMF07CkBAIC05MTgsNyArOTE4LDE3IEBACiB9CiAKIHN0YXRpYyBpbnQKLWxwZmNfcmVzZXRfbHVuX2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKK2xwZmNfYWJvcnRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQoreworCWludCByYzsKKwlzcGluX2xvY2tfaXJxKGNtbmQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9fbHBmY19hYm9ydF9oYW5kbGVyKGNtbmQpOworCXNwaW5fdW5sb2NrX2lycShjbW5kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50CitfX2xwZmNfcmVzZXRfbHVuX2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGNtbmQtPmRldmljZS0+aG9zdDsKIAlzdHJ1Y3QgbHBmY19oYmEgKnBoYmEgPSAoc3RydWN0IGxwZmNfaGJhICopc2hvc3QtPmhvc3RkYXRhWzBdOwpAQCAtMTAzMCwxMSArMTA0MCwyMSBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQKK2xwZmNfcmVzZXRfbHVuX2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKK3sKKwlpbnQgcmM7CisJc3Bpbl9sb2NrX2lycShjbW5kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBfX2xwZmNfcmVzZXRfbHVuX2hhbmRsZXIoY21uZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtbmQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyZXR1cm4gcmM7Cit9CisKIC8qCiAgKiBOb3RlOiBtaWRsYXllciBjYWxscyB0aGlzIGZ1bmN0aW9uIHdpdGggdGhlIGhvc3RfbG9jayBoZWxkCiAgKi8KIHN0YXRpYyBpbnQKLWxwZmNfcmVzZXRfYnVzX2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21uZCkKK19fbHBmY19yZXNldF9idXNfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQogewogCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gY21uZC0+ZGV2aWNlLT5ob3N0OwogCXN0cnVjdCBscGZjX2hiYSAqcGhiYSA9IChzdHJ1Y3QgbHBmY19oYmEgKilzaG9zdC0+aG9zdGRhdGFbMF07CkBAIC0xMTI0LDYgKzExNDQsMTYgQEAKIH0KIAogc3RhdGljIGludAorbHBmY19yZXNldF9idXNfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQoreworCWludCByYzsKKwlzcGluX2xvY2tfaXJxKGNtbmQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IF9fbHBmY19yZXNldF9idXNfaGFuZGxlcihjbW5kKTsKKwlzcGluX3VubG9ja19pcnEoY21uZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludAogbHBmY19zbGF2ZV9hbGxvYyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYpCiB7CiAJc3RydWN0IGxwZmNfaGJhICpwaGJhID0gKHN0cnVjdCBscGZjX2hiYSAqKXNkZXYtPmhvc3QtPmhvc3RkYXRhWzBdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21hYzUzYzk0LmMgYi9kcml2ZXJzL3Njc2kvbWFjNTNjOTQuYwppbmRleCAzZWYyYTE0Li5lZGQ0N2QxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWFjNTNjOTQuYworKysgYi9kcml2ZXJzL3Njc2kvbWFjNTNjOTQuYwpAQCAtOTgsMTYgKzk4LDE0IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWFjNTNjOTRfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqY21kKQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgbWFjNTNjOTRfaG9zdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCiB7CiAJc3RydWN0IGZzY19zdGF0ZSAqc3RhdGUgPSAoc3RydWN0IGZzY19zdGF0ZSAqKSBjbWQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CiAJc3RydWN0IG1hYzUzYzk0X3JlZ3MgX19pb21lbSAqcmVncyA9IHN0YXRlLT5yZWdzOwogCXN0cnVjdCBkYmRtYV9yZWdzIF9faW9tZW0gKmRtYSA9IHN0YXRlLT5kbWE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAogCXdyaXRlbCgoUlVOfFBBVVNFfEZMVVNIfFdBS0UpIDw8IDE2LCAmZG1hLT5jb250cm9sKTsKIAl3cml0ZWIoQ01EX1NDU0lfUkVTRVQsICZyZWdzLT5jb21tYW5kKTsJLyogYXNzZXJ0IFJTVCAqLwpAQCAtMTE2LDYgKzExNCw4IEBACiAJdWRlbGF5KDIwKTsKIAltYWM1M2M5NF9pbml0KHN0YXRlKTsKIAl3cml0ZWIoQ01EX05PUCwgJnJlZ3MtPmNvbW1hbmQpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKQEAgLTQxNiw3ICs0MTYsNiBAQAogCS5wcm9jX25hbWUJPSAiNTNjOTQiLAogCS5uYW1lCQk9ICI1M0M5NCIsCiAJLnF1ZXVlY29tbWFuZAk9IG1hYzUzYzk0X3F1ZXVlLAotCS5laF9hYm9ydF9oYW5kbGVyID0gbWFjNTNjOTRfYWJvcnQsCiAJLmVoX2hvc3RfcmVzZXRfaGFuZGxlciA9IG1hYzUzYzk0X2hvc3RfcmVzZXQsCiAJLmNhbl9xdWV1ZQk9IDEsCiAJLnRoaXNfaWQJPSA3LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21hY19zY3NpLmMgYi9kcml2ZXJzL3Njc2kvbWFjX3Njc2kuYwppbmRleCBkNWZkMTdlLi45MmQyYzgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWFjX3Njc2kuYworKysgYi9kcml2ZXJzL3Njc2kvbWFjX3Njc2kuYwpAQCAtNTkxLDggKzU5MSw2IEBACiAJLnF1ZXVlY29tbWFuZAkJCT0gbWFjc2NzaV9xdWV1ZV9jb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyCQk9IG1hY3Njc2lfYWJvcnQsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCQk9IG1hY3Njc2lfYnVzX3Jlc2V0LAotCS5laF9kZXZpY2VfcmVzZXRfaGFuZGxlcgk9IG1hY3Njc2lfZGV2aWNlX3Jlc2V0LAotCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJCT0gbWFjc2NzaV9ob3N0X3Jlc2V0LAogCS5jYW5fcXVldWUJCQk9IENBTl9RVUVVRSwKIAkudGhpc19pZAkJCT0gNywKIAkuc2dfdGFibGVzaXplCQkJPSBTR19BTEwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWFjX3Njc2kuaCBiL2RyaXZlcnMvc2NzaS9tYWNfc2NzaS5oCmluZGV4IDIzYWIyYzEuLmQyNmUzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tYWNfc2NzaS5oCisrKyBiL2RyaXZlcnMvc2NzaS9tYWNfc2NzaS5oCkBAIC03Miw4ICs3Miw2IEBACiAjZGVmaW5lIE5DUjUzODBfcXVldWVfY29tbWFuZCBtYWNzY3NpX3F1ZXVlX2NvbW1hbmQKICNkZWZpbmUgTkNSNTM4MF9hYm9ydCBtYWNzY3NpX2Fib3J0CiAjZGVmaW5lIE5DUjUzODBfYnVzX3Jlc2V0IG1hY3Njc2lfYnVzX3Jlc2V0Ci0jZGVmaW5lIE5DUjUzODBfZGV2aWNlX3Jlc2V0IG1hY3Njc2lfZGV2aWNlX3Jlc2V0Ci0jZGVmaW5lIE5DUjUzODBfaG9zdF9yZXNldCBtYWNzY3NpX2hvc3RfcmVzZXQKICNkZWZpbmUgTkNSNTM4MF9wcm9jX2luZm8gbWFjc2NzaV9wcm9jX2luZm8KIAogI2RlZmluZSBCT0FSRF9OT1JNQUwJMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwppbmRleCA4ZDcwN2IyLi44MGIwYzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwpAQCAtMTkzOCw3ICsxOTM4LDcgQEAKIAogCiBzdGF0aWMgaW50Ci1tZWdhcmFpZF9yZXNldChTY3NpX0NtbmQgKmNtZCkKK19fbWVnYXJhaWRfcmVzZXQoU2NzaV9DbW5kICpjbWQpCiB7CiAJYWRhcHRlcl90CSphZGFwdGVyOwogCW1lZ2FjbWRfdAltYzsKQEAgLTE5NzIsNiArMTk3MiwxOCBAQAogCXJldHVybiBydmFsOwogfQogCitzdGF0aWMgaW50CittZWdhcmFpZF9yZXNldChTY3NpX0NtbmQgKmNtZCkKK3sKKwlhZGFwdGVyID0gKGFkYXB0ZXJfdCAqKWNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKKwlpbnQgcmM7CisKKwlzcGluX2xvY2tfaXJxKCZhZGFwdGVyLT5sb2NrKTsKKwlyYyA9IF9fbWVnYXJhaWRfcmVzZXQoY21kKTsKKwlzcGluX3VubG9ja19pcnEoJmFkYXB0ZXItPmxvY2spOworCisJcmV0dXJuIHJjOworfQogCiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FfY29tbW9uLmggYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYV9jb21tb24uaAppbmRleCAxODk2OWE0Li42OWRmMWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYV9jb21tb24uaAorKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYV9jb21tb24uaApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGFzbS9zZW1hcGhvcmUuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfY21uZC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX21ib3guYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tYm94LmMKaW5kZXggMTM4ZmE0OC4uMDU3ZWQ0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX21ib3guYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbWJveC5jCkBAIC0xMCw3ICsxMCw3IEBACiAgKgkgICAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKICAqIEZJTEUJCTogbWVnYXJhaWRfbWJveC5jCi0gKiBWZXJzaW9uCTogdjIuMjAuNC41IChGZWIgMDMgMjAwNSkKKyAqIFZlcnNpb24JOiB2Mi4yMC40LjYgKE1hciAwNyAyMDA1KQogICoKICAqIEF1dGhvcnM6CiAgKiAJQXR1bCBNdWtrZXIJCTxBdHVsLk11a2tlckBsc2lsLmNvbT4KQEAgLTIwMiw3ICsyMDIsNyBAQAogICogIyMjIGdsb2JhbCBkYXRhICMjIwogICovCiBzdGF0aWMgdWludDhfdCBtZWdhcmFpZF9tYm94X3ZlcnNpb25bOF0gPQotCXsgMHgwMiwgMHgyMCwgMHgwNCwgMHgwNSwgMiwgMywgMjAsIDUgfTsKKwl7IDB4MDIsIDB4MjAsIDB4MDQsIDB4MDYsIDMsIDcsIDIwLCA1IH07CiAKIAogLyoKQEAgLTIyOSw5ICsyMjksOSBAQAogCX0sCiAJewogCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9QRVJDNF9RQywKLQkJUENJX1ZFTkRPUl9JRF9ERUxMLAotCQlQQ0lfU1VCU1lTX0lEX1BFUkM0X1FDLAorCQlQQ0lfREVWSUNFX0lEX1ZFUkRFLAorCQlQQ0lfQU5ZX0lELAorCQlQQ0lfQU5ZX0lELAogCX0sCiAJewogCQlQQ0lfVkVORE9SX0lEX0RFTEwsCkBAIC0yNzEsMTUgKzI3MSw5IEBACiAJfSwKIAl7CiAJCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX1BFUkM0RV9EQ18zMjBfMkUsCi0JCVBDSV9WRU5ET1JfSURfREVMTCwKLQkJUENJX1NVQlNZU19JRF9QRVJDNEVfRENfMzIwXzJFLAotCX0sCi0JewotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9QRVJDNEVfU0NfMzIwXzFFLAotCQlQQ0lfVkVORE9SX0lEX0RFTEwsCi0JCVBDSV9TVUJTWVNfSURfUEVSQzRFX1NDXzMyMF8xRSwKKwkJUENJX0RFVklDRV9JRF9ET0JTT04sCisJCVBDSV9BTllfSUQsCisJCVBDSV9BTllfSUQsCiAJfSwKIAl7CiAJCVBDSV9WRU5ET1JfSURfQU1JLApAQCAtMzMxLDM2ICszMjUsNiBAQAogCX0sCiAJewogCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQ1NJXzMyMF8weCwKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0NTSV8zMjBfMHgsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NDU0lfMzIwXzJ4LAotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQ1NJXzMyMF8yeCwKLQl9LAotCXsKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9ERVZJQ0VfSURfTUVHQVJBSURfU0NTSV8zMjBfNHgsCi0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX1NDU0lfMzIwXzR4LAotCX0sCi0JewotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQ1NJXzMyMF8xRSwKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0NTSV8zMjBfMUUsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NDU0lfMzIwXzJFLAotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQ1NJXzMyMF8yRSwKLQl9LAotCXsKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCiAJCVBDSV9ERVZJQ0VfSURfTUVHQVJBSURfSTRfMTMzX1JBSUQsCiAJCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAogCQlQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX0k0XzEzM19SQUlELApAQCAtMzc5LDIxICszNDMsOSBAQAogCX0sCiAJewogCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQVRBXzMwMF80eCwKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0FUQV8zMDBfNHgsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NBVEFfMzAwXzh4LAotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQVRBXzMwMF84eCwKLQl9LAotCXsKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9ERVZJQ0VfSURfSU5URUxfUkFJRF9TUkNVNDJYLAotCQlQQ0lfVkVORE9SX0lEX0lOVEVMLAotCQlQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JDVTQyWCwKKwkJUENJX0RFVklDRV9JRF9MSU5EU0FZLAorCQlQQ0lfQU5ZX0lELAorCQlQQ0lfQU5ZX0lELAogCX0sCiAJewogCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKQEAgLTQwMyw1OCArMzU1LDEwIEBACiAJfSwKIAl7CiAJCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDVTQyRSwKLQkJUENJX1ZFTkRPUl9JRF9JTlRFTCwKLQkJUENJX1NVQlNZU19JRF9JTlRFTF9SQUlEX1NSQ1U0MkUsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDWkNSWCwKLQkJUENJX1ZFTkRPUl9JRF9JTlRFTCwKLQkJUENJX1NVQlNZU19JRF9JTlRFTF9SQUlEX1NSQ1pDUlgsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDUzI4WCwKLQkJUENJX1ZFTkRPUl9JRF9JTlRFTCwKLQkJUENJX1NVQlNZU19JRF9JTlRFTF9SQUlEX1NSQ1MyOFgsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JPTUJVNDJFX0FMSUVGLAotCQlQQ0lfVkVORE9SX0lEX0lOVEVMLAotCQlQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JPTUJVNDJFX0FMSUVGLAotCX0sCi0JewotCQlQQ0lfVkVORE9SX0lEX0xTSV9MT0dJQywKLQkJUENJX0RFVklDRV9JRF9JTlRFTF9SQUlEX1NST01CVTQyRV9IQVJXSUNILAotCQlQQ0lfVkVORE9SX0lEX0lOVEVMLAotCQlQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JPTUJVNDJFX0hBUldJQ0gsCi0JfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAogCQlQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDVTQxTF9MQUtFX1NIRVRFSywKIAkJUENJX1ZFTkRPUl9JRF9JTlRFTCwKIAkJUENJX1NVQlNZU19JRF9JTlRFTF9SQUlEX1NSQ1U0MUxfTEFLRV9TSEVURUssCiAJfSwKLQl7Ci0JCVBDSV9WRU5ET1JfSURfTFNJX0xPR0lDLAotCQlQQ0lfREVWSUNFX0lEX0ZTQ19NRUdBUkFJRF9QQ0lfRVhQUkVTU19ST01CLAotCQlQQ0lfU1VCU1lTX0lEX0ZTQywKLQkJUENJX1NVQlNZU19JRF9GU0NfTUVHQVJBSURfUENJX0VYUFJFU1NfUk9NQiwKLQl9LAotCXsKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9ERVZJQ0VfSURfTUVHQVJBSURfQUNFUl9ST01CXzJFLAotCQlQQ0lfVkVORE9SX0lEX0FJLAotCQlQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX0FDRVJfUk9NQl8yRSwKLQl9LAotCXsKLQkJUENJX1ZFTkRPUl9JRF9MU0lfTE9HSUMsCi0JCVBDSV9ERVZJQ0VfSURfTUVHQVJBSURfTkVDX1JPTUJfMkUsCi0JCVBDSV9WRU5ET1JfSURfTkVDLAotCQlQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX05FQ19ST01CXzJFLAotCX0sCiAJezB9CS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHBjaV9pZF90YWJsZV9nKTsKQEAgLTUzOSw3ICs0NDMsOCBAQAogCiAKIAkvLyByZWdpc3RlciBhcyBhIFBDSSBob3QtcGx1ZyBkcml2ZXIgbW9kdWxlCi0JaWYgKChydmFsID0gcGNpX21vZHVsZV9pbml0KCZtZWdhcmFpZF9wY2lfZHJpdmVyX2cpKSkgeworCXJ2YWwgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZtZWdhcmFpZF9wY2lfZHJpdmVyX2cpOworCWlmIChydmFsIDwgMCkgewogCQljb25fbG9nKENMX0FOTiwgKEtFUk5fV0FSTklORwogCQkJIm1lZ2FyYWlkOiBjb3VsZCBub3QgcmVnaXN0ZXIgaG90cGx1ZyBzdXBwb3J0LlxuIikpOwogCX0KQEAgLTYxOSw3ICs1MjQsNyBAQAogCiAJLy8gU2V0dXAgdGhlIGRlZmF1bHQgRE1BIG1hc2suIFRoaXMgd291bGQgYmUgY2hhbmdlZCBsYXRlciBvbgogCS8vIGRlcGVuZGluZyBvbiBoYXJkd2FyZSBjYXBhYmlsaXRpZXMKLQlpZiAocGNpX3NldF9kbWFfbWFzayhhZGFwdGVyLT5wZGV2LCAweEZGRkZGRkZGKSAhPSAwKSB7CisJaWYgKHBjaV9zZXRfZG1hX21hc2soYWRhcHRlci0+cGRldiwgRE1BXzMyQklUX01BU0spICE9IDApIHsKIAogCQljb25fbG9nKENMX0FOTiwgKEtFUk5fV0FSTklORwogCQkJIm1lZ2FyYWlkOiBwY2lfc2V0X2RtYV9tYXNrIGZhaWxlZDolZFxuIiwgX19MSU5FX18pKTsKQEAgLTEwMzEsNyArOTM2LDcgQEAKIAogCS8vIFNldCB0aGUgRE1BIG1hc2sgdG8gNjQtYml0LiBBbGwgc3VwcG9ydGVkIGNvbnRyb2xsZXJzIGFzIGNhcGFibGUgb2YKIAkvLyBETUEgaW4gdGhpcyByYW5nZQotCWlmIChwY2lfc2V0X2RtYV9tYXNrKGFkYXB0ZXItPnBkZXYsIDB4RkZGRkZGRkZGRkZGRkZGRlVMTCkgIT0gMCkgeworCWlmIChwY2lfc2V0X2RtYV9tYXNrKGFkYXB0ZXItPnBkZXYsIERNQV82NEJJVF9NQVNLKSAhPSAwKSB7CiAKIAkJY29uX2xvZyhDTF9BTk4sIChLRVJOX1dBUk5JTkcKIAkJCSJtZWdhcmFpZDogY291bGQgbm90IHNldCBETUEgbWFzayBmb3IgNjQtYml0LlxuIikpOwpAQCAtMjY2MSw3ICsyNTY2LDcgQEAKICAqIGFib3J0ZWQuIEFsbCB0aGUgY29tbWFuZHMgaXNzdWVkIHRvIHRoZSBGL1cgbXVzdCBjb21wbGV0ZS4KICAqKi8KIHN0YXRpYyBpbnQKLW1lZ2FyYWlkX2Fib3J0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqc2NwKQorX19tZWdhcmFpZF9hYm9ydF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKnNjcCkKIHsKIAlhZGFwdGVyX3QJCSphZGFwdGVyOwogCW1yYWlkX2RldmljZV90CQkqcmFpZF9kZXY7CkBAIC0yNzk0LDYgKzI2OTksMjEgQEAKIAlyZXR1cm4gRkFJTEVEOwogfQogCitzdGF0aWMgaW50CittZWdhcmFpZF9hYm9ydF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKnNjcCkKK3sKKwlhZGFwdGVyX3QJKmFkYXB0ZXI7CisJaW50IHJjOworCisJYWRhcHRlcgkJPSBTQ1AyQURBUFRFUihzY3ApOworCisJc3Bpbl9sb2NrX2lycShhZGFwdGVyLT5ob3N0X2xvY2spOworCXJjID0gX19tZWdhcmFpZF9hYm9ydF9oYW5kbGVyKHNjcCk7CisJc3Bpbl91bmxvY2tfaXJxKGFkYXB0ZXItPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7Cit9CisKIAogLyoqCiAgKiBtZWdhcmFpZF9yZXNldF9oYW5kbGVyIC0gZGV2aWNlIHJlc2V0IGhhZGxlciBmb3IgbWFpbGJveCBiYXNlZCBkcml2ZXIKQEAgLTI4MDYsNyArMjcyNiw3IEBACiAgKiBob3N0CiAgKiovCiBzdGF0aWMgaW50Ci1tZWdhcmFpZF9yZXNldF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKnNjcCkKK19fbWVnYXJhaWRfcmVzZXRfaGFuZGxlcihzdHJ1Y3Qgc2NzaV9jbW5kICpzY3ApCiB7CiAJYWRhcHRlcl90CSphZGFwdGVyOwogCXNjYl90CQkqc2NiOwpAQCAtMjkyNyw2ICsyODQ3LDE4IEBACiAJcmV0dXJuIHJ2YWw7CiB9CiAKK3N0YXRpYyBpbnQKK21lZ2FyYWlkX3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21kKQoreworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBfX21lZ2FyYWlkX3Jlc2V0X2hhbmRsZXIoY21kKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7Cit9CisKIAogLyoKICAqIFNUQVJUOiBpbnRlcm5hbCBjb21tYW5kcyBsaWJyYXJ5CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbWJveC5oIGIvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX21ib3guaAppbmRleCAwNzUxMDAwLi42NDRiOTFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbWJveC5oCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tYm94LmgKQEAgLTIxLDggKzIxLDggQEAKICNpbmNsdWRlICJtZWdhcmFpZF9pb2N0bC5oIgogCiAKLSNkZWZpbmUgTUVHQVJBSURfVkVSU0lPTgkiMi4yMC40LjUiCi0jZGVmaW5lIE1FR0FSQUlEX0VYVF9WRVJTSU9OCSIoUmVsZWFzZSBEYXRlOiBUaHUgRmViIDAzIDEyOjI3OjIyIEVTVCAyMDA1KSIKKyNkZWZpbmUgTUVHQVJBSURfVkVSU0lPTgkiMi4yMC40LjYiCisjZGVmaW5lIE1FR0FSQUlEX0VYVF9WRVJTSU9OCSIoUmVsZWFzZSBEYXRlOiBNb24gTWFyIDA3IDEyOjI3OjIyIEVTVCAyMDA1KSIKIAogCiAvKgpAQCAtMzcsOCArMzcsNyBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1BFUkM0X0RDCQkJCTB4MTk2MAogI2RlZmluZSBQQ0lfU1VCU1lTX0lEX1BFUkM0X0RDCQkJCTB4MDUxOAogCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfUEVSQzRfUUMJCQkJMHgwNDA3Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzRfUUMJCQkJMHgwNTMxCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfVkVSREUJCQkJMHgwNDA3CiAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9QRVJDNF9ESV9FVkVSR0xBREVTCQkweDAwMEYKICNkZWZpbmUgUENJX1NVQlNZU19JRF9QRVJDNF9ESV9FVkVSR0xBREVTCQkweDAxNEEKQEAgLTU4LDExICs1Nyw3IEBACiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfUEVSQzRFX0RJX0dVQURBTFVQRQkJMHgwMDEzCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzRFX0RJX0dVQURBTFVQRQkJMHgwMTcwCiAKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9QRVJDNEVfRENfMzIwXzJFCQkJMHgwNDA4Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzRFX0RDXzMyMF8yRQkJCTB4MDAwMgotCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfUEVSQzRFX1NDXzMyMF8xRQkJCTB4MDQwOAotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX1BFUkM0RV9TQ18zMjBfMUUJCQkweDAwMDEKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9ET0JTT04JCQkJMHgwNDA4CiAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQ1NJXzMyMF8wCQkweDE5NjAKICNkZWZpbmUgUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQ1NJXzMyMF8wCQkweEE1MjAKQEAgLTczLDIxICs2OCw2IEBACiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVHQVJBSURfU0NTSV8zMjBfMgkJMHgxOTYwCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0NTSV8zMjBfMgkJMHgwNTE4CiAKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQ1NJXzMyMF8weAkJMHgwNDA3Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0NTSV8zMjBfMHgJCTB4MDUzMAotCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVHQVJBSURfU0NTSV8zMjBfMngJCTB4MDQwNwotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX1NDU0lfMzIwXzJ4CQkweDA1MzIKLQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NDU0lfMzIwXzR4CQkweDA0MDcKLSNkZWZpbmUgUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQ1NJXzMyMF80eAkJMHgwNTMxCi0KLSNkZWZpbmUgUENJX0RFVklDRV9JRF9NRUdBUkFJRF9TQ1NJXzMyMF8xRQkJMHgwNDA4Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfTUVHQVJBSURfU0NTSV8zMjBfMUUJCTB4MDAwMQotCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVHQVJBSURfU0NTSV8zMjBfMkUJCTB4MDQwOAotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX1NDU0lfMzIwXzJFCQkweDAwMDIKLQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX01FR0FSQUlEX0k0XzEzM19SQUlECQkweDE5NjAKICNkZWZpbmUgUENJX1NVQlNZU19JRF9NRUdBUkFJRF9JNF8xMzNfUkFJRAkJMHgwNTIyCiAKQEAgLTk3LDUyICs3NywxOCBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NBVEFfMTUwXzYJCTB4MTk2MAogI2RlZmluZSBQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX1NBVEFfMTUwXzYJCTB4MDUyMwogCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVHQVJBSURfU0FUQV8zMDBfNHgJCTB4MDQwOQotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX01FR0FSQUlEX1NBVEFfMzAwXzR4CQkweDMwMDQKLQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX01FR0FSQUlEX1NBVEFfMzAwXzh4CQkweDA0MDkKLSNkZWZpbmUgUENJX1NVQlNZU19JRF9NRUdBUkFJRF9TQVRBXzMwMF84eAkJMHgzMDA4Ci0KLSNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9SQUlEX1NSQ1U0MlgJCTB4MDQwNwotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JDVTQyWAkJMHgwNTMyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTElORFNBWQkJCQkweDA0MDkKIAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDUzE2CQkJMHgxOTYwCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfSU5URUxfUkFJRF9TUkNTMTYJCQkweDA1MjMKIAotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDVTQyRQkJMHgwNDA4Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfSU5URUxfUkFJRF9TUkNVNDJFCQkweDAwMDIKLQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDWkNSWAkJMHgwNDA3Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfSU5URUxfUkFJRF9TUkNaQ1JYCQkweDA1MzAKLQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JDUzI4WAkJMHgwNDA5Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfSU5URUxfUkFJRF9TUkNTMjhYCQkweDMwMDgKLQotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1JBSURfU1JPTUJVNDJFX0FMSUVGCTB4MDQwOAotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JPTUJVNDJFX0FMSUVGCTB4MzQzMQotCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfUkFJRF9TUk9NQlU0MkVfSEFSV0lDSAkweDA0MDgKLSNkZWZpbmUgUENJX1NVQlNZU19JRF9JTlRFTF9SQUlEX1NST01CVTQyRV9IQVJXSUNICTB4MzQ5OQotCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfUkFJRF9TUkNVNDFMX0xBS0VfU0hFVEVLCTB4MTk2MAogI2RlZmluZSBQQ0lfU1VCU1lTX0lEX0lOVEVMX1JBSURfU1JDVTQxTF9MQUtFX1NIRVRFSwkweDA1MjAKIAotI2RlZmluZSBQQ0lfREVWSUNFX0lEX0ZTQ19NRUdBUkFJRF9QQ0lfRVhQUkVTU19ST01CCTB4MDQwOAotI2RlZmluZSBQQ0lfU1VCU1lTX0lEX0ZTQ19NRUdBUkFJRF9QQ0lfRVhQUkVTU19ST01CCTB4MTA2NQotCi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVHQVJBSURfQUNFUl9ST01CXzJFCQkweDA0MDgKLSNkZWZpbmUgUENJX1NVQlNZU19JRF9NRUdBUkFJRF9BQ0VSX1JPTUJfMkUJCTB4MDA0RAotCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzNfUUMJCQkJMHgwNDcxCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzNfREMJCQkJMHgwNDkzCiAjZGVmaW5lIFBDSV9TVUJTWVNfSURfUEVSQzNfU0MJCQkJMHgwNDc1CiAKLSNkZWZpbmUgUENJX0RFVklDRV9JRF9NRUdBUkFJRF9ORUNfUk9NQl8yRQkJMHgwNDA4Ci0jZGVmaW5lIFBDSV9TVUJTWVNfSURfTUVHQVJBSURfTkVDX1JPTUJfMkUJCTB4ODI4NwotCi0jaWZuZGVmIFBDSV9TVUJTWVNfSURfRlNDCi0jZGVmaW5lIFBDSV9TVUJTWVNfSURfRlNDCQkJCTB4MTczNAotI2VuZGlmCiAKICNkZWZpbmUgTUJPWF9NQVhfU0NTSV9DTURTCTEyOAkvLyBudW1iZXIgb2YgY21kcyByZXNlcnZlZCBmb3Iga2VybmVsCiAjZGVmaW5lIE1CT1hfTUFYX1VTRVJfQ01EUwkzMgkvLyBudW1iZXIgb2YgY21kcyBmb3IgYXBwbGljYXRpb25zCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCmluZGV4IDlmMWI1NTAuLjM3ZDExMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCkBAIC0xMCwxMyArMTAsMTIgQEAKICAqCSAgIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgogICogRklMRQkJOiBtZWdhcmFpZF9tbS5jCi0gKiBWZXJzaW9uCTogdjIuMjAuMi41IChKYW4gMjEgMjAwNSkKKyAqIFZlcnNpb24JOiB2Mi4yMC4yLjYgKE1hciA3IDIwMDUpCiAgKgogICogQ29tbW9uIG1hbmFnZW1lbnQgbW9kdWxlCiAgKi8KIAogI2luY2x1ZGUgIm1lZ2FyYWlkX21tLmgiCi0jaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogCiAvLyBFbnRyeSBwb2ludHMgZm9yIGNoYXIgbm9kZSBkcml2ZXIKQEAgLTYxLDcgKzYwLDcgQEAKIEVYUE9SVF9TWU1CT0wobXJhaWRfbW1fYWRhcHRlcl9hcHBfaGFuZGxlKTsKIAogc3RhdGljIGludCBtYWpvcm5vOwotc3RhdGljIHVpbnQzMl90IGRydnJfdmVyCT0gMHgwMjIwMDIwMTsKK3N0YXRpYyB1aW50MzJfdCBkcnZyX3Zlcgk9IDB4MDIyMDAyMDY7CiAKIHN0YXRpYyBpbnQgYWRhcHRlcnNfY291bnRfZzsKIHN0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkIGFkYXB0ZXJzX2xpc3RfZzsKQEAgLTEyMzEsOSArMTIzMCw5IEBACiAJCSAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQogewogCWludCBlcnI7Ci0JbG9ja19rZXJuZWwoKTsKKwogCWVyciA9IG1yYWlkX21tX2lvY3RsKE5VTEwsIGZpbGVwLCBjbWQsIGFyZyk7Ci0JdW5sb2NrX2tlcm5lbCgpOworCiAJcmV0dXJuIGVycjsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX21tLmggYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uaAppbmRleCA5NDhhMDAxLi43ZTM2YzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uaAorKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIm1lZ2FyYWlkX2lvY3RsLmgiCiAKIAotI2RlZmluZSBMU0lfQ09NTU9OX01PRF9WRVJTSU9OCSIyLjIwLjIuNSIKKyNkZWZpbmUgTFNJX0NPTU1PTl9NT0RfVkVSU0lPTgkiMi4yMC4yLjYiCiAjZGVmaW5lIExTSV9DT01NT05fTU9EX0VYVF9WRVJTSU9OCVwKLQkJIihSZWxlYXNlIERhdGU6IEZyaSBKYW4gMjEgMDA6MDE6MDMgRVNUIDIwMDUpIgorCQkiKFJlbGVhc2UgRGF0ZTogTW9uIE1hciA3IDAwOjAxOjAzIEVTVCAyMDA1KSIKIAogCiAjZGVmaW5lIExTSV9EQkdMVkwJCQlkYmdsZXZlbApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lc2guYyBiL2RyaXZlcnMvc2NzaS9tZXNoLmMKaW5kZXggZjZkYTQ2ZC4uYjA1NzM3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lc2guYworKysgYi9kcml2ZXJzL3Njc2kvbWVzaC5jCkBAIC0xNzE1LDkgKzE3MTUsMTIgQEAKIAlzdHJ1Y3QgbWVzaF9zdGF0ZSAqbXMgPSAoc3RydWN0IG1lc2hfc3RhdGUgKikgY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCXZvbGF0aWxlIHN0cnVjdCBtZXNoX3JlZ3MgX19pb21lbSAqbXIgPSBtcy0+bWVzaDsKIAl2b2xhdGlsZSBzdHJ1Y3QgZGJkbWFfcmVncyBfX2lvbWVtICptZCA9IG1zLT5kbWE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXByaW50ayhLRVJOX0RFQlVHICJtZXNoX2hvc3RfcmVzZXRcbiIpOwogCisJc3Bpbl9sb2NrX2lycXNhdmUobXMtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworCiAJLyogUmVzZXQgdGhlIGNvbnRyb2xsZXIgJiBkYmRtYSBjaGFubmVsICovCiAJb3V0X2xlMzIoJm1kLT5jb250cm9sLCAoUlVOfFBBVVNFfEZMVVNIfFdBS0UpIDw8IDE2KTsJLyogc3RvcCBkbWEgKi8KIAlvdXRfOCgmbXItPmV4Y2VwdGlvbiwgMHhmZik7CS8qIGNsZWFyIGFsbCBleGNlcHRpb24gYml0cyAqLwpAQCAtMTczOSw2ICsxNzQyLDcgQEAKIAkvKiBDb21wbGV0ZSBwZW5kaW5nIGNvbW1hbmRzICovCiAJaGFuZGxlX3Jlc2V0KG1zKTsKIAkKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKG1zLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL212bWUxNDcuYyBiL2RyaXZlcnMvc2NzaS9tdm1lMTQ3LmMKaW5kZXggZTczYjMzZi4uMmZiMzFlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL212bWUxNDcuYworKysgYi9kcml2ZXJzL3Njc2kvbXZtZTE0Ny5jCkBAIC0xMTYsNyArMTE2LDE0IEBACiBzdGF0aWMgaW50IG12bWUxNDdfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqY21kKQogewogCS8qIEZJWE1FIHBlcmZvcm0gYnVzLXNwZWNpZmljIHJlc2V0ICovCisKKwkvKiBGSVhNRSAyOiBraWxsIHRoaXMgZnVuY3Rpb24sIGFuZCBsZXQgbWlkbGF5ZXIgZmFsbGJhY2sgdG8gCisJICAgdGhlIHNhbWUgcmVzdWx0LCBjYWxsaW5nIHdkMzNjOTNfaG9zdF9yZXNldCgpICovCisKKwlzcGluX2xvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXdkMzNjOTNfaG9zdF9yZXNldChjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jCmluZGV4IGQyOGMwZDkuLjUxNTljZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9uc3AzMi5jCisrKyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jCkBAIC0yOTQsNyArMjk0LDYgQEAKIAkudGhpc19pZAkJCT0gTlNQMzJfSE9TVF9TQ1NJSUQsCiAJLnVzZV9jbHVzdGVyaW5nCQkJPSBESVNBQkxFX0NMVVNURVJJTkcsCiAJLmVoX2Fib3J0X2hhbmRsZXIgICAgICAgCT0gbnNwMzJfZWhfYWJvcnQsCi0vKgkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIJPSBOVUxMLCAqLwogCS5laF9idXNfcmVzZXRfaGFuZGxlcgkJPSBuc3AzMl9laF9idXNfcmVzZXQsCiAJLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgkJPSBuc3AzMl9laF9ob3N0X3Jlc2V0LAogI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDUsNzQpKQpAQCAtMjk4OCw2ICsyOTg3LDggQEAKIAluc3AzMl9od19kYXRhICpkYXRhID0gKG5zcDMyX2h3X2RhdGEgKilTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKIAl1bnNpZ25lZCBpbnQgICBiYXNlID0gU0NwbnQtPmRldmljZS0+aG9zdC0+aW9fcG9ydDsKIAorCXNwaW5fbG9ja19pcnEoU0NwbnQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCW5zcDMyX21zZyhLRVJOX0lORk8sICJCdXMgUmVzZXQiKTsJCiAJbnNwMzJfZGJnKE5TUDMyX0RFQlVHX0JVU1JFU0VULCAiU0NwbnQ9MHgleCIsIFNDcG50KTsKIApAQCAtMjk5NSw2ICsyOTk2LDcgQEAKIAluc3AzMl9kb19idXNfcmVzZXQoZGF0YSk7CiAJbnNwMzJfd3JpdGUyKGJhc2UsIElSUV9DT05UUk9MLCAwKTsKIAorCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBTVUNDRVNTOwkvKiBTQ1NJIGJ1cyByZXNldCBpcyBzdWNjZWVkZWQgYXQgYW55IHRpbWUuICovCiB9CiAKQEAgLTMwNDksMTEgKzMwNTEsMTQgQEAKIAluc3AzMl9tc2coS0VSTl9JTkZPLCAiSG9zdCBSZXNldCIpOwkKIAluc3AzMl9kYmcoTlNQMzJfREVCVUdfQlVTUkVTRVQsICJTQ3BudD0weCV4IiwgU0NwbnQpOwogCisJc3Bpbl9sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJbnNwMzJod19pbml0KGRhdGEpOwogCW5zcDMyX3dyaXRlMihiYXNlLCBJUlFfQ09OVFJPTCwgSVJRX0NPTlRST0xfQUxMX0lSUV9NQVNLKTsKIAluc3AzMl9kb19idXNfcmVzZXQoZGF0YSk7CiAJbnNwMzJfd3JpdGUyKGJhc2UsIElSUV9DT05UUk9MLCAwKTsKIAorCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBTVUNDRVNTOwkvKiBIb3N0IHJlc2V0IGlzIHN1Y2NlZWRlZCBhdCBhbnkgdGltZS4gKi8KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3BhczE2LmMgYi9kcml2ZXJzL3Njc2kvcGFzMTYuYwppbmRleCA3OTc2OTQ3Li4zNjNlMGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcGFzMTYuYworKysgYi9kcml2ZXJzL3Njc2kvcGFzMTYuYwpAQCAtNjIxLDggKzYyMSw2IEBACiAJLnF1ZXVlY29tbWFuZCAgID0gcGFzMTZfcXVldWVfY29tbWFuZCwKIAkuZWhfYWJvcnRfaGFuZGxlciA9IHBhczE2X2Fib3J0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlciA9IHBhczE2X2J1c19yZXNldCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBwYXMxNl9kZXZpY2VfcmVzZXQsCi0JLmVoX2hvc3RfcmVzZXRfaGFuZGxlciA9IHBhczE2X2hvc3RfcmVzZXQsCiAJLmJpb3NfcGFyYW0gICAgID0gcGFzMTZfYmlvc3BhcmFtLCAKIAkuY2FuX3F1ZXVlICAgICAgPSBDQU5fUVVFVUUsCiAJLnRoaXNfaWQgICAgICAgID0gNywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wYXMxNi5oIGIvZHJpdmVycy9zY3NpL3BhczE2LmgKaW5kZXggNThkNGQ2Ny4uNjVjZTFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3BhczE2LmgKKysrIGIvZHJpdmVycy9zY3NpL3BhczE2LmgKQEAgLTEyMCw4ICsxMjAsNiBAQAogc3RhdGljIGludCBwYXMxNl9kZXRlY3QoU2NzaV9Ib3N0X1RlbXBsYXRlICopOwogc3RhdGljIGludCBwYXMxNl9xdWV1ZV9jb21tYW5kKFNjc2lfQ21uZCAqLCB2b2lkICgqZG9uZSkoU2NzaV9DbW5kICopKTsKIHN0YXRpYyBpbnQgcGFzMTZfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqKTsKLXN0YXRpYyBpbnQgcGFzMTZfaG9zdF9yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IHBhczE2X2RldmljZV9yZXNldChTY3NpX0NtbmQgKik7CiAKICNpZm5kZWYgQ01EX1BFUl9MVU4KICNkZWZpbmUgQ01EX1BFUl9MVU4gMgpAQCAtMTY0LDkgKzE2Miw3IEBACiAjZGVmaW5lIGRvX05DUjUzODBfaW50ciBkb19wYXMxNl9pbnRyCiAjZGVmaW5lIE5DUjUzODBfcXVldWVfY29tbWFuZCBwYXMxNl9xdWV1ZV9jb21tYW5kCiAjZGVmaW5lIE5DUjUzODBfYWJvcnQgcGFzMTZfYWJvcnQKLSNkZWZpbmUgTkNSNTM4MF9kZXZpY2VfcmVzZXQgcGFzMTZfZGV2aWNlX3Jlc2V0CiAjZGVmaW5lIE5DUjUzODBfYnVzX3Jlc2V0IHBhczE2X2J1c19yZXNldAotI2RlZmluZSBOQ1I1MzgwX2hvc3RfcmVzZXQgcGFzMTZfaG9zdF9yZXNldAogI2RlZmluZSBOQ1I1MzgwX3Byb2NfaW5mbyBwYXMxNl9wcm9jX2luZm8KIAogLyogMTUgMTQgMTIgMTAgNyA1IDMgCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcGNpMjAwMC5jIGIvZHJpdmVycy9zY3NpL3BjaTIwMDAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc3YTQ2Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3Njc2kvcGNpMjAwMC5jCisrKyAvZGV2L251bGwKQEAgLTEsODM2ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLiBQQ0ktMjAwMCBkZXZpY2UgZHJpdmVyIGZvciBMaW51eC4KLSAqCi0gKiBwY2kyMDAwLmMgLSBMaW51eCBIb3N0IERyaXZlciBmb3IgUENJLTIwMDAgSW50ZWxsaUNhY2hlIFNDU0kgQWRhcHRlcnMKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTctMTk5OSBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKLSAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAotICogbW9kaWZpY2F0aW9uLgotICoKLSAqIFRlY2huaWNhbCB1cGRhdGVzIGFuZCBwcm9kdWN0IGluZm9ybWF0aW9uIGF0OgotICogIGh0dHA6Ly93d3cucHNpZGlzay5jb20KLSAqCi0gKiBQbGVhc2Ugc2VuZCBxdWVzdGlvbnMsIGNvbW1lbnRzLCBidWcgcmVwb3J0cyB0bzoKLSAqICB0ZWNoQHBzaWRpc2suY29tIFRlY2huaWNhbCBTdXBwb3J0Ci0gKgotICoKLSAqCVJldmlzaW9ucwkxLjEwCUphbi0yMS0xOTk5Ci0gKgkJLSBGaXhlZCBzaWduIG9uIG1lc3NhZ2UgdG8gcmVmbGVjdCBwcm9wZXIgY29udHJvbGxlciBuYW1lLgotICoJCS0gQWRkZWQgc3VwcG9ydCBmb3IgUkFJRCBzdGF0dXMgbW9uaXRvcmluZyBhbmQgY29udHJvbC4KLSAqCi0gKiAgUmV2aXNpb25zCTEuMTEJTWFyLTIyLTE5OTkKLSAqCQktIEZpeGVkIGNvbnRyb2wgdGltZW91dCB0byBub3QgbG9jayB1cCB0aGUgZW50aXJlIHN5c3RlbSBpZgotICoJCSAgY29udHJvbGxlciBnb2VzIG9mZmxpbmUgY29tcGxldGVseS4KLSAqCi0gKglSZXZpc2lvbnMgMS4xMgkJTWFyLTI2LTE5OTkKLSAqCQktIEZpeGVkIHNwaW5sb2NrIGFuZCBQQ0kgY29uZmlndXJhdGlvbi4KLSAqCi0gKglSZXZpc2lvbnMgMS4yMAkJTWFyLTI3LTIwMDAKLSAqCQktIEFkZGVkIHN1cHBvcnQgZm9yIGR5bmFtaWMgRE1BCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFBDSTIwMDBfVkVSU0lPTgkJIjEuMjAiCi0KLSNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0KLSNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotCi0jaW5jbHVkZSAic2NzaS5oIgotI2luY2x1ZGUgPHNjc2kvc2NzaV9ob3N0Lmg+Ci0jaW5jbHVkZSAicGNpMjAwMC5oIgotI2luY2x1ZGUgInBzaV9yb3kuaCIKLQotCi0vLyNkZWZpbmUgREVCVUcgMQotCi0jaWZkZWYgREVCVUcKLSNkZWZpbmUgREVCKHgpIHgKLSNkZWZpbmUgU1RPUF9IRVJFCXtpbnQgc3Q7Zm9yKHN0PTA7c3Q8MTAwO3N0Kyspe3N0PTE7fX0KLSNlbHNlCi0jZGVmaW5lIERFQih4KQotI2RlZmluZSBTVE9QX0hFUkUKLSNlbmRpZgotCi10eXBlZGVmIHN0cnVjdAotCXsKLQl1bnNpZ25lZCBpbnQJYWRkcmVzczsKLQl1bnNpZ25lZCBpbnQJbGVuZ3RoOwotCX0JU0NBVEdBVEgsICpQU0NBVEdBVEg7Ci0KLXR5cGVkZWYgc3RydWN0Ci0JewotCVNjc2lfQ21uZAkJKlNDcG50OwotCVBTQ0FUR0FUSAkJIHNjYXRHYXRoOwotCWRtYV9hZGRyX3QJCSBzY2F0R2F0aERtYTsKLQlVQ0hBUgkJCSpjZGI7Ci0JZG1hX2FkZHJfdAkJIGNkYkRtYTsgCi0JVUNIQVIJCQkgdGFnOwotCX0JREVWMjAwMCwgKlBERVYyMDAwOwotCi10eXBlZGVmIHN0cnVjdAotCXsKLQlVTE9ORwkJCSBiYXNlUG9ydDsKLQlVTE9ORwkJCSBtYjA7Ci0JVUxPTkcJCQkgbWIxOwotCVVMT05HCQkJIG1iMjsKLQlVTE9ORwkJCSBtYjM7Ci0JVUxPTkcJCQkgbWI0OwotCVVMT05HCQkJIGNtZDsKLQlVTE9ORwkJCSB0YWc7Ci0JVUxPTkcJCQkgaXJxT3duZWQ7Ci0Jc3RydWN0IHBjaV9kZXYJKnBkZXY7Ci0JREVWMjAwMAkgCQkgZGV2W01BWF9CVVNdW01BWF9VTklUU107Ci0JfQlBREFQVEVSMjAwMCwgKlBBREFQVEVSMjAwMDsKLQotI2RlZmluZSBIT1NUREFUQShob3N0KSAoKFBBREFQVEVSMjAwMCkmaG9zdC0+aG9zdGRhdGEpCi0jZGVmaW5lIGNvbnNpc3RlbnRMZW4gKE1BWF9CVVMgKiBNQVhfVU5JVFMgKiAoMTYgKiBzaXplb2YgKFNDQVRHQVRIKSArIE1BWF9DT01NQU5EX1NJWkUpKQotCi0KLXN0YXRpYyBzdHJ1Y3QJU2NzaV9Ib3N0IAkgICAqUHNpSG9zdFtNQVhBREFQVEVSXSA9IHtOVUxMLH07ICAvLyBPbmUgZm9yIGVhY2ggYWRhcHRlcgotc3RhdGljCQkJaW50CQkJCU51bUFkYXB0ZXJzID0gMDsKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOgkJCVdhaXRSZWFkeQk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJV2FpdCBmb3IgY29udHJvbGxlciByZWFkeS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCVRSVUUgb24gbm90IHJlYWR5LgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBXYWl0UmVhZHkgKFBBREFQVEVSMjAwMCBwYWRhcHRlcikKLQl7Ci0JVUxPTkcJejsKLQotCWZvciAoIHogPSAwOyAgeiA8IChUSU1FT1VUX0NPTU1BTkQgKiA0KTsgIHorKyApCi0JCXsKLQkJaWYgKCAhaW5iX3AgKHBhZGFwdGVyLT5jbWQpICkKLQkJCXJldHVybiBGQUxTRTsKLQkJdWRlbGF5ICgyNTApOwotCQl9OwkJCQkJCQkJCi0JcmV0dXJuIFRSVUU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CQkJV2FpdFJlYWR5TG9uZwk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJV2FpdCBmb3IgY29udHJvbGxlciByZWFkeS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCVRSVUUgb24gbm90IHJlYWR5LgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBXYWl0UmVhZHlMb25nIChQQURBUFRFUjIwMDAgcGFkYXB0ZXIpCi0JewotCVVMT05HCXo7Ci0KLQlmb3IgKCB6ID0gMDsgIHogPCAoNTAwMCAqIDQpOyAgeisrICkKLQkJewotCQlpZiAoICFpbmJfcCAocGFkYXB0ZXItPmNtZCkgKQotCQkJcmV0dXJuIEZBTFNFOwotCQl1ZGVsYXkgKDI1MCk7Ci0JCX07CQkJCQkJCQkKLQlyZXR1cm4gVFJVRTsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJT3BEb25lCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglDbGVhbiB1cCBvcGVyYXRpb24gYW5kIGlzc3VlIGRvbmUgdG8gY2FsbGVyLgotICoKLSAqCVBhcmFtZXRlcnM6CQlTQ3BudAktIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KLSAqCQkJCQlzdGF0dXMJLSBDYWxsZXIgc3RhdHVzLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgT3BEb25lIChTY3NpX0NtbmQgKlNDcG50LCBVTE9ORyBzdGF0dXMpCi0JewotCVNDcG50LT5yZXN1bHQgPSBzdGF0dXM7Ci0JU0NwbnQtPnNjc2lfZG9uZSAoU0NwbnQpOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglDb21tYW5kCQk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJSXNzdWUgcXVldWVkIGNvbW1hbmQgdG8gdGhlIFBDSS0yMDAwLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgdG8gYWRhcHRlciBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuCi0gKgkJCQkJY21kCQkgLSBQQ0ktMjAwMCBjb21tYW5kIGJ5dGUuCi0gKgotICoJUmV0dXJuczoJCU5vbi16ZXJvIGNvbW1hbmQgdGFnIGlmIG9wZXJhdGlvbiBpcyBhY2NlcHRlZC4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBVQ0hBUiBDb21tYW5kIChQQURBUFRFUjIwMDAgcGFkYXB0ZXIsIFVDSEFSIGNtZCkKLQl7Ci0Jb3V0Yl9wIChjbWQsIHBhZGFwdGVyLT5jbWQpOwotCWlmICggV2FpdFJlYWR5IChwYWRhcHRlcikgKQotCQlyZXR1cm4gMDsKLQotCWlmICggaW53X3AgKHBhZGFwdGVyLT5tYjApICkKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gaW5iX3AgKHBhZGFwdGVyLT5tYjEpOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglCdWlsZFNnTGlzdAkJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CUJ1aWxkIHRoZSBzY2F0dGVyIGdhdGhlciBsaXN0IGZvciBjb250cm9sbGVyLgotICoKLSAqCVBhcmFtZXRlcnM6CQlTQ3BudAkgLSBQb2ludGVyIHRvIFNDU0kgY29tbWFuZCBzdHJ1Y3R1cmUuCi0gKgkJCQkJcGFkYXB0ZXIgLSBQb2ludGVyIHRvIGFkYXB0ZXIgaW5mb3JtYXRpb24gc3RydWN0dXJlLgotICoJCQkJCXBkZXYJIC0gUG9pbnRlciB0byBhZGFwdGVyIGRldmljZSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCU5vbi16ZXJvIGluIG5vdCBzY2F0dGVyIGdhdGhlci4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgQnVpbGRTZ0xpc3QgKFNjc2lfQ21uZCAqU0NwbnQsIFBBREFQVEVSMjAwMCBwYWRhcHRlciwgUERFVjIwMDAgcGRldikKLQl7Ci0JaW50CQkJCQkgejsKLQlpbnQJCQkJCSB6YzsKLQlzdHJ1Y3Qgc2NhdHRlcmxpc3QJKnNnOwotCi0JaWYgKCBTQ3BudC0+dXNlX3NnICkKLQkJewotCQlzZyA9IChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKilTQ3BudC0+cmVxdWVzdF9idWZmZXI7Ci0JCXpjID0gcGNpX21hcF9zZyAocGFkYXB0ZXItPnBkZXYsIHNnLCBTQ3BudC0+dXNlX3NnLCBTQ3BudC0+c2NfZGF0YV9kaXJlY3Rpb24pOwotCQlmb3IgKCB6ID0gMDsgIHogPCB6YzsgIHorKyApCi0JCQl7Ci0JCQlwZGV2LT5zY2F0R2F0aFt6XS5hZGRyZXNzID0gY3B1X3RvX2xlMzIgKHNnX2RtYV9hZGRyZXNzIChzZykpOwotCQkJcGRldi0+c2NhdEdhdGhbel0ubGVuZ3RoID0gY3B1X3RvX2xlMzIgKHNnX2RtYV9sZW4gKHNnKyspKTsKLQkJCX0KLQkJb3V0bCAocGRldi0+c2NhdEdhdGhEbWEsIHBhZGFwdGVyLT5tYjIpOwotCQlvdXRsICgoemMgPDwgMjQpIHwgU0NwbnQtPnJlcXVlc3RfYnVmZmxlbiwgcGFkYXB0ZXItPm1iMyk7Ci0JCXJldHVybiBGQUxTRTsKLQkJfQotCWlmICggIVNDcG50LT5yZXF1ZXN0X2J1ZmZsZW4pCi0JCXsKLQkJb3V0bCAoMCwgcGFkYXB0ZXItPm1iMik7Ci0JCW91dGwgKDAsIHBhZGFwdGVyLT5tYjMpOwotCQlyZXR1cm4gVFJVRTsKLQkJfQotCVNDcG50LT5TQ3AuaGF2ZV9kYXRhX2luID0gcGNpX21hcF9zaW5nbGUgKHBhZGFwdGVyLT5wZGV2LAotCQkJU0NwbnQtPnJlcXVlc3RfYnVmZmVyLCBTQ3BudC0+cmVxdWVzdF9idWZmbGVuLAotCQkJU0NwbnQtPnNjX2RhdGFfZGlyZWN0aW9uKTsKLQlvdXRsIChTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiwgcGFkYXB0ZXItPm1iMik7Ci0Jb3V0bCAoU0NwbnQtPnJlcXVlc3RfYnVmZmxlbiwgcGFkYXB0ZXItPm1iMyk7Ci0JcmV0dXJuIFRSVUU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJUHNpUmFpZENtZAotICoKLSAqCURlc2NyaXB0aW9uOglFeGVjdXRlIGEgc2ltcGxlIGNvbW1hbmQuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciB0byBhZGFwdGVyIGNvbnRyb2wgc3RydWN0dXJlLgotICoJCQkJCWNtZAkJIC0gUm95IGNvbW1hbmQgYnl0ZS4KLSAqCi0gKglSZXR1cm5zOgkJUmV0dXJuIGVycm9yIHN0YXR1cy4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgaW50IFBzaVJhaWRDbWQgKFBBREFQVEVSMjAwMCBwYWRhcHRlciwgY2hhciBjbWQpCi0JewotCWlmICggV2FpdFJlYWR5IChwYWRhcHRlcikgKQkJCQkJCS8vIHRlc3QgZm9yIGNvbW1hbmQgcmVnaXN0ZXIgcmVhZHkKLQkJcmV0dXJuIERJRF9USU1FX09VVDsKLQlvdXRiX3AgKGNtZCwgcGFkYXB0ZXItPmNtZCk7CQkJCQkvLyBpc3N1ZSBjb21tYW5kCi0JaWYgKCBXYWl0UmVhZHlMb25nIChwYWRhcHRlcikgKQkJCQkJLy8gd2FpdCBmb3IgYWRhcHRlciByZWFkeQotCQlyZXR1cm4gRElEX1RJTUVfT1VUOwotCXJldHVybiBESURfT0s7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUlycV9IYW5kbGVyCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglJbnRlcnJ1cHQgaGFuZGxlci4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJaXJxCQktIEhhcmR3YXJlIElSUSBudW1iZXIuCi0gKgkJCQkJZGV2X2lkCS0KLSAqCQkJCQlyZWdzCS0KLSAqCi0gKglSZXR1cm5zOgkJVFJVRSBpZiBkcml2ZSBpcyBub3QgcmVhZHkgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpcnFyZXR1cm5fdCBJcnFfSGFuZGxlciAoaW50IGlycSwgdm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKLQl7Ci0Jc3RydWN0IFNjc2lfSG9zdCAgICpzaG9zdCA9IE5VTEw7CS8vIFBvaW50ZXIgdG8gaG9zdCBkYXRhIGJsb2NrCi0JUEFEQVBURVIyMDAwCQlwYWRhcHRlcjsJCS8vIFBvaW50ZXIgdG8gYWRhcHRlciBjb250cm9sIHN0cnVjdHVyZQotCVBERVYyMDAwCQkJcGRldjsKLQlTY3NpX0NtbmQJCSAgICpTQ3BudDsKLQlVQ0hBUgkJCQl0YWcgPSAwOwotCVVDSEFSCQkJCXRhZzA7Ci0JVUxPTkcJCQkJZXJyb3I7Ci0JaW50CQkJCQlwdW47Ci0JaW50CQkJCQlidXM7Ci0JaW50CQkJCQl6OwotICAgIHVuc2lnbmVkIGxvbmcJCWZsYWdzOwotICAgIGludCBoYW5kbGVkID0gMDsKLQotCURFQihwcmludGsgKCJcbnBjaTIwMDAgcmVjZWl2ZWQgaW50ZXJydXB0ICIpKTsKLQlmb3IgKCB6ID0gMDsgeiA8IE51bUFkYXB0ZXJzOyAgeisrICkJCQkJCQkJCQkJLy8gc2NhbiBmb3IgaW50ZXJydXB0IHRvIHByb2Nlc3MKLQkJewotCQlpZiAoIFBzaUhvc3Rbel0tPmlycSA9PSAoVUNIQVIpKGlycSAmIDB4RkYpICkKLQkJCXsKLQkJCXRhZyA9IGluYl9wIChIT1NUREFUQShQc2lIb3N0W3pdKS0+dGFnKTsKLQkJCWlmICggIHRhZyApCi0JCQkJewotCQkJCXNob3N0ID0gUHNpSG9zdFt6XTsKLQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCWlmICggIXNob3N0ICkKLQkJewotCQlERUIgKHByaW50ayAoIlxucGNpMjAwMDogbm90IG15IGludGVycnVwdCIpKTsKLQkJZ290byBvdXQ7Ci0JCX0KLQotICAgIGhhbmRsZWQgPSAxOwotCXNwaW5fbG9ja19pcnFzYXZlKHNob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKLQlwYWRhcHRlciA9IEhPU1REQVRBKHNob3N0KTsKLQotCXRhZzAgPSB0YWcgJiAweDdGOwkJCQkJCQkJCQkJCQkJCS8vIG1hc2sgb2ZmIHRoZSBlcnJvciBiaXQKLQlmb3IgKCBidXMgPSAwOyAgYnVzIDwgTUFYX0JVUzsgIGJ1cysrICkJCQkJCQkJCQkJLy8gc2NhbiB0aGUgYnVzc2VzCi0gICAgCXsKLQkJZm9yICggcHVuID0gMDsgIHB1biA8IE1BWF9VTklUUzsgIHB1bisrICkJCQkJCQkJCS8vIHNjYW4gdGhlIHRhcmdldHMKLSAgICAJCXsKLQkJCXBkZXYgPSAmcGFkYXB0ZXItPmRldltidXNdW3B1bl07Ci0JCQlpZiAoICFwZGV2LT50YWcgKQotICAgIAkJCWNvbnRpbnVlOwotCQkJaWYgKCBwZGV2LT50YWcgPT0gdGFnMCApCQkJCQkJCQkJCQkvLyBpcyB0aGlzIGl0PwotCQkJCXsKLQkJCQlwZGV2LT50YWcgPSAwOwotCQkJCVNDcG50ID0gcGRldi0+U0NwbnQ7Ci0JCQkJZ290byB1bm1hcFByb2NlZWQ7Ci0gICAgCQkJfQotCQkJfQotICAgIAl9Ci0KLQlvdXRiX3AgKDB4RkYsIHBhZGFwdGVyLT50YWcpOwkJCQkJCQkJCQkJCS8vIGNsZWFyIHRoZSBvcCBpbnRlcnJ1cHQKLQlvdXRiX3AgKENNRF9ET05FLCBwYWRhcHRlci0+Y21kKTsJCQkJCQkJCQkJCS8vIGNvbXBsZXRlIHRoZSBvcAotCWdvdG8gaXJxX3JldHVybjsJCQkJCQkJCQkJCQkJCQkvLyBkb25lLCBidXQsIHdpdGggd2hhdD8KLQotdW5tYXBQcm9jZWVkOjsKLQlpZiAoICFidXMgKQotCQl7Ci0JCXN3aXRjaCAoIFNDcG50LT5jbW5kWzBdICkKLQkJCXsKLQkJCWNhc2UgU0NTSU9QX1RFU1RfVU5JVF9SRUFEWToKLQkJCQlwY2lfdW5tYXBfc2luZ2xlIChwYWRhcHRlci0+cGRldiwgU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4sIHNpemVvZiAoU0NwbnQtPnNlbnNlX2J1ZmZlciksIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQkJZ290byBpcnFQcm9jZWVkOwotCQkJY2FzZSBTQ1NJT1BfUkVBRF9DQVBBQ0lUWToKLQkJCQlwY2lfdW5tYXBfc2luZ2xlIChwYWRhcHRlci0+cGRldiwgU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4sIDgsIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQkJZ290byBpcnFQcm9jZWVkOwotCQkJY2FzZSBTQ1NJT1BfVkVSSUZZOgotCQkJY2FzZSBTQ1NJT1BfU1RBUlRfU1RPUF9VTklUOgotCQkJY2FzZSBTQ1NJT1BfTUVESVVNX1JFTU9WQUw6Ci0JCQkJZ290byBpcnFQcm9jZWVkOwotCQkJfQotCQl9Ci0JaWYgKCBTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiApCi0JCXBjaV91bm1hcF9zaW5nbGUgKHBhZGFwdGVyLT5wZGV2LCBTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiwgU0NwbnQtPnJlcXVlc3RfYnVmZmxlbiwgU0NwbnQtPnNjX2RhdGFfZGlyZWN0aW9uKTsKLQllbHNlIAotCQl7Ci0JCWlmICggU0NwbnQtPnVzZV9zZyApCi0JCQlwY2lfdW5tYXBfc2cgKHBhZGFwdGVyLT5wZGV2LCAoc3RydWN0IHNjYXR0ZXJsaXN0ICopU0NwbnQtPnJlcXVlc3RfYnVmZmVyLCBTQ3BudC0+dXNlX3NnLCBTQ3BudC0+c2NfZGF0YV9kaXJlY3Rpb24pOwotCQl9Ci0KLWlycVByb2NlZWQ6OwotCWlmICggdGFnICYgRVJSMDhfVEFHR0VEICkJCQkJCQkJCQkJCQkvLyBpcyB0aGVyZSBhbiBlcnJvciBoZXJlPwotCQl7Ci0JCWlmICggV2FpdFJlYWR5IChwYWRhcHRlcikgKQotCQkJewotCQkJT3BEb25lIChTQ3BudCwgRElEX1RJTUVfT1VUIDw8IDE2KTsKLQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCX0KLQotCQlvdXRiX3AgKHRhZzAsIHBhZGFwdGVyLT5tYjApOwkJCQkJCQkJCQkvLyBnZXQgcmVhbCBlcnJvciBjb2RlCi0JCW91dGJfcCAoQ01EX0VSUk9SLCBwYWRhcHRlci0+Y21kKTsKLQkJaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCQkJCQkJCQkJCQkvLyB3YWl0IGZvciBjb250cm9sbGVyIHRvIHN1Y2sgdXAgdGhlIG9wCi0JCQl7Ci0JCQlPcERvbmUgKFNDcG50LCBESURfVElNRV9PVVQgPDwgMTYpOwotCQkJZ290byBpcnFfcmV0dXJuOwotCQkJfQotCi0JCWVycm9yID0gaW5sIChwYWRhcHRlci0+bWIwKTsJCQkJCQkJCQkJLy8gZ2V0IGVycm9yIGRhdGEKLQkJb3V0Yl9wICgweEZGLCBwYWRhcHRlci0+dGFnKTsJCQkJCQkJCQkJLy8gY2xlYXIgdGhlIG9wIGludGVycnVwdAotCQlvdXRiX3AgKENNRF9ET05FLCBwYWRhcHRlci0+Y21kKTsJCQkJCQkJCQkvLyBjb21wbGV0ZSB0aGUgb3AKLQotCQlERUIgKHByaW50ayAoInN0YXR1czogJWxYICIsIGVycm9yKSk7Ci0JCWlmICggZXJyb3IgPT0gMHgwMDAyMDAwMiApCQkJCQkJCQkJCQkvLyBpcyB0aGlzIGVycm9yIGEgY2hlY2sgY29uZGl0aW9uPwotCQkJewotCQkJaWYgKCBidXMgKQkJCQkJCQkJCQkJCQkJLy8gYXJlIHdlIGRvaW50IFNDU0kgY29tbWFuZHM/Ci0JCQkJewotCQkJCU9wRG9uZSAoU0NwbnQsIChESURfT0sgPDwgMTYpIHwgMik7Ci0JCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCX0KLQkJCWlmICggKlNDcG50LT5jbW5kID09IFNDU0lPUF9URVNUX1VOSVRfUkVBRFkgKQotCQkJCU9wRG9uZSAoU0NwbnQsIChEUklWRVJfU0VOU0UgPDwgMjQpIHwgKERJRF9PSyA8PCAxNikgfCAyKTsJLy8gdGVzdCBjYWxsZXIgd2UgaGF2ZSBzZW5zZSBkYXRhIHRvbwotCQkJZWxzZQotCQkJCU9wRG9uZSAoU0NwbnQsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQlnb3RvIGlycV9yZXR1cm47Ci0JCQl9Ci0JCU9wRG9uZSAoU0NwbnQsIERJRF9FUlJPUiA8PCAxNik7Ci0JCWdvdG8gaXJxX3JldHVybjsKLQkJfQotCi0Jb3V0Yl9wICgweEZGLCBwYWRhcHRlci0+dGFnKTsJCQkJCQkJCQkJCS8vIGNsZWFyIHRoZSBvcCBpbnRlcnJ1cHQKLQlvdXRiX3AgKENNRF9ET05FLCBwYWRhcHRlci0+Y21kKTsJCQkJCQkJCQkJLy8gY29tcGxldGUgdGhlIG9wCi0JT3BEb25lIChTQ3BudCwgRElEX09LIDw8IDE2KTsKLQotaXJxX3JldHVybjoKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKHNob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKLW91dDoKLSAgICByZXR1cm4gSVJRX1JFVFZBTChoYW5kbGVkKTsKLX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglQY2kyMDAwX1F1ZXVlQ29tbWFuZAotICoKLSAqCURlc2NyaXB0aW9uOglQcm9jZXNzIGEgcXVldWVkIGNvbW1hbmQgZnJvbSB0aGUgU0NTSSBtYW5hZ2VyLgotICoKLSAqCVBhcmFtZXRlcnM6CQlTQ3BudCAtIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KLSAqCQkJCQlkb25lICAtIFBvaW50ZXIgdG8gZG9uZSBmdW5jdGlvbiB0byBjYWxsLgotICoKLSAqCVJldHVybnM6CQlTdGF0dXMgY29kZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLWludCBQY2kyMDAwX1F1ZXVlQ29tbWFuZCAoU2NzaV9DbW5kICpTQ3BudCwgdm9pZCAoKmRvbmUpKFNjc2lfQ21uZCAqKSkKLQl7Ci0JVUNIQVIJCSAgICpjZGIgPSAoVUNIQVIgKilTQ3BudC0+Y21uZDsJCQkJCS8vIFBvaW50ZXIgdG8gU0NTSSBDREIKLQlQQURBUFRFUjIwMDAJcGFkYXB0ZXIgPSBIT1NUREFUQShTQ3BudC0+ZGV2aWNlLT5ob3N0KTsJCQkvLyBQb2ludGVyIHRvIGFkYXB0ZXIgY29udHJvbCBzdHJ1Y3R1cmUKLQlpbnQJCQkJcmMJCSA9IC0xOwkJCQkJCQkJLy8gY29tbWFuZCByZXR1cm4gY29kZQotCVVDSEFSCQkJYnVzCQkgPSBTQ3BudC0+ZGV2aWNlLT5jaGFubmVsOwotCVVDSEFSCQkJcHVuCQkgPSBTQ3BudC0+ZGV2aWNlLT5pZDsKLQlVQ0hBUgkJCWx1bgkJID0gU0NwbnQtPmRldmljZS0+bHVuOwotCVVDSEFSCQkJY21kOwotCVBERVYyMDAwCQlwZGV2CSA9ICZwYWRhcHRlci0+ZGV2W2J1c11bcHVuXTsKLQotCWlmICggIWRvbmUgKQotCQl7Ci0JCXByaW50aygicGNpMjAwMF9xdWV1ZWNvbW1hbmQ6ICUwMlg6IGRvbmUgY2FuJ3QgYmUgTlVMTFxuIiwgKmNkYik7Ci0JCXJldHVybiAwOwotCQl9Ci0KLQlTQ3BudC0+c2NzaV9kb25lID0gZG9uZTsKLQlTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiA9IDA7Ci0JcGRldi0+U0NwbnQgPSBTQ3BudDsgIAkJCQkJCQkJCS8vIFNhdmUgdGhpcyBjb21tYW5kIGRhdGEKLQotCWlmICggV2FpdFJlYWR5IChwYWRhcHRlcikgKQotCQl7Ci0JCXJjID0gRElEX0VSUk9SOwotCQlnb3RvIGZpbmlzaGVkOwotCQl9Ci0KLQlvdXR3X3AgKHB1biB8IChsdW4gPDwgOCksIHBhZGFwdGVyLT5tYjApOwotCi0JaWYgKCBidXMgKQotCQl7Ci0JCURFQiAoaWYoKmNkYikgcHJpbnRrICgiXG5DREI6ICVYLSAgJVggJVggJVggJVggJVggJVggJVggJVggJVggJVggIiwgU0NwbnQtPmNtZF9sZW4sIGNkYlswXSwgY2RiWzFdLCBjZGJbMl0sIGNkYlszXSwgY2RiWzRdLCBjZGJbNV0sIGNkYls2XSwgY2RiWzddLCBjZGJbOF0sIGNkYls5XSkpOwotCQlERUIgKGlmKCpjZGIpIHByaW50ayAoIlxudGltZW91dF9wZXJfY29tbWFuZDogJWQsIHRpbWVvdXRfdG90YWw6ICVkLCB0aW1lb3V0OiAlZCIsIFNDcG50LT50aW1lb3V0X3Blcl9jb21tYW5kLAotCQkJCQkJCSAgU0NwbnQtPnRpbWVvdXRfdG90YWwsIFNDcG50LT50aW1lb3V0KSk7Ci0JCW91dGwgKFNDcG50LT50aW1lb3V0X3Blcl9jb21tYW5kLCBwYWRhcHRlci0+bWIxKTsKLQkJb3V0Yl9wIChDTURfU0NTSV9USU1FT1VULCBwYWRhcHRlci0+Y21kKTsKLQkJaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCi0JCQl7Ci0JCQlyYyA9IERJRF9FUlJPUjsKLQkJCWdvdG8gZmluaXNoZWQ7Ci0JCQl9Ci0KLQkJb3V0d19wIChwdW4gfCAobHVuIDw8IDgpLCBwYWRhcHRlci0+bWIwKTsKLQkJb3V0d19wIChTQ3BudC0+Y21kX2xlbiA8PCA4LCBwYWRhcHRlci0+bWIwICsgMik7Ci0JCW1lbWNweSAocGRldi0+Y2RiLCBjZGIsIE1BWF9DT01NQU5EX1NJWkUpOwotCi0JCW91dGwgKHBkZXYtPmNkYkRtYSwgcGFkYXB0ZXItPm1iMSk7Ci0JCWlmICggQnVpbGRTZ0xpc3QgKFNDcG50LCBwYWRhcHRlciwgcGRldikgKQotCQkJY21kID0gQ01EX1NDU0lfVEhSVTsKLQkJZWxzZQotCQkJY21kID0gQ01EX1NDU0lfVEhSVV9TRzsKLQkJaWYgKCAocGRldi0+dGFnID0gQ29tbWFuZCAocGFkYXB0ZXIsIGNtZCkpID09IDAgKQotCQkJcmMgPSBESURfVElNRV9PVVQ7Ci0JCWdvdG8gZmluaXNoZWQ7Ci0JCX0KLQllbHNlCi0JCXsKLQkJaWYgKCBsdW4gKQotCQkJewotCQkJcmMgPSBESURfQkFEX1RBUkdFVDsKLQkJCWdvdG8gZmluaXNoZWQ7Ci0JCQl9Ci0JCX0KLQotCXN3aXRjaCAoICpjZGIgKQotCQl7Ci0JCWNhc2UgU0NTSU9QX0lOUVVJUlk6ICAgCQkJCQkvLyBpbnF1aXJ5IENEQgotCQkJaWYgKCBjZGJbMl0gPT0gU0NfTVlfUkFJRCApCi0JCQkJewotCQkJCXN3aXRjaCAoIGNkYlszXSApIAotCQkJCQl7Ci0JCQkJCWNhc2UgTVlfU0NTSV9SRUJVSUxEOgotCQkJCQkJT3BEb25lIChTQ3BudCwgUHNpUmFpZENtZCAocGFkYXB0ZXIsIENNRF9SQUlEX1JFQlVJTEQpIDw8IDE2KTsKLQkJCQkJCXJldHVybiAwOwotCQkJCQljYXNlIE1ZX1NDU0lfQUxBUk1NVVRFOgotCQkJCQkJT3BEb25lIChTQ3BudCwgUHNpUmFpZENtZCAocGFkYXB0ZXIsIENNRF9SQUlEX01VVEUpIDw8IDE2KTsKLQkJCQkJCXJldHVybiAwOwotCQkJCQljYXNlIE1ZX1NDU0lfREVNT0ZBSUw6Ci0JCQkJCQlPcERvbmUgKFNDcG50LCBQc2lSYWlkQ21kIChwYWRhcHRlciwgQ01EX1JBSURfRkFJTCkgPDwgMTYpOwotCQkJCQkJcmV0dXJuIDA7Ci0JCQkJCWRlZmF1bHQ6Ci0JCQkJCQlpZiAoIFNDcG50LT51c2Vfc2cgKQotCQkJCQkJCXsKLQkJCQkJCQlyYyA9IERJRF9FUlJPUjsKLQkJCQkJCQlnb3RvIGZpbmlzaGVkOwotCQkJCQkJCX0KLQkJCQkJCWVsc2UKLQkJCQkJCQl7Ci0JCQkJCQkJU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4gPSBwY2lfbWFwX3NpbmdsZSAocGFkYXB0ZXItPnBkZXYsIFNDcG50LT5yZXF1ZXN0X2J1ZmZlciwgU0NwbnQtPnJlcXVlc3RfYnVmZmxlbiwKLQkJCQkJCQkJCQkJCQkgIFNDcG50LT5zY19kYXRhX2RpcmVjdGlvbik7Ci0JCQkJCQkJb3V0bCAoU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4sIHBhZGFwdGVyLT5tYjIpOwotCQkJCQkJCX0KLQkJCQkJCW91dGwgKGNkYls1XSwgcGFkYXB0ZXItPm1iMCk7Ci0JCQkJCQlvdXRsIChjZGJbM10sIHBhZGFwdGVyLT5tYjMpOwotCQkJCQkJY21kID0gQ01EX0RBU0RfUkFJRF9SUTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCQkJCi0JCQlpZiAoIFNDcG50LT51c2Vfc2cgKQotCQkJCXsKLQkJCQlTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiA9IHBjaV9tYXBfc2luZ2xlIChwYWRhcHRlci0+cGRldiwKLQkJCQkJCQkJCSAgKChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKilTQ3BudC0+cmVxdWVzdF9idWZmZXIpLT5hZGRyZXNzLAotCQkJCQkJCQkJICBTQ3BudC0+cmVxdWVzdF9idWZmbGVuLAotCQkJCQkJCQkJICBTQ3BudC0+c2NfZGF0YV9kaXJlY3Rpb24pOwotCQkJCX0KLQkJCWVsc2UKLQkJCQl7Ci0JCQkJU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4gPSBwY2lfbWFwX3NpbmdsZSAocGFkYXB0ZXItPnBkZXYsIFNDcG50LT5yZXF1ZXN0X2J1ZmZlciwKLQkJCQkJCQkJCSAgU0NwbnQtPnJlcXVlc3RfYnVmZmxlbiwKLQkJCQkJCQkJCSAgU0NwbnQtPnNjX2RhdGFfZGlyZWN0aW9uKTsKLQkJCQl9Ci0JCQlvdXRsIChTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiwgcGFkYXB0ZXItPm1iMik7Ci0JCQlvdXRsIChTQ3BudC0+cmVxdWVzdF9idWZmbGVuLCBwYWRhcHRlci0+bWIzKTsKLQkJCWNtZCA9IENNRF9EQVNEX1NDU0lfSU5ROwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBTQ1NJT1BfVEVTVF9VTklUX1JFQURZOgkJCS8vIHRlc3QgdW5pdCByZWFkeSBDREIKLQkJCVNDcG50LT5TQ3AuaGF2ZV9kYXRhX2luID0gcGNpX21hcF9zaW5nbGUgKHBhZGFwdGVyLT5wZGV2LCBTQ3BudC0+c2Vuc2VfYnVmZmVyLCBzaXplb2YgKFNDcG50LT5zZW5zZV9idWZmZXIpLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJb3V0bCAoU0NwbnQtPlNDcC5oYXZlX2RhdGFfaW4sIHBhZGFwdGVyLT5tYjIpOwotCQkJb3V0bCAoc2l6ZW9mIChTQ3BudC0+c2Vuc2VfYnVmZmVyKSwgcGFkYXB0ZXItPm1iMyk7Ci0JCQljbWQgPSBDTURfVEVTVF9SRUFEWTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgU0NTSU9QX1JFQURfQ0FQQUNJVFk6CQkJICAJLy8gcmVhZCBjYXBhY2l0eSBDREIKLQkJCWlmICggU0NwbnQtPnVzZV9zZyApCi0JCQkJewotCQkJCVNDcG50LT5TQ3AuaGF2ZV9kYXRhX2luID0gcGNpX21hcF9zaW5nbGUgKHBhZGFwdGVyLT5wZGV2LCAoKHN0cnVjdCBzY2F0dGVybGlzdCAqKShTQ3BudC0+cmVxdWVzdF9idWZmZXIpKS0+YWRkcmVzcywKLQkJCQkJCQkJCQkgIDgsIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQkJfQotCQkJZWxzZQotCQkJCVNDcG50LT5TQ3AuaGF2ZV9kYXRhX2luID0gcGNpX21hcF9zaW5nbGUgKHBhZGFwdGVyLT5wZGV2LCBTQ3BudC0+cmVxdWVzdF9idWZmZXIsIDgsIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlvdXRsIChTQ3BudC0+U0NwLmhhdmVfZGF0YV9pbiwgcGFkYXB0ZXItPm1iMik7Ci0JCQlvdXRsICg4LCBwYWRhcHRlci0+bWIzKTsKLQkJCWNtZCA9IENNRF9EQVNEX0NBUDsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9WRVJJRlk6CQkJCQkJLy8gdmVyaWZ5IENEQgotCQkJb3V0d19wICgoVVNIT1JUKWNkYls4XSB8ICgoVVNIT1JUKWNkYls3XSA8PCA4KSwgcGFkYXB0ZXItPm1iMCArIDIpOwotCQkJb3V0bCAoWFNDU0kyTE9ORyAoJmNkYlsyXSksIHBhZGFwdGVyLT5tYjEpOwotCQkJY21kID0gQ01EX1JFQURfU0c7Ci0JCQlicmVhazsKLQkJY2FzZSBTQ1NJT1BfUkVBRDoJCQkJCQkvLyByZWFkMTAgQ0RCCi0JCQlvdXR3X3AgKChVU0hPUlQpY2RiWzhdIHwgKChVU0hPUlQpY2RiWzddIDw8IDgpLCBwYWRhcHRlci0+bWIwICsgMik7Ci0JCQlvdXRsIChYU0NTSTJMT05HICgmY2RiWzJdKSwgcGFkYXB0ZXItPm1iMSk7Ci0JCQlpZiAoIEJ1aWxkU2dMaXN0IChTQ3BudCwgcGFkYXB0ZXIsIHBkZXYpICkKLQkJCQljbWQgPSBDTURfUkVBRDsKLQkJCWVsc2UKLQkJCQljbWQgPSBDTURfUkVBRF9TRzsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9SRUFENjoJCQkJCQkvLyByZWFkNiAgQ0RCCi0JCQlvdXR3X3AgKGNkYls0XSwgcGFkYXB0ZXItPm1iMCArIDIpOwotCQkJb3V0bCAoKFNDU0kyTE9ORyAoJmNkYlsxXSkpICYgMHgwMDFGRkZGRiwgcGFkYXB0ZXItPm1iMSk7Ci0JCQlpZiAoIEJ1aWxkU2dMaXN0IChTQ3BudCwgcGFkYXB0ZXIsIHBkZXYpICkKLQkJCQljbWQgPSBDTURfUkVBRDsKLQkJCWVsc2UKLQkJCQljbWQgPSBDTURfUkVBRF9TRzsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9XUklURToJCQkJCQkvLyB3cml0ZTEwIENEQgotCQkJb3V0d19wICgoVVNIT1JUKWNkYls4XSB8ICgoVVNIT1JUKWNkYls3XSA8PCA4KSwgcGFkYXB0ZXItPm1iMCArIDIpOwotCQkJb3V0bCAoWFNDU0kyTE9ORyAoJmNkYlsyXSksIHBhZGFwdGVyLT5tYjEpOwotCQkJaWYgKCBCdWlsZFNnTGlzdCAoU0NwbnQsIHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJY21kID0gQ01EX1dSSVRFOwotCQkJZWxzZQotCQkJCWNtZCA9IENNRF9XUklURV9TRzsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9XUklURTY6CQkJCQkJLy8gd3JpdGU2ICBDREIKLQkJCW91dHdfcCAoY2RiWzRdLCBwYWRhcHRlci0+bWIwICsgMik7Ci0JCQlvdXRsICgoU0NTSTJMT05HICgmY2RiWzFdKSkgJiAweDAwMUZGRkZGLCBwYWRhcHRlci0+bWIxKTsKLQkJCWlmICggQnVpbGRTZ0xpc3QgKFNDcG50LCBwYWRhcHRlciwgcGRldikgKQotCQkJCWNtZCA9IENNRF9XUklURTsKLQkJCWVsc2UKLQkJCQljbWQgPSBDTURfV1JJVEVfU0c7Ci0JCQlicmVhazsKLQkJY2FzZSBTQ1NJT1BfU1RBUlRfU1RPUF9VTklUOgotCQkJY21kID0gQ01EX0VKRUNUX01FRElBOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0NTSU9QX01FRElVTV9SRU1PVkFMOgotCQkJc3dpdGNoICggY2RiWzRdICkKLQkJCQl7Ci0JCQkJY2FzZSAwOgotCQkJCQljbWQgPSBDTURfVU5MT0NLX0RPT1I7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgMToKLQkJCQkJY21kID0gQ01EX0xPQ0tfRE9PUjsKLQkJCQkJYnJlYWs7Ci0JCQkJZGVmYXVsdDoKLQkJCQkJY21kID0gMDsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJaWYgKCBjbWQgKQotCQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJREVCIChwcmludGsgKCJwY2kyMDAwX3F1ZXVlY29tbWFuZDogVW5zdXBwb3J0ZWQgY29tbWFuZCAlMDJYXG4iLCAqY2RiKSk7Ci0JCQlPcERvbmUgKFNDcG50LCBESURfRVJST1IgPDwgMTYpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCWlmICggKHBkZXYtPnRhZyA9IENvbW1hbmQgKHBhZGFwdGVyLCBjbWQpKSA9PSAwICkKLQkJcmMgPSBESURfVElNRV9PVVQ7Ci1maW5pc2hlZDo7Ci0JaWYgKCByYyAhPSAtMSApCi0JCU9wRG9uZSAoU0NwbnQsIHJjIDw8IDE2KTsKLQlyZXR1cm4gMDsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJUGNpMjAwMF9EZXRlY3QKLSAqCi0gKglEZXNjcmlwdGlvbjoJRGV0ZWN0IGFuZCBpbml0aWFsaXplIG91ciBib2FyZHMuCi0gKgotICoJUGFyYW1ldGVyczoJCXRwbnQgLSBQb2ludGVyIHRvIFNDU0kgaG9zdCB0ZW1wbGF0ZSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCU51bWJlciBvZiBhZGFwdGVycyBpbnN0YWxsZWQuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1pbnQgUGNpMjAwMF9EZXRlY3QgKFNjc2lfSG9zdF9UZW1wbGF0ZSAqdHBudCkKLQl7Ci0JaW50CQkJCQlmb3VuZCA9IDA7Ci0JaW50CQkJCQlpbnN0YWxsZWQgPSAwOwotCXN0cnVjdCBTY3NpX0hvc3QgICAqcHNob3N0OwotCVBBREFQVEVSMjAwMAkgICAgcGFkYXB0ZXI7Ci0JaW50CQkJCQl6LCB6ejsKLQlpbnQJCQkJCXNldGlycTsKLQlzdHJ1Y3QgcGNpX2RldgkgICAqcGRldiA9IE5VTEw7Ci0JVUNIQVIJCQkgICAqY29uc2lzdGVudDsKLQlkbWFfYWRkcl90CQkJY29uc2lzdGVudERtYTsKLQotCXdoaWxlICggKHBkZXYgPSBwY2lfZmluZF9kZXZpY2UgKFZFTkRPUl9QU0ksIERFVklDRV9ST1lfMSwgcGRldikpICE9IE5VTEwgKQotCQl7Ci0JCWlmIChwY2lfZW5hYmxlX2RldmljZShwZGV2KSkKLQkJCWNvbnRpbnVlOwotCQlwc2hvc3QgPSBzY3NpX3JlZ2lzdGVyICh0cG50LCBzaXplb2YoQURBUFRFUjIwMDApKTsKLQkJaWYocHNob3N0ID09IE5VTEwpCi0JCQljb250aW51ZTsKLQkJcGFkYXB0ZXIgPSBIT1NUREFUQShwc2hvc3QpOwotCi0JCXBhZGFwdGVyLT5iYXNlUG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydCAocGRldiwgMSk7Ci0JCURFQiAocHJpbnRrICgiXG5CYXNlIFJlZ3MgPSAlIzA0WCIsIHBhZGFwdGVyLT5iYXNlUG9ydCkpOwkJCS8vIGdldCB0aGUgYmFzZSBJL08gcG9ydCBhZGRyZXNzCi0JCXBhZGFwdGVyLT5tYjAJPSBwYWRhcHRlci0+YmFzZVBvcnQgKyBSVFJfTUFJTEJPWDsJCSAgIAkJCS8vIGdldCB0aGUgMzIgYml0IG1haWwgYm94ZXMKLQkJcGFkYXB0ZXItPm1iMQk9IHBhZGFwdGVyLT5iYXNlUG9ydCArIFJUUl9NQUlMQk9YICsgNDsKLQkJcGFkYXB0ZXItPm1iMgk9IHBhZGFwdGVyLT5iYXNlUG9ydCArIFJUUl9NQUlMQk9YICsgODsKLQkJcGFkYXB0ZXItPm1iMwk9IHBhZGFwdGVyLT5iYXNlUG9ydCArIFJUUl9NQUlMQk9YICsgMTI7Ci0JCXBhZGFwdGVyLT5tYjQJPSBwYWRhcHRlci0+YmFzZVBvcnQgKyBSVFJfTUFJTEJPWCArIDE2OwotCQlwYWRhcHRlci0+Y21kCT0gcGFkYXB0ZXItPmJhc2VQb3J0ICsgUlRSX0xPQ0FMX0RPT1JCRUxMOwkJCS8vIGNvbW1hbmQgcmVnaXN0ZXIKLQkJcGFkYXB0ZXItPnRhZwk9IHBhZGFwdGVyLT5iYXNlUG9ydCArIFJUUl9QQ0lfRE9PUkJFTEw7CQkJLy8gdGFnL3Jlc3BvbnNlIHJlZ2lzdGVyCi0JCXBhZGFwdGVyLT5wZGV2ID0gcGRldjsKLQotCQlpZiAoIFdhaXRSZWFkeSAocGFkYXB0ZXIpICkKLQkJCWdvdG8gdW5yZWdpc3RlcjsKLQkJb3V0Yl9wICgweDg0LCBwYWRhcHRlci0+bWIwKTsKLQkJb3V0Yl9wIChDTURfU1BFQ0lGWSwgcGFkYXB0ZXItPmNtZCk7Ci0JCWlmICggV2FpdFJlYWR5IChwYWRhcHRlcikgKQotCQkJZ290byB1bnJlZ2lzdGVyOwotCi0JCWNvbnNpc3RlbnQgPSBwY2lfYWxsb2NfY29uc2lzdGVudCAocGRldiwgY29uc2lzdGVudExlbiwgJmNvbnNpc3RlbnREbWEpOwotCQlpZiAoICFjb25zaXN0ZW50ICkKLQkJCXsKLQkJCXByaW50ayAoIlVuYWJsZSB0byBhbGxvY2F0ZSBETUEgbWVtb3J5IGZvciBQQ0ktMjAwMCBjb250cm9sbGVyLlxuIik7Ci0JCQlnb3RvIHVucmVnaXN0ZXI7Ci0JCQl9Ci0JCQotCQlzY3NpX3NldF9kZXZpY2UocHNob3N0LCAmcGRldi0+ZGV2KTsKLQkJcHNob3N0LT5pcnEgPSBwZGV2LT5pcnE7Ci0JCXNldGlycSA9IDE7Ci0JCXBhZGFwdGVyLT5pcnFPd25lZCA9IDA7Ci0JCWZvciAoIHogPSAwOyAgeiA8IGluc3RhbGxlZDsgIHorKyApCQkJCQkJCQkJLy8gc2NhbiBmb3Igc2hhcmVkIGludGVycnVwdHMKLQkJCXsKLQkJCWlmICggUHNpSG9zdFt6XS0+aXJxID09IHBzaG9zdC0+aXJxICkJCQkJCQkJLy8gaWYgc2hhcmVkIHRoZW4sIGRvbid0IHBvc3NlcwotCQkJCXNldGlycSA9IDA7Ci0JCQl9Ci0JCWlmICggc2V0aXJxICkJCQkJCQkJCQkJCQkvLyBpZiBub3Qgc2hhcmVkLCBwb3NzZXMKLQkJCXsKLQkJCWlmICggcmVxdWVzdF9pcnEgKHBzaG9zdC0+aXJxLCBJcnFfSGFuZGxlciwgU0FfU0hJUlEsICJwY2kyMDAwIiwgcGFkYXB0ZXIpIDwgMCApCi0JCQkJewotCQkJCWlmICggcmVxdWVzdF9pcnEgKHBzaG9zdC0+aXJxLCBJcnFfSGFuZGxlciwgU0FfSU5URVJSVVBUIHwgU0FfU0hJUlEsICJwY2kyMDAwIiwgcGFkYXB0ZXIpIDwgMCApCi0JCQkJCXsKLQkJCQkJcHJpbnRrICgiVW5hYmxlIHRvIGFsbG9jYXRlIElSUSBmb3IgUENJLTIwMDAgY29udHJvbGxlci5cbiIpOwotCQkJCQlwY2lfZnJlZV9jb25zaXN0ZW50IChwZGV2LCBjb25zaXN0ZW50TGVuLCBjb25zaXN0ZW50LCBjb25zaXN0ZW50RG1hKTsKLQkJCQkJZ290byB1bnJlZ2lzdGVyOwotCQkJCQl9Ci0JCQkJfQotCQkJcGFkYXB0ZXItPmlycU93bmVkID0gcHNob3N0LT5pcnE7CQkJCQkJLy8gc2V0IElSUSBhcyBvd25lZAotCQkJfQotCQlQc2lIb3N0W2luc3RhbGxlZF0JPSBwc2hvc3Q7CQkJCQkJCQkJCS8vIHNhdmUgU0NTSV9IT1NUIHBvaW50ZXIKLQotCQlwc2hvc3QtPmlvX3BvcnQJCT0gcGFkYXB0ZXItPmJhc2VQb3J0OwotCQlwc2hvc3QtPm5faW9fcG9ydAk9IDB4RkY7Ci0JCXBzaG9zdC0+dW5pcXVlX2lkCT0gcGFkYXB0ZXItPmJhc2VQb3J0OwotCQlwc2hvc3QtPm1heF9pZAkJPSAxNjsKLQkJcHNob3N0LT5tYXhfY2hhbm5lbAk9IDE7Ci0KLQkJZm9yICggenogPSAwOyAgenogPCBNQVhfQlVTOyAgenorKyApCi0JCQlmb3IgKCB6ID0gMDsgeiA8IE1BWF9VTklUUzsgIHorKyApCi0JCQkJewotCQkJCXBhZGFwdGVyLT5kZXZbenpdW3pdLnRhZyA9IDA7Ci0JCQkJcGFkYXB0ZXItPmRldlt6el1bel0uc2NhdEdhdGggPSAoUFNDQVRHQVRIKWNvbnNpc3RlbnQ7Ci0JCQkJcGFkYXB0ZXItPmRldlt6el1bel0uc2NhdEdhdGhEbWEgPSBjb25zaXN0ZW50RG1hOwotCQkJCWNvbnNpc3RlbnQgKz0gMTYgKiBzaXplb2YgKFNDQVRHQVRIKTsKLQkJCQljb25zaXN0ZW50RG1hICs9IDE2ICogc2l6ZW9mIChTQ0FUR0FUSCk7Ci0JCQkJcGFkYXB0ZXItPmRldlt6el1bel0uY2RiID0gKFVDSEFSICopY29uc2lzdGVudDsKLQkJCQlwYWRhcHRlci0+ZGV2W3p6XVt6XS5jZGJEbWEgPSBjb25zaXN0ZW50RG1hOwotCQkJCWNvbnNpc3RlbnQgKz0gTUFYX0NPTU1BTkRfU0laRTsKLQkJCQljb25zaXN0ZW50RG1hICs9IE1BWF9DT01NQU5EX1NJWkU7Ci0JCQkJfQotCQkJCi0JCXByaW50aygiXG5QU0ktMjAwMCBJbnRlbGxpZ2VudCBTdG9yYWdlIFNDU0kgQ09OVFJPTExFUjogYXQgSS9PID0gJWxYICBJUlEgPSAlZFxuIiwgcGFkYXB0ZXItPmJhc2VQb3J0LCBwc2hvc3QtPmlycSk7Ci0JCXByaW50aygiVmVyc2lvbiAlcywgQ29tcGlsZWQgJXMgJXNcblxuIiwgUENJMjAwMF9WRVJTSU9OLCAgX19EQVRFX18sIF9fVElNRV9fKTsKLQkJZm91bmQrKzsKLQkJaWYgKCArK2luc3RhbGxlZCA8IE1BWEFEQVBURVIgKQotCQkJY29udGludWU7Ci0JCWJyZWFrOwotdW5yZWdpc3Rlcjo7Ci0JCXNjc2lfdW5yZWdpc3RlciAocHNob3N0KTsKLQkJZm91bmQrKzsKLQkJfQotCU51bUFkYXB0ZXJzID0gaW5zdGFsbGVkOwotCXJldHVybiBpbnN0YWxsZWQ7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVBjaTIwMDBfQWJvcnQKLSAqCi0gKglEZXNjcmlwdGlvbjoJUHJvY2VzcyB0aGUgQWJvcnQgY29tbWFuZCBmcm9tIHRoZSBTQ1NJIG1hbmFnZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCVNDcG50IC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlBbGx3YXlzIHNub296ZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLWludCBQY2kyMDAwX0Fib3J0IChTY3NpX0NtbmQgKlNDcG50KQotCXsKLQlERUIgKHByaW50ayAoInBjaTIwMDBfYWJvcnRcbiIpKTsKLQlyZXR1cm4gU0NTSV9BQk9SVF9TTk9PWkU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVBjaTIwMDBfUmVzZXQKLSAqCi0gKglEZXNjcmlwdGlvbjoJUHJvY2VzcyB0aGUgUmVzZXQgY29tbWFuZCBmcm9tIHRoZSBTQ1NJIG1hbmFnZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCVNDcG50IC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoJCQkJCWZsYWdzIC0gRmxhZ3MgYWJvdXQgdGhlIHJlc2V0IGNvbW1hbmQKLSAqCi0gKglSZXR1cm5zOgkJTm8gYWN0aXZlIGNvbW1hbmQgYXQgdGhpcyB0aW1lLCBzbyB0aGlzIG1lYW5zCi0gKgkJCQkJdGhhdCBlYWNoIHRpbWUgd2UgZ290IHNvbWUga2luZCBvZiByZXNwb25zZSB0aGUKLSAqCQkJCQlsYXN0IHRpbWUgdGhyb3VnaC4gIFRlbGwgdGhlIG1pZC1sZXZlbCBjb2RlIHRvCi0gKgkJCQkJcmVxdWVzdCBzZW5zZSBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBkZWNpZGUgd2hhdAotICoJCQkJCXRvIGRvIG5leHQuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1pbnQgUGNpMjAwMF9SZXNldCAoU2NzaV9DbW5kICpTQ3BudCwgdW5zaWduZWQgaW50IHJlc2V0X2ZsYWdzKQotCXsKLQlyZXR1cm4gU0NTSV9SRVNFVF9QVU5UOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglQY2kyMDAwX1JlbGVhc2UKLSAqCi0gKglEZXNjcmlwdGlvbjoJUmVsZWFzZSByZXNvdXJjZXMgYWxsb2NhdGVkIGZvciBhIHNpbmdsZSBlYWNoIGFkYXB0ZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCXBzaG9zdCAtIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KLSAqCi0gKglSZXR1cm5zOgkJemVyby4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLWludCBQY2kyMDAwX1JlbGVhc2UgKHN0cnVjdCBTY3NpX0hvc3QgKnBzaG9zdCkKLQl7Ci0gICAgUEFEQVBURVIyMDAwCXBhZGFwdGVyID0gSE9TVERBVEEgKHBzaG9zdCk7Ci0KLQlpZiAoIHBhZGFwdGVyLT5pcnFPd25lZCApCi0JCWZyZWVfaXJxIChwc2hvc3QtPmlycSwgcGFkYXB0ZXIpOwotCXBjaV9mcmVlX2NvbnNpc3RlbnQgKHBhZGFwdGVyLT5wZGV2LCBjb25zaXN0ZW50TGVuLCBwYWRhcHRlci0+ZGV2WzBdWzBdLnNjYXRHYXRoLCBwYWRhcHRlci0+ZGV2WzBdWzBdLnNjYXRHYXRoRG1hKTsKLQlyZWxlYXNlX3JlZ2lvbiAocHNob3N0LT5pb19wb3J0LCBwc2hvc3QtPm5faW9fcG9ydCk7Ci0gICAgc2NzaV91bnJlZ2lzdGVyKHBzaG9zdCk7Ci0gICAgcmV0dXJuIDA7Ci0JfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJUGNpMjAwMF9CaW9zUGFyYW0KLSAqCi0gKglEZXNjcmlwdGlvbjoJUHJvY2VzcyB0aGUgYmlvc3BhcmFtIHJlcXVlc3QgZnJvbSB0aGUgU0NTSSBtYW5hZ2VyIHRvCi0gKgkJCQkJcmV0dXJuIEMvSC9TIGRhdGEuCi0gKgotICoJUGFyYW1ldGVyczoJCWRpc2sgLSBQb2ludGVyIHRvIFNDU0kgZGlzayBzdHJ1Y3R1cmUuCi0gKgkJCQkJZGV2CSAtIE1ham9yL21pbm9yIG51bWJlciBmcm9tIGtlcm5lbC4KLSAqCQkJCQlnZW9tIC0gUG9pbnRlciB0byBpbnRlZ2VyIGFycmF5IHRvIHBsYWNlIGdlb21ldHJ5IGRhdGEuCi0gKgotICoJUmV0dXJuczoJCXplcm8uCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1pbnQgUGNpMjAwMF9CaW9zUGFyYW0gKHN0cnVjdCBzY3NpX2RldmljZSAqc2Rldiwgc3RydWN0IGJsb2NrX2RldmljZSAqZGV2LAotCQlzZWN0b3JfdCBjYXBhY2l0eSwgaW50IGdlb21bXSkKLQl7Ci0JUEFEQVBURVIyMDAwCSAgICBwYWRhcHRlcjsKLQotCXBhZGFwdGVyID0gSE9TVERBVEEoc2Rldi0+aG9zdCk7Ci0KLQlpZiAoIFdhaXRSZWFkeSAocGFkYXB0ZXIpICkKLQkJcmV0dXJuIDA7Ci0Jb3V0Yl9wIChzZGV2LT5pZCwgcGFkYXB0ZXItPm1iMCk7Ci0Jb3V0Yl9wIChDTURfR0VUX1BBUk1TLCBwYWRhcHRlci0+Y21kKTsKLQlpZiAoIFdhaXRSZWFkeSAocGFkYXB0ZXIpICkKLQkJcmV0dXJuIDA7Ci0KLQlnZW9tWzBdID0gaW5iX3AgKHBhZGFwdGVyLT5tYjIgKyAzKTsKLQlnZW9tWzFdID0gaW5iX3AgKHBhZGFwdGVyLT5tYjIgKyAyKTsKLQlnZW9tWzJdID0gaW53X3AgKHBhZGFwdGVyLT5tYjIpOwotCXJldHVybiAwOwotCX0KLQotCi1NT0RVTEVfTElDRU5TRSgiRHVhbCBCU0QvR1BMIik7Ci0KLXN0YXRpYyBTY3NpX0hvc3RfVGVtcGxhdGUgZHJpdmVyX3RlbXBsYXRlID0gewotCS5wcm9jX25hbWUJPSAicGNpMjAwMCIsCi0JLm5hbWUJCT0gIlBDSS0yMDAwIFNDU0kgSW50ZWxsaWdlbnQgRGlzayBDb250cm9sbGVyIiwKLQkuZGV0ZWN0CQk9IFBjaTIwMDBfRGV0ZWN0LAotCS5yZWxlYXNlCT0gUGNpMjAwMF9SZWxlYXNlLAotCS5xdWV1ZWNvbW1hbmQJPSBQY2kyMDAwX1F1ZXVlQ29tbWFuZCwKLQkuYWJvcnQJCT0gUGNpMjAwMF9BYm9ydCwKLQkucmVzZXQJCT0gUGNpMjAwMF9SZXNldCwKLQkuYmlvc19wYXJhbQk9IFBjaTIwMDBfQmlvc1BhcmFtLAotCS5jYW5fcXVldWUJPSAxNiwKLQkudGhpc19pZAk9IC0xLAotCS5zZ190YWJsZXNpemUJPSAxNiwKLQkuY21kX3Blcl9sdW4JPSAxLAotCS51c2VfY2x1c3RlcmluZwk9IERJU0FCTEVfQ0xVU1RFUklORywKLX07Ci0jaW5jbHVkZSAic2NzaV9tb2R1bGUuYyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wY2kyMjIwaS5jIGIvZHJpdmVycy9zY3NpL3BjaTIyMjBpLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOTVlNDIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9zY3NpL3BjaTIyMjBpLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTE1ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLiBQQ0ktMjIyMEkgZGV2aWNlIGRyaXZlciBmb3IgTGludXguCi0gKgotICogcGNpMjIyMGkuYyAtIExpbnV4IEhvc3QgRHJpdmVyIGZvciBQQ0ktMjIyMEkgRUlERSBSQUlEIEFkYXB0ZXJzCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTk3LTE5OTkgUGVyY2VwdGl2ZSBTb2x1dGlvbnMsIEluYy4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCByZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCi0gKiBjb2RlIHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBjb21tZW50IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbi4KLSAqCi0gKiBUZWNobmljYWwgdXBkYXRlcyBhbmQgcHJvZHVjdCBpbmZvcm1hdGlvbiBhdDoKLSAqICBodHRwOi8vd3d3LnBzaWRpc2suY29tCi0gKgotICogUGxlYXNlIHNlbmQgcXVlc3Rpb25zLCBjb21tZW50cywgYnVnIHJlcG9ydHMgdG86Ci0gKiAgdGVjaEBwc2lkaXNrLmNvbSBUZWNobmljYWwgU3VwcG9ydAotICoKLSAqCi0gKglSZXZpc2lvbnMgMS4xMAkJTWFyLTI2LTE5OTkKLSAqCQktIFVwZGF0ZWQgZHJpdmVyIGZvciBSQUlEIGFuZCBob3QgcmVjb25zdHJ1Y3Qgc3VwcG9ydC4KLSAqCi0gKglSZXZpc2lvbnMgMS4xMQkJTWFyLTI2LTE5OTkKLSAqCQktIEZpeGVkIHNwaW5sb2NrIGFuZCBQQ0kgY29uZmlndXJhdGlvbi4KLSAqCi0gKglSZXZpc2lvbiAyLjAwCQlEZWNlbWJlci0xLTE5OTkKLSAqCQktIEFkZGVkIGNvZGUgZm9yIHRoZSBQQ0ktMjI0MEkgY29udHJvbGxlcgotICoJCS0gQWRkZWQgY29kZSBmb3IgQVRBUEkgZGV2aWNlcy4KLSAqCQktIERvdWJsZSBidWZmZXIgZm9yIHNjYXR0ZXIvZ2F0aGVyIHN1cHBvcnQKLSAqCi0gKglSZXZpc2lvbiAyLjEwCQlNYXJjaC0yNy0yMDAwCi0gKgkJLSBBZGRlZCBzdXBwb3J0IGZvciBkeW5hbWljIERNQQotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jZXJyb3IgQ29udmVydCBtZSB0byB1bmRlcnN0YW5kIHBhZ2Urb2Zmc2V0IGJhc2VkIHNjYXR0ZXJsaXN0cwotCi0vLyNkZWZpbmUgREVCVUcgMQotCi0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotCi0jaW5jbHVkZSA8YXNtL2RtYS5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLQotI2luY2x1ZGUgInNjc2kuaCIKLSNpbmNsdWRlIDxzY3NpL3Njc2lfaG9zdC5oPgotI2luY2x1ZGUgInBjaTIyMjBpLmgiCi0jaW5jbHVkZSAicHNpX2RhbGUuaCIKLQotCi0jZGVmaW5lCVBDSTIyMjBJX1ZFUlNJT04JCSIyLjEwIgotI2RlZmluZQlSRUFEX0NNRAkJCQlJREVfQ01EX1JFQURfTVVMVElQTEUKLSNkZWZpbmUJV1JJVEVfQ01ECQkJCUlERV9DTURfV1JJVEVfTVVMVElQTEUKLSNkZWZpbmUJTUFYX0JVU19NQVNURVJfQkxPQ0tTCVNFQ1RPUlNYRkVSCQkvLyBUaGlzIGlzIHRoZSBtYXhpbXVtIHdlIGNhbiBidXMgbWFzdGVyCi0KLSNpZmRlZiBERUJVRwotI2RlZmluZSBERUIoeCkgeAotI2RlZmluZSBTVE9QX0hFUkUoKQl7aW50IHN0O2ZvcihzdD0wO3N0PDEwMDtzdCsrKXtzdD0xO319Ci0jZWxzZQotI2RlZmluZSBERUIoeCkKLSNkZWZpbmUgU1RPUF9IRVJFKCkKLSNlbmRpZgotCi0jZGVmaW5lIE1BWEFEQVBURVIgNAkJCQkJLy8gSW5jcmVhc2UgdGhpcyBhbmQgdGhlIHNpemVzIG9mIHRoZSBhcnJheXMgYmVsb3csIGlmIHlvdSBuZWVkIG1vcmUuCi0KLQotdHlwZWRlZiBzdHJ1Y3QKLQl7Ci0JVUNIQVIJCQlieXRlNjsJCQkJLy8gZGV2aWNlIHNlbGVjdCByZWdpc3RlciBpbWFnZQotCVVDSEFSCQkJc3BpZ290OwkJCQkvLyBzcGlnb3QgbnVtYmVyCi0JVUNIQVIJCQlzcGlnb3RzWzJdOwkJCS8vIFJBSUQgc3BpZ290cwotCVVDSEFSCQkJZGV2aWNlSURbMl07CQkvLyBkZXZpY2UgSUQgY29kZXMKLQlVU0hPUlQJCQlzZWN0b3JzOwkJCS8vIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjawotCVVTSE9SVAkJCWhlYWRzOwkJCQkvLyBudW1iZXIgb2YgaGVhZHMKLQlVU0hPUlQJCQljeWxpbmRlcnM7CQkJLy8gbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkZXZpY2UKLQlVU0hPUlQJCQlzcGFyZXdvcmQ7CQkJLy8gcGxhY2Vob2xkZXIKLQlVTE9ORwkJCWJsb2NrczsJCQkJLy8gbnVtYmVyIG9mIGJsb2NrcyBvbiBkZXZpY2UKLQlESVNLX01JUlJPUgkJRGlza01pcnJvclsyXTsJCS8vIFJBSUQgc3RhdHVzIGFuZCBjb250cm9sCi0JVUxPTkcJCQlsYXN0c2VjdG9ybGJhWzJdOwkvLyBsYXN0IGFkZHJlc3NhYmxlIHNlY3RvciBvbiB0aGUgZHJpdmUKLQlVU0hPUlQJCQlyYWlkOwkJCQkvLyBSQUlEIGFjdGl2ZSBmbGFnCi0JVVNIT1JUCQkJbWlycm9yUmVjb247Ci0JVUNIQVIJCQlyZWNvbk9uOwotCVVTSE9SVAkJCXJlY29uQ291bnQ7Ci0JVVNIT1JUCQkJcmVjb25Jc1N0YXJ0aW5nOwkvLyBpbmRpY2F0ZSBob3QgcmVjb25zdHJ1Y3QgaXMgc3RhcnRpbmcKLQlVQ0hBUgkJCWNtZERycUludDsJCQkvLyBmbGFnIGZvciBjb21tYW5kIGludGVycnVwdAotCVVDSEFSCQkJcGFja2V0OwkJCQkvLyBjb21tYW5kIHBhY2tldCBzaXplIGluIGJ5dGVzCi0JfQlPVVJfREVWSUNFLCAqUE9VUl9ERVZJQ0U7CQotCi10eXBlZGVmIHN0cnVjdAotCXsKLQlVU0hPUlQJCSBiaWdEOwkJCQkJLy8gaWRlbnRpdHkgaXMgYSBQQ0ktMjI0MEkgaWYgdHJ1ZSwgb3RoZXJ3aXNlIGEgUENJLTIyMjBJCi0JVVNIT1JUCQkgYXRhcGk7CQkJCQkvLyB0aGlzIGludGVyZmFjZSBpcyBmb3IgQVRBUEkgZGV2aWNlcyBvbmx5Ci0JVUxPTkcJCSByZWdEbWFEZXNjOwkJCS8vIGFkZHJlc3Mgb2YgdGhlIERNQSBkaXNjcmlwdG9yIHJlZ2lzdGVyIGZvciBkaXJlY3Rpb24gb2YgdHJhbnNmZXIKLQlVTE9ORwkJIHJlZ0RtYUNtZFN0YXQ7CQkJLy8gQnl0ZSAjMSBvZiBETUEgY29tbWFuZCBzdGF0dXMgcmVnaXN0ZXIKLQlVTE9ORwkJIHJlZ0RtYUFkZHJQY2k7CQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBQQ0kgYWRkcmVzcyBvZiBETUEKLQlVTE9ORwkJIHJlZ0RtYUFkZHJMb2M7CQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBsb2NhbCBidXMgYWRkcmVzcyBvZiBETUEKLQlVTE9ORwkJIHJlZ0RtYUNvdW50OwkJCS8vIDMyIGJpdCByZWdpc3RlciBmb3IgRE1BIHRyYW5zZmVyIGNvdW50Ci0JVUxPTkcJCSByZWdEbWFNb2RlOwkJCS8vIDMyIGJpdCByZWdpc3RlciBmb3IgRE1BIG1vZGUgY29udHJvbAotCVVMT05HCQkgcmVnUmVtYXA7CQkJCS8vIDMyIGJpdCBsb2NhbCBzcGFjZSByZW1hcAotCVVMT05HCQkgcmVnRGVzYzsJCQkJLy8gMzIgYml0IGxvY2FsIHJlZ2lvbiBkZXNjcmlwdG9yCi0JVUxPTkcJCSByZWdSYW5nZTsJCQkJLy8gMzIgYml0IGxvY2FsIHJhbmdlCi0JVUxPTkcJCSByZWdJcnFDb250cm9sOwkJCS8vIDE2IGJpdCBJbnRlcnJ1cHQgZW5hYmxlL2Rpc2FibGUgYW5kIHN0YXR1cwotCVVMT05HCQkgcmVnU2NyYXRjaFBhZDsJCQkvLyBzY3JhdGNoIHBhZCBJL08gYmFzZSBhZGRyZXNzCi0JVUxPTkcJCSByZWdCYXNlOwkJCQkvLyBCYXNlIEkvTyByZWdpc3RlciBmb3IgZGF0YSBzcGFjZQotCVVMT05HCQkgcmVnRGF0YTsJCQkJLy8gZGF0YSByZWdpc3RlciBJL08gYWRkcmVzcwotCVVMT05HCQkgcmVnRXJyb3I7CQkJCS8vIGVycm9yIHJlZ2lzdGVyIEkvTyBhZGRyZXNzCi0JVUxPTkcJCSByZWdTZWN0Q291bnQ7CQkJLy8gc2VjdG9yIGNvdW50IHJlZ2lzdGVyIEkvTyBhZGRyZXNzCi0JVUxPTkcJCSByZWdMYmEwOwkJCQkvLyBsZWFzdCBzaWduaWZpY2FudCBieXRlIG9mIExCQQotCVVMT05HCQkgcmVnTGJhODsJCQkJLy8gbmV4dCBsZWFzdCBzaWduaWZpY2FudCBieXRlIG9mIExCQQotCVVMT05HCQkgcmVnTGJhMTY7CQkJCS8vIG5leHQgbW9zdCBzaWduaWZpY2FuIGJ5dGUgb2YgTEJBCi0JVUxPTkcJCSByZWdMYmEyNDsJCQkJLy8gaGVhZCBhbmQgbW9zdCA0IHNpZ25pZmljYW50IGJpdHMgb2YgTEJBCi0JVUxPTkcJCSByZWdTdGF0Q21kOwkJCS8vIHN0YXR1cyBvbiByZWFkIGFuZCBjb21tYW5kIG9uIHdyaXRlIHJlZ2lzdGVyCi0JVUxPTkcJCSByZWdTdGF0U2VsOwkJCS8vIGJvYXJkIHN0YXR1cyBvbiByZWFkIGFuZCBzcGlnb3Qgc2VsZWN0IG9uIHdyaXRlIHJlZ2lzdGVyCi0JVUxPTkcJCSByZWdGYWlsOwkJCQkvLyBmYWlsIGJpdHMgY29udHJvbCByZWdpc3RlcgotCVVMT05HCQkgcmVnQWx0U3RhdDsJCQkvLyBhbHRlcm5hdGUgc3RhdHVzIGFuZCBkcml2ZSBjb250cm9sIHJlZ2lzdGVyCi0JVUxPTkcJCSBiYXNlUG9ydDsJCQkJLy8gUExYIGJhc2UgSS9PIHBvcnQKLQlVU0hPUlQJCSB0aW1pbmdNb2RlOwkJCS8vIHRpbWluZyBtb2RlIGN1cnJlbnRseSBzZXQgZm9yIGFkYXB0ZXIKLQlVU0hPUlQJCSB0aW1pbmdQSU87CQkJCS8vIFRSVUUgaWYgUElPIHRpbWluZyBpcyBhY3RpdmUKLQlzdHJ1Y3QgcGNpX2RldgkqcGNpZGV2OwotCVVMT05HCQkgdGltaW5nQWRkcmVzczsJCQkvLyBhZGRyZXNzIHRvIHVzZSBvbiBhZGFwdGVyIGZvciBjdXJyZW50IHRpbWluZyBtb2RlCi0JVUxPTkcJCSBpcnFPd25lZDsJCQkJLy8gb3duZWQgSVJRIG9yIHplcm8gaWYgc2hhcmVkCi0JVUNIQVIJCSBudW1iZXJPZkRyaXZlczsJCS8vIHNhdmVkIG51bWJlciBvZiBkcml2ZXMgb24gdGhpcyBjb250cm9sbGVyCi0JVUNIQVIJCSBmYWlsUmVnaXN0ZXI7CQkJLy8gY3VycmVudCBpbnZlcnRlZCBkYXRhIGluIGZhaWwgcmVnaXN0ZXIKLQlPVVJfREVWSUNFCSBkZXZpY2VbQklHRF9NQVhEUklWRVNdOwotCURJU0tfTUlSUk9SCSpyYWlkRGF0YVtCSUdEX01BWERSSVZFU107Ci0JVUxPTkcJCSBzdGFydFNlY3RvcjsKLQlVU0hPUlQJCSBzZWN0b3JDb3VudDsKLQlVTE9ORwkJIHJlYWRDb3VudDsKLQlVQ0hBUgkJKmN1cnJlbnRTZ0J1ZmZlcjsKLQlVTE9ORwkJIGN1cnJlbnRTZ0NvdW50OwotCVVTSE9SVAkJIG5leHRTZzsKLQlVQ0hBUgkJIGNtZDsKLQlTY3NpX0NtbmQJKlNDcG50OwotCVBPVVJfREVWSUNFCSBwZGV2OwkJCQkJLy8gY3VycmVudCBkZXZpY2Ugb3BlYXJhdGluZyBvbgotCVVTSE9SVAkJIGRldkluUmVjb25JbmRleDsKLQlVU0hPUlQJCSBleHBlY3RpbmdJUlE7Ci0JVVNIT1JUCQkgcmVjb25PbjsJCQkJLy8gSG90IHJlY29uc3RydWN0IGlzIHRvIGJlIGRvbmUuCi0JVVNIT1JUCQkgcmVjb25QaGFzZTsJCQkvLyBIb3QgcmVjb25zdHJ1Y3Qgb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLgotCVVMT05HCQkgcmVjb25TaXplOwotCVVTSE9SVAkJIGRlbW9GYWlsOwkJCQkvLyBmbGFnIGZvciBSQUlEIGZhaWx1cmUgZGVtb25zdHJhdGlvbgotCVVTSE9SVAkJIHN1cnZpdm9yOwotCVVTSE9SVAkJIGZhaWxpbnByb2c7Ci0Jc3RydWN0IHRpbWVyX2xpc3QJcmVjb25UaW1lcjsJCi0Jc3RydWN0IHRpbWVyX2xpc3QJdGltZXI7Ci0JVUNIQVIJCSprQnVmZmVyOwotCWRtYV9hZGRyX3QJIGtCdWZmZXJEbWE7Ci0JVUNIQVIJCSByZXFTZW5zZTsKLQlVQ0hBUgkJIGF0YXBpQ2RiWzE2XTsKLQlVQ0hBUgkJIGF0YXBpU3BlY2lhbDsKLQl9CUFEQVBURVIyMjIwSSwgKlBBREFQVEVSMjIyMEk7Ci0KLSNkZWZpbmUgSE9TVERBVEEoaG9zdCkgKChQQURBUFRFUjIyMjBJKSZob3N0LT5ob3N0ZGF0YSkKLQotI2RlZmluZQlSRUNPTl9QSEFTRV9SRUFEWQkJMHgwMQotI2RlZmluZQlSRUNPTl9QSEFTRV9DT1BZCQkweDAyCi0jZGVmaW5lCVJFQ09OX1BIQVNFX1VQREFURQkJMHgwMwotI2RlZmluZQlSRUNPTl9QSEFTRV9MQVNUCQkweDA0Ci0jZGVmaW5lCVJFQ09OX1BIQVNFX0VORAkJCTB4MDcJCi0jZGVmaW5lCVJFQ09OX1BIQVNFX01BUktJTkcJCTB4ODAKLSNkZWZpbmUJUkVDT05fUEhBU0VfRkFJTE9WRVIJMHhGRgotCi1zdGF0aWMgc3RydWN0CVNjc2lfSG9zdCAJICAgKlBzaUhvc3RbTUFYQURBUFRFUl0gPSB7TlVMTCx9OyAgLy8gT25lIGZvciBlYWNoIGFkYXB0ZXIKLXN0YXRpYwkJCWludAkJCQlOdW1BZGFwdGVycyA9IDA7Ci1zdGF0aWMJCQlpbnQJCQkJSW5zdGFsbGVkID0gMDsKLXN0YXRpYwkJCVNFVFVQCQkJRGFsZVNldHVwOwotc3RhdGljCQkJRElTS19NSVJST1IJCURpc2tNaXJyb3JbQklHRF9NQVhEUklWRVNdOwotc3RhdGljCQkJVUxPTkcJCQlNb2RlQXJyYXlbXSA9IHtEQUxFX0RBVEFfTU9ERTIsIERBTEVfREFUQV9NT0RFMywgREFMRV9EQVRBX01PREU0LCBEQUxFX0RBVEFfTU9ERTV9Owotc3RhdGljCQkJVUxPTkcJCQlNb2RlQXJyYXkyW10gPSB7QklHRF9EQVRBX01PREUyLCBCSUdEX0RBVEFfTU9ERTMsIEJJR0RfREFUQV9NT0RFNCwgQklHRF9EQVRBX01PREU1fTsKLQotc3RhdGljIHZvaWQgUmVjb25UaW1lckV4cGlyeSAodW5zaWduZWQgbG9uZyBkYXRhKTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CQkJQWxhcm0KLSAqCi0gKglEZXNjcmlwdGlvbjoJU291bmQgdGhlIGZvciB0aGUgZ2l2ZW4gZGV2aWNlCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCWRldmljZQkgLSBEZXZpY2UgbnVtYmVyLgotICoJCi0gKglSZXR1cm5zOgkJTm90aGluZy4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgQWxhcm0gKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFVDSEFSIGRldmljZSkKLQl7Ci0JVUNIQVIJemM7Ci0KLQlpZiAoIHBhZGFwdGVyLT5iaWdEICkKLQkJewotCQl6YyA9IGRldmljZSB8IChGQUlMX0FOWSB8IEZBSUxfQVVESUJMRSk7Ci0JCWlmICggcGFkYXB0ZXItPmZhaWxSZWdpc3RlciAmIEZBSUxfQU5ZICkgCi0JCQl6YyB8PSBGQUlMX01VTFRJUExFOwotCQkKLQkJcGFkYXB0ZXItPmZhaWxSZWdpc3RlciA9IHpjOwotCQlvdXRiX3AgKH56YywgcGFkYXB0ZXItPnJlZ0ZhaWwpOwotCQl9Ci0JZWxzZQotCQlvdXRiX3AgKDB4M0MgfCAoMSA8PCBkZXZpY2UpLCBwYWRhcHRlci0+cmVnRmFpbCk7CQkJLy8gc291bmQgYWxhcm0gYW5kIHNldCBmYWlsIGxpZ2h0CQkKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJTXV0ZUFsYXJtCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglNdXRlIHRoZSBhdWRpYmxlIGFsYXJtLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCi0gKglSZXR1cm5zOgkJVFJVRSBpZiBkcml2ZSBkb2VzIG5vdCBhc3NlcnQgRFJRIGluIHRpbWUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgdm9pZCBNdXRlQWxhcm0gKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIpCi0JewotCVVDSEFSCW9sZDsKLQotCWlmICggcGFkYXB0ZXItPmJpZ0QgKQotCQl7Ci0JCXBhZGFwdGVyLT5mYWlsUmVnaXN0ZXIgJj0gfkZBSUxfQVVESUJMRTsKLQkJb3V0Yl9wICh+cGFkYXB0ZXItPmZhaWxSZWdpc3RlciwgcGFkYXB0ZXItPnJlZ0ZhaWwpOwotCQl9Ci0JZWxzZQotCQl7Ci0JCW9sZCA9IChpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRTZWwpID4+IDMpIHwgKGluYl9wIChwYWRhcHRlci0+cmVnU3RhdFNlbCkgJiAweDgzKTsKLQkJb3V0Yl9wIChvbGQgfCAweDQwLCBwYWRhcHRlci0+cmVnRmFpbCk7Ci0JCX0KLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJV2FpdFJlYWR5CTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglXYWl0IGZvciBkZXZpY2UgcmVhZHkuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlUUlVFIGlmIGRyaXZlIGRvZXMgbm90IGFzc2VydCBEUlEgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgV2FpdFJlYWR5IChQQURBUFRFUjIyMjBJIHBhZGFwdGVyKQotCXsKLQlVTE9ORwl6OwotCVVDSEFSCXN0YXR1czsKLQotCWZvciAoIHogPSAwOyAgeiA8IChUSU1FT1VUX1JFQURZICogNCk7ICB6KysgKQotCQl7Ci0JCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7Ci0JCWlmICggKHN0YXR1cyAmIChJREVfU1RBVFVTX0RSRFkgfCBJREVfU1RBVFVTX0JVU1kpKSA9PSBJREVfU1RBVFVTX0RSRFkgKQotCQkJcmV0dXJuIDA7Ci0JCXVkZWxheSAoMjUwKTsKLQkJfQotCXJldHVybiBzdGF0dXM7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVdhaXRSZWFkeVJlc2V0CTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglXYWl0IGZvciBkZXZpY2UgcmVhZHkuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlUUlVFIGlmIGRyaXZlIGRvZXMgbm90IGFzc2VydCBEUlEgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgV2FpdFJlYWR5UmVzZXQgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIpCi0JewotCVVMT05HCXo7Ci0JVUNIQVIJc3RhdHVzOwotCi0JZm9yICggeiA9IDA7ICB6IDwgKDEyNSAqIDE2KTsgIHorKyApCQkJCS8vIHdhaXQgdXAgdG8gMS80IHNlY29uZAotCQl7Ci0JCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7Ci0JCWlmICggKHN0YXR1cyAmIChJREVfU1RBVFVTX0RSRFkgfCBJREVfU1RBVFVTX0JVU1kpKSA9PSBJREVfU1RBVFVTX0RSRFkgKQotCQkJewotCQkJREVCIChwcmludGsgKCJcblBDSTIyMjBJOiAgUmVzZXQgdG9vayAlbGQgbVNlYyB0byBiZSByZWFkeSIsIHogLyA4KSk7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkJdWRlbGF5ICgxMjUpOwotCQl9Ci0JREVCIChwcmludGsgKCJcblBDSTIyMjBJOiAgUmVzZXQgdG9vayBtb3JlIHRoYW4gMiBTZWNvbmRzIHRvIGNvbWUgcmVhZHksIERpc2sgRmFpbHVyZSIpKTsKLQlyZXR1cm4gc3RhdHVzOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglXYWl0RHJxCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglXYWl0IGZvciBkZXZpY2UgcmVhZHkgZm9yIGRhdGEgdHJhbnNmZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlUUlVFIGlmIGRyaXZlIGRvZXMgbm90IGFzc2VydCBEUlEgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgV2FpdERycSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlcikKLQl7Ci0JVUxPTkcJejsKLQlVQ0hBUglzdGF0dXM7Ci0KLQlmb3IgKCB6ID0gMDsgIHogPCAoVElNRU9VVF9EUlEgKiA0KTsgIHorKyApCi0JCXsKLQkJc3RhdHVzID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsKLQkJaWYgKCBzdGF0dXMgJiBJREVfU1RBVFVTX0RSUSApCi0JCQlyZXR1cm4gMDsKLQkJdWRlbGF5ICgyNTApOwotCQl9Ci0JcmV0dXJuIHN0YXR1czsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJQXRhcGlXYWl0UmVhZHkJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVdhaXQgZm9yIGRldmljZSBidXN5IGFuZCBEUlEgdG8gYmUgY2xlYXJlZC4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJbXNlYwkgLSBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQuCi0gKgotICoJUmV0dXJuczoJCVRSVUUgaWYgZHJpdmUgZG9lcyBub3QgY2xlYXIgYnVzeSBpbiB0aW1lLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBBdGFwaVdhaXRSZWFkeSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgaW50IG1zZWMpCi0JewotCWludCB6OwotCi0JZm9yICggeiA9IDA7ICB6IDwgKG1zZWMgKiAxNik7ICB6KysgKQotCQl7Ci0JCWlmICggIShpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpICYgKElERV9TVEFUVVNfQlVTWSB8IElERV9TVEFUVVNfRFJRKSkgKQotCQkJcmV0dXJuIEZBTFNFOwotCQl1ZGVsYXkgKDEyNSk7Ci0JCX0KLQlyZXR1cm4gVFJVRTsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJQXRhcGlXYWl0RHJxCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglXYWl0IGZvciBkZXZpY2UgcmVhZHkgZm9yIGRhdGEgdHJhbnNmZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCW1zZWMJIC0gTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0LgotICoKLSAqCVJldHVybnM6CQlUUlVFIGlmIGRyaXZlIGRvZXMgbm90IGFzc2VydCBEUlEgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgQXRhcGlXYWl0RHJxIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBpbnQgbXNlYykKLQl7Ci0JVUxPTkcJejsKLQotCWZvciAoIHogPSAwOyAgeiA8IChtc2VjICogMTYpOyAgeisrICkKLQkJewotCQlpZiAoIGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCkgJiBJREVfU1RBVFVTX0RSUSApCi0JCQlyZXR1cm4gMDsKLQkJdWRlbGF5ICgxMjgpOwotCQl9Ci0JcmV0dXJuIFRSVUU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUhhcmRSZXNldAk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJV2FpdCBmb3IgZGV2aWNlIHJlYWR5IGZvciBkYXRhIHRyYW5zZmVyLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCQkJCQlwZGV2CSAtIFBvaW50ZXIgdG8gZGV2aWNlLgotICoJCQkJCXNwaWdvdAkgLSBTcGlnb3QgbnVtYmVyLgotICoKLSAqCVJldHVybnM6CQlUUlVFIGlmIGRyaXZlIGRvZXMgbm90IGFzc2VydCBEUlEgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgSGFyZFJlc2V0IChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBQT1VSX0RFVklDRSBwZGV2LCBVQ0hBUiBzcGlnb3QpCi0JewotCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTpSRVNFVCAgc3BpZ290ID0gJVggIGRldmljZXMgPSAlZCwgJWQiLCBzcGlnb3QsIHBkZXYtPmRldmljZUlEWzBdLCBwZGV2LT5kZXZpY2VJRFsxXSkpOwotCW1kZWxheSAoMTAwKTsJCQkJCQkJCQkJLy8ganVzdCB3YWl0IDEwMCBtU2VjIHRvIGxldCBkcml2ZXMgZmx1c2gJCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgc3BpZ290IHwgU0VMX0lSUV9PRkYpOwotCQotCW91dGJfcCAoMHgwRSwgcGFkYXB0ZXItPnJlZ0FsdFN0YXQpOwkJCQkJLy8gcmVzZXQgdGhlIHN1dml2b3IKLQl1ZGVsYXkgKDEwMCk7CQkJCQkJCQkJCQkvLyB3YWl0IGEgbGl0dGxlCQotCW91dGJfcCAoMHgwOCwgcGFkYXB0ZXItPnJlZ0FsdFN0YXQpOwkJCQkJLy8gY2xlYXIgdGhlIHJlc2V0Ci0JdWRlbGF5ICgxMDApOwotCi0Jb3V0Yl9wICgweEEwLCBwYWRhcHRlci0+cmVnTGJhMjQpOwkJCQkJCS8vIHNlbGVjdCB0aGUgbWFzdGVyIGRyaXZlCi0JaWYgKCBXYWl0UmVhZHlSZXNldCAocGFkYXB0ZXIpICkKLQkJewotCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IG1hc3RlciBub3QgcmVhZHkgYWZ0ZXIgcmVzZXQiKSk7Ci0JCXJldHVybiBUUlVFOwotCQl9Ci0Jb3V0Yl9wICgweEIwLCBwYWRhcHRlci0+cmVnTGJhMjQpOwkJCQkJCS8vIHRyeSB0aGUgc2xhdmUgZHJpdmUKLQlpZiAoIChpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpICYgKElERV9TVEFUVVNfRFJEWSB8IElERV9TVEFUVVNfQlVTWSkpID09IElERV9TVEFUVVNfRFJEWSApIAotCQl7Ci0JCURFQiAocHJpbnRrICgiXG5QQ0kyMjIwSTogaW5pdGlhbGl6aW5nIHNsYXZlIGRyaXZlIG9uIHNwaWdvdCAlWCIsIHNwaWdvdCkpOwotCQlvdXRiX3AgKFNFQ1RPUlNYRkVSLCBwYWRhcHRlci0+cmVnU2VjdENvdW50KTsKLQkJV3JpdGVDb21tYW5kIChwYWRhcHRlciwgSURFX0NNRF9TRVRfTVVMVElQTEUpOwkKLQkJaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCi0JCQl7Ci0JCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IHNsYXZlIG5vdCByZWFkeSBhZnRlciBzZXQgbXVsdGlwbGUiKSk7Ci0JCQlyZXR1cm4gVFJVRTsKLQkJCX0KLQkJfQotCQotCW91dGJfcCAoMHhBMCwgcGFkYXB0ZXItPnJlZ0xiYTI0KTsJCQkJLy8gc2VsZWN0IHRoZSBkcml2ZQotCW91dGJfcCAoU0VDVE9SU1hGRVIsIHBhZGFwdGVyLT5yZWdTZWN0Q291bnQpOwotCVdyaXRlQ29tbWFuZCAocGFkYXB0ZXIsIElERV9DTURfU0VUX01VTFRJUExFKTsJCi0JaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCi0JCXsKLQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBtYXN0ZXIgbm90IHJlYWR5IGFmdGVyIHNldCBtdWx0aXBsZSIpKTsKLQkJcmV0dXJuIFRSVUU7Ci0JCX0KLQlyZXR1cm4gRkFMU0U7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUF0YXBpUmVzZXQJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVdhaXQgZm9yIGRldmljZSByZWFkeSBmb3IgZGF0YSB0cmFuc2Zlci4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJcGRldgkgLSBQb2ludGVyIHRvIGRldmljZS4KLSAqCi0gKglSZXR1cm5zOgkJVFJVRSBpZiBkcml2ZSBkb2VzIG5vdCBjb21lIHJlYWR5LgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBBdGFwaVJlc2V0IChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBQT1VSX0RFVklDRSBwZGV2KQotCXsKLQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3QpOwotCUF0YXBpRGV2aWNlIChwYWRhcHRlciwgcGRldi0+Ynl0ZTYpOwotCUF0YXBpQ291bnRMbyAocGFkYXB0ZXIsIDApOwotCUF0YXBpQ291bnRIaSAocGFkYXB0ZXIsIDApOwotCVdyaXRlQ29tbWFuZCAocGFkYXB0ZXIsIElERV9DT01NQU5EX0FUQVBJX1JFU0VUKTsKLQl1ZGVsYXkgKDEyNSk7Ci0JaWYgKCBBdGFwaVdhaXRSZWFkeSAocGFkYXB0ZXIsIDEwMDApICkKLQkJcmV0dXJuIFRSVUU7Ci0JaWYgKCBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpIHx8IChpbmJfcCAocGFkYXB0ZXItPnJlZ0xiYTgpICE9IDB4MTQpIHx8IChpbmJfcCAocGFkYXB0ZXItPnJlZ0xiYTE2KSAhPSAweEVCKSApCi0JCXJldHVybiBUUlVFOwotCXJldHVybiBGQUxTRTsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJV2Fsa1NjYXRHYXRoCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglUcmFuc2ZlciBkYXRhIHRvL2Zyb20gc2NhdHRlci9nYXRoZXIgYnVmZmVycy4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJZGF0YWluICAgLSBUUlVFIGlmIGRhdGEgcmVhZC4KLSAqCQkJCQlsZW5ndGggICAtIE51bWJlciBvZiBieXRlcyB0byB0cmFuc2Zlci4KLSAqCi0gKglSZXR1cm5zOgkJTm90aGluZy4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyB2b2lkIFdhbGtTY2F0R2F0aCAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgVUNIQVIgZGF0YWluLCBVTE9ORyBsZW5ndGgpCi0JewotCVVMT05HCSBjb3VudDsKLQlVQ0hBUgkqYnVmZmVyID0gcGFkYXB0ZXItPmtCdWZmZXI7Ci0KLQl3aGlsZSAoIGxlbmd0aCApCi0JCXsKLQkJY291bnQgPSAoIGxlbmd0aCA+IHBhZGFwdGVyLT5jdXJyZW50U2dDb3VudCApID8gcGFkYXB0ZXItPmN1cnJlbnRTZ0NvdW50IDogbGVuZ3RoOyAKLQkJCi0JCWlmICggZGF0YWluICkKLQkJCW1lbWNweSAocGFkYXB0ZXItPmN1cnJlbnRTZ0J1ZmZlciwgYnVmZmVyLCBjb3VudCk7Ci0JCWVsc2UKLQkJCW1lbWNweSAoYnVmZmVyLCBwYWRhcHRlci0+Y3VycmVudFNnQnVmZmVyLCBjb3VudCk7Ci0KLQkJcGFkYXB0ZXItPmN1cnJlbnRTZ0NvdW50IC09IGNvdW50OwotCQlpZiAoICFwYWRhcHRlci0+Y3VycmVudFNnQ291bnQgKQotCQkJewotCQkJaWYgKCBwYWRhcHRlci0+bmV4dFNnIDwgcGFkYXB0ZXItPlNDcG50LT51c2Vfc2cgKQotCQkJCXsKLQkJCQlwYWRhcHRlci0+Y3VycmVudFNnQnVmZmVyID0gKChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKilwYWRhcHRlci0+U0NwbnQtPnJlcXVlc3RfYnVmZmVyKVtwYWRhcHRlci0+bmV4dFNnXS5hZGRyZXNzOwotCQkJCXBhZGFwdGVyLT5jdXJyZW50U2dDb3VudCA9ICgoc3RydWN0IHNjYXR0ZXJsaXN0ICopcGFkYXB0ZXItPlNDcG50LT5yZXF1ZXN0X2J1ZmZlcilbcGFkYXB0ZXItPm5leHRTZ10ubGVuZ3RoOwotCQkJCXBhZGFwdGVyLT5uZXh0U2crKzsKLQkJCQl9Ci0JCQl9Ci0JCWVsc2UKLQkJCXBhZGFwdGVyLT5jdXJyZW50U2dCdWZmZXIgKz0gY291bnQ7Ci0KLQkJbGVuZ3RoIC09IGNvdW50OwotCQlidWZmZXIgKz0gY291bnQ7Ci0JCX0KLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJQnVzTWFzdGVyCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglEbyBhIGJ1cyBtYXN0ZXIgSS9PLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCQkJCQlkYXRhaW4JIC0gVFJVRSBpZiBkYXRhIHJlYWQuCi0gKgkJCQkJaXJxCQkgLSBUUlVFIGlmIGJ1cyBtYXN0ZXIgaW50ZXJydXB0IGV4cGVjdGVkLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgQnVzTWFzdGVyIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBVQ0hBUiBkYXRhaW4sIFVDSEFSIGlycSkKLQl7Ci0JVUxPTkcgemw7Ci0JCi0JemwgPSAoIHBhZGFwdGVyLT5zZWN0b3JDb3VudCA+IE1BWF9CVVNfTUFTVEVSX0JMT0NLUyApID8gTUFYX0JVU19NQVNURVJfQkxPQ0tTIDogcGFkYXB0ZXItPnNlY3RvckNvdW50OwotCXBhZGFwdGVyLT5zZWN0b3JDb3VudCAtPSB6bDsKLQl6bCAqPSAoVUxPTkcpQllURVNfUEVSX1NFQ1RPUjsKLQotCWlmICggZGF0YWluICkKLQkJewotCQlwYWRhcHRlci0+cmVhZENvdW50ID0gemw7Ci0JCW91dGJfcCAoOCwgcGFkYXB0ZXItPnJlZ0RtYURlc2MpOwkJCQkJCQkvLyByZWFkIG9wZXJhdGlvbgotCQlpZiAoIHBhZGFwdGVyLT5iaWdEICkKLQkJCXsKLQkJCWlmICggaXJxICYmICFwYWRhcHRlci0+c2VjdG9yQ291bnQgKQotCQkJCW91dGJfcCAoMHgwQywgcGFkYXB0ZXItPnJlZ0RtYU1vZGUpOwkJCQkvLyBpbnRlcnJ1cHQgb24KLQkJCWVsc2UKLQkJCQlvdXRiX3AgKDB4MDgsIHBhZGFwdGVyLT5yZWdEbWFNb2RlKTsJCQkJLy8gbm8gaW50ZXJydXB0Ci0JCQl9Ci0JCWVsc2UgCi0JCQl7Ci0JCQlpZiAoIGlycSAmJiAhcGFkYXB0ZXItPnNlY3RvckNvdW50ICkKLQkJCQlvdXRiX3AgKDB4MDUsIHBhZGFwdGVyLT5yZWdEbWFNb2RlKTsJCQkJLy8gaW50ZXJydXB0IG9uCi0JCQllbHNlCi0JCQkJb3V0Yl9wICgweDAxLCBwYWRhcHRlci0+cmVnRG1hTW9kZSk7CQkJCS8vIG5vIGludGVycnVwdAotCQkJfQotCQl9Ci0JZWxzZQotCQl7Ci0JCW91dGJfcCAoMHgwMCwgcGFkYXB0ZXItPnJlZ0RtYURlc2MpOwkJCQkJCS8vIHdyaXRlIG9wZXJhdGlvbgotCQlpZiAoIHBhZGFwdGVyLT5iaWdEICkKLQkJCW91dGJfcCAoMHgwOCwgcGFkYXB0ZXItPnJlZ0RtYU1vZGUpOwkJCQkJLy8gbm8gaW50ZXJydXB0CQkJCQkJCi0JCWVsc2UKLQkJCW91dGJfcCAoMHgwMSwgcGFkYXB0ZXItPnJlZ0RtYU1vZGUpOwkJCQkJLy8gbm8gaW50ZXJydXB0Ci0JCVdhbGtTY2F0R2F0aCAocGFkYXB0ZXIsIEZBTFNFLCB6bCk7CQotCQl9Ci0JCi0Jb3V0bCAocGFkYXB0ZXItPnRpbWluZ0FkZHJlc3MsIHBhZGFwdGVyLT5yZWdEbWFBZGRyTG9jKTsKLQlvdXRsIChwYWRhcHRlci0+a0J1ZmZlckRtYSwgcGFkYXB0ZXItPnJlZ0RtYUFkZHJQY2kpOwotCW91dGwgKHpsLCBwYWRhcHRlci0+cmVnRG1hQ291bnQpOwotCW91dGJfcCAoMHgwMywgcGFkYXB0ZXItPnJlZ0RtYUNtZFN0YXQpOwkJCQkJCQkvLyBraWNrIHRoZSBETUEgZW5naW5lIGluIGdlYXIKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJQXRhcGlCdXNNYXN0ZXIJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CURvIGEgYnVzIG1hc3RlciBJL08uCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCWRhdGFpbgkgLSBUUlVFIGlmIGRhdGEgcmVhZC4KLSAqCQkJCQlsZW5ndGgJIC0gTnVtYmVyIG9mIGJ5dGVzIHRvIHRyYW5zZmVyLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgQXRhcGlCdXNNYXN0ZXIgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFVDSEFSIGRhdGFpbiwgVUxPTkcgbGVuZ3RoKQotCXsKLQlvdXRsIChwYWRhcHRlci0+dGltaW5nQWRkcmVzcywgcGFkYXB0ZXItPnJlZ0RtYUFkZHJMb2MpOwotCW91dGwgKHBhZGFwdGVyLT5rQnVmZmVyRG1hLCBwYWRhcHRlci0+cmVnRG1hQWRkclBjaSk7Ci0Jb3V0bCAobGVuZ3RoLCBwYWRhcHRlci0+cmVnRG1hQ291bnQpOwotCWlmICggZGF0YWluICkKLQkJewotCQlpZiAoIHBhZGFwdGVyLT5yZWFkQ291bnQgKQotCQkJCVdhbGtTY2F0R2F0aCAocGFkYXB0ZXIsIFRSVUUsIHBhZGFwdGVyLT5yZWFkQ291bnQpOwotCQlvdXRiX3AgKDB4MDgsIHBhZGFwdGVyLT5yZWdEbWFEZXNjKTsJCQkJCQkvLyByZWFkIG9wZXJhdGlvbgotCQlvdXRiX3AgKDB4MDgsIHBhZGFwdGVyLT5yZWdEbWFNb2RlKTsJCQkJCQkvLyBubyBpbnRlcnJ1cHQKLQkJcGFkYXB0ZXItPnJlYWRDb3VudCA9IGxlbmd0aDsKLQkJfQotCWVsc2UKLQkJewotCQlvdXRiX3AgKDB4MDAsIHBhZGFwdGVyLT5yZWdEbWFEZXNjKTsJCQkJCQkvLyB3cml0ZSBvcGVyYXRpb24KLQkJb3V0Yl9wICgweDA4LCBwYWRhcHRlci0+cmVnRG1hTW9kZSk7CQkJCQkJLy8gbm8gaW50ZXJydXB0CQkJCQkJCi0JCWlmICggIXBhZGFwdGVyLT5hdGFwaVNwZWNpYWwgKQotCQkJV2Fsa1NjYXRHYXRoIChwYWRhcHRlciwgRkFMU0UsIGxlbmd0aCk7CQotCQl9Ci0Jb3V0Yl9wICgweDAzLCBwYWRhcHRlci0+cmVnRG1hQ21kU3RhdCk7CQkJCQkJCS8vIGtpY2sgdGhlIERNQSBlbmdpbmUgaW4gZ2VhcgotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglXcml0ZURhdGEJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVdyaXRlIGRhdGEgdG8gZGV2aWNlLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCi0gKglSZXR1cm5zOgkJVFJVRSBpZiBkcml2ZSBkb2VzIG5vdCBhc3NlcnQgRFJRIGluIHRpbWUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgaW50IFdyaXRlRGF0YSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlcikKLQl7Ci0JVUxPTkcJemw7Ci0JCi0JaWYgKCAhV2FpdERycSAocGFkYXB0ZXIpICkKLQkJewotCQlpZiAoIHBhZGFwdGVyLT50aW1pbmdQSU8gKQotCQkJewotCQkJemwgPSAocGFkYXB0ZXItPnNlY3RvckNvdW50ID4gTUFYX0JVU19NQVNURVJfQkxPQ0tTKSA/IE1BWF9CVVNfTUFTVEVSX0JMT0NLUyA6IHBhZGFwdGVyLT5zZWN0b3JDb3VudDsKLQkJCVdhbGtTY2F0R2F0aCAocGFkYXB0ZXIsIEZBTFNFLCB6bCAqIEJZVEVTX1BFUl9TRUNUT1IpOwotCQkJb3V0c3cgKHBhZGFwdGVyLT5yZWdEYXRhLCBwYWRhcHRlci0+a0J1ZmZlciwgemwgKiAoQllURVNfUEVSX1NFQ1RPUiAvIDIpKTsKLQkJCXBhZGFwdGVyLT5zZWN0b3JDb3VudCAtPSB6bDsKLQkJCX0KLQkJZWxzZQotCQkJQnVzTWFzdGVyIChwYWRhcHRlciwgMCwgMCk7Ci0JCXJldHVybiAwOwotCQl9Ci0JcGFkYXB0ZXItPmNtZCA9IDA7CQkJCQkJCQkJCQkJLy8gbnVsbCBvdXQgdGhlIGNvbW1hbmQgYnl0ZQotCXJldHVybiAxOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglXcml0ZURhdGFCb3RoCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglXcml0ZSBkYXRhIHRvIGRldmljZS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIHRvIGFkYXB0ZXIgc3RydWN0dXJlLgotICoJCQkJCXBkZXYJIC0gUG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCi0gKgotICoJUmV0dXJuczoJCUluZGV4ICsgMSBvZiBkcml2ZSBub3QgZmFpbGVkIG9yIHplcm8gZm9yIE9LLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBXcml0ZURhdGFCb3RoIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBQT1VSX0RFVklDRSBwZGV2KQotCXsKLQlVTE9ORwl6bDsKLQlVQ0hBUglzdGF0dXMwLCBzdGF0dXMxOwotCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSk7Ci0Jc3RhdHVzMCA9IFdhaXREcnEgKHBhZGFwdGVyKTsKLQlpZiAoICFzdGF0dXMwICkKLQkJewotCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3RzWzFdKTsKLQkJc3RhdHVzMSA9IFdhaXREcnEgKHBhZGFwdGVyKTsKLQkJaWYgKCAhc3RhdHVzMSApCi0JCQl7Ci0JCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3RzWzBdIHwgcGRldi0+c3BpZ290c1sxXSB8IHBhZGFwdGVyLT5iaWdEKTsKLQkJCWlmICggcGFkYXB0ZXItPnRpbWluZ1BJTyApCi0JCQkJewotCQkJCXpsID0gKHBhZGFwdGVyLT5zZWN0b3JDb3VudCA+IE1BWF9CVVNfTUFTVEVSX0JMT0NLUykgPyBNQVhfQlVTX01BU1RFUl9CTE9DS1MgOiBwYWRhcHRlci0+c2VjdG9yQ291bnQ7Ci0JCQkJV2Fsa1NjYXRHYXRoIChwYWRhcHRlciwgRkFMU0UsIHpsICogQllURVNfUEVSX1NFQ1RPUik7Ci0JCQkJb3V0c3cgKHBhZGFwdGVyLT5yZWdEYXRhLCBwYWRhcHRlci0+a0J1ZmZlciwgemwgKiAoQllURVNfUEVSX1NFQ1RPUiAvIDIpKTsKLQkJCQlwYWRhcHRlci0+c2VjdG9yQ291bnQgLT0gemw7Ci0JCQkJfQotCQkJZWxzZQotCQkJCUJ1c01hc3RlciAocGFkYXB0ZXIsIDAsIDApOwotCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCX0KLQlwYWRhcHRlci0+Y21kID0gMDsJCQkJCQkJCQkJCQkvLyBudWxsIG91dCB0aGUgY29tbWFuZCBieXRlCi0JaWYgKCBzdGF0dXMwICkKLQkJcmV0dXJuIDI7Ci0JcmV0dXJuIDE7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUlkZUNtZAk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJUHJvY2VzcyBhbiBJREUgY29tbWFuZC4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJcGRldgkgLSBQb2ludGVyIHRvIGRldmljZS4KLSAqCi0gKglSZXR1cm5zOgkJWmVybyBpZiBubyBlcnJvciBvciBzdGF0dXMgcmVnaXN0ZXIgY29udGVudHMgb24gZXJyb3IuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgVUNIQVIgSWRlQ21kIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBQT1VSX0RFVklDRSBwZGV2KQotCXsKLQlVQ0hBUglzdGF0dXM7Ci0KLQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3QgfCBwYWRhcHRlci0+YmlnRCk7CQkJCQkJCS8vIHNlbGVjdCB0aGUgc3BpZ290Ci0Jb3V0Yl9wIChwZGV2LT5ieXRlNiB8ICgoVUNIQVIgKikoJnBhZGFwdGVyLT5zdGFydFNlY3RvcikpWzNdLCBwYWRhcHRlci0+cmVnTGJhMjQpOwkJCS8vIHNlbGVjdCB0aGUgZHJpdmUKLQlzdGF0dXMgPSBXYWl0UmVhZHkgKHBhZGFwdGVyKTsKLQlpZiAoICFzdGF0dXMgKQotCQl7Ci0JCW91dGJfcCAocGFkYXB0ZXItPnNlY3RvckNvdW50LCBwYWRhcHRlci0+cmVnU2VjdENvdW50KTsKLQkJb3V0Yl9wICgoKFVDSEFSICopKCZwYWRhcHRlci0+c3RhcnRTZWN0b3IpKVswXSwgcGFkYXB0ZXItPnJlZ0xiYTApOwotCQlvdXRiX3AgKCgoVUNIQVIgKikoJnBhZGFwdGVyLT5zdGFydFNlY3RvcikpWzFdLCBwYWRhcHRlci0+cmVnTGJhOCk7Ci0JCW91dGJfcCAoKChVQ0hBUiAqKSgmcGFkYXB0ZXItPnN0YXJ0U2VjdG9yKSlbMl0sIHBhZGFwdGVyLT5yZWdMYmExNik7Ci0JCXBhZGFwdGVyLT5leHBlY3RpbmdJUlEgPSBUUlVFOwotCQlXcml0ZUNvbW1hbmQgKHBhZGFwdGVyLCBwYWRhcHRlci0+Y21kKTsKLQkJcmV0dXJuIDA7Ci0JCX0KLQotCXBhZGFwdGVyLT5jbWQgPSAwOwkJCQkJCQkJCS8vIG51bGwgb3V0IHRoZSBjb21tYW5kIGJ5dGUKLQlyZXR1cm4gc3RhdHVzOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglJZGVDbWRCb3RoCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglQcm9jZXNzIGFuIElERSBjb21tYW5kIHRvIGJvdGggZHJpdmVycy4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJcGRldgkgLSBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUKLSAqCi0gKglSZXR1cm5zOgkJSW5kZXggKyAxIG9mIGRyaXZlIG5vdCBmYWlsZWQgb3IgemVybyBmb3IgT0suCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgVUNIQVIgSWRlQ21kQm90aCAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgUE9VUl9ERVZJQ0UgcGRldikKLQl7Ci0JVUNIQVIJc3RhdHVzMDsKLQlVQ0hBUglzdGF0dXMxOwotCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSB8IHBkZXYtPnNwaWdvdHNbMV0pOwkJCQkJCQkJLy8gc2VsZWN0IHRoZSBzcGlnb3RzCi0Jb3V0Yl9wIChwYWRhcHRlci0+cGRldi0+Ynl0ZTYgfCAoKFVDSEFSICopKCZwYWRhcHRlci0+c3RhcnRTZWN0b3IpKVszXSwgcGFkYXB0ZXItPnJlZ0xiYTI0KTsvLyBzZWxlY3QgdGhlIGRyaXZlCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSk7Ci0Jc3RhdHVzMCA9IFdhaXRSZWFkeSAocGFkYXB0ZXIpOwotCWlmICggIXN0YXR1czAgKQotCQl7Ci0JCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdHNbMV0pOwotCQlzdGF0dXMxID0gV2FpdFJlYWR5IChwYWRhcHRlcik7Ci0JCWlmICggIXN0YXR1czEgKQotCQkJewotCQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSB8IHBkZXYtPnNwaWdvdHNbMV0gfCBwYWRhcHRlci0+YmlnRCk7Ci0JCQlvdXRiX3AgKHBhZGFwdGVyLT5zZWN0b3JDb3VudCwgcGFkYXB0ZXItPnJlZ1NlY3RDb3VudCk7Ci0JCQlvdXRiX3AgKCgoVUNIQVIgKikoJnBhZGFwdGVyLT5zdGFydFNlY3RvcikpWzBdLCBwYWRhcHRlci0+cmVnTGJhMCk7Ci0JCQlvdXRiX3AgKCgoVUNIQVIgKikoJnBhZGFwdGVyLT5zdGFydFNlY3RvcikpWzFdLCBwYWRhcHRlci0+cmVnTGJhOCk7Ci0JCQlvdXRiX3AgKCgoVUNIQVIgKikoJnBhZGFwdGVyLT5zdGFydFNlY3RvcikpWzJdLCBwYWRhcHRlci0+cmVnTGJhMTYpOwotCQkJcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IFRSVUU7Ci0JCQlXcml0ZUNvbW1hbmQgKHBhZGFwdGVyLCBwYWRhcHRlci0+Y21kKTsKLQkJCXJldHVybiAwOwotCQkJfQotCQl9Ci0JcGFkYXB0ZXItPmNtZCA9IDA7CQkJCQkJCQkJLy8gbnVsbCBvdXQgdGhlIGNvbW1hbmQgYnl0ZQotCWlmICggc3RhdHVzMCApCi0JCXJldHVybiAyOwotCXJldHVybiAxOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglPcERvbmUJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CUNvbXBsZXRlIGFuIG9wZXJhdG9pbiBkb25lIHNlcXVlbmNlLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgdG8gaG9zdCBkYXRhIGJsb2NrLgotICoJCQkJCXNwaWdvdAkgLSBTcGlnb3Qgc2VsZWN0IGNvZGUuCi0gKgkJCQkJZGV2aWNlCSAtIERldmljZSBieXRlIGNvZGUuCi0gKgotICoJUmV0dXJuczoJCU5vdGhpbmcuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgdm9pZCBPcERvbmUgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFVMT05HIHJlc3VsdCkKLQl7Ci0JU2NzaV9DbW5kCSAgICpTQ3BudCA9IHBhZGFwdGVyLT5TQ3BudDsKLQkKLQlpZiAoIHBhZGFwdGVyLT5yZWNvblBoYXNlICkKLQkJewotCQlwYWRhcHRlci0+cmVjb25QaGFzZSA9IDA7Ci0JCWlmICggcGFkYXB0ZXItPlNDcG50ICkKLQkJCXsKLQkJCVBjaTIyMjBpX1F1ZXVlQ29tbWFuZCAoU0NwbnQsIFNDcG50LT5zY3NpX2RvbmUpOwotCQkJfQotCQllbHNlCi0JCQl7Ci0JCQlpZiAoIHBhZGFwdGVyLT5yZWNvbk9uICkKLQkJCQl7Ci0JCQkJUmVjb25UaW1lckV4cGlyeSAoKHVuc2lnbmVkIGxvbmcpcGFkYXB0ZXIpOwotCQkJCX0KLQkJCX0KLQkJfQotCWVsc2UKLQkJewotCQlwYWRhcHRlci0+Y21kID0gMDsKLQkJcGFkYXB0ZXItPlNDcG50ID0gTlVMTDsJCi0JCXBhZGFwdGVyLT5wZGV2ID0gTlVMTDsKLQkJU0NwbnQtPnJlc3VsdCA9IHJlc3VsdDsKLQkJU0NwbnQtPnNjc2lfZG9uZSAoU0NwbnQpOwotCQlpZiAoIHBhZGFwdGVyLT5yZWNvbk9uICYmICFwYWRhcHRlci0+cmVjb25UaW1lci5kYXRhICkKLQkJCXsKLQkJCXBhZGFwdGVyLT5yZWNvblRpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgKEhaIC8gNCk7CS8vIHN0YXJ0IGluIDEvNCBzZWNvbmQKLQkJCXBhZGFwdGVyLT5yZWNvblRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZylwYWRhcHRlcjsKLQkJCWFkZF90aW1lciAoJnBhZGFwdGVyLT5yZWNvblRpbWVyKTsKLQkJCX0KLQkJfQotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglJbmxpbmVJZGVudGlmeQk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJRG8gYW4gaW50bGluZSBpbnF1aXJ5IG9uIGEgZHJpdmUuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciB0byBob3N0IGRhdGEgYmxvY2suCi0gKgkJCQkJc3BpZ290CSAtIFNwaWdvdCBzZWxlY3QgY29kZS4KLSAqCQkJCQlkZXZpY2UJIC0gRGV2aWNlIGJ5dGUgY29kZS4KLSAqCi0gKglSZXR1cm5zOgkJTGFzdCBhZGRyZXNzYWJsZSBzZWN0b3Igb3IgemVybyBpZiBub25lLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIFVMT05HIElubGluZUlkZW50aWZ5IChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBVQ0hBUiBzcGlnb3QsIFVDSEFSIGRldmljZSkKLQl7Ci0JUElERU5USUZZX0RBVEEJcGlkID0gKFBJREVOVElGWV9EQVRBKXBhZGFwdGVyLT5rQnVmZmVyOwotCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgc3BpZ290IHwgU0VMX0lSUV9PRkYpOwkJCQkJLy8gc2VsZWN0IHRoZSBzcGlnb3QKLQlvdXRiX3AgKChkZXZpY2UgPDwgNCkgfCAweEEwLCBwYWRhcHRlci0+cmVnTGJhMjQpOwkJCQkvLyBzZWxlY3QgdGhlIGRyaXZlCi0JaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCi0JCXJldHVybiAwOwotCVdyaXRlQ29tbWFuZCAocGFkYXB0ZXIsIElERV9DT01NQU5EX0lERU5USUZZKTsJCi0JaWYgKCBXYWl0RHJxIChwYWRhcHRlcikgKQotCQlyZXR1cm4gMDsKLQlpbnN3IChwYWRhcHRlci0+cmVnRGF0YSwgcGFkYXB0ZXItPmtCdWZmZXIsIHNpemVvZiAoSURFTlRJRllfREFUQSkgPj4gMSk7Ci0JcmV0dXJuIChwaWQtPkxCQVRvdGFsU2VjdG9ycyAtIDEpOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglBdGFwaUlkZW50aWZ5CTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglEbyBhbiBpbnRsaW5lIGlucXVpcnkgb24gYSBkcml2ZS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIHRvIGhvc3QgZGF0YSBibG9jay4KLSAqCQkJCQlwZGV2CSAtIFBvaW50ZXIgdG8gZGV2aWNlIHRhYmxlLgotICoKLSAqCVJldHVybnM6CQlUUlVFIG9uIGVycm9yLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIFVMT05HIEF0YXBpSWRlbnRpZnkgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFBPVVJfREVWSUNFIHBkZXYpCi0JewotCUFUQVBJX0dFTkVSQUxfMAkJYWcwOwotCVVTSE9SVAkJCQl6czsKLQlpbnQJCQkJCXo7Ci0KLQlBdGFwaURldmljZSAocGFkYXB0ZXIsIHBkZXYtPmJ5dGU2KTsJCi0JV3JpdGVDb21tYW5kIChwYWRhcHRlciwgSURFX0NPTU1BTkRfQVRBUElfSURFTlRJRlkpOwkKLQlpZiAoIEF0YXBpV2FpdERycSAocGFkYXB0ZXIsIDMwMDApICkKLQkJcmV0dXJuIFRSVUU7Ci0KLQkqKFVTSE9SVCAqKSZhZzAgPSBpbndfcCAocGFkYXB0ZXItPnJlZ0RhdGEpOwotCWZvciAoIHogPSAwOyAgeiA8IDI1NTsgIHorKyApCi0JCXpzID0gaW53X3AgKHBhZGFwdGVyLT5yZWdEYXRhKTsKLQotCWlmICggYWcwLlByb3RvY29sVHlwZSA9PSAyICkKLQkJewotCQlpZiAoIGFnMC5DbWREcnFUeXBlID09IDEgKQotCQkJcGRldi0+Y21kRHJxSW50ID0gVFJVRTsKLQkJc3dpdGNoICggYWcwLkNtZFBhY2tldFNpemUgKQotCQkJewotCQkJY2FzZSAwOgotCQkJCXBkZXYtPnBhY2tldCA9IDY7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIDE6Ci0JCQkJcGRldi0+cGFja2V0ID0gODsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJcGRldi0+cGFja2V0ID0gNjsKLQkJCQlicmVhazsKLQkJCX0KLQkJcmV0dXJuIEZBTFNFOwotCQl9Ci0JcmV0dXJuIFRSVUU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUF0YXBpMlNjc2kKLSAqCi0gKglEZXNjcmlwdGlvbjoJQ29udmVydCBBVEFQSSBkYXRhIHRvIFNDU0kgZGF0YS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJU0NwbnQJIC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotdm9pZCBBdGFwaTJTY3NpIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBTY3NpX0NtbmQgKlNDcG50KQotCXsKLQlVQ0hBUgkqYnVmZiA9IHBhZGFwdGVyLT5jdXJyZW50U2dCdWZmZXI7Ci0gCi0Jc3dpdGNoICggU0NwbnQtPmNtbmRbMF0gKQotCQl7Ci0JCWNhc2UgU0NTSU9QX01PREVfU0VOU0U6Ci0JCQlidWZmWzBdID0gcGFkYXB0ZXItPmtCdWZmZXJbMV07Ci0JCQlidWZmWzFdID0gcGFkYXB0ZXItPmtCdWZmZXJbMl07Ci0JCQlidWZmWzJdID0gcGFkYXB0ZXItPmtCdWZmZXJbM107Ci0JCQlidWZmWzNdID0gcGFkYXB0ZXItPmtCdWZmZXJbN107Ci0JCQltZW1jcHkgKCZidWZmWzRdLCAmcGFkYXB0ZXItPmtCdWZmZXJbOF0sIHBhZGFwdGVyLT5hdGFwaUNkYls4XSAtIDgpOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0NTSU9QX0lOUVVJUlk6Ci0JCQlwYWRhcHRlci0+a0J1ZmZlclsyXSA9IDI7Ci0JCQltZW1jcHkgKGJ1ZmYsIHBhZGFwdGVyLT5rQnVmZmVyLCBwYWRhcHRlci0+Y3VycmVudFNnQ291bnQpOwotCQkJYnJlYWs7CQkKLQkJZGVmYXVsdDoKLQkJCWlmICggcGFkYXB0ZXItPnJlYWRDb3VudCApCi0JCQkJV2Fsa1NjYXRHYXRoIChwYWRhcHRlciwgVFJVRSwgcGFkYXB0ZXItPnJlYWRDb3VudCk7Ci0JCQlicmVhazsKLQkJfQotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglTY3NpMkF0YXBpCi0gKgotICoJRGVzY3JpcHRpb246CUNvbnZlcnQgU0NTSSBwYWNrZXQgY29tbWFuZCB0byBBdGFwaSBwYWNrZXQgY29tbWFuZC4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJU0NwbnQJIC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgU2NzaTJBdGFwaSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgU2NzaV9DbW5kICpTQ3BudCkKLQl7Ci0JVUNIQVIJKmNkYiA9IFNDcG50LT5jbW5kOwotCVVDSEFSCSpidWZmID0gcGFkYXB0ZXItPmN1cnJlbnRTZ0J1ZmZlcjsKLQotCXN3aXRjaCAoY2RiWzBdKSAKLQkJewotCQljYXNlIFNDU0lPUF9SRUFENjoKLSAgICAgICAgICAgIHBhZGFwdGVyLT5hdGFwaUNkYlswXSA9IFNDU0lPUF9SRUFEOwotCQkJcGFkYXB0ZXItPmF0YXBpQ2RiWzFdID0gY2RiWzFdICYgMHhFMDsKLSAgICAgICAgICAgIHBhZGFwdGVyLT5hdGFwaUNkYlszXSA9IGNkYlsxXSAmIDB4MUY7Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbNF0gPSBjZGJbMl07Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbNV0gPSBjZGJbM107Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbOF0gPSBjZGJbNF07Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbOV0gPSBjZGJbNV07Ci0JCQlicmVhazsKLQkJY2FzZSBTQ1NJT1BfV1JJVEU2OgotICAgICAgICAgICAgcGFkYXB0ZXItPmF0YXBpQ2RiWzBdID0gU0NTSU9QX1dSSVRFOwotCQkJcGFkYXB0ZXItPmF0YXBpQ2RiWzFdID0gY2RiWzFdICYgMHhFMDsKLSAgICAgICAgICAgIHBhZGFwdGVyLT5hdGFwaUNkYlszXSA9IGNkYlsxXSAmIDB4MUY7Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbNF0gPSBjZGJbMl07Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbNV0gPSBjZGJbM107Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbOF0gPSBjZGJbNF07Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbOV0gPSBjZGJbNV07Ci0JCQlicmVhazsKLSAgICAgICAgY2FzZSBTQ1NJT1BfTU9ERV9TRU5TRTogCi0gICAgICAgICAgICBwYWRhcHRlci0+YXRhcGlDZGJbMF0gPSBTQ1NJT1BfTU9ERV9TRU5TRTEwOwotCQkJcGFkYXB0ZXItPmF0YXBpQ2RiWzJdID0gY2RiWzJdOwotCQkJcGFkYXB0ZXItPmF0YXBpQ2RiWzhdID0gY2RiWzRdICsgNDsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgU0NTSU9QX01PREVfU0VMRUNUOiAKLQkJCXBhZGFwdGVyLT5hdGFwaVNwZWNpYWwgPSBUUlVFOwotCQkJcGFkYXB0ZXItPmF0YXBpQ2RiWzBdID0gU0NTSU9QX01PREVfU0VMRUNUMTA7Ci0JCQlwYWRhcHRlci0+YXRhcGlDZGJbMV0gPSBjZGJbMV0gfCAweDEwOwotCQkJbWVtY3B5IChwYWRhcHRlci0+a0J1ZmZlciwgYnVmZiwgNCk7Ci0JCQlwYWRhcHRlci0+a0J1ZmZlcls0XSA9IHBhZGFwdGVyLT5rQnVmZmVyWzVdID0gMDsKLQkJCXBhZGFwdGVyLT5rQnVmZmVyWzZdID0gcGFkYXB0ZXItPmtCdWZmZXJbN10gPSAwOwotCQkJbWVtY3B5ICgmcGFkYXB0ZXItPmtCdWZmZXJbOF0sICZidWZmWzRdLCBjZGJbNF0gLSA0KTsKLQkJCXBhZGFwdGVyLT5hdGFwaUNkYls4XSA9IGNkYls0XSArIDQ7Ci0JCQlicmVhazsKLQkgICAgfQotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglBdGFwaVNlbmRDZGIKLSAqCi0gKglEZXNjcmlwdGlvbjoJU2VuZCB0aGUgQ0RCIHBhY2tldCB0byB0aGUgZGV2aWNlLgotICoKLSAqCVBhcmFtZXRlcnM6CQlwYWRhcHRlciAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCQkJCQlwZGV2CSAtIFBvaW50ZXIgdG8gZGV2aWNlLgotICoJCQkJCWNkYgkJIC0gUG9pbnRlciB0byAxNiBieXRlIFNDU0kgY2RiLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgQXRhcGlTZW5kQ2RiIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBQT1VSX0RFVklDRSBwZGV2LCBDSEFSICpjZGIpCi0JewotCURFQiAocHJpbnRrICgiXG5QQ0kyMjQySTogQ0RCOiAlWCAlWCAlWCAlWCAlWCAlWCAlWCAlWCAlWCAlWCAlWCAlWCIsIGNkYlswXSwgY2RiWzFdLCBjZGJbMl0sIGNkYlszXSwgY2RiWzRdLCBjZGJbNV0sIGNkYls2XSwgY2RiWzddLCBjZGJbOF0sIGNkYls5XSwgY2RiWzEwXSwgY2RiWzExXSkpOwotCW91dHN3IChwYWRhcHRlci0+cmVnRGF0YSwgY2RiLCBwZGV2LT5wYWNrZXQpOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglBdGFwaVJlcXVlc3RTZW5zZQotICoKLSAqCURlc2NyaXB0aW9uOglTZW5kIHRoZSBDREIgcGFja2V0IHRvIHRoZSBkZXZpY2UuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCXBkZXYJIC0gUG9pbnRlciB0byBkZXZpY2UuCi0gKgkJCQkJU0NwbnQJIC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoJCQkJCXBhc3MJIC0gSWYgdHJ1ZSB0aGVuIHRoaXMgaXMgdGhlIHNlY29uZCBwYXNzIHRvIHNlbmQgY2RiLgotICoKLSAqCVJldHVybnM6CQlUUlVFIG9uIGVycm9yLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBBdGFwaVJlcXVlc3RTZW5zZSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgUE9VUl9ERVZJQ0UgcGRldiwgU2NzaV9DbW5kICpTQ3BudCwgVUNIQVIgcGFzcykKLQl7Ci0JVUNIQVIJY2RiWzE2XSA9IHtTQ1NJT1BfUkVRVUVTVF9TRU5TRSwwLDAsMCwxNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDB9OwkJCi0JCi0JREVCIChwcmludGsgKCJcblBDSTIyNDJJOiBBVVRPIFJFUVVFU1QgU0VOU0UiKSk7Ci0JY2RiWzRdID0gKFVDSEFSKShzaXplb2YgKFNDcG50LT5zZW5zZV9idWZmZXIpKTsKLQlpZiAoICFwYXNzICkKLQkJewotCQlwYWRhcHRlci0+cmVxU2Vuc2UgPSBUUlVFOwotCSAJQXRhcGlDb3VudExvIChwYWRhcHRlciwgY2RiWzRdKTsJCQkJCQkKLQkJQXRhcGlDb3VudEhpIChwYWRhcHRlciwgMCk7CQkJCQkJCi0JCW91dGJfcCAoMCwgcGFkYXB0ZXItPnJlZ0Vycm9yKTsJCQkJCQkKLQkJV3JpdGVDb21tYW5kIChwYWRhcHRlciwgSURFX0NPTU1BTkRfQVRBUElfUEFDS0VUKTsKLQkJaWYgKCBwZGV2LT5jbWREcnFJbnQgKQotCQkJcmV0dXJuIEZBTFNFOwotCi0JCWlmICggQXRhcGlXYWl0RHJxIChwYWRhcHRlciwgNTAwKSApCi0JCQlyZXR1cm4gVFJVRTsKLQkJfQotCUF0YXBpU2VuZENkYiAocGFkYXB0ZXIsIHBkZXYsIGNkYik7CQotCXJldHVybiBGQUxTRTsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJSW5saW5lUmVhZFNpZ25hdHVyZQk6TE9DQUwKLSAqCi0gKglEZXNjcmlwdGlvbjoJRG8gYW4gaW5saW5lIHJlYWQgUkFJRCBzaWdhdHVyZS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIGFkYXB0ZXIgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJcGRldgkgLSBQb2ludGVyIHRvIGRldmljZS4KLSAqCQkJCQlpbmRleAkgLSBpbmRleCBvZiBkYXRhIHRvIHJlYWQuCi0gKgotICoJUmV0dXJuczoJCVplcm8gaWYgbm8gZXJyb3Igb3Igc3RhdHVzIHJlZ2lzdGVyIGNvbnRlbnRzIG9uIGVycm9yLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIFVDSEFSIElubGluZVJlYWRTaWduYXR1cmUgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFBPVVJfREVWSUNFIHBkZXYsIGludCBpbmRleCkKLQl7Ci0JVUNIQVIJc3RhdHVzOwotCVVMT05HCXpsID0gcGRldi0+bGFzdHNlY3RvcmxiYVtpbmRleF07Ci0KLQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3RzW2luZGV4XSB8IFNFTF9JUlFfT0ZGKTsJLy8gc2VsZWN0IHRoZSBzcGlnb3Qgd2l0aG91dCBpbnRlcnJ1cHRzCi0Jb3V0Yl9wIChwZGV2LT5ieXRlNiB8ICgoVUNIQVIgKikmemwpWzNdLCBwYWRhcHRlci0+cmVnTGJhMjQpOwkJCi0Jc3RhdHVzID0gV2FpdFJlYWR5IChwYWRhcHRlcik7Ci0JaWYgKCAhc3RhdHVzICkKLQkJewotCQlvdXRiX3AgKCgoVUNIQVIgKikmemwpWzJdLCBwYWRhcHRlci0+cmVnTGJhMTYpOwotCQlvdXRiX3AgKCgoVUNIQVIgKikmemwpWzFdLCBwYWRhcHRlci0+cmVnTGJhOCk7IAotCQlvdXRiX3AgKCgoVUNIQVIgKikmemwpWzBdLCBwYWRhcHRlci0+cmVnTGJhMCk7Ci0JCW91dGJfcCAoMSwgcGFkYXB0ZXItPnJlZ1NlY3RDb3VudCk7Ci0JCVdyaXRlQ29tbWFuZCAocGFkYXB0ZXIsIElERV9DT01NQU5EX1JFQUQpOwotCQlzdGF0dXMgPSBXYWl0RHJxIChwYWRhcHRlcik7Ci0JCWlmICggIXN0YXR1cyApCi0JCQl7Ci0JCQlpbnN3IChwYWRhcHRlci0+cmVnRGF0YSwgcGFkYXB0ZXItPmtCdWZmZXIsIEJZVEVTX1BFUl9TRUNUT1IgLyAyKTsKLQkJCSgoVUxPTkcgKikoJnBkZXYtPkRpc2tNaXJyb3JbaW5kZXhdKSlbMF0gPSAoKFVMT05HICopKCZwYWRhcHRlci0+a0J1ZmZlcltESVNLX01JUlJPUl9QT1NJVElPTl0pKVswXTsKLQkJCSgoVUxPTkcgKikoJnBkZXYtPkRpc2tNaXJyb3JbaW5kZXhdKSlbMV0gPSAoKFVMT05HICopKCZwYWRhcHRlci0+a0J1ZmZlcltESVNLX01JUlJPUl9QT1NJVElPTl0pKVsxXTsKLQkJCS8vIHNvbWUgZHJpdmVzIGFzc2VydCBEUlEgYmVmb3JlIElSUSBzbyBsZXQncyBtYWtlIHN1cmUgd2UgY2xlYXIgdGhlIElSUQotCQkJV2FpdFJlYWR5IChwYWRhcHRlcik7Ci0JCQlyZXR1cm4gMDsJCQkKLQkJCX0KLQkJfQotCXJldHVybiBzdGF0dXM7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CURlY29kZUVycm9yCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglEZWNvZGUgYW5kIHByb2Nlc3MgZGV2aWNlIGVycm9ycy4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcGFkYXB0ZXIgLSBQb2ludGVyIHRvIGFkYXB0ZXIgZGF0YS4KLSAqCQkJCQlzdGF0dXMgLSBTdGF0dXMgcmVnaXN0ZXIgY29kZS4KLSAqCi0gKglSZXR1cm5zOgkJVGhlIGRyaXZlciBzdGF0dXMgY29kZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBVTE9ORyBEZWNvZGVFcnJvciAoUEFEQVBURVIyMjIwSQlwYWRhcHRlciwgVUNIQVIgc3RhdHVzKQotCXsKLQlVQ0hBUgkJCWVycm9yOwotCi0JcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IDA7Ci0JaWYgKCBzdGF0dXMgJiBJREVfU1RBVFVTX1dSSVRFX0ZBVUxUICkKLQkJewotCQlyZXR1cm4gRElEX1BBUklUWSA8PCAxNjsKLQkJfQotCWlmICggc3RhdHVzICYgSURFX1NUQVRVU19CVVNZICkKLQkJcmV0dXJuIERJRF9CVVNfQlVTWSA8PCAxNjsKLQotCWVycm9yID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdFcnJvcik7Ci0JREVCKHByaW50ayAoIlxucGNpMjIyMGkgZXJyb3IgcmVnaXN0ZXI6ICV4IiwgZXJyb3IpKTsKLQlzd2l0Y2ggKCBlcnJvciApCi0JCXsKLQkJY2FzZSBJREVfRVJST1JfQU1ORjoKLQkJY2FzZSBJREVfRVJST1JfVEtPTkY6Ci0JCWNhc2UgSURFX0VSUk9SX0FCUlQ6Ci0JCWNhc2UgSURFX0VSUk9SX0lERk46Ci0JCWNhc2UgSURFX0VSUk9SX1VOQzoKLQkJY2FzZSBJREVfRVJST1JfQkJLOgotCQlkZWZhdWx0OgotCQkJcmV0dXJuIERJRF9FUlJPUiA8PCAxNjsKLQkJfQotCXJldHVybiBESURfRVJST1IgPDwgMTY7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVN0YXJ0VGltZXIJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVN0YXJ0IHRoZSB0aW1lci4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJaXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgU3RhcnRUaW1lciAoUEFEQVBURVIyMjIwSSBwYWRhcHRlcikKLQl7Ci0JcGFkYXB0ZXItPnRpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgVElNRU9VVF9EQVRBOwotCWFkZF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVdyaXRlU2lnbmF0dXJlCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglTdGFydCB0aGUgdGltZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCXBkZXYJIC0gUG9pbnRlciB0byBvdXIgZGV2aWNlLgotICoJCQkJCXNwaWdvdAkgLSBTZWxlY3RlZCBzcGlnb3QuCi0gKgkJCQkJaW5kZXgJIC0gaW5kZXggb2YgbWlycm9yIHNpZ25hdHVyZSBvbiBkZXZpY2UuCi0gKgotICoJUmV0dXJuczoJCVRSVUUgb24gYW55IGVycm9yLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBXcml0ZVNpZ25hdHVyZSAoUEFEQVBURVIyMjIwSSBwYWRhcHRlciwgUE9VUl9ERVZJQ0UgcGRldiwgVUNIQVIgc3BpZ290LCBpbnQgaW5kZXgpCi0JewotCVVMT05HCXpsOwotCi0JU2VsZWN0U3BpZ290IChwYWRhcHRlciwgc3BpZ290KTsKLQl6bCA9IHBkZXYtPmxhc3RzZWN0b3JsYmFbaW5kZXhdOwotCW91dGJfcCAocGRldi0+Ynl0ZTYgfCAoKFVDSEFSICopJnpsKVszXSwgcGFkYXB0ZXItPnJlZ0xiYTI0KTsJCQotCW91dGJfcCAoKChVQ0hBUiAqKSZ6bClbMl0sIHBhZGFwdGVyLT5yZWdMYmExNik7Ci0Jb3V0Yl9wICgoKFVDSEFSICopJnpsKVsxXSwgcGFkYXB0ZXItPnJlZ0xiYTgpOwotCW91dGJfcCAoKChVQ0hBUiAqKSZ6bClbMF0sIHBhZGFwdGVyLT5yZWdMYmEwKTsKLQlvdXRiX3AgKDEsIHBhZGFwdGVyLT5yZWdTZWN0Q291bnQpOwotCi0JV3JpdGVDb21tYW5kIChwYWRhcHRlciwgSURFX0NPTU1BTkRfV1JJVEUpOwkKLQlpZiAoIFdhaXREcnEgKHBhZGFwdGVyKSApCi0JCXJldHVybiBUUlVFOwotCVN0YXJ0VGltZXIgKHBhZGFwdGVyKTsJCi0JcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IFRSVUU7Ci0JCi0JKChVTE9ORyAqKSgmcGFkYXB0ZXItPmtCdWZmZXJbRElTS19NSVJST1JfUE9TSVRJT05dKSlbMF0gPSAoKFVMT05HICopKCZwZGV2LT5EaXNrTWlycm9yW2luZGV4XSkpWzBdOwotCSgoVUxPTkcgKikoJnBhZGFwdGVyLT5rQnVmZmVyW0RJU0tfTUlSUk9SX1BPU0lUSU9OXSkpWzFdID0gKChVTE9ORyAqKSgmcGRldi0+RGlza01pcnJvcltpbmRleF0pKVsxXTsKLQlvdXRzdyAocGFkYXB0ZXItPnJlZ0RhdGEsIHBhZGFwdGVyLT5rQnVmZmVyLCBCWVRFU19QRVJfU0VDVE9SIC8gMik7Ci0JcmV0dXJuIEZBTFNFOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOgkJCUluaXRGYWlsb3ZlcgotICoKLSAqCURlc2NyaXB0aW9uOglUaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZhaWxvdmVyIHJvdXRpbmUKLSAqCi0gKglQYXJhbWV0ZXJzOgkJU0NwbnQJIC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoJCQkJCXBhZGFwdGVyIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoJCQkJCXBkZXYJIC0gUG9pbnRlciB0byBvdXIgZGV2aWNlLgotICoJCi0gKglSZXR1cm5zOgkJVFJVRSBvbiBlcnJvci4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBJbml0RmFpbG92ZXIgKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFBPVVJfREVWSUNFIHBkZXYpCi0JewotCVVDSEFSCXNwaWdvdDsKLQkKLQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6ICBJbml0aWFsaXplIGZhaWxvdmVyIHByb2Nlc3MgLSBzdXJ2aXZvciA9ICVkIiwgcGRldi0+ZGV2aWNlSURbcGFkYXB0ZXItPnN1cnZpdm9yXSkpOwotCXBkZXYtPnJhaWQgPSBGQUxTRTsJCQkJCQkJCQkvL2luaXRpYWxpemVzIHN5c3RlbSBmb3Igbm9uIHJhaWQgbW9kZQotCXBkZXYtPnJlY29uT24gPSBGQUxTRTsKLQlzcGlnb3QgPSBwZGV2LT5zcGlnb3RzW3BhZGFwdGVyLT5zdXJ2aXZvcl07CQotCi0JaWYgKCBwZGV2LT5EaXNrTWlycm9yW3BhZGFwdGVyLT5zdXJ2aXZvcl0uc3RhdHVzICYgVUNCRl9SRUJVSUxEICkKLQkJewotCQlERUIgKHByaW50ayAoIlxuICAgICAgICAgZmFpbGVkLCBpcyBzdXJ2aXZvciIpKTsKLQkJcmV0dXJuIChUUlVFKTsgCi0JCX0KLQotCWlmICggSGFyZFJlc2V0IChwYWRhcHRlciwgcGRldiwgc3BpZ290KSApCi0JCXsKLQkJREVCIChwcmludGsgKCJcbiAgICAgICAgIGZhaWxlZCwgcmVzZXQiKSk7Ci0JCXJldHVybiBUUlVFOwotCQl9Ci0KLQlBbGFybSAocGFkYXB0ZXIsIHBkZXYtPmRldmljZUlEW3BhZGFwdGVyLT5zdXJ2aXZvciBeIDFdKTsKLQlwZGV2LT5EaXNrTWlycm9yW3BhZGFwdGVyLT5zdXJ2aXZvcl0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfU1VSVklWT1I7CS8vY2xlYXIgcHJlc2VudCBzdGF0dXMKLQkKLQlpZiAoIFdyaXRlU2lnbmF0dXJlIChwYWRhcHRlciwgcGRldiwgc3BpZ290LCBwYWRhcHRlci0+c3Vydml2b3IpICkKLQkJewotCQlERUIgKHByaW50ayAoIlxuICAgICAgICAgZmFpbGVkLCB3cml0ZSBzaWduYXR1cmUiKSk7Ci0JCXJldHVybiBUUlVFOwotCQl9Ci0JcGFkYXB0ZXItPmZhaWxpbnByb2cgPSBUUlVFOwotCXJldHVybiBGQUxTRTsKLQl9Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJVGltZXJFeHBpcnkJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVRpbWVyIGV4cGlyeSByb3V0aW5lLgotICoKLSAqCVBhcmFtZXRlcnM6CQlkYXRhIC0gUG9pbnRlciBhZGFwdGVyIGRhdGEgc3RydWN0dXJlLgotICoKLSAqCVJldHVybnM6CQlOb3RoaW5nLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHZvaWQgVGltZXJFeHBpcnkgKHVuc2lnbmVkIGxvbmcgZGF0YSkKLQl7Ci0JUEFEQVBURVIyMjIwSQlwYWRhcHRlciA9IChQQURBUFRFUjIyMjBJKWRhdGE7Ci0Jc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IHBhZGFwdGVyLT5TQ3BudC0+ZGV2aWNlLT5ob3N0OwotCVBPVVJfREVWSUNFCQlwZGV2ID0gcGFkYXB0ZXItPnBkZXY7Ci0JVUNIQVIJCQlzdGF0dXMgPSBJREVfU1RBVFVTX0JVU1k7Ci0JVUNIQVIJCQl0ZW1wLCB0ZW1wMTsKLSAgICB1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotICAgIC8qCi0gICAgICogRGlzYWJsZSBpbnRlcnJ1cHRzLCBpZiB0aGV5IGFyZW4ndCBhbHJlYWR5IGRpc2FibGVkIGFuZCBhY3F1aXJlCi0gICAgICogdGhlIEkvTyBzcGlubG9jay4KLSAgICAgKi8KLSAgICBzcGluX2xvY2tfaXJxc2F2ZSAoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JREVCIChwcmludGsgKCJcblBDSTIyMjBJOiBUaW1lb3V0IGV4cGlyZWQgIikpOwotCi0JaWYgKCBwYWRhcHRlci0+ZmFpbGlucHJvZyApCi0JCXsKLQkJREVCIChwcmludGsgKCJpbiBmYWlsb3ZlciBwcm9jZXNzIikpOwotCQlPcERvbmUgKHBhZGFwdGVyLCBEZWNvZGVFcnJvciAocGFkYXB0ZXIsIGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCkpKTsKLQkJZ290byB0aW1lckV4cGlyeURvbmU7Ci0JCX0KLQkKLQl3aGlsZSAoIHBhZGFwdGVyLT5yZWNvblBoYXNlICkKLQkJewotCQlERUIgKHByaW50ayAoImluIHJlY29uIHBoYXNlICVYIiwgcGFkYXB0ZXItPnJlY29uUGhhc2UpKTsKLQkJc3dpdGNoICggcGFkYXB0ZXItPnJlY29uUGhhc2UgKQotCQkJewotCQkJY2FzZSBSRUNPTl9QSEFTRV9NQVJLSU5HOgotCQkJY2FzZSBSRUNPTl9QSEFTRV9MQVNUOgotCQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9ICggcGRldi0+c3BpZ290ID09IHBkZXYtPnNwaWdvdHNbMF0gKSA/IDEgOiAwOwotCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogRkFJTFVSRSAxIikpOwotCQkJCWlmICggSW5pdEZhaWxvdmVyIChwYWRhcHRlciwgcGRldikgKQotCQkJCQlPcERvbmUgKHBhZGFwdGVyLCBESURfRVJST1IgPDwgMTYpOwotCQkJCWdvdG8gdGltZXJFeHBpcnlEb25lOwotCQkJCi0JCQljYXNlIFJFQ09OX1BIQVNFX1JFQURZOgotCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQkJZ290byB0aW1lckV4cGlyeURvbmU7Ci0KLQkJCWNhc2UgUkVDT05fUEhBU0VfQ09QWToKLQkJCQlwYWRhcHRlci0+c3Vydml2b3IgPSAoIHBkZXYtPnNwaWdvdCA9PSBwZGV2LT5zcGlnb3RzWzBdICkgPyAwIDogMTsKLQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgMiIpKTsKLQkJCQlERUIgKHByaW50ayAoIlxuICAgICAgIHNwaWcvc3RhdCA9ICVYIiwgaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0U2VsKSk7Ci0JCQkJaWYgKCBJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQkJZ290byB0aW1lckV4cGlyeURvbmU7Ci0KLQkJCWNhc2UgUkVDT05fUEhBU0VfVVBEQVRFOgotCQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9ICggcGRldi0+c3BpZ290ID09IHBkZXYtPnNwaWdvdHNbMF0gKSA/IDAgOiAxOwotCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogRkFJTFVSRSAzIikpKTsKLQkJCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJT3BEb25lIChwYWRhcHRlciwgRElEX0VSUk9SIDw8IDE2KTsKLQkJCQlnb3RvIHRpbWVyRXhwaXJ5RG9uZTsKLQotCQkJY2FzZSBSRUNPTl9QSEFTRV9FTkQ6Ci0JCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gKCBwZGV2LT5zcGlnb3QgPT0gcGRldi0+c3BpZ290c1swXSApID8gMCA6IDE7Ci0JCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDQiKSk7Ci0JCQkJaWYgKCBJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQkJZ290byB0aW1lckV4cGlyeURvbmU7Ci0JCQkKLQkJCWRlZmF1bHQ6Ci0JCQkJZ290byB0aW1lckV4cGlyeURvbmU7Ci0JCQl9Ci0JCX0KLQkKLQl3aGlsZSAoIHBhZGFwdGVyLT5jbWQgKQotCQl7Ci0JCW91dGJfcCAoMHgwOCwgcGFkYXB0ZXItPnJlZ0RtYUNtZFN0YXQpOwkJCQkJLy8gY2FuY2VsIGludGVycnVwdCBmcm9tIERNQSBlbmdpbmUKLQkJaWYgKCBwZGV2LT5yYWlkICkKLQkJCXsKLQkJCWlmICggcGFkYXB0ZXItPmNtZCA9PSBXUklURV9DTUQgKQotCQkJCXsKLQkJCQlERUIgKHByaW50ayAoImluIFJBSUQgd3JpdGUgb3BlcmF0aW9uIikpOwotCQkJCXRlbXAgPSAoIHBkZXYtPnNwaWdvdCAmIChTRUxfMSB8IFNFTF8yKSApID8gU0VMXzEgOiBTRUxfMzsKLQkJCQlpZiAoIGluYl9wIChwYWRhcHRlci0+cmVnU3RhdFNlbCkgJiB0ZW1wICkKLQkJCQkJewotCQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IERldGVybWluZWQgQSBPSyIpKTsKLQkJCQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgdGVtcCB8IFNFTF9JUlFfT0ZGKTsgLy8gTWFza2luZyB0aGUgaW50ZXJydXB0IGR1cmluZyBzcGlnb3Qgc2VsZWN0Ci0JCQkJCXRlbXAgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwotCQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl0ZW1wID0gSURFX1NUQVRVU19CVVNZOwotCi0JCQkJdGVtcDEgPSAoIHBkZXYtPnNwaWdvdCAmIChTRUxfMSB8IFNFTF8yKSApID8gU0VMXzIgOiBTRUxfNDsKLQkJCQlpZiAoIGluYiAocGFkYXB0ZXItPnJlZ1N0YXRTZWwpICYgdGVtcDEgKQotCQkJCQl7Ci0JCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogRGV0ZXJtaW5lZCBCIE9LIikpOwotCQkJCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCB0ZW1wMSB8IFNFTF9JUlFfT0ZGKTsgLy8gTWFza2luZyB0aGUgaW50ZXJydXB0IGR1cmluZyBzcGlnb3Qgc2VsZWN0Ci0JCQkJCXRlbXAxID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsKLQkJCQkJfQotCQkJCWVsc2UKLQkJCQkJdGVtcDEgPSBJREVfU1RBVFVTX0JVU1k7Ci0JCQkKLQkJCQlpZiAoICh0ZW1wICYgSURFX1NUQVRVU19CVVNZKSB8fCAodGVtcDEgJiBJREVfU1RBVFVTX0JVU1kpICkKLQkJCQkJewotCQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IFN0YXR1cyBBOiAlWCAgIEI6ICVYIiwgdGVtcCAmIDB4RkYsIHRlbXAxICYgMHhGRikpOwotCSAJCQkJaWYgKCAodGVtcCAmIElERV9TVEFUVVNfQlVTWSkgJiYgKHRlbXAxICYgSURFX1NUQVRVU19CVVNZKSApIAotCQkJCQkJewotCQkJCQkJc3RhdHVzID0gdGVtcDsKLQkJCQkJCWJyZWFrOwotCQkJCQkJfQkJCi0JCQkJCWVsc2UJCi0JCQkJCQl7Ci0JCQkJCQlpZiAoIHRlbXAgJiBJREVfU1RBVFVTX0JVU1kgKQotCQkJCQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IDE7Ci0JCQkJCQllbHNlCi0JCQkJCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gMDsKLQkJCQkJCWlmICggSW5pdEZhaWxvdmVyIChwYWRhcHRlciwgcGRldikgKQotCQkJCQkJCXsKLQkJCQkJCQlzdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwotCQkJCQkJCWJyZWFrOwotCQkJCQkJCX0KLQkJCQkJCWdvdG8gdGltZXJFeHBpcnlEb25lOwotCQkJCQkJfQotCQkJCQl9Ci0JCQkJfQotCQkJZWxzZQotCQkJCXsKLQkJCQlERUIgKHByaW50ayAoImluIFJBSUQgcmVhZCBvcGVyYXRpb24iKSk7Ci0JCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gKCBwZGV2LT5zcGlnb3QgPT0gcGRldi0+c3BpZ290c1swXSApID8gMCA6IDE7Ci0JCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDYiKSk7Ci0JCQkJaWYgKCBJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCXsKLQkJCQkJc3RhdHVzID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsKLQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQlnb3RvIHRpbWVyRXhwaXJ5RG9uZTsKLQkJCQl9Ci0JCQl9Ci0JCWVsc2UKLQkJCXsKLQkJCURFQiAocHJpbnRrICgiaW4gSS9PIG9wZXJhdGlvbiIpKTsKLQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7Ci0JCQl9Ci0JCWJyZWFrOwotCQl9Ci0JCi0JT3BEb25lIChwYWRhcHRlciwgRGVjb2RlRXJyb3IgKHBhZGFwdGVyLCBzdGF0dXMpKTsKLQotdGltZXJFeHBpcnlEb25lOjsKLSAgICAvKgotICAgICAqIFJlbGVhc2UgdGhlIEkvTyBzcGlubG9jayBhbmQgcmVzdG9yZSB0aGUgb3JpZ2luYWwgZmxhZ3MKLSAgICAgKiB3aGljaCB3aWxsIGVuYWJsZSBpbnRlcnJ1cHRzIGlmIGFuZCBvbmx5IGlmIHRoZXkgd2VyZQotICAgICAqIGVuYWJsZWQgb24gZW50cnkuCi0gICAgICovCi0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CQkJU2V0UmVjb25zdHJ1Y3QJOkxPQ0FMCi0gKgotICoJRGVzY3JpcHRpb246CVNldCB0aGUgcmVjb25zdHJ1Y3QgdXAuCi0gKgotICoJUGFyYW1ldGVyczoJCXBkZXYJLSBQb2ludGVyIHRvIGRldmljZSBzdHJ1Y3R1cmUuCi0gKgkJCQkJaW5kZXgJLSBNaXJyb3IgaW5kZXggbnVtYmVyLgotICoKLSAqCVJldHVybnM6CQlOdW1iZXIgb2Ygc2VjdG9ycyBvbiBuZXcgZGlzayByZXF1aXJlZC4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBMT05HIFNldFJlY29uc3RydWN0IChQT1VSX0RFVklDRSBwZGV2LCBpbnQgaW5kZXgpCi0JewotCXBkZXYtPkRpc2tNaXJyb3JbaW5kZXhdLnN0YXR1cyA9IFVDQkZfTUlSUk9SRUQ7CQkJCQkJCS8vIHNldHVwIHRoZSBmbGFncwotCXBkZXYtPkRpc2tNaXJyb3JbaW5kZXggXiAxXS5zdGF0dXMgPSBVQ0JGX01JUlJPUkVEIHwgVUNCRl9SRUJVSUxEOwotCXBkZXYtPkRpc2tNaXJyb3JbaW5kZXggXiAxXS5yZWNvbnN0cnVjdFBvaW50ID0gMDsJCQkJCQkvLyBzdGFydCB0aGUgcmVjb25zdHJ1Y3QKLQlwZGV2LT5yZWNvbkNvdW50ID0gMTk5MDsJCQkJCQkJCQkJCQkvLyBtYXJrIHRhcmdldCBkcml2ZSBlYXJseQotCXJldHVybiBwZGV2LT5EaXNrTWlycm9yW2luZGV4XS5yZWNvbnN0cnVjdFBvaW50OwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglSZWNvblRpbWVyRXhwaXJ5CTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglSZWNvbnN0cnVjdCB0aW1lciBleHBpcnkgcm91dGluZS4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJZGF0YSAtIFBvaW50ZXIgYWRhcHRlciBkYXRhIHN0cnVjdHVyZS4KLSAqCi0gKglSZXR1cm5zOgkJTm90aGluZy4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyB2b2lkIFJlY29uVGltZXJFeHBpcnkgKHVuc2lnbmVkIGxvbmcgZGF0YSkKLQl7Ci0JUEFEQVBURVIyMjIwSQlwYWRhcHRlciA9IChQQURBUFRFUjIyMjBJKWRhdGE7Ci0Jc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IHBhZGFwdGVyLT5TQ3BudC0+ZGV2aWNlLT5ob3N0OwotCVBPVVJfREVWSUNFCQlwZGV2OwotCVVMT05HCQkJdGVzdHNpemUgPSAwOwotCVBJREVOVElGWV9EQVRBCXBpZDsKLQlVU0hPUlQJCQltaW5tb2RlOwotCVVMT05HCQkJemw7Ci0JVUNIQVIJCQl6YzsKLQlVU0hPUlQJCQl6OwotICAgIHVuc2lnbmVkIGxvbmcJZmxhZ3M7Ci0KLSAgICAvKgotICAgICAqIERpc2FibGUgaW50ZXJydXB0cywgaWYgdGhleSBhcmVuJ3QgYWxyZWFkeSBkaXNhYmxlZCBhbmQgYWNxdWlyZQotICAgICAqIHRoZSBJL08gc3BpbmxvY2suCi0gICAgICovCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0KLQlpZiAoIHBhZGFwdGVyLT5TQ3BudCApCi0JCWdvdG8gcmVjb25UaW1lckV4cGlyeTsKLQotCXBhZGFwdGVyLT5yZWNvblRpbWVyLmRhdGEgPSAwOwotCWZvciAoIHogPSBwYWRhcHRlci0+ZGV2SW5SZWNvbkluZGV4ICsgMTsgIHogPCBCSUdEX01BWERSSVZFUzsgIHorKyApCi0JCXsKLQkJaWYgKCBwYWRhcHRlci0+ZGV2aWNlW3pdLnJlY29uT24gKQotCQkJYnJlYWs7Ci0JCX0KLQlpZiAoIHogPCBCSUdEX01BWERSSVZFUyApCi0JCXBkZXYgPSAmcGFkYXB0ZXItPmRldmljZVt6XTsKLQllbHNlCi0JCXsKLQkJZm9yICggeiA9IDA7ICB6IDwgQklHRF9NQVhEUklWRVM7ICB6KysgKQotCQkJewotCQkJaWYgKCBwYWRhcHRlci0+ZGV2aWNlW3pdLnJlY29uT24gKQotCQkJCWJyZWFrOwotCQkJfQotCQlpZiAoIHogPCBCSUdEX01BWERSSVZFUyApCi0JCQlwZGV2ID0gJnBhZGFwdGVyLT5kZXZpY2Vbel07Ci0JCWVsc2UKLQkJCXsKLQkJCXBhZGFwdGVyLT5yZWNvbk9uID0gRkFMU0U7Ci0JCQlnb3RvIHJlY29uVGltZXJFeHBpcnk7Ci0JCQl9Ci0JCX0KLQotCXBhZGFwdGVyLT5kZXZJblJlY29uSW5kZXggPSB6OwotCXBpZCA9IChQSURFTlRJRllfREFUQSlwYWRhcHRlci0+a0J1ZmZlcjsKLQlwYWRhcHRlci0+cGRldiA9IHBkZXY7Ci0JaWYgKCBwZGV2LT5yZWNvbklzU3RhcnRpbmcgKQotCQl7Ci0JCXBkZXYtPnJlY29uSXNTdGFydGluZyA9IEZBTFNFOwotCQlwZGV2LT5yZWNvbk9uID0gRkFMU0U7Ci0KLQkJd2hpbGUgKCAocGRldi0+RGlza01pcnJvclswXS5zaWduYXR1cmUgPT0gU0lHTkFUVVJFKSAmJiAocGRldi0+RGlza01pcnJvclsxXS5zaWduYXR1cmUgPT0gU0lHTkFUVVJFKSAmJgotCQkJIChwZGV2LT5EaXNrTWlycm9yWzBdLnBhaXJJZGVudGlmaWVyID09IChwZGV2LT5EaXNrTWlycm9yWzFdLnBhaXJJZGVudGlmaWVyIF4gMSkpICkKLQkJCXsKLQkJCWlmICggKHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9NQVRDSEVEKSAmJiAocGRldi0+RGlza01pcnJvclsxXS5zdGF0dXMgJiBVQ0JGX01BVENIRUQpICkKLQkJCQlicmVhazsKLQotCQkJaWYgKCBwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IgKQkJCQkvLyBpcyBmaXJzdCBkcml2ZSBzdXJ2aXZvcj8KLQkJCQl0ZXN0c2l6ZSA9IFNldFJlY29uc3RydWN0IChwZGV2LCAwKTsKLQkJCWVsc2UKLQkJCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9TVVJWSVZPUiApCQkJLy8gaXMgc2Vjb25kIGRyaXZlIHN1cnZpdm9yPwotCQkJCQl0ZXN0c2l6ZSA9IFNldFJlY29uc3RydWN0IChwZGV2LCAxKTsKLQotCQkJaWYgKCAocGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQpIHx8IChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfUkVCVUlMRCkgKQotCQkJCXsKLQkJCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9SRUJVSUxEICkKLQkJCQkJcGRldi0+bWlycm9yUmVjb24gPSAwOwotCQkJCWVsc2UKLQkJCQkJcGRldi0+bWlycm9yUmVjb24gPSAxOwotCQkJCXBkZXYtPnJlY29uT24gPSBUUlVFOwotCQkJCX0KLQkJCWJyZWFrOwotCQkJfQotCi0JCWlmICggIXBkZXYtPnJlY29uT24gKQotCQkJZ290byByZWNvblRpbWVyRXhwaXJ5OwotCi0JCWlmICggcGFkYXB0ZXItPmJpZ0QgKQotCQkJewotCQkJcGFkYXB0ZXItPmZhaWxSZWdpc3RlciA9IDA7Ci0JCQlvdXRiX3AgKH5wYWRhcHRlci0+ZmFpbFJlZ2lzdGVyLCBwYWRhcHRlci0+cmVnRmFpbCk7Ci0JCQl9Ci0JCWVsc2UKLQkJCXsKLQkJCXpjID0gKChpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRTZWwpID4+IDMpIHwgaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0U2VsKSkgJiAweDgzOwkJLy8gbXV0ZSB0aGUgYWxhcm0KLQkJCW91dGJfcCAoMHhGRiwgcGFkYXB0ZXItPnJlZ0ZhaWwpOwotCQkJfQotCi0JCXdoaWxlICggMSApCi0JCQl7Ci0JCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IGhhcmQgcmVzZXQgaXNzdWUiKSk7Ci0JCQlpZiAoIEhhcmRSZXNldCAocGFkYXB0ZXIsIHBkZXYsIHBkZXYtPnNwaWdvdHNbcGRldi0+bWlycm9yUmVjb25dKSApCi0JCQkJewotCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogc3ViIDEiKSk7Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCi0JCQlwZGV2LT5sYXN0c2VjdG9ybGJhW3BkZXYtPm1pcnJvclJlY29uXSA9IElubGluZUlkZW50aWZ5IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1twZGV2LT5taXJyb3JSZWNvbl0sIHBkZXYtPmRldmljZUlEW3BkZXYtPm1pcnJvclJlY29uXSAmIDEpOwotCi0JCQlpZiAoIHBkZXYtPmxhc3RzZWN0b3JsYmFbcGRldi0+bWlycm9yUmVjb25dIDwgdGVzdHNpemUgKQotCQkJCXsKLQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IHN1YiAyICVsZCAlbGQiLCBwZGV2LT5sYXN0c2VjdG9ybGJhW3BkZXYtPm1pcnJvclJlY29uXSwgdGVzdHNpemUpKTsKLQkJCQlicmVhazsKLQkJCQl9Ci0KLQkgICAgICAgIC8vIHRlc3QgTEJBIGFuZCBtdWx0aXBlciBzZWN0b3IgdHJhbnNmZXIgY29tcGF0aWJpbGl0eQotCQkJaWYgKCFwaWQtPlN1cHBvcnRMQkEgfHwgKHBpZC0+TnVtU2VjdG9yc1BlckludCA8IFNFQ1RPUlNYRkVSKSB8fCAhcGlkLT5WYWxpZF82NF83MCApCi0JCQkJewotCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogc3ViIDMiKSk7Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCi0JICAgICAgICAvLyB0ZXN0IFBJTy9idXMgbWF0ZXJpbmcgbW9kZSBjb21wYXRpYmlsaXR5Ci0JCQlpZiAoIChwaWQtPk1pblBJT0N5Y2xlV2l0aG91dEZsb3cgPiAyNDApICYmICFwaWQtPlN1cHBvcnRJT1JEWURpc2FibGUgJiYgIXBhZGFwdGVyLT50aW1pbmdQSU8gKQotCQkJCXsKLQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IHN1YiA0IikpOwotCQkJCWJyZWFrOwotCQkJCX0KLQotCQkJaWYgKCBwaWQtPk1pblBJT0N5Y2xlV2l0aG91dEZsb3cgPD0gMTIwICkJLy8gc2V0dXAgdGltaW5nIG1vZGUgb2YgZHJpdmUKLQkJCQltaW5tb2RlID0gNTsKLQkJCWVsc2UKLQkJCQl7Ci0JCQkJaWYgKCBwaWQtPk1pblBJT0N5bGNlV2l0aEZsb3cgPD0gMTUwICkKLQkJCQkJbWlubW9kZSA9IDQ7Ci0JCQkJZWxzZQotCQkJCQl7Ci0JCQkJCWlmICggcGlkLT5NaW5QSU9DeWxjZVdpdGhGbG93IDw9IDE4MCApCi0JCQkJCQltaW5tb2RlID0gMzsKLQkJCQkJZWxzZQotCQkJCQkJewotCQkJCQkJaWYgKCBwaWQtPk1pblBJT0N5bGNlV2l0aEZsb3cgPD0gMjQwICkKLQkJCQkJCQltaW5tb2RlID0gMjsKLQkJCQkJCWVsc2UKLQkJCQkJCQl7Ci0JCQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBzdWIgNSIpKTsKLQkJCQkJCQlicmVhazsKLQkJCQkJCQl9Ci0JCQkJCQl9Ci0JCQkJCX0KLQkJCQl9Ci0KLQkJCWlmICggcGFkYXB0ZXItPnRpbWluZ01vZGUgPiBtaW5tb2RlICkJCQkJCQkJCQkvLyBzZXQgbWluaW11bSB0aW1pbmcgbW9kZQotCQkJCXBhZGFwdGVyLT50aW1pbmdNb2RlID0gbWlubW9kZTsKLQkJCWlmICggcGFkYXB0ZXItPnRpbWluZ01vZGUgPj0gMiApCi0JCQkJcGFkYXB0ZXItPnRpbWluZ0FkZHJlc3MJPSBNb2RlQXJyYXlbcGFkYXB0ZXItPnRpbWluZ01vZGUgLSAyXTsKLQkJCWVsc2UKLQkJCQlwYWRhcHRlci0+dGltaW5nUElPID0gVFJVRTsKLQotCQkJcGFkYXB0ZXItPnJlY29uT24gPSBUUlVFOwotCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJaWYgKCAhcGRldi0+cmVjb25PbiApCi0JCQl7CQkKLQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IHBkZXYtPm1pcnJvclJlY29uIF4gMTsKLQkJCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfRkFJTE9WRVI7Ci0JCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgNyIpKTsKLQkJCUluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpOwotCQkJZ290byByZWNvblRpbWVyRXhwaXJ5OwotCQkJfQotCi0JCXBkZXYtPnJhaWQgPSBUUlVFOwotCQotCQlpZiAoIFdyaXRlU2lnbmF0dXJlIChwYWRhcHRlciwgcGRldiwgcGRldi0+c3BpZ290LCBwZGV2LT5taXJyb3JSZWNvbiBeIDEpICkKLQkJCWdvdG8gcmVjb25UaW1lckV4cGlyeTsKLQkJcGFkYXB0ZXItPnJlY29uUGhhc2UgPSBSRUNPTl9QSEFTRV9NQVJLSU5HOwotCQlnb3RvIHJlY29uVGltZXJFeHBpcnk7Ci0JCX0KLQotCS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCS8vIHJlY29uc3RydWN0IGNvcHkgc3RhcnRzIGhlcmUJCi0JLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0JaWYgKCBwZGV2LT5yZWNvbkNvdW50KysgPiAyMDAwICkKLQkJewotCQlwZGV2LT5yZWNvbkNvdW50ID0gMDsKLQkJaWYgKCBXcml0ZVNpZ25hdHVyZSAocGFkYXB0ZXIsIHBkZXYsIHBkZXYtPnNwaWdvdHNbcGRldi0+bWlycm9yUmVjb25dLCBwZGV2LT5taXJyb3JSZWNvbikgKQotCQkJewotCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gcGRldi0+bWlycm9yUmVjb24gXiAxOwotCQkJcGFkYXB0ZXItPnJlY29uUGhhc2UgPSBSRUNPTl9QSEFTRV9GQUlMT1ZFUjsKLQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogRkFJTFVSRSA4IikpOwotCQkJSW5pdEZhaWxvdmVyIChwYWRhcHRlciwgcGRldik7Ci0JCQlnb3RvIHJlY29uVGltZXJFeHBpcnk7Ci0JCQl9Ci0JCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfVVBEQVRFOwotCQlnb3RvIHJlY29uVGltZXJFeHBpcnk7Ci0JCX0KLQotCXpsID0gcGRldi0+RGlza01pcnJvcltwZGV2LT5taXJyb3JSZWNvbl0ucmVjb25zdHJ1Y3RQb2ludDsJCi0JcGFkYXB0ZXItPnJlY29uU2l6ZSA9IHBkZXYtPkRpc2tNaXJyb3JbcGRldi0+bWlycm9yUmVjb24gXiAxXS5yZWNvbnN0cnVjdFBvaW50IC0gemw7Ci0JaWYgKCBwYWRhcHRlci0+cmVjb25TaXplID4gTUFYX0JVU19NQVNURVJfQkxPQ0tTICkKLQkJcGFkYXB0ZXItPnJlY29uU2l6ZSA9IE1BWF9CVVNfTUFTVEVSX0JMT0NLUzsKLQotCWlmICggcGFkYXB0ZXItPnJlY29uU2l6ZSApCi0JCXsKLQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSB8IHBkZXYtPnNwaWdvdHNbMV0pOwkvLyBzZWxlY3QgdGhlIHNwaWdvdHMKLQkJb3V0Yl9wIChwZGV2LT5ieXRlNiB8ICgoVUNIQVIgKikoJnpsKSlbM10sIHBhZGFwdGVyLT5yZWdMYmEyNCk7CS8vIHNlbGVjdCB0aGUgZHJpdmUKLQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290KTsKLQkJaWYgKCBXYWl0UmVhZHkgKHBhZGFwdGVyKSApCi0JCQlnb3RvIHJlY29uVGltZXJFeHBpcnk7Ci0KLQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1twZGV2LT5taXJyb3JSZWNvbl0pOwotCQlpZiAoIFdhaXRSZWFkeSAocGFkYXB0ZXIpICkKLQkJCXsKLQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IHBkZXYtPm1pcnJvclJlY29uIF4gMTsKLQkJCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfRkFJTE9WRVI7Ci0JCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgOSIpKTsKLQkJCUluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpOwotCQkJZ290byByZWNvblRpbWVyRXhwaXJ5OwotCQkJfQotCQotCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3RzWzBdIHwgcGRldi0+c3BpZ290c1sxXSk7Ci0JCW91dGJfcCAocGFkYXB0ZXItPnJlY29uU2l6ZSAmIDB4RkYsIHBhZGFwdGVyLT5yZWdTZWN0Q291bnQpOwotCQlvdXRiX3AgKCgoVUNIQVIgKikoJnpsKSlbMF0sIHBhZGFwdGVyLT5yZWdMYmEwKTsKLQkJb3V0Yl9wICgoKFVDSEFSICopKCZ6bCkpWzFdLCBwYWRhcHRlci0+cmVnTGJhOCk7Ci0JCW91dGJfcCAoKChVQ0hBUiAqKSgmemwpKVsyXSwgcGFkYXB0ZXItPnJlZ0xiYTE2KTsKLQkJcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IFRSVUU7Ci0JCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfUkVBRFk7Ci0JCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdHNbcGRldi0+bWlycm9yUmVjb25dKTsKLQkJV3JpdGVDb21tYW5kIChwYWRhcHRlciwgV1JJVEVfQ01EKTsKLQkJU3RhcnRUaW1lciAocGFkYXB0ZXIpOwotCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3QpOwotCQlXcml0ZUNvbW1hbmQgKHBhZGFwdGVyLCBSRUFEX0NNRCk7Ci0JCWdvdG8gcmVjb25UaW1lckV4cGlyeTsKLQkJfQotCi0JcGRldi0+RGlza01pcnJvcltwZGV2LT5taXJyb3JSZWNvbl0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfTUFUQ0hFRDsKLQlwZGV2LT5EaXNrTWlycm9yW3BkZXYtPm1pcnJvclJlY29uIF4gMV0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfTUFUQ0hFRDsKLQlpZiAoIFdyaXRlU2lnbmF0dXJlIChwYWRhcHRlciwgcGRldiwgcGRldi0+c3BpZ290LCBwZGV2LT5taXJyb3JSZWNvbiBeIDEpICkKLQkJZ290byByZWNvblRpbWVyRXhwaXJ5OwotCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfTEFTVDsKLQotcmVjb25UaW1lckV4cGlyeTo7Ci0gICAgLyoKLSAgICAgKiBSZWxlYXNlIHRoZSBJL08gc3BpbmxvY2sgYW5kIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGZsYWdzCi0gICAgICogd2hpY2ggd2lsbCBlbmFibGUgaW50ZXJydXB0cyBpZiBhbmQgb25seSBpZiB0aGV5IHdlcmUKLSAgICAgKiBlbmFibGVkIG9uIGVudHJ5LgotICAgICAqLwotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CUlycV9IYW5kbGVyCTpMT0NBTAotICoKLSAqCURlc2NyaXB0aW9uOglJbnRlcnJ1cHQgaGFuZGxlci4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJaXJxCQktIEhhcmR3YXJlIElSUSBudW1iZXIuCi0gKgkJCQkJZGV2X2lkCS0KLSAqCQkJCQlyZWdzCS0KLSAqCi0gKglSZXR1cm5zOgkJVFJVRSBpZiBkcml2ZSBpcyBub3QgcmVhZHkgaW4gdGltZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpcnFyZXR1cm5fdCBJcnFfSGFuZGxlciAoaW50IGlycSwgdm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKLQl7Ci0Jc3RydWN0IFNjc2lfSG9zdCAgICpzaG9zdCA9IE5VTEw7CS8vIFBvaW50ZXIgdG8gaG9zdCBkYXRhIGJsb2NrCi0JUEFEQVBURVIyMjIwSQkJcGFkYXB0ZXI7CQkvLyBQb2ludGVyIHRvIGFkYXB0ZXIgY29udHJvbCBzdHJ1Y3R1cmUKLQlQT1VSX0RFVklDRQkJCXBkZXY7Ci0JU2NzaV9DbW5kCQkgICAqU0NwbnQ7Ci0JVUNIQVIJCQkJc3RhdHVzOwotCVVDSEFSCQkJCXN0YXR1czE7Ci0JQVRBUElfU1RBVFVTCQlzdGF0dXNhOwotCUFUQVBJX1JFQVNPTgkJcmVhc29uYTsKLQlBVEFQSV9FUlJPUgkJCWVycm9yYTsKLQlpbnQJCQkJCXo7Ci0JVUxPTkcJCQkJemw7Ci0gICAgdW5zaWduZWQgbG9uZwkJZmxhZ3M7Ci0gICAgaW50IGhhbmRsZWQgPSAwOwotCi0vLwlERUIgKHByaW50ayAoIlxucGNpMjIyMGkgcmVjZWl2ZWQgaW50ZXJydXB0XG4iKSk7Ci0KLQlmb3IgKCB6ID0gMDsgeiA8IE51bUFkYXB0ZXJzOyAgeisrICkJCQkJCQkJCS8vIHNjYW4gZm9yIGludGVycnVwdCB0byBwcm9jZXNzCi0JCXsKLQkJaWYgKCBQc2lIb3N0W3pdLT5pcnEgPT0gKFVDSEFSKShpcnEgJiAweEZGKSApCi0JCQl7Ci0JCQlpZiAoIGlud19wIChIT1NUREFUQShQc2lIb3N0W3pdKS0+cmVnSXJxQ29udHJvbCkgJiAweDgwMDAgKQotCQkJCXsKLQkJCQlzaG9zdCA9IFBzaUhvc3Rbel07Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQlpZiAoICFzaG9zdCApCi0JCXsKLQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBub3QgbXkgaW50ZXJydXB0IikpOwotCQlnb3RvIG91dDsKLQkJfQotCi0JaGFuZGxlZCA9IDE7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoc2hvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwotCXBhZGFwdGVyID0gSE9TVERBVEEoc2hvc3QpOwotCXBkZXYgPSBwYWRhcHRlci0+cGRldjsKLQlTQ3BudCA9IHBhZGFwdGVyLT5TQ3BudDsKLQlvdXRiX3AgKDB4MDgsIHBhZGFwdGVyLT5yZWdEbWFDbWRTdGF0KTsJCQkJCQkJCQkvLyBjYW5jZWwgaW50ZXJydXB0IGZyb20gRE1BIGVuZ2luZQotCi0JaWYgKCBwYWRhcHRlci0+YXRhcGkgJiYgU0NwbnQgKQotCQl7Ci0JCSooY2hhciAqKSZzdGF0dXNhID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsJCQkJCQkvLyByZWFkIHRoZSBkZXZpY2Ugc3RhdHVzCi0JCSooY2hhciAqKSZyZWFzb25hID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTZWN0Q291bnQpOwkJCQkJCS8vIHJlYWQgdGhlIGRldmljZSBpbnRlcnJ1cHQgcmVhc29uCi0JCi0JCWlmICggIXN0YXR1c2EuYnN5ICkKLQkJCXsKLQkJCWlmICggc3RhdHVzYS5kcnEgKQkJCQkJCQkJCQkJCQkvLyB0ZXN0IGZvciB0cmFuc2ZlciBwaGFzZQotCQkJCXsKLQkJCQlpZiAoICFyZWFzb25hLmNvZCApCQkJCQkJCQkJCQkJLy8gdGVzdCBmb3IgZGF0YSBwaGFzZQotCQkJCQl7Ci0JCQkJCXogPSAoVUxPTkcpaW5iX3AgKHBhZGFwdGVyLT5yZWdMYmE4KSB8IChVTE9ORykoaW5iX3AgKHBhZGFwdGVyLT5yZWdMYmExNikgPDwgOCk7Ci0JCQkJCWlmICggcGFkYXB0ZXItPnJlcVNlbnNlICkKLQkJCQkJCWluc3cgKHBhZGFwdGVyLT5yZWdEYXRhLCBTQ3BudC0+c2Vuc2VfYnVmZmVyLCB6IC8gMik7Ci0JCQkJCWVsc2UKLQkJCQkJCUF0YXBpQnVzTWFzdGVyIChwYWRhcHRlciwgcmVhc29uYS5pbywgeik7Ci0JCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJfQotCQkJCWlmICggcmVhc29uYS5jb2QgJiYgIXJlYXNvbmEuaW8gKQkJCQkJCQkJLy8gdGVzdCBmb3IgY29tbWFuZCBwYWNrZXQgcGhhc2UKLQkJCQkJewotCQkJCQlpZiAoIHBhZGFwdGVyLT5yZXFTZW5zZSApCi0JCQkJCQlBdGFwaVJlcXVlc3RTZW5zZSAocGFkYXB0ZXIsIHBkZXYsIFNDcG50LCBUUlVFKTsKLQkJCQkJZWxzZQotCQkJCQkJQXRhcGlTZW5kQ2RiIChwYWRhcHRlciwgcGRldiwgcGFkYXB0ZXItPmF0YXBpQ2RiKTsKLQkJCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCQl9Ci0JCQkJfQotCQkJZWxzZQotCQkJCXsKLQkJCQlpZiAoIHJlYXNvbmEuaW8gJiYgc3RhdHVzYS5kcmR5ICkJCQkJCQkJCS8vIHRlc3QgZm9yIHN0YXR1cyBwaGFzZQotCQkJCQl7Ci0JCQkJCUF0YXBpMlNjc2kgKHBhZGFwdGVyLCBTQ3BudCk7Ci0JCQkJCWlmICggc3RhdHVzYS5jaGVjayApCi0JCQkJCQl7Ci0JCQkJCQkqKFVDSEFSICopJmVycm9yYSA9IGluYl9wIChwYWRhcHRlci0+cmVnRXJyb3IpOwkJCS8vIHJlYWQgdGhlIGRldmljZSBlcnJvcgotCQkJCQkJaWYgKCBlcnJvcmEuc2Vuc2VLZXkgKQotCQkJCQkJCXsKLQkJCQkJCQlpZiAoIHBhZGFwdGVyLT5yZXFTZW5zZSB8fCBBdGFwaVJlcXVlc3RTZW5zZSAocGFkYXB0ZXIsIHBkZXYsIFNDcG50LCBGQUxTRSkgKQotCQkJCQkJCQlPcERvbmUgKHBhZGFwdGVyLCBESURfRVJST1IgPDwgMTYpOwotCQkJCQkJCX0KLQkJCQkJCWVsc2UKLQkJCQkJCQl7Ci0JCQkJCQkJaWYgKCBlcnJvcmEuaWxpIHx8IGVycm9yYS5hYm9ydCApCi0JCQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQkJCQkJZWxzZQotCQkJCQkJCQlPcERvbmUgKHBhZGFwdGVyLCBESURfT0sgPDwgMTYpOwkKLQkJCQkJCQl9Ci0JCQkJCQl9Ci0JCQkJCWVsc2UKLQkJCQkJCWlmICggcGFkYXB0ZXItPnJlcVNlbnNlICkKLQkJCQkJCQl7Ci0JCQkJCQkJREVCIChwcmludGsgKCJQQ0kyMjQySTogU2Vuc2UgY29kZXMgLSAlWCAlWCAlWCAiLCAoKFVDSEFSICopU0NwbnQtPnNlbnNlX2J1ZmZlcilbMF0sICgoVUNIQVIgKilTQ3BudC0+c2Vuc2VfYnVmZmVyKVsxMl0sICgoVUNIQVIgKilTQ3BudC0+c2Vuc2VfYnVmZmVyKVsxM10pKTsKLQkJCQkJCQlPcERvbmUgKHBhZGFwdGVyLCAoRFJJVkVSX1NFTlNFIDw8IDI0KSB8IChESURfT0sgPDwgMTYpIHwgMik7Ci0JCQkJCQkJfQotCQkJCQkJZWxzZQotCQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7CQotCQkJCQl9Ci0JCQkJfQotCQkJfQkJCi0JCWdvdG8gaXJxX3JldHVybjsKLQkJfQotCQotCWlmICggIXBhZGFwdGVyLT5leHBlY3RpbmdJUlEgfHwgIShTQ3BudCB8fCBwYWRhcHRlci0+cmVjb25QaGFzZSkgKQotCQl7Ci0JCURFQihwcmludGsgKCJcbnBjaTIyMjBpIFVuc29saWNpdGVkIGludGVycnVwdFxuIikpOwotCQlTVE9QX0hFUkUgKCk7Ci0JCWdvdG8gaXJxX3JldHVybjsKLQkJfQotCXBhZGFwdGVyLT5leHBlY3RpbmdJUlEgPSAwOwotCi0JaWYgKCBwYWRhcHRlci0+ZmFpbGlucHJvZyApCi0JCXsKLQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpIGludGVycnVwdCBmYWlsb3ZlciBjb21wbGV0ZSIpKTsKLQkJcGFkYXB0ZXItPmZhaWxpbnByb2cgPSBGQUxTRTsKLQkJc3RhdHVzID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsJCQkJCQkJCS8vIHJlYWQgdGhlIGRldmljZSBzdGF0dXMKLQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCXsKLQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogaW50ZXJydXB0IGZhaWxvdmVyIGVycm9yIGZyb20gZHJpdmUgJVgiLCBzdGF0dXMpKTsKLQkJCXBhZGFwdGVyLT5jbWQgPSAwOwotCQkJfQotCQllbHNlCi0JCQl7Ci0JCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IHJlc3RhcnRpbmcgZmFpbGVkIG9wZXJ0YXRpb24uIikpOwotCQkJcGRldi0+c3BpZ290ID0gKHBhZGFwdGVyLT5zdXJ2aXZvcikgPyBwZGV2LT5zcGlnb3RzWzFdIDogcGRldi0+c3BpZ290c1swXTsKLQkJCWRlbF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JCQlpZiAoIHBhZGFwdGVyLT5yZWNvblBoYXNlICkKLQkJCQlPcERvbmUgKHBhZGFwdGVyLCBESURfT0sgPDwgMTYpOwotCQkJZWxzZQotCQkJCVBjaTIyMjBpX1F1ZXVlQ29tbWFuZCAoU0NwbnQsIFNDcG50LT5zY3NpX2RvbmUpOwotCQkJZ290byBpcnFfcmV0dXJuOwkJCi0JCQl9Ci0JCX0KLQotCWlmICggcGFkYXB0ZXItPnJlY29uUGhhc2UgKQotCQl7Ci0JCXN3aXRjaCAoIHBhZGFwdGVyLT5yZWNvblBoYXNlICkKLQkJCXsKLQkJCWNhc2UgUkVDT05fUEhBU0VfTUFSS0lORzoKLQkJCWNhc2UgUkVDT05fUEhBU0VfTEFTVDoKLQkJCQlzdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwkJCQkJCS8vIHJlYWQgdGhlIGRldmljZSBzdGF0dXMKLQkJCQlkZWxfdGltZXIgKCZwYWRhcHRlci0+dGltZXIpOwotCQkJCWlmICggcGFkYXB0ZXItPnJlY29uUGhhc2UgPT0gUkVDT05fUEhBU0VfTEFTVCApCi0JCQkJCXsKLQkJCQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQkJCXsKLQkJCQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9ICggcGRldi0+c3BpZ290ID09IHBkZXYtPnNwaWdvdHNbMF0gKSA/IDEgOiAwOwotCQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDEwIikpOwotCQkJCQkJaWYgKCBJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCQkJT3BEb25lIChwYWRhcHRlciwgRGVjb2RlRXJyb3IgKHBhZGFwdGVyLCBzdGF0dXMpKTsKLQkJCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJCX0KLQkJCQkJaWYgKCBXcml0ZVNpZ25hdHVyZSAocGFkYXB0ZXIsIHBkZXYsIHBkZXYtPnNwaWdvdHNbcGRldi0+bWlycm9yUmVjb25dLCBwZGV2LT5taXJyb3JSZWNvbikgKQotCQkJCQkJewotCQkJCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gKCBwZGV2LT5zcGlnb3QgPT0gcGRldi0+c3BpZ290c1swXSApID8gMCA6IDE7Ci0JCQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgMTEiKSk7Ci0JCQkJCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJCQlPcERvbmUgKHBhZGFwdGVyLCBEZWNvZGVFcnJvciAocGFkYXB0ZXIsIHN0YXR1cykpOwotCQkJCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCQkJfQotCQkJCQlwYWRhcHRlci0+cmVjb25QaGFzZSA9IFJFQ09OX1BIQVNFX0VORDsJCi0JCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJfQotCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7Ci0JCQkJZ290byBpcnFfcmV0dXJuOwotCi0JCQljYXNlIFJFQ09OX1BIQVNFX1JFQURZOgotCQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7CQkJCQkJLy8gcmVhZCB0aGUgZGV2aWNlIHN0YXR1cwotCQkJCWlmICggc3RhdHVzICYgKElERV9TVEFUVVNfRVJST1IgfCBJREVfU1RBVFVTX1dSSVRFX0ZBVUxUKSApCi0JCQkJCXsKLQkJCQkJZGVsX3RpbWVyICgmcGFkYXB0ZXItPnRpbWVyKTsKLQkJCQkJT3BEb25lIChwYWRhcHRlciwgRGVjb2RlRXJyb3IgKHBhZGFwdGVyLCBzdGF0dXMpKTsKLQkJCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCQl9Ci0JCQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1twZGV2LT5taXJyb3JSZWNvbl0pOwotCQkJCWlmICggV2FpdERycSAocGFkYXB0ZXIpICkKLQkJCQkJewotCQkJCQlkZWxfdGltZXIgKCZwYWRhcHRlci0+dGltZXIpOwotCQkJCQlwYWRhcHRlci0+c3Vydml2b3IgPSAoIHBkZXYtPnNwaWdvdCA9PSBwZGV2LT5zcGlnb3RzWzBdICkgPyAwIDogMTsKLQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDEyIikpOwotCQkJCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERlY29kZUVycm9yIChwYWRhcHRlciwgc3RhdHVzKSk7Ci0JCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJfQotCQkJCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdCB8IFNFTF9DT1BZIHwgcGFkYXB0ZXItPmJpZ0QpOwotCQkJCXBhZGFwdGVyLT5yZWNvblBoYXNlID0gUkVDT05fUEhBU0VfQ09QWTsKLQkJCQlwYWRhcHRlci0+ZXhwZWN0aW5nSVJRID0gVFJVRTsKLQkJCQlpZiAoIHBhZGFwdGVyLT50aW1pbmdQSU8gKQotCQkJCQl7Ci0JCQkJCWluc3cgKHBhZGFwdGVyLT5yZWdEYXRhLCBwYWRhcHRlci0+a0J1ZmZlciwgcGFkYXB0ZXItPnJlY29uU2l6ZSAqIChCWVRFU19QRVJfU0VDVE9SIC8gMikpOwotCQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl7Ci0JCQkJCWlmICggKHBhZGFwdGVyLT50aW1pbmdNb2RlID4gMykgKQotCQkJCQkJewotCQkJCQkJaWYgKCBwYWRhcHRlci0+YmlnRCApCi0JCQkJCQkJb3V0bCAoQklHRF9EQVRBX01PREUzLCBwYWRhcHRlci0+cmVnRG1hQWRkckxvYyk7Ci0JCQkJCQllbHNlCi0JCQkJCQkJb3V0bCAoREFMRV9EQVRBX01PREUzLCBwYWRhcHRlci0+cmVnRG1hQWRkckxvYyk7Ci0JCQkJCQl9Ci0JCQkJCWVsc2UKLQkJCQkJCW91dGwgKHBhZGFwdGVyLT50aW1pbmdBZGRyZXNzLCBwYWRhcHRlci0+cmVnRG1hQWRkckxvYyk7Ci0JCQkJCW91dGwgKHBhZGFwdGVyLT5rQnVmZmVyRG1hLCBwYWRhcHRlci0+cmVnRG1hQWRkclBjaSk7Ci0JCQkJCW91dGwgKHBhZGFwdGVyLT5yZWNvblNpemUgKiBCWVRFU19QRVJfU0VDVE9SLCBwYWRhcHRlci0+cmVnRG1hQ291bnQpOwotCQkJCQlvdXRiX3AgKDgsIHBhZGFwdGVyLT5yZWdEbWFEZXNjKTsJCQkJCQkvLyByZWFkIG9wZXJhdGlvbgotCQkJCQlpZiAoIHBhZGFwdGVyLT5iaWdEICkKLQkJCQkJCW91dGJfcCAoOCwgcGFkYXB0ZXItPnJlZ0RtYU1vZGUpOwkJCQkJLy8gbm8gaW50ZXJydXB0Ci0JCQkJCWVsc2UKLQkJCQkJCW91dGJfcCAoMSwgcGFkYXB0ZXItPnJlZ0RtYU1vZGUpOwkJCQkJLy8gbm8gaW50ZXJydXB0Ci0JCQkJCW91dGJfcCAoMHgwMywgcGFkYXB0ZXItPnJlZ0RtYUNtZFN0YXQpOwkJCQkJLy8ga2ljayB0aGUgRE1BIGVuZ2luZSBpbiBnZWFyCi0JCQkJCX0KLQkJCQlnb3RvIGlycV9yZXR1cm47Ci0KLQkJCWNhc2UgUkVDT05fUEhBU0VfQ09QWToKLQkJCQlwZGV2LT5EaXNrTWlycm9yW3BkZXYtPm1pcnJvclJlY29uXS5yZWNvbnN0cnVjdFBvaW50ICs9IHBhZGFwdGVyLT5yZWNvblNpemU7Ci0KLQkJCWNhc2UgUkVDT05fUEhBU0VfVVBEQVRFOgotCQkJCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdHNbcGRldi0+bWlycm9yUmVjb25dIHwgU0VMX0lSUV9PRkYpOwotCQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7CQkJCQkJLy8gcmVhZCB0aGUgZGV2aWNlIHN0YXR1cwotCQkJCWRlbF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JCQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQkJewotCQkJCQlwYWRhcHRlci0+c3Vydml2b3IgPSAoIHBkZXYtPnNwaWdvdCA9PSBwZGV2LT5zcGlnb3RzWzBdICkgPyAwIDogMTsKLQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDEzIikpOwotCQkJCQlERUIgKHByaW50ayAoIlxuICBzdGF0dXMgcmVnaXN0ZXIgPSAlWCAgIGVycm9yID0gJVgiLCBzdGF0dXMsIGluYl9wIChwYWRhcHRlci0+cmVnRXJyb3IpKSk7Ci0JCQkJCWlmICggSW5pdEZhaWxvdmVyIChwYWRhcHRlciwgcGRldikgKQotCQkJCQkJT3BEb25lIChwYWRhcHRlciwgRGVjb2RlRXJyb3IgKHBhZGFwdGVyLCBzdGF0dXMpKTsKLQkJCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCQl9Ci0JCQkJT3BEb25lIChwYWRhcHRlciwgRElEX09LIDw8IDE2KTsKLQkJCQlnb3RvIGlycV9yZXR1cm47Ci0KLQkJCWNhc2UgUkVDT05fUEhBU0VfRU5EOgotCQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7CQkJCQkJLy8gcmVhZCB0aGUgZGV2aWNlIHN0YXR1cwotCQkJCWRlbF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JCQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQkJewotCQkJCQlwYWRhcHRlci0+c3Vydml2b3IgPSAoIHBkZXYtPnNwaWdvdCA9PSBwZGV2LT5zcGlnb3RzWzBdICkgPyAwIDogMTsKLQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDE0IikpOwotCQkJCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERlY29kZUVycm9yIChwYWRhcHRlciwgc3RhdHVzKSk7Ci0JCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJfQotCQkJCXBkZXYtPnJlY29uT24gPSAwOwotCQkJCWlmICggcGFkYXB0ZXItPmJpZ0QgKQotCQkJCQl7Ci0JCQkJCWZvciAoIHogPSAwOyAgeiA8IHBhZGFwdGVyLT5udW1iZXJPZkRyaXZlczsgIHorKyApCi0JCQkJCQl7Ci0JCQkJCQlpZiAoIHBhZGFwdGVyLT5kZXZpY2Vbel0uRGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1NVUlZJVk9SICkKLQkJCQkJCQl7Ci0JCQkJCQkJQWxhcm0gKHBhZGFwdGVyLCBwYWRhcHRlci0+ZGV2aWNlW3pdLmRldmljZUlEWzBdIF4gMik7Ci0JCQkJCQkJTXV0ZUFsYXJtIChwYWRhcHRlcik7Ci0JCQkJCQkJfQotCQkJCQkJaWYgKCBwYWRhcHRlci0+ZGV2aWNlW3pdLkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9TVVJWSVZPUiApCi0JCQkJCQkJewotCQkJCQkJCUFsYXJtIChwYWRhcHRlciwgcGFkYXB0ZXItPmRldmljZVt6XS5kZXZpY2VJRFsxXSBeIDIpOwotCQkJCQkJCU11dGVBbGFybSAocGFkYXB0ZXIpOwotCQkJCQkJCX0KLQkJCQkJCX0KLQkJCQkJfQotCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7Ci0JCQkJZ290byBpcnFfcmV0dXJuOwotCi0JCQlkZWZhdWx0OgotCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCX0KLQkJfQotCQkKLQlzd2l0Y2ggKCBwYWRhcHRlci0+Y21kICkJCQkJCQkJCQkJCQkvLyBkZWNpZGUgaG93IHRvIGhhbmRsZSB0aGUgaW50ZXJydXB0Ci0JCXsKLQkJY2FzZSBSRUFEX0NNRDoKLQkJCWlmICggcGFkYXB0ZXItPnNlY3RvckNvdW50ICkKLQkJCQl7Ci0JCQkJc3RhdHVzID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTdGF0Q21kKTsJCQkJCQkvLyByZWFkIHRoZSBkZXZpY2Ugc3RhdHVzCi0JCQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQkJewotCQkJCQlpZiAoIHBkZXYtPnJhaWQgKQotCQkJCQkJewotCQkJCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gKCBwZGV2LT5zcGlnb3QgPT0gcGRldi0+c3BpZ290c1swXSApID8gMSA6IDA7Ci0JCQkJCQlkZWxfdGltZXIgKCZwYWRhcHRlci0+dGltZXIpOwotCQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDE1IikpOwotCQkJCQkJaWYgKCAhSW5pdEZhaWxvdmVyIChwYWRhcHRlciwgcGRldikgKQotCQkJCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJCX0KLQkJCQkJYnJlYWs7CQotCQkJCQl9Ci0JCQkJaWYgKCBwYWRhcHRlci0+dGltaW5nUElPICkKLQkJCQkJewotCQkJCQlpbnN3IChwYWRhcHRlci0+cmVnRGF0YSwgcGFkYXB0ZXItPmtCdWZmZXIsIHBhZGFwdGVyLT5yZWFkQ291bnQgLyAyKTsKLQkJCQkJcGFkYXB0ZXItPnNlY3RvckNvdW50IC09IHBhZGFwdGVyLT5yZWFkQ291bnQgLyBCWVRFU19QRVJfU0VDVE9SOwotCQkJCQlXYWxrU2NhdEdhdGggKHBhZGFwdGVyLCBUUlVFLCBwYWRhcHRlci0+cmVhZENvdW50KTsKLQkJCQkJaWYgKCAhcGFkYXB0ZXItPnNlY3RvckNvdW50ICkKLQkJCQkJCXsKLQkJCQkJCXN0YXR1cyA9IDA7Ci0JCQkJCQlicmVhazsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCWVsc2UKLQkJCQkJewotCQkJCQlpZiAoIHBhZGFwdGVyLT5yZWFkQ291bnQgKQotCQkJCQkJV2Fsa1NjYXRHYXRoIChwYWRhcHRlciwgVFJVRSwgcGFkYXB0ZXItPnJlYWRDb3VudCk7Ci0JCQkJCUJ1c01hc3RlciAocGFkYXB0ZXIsIDEsIDEpOwotCQkJCQl9Ci0JCQkJcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IFRSVUU7Ci0JCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCX0KLQkJCWlmICggcGFkYXB0ZXItPnJlYWRDb3VudCAmJiAhcGFkYXB0ZXItPnRpbWluZ1BJTyApCi0JCQkJV2Fsa1NjYXRHYXRoIChwYWRhcHRlciwgVFJVRSwgcGFkYXB0ZXItPnJlYWRDb3VudCk7Ci0JCQlzdGF0dXMgPSAwOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBXUklURV9DTUQ6Ci0JCQlpZiAoIHBkZXYtPnJhaWQgKQotCQkJCXsKLQkJCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3RzWzBdIHwgU0VMX0lSUV9PRkYpOwkJCQkKLQkJCQlzdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwkJCQkJCQkJLy8gcmVhZCB0aGUgZGV2aWNlIHN0YXR1cwotCQkJCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdHNbMV0gfCBTRUxfSVJRX09GRik7CQkJCQotCQkJCXN0YXR1czEgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwkJCQkJCQkJLy8gcmVhZCB0aGUgZGV2aWNlIHN0YXR1cwotCQkJCX0KLQkJCWVsc2UKLQkJCQlTZWxlY3RTcGlnb3QgKHBhZGFwdGVyLCBwZGV2LT5zcGlnb3QgfCBTRUxfSVJRX09GRik7CQkJCQotCQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7CQkJCQkJCQkvLyByZWFkIHRoZSBkZXZpY2Ugc3RhdHVzCi0JCQkJc3RhdHVzMSA9IDA7Ci0JCQotCQkJaWYgKCBzdGF0dXMgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQl7CQotCQkJCWlmICggcGRldi0+cmFpZCAmJiAhKHN0YXR1czEgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpKSApCi0JCQkJCXsKLQkJCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gMTsKLQkJCQkJZGVsX3RpbWVyICgmcGFkYXB0ZXItPnRpbWVyKTsKLQkJCQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290IHwgU0VMX0lSUV9PRkYpOwotCQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgMTYgIHN0YXR1cyA9ICVYICBlcnJvciA9ICVYIiwgc3RhdHVzLCBpbmJfcCAocGFkYXB0ZXItPnJlZ0Vycm9yKSkpOwotCQkJCQlpZiAoICFJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCQlnb3RvIGlycV9yZXR1cm47Ci0JCQkJCX0KLQkJCQlicmVhazsKLQkJCQl9Ci0JCQlpZiAoIHBkZXYtPnJhaWQgKQotCQkJCXsKLQkJCQlpZiAoIHN0YXR1czEgJiAoSURFX1NUQVRVU19FUlJPUiB8IElERV9TVEFUVVNfV1JJVEVfRkFVTFQpICkKLQkJCQkJewkKLQkJCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gMDsKLQkJCQkJZGVsX3RpbWVyICgmcGFkYXB0ZXItPnRpbWVyKTsKLQkJCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDE3ICBzdGF0dXMgPSAlWCAgZXJyb3IgPSAlWCIsIHN0YXR1czEsIGluYl9wIChwYWRhcHRlci0+cmVnRXJyb3IpKSk7Ci0JCQkJCWlmICggIUluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJc3RhdHVzID0gc3RhdHVzMTsKLQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQlpZiAoIHBhZGFwdGVyLT5zZWN0b3JDb3VudCApCi0JCQkJCXsKLQkJCQkJc3RhdHVzID0gV3JpdGVEYXRhQm90aCAocGFkYXB0ZXIsIHBkZXYpOwotCQkJCQlpZiAoIHN0YXR1cyApCi0JCQkJCQl7Ci0JCQkJCQlwYWRhcHRlci0+c3Vydml2b3IgPSBzdGF0dXMgPj4gMTsKLQkJCQkJCWRlbF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JCQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgMTgiKSk7Ci0JCQkJCQlpZiAoICFJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCQkJZ290byBpcnFfcmV0dXJuOwotCQkJCQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1tzdGF0dXNdIHwgU0VMX0lSUV9PRkYpOwkJCQkKLQkJCQkJCXN0YXR1cyA9IGluYl9wIChwYWRhcHRlci0+cmVnU3RhdENtZCk7CQkJCQkJCQkvLyByZWFkIHRoZSBkZXZpY2Ugc3RhdHVzCi0JCQkJCQlicmVhazsKLQkJCQkJCX0KLQkJCQkJcGFkYXB0ZXItPmV4cGVjdGluZ0lSUSA9IFRSVUU7Ci0JCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQkJfQotCQkJCXN0YXR1cyA9IDA7Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCQkJaWYgKCBwYWRhcHRlci0+c2VjdG9yQ291bnQgKQkKLQkJCQl7CQotCQkJCVNlbGVjdFNwaWdvdCAocGFkYXB0ZXIsIHBkZXYtPnNwaWdvdCB8IHBhZGFwdGVyLT5iaWdEKTsKLQkJCQlzdGF0dXMgPSBXcml0ZURhdGEgKHBhZGFwdGVyKTsKLQkJCQlpZiAoIHN0YXR1cyApCi0JCQkJCWJyZWFrOwotCQkJCXBhZGFwdGVyLT5leHBlY3RpbmdJUlEgPSBUUlVFOwotCQkJCWdvdG8gaXJxX3JldHVybjsKLQkJCQl9Ci0JCQlzdGF0dXMgPSAwOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBJREVfQ09NTUFORF9JREVOVElGWToKLQkJCXsKLQkJCVBJTlFVSVJZREFUQQlwaW5xdWlyeURhdGEgID0gU0NwbnQtPnJlcXVlc3RfYnVmZmVyOwotCQkJUElERU5USUZZX0RBVEEJcGlkID0gKFBJREVOVElGWV9EQVRBKXBhZGFwdGVyLT5rQnVmZmVyOwotCi0JCQlzdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1N0YXRDbWQpOwotCQkJaWYgKCBzdGF0dXMgJiBJREVfU1RBVFVTX0RSUSApCi0JCQkJewotCQkJCWluc3cgKHBhZGFwdGVyLT5yZWdEYXRhLCBwaWQsIHNpemVvZiAoSURFTlRJRllfREFUQSkgPj4gMSk7Ci0KLQkJCQltZW1zZXQgKHBpbnF1aXJ5RGF0YSwgMCwgU0NwbnQtPnJlcXVlc3RfYnVmZmxlbik7CQkvLyBaZXJvIElOUVVJUlkgZGF0YSBzdHJ1Y3R1cmUuCi0JCQkJcGlucXVpcnlEYXRhLT5EZXZpY2VUeXBlID0gMDsKLQkJCQlwaW5xdWlyeURhdGEtPlZlcnNpb25zID0gMjsKLQkJCQlwaW5xdWlyeURhdGEtPkFkZGl0aW9uYWxMZW5ndGggPSAzNSAtIDQ7Ci0KLQkJCQkvLyBGaWxsIGluIHZlbmRvciBpZGVudGlmaWNhdGlvbiBmaWVsZHMuCi0JCQkJZm9yICggeiA9IDA7ICB6IDwgMjA7ICB6ICs9IDIgKQotCQkJCQl7Ci0JCQkJCXBpbnF1aXJ5RGF0YS0+VmVuZG9ySWRbel0JICA9ICgoVUNIQVIgKilwaWQtPk1vZGVsTnVtYmVyKVt6ICsgMV07Ci0JCQkJCXBpbnF1aXJ5RGF0YS0+VmVuZG9ySWRbeiArIDFdID0gKChVQ0hBUiAqKXBpZC0+TW9kZWxOdW1iZXIpW3pdOwotCQkJCQl9Ci0KLQkJCQkvLyBJbml0aWFsaXplIHVudXNlZCBwb3J0aW9uIG9mIHByb2R1Y3QgaWQuCi0JCQkJZm9yICggeiA9IDA7ICB6IDwgNDsgIHorKyApCi0JCQkJCXBpbnF1aXJ5RGF0YS0+UHJvZHVjdElkWzEyICsgel0gPSAnICc7Ci0KLQkJCQkvLyBNb3ZlIGZpcm13YXJlIHJldmlzaW9uIGZyb20gSURFTlRJRlkgZGF0YSB0bwotCQkJCS8vIHByb2R1Y3QgcmV2aXNpb24gaW4gSU5RVUlSWSBkYXRhLgotCQkJCWZvciAoIHogPSAwOyAgeiA8IDQ7ICB6ICs9IDIgKQotCQkJCQl7Ci0JCQkJCXBpbnF1aXJ5RGF0YS0+UHJvZHVjdFJldmlzaW9uTGV2ZWxbel0JID0gKChVQ0hBUiAqKXBpZC0+RmlybXdhcmVSZXZpc2lvbilbeiArIDFdOwotCQkJCQlwaW5xdWlyeURhdGEtPlByb2R1Y3RSZXZpc2lvbkxldmVsW3ogKyAxXSA9ICgoVUNIQVIgKilwaWQtPkZpcm13YXJlUmV2aXNpb24pW3pdOwotCQkJCQl9Ci0JCQkJaWYgKCBwZGV2ID09IHBhZGFwdGVyLT5kZXZpY2UgKQotCQkJCQkqKChVU0hPUlQgKikoJnBpbnF1aXJ5RGF0YS0+VmVuZG9yU3BlY2lmaWMpKSA9IERFVklDRV9EQUxFXzE7Ci0JCQkJCi0JCQkJc3RhdHVzID0gMDsKLQkJCQl9Ci0JCQlicmVhazsKLQkJCX0KLQotCQlkZWZhdWx0OgotCQkJc3RhdHVzID0gMDsKLQkJCWJyZWFrOwotCQl9Ci0KLQlkZWxfdGltZXIgKCZwYWRhcHRlci0+dGltZXIpOwotCWlmICggc3RhdHVzICkKLQkJewotCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGkgSW50ZXJydXB0IGhhbmRsZXIgcmV0dXJuIGVycm9yIikpOwotCQl6bCA9IERlY29kZUVycm9yIChwYWRhcHRlciwgc3RhdHVzKTsKLQkJfQotCWVsc2UKLQkJemwgPSBESURfT0sgPDwgMTY7Ci0KLQlPcERvbmUgKHBhZGFwdGVyLCB6bCk7Ci1pcnFfcmV0dXJuOgotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwotb3V0OgotCXJldHVybiBJUlFfUkVUVkFMKGhhbmRsZWQpOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJUGNpMjIyMGlfUXVldWVDb21tYW5kCi0gKgotICoJRGVzY3JpcHRpb246CVByb2Nlc3MgYSBxdWV1ZWQgY29tbWFuZCBmcm9tIHRoZSBTQ1NJIG1hbmFnZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCVNDcG50IC0gUG9pbnRlciB0byBTQ1NJIGNvbW1hbmQgc3RydWN0dXJlLgotICoJCQkJCWRvbmUgIC0gUG9pbnRlciB0byBkb25lIGZ1bmN0aW9uIHRvIGNhbGwuCi0gKgotICoJUmV0dXJuczoJCVN0YXR1cyBjb2RlLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotaW50IFBjaTIyMjBpX1F1ZXVlQ29tbWFuZCAoU2NzaV9DbW5kICpTQ3BudCwgdm9pZCAoKmRvbmUpKFNjc2lfQ21uZCAqKSkKLQl7Ci0JVUNIQVIJCSAgICpjZGIgPSAoVUNIQVIgKilTQ3BudC0+Y21uZDsJCQkJCS8vIFBvaW50ZXIgdG8gU0NTSSBDREIKLQlQQURBUFRFUjIyMjBJCXBhZGFwdGVyID0gSE9TVERBVEEoU0NwbnQtPmRldmljZS0+aG9zdCk7CQkJLy8gUG9pbnRlciB0byBhZGFwdGVyIGNvbnRyb2wgc3RydWN0dXJlCi0JUE9VUl9ERVZJQ0UJCXBkZXYJID0gJnBhZGFwdGVyLT5kZXZpY2VbU0NwbnQtPmRldmljZS0+aWRdOy8vIFBvaW50ZXIgdG8gZGV2aWNlIGluZm9ybWF0aW9uCi0JVUNIQVIJCQlyYzsJCQkJCQkJCQkJCS8vIGNvbW1hbmQgcmV0dXJuIGNvZGUKLQlpbnQJCQkJejsgCi0JUERFVklDRV9SQUlEMQlwZHI7Ci0KLQlTQ3BudC0+c2NzaV9kb25lID0gZG9uZTsKLQlwYWRhcHRlci0+U0NwbnQgPSBTQ3BudDsgIAkJCQkJCQkJCS8vIFNhdmUgdGhpcyBjb21tYW5kIGRhdGEKLQlwYWRhcHRlci0+cmVhZENvdW50ID0gMDsKLQotCWlmICggU0NwbnQtPnVzZV9zZyApCi0JCXsKLQkJcGFkYXB0ZXItPmN1cnJlbnRTZ0J1ZmZlciA9ICgoc3RydWN0IHNjYXR0ZXJsaXN0ICopU0NwbnQtPnJlcXVlc3RfYnVmZmVyKVswXS5hZGRyZXNzOwotCQlwYWRhcHRlci0+Y3VycmVudFNnQ291bnQgPSAoKHN0cnVjdCBzY2F0dGVybGlzdCAqKVNDcG50LT5yZXF1ZXN0X2J1ZmZlcilbMF0ubGVuZ3RoOwotCQl9Ci0JZWxzZQotCQl7Ci0JCXBhZGFwdGVyLT5jdXJyZW50U2dCdWZmZXIgPSBTQ3BudC0+cmVxdWVzdF9idWZmZXI7Ci0JCXBhZGFwdGVyLT5jdXJyZW50U2dDb3VudCA9IFNDcG50LT5yZXF1ZXN0X2J1ZmZsZW47Ci0JCX0KLQlwYWRhcHRlci0+bmV4dFNnID0gMTsKLQotCWlmICggIWRvbmUgKQotCQl7Ci0JCXByaW50aygicGNpMjIyMGlfcXVldWVjb21tYW5kOiAlMDJYOiBkb25lIGNhbid0IGJlIE5VTExcbiIsICpjZGIpOwotCQlyZXR1cm4gMDsKLQkJfQotCQotCWlmICggcGFkYXB0ZXItPmF0YXBpICkKLQkJewotCQlVQ0hBUgkJCXpsbywgemhpOwotCi0JCURFQiAocHJpbnRrICgiXG5QQ0kyMjQySTogSUQgJWQsIExVTiAlZCBvcGNvZGUgJVggIiwgU0NwbnQtPmRldmljZS0+aWQsIFNDcG50LT5kZXZpY2UtPmx1biwgKmNkYikpOwotCQlwYWRhcHRlci0+cGRldiA9IHBkZXY7Ci0JCWlmICggIXBkZXYtPmJ5dGU2IHx8IFNDcG50LT5kZXZpY2UtPmx1biApCi0JCQl7Ci0JCQlPcERvbmUgKHBhZGFwdGVyLCBESURfQkFEX1RBUkdFVCA8PCAxNik7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkKLQkJcGFkYXB0ZXItPmF0YXBpU3BlY2lhbCA9IEZBTFNFOwotCQlwYWRhcHRlci0+cmVxU2Vuc2UgPSBGQUxTRTsKLQkJbWVtc2V0IChwYWRhcHRlci0+YXRhcGlDZGIsIDAsIDE2KTsKLQkJU2VsZWN0U3BpZ290IChwYWRhcHRlciwgcGRldi0+c3BpZ290KTsJCQkJCQkJCQkvLyBzZWxlY3QgdGhlIHNwaWdvdAotCQlBdGFwaURldmljZSAocGFkYXB0ZXIsIHBkZXYtPmJ5dGU2KTsJCQkJCQkJCQkvLyBzZWxlY3QgdGhlIGRyaXZlCi0JCWlmICggQXRhcGlXYWl0UmVhZHkgKHBhZGFwdGVyLCAxMDApICkKLQkJCXsKLQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9OT19DT05ORUNUIDw8IDE2KTsKLQkJCXJldHVybiAwOwotCQkJfQotCi0JCXN3aXRjaCAoIGNkYlswXSApIAotCQkJewotCQkJY2FzZSBTQ1NJT1BfTU9ERV9TRU5TRToKLQkJCWNhc2UgU0NTSU9QX01PREVfU0VMRUNUOgotCQkJCVNjc2kyQXRhcGkgKHBhZGFwdGVyLCBTQ3BudCk7Ci0JCQkJeiA9IFNDcG50LT5yZXF1ZXN0X2J1ZmZsZW4gKyA0OwotCQkJCWJyZWFrOwotCQkJY2FzZSBTQ1NJT1BfUkVBRDY6Ci0JCQljYXNlIFNDU0lPUF9XUklURTY6Ci0JCQkJU2NzaTJBdGFwaSAocGFkYXB0ZXIsIFNDcG50KTsKLQkJCQl6ID0gU0NwbnQtPnJlcXVlc3RfYnVmZmxlbjsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJbWVtY3B5IChwYWRhcHRlci0+YXRhcGlDZGIsIGNkYiwgU0NwbnQtPmNtZF9sZW4pOwotCQkJCXogPSBTQ3BudC0+cmVxdWVzdF9idWZmbGVuOwotCQkJCWJyZWFrOwotCQkJfQotCQlpZiAoIHogPiBBVEFQSV9UUkFOU0ZFUiApCi0JCQl6ID0gQVRBUElfVFJBTlNGRVI7Ci0JICAgIHpsbyA9IChVQ0hBUikoeiAmIDB4RkYpOwotCSAgICB6aGkgPSAoVUNIQVIpKHogPj4gOCk7Ci0KLQkgCUF0YXBpQ291bnRMbyAocGFkYXB0ZXIsIHpsbyk7CQkJCQkJCi0JICAgCUF0YXBpQ291bnRIaSAocGFkYXB0ZXIsIHpoaSk7CQkJCQkJCi0JICAgCW91dGJfcCAoMCwgcGFkYXB0ZXItPnJlZ0Vycm9yKTsJCQkJCQkKLQkJV3JpdGVDb21tYW5kIChwYWRhcHRlciwgSURFX0NPTU1BTkRfQVRBUElfUEFDS0VUKTsKLQkJaWYgKCBwZGV2LT5jbWREcnFJbnQgKQotCQkJcmV0dXJuIDA7Ci0KLQkJaWYgKCBBdGFwaVdhaXREcnEgKHBhZGFwdGVyLCA1MDApICkKLQkJCXsKLQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkJQXRhcGlTZW5kQ2RiIChwYWRhcHRlciwgcGRldiwgcGFkYXB0ZXItPmF0YXBpQ2RiKTsJCi0JCXJldHVybiAwOwotCQl9Ci0JCi0JaWYgKCBwYWRhcHRlci0+cmVjb25QaGFzZSApCi0JCXJldHVybiAwOwotCWlmICggcGFkYXB0ZXItPnJlY29uVGltZXIuZGF0YSApCi0JCXsKLQkJZGVsX3RpbWVyICgmcGFkYXB0ZXItPnJlY29uVGltZXIpOwotCQlwYWRhcHRlci0+cmVjb25UaW1lci5kYXRhID0gMDsKLQkJfQotCQkKLQlpZiAoIChTQ3BudC0+ZGV2aWNlLT5pZCA+PSBwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXMpIHx8IFNDcG50LT5kZXZpY2UtPmx1biApCi0JCXsKLQkJT3BEb25lIChwYWRhcHRlciwgRElEX0JBRF9UQVJHRVQgPDwgMTYpOwotCQlyZXR1cm4gMDsKLQkJfQotCQotCXN3aXRjaCAoICpjZGIgKQotCQl7Ci0JCWNhc2UgU0NTSU9QX0lOUVVJUlk6ICAgCQkJCQkvLyBpbnF1aXJ5IENEQgotCQkJewotCQkJaWYgKCBjZGJbMl0gPT0gU0NfTVlfUkFJRCApCi0JCQkJewotCQkJCXN3aXRjaCAoIGNkYlszXSApIAotCQkJCQl7Ci0JCQkJCWNhc2UgTVlfU0NTSV9SRUJVSUxEOgotCQkJCQkJZm9yICggeiA9IDA7ICB6IDwgcGFkYXB0ZXItPm51bWJlck9mRHJpdmVzOyAgeisrICkKLQkJCQkJCQl7Ci0JCQkJCQkJcGRldiA9ICZwYWRhcHRlci0+ZGV2aWNlW3pdOwotCQkJCQkJCWlmICggKChwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpICYmIChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfTUlSUk9SRUQpKSB8fAotCQkJCQkJCQkgKChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpICYmIChwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfTUlSUk9SRUQpKSApCi0JCQkJCQkJCXsKLQkJCQkJCQkJcGFkYXB0ZXItPnJlY29uT24gPSBwZGV2LT5yZWNvbk9uID0gcGRldi0+cmVjb25Jc1N0YXJ0aW5nID0gVFJVRTsKLQkJCQkJCQkJfQotCQkJCQkJCX0KLQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7Ci0JCQkJCQlicmVhazsKLQkJCQkJY2FzZSBNWV9TQ1NJX0FMQVJNTVVURToKLQkJCQkJCU11dGVBbGFybSAocGFkYXB0ZXIpOwotCQkJCQkJT3BEb25lIChwYWRhcHRlciwgRElEX09LIDw8IDE2KTsKLQkJCQkJCWJyZWFrOwotCQkJCQljYXNlIE1ZX1NDU0lfREVNT0ZBSUw6Ci0JCQkJCQlwYWRhcHRlci0+ZGVtb0ZhaWwgPSBUUlVFOwkJCQkKLQkJCQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7Ci0JCQkJCQlicmVhazsKLQkJCQkJZGVmYXVsdDoKLQkJCQkJCXogPSBjZGJbNV07CQkJCS8vIGdldCBpbmRleAotCQkJCQkJcGRyID0gKFBERVZJQ0VfUkFJRDEpU0NwbnQtPnJlcXVlc3RfYnVmZmVyOwotCQkJCQkJaWYgKCBwYWRhcHRlci0+cmFpZERhdGFbel0gKQotCQkJCQkJCXsKLQkJCQkJCQltZW1jcHkgKCZwZHItPkRpc2tSYWlkMSwgcGFkYXB0ZXItPnJhaWREYXRhW3pdLCBzaXplb2YgKERJU0tfTUlSUk9SKSk7Ci0JCQkJCQkJaWYgKCBwYWRhcHRlci0+cmFpZERhdGFbel0tPnJlY29uc3RydWN0UG9pbnQgPiBwYWRhcHRlci0+cmFpZERhdGFbeiBeIDJdLT5yZWNvbnN0cnVjdFBvaW50ICkKLQkJCQkJCQkJcGRyLT5Ub3RhbFNlY3RvcnMgPSBwYWRhcHRlci0+cmFpZERhdGFbel0tPnJlY29uc3RydWN0UG9pbnQ7Ci0JCQkJCQkJZWxzZQotCQkJCQkJCQlwZHItPlRvdGFsU2VjdG9ycyA9IHBhZGFwdGVyLT5yYWlkRGF0YVt6IF4gMl0tPnJlY29uc3RydWN0UG9pbnQ7Ci0JCQkJCQkJfQotCQkJCQkJZWxzZQotCQkJCQkJCW1lbXNldCAocGRyLCAwLCBzaXplb2YgKERFVklDRV9SQUlEMSkpOwotCQkJCQkJT3BEb25lIChwYWRhcHRlciwgRElEX09LIDw8IDE2KTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9CQotCQkJCXJldHVybiAwOwotCQkJCX0KLQkJCXBhZGFwdGVyLT5jbWQgPSBJREVfQ09NTUFORF9JREVOVElGWTsKLQkJCWJyZWFrOwotCQkJfQotCi0JCWNhc2UgU0NTSU9QX1RFU1RfVU5JVF9SRUFEWToJCQkvLyB0ZXN0IHVuaXQgcmVhZHkgQ0RCCi0JCQlPcERvbmUgKHBhZGFwdGVyLCBESURfT0sgPDwgMTYpOwotCQkJcmV0dXJuIDA7Ci0JCWNhc2UgU0NTSU9QX1JFQURfQ0FQQUNJVFk6CQkJICAJLy8gcmVhZCBjYXBjdGl5IENEQgotCQkJewotCQkJUFJFQURfQ0FQQUNJVFlfREFUQQlwZGF0YSA9IChQUkVBRF9DQVBBQ0lUWV9EQVRBKVNDcG50LT5yZXF1ZXN0X2J1ZmZlcjsKLQotCQkJcGRhdGEtPmJsa3NpeiA9IDB4MjAwMDA7Ci0JCQlYQU5ZMlNDU0kgKChVQ0hBUiAqKSZwZGF0YS0+YmxrcywgcGRldi0+YmxvY2tzKTsKLQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9PSyA8PCAxNik7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkJY2FzZSBTQ1NJT1BfVkVSSUZZOgkJCQkJCS8vIHZlcmlmeSBDREIKLQkJCXBhZGFwdGVyLT5zdGFydFNlY3RvciA9IFhTQ1NJMkxPTkcgKCZjZGJbMl0pOwotCQkJcGFkYXB0ZXItPnNlY3RvckNvdW50ID0gKFVDSEFSKSgoVVNIT1JUKWNkYls4XSB8ICgoVVNIT1JUKWNkYls3XSA8PCA4KSk7Ci0JCQlwYWRhcHRlci0+Y21kID0gSURFX0NPTU1BTkRfVkVSSUZZOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0NTSU9QX1JFQUQ6CQkJCQkJLy8gcmVhZDEwIENEQgotCQkJcGFkYXB0ZXItPnN0YXJ0U2VjdG9yID0gWFNDU0kyTE9ORyAoJmNkYlsyXSk7Ci0JCQlwYWRhcHRlci0+c2VjdG9yQ291bnQgPSAoVVNIT1JUKWNkYls4XSB8ICgoVVNIT1JUKWNkYls3XSA8PCA4KTsKLQkJCXBhZGFwdGVyLT5jbWQgPSBSRUFEX0NNRDsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9SRUFENjoJCQkJCQkvLyByZWFkNiAgQ0RCCi0JCQlwYWRhcHRlci0+c3RhcnRTZWN0b3IgPSBTQ1NJMkxPTkcgKCZjZGJbMV0pOwotCQkJcGFkYXB0ZXItPnNlY3RvckNvdW50ID0gY2RiWzRdOwotCQkJcGFkYXB0ZXItPmNtZCA9IFJFQURfQ01EOwotCQkJYnJlYWs7Ci0JCWNhc2UgU0NTSU9QX1dSSVRFOgkJCQkJCS8vIHdyaXRlMTAgQ0RCCi0JCQlwYWRhcHRlci0+c3RhcnRTZWN0b3IgPSBYU0NTSTJMT05HICgmY2RiWzJdKTsKLQkJCXBhZGFwdGVyLT5zZWN0b3JDb3VudCA9IChVU0hPUlQpY2RiWzhdIHwgKChVU0hPUlQpY2RiWzddIDw8IDgpOwotCQkJcGFkYXB0ZXItPmNtZCA9IFdSSVRFX0NNRDsKLQkJCWJyZWFrOwotCQljYXNlIFNDU0lPUF9XUklURTY6CQkJCQkJLy8gd3JpdGU2ICBDREIKLQkJCXBhZGFwdGVyLT5zdGFydFNlY3RvciA9IFNDU0kyTE9ORyAoJmNkYlsxXSk7Ci0JCQlwYWRhcHRlci0+c2VjdG9yQ291bnQgPSBjZGJbNF07Ci0JCQlwYWRhcHRlci0+Y21kID0gV1JJVEVfQ01EOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlERUIgKHByaW50ayAoInBjaTIyMjBpX3F1ZXVlY29tbWFuZDogVW5zdXBwb3J0ZWQgY29tbWFuZCAlMDJYXG4iLCAqY2RiKSk7Ci0JCQlPcERvbmUgKHBhZGFwdGVyLCBESURfRVJST1IgPDwgMTYpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQotCWlmICggcGFkYXB0ZXItPnJlY29uUGhhc2UgKQotCQlyZXR1cm4gMDsKLQkKLQlwYWRhcHRlci0+cGRldiA9IHBkZXY7Ci0KLQl3aGlsZSAoIHBhZGFwdGVyLT5kZW1vRmFpbCApCi0JCXsKLQkJcGRldiA9IHBhZGFwdGVyLT5wZGV2ID0gJnBhZGFwdGVyLT5kZXZpY2VbMF07Ci0JCXBhZGFwdGVyLT5kZW1vRmFpbCA9IEZBTFNFOwotCQlpZiAoICFwZGV2LT5yYWlkIHx8IAotCQkJIChwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpIHx8IAotCQkJIChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpICkKLQkJCXsKLQkJCWJyZWFrOwotCQkJfQotCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9SRUJVSUxEICkKLQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IDE7Ci0JCWVsc2UKLQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IDA7Ci0JCQkJREVCIChwcmludGsgKCJcbnBjaTIyMjBpOiBGQUlMVVJFIDE5IikpOwotCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCWJyZWFrOwotCQlyZXR1cm4gMDsKLQkJfQotCi0JU3RhcnRUaW1lciAocGFkYXB0ZXIpOwotCWlmICggcGRldi0+cmFpZCAmJiAocGFkYXB0ZXItPmNtZCA9PSBXUklURV9DTUQpICkKLQkJewotCQlyYyA9IElkZUNtZEJvdGggKHBhZGFwdGVyLCBwZGV2KTsKLQkJaWYgKCAhcmMgKQotCQkJcmMgPSBXcml0ZURhdGFCb3RoIChwYWRhcHRlciwgcGRldik7Ci0JCWlmICggcmMgKQotCQkJewotCQkJZGVsX3RpbWVyICgmcGFkYXB0ZXItPnRpbWVyKTsKLQkJCXBhZGFwdGVyLT5leHBlY3RpbmdJUlEgPSAwOwotCQkJcGFkYXB0ZXItPnN1cnZpdm9yID0gcmMgPj4gMTsKLQkJCQlERUIgKHByaW50ayAoIlxucGNpMjIyMGk6IEZBSUxVUkUgMjAiKSk7Ci0JCQlpZiAoIEluaXRGYWlsb3ZlciAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQl7Ci0JCQkJT3BEb25lIChwYWRhcHRlciwgRElEX0VSUk9SIDw8IDE2KTsKLQkJCQlyZXR1cm4gMDsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQllbHNlCi0JCXsKLQkJcmMgPSBJZGVDbWQgKHBhZGFwdGVyLCBwZGV2KTsKLQkJaWYgKCAocGFkYXB0ZXItPmNtZCA9PSBXUklURV9DTUQpICYmICFyYyApCi0JCQlyYyA9IFdyaXRlRGF0YSAocGFkYXB0ZXIpOwotCQlpZiAoIHJjICkKLQkJCXsKLQkJCWRlbF90aW1lciAoJnBhZGFwdGVyLT50aW1lcik7Ci0JCQlwYWRhcHRlci0+ZXhwZWN0aW5nSVJRID0gMDsKLQkJCWlmICggcGRldi0+cmFpZCApCi0JCQkJewotCQkJCXBhZGFwdGVyLT5zdXJ2aXZvciA9IChwZGV2LT5zcGlnb3QgXiAzKSA+PiAxOwotCQkJCURFQiAocHJpbnRrICgiXG5wY2kyMjIwaTogRkFJTFVSRSAyMSIpKTsKLQkJCQlpZiAoICFJbml0RmFpbG92ZXIgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQkJCXJldHVybiAwOwotCQkJCX0KLQkJCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9FUlJPUiA8PCAxNik7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkJfQotCXJldHVybiAwOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOgkJCVJlYWRGbGFzaAotICoKLSAqCURlc2NyaXB0aW9uOglSZWFkIGluZm9ybWF0aW9uIGZyb20gY29udHJvbGxlciBGbGFzaCBtZW1vcnkuCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyIC0gUG9pbnRlciB0byBob3N0IGludGVyZmFjZSBkYXRhIHN0cnVjdHVyZS4KLSAqCQkJCQlwZGF0YQkgLSBQb2ludGVyIHRvIGRhdGEgc3RydWN0dXJlcy4KLSAqCQkJCQliYXNlCSAtIGJhc2UgYWRkcmVzcyBpbiBGbGFzaC4KLSAqCQkJCQlsZW5ndGgJIC0gbGVuZ2h0IG9mIGRhdGEgc3BhY2UgaW4gYnl0ZXMuCi0gKgotICoJUmV0dXJuczoJCU5vdGhpbmcuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgVk9JRCBSZWFkRmxhc2ggKFBBREFQVEVSMjIyMEkgcGFkYXB0ZXIsIFZPSUQgKnBkYXRhLCBVTE9ORyBiYXNlLCBVTE9ORyBsZW5ndGgpCi0JewotCVVMT05HCSBvbGRyZW1hcDsKLQlVQ0hBUgkgb2xkZGVzYzsKLQlVTE9ORwkgejsKLQlVQ0hBUgkqcGQgPSAoVUNIQVIgKilwZGF0YTsKLQotCW9sZHJlbWFwID0gaW5sIChwYWRhcHRlci0+cmVnUmVtYXApOwkJCQkJCQkvLyBzYXZlIHZhbHVlcyB0byByZXN0b3JlIGxhdGVyCi0Jb2xkZGVzYyAgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ0Rlc2MpOwotCi0Jb3V0bCAoYmFzZSB8IDEsIHBhZGFwdGVyLT5yZWdSZW1hcCk7CQkJCQkJCS8vIHJlbWFwIHRvIEZsYXNoIHNwYWNlIGFzIHNwZWNpZmllZAotCW91dGJfcCAoMHg0MCwgcGFkYXB0ZXItPnJlZ0Rlc2MpOwkJCQkJCQkJLy8gZGVzY3JpYmUgcmVtYXAgcmVnaW9uIGFzIDggYml0Ci0JZm9yICggeiA9IDA7ICB6IDwgbGVuZ3RoOyAgeisrKQkJCQkJCQkJCS8vIGdldCAibGVuZ3RoIiBkYXRhIGNvdW50Ci0JCSpwZCsrID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdCYXNlICsgeik7CQkJCQkJLy8gcmVhZCBpbiB0aGUgZGF0YQotCi0Jb3V0bCAob2xkcmVtYXAsIHBhZGFwdGVyLT5yZWdSZW1hcCk7CQkJCQkJCS8vIHJlc3RvcmUgcmVtYXAgcmVnaXN0ZXIgdmFsdWVzCi0Jb3V0Yl9wIChvbGRkZXNjLCBwYWRhcHRlci0+cmVnRGVzYyk7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CQkJR2V0UmVncwotICoKLSAqCURlc2NyaXB0aW9uOglJbml0aWFsaXplIHRoZSByZWdlc3RlciBpbmZvcm1hdGlvbi4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJcHNob3N0CQkgIC0gUG9pbnRlciB0byBTQ1NJIGhvc3QgZGF0YSBzdHJ1Y3R1cmUuCi0gKgkJCQkJYmlnZAkJICAtIFBDSS0yMjQwSSBpZGVudGlmaWVyCi0gKgkJCQkJcGNpZGV2CQkgIC0gUG9pbnRlciB0byBkZXZpY2UgZGF0YSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCVRSVUUgaWYgZmFpbHVyZSB0byBpbnN0YWxsLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIFVTSE9SVCBHZXRSZWdzIChzdHJ1Y3QgU2NzaV9Ib3N0ICpwc2hvc3QsIEJPT0wgYmlnZCwgc3RydWN0IHBjaV9kZXYgKnBjaWRldikKLQl7Ci0JUEFEQVBURVIyMjIwSQlwYWRhcHRlcjsKLQlpbnQJCQkJc2V0aXJxOwotCWludAkJCQl6OwotCVVTSE9SVAkJCXpyLCB6bDsKLQlVQ0hBUgkJICAgKmNvbnNpc3RlbnQ7Ci0JZG1hX2FkZHJfdAkJY29uc2lzdGVudERtYTsKLQotCXBhZGFwdGVyID0gSE9TVERBVEEocHNob3N0KTsKLQltZW1zZXQgKHBhZGFwdGVyLCAwLCBzaXplb2YgKEFEQVBURVIyMjIwSSkpOwotCW1lbXNldCAoJkRhbGVTZXR1cCwgMCwgc2l6ZW9mIChEYWxlU2V0dXApKTsKLQltZW1zZXQgKERpc2tNaXJyb3IsIDAsIHNpemVvZiAoRGlza01pcnJvcikpOwotCi0JenIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQgKHBjaWRldiwgMSk7Ci0JemwgPSBwY2lfcmVzb3VyY2Vfc3RhcnQgKHBjaWRldiwgMik7Ci0KLQlwYWRhcHRlci0+YmFzZVBvcnQgPSB6cjsKLQlwYWRhcHRlci0+cmVnUmVtYXAJCT0genIgKyBSVFJfTE9DQUxfUkVNQVA7CQkJCQkvLyAzMiBiaXQgbG9jYWwgc3BhY2UgcmVtYXAKLQlwYWRhcHRlci0+cmVnRGVzYwkJPSB6ciArIFJUUl9SRUdJT05TOwkgIAkJCQkJLy8gMzIgYml0IGxvY2FsIHJlZ2lvbiBkZXNjcmlwdG9yCi0JcGFkYXB0ZXItPnJlZ1JhbmdlCQk9IHpyICsgUlRSX0xPQ0FMX1JBTkdFOwkJCQkJLy8gMzIgYml0IGxvY2FsIHJhbmdlCi0JcGFkYXB0ZXItPnJlZ0lycUNvbnRyb2wJPSB6ciArIFJUUl9JTlRfQ09OVFJPTF9TVEFUVVM7CQkJLy8gMTYgYml0IGludGVycnVwdCBjb250cm9sIGFuZCBzdGF0dXMKLQlwYWRhcHRlci0+cmVnU2NyYXRjaFBhZAk9IHpyICsgUlRSX01BSUxCT1g7CSAgCQkJCQkvLyAxNiBieXRlIHNjcmF0Y2hwYWQgSS9PIGJhc2UgYWRkcmVzcwotCi0JcGFkYXB0ZXItPnJlZ0Jhc2UJCT0gemw7Ci0JcGFkYXB0ZXItPnJlZ0RhdGEJCT0gemwgKyBSRUdfREFUQTsJCQkJCQkvLyBkYXRhIHJlZ2lzdGVyIEkvTyBhZGRyZXNzCi0JcGFkYXB0ZXItPnJlZ0Vycm9yCQk9IHpsICsgUkVHX0VSUk9SOwkJCQkJCS8vIGVycm9yIHJlZ2lzdGVyIEkvTyBhZGRyZXNzCi0JcGFkYXB0ZXItPnJlZ1NlY3RDb3VudAk9IHpsICsgUkVHX1NFQ1RPUl9DT1VOVDsJCQkJLy8gc2VjdG9yIGNvdW50IHJlZ2lzdGVyIEkvTyBhZGRyZXNzCi0JcGFkYXB0ZXItPnJlZ0xiYTAJCT0gemwgKyBSRUdfTEJBXzA7CQkJCQkJLy8gbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiBMQkEKLQlwYWRhcHRlci0+cmVnTGJhOAkJPSB6bCArIFJFR19MQkFfODsJCQkJCQkvLyBuZXh0IGxlYXN0IHNpZ25pZmljYW50IGJ5dGUgb2YgTEJBCi0JcGFkYXB0ZXItPnJlZ0xiYTE2CQk9IHpsICsgUkVHX0xCQV8xNjsJCQkJCQkvLyBuZXh0IG1vc3Qgc2lnbmlmaWNhbiBieXRlIG9mIExCQQotCXBhZGFwdGVyLT5yZWdMYmEyNAkJPSB6bCArIFJFR19MQkFfMjQ7CQkJCQkJLy8gaGVhZCBhbmQgbW9zdCA0IHNpZ25pZmljYW50IGJpdHMgb2YgTEJBCi0JcGFkYXB0ZXItPnJlZ1N0YXRDbWQJPSB6bCArIFJFR19TVEFUX0NNRDsJCQkJCS8vIHN0YXR1cyBvbiByZWFkIGFuZCBjb21tYW5kIG9uIHdyaXRlIHJlZ2lzdGVyCi0JcGFkYXB0ZXItPnJlZ1N0YXRTZWwJPSB6bCArIFJFR19TVEFUX1NFTDsJCQkJCS8vIGJvYXJkIHN0YXR1cyBvbiByZWFkIGFuZCBzcGlnb3Qgc2VsZWN0IG9uIHdyaXRlIHJlZ2lzdGVyCi0JcGFkYXB0ZXItPnJlZ0ZhaWwJCT0gemwgKyBSRUdfRkFJTDsKLQlwYWRhcHRlci0+cmVnQWx0U3RhdAk9IHpsICsgUkVHX0FMVF9TVEFUOwotCXBhZGFwdGVyLT5wY2lkZXYJCT0gcGNpZGV2OwotCi0JaWYgKCBiaWdkICkKLQkJewotCQlwYWRhcHRlci0+cmVnRG1hRGVzYwk9IHpyICsgUlRSX0RNQTBfREVTQ19QVFI7CQkJLy8gYWRkcmVzcyBvZiB0aGUgRE1BIGRpc2NyaXB0b3IgcmVnaXN0ZXIgZm9yIGRpcmVjdGlvbiBvZiB0cmFuc2ZlcgotCQlwYWRhcHRlci0+cmVnRG1hQ21kU3RhdAk9IHpyICsgUlRSX0RNQV9DT01NQU5EX1NUQVRVUzsJCS8vIEJ5dGUgIzAgb2YgRE1BIGNvbW1hbmQgc3RhdHVzIHJlZ2lzdGVyCi0JCXBhZGFwdGVyLT5yZWdEbWFBZGRyUGNpCT0genIgKyBSVFJfRE1BMF9QQ0lfQUREUjsJCQkvLyAzMiBiaXQgcmVnaXN0ZXIgZm9yIFBDSSBhZGRyZXNzIG9mIERNQQotCQlwYWRhcHRlci0+cmVnRG1hQWRkckxvYwk9IHpyICsgUlRSX0RNQTBfTE9DQUxfQUREUjsJCQkvLyAzMiBiaXQgcmVnaXN0ZXIgZm9yIGxvY2FsIGJ1cyBhZGRyZXNzIG9mIERNQQotCQlwYWRhcHRlci0+cmVnRG1hQ291bnQJPSB6ciArIFJUUl9ETUEwX0NPVU5UOwkJCQkvLyAzMiBiaXQgcmVnaXN0ZXIgZm9yIERNQSB0cmFuc2ZlciBjb3VudAotCQlwYWRhcHRlci0+cmVnRG1hTW9kZQk9IHpyICsgUlRSX0RNQTBfTU9ERSArIDE7CQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBETUEgbW9kZSBjb250cm9sCi0JCXBhZGFwdGVyLT5iaWdECQkJPSBTRUxfTkVXX1NQRUVEXzE7CQkJCQkvLyBzZXQgc3BpZ290IHNwZWVkIGNvbnRyb2wgYml0Ci0JCX0KLQllbHNlCi0JCXsKLQkJcGFkYXB0ZXItPnJlZ0RtYURlc2MJPSB6bCArIFJUTF9ETUExX0RFU0NfUFRSOwkJCS8vIGFkZHJlc3Mgb2YgdGhlIERNQSBkaXNjcmlwdG9yIHJlZ2lzdGVyIGZvciBkaXJlY3Rpb24gb2YgdHJhbnNmZXIKLQkJcGFkYXB0ZXItPnJlZ0RtYUNtZFN0YXQJPSB6bCArIFJUTF9ETUFfQ09NTUFORF9TVEFUVVMgKyAxOwkvLyBCeXRlICMxIG9mIERNQSBjb21tYW5kIHN0YXR1cyByZWdpc3RlcgotCQlwYWRhcHRlci0+cmVnRG1hQWRkclBjaQk9IHpsICsgUlRMX0RNQTFfUENJX0FERFI7CQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBQQ0kgYWRkcmVzcyBvZiBETUEKLQkJcGFkYXB0ZXItPnJlZ0RtYUFkZHJMb2MJPSB6bCArIFJUTF9ETUExX0xPQ0FMX0FERFI7CQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBsb2NhbCBidXMgYWRkcmVzcyBvZiBETUEKLQkJcGFkYXB0ZXItPnJlZ0RtYUNvdW50CT0gemwgKyBSVExfRE1BMV9DT1VOVDsJCQkJLy8gMzIgYml0IHJlZ2lzdGVyIGZvciBETUEgdHJhbnNmZXIgY291bnQKLQkJcGFkYXB0ZXItPnJlZ0RtYU1vZGUJPSB6bCArIFJUTF9ETUExX01PREUgKyAxOwkJCS8vIDMyIGJpdCByZWdpc3RlciBmb3IgRE1BIG1vZGUgY29udHJvbAotCQl9Ci0KLQlwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1NjcmF0Y2hQYWQgKyBCSUdEX05VTV9EUklWRVMpOwotCWlmICggIWJpZ2QgJiYgIXBhZGFwdGVyLT5udW1iZXJPZkRyaXZlcyApCQkJCQkJLy8gaWYgbm8gZGV2aWNlcyBvbiB0aGlzIGJvYXJkCi0JCXJldHVybiBUUlVFOwotCi0JcHNob3N0LT5pcnEgPSBwY2lkZXYtPmlycTsKLQlzZXRpcnEgPSAxOwotCWZvciAoIHogPSAwOyAgeiA8IEluc3RhbGxlZDsgIHorKyApCQkJCQkJCQkvLyBzY2FuIGZvciBzaGFyZWQgaW50ZXJydXB0cwotCQl7Ci0JCWlmICggUHNpSG9zdFt6XS0+aXJxID09IHBzaG9zdC0+aXJxICkJCQkJCQkvLyBpZiBzaGFyZWQgdGhlbiwgZG9uJ3QgcG9zc2VzCi0JCQlzZXRpcnEgPSAwOwotCQl9Ci0JaWYgKCBzZXRpcnEgKQkJCQkJCQkJCQkJCQkvLyBpZiBub3Qgc2hhcmVkLCBwb3NzZXMKLQkJewotCQlpZiAoIHJlcXVlc3RfaXJxIChwc2hvc3QtPmlycSwgSXJxX0hhbmRsZXIsIFNBX1NISVJRLCAicGNpMjIyMGkiLCBwYWRhcHRlcikgPCAwICkKLQkJCXsKLQkJCWlmICggcmVxdWVzdF9pcnEgKHBzaG9zdC0+aXJxLCBJcnFfSGFuZGxlciwgU0FfSU5URVJSVVBUIHwgU0FfU0hJUlEsICJwY2kyMjIwaSIsIHBhZGFwdGVyKSA8IDAgKQotCQkJCXsKLQkJCQlwcmludGsgKCJVbmFibGUgdG8gYWxsb2NhdGUgSVJRIGZvciBQQ0ktMjIyMEkgY29udHJvbGxlci5cbiIpOwotCQkJCXJldHVybiBUUlVFOwotCQkJCX0KLQkJCX0KLQkJcGFkYXB0ZXItPmlycU93bmVkID0gcHNob3N0LT5pcnE7CQkJCQkJCS8vIHNldCBJUlEgYXMgb3duZWQKLQkJfQotCi0JaWYgKCBwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXMgKQotCQljb25zaXN0ZW50ID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQgKHBjaWRldiwgU0VDVE9SU1hGRVIgKiBCWVRFU19QRVJfU0VDVE9SLCAmY29uc2lzdGVudERtYSk7Ci0JZWxzZQotCQljb25zaXN0ZW50ID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQgKHBjaWRldiwgQVRBUElfVFJBTlNGRVIsICZjb25zaXN0ZW50RG1hKTsKLQlpZiAoICFjb25zaXN0ZW50ICkKLQkJewotCQlwcmludGsgKCJVbmFibGUgdG8gYWxsb2NhdGUgRE1BIGJ1ZmZlciBmb3IgUENJLTIyMjBJIGNvbnRyb2xsZXIuXG4iKTsKLQkJZnJlZV9pcnEgKHBzaG9zdC0+aXJxLCBwYWRhcHRlcik7Ci0JCXJldHVybiBUUlVFOwotCQl9Ci0JcGFkYXB0ZXItPmtCdWZmZXIgPSBjb25zaXN0ZW50OwotCXBhZGFwdGVyLT5rQnVmZmVyRG1hID0gY29uc2lzdGVudERtYTsKLQotCVBzaUhvc3RbSW5zdGFsbGVkXQk9IHBzaG9zdDsJCQkJCQkJCQkvLyBzYXZlIFNDU0lfSE9TVCBwb2ludGVyCi0JcHNob3N0LT5pb19wb3J0CQk9IHBhZGFwdGVyLT5iYXNlUG9ydDsKLQlwc2hvc3QtPm5faW9fcG9ydAk9IDB4RkY7Ci0JcHNob3N0LT51bmlxdWVfaWQJPSBwYWRhcHRlci0+cmVnQmFzZTsKLQotCW91dGJfcCAoMHgwMSwgcGFkYXB0ZXItPnJlZ1JhbmdlKTsJCQkJCQkJCS8vIGZpeCBvdXIgcmFuZ2UgcmVnaXN0ZXIgYmVjYXVzZSBvdGhlciBkcml2ZXJzIHdhbnQgdG8gdHJvbXAgb24gaXQKLQotCXBhZGFwdGVyLT50aW1pbmdNb2RlID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTY3JhdGNoUGFkICsgREFMRV9USU1JTkdfTU9ERSk7Ci0JaWYgKCBwYWRhcHRlci0+dGltaW5nTW9kZSA+PSAyICkKLQkJewotCQlpZiAoIGJpZ2QgKQotCQkJcGFkYXB0ZXItPnRpbWluZ0FkZHJlc3MJPSBNb2RlQXJyYXkyW3BhZGFwdGVyLT50aW1pbmdNb2RlIC0gMl07Ci0JCWVsc2UKLQkJCXBhZGFwdGVyLT50aW1pbmdBZGRyZXNzCT0gTW9kZUFycmF5W3BhZGFwdGVyLT50aW1pbmdNb2RlIC0gMl07Ci0JCX0KLQllbHNlCi0JCXBhZGFwdGVyLT50aW1pbmdQSU8gPSBUUlVFOwotCi0JUmVhZEZsYXNoIChwYWRhcHRlciwgJkRhbGVTZXR1cCwgREFMRV9GTEFTSF9TRVRVUCwgc2l6ZW9mIChTRVRVUCkpOwotCVJlYWRGbGFzaCAocGFkYXB0ZXIsICZEaXNrTWlycm9yLCBEQUxFX0ZMQVNIX1JBSUQsIHNpemVvZiAoRGlza01pcnJvcikpOwotCi0JcmV0dXJuIEZBTFNFOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOgkJCVNldHVwRmluaXNoCi0gKgotICoJRGVzY3JpcHRpb246CUNvbXBsZXRlIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBmb3IgYSBjYXJkCi0gKgotICoJUGFyYW1ldGVyczoJCXBhZGFwdGVyICAtIFBvaW50ZXIgdG8gU0NTSSBob3N0IGRhdGEgc3RydWN0dXJlLgotICoJCQkJCXN0cgkJICAtIFBvaW50ZXIgdG8gYm9hcmQgdHlwZSBzdHJpbmcuCi0gKgotICoJUmV0dXJuczoJCU5vdGhpbmcuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1WT0lEIFNldHVwRmluaXNoIChQQURBUFRFUjIyMjBJIHBhZGFwdGVyLCBjaGFyICpzdHIsIGludCBpcnEpCi0JewotCWluaXRfdGltZXIgKCZwYWRhcHRlci0+dGltZXIpOwotCXBhZGFwdGVyLT50aW1lci5mdW5jdGlvbiA9IFRpbWVyRXhwaXJ5OwotCXBhZGFwdGVyLT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpcGFkYXB0ZXI7Ci0JaW5pdF90aW1lciAoJnBhZGFwdGVyLT5yZWNvblRpbWVyKTsKLQlwYWRhcHRlci0+cmVjb25UaW1lci5mdW5jdGlvbiA9IFJlY29uVGltZXJFeHBpcnk7Ci0JcGFkYXB0ZXItPnJlY29uVGltZXIuZGF0YSA9ICh1bnNpZ25lZCBsb25nKXBhZGFwdGVyOwotCXByaW50aygiXG5QQ0ktJXNJIEVJREUgQ09OVFJPTExFUjogYXQgSS9PID0gJWxYLyVsWCAgSVJRID0gJWRcbiIsIHN0ciwgcGFkYXB0ZXItPmJhc2VQb3J0LCBwYWRhcHRlci0+cmVnQmFzZSwgaXJxKTsKLQlwcmludGsoIlZlcnNpb24gJXMsIENvbXBpbGVkICVzICVzXG5cbiIsIFBDSTIyMjBJX1ZFUlNJT04sIF9fREFURV9fLCBfX1RJTUVfXyk7Ci0JfQkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglQY2kyMjIwaV9EZXRlY3QKLSAqCi0gKglEZXNjcmlwdGlvbjoJRGV0ZWN0IGFuZCBpbml0aWFsaXplIG91ciBib2FyZHMuCi0gKgotICoJUGFyYW1ldGVyczoJCXRwbnQgLSBQb2ludGVyIHRvIFNDU0kgaG9zdCB0ZW1wbGF0ZSBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCU51bWJlciBvZiBhZGFwdGVycyBpbnN0YWxsZWQuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1pbnQgUGNpMjIyMGlfRGV0ZWN0IChTY3NpX0hvc3RfVGVtcGxhdGUgKnRwbnQpCi0JewotCXN0cnVjdCBTY3NpX0hvc3QgICAqcHNob3N0OwotCVBBREFQVEVSMjIyMEkJICAgIHBhZGFwdGVyOwotCVBPVVJfREVWSUNFCQkJcGRldjsKLQlpbnQJCQkJCXVuaXQ7Ci0JaW50CQkJCQl6OwotCVVTSE9SVAkJCQlyYWlkb247Ci0JVUNIQVIJCQkJc3BpZ290MSwgc3BpZ290MjsKLQlVQ0hBUgkJCQlkZXZpY2U7Ci0Jc3RydWN0IHBjaV9kZXYJICAgKnBjaWRldiA9IE5VTEw7Ci0KLQl3aGlsZSAoIChwY2lkZXYgPSBwY2lfZmluZF9kZXZpY2UgKFZFTkRPUl9QU0ksIERFVklDRV9EQUxFXzEsIHBjaWRldikpICE9IE5VTEwgKQotCQl7Ci0JCWlmIChwY2lfZW5hYmxlX2RldmljZShwY2lkZXYpKQotCQkJY29udGludWU7Ci0JCXBzaG9zdCA9IHNjc2lfcmVnaXN0ZXIgKHRwbnQsIHNpemVvZihBREFQVEVSMjIyMEkpKTsKLQkJaWYocHNob3N0PT1OVUxMKQotCQkJY29udGludWU7Ci0JCQkKLQkJcGFkYXB0ZXIgPSBIT1NUREFUQShwc2hvc3QpOwotCi0JCWlmICggR2V0UmVncyAocHNob3N0LCBGQUxTRSwgcGNpZGV2KSApCi0JCQlnb3RvIHVucmVnaXN0ZXI7Ci0KLQkJc2NzaV9zZXRfZGV2aWNlKHBzaG9zdCwgJnBjaWRldi0+ZGV2KTsKLQkJcHNob3N0LT5tYXhfaWQgPSBwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXM7Ci0JCWZvciAoIHogPSAwOyAgeiA8IHBhZGFwdGVyLT5udW1iZXJPZkRyaXZlczsgIHorKyApCi0JCQl7Ci0JCQl1bml0ID0gaW5iX3AgKHBhZGFwdGVyLT5yZWdTY3JhdGNoUGFkICsgREFMRV9DSEFOTkVMX0RFVklDRV8wICsgeikgJiAweDBGOwotCQkJcGRldiA9ICZwYWRhcHRlci0+ZGV2aWNlW3pdOwotCQkJcGRldi0+Ynl0ZTYJCT0gKFVDSEFSKSgoKHVuaXQgJiAxKSA8PCA0KSB8IDB4RTApOwotCQkJcGRldi0+c3BpZ290CT0gKFVDSEFSKSgxIDw8ICh1bml0ID4+IDEpKTsKLQkJCXBkZXYtPnNlY3RvcnMJPSBEYWxlU2V0dXAuc2V0dXBEZXZpY2VbdW5pdF0uc2VjdG9yczsKLQkJCXBkZXYtPmhlYWRzCQk9IERhbGVTZXR1cC5zZXR1cERldmljZVt1bml0XS5oZWFkczsKLQkJCXBkZXYtPmN5bGluZGVycyA9IERhbGVTZXR1cC5zZXR1cERldmljZVt1bml0XS5jeWxpbmRlcnM7Ci0JCQlwZGV2LT5ibG9ja3MJPSBEYWxlU2V0dXAuc2V0dXBEZXZpY2VbdW5pdF0uYmxvY2tzOwotCi0JCQlpZiAoICF6ICkKLQkJCQl7Ci0JCQkJRGlza01pcnJvclswXS5zdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1NjcmF0Y2hQYWQgKyBEQUxFX1JBSURfMF9TVEFUVVMpOwkJCi0JCQkJRGlza01pcnJvclsxXS5zdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1NjcmF0Y2hQYWQgKyBEQUxFX1JBSURfMV9TVEFUVVMpOwkJCi0JCQkJaWYgKCAoRGlza01pcnJvclswXS5zaWduYXR1cmUgPT0gU0lHTkFUVVJFKSAmJiAoRGlza01pcnJvclsxXS5zaWduYXR1cmUgPT0gU0lHTkFUVVJFKSAmJgotCQkJCSAgICAgKERpc2tNaXJyb3JbMF0ucGFpcklkZW50aWZpZXIgPT0gKERpc2tNaXJyb3JbMV0ucGFpcklkZW50aWZpZXIgXiAxKSkgKQotCQkJCQl7CQkJIAotCQkJCQlyYWlkb24gPSBUUlVFOwotCQkJCQlpZiAoIHVuaXQgPiAodW5pdCBeIDIpICkKLQkJCQkJCXVuaXQgPSB1bml0IF4gMjsKLQkJCQkJfQkKLQkJCQllbHNlCi0JCQkJCXJhaWRvbiA9IEZBTFNFOwotCi0JCQkJbWVtY3B5IChwZGV2LT5EaXNrTWlycm9yLCBEaXNrTWlycm9yLCBzaXplb2YgKERpc2tNaXJyb3IpKTsKLQkJCQlwYWRhcHRlci0+cmFpZERhdGFbMF0gPSAmcGRldi0+RGlza01pcnJvclswXTsKLQkJCQlwYWRhcHRlci0+cmFpZERhdGFbMl0gPSAmcGRldi0+RGlza01pcnJvclsxXTsKLQkJCQkKLQkJCQlzcGlnb3QxID0gc3BpZ290MiA9IEZBTFNFOwotCQkJCXBkZXYtPnNwaWdvdHNbMF0gPSAxOwotCQkJCXBkZXYtPnNwaWdvdHNbMV0gPSAyOwotCQkJCXBkZXYtPmxhc3RzZWN0b3JsYmFbMF0gPSBJbmxpbmVJZGVudGlmeSAocGFkYXB0ZXIsIDEsIDApOwotCQkJCXBkZXYtPmxhc3RzZWN0b3JsYmFbMV0gPSBJbmxpbmVJZGVudGlmeSAocGFkYXB0ZXIsIDIsIDApOwotCQkJCQkJCi0JCQkJaWYgKCAhKHBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9TVVJWSVZPUikgJiYgcGRldi0+bGFzdHNlY3RvcmxiYVswXSApCi0JCQkJCXNwaWdvdDEgPSBUUlVFOwotCQkJCWlmICggIShwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpICYmIHBkZXYtPmxhc3RzZWN0b3JsYmFbMV0gKQotCQkJCQlzcGlnb3QyID0gVFJVRTsKLQkJCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgRGlza01pcnJvclsxXS5zdGF0dXMgJiBVQ0JGX1NVUlZJVk9SICkKLQkJCQkJc3BpZ290MSA9IFRSVUU7Ci0KLQkJCQlpZiAoIHNwaWdvdDEgJiYgKHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9SRUJVSUxEKSApCi0JCQkJCUlubGluZVJlYWRTaWduYXR1cmUgKHBhZGFwdGVyLCBwZGV2LCAwKTsKLQkJCQlpZiAoIHNwaWdvdDIgJiYgKHBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9SRUJVSUxEKSApCi0JCQkJCUlubGluZVJlYWRTaWduYXR1cmUgKHBhZGFwdGVyLCBwZGV2LCAxKTsKLQotCQkJCWlmICggc3BpZ290MSAmJiBzcGlnb3QyICYmIHJhaWRvbiApCi0JCQkJCXsKLQkJCQkJcGRldi0+cmFpZCA9IDE7Ci0JCQkJCWlmICggcGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQgKQotCQkJCQkJcGRldi0+c3BpZ290ID0gMjsKLQkJCQkJZWxzZQotCQkJCQkJcGRldi0+c3BpZ290ID0gMTsKLQkJCQkJaWYgKCAocGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQpIHx8IChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfUkVCVUlMRCkgKQotCQkJCQkJcGFkYXB0ZXItPnJlY29uT24gPSBwZGV2LT5yZWNvbk9uID0gcGRldi0+cmVjb25Jc1N0YXJ0aW5nID0gVFJVRTsKLQkJCQkJfQotCQkJCWVsc2UKLQkJCQkJewotCQkJCQlpZiAoIHNwaWdvdDEgKQotCQkJCQkJewotCQkJCQkJaWYgKCBwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfUkVCVUlMRCApCi0JCQkJCQkJZ290byB1bnJlZ2lzdGVyOwotCQkJCQkJcGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgPSBVQ0JGX01JUlJPUkVEIHwgVUNCRl9TVVJWSVZPUjsKLQkJCQkJCXBkZXYtPnNwaWdvdCA9IDE7Ci0JCQkJCQl9Ci0JCQkJCWVsc2UKLQkJCQkJCXsKLQkJCQkJCWlmICggcGRldi0+RGlza01pcnJvclsxXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQgKQotCQkJCQkJCWdvdG8gdW5yZWdpc3RlcjsKLQkJCQkJCXBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfU1VSVklWT1I7Ci0JCQkJCQlwZGV2LT5zcGlnb3QgPSAyOwotCQkJCQkJfQotCQkJCQlpZiAoIERhbGVTZXR1cC5yZWJvb3RSZWJ1aWxkICYmIHJhaWRvbiApCi0JCQkJCQlwYWRhcHRlci0+cmVjb25PbiA9IHBkZXYtPnJlY29uT24gPSBwZGV2LT5yZWNvbklzU3RhcnRpbmcgPSBUUlVFOwotCQkJCQl9Ci0JCQkKLQkJCQlpZiAoIHJhaWRvbiApCi0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQotCQlTZXR1cEZpbmlzaCAocGFkYXB0ZXIsICIyMjIwIiwgcHNob3N0LT5pcnEpOwotCQotCQlpZiAoICsrSW5zdGFsbGVkIDwgTUFYQURBUFRFUiApCi0JCQljb250aW51ZTsKLQkJYnJlYWs7Ci11bnJlZ2lzdGVyOjsKLQkJc2NzaV91bnJlZ2lzdGVyIChwc2hvc3QpOwotCQl9Ci0KLQl3aGlsZSAoIChwY2lkZXYgPSBwY2lfZmluZF9kZXZpY2UgKFZFTkRPUl9QU0ksIERFVklDRV9CSUdEXzEsIHBjaWRldikpICE9IE5VTEwgKQotCQl7Ci0JCXBzaG9zdCA9IHNjc2lfcmVnaXN0ZXIgKHRwbnQsIHNpemVvZihBREFQVEVSMjIyMEkpKTsKLQkJcGFkYXB0ZXIgPSBIT1NUREFUQShwc2hvc3QpOwotCi0JCWlmICggR2V0UmVncyAocHNob3N0LCBUUlVFLCBwY2lkZXYpICkKLQkJCWdvdG8gdW5yZWdpc3RlcjE7Ci0KLQkJZm9yICggeiA9IDA7ICB6IDwgQklHRF9NQVhEUklWRVM7ICB6KysgKQotCQkJRGlza01pcnJvclt6XS5zdGF0dXMgPSBpbmJfcCAocGFkYXB0ZXItPnJlZ1NjcmF0Y2hQYWQgKyBCSUdEX1JBSURfMF9TVEFUVVMgKyB6KTsJCQotCi0JCXNjc2lfc2V0X3BjaV9kZXZpY2UocHNob3N0LCBwY2lkZXYpOwotCQlwc2hvc3QtPm1heF9pZCA9IHBhZGFwdGVyLT5udW1iZXJPZkRyaXZlczsKLQkJcGFkYXB0ZXItPmZhaWxSZWdpc3RlciA9IGluYl9wIChwYWRhcHRlci0+cmVnU2NyYXRjaFBhZCArIEJJR0RfQUxBUk1fSU1BR0UpOwotCQlmb3IgKCB6ID0gMDsgIHogPCBwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXM7ICB6KysgKQotCQkJewotCQkJdW5pdCA9IGluYl9wIChwYWRhcHRlci0+cmVnU2NyYXRjaFBhZCArIEJJR0RfREVWSUNFXzAgKyB6KTsKLQkJCXBkZXYgPSAmcGFkYXB0ZXItPmRldmljZVt6XTsKLQkJCXBkZXYtPmJ5dGU2CQk9IChVQ0hBUikoKCh1bml0ICYgMSkgPDwgNCkgfCAweEUwKTsKLQkJCXBkZXYtPnNwaWdvdAk9IChVQ0hBUikoMSA8PCAodW5pdCA+PiAxKSk7Ci0JCQlwZGV2LT5zZWN0b3JzCT0gRGFsZVNldHVwLnNldHVwRGV2aWNlW3VuaXRdLnNlY3RvcnM7Ci0JCQlwZGV2LT5oZWFkcwkJPSBEYWxlU2V0dXAuc2V0dXBEZXZpY2VbdW5pdF0uaGVhZHM7Ci0JCQlwZGV2LT5jeWxpbmRlcnMgPSBEYWxlU2V0dXAuc2V0dXBEZXZpY2VbdW5pdF0uY3lsaW5kZXJzOwotCQkJcGRldi0+YmxvY2tzCT0gRGFsZVNldHVwLnNldHVwRGV2aWNlW3VuaXRdLmJsb2NrczsKLQkJCQotCQkJaWYgKCAoRGlza01pcnJvclt1bml0XS5zaWduYXR1cmUgPT0gU0lHTkFUVVJFKSAmJiAoRGlza01pcnJvclt1bml0IF4gMl0uc2lnbmF0dXJlID09IFNJR05BVFVSRSkgJiYKLQkJCSAgICAgKERpc2tNaXJyb3JbdW5pdF0ucGFpcklkZW50aWZpZXIgPT0gKERpc2tNaXJyb3JbdW5pdCBeIDJdLnBhaXJJZGVudGlmaWVyIF4gMSkpICkKLQkJCQl7CQkJIAotCQkJCXJhaWRvbiA9IFRSVUU7Ci0JCQkJaWYgKCB1bml0ID4gKHVuaXQgXiAyKSApCi0JCQkJCXVuaXQgPSB1bml0IF4gMjsKLQkJCQl9CQotCQkJZWxzZQotCQkJCXJhaWRvbiA9IEZBTFNFOwotCQkJCQotCQkJc3BpZ290MSA9IHNwaWdvdDIgPSBGQUxTRTsKLQkJCW1lbWNweSAoJnBkZXYtPkRpc2tNaXJyb3JbMF0sICZEaXNrTWlycm9yW3VuaXRdLCBzaXplb2YgKERJU0tfTUlSUk9SKSk7Ci0JCQltZW1jcHkgKCZwZGV2LT5EaXNrTWlycm9yWzFdLCAmRGlza01pcnJvclt1bml0IF4gMl0sIHNpemVvZiAoRElTS19NSVJST1IpKTsKLQkJCXBhZGFwdGVyLT5yYWlkRGF0YVt1bml0XQkgPSAmcGRldi0+RGlza01pcnJvclswXTsKLQkJCXBhZGFwdGVyLT5yYWlkRGF0YVt1bml0IF4gMl0gPSAmcGRldi0+RGlza01pcnJvclsxXTsKLQkJCXBkZXYtPnNwaWdvdHNbMF0gPSAxIDw8ICh1bml0ID4+IDEpOwotCQkJcGRldi0+c3BpZ290c1sxXSA9IDEgPDwgKCh1bml0IF4gMikgPj4gMSk7Ci0JCQlwZGV2LT5kZXZpY2VJRFswXSA9IHVuaXQ7Ci0JCQlwZGV2LT5kZXZpY2VJRFsxXSA9IHVuaXQgXiAyOwotCQkJcGRldi0+bGFzdHNlY3RvcmxiYVswXSA9IElubGluZUlkZW50aWZ5IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1swXSwgdW5pdCAmIDEpOwotCQkJcGRldi0+bGFzdHNlY3RvcmxiYVsxXSA9IElubGluZUlkZW50aWZ5IChwYWRhcHRlciwgcGRldi0+c3BpZ290c1sxXSwgdW5pdCAmIDEpOwotCi0JCQlpZiAoICEocGRldi0+RGlza01pcnJvclsxXS5zdGF0dXMgJiBVQ0JGX1NVUlZJVk9SKSAmJiBwZGV2LT5sYXN0c2VjdG9ybGJhWzBdICkKLQkJCQlzcGlnb3QxID0gVFJVRTsKLQkJCWlmICggIShwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIFVDQkZfU1VSVklWT1IpICYmIHBkZXYtPmxhc3RzZWN0b3JsYmFbMV0gKQotCQkJCXNwaWdvdDIgPSBUUlVFOwotCQkJaWYgKCBwZGV2LT5EaXNrTWlycm9yWzBdLnN0YXR1cyAmIHBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9TVVJWSVZPUiApCi0JCQkJc3BpZ290MSA9IFRSVUU7Ci0KLQkJCWlmICggc3BpZ290MSAmJiAocGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQpICkKLQkJCQlJbmxpbmVSZWFkU2lnbmF0dXJlIChwYWRhcHRlciwgcGRldiwgMCk7Ci0JCQlpZiAoIHNwaWdvdDIgJiYgKHBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzICYgVUNCRl9SRUJVSUxEKSApCi0JCQkJSW5saW5lUmVhZFNpZ25hdHVyZSAocGFkYXB0ZXIsIHBkZXYsIDEpOwotCi0JCQlpZiAoIHNwaWdvdDEgJiYgc3BpZ290MiAmJiByYWlkb24gKQotCQkJCXsKLQkJCQlwZGV2LT5yYWlkID0gMTsKLQkJCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9SRUJVSUxEICkKLQkJCQkJcGRldi0+c3BpZ290ID0gcGRldi0+c3BpZ290c1sxXTsKLQkJCQllbHNlCi0JCQkJCXBkZXYtPnNwaWdvdCA9IHBkZXYtPnNwaWdvdHNbMF07Ci0JCQkJaWYgKCAocGRldi0+RGlza01pcnJvclswXS5zdGF0dXMgJiBVQ0JGX1JFQlVJTEQpIHx8IChwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfUkVCVUlMRCkgKQotCQkJCQlwYWRhcHRlci0+cmVjb25PbiA9IHBkZXYtPnJlY29uT24gPSBwZGV2LT5yZWNvbklzU3RhcnRpbmcgPSBUUlVFOwotCQkJCX0KLQkJCWVsc2UKLQkJCQl7Ci0JCQkJaWYgKCBzcGlnb3QxICkKLQkJCQkJewotCQkJCQlpZiAoIHBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzICYgVUNCRl9SRUJVSUxEICkKLQkJCQkJCWdvdG8gdW5yZWdpc3RlcjE7Ci0JCQkJCXBkZXYtPkRpc2tNaXJyb3JbMF0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfU1VSVklWT1I7Ci0JCQkJCXBkZXYtPnNwaWdvdCA9IHBkZXYtPnNwaWdvdHNbMF07Ci0JCQkJCX0KLQkJCQllbHNlCi0JCQkJCXsKLQkJCQkJaWYgKCBwZGV2LT5EaXNrTWlycm9yWzFdLnN0YXR1cyAmIFVDQkZfUkVCVUlMRCApCi0JCQkJCQlnb3RvIHVucmVnaXN0ZXI7Ci0JCQkJCXBkZXYtPkRpc2tNaXJyb3JbMV0uc3RhdHVzID0gVUNCRl9NSVJST1JFRCB8IFVDQkZfU1VSVklWT1I7Ci0JCQkJCXBkZXYtPnNwaWdvdCA9IHBkZXYtPnNwaWdvdHNbMV07Ci0JCQkJCX0KLQkJCQlpZiAoIERhbGVTZXR1cC5yZWJvb3RSZWJ1aWxkICYmIHJhaWRvbiApCi0JCQkJCXBhZGFwdGVyLT5yZWNvbk9uID0gcGRldi0+cmVjb25PbiA9IHBkZXYtPnJlY29uSXNTdGFydGluZyA9IFRSVUU7Ci0JCQkJfQotCQkJfQotCQkKLQkJaWYgKCAhcGFkYXB0ZXItPm51bWJlck9mRHJpdmVzICkJCQkJCQkJCQkvLyBJZiBubyBBVEEgZGV2aWNlcyB0aGVuIHNjYW4gQVRBUEkKLQkJCXsKLQkJCXVuaXQgPSAwOwotCQkJZm9yICggc3BpZ290MSA9IDA7ICBzcGlnb3QxIDwgNDsgIHNwaWdvdDErKyApCi0JCQkJewotCQkJCWZvciAoIGRldmljZSA9IDA7ICBkZXZpY2UgPCAyOyAgZGV2aWNlKysgKQotCQkJCQl7Ci0JCQkJCURFQiAocHJpbnRrICgiXG5QQ0kyMjQySTogc2Nhbm5pbmcgZm9yIElEICVkICIsIChzcGlnb3QxICogMikgKyBkZXZpY2UpKTsKLQkJCQkJcGRldiA9ICYocGFkYXB0ZXItPmRldmljZVsoc3BpZ290MSAqIDIpICsgZGV2aWNlXSk7Ci0JCQkJCXBkZXYtPmJ5dGU2ID0gMHgwQSB8IChkZXZpY2UgPDwgNCk7Ci0JCQkJCXBkZXYtPnNwaWdvdCA9IDEgPDwgc3BpZ290MTsKLQkJCQkJaWYgKCAhQXRhcGlSZXNldCAocGFkYXB0ZXIsIHBkZXYpICkKLQkJCQkJCXsKLQkJCQkJCURFQiAocHJpbnRrICgiIERldmljZSBmb3VuZCAiKSk7Ci0JCQkJCQlpZiAoICFBdGFwaUlkZW50aWZ5IChwYWRhcHRlciwgcGRldikgKQotCQkJCQkJCXsKLQkJCQkJCQlERUIgKHByaW50ayAoIiBEZXZpY2UgdmVyaWZpZWQiKSk7Ci0JCQkJCQkJdW5pdCsrOwotCQkJCQkJCWNvbnRpbnVlOwotCQkJCQkJCX0KLQkJCQkJCX0KLQkJCQkJcGRldi0+c3BpZ290ID0gcGRldi0+Ynl0ZTYgPSAwOwotCQkJCQl9Ci0JCQkJfQotCi0JCQlpZiAoIHVuaXQgKQotCQkJCXsKLQkJCQlwYWRhcHRlci0+YXRhcGkgPSBUUlVFOwotCQkJCXBhZGFwdGVyLT50aW1pbmdBZGRyZXNzID0gREFMRV9EQVRBX01PREUzOwotCQkJCW91dHdfcCAoMHgwOTAwLCBwYWRhcHRlci0+cmVnSXJxQ29udHJvbCk7CQkJCQkvLyBUdXJuIG91ciBpbnRlcnJ1cHRzIG9uCi0JCQkJb3V0d19wICgweDBDNDEsIHBhZGFwdGVyLT5yZWdEbWFNb2RlIC0gMSk7CQkJCQkvLyBzZXR1cCBmb3IgMTYgYml0cywgcmVhZHkgZW5hYmxlZCwgZG9uZSBJUlEgZW5hYmxlZCwgbm8gaW5jcmltZW50Ci0JCQkJb3V0Yl9wICgweEZGLCBwYWRhcHRlci0+cmVnRmFpbCk7CQkJCQkJCS8vIGFsbCBmYWlsIGxpZ2h0cyBhbmQgYWxhcm0gb2ZmCi0JCQkJcHNob3N0LT5tYXhfaWQgPSA4OwotCQkJCX0KLQkJCX0KLQkJU2V0dXBGaW5pc2ggKHBhZGFwdGVyLCAiMjI0MCIsIHBzaG9zdC0+aXJxKTsKLQkJCi0JCWlmICggKytJbnN0YWxsZWQgPCBNQVhBREFQVEVSICkKLQkJCWNvbnRpbnVlOwotCQlicmVhazsKLXVucmVnaXN0ZXIxOjsKLQkJc2NzaV91bnJlZ2lzdGVyIChwc2hvc3QpOwotCQl9Ci0KLQlOdW1BZGFwdGVycyA9IEluc3RhbGxlZDsKLQlyZXR1cm4gSW5zdGFsbGVkOwotCX0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKglOYW1lOglQY2kyMjIwaV9BYm9ydAotICoKLSAqCURlc2NyaXB0aW9uOglQcm9jZXNzIHRoZSBBYm9ydCBjb21tYW5kIGZyb20gdGhlIFNDU0kgbWFuYWdlci4KLSAqCi0gKglQYXJhbWV0ZXJzOgkJU0NwbnQgLSBQb2ludGVyIHRvIFNDU0kgY29tbWFuZCBzdHJ1Y3R1cmUuCi0gKgotICoJUmV0dXJuczoJCUFsbHdheXMgc25vb3plLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotaW50IFBjaTIyMjBpX0Fib3J0IChTY3NpX0NtbmQgKlNDcG50KQotCXsKLQlQQURBUFRFUjIyMjBJCXBhZGFwdGVyID0gSE9TVERBVEEoU0NwbnQtPmRldmljZS0+aG9zdCk7CQkJLy8gUG9pbnRlciB0byBhZGFwdGVyIGNvbnRyb2wgc3RydWN0dXJlCi0JUE9VUl9ERVZJQ0UJCXBkZXYJID0gJnBhZGFwdGVyLT5kZXZpY2VbU0NwbnQtPmRldmljZS0+aWRdOy8vIFBvaW50ZXIgdG8gZGV2aWNlIGluZm9ybWF0aW9uCi0KLQlpZiAoICFwYWRhcHRlci0+U0NwbnQgKQotCQlyZXR1cm4gU0NTSV9BQk9SVF9OT1RfUlVOTklORzsKLQkKLQlpZiAoIHBhZGFwdGVyLT5hdGFwaSApCi0JCXsKLQkJaWYgKCBBdGFwaVJlc2V0IChwYWRhcHRlciwgcGRldikgKQotCQkJcmV0dXJuIFNDU0lfQUJPUlRfRVJST1I7Ci0JCU9wRG9uZSAocGFkYXB0ZXIsIERJRF9BQk9SVCA8PCAxNik7Ci0JCXJldHVybiBTQ1NJX0FCT1JUX1NVQ0NFU1M7Ci0JCX0KLQlyZXR1cm4gU0NTSV9BQk9SVF9TTk9PWkU7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVBjaTIyMjBpX1Jlc2V0Ci0gKgotICoJRGVzY3JpcHRpb246CVByb2Nlc3MgdGhlIFJlc2V0IGNvbW1hbmQgZnJvbSB0aGUgU0NTSSBtYW5hZ2VyLgotICoKLSAqCVBhcmFtZXRlcnM6CQlTQ3BudCAtIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KLSAqCQkJCQlmbGFncyAtIEZsYWdzIGFib3V0IHRoZSByZXNldCBjb21tYW5kCi0gKgotICoJUmV0dXJuczoJCU5vIGFjdGl2ZSBjb21tYW5kIGF0IHRoaXMgdGltZSwgc28gdGhpcyBtZWFucwotICoJCQkJCXRoYXQgZWFjaCB0aW1lIHdlIGdvdCBzb21lIGtpbmQgb2YgcmVzcG9uc2UgdGhlCi0gKgkJCQkJbGFzdCB0aW1lIHRocm91Z2guICBUZWxsIHRoZSBtaWQtbGV2ZWwgY29kZSB0bwotICoJCQkJCXJlcXVlc3Qgc2Vuc2UgaW5mb3JtYXRpb24gaW4gb3JkZXIgdG8gZGVjaWRlIHdoYXQKLSAqCQkJCQl0byBkbyBuZXh0LgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotaW50IFBjaTIyMjBpX1Jlc2V0IChTY3NpX0NtbmQgKlNDcG50LCB1bnNpZ25lZCBpbnQgcmVzZXRfZmxhZ3MpCi0JewotCVBBREFQVEVSMjIyMEkJcGFkYXB0ZXIgPSBIT1NUREFUQShTQ3BudC0+ZGV2aWNlLT5ob3N0KTsJCQkvLyBQb2ludGVyIHRvIGFkYXB0ZXIgY29udHJvbCBzdHJ1Y3R1cmUKLQlQT1VSX0RFVklDRQkJcGRldgkgPSAmcGFkYXB0ZXItPmRldmljZVtTQ3BudC0+ZGV2aWNlLT5pZF07Ly8gUG9pbnRlciB0byBkZXZpY2UgaW5mb3JtYXRpb24KLQotCWlmICggcGFkYXB0ZXItPmF0YXBpICkKLQkJewotCQlpZiAoIEF0YXBpUmVzZXQgKHBhZGFwdGVyLCBwZGV2KSApCi0JCQlyZXR1cm4gU0NTSV9SRVNFVF9FUlJPUjsKLQkJcmV0dXJuIFNDU0lfUkVTRVRfU1VDQ0VTUzsKLQkJfQotCXJldHVybiBTQ1NJX1JFU0VUX1BVTlQ7Ci0JfQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCU5hbWU6CVBjaTIyMjBpX1JlbGVhc2UKLSAqCi0gKglEZXNjcmlwdGlvbjoJUmVsZWFzZSByZXNvdXJjZXMgYWxsb2NhdGVkIGZvciBhIHNpbmdsZSBlYWNoIGFkYXB0ZXIuCi0gKgotICoJUGFyYW1ldGVyczoJCXBzaG9zdCAtIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KLSAqCi0gKglSZXR1cm5zOgkJemVyby4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLWludCBQY2kyMjIwaV9SZWxlYXNlIChzdHJ1Y3QgU2NzaV9Ib3N0ICpwc2hvc3QpCi0JewotICAgIFBBREFQVEVSMjIyMEkJcGFkYXB0ZXIgPSBIT1NUREFUQSAocHNob3N0KTsKLQlVU0hPUlQJCQl6OwotCi0JaWYgKCBwYWRhcHRlci0+cmVjb25PbiApCi0JCXsKLQkJcGFkYXB0ZXItPnJlY29uT24gPSBGQUxTRTsJCQkJCQkvLyBzaHV0IGRvd24gdGhlIGhvdCByZWNvbnN0cnVjdAotCQlpZiAoIHBhZGFwdGVyLT5yZWNvblBoYXNlICkKLQkJCW1kZWxheSAoMzAwKTsKLQkJaWYgKCBwYWRhcHRlci0+cmVjb25UaW1lci5kYXRhICkJCQkJLy8gaXMgdGhlIHRpbWVyIHJ1bm5pbmc/Ci0JCQl7Ci0JCQlkZWxfdGltZXIgKCZwYWRhcHRlci0+cmVjb25UaW1lcik7Ci0JCQlwYWRhcHRlci0+cmVjb25UaW1lci5kYXRhID0gMDsKLQkJCX0KLQkJfQotCi0JLy8gc2F2ZSBSQUlEIHN0YXR1cyBvbiB0aGUgYm9hcmQKLQlpZiAoIHBhZGFwdGVyLT5iaWdEICkKLQkJewotCQlvdXRiX3AgKHBhZGFwdGVyLT5mYWlsUmVnaXN0ZXIsIHBhZGFwdGVyLT5yZWdTY3JhdGNoUGFkICsgQklHRF9BTEFSTV9JTUFHRSk7Ci0JCWZvciAoIHogPSAwOyAgeiA8IEJJR0RfTUFYRFJJVkVTOyAgeisrICkKLQkJCXsKLQkJCWlmICggcGFkYXB0ZXItPnJhaWREYXRhICkKLQkJCQlvdXRiX3AgKHBhZGFwdGVyLT5yYWlkRGF0YVt6XS0+c3RhdHVzLCBwYWRhcHRlci0+cmVnU2NyYXRjaFBhZCArIEJJR0RfUkFJRF8wX1NUQVRVUyArIHopOwkKLQkJCWVsc2UKLQkJCQlvdXRiX3AgKDAsIHBhZGFwdGVyLT5yZWdTY3JhdGNoUGFkICsgQklHRF9SQUlEXzBfU1RBVFVTKTsJCi0JCQl9Ci0JCX0KLQllbHNlCi0JCXsKLQkJb3V0Yl9wIChwYWRhcHRlci0+ZGV2aWNlWzBdLkRpc2tNaXJyb3JbMF0uc3RhdHVzLCBwYWRhcHRlci0+cmVnU2NyYXRjaFBhZCArIERBTEVfUkFJRF8wX1NUQVRVUyk7CQkKLQkJb3V0Yl9wIChwYWRhcHRlci0+ZGV2aWNlWzBdLkRpc2tNaXJyb3JbMV0uc3RhdHVzLCBwYWRhcHRlci0+cmVnU2NyYXRjaFBhZCArIERBTEVfUkFJRF8xX1NUQVRVUyk7CQkKLQkJfQotCi0JaWYgKCBwYWRhcHRlci0+aXJxT3duZWQgKQotCQlmcmVlX2lycSAocHNob3N0LT5pcnEsIHBhZGFwdGVyKTsKLSAgICByZWxlYXNlX3JlZ2lvbiAocHNob3N0LT5pb19wb3J0LCBwc2hvc3QtPm5faW9fcG9ydCk7Ci0JaWYgKCBwYWRhcHRlci0+bnVtYmVyT2ZEcml2ZXMgKQotCQlwY2lfZnJlZV9jb25zaXN0ZW50IChwYWRhcHRlci0+cGNpZGV2LCBTRUNUT1JTWEZFUiAqIEJZVEVTX1BFUl9TRUNUT1IsIHBhZGFwdGVyLT5rQnVmZmVyLCBwYWRhcHRlci0+a0J1ZmZlckRtYSk7Ci0JZWxzZQkKLQkJcGNpX2ZyZWVfY29uc2lzdGVudCAocGFkYXB0ZXItPnBjaWRldiwgQVRBUElfVFJBTlNGRVIsIHBhZGFwdGVyLT5rQnVmZmVyLCBwYWRhcHRlci0+a0J1ZmZlckRtYSk7Ci0gICAgc2NzaV91bnJlZ2lzdGVyKHBzaG9zdCk7Ci0gICAgcmV0dXJuIDA7Ci0JfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoJTmFtZToJUGNpMjIyMGlfQmlvc1BhcmFtCi0gKgotICoJRGVzY3JpcHRpb246CVByb2Nlc3MgdGhlIGJpb3NwYXJhbSByZXF1ZXN0IGZyb20gdGhlIFNDU0kgbWFuYWdlciB0bwotICoJCQkJCXJldHVybiBDL0gvUyBkYXRhLgotICoKLSAqCVBhcmFtZXRlcnM6CQlkaXNrIC0gUG9pbnRlciB0byBTQ1NJIGRpc2sgc3RydWN0dXJlLgotICoJCQkJCWRldgkgLSBNYWpvci9taW5vciBudW1iZXIgZnJvbSBrZXJuZWwuCi0gKgkJCQkJZ2VvbSAtIFBvaW50ZXIgdG8gaW50ZWdlciBhcnJheSB0byBwbGFjZSBnZW9tZXRyeSBkYXRhLgotICoKLSAqCVJldHVybnM6CQl6ZXJvLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotaW50IFBjaTIyMjBpX0Jpb3NQYXJhbSAoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2LCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpkZXYsCi0JCXNlY3Rvcl90IGNhcGFjaXR5LCBpbnQgZ2VvbVtdKQotCXsKLQlQT1VSX0RFVklDRQlwZGV2OwotCi0JaWYgKCAhKEhPU1REQVRBKHNkZXYtPmhvc3QpKS0+YXRhcGkgKQotCQl7Ci0JCXBkZXYgPSAmKEhPU1REQVRBKHNkZXYtPmhvc3QpLT5kZXZpY2Vbc2Rldi0+aWRdKTsKLQotCQlnZW9tWzBdID0gcGRldi0+aGVhZHM7Ci0JCWdlb21bMV0gPSBwZGV2LT5zZWN0b3JzOwotCQlnZW9tWzJdID0gcGRldi0+Y3lsaW5kZXJzOwotCQl9Ci0JcmV0dXJuIDA7Ci0JfQotCi1NT0RVTEVfTElDRU5TRSgiRHVhbCBCU0QvR1BMIik7Ci0KLXN0YXRpYyBTY3NpX0hvc3RfVGVtcGxhdGUgZHJpdmVyX3RlbXBsYXRlID0gewotCS5wcm9jX25hbWUJCT0gInBjaTIyMjBpIiwKLQkubmFtZQkJCT0gIlBDSS0yMjIwSS9QQ0ktMjI0MEkiLAotCS5kZXRlY3QJCQk9IFBjaTIyMjBpX0RldGVjdCwKLQkucmVsZWFzZQkJPSBQY2kyMjIwaV9SZWxlYXNlLAotCS5xdWV1ZWNvbW1hbmQJCT0gUGNpMjIyMGlfUXVldWVDb21tYW5kLAotCS5hYm9ydAkJCT0gUGNpMjIyMGlfQWJvcnQsCi0JLnJlc2V0CQkJPSBQY2kyMjIwaV9SZXNldCwKLQkuYmlvc19wYXJhbQkJPSBQY2kyMjIwaV9CaW9zUGFyYW0sCi0JLmNhbl9xdWV1ZQkJPSAxLAotCS50aGlzX2lkCQk9IC0xLAotCS5zZ190YWJsZXNpemUJCT0gU0dfQUxMLAotCS5jbWRfcGVyX2x1bgkJPSAxLAotCS51c2VfY2x1c3RlcmluZwkJPSBESVNBQkxFX0NMVVNURVJJTkcsCi19OwotI2luY2x1ZGUgInNjc2lfbW9kdWxlLmMiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcGNpMjIyMGkuaCBiL2RyaXZlcnMvc2NzaS9wY2kyMjIwaS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTI2MDU2Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvc2NzaS9wY2kyMjIwaS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFBlcmNlcHRpdmUgU29sdXRpb25zLCBJbmMuIFBDSS0yMjIwSSBkZXZpY2UgZHJpdmVyIGZvciBMaW51eC4KLSAqCi0gKiBwY2kyMjIwaS5oIC0gTGludXggSG9zdCBEcml2ZXIgZm9yIFBDSS0yMjIwaSBFSURFIEFkYXB0ZXJzCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTk3LTE5OTkgUGVyY2VwdGl2ZSBTb2x1dGlvbnMsIEluYy4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCByZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCi0gKiBjb2RlIHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBjb21tZW50IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbi4KLSAqCi0gKiBUZWNobmljYWwgdXBkYXRlcyBhbmQgcHJvZHVjdCBpbmZvcm1hdGlvbiBhdDoKLSAqICBodHRwOi8vd3d3LnBzaWRpc2suY29tCi0gKgotICogUGxlYXNlIHNlbmQgcXVlc3Rpb25zLCBjb21tZW50cywgYnVnIHJlcG9ydHMgdG86Ci0gKiAgdGVjaEBwc2lkaXNrLmNvbSBUZWNobmljYWwgU3VwcG9ydAotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmbmRlZiBfUENJMjIyMElfSAotI2RlZmluZSBfUENJMjIyMElfSAotCi0jaWZuZGVmIExJTlVYX1ZFUlNJT05fQ09ERQotI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KLSNlbmRpZiAKLSNkZWZpbmUJTElOVVhWRVJTSU9OKHYscCxzKSAgICAoKCh2KTw8MTYpICsgKChwKTw8OCkgKyAocykpCi0KLS8vIGZ1bmN0aW9uIHByb3RvdHlwZXMKLWludCBQY2kyMjIwaV9EZXRlY3QJCQkoU2NzaV9Ib3N0X1RlbXBsYXRlICp0cG50KTsKLWludCBQY2kyMjIwaV9Db21tYW5kCQkoU2NzaV9DbW5kICpTQ3BudCk7Ci1pbnQgUGNpMjIyMGlfUXVldWVDb21tYW5kCShTY3NpX0NtbmQgKlNDcG50LCB2b2lkICgqZG9uZSkoU2NzaV9DbW5kICopKTsKLWludCBQY2kyMjIwaV9BYm9ydAkJCShTY3NpX0NtbmQgKlNDcG50KTsKLWludCBQY2kyMjIwaV9SZXNldAkJCShTY3NpX0NtbmQgKlNDcG50LCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwotaW50IFBjaTIyMjBpX1JlbGVhc2UJCShzdHJ1Y3QgU2NzaV9Ib3N0ICpwc2hvc3QpOwotaW50IFBjaTIyMjBpX0Jpb3NQYXJhbQkJKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwKLQkJCQkJc3RydWN0IGJsb2NrX2RldmljZSAqZGV2LAotCQkJCQlzZWN0b3JfdCBjYXBhY2l0eSwgaW50IGdlb21bXSk7Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wY21jaWEvbnNwX2NzLmMgYi9kcml2ZXJzL3Njc2kvcGNtY2lhL25zcF9jcy5jCmluZGV4IDQ5NmM0MTIuLjNkZGRiMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9wY21jaWEvbnNwX2NzLmMKKysrIGIvZHJpdmVycy9zY3NpL3BjbWNpYS9uc3BfY3MuYwpAQCAtOTIsOSArOTIsNyBAQAogI2VuZGlmCiAJLmluZm8JCQkgPSBuc3BfaW5mbywKIAkucXVldWVjb21tYW5kCQkgPSBuc3BfcXVldWVjb21tYW5kLAotLyoJLmVoX3N0cmF0ZWd5X2hhbmRsZXIJID0gbnNwX2VoX3N0cmF0ZWd5LCovCiAvKgkuZWhfYWJvcnRfaGFuZGxlcgkgPSBuc3BfZWhfYWJvcnQsKi8KLS8qCS5laF9kZXZpY2VfcmVzZXRfaGFuZGxlciA9IG5zcF9laF9kZXZpY2VfcmVzZXQsKi8KIAkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJID0gbnNwX2VoX2J1c19yZXNldCwKIAkuZWhfaG9zdF9yZXNldF9oYW5kbGVyCSA9IG5zcF9laF9ob3N0X3Jlc2V0LAogCS5jYW5fcXVldWUJCSA9IDEsCkBAIC0xNTM2LDExICsxNTM0LDYgQEAKIC8qIGVycm9yIGhhbmRsZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotLypzdGF0aWMgaW50IG5zcF9laF9zdHJhdGVneShzdHJ1Y3QgU2NzaV9Ib3N0ICpTaG9zdCkKLXsKLQlyZXR1cm4gRkFJTEVEOwotfSovCi0KIC8qCiBzdGF0aWMgaW50IG5zcF9laF9hYm9ydChTY3NpX0NtbmQgKlNDcG50KQogewpAQCAtMTU0OSwxNCArMTU0Miw2IEBACiAJcmV0dXJuIG5zcF9laF9idXNfcmVzZXQoU0NwbnQpOwogfSovCiAKLS8qCi1zdGF0aWMgaW50IG5zcF9laF9kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICpTQ3BudCkKLXsKLQluc3BfZGJnKE5TUF9ERUJVR19CVVNSRVNFVCwgIiVzOiBTQ3BudD0weCVwIiwgU0NwbnQpOwotCi0JcmV0dXJuIEZBSUxFRDsKLX0qLwotCiBzdGF0aWMgaW50IG5zcF9idXNfcmVzZXQobnNwX2h3X2RhdGEgKmRhdGEpCiB7CiAJdW5zaWduZWQgaW50IGJhc2UgPSBkYXRhLT5CYXNlQWRkcmVzczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wY21jaWEvcWxvZ2ljX3N0dWIuYyBiL2RyaXZlcnMvc2NzaS9wY21jaWEvcWxvZ2ljX3N0dWIuYwppbmRleCA0NzY2YmNkLi5hMDE3NWY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcGNtY2lhL3Fsb2dpY19zdHViLmMKKysrIGIvZHJpdmVycy9zY3NpL3BjbWNpYS9xbG9naWNfc3R1Yi5jCkBAIC04MSw4ICs4MSw2IEBACiAJLnF1ZXVlY29tbWFuZAkJPSBxbG9naWNmYXM0MDhfcXVldWVjb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyCT0gcWxvZ2ljZmFzNDA4X2Fib3J0LAogCS5laF9idXNfcmVzZXRfaGFuZGxlcgk9IHFsb2dpY2ZhczQwOF9idXNfcmVzZXQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyPSBxbG9naWNmYXM0MDhfZGV2aWNlX3Jlc2V0LAotCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJPSBxbG9naWNmYXM0MDhfaG9zdF9yZXNldCwKIAkuYmlvc19wYXJhbQkJPSBxbG9naWNmYXM0MDhfYmlvc3BhcmFtLAogCS5jYW5fcXVldWUJCT0gMSwKIAkudGhpc19pZAkJPSAtMSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wY21jaWEvc3ltNTNjNTAwX2NzLmMgYi9kcml2ZXJzL3Njc2kvcGNtY2lhL3N5bTUzYzUwMF9jcy5jCmluZGV4IDg0NTdkMGQuLjE2NjdkYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9wY21jaWEvc3ltNTNjNTAwX2NzLmMKKysrIGIvZHJpdmVycy9zY3NpL3BjbWNpYS9zeW01M2M1MDBfY3MuYwpAQCAtNjI3LDcgKzYyNyw5IEBACiAJaW50IHBvcnRfYmFzZSA9IFNDcG50LT5kZXZpY2UtPmhvc3QtPmlvX3BvcnQ7CiAKIAlERUIocHJpbnRrKCJTWU01M0M1MDBfaG9zdF9yZXNldCBjYWxsZWRcbiIpKTsKKwlzcGluX2xvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAJU1lNNTNDNTAwX2ludF9ob3N0X3Jlc2V0KHBvcnRfYmFzZSk7CisJc3Bpbl91bmxvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CiAKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wbHV0by5jIGIvZHJpdmVycy9zY3NpL3BsdXRvLmMKaW5kZXggYzAxYjcxOS4uNjIzMDgyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3BsdXRvLmMKKysrIGIvZHJpdmVycy9zY3NpL3BsdXRvLmMKQEAgLTM1NCw3ICszNTQsNiBAQAogCS51c2VfY2x1c3RlcmluZwkJPSBFTkFCTEVfQ0xVU1RFUklORywKIAkuZWhfYWJvcnRfaGFuZGxlcgk9IGZjcF9zY3NpX2Fib3J0LAogCS5laF9kZXZpY2VfcmVzZXRfaGFuZGxlciA9IGZjcF9zY3NpX2Rldl9yZXNldCwKLQkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJPSBmY3Bfc2NzaV9idXNfcmVzZXQsCiAJLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgk9IGZjcF9zY3NpX2hvc3RfcmVzZXQsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcHBhLmMgYi9kcml2ZXJzL3Njc2kvcHBhLmMKaW5kZXggOTZiNDUyMi4uZmFmY2Y1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3BwYS5jCisrKyBiL2RyaXZlcnMvc2NzaS9wcGEuYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3BhcnBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CkBAIC04OTEsOSArODkyLDkgQEAKIAogCXBwYV9jb25uZWN0KGRldiwgQ09OTkVDVF9OT1JNQUwpOwogCXBwYV9yZXNldF9wdWxzZShkZXYtPmJhc2UpOwotCXVkZWxheSgxMDAwKTsJCS8qIGRldmljZSBzZXR0bGUgZGVsYXkgKi8KKwltZGVsYXkoMSk7CQkvKiBkZXZpY2Ugc2V0dGxlIGRlbGF5ICovCiAJcHBhX2Rpc2Nvbm5lY3QoZGV2KTsKLQl1ZGVsYXkoMTAwMCk7CQkvKiBkZXZpY2Ugc2V0dGxlIGRlbGF5ICovCisJbWRlbGF5KDEpOwkJLyogZGV2aWNlIHNldHRsZSBkZWxheSAqLwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcHNpX2RhbGUuaCBiL2RyaXZlcnMvc2NzaS9wc2lfZGFsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjcyZTNiLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvc2NzaS9wc2lfZGFsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTY0ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLiBQQ0ktMjIyMEkgZGV2aWNlIGRyaXZlciBmb3IgTGludXguCi0gKgotICogcHNpX2RhbGVpLmggLSBMaW51eCBIb3N0IERyaXZlciBmb3IgUENJLTIyMjBpIEVJREUgQWRhcHRlcnMKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTctMTk5OSBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKLSAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAotICogbW9kaWZpY2F0aW9uLgotICoKLSAqIFRlY2huaWNhbCB1cGRhdGVzIGFuZCBwcm9kdWN0IGluZm9ybWF0aW9uIGF0OgotICogIGh0dHA6Ly93d3cucHNpZGlzay5jb20KLSAqCi0gKiBQbGVhc2Ugc2VuZCBxdWVzdGlvbnMsIGNvbW1lbnRzLCBidWcgcmVwb3J0cyB0bzoKLSAqICB0ZWNoQHBzaWRpc2suY29tIFRlY2huaWNhbCBTdXBwb3J0Ci0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJU29tZSBkZWZpbmVzIHRoYXQgd2UgbGlrZSAJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lCUNIQVIJCWNoYXIKLSNkZWZpbmUJVUNIQVIJCXVuc2lnbmVkIGNoYXIKLSNkZWZpbmUJU0hPUlQJCXNob3J0Ci0jZGVmaW5lCVVTSE9SVAkJdW5zaWduZWQgc2hvcnQKLSNkZWZpbmUJQk9PTAkJdW5zaWduZWQgc2hvcnQKLSNkZWZpbmUJTE9ORwkJbG9uZwotI2RlZmluZQlVTE9ORwkJdW5zaWduZWQgbG9uZwotI2RlZmluZQlWT0lECQl2b2lkCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJRGFsZSBQQ0kgc2V0dXAJCQkJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lCVZFTkRPUl9QU0kJCQkweDEyNTYKLSNkZWZpbmUJREVWSUNFX0RBTEVfMQkJMHg0NDAxCQkvKiAnRDEnICovCi0jZGVmaW5lCURFVklDRV9CSUdEXzEJCTB4NDIwMQkJLyogJ0IxJyAqLwotI2RlZmluZQlERVZJQ0VfQklHRF8yCQkweDQyMDIJCS8qICdCMicgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlNaXNjIGtvbnN0YW50cwkJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJREFMRV9NQVhEUklWRVMJCQk0Ci0jZGVmaW5lCUJJR0RfTUFYRFJJVkVTCQkJOAotI2RlZmluZQlTRUNUT1JTWEZFUgkJCQk4Ci0jZGVmaW5lCUFUQVBJX1RSQU5TRkVSCQkJODE5MgotI2RlZmluZQlCWVRFU19QRVJfU0VDVE9SCQk1MTIKLSNkZWZpbmUJREVGQVVMVF9USU1JTkdfTU9ERQkJNQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCUVFUFJPTSBsb2NhdGlvbnMJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJREFMRV9GTEFTSF9QQUdFX1NJWkUJMTI4CQkJCS8vIG51bWJlciBvZiBieXRlcyBwZXIgcGFnZQotI2RlZmluZQlEQUxFX0ZMQVNIX1NJWkUJCQk2NTUzNkwKLQotI2RlZmluZQlEQUxFX0ZMQVNIX0JJT1MJCQkweDAwMDgwMDAwTAkJLy8gQklPUyBiYXNlIGFkZHJlc3MKLSNkZWZpbmUJREFMRV9GTEFTSF9TRVRVUAkJMHgwMDA4ODAwMEwJCS8vIFNFVFVQIFBST0dSQU0gYmFzZSBhZGRyZXNzIG9mZnNldCBmcm9tIEJJT1MKLSNkZWZpbmUJREFMRV9GTEFTSF9SQUlECQkJMHgwMDA4ODQwMEwJCS8vIFJBSUQgc2lnbmF0dXJlIHN0b3JhZ2UKLSNkZWZpbmUJREFMRV9GTEFTSF9GQUNUT1JZCQkweDAwMDg5MDAwTAkJLy8gRkFDVE9SWSBkYXRhIGJhc2UgYWRkcmVzcyBvZmZzZXQgZnJvbSBCSU9TCi0KLSNkZWZpbmUJREFMRV9GTEFTSF9CSU9TX1NJWkUJMzI3NjhVCQkJLy8gc2l6ZSBvZiBGTEFTSCBCSU9TIFJFR0lPTgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCURBTEUgUmVnaXN0ZXIgYWRkcmVzcyBvZmZzZXRzCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lCVJFR19EQVRBCQkJCQkweDgwCi0jZGVmaW5lCVJFR19FUlJPUgkJCQkJMHg4NAotI2RlZmluZQlSRUdfU0VDVE9SX0NPVU5UCQkJMHg4OAotI2RlZmluZQlSRUdfTEJBXzAJCQkJCTB4OEMKLSNkZWZpbmUJUkVHX0xCQV84CQkJCQkweDkwCi0jZGVmaW5lCVJFR19MQkFfMTYJCQkJCTB4OTQKLSNkZWZpbmUJUkVHX0xCQV8yNAkJCQkJMHg5OAotI2RlZmluZQlSRUdfU1RBVF9DTUQJCQkJMHg5QwotI2RlZmluZQlSRUdfU1RBVF9TRUwJCQkJMHhBMAotI2RlZmluZQlSRUdfRkFJTAkJCQkJMHhCMAotI2RlZmluZQlSRUdfQUxUX1NUQVQJCQkJMHhCOAotI2RlZmluZQlSRUdfRFJJVkVfQURSUwkJCQkweEJDCi0KLSNkZWZpbmUJREFMRV9EQVRBX1NMT1cJCQkJMHgwMDA0MDAwMEwKLSNkZWZpbmUJREFMRV9EQVRBX01PREUyCQkJCTB4MDAwNDAwMDBMCi0jZGVmaW5lCURBTEVfREFUQV9NT0RFMwkJCQkweDAwMDUwMDAwTAotI2RlZmluZQlEQUxFX0RBVEFfTU9ERTQJCQkJMHgwMDA2MDAwMEwKLSNkZWZpbmUJREFMRV9EQVRBX01PREU1CQkJCTB4MDAwNzAwMDBMCi0KLSNkZWZpbmUJQklHRF9EQVRBX1NMT1cJCQkJMHgwMDAwMDAwMEwKLSNkZWZpbmUJQklHRF9EQVRBX01PREUwCQkJCTB4MDAwMDAwMDBMCi0jZGVmaW5lCUJJR0RfREFUQV9NT0RFMgkJCQkweDAwMDAwMDAwTAotI2RlZmluZQlCSUdEX0RBVEFfTU9ERTMJCQkJMHgwMDAwMDAwOEwKLSNkZWZpbmUJQklHRF9EQVRBX01PREU0CQkJCTB4MDAwMDAwMTBMCi0jZGVmaW5lCUJJR0RfREFUQV9NT0RFNQkJCQkweDAwMDAwMDIwTAotCi0jZGVmaW5lIFJUUl9MT0NBTF9SQU5HRQkJCQkweDAwMAotI2RlZmluZSBSVFJfTE9DQUxfUkVNQVAJCQkJMHgwMDQKLSNkZWZpbmUgUlRSX0VYUF9SQU5HRQkJCQkweDAxMAotI2RlZmluZSBSVFJfRVhQX1JFTUFQCQkJCTB4MDE0Ci0jZGVmaW5lIFJUUl9SRUdJT05TCQkJCQkweDAxOAotI2RlZmluZSBSVFJfRE1fTUFTSwkJCQkJMHgwMUMKLSNkZWZpbmUgUlRSX0RNX0xPQ0FMX0JBU0UJCQkweDAyMAotI2RlZmluZSBSVFJfRE1fSU9fQkFTRQkJCQkweDAyNAotI2RlZmluZSBSVFJfRE1fUENJX1JFTUFQCQkJMHgwMjgKLSNkZWZpbmUgUlRSX0RNX0lPX0NPTkZJRwkJCTB4MDJDCi0jZGVmaW5lIFJUUl9NQUlMQk9YCQkJCQkweDA0MAotI2RlZmluZSBSVFJfTE9DQUxfRE9PUkJFTEwJCQkweDA2MAotI2RlZmluZSBSVFJfUENJX0RPT1JCRUxMCQkJMHgwNjQKLSNkZWZpbmUgUlRSX0lOVF9DT05UUk9MX1NUQVRVUyAJCTB4MDY4Ci0jZGVmaW5lIFJUUl9FRVBST01fQ09OVFJPTF9TVEFUVVMJMHgwNkMKLQotI2RlZmluZSBSVFJfRE1BMF9NT0RFCQkJCTB4MDA4MAotI2RlZmluZSBSVFJfRE1BMF9QQ0lfQUREUgkJCTB4MDA4NAotI2RlZmluZSBSVFJfRE1BMF9MT0NBTF9BRERSCQkJMHgwMDg4Ci0jZGVmaW5lIFJUUl9ETUEwX0NPVU5UCQkJCTB4MDA4QwotI2RlZmluZSBSVFJfRE1BMF9ERVNDX1BUUgkJCTB4MDA5MAotI2RlZmluZSBSVFJfRE1BMV9NT0RFCQkJCTB4MDA5NAotI2RlZmluZSBSVFJfRE1BMV9QQ0lfQUREUgkJCTB4MDA5OAotI2RlZmluZSBSVFJfRE1BMV9MT0NBTF9BRERSCQkJMHgwMDlDCi0jZGVmaW5lIFJUUl9ETUExX0NPVU5UCQkJCTB4MDBBMAotI2RlZmluZSBSVFJfRE1BMV9ERVNDX1BUUgkJCTB4MDBBNAotI2RlZmluZSBSVFJfRE1BX0NPTU1BTkRfU1RBVFVTCQkweDAwQTgKLSNkZWZpbmUgUlRSX0RNQV9BUkIwCQkJCTB4MDBBQwotI2RlZmluZSBSVFJfRE1BX0FSQjEJCQkJMHgwMEIwCi0KLSNkZWZpbmUgUlRMX0RNQTBfTU9ERQkJCQkweDAwCi0jZGVmaW5lIFJUTF9ETUEwX1BDSV9BRERSCQkJMHgwNAotI2RlZmluZSBSVExfRE1BMF9MT0NBTF9BRERSCQkJMHgwOAotI2RlZmluZSBSVExfRE1BMF9DT1VOVAkJCQkweDBDCi0jZGVmaW5lIFJUTF9ETUEwX0RFU0NfUFRSCQkJMHgxMAotI2RlZmluZSBSVExfRE1BMV9NT0RFCQkJCTB4MTQKLSNkZWZpbmUgUlRMX0RNQTFfUENJX0FERFIJCQkweDE4Ci0jZGVmaW5lIFJUTF9ETUExX0xPQ0FMX0FERFIJCQkweDFDCi0jZGVmaW5lIFJUTF9ETUExX0NPVU5UCQkJCTB4MjAKLSNkZWZpbmUgUlRMX0RNQTFfREVTQ19QVFIJCQkweDI0Ci0jZGVmaW5lIFJUTF9ETUFfQ09NTUFORF9TVEFUVVMJCTB4MjgKLSNkZWZpbmUgUlRMX0RNQV9BUkIwCQkJCTB4MkMKLSNkZWZpbmUgUlRMX0RNQV9BUkIxCQkJCTB4MzAKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlEYWxlIFNjcmF0Y2hwYWQgbG9jYXRpb25zCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZQlEQUxFX0NIQU5ORUxfREVWSUNFXzAJCTAJCS8vIGRldmljZSBjaGFubmVsIGxvY2F0aW9ucwotI2RlZmluZQlEQUxFX0NIQU5ORUxfREVWSUNFXzEJCTEKLSNkZWZpbmUJREFMRV9DSEFOTkVMX0RFVklDRV8yCQkyCi0jZGVmaW5lCURBTEVfQ0hBTk5FTF9ERVZJQ0VfMwkJMwotCi0jZGVmaW5lCURBTEVfU0NSQVRDSF9ERVZJQ0VfMAkJNAkJLy8gZGV2aWNlIHR5cGUgY29kZXMKLSNkZWZpbmUJREFMRV9TQ1JBVENIX0RFVklDRV8xCQk1Ci0jZGVmaW5lIERBTEVfU0NSQVRDSF9ERVZJQ0VfMgkJNgotI2RlZmluZQlEQUxFX1NDUkFUQ0hfREVWSUNFXzMJCTcKLQotI2RlZmluZQlEQUxFX1JBSURfMF9TVEFUVVMJCQk4Ci0jZGVmaW5lIERBTEVfUkFJRF8xX1NUQVRVUwkJCTkKLQotI2RlZmluZQlEQUxFX1RJTUlOR19NT0RFCQkJMTIJCS8vIGJ1cyBtYXN0ZXIgdGltaW5nIG1vZGUgKDIsIDMsIDQsIDUpCi0jZGVmaW5lCURBTEVfTlVNX0RSSVZFUwkJCQkxMwkJLy8gbnVtYmVyIG9mIGFkZHJlc3NhYmxlIGRyaXZlcyBvbiB0aGlzIGJvYXJkCi0jZGVmaW5lCURBTEVfUkFJRF9PTgkJCQkxNCAJCS8vIFJBSUQgc3RhdHVzIE9uCi0jZGVmaW5lCURBTEVfTEFTVF9FUlJPUgkJCQkxNQkJLy8gTGFzdCBlcnJvciBjb2RlIGZyb20gQklPUwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCUJpZ0QgU2NyYXRjaHBhZCBsb2NhdGlvbnMJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lCUJJR0RfREVWSUNFXzAJCQkwCQkvLyBkZXZpY2UgY2hhbm5lbCBsb2NhdGlvbnMKLSNkZWZpbmUJQklHRF9ERVZJQ0VfMQkJCTEKLSNkZWZpbmUJQklHRF9ERVZJQ0VfMgkJCTIKLSNkZWZpbmUJQklHRF9ERVZJQ0VfMwkJCTMKLQotI2RlZmluZQlCSUdEX0RFVklDRV80CQkJNAkJLy8gZGV2aWNlIHR5cGUgY29kZXMKLSNkZWZpbmUJQklHRF9ERVZJQ0VfNQkJCTUKLSNkZWZpbmUgQklHRF9ERVZJQ0VfNgkJCTYKLSNkZWZpbmUJQklHRF9ERVZJQ0VfNwkJCTcKLQotI2RlZmluZQlCSUdEX0FMQVJNX0lNQUdFCQkxMQkJLy8gfmltYWdlIG9mIGFsYXJtIGZhaWwgcmVnaXN0ZXIJCQotI2RlZmluZQlCSUdEX1RJTUlOR19NT0RFCQkxMgkJLy8gYnVzIG1hc3RlciB0aW1pbmcgbW9kZSAoMiwgMywgNCwgNSkKLSNkZWZpbmUJQklHRF9OVU1fRFJJVkVTCQkJMTMJCS8vIG51bWJlciBvZiBhZGRyZXNzYWJsZSBkcml2ZXMgb24gdGhpcyBib2FyZAotI2RlZmluZQlCSUdEX1JBSURfT04JCQkxNCAJCS8vIFJBSUQgc3RhdHVzIGlzIG9uIGZvciB0aGUgd2hvbGUgYm9hcmQKLSNkZWZpbmUJQklHRF9MQVNUX0VSUk9SCQkJMTUJCS8vIExhc3QgZXJyb3IgY29kZSBmcm9tIEJJT1MKLQotI2RlZmluZQlCSUdEX1JBSURfMF9TVEFUVVMJCTE2Ci0jZGVmaW5lIEJJR0RfUkFJRF8xX1NUQVRVUwkJMTcKLSNkZWZpbmUJQklHRF9SQUlEXzJfU1RBVFVTCQkxOAotI2RlZmluZQlCSUdEX1JBSURfM19TVEFUVVMJCTE5Ci0jZGVmaW5lCUJJR0RfUkFJRF80X1NUQVRVUwkJMjAKLSNkZWZpbmUgQklHRF9SQUlEXzVfU1RBVFVTCQkyMQotI2RlZmluZQlCSUdEX1JBSURfNl9TVEFUVVMJCTIyCi0jZGVmaW5lCUJJR0RfUkFJRF83X1NUQVRVUwkJMjMKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlEYWxlIGNhYmxlIHNlbGVjdCBiaXRzCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJU0VMX05PTkUJCQkJCTB4MDAKLSNkZWZpbmUJU0VMXzEJCQkJCQkweDAxCi0jZGVmaW5lCVNFTF8yCQkJCQkJMHgwMgotI2RlZmluZQlTRUxfMwkJCQkJCTB4MDQKLSNkZWZpbmUJU0VMXzQJCQkJCQkweDA4Ci0jZGVmaW5lCVNFTF9ORVdfU1BFRURfMQkJCQkweDIwCi0jZGVmaW5lCVNFTF9DT1BZCQkJCQkweDQwCi0jZGVmaW5lCVNFTF9JUlFfT0ZGCQkJCQkweDgwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJRGV2aWNlL0dlb21ldHJ5IGNvbnRyb2xzCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBHRU9NRVRSWV9OT05FCSAJCQkweDAJCQkJLy8gTm8gZGV2aWNlCi0jZGVmaW5lIEdFT01FVFJZX1NFVAkJCQkweDEJCQkJLy8gR2VvbWV0cnkgc2V0Ci0jZGVmaW5lCUdFT01FVFJZX0xCQQkJCQkweDIJCQkJLy8gR2VvbWV0cnkgc2V0IGluIGRlZmF1bHQgTEJBIG1vZGUKLSNkZWZpbmUJR0VPTUVUUllfUEhPRU5JWAkJCTB4MwkJCQkvLyBHZW9tZXRyeSBzZXQgaW4gUGhlb25peCBCSU9TIGNvbXBhdGliaWxpdHkgbW9kZQotCi0jZGVmaW5lCURFVklDRV9OT05FCQkJCQkweDAJCQkJLy8gTm8gZGV2aWNlIHByZXNlbnQKLSNkZWZpbmUJREVWSUNFX0lOQUNUSVZFCQkJCTB4MQkJCQkvLyBkZXZpY2UgcHJlc2VudCBidXQgbm90IHJlZ2lzdGVyZWQgYWN0aXZlCi0jZGVmaW5lCURFVklDRV9BVEFQSQkJCQkweDIJCQkJLy8gQVRBUEkgZGV2aWNlIChDRF9ST00sIFRhcGUsIEV0Yy4uLikKLSNkZWZpbmUJREVWSUNFX0RBU0RfTk9OTEJBCQkJMHgzCQkJCS8vIE5vbiBMQkEgaW5jb21wYXRpYmxlIGRldmljZQotI2RlZmluZQlERVZJQ0VfREFTRF9MQkEJCQkJMHg0CQkJCS8vIExCQSBjb21wYXRpYmxlIGRldmljZQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCUJpZ0QgZmFpbCByZWdpc3RlciBiaXRzCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJRkFJTF9OT05FCQkJCTB4MDAKLSNkZWZpbmUJRkFJTF8wCQkJCQkweDAxCi0jZGVmaW5lCUZBSUxfMQkJCQkJMHgwMgotI2RlZmluZQlGQUlMXzIJCQkJCTB4MDQKLSNkZWZpbmUJRkFJTF9NVUxUSVBMRQkJCTB4MDgKLSNkZWZpbmUJRkFJTF9HT09ECQkJCTB4MjAKLSNkZWZpbmUJRkFJTF9BVURJQkxFCQkJMHg0MAotI2RlZmluZQlGQUlMX0FOWQkJCQkweDgwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJU2V0dXAgU3RydWN0dXJlIERlZmluaXRpb25zCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotdHlwZWRlZiBzdHJ1Y3QJCS8vIGRldmljZSBzZXR1cCBwYXJhbWV0ZXJzCi0JewotCVVDSEFSCWdlb21ldHJ5Q29udHJvbDsJLy8gZ2VvbWV0cnkgY29udHJvbCBmbGFncwotCVVDSEFSCWRldmljZTsJCQkJLy8gZGV2aWNlIGNvZGUKLQlVU0hPUlQJc2VjdG9yczsJCQkvLyBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2sKLQlVU0hPUlQJaGVhZHM7CQkJCS8vIG51bWJlciBvZiBoZWFkcwotCVVTSE9SVAljeWxpbmRlcnM7CQkJLy8gbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkZXZpY2UKLQlVTE9ORwlibG9ja3M7CQkJCS8vIG51bWJlciBvZiBibG9ja3Mgb24gZGV2aWNlCi0JVUxPTkcJcmVhbENhcGFjaXR5OwkJLy8gbnVtYmVyIG9mIHJlYWwgYmxvY2tzIG9uIHRoaXMgZGV2aWNlIGZvciBkcml2ZSBjaGFuZ2VkIHRlc3RpbmcKLQl9IFNFVFVQX0RFVklDRSwgKlBTRVRVUF9ERVZJQ0U7Ci0KLXR5cGVkZWYgc3RydWN0CQkvLyBtYXN0ZXIgc2V0dXAgc3RydWN0dXJlCi0JewotCVVTSE9SVAkJCXN0YXJ0dXBEZWxheTsKLQlCT09MCQkJcHJvbXB0QklPUzsKLQlCT09MCQkJZmFzdEZvcm1hdDsKLQlCT09MCQkJc2hhcmVJbnRlcnJ1cHQ7Ci0JQk9PTAkJCXJlYm9vdFJlYnVpbGQ7Ci0JVVNIT1JUCQkJdGltaW5nTW9kZTsKLQlVU0hPUlQJCQlzcGFyZTU7Ci0JVVNIT1JUCQkJc3BhcmU2OwotCVNFVFVQX0RFVklDRQlzZXR1cERldmljZVtCSUdEX01BWERSSVZFU107Ci0JfQlTRVRVUCwgKlBTRVRVUDsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlSQUlEIFN0cnVjdHVyZSBEZWZpbml0aW9ucwkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXR5cGVkZWYJc3RydWN0Ci0JewotCVVDSEFSCXNpZ25hdHVyZTsJCQkvLyAweDU1IG91ciBtaXJyb3Igc2lnbmF0dXJlCi0JVUNIQVIJc3RhdHVzOwkJCQkvLyBjdXJyZW50IHN0YXR1cyBiaXRzCi0JVUNIQVIJcGFpcklkZW50aWZpZXI7CQkvLyB1bmlxdWUgaWRlbnRpZmllciBmb3IgcGFpcgotCVVMT05HCXJlY29uc3RydWN0UG9pbnQ7CS8vIHJlY29udHJ1Y3Rpb24gcG9pbnQgZm9yIGhvdCByZWNvbnN0cnVjdAotCX0JRElTS19NSVJST1I7Ci0KLXR5cGVkZWYgc3RydWN0CURFVklDRV9SQUlEMQotCXsKLQlsb25nCQlUb3RhbFNlY3RvcnM7Ci0JRElTS19NSVJST1IgRGlza1JhaWQxOwotCX0JREVWSUNFX1JBSUQxLCAqUERFVklDRV9SQUlEMTsKLQotI2RlZmluZQlESVNLX01JUlJPUl9QT1NJVElPTgkweDAxQTgKLSNkZWZpbmUJU0lHTkFUVVJFCQkJCTB4NTUKLQotI2RlZmluZQlNQVNLX1NFUklBTF9OVU1CRVIJMHgwRkZFCQkJLy8gbWFzayBmb3Igc2VyaWFsIG51bWJlciBtYXRjaGluZwotI2RlZmluZQlNQVNLX1NFUklBTF9VTklUCTB4MDAwMQkJCS8vIG1hc2sgZm9yIHVuaXQgcG9ydGlvbiBvZiBzZXJpYWwgbnVtYmVyCi0KLS8vIFN0YXR1cyBiaXRzCi0jZGVmaW5lCVVDQkZfTUlSUk9SRUQJCTB4MDAxMAkJCQkJCQkJLy8gZHJpdmUgaGFzIGEgcGFpcgotI2RlZmluZQlVQ0JGX01BVENIRUQJCTB4MDAyMAkJCQkJCQkJLy8gZHJpdmUgcGFpciBpcyBtYXRjaGVkCi0jZGVmaW5lCVVDQkZfU1VSVklWT1IJCTB4MDA0MAkJCQkJCQkJLy8gdGhpcyB1bml0IGlzIGEgc3Vydml2b3Igb2YgYSBwYWlyCi0jZGVmaW5lCVVDQkZfUkVCVUlMRAkJMHgwMDgwCQkJCQkJCQkvLyByZWJ1aWxkIGluIHByb2dyZXNzIG9uIHRoaXMgZGV2aWNlCi0KLS8vIFNDU0kgY29udHJvbHMgZm9yIFJBSUQKLSNkZWZpbmUJU0NfTVlfUkFJRAkJCTB4QkYJCQkvLyBvdXIgc3BlY2lhbCBDREIgY29tbWFuZCBieXRlIGZvciBXaW45NS4uLiBpbnRlcmZhY2UKLSNkZWZpbmUJTVlfU0NTSV9RVUVSWTEJCTB4MzIJCQkvLyBieXRlIDEgc3ViY29tbWFuZCB0byBxdWVyeSBkcml2ZXIgZm9yIFJBSUQgMSBpbmZvcm1hdGF0aW9uCi0jZGVmaW5lCU1ZX1NDU0lfUkVCVUlMRAkJMHg0MAkJCS8vIGJ5dGUgMSBzdWJjb21tYW5kIHRvIHJlY29uc3RydWN0IGEgbWlycm9yZWQgcGFpcgotI2RlZmluZSBNWV9TQ1NJX0RFTU9GQUlMCTB4NTQJCQkvLyBieXRlIDEgc3ViY29tbWFuZCBmb3IgUkFJRCBmYWlsdXJlIGRlbW9uc3RyYXRpb24KLSNkZWZpbmUJTVlfU0NTSV9BTEFSTU1VVEUJMHg2MAkJCS8vIGJ5dGUgMSBzdWJjb21tYW5kIHRvIG11dGUgYW55IGFsYXJtIGN1cnJlbnRseSBvbgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCVRpbWVvdXQga29uc3RhbnRzCQkgCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZQlUSU1FT1VUX1JFQURZCQkJCTEwMAkJCS8vIDEwMCBtU2VjCi0jZGVmaW5lCVRJTUVPVVRfRFJRCQkJCQkzMDAJCQkvLyAzMDAgbVNlYwotI2RlZmluZQlUSU1FT1VUX0RBVEEJCQkJKDMgKiBIWikJLy8gMyBzZWNvbmRzCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJTWlzYy4gbWFjcm9zCQkJIAkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQU5ZMlNDU0kodXAsIHApCQkJCQlcCi0oKFVDSEFSICopdXApWzBdID0gKCgoVUxPTkcpKHApKSA+PiA4KTsJXAotKChVQ0hBUiAqKXVwKVsxXSA9ICgoVUxPTkcpKHApKTsKLQotI2RlZmluZSBTQ1NJMkxPTkcodXApCQkJCQlcCi0oICgoKGxvbmcpKigoKFVDSEFSICopdXApKSkgPDwgMTYpCQlcCi0rICgoKGxvbmcpKCgoVUNIQVIgKil1cClbMV0pKSA8PCA4KQkJXAotKyAoKGxvbmcpKCgoVUNIQVIgKil1cClbMl0pKSApCi0KLSNkZWZpbmUgWEFOWTJTQ1NJKHVwLCBwKQkJCQlcCi0oKFVDSEFSICopdXApWzBdID0gKChsb25nKShwKSkgPj4gMjQ7CVwKLSgoVUNIQVIgKil1cClbMV0gPSAoKGxvbmcpKHApKSA+PiAxNjsJXAotKChVQ0hBUiAqKXVwKVsyXSA9ICgobG9uZykocCkpID4+IDg7CVwKLSgoVUNIQVIgKil1cClbM10gPSAoKGxvbmcpKHApKTsKLQotI2RlZmluZSBYU0NTSTJMT05HKHVwKQkJCQkJXAotKCAoKChsb25nKSgoKFVDSEFSICopdXApWzBdKSkgPDwgMjQpCVwKLSsgKCgobG9uZykoKChVQ0hBUiAqKXVwKVsxXSkpIDw8IDE2KQlcCi0rICgoKGxvbmcpKCgoVUNIQVIgKil1cClbMl0pKSA8PCAgOCkJXAotKyAoKGxvbmcpKCgoVUNIQVIgKil1cClbM10pKSApCi0KLSNkZWZpbmUJU2VsZWN0U3BpZ290KHBhZGFwdGVyLHNwaWdvdCkJb3V0Yl9wIChzcGlnb3QsIHBhZGFwdGVyLT5yZWdTdGF0U2VsKQotI2RlZmluZSBXcml0ZUNvbW1hbmQocGFkYXB0ZXIsY21kKQkJb3V0Yl9wIChjbWQsIHBhZGFwdGVyLT5yZWdTdGF0Q21kKQotI2RlZmluZQlBdGFwaURldmljZShwYWRhcHRlcixiKQkJCW91dGJfcCAoYiwgcGFkYXB0ZXItPnJlZ0xiYTI0KTsKLSNkZWZpbmUJQXRhcGlDb3VudExvKHBhZGFwdGVyLGIpCQlvdXRiX3AgKGIsIHBhZGFwdGVyLT5yZWdMYmE4KQotI2RlZmluZQlBdGFwaUNvdW50SGkocGFkYXB0ZXIsYikJCW91dGJfcCAoYiwgcGFkYXB0ZXItPnJlZ0xiYTE2KQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCVNDU0kgQ0RCIG9wZXJhdGlvbiBjb2RlcyAJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFNDU0lPUF9URVNUX1VOSVRfUkVBRFkJCTB4MDAKLSNkZWZpbmUgU0NTSU9QX1JFWkVST19VTklUCQkJMHgwMQotI2RlZmluZSBTQ1NJT1BfUkVXSU5ECQkJCTB4MDEKLSNkZWZpbmUgU0NTSU9QX1JFUVVFU1RfQkxPQ0tfQUREUgkweDAyCi0jZGVmaW5lIFNDU0lPUF9SRVFVRVNUX1NFTlNFCQkweDAzCi0jZGVmaW5lIFNDU0lPUF9GT1JNQVRfVU5JVAkJCTB4MDQKLSNkZWZpbmUgU0NTSU9QX1JFQURfQkxPQ0tfTElNSVRTCTB4MDUKLSNkZWZpbmUgU0NTSU9QX1JFQVNTSUdOX0JMT0NLUwkJMHgwNwotI2RlZmluZSBTQ1NJT1BfUkVBRDYJCQkJMHgwOAotI2RlZmluZSBTQ1NJT1BfUkVDRUlWRQkJCQkweDA4Ci0jZGVmaW5lIFNDU0lPUF9XUklURTYJCQkJMHgwQQotI2RlZmluZSBTQ1NJT1BfUFJJTlQJCQkJMHgwQQotI2RlZmluZSBTQ1NJT1BfU0VORAkJCQkJMHgwQQotI2RlZmluZSBTQ1NJT1BfU0VFSzYJCQkJMHgwQgotI2RlZmluZSBTQ1NJT1BfVFJBQ0tfU0VMRUNUCQkJMHgwQgotI2RlZmluZSBTQ1NJT1BfU0xFV19QUklOVAkJCTB4MEIKLSNkZWZpbmUgU0NTSU9QX1NFRUtfQkxPQ0sJCQkweDBDCi0jZGVmaW5lIFNDU0lPUF9QQVJUSVRJT04JCQkweDBECi0jZGVmaW5lIFNDU0lPUF9SRUFEX1JFVkVSU0UJCQkweDBGCi0jZGVmaW5lIFNDU0lPUF9XUklURV9GSUxFTUFSS1MJCTB4MTAKLSNkZWZpbmUgU0NTSU9QX0ZMVVNIX0JVRkZFUgkJCTB4MTAKLSNkZWZpbmUgU0NTSU9QX1NQQUNFCQkJCTB4MTEKLSNkZWZpbmUgU0NTSU9QX0lOUVVJUlkJCQkJMHgxMgotI2RlZmluZSBTQ1NJT1BfVkVSSUZZNgkJCQkweDEzCi0jZGVmaW5lIFNDU0lPUF9SRUNPVkVSX0JVRl9EQVRBCQkweDE0Ci0jZGVmaW5lIFNDU0lPUF9NT0RFX1NFTEVDVAkJCTB4MTUKLSNkZWZpbmUgU0NTSU9QX1JFU0VSVkVfVU5JVAkJCTB4MTYKLSNkZWZpbmUgU0NTSU9QX1JFTEVBU0VfVU5JVAkJCTB4MTcKLSNkZWZpbmUgU0NTSU9QX0NPUFkJCQkJCTB4MTgKLSNkZWZpbmUgU0NTSU9QX0VSQVNFCQkJCTB4MTkKLSNkZWZpbmUgU0NTSU9QX01PREVfU0VOU0UJCQkweDFBCi0jZGVmaW5lIFNDU0lPUF9TVEFSVF9TVE9QX1VOSVQJCTB4MUIKLSNkZWZpbmUgU0NTSU9QX1NUT1BfUFJJTlQJCQkweDFCCi0jZGVmaW5lIFNDU0lPUF9MT0FEX1VOTE9BRAkJCTB4MUIKLSNkZWZpbmUgU0NTSU9QX1JFQ0VJVkVfRElBR05PU1RJQwkweDFDCi0jZGVmaW5lIFNDU0lPUF9TRU5EX0RJQUdOT1NUSUMJCTB4MUQKLSNkZWZpbmUgU0NTSU9QX01FRElVTV9SRU1PVkFMCQkweDFFCi0jZGVmaW5lIFNDU0lPUF9SRUFEX0NBUEFDSVRZCQkweDI1Ci0jZGVmaW5lIFNDU0lPUF9SRUFECQkJCQkweDI4Ci0jZGVmaW5lIFNDU0lPUF9XUklURQkJCQkweDJBCi0jZGVmaW5lIFNDU0lPUF9TRUVLCQkJCQkweDJCCi0jZGVmaW5lIFNDU0lPUF9MT0NBVEUJCQkJMHgyQgotI2RlZmluZSBTQ1NJT1BfV1JJVEVfVkVSSUZZCQkJMHgyRQotI2RlZmluZSBTQ1NJT1BfVkVSSUZZCQkJCTB4MkYKLSNkZWZpbmUgU0NTSU9QX1NFQVJDSF9EQVRBX0hJR0gJCTB4MzAKLSNkZWZpbmUgU0NTSU9QX1NFQVJDSF9EQVRBX0VRVUFMCTB4MzEKLSNkZWZpbmUgU0NTSU9QX1NFQVJDSF9EQVRBX0xPVwkJMHgzMgotI2RlZmluZSBTQ1NJT1BfU0VUX0xJTUlUUwkJCTB4MzMKLSNkZWZpbmUgU0NTSU9QX1JFQURfUE9TSVRJT04JCTB4MzQKLSNkZWZpbmUgU0NTSU9QX1NZTkNIUk9OSVpFX0NBQ0hFCTB4MzUKLSNkZWZpbmUgU0NTSU9QX0NPTVBBUkUJCQkJMHgzOQotI2RlZmluZSBTQ1NJT1BfQ09QWV9DT01QQVJFCQkJMHgzQQotI2RlZmluZSBTQ1NJT1BfV1JJVEVfREFUQV9CVUZGCQkweDNCCi0jZGVmaW5lIFNDU0lPUF9SRUFEX0RBVEFfQlVGRgkJMHgzQwotI2RlZmluZSBTQ1NJT1BfQ0hBTkdFX0RFRklOSVRJT04JMHg0MAotI2RlZmluZSBTQ1NJT1BfUkVBRF9TVUJfQ0hBTk5FTAkJMHg0MgotI2RlZmluZSBTQ1NJT1BfUkVBRF9UT0MJCQkJMHg0MwotI2RlZmluZSBTQ1NJT1BfUkVBRF9IRUFERVIJCQkweDQ0Ci0jZGVmaW5lIFNDU0lPUF9QTEFZX0FVRElPCQkJMHg0NQotI2RlZmluZSBTQ1NJT1BfUExBWV9BVURJT19NU0YJCTB4NDcKLSNkZWZpbmUgU0NTSU9QX1BMQVlfVFJBQ0tfSU5ERVgJCTB4NDgKLSNkZWZpbmUgU0NTSU9QX1BMQVlfVFJBQ0tfUkVMQVRJVkUJMHg0OQotI2RlZmluZSBTQ1NJT1BfUEFVU0VfUkVTVU1FCQkJMHg0QgotI2RlZmluZSBTQ1NJT1BfTE9HX1NFTEVDVAkJCTB4NEMKLSNkZWZpbmUgU0NTSU9QX0xPR19TRU5TRQkJCTB4NEQKLSNkZWZpbmUgU0NTSU9QX01PREVfU0VMRUNUMTAJCTB4NTUKLSNkZWZpbmUgU0NTSU9QX01PREVfU0VOU0UxMAkJCTB4NUEKLSNkZWZpbmUgU0NTSU9QX0xPQURfVU5MT0FEX1NMT1QJCTB4QTYKLSNkZWZpbmUgU0NTSU9QX01FQ0hBTklTTV9TVEFUVVMJCTB4QkQKLSNkZWZpbmUgU0NTSU9QX1JFQURfQ0QJCQkJMHhCRQotCi0vLyBJREUgY29tbWFuZCBkZWZpbml0aW9ucwotI2RlZmluZSBJREVfQ09NTUFORF9BVEFQSV9SRVNFVAkJMHgwOAotI2RlZmluZSBJREVfQ09NTUFORF9SRUFECQkJMHgyMAotI2RlZmluZSBJREVfQ09NTUFORF9XUklURQkJCTB4MzAKLSNkZWZpbmUgSURFX0NPTU1BTkRfUkVDQUxJQlJBVEUJCTB4MTAKLSNkZWZpbmUgSURFX0NPTU1BTkRfU0VFSwkJCTB4NzAKLSNkZWZpbmUgSURFX0NPTU1BTkRfU0VUX1BBUkFNRVRFUlMJMHg5MQotI2RlZmluZSBJREVfQ09NTUFORF9WRVJJRlkJCQkweDQwCi0jZGVmaW5lIElERV9DT01NQU5EX0FUQVBJX1BBQ0tFVAkweEEwCi0jZGVmaW5lIElERV9DT01NQU5EX0FUQVBJX0lERU5USUZZCTB4QTEKLSNkZWZpbmUJSURFX0NNRF9SRUFEX01VTFRJUExFCQkweEM0Ci0jZGVmaW5lCUlERV9DTURfV1JJVEVfTVVMVElQTEUJCTB4QzUKLSNkZWZpbmUJSURFX0NNRF9TRVRfTVVMVElQTEUJCTB4QzYKLSNkZWZpbmUgSURFX0NPTU1BTkRfSURFTlRJRlkJCTB4RUMKLQotLy8gSURFIHN0YXR1cyBkZWZpbml0aW9ucwotI2RlZmluZSBJREVfU1RBVFVTX0VSUk9SCQkJMHgwMQotI2RlZmluZSBJREVfU1RBVFVTX0lOREVYCQkJMHgwMgotI2RlZmluZSBJREVfU1RBVFVTX0NPUlJFQ1RFRF9FUlJPUgkweDA0Ci0jZGVmaW5lIElERV9TVEFUVVNfRFJRCQkJCTB4MDgKLSNkZWZpbmUgSURFX1NUQVRVU19EU0MJCQkJMHgxMAotI2RlZmluZQlJREVfU1RBVFVTX1dSSVRFX0ZBVUxUCQkweDIwCi0jZGVmaW5lIElERV9TVEFUVVNfRFJEWQkJCQkweDQwCi0jZGVmaW5lIElERV9TVEFUVVNfQlVTWQkJCQkweDgwCi0KLXR5cGVkZWYgc3RydWN0IF9BVEFQSV9TVEFUVVMKLQl7Ci0JQ0hBUgljaGVjawkJOjE7Ci0JQ0hBUglyZXNlcnZlZDEJOjE7Ci0JQ0hBUgljb3JyCQk6MTsKLQlDSEFSCWRycQkJCToxOwotCUNIQVIJZHNjCQkJOjE7Ci0JQ0hBUglyZXNlcnZlZDIJOjE7Ci0JQ0hBUglkcmR5CQk6MTsKLQlDSEFSCWJzeQkJCToxOwotCX0JQVRBUElfU1RBVFVTOwotCi10eXBlZGVmIHN0cnVjdCBfQVRBUElfUkVBU09OCi0JewotCUNIQVIJY29kCQkJOjE7Ci0JQ0hBUglpbwkJCToxOwotCUNIQVIJcmVzZXJ2ZWQxCTo2OwotCX0JQVRBUElfUkVBU09OOwotCi10eXBlZGVmIHN0cnVjdCBfQVRBUElfRVJST1IKLQl7Ci0JQ0hBUglpbGkJCQk6MTsKLQlDSEFSCWVvbQkJCToxOwotCUNIQVIJYWJvcnQJCToxOwotCUNIQVIJbWNyCQkJOjE7Ci0JQ0hBUglzZW5zZUtleQk6NDsKLQl9CUFUQVBJX0VSUk9SOwotCi0vLyBJREUgZXJyb3IgZGVmaW5pdGlvbnMKLSNkZWZpbmUJSURFX0VSUk9SX0FNTkYJCQkJMHgwMQotI2RlZmluZQlJREVfRVJST1JfVEtPTkYJCQkJMHgwMgotI2RlZmluZQlJREVfRVJST1JfQUJSVAkJCQkweDA0Ci0jZGVmaW5lCUlERV9FUlJPUl9NQ1IJCQkJMHgwOAotI2RlZmluZQlJREVfRVJST1JfSURGTgkJCQkweDEwCi0jZGVmaW5lCUlERV9FUlJPUl9NQwkJCQkweDIwCi0jZGVmaW5lCUlERV9FUlJPUl9VTkMJCQkJMHg0MAotI2RlZmluZQlJREVfRVJST1JfQkJLCQkJCTB4ODAKLQotLy8gU0NTSSByZWFkIGNhcGFjaXR5IHN0cnVjdHVyZQotdHlwZWRlZglzdHJ1Y3QgX1JFQURfQ0FQQUNJVFlfREFUQQotCXsKLQlVTE9ORyBibGtzOwkJCQkvKiB0b3RhbCBibG9ja3MgKGNvbnZlcnRlZCB0byBsaXR0bGUgZW5kaWFuKSAqLwotCVVMT05HIGJsa3NpejsJCQkvKiBzaXplIG9mIGVhY2ggKGNvbnZlcnRlZCB0byBsaXR0bGUgZW5kaWFuKSAqLwotCX0JUkVBRF9DQVBBQ0lUWV9EQVRBLCAqUFJFQURfQ0FQQUNJVFlfREFUQTsKLQotLy8gU0NTSSBpbnF1aXJ5IGRhdGEKLXR5cGVkZWYgc3RydWN0IF9JTlFVSVJZREFUQQotCXsKLQlVQ0hBUiBEZXZpY2VUeXBlCQkJOjU7Ci0JVUNIQVIgRGV2aWNlVHlwZVF1YWxpZmllcgk6MzsKLQlVQ0hBUiBEZXZpY2VUeXBlTW9kaWZpZXIJOjc7Ci0JVUNIQVIgUmVtb3ZhYmxlTWVkaWEJCToxOwotICAgIFVDSEFSIFZlcnNpb25zOwotICAgIFVDSEFSIFJlc3BvbnNlRGF0YUZvcm1hdDsKLSAgICBVQ0hBUiBBZGRpdGlvbmFsTGVuZ3RoOwotICAgIFVDSEFSIFJlc2VydmVkWzJdOwotCVVDSEFSIFNvZnRSZXNldAkJCQk6MTsKLQlVQ0hBUiBDb21tYW5kUXVldWUJCQk6MTsKLQlVQ0hBUiBSZXNlcnZlZDIJCQkJOjE7Ci0JVUNIQVIgTGlua2VkQ29tbWFuZHMJCToxOwotCVVDSEFSIFN5bmNocm9ub3VzCQkJOjE7Ci0JVUNIQVIgV2lkZTE2Qml0CQkJCToxOwotCVVDSEFSIFdpZGUzMkJpdAkJCQk6MTsKLQlVQ0hBUiBSZWxhdGl2ZUFkZHJlc3NpbmcJOjE7Ci0gICAgVUNIQVIgVmVuZG9ySWRbOF07Ci0gICAgVUNIQVIgUHJvZHVjdElkWzE2XTsKLSAgICBVQ0hBUiBQcm9kdWN0UmV2aXNpb25MZXZlbFs0XTsKLSAgICBVQ0hBUiBWZW5kb3JTcGVjaWZpY1syMF07Ci0gICAgVUNIQVIgUmVzZXJ2ZWQzWzQwXTsKLQl9CUlOUVVJUllEQVRBLCAqUElOUVVJUllEQVRBOwotCi0vLyBJREUgSURFTlRJRlkgZGF0YQotI3ByYWdtYSBwYWNrICgxKQotdHlwZWRlZiBzdHJ1Y3QgX0lERU5USUZZX0RBVEEKLQl7Ci0gICAgVVNIT1JUCUdlbmVyYWxDb25maWd1cmF0aW9uOwkJLy8gIDAKLSAgICBVU0hPUlQJTnVtYmVyT2ZDeWxpbmRlcnM7CQkJLy8gIDEKLSAgICBVU0hPUlQJUmVzZXJ2ZWQxOwkJCQkJLy8gIDIKLSAgICBVU0hPUlQJTnVtYmVyT2ZIZWFkczsJCQkJLy8gIDMKLSAgICBVU0hPUlQJVW5mb3JtYXR0ZWRCeXRlc1BlclRyYWNrOwkvLyAgNAotICAgIFVTSE9SVAlVbmZvcm1hdHRlZEJ5dGVzUGVyU2VjdG9yOwkvLyAgNQotICAgIFVTSE9SVAlTZWN0b3JzUGVyVHJhY2s7CQkJLy8gIDYKLQlVU0hPUlQJTnVtQnl0ZXNJU0c7CQkJCS8vICA3IEJ5dGUgTGVuIC0gaW50ZXItc2VjdG9yIGdhcAotCVVTSE9SVAlOdW1CeXRlc1N5bmM7CQkJCS8vICA4ICAgICAgICAgIC0gc3luYyBmaWVsZAotCVVTSE9SVAlOdW1Xb3Jkc1ZVUzsJCQkJLy8gIDkgTGVuIC0gVmVuZG9yIFVuaXF1ZSBJbmZvCi0gICAgVVNIT1JUCVNlcmlhbE51bWJlclsxMF07CQkJLy8gMTAKLSAgICBVU0hPUlQJQnVmZmVyVHlwZTsJCQkJCS8vIDIwCi0gICAgVVNIT1JUCUJ1ZmZlclNlY3RvclNpemU7CQkJLy8gMjEKLSAgICBVU0hPUlQJTnVtYmVyT2ZFY2NCeXRlczsJCQkvLyAyMgotICAgIFVTSE9SVAlGaXJtd2FyZVJldmlzaW9uWzRdOwkJLy8gMjMKLSAgICBVU0hPUlQJTW9kZWxOdW1iZXJbMjBdOwkJCS8vIDI3Ci0JVVNIT1JUCU51bVNlY3RvcnNQZXJJbnQJOjg7CQkvLyA0NyBNdWx0aXBsZSBNb2RlIC0gU2VjL0JsawotCVVTSE9SVAlSZXNlcnZlZDIJCQk6ODsJCS8vIDQ3Ci0JVVNIT1JUCURvdWJsZVdvcmRNb2RlOwkJCQkvLyA0OCBmbGFnIGZvciBkb3VibGUgd29yZCBtb2RlIGNhcGFibGUKLQlVU0hPUlQJVmVuZG9yVW5pcXVlMQkJOjg7CQkvLyA0OQotCVVTSE9SVAlTdXBwb3J0RE1BCQkJOjE7CQkvLyA0OSBETUEgc3VwcG9ydGVkCi0JVVNIT1JUCVN1cHBvcnRMQkEJCQk6MTsJCS8vIDQ5IExCQSBzdXBwb3J0ZWQKLQlVU0hPUlQJU3VwcG9ydElPUkRZRGlzYWJsZQk6MTsJCS8vIDQ5IElPUkRZIGNhbiBiZSBkaXNhYmxlZAotCVVTSE9SVAlTdXBwb3J0SU9SRFkJCToxOwkJLy8gNDkgSU9SRFkgc3VwcG9ydGVkCi0JVVNIT1JUCVJlc2VydmVkUHN1ZWRvRE1BCToxOwkJLy8gNDkgcmVzZXJ2ZWQgZm9yIHBzZXVkbyBETUEgbW9kZSBzdXBwb3J0Ci0JVVNIT1JUCVJlc2VydmVkMwkJCTozOwkJLy8gNDkKLQlVU0hPUlQJUmVzZXJ2ZWQ0OwkJCQkJLy8gNTAKLQlVU0hPUlQJUmVzZXJ2ZWQ1CQkJOjg7CQkvLyA1MSBUcmFuc2ZlciBDeWNsZSBUaW1pbmcgLSBQSU8KLQlVU0hPUlQJUElPQ3ljbGVUaW1lCQk6ODsJCS8vIDUxIFRyYW5zZmVyIEN5Y2xlIFRpbWluZyAtIFBJTwotCVVTSE9SVAlSZXNlcnZlZDYJCQk6ODsJCS8vIDUyICAgICAgICAgICAgICAgICAgICAgICAtIERNQQotCVVTSE9SVAlETUFDeWNsZVRpbWUJCTo4OwkJLy8gNTIgICAgICAgICAgICAgICAgICAgICAgIC0gRE1BCi0JVVNIT1JUCVZhbGlkXzU0XzU4CQkJOjE7CQkvLyA1MyB3b3JkcyA1NCAtIDU4IGFyZSB2YWxpZAotCVVTSE9SVAlWYWxpZF82NF83MAkJCToxOwkJLy8gNTMgd29yZHMgNjQgLSA3MCBhcmUgdmFsaWQKLQlVU0hPUlQJUmVzZXJ2ZWQ3CQkJOjE0OwkvLyA1MwotCVVTSE9SVAlMb2dOdW1DeWw7CQkJCQkvLyA1NCBDdXJyZW50IFRyYW5zbGF0aW9uIC0gTnVtIEN5bAotCVVTSE9SVAlMb2dOdW1IZWFkczsJCQkJLy8gNTUgICAgICAgICAgICAgICAgICAgICAgIE51bSBIZWFkcwotCVVTSE9SVAlMb2dTZWN0b3JzUGVyVHJhY2s7CQkJLy8gNTYgICAgICAgICAgICAgICAgICAgICAgIFNlYy9UcmsKLQlVTE9ORwlMb2dUb3RhbFNlY3RvcnM7CQkJLy8gNTcgICAgICAgICAgICAgICAgICAgICAgIFRvdGFsIFNlYwotCVVTSE9SVAlDdXJyZW50TnVtU2VjUGVySW50CTo4OwkJLy8gNTkgY3VycmVudCBzZXR0aW5nIGZvciBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgaW50ZXJydXB0Ci0JVVNIT1JUCVZhbGlkTnVtU2VjUGVySW50CToxOwkJLy8gNTkgQ3VycmVudCBzZXR0aW5nIGlzIHZhbGlkIGZvciBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgaW50ZXJydXB0Ci0JVVNIT1JUCVJlc2VydmVkOAkJCTo3OwkJLy8gNTkKLQlVTE9ORwlMQkFUb3RhbFNlY3RvcnM7CQkJLy8gNjAgTEJBIE1vZGUgLSBTZWN0b3JzCi0JVVNIT1JUCURNQVNXb3JkRmxhZ3M7CQkJCS8vIDYyCi0JVVNIT1JUCURNQU1Xb3JkRmxhZ3M7CQkJCS8vIDYzCi0JVVNIT1JUCUFkdmFuY2VkUElPU3VwcG9ydCAgOjg7CQkvLyA2NCBGbG93IGNvbnRyb2wgUElPIHRyYW5zZmVyIG1vZGVzIHN1cHBvcnRlZAotCVVTSE9SVAlSZXNlcnZlZDkJCQk6ODsJCS8vIDY0Ci0JVVNIT1JUCU1pbk11bHRpRE1BQ3ljbGU7CQkJLy8gNjUgbWluaW11bSBtdWx0aXdvcmQgRE1BIHRyYW5zZmVyIGN5Y2xlIHRpbWUgcGVyIHdvcmQKLQlVU0hPUlQJUmVjb21lbmRETUFDeWNsZTsJCQkvLyA2NiBNYW51ZmFjdHVyZXIncyByZWNvbW1lbmRlIG11bHRpd29yZCBETUEgdHJhbnNmZXIgY3ljbGUgdGltZQotCVVTSE9SVAlNaW5QSU9DeWNsZVdpdGhvdXRGbG93OwkJLy8gNjcgTWluaW11bSBQSU8gdHJhbnNmZXIgY3ljbGUgdGltZSB3aXRob3V0IGZsb3cgY29udHJvbAotCVVTSE9SVAlNaW5QSU9DeWxjZVdpdGhGbG93OwkJLy8gNjggTWluaW11bSBQSU8gdHJhbnNmZXIgY3ljbGUgdGltZSB3aXRoIElPUkRZIGZsb3cgY29udHJvbAotCVVTSE9SVAlSZXNlcnZlZFNwYWNlWzI1Ni02OV07CQkvLyA2OQotCX0JSURFTlRJRllfREFUQSwgKlBJREVOVElGWV9EQVRBOwotCi0vLyBBVEFQSSBjb25maWd1cmF0aW9uIGJpdHMKLXR5cGVkZWYgc3RydWN0IF9BVEFQSV9HRU5FUkFMXzAKLQl7Ci0JVVNIT1JUCUNtZFBhY2tldFNpemUJCToyOwkJLy8gQ29tbWFuZCBwYWNrZXQgc2l6ZQotCVVTSE9SVAlSZXNlcnZlZDEJCQk6MzsKLQlVU0hPUlQJQ21kRHJxVHlwZQkJCToyOwotCVVTSE9SVAlSZW1vdmFibGUJCQk6MTsKLQlVU0hPUlQJRGV2aWNlVHlwZQkJCTo1OwotCVVTSE9SVAlSZXNlcnZlZDIJCQk6MTsKLQlVU0hPUlQJUHJvdG9jb2xUeXBlCQk6MjsKLQl9CUFUQVBJX0dFTkVSQUxfMDsKLQotI3ByYWdtYSBwYWNrICgpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcHNpX3JveS5oIGIvZHJpdmVycy9zY3NpL3BzaV9yb3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU1YjljMC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3Njc2kvcHNpX3JveS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMxICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLiBQQ0ktMjAwMCBkZXZpY2UgZHJpdmVyIGZvciBMaW51eC4KLSAqCi0gKiBwc2lfcm95LmggLSBMaW51eCBIb3N0IERyaXZlciBmb3IgUENJLTIwMDAgSW50ZWxsaUNhY2hlIFNDU0kgQWRhcHRlcnMKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTctMTk5OSBQZXJjZXB0aXZlIFNvbHV0aW9ucywgSW5jLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKLSAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAotICogbW9kaWZpY2F0aW9uLgotICoKLSAqIFRlY2huaWNhbCB1cGRhdGVzIGFuZCBwcm9kdWN0IGluZm9ybWF0aW9uIGF0OgotICogIGh0dHA6Ly93d3cucHNpZGlzay5jb20KLSAqCi0gKiBQbGVhc2Ugc2VuZCBxdWVzdGlvbnMsIGNvbW1lbnRzLCBidWcgcmVwb3J0cyB0bzoKLSAqICB0ZWNoQHBzaWRpc2suY29tIFRlY2huaWNhbCBTdXBwb3J0Ci0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLSNpZm5kZWYJUk9ZX0hPU1QKLSNkZWZpbmUJUk9ZX0hPU1QKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlQQ0kgc2V0dXAJCQkJCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZQlWRU5ET1JfUFNJCQkJMHgxMjU2Ci0jZGVmaW5lCURFVklDRV9ST1lfMQkJMHg1MjAxCQkvKiAnUjEnICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJY29udHJvbGxlciBjb25zdGFudHMJCQkJCSovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBNQVhBREFQVEVSCQkJNAkJCS8vIEluY3JlYXNlIHRoaXMgYW5kIHRoZSBzaXplcyBvZiB0aGUgYXJyYXlzIGJlbG93LCBpZiB5b3UgbmVlZCBtb3JlLgotI2RlZmluZQlNQVhfQlVTCQkJCTIKLSNkZWZpbmUJTUFYX1VOSVRTCQkJMTYKLSNkZWZpbmUJVElNRU9VVF9DT01NQU5ECQk0MDAJCQkvLyBudW1iZXIgb2YgbWlsbGlTZWNvbmRvcyBmb3IgY29tbWFuZCBidXN5IHRpbWVvdXQKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQlJL08gYWRkcmVzcyBvZmZzZXRzCQkJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFJUUl9NQUlMQk9YCQkJCQkJMHgwNDAKLSNkZWZpbmUgUlRSX0xPQ0FMX0RPT1JCRUxMCQkJCTB4MDYwCi0jZGVmaW5lIFJUUl9QQ0lfRE9PUkJFTEwJCQkJMHgwNjQKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQkJCQkJCQkJCQkJKi8KLS8qCQkJSG9zdCBjb21tYW5kIGNvZGVzCQkJCQkqLwotLyoJCQkJCQkJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJQ01EX1JFQURfQ0hTCQkweDAxCQkvKiByZWFkIHNlY3RvcnMgYXMgc3BlY2lmaWVkIChDSFMgbW9kZSkgKi8KLSNkZWZpbmUJQ01EX1JFQUQJCQkweDAyCQkvKiByZWFkIHNlY3RvcnMgYXMgc3BlY2lmaWVkIChSQkEgbW9kZSkgKi8KLSNkZWZpbmUJQ01EX1JFQURfU0cJCQkweDAzCQkvKiByZWFkIHNlY3RvcnMgdXNpbmcgc2NhdHRlci9nYXRoZXIgbGlzdCAqLwotI2RlZmluZQlDTURfV1JJVEVfQ0hTCQkweDA0CQkvKiB3cml0ZSBzZWN0b3JzIGFzIHNwZWNpZmllZCAoQ0hTIG1vZGUpICovCi0jZGVmaW5lCUNNRF9XUklURQkJCTB4MDUJCS8qIHdyaXRlIHNlY3RvcnMgYXMgc3BlY2lmaWVkIChSQkEgbW9kZSkgKi8KLSNkZWZpbmUJQ01EX1dSSVRFX1NHCQkweDA2CQkvKiB3cml0ZSBzZWN0b3JzIHVzaW5nIHNjYXR0ZXIvZ2F0aGVyIGxpc3QgKExCQSBtb2RlKSAqLwotI2RlZmluZQlDTURfUkVBRF9DSFNfU0cJCTB4MDcJCS8qIHJlYWQgc2VjdG9ycyB1c2luZyBzY2F0dGVyL2dhdGhlciBsaXN0IChDSFMgbW9kZSkgKi8KLSNkZWZpbmUJQ01EX1dSSVRFX0NIU19TRwkweDA4CQkvKiB3cml0ZSBzZWN0b3JzIHVzaW5nIHNjYXR0ZXIvZ2F0aGVyIGxpc3QgKENIUyBtb2RlKSAqLwotI2RlZmluZQlDTURfVkVSSUZZX0NIUwkJMHgwOQkJLyogdmVyaWZ5IGRhdGEgb24gc2VjdG9ycyBhcyBzcGVjaWZpZWQgKENIUyBtb2RlKSAqLwotI2RlZmluZQlDTURfVkVSSUZZCQkJMHgwQQkJLyogdmVyaWZ5IGRhdGEgb24gc2VjdG9ycyBhcyBzcGVjaWZpZWQgKFJCQSBtb2RlKSAqLwotI2RlZmluZQlDTURfREFTRF9DREIJCTB4MEIJCS8qIHByb2Nlc3MgQ0RCIGZvciBhIERBU0QgZGV2aWNlICovCi0jZGVmaW5lCUNNRF9EQVNEX0NEQl9TRwkJMHgwQwkJLyogcHJvY2VzcyBDREIgZm9yIGEgREFTRCBkZXZpY2Ugd2l0aCBzY2F0dGVyL2dhdGhlciAqLwotCi0jZGVmaW5lCUNNRF9SRUFEX0FCUwkJMHgxMAkJLyogcmVhZCBhYnNvbHV0ZSBkaXNrICovCi0jZGVmaW5lCUNNRF9XUklURV9BQlMJCTB4MTEJCS8qIHdyaXRlIGFic29sdXRlIGRpc2sgKi8KLSNkZWZpbmUJQ01EX1ZFUklGWV9BQlMJCTB4MTIJCS8qIHZlcmlmeSBhYnNvbHV0ZSBkaXNrICovCi0jZGVmaW5lCUNNRF9URVNUX1JFQURZCQkweDEzCQkvKiB0ZXN0IHVuaXQgcmVhZHkgYW5kIHJldHVybiBzdGF0dXMgY29kZSAqLwotI2RlZmluZQlDTURfTE9DS19ET09SCQkweDE0CQkvKiBsb2NrIGRldmljZSBkb29yICovCi0jZGVmaW5lCUNNRF9VTkxPQ0tfRE9PUgkJMHgxNQkJLyogdW5sb2NrIGRldmljZSBkb29yICovCi0jZGVmaW5lCUNNRF9FSkVDVF9NRURJQQkJMHgxNgkJLyogZWplY3QgdGhlIG1lZGlhICovCi0jZGVmaW5lCUNNRF9VUERBVEVfQ0FQCQkweDE3CQkvKiB1cGRhdGUgY2FwYWNpdHkgaW5mb3JtYXRpb24gKi8KLSNkZWZpbmUJQ01EX1RFU1RfUFJJVgkJMHgxOAkJLyogdGVzdCBhbmQgc2V0dXAgcHJpdmF0ZSBmb3JtYXQgbWVkaWEgKi8KLQotCi0jZGVmaW5lCUNNRF9TQ1NJX1RIUlUJCTB4MzAJCS8qIFNDU0kgcGFzcyB0aHJvdWdoIENEQiAqLwotI2RlZmluZQlDTURfU0NTSV9USFJVX1NHCTB4MzEJCS8qIFNDU0kgcGFzcyB0aHJvdWdoIENEQiB3aXRoIHNjYXR0ZXIvZ2F0aGVyICovCi0jZGVmaW5lCUNNRF9TQ1NJX1JFUV9TRU5TRQkweDMyCQkvKiBTQ1NJIHBhc3MgdGhyb3VnaCByZXF1ZXN0IHNlbnNlIGFmdGVyIGNoZWNrIGNvbmRpdGlvbiAqLwotCi0jZGVmaW5lCUNNRF9EQVNEX1JBSURfUlEJMHgzNQkJLyogcmVxdWVzdCBEQVNEIFJBSUQgZHJpdmUgZGF0YSAqLwotI2RlZmluZQlDTURfREFTRF9SQUlEX1JRMAkweDMxCQkJLyogYnl0ZSAxIHN1YmNvbW1hbmQgdG8gcXVlcnkgZm9yIFJBSUQgMCBpbmZvcm1hdGF0aW9uICovCi0jZGVmaW5lCUNNRF9EQVNEX1JBSURfUlExCTB4MzIJCQkvKiBieXRlIDEgc3ViY29tbWFuZCB0byBxdWVyeSBmb3IgUkFJRCAxIGluZm9ybWF0YXRpb24gKi8KLSNkZWZpbmUJQ01EX0RBU0RfUkFJRF9SUTUJMHgzMwkJCS8qIGJ5dGUgMSBzdWJjb21tYW5kIHRvIHF1ZXJ5IGZvciBSQUlEIDUgaW5mb3JtYXRhdGlvbiAqLwotCi0jZGVmaW5lCUNNRF9EQVNEX1NDU0lfSU5RCTB4MzYJCS8qIGRvIERBU0QgaW5xdWlyZSBhbmQgcmV0dXJuIGluIFNDU0kgZm9ybWF0ICovCi0jZGVmaW5lCUNNRF9EQVNEX0NBUAkJMHgzNwkJLyogcmVhZCBEQVNEIGNhcGFjaXR5ICovCi0jZGVmaW5lCUNNRF9EQVNEX0lOUQkJMHgzOAkJLyogZG8gREFTRCBpbnF1aXJlIGZvciB0eXBlIGRhdGEgYW5kIHJldHVybiBTQ1NJL0VJREUgaW5xdWlyeSAqLwotI2RlZmluZQlDTURfU0NTSV9JTlEJCTB4MzkJCS8qIGRvIFNDU0kgaW5xdWlyZSAqLwotI2RlZmluZQlDTURfUkVBRF9TRVRVUAkJMHgzQQkJLyogR2V0IHNldHVwIHN0cnVjdHVyZXMgZnJvbSBjb250cm9sbGVyICovCi0jZGVmaW5lCUNNRF9XUklURV9TRVRVUAkJMHgzQgkJLyogUHV0IHNldHVwIHN0cnVjdHVyZXMgaW4gY29udHJvbGxlciBhbmQgYnVybiBpbiBmbGFzaCAqLwotI2RlZmluZQlDTURfUkVBRF9DT05GSUcJCTB4M0MJCS8qIEdldCB0aGUgZW50aXJlIGNvbmZpZ3VyYXRpb24gYW5kIHNldHVwIHN0cnVjdHVyZXMgKi8KLSNkZWZpbmUJQ01EX1dSSVRFX0NPTkZJRwkweDNECQkvKiBQdXQgdGhlIGVudGlyZSBjb25maWd1cmF0aW9uIGFuZCBzZXR1cCBzdHJ1Y3R1cmVzIGluIGZsYXNoICovCi0KLSNkZWZpbmUJQ01EX1RFWFRfREVWSUNFCQkweDNFCQkvKiBvYnRhaW4gZGV2aWNlIHRleHQgKi8KLSNkZWZpbmUJQ01EX1RFWFRfU0lHTk9OCQkweDNGCQkvKiBnZXQgc2lnbiBvbiBiYW5uZXIgKi8KLQotI2RlZmluZQlDTURfUVVFVUUJCQkweDQwCQkvKiBhbnkgY29tbWFuZCBiZWxvdyB0aGlzIGdlbmVyYXRlcyBhIHF1ZXVlIHRhZyBpbnRlcnJ1cHQgdG8gaG9zdCovCi0KLSNkZWZpbmUJQ01EX1BSRUZFVENICQkweDQwCQkvKiBwcmVmZXRjaCBzZWN0b3JzIGFzIHNwZWNpZmllZCAqLwotI2RlZmluZQlDTURfVEVTVF9XUklURQkJMHg0MQkJLyogVGVzdCBhIGRldmljZSBmb3Igd3JpdGUgcHJvdGVjdCAqLwotI2RlZmluZQlDTURfTEFTVF9TVEFUVVMJCTB4NDIJCS8qIGdldCBsYXN0IGNvbW1hbmQgc3RhdHVzIGFuZCBlcnJvciBkYXRhKi8KLSNkZWZpbmUJQ01EX0FCT1JUCQkJMHg0MwkJLyogYWJvcnQgY29tbWFuZCBhcyBzcGVjaWZpZWQgKi8KLSNkZWZpbmUJQ01EX0VSUk9SCQkJMHg0NAkJLyogZmV0Y2ggZXJyb3IgY29kZSBmcm9tIGEgdGFnZ2VkIG9wICovCi0jZGVmaW5lCUNNRF9ET05FCQkJMHg0NQkJLyogZG9uZSB3aXRoIG9wZXJhdGlvbiAqLwotI2RlZmluZQlDTURfRElBR05PU1RJQ1MJCTB4NDYJCS8qIGV4ZWN1dGUgY29udHJvbGxlciBkaWFnbm9zdGljcyBhbmQgd2FpdCBmb3IgcmVzdWx0cyAqLwotI2RlZmluZQlDTURfRkVBVFVSRV9NT0RFCTB4NDcJCS8qIGZlYXR1cmUgbW9kZSBjb250cm9sIHdvcmQgKi8KLSNkZWZpbmUJQ01EX0RBU0RfSU5RVUlSRQkweDQ4CQkvKiBpbnF1aXJlIGFzIHRvIERBU0QgU0NTSSBkZXZpY2UgKDMyIHBvc3NpYmxlKSAqLwotI2RlZmluZQlDTURfRkVBVFVSRV9RVUVSWQkweDQ5CQkvKiBxdWVyeSB0aGUgZmVhdHVyZSBjb250cm9sIHdvcmQgKi8KLSNkZWZpbmUJQ01EX0RBU0RfRUpFQ1QJCTB4NEEJCS8qIEVqZWN0IHJlbW92YWJsZSBtZWRpYSBmb3IgREFTRCB0eXBlICovCi0jZGVmaW5lCUNNRF9EQVNEX0xPQ0sJCTB4NEIJCS8qIExvY2sgcmVtb3ZhYmxlIG1lZGlhIGZvciBEQVNEIHR5cGUgKi8KLSNkZWZpbmUJQ01EX0RBU0RfVFlQRQkJMHg0QwkJLyogb2J0YWluIERBU0QgZGV2aWNlIHR5cGUgKi8KLSNkZWZpbmUJQ01EX05VTV9ERVYJCQkweDRECQkvKiBvYnRhaW4gdGhlIG51bWJlciBvZiBkZXZpY2VzIGNvbm5lY3RlZCB0byB0aGUgY29udHJvbGxlciAqLwotI2RlZmluZQlDTURfR0VUX1BBUk1TCQkweDRFCQkvKiBvYnRhaW4gZGV2aWNlIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUJQ01EX1NQRUNJRlkJCQkweDRGCQkvKiBzcGVjaWZ5IG9wZXJhdGluZyBzeXN0ZW0gZm9yIHNjYXR0ZXIvZ2F0aGVyIG9wZXJhdGlvbnMgKi8KLQotI2RlZmluZQlDTURfUkFJRF9HRVRfREVWCTB4NTAJCS8qIHJlYWQgUkFJRCBkZXZpY2UgZ2VvbWV0cnkgKi8KLSNkZWZpbmUgQ01EX1JBSURfUkVBRAkJMHg1MQkJLyogcmVhZCBSQUlEIDEgcGFyYW1ldGVyIGJsb2NrICovCi0jZGVmaW5lCUNNRF9SQUlEX1dSSVRFCQkweDUyCQkvKiB3cml0ZSBSQUlEIDEgcGFyYW1ldGVyIGJsb2NrICovCi0jZGVmaW5lCUNNRF9SQUlEX0xJVEVVUAkJMHg1MwkJLyogTGlnaHQgdXAgdGhlIGRyaXZlIGxpZ2h0IGZvciBpZGVudGlmaWNhdGlvbiAqLwotI2RlZmluZQlDTURfUkFJRF9SRUJVSUxECTB4NTQJCS8qIGlzc3VlIGEgUkFJRCAxIHBhaXIgcmVidWlsZCAqLwotI2RlZmluZQlDTURfUkFJRF9NVVRFCQkweDU1CQkvKiBtdXRlIFJBSUQgZmFpbHVyZSBhbGFybSAqLwotI2RlZmluZQlDTURfUkFJRF9GQUlMCQkweDU2CQkvKiBpbmR1Y2UgYSBSQUlEIGZhaWx1cmUgKi8KLSNkZWZpbmUJQ01EX1JBSURfU1RBVFVTCQkweDU3CQkvKiBnZXQgc3RhdHVzIG9mIFJBSUQgcGFpciAqLwotI2RlZmluZQlDTURfUkFJRF9TVE9QCQkweDU4CQkvKiBzdG9wIGFueSByZWNvbnN0cnVjdCBpbiBwcm9ncmVzcyAqLwotI2RlZmluZSBDTURfUkFJRF9TVEFSVAkJMHg1OQkJLyogc3RhcnQgcmVjb25zdHJ1Y3QgKi8KLSNkZWZpbmUJQ01EX1JBSUQwX1JFQUQJCTB4NUEJCS8qIHJlYWQgUkFJRCAwIHBhcmFtZXRlciBibG9jayAqLwotI2RlZmluZQlDTURfUkFJRDBfV1JJVEUJCTB4NUIJCS8qIHdyaXRlIFJBSUQgMCBwYXJhbWV0ZXIgYmxvY2sgKi8KLSNkZWZpbmUJQ01EX1JBSUQ1X1JFQUQJCTB4NUMJCS8qIHJlYWQgUkFJRCA1IHBhcmFtZXRlciBibG9jayAqLwotI2RlZmluZQlDTURfUkFJRDVfV1JJVEUJCTB4NUQJCS8qIHdyaXRlIFJBSUQgNSBwYXJhbWV0ZXIgYmxvY2sgKi8KLQotI2RlZmluZQlDTURfRVJBU0VfVEFCTEVTCTB4NUYJCS8qIGVyYXNlIHBhcnRpdGlvbiB0YWJsZSBhbmQgUkFJRCBzaWduYXR1dHVyZXMgKi8KLQotI2RlZmluZQlDTURfU0NTSV9HRVQJCTB4NjAJCS8qIGdldCBTQ1NJIHBhc3MgdGhyb3VnaCBkZXZpY2VzICovCi0jZGVmaW5lCUNNRF9TQ1NJX1RJTUVPVVQJMHg2MQkJLyogc2V0IFNDU0kgcGFzcyB0aHJvdWdoIHRpbWVvdXQgKi8KLSNkZWZpbmUJQ01EX1NDU0lfRVJST1IJCTB4NjIJCS8qIGdldCBTQ1NJIHBhc3MgdGhyb3VnaCByZXF1ZXN0IHNlbnNlIGxlbmd0aCBhbmQgcmVzaWR1YWwgZGF0YSBjb3VudCAqLwotI2RlZmluZQlDTURfR0VUX1NQQVJNUwkJMHg2MwkJLyogZ2V0IFNDU0kgYnVzIGFuZCB1c2VyIHBhcm1zICovCi0jZGVmaW5lCUNNRF9TQ1NJX0FCT1JUCQkweDY0CQkvKiBhYm9ydCBieSBzZXR0aW5nIHRpbWUtb3V0IHRvIHplcm8gKi8KLQotI2RlZmluZQlDTURfQ0hJUlBfQ0hJUlAJCTB4NzcJCS8qIG1ha2UgYSBjaGlycCBjaGlycCBzb3VuZCAqLwotI2RlZmluZQlDTURfR0VUX0xBU1RfRE9ORQkweDc4CQkvKiBnZXQgdGFnIG9mIGxhc3QgZG9uZSBpbiBwcm9ncmVzcyAqLwotI2RlZmluZQlDTURfR0VUX0ZFQVRVUkVTCTB4NzkJCS8qIGdldCBmZWF0dXJlIGNvZGUgYW5kIEVTTiAqLwotI2RlZmluZSBDTURfQ0xFQVJfQ0FDSEUJCTB4N0EJCS8qIENsZWFyIGNhY2hlIG9uIHNwZWNpZmllZCBkZXZpY2UgKi8KLSNkZWZpbmUJQ01EX0JJT1NfVEVTVAkJMHg3QgkJLyogVGVzdCB3aGV0aGVyIG9yIG5vdCB0byBsb2FkIEJJT1MgKi8KLSNkZWZpbmUJQ01EX1dBSVRfRkxVU0gJCTB4N0MJCS8qIHdhaXQgZm9yIGNhY2hlIGZsdXNoZWQgYW5kIGludmFsaWRhdGUgcmVhZCBjYWNoZSAqLwotI2RlZmluZQlDTURfUkVTRVRfQlVTCQkweDdECQkvKiByZXNldCB0aGUgU0NTSSBidXMgKi8KLSNkZWZpbmUJQ01EX1NUQVJUVVBfUVJZCQkweDdFCQkvKiBzdGFydHVwIGluIHByb2dyZXNzIHF1ZXJ5ICovCi0jZGVmaW5lCUNNRF9SRVNFVAkJCTB4N0YJCS8qIHJlc2V0IHRoZSBjb250cm9sbGVyICovCi0KLSNkZWZpbmUJQ01EX1JFU1RBUlRfUkVTRVQJMHg4MAkJLyogcmVsb2FkIGFuZCByZXN0YXJ0IHRoZSBjb250cm9sbGVyIGF0IGFueSByZXNldCBpc3N1ZWQgKi8KLSNkZWZpbmUJQ01EX1NPRlRfUkVTRVQJCTB4ODEJCS8qIGRvIGEgc29mdCByZXNldCBOT1chICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJCQkJCQkJCQkJCSovCi0vKgkJCQlIb3N0IHJldHVybiBlcnJvcnMJCQkJKi8KLS8qCQkJCQkJCQkJCQkJKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lCUVSUjA4X1RBR0dFRAkJMHg4MAkJLyogZG9vcmJlbGwgZXJyb3Igb3JlZCB3aXRoIHRhZyAqLwotCi0jZGVmaW5lCUVSUjE2X05PTkUJCQkweDAwMDAJCS8qIG5vIGVycm9ycyAqLwotI2RlZmluZQlFUlIxNl9TQ19DT05EX01FVAkweDAwMDQJCS8qIFNDU0kgc3RhdHVzIC0gQ29uZGl0aW9uIE1ldCAqLwotI2RlZmluZQlFUlIxNl9DTUQJCQkweDAxMDEJCS8qIGNvbW1hbmQgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMTZfU0NfQ0hFQ0tfQ09ORAkweDAwMDIJCS8qIFNDU0kgc3RhdHVzIC0gQ2hlY2sgQ29uZGl0aW9uICovCi0jZGVmaW5lCUVSUjE2X0NNRF9OT1QJCTB4MDIwMQkJLyogY29tbWFuZCBub3Qgc3VwcG9ydGVkICovCi0jZGVmaW5lIEVSUjE2X05PX0RFVklDRSAgICAgMHgwMzAxCQkvKiBpbnZhbGlkIGRldmljZSBzZWxlY3Rpb24gKi8KLSNkZWZpbmUJRVJSMTZfU0VDVE9SCQkweDAyMDIJCS8qIGJhZCBzZWN0b3IgKi8KLSNkZWZpbmUJRVJSMTZfUFJPVEVDVAkJMHgwMzAzCQkvKiB3cml0ZSBwcm90ZWN0ZWQgKi8KLSNkZWZpbmUJRVJSMTZfTk9TRUNUT1IJCTB4MDQwNAkJLyogc2VjdG9yIG5vdCBmb3VuZCAqLwotI2RlZmluZQlFUlIxNl9NRURJQQkJCTB4MEMwQwkJLyogaW52YWxpZCBtZWRpYSAqLwotI2RlZmluZQlFUlIxNl9DT05UUk9MCQkweDIwMjAJCS8qIGNvbnRyb2xsZXIgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMTZfQ09OVFJPTF9ETUEJMHgyMTIwCQkvKiBjb250cm9sbGVyIERNQSBlbmdpbmUgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMTZfTk9fQUxBUk0JCTB4MjIyMAkJLyogYWxhcm0gaXMgbm90IGFjdGl2ZSAqLwotI2RlZmluZQlFUlIxNl9PUF9CVVNZCQkweDIzMjAJCS8qIG9wZXJhdGlvbiBidXN5ICovCi0jZGVmaW5lCUVSUjE2X1NFRUsJCQkweDQwNDAJCS8qIHNlZWsgZmFpbHVyZSAqLwotI2RlZmluZQlFUlIxNl9ERVZJQ0VfRkFJTAkweDQxNDAJCS8qIGRldmljZSBoYXMgZmFpbGVkICovCi0jZGVmaW5lIEVSUjE2X1RJTUVPVVQJCTB4ODA4MAkJLyogdGltZW91dCBlcnJvciAqLwotI2RlZmluZQlFUlIxNl9ERVZfTk9UX1JFQURZCTB4QUFBQQkJLyogZHJpdmUgbm90IHJlYWR5ICovCi0jZGVmaW5lCUVSUjE2X1VOREVGSU5FRAkJMHhCQkJCCQkvKiB1bmRlZmluZWQgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMTZfV1JJVEVfRkFVTFQJMHhDQ0NDCQkvKiB3cml0ZSBmYXVsdCAqLwotI2RlZmluZSBFUlIxNl9JTlZBTElEX0RFVgkweDQwMDEJCS8qIGludmFsaWQgZGV2aWNlIGFjY2VzcyAqLwotI2RlZmluZQlFUlIxNl9ERVZJQ0VfQlVTWQkweDQwMDIJCS8qIGRldmljZSBpcyBidXN5ICovCi0jZGVmaW5lCUVSUjE2X01FTU9SWQkJMHg0MDAzCQkvKiBkZXZpY2UgcGFzcyB0aHJ1IHJlcXVpcmVzIHRvbyBtdWNoIG1lbW9yeSAqLwotI2RlZmluZQlFUlIxNl9OT19GRUFUVVJFCTB4NDBGQQkJLyogZmVhdHVyZSBubyBpbXBsZW1lbnRlZCAqLwotI2RlZmluZQlFUlIxNl9OT1RBRwkJCTB4NDBGRAkJLyogbm8gdGFnIHNwYWNlIGF2YWlsYWJsZSAqLwotI2RlZmluZQlFUlIxNl9OT1RfUkVBRFkJCTB4NDBGRQkJLyogY29udHJvbGxlciBub3QgcmVhZHkgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMTZfU0VUVVBfRkxBU0gJMHg1MDUwCQkvKiBlcnJvciB3aGVuIHdyaXRpbmcgc2V0dXAgdG8gZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lCUVSUjE2X1NFVFVQX1NJWkUJMHg1MDUxCQkvKiBzZXR1cCBibG9jayBzaXplIGVycm9yICovCi0jZGVmaW5lCUVSUjE2X1NFTlNFCQkJMHhGRkZGCQkvKiBzZW5zZSBvcGVyZXJhdGlvbiBmYWlsZWQgKi8KLSNkZWZpbmUJRVJSMTZfU0NfQlVTWQkJMHgwMDA4CQkvKiBTQ1NJIHN0YXR1cyAtIEJ1c3kgKi8KLSNkZWZpbmUJRVJSMTZfU0NfUkVTX0NPTkZMCTB4MDAxOAkJLyogU0NTSSBzdGF0dXMgLSBSZXNlcnZhdGlvbiBDb25mbGljdCAqLwotI2RlZmluZQlFUlIxNl9TQ19DTURfVEVSTQkweDAwMjIJCS8qIFNDU0kgc3RhdHVzIC0gQ29tbWFuZCBUZXJtaW5hdGVkICovCi0jZGVmaW5lCUVSUjE2X1NDX09USEVSCQkweDAwRkYJCS8qIFNDU0kgc3RhdHVzIC0gbm90IHJlY29nbml6ZWQgKGFueSB2YWx1ZSBtYXNrZWQpICovCi0jZGVmaW5lCUVSUjE2X01FRElBX0NIQU5HRUQJMHg4MDAxCQkvKiBkZXZpY2VzIG1lZGlhIGhhcyBiZWVuIGNoYW5nZWQgKi8KLQotI2RlZmluZQlFUlIzMl9OT05FCQkJMHgwMDAwMDAwMAkvKiBubyBlcnJvcnMgKi8KLSNkZWZpbmUJRVJSMzJfU0NfQ09ORF9NRVQJMHgwMDAwMDAwNAkvKiBTQ1NJIHN0YXR1cyAtIENvbmRpdGlvbiBNZXQgKi8KLSNkZWZpbmUJRVJSMzJfQ01ECQkJMHgwMDAxMDEwMQkvKiBjb21tYW5kIGVycm9yICovCi0jZGVmaW5lCUVSUjMyX1NDX0NIRUNLX0NPTkQJMHgwMDAyMDAwMgkvKiBTQ1NJIHN0YXR1cyAtIENoZWNrIENvbmRpdGlvbiAqLwotI2RlZmluZQlFUlIzMl9DTURfTk9UCQkweDAwMDMwMjAxCS8qIGNvbW1hbmQgbm90IHN1cHBvcnRlZCAqLwotI2RlZmluZSBFUlIzMl9OT19ERVZJQ0UgICAgIDB4MDAwNDAzMDEJLyogaW52YWxpZCBkZXZpY2Ugc2VsZWN0aW9uICovCi0jZGVmaW5lCUVSUjMyX1NFQ1RPUgkJMHgwMDA1MDIwMgkvKiBiYWQgc2VjdG9yICovCi0jZGVmaW5lCUVSUjMyX1BST1RFQ1QJCTB4MDAwNjAzMDMJLyogd3JpdGUgcHJvdGVjdGVkICovCi0jZGVmaW5lCUVSUjMyX05PU0VDVE9SCQkweDAwMDcwNDA0CS8qIHNlY3RvciBub3QgZm91bmQgKi8KLSNkZWZpbmUJRVJSMzJfTUVESUEJCQkweDAwMDgwQzBDCS8qIGludmFsaWQgbWVkaWEgKi8KLSNkZWZpbmUJRVJSMzJfQ09OVFJPTAkJMHgwMDA5MjAyMAkvKiBjb250cm9sbGVyIGVycm9yICovCi0jZGVmaW5lCUVSUjMyX0NPTlRST0xfRE1BCTB4MDAwQTIxMjAJLyogQ29udHJvbGxlciBETUEgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMzJfTk9fQUxBUk0JCTB4MDAwQjIyMjAgCS8qIGFsYXJtIGlzIG5vdCBhY3RpdmUgKi8KLSNkZWZpbmUJRVJSMzJfT1BfQlVTWQkJMHgwMDBDMjMyMAkvKiBvcGVyYXRpb24gYnVzeSAqLwotI2RlZmluZQlFUlIzMl9TRUVLCQkJMHgwMDBENDA0MAkvKiBzZWVrIGZhaWx1cmUgKi8KLSNkZWZpbmUJRVJSMzJfREVWSUNFX0ZBSUwJMHgwMDBFNDE0MAkvKiBkZXZpY2UgaGFzIGZhaWxlZCAqLwotI2RlZmluZSBFUlIzMl9USU1FT1VUCQkweDAwMEY4MDgwCS8qIHRpbWVvdXQgZXJyb3IgKi8KLSNkZWZpbmUJRVJSMzJfREVWX05PVF9SRUFEWQkweDAwMTBBQUFBCS8qIGRyaXZlIG5vdCByZWFkeSAqLwotI2RlZmluZQlFUlIzMl9VTkRFRklORUQJCTB4MDAxMUJCQkIJLyogdW5kZWZpbmVkIGVycm9yICovCi0jZGVmaW5lCUVSUjMyX1dSSVRFX0ZBVUxUCTB4MDAxMkNDQ0MJLyogd3JpdGUgZmF1bHQgKi8KLSNkZWZpbmUgRVJSMzJfSU5WQUxJRF9ERVYJMHgwMDEzNDAwMQkvKiBpbnZhbGlkIGRldmljZSBhY2Nlc3MgKi8KLSNkZWZpbmUJRVJSMzJfREVWSUNFX0JVU1kJMHgwMDE0NDAwMgkvKiBkZXZpY2UgaXMgYnVzeSAqLwotI2RlZmluZQlFUlIzMl9NRU1PUlkJCTB4MDAxNTQwMDMJLyogZGV2aWNlIHBhc3MgdGhydSByZXF1aXJlcyB0b28gbXVjaCBtZW1vcnkgKi8KLSNkZWZpbmUJRVJSMzJfTk9fRkVBVFVSRQkweDAwMTY0MEZBCS8qIGZlYXR1cmUgbm8gaW1wbGVtZW50ZWQgKi8KLSNkZWZpbmUJRVJSMzJfTk9UQUcJCQkweDAwMTc0MEZECS8qIG5vIHRhZyBzcGFjZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUJRVJSMzJfTk9UX1JFQURZCQkweDAwMTg0MEZFCS8qIGNvbnRyb2xsZXIgbm90IHJlYWR5IGVycm9yICovCi0jZGVmaW5lCUVSUjMyX1NFVFVQX0ZMQVNICTB4MDAxOTUwNTAJLyogZXJyb3Igd2hlbiB3cml0aW5nIHNldHVwIHRvIGZsYXNoIG1lbW9yeSAqLwotI2RlZmluZQlFUlIzMl9TRVRVUF9TSVpFCTB4MDAxQTUwNTEJLyogc2V0dXAgYmxvY2sgc2l6ZSBlcnJvciAqLwotI2RlZmluZQlFUlIzMl9TRU5TRQkJCTB4MDAxQkZGRkYJLyogc2Vuc2Ugb3BlcmVyYXRpb24gZmFpbGVkICovCi0jZGVmaW5lCUVSUjMyX1NDX0JVU1kJCTB4MDAxQzAwMDgJLyogU0NTSSBzdGF0dXMgLSBCdXN5ICovCi0jZGVmaW5lCUVSUjMyX1NDX1JFU19DT05GTAkweDAwMUQwMDE4CS8qIFNDU0kgc3RhdHVzIC0gUmVzZXJ2YXRpb24gQ29uZmxpY3QgKi8KLSNkZWZpbmUJRVJSMzJfU0NfQ01EX1RFUk0JMHgwMDFFMDAyMgkvKiBTQ1NJIHN0YXR1cyAtIENvbW1hbmQgVGVybWluYXRlZCAqLwotI2RlZmluZQlFUlIzMl9TQ19PVEhFUgkJMHgwMDFGMDBGRgkvKiBTQ1NJIHN0YXR1cyAtIG5vdCByZWNvZ25pemVkIChhbnkgdmFsdWUgbWFza2VkKSAqLwotI2RlZmluZQlFUlIzMl9NRURJQV9DSEFOR0VECTB4MDAyMDgwMDEJLyogZGV2aWNlcyBtZWRpYSBoYXMgYmVlbiBjaGFuZ2VkICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKgkJCQkJCQkJCQkJCSovCi0vKglIb3N0IE9wZXJhdGluZyBTeXN0ZW0gc3BlY2lmaWNhdGlvbiBjb2RlcwkqLwotLyoJCQkJCQkJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUJU1BFQ19JTlRFUlJVUFQJCTB4ODAJCS8qIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgaG9zdCBpbnRlcnJ1cHQgKi8KLSNkZWZpbmUJU1BFQ19CQUNLV0FSRF9TRwkweDQwCQkvKiBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHNjYXR0ZXIvZ2F0aGVyIGl0ZW1zIHJldmVyc2VkICovCi0jZGVmaW5lCVNQRUNfRE9TX0JMT0NLCQkweDAxCQkvKiBET1MgREFTRCBibG9ja2luZyBvbiBwYXNzIHRocm91Z2ggKi8KLSNkZWZpbmUJU1BFQ19PUzJfVjMJCQkweDAyCQkvKiBPUy8yIFdhcnAgKi8KLSNkZWZpbmUJU1BDRV9TQ09fMzI0MgkJMHgwNAkJLyogU0NPIDMuNC4yLjIgKi8KLSNkZWZpbmUJU1BFQ19RTlhfNFgJCQkweDA1CQkvKiBRTlggNC5YWCAqLwotI2RlZmluZQlTUEVDX05PVkVMTF9OV1BBCTB4MDgJCS8qIE5vdmVsbCBOV1BBIHNjYXR0ZXIvZ2F0aGVyIHN1cHBvcnQgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qCQkJCQkJCQkJCQkJKi8KLS8qCUlucXVpcmUgc3RydWN0dXJlcwkJCQkJCQkqLwotLyoJCQkJCQkJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXR5cGVkZWYJc3RydWN0CV9DTlRfU0NTSV9JTlEKLQl7Ci0JVUNIQVIJZGV2dDsJCQkJCQkvKiAwMDogZGV2aWNlIHR5cGUgKi8KLQlVQ0hBUglkZXZ0bTsJCQkJCQkvKiAwMTogZGV2aWNlIHR5cGUgbW9kaWZpZXIgKi8KLQlVQ0hBUglzdmVyczsJCQkJCQkvKiAwMjogU0NTSSB2ZXJzaW9uICovCi0JVUNIQVIJcmZtdDsJCQkJCQkvKiAwMzogcmVzcG9uc2UgZGF0YSBmb3JtYXQgKi8KLQlVQ0hBUglhZGxlbjsJCQkJCQkvKiAwNDogYWRkaXRpb25hbCBsZW5ndGggb2YgZGF0YSAqLwotCVVDSEFSCXJlczE7CQkJCQkJLyogMDU6ICovCi0JVUNIQVIJcmVzMjsJCQkJCQkvKiAwNjogKi8KLQlVQ0hBUglmbmNzOwkJCQkJCS8qIDA3OiBmdW5jdGlvbmFsIGNhcGFiaWxpdGllcyAqLwotCVVDSEFSCXZpZFs4XTsJCQkJCQkvKiAwODogdmVuZG9yIElEICovCi0JVUNIQVIJcGlkWzE2XTsJCQkJCS8qIDEwOiBwcm9kdWN0IElEICovCi0JVUNIQVIJcmV2WzRdOwkJCQkJCS8qIDIwOiBwcm9kdWN0IHJldmlzaW9uICovCi0JfQlDTlRfU0NTSV9JTlE7Ci0KLXR5cGVkZWYJc3RydWN0CV9DTlRfSURFX0lOUQotCXsKLQlVU0hPUlQJR2VuZXJhbENvbmZpZ3VyYXRpb247CQkvKiAwMCAqLwotCVVTSE9SVAlOdW1iZXJPZkN5bGluZGVyczsJCQkvKiAwMiAqLwotCVVTSE9SVAlSZXNlcnZlZDE7CQkJCQkvKiAwNCAqLwotCVVTSE9SVAlOdW1iZXJPZkhlYWRzOwkJCQkvKiAwNiAqLwotCVVTSE9SVAlVbmZvcm1hdHRlZEJ5dGVzUGVyVHJhY2s7CS8qIDA4ICovCi0JVVNIT1JUCVVuZm9ybWF0dGVkQnl0ZXNQZXJTZWN0b3I7CS8qIDBBICovCi0JVVNIT1JUCVNlY3RvcnNQZXJUcmFjazsJCQkvKiAwQyAqLwotCVVTSE9SVAlWZW5kb3JVbmlxdWUxWzNdOwkJCS8qIDBFICovCi0JVVNIT1JUCVNlcmlhbE51bWJlclsxMF07CQkJLyogMTQgKi8KLQlVU0hPUlQJQnVmZmVyVHlwZTsJCQkJCS8qIDI4ICovCi0JVVNIT1JUCUJ1ZmZlclNlY3RvclNpemU7CQkJLyogMkEgKi8KLQlVU0hPUlQJTnVtYmVyT2ZFY2NCeXRlczsJCQkvKiAyQyAqLwotCVVTSE9SVAlGaXJtd2FyZVJldmlzaW9uWzRdOwkJLyogMkUgKi8KLQlVU0hPUlQJTW9kZWxOdW1iZXJbMjBdOwkJCS8qIDM2ICovCi0JVUNIQVIJTWF4aW11bUJsb2NrVHJhbnNmZXI7CQkvKiA1RSAqLwotCVVDSEFSCVZlbmRvclVuaXF1ZTI7CQkJCS8qIDVGICovCi0JVVNIT1JUCURvdWJsZVdvcmRJbzsJCQkJLyogNjAgKi8KLQlVU0hPUlQJQ2FwYWJpbGl0aWVzOwkJCQkvKiA2MiAqLwotCVVTSE9SVAlSZXNlcnZlZDI7CQkJCQkvKiA2NCAqLwotCVVDSEFSCVZlbmRvclVuaXF1ZTM7CQkJCS8qIDY2ICovCi0JVUNIQVIJUGlvQ3ljbGVUaW1pbmdNb2RlOwkJCS8qIDY3ICovCi0JVUNIQVIJVmVuZG9yVW5pcXVlNDsJCQkJLyogNjggKi8KLQlVQ0hBUglEbWFDeWNsZVRpbWluZ01vZGU7CQkJLyogNjkgKi8KLQlVU0hPUlQJVHJhbnNsYXRpb25GaWVsZHNWYWxpZDsJCS8qIDZBICovCi0JVVNIT1JUCU51bWJlck9mQ3VycmVudEN5bGluZGVyczsJLyogNkMgKi8KLQlVU0hPUlQJTnVtYmVyT2ZDdXJyZW50SGVhZHM7CQkvKiA2RSAqLwotCVVTSE9SVAlDdXJyZW50U2VjdG9yc1BlclRyYWNrOwkJLyogNzAgKi8KLQlVTE9ORwlDdXJyZW50U2VjdG9yQ2FwYWNpdHk7CQkvKiA3MiAqLwotCX0JQ05UX0lERV9JTlE7Ci0KLXR5cGVkZWYgc3RydWN0CV9EQVNEX0lOUVVJUkUKLQl7Ci0JVUxPTkcJdHlwZTsJCQkJCQkvKiAwID0gU0NTSSwgMSA9IElERSAqLwotCXVuaW9uCi0JCXsKLQkJQ05UX1NDU0lfSU5RCXNjc2k7CQkJLyogU0NTSSBpbnF1aXJlIGRhdGEgKi8KLQkJQ05UX0lERV9JTlEJCWlkZTsJCQkvKiBJREUgaW5xdWlyZSBkYXRhICovCi0JCX0JaW5xOwotCX0JREFTRF9JTlFVSVJFOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoJCQkJCQkJCQkJCQkqLwotLyoJRGV2aWNlIENvZGVzCQkJCQkJCQkqLwotLyoJCQkJCQkJCQkJCQkqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgREVWQ19EQVNECQkJMHgwMAkJLyogRGlyZWN0LWFjY2VzcyBTdG9yYWdlIERldmljZSAqLwotI2RlZmluZSBERVZDX1NFUUFDRVNTCQkweDAxCQkvKiBTZXF1ZW50aWFsLWFjY2VzcyBkZXZpY2UgKi8KLSNkZWZpbmUgREVWQ19QUklOVEVSCQkweDAyCQkvKiBQcmludGVyIGRldmljZSAqLwotI2RlZmluZSBERVZDX1BST0NFU1NPUgkJMHgwMwkJLyogUHJvY2Vzc29yIGRldmljZSAqLwotI2RlZmluZSBERVZDX1dSSVRFT05DRQkJMHgwNAkJLyogV3JpdGUtb25jZSBkZXZpY2UgKi8KLSNkZWZpbmUgREVWQ19DRFJPTQkJCTB4MDUJCS8qIENELVJPTSBkZXZpY2UgKi8KLSNkZWZpbmUgREVWQ19TQ0FOTkVSCQkweDA2CQkvKiBTY2FubmVyIGRldmljZSAqLwotI2RlZmluZSBERVZDX09QVElDQUwJCTB4MDcJCS8qIE9wdGljYWwgbWVtb3J5IGRldmljZSAqLwotI2RlZmluZSBERVZDX01FRENIR1IJCTB4MDgJCS8qIE1lZGl1bSBjaGFuZ2VyIGRldmljZSAqLwotI2RlZmluZQlERVZDX0RBU0RfUkVNT1ZBQkxFCTB4ODAJCS8qIERpcmVjdC1hY2Nlc3Mgc3RvcmFnZSBkZXZpY2UsIFJlbW92YWJsZSAqLwotI2RlZmluZQlERVZDX05PTkUJCQkweEZGCQkvKiBubyBkZXZpY2UgKi8KLQotLy8gU0NTSSBjb250cm9scyBmb3IgUkFJRAotI2RlZmluZQlTQ19NWV9SQUlECQkJMHhCRgkJCS8vIG91ciBzcGVjaWFsIENEQiBjb21tYW5kIGJ5dGUgZm9yIFdpbjk1Li4uIGludGVyZmFjZQotI2RlZmluZQlNWV9TQ1NJX1FVRVJZMAkJMHgzMQkJCS8vIGJ5dGUgMSBzdWJjb21tYW5kIHRvIHF1ZXJ5IGRyaXZlciBmb3IgUkFJRCAwIGluZm9ybWF0YXRpb24KLSNkZWZpbmUJTVlfU0NTSV9RVUVSWTEJCTB4MzIJCQkvLyBieXRlIDEgc3ViY29tbWFuZCB0byBxdWVyeSBkcml2ZXIgZm9yIFJBSUQgMSBpbmZvcm1hdGF0aW9uCi0jZGVmaW5lCU1ZX1NDU0lfUVVFUlk1CQkweDMzCQkJLy8gYnl0ZSAxIHN1YmNvbW1hbmQgdG8gcXVlcnkgZHJpdmVyIGZvciBSQUlEIDUgaW5mb3JtYXRhdGlvbgotI2RlZmluZQlNWV9TQ1NJX1JFQlVJTEQJCTB4NDAJCQkvLyBieXRlIDEgc3ViY29tbWFuZCB0byByZWNvbnN0cnVjdCBhIG1pcnJvcmVkIHBhaXIKLSNkZWZpbmUgTVlfU0NTSV9ERU1PRkFJTAkweDU0CQkJLy8gYnl0ZSAxIHN1YmNvbW1hbmQgZm9yIFJBSUQgZmFpbHVyZSBkZW1vbnN0cmF0aW9uCi0jZGVmaW5lCU1ZX1NDU0lfQUxBUk1NVVRFCTB4NjAJCQkvLyBieXRlIDEgc3ViY29tbWFuZCB0byBtdXRlIGFueSBhbGFybSBjdXJyZW50bHkgb24KLQotCi0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsMTA0MF9mdy5oIGIvZHJpdmVycy9zY3NpL3FsMTA0MF9mdy5oCmluZGV4IDg5ZDhlMDkuLmFhZjkyODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbDEwNDBfZncuaAorKysgYi9kcml2ZXJzL3Njc2kvcWwxMDQwX2Z3LmgKQEAgLTI1LDE3ICsyNSwxNyBAQAogICovCiAKIC8qCi0gKglGaXJtd2FyZSBWZXJzaW9uIDcuNjUuMDAgKDE0OjE3IEp1bCAyMCwgMTk5OSkKKyAqCUZpcm13YXJlIFZlcnNpb24gNy42NS4wNiAoMTQ6MzggSmFuIDA3LCAyMDAyKQogICovCiAKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGZpcm13YXJlX3ZlcnNpb25bXSA9IHs3LDY1LDB9Oworc3RhdGljIHVuc2lnbmVkIGNoYXIgZmlybXdhcmVfdmVyc2lvbltdID0gezcsNjUsNn07CiAKLSNkZWZpbmUgRldfVkVSU0lPTl9TVFJJTkcgIjcuNjUuMCIKKyNkZWZpbmUgRldfVkVSU0lPTl9TVFJJTkcgIjcuNjUuMDYiCiAKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCByaXNjX2NvZGVfYWRkcjAxID0gMHgxMDAwIDsKIAogc3RhdGljIHVuc2lnbmVkIHNob3J0IHJpc2NfY29kZTAxW10gPSB7IAotCTB4MDA3OCwgMHgxMDNhLCAweDAwMDAsIDB4NDA1NywgMHgwMDAwLCAweDIwNDMsIDB4NGY1MCwgMHg1OTUyLAorCTB4MDA3OCwgMHgxMDNhLCAweDAwMDAsIDB4NDE1OCwgMHgwMDAwLCAweDIwNDMsIDB4NGY1MCwgMHg1OTUyLAogCTB4NDk0NywgMHg0ODU0LCAweDIwMzEsIDB4MzkzOSwgMHgzNTIwLCAweDUxNGMsIDB4NGY0NywgMHg0OTQzLAogCTB4MjA0MywgMHg0ZjUyLCAweDUwNGYsIDB4NTI0MSwgMHg1NDQ5LCAweDRmNGUsIDB4MjA0OSwgMHg1MzUwLAogCTB4MzEzMCwgMHgzMjMwLCAweDIwNDksIDB4MmY1NCwgMHgyMDQ2LCAweDY5NzIsIDB4NmQ3NywgMHg2MTcyLApAQCAtNDUsNyArNDUsNyBAQAogCTB4MzAzMSwgMHgyMDI0LCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwgMHgwMDQ4LAogCTB4MTA0NSwgMHgwMDM4LCAweDEwNGIsIDB4MDA3OCwgMHgxMDQ3LCAweDAwMjgsIDB4MTA0YiwgMHgyMGI5LAogCTB4MTIxMiwgMHgwMDc4LCAweDEwNGQsIDB4MjBiOSwgMHgyMjIyLCAweDIwYzEsIDB4MDAwOCwgMHgyMDcxLAotCTB4MDAxMCwgMHg3MGMzLCAweDAwMDQsIDB4MjBjOSwgMHg3N2ZmLCAweDIwODksIDB4MTE4NiwgMHg3MGM3LAorCTB4MDAxMCwgMHg3MGMzLCAweDAwMDQsIDB4MjBjOSwgMHg3OGZmLCAweDIwODksIDB4MTE4NiwgMHg3MGM3LAogCTB4NDk1MywgMHg3MGNiLCAweDUwMjAsIDB4NzBjZiwgMHgyMDIwLCAweDcwZDMsIDB4MDAwNywgMHgzZjAwLAogCTB4NzBkNiwgMHgyMGMxLCAweDAwMDgsIDB4MjAxOSwgMHgwMDAwLCAweDIwMDksIDB4ZmVmZiwgMHgyMTAwLAogCTB4MjAwYiwgMHhhNWE1LCAweGExZWMsIDB4N2ZmZiwgMHgyZDY0LCAweDIwNmIsIDB4MGEwYSwgMHhhZGRjLApAQCAtNTksNjIgKzU5LDYyIEBACiAJMHgxMThlLCAweDI4NGEsIDB4MjYzYSwgMHg5OGMwLCAweGExODgsIDB4MTAwMCwgMHgyMTJjLCAweDIwMGIsCiAJMHhhNWE1LCAweDIxMTQsIDB4YTI4NiwgMHhhNWE1LCAweDAwNDAsIDB4MTBiYywgMHgyNTBhLCAweGExOGEsCiAJMHgxMDAwLCAweDk4YzEsIDB4MDA3OCwgMHgxMGMxLCAweDI1MGEsIDB4MDA3OCwgMHgxMGMxLCAweDJjNmEsCi0JMHgyYTVhLCAweDIxMzAsIDB4YTE4YSwgMHgwMDQwLCAweDIxMjgsIDB4YTFhMiwgMHg1MTAwLCAweDg0MjQsCi0JMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4YTE5MiwgMHg3ODAwLCAweDIwMDksCi0JMHgwMDAwLCAweDIwMDEsIDB4MDAzMSwgMHgxMDc4LCAweDFjYmEsIDB4MjIxOCwgMHgyMDc5LCAweDUxMDAsCisJMHgyYTVhLCAweDIxMzAsIDB4YTE4YSwgMHgwMDQwLCAweDIxMjgsIDB4YTFhMiwgMHg1MjAwLCAweDg0MjQsCisJMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4YTE5MiwgMHg3OTAwLCAweDIwMDksCisJMHgwMDAwLCAweDIwMDEsIDB4MDAzMSwgMHgxMDc4LCAweDFkMjYsIDB4MjIxOCwgMHgyMDc5LCAweDUyMDAsCiAJMHgyZmEwLCAweDI0MDgsIDB4MjAxMSwgMHgwMDAwLCAweDIwYTksIDB4MDA0MCwgMHg0MmE0LCAweDgxMDksCiAJMHgwMGMwLCAweDEwZGMsIDB4N2VmMiwgMHg4NTI4LCAweDdkZTYsIDB4N2NlYSwgMHg3YmVlLCAweDc4ODMsCiAJMHgwMDAwLCAweDIwMzEsIDB4MDAzMCwgMHg3OGNmLCAweDAxMDEsIDB4NzgwYiwgMHgwMDAyLCAweDc4MGYsCi0JMHgwMDAyLCAweDc4NGYsIDB4MDAwMywgMHgyMDY5LCAweDUxNDAsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsCisJMHgwMDAyLCAweDc4NGYsIDB4MDAwMywgMHgyMDY5LCAweDUyNDAsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsCiAJMHhhMDgyLCAweDAwMDUsIDB4MDA0OCwgMHgxMTA0LCAweDAwMzgsIDB4MTEwMCwgMHgwMDc4LCAweDExMDgsCiAJMHg2ODFiLCAweDAwM2MsIDB4MDA3OCwgMHgxMTBhLCAweDAwYTgsIDB4MTEwOCwgMHg2ODFiLCAweDAwM2MsCiAJMHg2ODFiLCAweDAwMjgsIDB4NjgwNywgMHgwMDA3LCAweDY4MGIsIDB4MDBmYSwgMHg2ODBmLCAweDAwMDgsCiAJMHg2ODEzLCAweDAwMDUsIDB4NjgyMywgMHgwMDAwLCAweDY4MjcsIDB4MDAwNiwgMHg2ODE3LCAweDAwMDgsCi0JMHg2ODJiLCAweDAwMDAsIDB4NjgxZiwgMHgwMDE5LCAweDIwNjksIDB4NTM4MCwgMHgyMDExLCAweDAwMjAsCisJMHg2ODJiLCAweDAwMDAsIDB4NjgxZiwgMHgwMDE5LCAweDIwNjksIDB4NTQ4MCwgMHgyMDExLCAweDAwMjAsCiAJMHgyMDA5LCAweDAwMTAsIDB4NjgwYiwgMHgwODBjLCAweDY4MGYsIDB4MDAxOSwgMHg2ODAzLCAweGZkMDAsCiAJMHg2ODA3LCAweDAwMTgsIDB4NmExYSwgMHgyZDAwLCAweGEwZTgsIDB4MDAwOCwgMHhhMjkwLCAweDAwMDQsCi0JMHg4MTA5LCAweDAwYzAsIDB4MTEyMiwgMHgyMDY5LCAweDU0MDAsIDB4MjAwOSwgMHgwMDAyLCAweDIwYTksCisJMHg4MTA5LCAweDAwYzAsIDB4MTEyMiwgMHgyMDY5LCAweDU1MDAsIDB4MjAwOSwgMHgwMDAyLCAweDIwYTksCiAJMHgwMTAwLCAweDY4MzcsIDB4MDAwMCwgMHg2ODBiLCAweDAwNDAsIDB4N2JmMCwgMHhhMzg2LCAweGZlZmYsCiAJMHgwMGMwLCAweDExNDgsIDB4NjgxNywgMHgwMTAwLCAweDY4MWYsIDB4MDA2NCwgMHgwMDc4LCAweDExNGMsCiAJMHg2ODE3LCAweDAwNjQsIDB4NjgxZiwgMHgwMDAyLCAweGFkZTgsIDB4MDAxMCwgMHgwMDcwLCAweDExNTIsCi0JMHgwMDc4LCAweDExMzksIDB4ODEwOSwgMHgwMGMwLCAweDExMzcsIDB4MTA3OCwgMHgyMjBhLCAweDEwNzgsCi0JMHg0ODJjLCAweDEwNzgsIDB4MTk2MywgMHgxMDc4LCAweDRkMjIsIDB4MzIwMCwgMHhhMDg1LCAweDAwMGQsCisJMHgwMDc4LCAweDExMzksIDB4ODEwOSwgMHgwMGMwLCAweDExMzcsIDB4MTA3OCwgMHgyMmE3LCAweDEwNzgsCisJMHg0OTNkLCAweDEwNzgsIDB4MTliNSwgMHgxMDc4LCAweDRlMzMsIDB4MzIwMCwgMHhhMDg1LCAweDAwMGQsCiAJMHgyMDkwLCAweDcwYzMsIDB4MDAwMCwgMHgwMDkwLCAweDExNmMsIDB4NzBjMCwgMHhhMDg2LCAweDAwMDIsCiAJMHgwMGMwLCAweDExNmMsIDB4MTA3OCwgMHgxMjg0LCAweDEwNzgsIDB4MTE5NiwgMHg3OGNjLCAweGEwMDUsCi0JMHgwMGMwLCAweDExN2EsIDB4MTA3OCwgMHgxY2UzLCAweDAwMTAsIDB4MTE4MCwgMHgwMDY4LCAweDExODAsCi0JMHgxMDc4LCAweDIwZTksIDB4MDAxMCwgMHgxMTgwLCAweDAwNjgsIDB4MTE4MCwgMHgxMDc4LCAweDFhNDgsCi0JMHgwMGUwLCAweDExNmMsIDB4MTA3OCwgMHg0YmE5LCAweDAwNzgsIDB4MTE2YywgMHgxMThlLCAweDExOTAsCi0JMHgyNDBiLCAweDI0MGIsIDB4NDhhZCwgMHg0OGFkLCAweDI0MGIsIDB4MjQwYiwgMHgwMDc4LCAweDExOGUsCisJMHgwMGMwLCAweDExN2EsIDB4MTA3OCwgMHgxZDRmLCAweDAwMTAsIDB4MTE4MCwgMHgwMDY4LCAweDExODAsCisJMHgxMDc4LCAweDIxODYsIDB4MDAxMCwgMHgxMTgwLCAweDAwNjgsIDB4MTE4MCwgMHgxMDc4LCAweDFhYjksCisJMHgwMGUwLCAweDExNmMsIDB4MTA3OCwgMHg0Y2JhLCAweDAwNzgsIDB4MTE2YywgMHgxMThlLCAweDExOTAsCisJMHgyNGFjLCAweDI0YWMsIDB4NDliZSwgMHg0OWJlLCAweDI0YWMsIDB4MjRhYywgMHgwMDc4LCAweDExOGUsCiAJMHgwMDc4LCAweDExOTAsIDB4MDA3OCwgMHgxMTkyLCAweDAwNzgsIDB4MTE5NCwgMHgwMDY4LCAweDEyMDEsCiAJMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwgMHgxMjAxLCAweDc4MTQsCiAJMHhhMDA1LCAweDAwYzAsIDB4MTFhNywgMHgwMDEwLCAweDEyMDIsIDB4MDA3OCwgMHgxMjAxLCAweDIwMDksCi0JMHg1MTViLCAweDIxMDQsIDB4YTAwNSwgMHgwMGMwLCAweDEyMDEsIDB4MjAwOSwgMHg1MTY0LCAweDIwMGIsCisJMHg1MjViLCAweDIxMDQsIDB4YTAwNSwgMHgwMGMwLCAweDEyMDEsIDB4MjAwOSwgMHg1MjY0LCAweDIwMGIsCiAJMHgwMDAwLCAweDc5MTQsIDB4YTE4NiwgMHgwMDQyLCAweDAwYzAsIDB4MTFjYywgMHg3ODE2LCAweDIwMDksCi0JMHg1MTYyLCAweDIxNjQsIDB4MjAwYiwgMHgwMDAwLCAweDYwMTgsIDB4NzBjNiwgMHg2MDE0LCAweDcwY2EsCisJMHg1MjYyLCAweDIxNjQsIDB4MjAwYiwgMHgwMDAwLCAweDYwMTgsIDB4NzBjNiwgMHg2MDE0LCAweDcwY2EsCiAJMHg2MTFjLCAweGExOGMsIDB4ZmYwMCwgMHg2MDIwLCAweGEwODQsIDB4MDBmZiwgMHhhMTA1LCAweDcwY2UsCi0JMHgxMDc4LCAweDE5NDgsIDB4MDA3OCwgMHgxMWZmLCAweDc4MTQsIDB4YTA4NiwgMHgwMDE4LCAweDAwYzAsCi0JMHgxMWQzLCAweDEwNzgsIDB4MTY1YSwgMHg3ODE3LCAweDAwMDAsIDB4MjAwOSwgMHg1MTYyLCAweDIxMDQsCi0JMHhhMDY1LCAweDAwNDAsIDB4MTFlZiwgMHgwYzdlLCAweDYwOWMsIDB4MjA2MCwgMHgxMDc4LCAweDE5YjMsCi0JMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDE3MzAsIDB4MjAwOSwgMHgwMDBjLCAweDYwMDcsCi0JMHgwMTAzLCAweDEwNzgsIDB4MTkyNCwgMHgwMGMwLCAweDExZmIsIDB4MTA3OCwgMHgxOTQ4LCAweDIwMDksCi0JMHg1MTYyLCAweDIwMGIsIDB4MDAwMCwgMHgyMDA5LCAweDUxNWMsIDB4MjEwNCwgMHgyMDBiLCAweDAwMDAsCisJMHgxMDc4LCAweDE5OWEsIDB4MDA3OCwgMHgxMWZmLCAweDc4MTQsIDB4YTA4NiwgMHgwMDE4LCAweDAwYzAsCisJMHgxMWQzLCAweDEwNzgsIDB4MTY3OCwgMHg3ODE3LCAweDAwMDAsIDB4MjAwOSwgMHg1MjYyLCAweDIxMDQsCisJMHhhMDY1LCAweDAwNDAsIDB4MTFlZiwgMHgwYzdlLCAweDYwOWMsIDB4MjA2MCwgMHgxMDc4LCAweDFhMTcsCisJMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDE3NGUsIDB4MjAwOSwgMHgwMDBjLCAweDYwMDcsCisJMHgwMTAzLCAweDEwNzgsIDB4MTk3NiwgMHgwMGMwLCAweDExZmIsIDB4MTA3OCwgMHgxOTlhLCAweDIwMDksCisJMHg1MjYyLCAweDIwMGIsIDB4MDAwMCwgMHgyMDA5LCAweDUyNWMsIDB4MjEwNCwgMHgyMDBiLCAweDAwMDAsCiAJMHhhMDA1LCAweDAwNDAsIDB4MTFmZiwgMHgyMDAxLCAweDQwMDUsIDB4MDA3OCwgMHgxMjg2LCAweDAwNzgsCiAJMHgxMjg0LCAweDAwN2MsIDB4NzBjMywgMHgwMDAwLCAweDcwYzcsIDB4MDAwMCwgMHg3MGNiLCAweDAwMDAsCiAJMHg3MGNmLCAweDAwMDAsIDB4NzBjMCwgMHhhMGJjLCAweGZmYzAsIDB4MDBjMCwgMHgxMjUyLCAweDIwMzgsCiAJMHgwMDc5LCAweDEyMTIsIDB4MTI4NCwgMHgxMmU1LCAweDEyYTksIDB4MTJmZSwgMHgxMzBkLCAweDEzMTMsCi0JMHgxMmEwLCAweDE3NDgsIDB4MTMxNywgMHgxMjk4LCAweDEyYWQsIDB4MTJhZiwgMHgxMmIxLCAweDEyYjMsCi0JMHgxNzRkLCAweDEyOTgsIDB4MTMyOSwgMHgxMzYwLCAweDE2NzIsIDB4MTc0MiwgMHgxMmI1LCAweDE1OTEsCi0JMHgxNWFkLCAweDE1YzksIDB4MTVmNCwgMHgxNTRhLCAweDE1NTgsIDB4MTU2YywgMHgxNTgwLCAweDEzZGYsCi0JMHgxMjk4LCAweDEzOGQsIDB4MTM5MywgMHgxMzk4LCAweDEzOWQsIDB4MTNhMywgMHgxM2E4LCAweDEzYWQsCi0JMHgxM2IyLCAweDEzYjcsIDB4MTNiYiwgMHgxM2QwLCAweDEzZGMsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsCi0JMHgxMjk4LCAweDEzZWIsIDB4MTNmNCwgMHgxNDAzLCAweDE0MjksIDB4MTQzMywgMHgxNDNhLCAweDE0ODAsCi0JMHgxNDhmLCAweDE0OWUsIDB4MTRiMCwgMHgxNTJhLCAweDE1M2EsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsCi0JMHgxMjk4LCAweDE1M2YsIDB4YTBiYywgMHhmZmEwLCAweDAwYzAsIDB4MTI5OCwgMHgyMDM4LCAweGEwODQsCi0JMHgwMDFmLCAweDAwNzksIDB4MTI1YiwgMHgxNzg2LCAweDE3ODksIDB4MTc5OSwgMHgxMjk4LCAweDEyOTgsCi0JMHgxOGRmLCAweDE4ZmMsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsIDB4MTkwMCwgMHgxOTA4LCAweDEyOTgsCi0JMHgxMjk4LCAweDEyOTgsIDB4MTI5OCwgMHgxMmRiLCAweDEyZjQsIDB4MTMxZiwgMHgxMzU2LCAweDE2NjgsCi0JMHgxNzY0LCAweDE3NzgsIDB4MTI5OCwgMHgxODI5LCAweDE5MGUsIDB4MThiYiwgMHgxOGM1LCAweDE4YzksCi0JMHgxOGQ3LCAweDEyOTgsIDB4MTI5OCwgMHg3MmNhLCAweDcxYzYsIDB4MjAwMSwgMHg0MDA2LCAweDAwNzgsCisJMHgxMmEwLCAweDE3NjYsIDB4MTMxNywgMHgxMjk4LCAweDEyYWQsIDB4MTJhZiwgMHgxMmIxLCAweDEyYjMsCisJMHgxNzZiLCAweDEyOTgsIDB4MTMyOSwgMHgxMzY1LCAweDE2OTAsIDB4MTc2MCwgMHgxMmI1LCAweDE1YWYsCisJMHgxNWNiLCAweDE1ZTcsIDB4MTYxMiwgMHgxNTY4LCAweDE1NzYsIDB4MTU4YSwgMHgxNTllLCAweDEzZTksCisJMHgxMjk4LCAweDEzOTcsIDB4MTM5ZCwgMHgxM2EyLCAweDEzYTcsIDB4MTNhZCwgMHgxM2IyLCAweDEzYjcsCisJMHgxM2JjLCAweDEzYzEsIDB4MTNjNSwgMHgxM2RhLCAweDEzZTYsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsCisJMHgxMjk4LCAweDEzZjUsIDB4MTNmZSwgMHgxNDBkLCAweDE0NTEsIDB4MTQ1YiwgMHgxNDYyLCAweDE0YTgsCisJMHgxNGI3LCAweDE0YzYsIDB4MTRkOCwgMHgxNTQ4LCAweDE1NTgsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsCisJMHgxMjk4LCAweDE1NWQsIDB4YTBiYywgMHhmZmEwLCAweDAwYzAsIDB4MTI5OCwgMHgyMDM4LCAweGEwODQsCisJMHgwMDFmLCAweDAwNzksIDB4MTI1YiwgMHgxN2E0LCAweDE3YTcsIDB4MTdiNywgMHgxMjk4LCAweDEyOTgsCisJMHgxOTMxLCAweDE5NGUsIDB4MTI5OCwgMHgxMjk4LCAweDEyOTgsIDB4MTk1MiwgMHgxOTVhLCAweDEyOTgsCisJMHgxMjk4LCAweDEyOTgsIDB4MTI5OCwgMHgxMmRiLCAweDEyZjQsIDB4MTMxZiwgMHgxMzViLCAweDE2ODYsCisJMHgxNzgyLCAweDE3OTYsIDB4MTI5OCwgMHgxODQ3LCAweDE5NjAsIDB4MTkwZCwgMHgxOTE3LCAweDE5MWIsCisJMHgxOTI5LCAweDEyOTgsIDB4MTI5OCwgMHg3MmNhLCAweDcxYzYsIDB4MjAwMSwgMHg0MDA2LCAweDAwNzgsCiAJMHgxMjg2LCAweDczY2UsIDB4NzJjYSwgMHg3MWM2LCAweDIwMDEsIDB4NDAwMCwgMHg3MGMyLCAweDAwNjgsCiAJMHgxMjg3LCAweDIwNjEsIDB4MDAwMCwgMHg2MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg1MDAwLCAweDAwZTAsCiAJMHgxMjhmLCAweDAwZTAsIDB4MTI5MSwgMHgwMDY4LCAweDEyOTEsIDB4MjA5MSwgMHg0MDgwLCAweDAwN2MsCkBAIC0xMjYsMTk3NCArMTI2LDIwMDUgQEAKIAkweDAwMDcsIDB4M2YwMCwgMHg3MGQ2LCAweDIwNzksIDB4MDAwMCwgMHg3ODFiLCAweDAwMDEsIDB4MjAzMSwKIAkweDAwMzAsIDB4MjA1OSwgMHgxMDAwLCAweDIwMjksIDB4MDQ1NywgMHgyMDUxLCAweDA0NzAsIDB4MjA2MSwKIAkweDA0NzIsIDB4MjBiOSwgMHhmZmZmLCAweDIwYzEsIDB4MDAwMCwgMHgyMDkxLCAweDUwMDAsIDB4MjA5MSwKLQkweDQwODAsIDB4MDA3OCwgMHgwNDU1LCAweDEwNzgsIDB4MWI1MywgMHgwMGMwLCAweDEyOWMsIDB4NzVkOCwKKwkweDQwODAsIDB4MDA3OCwgMHgwNDU1LCAweDEwNzgsIDB4MWJjNCwgMHgwMGMwLCAweDEyOWMsIDB4NzVkOCwKIAkweDc0ZGMsIDB4NzVkYSwgMHg3NGRlLCAweDAwNzgsIDB4MTJlOCwgMHgyMDI5LCAweDAwMDAsIDB4MjUyMCwKLQkweDcxZDAsIDB4NzNjOCwgMHg3MmNjLCAweDcwYzQsIDB4MTA3OCwgMHgxYThkLCAweDAwNDAsIDB4MTI4NCwKLQkweDcwYzMsIDB4NDAwMiwgMHgwMDc4LCAweDEyODQsIDB4MTA3OCwgMHgxYjUzLCAweDAwYzAsIDB4MTI5YywKKwkweDcxZDAsIDB4NzNjOCwgMHg3MmNjLCAweDcwYzQsIDB4MTA3OCwgMHgxYWZlLCAweDAwNDAsIDB4MTI4NCwKKwkweDcwYzMsIDB4NDAwMiwgMHgwMDc4LCAweDEyODQsIDB4MTA3OCwgMHgxYmM0LCAweDAwYzAsIDB4MTI5YywKIAkweDc1ZDgsIDB4NzRkYywgMHg3NWRhLCAweDc0ZGUsIDB4MDA3OCwgMHgxMzAxLCAweDIwMjksIDB4MDAwMCwKLQkweDI1MjAsIDB4NzFkMCwgMHg3M2M4LCAweDcyY2MsIDB4NzBjNCwgMHgxMDc4LCAweDFhZWQsIDB4MDA0MCwKKwkweDI1MjAsIDB4NzFkMCwgMHg3M2M4LCAweDcyY2MsIDB4NzBjNCwgMHgxMDc4LCAweDFiNWUsIDB4MDA0MCwKIAkweDEyODQsIDB4NzBjMywgMHg0MDAyLCAweDAwNzgsIDB4MTI4NCwgMHg3MWM0LCAweDcwYzgsIDB4MjExNCwKIAkweDIwMGEsIDB4MDA3OCwgMHgxMjgyLCAweDcxYzQsIDB4MjExNCwgMHgwMDc4LCAweDEyODIsIDB4NzBjNywKLQkweDAwMDcsIDB4NzBjYiwgMHgwMDQxLCAweDcwY2YsIDB4MDAwMCwgMHgwMDc4LCAweDEyODQsIDB4MTA3OCwKLQkweDFiNTMsIDB4MDBjMCwgMHgxMjljLCAweDc1ZDgsIDB4NzZkYywgMHg3NWRhLCAweDc2ZGUsIDB4MDA3OCwKKwkweDAwMDcsIDB4NzBjYiwgMHgwMDQxLCAweDcwY2YsIDB4MDAwNiwgMHgwMDc4LCAweDEyODQsIDB4MTA3OCwKKwkweDFiYzQsIDB4MDBjMCwgMHgxMjljLCAweDc1ZDgsIDB4NzZkYywgMHg3NWRhLCAweDc2ZGUsIDB4MDA3OCwKIAkweDEzMmMsIDB4MjAyOSwgMHgwMDAwLCAweDI1MzAsIDB4NzBjNCwgMHg3MmM4LCAweDczY2MsIDB4NzRkMCwKLQkweDcwYzYsIDB4NzJjYSwgMHg3M2NlLCAweDc0ZDIsIDB4YTAwNSwgMHgwMDQwLCAweDEzNTAsIDB4ODAwMSwKLQkweDc4OTIsIDB4YTA4NCwgMHhmYzAwLCAweDAwNDAsIDB4MTM0NSwgMHg3OGNjLCAweGEwODUsIDB4MDAwMSwKLQkweDc4Y2UsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsIDB4MTI4NiwgMHg3YTlhLCAweDdiOWUsIDB4N2RhMiwKLQkweDdlYTYsIDB4N2M5NiwgMHg3OGNjLCAweGEwODQsIDB4ZmZmYywgMHg3OGNlLCAweDAwNzgsIDB4MTM1NCwKLQkweDc4Y2MsIDB4YTA4NSwgMHgwMDAxLCAweDc4Y2UsIDB4MDA3OCwgMHgxMjg0LCAweDEwNzgsIDB4MWI1MywKLQkweDAwYzAsIDB4MTI5YywgMHg3NWQ4LCAweDc2ZGMsIDB4NzVkYSwgMHg3NmRlLCAweDAwNzgsIDB4MTM2MywKLQkweDIwMjksIDB4MDAwMCwgMHgyNTMwLCAweDcwYzQsIDB4NzJjOCwgMHg3M2NjLCAweDc0ZDQsIDB4NzBjNiwKLQkweDcyY2EsIDB4NzNjZSwgMHg3NGQ2LCAweGEwMDUsIDB4MDA0MCwgMHgxMzg3LCAweDgwMDEsIDB4NzhhZSwKLQkweGEwODQsIDB4ZmMwMCwgMHgwMDQwLCAweDEzN2MsIDB4NzhjYywgMHhhMDg1LCAweDAxMDAsIDB4NzhjZSwKLQkweDIwMDEsIDB4NDAwNSwgMHgwMDc4LCAweDEyODYsIDB4N2FiNiwgMHg3YmJhLCAweDdkYmUsIDB4N2VjMiwKLQkweDdjYjIsIDB4NzhjYywgMHhhMDg0LCAweGZjZmYsIDB4NzhjZSwgMHgwMDc4LCAweDEzOGIsIDB4NzhjYywKLQkweGEwODUsIDB4MDEwMCwgMHg3OGNlLCAweDAwNzgsIDB4MTI4NCwgMHgyMDA5LCAweDUxNjEsIDB4MjEwYywKLQkweDdhZWMsIDB4MDA3OCwgMHgxMjgyLCAweDIwMDksIDB4NTE0MSwgMHgyMTBjLCAweDAwNzgsIDB4MTI4MywKLQkweDIwMDksIDB4NTE0MiwgMHgyMTBjLCAweDAwNzgsIDB4MTI4MywgMHgyMDYxLCAweDUxNDAsIDB4NjEwYywKLQkweDYyMTAsIDB4MDA3OCwgMHgxMjgyLCAweDIwMDksIDB4NTE0NSwgMHgyMTBjLCAweDAwNzgsIDB4MTI4MywKLQkweDIwMDksIDB4NTE0NiwgMHgyMTBjLCAweDAwNzgsIDB4MTI4MywgMHgyMDA5LCAweDUxNDgsIDB4MjEwYywKLQkweDAwNzgsIDB4MTI4MywgMHgyMDA5LCAweDUxNDksIDB4MjEwYywgMHgwMDc4LCAweDEyODMsIDB4NzkwOCwKLQkweDdhMGMsIDB4MDA3OCwgMHgxMjgyLCAweDcxYzQsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywKLQkweDgwMDMsIDB4ODAwMywgMHhhMGU4LCAweDUzODAsIDB4NmEwMCwgMHg2ODA0LCAweGEwODQsIDB4MDAwOCwKLQkweDAwNDAsIDB4MTNjZCwgMHg2YjA4LCAweDAwNzgsIDB4MTNjZSwgMHg2YjBjLCAweDAwNzgsIDB4MTI4MSwKLQkweDc3YzQsIDB4MTA3OCwgMHgxOTczLCAweDIwOTEsIDB4ODAwMCwgMHg2YjFjLCAweDZhMTQsIDB4MjA5MSwKLQkweDgwMDEsIDB4MjcwOCwgMHgwMDc4LCAweDEyODEsIDB4Nzk0YywgMHgwMDc4LCAweDEyODMsIDB4NzdjNCwKLQkweDEwNzgsIDB4MTk3MywgMHgyMDkxLCAweDgwMDAsIDB4NjkwOCwgMHg2YTE4LCAweDZiMTAsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3OCwgMHgxMjgxLCAweDcxYzQsIDB4YTE4MiwgMHgwMDEwLCAweDAwYzgsIDB4MTI3YywKLQkweDEwNzgsIDB4MjJlMiwgMHgwMDc4LCAweDEyODEsIDB4NzFjNCwgMHhhMTgyLCAweDAwMTAsIDB4MDBjOCwKLQkweDEyN2MsIDB4MjAxMSwgMHg1MTQxLCAweDIyMDQsIDB4MDA3ZSwgMHgyMTEyLCAweDEwNzgsIDB4MjI5YiwKLQkweDAxN2YsIDB4MDA3OCwgMHgxMjgzLCAweDcxYzQsIDB4MjAxMSwgMHgxNDIxLCAweDIwYTksIDB4MDAwOCwKLQkweDIyMDQsIDB4YTEwNiwgMHgwMDQwLCAweDE0MTMsIDB4ODIxMCwgMHgwMDcwLCAweDE0MTEsIDB4MDA3OCwKLQkweDE0MDgsIDB4MDA3OCwgMHgxMjdjLCAweGEyOTIsIDB4MTQyMSwgMHgwMjdlLCAweDIwMTEsIDB4NTE0MiwKLQkweDIyMDQsIDB4MjExMiwgMHgwMTdmLCAweDAwN2UsIDB4MTA3OCwgMHgyMmE3LCAweDAxN2YsIDB4MDA3OCwKKwkweDcwYzYsIDB4NzJjYSwgMHg3M2NlLCAweDc0ZDIsIDB4YTAwNSwgMHgwMDQwLCAweDEzNTUsIDB4YTQwYSwKKwkweDAwNDAsIDB4MTMzYywgMHgwMGM4LCAweDEzNDYsIDB4ODAwMSwgMHg3ODkyLCAweGEwODQsIDB4ZmMwMCwKKwkweDAwNDAsIDB4MTM0YSwgMHg3OGNjLCAweGEwODUsIDB4MDAwMSwgMHg3OGNlLCAweDIwMDEsIDB4NDAwNSwKKwkweDAwNzgsIDB4MTI4NiwgMHg3YTlhLCAweDdiOWUsIDB4N2RhMiwgMHg3ZWE2LCAweDdjOTYsIDB4NzhjYywKKwkweGEwODQsIDB4ZmZmYywgMHg3OGNlLCAweDAwNzgsIDB4MTM1OSwgMHg3OGNjLCAweGEwODUsIDB4MDAwMSwKKwkweDc4Y2UsIDB4MDA3OCwgMHgxMjg0LCAweDEwNzgsIDB4MWJjNCwgMHgwMGMwLCAweDEyOWMsIDB4NzVkOCwKKwkweDc2ZGMsIDB4NzVkYSwgMHg3NmRlLCAweDAwNzgsIDB4MTM2OCwgMHgyMDI5LCAweDAwMDAsIDB4MjUzMCwKKwkweDcwYzQsIDB4NzJjOCwgMHg3M2NjLCAweDc0ZDQsIDB4NzBjNiwgMHg3MmNhLCAweDczY2UsIDB4NzRkNiwKKwkweGEwMDUsIDB4MDA0MCwgMHgxMzkxLCAweGE0MGEsIDB4MDA0MCwgMHgxMzc4LCAweDAwYzgsIDB4MTM4MiwKKwkweDgwMDEsIDB4NzhhZSwgMHhhMDg0LCAweGZjMDAsIDB4MDA0MCwgMHgxMzg2LCAweDc4Y2MsIDB4YTA4NSwKKwkweDAxMDAsIDB4NzhjZSwgMHgyMDAxLCAweDQwMDUsIDB4MDA3OCwgMHgxMjg2LCAweDdhYjYsIDB4N2JiYSwKKwkweDdkYmUsIDB4N2VjMiwgMHg3Y2IyLCAweDc4Y2MsIDB4YTA4NCwgMHhmY2ZmLCAweDc4Y2UsIDB4MDA3OCwKKwkweDEzOTUsIDB4NzhjYywgMHhhMDg1LCAweDAxMDAsIDB4NzhjZSwgMHgwMDc4LCAweDEyODQsIDB4MjAwOSwKKwkweDUyNjEsIDB4MjEwYywgMHg3YWVjLCAweDAwNzgsIDB4MTI4MiwgMHgyMDA5LCAweDUyNDEsIDB4MjEwYywKKwkweDAwNzgsIDB4MTI4MywgMHgyMDA5LCAweDUyNDIsIDB4MjEwYywgMHgwMDc4LCAweDEyODMsIDB4MjA2MSwKKwkweDUyNDAsIDB4NjEwYywgMHg2MjEwLCAweDAwNzgsIDB4MTI4MiwgMHgyMDA5LCAweDUyNDUsIDB4MjEwYywKKwkweDAwNzgsIDB4MTI4MywgMHgyMDA5LCAweDUyNDYsIDB4MjEwYywgMHgwMDc4LCAweDEyODMsIDB4MjAwOSwKKwkweDUyNDgsIDB4MjEwYywgMHgwMDc4LCAweDEyODMsIDB4MjAwOSwgMHg1MjQ5LCAweDIxMGMsIDB4MDA3OCwKKwkweDEyODMsIDB4NzkwOCwgMHg3YTBjLCAweDAwNzgsIDB4MTI4MiwgMHg3MWM0LCAweDgxMDcsIDB4YTA4NCwKKwkweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTBlOCwgMHg1NDgwLCAweDZhMDAsIDB4NjgwNCwKKwkweGEwODQsIDB4MDAwOCwgMHgwMDQwLCAweDEzZDcsIDB4NmIwOCwgMHgwMDc4LCAweDEzZDgsIDB4NmIwYywKKwkweDAwNzgsIDB4MTI4MSwgMHg3N2M0LCAweDEwNzgsIDB4MTljNSwgMHgyMDkxLCAweDgwMDAsIDB4NmIxYywKKwkweDZhMTQsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxMjgxLCAweDc5NGMsIDB4MDA3OCwKKwkweDEyODMsIDB4NzdjNCwgMHgxMDc4LCAweDE5YzUsIDB4MjA5MSwgMHg4MDAwLCAweDY5MDgsIDB4NmExOCwKKwkweDZiMTAsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MTI4MSwgMHg3MWM0LCAweGExODIsIDB4MDAxMCwKKwkweDAwYzgsIDB4MTI3YywgMHgxMDc4LCAweDIzN2YsIDB4MDA3OCwgMHgxMjgxLCAweDcxYzQsIDB4YTE4MiwKKwkweDAwMTAsIDB4MDBjOCwgMHgxMjdjLCAweDIwMTEsIDB4NTI0MSwgMHgyMjA0LCAweDAwN2UsIDB4MjExMiwKKwkweDEwNzgsIDB4MjMzOCwgMHgwMTdmLCAweDAwNzgsIDB4MTI4MywgMHg3MWM0LCAweDIwMTksIDB4MDEwMCwKKwkweDIzMDQsIDB4YTA4MiwgMHgwMDA2LCAweDAwNDgsIDB4MTQxYiwgMHgyMDExLCAweDE0NDksIDB4MjBhOSwKKwkweDAwMDgsIDB4MDA3OCwgMHgxNDFmLCAweDIwMTEsIDB4MTQ0MSwgMHgyMGE5LCAweDAwMDgsIDB4MjIwNCwKKwkweGExMDYsIDB4MDA0MCwgMHgxNDJhLCAweDgyMTAsIDB4MDA3MCwgMHgxNDI4LCAweDAwNzgsIDB4MTQxZiwKKwkweDAwNzgsIDB4MTI3YywgMHgyMzA0LCAweGEwODIsIDB4MDAwNiwgMHgwMDQ4LCAweDE0MzMsIDB4YTI5MiwKKwkweDE0NDksIDB4MDA3OCwgMHgxNDM1LCAweGEyOTIsIDB4MTQ0MSwgMHgwMjdlLCAweDIwMTEsIDB4NTI0MiwKKwkweDIyMDQsIDB4MjExMiwgMHgwMTdmLCAweDAwN2UsIDB4MTA3OCwgMHgyMzQ0LCAweDAxN2YsIDB4MDA3OCwKIAkweDEyODMsIDB4MDNlOCwgMHgwMGZhLCAweDAxZjQsIDB4MDJlZSwgMHgwMDY0LCAweDAwMTksIDB4MDAzMiwKLQkweDAwNGIsIDB4MjA2MSwgMHg1MTQwLCAweDYxMGMsIDB4NjIxMCwgMHg3MGM0LCAweDYwMGUsIDB4NzBjOCwKLQkweDYwMTIsIDB4MDA3OCwgMHgxMjgyLCAweDIwNjEsIDB4NTE0MCwgMHg2MTE0LCAweDcwYzQsIDB4NjAxNiwKLQkweDAwNzgsIDB4MTI4MywgMHgyMDYxLCAweDUxNDAsIDB4NzFjNCwgMHgyMDExLCAweDAwMDQsIDB4NjAxZiwKLQkweDAwMTksIDB4MjAxOSwgMHgxMjEyLCAweGExODYsIDB4MDAyOCwgMHgwMDQwLCAweDE0NWIsIDB4MjAxMSwKKwkweDAwNGIsIDB4MDNlOCwgMHgwMGZhLCAweDAxZjQsIDB4MDJlZSwgMHgwMDA0LCAweDAwMDEsIDB4MDAwMiwKKwkweDAwMDMsIDB4MjA2MSwgMHg1MjQwLCAweDYxMGMsIDB4NjIxMCwgMHg3MGM0LCAweDYwMGUsIDB4NzBjOCwKKwkweDYwMTIsIDB4MDA3OCwgMHgxMjgyLCAweDIwNjEsIDB4NTI0MCwgMHg2MTE0LCAweDcwYzQsIDB4NjAxNiwKKwkweDAwNzgsIDB4MTI4MywgMHgyMDYxLCAweDUyNDAsIDB4NzFjNCwgMHgyMDExLCAweDAwMDQsIDB4NjAxZiwKKwkweDAwMTksIDB4MjAxOSwgMHgxMjEyLCAweGExODYsIDB4MDAyOCwgMHgwMDQwLCAweDE0ODMsIDB4MjAxMSwKIAkweDAwMDUsIDB4NjAxZiwgMHgwMDE5LCAweDIwMTksIDB4MTIxMiwgMHhhMTg2LCAweDAwMzIsIDB4MDA0MCwKLQkweDE0NWIsIDB4MjAxMSwgMHgwMDA2LCAweDYwMWYsIDB4MDAwYywgMHgyMDE5LCAweDIyMjIsIDB4YTE4NiwKKwkweDE0ODMsIDB4MjAxMSwgMHgwMDA2LCAweDYwMWYsIDB4MDAwYywgMHgyMDE5LCAweDIyMjIsIDB4YTE4NiwKIAkweDAwM2MsIDB4MDBjMCwgMHgxMjdjLCAweDYwMTgsIDB4MDA3ZSwgMHg2MTFhLCAweDc4MDAsIDB4YTA4NCwKLQkweDAwMDEsIDB4MDBjMCwgMHgxNDc2LCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwKLQkweDAwNDgsIDB4MTQ2ZSwgMHgwMDM4LCAweDE0NzIsIDB4MDA3OCwgMHgxNDc2LCAweDAwMjgsIDB4MTQ3MiwKLQkweDAwNzgsIDB4MTQ3NiwgMHgyMDE5LCAweDIyMjIsIDB4MDA3OCwgMHgxNDc4LCAweDIwMTksIDB4MTIxMiwKLQkweDIzYjgsIDB4MTA3OCwgMHgyMmI4LCAweDEwNzgsIDB4NGQyMiwgMHgwMTdmLCAweDAwNzgsIDB4MTI4MywKLQkweDcxYzQsIDB4YTE4NCwgMHhmZmNmLCAweDAwYzAsIDB4MTI3YywgMHgyMDExLCAweDUxNDgsIDB4MjIwNCwKLQkweDIxMTIsIDB4MDA3ZSwgMHgxMDc4LCAweDIyZGEsIDB4MDE3ZiwgMHgwMDc4LCAweDEyODMsIDB4NzFjNCwKLQkweGExODIsIDB4MDAxMCwgMHgwMGM4LCAweDEyN2MsIDB4MjAxMSwgMHg1MTQ5LCAweDIyMDQsIDB4MDA3ZSwKLQkweDIxMTIsIDB4MTA3OCwgMHgyMmM5LCAweDAxN2YsIDB4MDA3OCwgMHgxMjgzLCAweDcxYzQsIDB4NzJjOCwKKwkweDAwMDEsIDB4MDBjMCwgMHgxNDllLCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwKKwkweDAwNDgsIDB4MTQ5NiwgMHgwMDM4LCAweDE0OWEsIDB4MDA3OCwgMHgxNDllLCAweDAwMjgsIDB4MTQ5YSwKKwkweDAwNzgsIDB4MTQ5ZSwgMHgyMDE5LCAweDIyMjIsIDB4MDA3OCwgMHgxNGEwLCAweDIwMTksIDB4MTIxMiwKKwkweDIzYjgsIDB4MTA3OCwgMHgyMzU1LCAweDEwNzgsIDB4NGUzMywgMHgwMTdmLCAweDAwNzgsIDB4MTI4MywKKwkweDcxYzQsIDB4YTE4NCwgMHhmZmNmLCAweDAwYzAsIDB4MTI3YywgMHgyMDExLCAweDUyNDgsIDB4MjIwNCwKKwkweDIxMTIsIDB4MDA3ZSwgMHgxMDc4LCAweDIzNzcsIDB4MDE3ZiwgMHgwMDc4LCAweDEyODMsIDB4NzFjNCwKKwkweGExODIsIDB4MDAxMCwgMHgwMGM4LCAweDEyN2MsIDB4MjAxMSwgMHg1MjQ5LCAweDIyMDQsIDB4MDA3ZSwKKwkweDIxMTIsIDB4MTA3OCwgMHgyMzY2LCAweDAxN2YsIDB4MDA3OCwgMHgxMjgzLCAweDcxYzQsIDB4NzJjOCwKIAkweGExODQsIDB4ZmZmZCwgMHgwMGMwLCAweDEyN2IsIDB4YTI4NCwgMHhmZmZkLCAweDAwYzAsIDB4MTI3YiwKIAkweDIxMDAsIDB4NzkwOCwgMHg3ODBhLCAweDIyMDAsIDB4N2EwYywgMHg3ODBlLCAweDAwNzgsIDB4MTI4MiwKIAkweDcxYzQsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTBlOCwKLQkweDUzODAsIDB4MjAxOSwgMHgwMDAwLCAweDcyYzgsIDB4YTI4NCwgMHgwMDgwLCAweDAwNDAsIDB4MTRjNiwKLQkweDZjMTQsIDB4ODRmZiwgMHgwMGMwLCAweDE0YzYsIDB4NjgxNywgMHgwMDQwLCAweGEyODQsIDB4MDA0MCwKLQkweDAwNDAsIDB4MTRkMCwgMHg2YzEwLCAweDg0ZmYsIDB4MDBjMCwgMHgxNGQwLCAweDY4MTMsIDB4MDAwMSwKLQkweDY4MDAsIDB4MDA3ZSwgMHhhMjI2LCAweDAwNDAsIDB4MTRmMywgMHg2YTAyLCAweGE0ODQsIDB4MjAwMCwKLQkweDAwNDAsIDB4MTRkYywgMHhhMzlkLCAweDAwMTAsIDB4YTQ4NCwgMHgxMDAwLCAweDAwNDAsIDB4MTRlMiwKLQkweGEzOWQsIDB4MDAwOCwgMHhhNDg0LCAweDQwMDAsIDB4MDA0MCwgMHgxNGYzLCAweDgxMGYsIDB4YTI4NCwKLQkweDQwMDAsIDB4MDA0MCwgMHgxNGVmLCAweDEwNzgsIDB4MjJmYywgMHgwMDc4LCAweDE0ZjMsIDB4MTA3OCwKLQkweDIyZWUsIDB4MDA3OCwgMHgxNGYzLCAweDcyY2MsIDB4NjgwOCwgMHhhMjA2LCAweDAwNDAsIDB4MTUyMiwKLQkweGEyYTQsIDB4MDBmZiwgMHgyMDYxLCAweDUxNDAsIDB4NjExOCwgMHhhMTg2LCAweDAwMjgsIDB4MDA0MCwKLQkweDE1MDksIDB4YTE4NiwgMHgwMDMyLCAweDAwNDAsIDB4MTUwZiwgMHhhMTg2LCAweDAwM2MsIDB4MDA0MCwKLQkweDE1MTUsIDB4YTQ4MiwgMHgwMDY0LCAweDAwNDgsIDB4MTUxZiwgMHgwMDc4LCAweDE1MTksIDB4YTQ4MiwKLQkweDAwNTAsIDB4MDA0OCwgMHgxNTFmLCAweDAwNzgsIDB4MTUxOSwgMHhhNDgyLCAweDAwNDMsIDB4MDA0OCwKLQkweDE1MWYsIDB4NzFjNCwgMHg3MWM2LCAweDAyN2YsIDB4NzJjYSwgMHgwMDc4LCAweDEyN2QsIDB4NmEwYSwKLQkweGEzOWQsIDB4MDAwYSwgMHg2ODA0LCAweGEzMDUsIDB4NjgwNiwgMHgwMjdmLCAweDZiMGMsIDB4NzFjNCwKLQkweDAwNzgsIDB4MTI4MSwgMHg3N2M0LCAweDEwNzgsIDB4MTk3MywgMHgyMDkxLCAweDgwMDAsIDB4NmExNCwKLQkweDZiMWMsIDB4MjA5MSwgMHg4MDAxLCAweDcwYzgsIDB4NjgxNiwgMHg3MGNjLCAweDY4MWUsIDB4MjcwOCwKLQkweDAwNzgsIDB4MTI4MSwgMHg3MGM0LCAweDc5NGMsIDB4Nzg0ZSwgMHgwMDc4LCAweDEyODMsIDB4NzFjNCwKLQkweDcyYzgsIDB4NzNjYywgMHhhMTgyLCAweDAwMTAsIDB4MDBjOCwgMHgxMjdjLCAweDEwNzgsIDB4MjMwYSwKLQkweDAwNzgsIDB4MTI4MSwgMHg3N2M0LCAweDEwNzgsIDB4MTk3MywgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwKLQkweGEyOTUsIDB4MDAwMiwgMHg2YTBhLCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDAwNzgsIDB4MTI4MiwKLQkweDc3YzQsIDB4MTA3OCwgMHgxOTczLCAweDIwOTEsIDB4ODAwMCwgMHg2YTA4LCAweGEyOTQsIDB4ZmZmOSwKLQkweDZhMGEsIDB4NjgwNCwgMHhhMDA1LCAweDAwNDAsIDB4MTU2NywgMHgxMDc4LCAweDIxZDIsIDB4MjA5MSwKLQkweDgwMDEsIDB4MjcwOCwgMHgwMDc4LCAweDEyODIsIDB4NzdjNCwgMHgxMDc4LCAweDE5NzMsIDB4MjA5MSwKLQkweDgwMDAsIDB4NmEwOCwgMHhhMjk1LCAweDAwMDQsIDB4NmEwYSwgMHg2ODA0LCAweGEwMDUsIDB4MDA0MCwKLQkweDE1N2IsIDB4MTA3OCwgMHgyMWQyLCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDAwNzgsIDB4MTI4MiwKLQkweDc3YzQsIDB4MjA0MSwgMHgwMDAxLCAweDIwNDksIDB4MDAwNSwgMHgyMDUxLCAweDAwMjAsIDB4MjA5MSwKLQkweDgwMDAsIDB4MTA3OCwgMHgxOTgwLCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDZhMDgsIDB4MDA3OCwKLQkweDEyODIsIDB4NzdjNCwgMHg3MmM4LCAweDczY2MsIDB4NzdjNiwgMHg3MmNhLCAweDczY2UsIDB4MTA3OCwKLQkweDE5ZTEsIDB4MDBjMCwgMHgxNWE5LCAweDY4MTgsIDB4YTAwNSwgMHgwMDQwLCAweDE1YTksIDB4MjcwOCwKLQkweDEwNzgsIDB4MjMxYSwgMHgwMGMwLCAweDE1YTksIDB4NzgxNywgMHgwMDE1LCAweDIwOTEsIDB4ODAwMSwKLQkweDAwN2MsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MTI4NCwgMHg3N2M0LCAweDc3YzYsIDB4MjA0MSwKLQkweDAwMjEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAyMCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwKLQkweDE5ODAsIDB4MjA2MSwgMHg1MTQwLCAweDYwNmYsIDB4MDAwMywgMHg2NzgyLCAweDYwOTMsIDB4MDAwZiwKLQkweDYwNzMsIDB4MDAwMCwgMHg3ODE3LCAweDAwMTYsIDB4MTA3OCwgMHgyMWQyLCAweDIwOTEsIDB4ODAwMSwKLQkweDAwN2MsIDB4NzdjOCwgMHg3N2NhLCAweDc3YzQsIDB4NzdjNiwgMHhhN2JjLCAweGZmMDAsIDB4MjA5MSwKLQkweDgwMDAsIDB4MjA2MSwgMHg1MTQwLCAweDYwNmYsIDB4MDAwMiwgMHg2MDczLCAweDAwMDAsIDB4Njc4MiwKLQkweDYwOTMsIDB4MDAwZiwgMHg3ODE3LCAweDAwMTcsIDB4MTA3OCwgMHgyMWQyLCAweDIwOTEsIDB4ODAwMSwKLQkweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMCwKLQkweDEwNzgsIDB4MTk4MCwgMHg3MGM4LCAweDY4MzYsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsIDB4MDBjMCwKLQkweDE1ZTgsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4NzhjYywgMHhhMDg0LCAweDAwMDMsIDB4MDBjMCwKLQkweDE2MTgsIDB4MjAzOSwgMHgwMDAwLCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwKLQkweDAwMDgsIDB4MTA3OCwgMHgxOTczLCAweDIwOTEsIDB4ODAwMCwgMHg2ODA4LCAweGE4MGQsIDB4NjkwYSwKLQkweDIwOTEsIDB4ODAwMSwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDE2MDEsIDB4YTdiYywKLQkweGZmMDAsIDB4ODczZiwgMHg4NzM4LCAweDg3M2YsIDB4YTc4NCwgMHgwZjAwLCAweDAwYzAsIDB4MTYwMSwKLQkweDIwOTEsIDB4ODAwMCwgMHgyMDY5LCAweDAxMDAsIDB4NjgzMCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwKLQkweDE2NDEsIDB4Njg0YiwgMHgwMDA0LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGEwODQsIDB4MDAwNCwKLQkweDAwNDAsIDB4MTYyZSwgMHgwMDcwLCAweDE2MmUsIDB4MDA3OCwgMHgxNjI1LCAweDY4NGIsIDB4MDAwOSwKLQkweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDE2M2IsIDB4MDA3MCwKLQkweDE2M2IsIDB4MDA3OCwgMHgxNjMyLCAweDIwYTksIDB4MDBmYSwgMHgwMDcwLCAweDE2NDEsIDB4MDA3OCwKLQkweDE2M2QsIDB4MjA3OSwgMHg1MTAwLCAweDc4MTcsIDB4MDAxOCwgMHgyMDYxLCAweDUxNDAsIDB4NjA2ZiwKLQkweDAwMDEsIDB4NjA3MywgMHgwMDAwLCAweDYwOTMsIDB4MDAwZiwgMHg3OGNjLCAweGEwODUsIDB4MDAwMiwKLQkweDc4Y2UsIDB4NjgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NjgwYSwgMHg2ODFiLCAweDAwNDgsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3YywgMHg3OGNjLCAweGEwODQsIDB4ZmZmZCwgMHg3OGNlLCAweGEwODQsIDB4MDAwMSwKLQkweDAwYzAsIDB4MTY2NCwgMHgxMDc4LCAweDFhMmIsIDB4NzFjNCwgMHg3MWM2LCAweDc5NGEsIDB4MDA3YywKLQkweDEwNzgsIDB4MWI1MywgMHgwMGMwLCAweDEyOWMsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwKLQkweDAwNzgsIDB4MTY3NSwgMHgyMDI5LCAweDAwMDAsIDB4MjUyMCwgMHg3MWM0LCAweDczYzgsIDB4NzJjYywKLQkweDcxYzYsIDB4NzNjYSwgMHg3MmNlLCAweDIwNzksIDB4NTEwMCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwKLQkweDE5MmUsIDB4MjA5MSwgMHg4MDAxLCAweDAwNDAsIDB4MTcyYywgMHgyMGE5LCAweDAwMDUsIDB4MjBhMSwKLQkweDUxMTgsIDB4MjA5MSwgMHg4MDAwLCAweDQxYTEsIDB4MjA5MSwgMHg4MDAxLCAweDIwMDksIDB4MDAyMCwKLQkweDEwNzgsIDB4MTkyOSwgMHgwMDQwLCAweDE2OTgsIDB4MTA3OCwgMHgxOTQ4LCAweDAwNzgsIDB4MTcyYywKLQkweDYwMDQsIDB4YTA4NCwgMHhmZjAwLCAweDgwMDcsIDB4ODAwOSwgMHgwMDQwLCAweDE2ZmIsIDB4MGM3ZSwKLQkweDJjNjgsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MTkyZSwgMHgyMDkxLCAweDgwMDEsIDB4MDA0MCwKLQkweDE2Y2MsIDB4MmMwMCwgMHg2ODllLCAweDgxMDksIDB4MDBjMCwgMHgxNmEwLCAweDYwOWYsIDB4MDAwMCwKLQkweDBjN2YsIDB4MGM3ZSwgMHg3MjE4LCAweDczMWMsIDB4NzQyMCwgMHg3NTI0LCAweDJjNjgsIDB4Njg5YywKLQkweGEwNjUsIDB4MDA0MCwgMHgxNmZhLCAweDIwMDksIDB4MDAyMCwgMHgxMDc4LCAweDE5MjksIDB4MDBjMCwKLQkweDE2ZTMsIDB4NjAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwgMHgwMDAyLCAweDAwYzAsIDB4MTZjYywKLQkweDJkMDAsIDB4NjAwMiwgMHgwMDc4LCAweDE2YjIsIDB4MGM3ZiwgMHgwYzdlLCAweDYwOWMsIDB4MjA2MCwKLQkweDEwNzgsIDB4MTliMywgMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDE3MzAsIDB4MjAwOSwKLQkweDAwMGMsIDB4NjAwOCwgMHhhMDg1LCAweDAyMDAsIDB4NjAwYSwgMHgxMDc4LCAweDE5MjQsIDB4MTA3OCwKLQkweDE5NDgsIDB4MDA3OCwgMHgxNzJjLCAweDBjN2YsIDB4MGM3ZSwgMHg2MDljLCAweDIwNjAsIDB4MTA3OCwKLQkweDE5YjMsIDB4MGM3ZiwgMHg2MDlmLCAweDAwMDAsIDB4MTA3OCwgMHgxNzMwLCAweDIwMDksIDB4MDAwYywKLQkweDYwMDcsIDB4MDEwMywgMHg2MDFiLCAweDAwMDMsIDB4MTA3OCwgMHgxOTI0LCAweDEwNzgsIDB4MTk0OCwKLQkweDAwNzgsIDB4MTcyYywgMHgwYzdmLCAweDc0YzQsIDB4NzNjOCwgMHg3MmNjLCAweDYwMTQsIDB4MjA5MSwKLQkweDgwMDAsIDB4NzgxNywgMHgwMDEyLCAweDBlN2UsIDB4MjA3MSwgMHg1MTQwLCAweDcwNmYsIDB4MDAwNSwKLQkweDcwNzMsIDB4MDAwMCwgMHg3Mzc2LCAweDcyN2EsIDB4NzQ3ZSwgMHg3MDgyLCAweDcwODcsIDB4MDAwMCwKLQkweDJjMDAsIDB4NzA4YSwgMHg3MDhmLCAweDAwMDAsIDB4YTAyZSwgMHgyNTMwLCAweDYxMWMsIDB4NjFhMiwKLQkweGExODQsIDB4MDA2MCwgMHgwMDQwLCAweDE3MWUsIDB4MTA3OCwgMHg0N2MyLCAweDBlN2YsIDB4NjU5NiwKLQkweDY1YTYsIDB4NjY5YSwgMHg2NmFhLCAweDYwYWYsIDB4MDAwMCwgMHg2MGIzLCAweDAwMDAsIDB4MTA3OCwKLQkweDIxZDIsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4NzBjMywgMHg0MDA1LCAweDAwNzgsIDB4MTI4NywKLQkweDIwYTksIDB4MDAwNSwgMHgyMDk5LCAweDUxMTgsIDB4MjA5MSwgMHg4MDAwLCAweDUzMGEsIDB4MjA5MSwKLQkweDgwMDEsIDB4MjEwMCwgMHhhMjEwLCAweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwKLQkweDAwMDAsIDB4MDA3YywgMHg3MWM0LCAweDcwYzcsIDB4MDAwMCwgMHg3OTA2LCAweDAwNzgsIDB4MTI4NCwKLQkweDcxYzQsIDB4NzFjNiwgMHgyMTY4LCAweDAwNzgsIDB4MTc0ZiwgMHgyMDY5LCAweDEwMDAsIDB4NjkwYywKLQkweGEwMTYsIDB4MmQwNCwgMHhhMjEwLCAweDhkNjgsIDB4ODEwOSwgMHgwMGMwLCAweDE3NTEsIDB4YTI4NSwKLQkweDAwMDAsIDB4MDBjMCwgMHgxNzVmLCAweDcwYzMsIDB4NDAwMCwgMHgwMDc4LCAweDE3NjEsIDB4NzBjMywKLQkweDQwMDMsIDB4NzBjYSwgMHgwMDc4LCAweDEyODcsIDB4MjAxMSwgMHg1MTY3LCAweDIyMGMsIDB4NzBjNCwKLQkweDgwMDMsIDB4MDA0OCwgMHgxNzcxLCAweDEwNzgsIDB4M2I3ZiwgMHhhMTg0LCAweDdmZmYsIDB4MDA3OCwKLQkweDE3NzUsIDB4MTA3OCwgMHgzYjcyLCAweGExODUsIDB4ODAwMCwgMHgyMDEyLCAweDAwNzgsIDB4MTI4MywKLQkweDcxYzQsIDB4MTA3OCwgMHgzYjY5LCAweDYxMDAsIDB4MjAwMSwgMHg1MTY3LCAweDIwMDQsIDB4YTA4NCwKLQkweDgwMDAsIDB4YTEwZCwgMHg2MjA0LCAweDYzMDgsIDB4MDA3OCwgMHgxMjgxLCAweDc5ZTQsIDB4MDA3OCwKLQkweDEyODMsIDB4NzFjNCwgMHg3MWM2LCAweDIxOTgsIDB4MjBhMSwgMHgwMDQyLCAweDIwYTksIDB4MDAwNCwKLQkweDUzYTMsIDB4MjFhMCwgMHgyMDk5LCAweDAwNDIsIDB4MjBhOSwgMHgwMDA0LCAweDUzYTMsIDB4MDA3OCwKLQkweDEyODQsIDB4NzBjNCwgMHgyMDY4LCAweDIwNzksIDB4NTEwMCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwKLQkweDE5MmUsIDB4MjA5MSwgMHg4MDAxLCAweDAwNDAsIDB4MTgyNSwgMHg2MDA3LCAweDAwMDEsIDB4NjAwYiwKLQkweDAwMDAsIDB4NjAyYiwgMHgwMDAwLCAweDYwMWIsIDB4MDAwNiwgMHg2YTEwLCAweGEyOGMsIDB4MDAwZiwKLQkweGEyODQsIDB4MDBmMCwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4NjAxNiwKLQkweGEyODQsIDB4MDgwMCwgMHgwMDQwLCAweDE3YzAsIDB4NjAxYiwgMHgwMDBhLCAweDAwNzgsIDB4MTdjNiwKLQkweGEyODQsIDB4MTAwMCwgMHgwMDQwLCAweDE3YzYsIDB4NjAxYiwgMHgwMDBjLCAweGEyODQsIDB4MDMwMCwKLQkweDAwNDAsIDB4MTdjZiwgMHg2MDJiLCAweDAwMDEsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDQsIDB4YTA4NSwKLQkweDAwMDEsIDB4NjAxZSwgMHg2MDIzLCAweDAwMDAsIDB4NjAyNywgMHgwMDAwLCAweGEyODQsIDB4MDQwMCwKLQkweDAwNDAsIDB4MTdkYywgMHg2MDJiLCAweDAwMDAsIDB4MjBhOSwgMHgwMDA2LCAweGFjODAsIDB4MDAwYiwKLQkweDIwYTAsIDB4YWQ4MCwgMHgwMDA1LCAweDIwOTgsIDB4NTNhMywgMHhhMjg0LCAweDAzMDAsIDB4MDBjMCwKLQkweDE3ZjEsIDB4NjA0NiwgMHg2MDRhLCAweDYwNGUsIDB4NjA1MiwgMHg2MDk2LCAweDYwOWEsIDB4MDA3OCwKLQkweDE3ZmIsIDB4NjgwMCwgMHg2MDQ2LCAweDY4MDQsIDB4NjA0YSwgMHg2ZTA4LCAweDY2NGUsIDB4NmQwYywKLQkweDY1NTIsIDB4NjU5NiwgMHg2NjlhLCAweDYwMTQsIDB4MjA5MSwgMHg4MDAwLCAweDc4MTcsIDB4MDA0MiwKLQkweDJjMDgsIDB4MjA2MSwgMHg1MTQwLCAweDYwNmYsIDB4MDAwNSwgMHg2MDczLCAweDAwMDAsIDB4NjA3NywKLQkweDAwMDAsIDB4NjA3YiwgMHgwMDAwLCAweDYwN2YsIDB4MDAwMCwgMHg2MDgyLCAweDYxOGEsIDB4YTI4NCwKLQkweDA0MDAsIDB4NjA4ZSwgMHgyMDkxLCAweDgwMDEsIDB4MGU3ZSwgMHgyMDcxLCAweDAwMjAsIDB4NzAwNywKLQkweDAwMGEsIDB4NzAwNywgMHgwMDAyLCAweDcwMDMsIDB4MDAwMCwgMHgwZTdmLCAweDIwOTEsIDB4ODAwMCwKLQkweDEwNzgsIDB4MjFkMiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHg3MGMzLCAweDQwMDUsIDB4MDA3OCwKLQkweDEyODcsIDB4MGM3ZSwgMHgwZDdlLCAweDBlN2UsIDB4MGY3ZSwgMHgyMDkxLCAweDgwMDAsIDB4MjA3MSwKLQkweDUxNDAsIDB4MjA3OSwgMHgwMTAwLCAweDIwNjEsIDB4MDAxMCwgMHg3MGEwLCAweGEwNmQsIDB4MDA0MCwKLQkweDE4YjEsIDB4NmEwNCwgMHhhMjk0LCAweDAwZmYsIDB4YTI4NiwgMHgwMDA3LCAweDAwNDAsIDB4MTg0NCwKLQkweGEyODYsIDB4MDAwZiwgMHgwMGMwLCAweDE4YjEsIDB4NjkxYywgMHhhMTg0LCAweDAwODAsIDB4MDBjMCwKLQkweDE4YjEsIDB4NjgyNCwgMHhhMThjLCAweGZmMDAsIDB4YTA4NSwgMHgwMDE5LCAweDY4MjYsIDB4NzFiMCwKLQkweDgxZmYsIDB4MDA0MCwgMHgxODY3LCAweDBkN2UsIDB4MjA2OSwgMHgwMDIwLCAweDY4MDcsIDB4MDAxMCwKLQkweDY5MDgsIDB4NjgwOCwgMHhhMTA2LCAweDAwYzAsIDB4MTg1OCwgMHg2OTBjLCAweDY4MGMsIDB4YTEwNiwKLQkweDAwYzAsIDB4MTg1ZCwgMHhhMTg0LCAweDAwZmYsIDB4MDBjMCwgMHgxODVkLCAweDBkN2YsIDB4NzhiOCwKLQkweGEwODQsIDB4ODAxZiwgMHgwMGMwLCAweDE4NjcsIDB4Nzg0OCwgMHhhMDg1LCAweDAwMGMsIDB4Nzg0YSwKLQkweDcxYjAsIDB4ODFmZiwgMHgwMDQwLCAweDE4OGEsIDB4NzBiMywgMHgwMDAwLCAweDBkN2UsIDB4MjA2OSwKLQkweDAwMjAsIDB4NjgwNywgMHgwMDE4LCAweDY4MDQsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsIDB4MTg3YiwKLQkweDY4MDcsIDB4MDAwOCwgMHg2ODA0LCAweGEwODQsIDB4MDAwOCwgMHgwMGMwLCAweDE4ODIsIDB4NjgwNywKLQkweDAwMDIsIDB4MGQ3ZiwgMHg2MWM0LCAweDYyYzgsIDB4NjNjYywgMHg2MWM2LCAweDYyY2EsIDB4NjNjZSwKLQkweDBlN2UsIDB4MjA3MSwgMHg1MTAwLCAweDcyNjYsIDB4NzM2YSwgMHhhZTgwLCAweDAwMTksIDB4MGU3ZiwKLQkweDc4NDgsIDB4YTA4NCwgMHgwMDBjLCAweDAwYzAsIDB4MTg5OCwgMHgxMDc4LCAweDQ2ZGIsIDB4NzhhMywKLQkweDAwMDAsIDB4Nzg1OCwgMHhhMDg0LCAweGVkZmYsIDB4Nzg1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBkZiwKLQkweDc4MWEsIDB4MGY3ZiwgMHgwZTdmLCAweDBkN2YsIDB4MGM3ZiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwKLQkweDEyODQsIDB4MGY3ZiwgMHgwZTdmLCAweDBkN2YsIDB4MGM3ZiwgMHgyMDkxLCAweDgwMDEsIDB4MjAwMSwKLQkweDQwMDUsIDB4MDA3OCwgMHgxMjg2LCAweDc5ODAsIDB4NzFjNiwgMHg3MWM0LCAweGExODIsIDB4MDAwMywKLQkweDAwYzgsIDB4MTI3YywgMHg3OTgyLCAweDAwNzgsIDB4MTI4NCwgMHg3OTgwLCAweDcxYzYsIDB4MDA3OCwKLQkweDEyODQsIDB4Nzk3NCwgMHg3MWM2LCAweDcxYzQsIDB4Nzk3NiwgMHg3OTc4LCAweDcxY2EsIDB4NzFjOCwKLQkweDc5N2EsIDB4Nzk3YywgMHg3MWNlLCAweDcxY2MsIDB4Nzk3ZSwgMHgwMDc4LCAweDEyODQsIDB4Nzk3NCwKLQkweDcxYzYsIDB4Nzk3OCwgMHg3MWNhLCAweDc5N2MsIDB4NzFjZSwgMHgwMDc4LCAweDEyODQsIDB4NzkwMCwKLQkweDcxYzYsIDB4NzFjNCwgMHg3OTAyLCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwKLQkweDAwNDgsIDB4MThlZSwgMHgwMDM4LCAweDE4ZjAsIDB4MDA3OCwgMHgxOGZhLCAweDAwYTgsIDB4MThmYSwKLQkweGExOGMsIDB4MDAwMSwgMHgwMGMwLCAweDE4ZjgsIDB4MjBiOSwgMHgyMjIyLCAweDAwNzgsIDB4MThmYSwKLQkweDIwYjksIDB4MTIxMiwgMHgwMDc4LCAweDEyODQsIDB4NzkwMCwgMHg3MWM2LCAweDAwNzgsIDB4MTI4NCwKLQkweDIwMDksIDB4NTE3NCwgMHgyMTA0LCAweDcwYzYsIDB4NzBjNCwgMHgyMDBhLCAweDAwNzgsIDB4MTI4NCwKLQkweDIwMDksIDB4NTE3NCwgMHgyMTA0LCAweDcwYzYsIDB4MDA3OCwgMHgxMjg0LCAweDcxYzQsIDB4ODEwNywKLQkweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMGU4LCAweDUzODAsIDB4NmExNCwKLQkweGQyYjQsIDB4MDA0MCwgMHgxOTFmLCAweDIwMTEsIDB4MDAwMSwgMHgwMDc4LCAweDE5MjEsIDB4MjAxMSwKLQkweDAwMDAsIDB4NmIwYywgMHgwMDc4LCAweDEyODEsIDB4YWM4MCwgMHgwMDAxLCAweDEwNzgsIDB4MWIwZiwKLQkweDAwN2MsIDB4YWM4MCwgMHgwMDAxLCAweDEwNzgsIDB4MWFhZiwgMHgwMDdjLCAweDc4NTAsIDB4YTA2NSwKLQkweDAwNDAsIDB4MTkzNiwgMHgyYzA0LCAweDc4NTIsIDB4MjA2MywgMHgwMDAwLCAweDAwN2MsIDB4MGY3ZSwKLQkweDIwNzksIDB4NTEwMCwgMHg3ODUwLCAweGEwNmQsIDB4MDA0MCwgMHgxOTQ2LCAweDJkMDQsIDB4Nzg1MiwKLQkweDY4MDMsIDB4MDAwMCwgMHg2ODA3LCAweDAwMDAsIDB4NjgwYiwgMHgwMDAwLCAweDBmN2YsIDB4MDA3YywKLQkweDIwOTEsIDB4ODAwMCwgMHgwZjdlLCAweDIwNzksIDB4NTEwMCwgMHg3ODUwLCAweDIwNjIsIDB4MmMwMCwKLQkweGEwMDUsIDB4MDBjMCwgMHgxOTU1LCAweDEwNzgsIDB4MjNlYiwgMHg3ODUyLCAweDBmN2YsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3YywgMHgwZjdlLCAweDIwNzksIDB4NTEwMCwgMHg3ODUwLCAweDIwNmEsIDB4MmQwMCwKLQkweDc4NTIsIDB4MGY3ZiwgMHgwMDdjLCAweDIwMTEsIDB4NzgwMCwgMHg3YTUyLCAweDdiZWMsIDB4ODMxOSwKLQkweDAwNDAsIDB4MTk3MCwgMHhhMjgwLCAweDAwMzEsIDB4MjAxMiwgMHgyMDEwLCAweDAwNzgsIDB4MTk2NywKLQkweDIwMTMsIDB4MDAwMCwgMHgwMDdjLCAweGE3ODQsIDB4MGYwMCwgMHg4MDBiLCAweGE3ODQsIDB4MDAxZiwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTEwNSwgMHhhMGU4LCAweDU0MDAsIDB4MDA3YywKLQkweDEwNzgsIDB4MTk3MywgMHgyOTAwLCAweDY4MmEsIDB4MmEwMCwgMHg2ODJlLCAweDY4MDgsIDB4YTA4NCwKLQkweGZmZWYsIDB4YTgwZCwgMHg2OTBhLCAweDIwMDksIDB4NTE1MiwgMHgyMTBjLCAweDY4MDQsIDB4YTAwNSwKLQkweDAwNDAsIDB4MTliMiwgMHhhMTE2LCAweDAwYzAsIDB4MTk5ZCwgMHgyMDYwLCAweDYwMDAsIDB4NjgwNiwKLQkweDAxN2UsIDB4MjAwYiwgMHgwMDAwLCAweDAwNzgsIDB4MTlhMCwgMHgyMDA5LCAweDAwMDAsIDB4MDE3ZSwKLQkweDY4MDQsIDB4YTA2NSwgMHgwMDQwLCAweDE5YWYsIDB4NjAwMCwgMHg2ODA2LCAweDEwNzgsIDB4MTljMCwKLQkweDEwNzgsIDB4MWM1ZiwgMHg2ODEwLCAweDgwMDEsIDB4NjgxMiwgMHgwMGMwLCAweDE5YTAsIDB4MDE3ZiwKLQkweDY5MDIsIDB4NjkwNiwgMHgwMDdjLCAweGEwNjUsIDB4MDA0MCwgMHgxOWJmLCAweDYwOWMsIDB4NjA5ZiwKLQkweDAwMDAsIDB4MjAwOCwgMHgxMDc4LCAweDE5NDgsIDB4MjEwMCwgMHgwMDc4LCAweDE5YjMsIDB4MDA3YywKLQkweDYwMDcsIDB4MDEwMywgMHg2MDhmLCAweDAwMDAsIDB4MjBhOSwgMHgwMDFjLCAweGFjODAsIDB4MDAwNSwKLQkweDIwYTAsIDB4MjAwMSwgMHgwMDAwLCAweDQwYTQsIDB4NjgyOCwgMHg2MDFhLCAweDY4MmMsIDB4NjAyMiwKLQkweDAwN2MsIDB4MGU3ZSwgMHgyMDcxLCAweDUxNDAsIDB4NzA0YywgMHhhMDhjLCAweDAyMDAsIDB4MDBjMCwKLQkweDE5ZGYsIDB4YTA4OCwgMHg1MTgwLCAweDJkMGEsIDB4ODAwMCwgMHg3MDRlLCAweGEwMDYsIDB4MGU3ZiwKLQkweDAwN2MsIDB4MTA3OCwgMHgxOTczLCAweDIwOTEsIDB4ODAwMCwgMHg2ODA0LCAweDc4MWUsIDB4YTA2NSwKLQkweDAwNDAsIDB4MWEyYSwgMHgwMDc4LCAweDE5ZjIsIDB4MmMwMCwgMHg3ODFlLCAweDYwMDAsIDB4YTA2NSwKLQkweDAwNDAsIDB4MWEyYSwgMHg2MDBjLCAweGEzMDYsIDB4MDBjMCwgMHgxOWVjLCAweDYwMTAsIDB4YTIwNiwKLQkweDAwYzAsIDB4MTllYywgMHgyYzI4LCAweDIwMDEsIDB4NTE1MiwgMHgyMDA0LCAweGFjMDYsIDB4MDBjMCwKLQkweDFhMDMsIDB4MDA3OCwgMHgxYTI4LCAweDY4MDQsIDB4YWMwNiwgMHgwMGMwLCAweDFhMTAsIDB4NjAwMCwKLQkweGEwNjUsIDB4NjgwNiwgMHgwMGMwLCAweDFhMWEsIDB4NjgwMywgMHgwMDAwLCAweDAwNzgsIDB4MWExYSwKLQkweDY0MDAsIDB4NzgxYywgMHgyMDYwLCAweDY0MDIsIDB4YTQ4NiwgMHgwMDAwLCAweDAwYzAsIDB4MWExYSwKLQkweDJjMDAsIDB4NjgwMiwgMHgyNTYwLCAweDEwNzgsIDB4MTljMCwgMHg2MDFiLCAweDAwMDUsIDB4NjAyMywKLQkweDAwMjAsIDB4MTA3OCwgMHgxYzVmLCAweDY4MTAsIDB4ODAwMSwgMHgxMDUwLCAweDIzZWIsIDB4NjgxMiwKLQkweGEwODUsIDB4ZmZmZiwgMHgwMDdjLCAweDIwMzksIDB4MDAwMCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwKLQkweDAwMDQsIDB4MjA1MSwgMHgwMDA4LCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDE5ODAsIDB4ODczOCwKLQkweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDFhMzUsIDB4YTdiYywgMHhmZjAwLCAweDg3M2YsIDB4ODczOCwKLQkweDg3M2YsIDB4YTc4NCwgMHgwZjAwLCAweDAwYzAsIDB4MWEzNSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywKLQkweDIwNjEsIDB4MDAwMCwgMHg2MDE4LCAweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDFhNTksIDB4MjA5MSwKLQkweDgwMDAsIDB4NzhlMCwgMHg3OGUzLCAweDAwMDAsIDB4MjA5MSwgMHg4MDAxLCAweGEwMDUsIDB4MDBjMCwKLQkweDFhNWEsIDB4MDA3YywgMHhhMDhjLCAweGZmZjAsIDB4MDA0MCwgMHgxYTYwLCAweDEwNzgsIDB4MjNlYiwKLQkweDAwNzksIDB4MWE2MiwgMHgxYTcyLCAweDFhNzUsIDB4MWE3YiwgMHgxYTdmLCAweDFhNzMsIDB4MWE4MywKLQkweDFhODksIDB4MWE3MywgMHgxYTczLCAweDFjMjksIDB4MWM0ZCwgMHgxYzUxLCAweDFhNzMsIDB4MWE3MywKLQkweDFhNzMsIDB4MWE3MywgMHgwMDdjLCAweDEwNzgsIDB4MjNlYiwgMHgxMDc4LCAweDFhMmIsIDB4MjAwMSwKLQkweDgwMDEsIDB4MDA3OCwgMHgxYzU3LCAweDIwMDEsIDB4ODAwMywgMHgwMDc4LCAweDFjNTcsIDB4MjAwMSwKLQkweDgwMDQsIDB4MDA3OCwgMHgxYzU3LCAweDEwNzgsIDB4MWEyYiwgMHgyMDAxLCAweDgwMDYsIDB4MDA3OCwKLQkweDFjNTcsIDB4MjAwMSwgMHg4MDA3LCAweDAwNzgsIDB4MWM1NywgMHgyMDMwLCAweDIxMzgsIDB4YTc4MiwKLQkweDAwMjEsIDB4MDA0OCwgMHgxYTk1LCAweDIwMDksIDB4MDAyMCwgMHgyNjAwLCAweDEwNzgsIDB4MWFhZiwKLQkweDAwYzAsIDB4MWFhZSwgMHhhN2JhLCAweDAwMjAsIDB4MDA0OCwgMHgxYWFkLCAweDAwNDAsIDB4MWFhZCwKLQkweDI3MDgsIDB4YTZiMCwgMHgwMDIwLCAweGEyOTAsIDB4MDA0MCwgMHhhMzk5LCAweDAwMDAsIDB4YTRhMSwKLQkweDAwMDAsIDB4YTVhOSwgMHgwMDAwLCAweDAwNzgsIDB4MWE4ZiwgMHhhMDA2LCAweDAwN2MsIDB4ODFmZiwKLQkweDAwNDAsIDB4MWFlYSwgMHgyMDk5LCAweDAwMzAsIDB4MjBhMCwgMHg3MDBjLCAweGEwODQsIDB4MDBmZiwKLQkweDAwNDAsIDB4MWFjMSwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwKLQkweDFhYmMsIDB4MjFhOCwgMHg3MDE3LCAweDAwMDAsIDB4ODEwYiwgMHg3MTEyLCAweDcyMWEsIDB4NzMxZSwKLQkweDc0MjIsIDB4NzUyNiwgMHg3ODBjLCAweGEwODUsIDB4MDAwMSwgMHg3MDAyLCAweDcwMDcsIDB4MDAwMSwKLQkweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwgMHgwMGM4LCAweDFhZGUsIDB4MjAwOSwKLQkweDAwMjIsIDB4MjEwNCwgMHhhMDg0LCAweDQwMDAsIDB4MDBjMCwgMHgxYWQwLCAweDcwMDgsIDB4ODAwYiwKLQkweDAwYzgsIDB4MWFkMCwgMHg3MDA3LCAweDAwMDIsIDB4YTA4YywgMHgwMWUwLCAweDAwYzAsIDB4MWFlYSwKLQkweDUzYTUsIDB4YTAwNiwgMHg3MDAzLCAweDAwMDAsIDB4MDA3YywgMHgyMDMwLCAweDIxMzgsIDB4YTc4MiwKLQkweDAwMjEsIDB4MDA0OCwgMHgxYWY1LCAweDIwMDksIDB4MDAyMCwgMHgyNjAwLCAweDEwNzgsIDB4MWIwZiwKLQkweDAwYzAsIDB4MWIwZSwgMHhhN2JhLCAweDAwMjAsIDB4MDA0OCwgMHgxYjBkLCAweDAwNDAsIDB4MWIwZCwKLQkweDI3MDgsIDB4YTZiMCwgMHgwMDIwLCAweGEyOTAsIDB4MDA0MCwgMHhhMzk5LCAweDAwMDAsIDB4YTRhMSwKLQkweDAwMDAsIDB4YTVhOSwgMHgwMDAwLCAweDAwNzgsIDB4MWFlZiwgMHhhMDA2LCAweDAwN2MsIDB4ODFmZiwKLQkweDAwNDAsIDB4MWI1MCwgMHgyMDk4LCAweDIwYTEsIDB4MDAzMCwgMHg3MDBjLCAweGEwODQsIDB4MDBmZiwKLQkweDAwNDAsIDB4MWIyMSwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwKLQkweDFiMWMsIDB4MjFhOCwgMHg3MDE3LCAweDAwMDAsIDB4ODEwYiwgMHg3MTEyLCAweDcyMWEsIDB4NzMxZSwKLQkweDc0MjIsIDB4NzUyNiwgMHg3ODBjLCAweGEwODUsIDB4MDAwMCwgMHg3MDAyLCAweDUzYTYsIDB4NzAwNywKLQkweDAwMDEsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4YTA4MiwgMHgwMDA1LCAweDAwYzgsIDB4MWIzZiwKLQkweDIwMDksIDB4MDAyMiwgMHgyMTA0LCAweGEwODQsIDB4NDAwMCwgMHgwMGMwLCAweDFiMzEsIDB4NzAxMCwKLQkweGEwODQsIDB4ZjAwMCwgMHgwMDQwLCAweDFiNDgsIDB4NzAwNywgMHgwMDA4LCAweDAwNzgsIDB4MWI0YywKLQkweDcxMDgsIDB4ODEwMywgMHgwMGM4LCAweDFiMzEsIDB4NzAwNywgMHgwMDAyLCAweGExODQsIDB4MDFlMCwKLQkweDcwMDMsIDB4MDAwMCwgMHgwMDdjLCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNCwKLQkweDAwYzgsIDB4MWI1YywgMHgwMDc4LCAweDFiNWYsIDB4YTAwNiwgMHgwMDc4LCAweDFiNjEsIDB4YTA4NSwKLQkweDAwMDEsIDB4MDA3YywgMHgwZTdlLCAweDIwNzEsIDB4NTEwMCwgMHgyZDA4LCAweDcwNTgsIDB4NjgwMiwKLQkweGEwMDUsIDB4MDBjMCwgMHgxYjZjLCAweDcxNWUsIDB4NzE1YSwgMHgwZTdmLCAweDAwN2MsIDB4MmMwOCwKLQkweDc4NTgsIDB4NjAwMiwgMHhhMDA1LCAweDAwYzAsIDB4MWI3NiwgMHg3OTVlLCAweDc5NWEsIDB4MDA3YywKLQkweDIwOTEsIDB4ODAwMCwgMHg2MDAzLCAweDAwMDAsIDB4MmMwOCwgMHg3ODVjLCAweGEwNjUsIDB4MDBjMCwKLQkweDFiODQsIDB4Nzk1YSwgMHgwMDc4LCAweDFiODUsIDB4NjEwMiwgMHg3OTVlLCAweDIwOTEsIDB4ODAwMSwKLQkweDEwNzgsIDB4MjFlZiwgMHgwMDdjLCAweDBlN2UsIDB4MjA3MSwgMHg1MTAwLCAweDcwNTgsIDB4YTA2ZCwKLQkweDAwNDAsIDB4MWI5OSwgMHg2ODAwLCAweDcwNWEsIDB4YTAwNSwgMHgwMGMwLCAweDFiOTgsIDB4NzA1ZSwKLQkweDhkZmYsIDB4MGU3ZiwgMHgwMDdjLCAweDBkN2UsIDB4MGM3ZSwgMHgwZjdlLCAweDIwNzksIDB4NTEwMCwKLQkweGFmODAsIDB4MDAxNiwgMHgyMDYwLCAweDYwMDAsIDB4YTAwNSwgMHgwMDQwLCAweDFiYzksIDB4MjA2OCwKLQkweDY4MTQsIDB4YTMwNiwgMHgwMGMwLCAweDFiYjIsIDB4NjgyOCwgMHhhMDg0LCAweDAwZmYsIDB4YTQwNiwKLQkweDAwNDAsIDB4MWJiNSwgMHgyZDYwLCAweDAwNzgsIDB4MWJhMywgMHg2ODAwLCAweGEwMDUsIDB4NjAwMiwKLQkweDAwYzAsIDB4MWJjMSwgMHhhZjgwLCAweDAwMTYsIDB4YWMwNiwgMHgwMDQwLCAweDFiYzAsIDB4MmMwMCwKLQkweDc4NWUsIDB4MGQ3ZSwgMHg2ODljLCAweGEwMDUsIDB4MDA0MCwgMHgxYmM4LCAweDEwNzgsIDB4MTliMywKLQkweDAwN2YsIDB4MGY3ZiwgMHgwYzdmLCAweDBkN2YsIDB4YTAwNSwgMHgwMDdjLCAweDBkN2UsIDB4MGM3ZSwKLQkweDBmN2UsIDB4MjA3OSwgMHg1MTAwLCAweGFmODAsIDB4MDAxNiwgMHgyMDYwLCAweDYwMDAsIDB4YTAwNSwKLQkweDAwNDAsIDB4MWJmOCwgMHgyMDY4LCAweDY4MTQsIDB4YTA4NCwgMHgwMGZmLCAweGEzMDYsIDB4MDA0MCwKLQkweDFiZTQsIDB4MmQ2MCwgMHgwMDc4LCAweDFiZDYsIDB4NjgwMCwgMHhhMDA1LCAweDYwMDIsIDB4MDBjMCwKLQkweDFiZjAsIDB4YWY4MCwgMHgwMDE2LCAweGFjMDYsIDB4MDA0MCwgMHgxYmVmLCAweDJjMDAsIDB4Nzg1ZSwKLQkweDBkN2UsIDB4Njg5YywgMHhhMDA1LCAweDAwNDAsIDB4MWJmNywgMHgxMDc4LCAweDE5YjMsIDB4MDA3ZiwKLQkweDBmN2YsIDB4MGM3ZiwgMHgwZDdmLCAweGEwMDUsIDB4MDA3YywgMHgwZDdlLCAweDBjN2UsIDB4MGY3ZSwKLQkweDIwNzksIDB4NTEwMCwgMHhhZjgwLCAweDAwMTYsIDB4MjA2MCwgMHg2MDAwLCAweGEwNmQsIDB4MDA0MCwKLQkweDFjMjQsIDB4NjgxNCwgMHhhMzA2LCAweDAwNDAsIDB4MWMxMCwgMHgyZDYwLCAweDAwNzgsIDB4MWMwNSwKLQkweDY4MDAsIDB4YTAwNSwgMHg2MDAyLCAweDAwYzAsIDB4MWMxYywgMHhhZjgwLCAweDAwMTYsIDB4YWMwNiwKLQkweDAwNDAsIDB4MWMxYiwgMHgyYzAwLCAweDc4NWUsIDB4MGQ3ZSwgMHg2ODljLCAweGEwMDUsIDB4MDA0MCwKLQkweDFjMjMsIDB4MTA3OCwgMHgxOWIzLCAweDAwN2YsIDB4MGY3ZiwgMHgwYzdmLCAweDBkN2YsIDB4YTAwNSwKLQkweDAwN2MsIDB4MjA5MSwgMHg4MDAwLCAweDIwNjksIDB4NTE0MCwgMHg2ODAwLCAweGEwODYsIDB4MDAwMCwKLQkweDAwNDAsIDB4MWMzNywgMHgyMDkxLCAweDgwMDEsIDB4NzhlMywgMHgwMDA5LCAweDAwN2MsIDB4Njg4MCwKLQkweGEwYmMsIDB4ZmYwMCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA0LCAweDIwNTEsIDB4MDAxMCwKLQkweDEwNzgsIDB4MTk4MCwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDFjNDAsIDB4MjA5MSwKLQkweDgwMDEsIDB4MjAwMSwgMHg4MDBhLCAweDAwNzgsIDB4MWM1NywgMHgyMDAxLCAweDgwMGMsIDB4MDA3OCwKLQkweDFjNTcsIDB4MTA3OCwgMHgxYTJiLCAweDIwMDEsIDB4ODAwZCwgMHgwMDc4LCAweDFjNTcsIDB4NzBjMiwKLQkweDIwNjEsIDB4MDAwMCwgMHg2MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDAwN2MsIDB4NjAwNCwKLQkweDJjMDgsIDB4MjA2MywgMHgwMDAwLCAweDc4ODQsIDB4ODAwMCwgMHg3ODg2LCAweDc4ODgsIDB4YTAwNSwKLQkweDc5OGEsIDB4MDA0MCwgMHgxYzZlLCAweDJjMDIsIDB4MDA3OCwgMHgxYzZmLCAweDc5OGUsIDB4MDA3YywKLQkweDY4MDcsIDB4MDEwMywgMHgwYzdlLCAweDIwNjEsIDB4NTEwMCwgMHgyZDA4LCAweDIwNmIsIDB4MDAwMCwKLQkweDYwODQsIDB4ODAwMCwgMHg2MDg2LCAweDYwODgsIDB4YTAwNSwgMHg2MThhLCAweDAwNDAsIDB4MWM4MywKLQkweDJkMDIsIDB4MDA3OCwgMHgxYzg0LCAweDYxOGUsIDB4MGM3ZiwgMHgwMDdjLCAweDEwNzgsIDB4MWM5NywKLQkweDAwNDAsIDB4MWM5NiwgMHgwYzdlLCAweDYwOWMsIDB4YTA2NSwgMHgwMDQwLCAweDFjOTEsIDB4MTA3OCwKLQkweDE5YjMsIDB4MGM3ZiwgMHg2MDlmLCAweDAwMDAsIDB4MTA3OCwgMHgxOTQ4LCAweDAwN2MsIDB4Nzg4YywKLQkweGEwNjUsIDB4MDA0MCwgMHgxY2E5LCAweDIwOTEsIDB4ODAwMCwgMHg3ODg0LCAweDgwMDEsIDB4Nzg4NiwKLQkweDJjMDQsIDB4Nzg4ZSwgMHhhMDA1LCAweDAwYzAsIDB4MWNhNywgMHg3ODhhLCAweDgwMDAsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3YywgMHgyMGE5LCAweDAwMTAsIDB4YTAwNiwgMHg4MDA0LCAweDgwODYsIDB4ODE4ZSwKLQkweDAwYzgsIDB4MWNiMywgMHhhMjAwLCAweDAwNzAsIDB4MWNiNywgMHgwMDc4LCAweDFjYWUsIDB4ODA4NiwKLQkweDgxOGUsIDB4MDA3YywgMHgxNTdlLCAweDIwYTksIDB4MDAxMCwgMHhhMDA1LCAweDAwNDAsIDB4MWNkZCwKLQkweGExMWEsIDB4MDBjOCwgMHgxY2RkLCAweDgyMTMsIDB4ODE4ZCwgMHgwMDQ4LCAweDFjY2UsIDB4YTExYSwKLQkweDAwYzgsIDB4MWNjZiwgMHgwMDcwLCAweDFjZDUsIDB4MDA3OCwgMHgxY2MzLCAweGExMWEsIDB4MjMwOCwKLQkweDgyMTAsIDB4MDA3MCwgMHgxY2Q1LCAweDAwNzgsIDB4MWNjMywgMHgwMDdlLCAweDMyMDAsIDB4YTA4NCwKLQkweGY3ZmYsIDB4MjA4MCwgMHgwMDdmLCAweDE1N2YsIDB4MDA3YywgMHgwMDdlLCAweDMyMDAsIDB4YTA4NSwKLQkweDA4MDAsIDB4MDA3OCwgMHgxY2Q5LCAweDc5OTQsIDB4NzBkMCwgMHhhMTA2LCAweDAwNDAsIDB4MWQ1MSwKLQkweDIwOTEsIDB4ODAwMCwgMHgyMDcxLCAweDAwMjAsIDB4NzAwNCwgMHhhMDA1LCAweDAwYzAsIDB4MWQ1MSwKLQkweDcwMDgsIDB4NzIwOCwgMHhhMjA2LCAweDAwYzAsIDB4MWQ1MSwgMHhhMjg2LCAweDAwMDgsIDB4MDBjMCwKLQkweDFkNTEsIDB4MjA3MSwgMHgwMDEwLCAweDEwNzgsIDB4MTkyZSwgMHgwMDQwLCAweDFkNTEsIDB4N2E5YywKLQkweDdiOTgsIDB4N2NhNCwgMHg3ZGEwLCAweGExODQsIDB4ZmYwMCwgMHgwMDQwLCAweDFkMWYsIDB4MjAzMSwKLQkweDAwMDAsIDB4ODEwYiwgMHg4NmI1LCAweDgxMGIsIDB4ODZiNSwgMHg4MTBiLCAweDg2YjUsIDB4ODEwYiwKLQkweDg2YjUsIDB4ODEwYiwgMHg4NmI1LCAweDgxMGIsIDB4ODZiNSwgMHgyMTAwLCAweGEyMTAsIDB4MjYwMCwKLQkweGEzMTksIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwgMHgwMDc4LCAweDFkMjksIDB4ODEwNywKLQkweDgwMDQsIDB4ODAwNCwgMHhhMjEwLCAweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwKLQkweDAwMDAsIDB4MjAwOSwgMHgwMDIwLCAweDEwNzgsIDB4MTkyOSwgMHgyMDkxLCAweDgwMDEsIDB4MDA0MCwKLQkweDFkNDgsIDB4MTA3OCwgMHgxOTQ4LCAweDc4YTgsIDB4ODAwMCwgMHg3OGFhLCAweGEwODYsIDB4MDAwMiwKLQkweDAwYzAsIDB4MWQ1MSwgMHgyMDkxLCAweDgwMDAsIDB4NzhlMywgMHgwMDAyLCAweDc4YWIsIDB4MDAwMCwKLQkweDc4Y2MsIDB4YTA4NSwgMHgwMDAzLCAweDc4Y2UsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MWQ1MSwKLQkweDc4YWIsIDB4MDAwMCwgMHgxMDc4LCAweDIwYWMsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDA3OSwKLQkweDFkNTYsIDB4MjA3MSwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDFkNjYsIDB4MWQ4OCwKLQkweDFkYWUsIDB4MWQ2NiwgMHgxZGNiLCAweDFkNzUsIDB4MWYyYywgMHgxZjQ3LCAweDFkNjYsIDB4MWQ4MiwKLQkweDFkYTgsIDB4MWUxMywgMHgxZTgyLCAweDFlZDIsIDB4MWVlNCwgMHgxZjQzLCAweDIwMzksIDB4MDQwMCwKLQkweDc4ZGMsIDB4YTcwNSwgMHg3OGRlLCAweDYwMDgsIDB4YTcwNSwgMHg2MDBhLCAweDEwNzgsIDB4MWZjNywKLQkweDYwOWMsIDB4NzhkYSwgMHgxMDc4LCAweDIwOTQsIDB4MDA3YywgMHg3OGRjLCAweGEwODQsIDB4MDEwMCwKLQkweDAwNDAsIDB4MWQ3YywgMHgwMDc4LCAweDFkNjYsIDB4NjAxYywgMHhhMDg1LCAweDAwODAsIDB4NjAxZSwKLQkweDAwNzgsIDB4MWQ4ZiwgMHgxMDc4LCAweDFiNTMsIDB4MDBjMCwgMHgxZDY2LCAweDEwNzgsIDB4MjBjNiwKLQkweDc4ZGMsIDB4YTA4NCwgMHgwMTAwLCAweDAwNDAsIDB4MWQ4ZiwgMHgwMDc4LCAweDFkNjYsIDB4NzhkZiwKLQkweDAwMDAsIDB4NjAwNCwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHg3OGQyLCAweDgwMDEsIDB4NjA5ZiwKLQkweDAwMDAsIDB4MDA0MCwgMHgxZGE1LCAweDEwNzgsIDB4MWZjNywgMHgwMDQwLCAweDFkYTUsIDB4NzhkYywKLQkweGEwODUsIDB4MDEwMCwgMHg3OGRlLCAweDAwNzgsIDB4MWRhNywgMHgxMDc4LCAweDFmZWIsIDB4MDA3YywKLQkweDEwNzgsIDB4MWI1MywgMHgwMGMwLCAweDFkNjYsIDB4MTA3OCwgMHgyMGMyLCAweDc4ZGMsIDB4YTA4YywKLQkweDBlMDAsIDB4MDBjMCwgMHgxZGI3LCAweGEwODQsIDB4MDEwMCwgMHgwMGMwLCAweDFkYjksIDB4MDA3OCwKLQkweDFkNjYsIDB4MTA3OCwgMHgxZmM3LCAweDAwYzAsIDB4MWRjYSwgMHg2MTA0LCAweGExOGMsIDB4MDBmZiwKLQkweGExODYsIDB4MDAwNywgMHgwMDQwLCAweDFmODQsIDB4YTE4NiwgMHgwMDBmLCAweDAwNDAsIDB4MWY4NCwKLQkweDEwNzgsIDB4MWZlYiwgMHgwMDdjLCAweDc4ZGMsIDB4YTA4NCwgMHgwMTAwLCAweDAwNDAsIDB4MWRkMiwKLQkweDAwNzgsIDB4MWQ2NiwgMHg3OGRmLCAweDAwMDAsIDB4NjcxNCwgMHgyMDExLCAweDAwMDEsIDB4MjBhOSwKLQkweDAwMDEsIDB4NjAxOCwgMHhhMDg0LCAweDAwZmYsIDB4YTAwNSwgMHgwMDQwLCAweDFkZjUsIDB4MjAxMSwKLQkweDAwMDEsIDB4YTdiYywgMHhmZjAwLCAweDIwYTksIDB4MDAyMCwgMHhhMDhlLCAweDAwMDEsIDB4MDA0MCwKLQkweDFkZjUsIDB4MjAzOSwgMHgwMDAwLCAweDIwMTEsIDB4MDAwMiwgMHgyMGE5LCAweDAxMDAsIDB4YTA4ZSwKLQkweDAwMDIsIDB4MDA0MCwgMHgxZGY1LCAweDAwNzgsIDB4MWUxMCwgMHgxMDc4LCAweDE5NzMsIDB4MjA5MSwKLQkweDgwMDAsIDB4NjgyYiwgMHgwMDAwLCAweDY4MmYsIDB4MDAwMCwgMHg2ODA4LCAweGEwODQsIDB4ZmZkZSwKLQkweDY4MGEsIDB4YWRlOCwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDcwLCAweDFlMDksIDB4MDA3OCwKLQkweDFkZjcsIDB4ODIxMSwgMHgwMDQwLCAweDFlMTAsIDB4MjBhOSwgMHgwMTAwLCAweDAwNzgsIDB4MWRmNywKLQkweDEwNzgsIDB4MTk0OCwgMHgwMDdjLCAweDIwMDEsIDB4NTE2NywgMHgyMDA0LCAweGEwODQsIDB4ODAwMCwKLQkweDAwNDAsIDB4MWZhYywgMHg2MTE0LCAweDEwNzgsIDB4MjBlMywgMHg2OTAwLCAweGExODQsIDB4MDAwMSwKLQkweDAwNDAsIDB4MWUzNCwgMHg2MDI4LCAweGEwODQsIDB4MDBmZiwgMHgwMGMwLCAweDFmYTQsIDB4NjgwMCwKLQkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDFmYWMsIDB4NjgwMywgMHgwMDAwLCAweDY4MGIsIDB4MDAwMCwKLQkweDY4MDcsIDB4MDAwMCwgMHgwMDc4LCAweDFmYjQsIDB4MjAxMSwgMHgwMDAxLCAweDYwMjAsIDB4ZDBmNCwKLQkweDAwNDAsIDB4MWUzYywgMHhhMjk1LCAweDAwMDIsIDB4ZDBjNCwgMHgwMDQwLCAweDFlNDEsIDB4YTI5NSwKLQkweDAwMDgsIDB4ZDBjYywgMHgwMDQwLCAweDFlNDYsIDB4YTI5NSwgMHgwNDAwLCAweDYwMWMsIDB4YTA4NCwKLQkweDAwMDIsIDB4MDA0MCwgMHgxZTRkLCAweGEyOTUsIDB4MDAwNCwgMHg2MDJjLCAweGEwOGMsIDB4MDBmZiwKLQkweGExODIsIDB4MDAwMiwgMHgwMDQ4LCAweDFmYjAsIDB4YTE4MiwgMHgwMDFiLCAweDAwYzgsIDB4MWZiMCwKLQkweDAwNDAsIDB4MWZiMCwgMHg2OTBlLCAweDYwMmMsIDB4ODAwNywgMHhhMDhjLCAweDAwZmYsIDB4YTE4MiwKLQkweDAwMDIsIDB4MDA0OCwgMHgxZmIwLCAweGExODIsIDB4MDAxYiwgMHgwMGM4LCAweDFmYjAsIDB4MDA0MCwKLQkweDFmYjAsIDB4NjkxMiwgMHg2MDMwLCAweGEwMDUsIDB4MDBjMCwgMHgxZTcwLCAweDIwMDEsIDB4MDAxZSwKLQkweDgwMDAsIDB4NjgxNiwgMHg2MDI4LCAweGEwODQsIDB4MDBmZiwgMHgwMDQwLCAweDFmYWMsIDB4NjgwNiwKLQkweDYwMjgsIDB4ODAwNywgMHhhMDg0LCAweDAwZmYsIDB4MDA0MCwgMHgxZmFjLCAweDY4MGEsIDB4NmEwMiwKLQkweDAwNzgsIDB4MWZiNCwgMHgyMDAxLCAweDUxNjcsIDB4MjAwNCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKLQkweDFmYWMsIDB4NjExNCwgMHgxMDc4LCAweDIwZTMsIDB4MjA5MSwgMHg4MDAwLCAweDZhMDQsIDB4NmIwOCwKLQkweDY0MTgsIDB4YTQ4NCwgMHgwMDAzLCAweDAwNDAsIDB4MWVhOCwgMHg2MTI4LCAweGExOGMsIDB4MDBmZiwKLQkweDgwMDEsIDB4MDBjMCwgMHgxZWExLCAweDIxMDAsIDB4YTIxMCwgMHgwMDQ4LCAweDFlY2UsIDB4MDA3OCwKLQkweDFlYTgsIDB4ODAwMSwgMHgwMGMwLCAweDFlY2UsIDB4MjEwMCwgMHhhMjEyLCAweDAwNDgsIDB4MWVjZSwKLQkweGE0ODQsIDB4MDAwYywgMHgwMDQwLCAweDFlYzIsIDB4NjEyOCwgMHg4MTBmLCAweGExOGMsIDB4MDBmZiwKLQkweGEwODIsIDB4MDAwNCwgMHgwMGMwLCAweDFlYmEsIDB4MjEwMCwgMHhhMzE4LCAweDAwNDgsIDB4MWVjZSwKLQkweDAwNzgsIDB4MWVjMiwgMHhhMDgyLCAweDAwMDQsIDB4MDBjMCwgMHgxZWNlLCAweDIxMDAsIDB4YTMxYSwKLQkweDAwNDgsIDB4MWVjZSwgMHg2MDMwLCAweGEwMDUsIDB4MDA0MCwgMHgxZWM4LCAweDgwMDAsIDB4NjgxNiwKLQkweDZhMDYsIDB4NmIwYSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwgMHgxZmI0LCAweDIwOTEsIDB4ODAwMSwKLQkweDAwNzgsIDB4MWZiMCwgMHg2MTE0LCAweDEwNzgsIDB4MjBlMywgMHgyMDkxLCAweDgwMDAsIDB4NmIwOCwKLQkweDgzMTgsIDB4MDA0OCwgMHgxZWUwLCAweDZiMGEsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MWZjMywKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDFmYjAsIDB4NjAyNCwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwKLQkweDAwNDAsIDB4MWYwMiwgMHhhMDg2LCAweDAwODAsIDB4MDBjMCwgMHgxZjJhLCAweDIwYTksIDB4MDAwOCwKLQkweDIwNjksIDB4NzUxMCwgMHgyMDkxLCAweDgwMDAsIDB4NjgwMCwgMHhhMDg0LCAweGZjZmYsIDB4NjgwMiwKLQkweGFkZTgsIDB4MDAwOCwgMHgwMDcwLCAweDFlZmUsIDB4MDA3OCwgMHgxZWY0LCAweDIwOTEsIDB4ODAwMSwKLQkweDAwNzgsIDB4MWZiNCwgMHg2MDI4LCAweGEwMTUsIDB4MDA0MCwgMHgxZjJhLCAweDYxMTQsIDB4MTA3OCwKLQkweDIwZTMsIDB4MGQ3ZSwgMHhhZGU4LCAweDAwMDcsIDB4MjA5MSwgMHg4MDAwLCAweDY4MDAsIDB4YTAwZCwKLQkweDAwNDAsIDB4MWYyNywgMHhhMjA2LCAweDAwNDAsIDB4MWYxOCwgMHgyMTY4LCAweDAwNzgsIDB4MWYwZSwKLQkweDBjN2UsIDB4MjE2MCwgMHg2MDAwLCAweDY4MDIsIDB4MTA3OCwgMHgxOTQ4LCAweDBjN2YsIDB4MGQ3ZiwKLQkweDY4MDgsIDB4ODAwMCwgMHg2ODBhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDFmYzMsIDB4MjA5MSwKLQkweDgwMDEsIDB4MGQ3ZiwgMHgwMDc4LCAweDFmYWMsIDB4NjExNCwgMHgxMDc4LCAweDIwZTMsIDB4NjgwMCwKLQkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDFmOWMsIDB4MjA5MSwgMHg4MDAwLCAweDZhMDQsIDB4ODIxMCwKLQkweDAwNDgsIDB4MWYzZiwgMHg2YTA2LCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDFmYzMsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3OCwgMHgxZmIwLCAweDEwNzgsIDB4MWI1MywgMHgwMGMwLCAweDFkNjYsIDB4NjExNCwKLQkweDEwNzgsIDB4MjBlMywgMHg2MGJlLCAweDYwYmIsIDB4MDAwMCwgMHg2OTAwLCAweGExODQsIDB4MDAwOCwKLQkweDAwNDAsIDB4MWY1NiwgMHg2MDIwLCAweGEwODUsIDB4MDEwMCwgMHg2MDIyLCAweGExODQsIDB4MDAwMSwKLQkweDAwNDAsIDB4MWZhYywgMHhhMTg0LCAweDAxMDAsIDB4MDBjMCwgMHgxZjk4LCAweGExODQsIDB4MDIwMCwKLQkweDAwYzAsIDB4MWY5NCwgMHg2ODFjLCAweGEwMDUsIDB4MDBjMCwgMHgxZmEwLCAweDYwMDQsIDB4YTA4NCwKLQkweDAwZmYsIDB4YTA4NiwgMHgwMDBmLCAweDAwYzAsIDB4MWY2ZiwgMHgxMDc4LCAweDIwYzYsIDB4NzhkZiwKLQkweDAwMDAsIDB4NjAwNCwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHg3OGQyLCAweDgwMDEsIDB4NjA5ZiwKLQkweDAwMDAsIDB4MDA0MCwgMHgxZjg0LCAweDEwNzgsIDB4MWZjNywgMHgwMDQwLCAweDFmODQsIDB4NzhkYywKLQkweGEwODUsIDB4MDEwMCwgMHg3OGRlLCAweDAwN2MsIDB4NzhkNywgMHgwMDAwLCAweDc4ZGIsIDB4MDAwMCwKLQkweDYwMjQsIDB4YTA4NCwgMHhmZjAwLCAweDYwMjYsIDB4MTA3OCwgMHgzOWRlLCAweDAwNDAsIDB4MWNlMywKLQkweDEwNzgsIDB4MWI3OCwgMHgwMDc4LCAweDFjZTMsIDB4MjAwOSwgMHgwMDE3LCAweDAwNzgsIDB4MWZiNiwKLQkweDIwMDksIDB4MDAwZSwgMHgwMDc4LCAweDFmYjYsIDB4MjAwOSwgMHgwMDA3LCAweDAwNzgsIDB4MWZiNiwKLQkweDIwMDksIDB4MDAzNSwgMHgwMDc4LCAweDFmYjYsIDB4MjAwOSwgMHgwMDNlLCAweDAwNzgsIDB4MWZiNiwKLQkweDIwMDksIDB4MDAwNCwgMHgwMDc4LCAweDFmYjYsIDB4MjAwOSwgMHgwMDA2LCAweDAwNzgsIDB4MWZiNiwKLQkweDIwMDksIDB4MDAxNiwgMHgwMDc4LCAweDFmYjYsIDB4MjAwOSwgMHgwMDAxLCAweDYwMjQsIDB4YTA4NCwKLQkweGZmMDAsIDB4YTEwNSwgMHg2MDI2LCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDFjNWYsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3OCwgMHgxY2UzLCAweDEwNzgsIDB4MTk0OCwgMHgwMDc4LCAweDFjZTMsIDB4NzhkNCwKLQkweGEwNmQsIDB4MDBjMCwgMHgxZmQyLCAweDJjMDAsIDB4NzhkNiwgMHg3OGRhLCAweDYwOWYsIDB4MDAwMCwKLQkweDAwNzgsIDB4MWZkZSwgMHgyYzAwLCAweDY4OWUsIDB4NjA5ZiwgMHgwMDAwLCAweDc4ZDYsIDB4MmQwMCwKLQkweDYwMDIsIDB4NzhkOCwgMHhhZDA2LCAweDAwYzAsIDB4MWZkZSwgMHg2MDAyLCAweDc4ZDAsIDB4ODAwMSwKLQkweDc4ZDIsIDB4MDBjMCwgMHgxZmVhLCAweDc4ZGMsIDB4YTA4NCwgMHhmZWZmLCAweDc4ZGUsIDB4NzhkOCwKLQkweDIwNjAsIDB4YTAwNiwgMHgwMDdjLCAweGEwMmUsIDB4MjUzMCwgMHg2MTFjLCAweDYxYTIsIDB4YTE4NCwKLQkweGUxZmYsIDB4NjAxZSwgMHhhMTg0LCAweDAwNjAsIDB4MDA0MCwgMHgxZmZhLCAweDBlN2UsIDB4MTA3OCwKLQkweDQ3YzIsIDB4MGU3ZiwgMHg2NTk2LCAweDY1YTYsIDB4NjY5YSwgMHg2NmFhLCAweDYwYWYsIDB4MDAwMCwKLQkweDYwYjMsIDB4MDAwMCwgMHg2NzE0LCAweDEwNzgsIDB4MTk3MywgMHgyMDkxLCAweDgwMDAsIDB4NjBhMCwKLQkweGEwODQsIDB4ODAwMCwgMHgwMGMwLCAweDIwMjEsIDB4NjgwOCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwKLQkweDIwMjEsIDB4MjA5MSwgMHg4MDAxLCAweDEwNzgsIDB4MTljMCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwKLQkweDFjNWYsIDB4MjA5MSwgMHg4MDAxLCAweDc4ZDcsIDB4MDAwMCwgMHg3OGRiLCAweDAwMDAsIDB4MDA3OCwKLQkweDIwOTMsIDB4NjAyNCwgMHhhMDk2LCAweDAwMDEsIDB4MDBjMCwgMHgyMDI4LCAweDgwMDAsIDB4NjAyNiwKLQkweDZhMTAsIDB4NjgxNCwgMHgyMDkxLCAweDgwMDEsIDB4YTIwMiwgMHgwMDQ4LCAweDIwMzcsIDB4MDA0MCwKLQkweDIwMzcsIDB4MjAzOSwgMHgwMjAwLCAweDEwNzgsIDB4MjA5NCwgMHgwMDc4LCAweDIwOTMsIDB4MmMwOCwKLQkweDIwOTEsIDB4ODAwMCwgMHg2MGEwLCAweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDIwNjQsIDB4NjgwMCwKLQkweGEwNjUsIDB4MDA0MCwgMHgyMDY5LCAweDZhMDQsIDB4MGU3ZSwgMHgyMDcxLCAweDUxNDAsIDB4NzAwMCwKLQkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDIwNWUsIDB4NzA0OCwgMHhhMjA2LCAweDAwYzAsIDB4MjA1ZSwKLQkweDZiMDQsIDB4MjMxYywgMHgyMTYwLCAweDYzMDIsIDB4MjMwMCwgMHhhMDA1LCAweDAwYzAsIDB4MjA1OSwKLQkweDY5MDIsIDB4MjI2MCwgMHg2MTAyLCAweDBlN2YsIDB4MDA3OCwgMHgyMDcwLCAweDIxNjAsIDB4NjIwMiwKLQkweDY5MDYsIDB4MGU3ZiwgMHgwMDc4LCAweDIwNzAsIDB4NjgwMCwgMHhhMDY1LCAweDAwNDAsIDB4MjA2OSwKLQkweDYxMDIsIDB4NjkwMiwgMHgwMGMwLCAweDIwNmQsIDB4NjkwNiwgMHgyMTYwLCAweDYwMDMsIDB4MDAwMCwKLQkweDIxNjAsIDB4NjBhMCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyMDdhLCAweDY4MDgsIDB4YTA4NCwKLQkweGZmZmMsIDB4NjgwYSwgMHg2ODEwLCAweDgwMDAsIDB4NjgxMiwgMHgyMDkxLCAweDgwMDEsIDB4NjgwOCwKLQkweGEwOGMsIDB4MDA0MCwgMHgwMDQwLCAweDIwODksIDB4YTA4NiwgMHgwMDQwLCAweDY4MGEsIDB4MTA3OCwKLQkweDE5ZDEsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MjFkMiwgMHgyMDkxLCAweDgwMDEsIDB4NzhkYiwKLQkweDAwMDAsIDB4NzhkNywgMHgwMDAwLCAweDAwN2MsIDB4NjAwOCwgMHhhNzA1LCAweDYwMGEsIDB4MjA5MSwKLQkweDgwMDAsIDB4MTA3OCwgMHgxYzVmLCAweDIwOTEsIDB4ODAwMSwgMHg3OGQ4LCAweGEwNjUsIDB4MDA0MCwKLQkweDIwYTcsIDB4NjA5YywgMHg3OGRhLCAweDYwOWYsIDB4MDAwMCwgMHgwMDc4LCAweDIwOTcsIDB4NzhkNywKLQkweDAwMDAsIDB4NzhkYiwgMHgwMDAwLCAweDAwN2MsIDB4Nzk5MCwgMHg3ODk0LCAweDgwMDAsIDB4YTEwYSwKLQkweDAwYzgsIDB4MjBiMywgMHhhMDA2LCAweDc4OTYsIDB4NzBkMiwgMHg3ODA0LCAweGEwMDUsIDB4MDA0MCwKLQkweDIwYzEsIDB4ODAwMSwgMHg3ODA2LCAweDAwYzAsIDB4MjBjMSwgMHgwMDY4LCAweDIwYzEsIDB4MjA5MSwKLQkweDQwODAsIDB4MDA3YywgMHgyMDM5LCAweDIwZGEsIDB4MDA3OCwgMHgyMGM4LCAweDIwMzksIDB4MjBlMCwKLQkweDI3MDQsIDB4YTAwNSwgMHgwMDQwLCAweDIwZDksIDB4YWMwMCwgMHgyMDY4LCAweDZiMDgsIDB4NmMwYywKLQkweDY5MTAsIDB4NmExNCwgMHg2OTBhLCAweDZhMGUsIDB4NmIxMiwgMHg2YzE2LCAweDg3MzgsIDB4MDA3OCwKLQkweDIwYzgsIDB4MDA3YywgMHgwMDAzLCAweDAwMDksIDB4MDAwZiwgMHgwMDE1LCAweDAwMWIsIDB4MDAwMCwKLQkweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDBjN2UsIDB4MTA3OCwgMHgzYjY5LCAweDJjNjgsIDB4MGM3ZiwKLQkweDAwN2MsIDB4MDAxMCwgMHgyMTVhLCAweDAwNjgsIDB4MjE1YSwgMHgyMDI5LCAweDAwMDAsIDB4NzhjYiwKLQkweDAwMDAsIDB4Nzg4YywgMHhhMDY1LCAweDAwNDAsIDB4MjE1MywgMHgyMDA5LCAweDUxNzQsIDB4MjEwNCwKLQkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDIxMjEsIDB4NjAwNCwgMHhhMDg2LCAweDAxMDMsIDB4MDBjMCwKLQkweDIxMjEsIDB4NjAxOCwgMHhhMDA1LCAweDAwYzAsIDB4MjEyMSwgMHg2MDE0LCAweGEwMDUsIDB4MDBjMCwKLQkweDIxMjEsIDB4MGQ3ZSwgMHgyMDY5LCAweDAwMDAsIDB4NjgxOCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwKLQkweDIxMjAsIDB4NjAwYywgMHg3MGM2LCAweDYwMTAsIDB4NzBjYSwgMHg3MGMzLCAweDgwMjAsIDB4NjgxYiwKLQkweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDBkN2YsIDB4MTA3OCwgMHgxYzg2LCAweDAwNzgsIDB4MjE1OCwKLQkweDBkN2YsIDB4MTA3OCwgMHgyMTViLCAweDAwNDAsIDB4MjE1MywgMHg2MjA0LCAweGEyOTQsIDB4MDBmZiwKLQkweGEyOTYsIDB4MDAwMywgMHgwMDQwLCAweDIxMzMsIDB4NjIwNCwgMHhhMjk2LCAweDAxMTAsIDB4MDBjMCwKLQkweDIxNDEsIDB4NzhjYiwgMHgwMDAxLCAweDYyMDQsIDB4YTI5NCwgMHhmZjAwLCAweDgyMTcsIDB4ODIxMSwKLQkweDAwNDAsIDB4MjE0MSwgMHg4NWZmLCAweDAwYzAsIDB4MjE1MywgMHg4MjEwLCAweGEyMDIsIDB4MDBjOCwKLQkweDIxNTMsIDB4MDU3ZSwgMHgxMDc4LCAweDIxNmEsIDB4MDU3ZiwgMHgwMDQwLCAweDIxNGUsIDB4NzhlMCwKLQkweGEwODYsIDB4MDAwMywgMHgwMDQwLCAweDIxNTMsIDB4MDA3OCwgMHgyMTQxLCAweDg1MjgsIDB4NzhjOCwKLQkweGEwMDUsIDB4MDA0MCwgMHgyMGYxLCAweDg1ZmYsIDB4MDA0MCwgMHgyMTVhLCAweDIwOTEsIDB4NDA4MCwKLQkweDc4YjAsIDB4NzBkNiwgMHgwMDdjLCAweDdiYWMsIDB4NzliMCwgMHg3MGQ0LCAweGExMDIsIDB4MDBjMCwKLQkweDIxNjQsIDB4MjMwMCwgMHhhMDA1LCAweDAwN2MsIDB4MDA0OCwgMHgyMTY4LCAweGEzMDIsIDB4MDA3YywKLQkweDgwMDIsIDB4MDA3YywgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwgMHhhMDgyLCAweDAwMDUsIDB4MDBjOCwKLQkweDIxODQsIDB4MjA5MSwgMHg4MDAwLCAweDIwNzEsIDB4MDAyMCwgMHg3MDA0LCAweGEwMDUsIDB4MDBjMCwKLQkweDIxYjksIDB4NzAwOCwgMHg3MjA4LCAweGEyMDYsIDB4MDBjMCwgMHgyMWI5LCAweGEyODYsIDB4MDAwOCwKLQkweDAwYzAsIDB4MjFiOSwgMHgyMDcxLCAweDAwMTAsIDB4MTA3OCwgMHgyMWJlLCAweDIwMDksIDB4MDAyMCwKLQkweDYwMDQsIDB4YTA4NiwgMHgwMTAzLCAweDAwYzAsIDB4MjE5MywgMHg2MDI4LCAweGEwMDUsIDB4MDBjMCwKLQkweDIxOTMsIDB4MjAwOSwgMHgwMDBjLCAweDEwNzgsIDB4MTkyNCwgMHgwMDQwLCAweDIxYWMsIDB4NzhjNCwKLQkweDgwMDAsIDB4NzhjNiwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgyMWI5LCAweDIwOTEsIDB4ODAwMCwKLQkweDc4ZTMsIDB4MDAwMywgMHg3OGM3LCAweDAwMDAsIDB4NzhjYywgMHhhMDg1LCAweDAzMDAsIDB4NzhjZSwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDIxYjksIDB4NzhjNywgMHgwMDAwLCAweDEwNzgsIDB4MWM4NiwKLQkweDc5YWMsIDB4NzhiMCwgMHg4MDAwLCAweGExMGEsIDB4MDBjOCwgMHgyMWI3LCAweGEwMDYsIDB4NzhiMiwKLQkweGEwMDYsIDB4MjA3MSwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDgxMDcsIDB4ODAwNCwKLQkweDgwMDQsIDB4N2FiOCwgMHg3YmI0LCAweDdjYzAsIDB4N2RiYywgMHhhMjEwLCAweGEzOTksIDB4MDAwMCwKLQkweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4MDA3YywgMHgyMDA5LCAweDUxNWIsIDB4MjA5MSwKLQkweDgwMDAsIDB4MjAwYSwgMHgwZjdlLCAweDBlN2UsIDB4MjA3MSwgMHg1MTQwLCAweDcwMDAsIDB4YTA4NiwKLQkweDAwMDAsIDB4MDBjMCwgMHgyMWVjLCAweDIwMDksIDB4NTExMiwgMHgyMTA0LCAweGEwMDUsIDB4MDBjMCwKLQkweDIxZWMsIDB4MjA3OSwgMHgwMTAwLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MjFlYywKLQkweDAwMTgsIDB4MjFlYywgMHg3ODFiLCAweDAwNGIsIDB4MGU3ZiwgMHgwZjdmLCAweDAwN2MsIDB4MGY3ZSwKLQkweDBlN2UsIDB4MjA3MSwgMHg1MTQwLCAweDIwOTEsIDB4ODAwMCwgMHg3MDAwLCAweGEwODYsIDB4MDAwMCwKLQkweDAwYzAsIDB4MjIwNSwgMHgyMDc5LCAweDAxMDAsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwKLQkweDIyMDUsIDB4MDAxOCwgMHgyMjA1LCAweDc4MWIsIDB4MDA0ZCwgMHgyMDkxLCAweDgwMDEsIDB4MGU3ZiwKLQkweDBmN2YsIDB4MDA3YywgMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwgMHgyMDcxLCAweDUxNDAsIDB4MjA3OSwKLQkweDAxMDAsIDB4Nzg0YiwgMHgwMDBmLCAweDAwOTgsIDB4MjIxOCwgMHg3ODM4LCAweDAwNzgsIDB4MjIxMSwKLQkweDIwYTksIDB4MDA0MCwgMHg3ODAwLCAweGEwODIsIDB4MDAwNCwgMHgwMDQ4LCAweDIyMjEsIDB4MjBhOSwKLQkweDAwNjAsIDB4Nzg5YiwgMHgwMDAwLCAweDc4YWYsIDB4MDAwMCwgMHg3OGFmLCAweDAwMDAsIDB4MDA3MCwKLQkweDIyMmIsIDB4MDA3OCwgMHgyMjIzLCAweDc4MDAsIDB4YTA4MiwgMHgwMDA0LCAweDAwNDgsIDB4MjIzYSwKLQkweDcwYjcsIDB4MDA5NiwgMHgyMDE5LCAweDRlZTcsIDB4MTA3OCwgMHgyMjc2LCAweDcwMmYsIDB4ODAwMSwKLQkweDAwNzgsIDB4MjI0NiwgMHg3MGI3LCAweDAwMDAsIDB4MjAxOSwgMHg0ZDVmLCAweDEwNzgsIDB4MjI3NiwKLQkweDIwMTksIDB4NGQ5ZSwgMHgxMDc4LCAweDIyNzYsIDB4NzAyZiwgMHg4MDAwLCAweDcwMDMsIDB4MDAwMCwKLQkweDEwNzgsIDB4MjM3ZiwgMHg3MDA0LCAweGEwODQsIDB4MDAwZiwgMHgwMTdlLCAweDIwMDksIDB4MDRmZCwKLQkweDIxMGMsIDB4YTE4YSwgMHgwMDA1LCAweDAwNDgsIDB4MjI1YiwgMHgwMDM4LCAweDIyNjEsIDB4YTA4NSwKLQkweDYyODAsIDB4MDA3OCwgMHgyMjYzLCAweDAwMjgsIDB4MjI2MSwgMHhhMDg1LCAweDYyODAsIDB4MDA3OCwKLQkweDIyNjMsIDB4YTA4NSwgMHg2MmMwLCAweDAxN2YsIDB4NzgwNiwgMHg3ODBmLCAweGIyMDQsIDB4Nzg0MywKLQkweDAwZDgsIDB4Nzg1MywgMHgwMDgwLCAweDc4MGIsIDB4MDAwOCwgMHg3MDQ3LCAweDAwMDgsIDB4NzA1MywKLQkweDUxN2YsIDB4NzA0ZiwgMHgwMDAwLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDEzN2UsIDB4MTQ3ZSwKLQkweDE1N2UsIDB4MDQ3ZSwgMHgyMGExLCAweDAxMmIsIDB4MjMwNCwgMHhhMDA1LCAweDc4OWEsIDB4MDA0MCwKLQkweDIyOTYsIDB4ODMxOCwgMHgyMzI0LCAweDgzMTgsIDB4MjM5OCwgMHgyNGE4LCAweGE0ODQsIDB4ZmYwMCwKLQkweDAwNDAsIDB4MjI4ZSwgMHhhNDgyLCAweDAxMDAsIDB4MjBhOSwgMHgwMTAwLCAweDIwMjAsIDB4NTNhNiwKLQkweGEwMDUsIDB4MDBjMCwgMHgyMjg1LCAweDMzMTgsIDB4MDA3OCwgMHgyMjdjLCAweDA0N2YsIDB4MTU3ZiwKLQkweDE0N2YsIDB4MTM3ZiwgMHgwMDdjLCAweGExOGMsIDB4MDAwZiwgMHgyMDExLCAweDAxMDEsIDB4MjIwNCwKLQkweGEwODQsIDB4ZmZmMCwgMHhhMTA1LCAweDIwMTIsIDB4MTA3OCwgMHgyMzdmLCAweDAwN2MsIDB4MjAxMSwKLQkweDAxMDEsIDB4MjBhOSwgMHgwMDA5LCAweDgxMGIsIDB4MDA3MCwgMHgyMmIwLCAweDAwNzgsIDB4MjJhYiwKLQkweGExOGMsIDB4MGUwMCwgMHgyMjA0LCAweGEwODQsIDB4ZjFmZiwgMHhhMTA1LCAweDIwMTIsIDB4MDA3YywKLQkweDIwMDksIDB4MDEwMSwgMHgyMGE5LCAweDAwMDUsIDB4ODIxMywgMHgwMDcwLCAweDIyYzEsIDB4MDA3OCwKLQkweDIyYmMsIDB4YTI5NCwgMHgwMGUwLCAweDIxMDQsIDB4YTA4NCwgMHhmZjFmLCAweGEyMDUsIDB4MjAwYSwKLQkweDAwN2MsIDB4MjAxMSwgMHgwMTAxLCAweDIwYTksIDB4MDAwYywgMHg4MTBiLCAweDAwNzAsIDB4MjJkMiwKLQkweDAwNzgsIDB4MjJjZCwgMHhhMThjLCAweGYwMDAsIDB4MjIwNCwgMHhhMDg0LCAweDBmZmYsIDB4YTEwNSwKLQkweDIwMTIsIDB4MDA3YywgMHgyMDExLCAweDAxMDIsIDB4MjIwNCwgMHhhMDg0LCAweGZmY2YsIDB4YTEwNSwKLQkweDIwMTIsIDB4MDA3YywgMHg4MTAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDBjN2UsIDB4MjA2MSwKLQkweDAxMDAsIDB4NjA5YSwgMHg2MmFjLCAweDYzYWMsIDB4MGM3ZiwgMHgwMDdjLCAweDgxMDMsIDB4ODAwMywKLQkweGEwODAsIDB4MDAyMiwgMHgwYzdlLCAweDIwNjEsIDB4MDEwMCwgMHg2MDlhLCAweDYwYTQsIDB4YTA4NCwKLQkweGZmZGYsIDB4NjBhZSwgMHgwYzdmLCAweDAwN2MsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsIDB4MDAyMiwKLQkweDBjN2UsIDB4MjA2MSwgMHgwMTAwLCAweDYwOWEsIDB4NjBhNCwgMHhhMDg1LCAweDAwMjAsIDB4NjBhZSwKLQkweDBjN2YsIDB4MDA3YywgMHg4MTAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDBjN2UsIDB4MjA2MSwKLQkweDAxMDAsIDB4NjA5YSwgMHg2MGE0LCAweDYyYWUsIDB4MjAxMCwgMHg2MGE0LCAweDYzYWUsIDB4MjAxOCwKLQkweDBjN2YsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsIDB4MGM3ZSwgMHgwZTdlLCAweDY4MTgsIDB4YTAwNSwKLQkweDAwNDAsIDB4MjM1ZCwgMHgyMDYxLCAweDc1MDAsIDB4MTA3OCwgMHgyMzY1LCAweDAwNDAsIDB4MjM0OSwKLQkweDIwYTksIDB4MDAwMCwgMHgyMDYxLCAweDc0MDAsIDB4MGM3ZSwgMHgxMDc4LCAweDIzNjUsIDB4MDA0MCwKLQkweDIzMzksIDB4MGM3ZiwgMHg4YzYwLCAweDAwNzAsIDB4MjMzNywgMHgwMDc4LCAweDIzMmMsIDB4MDA3OCwKLQkweDIzNWQsIDB4MDA3ZiwgMHhhMDgyLCAweDc0MDAsIDB4MjA3MSwgMHg1MTQwLCAweDcwODYsIDB4NzE4MiwKLQkweDIwMDEsIDB4MDAwNCwgMHg3MDZlLCAweDcwOTMsIDB4MDAwZiwgMHgxMDc4LCAweDIxY2QsIDB4MDA3OCwKLQkweDIzNTksIDB4NjBjMCwgMHhhMDA1LCAweDAwYzAsIDB4MjM1ZCwgMHgyMDcxLCAweDUxNDAsIDB4NzE4MiwKLQkweDJjMDAsIDB4NzA4YSwgMHgyMDAxLCAweDAwMDYsIDB4NzA2ZSwgMHg3MDkzLCAweDAwMGYsIDB4MTA3OCwKLQkweDIxY2QsIDB4MjAwMSwgMHgwMDAwLCAweDAwNzgsIDB4MjM1ZiwgMHgyMDAxLCAweDAwMDEsIDB4MjA5MSwKLQkweDgwMDEsIDB4YTAwNSwgMHgwZTdmLCAweDBjN2YsIDB4MDA3YywgMHgyYzA0LCAweGEwMDUsIDB4MDA0MCwKLQkweDIzN2MsIDB4MjA2MCwgMHg2MDBjLCAweGEzMDYsIDB4MDBjMCwgMHgyMzc5LCAweDYwMTAsIDB4YTIwNiwKLQkweDAwYzAsIDB4MjM3OSwgMHg2MDE0LCAweGExMDYsIDB4MDBjMCwgMHgyMzc5LCAweGEwMDYsIDB4MDA3OCwKLQkweDIzN2UsIDB4NjAwMCwgMHgwMDc4LCAweDIzNjYsIDB4YTA4NSwgMHgwMDAxLCAweDAwN2MsIDB4MjAxMSwKLQkweDUxNDEsIDB4MjIwYywgMHhhMThjLCAweDAwMGYsIDB4MjAxMSwgMHgwMTNiLCAweDIyMDQsIDB4YTA4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHgyMzk1LCAweDIwMjEsIDB4ZmYwNCwgMHgyMTIyLCAweDgxMGIsIDB4ODEwYiwKLQkweDgxMGIsIDB4ODEwYiwgMHhhMThkLCAweDBmMDAsIDB4MjEwNCwgMHgwMDdjLCAweDBlN2UsIDB4NjhlNCwKLQkweGEwOGMsIDB4MDAyMCwgMHgwMDQwLCAweDIzZTksIDB4YTA4NCwgMHgwMDA2LCAweDAwYzAsIDB4MjNlOSwKLQkweDYwMTQsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTBmMCwKLQkweDUzODAsIDB4NzAwNCwgMHhhMDg0LCAweDAwMGEsIDB4MDBjMCwgMHgyM2U5LCAweDcxMDgsIDB4YTE5NCwKLQkweGZmMDAsIDB4MDA0MCwgMHgyM2U5LCAweGExOGMsIDB4MDBmZiwgMHgyMDAxLCAweDAwMGMsIDB4YTEwNiwKLQkweDAwNDAsIDB4MjNkMCwgMHgyMDAxLCAweDAwMTIsIDB4YTEwNiwgMHgwMDQwLCAweDIzZDQsIDB4MjAwMSwKLQkweDAwMTQsIDB4YTEwNiwgMHgwMDQwLCAweDIzZDgsIDB4MjAwMSwgMHgwMDE5LCAweGExMDYsIDB4MDA0MCwKLQkweDIzZGMsIDB4MjAwMSwgMHgwMDMyLCAweGExMDYsIDB4MDA0MCwgMHgyM2UwLCAweDAwNzgsIDB4MjNlNCwKLQkweDIwMDksIDB4MDAxMiwgMHgwMDc4LCAweDIzZTYsIDB4MjAwOSwgMHgwMDE0LCAweDAwNzgsIDB4MjNlNiwKLQkweDIwMDksIDB4MDAxOSwgMHgwMDc4LCAweDIzZTYsIDB4MjAwOSwgMHgwMDIwLCAweDAwNzgsIDB4MjNlNiwKLQkweDIwMDksIDB4MDAzZiwgMHgwMDc4LCAweDIzZTYsIDB4MjAxMSwgMHgwMDAwLCAweDIxMDAsIDB4YTIwNSwKLQkweDcwMGEsIDB4MGU3ZiwgMHgwMDdjLCAweDAwNjgsIDB4MjNlYiwgMHgyMDkxLCAweDgwMDAsIDB4MjA3MSwKLQkweDAwMDAsIDB4MDA3ZSwgMHg3MDE4LCAweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDIzZjIsIDB4MDA3ZiwKLQkweDIwNzEsIDB4MDAxMCwgMHg3MGNhLCAweDAwN2YsIDB4NzBjNiwgMHg3MGMzLCAweDgwMDIsIDB4NzBkYiwKLQkweDA3NDEsIDB4NzBkZiwgMHgwMDAwLCAweDIwNzEsIDB4MDAwMCwgMHg3MDFiLCAweDAwMDEsIDB4MjA5MSwKLQkweDQwODAsIDB4MDA3OCwgMHgyNDA5LCAweDEwN2UsIDB4MDA3ZSwgMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwKLQkweDdmM2MsIDB4N2U1OCwgMHg3YzMwLCAweDdkMzgsIDB4NzdjMiwgMHg3NGM2LCAweDc2Y2EsIDB4NzVjZSwKLQkweGE1OTQsIDB4MDAzZiwgMHhhNDljLCAweDAwMDMsIDB4YTQ4NCwgMHgwMDBmLCAweDAwNzksIDB4MjQyMCwKLQkweDI0MzIsIDB4MjQzMiwgMHgyNDMyLCAweDI3NmMsIDB4MzkzYiwgMHgyNDMwLCAweDI0NjEsIDB4MjQ2YiwKLQkweDI0MzAsIDB4MjQzMCwgMHgyNDMwLCAweDI0MzAsIDB4MjQzMCwgMHgyNDMwLCAweDI0MzAsIDB4MjQzMCwKLQkweDEwNzgsIDB4MjNlYiwgMHg4NTA3LCAweGEwODQsIDB4MDAxZiwgMHgwMDc5LCAweDI0MzcsIDB4MjQ3NSwKLQkweDI3NmMsIDB4MjkyNiwgMHgyYTIzLCAweDJhNGIsIDB4MmNlZCwgMHgyZjk4LCAweDJmZGIsIDB4MzAyNiwKLQkweDMwYWIsIDB4MzE2MywgMHgzMjBjLCAweDI0NjEsIDB4Mjg0OCwgMHgyZjZkLCAweDI0NTcsIDB4M2NjOCwKLQkweDNjZTgsIDB4M2VhZSwgMHgzZWJhLCAweDNmOGYsIDB4MjQ1NywgMHgyNDU3LCAweDQwNjIsIDB4NDA2NiwKLQkweDNjYzYsIDB4MjQ1NywgMHgzZTE5LCAweDI0NTcsIDB4M2I4YywgMHgyNDZiLCAweDI0NTcsIDB4MTA3OCwKLQkweDIzZWIsIDB4MDAxOCwgMHgyNDEwLCAweDEyN2YsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2YsIDB4MTA3ZiwKLQkweDAwN2MsIDB4MjAxOSwgMHg0ZTNiLCAweDEwNzgsIDB4MjI3NiwgMHg3MDJmLCAweDAwMDEsIDB4NzgxYiwKLQkweDAwNGYsIDB4MDA3OCwgMHgyNDU5LCAweDIwMTksIDB4NGQ5ZSwgMHgxMDc4LCAweDIyNzYsIDB4NzAyZiwKLQkweDgwMDAsIDB4NzgxYiwgMHgwMGQwLCAweDAwNzgsIDB4MjQ1OSwgMHg3MjQyLCAweDIwMDksIDB4NTEwZiwKLQkweDIwMGIsIDB4MDAwMCwgMHhhNTg0LCAweDAwMDEsIDB4MDBjMCwgMHgzYmEwLCAweDAwNDAsIDB4MjQ5MiwKLQkweDEwNzgsIDB4MjNlYiwgMHg3MDAzLCAweDAwMDAsIDB4NzA0YiwgMHgwMDAwLCAweDcwNDMsIDB4MDAwMCwKLQkweDcwMzcsIDB4MDAwMCwgMHgxMDc4LCAweDM5MTIsIDB4MDAxOCwgMHgyNDEwLCAweDIwMDksIDB4NTEwZiwKLQkweDIwMGIsIDB4MDAwMCwgMHg3MDY4LCAweGEwMDUsIDB4MDBjMCwgMHgyNTVkLCAweDcwNmMsIDB4YTA4NCwKLQkweDAwMDcsIDB4MDA3OSwgMHgyNDliLCAweDI1OTQsIDB4MjRhMywgMHgyNGFmLCAweDI0Y2MsIDB4MjRlZSwKLQkweDI1M2IsIDB4MjUxNCwgMHgyNGEzLCAweDEwNzgsIDB4MzhmYSwgMHgyMDA5LCAweDAwNDgsIDB4MTA3OCwKLQkweDJlMzksIDB4MDBjMCwgMHgyNGFkLCAweDcwMDMsIDB4MDAwNCwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwKLQkweDM4ZmEsIDB4MDBjMCwgMHgyNGNhLCAweDcwODAsIDB4ODAwNywgMHg3ODgyLCAweDc4OWIsIDB4MDAxMCwKLQkweDc4YWIsIDB4MDAwYywgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwgMHgwMDAxLCAweDc4NWIsIDB4MDAwNCwKLQkweDIwMDksIDB4MDBlMCwgMHgxMDc4LCAweDJlMmQsIDB4MDBjMCwgMHgyNGNhLCAweDcwMDMsIDB4MDAwNCwKLQkweDcwOTMsIDB4MDAwZiwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHgzOGZhLCAweDAwYzAsIDB4MjRlYywKLQkweDcxODAsIDB4ODEwNywgMHg3ODgyLCAweDc4OWIsIDB4MDAxMCwgMHhhMThjLCAweDAwMWYsIDB4YTE4ZCwKLQkweDAwYzAsIDB4NzlhYSwgMHg3OGFiLCAweDAwMDYsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwMiwKLQkweDc4NWIsIDB4MDAwNCwgMHgyMDA5LCAweDAwZTAsIDB4MTA3OCwgMHgyZTJkLCAweDAwYzAsIDB4MjRlYywKLQkweDcwMDMsIDB4MDAwNCwgMHg3MDkzLCAweDAwMGYsIDB4MDA3OCwgMHgyNDU5LCAweDEwNzgsIDB4MzhmYSwKLQkweDAwYzAsIDB4MjUxMiwgMHg3MTgwLCAweDgxMDcsIDB4Nzg4MiwgMHg3ODliLCAweDAwMTAsIDB4YTE4YywKLQkweDAwMWYsIDB4YTE4ZCwgMHgwMGMwLCAweDc5YWEsIDB4NzhhYiwgMHgwMDIwLCAweDcxODQsIDB4NzlhYSwKLQkweDc4YWIsIDB4MDAwZCwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwgMHgwMDA0LCAweDc4NWIsIDB4MDAwNCwKLQkweDIwMDksIDB4MDBlMCwgMHgxMDc4LCAweDJlMmQsIDB4MDBjMCwgMHgyNTEyLCAweDcwMDMsIDB4MDAwNCwKLQkweDcwOTMsIDB4MDAwZiwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHgzOGZhLCAweDAwYzAsIDB4MjUzOSwKLQkweDcxODAsIDB4ODEwNywgMHg3ODgyLCAweDc4OWIsIDB4MDAxMCwgMHhhMThjLCAweDAwMWYsIDB4YTE4ZCwKLQkweDAwYzAsIDB4NzlhYSwgMHg3OGFiLCAweDAwMDYsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwMiwKLQkweDc4NWIsIDB4MDAwNCwgMHgyMDA5LCAweDAwZTAsIDB4MTA3OCwgMHgyZTJkLCAweDAwYzAsIDB4MjUzOSwKLQkweDcwODgsIDB4NzA4YiwgMHgwMDAwLCAweDIwNjgsIDB4NzA0YSwgMHg3MDAzLCAweDAwMDIsIDB4NzA5MywKLQkweDAwMGYsIDB4MDA3OCwgMHgyNDU5LCAweDEwNzgsIDB4MzhmYSwgMHgwMGMwLCAweDI0NTksIDB4NzA4OCwKLQkweDIwNjgsIDB4NmYxNCwgMHgxMDc4LCAweDM3ZWYsIDB4MmM1MCwgMHgxMDc4LCAweDM5YWMsIDB4Nzg5YiwKLQkweDAwMTAsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsIDB4YTA4NSwgMHgwMDgwLCAweDc4YWEsIDB4NmUxYywKLQkweDIwNDEsIDB4MDAwMSwgMHg3MDhjLCAweGEwODQsIDB4MDQwMCwgMHgyMDAxLCAweDAwMDQsIDB4MDA0MCwKLQkweDI1NWIsIDB4MjAwMSwgMHgwMDA2LCAweDAwNzgsIDB4MjY3YywgMHgxMDc4LCAweDM4ZmEsIDB4MDBjMCwKLQkweDI0NTksIDB4Nzg5YiwgMHgwMDEwLCAweDcwNjgsIDB4MjA2OCwgMHg2ZjE0LCAweDEwNzgsIDB4MzdlZiwKLQkweDJjNTAsIDB4MTA3OCwgMHgzOWFjLCAweDYwMDgsIDB4YTA4NSwgMHgwMDEwLCAweDYwMGEsIDB4NjgyNCwKLQkweGEwMDUsIDB4MDA0MCwgMHgyNTdiLCAweGEwODIsIDB4MDAwNiwgMHgwMDQ4LCAweDI1NzksIDB4MDA3OCwKLQkweDI1N2IsIDB4NjgyNywgMHgwMDA1LCAweDZiMTQsIDB4YTM5YywgMHgwMDFmLCAweGEzOWQsIDB4MDBjMCwKLQkweDcwNTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MjU4OSwgMHhhNjg0LCAweDAwMDEsIDB4MDA0MCwKLQkweDI1OGIsIDB4YTM5YywgMHhmZmJmLCAweDdiYWEsIDB4MjAzMSwgMHgwMDIwLCAweDIwNDEsIDB4MDAwMSwKLQkweDIwMDEsIDB4MDAwMywgMHgwMDc4LCAweDI2N2MsIDB4MDAxOCwgMHgyNDEwLCAweDc0NGMsIDB4YTQ4NSwKLQkweDAwMDAsIDB4MDA0MCwgMHgyNWFlLCAweGEwODAsIDB4NTE4MCwgMHgyMDMwLCAweDcxNTAsIDB4ODEwOCwKLQkweGExMmEsIDB4MDA0OCwgMHgyNWE1LCAweDIwMDksIDB4NTE4MCwgMHgyMTY0LCAweDY1MDQsIDB4ODVmZiwKLQkweDAwYzAsIDB4MjViZiwgMHg4NDIxLCAweDAwYzAsIDB4MjU5ZiwgMHg3MTUyLCAweDcwMDMsIDB4MDAwMCwKLQkweDcwNGIsIDB4MDAwMCwgMHg3MDQwLCAweGEwMDUsIDB4MDA0MCwgMHgzYmEwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDc2NGMsIDB4YTZiMCwgMHg1MTgwLCAweDcxNTAsIDB4MjYwMCwgMHgwMDc4LCAweDI1YWEsIDB4NzE1MiwKLQkweDI1NjgsIDB4MjU1OCwgMHg3NTRhLCAweDJjNTAsIDB4NjAzNCwgMHhhMDg1LCAweDAwMDAsIDB4MDBjMCwKLQkweDI1YmMsIDB4NjcwOCwgMHg3NzNhLCAweGE3ODQsIDB4MDMzZiwgMHgwMDQwLCAweDI1ZjUsIDB4YTc4NCwKLQkweDAwMjEsIDB4MDBjMCwgMHgyNWJjLCAweGE3ODQsIDB4MDAwMiwgMHgwMDQwLCAweDI1ZGUsIDB4YTc4NCwKLQkweDAwMDQsIDB4MDA0MCwgMHgyNWJjLCAweGE3YmMsIDB4ZmZmYiwgMHg2NzBhLCAweGE3ODQsIDB4MDAwOCwKLQkweDAwYzAsIDB4MjViYywgMHhhNzg0LCAweDAwMTAsIDB4MDBjMCwgMHgyNWJjLCAweGE3ODQsIDB4MDIwMCwKLQkweDAwYzAsIDB4MjViYywgMHhhNzg0LCAweDAxMDAsIDB4MDA0MCwgMHgyNWY1LCAweDYwMTgsIDB4YTAwNSwKLQkweDAwYzAsIDB4MjViYywgMHhhN2JjLCAweGZlZmYsIDB4NjcwYSwgMHg2ODIzLCAweDAwMDAsIDB4NmUxYywKLQkweGE2ODQsIDB4MDAwZSwgMHg2MTE4LCAweDAwNDAsIDB4MjYwNSwgMHg2MDFjLCAweGExMDIsIDB4MDA0OCwKLQkweDI2MDgsIDB4MDA0MCwgMHgyNjA4LCAweDAwNzgsIDB4MjViOCwgMHg4MWZmLCAweDAwYzAsIDB4MjViOCwKLQkweDY4YzMsIDB4MDAwMCwgMHhhNzg0LCAweDAwODAsIDB4MDBjMCwgMHgyNjEwLCAweDcwMGMsIDB4NjAyMiwKLQkweGE3YmMsIDB4ZmY3ZiwgMHg2NzBhLCAweDEwNzgsIDB4MzlhYywgMHgwMDE4LCAweDI0MTAsIDB4Nzg5YiwKLQkweDAwMTAsIDB4YTA0NiwgMHgxMDc4LCAweDM4ZmEsIDB4MDBjMCwgMHgyNDU5LCAweDZiMTQsIDB4YTM5YywKLQkweDAwMWYsIDB4YTM5ZCwgMHgwMGMwLCAweDcwNTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MjYyYywKLQkweGE2ODQsIDB4MDAwMSwgMHgwMDQwLCAweDI2MmUsIDB4YTM5YywgMHhmZmJmLCAweGE2ODQsIDB4MDAxMCwKLQkweDAwNDAsIDB4MjYzNCwgMHhhMzlkLCAweDAwMjAsIDB4N2JhYSwgMHg4ODQwLCAweGE2ODQsIDB4MDAwZSwKLQkweDAwYzAsIDB4MjYzZiwgMHhhN2JkLCAweDAwMTAsIDB4NjcwYSwgMHgwMDc4LCAweDI2N2EsIDB4NzE1OCwKLQkweGExOGMsIDB4MDgwMCwgMHgwMDQwLCAweDM0MDEsIDB4MjAxMSwgMHgwMDIwLCAweGE2ODQsIDB4MDAwOCwKLQkweDAwYzAsIDB4MjY1MCwgMHg4MjEwLCAweGE2ODQsIDB4MDAwMiwgMHgwMGMwLCAweDI2NTAsIDB4ODIxMCwKLQkweDdhYWEsIDB4ODg0MCwgMHgxMDc4LCAweDM5MTIsIDB4NmExNCwgMHg2MTBjLCAweDgxMDgsIDB4YTE4YywKLQkweDAwZmYsIDB4YTFlMCwgMHg3NDAwLCAweDJjNjQsIDB4OGNmZiwgMHgwMDQwLCAweDI2NzEsIDB4NjAxNCwKLQkweGEyMDYsIDB4MDBjMCwgMHgyNjViLCAweDYwYjgsIDB4ODAwMSwgMHg2MGJhLCAweDAwYzAsIDB4MjY1NiwKLQkweDBjN2UsIDB4MmE2MCwgMHg2MDA4LCAweGEwODUsIDB4MDEwMCwgMHg2MDBhLCAweDBjN2YsIDB4MDA3OCwKLQkweDI1OTQsIDB4MTA3OCwgMHgzOGZhLCAweDAwYzAsIDB4MjQ1OSwgMHgyYTYwLCAweDYxMGUsIDB4NzlhYSwKLQkweDg4NDAsIDB4NzEzMiwgMHgyMDAxLCAweDAwMDEsIDB4MDA3ZSwgMHg3MTVjLCAweGExODQsIDB4MDAxOCwKLQkweDAwNDAsIDB4MjY5NywgMHhhMTg0LCAweDAwMTAsIDB4MDA0MCwgMHgyNjhhLCAweDEwNzgsIDB4MzYwNCwKLQkweDAwYzAsIDB4MjZiYSwgMHhhMTg0LCAweDAwMDgsIDB4MDA0MCwgMHgyNjk3LCAweDY5YTAsIDB4YTE4NCwKLQkweDA2MDAsIDB4MDBjMCwgMHgyNjk3LCAweDEwNzgsIDB4MzRmMSwgMHgwMDc4LCAweDI2YmEsIDB4NjlhMCwKLQkweGExODQsIDB4MDgwMCwgMHgwMDQwLCAweDI2YWUsIDB4MGM3ZSwgMHgwMjdlLCAweDI5NjAsIDB4NjAwMCwKLQkweGEwODUsIDB4MjAwMCwgMHg2MDAyLCAweDYxMDQsIDB4YTE4ZCwgMHgwMDEwLCAweDYxMDYsIDB4MDI3ZiwKLQkweDBjN2YsIDB4MTA3OCwgMHgzNjA0LCAweDAwYzAsIDB4MjZiYSwgMHg2OWEwLCAweGExODQsIDB4MDIwMCwKLQkweDAwNDAsIDB4MjZiNiwgMHgxMDc4LCAweDM1NDAsIDB4MDA3OCwgMHgyNmJhLCAweGExODQsIDB4MDQwMCwKLQkweDAwYzAsIDB4MjY5MywgMHg2OWEwLCAweGExODQsIDB4MTAwMCwgMHgwMDQwLCAweDI2YzUsIDB4NjkxNCwKLQkweGExOGMsIDB4ZmYwMCwgMHg4MTBmLCAweDEwNzgsIDB4MjJlZSwgMHgwMDdmLCAweDcwMDIsIDB4YTY4YywKLQkweDAwZTAsIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsIDB4MjZkMywgMHhhMDg2LCAweDAwNjAsIDB4MDBjMCwKLQkweDI2ZDMsIDB4YTE4ZCwgMHg0MDAwLCAweDg4ZmYsIDB4MDA0MCwgMHgyNmQ4LCAweGExOGQsIDB4MDAwNCwKLQkweDc5NWEsIDB4NjliNiwgMHg3ODliLCAweDAwNjAsIDB4MjgwMCwgMHg3OGFhLCAweDc4OWIsIDB4MDA2MSwKLQkweDY4MTgsIDB4YTA4ZCwgMHg4MDAwLCAweGEwODQsIDB4N2ZmZiwgMHg2OTFhLCAweGE2OGMsIDB4MDA4MCwKLQkweDAwNDAsIDB4MjZmNywgMHg3MDk3LCAweDAwMDAsIDB4YTA4YSwgMHgwMDBkLCAweDAwNTAsIDB4MjZmNSwKLQkweGEwOGEsIDB4MDAwYywgMHg3MTk2LCAweDIwMDEsIDB4MDAwYywgMHg4MDBjLCAweDcxOWEsIDB4NzhhYSwKLQkweDgwMDgsIDB4ODEwYywgMHgwMDQwLCAweDM0MDcsIDB4YTE4YywgMHgwMGY4LCAweDAwYzAsIDB4MzQwNywKKwkweDU0ODAsIDB4MjAxOSwgMHgwMDAwLCAweDcyYzgsIDB4ZDJiYywgMHgwMDQwLCAweDE0ZTksIDB4YTM5ZCwKKwkweDAwMTAsIDB4ZDJiNCwgMHgwMDQwLCAweDE0ZWUsIDB4YTM5ZCwgMHgwMDA4LCAweDY4MDAsIDB4MDA3ZSwKKwkweGEyMjYsIDB4MDA0MCwgMHgxNTExLCAweDZhMDIsIDB4YTQ4NCwgMHgyMDAwLCAweDAwNDAsIDB4MTRmYSwKKwkweGEzOWQsIDB4MDAxMCwgMHhhNDg0LCAweDEwMDAsIDB4MDA0MCwgMHgxNTAwLCAweGEzOWQsIDB4MDAwOCwKKwkweGE0ODQsIDB4NDAwMCwgMHgwMDQwLCAweDE1MTEsIDB4ODEwZiwgMHhhMjg0LCAweDQwMDAsIDB4MDA0MCwKKwkweDE1MGQsIDB4MTA3OCwgMHgyMzk5LCAweDAwNzgsIDB4MTUxMSwgMHgxMDc4LCAweDIzOGIsIDB4MDA3OCwKKwkweDE1MTEsIDB4NzJjYywgMHg2ODA4LCAweGEyMDYsIDB4MDA0MCwgMHgxNTQwLCAweGEyYTQsIDB4MDBmZiwKKwkweDIwNjEsIDB4NTI0MCwgMHg2MTE4LCAweGExODYsIDB4MDAyOCwgMHgwMDQwLCAweDE1MjcsIDB4YTE4NiwKKwkweDAwMzIsIDB4MDA0MCwgMHgxNTJkLCAweGExODYsIDB4MDAzYywgMHgwMDQwLCAweDE1MzMsIDB4YTQ4MiwKKwkweDAwNjQsIDB4MDA0OCwgMHgxNTNkLCAweDAwNzgsIDB4MTUzNywgMHhhNDgyLCAweDAwNTAsIDB4MDA0OCwKKwkweDE1M2QsIDB4MDA3OCwgMHgxNTM3LCAweGE0ODIsIDB4MDA0MywgMHgwMDQ4LCAweDE1M2QsIDB4NzFjNCwKKwkweDcxYzYsIDB4MDI3ZiwgMHg3MmNhLCAweDAwNzgsIDB4MTI3ZCwgMHg2YTBhLCAweGEzOWQsIDB4MDAwYSwKKwkweDY4MDQsIDB4YTMwNSwgMHg2ODA2LCAweDAyN2YsIDB4NmIwYywgMHg3MWM0LCAweDAwNzgsIDB4MTI4MSwKKwkweDc3YzQsIDB4MTA3OCwgMHgxOWM1LCAweDIwOTEsIDB4ODAwMCwgMHg2YTE0LCAweDZiMWMsIDB4MjA5MSwKKwkweDgwMDEsIDB4NzBjOCwgMHg2ODE2LCAweDcwY2MsIDB4NjgxZSwgMHgyNzA4LCAweDAwNzgsIDB4MTI4MSwKKwkweDcwYzQsIDB4Nzk0YywgMHg3ODRlLCAweDAwNzgsIDB4MTI4MywgMHg3MWM0LCAweDcyYzgsIDB4NzNjYywKKwkweGExODIsIDB4MDAxMCwgMHgwMGM4LCAweDEyN2MsIDB4MTA3OCwgMHgyM2E3LCAweDAwNzgsIDB4MTI4MSwKKwkweDc3YzQsIDB4MTA3OCwgMHgxOWM1LCAweDIwOTEsIDB4ODAwMCwgMHg2YTA4LCAweGEyOTUsIDB4MDAwMiwKKwkweDZhMGEsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxMjgyLCAweDc3YzQsIDB4MTA3OCwKKwkweDE5YzUsIDB4MjA5MSwgMHg4MDAwLCAweDZhMDgsIDB4YTI5NCwgMHhmZmY5LCAweDZhMGEsIDB4NjgwNCwKKwkweGEwMDUsIDB4MDA0MCwgMHgxNTg1LCAweDEwNzgsIDB4MjI2ZiwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwKKwkweDAwNzgsIDB4MTI4MiwgMHg3N2M0LCAweDEwNzgsIDB4MTljNSwgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwKKwkweGEyOTUsIDB4MDAwNCwgMHg2YTBhLCAweDY4MDQsIDB4YTAwNSwgMHgwMDQwLCAweDE1OTksIDB4MTA3OCwKKwkweDIyNmYsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxMjgyLCAweDc3YzQsIDB4MjA0MSwKKwkweDAwMDEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAyMCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwKKwkweDE5ZDIsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4NmEwOCwgMHgwMDc4LCAweDEyODIsIDB4NzdjNCwKKwkweDcyYzgsIDB4NzNjYywgMHg3N2M2LCAweDcyY2EsIDB4NzNjZSwgMHgxMDc4LCAweDFhNTIsIDB4MDBjMCwKKwkweDE1YzcsIDB4NjgxOCwgMHhhMDA1LCAweDAwNDAsIDB4MTVjNywgMHgyNzA4LCAweDEwNzgsIDB4MjNiNywKKwkweDAwYzAsIDB4MTVjNywgMHg3ODE3LCAweDAwMTUsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3OCwgMHgxMjg0LCAweDc3YzQsIDB4NzdjNiwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwKKwkweDAwMDUsIDB4MjA1MSwgMHgwMDIwLCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDE5ZDIsIDB4MjA2MSwKKwkweDUyNDAsIDB4NjA2ZiwgMHgwMDAzLCAweDY3ODIsIDB4NjA5MywgMHgwMDBmLCAweDYwNzMsIDB4MDAwMCwKKwkweDc4MTcsIDB4MDAxNiwgMHgxMDc4LCAweDIyNmYsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4NzdjOCwKKwkweDc3Y2EsIDB4NzdjNCwgMHg3N2M2LCAweGE3YmMsIDB4ZmYwMCwgMHgyMDkxLCAweDgwMDAsIDB4MjA2MSwKKwkweDUyNDAsIDB4NjA2ZiwgMHgwMDAyLCAweDYwNzMsIDB4MDAwMCwgMHg2NzgyLCAweDYwOTMsIDB4MDAwZiwKKwkweDc4MTcsIDB4MDAxNywgMHgxMDc4LCAweDIyNmYsIDB4MjA5MSwgMHg4MDAxLCAweDIwNDEsIDB4MDAyMSwKKwkweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMTAsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MTlkMiwKKwkweDcwYzgsIDB4NjgzNiwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDE2MDYsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3YywgMHg3OGNjLCAweGEwODQsIDB4MDAwMywgMHgwMGMwLCAweDE2MzYsIDB4MjAzOSwKKwkweDAwMDAsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMDgsIDB4MTA3OCwKKwkweDE5YzUsIDB4MjA5MSwgMHg4MDAwLCAweDY4MDgsIDB4YTgwZCwgMHg2OTBhLCAweDIwOTEsIDB4ODAwMSwKKwkweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDAwYzAsIDB4MTYxZiwgMHhhN2JjLCAweGZmMDAsIDB4ODczZiwKKwkweDg3MzgsIDB4ODczZiwgMHhhNzg0LCAweDBmMDAsIDB4MDBjMCwgMHgxNjFmLCAweDIwOTEsIDB4ODAwMCwKKwkweDIwNjksIDB4MDEwMCwgMHg2ODMwLCAweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDE2NWYsIDB4Njg0YiwKKwkweDAwMDQsIDB4MjBhOSwgMHgwMDE0LCAweDY4NDgsIDB4YTA4NCwgMHgwMDA0LCAweDAwNDAsIDB4MTY0YywKKwkweDAwNzAsIDB4MTY0YywgMHgwMDc4LCAweDE2NDMsIDB4Njg0YiwgMHgwMDA5LCAweDIwYTksIDB4MDAxNCwKKwkweDY4NDgsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4MTY1OSwgMHgwMDcwLCAweDE2NTksIDB4MDA3OCwKKwkweDE2NTAsIDB4MjBhOSwgMHgwMGZhLCAweDAwNzAsIDB4MTY1ZiwgMHgwMDc4LCAweDE2NWIsIDB4MjA3OSwKKwkweDUyMDAsIDB4NzgxNywgMHgwMDE4LCAweDIwNjEsIDB4NTI0MCwgMHg2MDZmLCAweDAwMDEsIDB4NjA3MywKKwkweDAwMDAsIDB4NjA5MywgMHgwMDBmLCAweDc4Y2MsIDB4YTA4NSwgMHgwMDAyLCAweDc4Y2UsIDB4NjgwOCwKKwkweGEwODQsIDB4ZmZmZCwgMHg2ODBhLCAweDY4MWIsIDB4MDA0OCwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywKKwkweDc4Y2MsIDB4YTA4NCwgMHhmZmZkLCAweDc4Y2UsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MTY4MiwKKwkweDEwNzgsIDB4MWE5YywgMHg3MWM0LCAweDcxYzYsIDB4Nzk0YSwgMHgwMDdjLCAweDEwNzgsIDB4MWJjNCwKKwkweDAwYzAsIDB4MTI5YywgMHg3NWQ4LCAweDc0ZGMsIDB4NzVkYSwgMHg3NGRlLCAweDAwNzgsIDB4MTY5MywKKwkweDIwMjksIDB4MDAwMCwgMHgyNTIwLCAweDcxYzQsIDB4NzNjOCwgMHg3MmNjLCAweDcxYzYsIDB4NzNjYSwKKwkweDcyY2UsIDB4MjA3OSwgMHg1MjAwLCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDE5ODAsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA0MCwgMHgxNzRhLCAweDIwYTksIDB4MDAwNSwgMHgyMGExLCAweDUyMTgsIDB4MjA5MSwKKwkweDgwMDAsIDB4NDFhMSwgMHgyMDkxLCAweDgwMDEsIDB4MjAwOSwgMHgwMDIwLCAweDEwNzgsIDB4MTk3YiwKKwkweDAwNDAsIDB4MTZiNiwgMHgxMDc4LCAweDE5OWEsIDB4MDA3OCwgMHgxNzRhLCAweDYwMDQsIDB4YTA4NCwKKwkweGZmMDAsIDB4ODAwNywgMHg4MDA5LCAweDAwNDAsIDB4MTcxOSwgMHgwYzdlLCAweDJjNjgsIDB4MjA5MSwKKwkweDgwMDAsIDB4MTA3OCwgMHgxOTgwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDQwLCAweDE2ZWEsIDB4MmMwMCwKKwkweDY4OWUsIDB4ODEwOSwgMHgwMGMwLCAweDE2YmUsIDB4NjA5ZiwgMHgwMDAwLCAweDBjN2YsIDB4MGM3ZSwKKwkweDcyMTgsIDB4NzMxYywgMHg3NDIwLCAweDc1MjQsIDB4MmM2OCwgMHg2ODljLCAweGEwNjUsIDB4MDA0MCwKKwkweDE3MTgsIDB4MjAwOSwgMHgwMDIwLCAweDEwNzgsIDB4MTk3YiwgMHgwMGMwLCAweDE3MDEsIDB4NjAwNCwKKwkweGEwODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgxNmVhLCAweDJkMDAsIDB4NjAwMiwKKwkweDAwNzgsIDB4MTZkMCwgMHgwYzdmLCAweDBjN2UsIDB4NjA5YywgMHgyMDYwLCAweDEwNzgsIDB4MWExNywKKwkweDBjN2YsIDB4NjA5ZiwgMHgwMDAwLCAweDEwNzgsIDB4MTc0ZSwgMHgyMDA5LCAweDAwMGMsIDB4NjAwOCwKKwkweGEwODUsIDB4MDIwMCwgMHg2MDBhLCAweDEwNzgsIDB4MTk3NiwgMHgxMDc4LCAweDE5OWEsIDB4MDA3OCwKKwkweDE3NGEsIDB4MGM3ZiwgMHgwYzdlLCAweDYwOWMsIDB4MjA2MCwgMHgxMDc4LCAweDFhMTcsIDB4MGM3ZiwKKwkweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDE3NGUsIDB4MjAwOSwgMHgwMDBjLCAweDYwMDcsIDB4MDEwMywKKwkweDYwMWIsIDB4MDAwMywgMHgxMDc4LCAweDE5NzYsIDB4MTA3OCwgMHgxOTlhLCAweDAwNzgsIDB4MTc0YSwKKwkweDBjN2YsIDB4NzRjNCwgMHg3M2M4LCAweDcyY2MsIDB4NjAxNCwgMHgyMDkxLCAweDgwMDAsIDB4NzgxNywKKwkweDAwMTIsIDB4MGU3ZSwgMHgyMDcxLCAweDUyNDAsIDB4NzA2ZiwgMHgwMDA1LCAweDcwNzMsIDB4MDAwMCwKKwkweDczNzYsIDB4NzI3YSwgMHg3NDdlLCAweDcwODIsIDB4NzA4NywgMHgwMDAwLCAweDJjMDAsIDB4NzA4YSwKKwkweDcwOGYsIDB4MDAwMCwgMHhhMDJlLCAweDI1MzAsIDB4NjExYywgMHg2MWEyLCAweGExODQsIDB4MDA2MCwKKwkweDAwNDAsIDB4MTczYywgMHgxMDc4LCAweDQ4ZDMsIDB4MGU3ZiwgMHg2NTk2LCAweDY1YTYsIDB4NjY5YSwKKwkweDY2YWEsIDB4NjBhZiwgMHgwMDAwLCAweDYwYjMsIDB4MDAwMCwgMHgxMDc4LCAweDIyNmYsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3YywgMHg3MGMzLCAweDQwMDUsIDB4MDA3OCwgMHgxMjg3LCAweDIwYTksIDB4MDAwNSwKKwkweDIwOTksIDB4NTIxOCwgMHgyMDkxLCAweDgwMDAsIDB4NTMwYSwgMHgyMDkxLCAweDgwMDEsIDB4MjEwMCwKKwkweGEyMTAsIDB4YTM5OSwgMHgwMDAwLCAweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4MDA3YywKKwkweDcxYzQsIDB4NzBjNywgMHgwMDAwLCAweDc5MDYsIDB4MDA3OCwgMHgxMjg0LCAweDcxYzQsIDB4NzFjNiwKKwkweDIxNjgsIDB4MDA3OCwgMHgxNzZkLCAweDIwNjksIDB4MTAwMCwgMHg2OTBjLCAweGEwMTYsIDB4MmQwNCwKKwkweGEyMTAsIDB4OGQ2OCwgMHg4MTA5LCAweDAwYzAsIDB4MTc2ZiwgMHhhMjg1LCAweDAwMDAsIDB4MDBjMCwKKwkweDE3N2QsIDB4NzBjMywgMHg0MDAwLCAweDAwNzgsIDB4MTc3ZiwgMHg3MGMzLCAweDQwMDMsIDB4NzBjYSwKKwkweDAwNzgsIDB4MTI4NywgMHgyMDExLCAweDUyNjcsIDB4MjIwYywgMHg3MGM0LCAweDgwMDMsIDB4MDA0OCwKKwkweDE3OGYsIDB4MTA3OCwgMHgzYzUxLCAweGExODQsIDB4N2ZmZiwgMHgwMDc4LCAweDE3OTMsIDB4MTA3OCwKKwkweDNjNDQsIDB4YTE4NSwgMHg4MDAwLCAweDIwMTIsIDB4MDA3OCwgMHgxMjgzLCAweDcxYzQsIDB4MTA3OCwKKwkweDNjM2IsIDB4NjEwMCwgMHgyMDAxLCAweDUyNjcsIDB4MjAwNCwgMHhhMDg0LCAweDgwMDAsIDB4YTEwZCwKKwkweDYyMDQsIDB4NjMwOCwgMHgwMDc4LCAweDEyODEsIDB4NzllNCwgMHgwMDc4LCAweDEyODMsIDB4NzFjNCwKKwkweDcxYzYsIDB4MjE5OCwgMHgyMGExLCAweDAwNDIsIDB4MjBhOSwgMHgwMDA0LCAweDUzYTMsIDB4MjFhMCwKKwkweDIwOTksIDB4MDA0MiwgMHgyMGE5LCAweDAwMDQsIDB4NTNhMywgMHgwMDc4LCAweDEyODQsIDB4NzBjNCwKKwkweDIwNjgsIDB4MjA3OSwgMHg1MjAwLCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDE5ODAsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA0MCwgMHgxODQzLCAweDYwMDcsIDB4MDAwMSwgMHg2MDBiLCAweDAwMDAsIDB4NjAyYiwKKwkweDAwMDAsIDB4NjAxYiwgMHgwMDA2LCAweDZhMTAsIDB4YTI4YywgMHgwMDBmLCAweGEyODQsIDB4MDBmMCwKKwkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTEwNSwgMHg2MDE2LCAweGEyODQsIDB4MDgwMCwKKwkweDAwNDAsIDB4MTdkZSwgMHg2MDFiLCAweDAwMGEsIDB4MDA3OCwgMHgxN2U0LCAweGEyODQsIDB4MTAwMCwKKwkweDAwNDAsIDB4MTdlNCwgMHg2MDFiLCAweDAwMGMsIDB4YTI4NCwgMHgwMzAwLCAweDAwNDAsIDB4MTdlZCwKKwkweDYwMmIsIDB4MDAwMSwgMHg4MDA0LCAweDgwMDQsIDB4ODAwNCwgMHhhMDg1LCAweDAwMDEsIDB4NjAxZSwKKwkweDYwMjMsIDB4MDAwMCwgMHg2MDI3LCAweDAwMDAsIDB4YTI4NCwgMHgwNDAwLCAweDAwNDAsIDB4MTdmYSwKKwkweDYwMmIsIDB4MDAwMCwgMHgyMGE5LCAweDAwMDYsIDB4YWM4MCwgMHgwMDBiLCAweDIwYTAsIDB4YWQ4MCwKKwkweDAwMDUsIDB4MjA5OCwgMHg1M2EzLCAweGEyODQsIDB4MDMwMCwgMHgwMGMwLCAweDE4MGYsIDB4NjA0NiwKKwkweDYwNGEsIDB4NjA0ZSwgMHg2MDUyLCAweDYwOTYsIDB4NjA5YSwgMHgwMDc4LCAweDE4MTksIDB4NjgwMCwKKwkweDYwNDYsIDB4NjgwNCwgMHg2MDRhLCAweDZlMDgsIDB4NjY0ZSwgMHg2ZDBjLCAweDY1NTIsIDB4NjU5NiwKKwkweDY2OWEsIDB4NjAxNCwgMHgyMDkxLCAweDgwMDAsIDB4NzgxNywgMHgwMDQyLCAweDJjMDgsIDB4MjA2MSwKKwkweDUyNDAsIDB4NjA2ZiwgMHgwMDA1LCAweDYwNzMsIDB4MDAwMCwgMHg2MDc3LCAweDAwMDAsIDB4NjA3YiwKKwkweDAwMDAsIDB4NjA3ZiwgMHgwMDAwLCAweDYwODIsIDB4NjE4YSwgMHhhMjg0LCAweDA0MDAsIDB4NjA4ZSwKKwkweDIwOTEsIDB4ODAwMSwgMHgwZTdlLCAweDIwNzEsIDB4MDAyMCwgMHg3MDA3LCAweDAwMGEsIDB4NzAwNywKKwkweDAwMDIsIDB4NzAwMywgMHgwMDAwLCAweDBlN2YsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MjI2ZiwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDcwYzMsIDB4NDAwNSwgMHgwMDc4LCAweDEyODcsIDB4MGM3ZSwKKwkweDBkN2UsIDB4MGU3ZSwgMHgwZjdlLCAweDIwOTEsIDB4ODAwMCwgMHgyMDcxLCAweDUyNDAsIDB4MjA3OSwKKwkweDAxMDAsIDB4MjA2MSwgMHgwMDEwLCAweDcwYTAsIDB4YTA2ZCwgMHgwMDQwLCAweDE5MDMsIDB4NmEwNCwKKwkweGEyOTQsIDB4MDBmZiwgMHhhMjg2LCAweDAwMDcsIDB4MDA0MCwgMHgxODYyLCAweGEyODYsIDB4MDAwZiwKKwkweDAwYzAsIDB4MTkwMywgMHg2OTFjLCAweGExODQsIDB4MDBjMCwgMHgwMDQwLCAweDE5MDMsIDB4YTE4NCwKKwkweDAwODAsIDB4MDBjMCwgMHgxOGQzLCAweDY4MjQsIDB4YTA4NCwgMHhmZjAwLCAweGEwODUsIDB4MDAxOSwKKwkweDY4MjYsIDB4NzFiMCwgMHg4MWZmLCAweDAwNDAsIDB4MTg4OSwgMHgwZDdlLCAweDIwNjksIDB4MDAyMCwKKwkweDY4MDcsIDB4MDAxMCwgMHg2OTA4LCAweDY4MDgsIDB4YTEwNiwgMHgwMGMwLCAweDE4N2EsIDB4NjkwYywKKwkweDY4MGMsIDB4YTEwNiwgMHgwMGMwLCAweDE4N2YsIDB4YTE4NCwgMHgwMGZmLCAweDAwYzAsIDB4MTg3ZiwKKwkweDBkN2YsIDB4NzhiOCwgMHhhMDg0LCAweDgwMWYsIDB4MDBjMCwgMHgxODg5LCAweDc4NDgsIDB4YTA4NSwKKwkweDAwMGMsIDB4Nzg0YSwgMHg3MWIwLCAweDgxZmYsIDB4MDA0MCwgMHgxOGFjLCAweDcwYjMsIDB4MDAwMCwKKwkweDBkN2UsIDB4MjA2OSwgMHgwMDIwLCAweDY4MDcsIDB4MDAxOCwgMHg2ODA0LCAweGEwODQsIDB4MDAwOCwKKwkweDAwYzAsIDB4MTg5ZCwgMHg2ODA3LCAweDAwMDgsIDB4NjgwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwKKwkweDE4YTQsIDB4NjgwNywgMHgwMDAyLCAweDBkN2YsIDB4NjFjNCwgMHg2MmM4LCAweDYzY2MsIDB4NjFjNiwKKwkweDYyY2EsIDB4NjNjZSwgMHgwZTdlLCAweDIwNzEsIDB4NTIwMCwgMHg3MjY2LCAweDczNmEsIDB4YWU4MCwKKwkweDAwMTksIDB4MGU3ZiwgMHg3ODQ4LCAweGEwODQsIDB4MDAwYywgMHgwMGMwLCAweDE4YmEsIDB4MTA3OCwKKwkweDQ3ZTEsIDB4NzhhMywgMHgwMDAwLCAweDc4NTgsIDB4YTA4NCwgMHhlZGZmLCAweDc4NWEsIDB4NzBiNCwKKwkweGEwODAsIDB4MDBkYSwgMHg3ODFhLCAweDBmN2YsIDB4MGU3ZiwgMHgwZDdmLCAweDBjN2YsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3OCwgMHgxMjg0LCAweDY4MjQsIDB4YTA4NCwgMHhmZjAwLCAweGEwODUsIDB4MDAxOSwKKwkweDY4MjYsIDB4NzhiOCwgMHhhMDg0LCAweDgwMWYsIDB4MDBjMCwgMHgxOGQ5LCAweDc4NDgsIDB4YTA4NSwKKwkweDAwMGMsIDB4Nzg0YSwgMHg3ODQ4LCAweGEwODQsIDB4MDAwYywgMHgwMGMwLCAweDE4ZTIsIDB4NzFiMCwKKwkweDgxZmYsIDB4MDA0MCwgMHgxOTAxLCAweDcwYjMsIDB4MDAwMCwgMHgwZDdlLCAweDIwNjksIDB4MDAyMCwKKwkweDY4MDcsIDB4MDAxOCwgMHg2ODA0LCAweGEwODQsIDB4MDAwOCwgMHgwMGMwLCAweDE4ZjIsIDB4NjgwNywKKwkweDAwMDgsIDB4NjgwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwgMHgxOGY5LCAweDY4MDcsIDB4MDAwMiwKKwkweDBkN2YsIDB4MDA3OCwgMHgxOGNiLCAweDBmN2YsIDB4MGU3ZiwgMHgwZDdmLCAweDBjN2YsIDB4MjA5MSwKKwkweDgwMDEsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsIDB4MTI4NiwgMHg3OTgwLCAweDcxYzYsIDB4NzFjNCwKKwkweGExODIsIDB4MDAwMywgMHgwMGM4LCAweDEyN2MsIDB4Nzk4MiwgMHgwMDc4LCAweDEyODQsIDB4Nzk4MCwKKwkweDcxYzYsIDB4MDA3OCwgMHgxMjg0LCAweDc5NzQsIDB4NzFjNiwgMHg3MWM0LCAweDc5NzYsIDB4Nzk3OCwKKwkweDcxY2EsIDB4NzFjOCwgMHg3OTdhLCAweDc5N2MsIDB4NzFjZSwgMHg3MWNjLCAweDc5N2UsIDB4MDA3OCwKKwkweDEyODQsIDB4Nzk3NCwgMHg3MWM2LCAweDc5NzgsIDB4NzFjYSwgMHg3OTdjLCAweDcxY2UsIDB4MDA3OCwKKwkweDEyODQsIDB4NzkwMCwgMHg3MWM2LCAweDcxYzQsIDB4NzkwMiwgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwKKwkweGEwODIsIDB4MDAwNSwgMHgwMDQ4LCAweDE5NDAsIDB4MDAzOCwgMHgxOTQyLCAweDAwNzgsIDB4MTk0YywKKwkweDAwYTgsIDB4MTk0YywgMHhhMThjLCAweDAwMDEsIDB4MDBjMCwgMHgxOTRhLCAweDIwYjksIDB4MjIyMiwKKwkweDAwNzgsIDB4MTk0YywgMHgyMGI5LCAweDEyMTIsIDB4MDA3OCwgMHgxMjg0LCAweDc5MDAsIDB4NzFjNiwKKwkweDAwNzgsIDB4MTI4NCwgMHgyMDA5LCAweDUyNzQsIDB4MjEwNCwgMHg3MGM2LCAweDcwYzQsIDB4MjAwYSwKKwkweDAwNzgsIDB4MTI4NCwgMHgyMDA5LCAweDUyNzQsIDB4MjEwNCwgMHg3MGM2LCAweDAwNzgsIDB4MTI4NCwKKwkweDcxYzQsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTBlOCwKKwkweDU0ODAsIDB4NmExNCwgMHhkMmI0LCAweDAwNDAsIDB4MTk3MSwgMHgyMDExLCAweDAwMDEsIDB4MDA3OCwKKwkweDE5NzMsIDB4MjAxMSwgMHgwMDAwLCAweDZiMGMsIDB4MDA3OCwgMHgxMjgxLCAweGFjODAsIDB4MDAwMSwKKwkweDEwNzgsIDB4MWI4MCwgMHgwMDdjLCAweGFjODAsIDB4MDAwMSwgMHgxMDc4LCAweDFiMjAsIDB4MDA3YywKKwkweDc4NTAsIDB4YTA2NSwgMHgwMDQwLCAweDE5ODgsIDB4MmMwNCwgMHg3ODUyLCAweDIwNjMsIDB4MDAwMCwKKwkweDAwN2MsIDB4MGY3ZSwgMHgyMDc5LCAweDUyMDAsIDB4Nzg1MCwgMHhhMDZkLCAweDAwNDAsIDB4MTk5OCwKKwkweDJkMDQsIDB4Nzg1MiwgMHg2ODAzLCAweDAwMDAsIDB4NjgwNywgMHgwMDAwLCAweDY4MGIsIDB4MDAwMCwKKwkweDBmN2YsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsIDB4MGY3ZSwgMHgyMDc5LCAweDUyMDAsIDB4Nzg1MCwKKwkweDIwNjIsIDB4MmMwMCwgMHhhMDA1LCAweDAwYzAsIDB4MTlhNywgMHgxMDc4LCAweDI0OGMsIDB4Nzg1MiwKKwkweDBmN2YsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4MGY3ZSwgMHgyMDc5LCAweDUyMDAsIDB4Nzg1MCwKKwkweDIwNmEsIDB4MmQwMCwgMHg3ODUyLCAweDBmN2YsIDB4MDA3YywgMHgyMDExLCAweDc5MDAsIDB4N2E1MiwKKwkweDdiZWMsIDB4ODMxOSwgMHgwMDQwLCAweDE5YzIsIDB4YTI4MCwgMHgwMDMxLCAweDIwMTIsIDB4MjAxMCwKKwkweDAwNzgsIDB4MTliOSwgMHgyMDEzLCAweDAwMDAsIDB4MDA3YywgMHhhNzg0LCAweDBmMDAsIDB4ODAwYiwKKwkweGE3ODQsIDB4MDAxZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4YTBlOCwKKwkweDU1MDAsIDB4MDA3YywgMHgxMDc4LCAweDE5YzUsIDB4MjkwMCwgMHg2ODJhLCAweDJhMDAsIDB4NjgyZSwKKwkweDY4MDgsIDB4YTA4NCwgMHhmZmVmLCAweGE4MGQsIDB4NjkwYSwgMHgyMDA5LCAweDUyNTIsIDB4MjEwYywKKwkweDY4MDQsIDB4YTAwNSwgMHgwMDQwLCAweDFhMDQsIDB4YTExNiwgMHgwMGMwLCAweDE5ZWYsIDB4MjA2MCwKKwkweDYwMDAsIDB4NjgwNiwgMHgwMTdlLCAweDIwMGIsIDB4MDAwMCwgMHgwMDc4LCAweDE5ZjIsIDB4MjAwOSwKKwkweDAwMDAsIDB4MDE3ZSwgMHg2ODA0LCAweGEwNjUsIDB4MDA0MCwgMHgxYTAxLCAweDYwMDAsIDB4NjgwNiwKKwkweDEwNzgsIDB4MWEzMSwgMHgxMDc4LCAweDFjY2IsIDB4NjgxMCwgMHg4MDAxLCAweDY4MTIsIDB4MDBjMCwKKwkweDE5ZjIsIDB4MDE3ZiwgMHg2OTAyLCAweDY5MDYsIDB4MDA3YywgMHhhMDY1LCAweDAwNDAsIDB4MWExNiwKKwkweDIwMDgsIDB4NjA5YywgMHhhMDA1LCAweDAwNDAsIDB4MWExMywgMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwKKwkweGEwNjUsIDB4MDA3OCwgMHgxYTA5LCAweDc4NTAsIDB4Nzk1MiwgMHgyMDYyLCAweDAwN2MsIDB4YTA2NSwKKwkweDAwNDAsIDB4MWEzMCwgMHgyMDA4LCAweDYwOWMsIDB4YTAwNSwgMHgwMDQwLCAweDFhMjUsIDB4MjA2MiwKKwkweDYwOWYsIDB4MDAwMCwgMHhhMDY1LCAweDAwNzgsIDB4MWExYiwgMHgwZjdlLCAweDIwNzksIDB4NTIwMCwKKwkweDIwOTEsIDB4ODAwMCwgMHg3ODUwLCAweDc5NTIsIDB4MGY3ZiwgMHgyMDYyLCAweDIwOTEsIDB4ODAwMSwKKwkweDAwN2MsIDB4NjAwNywgMHgwMTAzLCAweDYwOGYsIDB4MDAwMCwgMHgyMGE5LCAweDAwMWMsIDB4YWM4MCwKKwkweDAwMDUsIDB4MjBhMCwgMHgyMDAxLCAweDAwMDAsIDB4NDBhNCwgMHg2ODI4LCAweDYwMWEsIDB4NjgyYywKKwkweDYwMjIsIDB4MDA3YywgMHgwZTdlLCAweDIwNzEsIDB4NTI0MCwgMHg3MDRjLCAweGEwOGMsIDB4MDIwMCwKKwkweDAwYzAsIDB4MWE1MCwgMHhhMDg4LCAweDUyODAsIDB4MmQwYSwgMHg4MDAwLCAweDcwNGUsIDB4YTAwNiwKKwkweDBlN2YsIDB4MDA3YywgMHgxMDc4LCAweDE5YzUsIDB4MjA5MSwgMHg4MDAwLCAweDY4MDQsIDB4NzgxZSwKKwkweGEwNjUsIDB4MDA0MCwgMHgxYTliLCAweDAwNzgsIDB4MWE2MywgMHgyYzAwLCAweDc4MWUsIDB4NjAwMCwKKwkweGEwNjUsIDB4MDA0MCwgMHgxYTliLCAweDYwMGMsIDB4YTMwNiwgMHgwMGMwLCAweDFhNWQsIDB4NjAxMCwKKwkweGEyMDYsIDB4MDBjMCwgMHgxYTVkLCAweDJjMjgsIDB4MjAwMSwgMHg1MjUyLCAweDIwMDQsIDB4YWMwNiwKKwkweDAwYzAsIDB4MWE3NCwgMHgwMDc4LCAweDFhOTksIDB4NjgwNCwgMHhhYzA2LCAweDAwYzAsIDB4MWE4MSwKKwkweDYwMDAsIDB4YTA2NSwgMHg2ODA2LCAweDAwYzAsIDB4MWE4YiwgMHg2ODAzLCAweDAwMDAsIDB4MDA3OCwKKwkweDFhOGIsIDB4NjQwMCwgMHg3ODFjLCAweDIwNjAsIDB4NjQwMiwgMHhhNDg2LCAweDAwMDAsIDB4MDBjMCwKKwkweDFhOGIsIDB4MmMwMCwgMHg2ODAyLCAweDI1NjAsIDB4MTA3OCwgMHgxYTMxLCAweDYwMWIsIDB4MDAwNSwKKwkweDYwMjMsIDB4MDAyMCwgMHgxMDc4LCAweDFjY2IsIDB4NjgxMCwgMHg4MDAxLCAweDEwNTAsIDB4MjQ4YywKKwkweDY4MTIsIDB4YTA4NSwgMHhmZmZmLCAweDAwN2MsIDB4MjAzOSwgMHgwMDAwLCAweDIwNDEsIDB4MDAyMSwKKwkweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMDgsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MTlkMiwKKwkweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDAwYzAsIDB4MWFhNiwgMHhhN2JjLCAweGZmMDAsIDB4ODczZiwKKwkweDg3MzgsIDB4ODczZiwgMHhhNzg0LCAweDBmMDAsIDB4MDBjMCwgMHgxYWE2LCAweDIwOTEsIDB4ODAwMSwKKwkweDAwN2MsIDB4MjA2MSwgMHgwMDAwLCAweDYwMTgsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MWFjYSwKKwkweDIwOTEsIDB4ODAwMCwgMHg3OGUwLCAweDc4ZTMsIDB4MDAwMCwgMHgyMDkxLCAweDgwMDEsIDB4YTAwNSwKKwkweDAwYzAsIDB4MWFjYiwgMHgwMDdjLCAweGEwOGMsIDB4ZmZmMCwgMHgwMDQwLCAweDFhZDEsIDB4MTA3OCwKKwkweDI0OGMsIDB4MDA3OSwgMHgxYWQzLCAweDFhZTMsIDB4MWFlNiwgMHgxYWVjLCAweDFhZjAsIDB4MWFlNCwKKwkweDFhZjQsIDB4MWFmYSwgMHgxYWU0LCAweDFhZTQsIDB4MWM5NSwgMHgxY2I5LCAweDFjYmQsIDB4MWFlNCwKKwkweDFhZTQsIDB4MWFlNCwgMHgxYWU0LCAweDAwN2MsIDB4MTA3OCwgMHgyNDhjLCAweDEwNzgsIDB4MWE5YywKKwkweDIwMDEsIDB4ODAwMSwgMHgwMDc4LCAweDFjYzMsIDB4MjAwMSwgMHg4MDAzLCAweDAwNzgsIDB4MWNjMywKKwkweDIwMDEsIDB4ODAwNCwgMHgwMDc4LCAweDFjYzMsIDB4MTA3OCwgMHgxYTljLCAweDIwMDEsIDB4ODAwNiwKKwkweDAwNzgsIDB4MWNjMywgMHgyMDAxLCAweDgwMDcsIDB4MDA3OCwgMHgxY2MzLCAweDIwMzAsIDB4MjEzOCwKKwkweGE3ODIsIDB4MDAyMSwgMHgwMDQ4LCAweDFiMDYsIDB4MjAwOSwgMHgwMDIwLCAweDI2MDAsIDB4MTA3OCwKKwkweDFiMjAsIDB4MDBjMCwgMHgxYjFmLCAweGE3YmEsIDB4MDAyMCwgMHgwMDQ4LCAweDFiMWUsIDB4MDA0MCwKKwkweDFiMWUsIDB4MjcwOCwgMHhhNmIwLCAweDAwMjAsIDB4YTI5MCwgMHgwMDQwLCAweGEzOTksIDB4MDAwMCwKKwkweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4MDA3OCwgMHgxYjAwLCAweGEwMDYsIDB4MDA3YywKKwkweDgxZmYsIDB4MDA0MCwgMHgxYjViLCAweDIwOTksIDB4MDAzMCwgMHgyMGEwLCAweDcwMGMsIDB4YTA4NCwKKwkweDAwZmYsIDB4MDA0MCwgMHgxYjMyLCAweDcwMDcsIDB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwKKwkweDAwYzAsIDB4MWIyZCwgMHgyMWE4LCAweDcwMTcsIDB4MDAwMCwgMHg4MTBiLCAweDcxMTIsIDB4NzIxYSwKKwkweDczMWUsIDB4NzQyMiwgMHg3NTI2LCAweDc4MGMsIDB4YTA4NSwgMHgwMDAxLCAweDcwMDIsIDB4NzAwNywKKwkweDAwMDEsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4YTA4MiwgMHgwMDA1LCAweDAwYzgsIDB4MWI0ZiwKKwkweDIwMDksIDB4MDAyMiwgMHgyMTA0LCAweGEwODQsIDB4NDAwMCwgMHgwMGMwLCAweDFiNDEsIDB4NzAwOCwKKwkweDgwMGIsIDB4MDBjOCwgMHgxYjQxLCAweDcwMDcsIDB4MDAwMiwgMHhhMDhjLCAweDAxZTAsIDB4MDBjMCwKKwkweDFiNWIsIDB4NTNhNSwgMHhhMDA2LCAweDcwMDMsIDB4MDAwMCwgMHgwMDdjLCAweDIwMzAsIDB4MjEzOCwKKwkweGE3ODIsIDB4MDAyMSwgMHgwMDQ4LCAweDFiNjYsIDB4MjAwOSwgMHgwMDIwLCAweDI2MDAsIDB4MTA3OCwKKwkweDFiODAsIDB4MDBjMCwgMHgxYjdmLCAweGE3YmEsIDB4MDAyMCwgMHgwMDQ4LCAweDFiN2UsIDB4MDA0MCwKKwkweDFiN2UsIDB4MjcwOCwgMHhhNmIwLCAweDAwMjAsIDB4YTI5MCwgMHgwMDQwLCAweGEzOTksIDB4MDAwMCwKKwkweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4MDA3OCwgMHgxYjYwLCAweGEwMDYsIDB4MDA3YywKKwkweDgxZmYsIDB4MDA0MCwgMHgxYmMxLCAweDIwOTgsIDB4MjBhMSwgMHgwMDMwLCAweDcwMGMsIDB4YTA4NCwKKwkweDAwZmYsIDB4MDA0MCwgMHgxYjkyLCAweDcwMDcsIDB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwKKwkweDAwYzAsIDB4MWI4ZCwgMHgyMWE4LCAweDcwMTcsIDB4MDAwMCwgMHg4MTBiLCAweDcxMTIsIDB4NzIxYSwKKwkweDczMWUsIDB4NzQyMiwgMHg3NTI2LCAweDc4MGMsIDB4YTA4NSwgMHgwMDAwLCAweDcwMDIsIDB4NTNhNiwKKwkweDcwMDcsIDB4MDAwMSwgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwgMHhhMDgyLCAweDAwMDUsIDB4MDBjOCwKKwkweDFiYjAsIDB4MjAwOSwgMHgwMDIyLCAweDIxMDQsIDB4YTA4NCwgMHg0MDAwLCAweDAwYzAsIDB4MWJhMiwKKwkweDcwMTAsIDB4YTA4NCwgMHhmMDAwLCAweDAwNDAsIDB4MWJiOSwgMHg3MDA3LCAweDAwMDgsIDB4MDA3OCwKKwkweDFiYmQsIDB4NzEwOCwgMHg4MTAzLCAweDAwYzgsIDB4MWJhMiwgMHg3MDA3LCAweDAwMDIsIDB4YTE4NCwKKwkweDAxZTAsIDB4NzAwMywgMHgwMDAwLCAweDAwN2MsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4YTA4MiwKKwkweDAwMDQsIDB4MDBjOCwgMHgxYmNkLCAweDAwNzgsIDB4MWJkMCwgMHhhMDA2LCAweDAwNzgsIDB4MWJkMiwKKwkweGEwODUsIDB4MDAwMSwgMHgwMDdjLCAweDBlN2UsIDB4MjA3MSwgMHg1MjAwLCAweDJkMDgsIDB4NzA1OCwKKwkweDY4MDIsIDB4YTAwNSwgMHgwMGMwLCAweDFiZGQsIDB4NzE1ZSwgMHg3MTVhLCAweDBlN2YsIDB4MDA3YywKKwkweDJjMDgsIDB4Nzg1OCwgMHg2MDAyLCAweGEwMDUsIDB4MDBjMCwgMHgxYmU3LCAweDc5NWUsIDB4Nzk1YSwKKwkweDAwN2MsIDB4MjA5MSwgMHg4MDAwLCAweDYxMTQsIDB4MTA3OCwgMHgyMTgwLCAweDY5MDAsIDB4YTE4NCwKKwkweDAxMDAsIDB4MDBjMCwgMHgyMDM1LCAweGExODQsIDB4MDIwMCwgMHgwMGMwLCAweDIwMzEsIDB4NjgxYywKKwkweGEwMDUsIDB4MDBjMCwgMHgyMDNkLCAweDYwMDMsIDB4MDAwMCwgMHgyYzA4LCAweDc4NWMsIDB4YTA2NSwKKwkweDAwYzAsIDB4MWMwNSwgMHg3OTVhLCAweDAwNzgsIDB4MWMwNiwgMHg2MTAyLCAweDc5NWUsIDB4MjA5MSwKKwkweDgwMDEsIDB4MTA3OCwgMHgyMjhjLCAweDAwN2MsIDB4MGU3ZSwgMHgyMDcxLCAweDUyMDAsIDB4NzA1OCwKKwkweGEwNmQsIDB4MDA0MCwgMHgxYzFhLCAweDY4MDAsIDB4NzA1YSwgMHhhMDA1LCAweDAwYzAsIDB4MWMxOSwKKwkweDcwNWUsIDB4OGRmZiwgMHgwZTdmLCAweDAwN2MsIDB4MGQ3ZSwgMHgwYzdlLCAweDBmN2UsIDB4MjA3OSwKKwkweDUyMDAsIDB4YWY4MCwgMHgwMDE2LCAweDIwNjAsIDB4NjAwMCwgMHhhMDA1LCAweDAwNDAsIDB4MWM0MywKKwkweDIwNjgsIDB4NjgxNCwgMHhhMzA2LCAweDAwYzAsIDB4MWMzMywgMHg2ODI4LCAweGEwODQsIDB4MDBmZiwKKwkweGE0MDYsIDB4MDA0MCwgMHgxYzM2LCAweDJkNjAsIDB4MDA3OCwgMHgxYzI0LCAweDY4MDAsIDB4YTAwNSwKKwkweDYwMDIsIDB4MDBjMCwgMHgxYzQyLCAweGFmODAsIDB4MDAxNiwgMHhhYzA2LCAweDAwNDAsIDB4MWM0MSwKKwkweDJjMDAsIDB4Nzg1ZSwgMHgyZDAwLCAweDBmN2YsIDB4MGM3ZiwgMHgwZDdmLCAweGEwMDUsIDB4MDA3YywKKwkweDBkN2UsIDB4MGM3ZSwgMHgwZjdlLCAweDIwNzksIDB4NTIwMCwgMHhhZjgwLCAweDAwMTYsIDB4MjA2MCwKKwkweDYwMDAsIDB4YTAwNSwgMHgwMDQwLCAweDFjNmIsIDB4MjA2OCwgMHg2ODE0LCAweGEwODQsIDB4MDBmZiwKKwkweGEzMDYsIDB4MDA0MCwgMHgxYzVlLCAweDJkNjAsIDB4MDA3OCwgMHgxYzUwLCAweDY4MDAsIDB4YTAwNSwKKwkweDYwMDIsIDB4MDBjMCwgMHgxYzZhLCAweGFmODAsIDB4MDAxNiwgMHhhYzA2LCAweDAwNDAsIDB4MWM2OSwKKwkweDJjMDAsIDB4Nzg1ZSwgMHgyZDAwLCAweDBmN2YsIDB4MGM3ZiwgMHgwZDdmLCAweGEwMDUsIDB4MDA3YywKKwkweDBkN2UsIDB4MGM3ZSwgMHgwZjdlLCAweDIwNzksIDB4NTIwMCwgMHhhZjgwLCAweDAwMTYsIDB4MjA2MCwKKwkweDYwMDAsIDB4YTA2ZCwgMHgwMDQwLCAweDFjOTAsIDB4NjgxNCwgMHhhMzA2LCAweDAwNDAsIDB4MWM4MywKKwkweDJkNjAsIDB4MDA3OCwgMHgxYzc4LCAweDY4MDAsIDB4YTAwNSwgMHg2MDAyLCAweDAwYzAsIDB4MWM4ZiwKKwkweGFmODAsIDB4MDAxNiwgMHhhYzA2LCAweDAwNDAsIDB4MWM4ZSwgMHgyYzAwLCAweDc4NWUsIDB4MmQwMCwKKwkweDBmN2YsIDB4MGM3ZiwgMHgwZDdmLCAweGEwMDUsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsIDB4MjA2OSwKKwkweDUyNDAsIDB4NjgwMCwgMHhhMDg2LCAweDAwMDAsIDB4MDA0MCwgMHgxY2EzLCAweDIwOTEsIDB4ODAwMSwKKwkweDc4ZTMsIDB4MDAwOSwgMHgwMDdjLCAweDY4ODAsIDB4YTBiYywgMHhmZjAwLCAweDIwNDEsIDB4MDAyMSwKKwkweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMTAsIDB4MTA3OCwgMHgxOWQyLCAweDg3MzgsIDB4YTc4NCwKKwkweDAwMWYsIDB4MDBjMCwgMHgxY2FjLCAweDIwOTEsIDB4ODAwMSwgMHgyMDAxLCAweDgwMGEsIDB4MDA3OCwKKwkweDFjYzMsIDB4MjAwMSwgMHg4MDBjLCAweDAwNzgsIDB4MWNjMywgMHgxMDc4LCAweDFhOWMsIDB4MjAwMSwKKwkweDgwMGQsIDB4MDA3OCwgMHgxY2MzLCAweDcwYzIsIDB4MjA2MSwgMHgwMDAwLCAweDYwMWIsIDB4MDAwMSwKKwkweDIwOTEsIDB4NDA4MCwgMHgwMDdjLCAweDYwMDQsIDB4MmMwOCwgMHgyMDYzLCAweDAwMDAsIDB4Nzg4NCwKKwkweDgwMDAsIDB4Nzg4NiwgMHg3ODg4LCAweGEwMDUsIDB4Nzk4YSwgMHgwMDQwLCAweDFjZGEsIDB4MmMwMiwKKwkweDAwNzgsIDB4MWNkYiwgMHg3OThlLCAweDAwN2MsIDB4NjgwNywgMHgwMTAzLCAweDBjN2UsIDB4MjA2MSwKKwkweDUyMDAsIDB4MmQwOCwgMHgyMDZiLCAweDAwMDAsIDB4NjA4NCwgMHg4MDAwLCAweDYwODYsIDB4NjA4OCwKKwkweGEwMDUsIDB4NjE4YSwgMHgwMDQwLCAweDFjZWYsIDB4MmQwMiwgMHgwMDc4LCAweDFjZjAsIDB4NjE4ZSwKKwkweDBjN2YsIDB4MDA3YywgMHgxMDc4LCAweDFkMDMsIDB4MDA0MCwgMHgxZDAyLCAweDBjN2UsIDB4NjA5YywKKwkweGEwNjUsIDB4MDA0MCwgMHgxY2ZkLCAweDEwNzgsIDB4MWExNywgMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwKKwkweDEwNzgsIDB4MTk5YSwgMHgwMDdjLCAweDc4OGMsIDB4YTA2NSwgMHgwMDQwLCAweDFkMTUsIDB4MjA5MSwKKwkweDgwMDAsIDB4Nzg4NCwgMHg4MDAxLCAweDc4ODYsIDB4MmMwNCwgMHg3ODhlLCAweGEwMDUsIDB4MDBjMCwKKwkweDFkMTMsIDB4Nzg4YSwgMHg4MDAwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDIwYTksIDB4MDAxMCwKKwkweGEwMDYsIDB4ODAwNCwgMHg4MDg2LCAweDgxOGUsIDB4MDBjOCwgMHgxZDFmLCAweGEyMDAsIDB4MDA3MCwKKwkweDFkMjMsIDB4MDA3OCwgMHgxZDFhLCAweDgwODYsIDB4ODE4ZSwgMHgwMDdjLCAweDE1N2UsIDB4MjBhOSwKKwkweDAwMTAsIDB4YTAwNSwgMHgwMDQwLCAweDFkNDksIDB4YTExYSwgMHgwMGM4LCAweDFkNDksIDB4ODIxMywKKwkweDgxOGQsIDB4MDA0OCwgMHgxZDNhLCAweGExMWEsIDB4MDBjOCwgMHgxZDNiLCAweDAwNzAsIDB4MWQ0MSwKKwkweDAwNzgsIDB4MWQyZiwgMHhhMTFhLCAweDIzMDgsIDB4ODIxMCwgMHgwMDcwLCAweDFkNDEsIDB4MDA3OCwKKwkweDFkMmYsIDB4MDA3ZSwgMHgzMjAwLCAweGEwODQsIDB4ZjdmZiwgMHgyMDgwLCAweDAwN2YsIDB4MTU3ZiwKKwkweDAwN2MsIDB4MDA3ZSwgMHgzMjAwLCAweGEwODUsIDB4MDgwMCwgMHgwMDc4LCAweDFkNDUsIDB4Nzk5NCwKKwkweDcwZDAsIDB4YTEwNiwgMHgwMDQwLCAweDFkYmQsIDB4MjA5MSwgMHg4MDAwLCAweDIwNzEsIDB4MDAyMCwKKwkweDcwMDQsIDB4YTAwNSwgMHgwMGMwLCAweDFkYmQsIDB4NzAwOCwgMHg3MjA4LCAweGEyMDYsIDB4MDBjMCwKKwkweDFkYmQsIDB4YTI4NiwgMHgwMDA4LCAweDAwYzAsIDB4MWRiZCwgMHgyMDcxLCAweDAwMTAsIDB4MTA3OCwKKwkweDE5ODAsIDB4MDA0MCwgMHgxZGJkLCAweDdhOWMsIDB4N2I5OCwgMHg3Y2E0LCAweDdkYTAsIDB4YTE4NCwKKwkweGZmMDAsIDB4MDA0MCwgMHgxZDhiLCAweDIwMzEsIDB4MDAwMCwgMHg4MTBiLCAweDg2YjUsIDB4ODEwYiwKKwkweDg2YjUsIDB4ODEwYiwgMHg4NmI1LCAweDgxMGIsIDB4ODZiNSwgMHg4MTBiLCAweDg2YjUsIDB4ODEwYiwKKwkweDg2YjUsIDB4MjEwMCwgMHhhMjEwLCAweDI2MDAsIDB4YTMxOSwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwKKwkweDAwMDAsIDB4MDA3OCwgMHgxZDk1LCAweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweGEyMTAsIDB4YTM5OSwKKwkweDAwMDAsIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwgMHgyMDA5LCAweDAwMjAsIDB4MTA3OCwKKwkweDE5N2IsIDB4MjA5MSwgMHg4MDAxLCAweDAwNDAsIDB4MWRiNCwgMHgxMDc4LCAweDE5OWEsIDB4NzhhOCwKKwkweDgwMDAsIDB4NzhhYSwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgxZGJkLCAweDIwOTEsIDB4ODAwMCwKKwkweDc4ZTMsIDB4MDAwMiwgMHg3OGFiLCAweDAwMDAsIDB4NzhjYywgMHhhMDg1LCAweDAwMDMsIDB4NzhjZSwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDFkYmQsIDB4NzhhYiwgMHgwMDAwLCAweDEwNzgsIDB4MjE0OSwKKwkweDYwMDQsIDB4YTA4NCwgMHgwMDBmLCAweDAwNzksIDB4MWRjMiwgMHgyMDcxLCAweDAwMTAsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3YywgMHgxZGQyLCAweDFkZjQsIDB4MWUxYSwgMHgxZGQyLCAweDFlMzcsIDB4MWRlMSwKKwkweDFmYzksIDB4MWZlNCwgMHgxZGQyLCAweDFkZWUsIDB4MWUxNCwgMHgxZTdmLCAweDFlZWUsIDB4MWY1NywKKwkweDFmNjksIDB4MWZlMCwgMHgyMDM5LCAweDA0MDAsIDB4NzhkYywgMHhhNzA1LCAweDc4ZGUsIDB4NjAwOCwKKwkweGE3MDUsIDB4NjAwYSwgMHgxMDc4LCAweDIwNjQsIDB4NjA5YywgMHg3OGRhLCAweDEwNzgsIDB4MjEzMSwKKwkweDAwN2MsIDB4NzhkYywgMHhhMDg0LCAweDAxMDAsIDB4MDA0MCwgMHgxZGU4LCAweDAwNzgsIDB4MWRkMiwKKwkweDYwMWMsIDB4YTA4NSwgMHgwMDgwLCAweDYwMWUsIDB4MDA3OCwgMHgxZGZiLCAweDEwNzgsIDB4MWJjNCwKKwkweDAwYzAsIDB4MWRkMiwgMHgxMDc4LCAweDIxNjMsIDB4NzhkYywgMHhhMDg0LCAweDAxMDAsIDB4MDA0MCwKKwkweDFkZmIsIDB4MDA3OCwgMHgxZGQyLCAweDc4ZGYsIDB4MDAwMCwgMHg2MDA0LCAweDgwMDcsIDB4YTA4NCwKKwkweDAwZmYsIDB4NzhkMiwgMHg4MDAxLCAweDYwOWYsIDB4MDAwMCwgMHgwMDQwLCAweDFlMTEsIDB4MTA3OCwKKwkweDIwNjQsIDB4MDA0MCwgMHgxZTExLCAweDc4ZGMsIDB4YTA4NSwgMHgwMTAwLCAweDc4ZGUsIDB4MDA3OCwKKwkweDFlMTMsIDB4MTA3OCwgMHgyMDg4LCAweDAwN2MsIDB4MTA3OCwgMHgxYmM0LCAweDAwYzAsIDB4MWRkMiwKKwkweDEwNzgsIDB4MjE1ZiwgMHg3OGRjLCAweGEwOGMsIDB4MGUwMCwgMHgwMGMwLCAweDFlMjMsIDB4YTA4NCwKKwkweDAxMDAsIDB4MDBjMCwgMHgxZTI1LCAweDAwNzgsIDB4MWRkMiwgMHgxMDc4LCAweDIwNjQsIDB4MDBjMCwKKwkweDFlMzYsIDB4NjEwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwgMHgwMDA3LCAweDAwNDAsIDB4MjAyMSwKKwkweGExODYsIDB4MDAwZiwgMHgwMDQwLCAweDIwMjEsIDB4MTA3OCwgMHgyMDg4LCAweDAwN2MsIDB4NzhkYywKKwkweGEwODQsIDB4MDEwMCwgMHgwMDQwLCAweDFlM2UsIDB4MDA3OCwgMHgxZGQyLCAweDc4ZGYsIDB4MDAwMCwKKwkweDY3MTQsIDB4MjAxMSwgMHgwMDAxLCAweDIwYTksIDB4MDAwMSwgMHg2MDE4LCAweGEwODQsIDB4MDBmZiwKKwkweGEwMDUsIDB4MDA0MCwgMHgxZTYxLCAweDIwMTEsIDB4MDAwMSwgMHhhN2JjLCAweGZmMDAsIDB4MjBhOSwKKwkweDAwMjAsIDB4YTA4ZSwgMHgwMDAxLCAweDAwNDAsIDB4MWU2MSwgMHgyMDM5LCAweDAwMDAsIDB4MjAxMSwKKwkweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweGEwOGUsIDB4MDAwMiwgMHgwMDQwLCAweDFlNjEsIDB4MDA3OCwKKwkweDFlN2MsIDB4MTA3OCwgMHgxOWM1LCAweDIwOTEsIDB4ODAwMCwgMHg2ODJiLCAweDAwMDAsIDB4NjgyZiwKKwkweDAwMDAsIDB4NjgwOCwgMHhhMDg0LCAweGZmZGUsIDB4NjgwYSwgMHhhZGU4LCAweDAwMTAsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3MCwgMHgxZTc1LCAweDAwNzgsIDB4MWU2MywgMHg4MjExLCAweDAwNDAsIDB4MWU3YywKKwkweDIwYTksIDB4MDEwMCwgMHgwMDc4LCAweDFlNjMsIDB4MTA3OCwgMHgxOTlhLCAweDAwN2MsIDB4MjAwMSwKKwkweDUyNjcsIDB4MjAwNCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyMDQ5LCAweDYxMTQsIDB4MTA3OCwKKwkweDIxODAsIDB4NjkwMCwgMHhhMTg0LCAweDAwMDEsIDB4MDA0MCwgMHgxZWEwLCAweDYwMjgsIDB4YTA4NCwKKwkweDAwZmYsIDB4MDBjMCwgMHgyMDQxLCAweDY4MDAsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4MjA0OSwKKwkweDY4MDMsIDB4MDAwMCwgMHg2ODBiLCAweDAwMDAsIDB4NjgwNywgMHgwMDAwLCAweDAwNzgsIDB4MjA1MSwKKwkweDIwMTEsIDB4MDAwMSwgMHg2MDIwLCAweGQwZjQsIDB4MDA0MCwgMHgxZWE4LCAweGEyOTUsIDB4MDAwMiwKKwkweGQwYzQsIDB4MDA0MCwgMHgxZWFkLCAweGEyOTUsIDB4MDAwOCwgMHhkMGNjLCAweDAwNDAsIDB4MWViMiwKKwkweGEyOTUsIDB4MDQwMCwgMHg2MDFjLCAweGEwODQsIDB4MDAwMiwgMHgwMDQwLCAweDFlYjksIDB4YTI5NSwKKwkweDAwMDQsIDB4NjAyYywgMHhhMDhjLCAweDAwZmYsIDB4YTE4MiwgMHgwMDAyLCAweDAwNDgsIDB4MjA0ZCwKKwkweGExODIsIDB4MDAxYiwgMHgwMGM4LCAweDIwNGQsIDB4MDA0MCwgMHgyMDRkLCAweDY5MGUsIDB4NjAyYywKKwkweDgwMDcsIDB4YTA4YywgMHgwMGZmLCAweGExODIsIDB4MDAwMiwgMHgwMDQ4LCAweDIwNGQsIDB4YTE4MiwKKwkweDAwMWIsIDB4MDBjOCwgMHgyMDRkLCAweDAwNDAsIDB4MjA0ZCwgMHg2OTEyLCAweDYwMzAsIDB4YTAwNSwKKwkweDAwYzAsIDB4MWVkYywgMHgyMDAxLCAweDAwMWUsIDB4ODAwMCwgMHg2ODE2LCAweDYwMjgsIDB4YTA4NCwKKwkweDAwZmYsIDB4MDA0MCwgMHgyMDQ5LCAweDY4MDYsIDB4NjAyOCwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwKKwkweDAwNDAsIDB4MjA0OSwgMHg2ODBhLCAweDZhMDIsIDB4MDA3OCwgMHgyMDUxLCAweDIwMDEsIDB4NTI0MCwKKwkweDIwMDQsIDB4YTA4NiwgMHgwMDA3LCAweDAwYzAsIDB4MWY1MywgMHgyMDAxLCAweDUyNjcsIDB4MjAwNCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDIwNDksIDB4NjExNCwgMHgxMDc4LCAweDIxODAsIDB4MjAwMSwKKwkweDUyNTIsIDB4MjAwNCwgMHgyMDEwLCAweDgyZmYsIDB4MDA0MCwgMHgxZjBlLCAweGEwODAsIDB4MDAwNSwKKwkweDIwMDQsIDB4YTA4NCwgMHgwMGZmLCAweGExMDYsIDB4MDBjMCwgMHgxZjUzLCAweDIwOTEsIDB4ODAwMCwKKwkweDZhMDQsIDB4NmIwOCwgMHg2NDE4LCAweGE0ODQsIDB4MDAwMywgMHgwMDQwLCAweDFmMmQsIDB4NjEyOCwKKwkweGExOGMsIDB4MDBmZiwgMHg4MDAxLCAweDAwYzAsIDB4MWYyMywgMHgyMTAwLCAweGEyMTAsIDB4MDA0OCwKKwkweDFmNTMsIDB4MDA3OCwgMHgxZjJkLCAweDgwMDEsIDB4MDBjMCwgMHgxZjUzLCAweDIxMDAsIDB4YTIxMiwKKwkweDAwNDgsIDB4MWY1MywgMHg4MmZmLCAweDAwNDAsIDB4MWY1MywgMHhhNDg0LCAweDAwMGMsIDB4MDA0MCwKKwkweDFmNDcsIDB4NjEyOCwgMHg4MTBmLCAweGExOGMsIDB4MDBmZiwgMHhhMDgyLCAweDAwMDQsIDB4MDBjMCwKKwkweDFmM2YsIDB4MjEwMCwgMHhhMzE4LCAweDAwNDgsIDB4MWY1MywgMHgwMDc4LCAweDFmNDcsIDB4YTA4MiwKKwkweDAwMDQsIDB4MDBjMCwgMHgxZjUzLCAweDIxMDAsIDB4YTMxYSwgMHgwMDQ4LCAweDFmNTMsIDB4NjAzMCwKKwkweGEwMDUsIDB4MDA0MCwgMHgxZjRkLCAweDgwMDAsIDB4NjgxNiwgMHg2YTA2LCAweDZiMGEsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3OCwgMHgyMDUxLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDIwNGQsIDB4NjExNCwKKwkweDEwNzgsIDB4MjE4MCwgMHgyMDkxLCAweDgwMDAsIDB4NmIwOCwgMHg4MzE4LCAweDAwNDgsIDB4MWY2NSwKKwkweDZiMGEsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MjA2MCwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwKKwkweDIwNGQsIDB4NjAyNCwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHgwMDQwLCAweDFmODcsIDB4YTA4NiwKKwkweDAwODAsIDB4MDBjMCwgMHgxZmM3LCAweDIwYTksIDB4MDAwOCwgMHgyMDY5LCAweDc2MTAsIDB4MjA5MSwKKwkweDgwMDAsIDB4NjgwMCwgMHhhMDg0LCAweGZjZmYsIDB4NjgwMiwgMHhhZGU4LCAweDAwMDgsIDB4MDA3MCwKKwkweDFmODMsIDB4MDA3OCwgMHgxZjc5LCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDIwNTEsIDB4NjAyOCwKKwkweGEwMTUsIDB4MDA0MCwgMHgxZmM3LCAweDYxMTQsIDB4MTA3OCwgMHgyMTgwLCAweDBjN2UsIDB4MGQ3ZSwKKwkweGFkZTgsIDB4MDAwNywgMHgyMDkxLCAweDgwMDAsIDB4NjgwMCwgMHhhMDBkLCAweDAwNDAsIDB4MWZjMywKKwkweGEyMDYsIDB4MDA0MCwgMHgxZjllLCAweDIxNjgsIDB4MDA3OCwgMHgxZjk0LCAweDIxNjAsIDB4NjAwMCwKKwkweDY4MDIsIDB4MmM2OCwgMHgxMDc4LCAweDE5YWMsIDB4MGQ3ZiwgMHg2ODE4LCAweGEwMGQsIDB4MDA0MCwKKwkweDFmYmIsIDB4MjA2MCwgMHg2MjAwLCAweDZhMWEsIDB4NmExYywgMHg2MjAyLCAweDY4MWUsIDB4MTA3OCwKKwkweDE5ODksIDB4MmRhMCwgMHgyMTk4LCAweDIwYTksIDB4MDAzMSwgMHg1M2EzLCAweDJkNjAsIDB4MTA3OCwKKwkweDFjY2IsIDB4MDA3OCwgMHgxZmJlLCAweDY4MDgsIDB4ODAwMCwgMHg2ODBhLCAweDIwOTEsIDB4ODAwMSwKKwkweDBjN2YsIDB4MDA3OCwgMHgyMDYwLCAweDIwOTEsIDB4ODAwMSwgMHgwZDdmLCAweDBjN2YsIDB4MDA3OCwKKwkweDIwNDksIDB4NjExNCwgMHgxMDc4LCAweDIxODAsIDB4NjgwMCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwKKwkweDIwMzksIDB4MjA5MSwgMHg4MDAwLCAweDZhMDQsIDB4ODIxMCwgMHgwMDQ4LCAweDFmZGMsIDB4NmEwNiwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDIwNjAsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MjA0ZCwKKwkweDEwNzgsIDB4MWJjNCwgMHgwMGMwLCAweDFkZDIsIDB4NjExNCwgMHgxMDc4LCAweDIxODAsIDB4NjBiZSwKKwkweDYwYmIsIDB4MDAwMCwgMHg2OTAwLCAweGExODQsIDB4MDAwOCwgMHgwMDQwLCAweDFmZjMsIDB4NjAyMCwKKwkweGEwODUsIDB4MDEwMCwgMHg2MDIyLCAweGExODQsIDB4MDAwMSwgMHgwMDQwLCAweDIwNDksIDB4YTE4NCwKKwkweDAxMDAsIDB4MDBjMCwgMHgyMDM1LCAweGExODQsIDB4MDIwMCwgMHgwMGMwLCAweDIwMzEsIDB4NjgxYywKKwkweGEwMDUsIDB4MDBjMCwgMHgyMDNkLCAweDYwMDQsIDB4YTA4NCwgMHgwMGZmLCAweGEwODYsIDB4MDAwZiwKKwkweDAwYzAsIDB4MjAwYywgMHgxMDc4LCAweDIxNjMsIDB4NzhkZiwgMHgwMDAwLCAweDYwMDQsIDB4ODAwNywKKwkweGEwODQsIDB4MDBmZiwgMHg3OGQyLCAweDgwMDEsIDB4NjA5ZiwgMHgwMDAwLCAweDAwNDAsIDB4MjAyMSwKKwkweDEwNzgsIDB4MjA2NCwgMHgwMDQwLCAweDIwMjEsIDB4NzhkYywgMHhhMDg1LCAweDAxMDAsIDB4NzhkZSwKKwkweDAwN2MsIDB4NzhkNywgMHgwMDAwLCAweDc4ZGIsIDB4MDAwMCwgMHg2MDI0LCAweGEwODQsIDB4ZmYwMCwKKwkweDYwMjYsIDB4MTA3OCwgMHgzYWFjLCAweDAwNDAsIDB4MWQ0ZiwgMHgxMDc4LCAweDFiZTksIDB4MDA3OCwKKwkweDFkNGYsIDB4MjAwOSwgMHgwMDE3LCAweDAwNzgsIDB4MjA1MywgMHgyMDA5LCAweDAwMGUsIDB4MDA3OCwKKwkweDIwNTMsIDB4MjAwOSwgMHgwMDA3LCAweDAwNzgsIDB4MjA1MywgMHgyMDA5LCAweDAwMzUsIDB4MDA3OCwKKwkweDIwNTMsIDB4MjAwOSwgMHgwMDNlLCAweDAwNzgsIDB4MjA1MywgMHgyMDA5LCAweDAwMDQsIDB4MDA3OCwKKwkweDIwNTMsIDB4MjAwOSwgMHgwMDA2LCAweDAwNzgsIDB4MjA1MywgMHgyMDA5LCAweDAwMTYsIDB4MDA3OCwKKwkweDIwNTMsIDB4MjAwOSwgMHgwMDAxLCAweDYwMjQsIDB4YTA4NCwgMHhmZjAwLCAweGExMDUsIDB4NjAyNiwKKwkweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDFjY2IsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MWQ0ZiwKKwkweDEwNzgsIDB4MTk5YSwgMHgwMDc4LCAweDFkNGYsIDB4NzhkNCwgMHhhMDZkLCAweDAwYzAsIDB4MjA2ZiwKKwkweDJjMDAsIDB4NzhkNiwgMHg3OGRhLCAweDYwOWYsIDB4MDAwMCwgMHgwMDc4LCAweDIwN2IsIDB4MmMwMCwKKwkweDY4OWUsIDB4NjA5ZiwgMHgwMDAwLCAweDc4ZDYsIDB4MmQwMCwgMHg2MDAyLCAweDc4ZDgsIDB4YWQwNiwKKwkweDAwYzAsIDB4MjA3YiwgMHg2MDAyLCAweDc4ZDAsIDB4ODAwMSwgMHg3OGQyLCAweDAwYzAsIDB4MjA4NywKKwkweDc4ZGMsIDB4YTA4NCwgMHhmZWZmLCAweDc4ZGUsIDB4NzhkOCwgMHgyMDYwLCAweGEwMDYsIDB4MDA3YywKKwkweGEwMmUsIDB4MjUzMCwgMHg2MTFjLCAweDYxYTIsIDB4YTE4NCwgMHhlMWZmLCAweDYwMWUsIDB4YTE4NCwKKwkweDAwNjAsIDB4MDA0MCwgMHgyMDk3LCAweDBlN2UsIDB4MTA3OCwgMHg0OGQzLCAweDBlN2YsIDB4NjU5NiwKKwkweDY1YTYsIDB4NjY5YSwgMHg2NmFhLCAweDYwYWYsIDB4MDAwMCwgMHg2MGIzLCAweDAwMDAsIDB4NjcxNCwKKwkweDEwNzgsIDB4MTljNSwgMHgyMDkxLCAweDgwMDAsIDB4NjBhMCwgMHhhMDg0LCAweDgwMDAsIDB4MDBjMCwKKwkweDIwYmUsIDB4NjgwOCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwgMHgyMGJlLCAweDIwOTEsIDB4ODAwMSwKKwkweDEwNzgsIDB4MWEzMSwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwgMHgxY2NiLCAweDIwOTEsIDB4ODAwMSwKKwkweDc4ZDcsIDB4MDAwMCwgMHg3OGRiLCAweDAwMDAsIDB4MDA3OCwgMHgyMTMwLCAweDYwMjQsIDB4YTA5NiwKKwkweDAwMDEsIDB4MDBjMCwgMHgyMGM1LCAweDgwMDAsIDB4NjAyNiwgMHg2YTEwLCAweDY4MTQsIDB4MjA5MSwKKwkweDgwMDEsIDB4YTIwMiwgMHgwMDQ4LCAweDIwZDQsIDB4MDA0MCwgMHgyMGQ0LCAweDIwMzksIDB4MDIwMCwKKwkweDEwNzgsIDB4MjEzMSwgMHgwMDc4LCAweDIxMzAsIDB4MmMwOCwgMHgyMDkxLCAweDgwMDAsIDB4NjBhMCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDIxMDEsIDB4NjgwMCwgMHhhMDY1LCAweDAwNDAsIDB4MjEwNiwKKwkweDZhMDQsIDB4MGU3ZSwgMHgyMDcxLCAweDUyNDAsIDB4NzAwMCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwKKwkweDIwZmIsIDB4NzA0OCwgMHhhMjA2LCAweDAwYzAsIDB4MjBmYiwgMHg2YjA0LCAweDIzMWMsIDB4MjE2MCwKKwkweDYzMDIsIDB4MjMwMCwgMHhhMDA1LCAweDAwYzAsIDB4MjBmNiwgMHg2OTAyLCAweDIyNjAsIDB4NjEwMiwKKwkweDBlN2YsIDB4MDA3OCwgMHgyMTBkLCAweDIxNjAsIDB4NjIwMiwgMHg2OTA2LCAweDBlN2YsIDB4MDA3OCwKKwkweDIxMGQsIDB4NjgwMCwgMHhhMDY1LCAweDAwNDAsIDB4MjEwNiwgMHg2MTAyLCAweDY5MDIsIDB4MDBjMCwKKwkweDIxMGEsIDB4NjkwNiwgMHgyMTYwLCAweDYwMDMsIDB4MDAwMCwgMHgyMTYwLCAweDYwYTAsIDB4YTA4NCwKKwkweDgwMDAsIDB4MDA0MCwgMHgyMTE3LCAweDY4MDgsIDB4YTA4NCwgMHhmZmZjLCAweDY4MGEsIDB4NjgxMCwKKwkweDgwMDAsIDB4NjgxMiwgMHgyMDkxLCAweDgwMDEsIDB4NjgwOCwgMHhhMDhjLCAweDAwNDAsIDB4MDA0MCwKKwkweDIxMjYsIDB4YTA4NiwgMHgwMDQwLCAweDY4MGEsIDB4MTA3OCwgMHgxYTQyLCAweDIwOTEsIDB4ODAwMCwKKwkweDEwNzgsIDB4MjI2ZiwgMHgyMDkxLCAweDgwMDEsIDB4NzhkYiwgMHgwMDAwLCAweDc4ZDcsIDB4MDAwMCwKKwkweDAwN2MsIDB4NjAwOCwgMHhhNzA1LCAweDYwMGEsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MWNjYiwKKwkweDIwOTEsIDB4ODAwMSwgMHg3OGQ4LCAweGEwNjUsIDB4MDA0MCwgMHgyMTQ0LCAweDYwOWMsIDB4NzhkYSwKKwkweDYwOWYsIDB4MDAwMCwgMHgwMDc4LCAweDIxMzQsIDB4NzhkNywgMHgwMDAwLCAweDc4ZGIsIDB4MDAwMCwKKwkweDAwN2MsIDB4Nzk5MCwgMHg3ODk0LCAweDgwMDAsIDB4YTEwYSwgMHgwMGM4LCAweDIxNTAsIDB4YTAwNiwKKwkweDc4OTYsIDB4NzBkMiwgMHg3ODA0LCAweGEwMDUsIDB4MDA0MCwgMHgyMTVlLCAweDgwMDEsIDB4NzgwNiwKKwkweDAwYzAsIDB4MjE1ZSwgMHgwMDY4LCAweDIxNWUsIDB4MjA5MSwgMHg0MDgwLCAweDAwN2MsIDB4MjAzOSwKKwkweDIxNzcsIDB4MDA3OCwgMHgyMTY1LCAweDIwMzksIDB4MjE3ZCwgMHgyNzA0LCAweGEwMDUsIDB4MDA0MCwKKwkweDIxNzYsIDB4YWMwMCwgMHgyMDY4LCAweDZiMDgsIDB4NmMwYywgMHg2OTEwLCAweDZhMTQsIDB4NjkwYSwKKwkweDZhMGUsIDB4NmIxMiwgMHg2YzE2LCAweDg3MzgsIDB4MDA3OCwgMHgyMTY1LCAweDAwN2MsIDB4MDAwMywKKwkweDAwMDksIDB4MDAwZiwgMHgwMDE1LCAweDAwMWIsIDB4MDAwMCwgMHgwMDE1LCAweDAwMWIsIDB4MDAwMCwKKwkweDBjN2UsIDB4MTA3OCwgMHgzYzNiLCAweDJjNjgsIDB4MGM3ZiwgMHgwMDdjLCAweDAwMTAsIDB4MjFmNywKKwkweDAwNjgsIDB4MjFmNywgMHgyMDI5LCAweDAwMDAsIDB4NzhjYiwgMHgwMDAwLCAweDc4OGMsIDB4YTA2NSwKKwkweDAwNDAsIDB4MjFmMCwgMHgyMDA5LCAweDUyNzQsIDB4MjEwNCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwKKwkweDIxYmUsIDB4NjAwNCwgMHhhMDg2LCAweDAxMDMsIDB4MDBjMCwgMHgyMWJlLCAweDYwMTgsIDB4YTAwNSwKKwkweDAwYzAsIDB4MjFiZSwgMHg2MDE0LCAweGEwMDUsIDB4MDBjMCwgMHgyMWJlLCAweDBkN2UsIDB4MjA2OSwKKwkweDAwMDAsIDB4NjgxOCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwgMHgyMWJkLCAweDYwMGMsIDB4NzBjNiwKKwkweDYwMTAsIDB4NzBjYSwgMHg3MGMzLCAweDgwMjAsIDB4NjgxYiwgMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwKKwkweDBkN2YsIDB4MTA3OCwgMHgxY2YyLCAweDAwNzgsIDB4MjFmNSwgMHgwZDdmLCAweDEwNzgsIDB4MjFmOCwKKwkweDAwNDAsIDB4MjFmMCwgMHg2MjA0LCAweGEyOTQsIDB4MDBmZiwgMHhhMjk2LCAweDAwMDMsIDB4MDA0MCwKKwkweDIxZDAsIDB4NjIwNCwgMHhhMjk2LCAweDAxMTAsIDB4MDBjMCwgMHgyMWRlLCAweDc4Y2IsIDB4MDAwMSwKKwkweDYyMDQsIDB4YTI5NCwgMHhmZjAwLCAweDgyMTcsIDB4ODIxMSwgMHgwMDQwLCAweDIxZGUsIDB4ODVmZiwKKwkweDAwYzAsIDB4MjFmMCwgMHg4MjEwLCAweGEyMDIsIDB4MDBjOCwgMHgyMWYwLCAweDA1N2UsIDB4MTA3OCwKKwkweDIyMDcsIDB4MDU3ZiwgMHgwMDQwLCAweDIxZWIsIDB4NzhlMCwgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwKKwkweDIxZjAsIDB4MDA3OCwgMHgyMWRlLCAweDg1MjgsIDB4NzhjOCwgMHhhMDA1LCAweDAwNDAsIDB4MjE4ZSwKKwkweDg1ZmYsIDB4MDA0MCwgMHgyMWY3LCAweDIwOTEsIDB4NDA4MCwgMHg3OGIwLCAweDcwZDYsIDB4MDA3YywKKwkweDdiYWMsIDB4NzliMCwgMHg3MGQ0LCAweGExMDIsIDB4MDBjMCwgMHgyMjAxLCAweDIzMDAsIDB4YTAwNSwKKwkweDAwN2MsIDB4MDA0OCwgMHgyMjA1LCAweGEzMDIsIDB4MDA3YywgMHg4MDAyLCAweDAwN2MsIDB4MjAwMSwKKwkweDA0ZmQsIDB4MjAwNCwgMHhhMDgyLCAweDAwMDUsIDB4MDBjOCwgMHgyMjIxLCAweDIwOTEsIDB4ODAwMCwKKwkweDIwNzEsIDB4MDAyMCwgMHg3MDA0LCAweGEwMDUsIDB4MDBjMCwgMHgyMjU2LCAweDcwMDgsIDB4NzIwOCwKKwkweGEyMDYsIDB4MDBjMCwgMHgyMjU2LCAweGEyODYsIDB4MDAwOCwgMHgwMGMwLCAweDIyNTYsIDB4MjA3MSwKKwkweDAwMTAsIDB4MTA3OCwgMHgyMjViLCAweDIwMDksIDB4MDAyMCwgMHg2MDA0LCAweGEwODYsIDB4MDEwMywKKwkweDAwYzAsIDB4MjIzMCwgMHg2MDI4LCAweGEwMDUsIDB4MDBjMCwgMHgyMjMwLCAweDIwMDksIDB4MDAwYywKKwkweDEwNzgsIDB4MTk3NiwgMHgwMDQwLCAweDIyNDksIDB4NzhjNCwgMHg4MDAwLCAweDc4YzYsIDB4YTA4NiwKKwkweDAwMDIsIDB4MDBjMCwgMHgyMjU2LCAweDIwOTEsIDB4ODAwMCwgMHg3OGUzLCAweDAwMDMsIDB4NzhjNywKKwkweDAwMDAsIDB4NzhjYywgMHhhMDg1LCAweDAzMDAsIDB4NzhjZSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwKKwkweDIyNTYsIDB4NzhjNywgMHgwMDAwLCAweDEwNzgsIDB4MWNmMiwgMHg3OWFjLCAweDc4YjAsIDB4ODAwMCwKKwkweGExMGEsIDB4MDBjOCwgMHgyMjU0LCAweGEwMDYsIDB4NzhiMiwgMHhhMDA2LCAweDIwNzEsIDB4MDAxMCwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweDdhYjgsIDB4N2JiNCwKKwkweDdjYzAsIDB4N2RiYywgMHhhMjEwLCAweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwKKwkweDAwMDAsIDB4MDA3YywgMHgyMDA5LCAweDUyNWIsIDB4MjA5MSwgMHg4MDAwLCAweDIwMGEsIDB4MGY3ZSwKKwkweDBlN2UsIDB4MjA3MSwgMHg1MjQwLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAwLCAweDAwYzAsIDB4MjI4OSwKKwkweDIwMDksIDB4NTIxMiwgMHgyMTA0LCAweGEwMDUsIDB4MDBjMCwgMHgyMjg5LCAweDIwNzksIDB4MDEwMCwKKwkweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MjI4OSwgMHgwMDE4LCAweDIyODksIDB4NzgxYiwKKwkweDAwNGIsIDB4MGU3ZiwgMHgwZjdmLCAweDAwN2MsIDB4MGY3ZSwgMHgwZTdlLCAweDIwNzEsIDB4NTI0MCwKKwkweDIwOTEsIDB4ODAwMCwgMHg3MDAwLCAweGEwODYsIDB4MDAwMCwgMHgwMGMwLCAweDIyYTIsIDB4MjA3OSwKKwkweDAxMDAsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgyMmEyLCAweDAwMTgsIDB4MjJhMiwKKwkweDc4MWIsIDB4MDA0ZCwgMHgyMDkxLCAweDgwMDEsIDB4MGU3ZiwgMHgwZjdmLCAweDAwN2MsIDB4MTI3ZSwKKwkweDIwOTEsIDB4MjMwMCwgMHgyMDcxLCAweDUyNDAsIDB4MjA3OSwgMHgwMTAwLCAweDc4NGIsIDB4MDAwZiwKKwkweDAwOTgsIDB4MjJiNSwgMHg3ODM4LCAweDAwNzgsIDB4MjJhZSwgMHgyMGE5LCAweDAwNDAsIDB4NzgwMCwKKwkweGEwODIsIDB4MDAwNCwgMHgwMDQ4LCAweDIyYmUsIDB4MjBhOSwgMHgwMDYwLCAweDc4OWIsIDB4MDAwMCwKKwkweDc4YWYsIDB4MDAwMCwgMHg3OGFmLCAweDAwMDAsIDB4MDA3MCwgMHgyMmM4LCAweDAwNzgsIDB4MjJjMCwKKwkweDc4MDAsIDB4YTA4MiwgMHgwMDA0LCAweDAwNDgsIDB4MjJkNywgMHg3MGI3LCAweDAwOTMsIDB4MjAxOSwKKwkweDRmZjAsIDB4MTA3OCwgMHgyMzEzLCAweDcwMmYsIDB4ODAwMSwgMHgwMDc4LCAweDIyZTMsIDB4NzBiNywKKwkweDAwMDAsIDB4MjAxOSwgMHg0ZTcwLCAweDEwNzgsIDB4MjMxMywgMHgyMDE5LCAweDRlYWYsIDB4MTA3OCwKKwkweDIzMTMsIDB4NzAyZiwgMHg4MDAwLCAweDcwMDMsIDB4MDAwMCwgMHgxMDc4LCAweDI0MjAsIDB4NzAwNCwKKwkweGEwODQsIDB4MDAwZiwgMHgwMTdlLCAweDIwMDksIDB4MDRmZCwgMHgyMTBjLCAweGExOGEsIDB4MDAwNSwKKwkweDAwNDgsIDB4MjJmOCwgMHgwMDM4LCAweDIyZmUsIDB4YTA4NSwgMHg2MjgwLCAweDAwNzgsIDB4MjMwMCwKKwkweDAwMjgsIDB4MjJmZSwgMHhhMDg1LCAweDYyODAsIDB4MDA3OCwgMHgyMzAwLCAweGEwODUsIDB4NjJjMCwKKwkweDAxN2YsIDB4NzgwNiwgMHg3ODBmLCAweGIyMDQsIDB4Nzg0MywgMHgwMGQ4LCAweDc4NTMsIDB4MDA4MCwKKwkweDc4MGIsIDB4MDAwOCwgMHg3MDQ3LCAweDAwMDgsIDB4NzA1MywgMHg1MjdmLCAweDcwNGYsIDB4MDAwMCwKKwkweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDEzN2UsIDB4MTQ3ZSwgMHgxNTdlLCAweDA0N2UsIDB4MjBhMSwKKwkweDAxMmIsIDB4MjMwNCwgMHhhMDA1LCAweDc4OWEsIDB4MDA0MCwgMHgyMzMzLCAweDgzMTgsIDB4MjMyNCwKKwkweDgzMTgsIDB4MjM5OCwgMHgyNGE4LCAweGE0ODQsIDB4ZmYwMCwgMHgwMDQwLCAweDIzMmIsIDB4YTQ4MiwKKwkweDAxMDAsIDB4MjBhOSwgMHgwMTAwLCAweDIwMjAsIDB4NTNhNiwgMHhhMDA1LCAweDAwYzAsIDB4MjMyMiwKKwkweDMzMTgsIDB4MDA3OCwgMHgyMzE5LCAweDA0N2YsIDB4MTU3ZiwgMHgxNDdmLCAweDEzN2YsIDB4MDA3YywKKwkweGExOGMsIDB4MDAwZiwgMHgyMDExLCAweDAxMDEsIDB4MjIwNCwgMHhhMDg0LCAweGZmZjAsIDB4YTEwNSwKKwkweDIwMTIsIDB4MTA3OCwgMHgyNDIwLCAweDAwN2MsIDB4MjAxMSwgMHgwMTAxLCAweDIwYTksIDB4MDAwOSwKKwkweDgxMGIsIDB4MDA3MCwgMHgyMzRkLCAweDAwNzgsIDB4MjM0OCwgMHhhMThjLCAweDBlMDAsIDB4MjIwNCwKKwkweGEwODQsIDB4ZjFmZiwgMHhhMTA1LCAweDIwMTIsIDB4MDA3YywgMHgyMDA5LCAweDAxMDEsIDB4MjBhOSwKKwkweDAwMDUsIDB4ODIxMywgMHgwMDcwLCAweDIzNWUsIDB4MDA3OCwgMHgyMzU5LCAweGEyOTQsIDB4MDBlMCwKKwkweDIxMDQsIDB4YTA4NCwgMHhmZjFmLCAweGEyMDUsIDB4MjAwYSwgMHgwMDdjLCAweDIwMTEsIDB4MDEwMSwKKwkweDIwYTksIDB4MDAwYywgMHg4MTBiLCAweDAwNzAsIDB4MjM2ZiwgMHgwMDc4LCAweDIzNmEsIDB4YTE4YywKKwkweGYwMDAsIDB4MjIwNCwgMHhhMDg0LCAweDBmZmYsIDB4YTEwNSwgMHgyMDEyLCAweDAwN2MsIDB4MjAxMSwKKwkweDAxMDIsIDB4MjIwNCwgMHhhMDg0LCAweGZmY2YsIDB4YTEwNSwgMHgyMDEyLCAweDAwN2MsIDB4ODEwMywKKwkweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDBjN2UsIDB4MjA2MSwgMHgwMTAwLCAweDYwOWEsIDB4NjJhYywKKwkweDYzYWMsIDB4MGM3ZiwgMHgwMDdjLCAweDgxMDMsIDB4ODAwMywgMHhhMDgwLCAweDAwMjIsIDB4MGM3ZSwKKwkweDIwNjEsIDB4MDEwMCwgMHg2MDlhLCAweDYwYTQsIDB4YTA4NCwgMHhmZmRmLCAweDYwYWUsIDB4MGM3ZiwKKwkweDAwN2MsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsIDB4MDAyMiwgMHgwYzdlLCAweDIwNjEsIDB4MDEwMCwKKwkweDYwOWEsIDB4NjBhNCwgMHhhMDg1LCAweDAwMjAsIDB4NjBhZSwgMHgwYzdmLCAweDAwN2MsIDB4ODEwMywKKwkweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDBjN2UsIDB4MjA2MSwgMHgwMTAwLCAweDYwOWEsIDB4NjBhNCwKKwkweDYyYWUsIDB4MjAxMCwgMHg2MGE0LCAweDYzYWUsIDB4MjAxOCwgMHgwYzdmLCAweDAwN2MsIDB4MjA5MSwKKwkweDgwMDAsIDB4MGM3ZSwgMHgwZTdlLCAweDY4MTgsIDB4YTAwNSwgMHgwMDQwLCAweDIzZmUsIDB4MjA2MSwKKwkweDc2MDAsIDB4MTA3OCwgMHgyNDA2LCAweDAwNDAsIDB4MjNlOCwgMHgyMGE5LCAweDAwMDAsIDB4MjA2MSwKKwkweDc1MDAsIDB4MGM3ZSwgMHgxMDc4LCAweDI0MDYsIDB4MDA0MCwgMHgyM2Q2LCAweDBjN2YsIDB4OGM2MCwKKwkweDAwNzAsIDB4MjNkNCwgMHgwMDc4LCAweDIzYzksIDB4MDA3OCwgMHgyM2ZlLCAweDAwN2YsIDB4YTA4MiwKKwkweDc1MDAsIDB4MjA3MSwgMHg1MjQwLCAweDcwODYsIDB4NzE4MiwgMHgyMDAxLCAweDAwMDQsIDB4NzA2ZSwKKwkweDcwOTMsIDB4MDAwZiwgMHg3MDczLCAweDAwMDAsIDB4MTA3OCwgMHgyMjZhLCAweDAwNzgsIDB4MjNmYSwKKwkweDYwYzAsIDB4YTAwNSwgMHgwMGMwLCAweDIzZmUsIDB4MjA3MSwgMHg1MjQwLCAweDcxODIsIDB4MmMwMCwKKwkweDcwOGEsIDB4MjAwMSwgMHgwMDA2LCAweDcwNmUsIDB4NzA5MywgMHgwMDBmLCAweDcwNzMsIDB4MDAwMCwKKwkweDEwNzgsIDB4MjI2YSwgMHgyMDAxLCAweDAwMDAsIDB4MDA3OCwgMHgyNDAwLCAweDIwMDEsIDB4MDAwMSwKKwkweDIwOTEsIDB4ODAwMSwgMHhhMDA1LCAweDBlN2YsIDB4MGM3ZiwgMHgwMDdjLCAweDJjMDQsIDB4YTAwNSwKKwkweDAwNDAsIDB4MjQxZCwgMHgyMDYwLCAweDYwMGMsIDB4YTMwNiwgMHgwMGMwLCAweDI0MWEsIDB4NjAxMCwKKwkweGEyMDYsIDB4MDBjMCwgMHgyNDFhLCAweDYwMTQsIDB4YTEwNiwgMHgwMGMwLCAweDI0MWEsIDB4YTAwNiwKKwkweDAwNzgsIDB4MjQxZiwgMHg2MDAwLCAweDAwNzgsIDB4MjQwNywgMHhhMDg1LCAweDAwMDEsIDB4MDA3YywKKwkweDIwMTEsIDB4NTI0MSwgMHgyMjBjLCAweGExOGMsIDB4MDAwZiwgMHgyMDExLCAweDAxM2IsIDB4MjIwNCwKKwkweGEwODQsIDB4MDEwMCwgMHgwMDQwLCAweDI0MzYsIDB4MjAyMSwgMHhmZjA0LCAweDIxMjIsIDB4ODEwYiwKKwkweDgxMGIsIDB4ODEwYiwgMHg4MTBiLCAweGExOGQsIDB4MGYwMCwgMHgyMTA0LCAweDAwN2MsIDB4MGU3ZSwKKwkweDY4ZTQsIDB4YTA4YywgMHgwMDIwLCAweDAwNDAsIDB4MjQ4YSwgMHhhMDg0LCAweDAwMDYsIDB4MDBjMCwKKwkweDI0OGEsIDB4NjAxNCwgMHg4MDA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKKwkweGEwZjAsIDB4NTQ4MCwgMHg3MDA0LCAweGEwODQsIDB4MDAwYSwgMHgwMGMwLCAweDI0OGEsIDB4NzEwOCwKKwkweGExOTQsIDB4ZmYwMCwgMHgwMDQwLCAweDI0OGEsIDB4YTE4YywgMHgwMGZmLCAweDIwMDEsIDB4MDAwYywKKwkweGExMDYsIDB4MDA0MCwgMHgyNDcxLCAweDIwMDEsIDB4MDAxMiwgMHhhMTA2LCAweDAwNDAsIDB4MjQ3NSwKKwkweDIwMDEsIDB4MDAxNCwgMHhhMTA2LCAweDAwNDAsIDB4MjQ3OSwgMHgyMDAxLCAweDAwMTksIDB4YTEwNiwKKwkweDAwNDAsIDB4MjQ3ZCwgMHgyMDAxLCAweDAwMzIsIDB4YTEwNiwgMHgwMDQwLCAweDI0ODEsIDB4MDA3OCwKKwkweDI0ODUsIDB4MjAwOSwgMHgwMDEyLCAweDAwNzgsIDB4MjQ4NywgMHgyMDA5LCAweDAwMTQsIDB4MDA3OCwKKwkweDI0ODcsIDB4MjAwOSwgMHgwMDE5LCAweDAwNzgsIDB4MjQ4NywgMHgyMDA5LCAweDAwMjAsIDB4MDA3OCwKKwkweDI0ODcsIDB4MjAwOSwgMHgwMDNmLCAweDAwNzgsIDB4MjQ4NywgMHgyMDExLCAweDAwMDAsIDB4MjEwMCwKKwkweGEyMDUsIDB4NzAwYSwgMHgwZTdmLCAweDAwN2MsIDB4MDA2OCwgMHgyNDhjLCAweDIwOTEsIDB4ODAwMCwKKwkweDIwNzEsIDB4MDAwMCwgMHgwMDdlLCAweDcwMTgsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MjQ5MywKKwkweDAwN2YsIDB4MjA3MSwgMHgwMDEwLCAweDcwY2EsIDB4MDA3ZiwgMHg3MGM2LCAweDcwYzMsIDB4ODAwMiwKKwkweDcwZGIsIDB4MDc0MSwgMHg3MGRmLCAweDAwMDYsIDB4MjA3MSwgMHgwMDAwLCAweDcwMWIsIDB4MDAwMSwKKwkweDIwOTEsIDB4NDA4MCwgMHgwMDc4LCAweDI0YWEsIDB4MTA3ZSwgMHgwMDdlLCAweDEyN2UsIDB4MjA5MSwKKwkweDIzMDAsIDB4N2YzYywgMHg3ZTU4LCAweDdjMzAsIDB4N2QzOCwgMHg3N2MyLCAweDc0YzYsIDB4NzZjYSwKKwkweDc1Y2UsIDB4YTU5NCwgMHgwMDNmLCAweGE0OWMsIDB4MDAwMywgMHhhNDg0LCAweDAwMGYsIDB4MDA3OSwKKwkweDI0YzEsIDB4MjRkMywgMHgyNGQzLCAweDI0ZDMsIDB4MjgwZCwgMHgzYTA5LCAweDI0ZDEsIDB4MjUwMiwKKwkweDI1MGMsIDB4MjRkMSwgMHgyNGQxLCAweDI0ZDEsIDB4MjRkMSwgMHgyNGQxLCAweDI0ZDEsIDB4MjRkMSwKKwkweDI0ZDEsIDB4MTA3OCwgMHgyNDhjLCAweDg1MDcsIDB4YTA4NCwgMHgwMDFmLCAweDAwNzksIDB4MjRkOCwKKwkweDI1MTYsIDB4MjgwZCwgMHgyOWM3LCAweDJhYzQsIDB4MmFlYywgMHgyZDhjLCAweDMwMzcsIDB4MzA5YSwKKwkweDMwZmIsIDB4MzE4MCwgMHgzMjM4LCAweDMyZDYsIDB4MjUwMiwgMHgyOGU5LCAweDMwMGMsIDB4MjRmOCwKKwkweDNkYWMsIDB4M2RjYywgMHgzZjhmLCAweDNmOWIsIDB4NDA3NCwgMHgyNGY4LCAweDI0ZjgsIDB4NDE0OSwKKwkweDQxNGQsIDB4M2RhYSwgMHgyNGY4LCAweDNlZmEsIDB4MjRmOCwgMHgzYzVlLCAweDI1MGMsIDB4MjRmOCwKKwkweDEwNzgsIDB4MjQ4YywgMHgwMDE4LCAweDI0YjEsIDB4MTI3ZiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3ZiwKKwkweDEwN2YsIDB4MDA3YywgMHgyMDE5LCAweDRmNDksIDB4MTA3OCwgMHgyMzEzLCAweDcwMmYsIDB4MDAwMSwKKwkweDc4MWIsIDB4MDA0ZiwgMHgwMDc4LCAweDI0ZmEsIDB4MjAxOSwgMHg0ZWFmLCAweDEwNzgsIDB4MjMxMywKKwkweDcwMmYsIDB4ODAwMCwgMHg3ODFiLCAweDAwY2QsIDB4MDA3OCwgMHgyNGZhLCAweDcyNDIsIDB4MjAwOSwKKwkweDUyMGYsIDB4MjAwYiwgMHgwMDAwLCAweGE1ODQsIDB4MDAwMSwgMHgwMGMwLCAweDNjNzIsIDB4MDA0MCwKKwkweDI1MzMsIDB4MTA3OCwgMHgyNDhjLCAweDcwMDMsIDB4MDAwMCwgMHg3MDRiLCAweDAwMDAsIDB4NzA0MywKKwkweDAwMDAsIDB4NzAzNywgMHgwMDAwLCAweDEwNzgsIDB4MzllMCwgMHgwMDE4LCAweDI0YjEsIDB4MjAwOSwKKwkweDUyMGYsIDB4MjAwYiwgMHgwMDAwLCAweDcwNjgsIDB4YTAwNSwgMHgwMGMwLCAweDI1ZmUsIDB4NzA2YywKKwkweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDI1M2MsIDB4MjYzNSwgMHgyNTQ0LCAweDI1NTAsIDB4MjU2ZCwKKwkweDI1OGYsIDB4MjVkYywgMHgyNWI1LCAweDI1NDQsIDB4MTA3OCwgMHgzOWM4LCAweDIwMDksIDB4MDA0OCwKKwkweDEwNzgsIDB4MmVkOCwgMHgwMGMwLCAweDI1NGUsIDB4NzAwMywgMHgwMDA0LCAweDAwNzgsIDB4MjRmYSwKKwkweDEwNzgsIDB4MzljOCwgMHgwMGMwLCAweDI1NmIsIDB4NzA4MCwgMHg4MDA3LCAweDc4ODIsIDB4Nzg5YiwKKwkweDAwMTAsIDB4NzhhYiwgMHgwMDBjLCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDEsIDB4Nzg1YiwKKwkweDAwMDQsIDB4MjAwOSwgMHgwMGRkLCAweDEwNzgsIDB4MmVjYywgMHgwMGMwLCAweDI1NmIsIDB4NzAwMywKKwkweDAwMDQsIDB4NzA5MywgMHgwMDBmLCAweDAwNzgsIDB4MjRmYSwgMHgxMDc4LCAweDM5YzgsIDB4MDBjMCwKKwkweDI1OGQsIDB4NzE4MCwgMHg4MTA3LCAweDc4ODIsIDB4Nzg5YiwgMHgwMDEwLCAweGExOGMsIDB4MDAxZiwKKwkweGExOGQsIDB4MDBjMCwgMHg3OWFhLCAweDc4YWIsIDB4MDAwNiwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDIsIDB4Nzg1YiwgMHgwMDA0LCAweDIwMDksIDB4MDBkZCwgMHgxMDc4LCAweDJlY2MsIDB4MDBjMCwKKwkweDI1OGQsIDB4NzAwMywgMHgwMDA0LCAweDcwOTMsIDB4MDAwZiwgMHgwMDc4LCAweDI0ZmEsIDB4MTA3OCwKKwkweDM5YzgsIDB4MDBjMCwgMHgyNWIzLCAweDcxODAsIDB4ODEwNywgMHg3ODgyLCAweDc4OWIsIDB4MDAxMCwKKwkweGExOGMsIDB4MDAxZiwgMHhhMThkLCAweDAwYzAsIDB4NzlhYSwgMHg3OGFiLCAweDAwMjAsIDB4NzE4NCwKKwkweDc5YWEsIDB4NzhhYiwgMHgwMDBkLCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDQsIDB4Nzg1YiwKKwkweDAwMDQsIDB4MjAwOSwgMHgwMGRkLCAweDEwNzgsIDB4MmVjYywgMHgwMGMwLCAweDI1YjMsIDB4NzAwMywKKwkweDAwMDQsIDB4NzA5MywgMHgwMDBmLCAweDAwNzgsIDB4MjRmYSwgMHgxMDc4LCAweDM5YzgsIDB4MDBjMCwKKwkweDI1ZGEsIDB4NzE4MCwgMHg4MTA3LCAweDc4ODIsIDB4Nzg5YiwgMHgwMDEwLCAweGExOGMsIDB4MDAxZiwKKwkweGExOGQsIDB4MDBjMCwgMHg3OWFhLCAweDc4YWIsIDB4MDAwNiwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDIsIDB4Nzg1YiwgMHgwMDA0LCAweDIwMDksIDB4MDBkZCwgMHgxMDc4LCAweDJlY2MsIDB4MDBjMCwKKwkweDI1ZGEsIDB4NzA4OCwgMHg3MDhiLCAweDAwMDAsIDB4MjA2OCwgMHg3MDRhLCAweDcwMDMsIDB4MDAwMiwKKwkweDcwOTMsIDB4MDAwZiwgMHgwMDc4LCAweDI0ZmEsIDB4MTA3OCwgMHgzOWM4LCAweDAwYzAsIDB4MjRmYSwKKwkweDcwODgsIDB4MjA2OCwgMHg2ZjE0LCAweDEwNzgsIDB4MzhiZCwgMHgyYzUwLCAweDEwNzgsIDB4M2E3YSwKKwkweDc4OWIsIDB4MDAxMCwgMHg2ODE0LCAweGEwODQsIDB4MDAxZiwgMHhhMDg1LCAweDAwODAsIDB4NzhhYSwKKwkweDZlMWMsIDB4MjA0MSwgMHgwMDAxLCAweDcwOGMsIDB4YTA4NCwgMHgwNDAwLCAweDIwMDEsIDB4MDAwNCwKKwkweDAwNDAsIDB4MjVmYywgMHgyMDAxLCAweDAwMDYsIDB4MDA3OCwgMHgyNzFkLCAweDEwNzgsIDB4MzljOCwKKwkweDAwYzAsIDB4MjRmYSwgMHg3ODliLCAweDAwMTAsIDB4NzA2OCwgMHgyMDY4LCAweDZmMTQsIDB4MTA3OCwKKwkweDM4YmQsIDB4MmM1MCwgMHgxMDc4LCAweDNhN2EsIDB4NjAwOCwgMHhhMDg1LCAweDAwMTAsIDB4NjAwYSwKKwkweDY4MjQsIDB4YTAwNSwgMHgwMDQwLCAweDI2MWMsIDB4YTA4MiwgMHgwMDA2LCAweDAwNDgsIDB4MjYxYSwKKwkweDAwNzgsIDB4MjYxYywgMHg2ODI3LCAweDAwMDUsIDB4NmIxNCwgMHhhMzljLCAweDAwMWYsIDB4YTM5ZCwKKwkweDAwYzAsIDB4NzA1OCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyNjJhLCAweGE2ODQsIDB4MDAwMSwKKwkweDAwNDAsIDB4MjYyYywgMHhhMzljLCAweGZmYmYsIDB4N2JhYSwgMHgyMDMxLCAweDAwMjAsIDB4MjA0MSwKKwkweDAwMDEsIDB4MjAwMSwgMHgwMDAzLCAweDAwNzgsIDB4MjcxZCwgMHgwMDE4LCAweDI0YjEsIDB4NzQ0YywKKwkweGE0ODUsIDB4MDAwMCwgMHgwMDQwLCAweDI2NGYsIDB4YTA4MCwgMHg1MjgwLCAweDIwMzAsIDB4NzE1MCwKKwkweDgxMDgsIDB4YTEyYSwgMHgwMDQ4LCAweDI2NDYsIDB4MjAwOSwgMHg1MjgwLCAweDIxNjQsIDB4NjUwNCwKKwkweDg1ZmYsIDB4MDBjMCwgMHgyNjYwLCAweDg0MjEsIDB4MDBjMCwgMHgyNjQwLCAweDcxNTIsIDB4NzAwMywKKwkweDAwMDAsIDB4NzA0YiwgMHgwMDAwLCAweDcwNDAsIDB4YTAwNSwgMHgwMDQwLCAweDNjNzIsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzY0YywgMHhhNmIwLCAweDUyODAsIDB4NzE1MCwgMHgyNjAwLCAweDAwNzgsIDB4MjY0YiwKKwkweDcxNTIsIDB4MjU2OCwgMHgyNTU4LCAweDc1NGEsIDB4MmM1MCwgMHg2MDM0LCAweGEwODUsIDB4MDAwMCwKKwkweDAwYzAsIDB4MjY1ZCwgMHg2NzA4LCAweDc3M2EsIDB4YTc4NCwgMHgwMzNmLCAweDAwNDAsIDB4MjY5NiwKKwkweGE3ODQsIDB4MDAyMSwgMHgwMGMwLCAweDI2NWQsIDB4YTc4NCwgMHgwMDAyLCAweDAwNDAsIDB4MjY3ZiwKKwkweGE3ODQsIDB4MDAwNCwgMHgwMDQwLCAweDI2NWQsIDB4YTdiYywgMHhmZmZiLCAweDY3MGEsIDB4YTc4NCwKKwkweDAwMDgsIDB4MDBjMCwgMHgyNjVkLCAweGE3ODQsIDB4MDAxMCwgMHgwMGMwLCAweDI2NWQsIDB4YTc4NCwKKwkweDAyMDAsIDB4MDBjMCwgMHgyNjVkLCAweGE3ODQsIDB4MDEwMCwgMHgwMDQwLCAweDI2OTYsIDB4NjAxOCwKKwkweGEwMDUsIDB4MDBjMCwgMHgyNjVkLCAweGE3YmMsIDB4ZmVmZiwgMHg2NzBhLCAweDY4MjMsIDB4MDAwMCwKKwkweDZlMWMsIDB4YTY4NCwgMHgwMDBlLCAweDYxMTgsIDB4MDA0MCwgMHgyNmE2LCAweDYwMWMsIDB4YTEwMiwKKwkweDAwNDgsIDB4MjZhOSwgMHgwMDQwLCAweDI2YTksIDB4MDA3OCwgMHgyNjU5LCAweDgxZmYsIDB4MDBjMCwKKwkweDI2NTksIDB4NjhjMywgMHgwMDAwLCAweGE3ODQsIDB4MDA4MCwgMHgwMGMwLCAweDI2YjEsIDB4NzAwYywKKwkweDYwMjIsIDB4YTdiYywgMHhmZjdmLCAweDY3MGEsIDB4MTA3OCwgMHgzYTdhLCAweDAwMTgsIDB4MjRiMSwKKwkweDc4OWIsIDB4MDAxMCwgMHhhMDQ2LCAweDEwNzgsIDB4MzljOCwgMHgwMGMwLCAweDI0ZmEsIDB4NmIxNCwKKwkweGEzOWMsIDB4MDAxZiwgMHhhMzlkLCAweDAwYzAsIDB4NzA1OCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKKwkweDI2Y2QsIDB4YTY4NCwgMHgwMDAxLCAweDAwNDAsIDB4MjZjZiwgMHhhMzljLCAweGZmYmYsIDB4YTY4NCwKKwkweDAwMTAsIDB4MDA0MCwgMHgyNmQ1LCAweGEzOWQsIDB4MDAyMCwgMHg3YmFhLCAweDg4NDAsIDB4YTY4NCwKKwkweDAwMGUsIDB4MDBjMCwgMHgyNmUwLCAweGE3YmQsIDB4MDAxMCwgMHg2NzBhLCAweDAwNzgsIDB4MjcxYiwKKwkweDcxNTgsIDB4YTE4YywgMHgwODAwLCAweDAwNDAsIDB4MzRjYiwgMHgyMDExLCAweDAwMjAsIDB4YTY4NCwKKwkweDAwMDgsIDB4MDBjMCwgMHgyNmYxLCAweDgyMTAsIDB4YTY4NCwgMHgwMDAyLCAweDAwYzAsIDB4MjZmMSwKKwkweDgyMTAsIDB4N2FhYSwgMHg4ODQwLCAweDEwNzgsIDB4MzllMCwgMHg2YTE0LCAweDYxMGMsIDB4ODEwOCwKKwkweGExOGMsIDB4MDBmZiwgMHhhMWUwLCAweDc1MDAsIDB4MmM2NCwgMHg4Y2ZmLCAweDAwNDAsIDB4MjcxMiwKKwkweDYwMTQsIDB4YTIwNiwgMHgwMGMwLCAweDI2ZmMsIDB4NjBiOCwgMHg4MDAxLCAweDYwYmEsIDB4MDBjMCwKKwkweDI2ZjcsIDB4MGM3ZSwgMHgyYTYwLCAweDYwMDgsIDB4YTA4NSwgMHgwMTAwLCAweDYwMGEsIDB4MGM3ZiwKKwkweDAwNzgsIDB4MjYzNSwgMHgxMDc4LCAweDM5YzgsIDB4MDBjMCwgMHgyNGZhLCAweDJhNjAsIDB4NjEwZSwKKwkweDc5YWEsIDB4ODg0MCwgMHg3MTMyLCAweDIwMDEsIDB4MDAwMSwgMHgwMDdlLCAweDcxNWMsIDB4YTE4NCwKKwkweDAwMTgsIDB4MDA0MCwgMHgyNzM4LCAweGExODQsIDB4MDAxMCwgMHgwMDQwLCAweDI3MmIsIDB4MTA3OCwKKwkweDM2ZDAsIDB4MDBjMCwgMHgyNzViLCAweGExODQsIDB4MDAwOCwgMHgwMDQwLCAweDI3MzgsIDB4NjlhMCwKKwkweGExODQsIDB4MDYwMCwgMHgwMGMwLCAweDI3MzgsIDB4MTA3OCwgMHgzNWJiLCAweDAwNzgsIDB4Mjc1YiwKKwkweDY5YTAsIDB4YTE4NCwgMHgwODAwLCAweDAwNDAsIDB4Mjc0ZiwgMHgwYzdlLCAweDAyN2UsIDB4Mjk2MCwKKwkweDYwMDAsIDB4YTA4NSwgMHgyMDAwLCAweDYwMDIsIDB4NjEwNCwgMHhhMThkLCAweDAwMTAsIDB4NjEwNiwKKwkweDAyN2YsIDB4MGM3ZiwgMHgxMDc4LCAweDM2ZDAsIDB4MDBjMCwgMHgyNzViLCAweDY5YTAsIDB4YTE4NCwKKwkweDAyMDAsIDB4MDA0MCwgMHgyNzU3LCAweDEwNzgsIDB4MzYwYywgMHgwMDc4LCAweDI3NWIsIDB4YTE4NCwKKwkweDA0MDAsIDB4MDBjMCwgMHgyNzM0LCAweDY5YTAsIDB4YTE4NCwgMHgxMDAwLCAweDAwNDAsIDB4Mjc2NiwKKwkweDY5MTQsIDB4YTE4YywgMHhmZjAwLCAweDgxMGYsIDB4MTA3OCwgMHgyMzhiLCAweDAwN2YsIDB4NzAwMiwKKwkweGE2OGMsIDB4MDBlMCwgMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwgMHgyNzc0LCAweGEwODYsIDB4MDA2MCwKKwkweDAwYzAsIDB4Mjc3NCwgMHhhMThkLCAweDQwMDAsIDB4ODhmZiwgMHgwMDQwLCAweDI3NzksIDB4YTE4ZCwKKwkweDAwMDQsIDB4Nzk1YSwgMHg2OWI2LCAweDc4OWIsIDB4MDA2MCwgMHgyODAwLCAweDc4YWEsIDB4Nzg5YiwKKwkweDAwNjEsIDB4NjgxOCwgMHhhMDhkLCAweDgwMDAsIDB4YTA4NCwgMHg3ZmZmLCAweDY5MWEsIDB4YTY4YywKKwkweDAwODAsIDB4MDA0MCwgMHgyNzk4LCAweDcwOTcsIDB4MDAwMCwgMHhhMDhhLCAweDAwMGQsIDB4MDA1MCwKKwkweDI3OTYsIDB4YTA4YSwgMHgwMDBjLCAweDcxOTYsIDB4MjAwMSwgMHgwMDBjLCAweDgwMGMsIDB4NzE5YSwKKwkweDc4YWEsIDB4ODAwOCwgMHg4MTBjLCAweDAwNDAsIDB4MzRkMSwgMHhhMThjLCAweDAwZjgsIDB4MDBjMCwKKwkweDM0ZDEsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4MjBhMSwgMHgwMTJiLCAweDc4OWIsIDB4MDAwMCwKKwkweDgwMDAsIDB4ODBhYywgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDE0N2YsIDB4MTM3ZiwKKwkweDE1N2YsIDB4NjgxNCwgMHg4MDA3LCAweDc4ODIsIDB4NmQ5NCwgMHg3ZGQ2LCAweDdkZGUsIDB4NmU5OCwKKwkweDdlZDIsIDB4N2VkYSwgMHgxMDc4LCAweDM5YzgsIDB4MDBjMCwgMHgyN2NmLCAweDcwMmMsIDB4ODAwMywKKwkweDAwNDgsIDB4MjdjOCwgMHgyMDE5LCAweDRlYWYsIDB4MTA3OCwgMHgyMzEzLCAweDcwMmYsIDB4ODAwMCwKKwkweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MjdjZiwgMHgwMDk4LCAweDI3ZDcsIDB4NjAwOCwKKwkweGEwODQsIDB4ZmZlZiwgMHg2MDBhLCAweDEwNzgsIDB4MzllMCwgMHgwMDc4LCAweDI1MjMsIDB4NzIwMCwKKwkweGEyODQsIDB4MDAwNywgMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwgMHgyN2U0LCAweDc4MWIsIDB4MDA0ZiwKKwkweDEwNzgsIDB4MzllMCwgMHgwMDc4LCAweDI3ZjUsIDB4NmFiNCwgMHhhMjk1LCAweDIwMDAsIDB4N2E1YSwKKwkweDc4MWIsIDB4MDA0ZiwgMHgxMDc4LCAweDM5ZTAsIDB4NzIwMCwgMHgyNTAwLCAweGE2MDUsIDB4MDA0MCwKKwkweDI3ZjUsIDB4YTI4NCwgMHgwMDA3LCAweDEwNzksIDB4MjgwMywgMHhhZDgwLCAweDAwMDksIDB4NzAzNiwKKwkweGEyODQsIDB4MDAwNywgMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwgMHgyNGZhLCAweDYwMTgsIDB4ODAwMCwKKwkweDYwMWEsIDB4MDA3OCwgMHgyNGZhLCAweDI4MGIsIDB4NGI0YiwgMHg0YjRiLCAweDRiM2EsIDB4NGI0YiwKKwkweDI4MGIsIDB4NGIzYSwgMHgyODBiLCAweDEwNzgsIDB4MjQ4YywgMHgxMDc4LCAweDM5YzgsIDB4MGY3ZSwKKwkweDIwNzksIDB4NTIwMCwgMHg3OGNjLCAweDBmN2YsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4MjgzMSwKKwkweDcwNmMsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsIDB4MjgyMCwgMHg3MDZlLCAweDAwNzgsIDB4MjhjNCwKKwkweDcwNmMsIDB4YTA4NiwgMHgwMDA1LCAweDAwYzAsIDB4MjgyZiwgMHg3MDg4LCAweDIwNjgsIDB4NjgxYiwKKwkweDAwMDQsIDB4NjgxNywgMHgwMDAwLCAweDY4MjAsIDB4YTA4NSwgMHgwMDA4LCAweDY4MjIsIDB4NzA2ZiwKKwkweDAwMDAsIDB4MjAxMSwgMHgwMDA0LCAweDcxNmMsIDB4YTE4NiwgMHgwMDAxLCAweDAwNDAsIDB4Mjg1MiwKKwkweGExODYsIDB4MDAwNywgMHgwMGMwLCAweDI4NDIsIDB4MjAwOSwgMHg1MjM4LCAweDIwMGIsIDB4MDAwNSwKKwkweDAwNzgsIDB4Mjg1MiwgMHgyMDA5LCAweDUyMTMsIDB4MjEwNCwgMHgyMDA5LCAweDUyMTIsIDB4MjAwYSwKKwkweDIwMDksIDB4NTIzOCwgMHgyMDBiLCAweDAwMDEsIDB4NzA2ZiwgMHgwMDAwLCAweDcwNzMsIDB4MDAwMSwKKwkweDAwNzgsIDB4Mjg1NCwgMHg3MDZmLCAweDAwMDAsIDB4MTA3OCwgMHg0ODg3LCAweDE1N2UsIDB4MjBhOSwKKwkweDAwMTAsIDB4MjAzOSwgMHgwMDAwLCAweDEwNzgsIDB4MzdiMCwgMHhhN2I4LCAweDAxMDAsIDB4MDA3MCwKKwkweDI4NjMsIDB4MDA3OCwgMHgyODViLCAweDE1N2YsIDB4NzAwMCwgMHgwMDc5LCAweDI4NjcsIDB4Mjg5NSwKKwkweDI4N2MsIDB4Mjg3YywgMHgyODZmLCAweDI4OTUsIDB4Mjg5NSwgMHgyODk1LCAweDI4OTUsIDB4MjAyMSwKKwkweDUyNWEsIDB4MjQwNCwgMHhhMDA1LCAweDAwNDAsIDB4Mjg5NSwgMHhhZDA2LCAweDAwYzAsIDB4Mjg3YywKKwkweDY4MDAsIDB4MjAyMiwgMHgwMDc4LCAweDI4OGMsIDB4NjgyMCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwKKwkweDI4ODgsIDB4NmYxNCwgMHgxMDc4LCAweDM4YmQsIDB4MTA3OCwgMHgzNGEyLCAweDAwNzgsIDB4Mjg4YywKKwkweDcwNjAsIDB4MjA2MCwgMHg2ODAwLCAweDYwMDIsIDB4NmExYSwgMHg2ODE3LCAweDAwMDAsIDB4NjgyMCwKKwkweGEwODUsIDB4MDAwOCwgMHg2ODIyLCAweDEwNzgsIDB4MWNkYywgMHgyMDIxLCAweDc2MDAsIDB4MTA3OCwKKwkweDI4ZDEsIDB4MjAyMSwgMHg1MjVhLCAweDEwNzgsIDB4MjhkMSwgMHgxNTdlLCAweDIwYTksIDB4MDAwMCwKKwkweDIwMjEsIDB4NzUwMCwgMHgxMDc4LCAweDI4ZDEsIDB4ODQyMCwgMHgwMDcwLCAweDI4YTksIDB4MDA3OCwKKwkweDI4YTIsIDB4MjA2MSwgMHg1NTAwLCAweDIwMjEsIDB4MDAwMiwgMHgyMGE5LCAweDAxMDAsIDB4NjAxOCwKKwkweDYxMTAsIDB4ODFmZiwgMHgwMDQwLCAweDI4YjgsIDB4YTEwMiwgMHgwMDUwLCAweDI4YjgsIDB4NjAxMiwKKwkweDYwMWIsIDB4MDAwMCwgMHhhY2UwLCAweDAwMTAsIDB4MDA3MCwgMHgyOGMwLCAweDAwNzgsIDB4MjhhZiwKKwkweDg0MjEsIDB4MDBjMCwgMHgyOGFkLCAweDE1N2YsIDB4NzA5YywgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKKwkweDI4Y2IsIDB4MTA3OCwgMHgzYWNlLCAweDcwMDMsIDB4MDAwMCwgMHg3MDRiLCAweDAwMDAsIDB4MDA3OCwKKwkweDI0ZmEsIDB4MDQ3ZSwgMHgyNDA0LCAweGEwMDUsIDB4MDA0MCwgMHgyOGU1LCAweDIwNjgsIDB4NjgwMCwKKwkweDAwN2UsIDB4NmExYSwgMHg2ODE3LCAweDAwMDAsIDB4NjgyMCwgMHhhMDg1LCAweDAwMDgsIDB4NjgyMiwKKwkweDEwNzgsIDB4MWNkYywgMHgwMDdmLCAweDAwNzgsIDB4MjhkMywgMHgwNDdmLCAweDIwMjMsIDB4MDAwMCwKKwkweDAwN2MsIDB4YTI4MiwgMHgwMDAzLCAweDAwNTAsIDB4MjhlZiwgMHgxMDc4LCAweDI0OGMsIDB4MjMwMCwKKwkweDAwNzksIDB4MjhmMiwgMHgyOGY1LCAweDI5NjgsIDB4Mjk4NSwgMHhhMjgyLCAweDAwMDIsIDB4MDA0MCwKKwkweDI4ZmIsIDB4MTA3OCwgMHgyNDhjLCAweDcwNmMsIDB4NzA2ZiwgMHgwMDAwLCAweDcwOTMsIDB4MDAwMCwKKwkweDAwNzksIDB4MjkwMiwgMHgyOTBhLCAweDI5MGEsIDB4MjkwYywgMHgyOTQwLCAweDM0ZDcsIDB4MjkwYSwKKwkweDI5NDAsIDB4MjkwYSwgMHgxMDc4LCAweDI0OGMsIDB4Nzc4MCwgMHgxMDc4LCAweDM3YjAsIDB4Nzc4MCwKKwkweGE3YmMsIDB4MGYwMCwgMHgxMDc4LCAweDM4YmQsIDB4NjAxOCwgMHhhMDA1LCAweDAwNDAsIDB4MjkzNywKKwkweDIwMjEsIDB4NzYwMCwgMHgyMDA5LCAweDAwMDQsIDB4MjAxMSwgMHgwMDEwLCAweDEwNzgsIDB4MjlhMCwKKwkweDAwNDAsIDB4MjkzNywgMHgxNTdlLCAweDIwYTksIDB4MDAwMCwgMHgyMDIxLCAweDc1MDAsIDB4MDQ3ZSwKKwkweDIwMDksIDB4MDAwNCwgMHgyMDExLCAweDAwMTAsIDB4MTA3OCwgMHgyOWEwLCAweDA0N2YsIDB4MDA0MCwKKwkweDI5MzYsIDB4ODQyMCwgMHgwMDcwLCAweDI5MzYsIDB4MDA3OCwgMHgyOTI3LCAweDE1N2YsIDB4ODczOCwKKwkweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDI5MTIsIDB4MDA3OCwgMHgyNTIzLCAweDAwNzgsIDB4MjUyMywKKwkweDc3ODAsIDB4MTA3OCwgMHgzOGJkLCAweDYwMTgsIDB4YTAwNSwgMHgwMDQwLCAweDI5NjYsIDB4MjAyMSwKKwkweDc2MDAsIDB4MjAwOSwgMHgwMDA1LCAweDIwMTEsIDB4MDAyMCwgMHgxMDc4LCAweDI5YTAsIDB4MDA0MCwKKwkweDI5NjYsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMDAsIDB4MjAyMSwgMHg3NTAwLCAweDA0N2UsIDB4MjAwOSwKKwkweDAwMDUsIDB4MjAxMSwgMHgwMDIwLCAweDEwNzgsIDB4MjlhMCwgMHgwNDdmLCAweDAwNDAsIDB4Mjk2NSwKKwkweDg0MjAsIDB4MDA3MCwgMHgyOTY1LCAweDAwNzgsIDB4Mjk1NiwgMHgxNTdmLCAweDAwNzgsIDB4MjUyMywKKwkweDIyMDAsIDB4MDA3OSwgMHgyOTZiLCAweDI5NmUsIDB4Mjk3MCwgMHgyOTcwLCAweDEwNzgsIDB4MjQ4YywKKwkweDIwMDksIDB4MDAxMiwgMHg3MDZjLCAweGEwODYsIDB4MDAwMiwgMHgwMDQwLCAweDI5NzksIDB4MjAwOSwKKwkweDAwMGUsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyOTdmLCAweDY5MWEsIDB4NzA2ZiwKKwkweDAwMDAsIDB4NzA3MywgMHgwMDAxLCAweDAwNzgsIDB4Mzk1NiwgMHgyMjAwLCAweDAwNzksIDB4Mjk4OCwKKwkweDI5OGQsIDB4Mjk3MCwgMHgyOThiLCAweDEwNzgsIDB4MjQ4YywgMHgxMDc4LCAweDQ4ODcsIDB4NzAwMCwKKwkweGEwODYsIDB4MDAwMSwgMHgwMGMwLCAweDM0NjcsIDB4MTA3OCwgMHgzNGI4LCAweDYwMDgsIDB4YTA4NCwKKwkweGZmZWYsIDB4NjAwYSwgMHgxMDc4LCAweDM0NWEsIDB4MDA0MCwgMHgzNDY3LCAweDAwNzgsIDB4MjYzNSwKKwkweDI0MDQsIDB4YTAwNSwgMHgwMDQwLCAweDI5YzMsIDB4MjA2OCwgMHgyZDA0LCAweDAwN2UsIDB4NjgxNCwKKwkweGE3MDYsIDB4MDA0MCwgMHgyOWFmLCAweDJkMjAsIDB4MDA3ZiwgMHgwMDc4LCAweDI5YTEsIDB4MDA3ZiwKKwkweDIwMjIsIDB4NjkxYSwgMHg2ODE3LCAweDAwMDAsIDB4NjgyMCwgMHhhMjA1LCAweDY4MjIsIDB4MTA3OCwKKwkweDFjZGMsIDB4NjAxMCwgMHg4MDAxLCAweDYwMTIsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwKKwkweDEwNzgsIDB4MzRiOCwgMHgwMDdjLCAweGEwODUsIDB4MDAwMSwgMHgwMDc4LCAweDI5YzIsIDB4MjMwMCwKKwkweDAwNzksIDB4MjljYSwgMHgyOWNmLCAweDI5Y2QsIDB4MmE2OCwgMHgxMDc4LCAweDI0OGMsIDB4NzhlYywKKwkweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDI5ZTMsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDQsIDB4MDBjMCwKKwkweDI5ZGIsIDB4MDA3OCwgMHgyYTA2LCAweDEwNzgsIDB4MzRiOCwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwKKwkweDYwMGEsIDB4MDA3OCwgMHgzNDY3LCAweDc4ZTQsIDB4YTAwNSwgMHgwMGQwLCAweDJhMDYsIDB4MDAxOCwKKwkweDI0ZmEsIDB4MjAwOCwgMHhhMDg0LCAweDAwMzAsIDB4MDBjMCwgMHgyOWYyLCAweDc4MWIsIDB4MDA0ZiwKKwkweDAwNzgsIDB4MjRmYSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDI5ZWUsIDB4MjEwMCwKKwkweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDI5ZmMsIDB4MmEzZiwgMHgyYTRhLCAweDJhMzAsIDB4MmEwNCwKKwkweDM5YmIsIDB4MzliYiwgMHgyYTA0LCAweDJhNTksIDB4MTA3OCwgMHgyNDhjLCAweDcwMDAsIDB4YTA4NiwKKwkweDAwMDQsIDB4MDBjMCwgMHgyYTIwLCAweDcwNmMsIDB4YTA4NiwgMHgwMDAyLCAweDAwYzAsIDB4MmExNiwKKwkweDIwMTEsIDB4MDAwMiwgMHgyMDE5LCAweDAwMDAsIDB4MDA3OCwgMHgyOGU5LCAweDcwNmMsIDB4YTA4NiwKKwkweDAwMDYsIDB4MDA0MCwgMHgyYTEwLCAweDcwNmMsIDB4YTA4NiwgMHgwMDA0LCAweDAwNDAsIDB4MmExMCwKKwkweDc5ZTQsIDB4YTE4NCwgMHgwMDMwLCAweDAwNDAsIDB4MmEyYSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDAwYzAsIDB4MmEyYywgMHgwMDc4LCAweDMwMGMsIDB4MjAwMSwgMHgwMDAzLCAweDAwNzgsIDB4MmRhMCwKKwkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MmEzNywgMHg2ODFiLCAweDAwMWQsIDB4MTA3OCwKKwkweDM3OGYsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0ZmEsIDB4NjgxOCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDJhNDYsIDB4NjgxYiwgMHgwMDFkLCAweDEwNzgsIDB4Mzc4ZiwKKwkweDAwNzgsIDB4Mzk4NiwgMHg2ODE4LCAweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDJhNTEsIDB4NjgxYiwKKwkweDAwMWQsIDB4MTA3OCwgMHgzNzhmLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwY2EsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyYTYwLCAweDY4MWIsIDB4MDAxZCwKKwkweDEwNzgsIDB4Mzc4ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDhmLCAweDAwNzgsIDB4MjRmYSwKKwkweGE1ODQsIDB4MDAwZiwgMHgwMGMwLCAweDJhODUsIDB4NzAwMCwgMHgwMDc5LCAweDJhNmYsIDB4MjUyMywKKwkweDJhNzksIDB4MmE3NywgMHgzNDY3LCAweDM0NjcsIDB4MzQ2NywgMHgzNDY3LCAweDJhNzcsIDB4MTA3OCwKKwkweDI0OGMsIDB4MTA3OCwgMHgzNGI4LCAweDYwMDgsIDB4YTA4NCwgMHhmZmVmLCAweDYwMGEsIDB4MTA3OCwKKwkweDM0NWEsIDB4MDA0MCwgMHgzNDY3LCAweDAwNzgsIDB4MjYzNSwgMHg3OGU0LCAweGEwMDUsIDB4MDBkMCwKKwkweDJhMDYsIDB4MDAxOCwgMHgyYTA2LCAweDIwMDgsIDB4YTA4NCwgMHgwMDMwLCAweDAwYzAsIDB4MmE5NCwKKwkweDc4MWIsIDB4MDA0ZiwgMHgwMDc4LCAweDI0ZmEsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwKKwkweDJhOTAsIDB4MjEwMCwgMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwgMHgyYTllLCAweDJhYjAsIDB4MmFiNCwKKwkweDJhYTgsIDB4MmFhNiwgMHgzOWJiLCAweDM5YmIsIDB4MmFhNiwgMHgzOWIxLCAweDEwNzgsIDB4MjQ4YywKKwkweDEwNzgsIDB4Mzc5NywgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDU2LCAweDAwNzgsIDB4MjRmYSwKKwkweDEwNzgsIDB4Mzc5NywgMHgwMDc4LCAweDM5ODYsIDB4MTA3OCwgMHgzNzk3LCAweDc4MmIsIDB4MzAwOCwKKwkweDc4MWIsIDB4MDBjYSwgMHgwMDc4LCAweDI0ZmEsIDB4MTA3OCwgMHgzNzk3LCAweDc4MmIsIDB4MzAwOCwKKwkweDc4MWIsIDB4MDA4ZiwgMHgwMDc4LCAweDI0ZmEsIDB4MjMwMCwgMHgwMDc5LCAweDJhYzcsIDB4MmFjYywKKwkweDJhY2EsIDB4MmFjZSwgMHgxMDc4LCAweDI0OGMsIDB4MDA3OCwgMHgzMTgwLCAweDY4MWIsIDB4MDAwOCwKKwkweDc4YTMsIDB4MDAwMCwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDMxODAsIDB4NzhlYywKKwkweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDMxODAsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksIDB4MmFlMCwKKwkweDJhZTgsIDB4MmFiNCwgMHgyYTMwLCAweDM5NTYsIDB4MzliYiwgMHgzOWJiLCAweDJhZTgsIDB4MzliMSwKKwkweDEwNzgsIDB4Mzk2YSwgMHgwMDc4LCAweDI0ZmEsIDB4YTI4MiwgMHgwMDA1LCAweDAwNTAsIDB4MmFmMiwKKwkweDEwNzgsIDB4MjQ4YywgMHgyMzAwLCAweDAwNzksIDB4MmFmNSwgMHgyYWY4LCAweDJkNGQsIDB4MmQ1YiwKKwkweDIyMDAsIDB4MDA3OSwgMHgyYWZiLCAweDJiMTUsIDB4MmIwMiwgMHgyYjE1LCAweDJiMDAsIDB4MmQzMiwKKwkweDEwNzgsIDB4MjQ4YywgMHg3ODliLCAweDAwMTgsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4MiwKKwkweDAwMjAsIDB4MDA0OCwgMHgzNzZiLCAweGEwOGEsIDB4MDAwNCwgMHgwMGM4LCAweDM3NmIsIDB4MDA3OSwKKwkweDJiMTEsIDB4Mzc2YiwgMHgzNzZiLCAweDM3NmIsIDB4MzcxOSwgMHg3ODliLCAweDAwMTgsIDB4NzlhOCwKKwkweGExODQsIDB4MDA4MCwgMHgwMDQwLCAweDJiMjYsIDB4MDA3OCwgMHgzNzZiLCAweDcwMDAsIDB4YTAwNSwKKwkweDAwYzAsIDB4MmIxYywgMHgyMDExLCAweDAwMDQsIDB4MDA3OCwgMHgzMmU5LCAweGExODQsIDB4MDBmZiwKKwkweGEwOGEsIDB4MDAxMCwgMHgwMGM4LCAweDM3NmIsIDB4MDA3OSwgMHgyYjJlLCAweDJiNDAsIDB4MmIzZSwKKwkweDJiNTgsIDB4MmI1YywgMHgyYzE3LCAweDM3NmIsIDB4Mzc2YiwgMHgyYzE5LCAweDM3NmIsIDB4Mzc2YiwKKwkweDJkMmUsIDB4MmQyZSwgMHgzNzZiLCAweDM3NmIsIDB4Mzc2YiwgMHgyZDMwLCAweDEwNzgsIDB4MjQ4YywKKwkweGE2ODQsIDB4MTAwMCwgMHgwMDQwLCAweDJiNGQsIDB4MjAwMSwgMHgwNTAwLCAweDgwMDAsIDB4ODAwMCwKKwkweDc4M2EsIDB4NzgxYiwgMHgwMDhkLCAweDAwNzgsIDB4MjRmYSwgMHg2ODE4LCAweGEwODQsIDB4ODAwMCwKKwkweDAwNDAsIDB4MmI1NiwgMHg2ODFiLCAweDAwMWQsIDB4MDA3OCwgMHgyYjQ0LCAweDAwNzgsIDB4Mzk1NiwKKwkweDY4MWIsIDB4MDAxZCwgMHgwMDc4LCAweDM3N2IsIDB4NjkyMCwgMHg2OTIyLCAweGE2ODQsIDB4MTgwMCwKKwkweDAwYzAsIDB4MmI5ZCwgMHg2ODIwLCAweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDJiYTUsIDB4NjgxOCwKKwkweGEwODYsIDB4MDAwOCwgMHgwMGMwLCAweDJiNmUsIDB4NjgxYiwgMHgwMDAwLCAweGE2ODQsIDB4MDQwMCwKKwkweDAwNDAsIDB4MmMxMywgMHhhNjg0LCAweDAwODAsIDB4MDA0MCwgMHgyYjk5LCAweDcwOTcsIDB4MDAwMCwKKwkweDY4MTgsIDB4YTA4NCwgMHgwMDNmLCAweGEwOGEsIDB4MDAwZCwgMHgwMDUwLCAweDJiOTksIDB4YTA4YSwKKwkweDAwMGMsIDB4NzE5NiwgMHgyMDAxLCAweDAwMGMsIDB4ODAwYywgMHg3MTlhLCAweDc4OWIsIDB4MDA2MSwKKwkweDc4YWEsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4MjBhMSwgMHgwMTJiLCAweDc4OWIsIDB4MDAwMCwKKwkweDgwMDAsIDB4ODBhYywgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDE0N2YsIDB4MTM3ZiwKKwkweDE1N2YsIDB4NzgxYiwgMHgwMDU4LCAweDAwNzgsIDB4MjRmYSwgMHhhNjg0LCAweDEwMDAsIDB4MDA0MCwKKwkweDJiYTUsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjRmYSwgMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwKKwkweDJjMGYsIDB4YTY4NCwgMHgwODAwLCAweDAwNDAsIDB4MmMwZiwgMHhhNjg0LCAweDgwMDAsIDB4MDBjMCwKKwkweDJiYjMsIDB4MDA3OCwgMHgyYmNiLCAweGE2YjQsIDB4N2ZmZiwgMHg3ZTVhLCAweDZlYjYsIDB4N2FkYywKKwkweDc5ZDgsIDB4NzhkMCwgMHg4MDFiLCAweDAwYzgsIDB4MmJiZSwgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwKKwkweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDZiOTgsIDB4MjEwMCwgMHhhMzAyLCAweDY4YjIsIDB4NmI5NCwKKwkweDIyMDAsIDB4YTMwMywgMHg2OGFlLCAweGE2ODQsIDB4NDAwMCwgMHgwMDQwLCAweDJiZDMsIDB4YTZiNCwKKwkweGJmZmYsIDB4N2U1YSwgMHg2ZWI2LCAweDcwMDAsIDB4YTA4NiwgMHgwMDAzLCAweDAwYzAsIDB4MmJlMCwKKwkweDEwNzgsIDB4NDkzZCwgMHgxMDc4LCAweDRiM2EsIDB4NzgxYiwgMHgwMDY0LCAweDAwNzgsIDB4MjRmYSwKKwkweGEwMDYsIDB4MTA3OCwgMHg0YzQxLCAweDZhYjAsIDB4NjlhYywgMHg2Yzk4LCAweDZiOTQsIDB4MjIwMCwKKwkweGExMDUsIDB4MDA0MCwgMHgyYmVmLCAweDIyMDAsIDB4YTQyMiwgMHgyMTAwLCAweGEzMWIsIDB4NmNhYSwKKwkweDdjZDIsIDB4N2NkYSwgMHg2YmE2LCAweDdiZDYsIDB4N2JkZSwgMHgyMzAwLCAweGE0MDUsIDB4MDBjMCwKKwkweDJjMDEsIDB4YTZiNSwgMHg0MDAwLCAweDdlNWEsIDB4NmViNiwgMHg3ODFiLCAweDAwNjQsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzgxYiwgMHgwMDY0LCAweDIyMDAsIDB4YTExNSwgMHgwMGMwLCAweDJjMGIsIDB4MTA3OCwKKwkweDRiNGIsIDB4MDA3OCwgMHgyNGZhLCAweDEwNzgsIDB4NGI5NiwgMHgwMDc4LCAweDI0ZmEsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDc4MWIsIDB4MDA1OCwgMHgwMDc4LCAweDI0ZmEsIDB4MTA3OCwKKwkweDI0OGMsIDB4MDA3OCwgMHgyYzdhLCAweDY5MjAsIDB4YTE4NCwgMHgwMTAwLCAweDAwNDAsIDB4MmMzMSwKKwkweGExOGMsIDB4ZmVmZiwgMHg2OTIyLCAweDBjN2UsIDB4NzA1NCwgMHgyMDYwLCAweDYwMDAsIDB4YTA4NCwKKwkweGVmZmYsIDB4NjAwMiwgMHg2MDA0LCAweGEwODQsIDB4ZmZmNSwgMHg2MDA2LCAweDBjN2YsIDB4MDA3OCwKKwkweDJjNjksIDB4YTE4NCwgMHgwMjAwLCAweDAwNDAsIDB4MmM2OSwgMHhhMThjLCAweGZkZmYsIDB4NjkyMiwKKwkweDBjN2UsIDB4NzA1NCwgMHgyMDYwLCAweDYwMDAsIDB4YTA4NCwgMHhkZmZmLCAweDYwMDIsIDB4NjAwNCwKKwkweGEwODQsIDB4ZmZlZiwgMHg2MDA2LCAweDIwMDgsIDB4MmM0OCwgMHgwYzdmLCAweGExODQsIDB4MDAwOCwKKwkweDAwNDAsIDB4MmM2OSwgMHgxMDc4LCAweDM4YjksIDB4MTA3OCwgMHgzNWJiLCAweDg4ZmYsIDB4MDA0MCwKKwkweDJjNjksIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGE2YjUsIDB4MDAwNCwKKwkweDdlNWEsIDB4YTY4NCwgMHgwNDAwLCAweDAwYzAsIDB4MmM2MywgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNTYsIDB4MDA3OCwgMHgyNGZhLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwKKwkweDI0ZmEsIDB4N2U1OCwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwgMHgyYzcyLCAweDc4MWIsIDB4MDA1OCwKKwkweDAwNzgsIDB4MjRmYSwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDAwNzgsIDB4Mzc3MywKKwkweDAwNzgsIDB4Mzc3MywgMHgyMDE5LCAweDAwMDAsIDB4Nzk5MCwgMHhhMThjLCAweDAwMDcsIDB4MDBjMCwKKwkweDJjODgsIDB4NjgyMCwgMHhhMDg0LCAweDAxMDAsIDB4MDA0MCwgMHgyYzc4LCAweDIwMDksIDB4MDAwOCwKKwkweDc4OWIsIDB4MDAxMCwgMHg3OGE4LCAweGEwOTQsIDB4MDBmZiwgMHhhMjg2LCAweDAwMDEsIDB4MDBjMCwKKwkweDJjYmYsIDB4MjMwMCwgMHg3Y2E4LCAweGE0MDAsIDB4MjAxOCwgMHhhMTAyLCAweDAwNDAsIDB4MmNiNywKKwkweDAwNDgsIDB4MmM5YywgMHgwMDc4LCAweDJjYjksIDB4YTM4MCwgMHgwMDAyLCAweGExMDIsIDB4MDBjOCwKKwkweDJjYjcsIDB4NjkyMCwgMHhhMThjLCAweGZjZmYsIDB4NjkyMiwgMHgwYzdlLCAweDcwNTQsIDB4MjA2MCwKKwkweDYwMDAsIDB4YTA4NCwgMHhlZmVmLCAweDYwMDIsIDB4NjAwNCwgMHhhMDg0LCAweGZmZTUsIDB4NjAwNiwKKwkweDBjN2YsIDB4N2U1OCwgMHhhNmI0LCAweGZmZmIsIDB4N2U1YSwgMHgwMDc4LCAweDJjNmEsIDB4MDA3OCwKKwkweDJjMWIsIDB4MjRhOCwgMHg3YWE4LCAweDAwZjAsIDB4MmNiOSwgMHgwMDc4LCAweDJjOGEsIDB4YTI4NCwKKwkweDAwZjAsIDB4YTA4NiwgMHgwMDIwLCAweDAwYzAsIDB4MmQxZiwgMHg4MzE4LCAweDgzMTgsIDB4MjMwMCwKKwkweGExMDIsIDB4MDA0MCwgMHgyY2NmLCAweDAwNDgsIDB4MmNjZiwgMHgwMDc4LCAweDJkMWMsIDB4YTI4NiwKKwkweDAwMjMsIDB4MDA0MCwgMHgyYzc4LCAweDY4MWMsIDB4YTA4NCwgMHhmZmYxLCAweDY4MWUsIDB4N2U1OCwKKwkweGE2ODQsIDB4ZmZmMSwgMHhhMDg1LCAweDAwMTAsIDB4MjAzMCwgMHg3ZTVhLCAweDYwMDgsIDB4YTA4NSwKKwkweDAwMTAsIDB4NjAwYSwgMHgwYzdlLCAweDcwNTQsIDB4MjA2MCwgMHg2MDA0LCAweDIwMDgsIDB4MmM0OCwKKwkweDBjN2YsIDB4YTE4NCwgMHgwMDEwLCAweDAwNDAsIDB4MmNmMywgMHgxMDc4LCAweDM4YjksIDB4MTA3OCwKKwkweDM2ZDAsIDB4MDA3OCwgMHgyZDAyLCAweDBjN2UsIDB4NzA1NCwgMHgyMDYwLCAweDYwMDQsIDB4MjAwOCwKKwkweDJjNDgsIDB4MGM3ZiwgMHhhMTg0LCAweDAwMDgsIDB4MDA0MCwgMHgyYzY5LCAweDEwNzgsIDB4MzhiOSwKKwkweDEwNzgsIDB4MzViYiwgMHg4OGZmLCAweDAwNDAsIDB4MmM2OSwgMHg3ODliLCAweDAwNjAsIDB4MjgwMCwKKwkweDc4YWEsIDB4YTZiNSwgMHgwMDA0LCAweDdlNWEsIDB4YTY4NCwgMHgwNDAwLCAweDAwYzAsIDB4MmQxNiwKKwkweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNTYsIDB4MDA3OCwgMHgyNGZhLCAweDc4MmIsIDB4MzAwOCwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4N2FhOCwgMHgwMDc4LCAweDJjOGEsIDB4ODMxOCwKKwkweDIzMDAsIDB4YTEwMiwgMHgwMDQwLCAweDJkMjgsIDB4MDA0OCwgMHgyZDI4LCAweDAwNzgsIDB4MmM4YSwKKwkweGEyODQsIDB4MDA4MCwgMHgwMGMwLCAweDM3N2IsIDB4MDA3OCwgMHgzNzczLCAweDAwNzgsIDB4Mzc3YiwKKwkweDAwNzgsIDB4Mzc2YiwgMHg3ODliLCAweDAwMTgsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4ZSwKKwkweDAwMDEsIDB4MDA0MCwgMHgyZDNkLCAweDEwNzgsIDB4MjQ4YywgMHg3YWE4LCAweGEyOTQsIDB4MDBmZiwKKwkweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwOGEsIDB4MDAwNCwgMHgwMGM4LCAweDM3NmIsIDB4MDA3OSwKKwkweDJkNDksIDB4Mzc2YiwgMHgzNTA4LCAweDM3NmIsIDB4MzY2NSwgMHhhMjgyLCAweDAwMDAsIDB4MDBjMCwKKwkweDJkNTMsIDB4MTA3OCwgMHgyNDhjLCAweDEwNzgsIDB4Mzc4ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweGEyODIsIDB4MDAwMywgMHgwMGMwLCAweDJkNjEsIDB4MTA3OCwKKwkweDI0OGMsIDB4YTQ4NCwgMHg4MDAwLCAweDAwYzAsIDB4MmQ4NCwgMHg3MDZjLCAweGEwMDUsIDB4MDA0MCwKKwkweDJkNmIsIDB4MTA3OCwgMHgyNDhjLCAweDZmMTQsIDB4Nzc4MiwgMHhhN2JjLCAweDBmMDAsIDB4MTA3OCwKKwkweDM4YmQsIDB4NjAwOCwgMHhhMDg1LCAweDAwMjEsIDB4NjAwYSwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwKKwkweDAwYzAsIDB4MmQ2ZiwgMHgxMDc4LCAweDM3OTMsIDB4NzA2ZiwgMHgwMDAyLCAweDIwMDksIDB4NTIzOCwKKwkweDIwMGIsIDB4MDAwOSwgMHgwMDc4LCAweDJkODYsIDB4MTA3OCwgMHgzNzlmLCAweDc4MmIsIDB4MzAwOCwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4YTI4MiwgMHgwMDA0LCAweDAwNTAsIDB4MmQ5MiwKKwkweDEwNzgsIDB4MjQ4YywgMHgyMzAwLCAweDAwNzksIDB4MmQ5NSwgMHgyZDk4LCAweDJlODEsIDB4MmViNCwKKwkweGEyODYsIDB4MDAwMywgMHgwMDQwLCAweDJkOWUsIDB4MTA3OCwgMHgyNDhjLCAweDIwMDEsIDB4MDAwMCwKKwkweDAwN2UsIDB4NjhjMCwgMHhhMDA1LCAweDAwNDAsIDB4MmRhNywgMHg3MDAzLCAweDAwMDMsIDB4NjhhMCwKKwkweGEwODQsIDB4MjAwMCwgMHgwMDQwLCAweDJkYjAsIDB4NjAwOCwgMHhhMDg1LCAweDAwMDIsIDB4NjAwYSwKKwkweDAwN2YsIDB4NzAzZSwgMHg3MDAwLCAweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDJkYjcsIDB4MjUyMywKKwkweDJkYzEsIDB4MmRjMSwgMHgyZmI2LCAweDJmZjIsIDB4MjUyMywgMHgyZmYyLCAweDJkYmYsIDB4MTA3OCwKKwkweDI0OGMsIDB4YTY4NCwgMHgxMDAwLCAweDAwYzAsIDB4MmRjOSwgMHgxMDc4LCAweDQ4ODcsIDB4MDA0MCwKKwkweDJlNWIsIDB4Nzg2OCwgMHhhMDhjLCAweDAwZmYsIDB4MDA0MCwgMHgyZTExLCAweGExODYsIDB4MDAwOCwKKwkweDAwYzAsIDB4MmRlMCwgMHgxMDc4LCAweDM0YjgsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwKKwkweDEwNzgsIDB4MzQ1YSwgMHgwMDQwLCAweDJlMTEsIDB4MTA3OCwgMHg0ODg3LCAweDAwNzgsIDB4MmRmOCwKKwkweGExODYsIDB4MDAyOCwgMHgwMGMwLCAweDJlMTEsIDB4MTA3OCwgMHg0ODg3LCAweDYwMDgsIDB4YTA4NCwKKwkweGZmZWYsIDB4NjAwYSwgMHg2MDE4LCAweGEwMDUsIDB4MDA0MCwgMHgyZGY4LCAweDgwMDEsIDB4NjAxYSwKKwkweGEwMDUsIDB4MDA0MCwgMHgyZGY4LCAweDgwMDEsIDB4YTAwNSwgMHgwMDQwLCAweDJkZjgsIDB4NjAxZSwKKwkweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4MjUyMywgMHg2ODIwLCAweGEwODQsIDB4ZmZmZSwKKwkweDY4MjIsIDB4NzA2MCwgMHgwYzdlLCAweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDBjN2YsIDB4NjAwNCwKKwkweDY4MDIsIDB4YTAwNSwgMHgyZDAwLCAweDAwYzAsIDB4MmUwZSwgMHg2MDAyLCAweDYwMDYsIDB4MDA3OCwKKwkweDI1MjMsIDB4MDE3ZSwgMHgxMDc4LCAweDJlZTUsIDB4MDE3ZiwgMHhhNjg0LCAweGRmMDAsIDB4NjgxZSwKKwkweDY4MmIsIDB4MDAwMCwgMHg2ZjE0LCAweDgxZmYsIDB4MDA0MCwgMHgyZTViLCAweGExODYsIDB4MDAwMiwKKwkweDAwYzAsIDB4MmU1YiwgMHhhNjg0LCAweDA4MDAsIDB4MDBjMCwgMHgyZTJlLCAweGE2ODQsIDB4MDA2MCwKKwkweDAwNDAsIDB4MmUyZSwgMHg3OGQ4LCAweDdhZGMsIDB4NjgyZSwgMHg2YTMyLCAweDY4MjAsIDB4YTA4NCwKKwkweDA4MDAsIDB4MDBjMCwgMHgyZTViLCAweDg3MTcsIDB4YTI5NCwgMHgwMDBmLCAweDgyMTMsIDB4ODIxMywKKwkweDgyMTMsIDB4YTI5MCwgMHg1NDgwLCAweGEyOTAsIDB4MDAwMCwgMHgyMjFjLCAweGEzODQsIDB4MDEwMCwKKwkweDAwYzAsIDB4MmU0NCwgMHgwMDc4LCAweDJlNGEsIDB4ODIxMCwgMHgyMjA0LCAweGEwODUsIDB4MDAxOCwKKwkweDIwMTIsIDB4ODIxMSwgMHhhMzg0LCAweDA0MDAsIDB4MDA0MCwgMHgyZTU3LCAweDY4YTAsIDB4YTA4NCwKKwkweDAxMDAsIDB4MDBjMCwgMHgyZTU3LCAweDEwNzgsIDB4MmY2OSwgMHgwMDc4LCAweDI1MjMsIDB4NjAwOCwKKwkweGEwODUsIDB4MDAwMiwgMHg2MDBhLCAweDY5MTYsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKKwkweDJlNjMsIDB4NzAzYywgMHg2ODFhLCAweGE2OGMsIDB4ZGYwMCwgMHg2OTFlLCAweDEwNzgsIDB4MzRhOSwKKwkweDEwNzgsIDB4MzRiOCwgMHgwMGMwLCAweDJlNzAsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwKKwkweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MmU3OSwgMHgxMDc4LCAweDM0YTIsIDB4MDA3OCwKKwkweDJlN2QsIDB4NzA2MCwgMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwgMHgxMDc4LCAweDFjZGMsIDB4MDA3OCwKKwkweDI1MjMsIDB4YTI4MiwgMHgwMDA0LCAweDAwNDgsIDB4MmU4NywgMHgxMDc4LCAweDI0OGMsIDB4MjIwMCwKKwkweDAwNzksIDB4MmU4YSwgMHgyZTg1LCAweDJlOGUsIDB4MmU5YiwgMHgyZThlLCAweDcwMDAsIDB4YTA4NiwKKwkweDAwMDUsIDB4MDA0MCwgMHgyZTk3LCAweDEwNzgsIDB4Mzc4ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDc4OTAsIDB4ODAwNywgMHg4MDAxLCAweGEwODQsIDB4MDAwNywKKwkweGEwODAsIDB4MDAxOCwgMHg3ODlhLCAweDc5YTgsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwMywKKwkweDAwNDAsIDB4MmViMCwgMHhhMTg2LCAweDAwMDAsIDB4MDA0MCwgMHgyZWIwLCAweDAwNzgsIDB4Mzc2YiwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4NjgyMCwgMHhhMDg1LCAweDAwMDQsIDB4NjgyMiwKKwkweDgyZmYsIDB4MDBjMCwgMHgyZWJmLCAweDEwNzgsIDB4Mzc4ZiwgMHgwMDc4LCAweDJlYzYsIDB4ODIxMSwKKwkweDAwNDAsIDB4MmVjNCwgMHgxMDc4LCAweDI0OGMsIDB4MTA3OCwgMHgzNzlmLCAweDc4MmIsIDB4MzAwOCwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4NzAyYywgMHg4MDAzLCAweDAwNDgsIDB4MmVkNiwKKwkweDIwMTksIDB4NGVhZiwgMHgxMDc4LCAweDIzMTMsIDB4NzAyZiwgMHg4MDAwLCAweDEwNzgsIDB4MzllMCwKKwkweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MmVlMiwgMHgwMDE4LCAweDJlZTIsIDB4NzkxYSwKKwkweGEwMDYsIDB4MDA3YywgMHhhMDg1LCAweDAwMDEsIDB4MDA3YywgMHhhNjg0LCAweDAwNjAsIDB4MDBjMCwKKwkweDJlZWYsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgwMDc4LCAweDJmNjgsIDB4YTY4NCwKKwkweDA4MDAsIDB4MDBjMCwgMHgyZjExLCAweDY4YjQsIDB4YTA4NCwgMHg0ODAwLCAweGE2MzUsIDB4YTY4NCwKKwkweDA4MDAsIDB4MDBjMCwgMHgyZjExLCAweDY5OTgsIDB4NmE5NCwgMHg2OTJlLCAweDZhMzIsIDB4NzAzYywKKwkweGEwMDUsIDB4MDBjMCwgMHgyZjA5LCAweDIyMDAsIDB4YTEwNSwgMHgwMDQwLCAweDJmMTAsIDB4NzAzZiwKKwkweDAwMTUsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDYsIDB4MDA0MCwgMHgyZjEwLCAweDEwNzgsIDB4NDg4NywKKwkweDAwN2MsIDB4YTY4NCwgMHgwMDIwLCAweDAwNDAsIDB4MmYzMywgMHhhNjg0LCAweDQwMDAsIDB4MDA0MCwKKwkweDJmMWYsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgwMDc4LCAweDJmMDksIDB4NjhiNCwKKwkweGEwODQsIDB4NDgwMCwgMHhhNjM1LCAweGE2ODQsIDB4NDAwMCwgMHgwMGMwLCAweDJmMTksIDB4NzAzYywKKwkweGEwMDUsIDB4MDBjMCwgMHgyZjJkLCAweDcwM2YsIDB4MDAxNSwgMHg3OWQ4LCAweDdhZGMsIDB4NjkyZSwKKwkweDZhMzIsIDB4MDA3OCwgMHgyZjA5LCAweGE2ODQsIDB4NDAwMCwgMHgwMDQwLCAweDJmM2QsIDB4NjgyZiwKKwkweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsIDB4MmYwOSwgMHg2OGI0LCAweGEwODQsIDB4NDgwMCwKKwkweGE2MzUsIDB4YTY4NCwgMHg0MDAwLCAweDAwYzAsIDB4MmYzNywgMHg3MDNjLCAweGEwMDUsIDB4MDBjMCwKKwkweDJmNGIsIDB4NzAzZiwgMHgwMDE1LCAweDc5ZDgsIDB4N2FkYywgMHg3OGQwLCAweDgwZmIsIDB4MDBjOCwKKwkweDJmNTIsIDB4ODAwMCwgMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NjkyZSwKKwkweDZhMzIsIDB4MjEwMCwgMHhhMjA1LCAweDAwYzAsIDB4MmY1ZiwgMHgwMDc4LCAweDJmMDksIDB4NzAwMCwKKwkweGEwODYsIDB4MDAwNiwgMHgwMDQwLCAweDJmNjgsIDB4MTA3OCwgMHg0YzQxLCAweDAwNzgsIDB4MmYwOSwKKwkweDAwN2MsIDB4NjAwOCwgMHhhMDg1LCAweDAyMDAsIDB4NjAwYSwgMHhhMzg0LCAweDAyMDAsIDB4MDA0MCwKKwkweDJmNzUsIDB4NjAwOCwgMHhhMDg1LCAweDAwMDIsIDB4NjAwYSwgMHg2ODFiLCAweDAwMDYsIDB4Njg4ZiwKKwkweDAwMDAsIDB4Njg5MywgMHgwMDAwLCAweDZhMzAsIDB4NjkyYywgMHg2YTNlLCAweDY5NDIsIDB4NjgyZiwKKwkweDAwMDMsIDB4NjgzMywgMHgwMDAwLCAweDY4MzcsIDB4MDAyMCwgMHg2ODk3LCAweDAwMDAsIDB4Njg5YiwKKwkweDAwMjAsIDB4NjhiMywgMHgwMDAwLCAweDY4YWYsIDB4MDAwMCwgMHg3MDAwLCAweDAwNzksIDB4MmY5MCwKKwkweDI1MjMsIDB4MmY5YSwgMHgyZmEzLCAweDJmOTgsIDB4MmY5OCwgMHgyZjk4LCAweDJmOTgsIDB4MmY5OCwKKwkweDEwNzgsIDB4MjQ4YywgMHg2ODIwLCAweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDJmYTMsIDB4MTA3OCwKKwkweDM0YTIsIDB4MDA3OCwgMHgyZmE5LCAweDcwNjAsIDB4MmM1MCwgMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwKKwkweDJhNjAsIDB4MjAyMSwgMHg1MjVhLCAweDI0MDQsIDB4YTAwNSwgMHgwMDQwLCAweDJmYjIsIDB4MjAyMCwKKwkweDAwNzgsIDB4MmZhYiwgMHgyZDIyLCAweDIwNmIsIDB4MDAwMCwgMHgwMDdjLCAweDEwNzgsIDB4MzRhOSwKKwkweDEwNzgsIDB4MzRiOCwgMHg2MDA4LCAweGEwODQsIDB4ZmRmZiwgMHg2MDBhLCAweDY4MmIsIDB4MDAwMCwKKwkweDc4OWIsIDB4MDAwZSwgMHg2ZjE0LCAweDY4MTcsIDB4MDAwMiwgMHgxMDc4LCAweDRjODksIDB4YTY4NCwKKwkweDA4MDAsIDB4MDA0MCwgMHgyZmNmLCAweDY5MWMsIDB4YTE4ZCwgMHgyMDAwLCAweDY5MWUsIDB4NjgxOCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDJmZGYsIDB4Nzg2OCwgMHhhMDhjLCAweDAwZmYsIDB4MDA0MCwKKwkweDJmZGQsIDB4NjgxYiwgMHgwMDFlLCAweDAwNzgsIDB4MmZkZiwgMHg2ODFiLCAweDAwMDAsIDB4MjAyMSwKKwkweDUyNWEsIDB4MjQwNCwgMHhhZDA2LCAweDAwNDAsIDB4MmZlNiwgMHg3NDYwLCAweDY4MDAsIDB4MjAyMiwKKwkweDY4YzMsIDB4MDAwMCwgMHg2YTNjLCAweDY5NDAsIDB4NmEzMiwgMHg2OTJlLCAweDEwNzgsIDB4MWNkYywKKwkweDAwNzgsIDB4MjUyMywgMHgxMDc4LCAweDJlZTUsIDB4NjgyYiwgMHgwMDAwLCAweDIwMDEsIDB4MDAwZSwKKwkweDZmMTQsIDB4MTA3OCwgMHgzOWU2LCAweGEwOGMsIDB4MDBmZiwgMHg2OTE2LCAweDY4MTgsIDB4YTA4NCwKKwkweDgwMDAsIDB4MDA0MCwgMHgzMDA1LCAweDcwM2MsIDB4NjgxYSwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwKKwkweDcwNmYsIDB4MDAwMCwgMHgwMDc4LCAweDI1MjMsIDB4NzAwMCwgMHhhMDA1LCAweDAwYzAsIDB4MzAxMiwKKwkweDAwNzgsIDB4MjUyMywgMHhhMDA2LCAweDEwNzgsIDB4NDg4NywgMHg2ODE3LCAweDAwMDAsIDB4NjgxYiwKKwkweDAwMTQsIDB4YTY4YywgMHhkZjAwLCAweDY5MWUsIDB4NjgyYiwgMHgwMDAwLCAweDY4MjAsIDB4YTA4NSwKKwkweDAwZmYsIDB4NjgyMiwgMHg3MDAwLCAweDAwNzksIDB4MzAyNSwgMHgyNTIzLCAweDMwMmYsIDB4MzAyZiwKKwkweDMwMzEsIDB4MzAzMSwgMHgzMDMxLCAweDMwMzEsIDB4MzAyZCwgMHgxMDc4LCAweDI0OGMsIDB4MTA3OCwKKwkweDM0YjgsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwgMHgwMDc4LCAweDM0NzIsIDB4MjMwMCwKKwkweDAwNzksIDB4MzAzYSwgMHgzMDNkLCAweDMwM2YsIDB4MzA5OCwgMHgxMDc4LCAweDI0OGMsIDB4YTY4NCwKKwkweDgwMDAsIDB4MDBjMCwgMHgzMDdkLCAweDcwMDAsIDB4MDA3OSwgMHgzMDQ2LCAweDI1MjMsIDB4MzA1MCwKKwkweDMwNTAsIDB4MzA2YywgMHgzMDUwLCAweDMwNzksIDB4MzA2YywgMHgzMDRlLCAweDEwNzgsIDB4MjQ4YywKKwkweGE2ODQsIDB4MDA2MCwgMHhhMDg2LCAweDAwNjAsIDB4MDBjMCwgMHgzMDY4LCAweGE2YjQsIDB4ZmZkZiwKKwkweGE2YjQsIDB4YmZmZiwgMHhhNmI1LCAweDIwMDAsIDB4N2U1YSwgMHg2ZWI2LCAweDY4MWMsIDB4YTA4NCwKKwkweGZmZGYsIDB4NjgxZSwgMHgxMDc4LCAweDQ4ODcsIDB4MTA3OCwgMHg0YjRiLCAweDAwNzgsIDB4Mzk1NiwKKwkweGE2ODQsIDB4MjAwMCwgMHgwMDQwLCAweDMwNWEsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKKwkweDMwNzksIDB4NjgxYiwgMHgwMDE1LCAweGE2ODQsIDB4NDAwMCwgMHgwMDQwLCAweDMwNzksIDB4NjgxYiwKKwkweDAwMDcsIDB4MTA3OCwgMHgzOTZhLCAweDAwNzgsIDB4MjRmYSwgMHhhNmI0LCAweDdmZmYsIDB4N2U1YSwKKwkweDdhZGMsIDB4NzlkOCwgMHg3OGQwLCAweDc5ZDIsIDB4ODAxYiwgMHgwMGM4LCAweDMwODgsIDB4ODAwMCwKKwkweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwKKwkweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwgMHg3ODFiLCAweDAwNjUsIDB4MDA3YywKKwkweDEwNzgsIDB4MjQ4YywgMHgyMzAwLCAweDAwNzksIDB4MzA5ZCwgMHgzMGEwLCAweDMwYTIsIDB4MzBlYiwKKwkweDEwNzgsIDB4MjQ4YywgMHhhNjg0LCAweDgwMDAsIDB4MDBjMCwgMHgzMGRhLCAweDcwMDAsIDB4MDA3OSwKKwkweDMwYTksIDB4MjUyMywgMHgzMGIzLCAweDMwYjMsIDB4MzBjZiwgMHgzMGIzLCAweDMwZDYsIDB4MzBjZiwKKwkweDMwYjEsIDB4MTA3OCwgMHgyNDhjLCAweGE2ODQsIDB4MDA2MCwgMHhhMDg2LCAweDAwNjAsIDB4MDBjMCwKKwkweDMwY2IsIDB4YTZiNCwgMHhmZmJmLCAweGE2YjQsIDB4YmZmZiwgMHhhNmI1LCAweDIwMDAsIDB4N2U1YSwKKwkweDZlYjYsIDB4NjgxYywgMHhhMDg0LCAweGZmYmYsIDB4NjgxZSwgMHgxMDc4LCAweDQ4ODcsIDB4MTA3OCwKKwkweDRiNGIsIDB4MDA3OCwgMHgzOTU2LCAweGE2ODQsIDB4MjAwMCwgMHgwMDQwLCAweDMwYmQsIDB4NjgxOCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDMwZDYsIDB4NjgxYiwgMHgwMDA3LCAweDc4MWIsIDB4MDBjYSwKKwkweDAwNzgsIDB4MjRmYSwgMHhhNmI0LCAweDdmZmYsIDB4N2U1YSwgMHg3YWRjLCAweDc5ZDgsIDB4NmI5OCwKKwkweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsIDB4NzlkMiwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDdjLCAweDY4MjAsIDB4YTA4NSwgMHgwMDA0LCAweDY4MjIsIDB4MTA3OCwKKwkweDM5MjEsIDB4YTZiNSwgMHgwODAwLCAweDEwNzgsIDB4Mzc4ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDIzMDAsIDB4MDA3OSwgMHgzMGZlLCAweDMxMDEsIDB4MzEwMywKKwkweDMxMDUsIDB4MTA3OCwgMHgyNDhjLCAweDAwNzgsIDB4Mzc3YiwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwKKwkweDMxMmUsIDB4NzllNCwgMHhhMTg0LCAweDAwMjAsIDB4MDA0MCwgMHgzMTE1LCAweDc4ZWMsIDB4YTA4NCwKKwkweDAwMDMsIDB4MDA0MCwgMHgzMTE1LCAweDc4MmIsIDB4MzAwOSwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4NzllNCwgMHhhMTg0LCAweDAwMjAsIDB4MDA0MCwKKwkweDMxMjYsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDBjMCwgMHgzMTJhLCAweDIwMDEsIDB4MDAxNCwKKwkweDAwNzgsIDB4MmRhMCwgMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwgMHgzMTY2LCAweDdhOTAsIDB4YTI5NCwKKwkweDAwMDcsIDB4Nzg5YiwgMHgwMDYwLCAweDc5YTgsIDB4ODFmZiwgMHgwMDQwLCAweDMxNjQsIDB4Nzg5YiwKKwkweDAwMTAsIDB4N2JhOCwgMHhhMzg0LCAweDAwMDEsIDB4MDBjMCwgMHgzMTU1LCAweDdiYTgsIDB4N2JhOCwKKwkweGEzODYsIDB4MDAwMSwgMHgwMGMwLCAweDMxNDgsIDB4MjAwOSwgMHhmZmY3LCAweDAwNzgsIDB4MzE0ZSwKKwkweGEzODYsIDB4MDAwMywgMHgwMGMwLCAweDMxNTUsIDB4MjAwOSwgMHhmZmVmLCAweDBjN2UsIDB4NzA1NCwKKwkweDIwNjAsIDB4NjAwNCwgMHhhMTA0LCAweDYwMDYsIDB4MGM3ZiwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4NzgyYiwgMHgzMDA5LCAweDY5MjAsIDB4YTE4YywKKwkweGZkZmYsIDB4YTE4YywgMHhmZWZmLCAweDY5MjIsIDB4MDA3OCwgMHgzOTU2LCAweDJhM2YsIDB4MmE0YSwKKwkweDMxNzAsIDB4MzE3OCwgMHgzMTZlLCAweDMxNmUsIDB4Mzk1NiwgMHgzOTU2LCAweDEwNzgsIDB4MjQ4YywKKwkweDY5MjAsIDB4YTE4YywgMHhmZGZmLCAweGExOGMsIDB4ZmVmZiwgMHg2OTIyLCAweDAwNzgsIDB4Mzk2MCwKKwkweDY5MjAsIDB4YTE4YywgMHhmZGZmLCAweGExOGMsIDB4ZmVmZiwgMHg2OTIyLCAweDAwNzgsIDB4Mzk1NiwKKwkweDc5ZTQsIDB4YTE4NCwgMHgwMDMwLCAweDAwNDAsIDB4MzE4YSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDAwYzAsIDB4MzFiMSwgMHg3MDAwLCAweGEwODYsIDB4MDAwNCwgMHgwMGMwLCAweDMxYTQsIDB4NzA2YywKKwkweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDMxOWEsIDB4MjAxMSwgMHgwMDAyLCAweDIwMTksIDB4MDAwMCwKKwkweDAwNzgsIDB4MjhlOSwgMHg3MDZjLCAweGEwODYsIDB4MDAwNiwgMHgwMDQwLCAweDMxOTQsIDB4NzA2YywKKwkweGEwODYsIDB4MDAwNCwgMHgwMDQwLCAweDMxOTQsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDAsIDB4MDA0MCwKKwkweDI0ZmEsIDB4NjgxOCwgMHhhMDg1LCAweDgwMDAsIDB4NjgxYSwgMHgyMDAxLCAweDAwMTQsIDB4MDA3OCwKKwkweDJkYTAsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksIDB4MzFiNSwgMHgzOTU2LCAweDM5NTYsIDB4MzFiZCwKKwkweDM5NTYsIDB4MzliYiwgMHgzOWJiLCAweDM5NTYsIDB4Mzk1NiwgMHhhNjg0LCAweDAwODAsIDB4MDA0MCwKKwkweDMxZWMsIDB4NzE5NCwgMHg4MWZmLCAweDAwNDAsIDB4MzFlYywgMHhhMTgyLCAweDAwMGQsIDB4MDBkMCwKKwkweDMxY2QsIDB4NzA5NywgMHgwMDAwLCAweDAwNzgsIDB4MzFkMiwgMHhhMTgyLCAweDAwMGMsIDB4NzA5NiwKKwkweDIwMDksIDB4MDAwYywgMHg3ODliLCAweDAwNjEsIDB4NzlhYSwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwKKwkweDcwOTgsIDB4ODExNCwgMHhhMjEwLCAweDcyOWEsIDB4YTA4MCwgMHgwMDBiLCAweGFkMDAsIDB4MjA5OCwKKwkweDIwYTEsIDB4MDEyYiwgMHg3ODliLCAweDAwMDAsIDB4ODEwOCwgMHg4MWFjLCAweDUzYTYsIDB4MTQ3ZiwKKwkweDEzN2YsIDB4MTU3ZiwgMHgwMDc4LCAweDM5NjAsIDB4YTY4NCwgMHgwNDAwLCAweDAwYzAsIDB4MzIyZCwKKwkweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4Mzk2MCwgMHhhNjhjLCAweDAwNjAsIDB4YTY4NCwKKwkweDAwNjAsIDB4MDA0MCwgMHgzMjAxLCAweGEwODYsIDB4MDA2MCwgMHgwMGMwLCAweDMyMDEsIDB4YTE4ZCwKKwkweDQwMDAsIDB4YTE4YywgMHhmZmZiLCAweDc5NWEsIDB4NjliNiwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDAsIDB4Nzg5YiwgMHgwMDYxLCAweDY4MTgsIDB4YTA4NSwgMHg4MDAwLCAweDY4MWEsIDB4NzhhYSwKKwkweDgwMDgsIDB4ODEwYywgMHgwMDQwLCAweDM0ZDEsIDB4YTE4YywgMHgwMGY4LCAweDAwYzAsIDB4MzRkMSwKIAkweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDIwYTEsIDB4MDEyYiwgMHg3ODliLCAweDAwMDAsIDB4ODAwMCwKIAkweDgwYWMsIDB4YWQ4MCwgMHgwMDBiLCAweDIwOTgsIDB4NTNhNiwgMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwKLQkweDY4MTQsIDB4ODAwNywgMHg3ODgyLCAweDZkOTQsIDB4N2RkNiwgMHg3ZGRlLCAweDZlOTgsIDB4N2VkMiwKLQkweDdlZGEsIDB4MTA3OCwgMHgzOGZhLCAweDAwYzAsIDB4MjcyZSwgMHg3MDJjLCAweDgwMDMsIDB4MDA0OCwKLQkweDI3MjcsIDB4MjAxOSwgMHg0ZDllLCAweDEwNzgsIDB4MjI3NiwgMHg3MDJmLCAweDgwMDAsIDB4NzgzMCwKLQkweGEwODQsIDB4MDBjMCwgMHgwMGMwLCAweDI3MmUsIDB4MDA5OCwgMHgyNzM2LCAweDYwMDgsIDB4YTA4NCwKLQkweGZmZWYsIDB4NjAwYSwgMHgxMDc4LCAweDM5MTIsIDB4MDA3OCwgMHgyNDgyLCAweDcyMDAsIDB4YTI4NCwKLQkweDAwMDcsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsIDB4Mjc0MywgMHg3ODFiLCAweDAwNGYsIDB4MTA3OCwKLQkweDM5MTIsIDB4MDA3OCwgMHgyNzU0LCAweDZhYjQsIDB4YTI5NSwgMHgyMDAwLCAweDdhNWEsIDB4NzgxYiwKLQkweDAwNGYsIDB4MTA3OCwgMHgzOTEyLCAweDcyMDAsIDB4MjUwMCwgMHhhNjA1LCAweDAwNDAsIDB4Mjc1NCwKLQkweGEyODQsIDB4MDAwNywgMHgxMDc5LCAweDI3NjIsIDB4YWQ4MCwgMHgwMDA5LCAweDcwMzYsIDB4YTI4NCwKLQkweDAwMDcsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsIDB4MjQ1OSwgMHg2MDE4LCAweDgwMDAsIDB4NjAxYSwKLQkweDAwNzgsIDB4MjQ1OSwgMHgyNzZhLCAweDRhM2EsIDB4NGEzYSwgMHg0YTI5LCAweDRhM2EsIDB4Mjc2YSwKLQkweDRhMjksIDB4Mjc2YSwgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwgMHgzOGZhLCAweDBmN2UsIDB4MjA3OSwKLQkweDUxMDAsIDB4NzhjYywgMHgwZjdmLCAweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDI3OTAsIDB4NzA2YywKLQkweGEwODYsIDB4MDAwMSwgMHgwMGMwLCAweDI3N2YsIDB4NzA2ZSwgMHgwMDc4LCAweDI4MjMsIDB4NzA2YywKLQkweGEwODYsIDB4MDAwNSwgMHgwMGMwLCAweDI3OGUsIDB4NzA4OCwgMHgyMDY4LCAweDY4MWIsIDB4MDAwNCwKLQkweDY4MTcsIDB4MDAwMCwgMHg2ODIwLCAweGEwODUsIDB4MDAwOCwgMHg2ODIyLCAweDcwNmYsIDB4MDAwMCwKLQkweDIwMTEsIDB4MDAwNCwgMHg3MTZjLCAweGExODYsIDB4MDAwMSwgMHgwMDQwLCAweDI3YjEsIDB4YTE4NiwKLQkweDAwMDcsIDB4MDBjMCwgMHgyN2ExLCAweDIwMDksIDB4NTEzOCwgMHgyMDBiLCAweDAwMDUsIDB4MDA3OCwKLQkweDI3YjEsIDB4MjAwOSwgMHg1MTEzLCAweDIxMDQsIDB4MjAwOSwgMHg1MTEyLCAweDIwMGEsIDB4MjAwOSwKLQkweDUxMzgsIDB4MjAwYiwgMHgwMDAxLCAweDcwNmYsIDB4MDAwMCwgMHg3MDczLCAweDAwMDEsIDB4MDA3OCwKLQkweDI3YjMsIDB4NzA2ZiwgMHgwMDAwLCAweDEwNzgsIDB4NDc3NiwgMHgxNTdlLCAweDIwYTksIDB4MDAxMCwKLQkweDIwMzksIDB4MDAwMCwgMHgxMDc4LCAweDM2ZTIsIDB4YTdiOCwgMHgwMTAwLCAweDAwNzAsIDB4MjdjMiwKLQkweDAwNzgsIDB4MjdiYSwgMHgxNTdmLCAweDcwMDAsIDB4MDA3OSwgMHgyN2M2LCAweDI3ZjQsIDB4MjdkYiwKLQkweDI3ZGIsIDB4MjdjZSwgMHgyN2Y0LCAweDI3ZjQsIDB4MjdmNCwgMHgyN2Y0LCAweDIwMjEsIDB4NTE1YSwKLQkweDI0MDQsIDB4YTAwNSwgMHgwMDQwLCAweDI3ZjQsIDB4YWQwNiwgMHgwMGMwLCAweDI3ZGIsIDB4NjgwMCwKLQkweDIwMjIsIDB4MDA3OCwgMHgyN2ViLCAweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MjdlNywKLQkweDZmMTQsIDB4MTA3OCwgMHgzN2VmLCAweDEwNzgsIDB4MzNkOCwgMHgwMDc4LCAweDI3ZWIsIDB4NzA2MCwKLQkweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDZhMWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MjAsIDB4YTA4NSwKLQkweDAwMDgsIDB4NjgyMiwgMHgxMDc4LCAweDFjNzAsIDB4MjAyMSwgMHg3NTAwLCAweDEwNzgsIDB4MjgzMCwKLQkweDIwMjEsIDB4NTE1YSwgMHgxMDc4LCAweDI4MzAsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMDAsIDB4MjAyMSwKLQkweDc0MDAsIDB4MTA3OCwgMHgyODMwLCAweDg0MjAsIDB4MDA3MCwgMHgyODA4LCAweDAwNzgsIDB4MjgwMSwKLQkweDIwNjEsIDB4NTQwMCwgMHgyMDIxLCAweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweDYwMTgsIDB4NjExMCwKLQkweDgxZmYsIDB4MDA0MCwgMHgyODE3LCAweGExMDIsIDB4MDA1MCwgMHgyODE3LCAweDYwMTIsIDB4NjAxYiwKLQkweDAwMDAsIDB4YWNlMCwgMHgwMDEwLCAweDAwNzAsIDB4MjgxZiwgMHgwMDc4LCAweDI4MGUsIDB4ODQyMSwKLQkweDAwYzAsIDB4MjgwYywgMHgxNTdmLCAweDcwOWMsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MjgyYSwKLQkweDEwNzgsIDB4M2EwMCwgMHg3MDAzLCAweDAwMDAsIDB4NzA0YiwgMHgwMDAwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDA0N2UsIDB4MjQwNCwgMHhhMDA1LCAweDAwNDAsIDB4Mjg0NCwgMHgyMDY4LCAweDY4MDAsIDB4MDA3ZSwKLQkweDZhMWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MjAsIDB4YTA4NSwgMHgwMDA4LCAweDY4MjIsIDB4MTA3OCwKLQkweDFjNzAsIDB4MDA3ZiwgMHgwMDc4LCAweDI4MzIsIDB4MDQ3ZiwgMHgyMDIzLCAweDAwMDAsIDB4MDA3YywKLQkweGEyODIsIDB4MDAwMywgMHgwMDUwLCAweDI4NGUsIDB4MTA3OCwgMHgyM2ViLCAweDIzMDAsIDB4MDA3OSwKLQkweDI4NTEsIDB4Mjg1NCwgMHgyOGM3LCAweDI4ZTQsIDB4YTI4MiwgMHgwMDAyLCAweDAwNDAsIDB4Mjg1YSwKLQkweDEwNzgsIDB4MjNlYiwgMHg3MDZjLCAweDcwNmYsIDB4MDAwMCwgMHg3MDkzLCAweDAwMDAsIDB4MDA3OSwKLQkweDI4NjEsIDB4Mjg2OSwgMHgyODY5LCAweDI4NmIsIDB4Mjg5ZiwgMHgzNDBkLCAweDI4NjksIDB4Mjg5ZiwKLQkweDI4NjksIDB4MTA3OCwgMHgyM2ViLCAweDc3ODAsIDB4MTA3OCwgMHgzNmUyLCAweDc3ODAsIDB4YTdiYywKLQkweDBmMDAsIDB4MTA3OCwgMHgzN2VmLCAweDYwMTgsIDB4YTAwNSwgMHgwMDQwLCAweDI4OTYsIDB4MjAyMSwKLQkweDc1MDAsIDB4MjAwOSwgMHgwMDA0LCAweDIwMTEsIDB4MDAxMCwgMHgxMDc4LCAweDI4ZmYsIDB4MDA0MCwKLQkweDI4OTYsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMDAsIDB4MjAyMSwgMHg3NDAwLCAweDA0N2UsIDB4MjAwOSwKLQkweDAwMDQsIDB4MjAxMSwgMHgwMDEwLCAweDEwNzgsIDB4MjhmZiwgMHgwNDdmLCAweDAwNDAsIDB4Mjg5NSwKLQkweDg0MjAsIDB4MDA3MCwgMHgyODk1LCAweDAwNzgsIDB4Mjg4NiwgMHgxNTdmLCAweDg3MzgsIDB4YTc4NCwKLQkweDAwMWYsIDB4MDBjMCwgMHgyODcxLCAweDAwNzgsIDB4MjQ4MiwgMHgwMDc4LCAweDI0ODIsIDB4Nzc4MCwKLQkweDEwNzgsIDB4MzdlZiwgMHg2MDE4LCAweGEwMDUsIDB4MDA0MCwgMHgyOGM1LCAweDIwMjEsIDB4NzUwMCwKLQkweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMjAsIDB4MTA3OCwgMHgyOGZmLCAweDAwNDAsIDB4MjhjNSwKLQkweDE1N2UsIDB4MjBhOSwgMHgwMDAwLCAweDIwMjEsIDB4NzQwMCwgMHgwNDdlLCAweDIwMDksIDB4MDAwNSwKLQkweDIwMTEsIDB4MDAyMCwgMHgxMDc4LCAweDI4ZmYsIDB4MDQ3ZiwgMHgwMDQwLCAweDI4YzQsIDB4ODQyMCwKLQkweDAwNzAsIDB4MjhjNCwgMHgwMDc4LCAweDI4YjUsIDB4MTU3ZiwgMHgwMDc4LCAweDI0ODIsIDB4MjIwMCwKLQkweDAwNzksIDB4MjhjYSwgMHgyOGNkLCAweDI4Y2YsIDB4MjhjZiwgMHgxMDc4LCAweDIzZWIsIDB4MjAwOSwKLQkweDAwMTIsIDB4NzA2YywgMHhhMDg2LCAweDAwMDIsIDB4MDA0MCwgMHgyOGQ4LCAweDIwMDksIDB4MDAwZSwKLQkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MjhkZSwgMHg2OTFhLCAweDcwNmYsIDB4MDAwMCwKLQkweDcwNzMsIDB4MDAwMSwgMHgwMDc4LCAweDM4ODgsIDB4MjIwMCwgMHgwMDc5LCAweDI4ZTcsIDB4MjhlYywKLQkweDI4Y2YsIDB4MjhlYSwgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwgMHg0Nzc2LCAweDcwMDAsIDB4YTA4NiwKLQkweDAwMDEsIDB4MDBjMCwgMHgzMzlkLCAweDEwNzgsIDB4MzNlZSwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwKLQkweDYwMGEsIDB4MTA3OCwgMHgzMzkwLCAweDAwNDAsIDB4MzM5ZCwgMHgwMDc4LCAweDI1OTQsIDB4MjQwNCwKLQkweGEwMDUsIDB4MDA0MCwgMHgyOTIyLCAweDIwNjgsIDB4MmQwNCwgMHgwMDdlLCAweDY4MTQsIDB4YTcwNiwKLQkweDAwNDAsIDB4MjkwZSwgMHgyZDIwLCAweDAwN2YsIDB4MDA3OCwgMHgyOTAwLCAweDAwN2YsIDB4MjAyMiwKLQkweDY5MWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MjAsIDB4YTIwNSwgMHg2ODIyLCAweDEwNzgsIDB4MWM3MCwKLQkweDYwMTAsIDB4ODAwMSwgMHg2MDEyLCAweDYwMDgsIDB4YTA4NCwgMHhmZmVmLCAweDYwMGEsIDB4MTA3OCwKLQkweDMzZWUsIDB4MDA3YywgMHhhMDg1LCAweDAwMDEsIDB4MDA3OCwgMHgyOTIxLCAweDIzMDAsIDB4MDA3OSwKLQkweDI5MjksIDB4MjkyZSwgMHgyOTJjLCAweDI5YzcsIDB4MTA3OCwgMHgyM2ViLCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDEsIDB4MDBjMCwgMHgyOTQyLCAweDcwMDAsIDB4YTA4NiwgMHgwMDA0LCAweDAwYzAsIDB4MjkzYSwKLQkweDAwNzgsIDB4Mjk2NSwgMHgxMDc4LCAweDMzZWUsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwKLQkweDAwNzgsIDB4MzM5ZCwgMHg3OGU0LCAweGEwMDUsIDB4MDBkMCwgMHgyOTY1LCAweDAwMTgsIDB4MjQ1OSwKLQkweDIwMDgsIDB4YTA4NCwgMHgwMDMwLCAweDAwYzAsIDB4Mjk1MSwgMHg3ODFiLCAweDAwNGYsIDB4MDA3OCwKLQkweDI0NTksIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgyOTRkLCAweDIxMDAsIDB4YTA4NCwKLQkweDAwMDcsIDB4MDA3OSwgMHgyOTViLCAweDI5OWUsIDB4MjlhOSwgMHgyOThmLCAweDI5NjMsIDB4MzhlZCwKLQkweDM4ZWQsIDB4Mjk2MywgMHgyOWI4LCAweDEwNzgsIDB4MjNlYiwgMHg3MDAwLCAweGEwODYsIDB4MDAwNCwKLQkweDAwYzAsIDB4Mjk3ZiwgMHg3MDZjLCAweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDI5NzUsIDB4MjAxMSwKLQkweDAwMDIsIDB4MjAxOSwgMHgwMDAwLCAweDAwNzgsIDB4Mjg0OCwgMHg3MDZjLCAweGEwODYsIDB4MDAwNiwKLQkweDAwNDAsIDB4Mjk2ZiwgMHg3MDZjLCAweGEwODYsIDB4MDAwNCwgMHgwMDQwLCAweDI5NmYsIDB4NzllNCwKLQkweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDI5ODksIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDBjMCwKLQkweDI5OGIsIDB4MDA3OCwgMHgyZjZkLCAweDIwMDEsIDB4MDAwMywgMHgwMDc4LCAweDJkMDEsIDB4NjgxOCwKLQkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDI5OTYsIDB4NjgxYiwgMHgwMDFkLCAweDEwNzgsIDB4MzZjMSwKLQkweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNTYsIDB4MDA3OCwgMHgyNDU5LCAweDY4MTgsIDB4YTA4NCwKLQkweDgwMDAsIDB4MDA0MCwgMHgyOWE1LCAweDY4MWIsIDB4MDAxZCwgMHgxMDc4LCAweDM2YzEsIDB4MDA3OCwKLQkweDM4YjgsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgyOWIwLCAweDY4MWIsIDB4MDAxZCwKLQkweDEwNzgsIDB4MzZjMSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMGNkLCAweDAwNzgsIDB4MjQ1OSwKLQkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MjliZiwgMHg2ODFiLCAweDAwMWQsIDB4MTA3OCwKLQkweDM2YzEsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA4ZSwgMHgwMDc4LCAweDI0NTksIDB4YTU4NCwKLQkweDAwMGYsIDB4MDBjMCwgMHgyOWU0LCAweDcwMDAsIDB4MDA3OSwgMHgyOWNlLCAweDI0ODIsIDB4MjlkOCwKLQkweDI5ZDYsIDB4MzM5ZCwgMHgzMzlkLCAweDMzOWQsIDB4MzM5ZCwgMHgyOWQ2LCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4MzNlZSwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwgMHg2MDBhLCAweDEwNzgsIDB4MzM5MCwKLQkweDAwNDAsIDB4MzM5ZCwgMHgwMDc4LCAweDI1OTQsIDB4NzhlNCwgMHhhMDA1LCAweDAwZDAsIDB4Mjk2NSwKLQkweDAwMTgsIDB4Mjk2NSwgMHgyMDA4LCAweGEwODQsIDB4MDAzMCwgMHgwMGMwLCAweDI5ZjMsIDB4NzgxYiwKLQkweDAwNGYsIDB4MDA3OCwgMHgyNDU5LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwNDAsIDB4MjllZiwKLQkweDIxMDAsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksIDB4MjlmZCwgMHgyYTBmLCAweDJhMTMsIDB4MmEwNywKLQkweDJhMDUsIDB4MzhlZCwgMHgzOGVkLCAweDJhMDUsIDB4MzhlMywgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwKLQkweDM2YzksIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwKLQkweDM2YzksIDB4MDA3OCwgMHgzOGI4LCAweDEwNzgsIDB4MzZjOSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKLQkweDAwY2QsIDB4MDA3OCwgMHgyNDU5LCAweDEwNzgsIDB4MzZjOSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKLQkweDAwOGUsIDB4MDA3OCwgMHgyNDU5LCAweDIzMDAsIDB4MDA3OSwgMHgyYTI2LCAweDJhMmIsIDB4MmEyOSwKLQkweDJhMmQsIDB4MTA3OCwgMHgyM2ViLCAweDAwNzgsIDB4MzBhYiwgMHg2ODFiLCAweDAwMDgsIDB4NzhhMywKLQkweDAwMDAsIDB4NzllNCwgMHhhMTg0LCAweDAwMzAsIDB4MDA0MCwgMHgzMGFiLCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDMsIDB4MDA0MCwgMHgzMGFiLCAweGExODQsIDB4MDAwNywgMHgwMDc5LCAweDJhM2YsIDB4MmE0NywKLQkweDJhMTMsIDB4Mjk4ZiwgMHgzODg4LCAweDM4ZWQsIDB4MzhlZCwgMHgyYTQ3LCAweDM4ZTMsIDB4MTA3OCwKLQkweDM4OWMsIDB4MDA3OCwgMHgyNDU5LCAweGEyODIsIDB4MDAwNSwgMHgwMDUwLCAweDJhNTEsIDB4MTA3OCwKLQkweDIzZWIsIDB4MjMwMCwgMHgwMDc5LCAweDJhNTQsIDB4MmE1NywgMHgyY2FlLCAweDJjYmMsIDB4MjIwMCwKLQkweDAwNzksIDB4MmE1YSwgMHgyYTc0LCAweDJhNjEsIDB4MmE3NCwgMHgyYTVmLCAweDJjOTMsIDB4MTA3OCwKLQkweDIzZWIsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwODIsIDB4MDAyMCwKLQkweDAwNDgsIDB4MzY5ZCwgMHhhMDhhLCAweDAwMDQsIDB4MDBjOCwgMHgzNjlkLCAweDAwNzksIDB4MmE3MCwKLQkweDM2OWQsIDB4MzY5ZCwgMHgzNjlkLCAweDM2NGIsIDB4Nzg5YiwgMHgwMDE4LCAweDc5YTgsIDB4YTE4NCwKLQkweDAwODAsIDB4MDA0MCwgMHgyYTg1LCAweDAwNzgsIDB4MzY5ZCwgMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwKLQkweDJhN2IsIDB4MjAxMSwgMHgwMDA0LCAweDAwNzgsIDB4MzIxZiwgMHhhMTg0LCAweDAwZmYsIDB4YTA4YSwKLQkweDAwMTAsIDB4MDBjOCwgMHgzNjlkLCAweDAwNzksIDB4MmE4ZCwgMHgyYTlmLCAweDJhOWQsIDB4MmFiNywKLQkweDJhYmIsIDB4MmI3OCwgMHgzNjlkLCAweDM2OWQsIDB4MmI3YSwgMHgzNjlkLCAweDM2OWQsIDB4MmM4ZiwKLQkweDJjOGYsIDB4MzY5ZCwgMHgzNjlkLCAweDM2OWQsIDB4MmM5MSwgMHgxMDc4LCAweDIzZWIsIDB4YTY4NCwKLQkweDEwMDAsIDB4MDA0MCwgMHgyYWFjLCAweDIwMDEsIDB4MDUwMCwgMHg4MDAwLCAweDgwMDAsIDB4NzgzYSwKLQkweDc4MWIsIDB4MDA4YywgMHgwMDc4LCAweDI0NTksIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKLQkweDJhYjUsIDB4NjgxYiwgMHgwMDFkLCAweDAwNzgsIDB4MmFhMywgMHgwMDc4LCAweDM4ODgsIDB4NjgxYiwKLQkweDAwMWQsIDB4MDA3OCwgMHgzNmFkLCAweDY5MjAsIDB4NjkyMiwgMHhhNjg0LCAweDE4MDAsIDB4MDBjMCwKLQkweDJhZmMsIDB4NjgyMCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwgMHgyYjA0LCAweDY4MTgsIDB4YTA4NiwKLQkweDAwMDgsIDB4MDBjMCwgMHgyYWNkLCAweDY4MWIsIDB4MDAwMCwgMHhhNjg0LCAweDA0MDAsIDB4MDA0MCwKLQkweDJiNzQsIDB4YTY4NCwgMHgwMDgwLCAweDAwNDAsIDB4MmFmOCwgMHg3MDk3LCAweDAwMDAsIDB4NjgxOCwKLQkweGEwODQsIDB4MDAzZiwgMHhhMDhhLCAweDAwMGQsIDB4MDA1MCwgMHgyYWY4LCAweGEwOGEsIDB4MDAwYywKLQkweDcxOTYsIDB4MjAwMSwgMHgwMDBjLCAweDgwMGMsIDB4NzE5YSwgMHg3ODliLCAweDAwNjEsIDB4NzhhYSwKLQkweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDIwYTEsIDB4MDEyYiwgMHg3ODliLCAweDAwMDAsIDB4ODAwMCwKLQkweDgwYWMsIDB4YWQ4MCwgMHgwMDBiLCAweDIwOTgsIDB4NTNhNiwgMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwKLQkweDc4MWIsIDB4MDA1OCwgMHgwMDc4LCAweDI0NTksIDB4YTY4NCwgMHgxMDAwLCAweDAwNDAsIDB4MmIwNCwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsIDB4MmI3MCwKLQkweGE2ODQsIDB4MDgwMCwgMHgwMDQwLCAweDJiNzAsIDB4YTY4NCwgMHg4MDAwLCAweDAwYzAsIDB4MmIxMiwKLQkweDAwNzgsIDB4MmIyYywgMHhhNmI0LCAweDdmZmYsIDB4N2U1YSwgMHg2ZWI2LCAweDc4OWIsIDB4MDA3NiwKLQkweDdhYWMsIDB4NzlhYywgMHg3OGFjLCAweDgwMWIsIDB4MDBjOCwgMHgyYjFmLCAweDgwMDAsIDB4YTA4NCwKLQkweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NmI5OCwgMHgyMTAwLCAweGEzMDIsIDB4NjhiMiwKLQkweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsIDB4YTY4NCwgMHg0MDAwLCAweDAwNDAsIDB4MmIzNCwKLQkweGE2YjQsIDB4YmZmZiwgMHg3ZTVhLCAweDZlYjYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MDBjMCwKLQkweDJiNDEsIDB4MTA3OCwgMHg0ODJjLCAweDEwNzgsIDB4NGEyOSwgMHg3ODFiLCAweDAwNjQsIDB4MDA3OCwKLQkweDI0NTksIDB4YTAwNiwgMHgxMDc4LCAweDRiMzAsIDB4NmFiMCwgMHg2OWFjLCAweDZjOTgsIDB4NmI5NCwKLQkweDIyMDAsIDB4YTEwNSwgMHgwMDQwLCAweDJiNTAsIDB4MjIwMCwgMHhhNDIyLCAweDIxMDAsIDB4YTMxYiwKLQkweDZjYWEsIDB4N2NkMiwgMHg3Y2RhLCAweDZiYTYsIDB4N2JkNiwgMHg3YmRlLCAweDIzMDAsIDB4YTQwNSwKLQkweDAwYzAsIDB4MmI2MiwgMHhhNmI1LCAweDQwMDAsIDB4N2U1YSwgMHg2ZWI2LCAweDc4MWIsIDB4MDA2NCwKLQkweDAwNzgsIDB4MjQ1OSwgMHg3ODFiLCAweDAwNjQsIDB4MjIwMCwgMHhhMTE1LCAweDAwYzAsIDB4MmI2YywKLQkweDEwNzgsIDB4NGEzYSwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHg0YTg1LCAweDAwNzgsIDB4MjQ1OSwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4NzgxYiwgMHgwMDU4LCAweDAwNzgsIDB4MjQ1OSwKLQkweDEwNzgsIDB4MjNlYiwgMHgwMDc4LCAweDJiZGIsIDB4NjkyMCwgMHhhMTg0LCAweDAxMDAsIDB4MDA0MCwKLQkweDJiOTIsIDB4YTE4YywgMHhmZWZmLCAweDY5MjIsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4NjAwMCwKLQkweGEwODQsIDB4ZWZmZiwgMHg2MDAyLCAweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsIDB4MGM3ZiwKLQkweDAwNzgsIDB4MmJjYSwgMHhhMTg0LCAweDAyMDAsIDB4MDA0MCwgMHgyYmNhLCAweGExOGMsIDB4ZmRmZiwKLQkweDY5MjIsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4NjAwMCwgMHhhMDg0LCAweGRmZmYsIDB4NjAwMiwKLQkweDYwMDQsIDB4YTA4NCwgMHhmZmVmLCAweDYwMDYsIDB4MjAwOCwgMHgyYzQ4LCAweDBjN2YsIDB4YTE4NCwKLQkweDAwMDgsIDB4MDA0MCwgMHgyYmNhLCAweDEwNzgsIDB4MzdlYiwgMHgxMDc4LCAweDM0ZjEsIDB4ODhmZiwKLQkweDAwNDAsIDB4MmJjYSwgMHg3ODliLCAweDAwNjAsIDB4MjgwMCwgMHg3OGFhLCAweDdlNTgsIDB4YTZiNSwKLQkweDAwMDQsIDB4N2U1YSwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwgMHgyYmM0LCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0NTksIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA2NSwKLQkweDAwNzgsIDB4MjQ1OSwgMHg3ZTU4LCAweGE2ODQsIDB4MDQwMCwgMHgwMGMwLCAweDJiZDMsIDB4NzgxYiwKLQkweDAwNTgsIDB4MDA3OCwgMHgyNDU5LCAweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4MDA3OCwKLQkweDM2YTUsIDB4MDA3OCwgMHgzNmE1LCAweDIwMTksIDB4MDAwMCwgMHg3OTkwLCAweGExOGMsIDB4MDAwNywKLQkweDAwYzAsIDB4MmJlOSwgMHg2ODIwLCAweGEwODQsIDB4MDEwMCwgMHgwMDQwLCAweDJiZDksIDB4MjAwOSwKLQkweDAwMDgsIDB4Nzg5YiwgMHgwMDEwLCAweDc4YTgsIDB4YTA5NCwgMHgwMGZmLCAweGEyODYsIDB4MDAwMSwKLQkweDAwYzAsIDB4MmMyMCwgMHgyMzAwLCAweDdjYTgsIDB4YTQwMCwgMHgyMDE4LCAweGExMDIsIDB4MDA0MCwKLQkweDJjMTgsIDB4MDA0OCwgMHgyYmZkLCAweDAwNzgsIDB4MmMxYSwgMHhhMzgwLCAweDAwMDIsIDB4YTEwMiwKLQkweDAwYzgsIDB4MmMxOCwgMHg2OTIwLCAweGExOGMsIDB4ZmNmZiwgMHg2OTIyLCAweDBjN2UsIDB4NzA1NCwKLQkweDIwNjAsIDB4NjAwMCwgMHhhMDg0LCAweGVmZWYsIDB4NjAwMiwgMHg2MDA0LCAweGEwODQsIDB4ZmZlNSwKLQkweDYwMDYsIDB4MGM3ZiwgMHg3ZTU4LCAweGE2YjQsIDB4ZmZmYiwgMHg3ZTVhLCAweDAwNzgsIDB4MmJjYiwKLQkweDAwNzgsIDB4MmI3YywgMHgyNGE4LCAweDdhYTgsIDB4MDBmMCwgMHgyYzFhLCAweDAwNzgsIDB4MmJlYiwKLQkweGEyODQsIDB4MDBmMCwgMHhhMDg2LCAweDAwMjAsIDB4MDBjMCwgMHgyYzgwLCAweDgzMTgsIDB4ODMxOCwKLQkweDIzMDAsIDB4YTEwMiwgMHgwMDQwLCAweDJjMzAsIDB4MDA0OCwgMHgyYzMwLCAweDAwNzgsIDB4MmM3ZCwKLQkweGEyODYsIDB4MDAyMywgMHgwMDQwLCAweDJiZDksIDB4NjgxYywgMHhhMDg0LCAweGZmZjEsIDB4NjgxZSwKLQkweDdlNTgsIDB4YTY4NCwgMHhmZmYxLCAweGEwODUsIDB4MDAxMCwgMHgyMDMwLCAweDdlNWEsIDB4NjAwOCwKLQkweGEwODUsIDB4MDAxMCwgMHg2MDBhLCAweDBjN2UsIDB4NzA1NCwgMHgyMDYwLCAweDYwMDQsIDB4MjAwOCwKLQkweDJjNDgsIDB4MGM3ZiwgMHhhMTg0LCAweDAwMTAsIDB4MDA0MCwgMHgyYzU0LCAweDEwNzgsIDB4MzdlYiwKLQkweDEwNzgsIDB4MzYwNCwgMHgwMDc4LCAweDJjNjMsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4NjAwNCwKLQkweDIwMDgsIDB4MmM0OCwgMHgwYzdmLCAweGExODQsIDB4MDAwOCwgMHgwMDQwLCAweDJiY2EsIDB4MTA3OCwKLQkweDM3ZWIsIDB4MTA3OCwgMHgzNGYxLCAweDg4ZmYsIDB4MDA0MCwgMHgyYmNhLCAweDc4OWIsIDB4MDA2MCwKLQkweDI4MDAsIDB4NzhhYSwgMHhhNmI1LCAweDAwMDQsIDB4N2U1YSwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwKLQkweDJjNzcsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0NTksIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHg3YWE4LCAweDAwNzgsIDB4MmJlYiwKLQkweDgzMTgsIDB4MjMwMCwgMHhhMTAyLCAweDAwNDAsIDB4MmM4OSwgMHgwMDQ4LCAweDJjODksIDB4MDA3OCwKLQkweDJiZWIsIDB4YTI4NCwgMHgwMDgwLCAweDAwYzAsIDB4MzZhZCwgMHgwMDc4LCAweDM2YTUsIDB4MDA3OCwKLQkweDM2YWQsIDB4MDA3OCwgMHgzNjlkLCAweDc4OWIsIDB4MDAxOCwgMHg3OGE4LCAweGEwODQsIDB4MDBmZiwKLQkweGEwOGUsIDB4MDAwMSwgMHgwMDQwLCAweDJjOWUsIDB4MTA3OCwgMHgyM2ViLCAweDdhYTgsIDB4YTI5NCwKLQkweDAwZmYsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4YSwgMHgwMDA0LCAweDAwYzgsIDB4MzY5ZCwKLQkweDAwNzksIDB4MmNhYSwgMHgzNjlkLCAweDM0M2UsIDB4MzY5ZCwgMHgzNTk5LCAweGEyODIsIDB4MDAwMCwKLQkweDAwYzAsIDB4MmNiNCwgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwgMHgzNmMxLCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4YTI4MiwgMHgwMDAzLCAweDAwYzAsIDB4MmNjMiwKLQkweDEwNzgsIDB4MjNlYiwgMHhhNDg0LCAweDgwMDAsIDB4MDBjMCwgMHgyY2U1LCAweDcwNmMsIDB4YTAwNSwKLQkweDAwNDAsIDB4MmNjYywgMHgxMDc4LCAweDIzZWIsIDB4NmYxNCwgMHg3NzgyLCAweGE3YmMsIDB4MGYwMCwKLQkweDEwNzgsIDB4MzdlZiwgMHg2MDA4LCAweGEwODUsIDB4MDAyMSwgMHg2MDBhLCAweDg3MzgsIDB4YTc4NCwKLQkweDAwMWYsIDB4MDBjMCwgMHgyY2QwLCAweDEwNzgsIDB4MzZjNSwgMHg3MDZmLCAweDAwMDIsIDB4MjAwOSwKLQkweDUxMzgsIDB4MjAwYiwgMHgwMDA5LCAweDAwNzgsIDB4MmNlNywgMHgxMDc4LCAweDM2ZDEsIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHhhMjgyLCAweDAwMDQsIDB4MDA1MCwKLQkweDJjZjMsIDB4MTA3OCwgMHgyM2ViLCAweDIzMDAsIDB4MDA3OSwgMHgyY2Y2LCAweDJjZjksIDB4MmRlMiwKLQkweDJlMTUsIDB4YTI4NiwgMHgwMDAzLCAweDAwNDAsIDB4MmNmZiwgMHgxMDc4LCAweDIzZWIsIDB4MjAwMSwKLQkweDAwMDAsIDB4MDA3ZSwgMHg2OGMwLCAweGEwMDUsIDB4MDA0MCwgMHgyZDA4LCAweDcwMDMsIDB4MDAwMywKLQkweDY4YTAsIDB4YTA4NCwgMHgyMDAwLCAweDAwNDAsIDB4MmQxMSwgMHg2MDA4LCAweGEwODUsIDB4MDAwMiwKLQkweDYwMGEsIDB4MDA3ZiwgMHg3MDNlLCAweDcwMDAsIDB4YTA4NCwgMHgwMDA3LCAweDAwNzksIDB4MmQxOCwKLQkweDI0ODIsIDB4MmQyMiwgMHgyZDIyLCAweDJmMTcsIDB4MmY1MywgMHgyNDgyLCAweDJmNTMsIDB4MmQyMCwKLQkweDEwNzgsIDB4MjNlYiwgMHhhNjg0LCAweDEwMDAsIDB4MDBjMCwgMHgyZDJhLCAweDEwNzgsIDB4NDc3NiwKLQkweDAwNDAsIDB4MmRiYywgMHg3ODY4LCAweGEwOGMsIDB4MDBmZiwgMHgwMDQwLCAweDJkNzIsIDB4YTE4NiwKLQkweDAwMDgsIDB4MDBjMCwgMHgyZDQxLCAweDEwNzgsIDB4MzNlZSwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwKLQkweDYwMGEsIDB4MTA3OCwgMHgzMzkwLCAweDAwNDAsIDB4MmQ3MiwgMHgxMDc4LCAweDQ3NzYsIDB4MDA3OCwKLQkweDJkNTksIDB4YTE4NiwgMHgwMDI4LCAweDAwYzAsIDB4MmQ3MiwgMHgxMDc4LCAweDQ3NzYsIDB4NjAwOCwKLQkweGEwODQsIDB4ZmZlZiwgMHg2MDBhLCAweDYwMTgsIDB4YTAwNSwgMHgwMDQwLCAweDJkNTksIDB4ODAwMSwKLQkweDYwMWEsIDB4YTAwNSwgMHgwMDQwLCAweDJkNTksIDB4ODAwMSwgMHhhMDA1LCAweDAwNDAsIDB4MmQ1OSwKLQkweDYwMWUsIDB4NjgyMCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwgMHgyNDgyLCAweDY4MjAsIDB4YTA4NCwKLQkweGZmZmUsIDB4NjgyMiwgMHg3MDYwLCAweDBjN2UsIDB4MjA2MCwgMHg2ODAwLCAweDYwMDIsIDB4MGM3ZiwKLQkweDYwMDQsIDB4NjgwMiwgMHhhMDA1LCAweDJkMDAsIDB4MDBjMCwgMHgyZDZmLCAweDYwMDIsIDB4NjAwNiwKLQkweDAwNzgsIDB4MjQ4MiwgMHgwMTdlLCAweDEwNzgsIDB4MmU0NiwgMHgwMTdmLCAweGE2ODQsIDB4ZGYwMCwKLQkweDY4MWUsIDB4NjgyYiwgMHgwMDAwLCAweDZmMTQsIDB4ODFmZiwgMHgwMDQwLCAweDJkYmMsIDB4YTE4NiwKLQkweDAwMDIsIDB4MDBjMCwgMHgyZGJjLCAweGE2ODQsIDB4MDgwMCwgMHgwMGMwLCAweDJkOGYsIDB4YTY4NCwKLQkweDAwNjAsIDB4MDA0MCwgMHgyZDhmLCAweDc4ZDgsIDB4N2FkYywgMHg2ODJlLCAweDZhMzIsIDB4NjgyMCwKLQkweGEwODQsIDB4MDgwMCwgMHgwMGMwLCAweDJkYmMsIDB4ODcxNywgMHhhMjk0LCAweDAwMGYsIDB4ODIxMywKLQkweDgyMTMsIDB4ODIxMywgMHhhMjkwLCAweDUzODAsIDB4YTI5MCwgMHgwMDAwLCAweDIyMWMsIDB4YTM4NCwKLQkweDAxMDAsIDB4MDBjMCwgMHgyZGE1LCAweDAwNzgsIDB4MmRhYiwgMHg4MjEwLCAweDIyMDQsIDB4YTA4NSwKLQkweDAwMTgsIDB4MjAxMiwgMHg4MjExLCAweGEzODQsIDB4MDQwMCwgMHgwMDQwLCAweDJkYjgsIDB4NjhhMCwKLQkweGEwODQsIDB4MDEwMCwgMHgwMGMwLCAweDJkYjgsIDB4MTA3OCwgMHgyZWNhLCAweDAwNzgsIDB4MjQ4MiwKLQkweDYwMDgsIDB4YTA4NSwgMHgwMDAyLCAweDYwMGEsIDB4NjkxNiwgMHg2ODE4LCAweGEwODQsIDB4ODAwMCwKLQkweDAwNDAsIDB4MmRjNCwgMHg3MDNjLCAweDY4MWEsIDB4YTY4YywgMHhkZjAwLCAweDY5MWUsIDB4MTA3OCwKLQkweDMzZGYsIDB4MTA3OCwgMHgzM2VlLCAweDAwYzAsIDB4MmRkMSwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwKLQkweDYwMGEsIDB4NjgyMCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwgMHgyZGRhLCAweDEwNzgsIDB4MzNkOCwKLQkweDAwNzgsIDB4MmRkZSwgMHg3MDYwLCAweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDEwNzgsIDB4MWM3MCwKLQkweDAwNzgsIDB4MjQ4MiwgMHhhMjgyLCAweDAwMDQsIDB4MDA0OCwgMHgyZGU4LCAweDEwNzgsIDB4MjNlYiwKLQkweDIyMDAsIDB4MDA3OSwgMHgyZGViLCAweDJkZTYsIDB4MmRlZiwgMHgyZGZjLCAweDJkZWYsIDB4NzAwMCwKLQkweGEwODYsIDB4MDAwNSwgMHgwMDQwLCAweDJkZjgsIDB4MTA3OCwgMHgzNmMxLCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4Nzg5MCwgMHg4MDA3LCAweDgwMDEsIDB4YTA4NCwKLQkweDAwMDcsIDB4YTA4MCwgMHgwMDE4LCAweDc4OWEsIDB4NzlhOCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKLQkweDAwMDMsIDB4MDA0MCwgMHgyZTExLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDJlMTEsIDB4MDA3OCwKLQkweDM2OWQsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHg2ODIwLCAweGEwODUsIDB4MDAwNCwKLQkweDY4MjIsIDB4ODJmZiwgMHgwMGMwLCAweDJlMjAsIDB4MTA3OCwgMHgzNmMxLCAweDAwNzgsIDB4MmUyNywKLQkweDgyMTEsIDB4MDA0MCwgMHgyZTI1LCAweDEwNzgsIDB4MjNlYiwgMHgxMDc4LCAweDM2ZDEsIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHg3MDJjLCAweDgwMDMsIDB4MDA0OCwKLQkweDJlMzcsIDB4MjAxOSwgMHg0ZDllLCAweDEwNzgsIDB4MjI3NiwgMHg3MDJmLCAweDgwMDAsIDB4MTA3OCwKLQkweDM5MTIsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgyZTQzLCAweDAwMTgsIDB4MmU0MywKLQkweDc5MWEsIDB4YTAwNiwgMHgwMDdjLCAweGEwODUsIDB4MDAwMSwgMHgwMDdjLCAweGE2ODQsIDB4MDA2MCwKLQkweDAwYzAsIDB4MmU1MCwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsIDB4MmVjOSwKLQkweGE2ODQsIDB4MDgwMCwgMHgwMGMwLCAweDJlNzIsIDB4NjhiNCwgMHhhMDg0LCAweDQ4MDAsIDB4YTYzNSwKLQkweGE2ODQsIDB4MDgwMCwgMHgwMGMwLCAweDJlNzIsIDB4Njk5OCwgMHg2YTk0LCAweDY5MmUsIDB4NmEzMiwKLQkweDcwM2MsIDB4YTAwNSwgMHgwMGMwLCAweDJlNmEsIDB4MjIwMCwgMHhhMTA1LCAweDAwNDAsIDB4MmU3MSwKLQkweDcwM2YsIDB4MDAxNSwgMHg3MDAwLCAweGEwODYsIDB4MDAwNiwgMHgwMDQwLCAweDJlNzEsIDB4MTA3OCwKLQkweDQ3NzYsIDB4MDA3YywgMHhhNjg0LCAweDAwMjAsIDB4MDA0MCwgMHgyZTk0LCAweGE2ODQsIDB4NDAwMCwKLQkweDAwNDAsIDB4MmU4MCwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsIDB4MmU2YSwKLQkweDY4YjQsIDB4YTA4NCwgMHg0ODAwLCAweGE2MzUsIDB4YTY4NCwgMHg0MDAwLCAweDAwYzAsIDB4MmU3YSwKLQkweDcwM2MsIDB4YTAwNSwgMHgwMGMwLCAweDJlOGUsIDB4NzAzZiwgMHgwMDE1LCAweDc5ZDgsIDB4N2FkYywKLQkweDY5MmUsIDB4NmEzMiwgMHgwMDc4LCAweDJlNmEsIDB4YTY4NCwgMHg0MDAwLCAweDAwNDAsIDB4MmU5ZSwKLQkweDY4MmYsIDB4MDAwMCwgMHg2ODMzLCAweDAwMDAsIDB4MDA3OCwgMHgyZTZhLCAweDY4YjQsIDB4YTA4NCwKLQkweDQ4MDAsIDB4YTYzNSwgMHhhNjg0LCAweDQwMDAsIDB4MDBjMCwgMHgyZTk4LCAweDcwM2MsIDB4YTAwNSwKLQkweDAwYzAsIDB4MmVhYywgMHg3MDNmLCAweDAwMTUsIDB4NzlkOCwgMHg3YWRjLCAweDc4ZDAsIDB4ODBmYiwKLQkweDAwYzgsIDB4MmViMywgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwKLQkweDY5MmUsIDB4NmEzMiwgMHgyMTAwLCAweGEyMDUsIDB4MDBjMCwgMHgyZWMwLCAweDAwNzgsIDB4MmU2YSwKLQkweDcwMDAsIDB4YTA4NiwgMHgwMDA2LCAweDAwNDAsIDB4MmVjOSwgMHgxMDc4LCAweDRiMzAsIDB4MDA3OCwKLQkweDJlNmEsIDB4MDA3YywgMHg2MDA4LCAweGEwODUsIDB4MDIwMCwgMHg2MDBhLCAweGEzODQsIDB4MDIwMCwKLQkweDAwNDAsIDB4MmVkNiwgMHg2MDA4LCAweGEwODUsIDB4MDAwMiwgMHg2MDBhLCAweDY4MWIsIDB4MDAwNiwKLQkweDY4OGYsIDB4MDAwMCwgMHg2ODkzLCAweDAwMDAsIDB4NmEzMCwgMHg2OTJjLCAweDZhM2UsIDB4Njk0MiwKLQkweDY4MmYsIDB4MDAwMywgMHg2ODMzLCAweDAwMDAsIDB4NjgzNywgMHgwMDIwLCAweDY4OTcsIDB4MDAwMCwKLQkweDY4OWIsIDB4MDAyMCwgMHg2OGIzLCAweDAwMDAsIDB4NjhhZiwgMHgwMDAwLCAweDcwMDAsIDB4MDA3OSwKLQkweDJlZjEsIDB4MjQ4MiwgMHgyZWZiLCAweDJmMDQsIDB4MmVmOSwgMHgyZWY5LCAweDJlZjksIDB4MmVmOSwKLQkweDJlZjksIDB4MTA3OCwgMHgyM2ViLCAweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwYzAsIDB4MmYwNCwKLQkweDEwNzgsIDB4MzNkOCwgMHgwMDc4LCAweDJmMGEsIDB4NzA2MCwgMHgyYzUwLCAweDIwNjAsIDB4NjgwMCwKLQkweDYwMDIsIDB4MmE2MCwgMHgyMDIxLCAweDUxNWEsIDB4MjQwNCwgMHhhMDA1LCAweDAwNDAsIDB4MmYxMywKLQkweDIwMjAsIDB4MDA3OCwgMHgyZjBjLCAweDJkMjIsIDB4MjA2YiwgMHgwMDAwLCAweDAwN2MsIDB4MTA3OCwKLQkweDMzZGYsIDB4MTA3OCwgMHgzM2VlLCAweDYwMDgsIDB4YTA4NCwgMHhmZGZmLCAweDYwMGEsIDB4NjgyYiwKLQkweDAwMDAsIDB4Nzg5YiwgMHgwMDBlLCAweDZmMTQsIDB4NjgxNywgMHgwMDAyLCAweDEwNzgsIDB4NGI3OCwKLQkweGE2ODQsIDB4MDgwMCwgMHgwMDQwLCAweDJmMzAsIDB4NjkxYywgMHhhMThkLCAweDIwMDAsIDB4NjkxZSwKLQkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MmY0MCwgMHg3ODY4LCAweGEwOGMsIDB4MDBmZiwKLQkweDAwNDAsIDB4MmYzZSwgMHg2ODFiLCAweDAwMWUsIDB4MDA3OCwgMHgyZjQwLCAweDY4MWIsIDB4MDAwMCwKLQkweDIwMjEsIDB4NTE1YSwgMHgyNDA0LCAweGFkMDYsIDB4MDA0MCwgMHgyZjQ3LCAweDc0NjAsIDB4NjgwMCwKLQkweDIwMjIsIDB4NjhjMywgMHgwMDAwLCAweDZhM2MsIDB4Njk0MCwgMHg2YTMyLCAweDY5MmUsIDB4MTA3OCwKLQkweDFjNzAsIDB4MDA3OCwgMHgyNDgyLCAweDEwNzgsIDB4MmU0NiwgMHg2ODJiLCAweDAwMDAsIDB4MjAwMSwKLQkweDAwMGUsIDB4NmYxNCwgMHgxMDc4LCAweDM5MTgsIDB4YTA4YywgMHgwMGZmLCAweDY5MTYsIDB4NjgxOCwKLQkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDJmNjYsIDB4NzAzYywgMHg2ODFhLCAweGE2OGMsIDB4ZGYwMCwKLQkweDY5MWUsIDB4NzA2ZiwgMHgwMDAwLCAweDAwNzgsIDB4MjQ4MiwgMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwKLQkweDJmNzMsIDB4MDA3OCwgMHgyNDgyLCAweGEwMDYsIDB4MTA3OCwgMHg0Nzc2LCAweDY4MTcsIDB4MDAwMCwKLQkweDY4MWIsIDB4MDAxNCwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwgMHg2ODJiLCAweDAwMDAsIDB4NjgyMCwKLQkweGEwODUsIDB4MDBmZiwgMHg2ODIyLCAweDcwMDAsIDB4MDA3OSwgMHgyZjg2LCAweDI0ODIsIDB4MmY5MCwKLQkweDJmOTAsIDB4MmY5MiwgMHgyZjkyLCAweDJmOTIsIDB4MmY5MiwgMHgyZjhlLCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4MzNlZSwgMHg2MDA4LCAweGEwODQsIDB4ZmZlZiwgMHg2MDBhLCAweDAwNzgsIDB4MzNhOCwKLQkweDIzMDAsIDB4MDA3OSwgMHgyZjliLCAweDJmOWUsIDB4MmZhMCwgMHgyZmQ5LCAweDEwNzgsIDB4MjNlYiwKLQkweDcwMDAsIDB4MDA3OSwgMHgyZmEzLCAweDI0ODIsIDB4MmZhZCwgMHgyZmFkLCAweDJmYzgsIDB4MmZhZCwKLQkweDJmZDUsIDB4MmZjOCwgMHgyZmFiLCAweDEwNzgsIDB4MjNlYiwgMHhhNjg0LCAweDAwNjAsIDB4YTA4NiwKLQkweDAwNjAsIDB4MDBjMCwgMHgyZmM0LCAweGE2YjQsIDB4ZmZkZiwgMHhhNmI0LCAweGJmZmYsIDB4YTZiNSwKLQkweDIwMDAsIDB4N2U1YSwgMHg2ODFjLCAweGEwODQsIDB4ZmZkZiwgMHg2ODFlLCAweDEwNzgsIDB4NDc3NiwKLQkweDEwNzgsIDB4NGEzYSwgMHgwMDc4LCAweDM4ODgsIDB4YTY4NCwgMHgyMDAwLCAweDAwNDAsIDB4MmZiNywKLQkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MmZkNSwgMHg2ODFiLCAweDAwMTUsIDB4YTY4NCwKLQkweDQwMDAsIDB4MDA0MCwgMHgyZmQ1LCAweDY4MWIsIDB4MDAwNywgMHgxMDc4LCAweDM4OWMsIDB4MDA3OCwKLQkweDI0NTksIDB4MTA3OCwgMHgyM2ViLCAweDIzMDAsIDB4MDA3OSwgMHgyZmRlLCAweDJmZTEsIDB4MmZlMywKLQkweDMwMTYsIDB4MTA3OCwgMHgyM2ViLCAweDcwMDAsIDB4MDA3OSwgMHgyZmU2LCAweDI0ODIsIDB4MmZmMCwKLQkweDJmZjAsIDB4MzAwYiwgMHgyZmYwLCAweDMwMTIsIDB4MzAwYiwgMHgyZmVlLCAweDEwNzgsIDB4MjNlYiwKLQkweGE2ODQsIDB4MDA2MCwgMHhhMDg2LCAweDAwNjAsIDB4MDBjMCwgMHgzMDA3LCAweGE2YjQsIDB4ZmZiZiwKLQkweGE2YjQsIDB4YmZmZiwgMHhhNmI1LCAweDIwMDAsIDB4N2U1YSwgMHg2ODFjLCAweGEwODQsIDB4ZmZiZiwKLQkweDY4MWUsIDB4MTA3OCwgMHg0Nzc2LCAweDEwNzgsIDB4NGEzYSwgMHgwMDc4LCAweDM4ODgsIDB4YTY4NCwKLQkweDIwMDAsIDB4MDA0MCwgMHgyZmZhLCAweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MzAxMiwKLQkweDY4MWIsIDB4MDAwNywgMHg3ODFiLCAweDAwY2QsIDB4MDA3OCwgMHgyNDU5LCAweDY4MjAsIDB4YTA4NSwKLQkweDAwMDQsIDB4NjgyMiwgMHgxMDc4LCAweDM4NTMsIDB4YTZiNSwgMHgwODAwLCAweDEwNzgsIDB4MzZjMSwKLQkweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwgMHgyNDU5LCAweDIzMDAsIDB4MDA3OSwKLQkweDMwMjksIDB4MzAyYywgMHgzMDJlLCAweDMwMzAsIDB4MTA3OCwgMHgyM2ViLCAweDAwNzgsIDB4MzZhZCwKLQkweGE2ODQsIDB4MDQwMCwgMHgwMGMwLCAweDMwNTksIDB4NzllNCwgMHhhMTg0LCAweDAwMjAsIDB4MDA0MCwKLQkweDMwNDAsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgzMDQwLCAweDc4MmIsIDB4MzAwOSwKLQkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4NzllNCwKLQkweGExODQsIDB4MDAyMCwgMHgwMDQwLCAweDMwNTEsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDBjMCwKLQkweDMwNTUsIDB4MjAwMSwgMHgwMDE0LCAweDAwNzgsIDB4MmQwMSwgMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwKLQkweDMwOTEsIDB4N2E5MCwgMHhhMjk0LCAweDAwMDcsIDB4Nzg5YiwgMHgwMDYwLCAweDc5YTgsIDB4ODFmZiwKLQkweDAwNDAsIDB4MzA4ZiwgMHg3ODliLCAweDAwMTAsIDB4N2JhOCwgMHhhMzg0LCAweDAwMDEsIDB4MDBjMCwKLQkweDMwODAsIDB4N2JhOCwgMHg3YmE4LCAweGEzODYsIDB4MDAwMSwgMHgwMGMwLCAweDMwNzMsIDB4MjAwOSwKLQkweGZmZjcsIDB4MDA3OCwgMHgzMDc5LCAweGEzODYsIDB4MDAwMywgMHgwMGMwLCAweDMwODAsIDB4MjAwOSwKLQkweGZmZWYsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4NjAwNCwgMHhhMTA0LCAweDYwMDYsIDB4MGM3ZiwKLQkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4NzgyYiwKLQkweDMwMDksIDB4NjkyMCwgMHhhMThjLCAweGZkZmYsIDB4YTE4YywgMHhmZWZmLCAweDY5MjIsIDB4MDA3OCwKLQkweDM4ODgsIDB4Mjk5ZSwgMHgyOWE5LCAweDMwOWIsIDB4MzBhMywgMHgzMDk5LCAweDMwOTksIDB4Mzg4OCwKLQkweDM4ODgsIDB4MTA3OCwgMHgyM2ViLCAweDY5MjAsIDB4YTE4YywgMHhmZGZmLCAweGExOGMsIDB4ZmVmZiwKLQkweDY5MjIsIDB4MDA3OCwgMHgzODkyLCAweDY5MjAsIDB4YTE4YywgMHhmZGZmLCAweGExOGMsIDB4ZmVmZiwKLQkweDY5MjIsIDB4MDA3OCwgMHgzODg4LCAweDc5ZTQsIDB4YTE4NCwgMHgwMDMwLCAweDAwNDAsIDB4MzBiNSwKLQkweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwYzAsIDB4MzBkYywgMHg3MDAwLCAweGEwODYsIDB4MDAwNCwKLQkweDAwYzAsIDB4MzBjZiwgMHg3MDZjLCAweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDMwYzUsIDB4MjAxMSwKLQkweDAwMDIsIDB4MjAxOSwgMHgwMDAwLCAweDAwNzgsIDB4Mjg0OCwgMHg3MDZjLCAweGEwODYsIDB4MDAwNiwKLQkweDAwNDAsIDB4MzBiZiwgMHg3MDZjLCAweGEwODYsIDB4MDAwNCwgMHgwMDQwLCAweDMwYmYsIDB4NzAwMCwKLQkweGEwODYsIDB4MDAwMCwgMHgwMDQwLCAweDI0NTksIDB4NjgxOCwgMHhhMDg1LCAweDgwMDAsIDB4NjgxYSwKLQkweDIwMDEsIDB4MDAxNCwgMHgwMDc4LCAweDJkMDEsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksIDB4MzBlMCwKLQkweDM4ODgsIDB4Mzg4OCwgMHgzMGU4LCAweDM4ODgsIDB4MzhlZCwgMHgzOGVkLCAweDM4ODgsIDB4Mzg4OCwKLQkweGE2ODQsIDB4MDA4MCwgMHgwMDQwLCAweDMxMTcsIDB4NzE5NCwgMHg4MWZmLCAweDAwNDAsIDB4MzExNywKLQkweGExODIsIDB4MDAwZCwgMHgwMGQwLCAweDMwZjgsIDB4NzA5NywgMHgwMDAwLCAweDAwNzgsIDB4MzBmZCwKLQkweGExODIsIDB4MDAwYywgMHg3MDk2LCAweDIwMDksIDB4MDAwYywgMHg3ODliLCAweDAwNjEsIDB4NzlhYSwKLQkweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDcwOTgsIDB4ODExNCwgMHhhMjEwLCAweDcyOWEsIDB4YTA4MCwKLQkweDAwMGIsIDB4YWQwMCwgMHgyMDk4LCAweDIwYTEsIDB4MDEyYiwgMHg3ODliLCAweDAwMDAsIDB4ODEwOCwKLQkweDgxYWMsIDB4NTNhNiwgMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwgMHgwMDc4LCAweDM4OTIsIDB4YTY4NCwKLQkweDA0MDAsIDB4MDBjMCwgMHgzMTU4LCAweDY4MjAsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4Mzg5MiwKLQkweGE2OGMsIDB4MDA2MCwgMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwgMHgzMTJjLCAweGEwODYsIDB4MDA2MCwKLQkweDAwYzAsIDB4MzEyYywgMHhhMThkLCAweDQwMDAsIDB4YTE4YywgMHhmZmZiLCAweDc5NWEsIDB4NjliNiwKLQkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4Nzg5YiwgMHgwMDYxLCAweDY4MTgsIDB4YTA4NSwKLQkweDgwMDAsIDB4NjgxYSwgMHg3OGFhLCAweDgwMDgsIDB4ODEwYywgMHgwMDQwLCAweDM0MDcsIDB4YTE4YywKLQkweDAwZjgsIDB4MDBjMCwgMHgzNDA3LCAweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDIwYTEsIDB4MDEyYiwKLQkweDc4OWIsIDB4MDAwMCwgMHg4MDAwLCAweDgwYWMsIDB4YWQ4MCwgMHgwMDBiLCAweDIwOTgsIDB4NTNhNiwKLQkweDE0N2YsIDB4MTM3ZiwgMHgxNTdmLCAweDY4MTQsIDB4ODAwNywgMHg3ODgyLCAweDAwNzgsIDB4Mzg5MiwKLQkweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MzE1ZiwgMHg2ODFiLCAweDAwMDgsIDB4NzgxYiwKLQkweDAwYzMsIDB4MDA3OCwgMHgyNDU5LCAweDIzMDAsIDB4MDA3OSwgMHgzMTY2LCAweDMxNmIsIDB4MzIwYSwKLQkweDMxNjksIDB4MTA3OCwgMHgyM2ViLCAweDcwMDAsIDB4YTA4NCwgMHgwMDA3LCAweDAwNzksIDB4MzE3MCwKLQkweDI0ODIsIDB4MzE3YSwgMHgzMWFmLCAweDMxODUsIDB4MzE3OCwgMHgyNDgyLCAweDMxNzgsIDB4MzE3OCwKLQkweDEwNzgsIDB4MjNlYiwgMHg2ODFjLCAweGEwODQsIDB4MjAwMCwgMHgwMDQwLCAweDMxOTMsIDB4NjAwOCwKLQkweGEwODUsIDB4MDAwMiwgMHg2MDBhLCAweDAwNzgsIDB4MzE5MywgMHg2OGMwLCAweGEwMDUsIDB4MDBjMCwKLQkweDMxYWYsIDB4NjkyMCwgMHhhMThkLCAweDAwMDEsIDB4NjkyMiwgMHg2OGMzLCAweDAwMDEsIDB4NjgwMCwKLQkweDcwNmEsIDB4MDA3OCwgMHgzMWE5LCAweDY5MjAsIDB4YTE4ZCwgMHgwMDAxLCAweDY5MjIsIDB4NjgwMCwKLQkweDYwMDYsIDB4YTAwNSwgMHgwMGMwLCAweDMxOWQsIDB4NjAwMiwgMHg2ODFjLCAweGEwODQsIDB4MDAwZSwKLQkweDAwNDAsIDB4MzFhOSwgMHg3MDE0LCAweDY4YmEsIDB4NzEzMCwgMHhhMTg4LCAweDc0MDAsIDB4MDA3OCwKLQkweDMxYWIsIDB4MjAwOSwgMHg3NTAwLCAweDIxMDQsIDB4NjgwMiwgMHgyZDBhLCAweDcxNjIsIDB4NmViNiwKLQkweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDMyMDgsIDB4YTY4NCwgMHgwODAwLCAweDAwYzAsIDB4MzFjMywKLQkweGE2ODQsIDB4N2ZmZiwgMHg2OGI2LCAweDY4OTQsIDB4NjhhNiwgMHg2ODk4LCAweDY4YWEsIDB4MTA3OCwKLQkweDQ3NzYsIDB4MDA3OCwgMHgzMjA4LCAweGE2ODQsIDB4MDAyMCwgMHgwMDQwLCAweDMxZDgsIDB4NjhjMCwKLQkweGEwMDUsIDB4MDA0MCwgMHgzMWNmLCAweDEwNzgsIDB4NGI3OCwgMHgwMDc4LCAweDMxZDIsIDB4YTAwNiwKLQkweDEwNzgsIDB4NGIzMCwgMHg3OWQ4LCAweDdhZGMsIDB4NjlhYSwgMHg2YWE2LCAweDAwNzgsIDB4MzFkZSwKLQkweDEwNzgsIDB4MzdmYywgMHg2OWFhLCAweDZhYTYsIDB4MTA3OCwgMHg0YjMwLCAweGE2ODQsIDB4ODAwMCwKLQkweDAwNDAsIDB4MzIwOCwgMHhhNjg0LCAweDdmZmYsIDB4NjhiNiwgMHgyMDAxLCAweDAwNzYsIDB4MTA3OCwKLQkweDM5MTgsIDB4MjAxMCwgMHgyMDAxLCAweDAwNzgsIDB4MTA3OCwgMHgzOTE4LCAweDIwMDgsIDB4YTY4NCwKLQkweDAwMjAsIDB4MDBjMCwgMHgzMjAwLCAweDIwMDEsIDB4MDA3YSwgMHgxMDc4LCAweDM5MTgsIDB4ODAxYiwKLQkweDAwYzgsIDB4MzFmYiwgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwKLQkweDZiOTgsIDB4MjEwMCwgMHhhMzAyLCAweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwKLQkweDAwNzgsIDB4MjQ4MiwgMHgwMDc4LCAweDM2YWQsIDB4NzAzNywgMHgwMDAwLCAweGEyODIsIDB4MDAwNiwKLQkweDAwNTAsIDB4MzIxNCwgMHgxMDc4LCAweDIzZWIsIDB4NzAwMCwgMHhhMDg0LCAweDAwMDcsIDB4MTBjMCwKLQkweDM5YmUsIDB4MjMwMCwgMHgwMDc5LCAweDMyMWMsIDB4MzIxZiwgMHgzMjQ4LCAweDMyNWMsIDB4MjIwMCwKLQkweDAwNzksIDB4MzIyMiwgMHgzMjQ2LCAweDM2YWQsIDB4MzIyOCwgMHgzMjQ2LCAweDMyNzgsIDB4MzJiYSwKLQkweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDc2MTAsIDB4MjA2OCwgMHg3MDRhLCAweDE1N2UsIDB4MjBhOSwKLQkweDAwMzEsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MDA3MCwgMHgzMjM4LCAweDAwNzgsIDB4MzIzMSwKLQkweDE1N2YsIDB4YWQ4MCwgMHgwMDA5LCAweDcwMzYsIDB4NjgxNywgMHgwMDAwLCAweDY4YjcsIDB4MDcwMCwKLQkweDY4MjMsIDB4MDgwMCwgMHg2ODI3LCAweDAwMDMsIDB4MDA3OCwgMHgzNjlkLCAweDEwNzgsIDB4MjNlYiwKLQkweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDc2MTAsIDB4MjA2OCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwKLQkweDcwMzYsIDB4MjIwMCwgMHgwMDc5LCAweDMyNTQsIDB4MzZhZCwgMHgzMjVhLCAweDMyNWEsIDB4MzI3OCwKLQkweDMyNWEsIDB4MzZhZCwgMHgxMDc4LCAweDIzZWIsIDB4NzAwMywgMHgwMDA1LCAweDIwMDEsIDB4NzYxMCwKLQkweDIwNjgsIDB4NzA0YSwgMHhhZDgwLCAweDAwMDksIDB4NzAzNiwgMHgyMjAwLCAweDAwNzksIDB4MzI2OCwKLQkweDMyNzAsIDB4MzI2ZSwgMHgzMjZlLCAweDMyNzAsIDB4MzI2ZSwgMHgzMjcwLCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4MzZkMSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwKLQkweDcwMDMsIDB4MDAwMiwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwgMHg3ODliLCAweDAwMTgsIDB4N2NhOCwKLQkweGE0ODQsIDB4MDAxZiwgMHhhMjE1LCAweDIwNjksIDB4NzUwMCwgMHgyZDA0LCAweDJkMDgsIDB4NzE2MiwKLQkweDIwNjgsIDB4YTAwNSwgMHgwMDQwLCAweDMyOTMsIDB4NjgxNCwgMHhhMjA2LCAweDAwNDAsIDB4MzJhZiwKLQkweDY4MDAsIDB4MDA3OCwgMHgzMjg2LCAweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDc2MTAsIDB4MjA2OCwKLQkweDcwNGEsIDB4NzAzNiwgMHgxNTdlLCAweDIwYTksIDB4MDAzMSwgMHgyMDAzLCAweDAwMDAsIDB4ODAwMCwKLQkweDAwNzAsIDB4MzJhNCwgMHgwMDc4LCAweDMyOWQsIDB4MTU3ZiwgMHhhZDgwLCAweDAwMDksIDB4NzAzNiwKLQkweDZhMTYsIDB4NjhiNywgMHgwNzAwLCAweDY4MjMsIDB4MDgwMCwgMHg2ODI3LCAweDAwMDMsIDB4NmViNCwKLQkweDdlNWEsIDB4NjgyMCwgMHhhMDg0LCAweDBjMDAsIDB4MDA0MCwgMHgzMzA5LCAweDEwNzgsIDB4MzZjOSwKLQkweDAwNzgsIDB4MzMwOSwgMHg3MDAzLCAweDAwMDIsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsIDB4Nzg5YiwKLQkweDAwMTgsIDB4N2NhOCwgMHhhNDg0LCAweDAwMWYsIDB4YTIxNSwgMHg3OWE4LCAweDc5YTgsIDB4YTE4YywKLQkweDAwZmYsIDB4YTFlOCwgMHg3NDAwLCAweDJkMDQsIDB4MmQwOCwgMHg3MTYyLCAweDIwNjgsIDB4YTAwNSwKLQkweDAwNDAsIDB4MzJkOSwgMHg2ODE0LCAweGEyMDYsIDB4MDA0MCwgMHgzMmY0LCAweDY4MDAsIDB4MDA3OCwKLQkweDMyY2MsIDB4NzAwMywgMHgwMDA1LCAweDIwMDEsIDB4NzYxMCwgMHgyMDY4LCAweDcwNGEsIDB4MTU3ZSwKLQkweDIwYTksIDB4MDAzMSwgMHgyMDAzLCAweDAwMDAsIDB4ODAwMCwgMHgwMDcwLCAweDMyZTksIDB4MDA3OCwKLQkweDMyZTIsIDB4MTU3ZiwgMHhhZDgwLCAweDAwMDksIDB4NzAzNiwgMHg2YTE2LCAweDY4YjcsIDB4MDcwMCwKLQkweDY4MjMsIDB4MDgwMCwgMHg2ODI3LCAweDAwMDMsIDB4NmViNCwgMHg3ZTVhLCAweDY4MjAsIDB4YTA4NCwKLQkweDBjMDAsIDB4MDA0MCwgMHgzMzA5LCAweGEwODQsIDB4MDgwMCwgMHgwMDQwLCAweDMzMDMsIDB4MTA3OCwKLQkweDM2Y2QsIDB4MDA3OCwgMHgzMzA5LCAweDEwNzgsIDB4MzZjOSwgMHg3MDhiLCAweDAwMDAsIDB4MDA3OCwKLQkweDMzMDksIDB4MDI3ZSwgMHg4MjA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKLQkweGEwODAsIDB4NTM4MCwgMHgyMDYwLCAweDcwNTYsIDB4NjAwMCwgMHg3MDVhLCAweDYwMDQsIDB4NzA1ZSwKLQkweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDMzNjEsIDB4NmI5OCwgMHg2Yzk0LCAweDY5YWMsIDB4NjhiMCwKLQkweGExMDUsIDB4MDBjMCwgMHgzMzQzLCAweDdiZDIsIDB4N2JkYSwgMHg3Y2Q2LCAweDdjZGUsIDB4YTZiNCwKLQkweGI3ZmYsIDB4N2U1YSwgMHhhNjg0LCAweDAwNjAsIDB4YTA4NiwgMHgwMDYwLCAweDAwNDAsIDB4MzM2MSwKLQkweDY4YzAsIDB4YTAwNSwgMHgwMDQwLCAweDMzM2MsIDB4NzAwMywgMHgwMDAzLCAweDY4MmIsIDB4MDAwMCwKLQkweDEwNzgsIDB4NGEyOSwgMHgwMDc4LCAweDMzM2UsIDB4MTA3OCwgMHg0YTNhLCAweGE2YjUsIDB4MjAwMCwKLQkweDdlNWEsIDB4MDA3OCwgMHgzMzYxLCAweDY4YjAsIDB4YTMxYSwgMHgyMTAwLCAweGE0MjMsIDB4MjQwMCwKLQkweGEzMDUsIDB4MDA0MCwgMHgzMzYxLCAweDdiZDIsIDB4N2JkYSwgMHg3Y2Q2LCAweDdjZGUsIDB4NjhiMCwKLQkweGE2YjQsIDB4YmZmZiwgMHg3ZTVhLCAweDAwN2UsIDB4NjhjMCwgMHhhMDA1LCAweDAwN2YsIDB4MDA0MCwKLQkweDMzNWYsIDB4NzAwMywgMHgwMDAzLCAweDEwNzgsIDB4NGEyOSwgMHgwMDc4LCAweDMzNjEsIDB4MTA3OCwKLQkweDRhODUsIDB4MDc3ZiwgMHgxMDc4LCAweDM3ZWYsIDB4MjAwOSwgMHgwMDY1LCAweGE2ODQsIDB4MDAwNCwKLQkweDAwNDAsIDB4MzM4MiwgMHg3OGU0LCAweGEwODQsIDB4MDAzMCwgMHgwMDQwLCAweDMzN2EsIDB4NzhlYywKLQkweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDMzN2EsIDB4NzgyYiwgMHgzMDA4LCAweDIwMDksIDB4MDA2NSwKLQkweDAwNzgsIDB4MzM4MiwgMHgwZjdlLCAweDIwNzksIDB4NTEwMCwgMHgxMDc4LCAweDQ3NzYsIDB4MGY3ZiwKLQkweDAwNDAsIDB4MjQ4MiwgMHg3OTFhLCAweDJkMDAsIDB4NzA0YSwgMHg4MjA3LCAweGEwODQsIDB4MDAwZiwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEwODAsIDB4NTM4MCwgMHgyMDQ4LCAweDAwNzgsIDB4MjQ1OSwKLQkweDYwMjAsIDB4YTAwNSwgMHgwMDQwLCAweDMzOWMsIDB4ODAwMSwgMHg2MDIyLCAweDYwMDgsIDB4YTA4NSwKLQkweDAwMDgsIDB4NjAwYSwgMHg3MDEwLCAweDYwMjYsIDB4MDA3YywgMHhhMDA2LCAweDEwNzgsIDB4NDc3NiwKLQkweDY4MTcsIDB4MDAwMCwgMHg2ODFiLCAweDAwMDEsIDB4NjgyMywgMHgwMDQwLCAweDY4MWYsIDB4MDEwMCwKLQkweDcwMDAsIDB4YTA4NCwgMHgwMDA3LCAweDAwNzksIDB4MzNhZCwgMHgyNDgyLCAweDMzYjcsIDB4MzNiNywKLQkweDMzZDQsIDB4MzNiZiwgMHgzM2JkLCAweDMzYmYsIDB4MzNiNSwgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwKLQkweDMzZGYsIDB4MTA3OCwgMHgzM2Q4LCAweDEwNzgsIDB4MWM3MCwgMHgwMDc4LCAweDI0ODIsIDB4NzA2YywKLQkweDcwNmYsIDB4MDAwMCwgMHg3MDkzLCAweDAwMDAsIDB4MDA3OSwgMHgzM2M2LCAweDMzZDAsIDB4MzNkMCwKLQkweDMzY2UsIDB4MzNjZSwgMHgzM2NlLCAweDMzZDAsIDB4MzNjZSwgMHgzM2QwLCAweDAwNzksIDB4Mjg2MSwKLQkweDcwNmYsIDB4MDAwMCwgMHgwMDc4LCAweDI0ODIsIDB4NjgxYiwgMHgwMDAwLCAweDAwNzgsIDB4MmYxNywKLQkweDY4MDAsIDB4YTAwNSwgMHgwMGMwLCAweDMzZGQsIDB4NjAwMiwgMHg2MDA2LCAweDAwN2MsIDB4NjAxMCwKLQkweGEwMDUsIDB4MDA0MCwgMHgzM2U4LCAweDgwMDEsIDB4MDBkMCwgMHgzM2U4LCAweDEwNzgsIDB4MjNlYiwKLQkweDYwMTIsIDB4NjAwOCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwYSwgMHgwMDdjLCAweDYwMTgsIDB4YTAwNSwKLQkweDAwNDAsIDB4MzNmNCwgMHg4MDAxLCAweDYwMWEsIDB4MDA3YywgMHgxMDc4LCAweDM5MTIsIDB4NjgxYiwKLQkweDAwMTgsIDB4MDA3OCwgMHgzNDJiLCAweDEwNzgsIDB4MzkxMiwgMHg2ODFiLCAweDAwMTksIDB4MDA3OCwKLQkweDM0MmIsIDB4MTA3OCwgMHgzOTEyLCAweDY4MWIsIDB4MDAxYSwgMHgwMDc4LCAweDM0MmIsIDB4MTA3OCwKLQkweDM5MTIsIDB4NjgxYiwgMHgwMDAzLCAweDAwNzgsIDB4MzQyYiwgMHg3NzgwLCAweDEwNzgsIDB4MzdlZiwKLQkweDcxODQsIDB4YTE4YywgMHgwMGZmLCAweGExZTgsIDB4NzQwMCwgMHgyZDA0LCAweDJkMDgsIDB4MjA2OCwKLQkweGEwMDUsIDB4MDBjMCwgMHgzNDFkLCAweDAwNzgsIDB4MjQ4MiwgMHg2ODE0LCAweDcyODAsIDB4YTIwNiwKLQkweDAwNDAsIDB4MzQyNSwgMHg2ODAwLCAweDAwNzgsIDB4MzQxNiwgMHg2ODAwLCAweDIwMGEsIDB4NjgxYiwKLQkweDAwMDUsIDB4NzA4YiwgMHgwMDAwLCAweDEwNzgsIDB4MzNkZiwgMHg2ODIwLCAweGEwODQsIDB4MDAwMSwKLQkweDAwYzAsIDB4MzQzNCwgMHgxMDc4LCAweDMzZDgsIDB4MTA3OCwgMHgzM2VlLCAweDY4MWYsIDB4MDAwMCwKLQkweDY4MjMsIDB4MDAyMCwgMHgxMDc4LCAweDFjNzAsIDB4MDA3OCwgMHgyNDgyLCAweGEyODIsIDB4MDAwMywKLQkweDAwYzAsIDB4MzY5ZCwgMHg3ZGE4LCAweGE1YWMsIDB4MDBmZiwgMHg3Y2E4LCAweGE0YTQsIDB4MDBmZiwKLQkweDY5MjAsIDB4YTE4ZCwgMHgwMDgwLCAweDY5MjIsIDB4YTE4NCwgMHgwMTAwLCAweDAwNDAsIDB4MzRhMiwKLQkweGExOGMsIDB4ZmVmZiwgMHg2OTIyLCAweGE0YTQsIDB4MDBmZiwgMHgwMDQwLCAweDM0OGMsIDB4YTQ4MiwKLQkweDAwMGMsIDB4MDA0OCwgMHgzNDVmLCAweDAwNDAsIDB4MzQ1ZiwgMHgyMDIxLCAweDAwMGMsIDB4ODUyYiwKLQkweDg1MmIsIDB4MTA3OCwgMHgzNzYwLCAweDAwNDAsIDB4MzQ2OSwgMHgxMDc4LCAweDM1NWIsIDB4MDA3OCwKLQkweDM0OTUsIDB4MTA3OCwgMHgzNzFiLCAweDBjN2UsIDB4Mjk2MCwgMHg2MDA0LCAweGEwODQsIDB4ZmZmNSwKLQkweDYwMDYsIDB4MTA3OCwgMHgzNTg2LCAweDBjN2YsIDB4NjkyMCwgMHhhMThkLCAweDAxMDAsIDB4NjkyMiwKLQkweDdlNTgsIDB4YTZiNSwgMHgwMDA0LCAweDdlNWEsIDB4YTY4NCwgMHgwNDAwLCAweDAwYzAsIDB4MzQ4NiwKLQkweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNTYsIDB4MDA3OCwgMHgyNDU5LCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4MGM3ZSwgMHgyOTYwLCAweDYwMDQsIDB4YTA4NCwKLQkweGZmZjUsIDB4NjAwNiwgMHgxMDc4LCAweDM1ODYsIDB4MGM3ZiwgMHg3ZTU4LCAweGE2ODQsIDB4MDQwMCwKLQkweDAwYzAsIDB4MzQ5ZSwgMHg3ODFiLCAweDAwNTgsIDB4MDA3OCwgMHgyNDU5LCAweDc4MWIsIDB4MDA2NSwKLQkweDAwNzgsIDB4MjQ1OSwgMHgwYzdlLCAweDcwNTQsIDB4MjA2MCwgMHg2MTAwLCAweGExOGMsIDB4MTAwMCwKLQkweDAwNDAsIDB4MzRlMiwgMHg2MjA4LCAweDgyMTcsIDB4YTI5NCwgMHgwMGZmLCAweGEyODIsIDB4MDAwYywKLQkweDAwNDgsIDB4MzRiNiwgMHgwMDQwLCAweDM0YjYsIDB4MjAxMSwgMHgwMDBjLCAweDI0MDAsIDB4YTIwMiwKLQkweDAwYzgsIDB4MzRiYiwgMHgyMjIwLCAweDYyMDgsIDB4YTI5NCwgMHgwMGZmLCAweDcwMTgsIDB4YTA4NiwKLQkweDAwMjgsIDB4MDBjMCwgMHgzNGNiLCAweGEyODIsIDB4MDAxOSwgMHgwMGM4LCAweDM0ZDEsIDB4MjAxMSwKLQkweDAwMTksIDB4MDA3OCwgMHgzNGQxLCAweGEyODIsIDB4MDAwYywgMHgwMGM4LCAweDM0ZDEsIDB4MjAxMSwKLQkweDAwMGMsIDB4MjIwMCwgMHhhNTAyLCAweDAwYzgsIDB4MzRkNiwgMHgyMjI4LCAweDEwNzgsIDB4MzcxZiwKLQkweDg1MmIsIDB4ODUyYiwgMHgxMDc4LCAweDM3NjAsIDB4MDA0MCwgMHgzNGUyLCAweDEwNzgsIDB4MzU1YiwKLQkweDAwNzgsIDB4MzRlNiwgMHgxMDc4LCAweDM3MWIsIDB4MTA3OCwgMHgzNTg2LCAweDc4NTgsIDB4YTA4NSwKLQkweDAwMDQsIDB4Nzg1YSwgMHgwYzdmLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwKLQkweDI0NTksIDB4MGM3ZSwgMHgyOTYwLCAweDYwMDAsIDB4YTA4NCwgMHgxMDAwLCAweDAwYzAsIDB4MzUwOSwKLQkweDYwMTAsIDB4YTA4NCwgMHgwMDBmLCAweDAwYzAsIDB4MzUwMywgMHg2MTA0LCAweGExOGMsIDB4ZmZmNSwKLQkweDYxMDYsIDB4MGM3ZiwgMHgwMDdjLCAweDIwMTEsIDB4MDAzMiwgMHgyMDE5LCAweDAwMDAsIDB4MDA3OCwKLQkweDM1MzAsIDB4NjhhMCwgMHhhMDg0LCAweDAyMDAsIDB4MDBjMCwgMHgzNTAzLCAweDYyMDgsIDB4YTI5NCwKLQkweDAwZmYsIDB4NzAxOCwgMHhhMDg2LCAweDAwMjgsIDB4MDBjMCwgMHgzNTFlLCAweGEyODIsIDB4MDAxOSwKLQkweDAwYzgsIDB4MzUyNCwgMHgyMDExLCAweDAwMTksIDB4MDA3OCwgMHgzNTI0LCAweGEyODIsIDB4MDAwYywKLQkweDAwYzgsIDB4MzUyNCwgMHgyMDExLCAweDAwMGMsIDB4NjMwOCwgMHg4MzFmLCAweGEzOWMsIDB4MDBmZiwKLQkweGEzODIsIDB4MDAwYywgMHgwMDQ4LCAweDM1MzAsIDB4MDA0MCwgMHgzNTMwLCAweDIwMTksIDB4MDAwYywKLQkweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdhYWEsIDB4N2JhYSwKLQkweGE4YzAsIDB4MDAwNSwgMHg2ODIwLCAweGEwODUsIDB4MDEwMCwgMHg2ODIyLCAweDBjN2YsIDB4MDA3YywKLQkweDBjN2UsIDB4Mjk2MCwgMHhhMThjLCAweGZmZjUsIDB4NjEwNiwgMHgyMDExLCAweDAwMzIsIDB4MjAxOSwKLQkweDAwMDAsIDB4MDA3OCwgMHgzNTRiLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwKLQkweDAwMDEsIDB4N2FhYSwgMHg3YmFhLCAweGE4YzAsIDB4MDAwNSwgMHg2ODIwLCAweGEwODUsIDB4MDEwMCwKLQkweDY4MjIsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsIDB4NzE1NCwgMHgyMTYwLCAweDEwNzgsIDB4MzU2MiwKLQkweDBjN2YsIDB4MDA3YywgMHgyMDA4LCAweGEwODQsIDB4ZmZmMCwgMHhhNDI1LCAweDdjODYsIDB4NjAxOCwKLQkweDc4OWEsIDB4N2NhZSwgMHg2NDEyLCAweDc4YTQsIDB4YTA4NCwgMHhmZmY4LCAweGExOGMsIDB4MDAwNywKLQkweGExMDUsIDB4NzhhNiwgMHg2MDE2LCAweDc4OGEsIDB4YTRhNCwgMHgwMDBmLCAweDg0MjcsIDB4ODIwNCwKLQkweDgwMDQsIDB4YTA4NCwgMHgwMGZmLCAweGE0MDUsIDB4NjAwZSwgMHg3OGVjLCAweGQwOGMsIDB4MDBjMCwKLQkweDM1ODUsIDB4NjAwNCwgMHhhMDg0LCAweGZmZjUsIDB4NjAwNiwgMHgwMDdjLCAweDBjN2UsIDB4NzA1NCwKLQkweDIwNjAsIDB4MTA3OCwgMHgzNThkLCAweDBjN2YsIDB4MDA3YywgMHg2MDE4LCAweDc4OWEsIDB4NzhhNCwKLQkweGEwODQsIDB4ZmZmMCwgMHg3OGE2LCAweDYwMTIsIDB4Nzg4NCwgMHhhMDg0LCAweGZmZjAsIDB4Nzg4NiwKLQkweDAwN2MsIDB4YTI4MiwgMHgwMDAyLCAweDAwYzAsIDB4MzY5ZCwgMHg3YWE4LCAweDY5MjAsIDB4YTE4ZCwKLQkweDAwODAsIDB4NjkyMiwgMHhhMTg0LCAweDAyMDAsIDB4MDA0MCwgMHgzNWUyLCAweGExOGMsIDB4ZmRmZiwKLQkweDY5MjIsIDB4YTI5NCwgMHgwMGZmLCAweGEyODIsIDB4MDAwMiwgMHgwMGM4LCAweDM2OWQsIDB4MTA3OCwKLQkweDM2MmIsIDB4MTA3OCwgMHgzNTg2LCAweGE5ODAsIDB4MDAwMSwgMHgyMDBjLCAweDEwNzgsIDB4MzdlYiwKLQkweDEwNzgsIDB4MzRmMSwgMHg4OGZmLCAweDAwNDAsIDB4MzVkNSwgMHg3ODliLCAweDAwNjAsIDB4MjgwMCwKLQkweDc4YWEsIDB4N2U1OCwgMHhhNmI1LCAweDAwMDQsIDB4N2U1YSwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwKLQkweDM1Y2YsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0NTksIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHg3ZTU4LCAweGE2ODQsIDB4MDQwMCwKLQkweDAwYzAsIDB4MzVkZSwgMHg3ODFiLCAweDAwNTgsIDB4MDA3OCwgMHgyNDU5LCAweDc4MWIsIDB4MDA2NSwKLQkweDAwNzgsIDB4MjQ1OSwgMHhhMjgyLCAweDAwMDIsIDB4MDBjOCwgMHgzNWVhLCAweGEyODQsIDB4MDAwMSwKLQkweDAwNDAsIDB4MzVmNCwgMHg3MTU0LCAweGExODgsIDB4MDAwMCwgMHgyMTBjLCAweGExOGMsIDB4MjAwMCwKLQkweDAwYzAsIDB4MzVmNCwgMHgyMDExLCAweDAwMDAsIDB4MTA3OCwgMHgzNzBkLCAweDEwNzgsIDB4MzYyYiwKLQkweDEwNzgsIDB4MzU4NiwgMHg3ODU4LCAweGEwODUsIDB4MDAwNCwgMHg3ODVhLCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4MGM3ZSwgMHgwMjdlLCAweDI5NjAsIDB4NjAwMCwKLQkweDIwMTEsIDB4MDAwMSwgMHhhMDg0LCAweDIwMDAsIDB4MDBjMCwgMHgzNjFiLCAweDYwMTQsIDB4YTA4NCwKLQkweDAwNDAsIDB4MDBjMCwgMHgzNjE5LCAweGExOGMsIDB4ZmZlZiwgMHg2MTA2LCAweGEwMDYsIDB4MDA3OCwKLQkweDM2MjgsIDB4MjAxMSwgMHgwMDAwLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDIsIDB4NzhhYiwKLQkweDAwMDMsIDB4N2FhYSwgMHhhOGMwLCAweDAwMDQsIDB4NjgyMCwgMHhhMDg1LCAweDAyMDAsIDB4NjgyMiwKLQkweDAyN2YsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsIDB4NzA1NCwgMHgyMDYwLCAweDEwNzgsIDB4MzYzMiwKLQkweDBjN2YsIDB4MDA3YywgMHg4MmZmLCAweDAwNDAsIDB4MzYzNywgMHgyMDExLCAweDAwNDAsIDB4NjAxOCwKLQkweGEwODAsIDB4MDAwMiwgMHg3ODlhLCAweDc4YTQsIDB4YTA4NCwgMHhmZmJmLCAweGEyMDUsIDB4NzhhNiwKLQkweDc4OGEsIDB4NjAxNiwgMHg3OGVjLCAweGQwOGMsIDB4MDBjMCwgMHgzNjRhLCAweDYwMDQsIDB4YTA4NCwKLQkweGZmZWYsIDB4NjAwNiwgMHgwMDdjLCAweDAwN2UsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwKLQkweDM2NTQsIDB4MDA3ZiwgMHgwMDc4LCAweDM2NTcsIDB4MDA3ZiwgMHgwMDc4LCAweDM2OTksIDB4YTY4NCwKLQkweDAwMjAsIDB4MDA0MCwgMHgzNjk5LCAweDc4ODgsIDB4YTA4NCwgMHgwMDQwLCAweDAwNDAsIDB4MzY5OSwKLQkweDdiYjgsIDB4YTM4NCwgMHgwMDNmLCAweDgzMWIsIDB4MDBjOCwgMHgzNjY3LCAweDgwMDAsIDB4YTAwNSwKLQkweDAwNDAsIDB4MzY3ZCwgMHg4MzFiLCAweDAwYzgsIDB4MzY3MCwgMHg4MDAxLCAweDAwNDAsIDB4MzY5NSwKLQkweGE2ODQsIDB4NDAwMCwgMHgwMDQwLCAweDM2N2QsIDB4NzhiOCwgMHg4MDFiLCAweDAwYzgsIDB4MzY3OSwKLQkweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweDAwYzAsIDB4MzY5NSwgMHhhNmI0LCAweGJmZmYsIDB4N2U1YSwKLQkweDc5ZDgsIDB4N2FkYywgMHgyMDAxLCAweDAwMDEsIDB4YTEwOCwgMHgwMGM4LCAweDM2ODksIDB4YTI5MSwKLQkweDAwMDAsIDB4NzlkMiwgMHg3OWRhLCAweDdhZDYsIDB4N2FkZSwgMHgxMDc4LCAweDRiMzAsIDB4NzgxYiwKLQkweDAwNjQsIDB4MTA3OCwgMHg0OWI1LCAweDAwNzgsIDB4MjQ1OSwgMHg3ODFiLCAweDAwNjQsIDB4MDA3OCwKLQkweDI0NTksIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHgxMDc4LCAweDM2ZDUsIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHgxMDc4LCAweDM2YzEsIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjQ1OSwgMHg2ODI3LCAweDAwMDIsIDB4MTA3OCwKLQkweDM2YzksIDB4NzhlNCwgMHhhMDg0LCAweDAwMzAsIDB4MDA0MCwgMHgyNDgyLCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDMsIDB4MDA0MCwgMHgyNDgyLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwKLQkweDI0NTksIDB4MjAwMSwgMHgwMDA1LCAweDAwNzgsIDB4MzZkNywgMHgyMDAxLCAweDAwMGMsIDB4MDA3OCwKLQkweDM2ZDcsIDB4MjAwMSwgMHgwMDA2LCAweDAwNzgsIDB4MzZkNywgMHgyMDAxLCAweDAwMGQsIDB4MDA3OCwKLQkweDM2ZDcsIDB4MjAwMSwgMHgwMDA5LCAweDAwNzgsIDB4MzZkNywgMHgyMDAxLCAweDAwMDcsIDB4Nzg5YiwKLQkweDAwMTAsIDB4NzhhYSwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwgMHgwMDAxLCAweGE2YjUsIDB4MDAwNCwKLQkweDdlNWEsIDB4MDA3YywgMHgwNzdlLCAweDg3M2YsIDB4YTdiYywgMHgwMDBmLCAweDg3M2IsIDB4ODczYiwKLQkweDg3MDMsIDB4YTBlMCwgMHg1MzgwLCAweGE3YjgsIDB4MDAyMCwgMHg3ZjlhLCAweDc5YTQsIDB4YTE4NCwKLQkweDAwMGYsIDB4MDA0MCwgMHgzNmZiLCAweGExODQsIDB4ZmZmMCwgMHg3OGE2LCAweDYwMTIsIDB4NjAwNCwKLQkweGEwODUsIDB4MDAwOCwgMHg2MDA2LCAweDg3MzgsIDB4ODczOCwgMHg3ZjlhLCAweDc5YTQsIDB4YTE4NCwKLQkweDAwNDAsIDB4MDA0MCwgMHgzNzBiLCAweGExODQsIDB4ZmZiZiwgMHg3OGE2LCAweDYwMTYsIDB4NjAwNCwKLQkweGEwODUsIDB4MDAxMCwgMHg2MDA2LCAweDA3N2YsIDB4MDA3YywgMHg3ODliLCAweDAwMTAsIDB4NzhhYiwKLQkweDAwMDEsIDB4NzhhYiwgMHgwMDAyLCAweDc4YWIsIDB4MDAwMywgMHg3YWFhLCAweDc4OWIsIDB4MDA2MCwKLQkweDc4YWIsIDB4MDAwNCwgMHgwMDdjLCAweDIwMjEsIDB4MDAwMCwgMHgyMDI5LCAweDAwMzIsIDB4Nzg5YiwKLQkweDAwMTAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMywgMHg3OGFiLCAweDAwMDEsIDB4N2RhYSwKLQkweDdjYWEsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwNSwgMHgwMDdjLCAweDE1N2UsIDB4ODAwNywKLQkweGEwODQsIDB4MDBmZiwgMHg4MDAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDc4OWEsIDB4NzlhNCwKLQkweGExOGMsIDB4ZmZmMCwgMHgyMDAxLCAweDUxNDYsIDB4MjAwNCwgMHhhMDgyLCAweDAwMjgsIDB4MDA0MCwKLQkweDM3NDksIDB4MjAyMSwgMHgzN2QyLCAweDIwMTksIDB4MDAxNCwgMHgyMGE5LCAweDAwMGMsIDB4MDA3OCwKLQkweDM3NGYsIDB4MjAyMSwgMHgzN2RlLCAweDIwMTksIDB4MDAxOSwgMHgyMGE5LCAweDAwMGQsIDB4MjAxMSwKLQkweDAwNjQsIDB4MjQwNCwgMHhhMDg0LCAweGZmZjAsIDB4YTEwNiwgMHgwMDQwLCAweDM3NWUsIDB4ODQyMCwKLQkweDIzMDAsIDB4YTIxMCwgMHgwMDcwLCAweDM3NWUsIDB4MDA3OCwgMHgzNzUxLCAweDE1N2YsIDB4MDA3YywKLQkweDE1N2UsIDB4MjAwOSwgMHg1MTQ2LCAweDIxMGMsIDB4YTE4MiwgMHgwMDMyLCAweDAwNDgsIDB4Mzc3NCwKLQkweDAwNDAsIDB4Mzc3OCwgMHgyMDA5LCAweDM3YzQsIDB4MjAxOSwgMHgwMDExLCAweDIwYTksIDB4MDAwZSwKLQkweDIwMTEsIDB4MDAzMiwgMHgwMDc4LCAweDM3OGEsIDB4YTE4MiwgMHgwMDI4LCAweDAwNDAsIDB4Mzc4MiwKLQkweDIwMDksIDB4MzdkMiwgMHgyMDE5LCAweDAwMTQsIDB4MjBhOSwgMHgwMDBjLCAweDIwMTEsIDB4MDA2NCwKLQkweDAwNzgsIDB4Mzc4YSwgMHgyMDA5LCAweDM3ZGUsIDB4MjAxOSwgMHgwMDE5LCAweDIwYTksIDB4MDAwZCwKLQkweDIwMTEsIDB4MDA2NCwgMHgyMjAwLCAweGE1MDIsIDB4MDA0MCwgMHgzNzlhLCAweDAwNDgsIDB4Mzc5YSwKLQkweDgxMDgsIDB4MjMwMCwgMHhhMjEwLCAweDAwNzAsIDB4Mzc5NywgMHgwMDc4LCAweDM3OGEsIDB4MTU3ZiwKLQkweGEwMDYsIDB4MDA3YywgMHgxNTdmLCAweGE1ODIsIDB4MDA2NCwgMHgwMGM4LCAweDM3YTksIDB4NzgwOCwKLQkweGEwODUsIDB4MDA3MCwgMHg3ODBhLCAweDcwNDQsIDB4YTA4NSwgMHgwMDcwLCAweDcwNDYsIDB4MDA3OCwKLQkweDM3YTksIDB4NzhlYywgMHhhMDg0LCAweDAzMDAsIDB4MDA0MCwgMHgzN2IxLCAweDIxMDQsIDB4MDA3OCwKLQkweDM3YzIsIDB4MjEwNCwgMHhhMDllLCAweDExMDIsIDB4MDBjMCwgMHgzN2MyLCAweDIwMDEsIDB4MDRmZCwKLQkweDIwMDQsIDB4YTA4MiwgMHgwMDA1LCAweDAwNDgsIDB4MzdjMSwgMHgyMDAxLCAweDEyMDEsIDB4MDA3OCwKLQkweDM3YzIsIDB4MjEwNCwgMHhhMDA1LCAweDAwN2MsIDB4MTEwMiwgMHgzMDAyLCAweDMyMDIsIDB4NDIwMywKLQkweDQ0MDMsIDB4NTQwNCwgMHg1NjA0LCAweDY2MDUsIDB4NjgwNSwgMHg3ODA2LCAweDdhMDYsIDB4MGMwNywKLQkweDBjMDcsIDB4MGUwNywgMHgzMjAyLCAweDQyMDIsIDB4NTIwMiwgMHg2MjAyLCAweDcyMDIsIDB4NjYwNSwKLQkweDc2MDUsIDB4NzgwNSwgMHg3YTA1LCAweDdjMDUsIDB4N2UwNSwgMHg3ZjA1LCAweDIyMDIsIDB4MzIwMiwKLQkweDQyMDIsIDB4NTIwMiwgMHg1NDA0LCAweDY0MDQsIDB4NzQwNCwgMHg3NjA0LCAweDc4MDQsIDB4N2EwNCwKLQkweDdjMDQsIDB4N2UwNCwgMHg3ZjA0LCAweDc4OWIsIDB4MDAxMCwgMHhhMDQ2LCAweDAwN2MsIDB4YTc4NCwKLQkweDBmMDAsIDB4ODAwYiwgMHhhNzg0LCAweDAwMWYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKLQkweGExMDUsIDB4YTBlMCwgMHg1NDAwLCAweDAwN2MsIDB4NzlkOCwgMHg3YWRjLCAweDc4ZDAsIDB4ODAxYiwKLQkweDAwYzgsIDB4MzgwMywgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwKLQkweDAwN2MsIDB4MGY3ZSwgMHgyMDc5LCAweDAxMDAsIDB4MjAwOSwgMHg1MTQwLCAweDIwOTEsIDB4ODAwMCwKLQkweDIxMDQsIDB4MDA3OSwgMHgzODEzLCAweDM4NDksIDB4MzgxZCwgMHgzODFkLCAweDM4MWQsIDB4MzgxZCwKLQkweDM4MWQsIDB4MzgxZCwgMHgzODRkLCAweDEwNzgsIDB4MjNlYiwgMHg3ODRiLCAweDAwMDQsIDB4Nzg0OCwKLQkweGEwODQsIDB4MDAwNCwgMHgwMGMwLCAweDM4MWYsIDB4Nzg0YiwgMHgwMDA4LCAweDc4NDgsIDB4YTA4NCwKLQkweDAwMDgsIDB4MDBjMCwgMHgzODI2LCAweDY4YjQsIDB4YTA4NSwgMHg0MDAwLCAweDY4YjYsIDB4Nzg1OCwKLQkweGEwODUsIDB4NDAwMCwgMHg3ODVhLCAweDc4MzAsIDB4YTA4NCwgMHgwMDgwLCAweDAwYzAsIDB4Mzg0OSwKLQkweDAwMTgsIDB4Mzg0OSwgMHg2ODFjLCAweGEwODQsIDB4MDAyMCwgMHgwMGMwLCAweDM4NDcsIDB4MGU3ZSwKLQkweDIwNzEsIDB4NTE0MCwgMHgxMDc4LCAweDM4OWMsIDB4MGU3ZiwgMHgwMDc4LCAweDM4NDksIDB4NzgxYiwKLQkweDAwY2QsIDB4MjA5MSwgMHg4MDAxLCAweDBmN2YsIDB4MDA3YywgMHg3MGIzLCAweDAwMDAsIDB4MTA3OCwKLQkweDNhNzYsIDB4MDA3OCwgMHgzODQ5LCAweDBjN2UsIDB4NjgxNCwgMHg4MDA3LCAweGEwODQsIDB4MDAwZiwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEwZTAsIDB4NTM4MCwgMHg2MDA0LCAweGEwODQsIDB4MDAwYSwKLQkweDAwYzAsIDB4Mzg4NiwgMHg2MTA4LCAweGExOTQsIDB4ZmYwMCwgMHgwMDQwLCAweDM4ODYsIDB4YTE4YywKLQkweDAwZmYsIDB4MjAwMSwgMHgwMDE5LCAweGExMDYsIDB4MDA0MCwgMHgzODc1LCAweDIwMDEsIDB4MDAzMiwKLQkweGExMDYsIDB4MDA0MCwgMHgzODc5LCAweDAwNzgsIDB4Mzg3ZCwgMHgyMDA5LCAweDAwMjAsIDB4MDA3OCwKLQkweDM4N2YsIDB4MjAwOSwgMHgwMDNmLCAweDAwNzgsIDB4Mzg3ZiwgMHgyMDExLCAweDAwMDAsIDB4MjEwMCwKLQkweGEyMDUsIDB4NjAwYSwgMHg2MDA0LCAweGEwODUsIDB4MDAwMiwgMHg2MDA2LCAweDBjN2YsIDB4MDA3YywKLQkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0NTksIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA2NSwKLQkweDAwNzgsIDB4MjQ1OSwgMHg3ODFiLCAweDAwNTgsIDB4MDA3OCwgMHgyNDU5LCAweDc4MmIsIDB4MzAwOCwKLQkweDc4MWIsIDB4MDA1NiwgMHgwMDc4LCAweDI0NTksIDB4MjAwOSwgMHg1MTIwLCAweDIxMGMsIDB4YTE4NiwKLQkweDAwMDAsIDB4MDA0MCwgMHgzOGIwLCAweGExODYsIDB4MDAwMSwgMHgwMDQwLCAweDM4YjMsIDB4MjAwOSwKLQkweDUxMzgsIDB4MjAwYiwgMHgwMDBiLCAweDcwNmYsIDB4MDAwMSwgMHg3ODFiLCAweDAwNDgsIDB4MDA3YywKLQkweDc4MWIsIDB4MDBjNywgMHgwMDdjLCAweDIwMDksIDB4NTEzOCwgMHgyMDBiLCAweDAwMGEsIDB4MDA3YywKLQkweDIwMDksIDB4NTEyMCwgMHgyMTBjLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDM4ZDMsIDB4YTE4NiwKLQkweDAwMDEsIDB4MDA0MCwgMHgzOGNkLCAweDIwMDksIDB4NTEzOCwgMHgyMDBiLCAweDAwMGIsIDB4NzA2ZiwKLQkweDAwMDEsIDB4NzgxYiwgMHgwMDQ4LCAweDAwNzgsIDB4MjQ1OSwgMHgyMDA5LCAweDUxMzgsIDB4MjAwYiwKLQkweDAwMGEsIDB4MDA3OCwgMHgyNDU5LCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwYzcsIDB4MDA3OCwKLQkweDI0NTksIDB4NzgxYiwgMHgwMGNkLCAweDAwNzgsIDB4MjQ1OSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKLQkweDAwY2QsIDB4MDA3OCwgMHgyNDU5LCAweDc4MWIsIDB4MDA4ZSwgMHgwMDc4LCAweDI0NTksIDB4NzgyYiwKLQkweDMwMDgsIDB4NzgxYiwgMHgwMDhlLCAweDAwNzgsIDB4MjQ1OSwgMHg2ODE4LCAweGEwODQsIDB4ODAwMCwKLQkweDAwNDAsIDB4MzhmNCwgMHg2ODFiLCAweDAwMWQsIDB4NzA2ZiwgMHgwMDAxLCAweDc4MWIsIDB4MDA0OCwKLQkweDAwNzgsIDB4MjQ1OSwgMHgwMDdlLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MzkxMCwKLQkweDc4MDgsIDB4YTA4NCwgMHhmZmZjLCAweDc4MGEsIDB4MDAwNSwgMHgwMDA1LCAweDAwMDUsIDB4MDAwNSwKLQkweDc4ZWMsIDB4YTA4NCwgMHgwMDIxLCAweDAwNDAsIDB4MzkxMCwgMHg3MDQ0LCAweDc4MGEsIDB4YTAwNSwKLQkweDAwN2YsIDB4MDA3YywgMHg3MDQ0LCAweGEwODUsIDB4MDAwMiwgMHg3MDQ2LCAweDc4MGEsIDB4MDA3YywKLQkweDAwN2UsIDB4NzgzMCwgMHhhMDg0LCAweDAwNDAsIDB4MDBjMCwgMHgzOTE5LCAweDAwOTgsIDB4MzkyNCwKLQkweDAwN2YsIDB4Nzg5YSwgMHg3OGFjLCAweDAwN2MsIDB4NzgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NzgwYSwKLQkweDAwMDUsIDB4MDAwNSwgMHgwMDA1LCAweDAwMDUsIDB4NzhlYywgMHhhMDg0LCAweDAwMjEsIDB4MDA0MCwKLQkweDM5MzMsIDB4MDA5OCwgMHgzOTMxLCAweDAwN2YsIDB4Nzg5YSwgMHg3OGFjLCAweDAwN2UsIDB4NzA0NCwKLQkweDc4MGEsIDB4MDA3ZiwgMHgwMDdjLCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAyLCAweDAwYzAsIDB4NDc2MCwKLQkweGE3ODQsIDB4MDA3ZCwgMHgwMGMwLCAweDM5NDcsIDB4MjcwMCwgMHgxMDc4LCAweDIzZWIsIDB4YTc4NCwKLQkweDAwMDEsIDB4MDBjMCwgMHgyZjZkLCAweGE3ODQsIDB4MDA3MCwgMHgwMDQwLCAweDM5NTcsIDB4MGM3ZSwKLQkweDJkNjAsIDB4MmY2OCwgMHgxMDc4LCAweDIzOTYsIDB4MmQ3OCwgMHgyYzY4LCAweDBjN2YsIDB4YTc4NCwKLQkweDAwMDgsIDB4MDA0MCwgMHgzOTY0LCAweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKLQkweDAwNDAsIDB4MjQ4MiwgMHgwMDc4LCAweDM4ODgsIDB4YTc4NCwgMHgwMDA0LCAweDAwNDAsIDB4Mzk5NywKLQkweDc4YjgsIDB4YTA4NCwgMHg0MDAxLCAweDAwNDAsIDB4Mzk5NywgMHg3ODRiLCAweDAwMDgsIDB4NzhlYywKLQkweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDI0ODIsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDcsIDB4YTA4NiwKLQkweDAwMDEsIDB4MDBjMCwgMHgzOTk3LCAweDc4YzAsIDB4YTA4NSwgMHg0ODAwLCAweDIwMzAsIDB4N2U1YSwKLQkweDc4MWIsIDB4MDBjZCwgMHgwMDc4LCAweDI0NTksIDB4Nzg0YiwgMHgwMDA4LCAweDY4MTgsIDB4YTA4NCwKLQkweDgwMDAsIDB4MDA0MCwgMHgzOTkzLCAweDY4MWIsIDB4MDAxNSwgMHhhNjg0LCAweDQwMDAsIDB4MDA0MCwKLQkweDM5OTMsIDB4NjgxYiwgMHgwMDA3LCAweDEwNzgsIDB4Mzg5YywgMHgwMDc4LCAweDI0NTksIDB4NjgxYiwKLQkweDAwMDMsIDB4Nzg1OCwgMHhhMDg0LCAweDNmMDAsIDB4NjgxZSwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywKLQkweDAwMDAsIDB4Nzg0YiwgMHgwMDA4LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwNDAsIDB4Mjk2NSwKLQkweDAwMTgsIDB4MjQ1OSwgMHgwMDc4LCAweDM2YTUsIDB4NmIxNCwgMHg4MzA3LCAweGEwODQsIDB4MDAwZiwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEwODAsIDB4NTM4MCwgMHgyMDYwLCAweDIwNDgsIDB4NzA1NiwKLQkweDYwMDAsIDB4NzA1YSwgMHg2MDA0LCAweDcwNWUsIDB4MmE2MCwgMHgwMDdjLCAweDAwNzksIDB4MzljMCwKLQkweDM5YzgsIDB4MzljOSwgMHgzOWM4LCAweDM5Y2IsIDB4MzljOCwgMHgzOWM4LCAweDM5YzgsIDB4MzlkMCwKLQkweDAwN2MsIDB4MTA3OCwgMHgzM2VlLCAweDEwNzgsIDB4NDc3NiwgMHg3MDM4LCAweDYwMGEsIDB4MDA3YywKLQkweDcwYTAsIDB4YTAwNSwgMHgwMDQwLCAweDM5ZGQsIDB4MjA2OCwgMHgxMDc4LCAweDFiNjIsIDB4MTA3OCwKLQkweDQ2ZjgsIDB4MTA3OCwgMHg0NmZmLCAweDcwYTMsIDB4MDAwMCwgMHgwMDdjLCAweDBlN2UsIDB4MjA5MSwKLQkweDgwMDAsIDB4MjA3MSwgMHg1MTQwLCAweDcwMDAsIDB4YTA4NiwgMHgwMDA3LCAweDAwYzAsIDB4MzlmNCwKLQkweDYxMTAsIDB4NzBiYywgMHhhMTA2LCAweDAwYzAsIDB4MzlmNCwgMHgwZTdmLCAweDEwNzgsIDB4MWI2ZiwKLQkweDEwNzgsIDB4MzlmYSwgMHhhMDA2LCAweDAwN2MsIDB4MjA5MSwgMHg4MDAxLCAweDBlN2YsIDB4YTA4NSwKLQkweDAwMDEsIDB4MDA3YywgMHgwZjdlLCAweDBlN2UsIDB4MjA3MSwgMHg1MTQwLCAweDAwNzgsIDB4MjFmYSwKLQkweDc4NWIsIDB4MDAwMCwgMHg3MGFmLCAweDAwMGUsIDB4MjAwOSwgMHgwMTAwLCAweDAxN2UsIDB4NzBhMCwKLQkweGEwNmQsIDB4MDA0MCwgMHgzYTBmLCAweDcwYTMsIDB4MDAwMCwgMHgwMDc4LCAweDNhMTUsIDB4NzBiMywKLQkweDAwMDAsIDB4MTA3OCwgMHgxYjhiLCAweDAwNDAsIDB4M2ExYiwgMHg3MGFjLCAweDY4MjYsIDB4MTA3OCwKLQkweDNhZjgsIDB4MDA3OCwgMHgzYTBmLCAweDAxN2YsIDB4MTU3ZSwgMHgwYzdlLCAweDBkN2UsIDB4MjBhOSwKLQkweDAwMDgsIDB4MjA2MSwgMHg3NTEwLCAweDYwMDAsIDB4YTEwNSwgMHg2MDAyLCAweDYwMWMsIDB4YTA2ZCwKLQkweDAwNDAsIDB4M2EzMywgMHg2ODAwLCAweDYwMWUsIDB4MTA3OCwgMHgxOTVhLCAweDYwMDgsIDB4ODAwMCwKLQkweDYwMGEsIDB4MDA3OCwgMHgzYTI2LCAweDYwMTgsIDB4YTA2ZCwgMHgwMDQwLCAweDNhM2QsIDB4NjgwMCwKLQkweDYwMWEsIDB4MTA3OCwgMHgxOTVhLCAweDAwNzgsIDB4M2EzMywgMHhhY2UwLCAweDAwMDgsIDB4MDA3MCwKLQkweDNhNDMsIDB4MDA3OCwgMHgzYTIzLCAweDcwOWMsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4M2E0YSwKLQkweDEwNzgsIDB4M2I3MiwgMHgwZDdmLCAweDBjN2YsIDB4MTU3ZiwgMHgwMDdjLCAweDEyN2UsIDB4MjA5MSwKLQkweDIzMDAsIDB4NjgwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDA3OSwgMHgzYTU2LCAweDNhNjYsIDB4M2E2NiwKLQkweDNhNjYsIDB4M2E2NiwgMHgzYTY2LCAweDNhNjYsIDB4M2E2OCwgMHgzYTZlLCAweDNhNjYsIDB4M2E2NiwKLQkweDNhNjYsIDB4M2E2NiwgMHgzYTY2LCAweDNhNzAsIDB4M2E2NiwgMHgzYTY4LCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4NDRkMCwgMHgxMDc4LCAweDE5NWEsIDB4MDA3OCwgMHgzYTc0LCAweDY4MjcsIDB4MDAwYiwKLQkweDEwNzgsIDB4NDRkMCwgMHgxMDc4LCAweDNhZjgsIDB4MTI3ZiwgMHgwMDdjLCAweDEyN2UsIDB4MjA5MSwKLQkweDIzMDAsIDB4MDA5OCwgMHgzYTkyLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4M2E5MiwKLQkweDBkN2UsIDB4MTA3OCwgMHg0NzA4LCAweDJkMDAsIDB4NjgyZSwgMHgyMDA5LCAweDAwMDQsIDB4MjAwMSwKLQkweDAwMDAsIDB4NjgyNywgMHgwMDg0LCAweDEwNzgsIDB4NDZjMSwgMHgxMDc4LCAweDNhZjgsIDB4MGQ3ZiwKLQkweDAwNzgsIDB4M2FjNiwgMHg3OTQ4LCAweGExODUsIDB4NDAwMCwgMHg3ODRhLCAweDAwOTgsIDB4M2E5YiwKLQkweDc5NGEsIDB4MDA3OCwgMHgzYTgwLCAweDc4MjgsIDB4YTA4NiwgMHgxODM0LCAweDAwYzAsIDB4M2FhNCwKLQkweGExODUsIDB4MDAwNCwgMHgwMDc4LCAweDNhYWIsIDB4NzgyOCwgMHhhMDg2LCAweDE4MTQsIDB4MDBjMCwKLQkweDNhOTgsIDB4YTE4NSwgMHgwMDBjLCAweDc4NGEsIDB4Nzg5YiwgMHgwMDBlLCAweDc4YWIsIDB4MDAwMiwKLQkweDc4NTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwODUsIDB4MDQwMCwgMHg3ODVhLCAweDcwYjQsIDB4YTA4MCwKLQkweDAwOTEsIDB4NzgxYSwgMHg2ODI3LCAweDAyODQsIDB4NjgyYywgMHg2ODM2LCAweDY4MzAsIDB4NjgzYSwKLQkweDIwMDksIDB4MDAwNCwgMHgyMDAxLCAweDAwMDAsIDB4MTA3OCwgMHg0NmMxLCAweDEyN2YsIDB4MDA3YywKLQkweDBkN2UsIDB4NmIxNCwgMHgxMDc4LCAweDFiZmQsIDB4MDA0MCwgMHgzYWQ1LCAweDIwNjgsIDB4NjgyNywKLQkweDAwMDIsIDB4MTA3OCwgMHgzYWY4LCAweDAwNzgsIDB4M2FjYSwgMHgwZDdmLCAweDAwN2MsIDB4MGQ3ZSwKLQkweDZiMTQsIDB4NmMyOCwgMHhhNGE0LCAweDAwZmYsIDB4MTA3OCwgMHgxYjliLCAweDAwNDAsIDB4M2FlNSwKLQkweDIwNjgsIDB4NjgyNywgMHgwMDAyLCAweDEwNzgsIDB4M2FmOCwgMHgwZDdmLCAweDAwN2MsIDB4MGQ3ZSwKLQkweDZiMTQsIDB4YTM5YywgMHgwMGZmLCAweDEwNzgsIDB4MWJjZSwgMHgwMDQwLCAweDNhZjYsIDB4MjA2OCwKLQkweDY4MjcsIDB4MDAwMiwgMHgxMDc4LCAweDNhZjgsIDB4MDA3OCwgMHgzYWViLCAweDBkN2YsIDB4MDA3YywKLQkweDBjN2UsIDB4NjkxNCwgMHgxMDc4LCAweDNiNjksIDB4NjkwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKLQkweDAwMDYsIDB4MDA0MCwgMHgzYjEzLCAweGExODYsIDB4MDAwZCwgMHgwMDQwLCAweDNiMzIsIDB4YTE4NiwKLQkweDAwMTcsIDB4MDBjMCwgMHgzYjBmLCAweDEwNzgsIDB4MTk1YSwgMHgwMDc4LCAweDNiMTEsIDB4MTA3OCwKLQkweDFjNzIsIDB4MGM3ZiwgMHgwMDdjLCAweDYwMDQsIDB4ODAwMSwgMHgwMDQ4LCAweDNiMzAsIDB4NjAwNiwKLQkweDIwMDksIDB4MDAwMCwgMHhhNjg0LCAweDAwMDEsIDB4MDBjMCwgMHgzYjIwLCAweGExOGQsIDB4ODAwMCwKLQkweGE2ODQsIDB4MDAwNCwgMHgwMDQwLCAweDNiMjYsIDB4YTE4ZCwgMHgwMDAyLCAweDY5MWUsIDB4NjgyMywKLQkweDAwMDAsIDB4NzEwNCwgMHg4MTBmLCAweDY4MTgsIDB4YTEwNSwgMHg2ODFhLCAweDAwNzgsIDB4M2IwZiwKLQkweDEwNzgsIDB4MjNlYiwgMHg2MDE4LCAweGEwMDUsIDB4MDBjMCwgMHgzYjQxLCAweDYwMDgsIDB4ODAwMSwKLQkweDAwNDgsIDB4M2I0MSwgMHg2MDBhLCAweDYwMWMsIDB4NjgwMiwgMHgyZDAwLCAweDYwMWUsIDB4MDA3OCwKLQkweDNiNTcsIDB4YWM4OCwgMHgwMDA2LCAweDIxMDQsIDB4YTAwNSwgMHgwMDQwLCAweDNiNGEsIDB4MjAwOCwKLQkweDAwNzgsIDB4M2I0MywgMHg2ODAyLCAweDJkMGEsIDB4NjAwOCwgMHg4MDAxLCAweDAwNDgsIDB4M2IxMSwKLQkweDYwMGEsIDB4NjAxOCwgMHgyMDY4LCAweDY4MDAsIDB4NjAxYSwgMHgwMDc4LCAweDNiM2IsIDB4MTU3ZSwKLQkweDEzN2UsIDB4MTQ3ZSwgMHgwYzdlLCAweDBkN2UsIDB4MTA3OCwgMHgxOTM3LCAweDJkYTAsIDB4MTM3ZiwKLQkweDIwYTksIDB4MDAzMSwgMHg1M2EzLCAweDBjN2YsIDB4MTQ3ZiwgMHgxMzdmLCAweDE1N2YsIDB4MDA3OCwKLQkweDNiMGYsIDB4YTE4NCwgMHgwMDFmLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEwODAsIDB4NzUxMCwKLQkweDIwNjAsIDB4MDA3YywgMHgyMDE5LCAweDUxNTEsIDB4MjMwNCwgMHhhMDg1LCAweDAwMDEsIDB4MjAxYSwKLQkweDIwMTksIDB4MDEwMiwgMHgyMzA0LCAweGEwODUsIDB4MDAwMSwgMHgyMDFhLCAweDAwN2MsIDB4MjAxOSwKLQkweDUxNTEsIDB4MjMwNCwgMHhhMDg0LCAweGZmZmUsIDB4MjAxYSwgMHgyMDE5LCAweDAxMDIsIDB4MjMwNCwKLQkweGEwODQsIDB4ZmZmZSwgMHgyMDFhLCAweDAwN2MsIDB4Nzk5MCwgMHhhMThjLCAweGZmZjgsIDB4Nzk5MiwKLQkweDcwYjQsIDB4YTA4MCwgMHgwMGRkLCAweDc4MWEsIDB4MDA3OCwgMHgyNDU5LCAweDcwYTMsIDB4MDAwMCwKLQkweDcwMDMsIDB4MDAwMCwgMHg3MDQzLCAweDAwMDEsIDB4NzAzNywgMHgwMDAwLCAweDAwMTgsIDB4MjQxMCwKLQkweDEwNzgsIDB4MWI4YiwgMHgwMDQwLCAweDNiYzcsIDB4MjAwOSwgMHg1MTBmLCAweDIwMGIsIDB4MDAwMCwKLQkweDY4YmMsIDB4MjA2MCwgMHg2MTAwLCAweGExODQsIDB4MDMwMCwgMHgwMDQwLCAweDNiYmIsIDB4NjgyNywKLQkweDAwMGUsIDB4YTA4NCwgMHgwMjAwLCAweDAwNDAsIDB4M2JiNywgMHg2ODI3LCAweDAwMTcsIDB4MTA3OCwKLQkweDNhZjgsIDB4MDA3OCwgMHgzYjk2LCAweDcwMDAsIDB4YTA4NiwgMHgwMDA3LCAweDAwYzAsIDB4M2MyOSwKLQkweDJkMDAsIDB4NzBhMiwgMHhhZDgwLCAweDAwMGYsIDB4NzAzNiwgMHgwMDc4LCAweDNiY2UsIDB4NzA0MCwKLQkweGEwODYsIDB4MDAwMSwgMHgwMDQwLCAweDI0OTIsIDB4MDA3OCwgMHgyNDU5LCAweDIwMzEsIDB4MDAwMCwKLQkweDY5MWMsIDB4YTE4NCwgMHgwMDAyLCAweDAwNDAsIDB4M2JkNywgMHhhNmI1LCAweDAwMDQsIDB4YTE4NCwKLQkweDAwYzAsIDB4ODAwMywgMHg4MDAzLCAweDgwMDcsIDB4YTA4MCwgMHgzY2MyLCAweDIwMDQsIDB4YTYzNSwKLQkweDY4MjAsIDB4YTA4NCwgMHgwNDAwLCAweDAwNDAsIDB4M2JlZiwgMHg3ODliLCAweDAwMTgsIDB4NzhhYiwKLQkweDAwMDMsIDB4Nzg5YiwgMHgwMDgxLCAweDc4YWIsIDB4MDAwMSwgMHhhNmI1LCAweDEwMDAsIDB4NjgyMCwKLQkweGEwODQsIDB4ODAwMCwgMHgwMGMwLCAweDNiZmQsIDB4NjgxYywgMHhhMDg0LCAweDgwMDAsIDB4MDBjMCwKLQkweDNjMDQsIDB4YTZiNSwgMHgwODAwLCAweDAwNzgsIDB4M2MwNCwgMHhhNmI1LCAweDA0MDAsIDB4Nzg5YiwKLQkweDAwMGUsIDB4NjgyNCwgMHg4MDA3LCAweDc4YWEsIDB4NjgyMCwgMHhhMDg0LCAweDAxMDAsIDB4MDA0MCwKLQkweDNjMGIsIDB4YTZiNSwgMHg0MDAwLCAweGE2ODQsIDB4MDIwMCwgMHgwMDQwLCAweDNjMjUsIDB4NjgyYywKLQkweDc4ZDIsIDB4NjgzMCwgMHg3OGQ2LCAweGE2ODQsIDB4MDEwMCwgMHgwMDQwLCAweDNjMjMsIDB4NjgyYywKLQkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDNjMjMsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwKLQkweDNjMjMsIDB4YTZiNSwgMHg4MDAwLCAweDEwNzgsIDB4NDZmMCwgMHg3ZTVhLCAweDZlYjYsIDB4MDA3OCwKLQkweDQ3MjcsIDB4MTA3OCwgMHgzOGZhLCAweDAwYzAsIDB4M2NiYywgMHg3MDJjLCAweDgwMDQsIDB4MDA0OCwKLQkweDNjMzcsIDB4MjAxOSwgMHg0ZTNiLCAweDEwNzgsIDB4MjI3NiwgMHg3MDJmLCAweDAwMDEsIDB4MjA0MSwKLQkweDAwMDEsIDB4MjAzMSwgMHgxMDAwLCAweDc4OWIsIDB4MDAxOCwgMHg2ODE0LCAweGEwODQsIDB4MDAxZiwKLQkweGEwODUsIDB4MDA4MCwgMHg3OGFhLCAweDY5MWMsIDB4YTE4NCwgMHgwMDAyLCAweDAwNDAsIDB4M2M1MCwKLQkweGE2YjUsIDB4MDAwNCwgMHg3OGFiLCAweDAwMjAsIDB4NjgyOCwgMHg3OGFhLCAweGE4YzAsIDB4MDAwMiwKLQkweDY4MWMsIDB4ZDBmNCwgMHgwMDQwLCAweDNjNTksIDB4MmM1MCwgMHgxMDc4LCAweDM5YWMsIDB4MTA3OCwKLQkweDQ1ZmYsIDB4NjgyMCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgzYzY3LCAweGE2YjUsIDB4MDQwMCwKLQkweDc4OWIsIDB4MDAwZSwgMHg2ODI0LCAweDgwMDcsIDB4NzhhYSwgMHgwMDc4LCAweDNjNmUsIDB4NjgxYywKLQkweGEwODQsIDB4ODAwMCwgMHgwMGMwLCAweDNjNmUsIDB4YTZiNSwgMHgwODAwLCAweDY4MjAsIDB4YTA4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHgzYzc1LCAweGE2YjUsIDB4NDAwMCwgMHg2ODFjLCAweGEwODQsIDB4MDBjMCwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDA3LCAweGEwODAsIDB4M2NjMiwgMHgyMDA0LCAweGE2MzUsIDB4YTY4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHgzYzhmLCAweDY4MmMsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4M2M4ZiwKLQkweDc4ODgsIDB4YTA4NCwgMHgwMDQwLCAweDAwNDAsIDB4M2M4ZiwgMHhhNmI1LCAweDgwMDAsIDB4Nzg5YiwKLQkweDAwN2UsIDB4N2VhZSwgMHg2ZWI2LCAweDY4MTQsIDB4ODAwNywgMHg3OGFhLCAweDc4ODIsIDB4MjgxMCwKLQkweDdhYWEsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgzY2JjLCAweDAwMTgsIDB4M2NiYywKLQkweDcwYjQsIDB4YTA4MCwgMHgwMGUyLCAweDc4MWEsIDB4MTA3OCwgMHgzOTEyLCAweGE2ODQsIDB4MDIwMCwKLQkweDAwNDAsIDB4M2NiMCwgMHg2ODJjLCAweDc4ZDIsIDB4NjgzMCwgMHg3OGQ2LCAweDEwNzgsIDB4NDZmMCwKLQkweDJkMDAsIDB4NzBhMiwgMHg3MDRhLCAweDY4MTAsIDB4NzBiZSwgMHg3MDAzLCAweDAwMDcsIDB4YWQ4MCwKLQkweDAwMGYsIDB4NzAzNiwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHgxYjYyLCAweDEwNzgsIDB4MzkxMiwKLQkweDAwNzgsIDB4MjQ1OSwgMHgwMDAwLCAweDAzMDAsIDB4MDIwMCwgMHgwMDAwLCAweDEwNzgsIDB4MjNlYiwKLQkweDIzMDAsIDB4MDA3OSwgMHgzY2NiLCAweDNjY2UsIDB4M2NjZSwgMHgzY2QwLCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4NDZmZiwgMHg2OTI0LCAweGExODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMGEsIDB4MDA0MCwKLQkweDNjZTIsIDB4YTE4NCwgMHhmZjAwLCAweGEwODUsIDB4MDAwYSwgMHg2ODI2LCAweDEwNzgsIDB4MWI2MiwKLQkweDAwNzgsIDB4M2I5NiwgMHgyMDAxLCAweDAwMGEsIDB4MTA3OCwgMHg0NjkxLCAweDAwNzgsIDB4M2I5NiwKLQkweGEyODIsIDB4MDAwNSwgMHgwMDUwLCAweDNjZWUsIDB4MTA3OCwgMHgyM2ViLCAweDcwMDAsIDB4YTA4NCwKLQkweDAwMDcsIDB4MTBjMCwgMHgzOWJlLCAweDEwNzgsIDB4MTkzNywgMHgwMGMwLCAweDNkMGQsIDB4YTY4NCwKLQkweDAwMDQsIDB4MDA0MCwgMHgzY2ZmLCAweDIwMDEsIDB4MjgwMCwgMHgwMDc4LCAweDNkMDEsIDB4MjAwMSwKLQkweDA4MDAsIDB4NzFiNCwgMHhhMTg4LCAweDAwOTEsIDB4Nzg5YiwgMHgwMDBlLCAweDc4YWEsIDB4MjAzMSwKLQkweDA0MDAsIDB4N2U1YSwgMHg3OTFhLCAweDAwNzgsIDB4MjQ1OSwgMHg2ODA3LCAweDAxMDYsIDB4NjgwYiwKLQkweDAwMDAsIDB4Njg5ZiwgMHgwMDAwLCAweDY4MjcsIDB4MDAwMCwgMHhhMzg2LCAweDAwMDIsIDB4MDBjMCwKLQkweDNkMmUsIDB4YTI4NiwgMHgwMDAyLCAweDAwYzAsIDB4M2QyZSwgMHg3OGEwLCAweGEwMDUsIDB4MDBjMCwKLQkweDNkMmUsIDB4YTQ4NCwgMHg4MDAwLCAweDAwYzAsIDB4M2QyZSwgMHg3OGU0LCAweGEwODQsIDB4MDAwOCwKLQkweDAwNDAsIDB4M2QyZSwgMHhhNmI1LCAweDAwMDgsIDB4MjAxOSwgMHgwMDAwLCAweDEwNzgsIDB4NDExZSwKLQkweDJkMDAsIDB4NzBhMiwgMHg3MDRhLCAweDcwMDMsIDB4MDAwNywgMHg3MDM3LCAweDAwMDAsIDB4NjgyNCwKLQkweGEwODQsIDB4MDA4MCwgMHgwMDQwLCAweDNkNDAsIDB4MTA3OCwgMHg0MWQwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDIzMDAsIDB4MDA3OSwgMHgzZDQzLCAweDNkNDYsIDB4M2RjNywgMHgzZGU2LCAweDIyMDAsIDB4MDA3OSwKLQkweDNkNDksIDB4M2Q0ZSwgMHgzZDVlLCAweDNkODQsIDB4M2Q5MCwgMHgzZGIzLCAweDIwMjksIDB4MDAwMSwKLQkweGEwMjYsIDB4MjAxMSwgMHgwMDAwLCAweDEwNzgsIDB4NDJmMSwgMHgwMDc5LCAweDNkNTcsIDB4M2Q1YywKLQkweDI0NTksIDB4M2I5NiwgMHgzZDVjLCAweDNkNWMsIDB4MTA3OCwgMHgyM2ViLCAweDc5OTAsIDB4YTE4YywKLQkweDAwMDcsIDB4MDBjMCwgMHgzZDY1LCAweDIwMDksIDB4MDAwOCwgMHgyMDExLCAweDAwMDEsIDB4YTY4NCwKLQkweDAwMDQsIDB4MDA0MCwgMHgzZDZkLCAweDIwMTEsIDB4MDAwMywgMHgyMjIwLCAweGExMmEsIDB4MjAxMSwKLQkweDAwMDEsIDB4MTA3OCwgMHg0MmYxLCAweDAwNzksIDB4M2Q3NSwgMHgzZDdhLCAweDI0NTksIDB4M2I5NiwKLQkweDNkODIsIDB4M2Q3YywgMHgwMDc4LCAweDQ3MmQsIDB4NzBhYiwgMHgzZDgwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDAwNzgsIDB4M2Q3YSwgMHgxMDc4LCAweDIzZWIsIDB4YTY4NCwgMHgwMDEwLCAweDAwNDAsIDB4M2Q4ZSwKLQkweDEwNzgsIDB4NDE5ZiwgMHgwMDQwLCAweDNkOGUsIDB4MDA3OCwgMHgyNDU5LCAweDAwNzgsIDB4NDIwYywKLQkweDYwMDAsIDB4YTA4NCwgMHgwMDAyLCAweDAwNDAsIDB4M2RhZCwgMHg3MGI0LCAweGEwODAsIDB4MDBkMiwKLQkweDc4MWEsIDB4MGQ3ZSwgMHgxMDc4LCAweDQ3MDgsIDB4MmQwMCwgMHg2ODJlLCAweDY4MjcsIDB4MDAwMCwKLQkweDEwNzgsIDB4M2FmOCwgMHgwZDdmLCAweDEwNzgsIDB4MTk1YSwgMHg3MDAzLCAweDAwMDAsIDB4NzAzNywKLQkweDAwMDAsIDB4NzA0YiwgMHgwMDAwLCAweDAwNzgsIDB4M2I5NiwgMHhhNjg0LCAweDAwMDQsIDB4MDBjMCwKLQkweDNkYjMsIDB4MDA3OCwgMHg0NzJkLCAweDYwMDAsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsIDB4M2RjNSwKLQkweDYwMDAsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4M2RjNSwgMHg3MGFiLCAweDNkYzUsIDB4MjAwMSwKLQkweDAwMDcsIDB4MTA3OCwgMHg0Njg5LCAweDAwNzgsIDB4NDczMywgMHgwMDc4LCAweDQ3MmQsIDB4MjIwMCwKLQkweDAwNzksIDB4M2RjYSwgMHgzZGNmLCAweDNkY2YsIDB4M2RjZiwgMHgzZGQxLCAweDNkY2YsIDB4MTA3OCwKLQkweDIzZWIsIDB4NzBhNywgMHgzZGQ1LCAweDAwNzgsIDB4NDczOSwgMHgyMDExLCAweDAwMTgsIDB4MTA3OCwKLQkweDQyZWIsIDB4MDA3OSwgMHgzZGRiLCAweDNkZTAsIDB4MjQ1OSwgMHgzYjk2LCAweDNkZTIsIDB4M2RlNCwKLQkweDEwNzgsIDB4MjNlYiwgMHgxMDc4LCAweDIzZWIsIDB4MTA3OCwgMHgyM2ViLCAweDIyMDAsIDB4MDA3OSwKLQkweDNkZTksIDB4M2RlZSwgMHgzZGYwLCAweDNkZjAsIDB4M2RlZSwgMHgzZGVlLCAweDEwNzgsIDB4MjNlYiwKLQkweDc4ZTQsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4M2UwNSwgMHg3MGE3LCAweDNkZjksIDB4MDA3OCwKLQkweDQ3MzksIDB4MjAxMSwgMHgwMDA0LCAweDEwNzgsIDB4NDJlYiwgMHgwMDc5LCAweDNkZmYsIDB4M2UwNSwKLQkweDI0NTksIDB4M2I5NiwgMHgzZTA1LCAweDNlMGYsIDB4M2UxMywgMHg3MGFiLCAweDNlMGQsIDB4MjAwMSwKLQkweDAwMDMsIDB4MTA3OCwgMHg0Njg5LCAweDAwNzgsIDB4NDczMywgMHgwMDc4LCAweDQ3MmQsIDB4NzBhYiwKLQkweDNlMDUsIDB4MDA3OCwgMHgyNDU5LCAweDcwYWIsIDB4M2UxNywgMHgwMDc4LCAweDI0NTksIDB4MDA3OCwKLQkweDNlMGQsIDB4YTI4MiwgMHgwMDAzLCAweDAwNTAsIDB4M2UxZiwgMHgxMDc4LCAweDIzZWIsIDB4YTM4NiwKLQkweDAwMDIsIDB4MDBjMCwgMHgzZTM4LCAweGEyODYsIDB4MDAwMiwgMHgwMGMwLCAweDNlM2UsIDB4NzhhMCwKLQkweGEwMDUsIDB4MDBjMCwgMHgzZTNlLCAweGE0ODQsIDB4ODAwMCwgMHgwMGMwLCAweDNlM2UsIDB4NzhlNCwKLQkweGEwODQsIDB4MDAwOCwgMHgwMDQwLCAweDNlMzgsIDB4YTZiNSwgMHgwMDA4LCAweDIwMTksIDB4MDAwMCwKLQkweGE2ODQsIDB4MDAwOCwgMHgwMDQwLCAweDNlM2UsIDB4MTA3OCwgMHg0MTdjLCAweDY4MTAsIDB4NzBiZSwKLQkweDcwMDMsIDB4MDAwNywgMHgyMzAwLCAweDAwNzksIDB4M2U0NSwgMHgzZTQ4LCAweDNlNzUsIDB4M2U3ZCwKLQkweDIyMDAsIDB4MDA3OSwgMHgzZTRiLCAweDNlNTAsIDB4M2U0ZSwgMHgzZTY5LCAweDEwNzgsIDB4MjNlYiwKLQkweDc5OTAsIDB4YTFhYywgMHgwMDA3LCAweGEwMjYsIDB4MjAxMSwgMHgwMDAxLCAweDEwNzgsIDB4NDJmMSwKLQkweDAwNzksIDB4M2U1YSwgMHgzZTVmLCAweDI0NTksIDB4M2I5NiwgMHgzZTY3LCAweDNlNjEsIDB4MDA3OCwKLQkweDQ3MmQsIDB4NzBhYiwgMHgzZTY1LCAweDAwNzgsIDB4MjQ1OSwgMHgwMDc4LCAweDNlNWYsIDB4MTA3OCwKLQkweDIzZWIsIDB4YTY4NCwgMHgwMDEwLCAweDAwNDAsIDB4M2U3MywgMHgxMDc4LCAweDQxOWYsIDB4MDA0MCwKLQkweDNlNzMsIDB4MDA3OCwgMHgyNDU5LCAweDAwNzgsIDB4NDIwYywgMHgyMjAwLCAweDAwNzksIDB4M2U3OCwKLQkweDNlN2IsIDB4M2U3YiwgMHgzZTdiLCAweDEwNzgsIDB4MjNlYiwgMHgyMjAwLCAweDAwNzksIDB4M2U4MCwKLQkweDNlODMsIDB4M2U4NSwgMHgzZTg1LCAweDEwNzgsIDB4MjNlYiwgMHg3OGU0LCAweGEwODQsIDB4MDAwOCwKLQkweDAwNDAsIDB4M2U5YSwgMHg3MGE3LCAweDNlOGUsIDB4MDA3OCwgMHg0NzM5LCAweDIwMTEsIDB4MDAwNCwKLQkweDEwNzgsIDB4NDJlYiwgMHgwMDc5LCAweDNlOTQsIDB4M2U5YSwgMHgyNDU5LCAweDNiOTYsIDB4M2U5YSwKLQkweDNlYTQsIDB4M2VhOCwgMHg3MGFiLCAweDNlYTIsIDB4MjAwMSwgMHgwMDAzLCAweDEwNzgsIDB4NDY4OSwKLQkweDAwNzgsIDB4NDczMywgMHgwMDc4LCAweDQ3MmQsIDB4NzBhYiwgMHgzZTlhLCAweDAwNzgsIDB4MjQ1OSwKLQkweDcwYWIsIDB4M2VhYywgMHgwMDc4LCAweDI0NTksIDB4MDA3OCwgMHgzZWEyLCAweDIzMDAsIDB4MDA3OSwKLQkweDNlYjEsIDB4M2ViNiwgMHgzZWI4LCAweDNlYjQsIDB4MTA3OCwgMHgyM2ViLCAweDcwYTQsIDB4MDA3YSwKLQkweDcwYTQsIDB4MDA3YSwgMHhhMjgyLCAweDAwMDIsIDB4MDA1MCwgMHgzZWMwLCAweDEwNzgsIDB4MjNlYiwKLQkweGE2ODQsIDB4MDIwMCwgMHgwMDQwLCAweDNlY2EsIDB4MTA3OCwgMHg0NmY4LCAweDEwNzgsIDB4NDJkMywKLQkweDEwNzgsIDB4NDZmZiwgMHgyMzAwLCAweDAwNzksIDB4M2VjZCwgMHgzZWQwLCAweDNlZjQsIDB4M2Y1YSwKLQkweGEyODYsIDB4MDAwMSwgMHgwMDQwLCAweDNlZDYsIDB4MTA3OCwgMHgyM2ViLCAweGE2ODQsIDB4MDIwMCwKLQkweDAwNDAsIDB4M2VkZSwgMHgxMDc4LCAweDQ2ZjgsIDB4MTA3OCwgMHg0NmZmLCAweDIwMDEsIDB4MDAwMSwKLQkweDEwNzgsIDB4NDY5MSwgMHg3OGI4LCAweGEwODQsIDB4YzAwMSwgMHgwMDQwLCAweDNlZjAsIDB4Nzg0OCwKLQkweGEwODUsIDB4MDAwOCwgMHg3ODRhLCAweDc4NDgsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsIDB4M2VlYiwKLQkweDcwMDMsIDB4MDAwMCwgMHgwMDc4LCAweDNiOTYsIDB4MjIwMCwgMHgwMDc5LCAweDNlZjcsIDB4M2VmOSwKLQkweDNmMmEsIDB4NzBhNywgMHgzZWZkLCAweDAwNzgsIDB4NDczOSwgMHgyMDExLCAweDAwMGQsIDB4MTA3OCwKLQkweDQyZWIsIDB4MDA3OSwgMHgzZjAzLCAweDNmMGEsIDB4MjQ1OSwgMHgzYjk2LCAweDNmMTIsIDB4M2YxYSwKLQkweDNmMjAsIDB4M2YyMiwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwKLQkweDAwNzgsIDB4NDcyNywgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwKLQkweDAwNzgsIDB4NDcyNywgMHg3MGFiLCAweDNmMWUsIDB4MDA3OCwgMHgyNDU5LCAweDAwNzgsIDB4M2YwYSwKLQkweDEwNzgsIDB4MjNlYiwgMHg3MGFiLCAweDNmMjYsIDB4MDA3OCwgMHgyNDU5LCAweDEwNzgsIDB4NDczZiwKLQkweDAwNzgsIDB4MjQ1OSwgMHg3MGE3LCAweDNmMmUsIDB4MDA3OCwgMHg0NzM5LCAweDIwMTEsIDB4MDAxMiwKLQkweDEwNzgsIDB4NDJlYiwgMHgwMDc5LCAweDNmMzQsIDB4M2YzYSwgMHgyNDU5LCAweDNiOTYsIDB4M2Y0NiwKLQkweDNmNGUsIDB4M2Y1NCwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwKLQkweDcwYjQsIDB4YTA4MCwgMHgwMGE2LCAweDc4MWEsIDB4MDA3OCwgMHgyNDU5LCAweGE2YjQsIDB4MDBmZiwKLQkweGE2YjUsIDB4MDQwMCwgMHg2ZWI2LCAweDdlNWEsIDB4MDA3OCwgMHg0NzI3LCAweDcwYWIsIDB4M2Y1MiwKLQkweDAwNzgsIDB4MjQ1OSwgMHgwMDc4LCAweDNmM2EsIDB4NzBhYiwgMHgzZjU4LCAweDAwNzgsIDB4MjQ1OSwKLQkweDAwNzgsIDB4M2Y0NiwgMHhhMjg2LCAweDAwMDEsIDB4MDA0MCwgMHgzZjYwLCAweDEwNzgsIDB4MjNlYiwKLQkweDcwYTcsIDB4M2Y2NCwgMHgwMDc4LCAweDQ3MzksIDB4MjAxMSwgMHgwMDE1LCAweDEwNzgsIDB4NDJlYiwKLQkweDAwNzksIDB4M2Y2YSwgMHgzZjZmLCAweDI0NTksIDB4M2I5NiwgMHgzZjdkLCAweDNmODksIDB4YTZiNCwKLQkweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwgMHg3ODNiLCAweDEzMDEsIDB4NzBiNCwKLQkweGEwODAsIDB4MDBiNCwgMHg3ODFhLCAweDAwNzgsIDB4MjQ1OSwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwKLQkweDA0MDAsIDB4NmViNiwgMHg3ZTVhLCAweDcwYjQsIDB4YTA4MCwgMHgwMGE2LCAweDc4MWEsIDB4MDA3OCwKLQkweDI0NTksIDB4NzBhYiwgMHgzZjhkLCAweDAwNzgsIDB4MjQ1OSwgMHgwMDc4LCAweDNmNmYsIDB4YTI4MiwKLQkweDAwMDMsIDB4MDA1MCwgMHgzZjk1LCAweDEwNzgsIDB4MjNlYiwgMHgyMzAwLCAweDAwNzksIDB4M2Y5OCwKLQkweDNmOWIsIDB4M2ZkMiwgMHg0MDJkLCAweGEyODYsIDB4MDAwMSwgMHgwMDQwLCAweDNmYTEsIDB4MTA3OCwKLQkweDIzZWIsIDB4NjgwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwgMHgwMDA2LCAweDAwYzAsIDB4M2ZhZSwKLQkweDEwNzgsIDB4M2FmOCwgMHg3MDAzLCAweDAwMDAsIDB4MDA3OCwgMHgzYjk2LCAweDY4M2IsIDB4MDAwMCwKLQkweDY4MzcsIDB4MDAwMCwgMHhhNjg0LCAweDAyMDAsIDB4MDA0MCwgMHgzZmJjLCAweDEwNzgsIDB4NDZmOCwKLQkweDEwNzgsIDB4NDJkMywgMHgxMDc4LCAweDQ2ZmYsIDB4MjAwMSwgMHgwMDAxLCAweDEwNzgsIDB4NDY5MSwKLQkweDc4YjgsIDB4YTA4NCwgMHhjMDAxLCAweDAwNDAsIDB4M2ZjZSwgMHg3ODQ4LCAweGEwODUsIDB4MDAwOCwKLQkweDc4NGEsIDB4Nzg0OCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwgMHgzZmM5LCAweDcwMDMsIDB4MDAwMCwKLQkweDAwNzgsIDB4M2I5NiwgMHgyMjAwLCAweDAwNzksIDB4M2ZkNSwgMHgzZmQ3LCAweDQwMDgsIDB4NzBhNywKLQkweDNmZGIsIDB4MDA3OCwgMHg0NzM5LCAweDIwMTEsIDB4MDAwZCwgMHgxMDc4LCAweDQyZWIsIDB4MDA3OSwKLQkweDNmZTEsIDB4M2ZlOCwgMHgyNDU5LCAweDNiOTYsIDB4M2ZmMCwgMHgzZmY4LCAweDNmZmUsIDB4NDAwMCwKLQkweGE2YjQsIDB4MDBmZiwgMHhhNmI1LCAweDA4MDAsIDB4NmViNiwgMHg3ZTVhLCAweDAwNzgsIDB4NDcyNywKLQkweGE2YjQsIDB4MDBmZiwgMHhhNmI1LCAweDA4MDAsIDB4NmViNiwgMHg3ZTVhLCAweDAwNzgsIDB4NDcyNywKLQkweDcwYWIsIDB4M2ZmYywgMHgwMDc4LCAweDI0NTksIDB4MDA3OCwgMHgzZmU4LCAweDEwNzgsIDB4MjNlYiwKLQkweDcwYWIsIDB4NDAwNCwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHg0NzNmLCAweDAwNzgsIDB4MjQ1OSwKLQkweDcwYTcsIDB4NDAwYywgMHgwMDc4LCAweDQ3MzksIDB4MjAxMSwgMHgwMDA1LCAweDEwNzgsIDB4NDJlYiwKLQkweDAwNzksIDB4NDAxMiwgMHg0MDE3LCAweDI0NTksIDB4M2I5NiwgMHg0MDFmLCAweDQwMjcsIDB4YTZiNCwKLQkweDAwZmYsIDB4YTZiNSwgMHgwODAwLCAweDZlYjYsIDB4N2U1YSwgMHgwMDc4LCAweDQ3MjcsIDB4YTZiNCwKLQkweDAwZmYsIDB4YTZiNSwgMHgwODAwLCAweDZlYjYsIDB4N2U1YSwgMHgwMDc4LCAweDQ3MjcsIDB4NzBhYiwKLQkweDQwMmIsIDB4MDA3OCwgMHgyNDU5LCAweDAwNzgsIDB4NDAxNywgMHhhMjg2LCAweDAwMDEsIDB4MDA0MCwKLQkweDQwMzMsIDB4MTA3OCwgMHgyM2ViLCAweDcwYTcsIDB4NDAzNywgMHgwMDc4LCAweDQ3MzksIDB4MjAxMSwKLQkweDAwMDYsIDB4MTA3OCwgMHg0MmViLCAweDAwNzksIDB4NDAzZCwgMHg0MDQyLCAweDI0NTksIDB4M2I5NiwKLQkweDQwNDgsIDB4NDA1MiwgMHhhNmI1LCAweDA4MDAsIDB4NmViNiwgMHg3ZTVhLCAweDAwNzgsIDB4NDcyNywKLQkweGE2YjQsIDB4MDBmZiwgMHhhNmI1LCAweDA4MDAsIDB4NmViNiwgMHhhNmI1LCAweDQwMDAsIDB4N2U1YSwKLQkweDAwNzgsIDB4NDcyNywgMHg3MGFiLCAweDQwNTYsIDB4MDA3OCwgMHgyNDU5LCAweDAwNzgsIDB4NDA0MiwKLQkweDIzMDAsIDB4MDA3OSwgMHg0MDViLCAweDQwNjAsIDB4NDA1ZSwgMHg0MDVlLCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4MjNlYiwgMHgyMzAwLCAweDcxYTgsIDB4YTAwNSwgMHgwMTdhLCAweDY4MTAsIDB4NzBiZSwKLQkweGEyODIsIDB4MDAwMywgMHgwMDUwLCAweDQwNmUsIDB4MTA3OCwgMHgyM2ViLCAweDIzMDAsIDB4MDA3OSwKLQkweDQwNzEsIDB4NDA3NCwgMHg0MDgyLCAweDQwYTQsIDB4YTY4NCwgMHgwMjAwLCAweDAwNDAsIDB4NDA3YywKLQkweDEwNzgsIDB4NDZmOCwgMHgxMDc4LCAweDQ2ZmYsIDB4MjAwMSwgMHgwMDAxLCAweDEwNzgsIDB4NDY5MSwKLQkweDAwNzgsIDB4MjQ1OSwgMHhhMjk2LCAweDAwMDIsIDB4MDA0MCwgMHg0MDhiLCAweDgyZmYsIDB4MDA0MCwKLQkweDQwOGIsIDB4MTA3OCwgMHgyM2ViLCAweDcwYTcsIDB4NDA4ZiwgMHgwMDc4LCAweDQ3MzksIDB4MjAxMSwKLQkweDAwMTgsIDB4MTA3OCwgMHg0MmViLCAweDAwNzksIDB4NDA5NSwgMHg0MDlhLCAweDI0NTksIDB4M2I5NiwKLQkweDQwOWMsIDB4NDA5ZSwgMHgwMDc4LCAweDQ3MjcsIDB4MDA3OCwgMHg0NzI3LCAweDcwYWIsIDB4NDBhMiwKLQkweDAwNzgsIDB4MjQ1OSwgMHgwMDc4LCAweDQwOWEsIDB4MjIwMCwgMHgwMDc5LCAweDQwYTcsIDB4NDBhOSwKLQkweDQwYzIsIDB4NzBhNywgMHg0MGFkLCAweDAwNzgsIDB4NDczOSwgMHgyMDExLCAweDAwMTcsIDB4MTA3OCwKLQkweDQyZWIsIDB4MDA3OSwgMHg0MGIzLCAweDQwYjgsIDB4MjQ1OSwgMHgzYjk2LCAweDQwYmEsIDB4NDBiYywKLQkweDAwNzgsIDB4NDcyNywgMHgwMDc4LCAweDQ3MjcsIDB4NzBhYiwgMHg0MGMwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDAwNzgsIDB4NDBiOCwgMHhhNDg0LCAweDgwMDAsIDB4MDBjMCwgMHg0MTBjLCAweGE2ODQsIDB4MDEwMCwKLQkweDAwNDAsIDB4NDBkNiwgMHgxMDc4LCAweDQ2ZjgsIDB4MTA3OCwgMHg0MmQzLCAweDEwNzgsIDB4NDZmZiwKLQkweDc4NDgsIDB4YTA4NSwgMHgwMDBjLCAweDc4NGEsIDB4MDA3OCwgMHg0MGRhLCAweDc4ZDgsIDB4NzhkMiwKLQkweDc4ZGMsIDB4NzhkNiwgMHhhNmI0LCAweGVmZmYsIDB4N2U1YSwgMHg3MGE3LCAweDQwZTEsIDB4MDA3OCwKLQkweDQ3MzksIDB4MjAxMSwgMHgwMDBkLCAweDEwNzgsIDB4NDJlYiwgMHgwMDc5LCAweDQwZTcsIDB4NDBlZSwKLQkweDI0NTksIDB4M2I5NiwgMHg0MGVlLCAweDQwZmMsIDB4NDEwMiwgMHg0MTA0LCAweGE2ODQsIDB4MDEwMCwKLQkweDAwNDAsIDB4NDBmYSwgMHgxMDc4LCAweDQ2YjYsIDB4NjgyYywgMHg3OGQyLCAweDY4MzAsIDB4NzhkNiwKLQkweDEwNzgsIDB4NDZmMCwgMHgwMDc4LCAweDQ3MjcsIDB4NzBhYiwgMHg0MTAwLCAweDAwNzgsIDB4MjQ1OSwKLQkweDAwNzgsIDB4NDBlZSwgMHgxMDc4LCAweDIzZWIsIDB4NzBhYiwgMHg0MTA4LCAweDAwNzgsIDB4MjQ1OSwKLQkweDEwNzgsIDB4NDczZiwgMHgwMDc4LCAweDI0NTksIDB4MTA3OCwgMHg0NmZmLCAweDcwYWIsIDB4NDExNiwKLQkweDIwMDEsIDB4MDAwMywgMHgxMDc4LCAweDQ2ODksIDB4MDA3OCwgMHg0NzMzLCAweDEwNzgsIDB4NDZmMCwKLQkweDY4MmMsIDB4NzhkMiwgMHg2ODMwLCAweDc4ZDYsIDB4MDA3OCwgMHg0NzI3LCAweDcwYjgsIDB4NjgxMiwKLQkweDcwYmUsIDB4ODAwMCwgMHg3MGJhLCAweDY4MWIsIDB4MDAwMCwgMHhhNjg0LCAweDAwMDgsIDB4MDA0MCwKLQkweDQxNDEsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4Nzg5MCwgMHg4MDA0LCAweDgwMDQsIDB4ODAwNCwKLQkweDgwMDQsIDB4YTA4NCwgMHgwMDBmLCAweDY4MWEsIDB4ODBhYywgMHg3ODliLCAweDAwMDAsIDB4YWY4MCwKLQkweDAwMmIsIDB4MjA5OCwgMHhhZDgwLCAweDAwMGIsIDB4MjBhMCwgMHg1M2E1LCAweDE0N2YsIDB4MTM3ZiwKLQkweDE1N2YsIDB4YTZjNCwgMHgwZjAwLCAweGE2ODQsIDB4MDAwMiwgMHgwMGMwLCAweDQxNTAsIDB4NjkyYywKLQkweDgxMGQsIDB4ODEwZCwgMHg4MTBkLCAweGExODQsIDB4MDAwNywgMHgyMDA4LCAweDAwNzgsIDB4NDE1ZiwKLQkweDc4OWIsIDB4MDAxMCwgMHg3OWFjLCAweGExODQsIDB4MDAyMCwgMHgwMDQwLCAweDQxNWYsIDB4MDE3ZSwKLQkweDIwMDksIDB4MDAwNSwgMHgyMDAxLCAweDNkMDAsIDB4MTA3OCwgMHg0NmMxLCAweDAxN2YsIDB4YTE4NCwKLQkweDAwMWYsIDB4YTgwNSwgMHg2ODE2LCAweDEwNzgsIDB4M2I2OSwgMHg2OGJlLCAweGE2ODQsIDB4MDAwNCwKLQkweDAwNDAsIDB4NDE3MCwgMHhhMThjLCAweGZmMDAsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTEwNSwKLQkweDY4MmEsIDB4YTZiNCwgMHgwMGZmLCAweDYwMDAsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4NDE3YSwKLQkweGE2YjUsIDB4NDAwMCwgMHg2ZWI2LCAweDAwN2MsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4NjkxOCwKLQkweDc4OTAsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDQsIDB4ODAwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDA3ZSwKLQkweGExMDAsIDB4NjgxYSwgMHgwMDdmLCAweDgwMDAsIDB4ODAwNCwgMHgwMDQwLCAweDQxOWIsIDB4MjBhOCwKLQkweDgxMDQsIDB4YTA4MCwgMHgwMDBiLCAweGFkMDAsIDB4MjBhMCwgMHg3ODliLCAweDAwMDAsIDB4YWY4MCwKLQkweDAwMmIsIDB4MjA5OCwgMHg1M2E1LCAweDE0N2YsIDB4MTM3ZiwgMHgxNTdmLCAweDAwN2MsIDB4NjgyYywKLQkweGEwODQsIDB4MDAyMCwgMHgwMGMwLCAweDQxYTcsIDB4NjIwYywgMHgwMDc4LCAweDQxYTgsIDB4NjIxMCwKLQkweDZiMTgsIDB4MjMwMCwgMHhhMjAyLCAweDAwNDAsIDB4NDFjOCwgMHgyMDE4LCAweGEzODIsIDB4MDAwZSwKLQkweDAwNDgsIDB4NDFiOCwgMHgwMDQwLCAweDQxYjgsIDB4MjAxOSwgMHgwMDBlLCAweDAwNzgsIDB4NDFiYywKLQkweDc4NTgsIDB4YTA4NCwgMHhmZmVmLCAweDc4NWEsIDB4NzgzYiwgMHgxYjAxLCAweDc4OTMsIDB4MDAwMCwKLQkweDdiYTIsIDB4NzBiNCwgMHhhMDgwLCAweDAwOGUsIDB4NzgxYSwgMHhhMDg1LCAweDAwMDEsIDB4MDA3YywKLQkweDc4NTgsIDB4YTA4NCwgMHhmZmVmLCAweDc4NWEsIDB4Nzg5MywgMHgwMDAwLCAweGEwMDYsIDB4MDA3YywKLQkweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExOTYsIDB4MDAwNywgMHgwMDQwLCAweDQxZGQsIDB4YTE5NiwKLQkweDAwMGYsIDB4MDA0MCwgMHg0MWRkLCAweDY4MDcsIDB4MDExNywgMHg2OTE0LCAweDEwNzgsIDB4M2I2OSwKLQkweDYxMDAsIDB4ODEwNCwgMHgwMGM4LCAweDQxZjgsIDB4NjAxYywgMHhhMDA1LCAweDAwNDAsIDB4NDFlYywKLQkweDIwMDEsIDB4MDgwMCwgMHgwMDc4LCAweDQxZmEsIDB4MGQ3ZSwgMHg2ODI0LCAweDAwN2UsIDB4MTA3OCwKLQkweDQ3MDgsIDB4MDA3ZiwgMHg2ODI2LCAweDJkMDAsIDB4NjgyZSwgMHgxMDc4LCAweDNhZjgsIDB4MGQ3ZiwKLQkweDIwMDEsIDB4MDIwMCwgMHg2ODI2LCAweDgwMDcsIDB4Nzg5YiwgMHgwMDBlLCAweDc4YWEsIDB4NjgyMCwKLQkweGEwODUsIDB4ODAwMCwgMHg2ODIyLCAweDIwMzEsIDB4MDQwMCwgMHg2ZWI2LCAweDdlNWEsIDB4NzFiNCwKLQkweGExODgsIDB4MDA5MSwgMHg3OTFhLCAweDAwN2MsIDB4YTZjNCwgMHgwZjAwLCAweGE2ODQsIDB4MDAwMiwKLQkweDAwYzAsIDB4NDIyMCwgMHg2OTJjLCAweDgxMGQsIDB4ODEwZCwgMHg4MTBkLCAweGExODQsIDB4MDAwNywKLQkweDIwMDgsIDB4YTgwNSwgMHg2ODE2LCAweDEwNzgsIDB4M2I2OSwgMHg2OGJlLCAweDAwNzgsIDB4NDIyMywKLQkweDY5MTQsIDB4MTA3OCwgMHgzYjY5LCAweDYxMDAsIDB4ODEwNCwgMHgwMGM4LCAweDQyODAsIDB4YTE4NCwKLQkweDAzMDAsIDB4MDA0MCwgMHg0MjJmLCAweDY4MDcsIDB4MDExNywgMHgwMDc4LCAweDQyNGQsIDB4NjAwNCwKLQkweGEwMDUsIDB4MDBjMCwgMHg0MjU2LCAweDY4MDcsIDB4MDExNywgMHg2MDFjLCAweGEwMDUsIDB4MDBjMCwKLQkweDQyNDMsIDB4MGQ3ZSwgMHgxMDc4LCAweDQ3MDgsIDB4NjgyNywgMHgwMDM0LCAweDJkMDAsIDB4NjgyZSwKLQkweDEwNzgsIDB4M2FmOCwgMHgwZDdmLCAweGE2ODQsIDB4MDAwNCwgMHgwMDQwLCAweDQyNGQsIDB4MjAzMSwKLQkweDA0MDAsIDB4MjAwMSwgMHgyODAwLCAweDAwNzgsIDB4NDI1MSwgMHgyMDMxLCAweDA0MDAsIDB4MjAwMSwKLQkweDA4MDAsIDB4NzFiNCwgMHhhMTg4LCAweDAwOTEsIDB4MDA3OCwgMHg0MmFlLCAweDYwMTgsIDB4YTAwNSwKLQkweDAwYzAsIDB4NDI0MywgMHg2MDFjLCAweGEwMDUsIDB4MDBjMCwgMHg0MjQzLCAweDY4OWYsIDB4MDAwMCwKLQkweDY4MjcsIDB4MDAzZCwgMHhhNjg0LCAweDAwMDEsIDB4MDA0MCwgMHg0MmJjLCAweGQ2OTQsIDB4MDBjMCwKLQkweDQyNzksIDB4NjEwMCwgMHhkMWQ0LCAweDAwNDAsIDB4NDI3OSwgMHg2OTJjLCAweDgxZmYsIDB4MDA0MCwKLQkweDQyYmMsIDB4YTE4NiwgMHgwMDAzLCAweDAwNDAsIDB4NDJiYywgMHhhMTg2LCAweDAwMTIsIDB4MDA0MCwKLQkweDQyYmMsIDB4YTZiNSwgMHgwODAwLCAweDcxYjQsIDB4YTE4OCwgMHgwMGFmLCAweDAwNzgsIDB4NDJiNywKLQkweDY4MDcsIDB4MDExNywgMHgyMDMxLCAweDA0MDAsIDB4NjkyYywgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKLQkweDAwMTIsIDB4MDBjMCwgMHg0MjkxLCAweDIwMDEsIDB4NDJjOSwgMHgyMDA5LCAweDAwMDEsIDB4MDA3OCwKLQkweDQyYTIsIDB4YTE4NiwgMHgwMDAzLCAweDAwYzAsIDB4NDI5YiwgMHgyMDAxLCAweDQyY2EsIDB4MjAwOSwKLQkweDAwMTIsIDB4MDA3OCwgMHg0MmEyLCAweDIwMDEsIDB4MDIwMCwgMHg3MWI0LCAweGExODgsIDB4MDA5MSwKLQkweDAwNzgsIDB4NDJhZSwgMHgxMDc4LCAweDQ2ZGIsIDB4NzhhMywgMHgwMDAwLCAweDY4MWMsIDB4YTA4NSwKLQkweDAwNDAsIDB4NjgxZSwgMHg3MWI0LCAweGExODgsIDB4MDBkZiwgMHhhMDA2LCAweDY4MjYsIDB4ODAwNywKLQkweDc4OWIsIDB4MDAwZSwgMHg3OGFhLCAweDY4MjAsIDB4YTA4NSwgMHg4MDAwLCAweDY4MjIsIDB4NmViNiwKLQkweDdlNWEsIDB4NzkxYSwgMHgwMDc4LCAweDI0NTksIDB4NmViNiwgMHgxMDc4LCAweDNhZjgsIDB4NjgxMCwKLQkweDcwYmUsIDB4NzAwMywgMHgwMDA3LCAweDcwYTMsIDB4MDAwMCwgMHg3MDRiLCAweDAwMDAsIDB4MDA3OCwKLQkweDI0NTksIDB4MDAyMywgMHgwMDcwLCAweDAwMDUsIDB4MDAwMCwgMHgwYTAwLCAweDAwMDAsIDB4MDAwMCwKLQkweDAwMjUsIDB4MDAwMCwgMHgwMDAwLCAweDY4M2IsIDB4MDAwMCwgMHg2ODM3LCAweDAwMDAsIDB4YTY4NCwKLQkweDAyMDAsIDB4MDA0MCwgMHg0MmVhLCAweDc4YjgsIDB4YTA4YywgMHgwMDFmLCAweGEwODQsIDB4ODAwMCwKLQkweDAwNDAsIDB4NDJlMywgMHg4MTA4LCAweDc4ZDgsIDB4YTEwMCwgMHg2ODM2LCAweDc4ZGMsIDB4YTA4MSwKLQkweDAwMDAsIDB4NjgzYSwgMHgwMDdjLCAweDc5OTAsIDB4ODEwZiwgMHhhNWFjLCAweDAwMDcsIDB4MjAyMSwKLQkweDAwMDAsIDB4YTQ4MCwgMHgwMDEwLCAweDc4OWEsIDB4NzlhOCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NCwKLQkweDAwODAsIDB4MDBjMCwgMHg0MzE5LCAweGExODIsIDB4MDAyMCwgMHgwMGM4LCAweDQzMzcsIDB4YTE4MiwKLQkweDAwMTIsIDB4MDBjOCwgMHg0NjdiLCAweDIxMDAsIDB4MTA3OSwgMHg0MzA3LCAweDAwN2MsIDB4NDY3YiwKLQkweDQ0ZTgsIDB4NDY3YiwgMHg0NjdiLCAweDQzNDQsIDB4NDM0NywgMHg0MzgxLCAweDQzYjcsIDB4NDNlYiwKLQkweDQzZWUsIDB4NDY3YiwgMHg0NjdiLCAweDQzYTIsIDB4NDQxMiwgMHg0NDRjLCAweDQ2N2IsIDB4NDY3YiwKLQkweDQ0NzMsIDB4YTE4NCwgMHgwMDIwLCAweDAwYzAsIDB4NDRhNywgMHhhMThjLCAweDAwMWYsIDB4NjgxNCwKLQkweGEwODQsIDB4MDAxZiwgMHhhMTA2LCAweDAwNDAsIDB4NDMzNCwgMHg3MGI0LCAweGEwODAsIDB4MDBkMiwKLQkweDc4MWEsIDB4MjAwMSwgMHgwMDE0LCAweDEwNzgsIDB4NDY5MSwgMHgxMDc4LCAweDQ2ZmYsIDB4NzAwMywKLQkweDAwMDAsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2MsIDB4MjAwMSwgMHgwMDAwLCAweDAwN2MsIDB4YTE4MiwKLQkweDAwMjQsIDB4MDBjOCwgMHg0NjdiLCAweGExODQsIDB4MDAwMywgMHgxMDc5LCAweDQzMDcsIDB4MDA3YywKLQkweDQ2N2IsIDB4NDY3YiwgMHg0NjdiLCAweDQ2N2IsIDB4MTA3OCwgMHg0NjdiLCAweDAwN2MsIDB4MjIwMCwKLQkweDAwNzksIDB4NDM0YSwgMHg0NDc2LCAweDQ0NzYsIDB4NDM2ZSwgMHg0MzZlLCAweDQzNmUsIDB4NDM2ZSwKLQkweDQzNmUsIDB4NDM2ZSwgMHg0MzZlLCAweDQzNmUsIDB4NDM2YywgMHg0MzZlLCAweDQzNjMsIDB4NDM2ZSwKLQkweDQzNmUsIDB4NDM2ZSwgMHg0MzZlLCAweDQzNmUsIDB4NDM3NiwgMHg0Mzc5LCAweDQ0NzYsIDB4NDM3OSwKLQkweDQzNmUsIDB4NDM2ZSwgMHg0MzZlLCAweDBjN2UsIDB4MDc3ZSwgMHg2ZjE0LCAweDEwNzgsIDB4MzZlMiwKLQkweDA3N2YsIDB4MGM3ZiwgMHgwMDc4LCAweDQzNmUsIDB4MTA3OCwgMHg0NThiLCAweDY4MjcsIDB4MDJiMywKLQkweDIwMDksIDB4MDAwYiwgMHgyMDAxLCAweDQ4MDAsIDB4MDA3OCwgMHg0NGFhLCAweDEwNzgsIDB4NDY3MCwKLQkweDAwN2MsIDB4NjgyNywgMHgwMDkzLCAweDIwMDksIDB4MDAwYiwgMHgyMDAxLCAweDQ4MDAsIDB4MDA3OCwKLQkweDQ0OTIsIDB4MmQ1OCwgMHg2ODA0LCAweGEwODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMDYsIDB4MDBjMCwKLQkweDQzOGIsIDB4NjgwNywgMHgwMTE3LCAweDY4MjcsIDB4MDAwMiwgMHgxMDc4LCAweDQ3MDgsIDB4NjgyNywKLQkweDAwMzYsIDB4NjkzMiwgMHgyZDAwLCAweDY4MmUsIDB4MGQ3ZSwgMHgxMDc4LCAweDNhYzgsIDB4MTA3OCwKLQkweDQ0ZDAsIDB4MmI2OCwgMHgxMDc4LCAweDNhZjgsIDB4MGQ3ZiwgMHgxMDc4LCAweDNhZjgsIDB4MjAwMSwKLQkweDAwMDIsIDB4MDA3YywgMHgxMDc4LCAweDQ0ZDAsIDB4MjAwMSwgMHgwMDE3LCAweDEwNzgsIDB4NDY5MSwKLQkweDcwYTMsIDB4MDAwMCwgMHgyMDA5LCAweDUxMzgsIDB4MjAwYiwgMHgwMDA2LCAweDcwYWYsIDB4MDAxNywKLQkweDIwMDksIDB4MDIwMCwgMHgxMDc4LCAweDNhMDYsIDB4MjAwMSwgMHgwMDAxLCAweDAwN2MsIDB4MjIwMCwKLQkweDAwNzksIDB4NDNiYSwgMHg0NDc2LCAweDQ0YTcsIDB4NDRhNywgMHg0NGE3LCAweDQzZGIsIDB4NDRiNywKLQkweDQzZTMsIDB4NDRiNywgMHg0NGI3LCAweDQ0YmEsIDB4NDRiYSwgMHg0NGJmLCAweDQ0YmYsIDB4NDNkMywKLQkweDQzZDMsIDB4NDRhNywgMHg0NGE3LCAweDQ0YjcsIDB4NDRhNywgMHg0M2UzLCAweDQ0NzYsIDB4NDNlMywKLQkweDQzZTMsIDB4NDNlMywgMHg0M2UzLCAweDY4MjcsIDB4MDA4NCwgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwKLQkweDQzMDAsIDB4MDA3OCwgMHg0NGM5LCAweDY4MjcsIDB4MDAwZCwgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwKLQkweDQzMDAsIDB4MDA3OCwgMHg0NGFhLCAweDY4MjcsIDB4MDA5MywgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwKLQkweDQzMDAsIDB4MDA3OCwgMHg0NDkyLCAweDIwMDEsIDB4MDAwMCwgMHgwMDdjLCAweDIyMDAsIDB4MDA3OSwKLQkweDQzZjEsIDB4NDQ3NiwgMHg0NDBhLCAweDQ0MGEsIDB4NDQwYSwgMHg0NDBhLCAweDQ0YjcsIDB4NDRiNywKLQkweDQ0YjcsIDB4NDRiNywgMHg0NGI3LCAweDQ0YjcsIDB4NDRiNywgMHg0NGI3LCAweDQ0MGEsIDB4NDQwYSwKLQkweDQ0MGEsIDB4NDQwYSwgMHg0NGI3LCAweDQ0MGEsIDB4NDQwYSwgMHg0NGI3LCAweDQ0YjcsIDB4NDRiNywKLQkweDQ0YjcsIDB4NDQ3NiwgMHg2ODI3LCAweDAwOTMsIDB4MjAwOSwgMHgwMDBiLCAweDIwMDEsIDB4NDMwMCwKLQkweDAwNzgsIDB4NDQ5MiwgMHhhNjg0LCAweDAwMDQsIDB4MDBjMCwgMHg0NDI2LCAweDY4MDQsIDB4YTA4NCwKLQkweDAwZmYsIDB4YTA4NiwgMHgwMDA2LCAweDAwYzAsIDB4NDY3YiwgMHgxMDc4LCAweDQ0ZDAsIDB4NjgwNywKLQkweDAxMTcsIDB4MTA3OCwgMHgzYWY4LCAweDIwMDEsIDB4MDAwMiwgMHgwMDdjLCAweDYwMDAsIDB4YTA4NCwKLQkweDAwMDQsIDB4MDA0MCwgMHg0NjdiLCAweDJkNTgsIDB4NjgwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwKLQkweDAwMDYsIDB4MDBjMCwgMHg0NDM1LCAweDY4MDcsIDB4MDExNywgMHg2ODI3LCAweDAwMDIsIDB4MTA3OCwKLQkweDQ3MDgsIDB4NjgyNywgMHgwMDM2LCAweDY5MzIsIDB4MmQwMCwgMHg2ODJlLCAweDBkN2UsIDB4MTA3OCwKLQkweDNhZDcsIDB4MTA3OCwgMHg0NGQwLCAweDJiNjgsIDB4MTA3OCwgMHgzYWY4LCAweDBkN2YsIDB4MTA3OCwKLQkweDNhZjgsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2MsIDB4NjAwMCwgMHhhMDg0LCAweDAwMDQsIDB4MDA0MCwKLQkweDQ2N2IsIDB4MmQ1OCwgMHg2YTA0LCAweGEyOTQsIDB4MDBmZiwgMHhhMjg2LCAweDAwMDYsIDB4MDBjMCwKLQkweDQ0NWIsIDB4NjgwNywgMHgwMTE3LCAweDY4MjcsIDB4MDAwMiwgMHgyZDU4LCAweDEwNzgsIDB4NDcwOCwKLQkweDY4MjcsIDB4MDAzNiwgMHg2OTMyLCAweDJkMDAsIDB4NjgyZSwgMHgwZDdlLCAweDEwNzgsIDB4M2FlNywKLQkweDEwNzgsIDB4NDRkMCwgMHgyYjY4LCAweDEwNzgsIDB4M2FmOCwgMHgwZDdmLCAweDEwNzgsIDB4M2FmOCwKLQkweDIwMDEsIDB4MDAwMiwgMHgwMDdjLCAweDEwNzgsIDB4NDY3YiwgMHgwMDdjLCAweDcwYjQsIDB4YTA4MCwKLQkweDAwZDIsIDB4NzgxYSwgMHgyMDAxLCAweDAwMDEsIDB4MTA3OCwgMHg0NjkxLCAweDEwNzgsIDB4NDZmZiwKLQkweDcwMDMsIDB4MDAwMCwgMHgyMDAxLCAweDAwMDIsIDB4MDA3YywgMHgxMDc4LCAweDQ2YzEsIDB4MTA3OCwKLQkweDQ2ZjgsIDB4MTA3OCwgMHg0MmQzLCAweDEwNzgsIDB4NDFkMCwgMHgxMDc4LCAweDQ2ZmYsIDB4MjAwMSwKLQkweDAwMDEsIDB4MDA3YywgMHgxMDc4LCAweDQ2YzEsIDB4MTA3OCwgMHg0NmY4LCAweDEwNzgsIDB4NDJkMywKLQkweDcwYjQsIDB4YTA4MCwgMHgwMGQyLCAweDc4MWEsIDB4MjAwMSwgMHgwMDEzLCAweDEwNzgsIDB4NDY5MSwKLQkweDEwNzgsIDB4NDZmZiwgMHg3MDAzLCAweDAwMDAsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2MsIDB4MTA3OCwKLQkweDQ2N2IsIDB4MDA3YywgMHgxMDc4LCAweDQ2YzEsIDB4MTA3OCwgMHg0NmY4LCAweDEwNzgsIDB4NDJkMywKLQkweDEwNzgsIDB4NDFkMCwgMHgxMDc4LCAweDQ2ZmYsIDB4MjAwMSwgMHgwMDAxLCAweDAwN2MsIDB4MjAwMSwKLQkweDAwMDMsIDB4MDA3YywgMHgxMDc4LCAweDQ1OGIsIDB4MjAwMSwgMHgwMDAwLCAweDAwN2MsIDB4MGM3ZSwKLQkweDA3N2UsIDB4NmYxNCwgMHgxMDc4LCAweDM2ZTIsIDB4MDc3ZiwgMHgwYzdmLCAweDIwMDEsIDB4MDAwMCwKLQkweDAwN2MsIDB4MTA3OCwgMHg0NmMxLCAweDEwNzgsIDB4NDY3YiwgMHgyMDAxLCAweDAwMDYsIDB4MDA3YywKLQkweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywgMHgwMDQwLCAweDQ0ZGIsIDB4YTE4NiwKLQkweDAwMGYsIDB4MDBjMCwgMHg0NGRmLCAweDEwNzgsIDB4NDZmOCwgMHgxMDc4LCAweDQyZDMsIDB4NzBiNCwKLQkweGEwODAsIDB4MDBkMiwgMHg3ODFhLCAweDEwNzgsIDB4NDZmZiwgMHg3MDAzLCAweDAwMDAsIDB4MDA3YywKLQkweDdhYTgsIDB4YTI5NCwgMHgwMGZmLCAweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwOGEsIDB4MDAwNCwKLQkweDAwYzgsIDB4NDY3YiwgMHgxMDc5LCAweDQ0ZjUsIDB4MDA3YywgMHg0NjdiLCAweDQ0ZjksIDB4NDY3YiwKLQkweDQ1OTIsIDB4YTI4MiwgMHgwMDAzLCAweDAwNDAsIDB4NDUwMCwgMHgxMDc4LCAweDQ2N2IsIDB4MDA3YywKLQkweDdkYTgsIDB4YTVhYywgMHgwMGZmLCAweDdjYTgsIDB4YTRhNCwgMHgwMGZmLCAweDY5YjgsIDB4YTE4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHg0NTNmLCAweGExOGMsIDB4ZmVmZiwgMHg2OWJhLCAweDc4YTAsIDB4YTAwNSwKLQkweDAwYzAsIDB4NDUzZiwgMHhhNGE0LCAweDAwZmYsIDB4MDA0MCwgMHg0NTMzLCAweGE0ODIsIDB4MDAwYywKLQkweDAwNDAsIDB4NDUxYywgMHgwMGM4LCAweDQ1MjYsIDB4ODUyYiwgMHg4NTJiLCAweDEwNzgsIDB4Mzc2MCwKLQkweDAwNDAsIDB4NDUyNiwgMHgxMDc4LCAweDM1NWIsIDB4MDA3OCwgMHg0NTM1LCAweDEwNzgsIDB4NDY1ZCwKLQkweDEwNzgsIDB4MzU4NiwgMHg2OWI4LCAweGExOGQsIDB4MDEwMCwgMHg2OWJhLCAweGE2YjUsIDB4MTAwMCwKLQkweDdlNWEsIDB4MDA3OCwgMHg0NTM4LCAweDEwNzgsIDB4MzU4NiwgMHhhNmI0LCAweGVmZmYsIDB4N2U1YSwKLQkweDcwYjQsIDB4YTA4MCwgMHgwMDkxLCAweDc4MWEsIDB4MjAwMSwgMHgwMDAxLCAweDAwN2MsIDB4MGM3ZSwKLQkweDEwNzgsIDB4NDU3ZiwgMHg2MjAwLCAweGQyZTQsIDB4MDA0MCwgMHg0NTcwLCAweDYyMDgsIDB4ODIxNywKLQkweGEyOTQsIDB4MDBmZiwgMHhhMjgyLCAweDAwMGMsIDB4MDA0OCwgMHg0NTUyLCAweDAwNDAsIDB4NDU1MiwKLQkweDIwMTEsIDB4MDAwYywgMHgyNDAwLCAweGEyMDIsIDB4MDBjOCwgMHg0NTU3LCAweDIyMjAsIDB4NjIwOCwKLQkweGEyOTQsIDB4MDBmZiwgMHg3MDFjLCAweGEyMDIsIDB4MDBjOCwgMHg0NTVmLCAweDcyMWMsIDB4MjIwMCwKLQkweGE1MDIsIDB4MDBjOCwgMHg0NTY0LCAweDIyMjgsIDB4MTA3OCwgMHg0NjYxLCAweDg1MmIsIDB4ODUyYiwKLQkweDEwNzgsIDB4Mzc2MCwgMHgwMDQwLCAweDQ1NzAsIDB4MTA3OCwgMHgzNTYyLCAweDAwNzgsIDB4NDU3NCwKLQkweDEwNzgsIDB4NDY1ZCwgMHgxMDc4LCAweDM1OGQsIDB4YTZiNSwgMHgxMDAwLCAweDdlNWEsIDB4NzBiNCwKLQkweGEwODAsIDB4MDBiZSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNCwgMHgwYzdmLCAweDAwN2MsIDB4MDA3ZSwKLQkweDY4MTQsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTBlMCwKLQkweDUzODAsIDB4MDA3ZiwgMHgwMDdjLCAweDBjN2UsIDB4MTA3OCwgMHg0NTdmLCAweDEwNzgsIDB4MzU4ZCwKLQkweDBjN2YsIDB4MDA3YywgMHhhMjgyLCAweDAwMDIsIDB4MDBjMCwgMHg0NjdiLCAweDdhYTgsIDB4YTI5NCwKLQkweDAwZmYsIDB4NjliOCwgMHhhMTg0LCAweDAyMDAsIDB4MDA0MCwgMHg0NWM5LCAweGExOGMsIDB4ZmRmZiwKLQkweDY5YmEsIDB4NzhhMCwgMHhhMDA1LCAweDAwYzAsIDB4NDVjOSwgMHhhMjgyLCAweDAwMDIsIDB4MDBjOCwKLQkweDM2OWQsIDB4MTA3OCwgMHg0NjI3LCAweDEwNzgsIDB4MzYyYiwgMHgxMDc4LCAweDM1ODYsIDB4YTY4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHg0NWJmLCAweDY4MmMsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4NDViZiwKLQkweGM2ZmMsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwgMHg0NWJmLCAweGM2ZmQsIDB4YTZiNSwKLQkweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDA5MSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwMSwKLQkweDAwN2MsIDB4MGM3ZSwgMHgxMDc4LCAweDQ1N2YsIDB4YTI4NCwgMHhmZmZlLCAweDAwNDAsIDB4NDVkNCwKLQkweDIwMTEsIDB4MDAwMSwgMHgwMDc4LCAweDQ1ZDgsIDB4YTI4NCwgMHgwMDAxLCAweDAwNDAsIDB4NDVkZSwKLQkweDYxMDAsIDB4ZDFlYywgMHgwMGMwLCAweDQ1ZGUsIDB4MjAxMSwgMHgwMDAwLCAweDEwNzgsIDB4NDYxOSwKLQkweDEwNzgsIDB4MzYzMiwgMHgxMDc4LCAweDM1OGQsIDB4YTY4NCwgMHgwMTAwLCAweDAwNDAsIDB4NDVmNCwKLQkweDY4MmMsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4NDVmNCwgMHhjNmZjLCAweDc4ODgsIDB4YTA4NCwKLQkweDAwNDAsIDB4MDA0MCwgMHg0NWY0LCAweGM2ZmQsIDB4YTZiNSwgMHgxMDAwLCAweDdlNWEsIDB4NzBiNCwKLQkweGEwODAsIDB4MDBiZSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNCwgMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwKLQkweDI5NjAsIDB4NjAwMCwgMHgyMDExLCAweDAwMDEsIDB4YTA4NCwgMHgyMDAwLCAweDAwYzAsIDB4NDYwYSwKLQkweDIwMTEsIDB4MDAwMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwgMHgwMDAyLCAweDc4YWIsIDB4MDAwMywKLQkweDdhYWEsIDB4YThjMCwgMHgwMDA0LCAweDY4YjgsIDB4YTA4NSwgMHgwMjAwLCAweDY4YmEsIDB4MGM3ZiwKLQkweDAwN2MsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDIsIDB4NzhhYiwKLQkweDAwMDMsIDB4N2FhYSwgMHg3ODliLCAweDAwODEsIDB4NzhhYiwgMHgwMDA0LCAweDAwN2MsIDB4MGM3ZSwKLQkweDcwNTQsIDB4MjA2MCwgMHg2MDAwLCAweGEwODQsIDB4MTAwMCwgMHgwMGMwLCAweDQ2MzUsIDB4MjAyOSwKLQkweDAwMzIsIDB4MjAyMSwgMHgwMDAwLCAweDAwNzgsIDB4NDY1NSwgMHg2NTA4LCAweGE1YWMsIDB4MDBmZiwKLQkweDcwMTgsIDB4YTA4NiwgMHgwMDI4LCAweDAwYzAsIDB4NDY0NSwgMHhhNTgyLCAweDAwMTksIDB4MDBjOCwKLQkweDQ2NGIsIDB4MjAyOSwgMHgwMDE5LCAweDAwNzgsIDB4NDY0YiwgMHhhNTgyLCAweDAwMGMsIDB4MDBjOCwKLQkweDQ2NGIsIDB4MjAyOSwgMHgwMDBjLCAweDY0MDgsIDB4ODQyNywgMHhhNGE0LCAweDAwZmYsIDB4YTQ4MiwKLQkweDAwMGMsIDB4MDA0OCwgMHg0NjU1LCAweDIwMjEsIDB4MDAwYywgMHgxMDc4LCAweDQ2NjEsIDB4NjhiOCwKLQkweGEwODUsIDB4MDEwMCwgMHg2OGJhLCAweDBjN2YsIDB4MDA3YywgMHgyMDIxLCAweDAwMDAsIDB4MjAyOSwKLQkweDAwMzIsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwKLQkweDAwMDEsIDB4N2RhYSwgMHg3Y2FhLCAweDc4OWIsIDB4MDA4MSwgMHg3OGFiLCAweDAwMDUsIDB4MDA3YywKLQkweDIwMDEsIDB4MDAwMywgMHgxMDc4LCAweDQ2ODksIDB4NzBiNCwgMHhhMDgwLCAweDAwYmUsIDB4NzgxYSwKLQkweDIwMDEsIDB4MDAwNSwgMHgwMDdjLCAweDIwMDEsIDB4MDAwNywgMHgxMDc4LCAweDQ2ODksIDB4YTZiNSwKLQkweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBiZSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNCwKLQkweDAwN2MsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YWEsIDB4Nzg5YiwgMHgwMDgxLCAweDc4YWIsIDB4MDAwMSwKLQkweDAwN2MsIDB4NjkwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE5NiwgMHgwMDA3LCAweDAwNDAsIDB4NDY5ZiwKLQkweGExOTYsIDB4MDAwZiwgMHgwMDQwLCAweDQ2OWYsIDB4MTA3OCwgMHgxOTVhLCAweDAwN2MsIDB4NjkyNCwKLQkweGExOTQsIDB4MDAzZiwgMHgwMGMwLCAweDQ2YTgsIDB4YTE4YywgMHhmZmMwLCAweGExMDUsIDB4NjgyNiwKLQkweDEwNzgsIDB4M2FmOCwgMHg2OTFjLCAweGExODQsIDB4MDEwMCwgMHgwMDQwLCAweDQ2YjUsIDB4NjkxNCwKLQkweDEwNzgsIDB4M2I2OSwgMHg2MjA0LCAweDgyMTAsIDB4NjIwNiwgMHgwMDdjLCAweDY5MmMsIDB4NjgzNCwKLQkweDY4MmUsIDB4YTExMiwgMHg2OTMwLCAweDY4MzgsIDB4NjgzMiwgMHhhMTFiLCAweGEyMDAsIDB4YTMwMSwKLQkweDAwN2MsIDB4MGM3ZSwgMHhhZGUwLCAweDAwMTgsIDB4NjAwMywgMHgwMDcwLCAweDYxMDYsIDB4NjAwYiwKLQkweDAwMDAsIDB4NjAwZiwgMHgwYTAwLCAweDYwMTMsIDB4MDAwMCwgMHg2MDE3LCAweDAwMDAsIDB4ODAwNywKLQkweDYwMWEsIDB4NjAxZiwgMHgwMDAwLCAweDYwMjMsIDB4MDAwMCwgMHgwYzdmLCAweDY4MjQsIDB4YTA4NSwKLQkweDAwODAsIDB4NjgyNiwgMHgwMDdjLCAweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDIwOTgsIDB4YWY4MCwKLQkweDAwMmQsIDB4MjBhMCwgMHg4MWFjLCAweDAwNDAsIDB4NDZlNiwgMHg1M2E2LCAweGExODQsIDB4MDAwMSwKLQkweDAwNDAsIDB4NDZlYywgMHgzMzA0LCAweDc4YmUsIDB4MTQ3ZiwgMHgxMzdmLCAweDE1N2YsIDB4MDA3YywKLQkweDcwYjAsIDB4YTAwNSwgMHgxMGMwLCAweDIzZWIsIDB4NzBiMywgMHg4MDAwLCAweDAwNzgsIDB4NGEzYSwKLQkweDcxYjAsIDB4ODFmZiwgMHgwMDQwLCAweDQ2ZmUsIDB4MTA3OCwgMHg0YjMwLCAweDAwN2MsIDB4NzFiMCwKLQkweDgxZmYsIDB4MDA0MCwgMHg0NzA3LCAweDcwYjMsIDB4MDAwMCwgMHgxMDc4LCAweDQ3NzYsIDB4MDA3YywKLQkweDBjN2UsIDB4MGQ3ZSwgMHgxMDc4LCAweDE5MzcsIDB4MGM3ZiwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwKLQkweDJkYTAsIDB4MmM5OCwgMHgyMGE5LCAweDAwMzEsIDB4NTNhMywgMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwKLQkweDY4MDcsIDB4MDEwZCwgMHg2ODBiLCAweDAwMDAsIDB4NzAwNCwgMHg4MDA3LCAweDY4MWEsIDB4NjgyMywKLQkweDAwMDAsIDB4NjgxZiwgMHgwMDAwLCAweDY4OWYsIDB4MDAwMCwgMHgwYzdmLCAweDAwN2MsIDB4NzBiNCwKLQkweGEwODAsIDB4MDA5MSwgMHg3ODFhLCAweDAwNzgsIDB4MjQ1OSwgMHg3MGI0LCAweGEwODAsIDB4MDA4MSwKLQkweDc4MWEsIDB4MDA3OCwgMHgyNDU5LCAweDcwYjQsIDB4YTA4MCwgMHgwMGJlLCAweDc4MWEsIDB4MDA3OCwKLQkweDI0NTksIDB4NzBiNCwgMHhhMDgwLCAweDAwYzgsIDB4NzgxYSwgMHgwMDc4LCAweDI0NTksIDB4NjkwNCwKLQkweGExOGMsIDB4MDBmZiwgMHhhMTk2LCAweDAwMDcsIDB4MDA0MCwgMHg0NzRjLCAweGExOTYsIDB4MDAwZiwKLQkweDAwNDAsIDB4NDc0YywgMHg2ODA3LCAweDAxMTcsIDB4MjAwMSwgMHgwMjAwLCAweDY4MjYsIDB4ODAwNywKLQkweDc4OWIsIDB4MDAwZSwgMHg3OGFhLCAweDY4MjAsIDB4YTA4NSwgMHg4MDAwLCAweDY4MjIsIDB4MjAzMSwKLQkweDA0MDAsIDB4NmViNiwgMHg3ZTVhLCAweDcxYjQsIDB4YTE4OCwgMHgwMDkxLCAweDc5MWEsIDB4MDA3YywKLQkweDEwNzgsIDB4NDZmZiwgMHg3ODQ4LCAweGEwODUsIDB4MDAwYywgMHg3ODRhLCAweDcwYjQsIDB4YTA4MCwKLQkweDAwZDIsIDB4NzgxYSwgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwgMHg0NDAwLCAweDEwNzgsIDB4NDZjMSwKLQkweDIwMDEsIDB4MDAxMywgMHgxMDc4LCAweDQ2OTEsIDB4MDA3OCwgMHgzYjk2LCAweDEyN2UsIDB4MjA5MSwKLQkweDIyMDAsIDB4MjA0OSwgMHg0Nzc2LCAweDcwMDAsIDB4NzIwNCwgMHhhMjA1LCAweDcyMGMsIDB4YTIxNSwKLQkweDcwMDgsIDB4YTA4NCwgMHhmZmY3LCAweGEyMDUsIDB4MDA0MCwgMHg0Nzg4LCAweDAwNzgsIDB4NDc4ZCwKLQkweDcwMDMsIDB4MDAwMCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywgMHg3MDAwLCAweGEwODQsIDB4MDAwMSwKLQkweDAwYzAsIDB4NDdiYiwgMHg3MTA4LCAweDgxMDMsIDB4MDBjOCwgMHg0NzlhLCAweDEwNzgsIDB4NDhiZCwKLQkweDAwNzgsIDB4NDc5MiwgMHg3MDBjLCAweGEwOGMsIDB4MDBmZiwgMHgwMDQwLCAweDQ3YmIsIDB4NzAwNCwKLQkweDgwMDQsIDB4MDBjOCwgMHg0N2IyLCAweDcwMTQsIDB4YTAwNSwgMHgwMGMwLCAweDQ3YWUsIDB4NzAxMCwKLQkweGEwMDUsIDB4MDA0MCwgMHg0N2IyLCAweGExMDIsIDB4MDBjOCwgMHg0NzkyLCAweDcwMDcsIDB4MDAxMCwKLQkweDAwNzgsIDB4NDdiYiwgMHg4YWZmLCAweDAwNDAsIDB4NDdiYiwgMHgxMDc4LCAweDRiMDcsIDB4MDBjMCwKLQkweDQ3YjUsIDB4MDA0MCwgMHg0NzkyLCAweDEwNzgsIDB4NDg0NiwgMHg3MDAzLCAweDAwMDAsIDB4MTI3ZiwKLQkweDIwMDAsIDB4MDA3YywgMHgwMTdlLCAweDYxMDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywKLQkweDAwNDAsIDB4NDdjZSwgMHhhMThlLCAweDAwMGYsIDB4MDBjMCwgMHg0N2QxLCAweDYwNDAsIDB4MDA3OCwKLQkweDQ3ZDIsIDB4NjQyOCwgMHgwMTdmLCAweDg0ZmYsIDB4MDA0MCwgMHg0N2ZjLCAweDJjNzAsIDB4NzAwNCwKLQkweGEwYmMsIDB4MDAwZiwgMHhhN2I4LCAweDQ4MGMsIDB4MjczYywgMHg4N2ZiLCAweDAwYzAsIDB4NDdlYSwKLQkweDAwNDgsIDB4NDdlNCwgMHgxMDc4LCAweDIzZWIsIDB4NjA5YywgMHhhMDc1LCAweDAwNDAsIDB4NDdmYywKLQkweDAwNzgsIDB4NDdkNywgMHgyNzA0LCAweGFlNjgsIDB4NjgwOCwgMHhhNjMwLCAweDY4MGMsIDB4YTUyOSwKLQkweDg0MjEsIDB4MDA0MCwgMHg0N2ZjLCAweDg3MzgsIDB4MjcwNCwgMHhhMDA1LCAweDAwYzAsIDB4NDdlYiwKLQkweDcwOWMsIDB4YTA3NSwgMHgwMGMwLCAweDQ3ZDcsIDB4MDA3YywgMHgwMDAwLCAweDAwMDUsIDB4MDAwOSwKLQkweDAwMGQsIDB4MDAxMSwgMHgwMDE1LCAweDAwMTksIDB4MDAxZCwgMHgwMDAwLCAweDAwMDMsIDB4MDAwOSwKLQkweDAwMGYsIDB4MDAxNSwgMHgwMDFiLCAweDAwMDAsIDB4MDAwMCwgMHg0ODAxLCAweDQ3ZmUsIDB4MDAwMCwKLQkweDAwMDAsIDB4ODAwMCwgMHgwMDAwLCAweDQ4MDEsIDB4MDAwMCwgMHg0ODA5LCAweDQ4MDYsIDB4MDAwMCwKLQkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDQ4MDksIDB4MDAwMCwgMHg0ODA0LCAweDQ4MDQsIDB4MDAwMCwKLQkweDAwMDAsIDB4ODAwMCwgMHgwMDAwLCAweDQ4MDQsIDB4MDAwMCwgMHg0ODBhLCAweDQ4MGEsIDB4MDAwMCwKLQkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDQ4MGEsIDB4MTI3ZSwgMHgyMDkxLCAweDIyMDAsIDB4MjA3OSwKLQkweDUxMDAsIDB4MjA3MSwgMHgwMDEwLCAweDcwMDcsIDB4MDAwYSwgMHg3MDA3LCAweDAwMDIsIDB4NzAwMywKLQkweDAwMDAsIDB4MjA3MSwgMHgwMDIwLCAweDcwMDcsIDB4MDAwYSwgMHg3MDA3LCAweDAwMDIsIDB4NzAwMywKLQkweDAwMDAsIDB4MjA0OSwgMHgwMDAwLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDIwNDksIDB4NDg0NiwKLQkweDIwMTksIDB4MDAwMCwgMHg3MDA0LCAweDgwMDQsIDB4MDBjOCwgMHg0ODk5LCAweDcwMDcsIDB4MDAxMiwKLQkweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDg1MCwgMHhhMTg0LCAweDAxZTAsIDB4MDA0MCwKLQkweDQ4NWIsIDB4MTA3OCwgMHgyM2ViLCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwKLQkweDAwYzgsIDB4NDg2NiwgMHhhMTg0LCAweDQwMDAsIDB4MDBjMCwgMHg0ODUwLCAweGExOWMsIDB4MzAwYywKLQkweGEzODYsIDB4MjAwNCwgMHgwMDQwLCAweDQ4NzQsIDB4YTM4NiwgMHgwMDA4LCAweDAwNDAsIDB4NDg3ZiwKLQkweGEzODYsIDB4MjAwYywgMHgwMGMwLCAweDQ4NTAsIDB4NzIwMCwgMHg4MjA0LCAweDAwNDgsIDB4NDg3ZiwKLQkweDczMGMsIDB4YTM4NCwgMHgwMGZmLCAweDAwNDAsIDB4NDg3ZiwgMHgxMDc4LCAweDIzZWIsIDB4NzAwNywKLQkweDAwMTIsIDB4NzAwMCwgMHhhMDg0LCAweDAwMDEsIDB4MDBjMCwgMHg0ODk5LCAweDcwMDgsIDB4YTA4NCwKLQkweDAxZTAsIDB4MDBjMCwgMHg0ODk5LCAweDczMTAsIDB4NzAxNCwgMHhhMzA1LCAweDAwNDAsIDB4NDg5OSwKLQkweDcxMGMsIDB4YTE4NCwgMHgwMzAwLCAweDAwYzAsIDB4NDg5OSwgMHhhMTg0LCAweDAwZmYsIDB4MDBjMCwKLQkweDQ4NDYsIDB4NzAwNywgMHgwMDEyLCAweDcwMDcsIDB4MDAwOCwgMHg3MDA0LCAweGEwODQsIDB4MDAwOCwKLQkweDAwYzAsIDB4NDg5ZCwgMHg3MDA3LCAweDAwMTIsIDB4NzEwOCwgMHg4MTAzLCAweDAwNDgsIDB4NDhhMiwKLQkweDcwMDMsIDB4MDAwMCwgMHgyMDQ5LCAweDAwMDAsIDB4MDA3YywgMHgxMDdlLCAweDAwN2UsIDB4MTI3ZSwKLQkweDE1N2UsIDB4MjA5MSwgMHgyMjAwLCAweDcxMDgsIDB4MTA3OCwgMHg0OGJkLCAweDE1N2YsIDB4MTI3ZiwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDdmLCAweDEwN2YsIDB4MDA3YywgMHg3MjA0LCAweDc1MDAsIDB4NzMwYywKLQkweGEzODQsIDB4MDMwMCwgMHgwMGMwLCAweDQ4ZTQsIDB4YTE4NCwgMHgwMWUwLCAweDAwYzAsIDB4NDkwOCwKLQkweDcxMDgsIDB4YTE4NCwgMHgwMWUwLCAweDAwYzAsIDB4NDkwOCwgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwKLQkweGEwODIsIDB4MDAwNSwgMHgwMGM4LCAweDQ4ZDgsIDB4YTE4NCwgMHg0MDAwLCAweDAwYzAsIDB4NDhjOCwKLQkweGExODQsIDB4MDAwNywgMHgwMDc5LCAweDQ4ZGMsIDB4NDhlNiwgMHg0OGY4LCAweDQ4ZTQsIDB4NDhmOCwKLQkweDQ4ZTQsIDB4NDk0NCwgMHg0OGU0LCAweDQ5NDIsIDB4MTA3OCwgMHgyM2ViLCAweDcwMDQsIDB4YTA4NCwKLQkweDAwMTAsIDB4YTA4NSwgMHgwMDAyLCAweDcwMDYsIDB4OGFmZiwgMHgwMGMwLCAweDQ4ZjMsIDB4MjA0OSwKLQkweDAwMDAsIDB4MDA3OCwgMHg0OGY3LCAweDEwNzgsIDB4NGIwNywgMHgwMGMwLCAweDQ4ZjMsIDB4MDA3YywKLQkweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGEwODUsIDB4MDAwMiwgMHg3MDA2LCAweDhhZmYsIDB4MDBjMCwKLQkweDQ5MDMsIDB4MDA3OCwgMHg0OTA3LCAweDEwNzgsIDB4NGIwNywgMHgwMGMwLCAweDQ5MDMsIDB4MDA3YywKLQkweDcwMDcsIDB4MDAxMiwgMHg3MTA4LCAweDAwZTAsIDB4NDkwYiwgMHgyMDkxLCAweDYwMDAsIDB4MDBlMCwKLQkweDQ5MGYsIDB4MjA5MSwgMHg2MDAwLCAweDcwMDcsIDB4MDAxMiwgMHg3MDA3LCAweDAwMDgsIDB4NzAwNCwKLQkweGEwODQsIDB4MDAwOCwgMHgwMGMwLCAweDQ5MTcsIDB4NzAwNywgMHgwMDEyLCAweDcxMDgsIDB4ODEwMywKLQkweDAwNDgsIDB4NDkxYywgMHg3MDAzLCAweDAwMDAsIDB4NzAwMCwgMHhhMDA1LCAweDAwYzAsIDB4NDkzMCwKLQkweDcwMDQsIDB4YTAwNSwgMHgwMGMwLCAweDQ5MzAsIDB4NzAwYywgMHhhMDA1LCAweDAwNDAsIDB4NDkzMiwKLQkweDAwNzgsIDB4NDkxMywgMHgyMDQ5LCAweDAwMDAsIDB4MTA3OCwgMHgzODA5LCAweDY4MTgsIDB4YTA4NCwKLQkweDgwMDAsIDB4MDA0MCwgMHg0OTNkLCAweDY4MWIsIDB4MDAwMiwgMHgwMDdjLCAweDEwNzgsIDB4MjNlYiwKLQkweDEwNzgsIDB4MjNlYiwgMHgxMDc4LCAweDQ5YTAsIDB4NzIxMCwgMHg3MTE0LCAweDcwMGMsIDB4YTA5YywKLQkweDAwZmYsIDB4MjgwMCwgMHhhMzAwLCAweGEyMTEsIDB4YTE4OSwgMHgwMDAwLCAweDEwNzgsIDB4NDlhMCwKLQkweDI3MDQsIDB4MmM1OCwgMHhhYzYwLCAweDYzMDgsIDB4MjIwMCwgMHhhMzIyLCAweDYzMGMsIDB4MjEwMCwKLQkweGEzMWIsIDB4MjQwMCwgMHhhMzA1LCAweDAwNDAsIDB4NDk2NywgMHgwMGM4LCAweDQ5NjcsIDB4ODQxMiwKLQkweDgyMTAsIDB4ODMwYSwgMHhhMTg5LCAweDAwMDAsIDB4MmI2MCwgMHgwMDc4LCAweDQ5NGUsIDB4MmI2MCwKLQkweDhhMDcsIDB4MDA3ZSwgMHg2MDA0LCAweGEwODQsIDB4MDAwOCwgMHgwMDQwLCAweDQ5NzMsIDB4YTdiYSwKLQkweDQ4MDYsIDB4MDA3OCwgMHg0OTc1LCAweGE3YmEsIDB4NDdmZSwgMHgwMDdmLCAweGE3M2QsIDB4MmMwMCwKLQkweDY4ODYsIDB4NmY4YSwgMHg2YzkyLCAweDZiOGUsIDB4NzAwNywgMHgwMDEyLCAweDEwNzgsIDB4NDg0NiwKLQkweDAwN2MsIDB4ODczOCwgMHgyNzA0LCAweGEwMDUsIDB4MDBjMCwgMHg0OTk0LCAweDYwOWMsIDB4YTAwNSwKLQkweDAwNDAsIDB4NDk5ZCwgMHgyMDYwLCAweDYwMDQsIDB4YTA4NCwgMHgwMDBmLCAweGEwODAsIDB4NDgwYywKLQkweDIwM2MsIDB4ODdmYiwgMHgxMDQwLCAweDIzZWIsIDB4OGE1MSwgMHgwMDQwLCAweDQ5OWMsIDB4NzAwOCwKLQkweGEwODQsIDB4MDAwMywgMHhhMDg2LCAweDAwMDMsIDB4MDA3YywgMHgyMDUxLCAweDAwMDAsIDB4MDA3YywKLQkweDhhNTAsIDB4ODczOSwgMHgyNzA0LCAweGEwMDQsIDB4MDBjMCwgMHg0OWI0LCAweDYwMDAsIDB4YTA2NCwKLQkweDAwYzAsIDB4NDlhYiwgMHgyZDYwLCAweDYwMDQsIDB4YTA4NCwgMHgwMDBmLCAweGEwODAsIDB4NDgxYywKLQkweDIwM2MsIDB4ODdmYiwgMHgxMDQwLCAweDIzZWIsIDB4MDA3YywgMHgxMjdlLCAweDBkN2UsIDB4MjA5MSwKLQkweDIyMDAsIDB4MGQ3ZiwgMHg2ODg0LCAweDIwNjAsIDB4Njg4OCwgMHg2YjhjLCAweDZjOTAsIDB4ODA1NywKLQkweGFhZDQsIDB4MDBmZiwgMHhhMDg0LCAweDAwZmYsIDB4MDA3ZSwgMHg2ODA0LCAweGEwODQsIDB4MDAwOCwKLQkweDAwN2YsIDB4MDA0MCwgMHg0OWNmLCAweGEwYjgsIDB4NDgwNiwgMHgwMDc4LCAweDQ5ZDEsIDB4YTBiOCwKLQkweDQ3ZmUsIDB4N2UwOCwgMHhhNmI1LCAweDAwMGMsIDB4NjkwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKLQkweDAwMDcsIDB4MDA0MCwgMHg0OWRmLCAweGExOGUsIDB4MDAwZiwgMHgwMGMwLCAweDQ5ZTgsIDB4NjgxYywKLQkweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDQ5ZWYsIDB4YTZiNSwgMHgwMDAxLCAweDAwNzgsIDB4NDllZiwKLQkweDY4MWMsIDB4YTA4NCwgMHgwMDQwLCAweDAwNDAsIDB4NDllZiwgMHhhNmI1LCAweDAwMDEsIDB4NzAwNywKLQkweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwgMHg0OWYxLCAweDI0MDAsIDB4YTMwNSwKLQkweDAwYzAsIDB4NDlmYywgMHgwMDc4LCAweDRhMjIsIDB4MmM1OCwgMHgyNzA0LCAweDYxMDQsIDB4YWM2MCwKLQkweDYwMDAsIDB4YTQwMCwgMHg3MDFhLCAweDYwMDQsIDB4YTMwMSwgMHg3MDFlLCAweGExODQsIDB4MDAwOCwKLQkweDAwNDAsIDB4NGExMiwgMHg2MDEwLCAweGEwODEsIDB4MDAwMCwgMHg3MDIyLCAweDYwMTQsIDB4YTA4MSwKLQkweDAwMDAsIDB4NzAyNiwgMHg2MjA4LCAweDI0MDAsIDB4YTIwMiwgMHg3MDEyLCAweDYyMGMsIDB4MjMwMCwKLQkweGEyMDMsIDB4NzAxNiwgMHg3NjAyLCAweDcwMDcsIDB4MDAwMSwgMHgyYjYwLCAweDEwNzgsIDB4NDk4MSwKLQkweDAwNzgsIDB4NGEyNCwgMHgxMDc4LCAweDRiMDcsIDB4MDBjMCwgMHg0YTIyLCAweDEyN2YsIDB4MjAwMCwKLQkweDAwN2MsIDB4MTI3ZSwgMHgwZDdlLCAweDIwOTEsIDB4MjIwMCwgMHgwZDdmLCAweDcwMDcsIDB4MDAwNCwKLQkweDcwMDQsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsIDB4NGEzMCwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwKLQkweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDBkN2UsIDB4MjA5MSwgMHgyMjAwLCAweDBkN2YsIDB4MjA0OSwKLQkweDRhM2EsIDB4NzAwNywgMHgwMDA0LCAweDcwMDQsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsIDB4NGE0MywKLQkweDdlMDgsIDB4YTZiNSwgMHgwMDBjLCAweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywKLQkweDAwNDAsIDB4NGE1NiwgMHhhMThlLCAweDAwMGYsIDB4MDBjMCwgMHg0YTYxLCAweDY4MWMsIDB4YTA4NCwKLQkweDAwNDAsIDB4MDA0MCwgMHg0YTVkLCAweGE2YjUsIDB4MDAwMSwgMHg2ODQwLCAweDIwNTAsIDB4MDA3OCwKLQkweDRhNmEsIDB4NjgxYywgMHhhMDg0LCAweDAwMjAsIDB4MDBjMCwgMHg0YTY4LCAweGE2YjUsIDB4MDAwMSwKLQkweDY4MjgsIDB4MjA1MCwgMHgyZDYwLCAweDYwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4NDgwYywKLQkweDI3M2MsIDB4ODdmYiwgMHgwMGMwLCAweDRhN2UsIDB4MDA0OCwgMHg0YTc4LCAweDEwNzgsIDB4MjNlYiwKLQkweDY4OWMsIDB4YTA2NSwgMHgwMDQwLCAweDRhODIsIDB4MDA3OCwgMHg0YTZiLCAweDEwNzgsIDB4NGIwNywKLQkweDAwYzAsIDB4NGE3ZSwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDAwN2UsIDB4MDE3ZSwKLQkweDBkN2UsIDB4MjA5MSwgMHgyMjAwLCAweDBkN2YsIDB4MDM3ZiwgMHgwNDdmLCAweDdlMDgsIDB4YTZiNSwKLQkweDAwMGMsIDB4NjkwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwgMHgwMDA3LCAweDAwNDAsIDB4NGE5YywKLQkweGExOGUsIDB4MDAwZiwgMHgwMGMwLCAweDRhYTUsIDB4NjgxYywgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwKLQkweDRhYWMsIDB4YTZiNSwgMHgwMDAxLCAweDAwNzgsIDB4NGFhYywgMHg2ODFjLCAweGEwODQsIDB4MDA0MCwKLQkweDAwNDAsIDB4NGFhYywgMHhhNmI1LCAweDAwMDEsIDB4MjA0OSwgMHg0YTg1LCAweDAxN2UsIDB4NjkwNCwKLQkweGExOGMsIDB4MDBmZiwgMHhhMTg2LCAweDAwMDcsIDB4MDA0MCwgMHg0YWJhLCAweGExOGUsIDB4MDAwZiwKLQkweDAwYzAsIDB4NGFiZCwgMHg2ODQwLCAweDAwNzgsIDB4NGFiZSwgMHg2ODI4LCAweDAxN2YsIDB4YTA1NSwKLQkweDAwNDAsIDB4NGIwNCwgMHgyZDcwLCAweDJlNjAsIDB4NzAwNCwgMHhhMGJjLCAweDAwMGYsIDB4YTdiOCwKLQkweDQ4MGMsIDB4MjczYywgMHg4N2ZiLCAweDAwYzAsIDB4NGFkOCwgMHgwMDQ4LCAweDRhZDEsIDB4MTA3OCwKLQkweDIzZWIsIDB4NzA5YywgMHhhMDc1LCAweDIwNjAsIDB4MDA0MCwgMHg0YjA0LCAweDAwNzgsIDB4NGFjNCwKLQkweDI3MDQsIDB4YWU2OCwgMHg2ODA4LCAweGE0MjIsIDB4NjgwYywgMHhhMzFiLCAweDAwNDgsIDB4NGFmMSwKLQkweDhhNTEsIDB4MDBjMCwgMHg0YWU1LCAweDEwNzgsIDB4MjNlYiwgMHg4NzM4LCAweDI3MDQsIDB4YTAwNSwKLQkweDAwYzAsIDB4NGFkOSwgMHg3MDljLCAweGEwNzUsIDB4MjA2MCwgMHgwMDQwLCAweDRiMDQsIDB4MDA3OCwKLQkweDRhYzQsIDB4ODQyMiwgMHg4NDIwLCAweDgzMWEsIDB4YTM5OSwgMHgwMDAwLCAweDY5MDgsIDB4MjQwMCwKLQkweGExMjIsIDB4NjkwYywgMHgyMzAwLCAweGExMWIsIDB4MDBjOCwgMHg0YjAwLCAweDEwNzgsIDB4MjNlYiwKLQkweDIwNzEsIDB4MDAyMCwgMHgwMDc4LCAweDQ5ZWYsIDB4MTI3ZiwgMHgyMDAwLCAweDAwN2MsIDB4NzAwOCwKLQkweGEwODQsIDB4MDAwMywgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwgMHg0YjJmLCAweDI3MDQsIDB4YWMwOCwKLQkweDIxMDQsIDB4NzAxYSwgMHg4MTA4LCAweDIxMDQsIDB4NzAxZSwgMHg4MTA4LCAweDIxMDQsIDB4NzAxMiwKLQkweDgxMDgsIDB4MjEwNCwgMHg3MDE2LCAweDYwMDQsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4NGIyNiwKLQkweDgxMDgsIDB4MjEwNCwgMHg3MDIyLCAweDgxMDgsIDB4MjEwNCwgMHg3MDI2LCAweDc2MDIsIDB4NzAwNCwKLQkweGEwODQsIDB4MDAxMCwgMHhhMDg1LCAweDAwMDEsIDB4NzAwNiwgMHgxMDc4LCAweDQ5ODEsIDB4MDA3YywKLQkweDEyN2UsIDB4MDA3ZSwgMHgwZDdlLCAweDIwOTEsIDB4MjIwMCwgMHgyMDQ5LCAweDRiMzAsIDB4MGQ3ZiwKLQkweDA4N2YsIDB4NzEwOCwgMHhhMTg0LCAweDAwMDMsIDB4MDBjMCwgMHg0YjVhLCAweDAxN2UsIDB4NjkwNCwKLQkweGExOGMsIDB4MDBmZiwgMHhhMTg2LCAweDAwMDcsIDB4MDA0MCwgMHg0YjRhLCAweGExOGUsIDB4MDAwZiwKLQkweDAwYzAsIDB4NGI0ZCwgMHg2ODQwLCAweDAwNzgsIDB4NGI0ZSwgMHg2ODI4LCAweDAxN2YsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGI2OCwgMHgwMDc4LCAweDQ3OGQsIDB4MDAyMCwgMHg0YjVhLCAweDEwNzgsIDB4NDk0NCwKLQkweDAwNzgsIDB4NGI2OCwgMHgwMGEwLCAweDRiNjEsIDB4NzEwOCwgMHgxMDc4LCAweDQ4YmQsIDB4MDA3OCwKLQkweDRiMzksIDB4NzAwNywgMHgwMDEwLCAweDAwYTAsIDB4NGI2MywgMHg3MTA4LCAweDEwNzgsIDB4NDhiZCwKLQkweDcwMDgsIDB4YTA4NiwgMHgwMDA4LCAweDAwYzAsIDB4NGIzOSwgMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwKLQkweDRiMzksIDB4NzAwMywgMHgwMDAwLCAweDIwNDksIDB4MDAwMCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywKLQkweDEyN2UsIDB4MTQ3ZSwgMHgxMzdlLCAweDE1N2UsIDB4MGM3ZSwgMHgwZDdlLCAweDIwOTEsIDB4MjIwMCwKLQkweDBkN2YsIDB4MjA0OSwgMHg0Yjc4LCAweGFkODAsIDB4MDAxMSwgMHgyMGEwLCAweDIwOTksIDB4MDAzMSwKLQkweDcwMGMsIDB4YTA4NCwgMHgwMGZmLCAweDY4MmEsIDB4NzAwNywgMHgwMDA4LCAweDcwMDcsIDB4MDAwMiwKLQkweDcwMDMsIDB4MDAwMSwgMHgwMDQwLCAweDRiOTcsIDB4ODAwMCwgMHg4MGFjLCAweDUzYTUsIDB4NzAwNywKLQkweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwgMHg0Yjk5LCAweDBjN2YsIDB4MjA0OSwKLQkweDAwMDAsIDB4NzAwMywgMHgwMDAwLCAweDE1N2YsIDB4MTM3ZiwgMHgxNDdmLCAweDEyN2YsIDB4MjAwMCwKLQkweDAwN2MsIDB4MjA5MSwgMHg2MDAwLCAweDIwOTEsIDB4ODAwMCwgMHg3OGNjLCAweGEwMDUsIDB4MDA0MCwKLQkweDRiYzAsIDB4Nzk5NCwgMHg3MGQwLCAweGExMDYsIDB4MDBjMCwgMHg0YmMwLCAweDc4MDQsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGJjMCwgMHg3ODA3LCAweDAwMDAsIDB4MDA2OCwgMHg0YmMwLCAweDIwOTEsIDB4NDA4MCwKLQkweDc4MjAsIDB4ODAwMSwgMHg3ODIyLCAweDAwYzAsIDB4NGMxYiwgMHg3ODI0LCAweDc4MjIsIDB4MjA2OSwKLQkweDUxNDAsIDB4NjgwMCwgMHhhMDg0LCAweDAwMDcsIDB4MDA0MCwgMHg0YmRlLCAweGEwODYsIDB4MDAwMiwKLQkweDAwNDAsIDB4NGJkZSwgMHg2ODM0LCAweGEwMGQsIDB4MDA0MCwgMHg0YmRlLCAweDIxMDQsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGJkZSwgMHg4MDAxLCAweDIwMGEsIDB4MDA0MCwgMHg0Y2MzLCAweDc4NDgsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGJlYywgMHg4MDAxLCAweDc4NGEsIDB4MDBjMCwgMHg0YmVjLCAweDIwMDksIDB4MDEwMiwKLQkweDY4NDQsIDB4MjAwYSwgMHgxMDc4LCAweDIxZDIsIDB4Njg5MCwgMHhhMDA1LCAweDAwNDAsIDB4NGJmOCwKLQkweDgwMDEsIDB4Njg5MiwgMHgwMGMwLCAweDRiZjgsIDB4Njg2ZiwgMHgwMDAwLCAweDY4NzMsIDB4MDAwMSwKLQkweDIwNjEsIDB4NTQwMCwgMHgyMGE5LCAweDAxMDAsIDB4MjAwOSwgMHgwMDAyLCAweDYwMzQsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGMwZSwgMHg4MDAxLCAweDYwMzYsIDB4MDBjMCwgMHg0YzBlLCAweDYwMTAsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGMwZSwgMHgwMTdlLCAweDEwNzgsIDB4MjFkMiwgMHgwMTdmLCAweGFjZTAsIDB4MDAxMCwKLQkweDAwNzAsIDB4NGMxNCwgMHgwMDc4LCAweDRiZmUsIDB4ODEwOSwgMHgwMDQwLCAweDRjMWIsIDB4MjBhOSwKLQkweDAxMDAsIDB4MDA3OCwgMHg0YmZlLCAweDEwNzgsIDB4NGMyOCwgMHgxMDc4LCAweDRjNGQsIDB4MjAwOSwKLQkweDUxNTEsIDB4MjEwNCwgMHgyMDA5LCAweDAxMDIsIDB4MjAwYSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywKLQkweDc4MzQsIDB4ODAwMSwgMHg3ODM2LCAweDAwYzAsIDB4NGM0YywgMHg3ODM4LCAweDc4MzYsIDB4MjA5MSwKLQkweDgwMDAsIDB4Nzg0NCwgMHhhMDA1LCAweDAwYzAsIDB4NGMzNywgMHgyMDAxLCAweDAxMDEsIDB4ODAwMSwKLQkweDc4NDYsIDB4YTA4MCwgMHg3NDAwLCAweDIwNDAsIDB4MjAwNCwgMHhhMDY1LCAweDAwNDAsIDB4NGM0YywKLQkweDYwMjQsIDB4YTAwNSwgMHgwMDQwLCAweDRjNDgsIDB4ODAwMSwgMHg2MDI2LCAweDAwNDAsIDB4NGM3YywKLQkweDYwMDAsIDB4MmM0MCwgMHgwMDc4LCAweDRjM2QsIDB4MDA3YywgMHg3ODI4LCAweDgwMDEsIDB4NzgyYSwKLQkweDAwYzAsIDB4NGM3YiwgMHg3ODJjLCAweDc4MmEsIDB4NzgzMCwgMHhhMDA1LCAweDAwYzAsIDB4NGM1YSwKLQkweDIwMDEsIDB4MDIwMCwgMHg4MDAxLCAweDc4MzIsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKLQkweGEwOTAsIDB4NTQwMCwgMHhhMjk4LCAweDAwMDIsIDB4MjMwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA0MCwKLQkweDRjN2IsIDB4YTI5MCwgMHgwMDA5LCAweDIyMDQsIDB4YTAwNSwgMHgwMDQwLCAweDRjNzMsIDB4ODAwMSwKLQkweDIwMTIsIDB4MDBjMCwgMHg0YzdiLCAweDIzMDQsIDB4YTA4NCwgMHhmZmY3LCAweGEwODUsIDB4MDA4MCwKLQkweDIwMWEsIDB4MTA3OCwgMHgyMWQyLCAweDAwN2MsIDB4MjA2OSwgMHg1MTQwLCAweDY4MDAsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGM4NiwgMHg2ODQ4LCAweGFjMDYsIDB4MDA0MCwgMHg0Y2MzLCAweDYwMWIsIDB4MDAwNiwKLQkweDYwYjQsIDB4YTA4NCwgMHgzZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NSwKLQkweDAwNjAsIDB4NjAyMiwgMHg2MDAwLCAweDIwNDIsIDB4NjcxNCwgMHg2ZjgyLCAweDEwNzgsIDB4MTk3MywKLQkweDY4MTgsIDB4YTAwNSwgMHgwMDQwLCAweDRjOWUsIDB4ODAwMSwgMHg2ODFhLCAweDY4MDgsIDB4YTA4NCwKLQkweGZmZWYsIDB4NjgwYSwgMHg2ODEwLCAweDgwMDEsIDB4MDBkMCwgMHg0Y2E4LCAweDEwNzgsIDB4MjNlYiwKLQkweDY4MTIsIDB4NjAyZiwgMHgwMDAwLCAweDYwMzMsIDB4MDAwMCwgMHgyYzY4LCAweDEwNzgsIDB4MWM3MCwKLQkweDIwNjksIDB4NTE0MCwgMHg3OTQ0LCAweGExODQsIDB4MDEwMCwgMHgyMDAxLCAweDAwMDYsIDB4Njg2ZSwKLQkweDAwYzAsIDB4NGNiZSwgMHg2OTg2LCAweDIwMDEsIDB4MDAwNCwgMHg2ODZlLCAweDEwNzgsIDB4MjFjZCwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDIwNjksIDB4MDEwMCwgMHgyMDA5LCAweDUxNDAsIDB4MjEwNCwKLQkweGEwODQsIDB4MDAwNywgMHgwMDQwLCAweDRkMWYsIDB4YTA4NiwgMHgwMDA3LCAweDAwYzAsIDB4NGNkOSwKLQkweDBkN2UsIDB4MjAwOSwgMHg1MTUyLCAweDIxNmMsIDB4MTA3OCwgMHgzYTRlLCAweDBkN2YsIDB4MDA3OCwKLQkweDRkMWYsIDB4MjAwOSwgMHg1MTUyLCAweDIxNjQsIDB4MTA3OCwgMHgyMzk2LCAweDYwMWIsIDB4MDAwNiwKLQkweDY4NTgsIDB4YTA4NCwgMHgzZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NSwKLQkweDAwNDgsIDB4NjAyMiwgMHg2MDJmLCAweDAwMDAsIDB4NjAzMywgMHgwMDAwLCAweDY4MzAsIDB4YTA4NCwKLQkweDAwNDAsIDB4MDA0MCwgMHg0ZDEzLCAweDY4NGIsIDB4MDAwNCwgMHgyMGE5LCAweDAwMTQsIDB4Njg0OCwKLQkweGEwODQsIDB4MDAwNCwgMHgwMDQwLCAweDRkMDAsIDB4MDA3MCwgMHg0ZDAwLCAweDAwNzgsIDB4NGNmNywKLQkweDY4NGIsIDB4MDAwOSwgMHgyMGE5LCAweDAwMTQsIDB4Njg0OCwgMHhhMDg0LCAweDAwMDEsIDB4MDA0MCwKLQkweDRkMGQsIDB4MDA3MCwgMHg0ZDBkLCAweDAwNzgsIDB4NGQwNCwgMHgyMGE5LCAweDAwZmEsIDB4MDA3MCwKLQkweDRkMTMsIDB4MDA3OCwgMHg0ZDBmLCAweDY4MDgsIDB4YTA4NCwgMHhmZmZkLCAweDY4MGEsIDB4NjgxYiwKLQkweDAwNDgsIDB4MjAwOSwgMHg1MTViLCAweDIwMGIsIDB4MDAwNywgMHg3ODRjLCAweDc4NGEsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA3YywgMHgyMDc5LCAweDUxMDAsIDB4MTA3OCwgMHg0ZDRkLCAweDEwNzgsIDB4NGQzMSwKLQkweDEwNzgsIDB4NGQzZiwgMHg3ODMzLCAweDAwMDAsIDB4Nzg0NywgMHgwMDAwLCAweDc4NGIsIDB4MDAwMCwKLQkweDAwN2MsIDB4MjAxOSwgMHgwMDAzLCAweDIwMTEsIDB4NTE0NiwgMHgyMjA0LCAweGEwODYsIDB4MDAzYywKLQkweDAwNDAsIDB4NGQzYywgMHgyMDE5LCAweDAwMDIsIDB4N2IyYSwgMHg3YjJlLCAweDAwN2MsIDB4MjAxOSwKLQkweDAwMzksIDB4MjAxMSwgMHg1MTQ2LCAweDIyMDQsIDB4YTA4NiwgMHgwMDNjLCAweDAwNDAsIDB4NGQ0YSwKLQkweDIwMTksIDB4MDAyNywgMHg3YjM2LCAweDdiM2EsIDB4MDA3YywgMHgyMDE5LCAweDM5NzEsIDB4MjAxMSwKLQkweDUxNDYsIDB4MjIwNCwgMHhhMDg2LCAweDAwM2MsIDB4MDA0MCwgMHg0ZDU4LCAweDIwMTksIDB4MjYyNiwKLQkweDdiMjIsIDB4N2IyNiwgMHg3ODNmLCAweDAwMDAsIDB4Nzg0MywgMHgwMDBhLCAweDAwN2MsIDB4MDAyMCwKLQkweDAwMmIsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDE0LCAweDAwMTQsIDB4OTg0OSwgMHgwMDE0LCAweDAwMTQsIDB4MDAxNCwKLQkweDAwMTQsIDB4MDAxNCwgMHgwMDE0LCAweDAwMTQsIDB4MDA4MCwgMHgwMDBmLCAweDAwMDAsIDB4MDIwMSwKLQkweDA2MDQsIDB4MGMwOCwgMHgyMTIwLCAweDQwMjIsIDB4Zjg4MCwgMHgwMDE4LCAweDMwMGIsIDB4YTIwMSwKLQkweDAwMTQsIDB4YTIwMCwgMHgwMDE0LCAweGEyMDAsIDB4MDIxNCwgMHgwMDAwLCAweDAwNmMsIDB4MDAwMiwKLQkweDAwMTQsIDB4OThkMCwgMHgwMDllLCAweDAwOTYsIDB4YTIwMiwgMHg4ODM4LCAweDM4MDYsIDB4ODgzOSwKLQkweDIwYzMsIDB4MDg2NCwgMHg5ODg0LCAweDI4YzEsIDB4OWNiMSwgMHhhMjAzLCAweDMwMGMsIDB4Mjg0NiwKLQkweDgxNjEsIDB4ODQ2YSwgMHg4MzAwLCAweDE4NTYsIDB4ODgzYSwgMHg5ODY1LCAweDI4ZjIsIDB4OWM5MCwKLQkweDk4NTgsIDB4MzAwYywgMHgyOGUxLCAweDljOTAsIDB4MjgwMiwgMHhhMjA2LCAweDY0YzMsIDB4MjgyZCwKLQkweGEyMDcsIDB4NjRhMCwgMHg2N2EwLCAweDZmYzAsIDB4MTgxNCwgMHg4ODNiLCAweDc4MjQsIDB4NjhjMSwKLQkweDc4NjQsIDB4ODgzZSwgMHg5ODc4LCAweDg1NzYsIDB4ODY3NywgMHgyMDZiLCAweDI4YzEsIDB4OWNiMSwKLQkweDIwNDQsIDB4MjEwMywgMHgyMGEyLCAweDIwODEsIDB4OTg2NSwgMHhhMjA5LCAweDI5MDEsIDB4OTg4YywKLQkweDAwMTQsIDB4YTIwNSwgMHhhMzAwLCAweDE4NzIsIDB4ODc5YSwgMHg4ODNjLCAweDFmZTIsIDB4YzYwMSwKLQkweGEyMGEsIDB4ODU2ZSwgMHgwNzA0LCAweDljOTAsIDB4MDAxNCwgMHhhMjA0LCAweGEzMDAsIDB4MzAwOSwKLQkweDE5ZTIsIDB4Zjg2OCwgMHg4MTc2LCAweDg2ZWIsIDB4ODVlYiwgMHg4NzJlLCAweDg3YTksIDB4ODgzZiwKLQkweDA4ZTYsIDB4OTg5MCwgMHhmODgxLCAweDk4OGIsIDB4YzgwMSwgMHgwMDE0LCAweGY4YzEsIDB4MDAxNiwKLQkweDg1YjIsIDB4ODBmMCwgMHg5NTMyLCAweGZiMDIsIDB4MWRlMiwgMHgwMDE0LCAweDg1MzIsIDB4ZjI0MSwKLQkweDAwMTQsIDB4MWRlMiwgMHg4NGE4LCAweGQ3YTAsIDB4MWZlNiwgMHgwMDE0LCAweGEyMDgsIDB4NjA0MywKLQkweDgwMDgsIDB4MWRjMSwgMHgwMDE2LCAweDgzMDAsIDB4ODE2MCwgMHg4NDJhLCAweGYwNDEsIDB4MzAwOCwKLQkweDg0YTgsIDB4MTFkNiwgMHg3MDQyLCAweDIwZGQsIDB4MDAxMSwgMHgyMGQ1LCAweDg4MjIsIDB4MDAxNiwKLQkweDgwMDAsIDB4Mjg0NywgMHgxMDExLCAweDk4YzMsIDB4ODAwMCwgMHhhMDAwLCAweDI4MDIsIDB4MTAxMSwKLQkweDk4YzksIDB4OTg2NSwgMHgyODNlLCAweDEwMTEsIDB4OThjZCwgMHhhMjBiLCAweDAwMTcsIDB4MzAwYywKLQkweGEzMDAsIDB4MWRlMiwgMHhkYjgxLCAweDAwMTQsIDB4MDIxMCwgMHg5OGRhLCAweDAwMTQsIDB4MjZlMCwKLQkweDg3M2EsIDB4ZmIwMiwgMHgxOWYyLCAweDFmZTIsIDB4MDAxNCwgMHhhMjBkLCAweDM4MDYsIDB4MDIxMCwKLQkweDljYjYsIDB4MDcwNCwgMHgwMDAwLCAweDAwNmMsIDB4MDAwMiwgMHg5ODRmLCAweDAwMTQsIDB4MDA5ZSwKLQkweDAwYTUsIDB4MDAxNywgMHg2MGZmLCAweDMwMGMsIDB4ODcyMCwgMHhhMjExLCAweDljZDUsIDB4ODc3MiwKLQkweDg4MzcsIDB4MjEwMSwgMHg5ODdhLCAweDEwZDIsIDB4NzhlMiwgMHg5Y2Q4LCAweDk4NTksIDB4ZDk4NCwKLQkweGYwZTIsIDB4ZjBhMSwgMHg5OGQyLCAweDAwMTQsIDB4ODgzMSwgMHhkMTY2LCAweDg4MzAsIDB4ODAwZiwKLQkweDk0MDEsIDB4YjUyMCwgMHhjODAyLCAweDg4MjAsIDB4OTg3YSwgMHgyMzAxLCAweDk4N2EsIDB4MTBkMiwKLQkweDc4ZTQsIDB4OWNkOCwgMHg4ODIxLCAweDg4MjAsIDB4OTg1OSwgMHhmMTIzLCAweGYxNDIsIDB4ZjEwMSwKLQkweDk4Y2IsIDB4MTBkMiwgMHg3MGY2LCAweDg4MzIsIDB4ODIwMywgMHg4NzBjLCAweGQ5OWUsIDB4NjAwMSwKLQkweDAwMTQsIDB4Njg0NSwgMHgwMjE0LCAweGEyMWIsIDB4OWNkNSwgMHgyMDAxLCAweDk4Y2EsIDB4ODIwMSwKLQkweDE4NTIsIDB4ZDE4NCwgMHhkMTYzLCAweDg4MzQsIDB4ODAwMSwgMHg5ODhkLCAweDMwMjcsIDB4ODRhOCwKLQkweDFhNTYsIDB4ODgzMywgMHgwMDE0LCAweGEyMTgsIDB4Njk4MSwgMHg5Y2MxLCAweDY5MmEsIDB4NjkwMiwKLQkweDE4MzQsIDB4OTg5ZCwgMHgxYTE0LCAweDgwMTAsIDB4ODU5MiwgMHg4MDI2LCAweDg0YjksIDB4NzAyMSwKLQkweDAwMTQsIDB4YTMwMCwgMHg2OWUxLCAweDljYWEsIDB4Njk0YywgMHhhMjEzLCAweDljYmEsIDB4MTQ2MiwKLQkweGEyMTMsIDB4ODAwMCwgMHgxNmUxLCAweDk4YjQsIDB4ODAyMywgMHgxNmUxLCAweDgwMDEsIDB4MTBmMSwKLQkweDAwMTYsIDB4Njk2OCwgMHhhMjE0LCAweDljYmEsIDB4ODAwNCwgMHgxNmUxLCAweDAxMDEsIDB4MzAwYSwKLQkweDg4MjcsIDB4MDAxNCwgMHg5Y2JhLCAweDAwMTQsIDB4NjFjMiwgMHg4MDAyLCAweDE0ZTEsIDB4MDAxNiwKLQkweGEyMTcsIDB4OWNjMSwgMHgwMDE0LCAweGEzMDAsIDB4ODE4MSwgMHg4NDJhLCAweDg0YTgsIDB4MWNlNiwKLQkweDg4MmMsIDB4MDAxNiwgMHhhMjEyLCAweDljZDUsIDB4MTBkMiwgMHg3MGU0LCAweDAwMDQsIDB4ODAwNywKLQkweDk0MjQsIDB4Y2MxYSwgMHg5Y2Q4LCAweDk4Y2EsIDB4ODgyNywgMHgzMDBhLCAweDAwMTMsIDB4ODAwMCwKLQkweDg0YTQsIDB4MDAxNiwgMHgxMWMyLCAweDIxMWUsIDB4ODcwZSwgMHhhMjFkLCAweDAwMTQsIDB4ODc4ZSwKLQkweDAwMTYsIDB4YTIxYywgMHgxMDM1LCAweDk4OTEsIDB4YTIxMCwgMHhhMDAwLCAweDgwMTAsIDB4ODU5MiwKLQkweDg1M2IsIDB4ZDA0NCwgMHg4MDIyLCAweDM4MDcsIDB4ODRiYiwgMHg5OGVmLCAweDgwMjEsIDB4MzgwNywKLQkweDg0YjksIDB4MzAwYywgMHg4MTdlLCAweDg3MmIsIDB4ODc3MiwgMHg5ODkxLCAweDAwMDAsIDB4MDAyMCwKLQkweDAwMmIsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKLQkweDAwMjAsIDB4MDAwMCwgMHgwMDE0LCAweDAwMTQsIDB4OTg0OSwgMHgwMDE0LCAweDAwMTQsIDB4OThlNSwKLQkweDk4ZDAsIDB4MDAxNCwgMHgwMDE0LCAweDAwMTQsIDB4MDA4MCwgMHgwMTNmLCAweDAwMDAsIDB4MDIwMSwKLQkweDA2MDQsIDB4MGMwOCwgMHgyMTIwLCAweDQwMjIsIDB4Zjg4MCwgMHgwMDE4LCAweDMwMGIsIDB4YTIwMSwKLQkweDAwMTQsIDB4YTIwMCwgMHgwMDE0LCAweGEyMDAsIDB4MDIxNCwgMHhhMjAyLCAweDg4MzgsIDB4MzgwNiwKLQkweDg4MzksIDB4MjBjMywgMHgwODY0LCAweGE4MmUsIDB4MjhjMSwgMHg5Y2IxLCAweGEyMDMsIDB4MzAwYywKLQkweDI4NDYsIDB4ODE2MSwgMHg4NDZhLCAweDgzMDAsIDB4MTg1NiwgMHg4ODNhLCAweGE4MDQsIDB4MjhmMiwKLQkweDljOTAsIDB4YThmNCwgMHgzMDBjLCAweDI4ZTEsIDB4OWM5MCwgMHgyODAyLCAweGEyMDYsIDB4NjRjMywKLQkweDI4MmQsIDB4YTIwNywgMHg2NGEwLCAweDY3YTAsIDB4NmZjMCwgMHgxODE0LCAweDg4M2IsIDB4NzgyNCwKLQkweDY4YzEsIDB4Nzg2NCwgMHg4ODNlLCAweGE4MDIsIDB4ODU3NiwgMHg4Njc3LCAweDIwNmIsIDB4MjhjMSwKLQkweDljYjEsIDB4MjA0NCwgMHgyMTAzLCAweDIwYTIsIDB4MjA4MSwgMHhhOGU1LCAweGEyMDksIDB4MjkwMSwKLQkweGE4MDksIDB4MDAxNCwgMHhhMjA1LCAweGEzMDAsIDB4MTg3MiwgMHg4NzlhLCAweDg4M2MsIDB4MWZlMiwKLQkweGM2MDEsIDB4YTIwYSwgMHg4NTZlLCAweDA3MDQsIDB4OWM5MCwgMHgwMDE0LCAweGEyMDQsIDB4YTMwMCwKLQkweDMwMDksIDB4MTllMiwgMHhmODY4LCAweDgxNzYsIDB4ODZlYiwgMHg4NWViLCAweDg3MmUsIDB4ODdhOSwKLQkweDg4M2YsIDB4MDhlNiwgMHhhOGYzLCAweGY4ODEsIDB4YThlYywgMHhjODAxLCAweDAwMTQsIDB4ZjhjMSwKLQkweDAwMTYsIDB4ODViMiwgMHg4MGYwLCAweDk1MzIsIDB4ZmIwMiwgMHgxZGUyLCAweDAwMTQsIDB4ODUzMiwKLQkweGYyNDEsIDB4MDAxNCwgMHgxZGUyLCAweDg0YTgsIDB4ZDdhMCwgMHgxZmU2LCAweDAwMTQsIDB4YTIwOCwKLQkweDYwNDMsIDB4ODAwOCwgMHgxZGMxLCAweDAwMTYsIDB4ODMwMCwgMHg4MTYwLCAweDg0MmEsIDB4ZjA0MSwKLQkweDMwMDgsIDB4ODRhOCwgMHgxMWQ2LCAweDcwNDIsIDB4MjBkZCwgMHgwMDExLCAweDIwZDUsIDB4ODgyMiwKLQkweDAwMTYsIDB4ODAwMCwgMHgyODQ3LCAweDEwMTEsIDB4YThmYywgMHg4MDAwLCAweGEwMDAsIDB4MjgwMiwKLQkweDEwMTEsIDB4YThmZCwgMHhhODk4LCAweDI4M2UsIDB4MTAxMSwgMHhhOGZkLCAweGEyMGIsIDB4MDAxNywKLQkweDMwMGMsIDB4YTMwMCwgMHgxZGUyLCAweGRiODEsIDB4MDAxNCwgMHgwMjEwLCAweGE4MDEsIDB4MDAxNCwKLQkweDI2ZTAsIDB4ODczYSwgMHhmYjAyLCAweDE5ZjIsIDB4MWZlMiwgMHgwMDE0LCAweGEyMGQsIDB4MzgwNiwKLQkweDAyMTAsIDB4OWNiNiwgMHgwNzA0LCAweDAwMTcsIDB4NjBmZiwgMHgzMDBjLCAweDg3MjAsIDB4YTIxMSwKLQkweDlkNmIsIDB4ODc3MiwgMHg4ODM3LCAweDIxMDEsIDB4YTgyMSwgMHgxMGQyLCAweDc4ZTIsIDB4OWQ2ZSwKLQkweGE4ZmMsIDB4ZDk4NCwgMHhmMGUyLCAweGYwYTEsIDB4YTg3MSwgMHgwMDE0LCAweDg4MzEsIDB4ZDE2NiwKLQkweDg4MzAsIDB4ODAwZiwgMHg5NDAxLCAweGI1MjAsIDB4YzgwMiwgMHg4ODIwLCAweGE4MGYsIDB4MjMwMSwKLQkweGE4MGQsIDB4MTBkMiwgMHg3OGU0LCAweDlkNmUsIDB4ODgyMSwgMHg4ODIwLCAweGE4ZTYsIDB4ZjEyMywKLQkweGYxNDIsIDB4ZjEwMSwgMHhhODU0LCAweDEwZDIsIDB4NzBmNiwgMHg4ODMyLCAweDgyMDMsIDB4ODcwYywKLQkweGQ5OWUsIDB4NjAwMSwgMHgwMDE0LCAweDY4NDUsIDB4MDIxNCwgMHhhMjFiLCAweDlkNmIsIDB4MjAwMSwKLQkweGE4NDUsIDB4ODIwMSwgMHgxODUyLCAweGQxODQsIDB4ZDE2MywgMHg4ODM0LCAweDgwMDEsIDB4YTgwMSwKLQkweDMwMjcsIDB4ODRhOCwgMHgxYTU2LCAweDg4MzMsIDB4MDAxNCwgMHhhMjE4LCAweDY5ODEsIDB4OWQ1NywKLQkweDY5MmEsIDB4NjkwMiwgMHgxODM0LCAweGE4MDUsIDB4MWExNCwgMHg4MDEwLCAweDg1OTIsIDB4ODAyNiwKLQkweDg0YjksIDB4NzAyMSwgMHgwMDE0LCAweGEzMDAsIDB4NjllMSwgMHg5ZDQwLCAweDY5NGMsIDB4YTIxMywKLQkweDlkNTAsIDB4MTQ2MiwgMHhhMjEzLCAweDgwMDAsIDB4MTZlMSwgMHhhODBhLCAweDgwMjMsIDB4MTZlMSwKLQkweDgwMDEsIDB4MTBmMSwgMHgwMDE2LCAweDY5NjgsIDB4YTIxNCwgMHg5ZDUwLCAweDgwMDQsIDB4MTZlMSwKLQkweDAxMDEsIDB4MzAwYSwgMHg4ODI3LCAweDAwMTQsIDB4OWQ1MCwgMHgwMDE0LCAweDYxYzIsIDB4ODAwMiwKLQkweDE0ZTEsIDB4MDAxNiwgMHhhMjE3LCAweDlkNTcsIDB4MDAxNCwgMHhhMzAwLCAweDgxODEsIDB4ODQyYSwKLQkweDg0YTgsIDB4MWNlNiwgMHg4ODJjLCAweDAwMTYsIDB4YTIxMiwgMHg5ZDZiLCAweDEwZDIsIDB4NzBlNCwKLQkweDAwMDQsIDB4ODAwNywgMHg5NDI0LCAweGNjMWEsIDB4OWQ2ZSwgMHhhOGY4LCAweDg4MjcsIDB4MzAwYSwKLQkweDAwMTMsIDB4ODAwMCwgMHg4NGE0LCAweDAwMTYsIDB4MTFjMiwgMHgyMTFlLCAweDg3MGUsIDB4YTIxZCwKLQkweDAwMTQsIDB4ODc4ZSwgMHgwMDE2LCAweGEyMWMsIDB4MTAzNSwgMHhhOGFmLCAweGEyMTAsIDB4MzgwNywKLQkweDMwMGMsIDB4ODE3ZSwgMHg4NzJiLCAweDg3NzIsIDB4YThhOCwgMHgwMDAwLCAweGRmMjEKKwkweDY4MTQsIDB4ODAwNywgMHg3ODgyLCAweDAwNzgsIDB4Mzk2MCwgMHg2ODE4LCAweGEwODQsIDB4ODAwMCwKKwkweDAwNDAsIDB4MzIzNCwgMHg2ODFiLCAweDAwMDgsIDB4NzgxYiwgMHgwMGMwLCAweDAwNzgsIDB4MjRmYSwKKwkweDIzMDAsIDB4MDA3OSwgMHgzMjNiLCAweDMyNDAsIDB4MzJkNCwgMHgzMjNlLCAweDEwNzgsIDB4MjQ4YywKKwkweDcwMDAsIDB4YTA4NCwgMHgwMDA3LCAweDAwNzksIDB4MzI0NSwgMHgyNTIzLCAweDMyNGYsIDB4MzI4NCwKKwkweDMyNWEsIDB4MzI0ZCwgMHgyNTIzLCAweDMyNGQsIDB4MzI0ZCwgMHgxMDc4LCAweDI0OGMsIDB4NjgxYywKKwkweGEwODQsIDB4MjAwMCwgMHgwMDQwLCAweDMyNjgsIDB4NjAwOCwgMHhhMDg1LCAweDAwMDIsIDB4NjAwYSwKKwkweDAwNzgsIDB4MzI2OCwgMHg2OGMwLCAweGEwMDUsIDB4MDBjMCwgMHgzMjg0LCAweDY5MjAsIDB4YTE4ZCwKKwkweDAwMDEsIDB4NjkyMiwgMHg2OGMzLCAweDAwMDEsIDB4NjgwMCwgMHg3MDZhLCAweDAwNzgsIDB4MzI3ZSwKKwkweDY5MjAsIDB4YTE4ZCwgMHgwMDAxLCAweDY5MjIsIDB4NjgwMCwgMHg2MDA2LCAweGEwMDUsIDB4MDBjMCwKKwkweDMyNzIsIDB4NjAwMiwgMHg2ODFjLCAweGEwODQsIDB4MDAwZSwgMHgwMDQwLCAweDMyN2UsIDB4NzAxNCwKKwkweDY4YmEsIDB4NzEzMCwgMHhhMTg4LCAweDc1MDAsIDB4MDA3OCwgMHgzMjgwLCAweDIwMDksIDB4NzYwMCwKKwkweDIxMDQsIDB4NjgwMiwgMHgyZDBhLCAweDcxNjIsIDB4NmViNiwgMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwKKwkweDMyZDIsIDB4YTY4NCwgMHgwODAwLCAweDAwYzAsIDB4MzI5OCwgMHhhNjg0LCAweDdmZmYsIDB4NjhiNiwKKwkweDY4OTQsIDB4NjhhNiwgMHg2ODk4LCAweDY4YWEsIDB4MTA3OCwgMHg0ODg3LCAweDAwNzgsIDB4MzJkMiwKKwkweGE2ODQsIDB4MDAyMCwgMHgwMDQwLCAweDMyYWQsIDB4NjhjMCwgMHhhMDA1LCAweDAwNDAsIDB4MzJhNCwKKwkweDEwNzgsIDB4NGM4OSwgMHgwMDc4LCAweDMyYTcsIDB4YTAwNiwgMHgxMDc4LCAweDRjNDEsIDB4NzlkOCwKKwkweDdhZGMsIDB4NjlhYSwgMHg2YWE2LCAweDAwNzgsIDB4MzJiMywgMHgxMDc4LCAweDM4Y2EsIDB4NjlhYSwKKwkweDZhYTYsIDB4MTA3OCwgMHg0YzQxLCAweGE2ODQsIDB4ODAwMCwgMHgwMDQwLCAweDMyZDIsIDB4YTY4NCwKKwkweDdmZmYsIDB4NjhiNiwgMHg3YWRjLCAweDc5ZDgsIDB4YTY4NCwgMHgwMDIwLCAweDAwYzAsIDB4MzJjYSwKKwkweDc4ZDAsIDB4ODAxYiwgMHgwMGM4LCAweDMyYzUsIDB4ODAwMCwgMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwKKwkweGEyOTEsIDB4MDAwMCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwKKwkweGEzMDMsIDB4NjhhZSwgMHgwMDc4LCAweDI1MjMsIDB4MDA3OCwgMHgzNzdiLCAweDcwMzcsIDB4MDAwMCwKKwkweGEyODIsIDB4MDAwNiwgMHgwMDUwLCAweDMyZGUsIDB4MTA3OCwgMHgyNDhjLCAweDcwMDAsIDB4YTA4NCwKKwkweDAwMDcsIDB4MTBjMCwgMHgzYThjLCAweDIzMDAsIDB4MDA3OSwgMHgzMmU2LCAweDMyZTksIDB4MzMxMiwKKwkweDMzMjYsIDB4MjIwMCwgMHgwMDc5LCAweDMyZWMsIDB4MzMxMCwgMHgzNzdiLCAweDMyZjIsIDB4MzMxMCwKKwkweDMzNDIsIDB4MzM4NCwgMHg3MDAzLCAweDAwMDUsIDB4MjAwMSwgMHg3NzEwLCAweDIwNjgsIDB4NzA0YSwKKwkweDE1N2UsIDB4MjBhOSwgMHgwMDMxLCAweDIwMDMsIDB4MDAwMCwgMHg4MDAwLCAweDAwNzAsIDB4MzMwMiwKKwkweDAwNzgsIDB4MzJmYiwgMHgxNTdmLCAweGFkODAsIDB4MDAwOSwgMHg3MDM2LCAweDY4MTcsIDB4MDAwMCwKKwkweDY4YjcsIDB4MDcwMCwgMHg2ODIzLCAweDA4MDAsIDB4NjgyNywgMHgwMDAzLCAweDAwNzgsIDB4Mzc2YiwKKwkweDEwNzgsIDB4MjQ4YywgMHg3MDAzLCAweDAwMDUsIDB4MjAwMSwgMHg3NzEwLCAweDIwNjgsIDB4NzA0YSwKKwkweGFkODAsIDB4MDAwOSwgMHg3MDM2LCAweDIyMDAsIDB4MDA3OSwgMHgzMzFlLCAweDM3N2IsIDB4MzMyNCwKKwkweDMzMjQsIDB4MzM0MiwgMHgzMzI0LCAweDM3N2IsIDB4MTA3OCwgMHgyNDhjLCAweDcwMDMsIDB4MDAwNSwKKwkweDIwMDEsIDB4NzcxMCwgMHgyMDY4LCAweDcwNGEsIDB4YWQ4MCwgMHgwMDA5LCAweDcwMzYsIDB4MjIwMCwKKwkweDAwNzksIDB4MzMzMiwgMHgzMzNhLCAweDMzMzgsIDB4MzMzOCwgMHgzMzNhLCAweDMzMzgsIDB4MzMzYSwKKwkweDEwNzgsIDB4MjQ4YywgMHgxMDc4LCAweDM3OWYsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA2NSwKKwkweDAwNzgsIDB4MjRmYSwgMHg3MDAzLCAweDAwMDIsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsIDB4Nzg5YiwKKwkweDAwMTgsIDB4N2NhOCwgMHhhNDg0LCAweDAwMWYsIDB4YTIxNSwgMHgyMDY5LCAweDc2MDAsIDB4MmQwNCwKKwkweDJkMDgsIDB4NzE2MiwgMHgyMDY4LCAweGEwMDUsIDB4MDA0MCwgMHgzMzVkLCAweDY4MTQsIDB4YTIwNiwKKwkweDAwNDAsIDB4MzM3OSwgMHg2ODAwLCAweDAwNzgsIDB4MzM1MCwgMHg3MDAzLCAweDAwMDUsIDB4MjAwMSwKKwkweDc3MTAsIDB4MjA2OCwgMHg3MDRhLCAweDcwMzYsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMzEsIDB4MjAwMywKKwkweDAwMDAsIDB4ODAwMCwgMHgwMDcwLCAweDMzNmUsIDB4MDA3OCwgMHgzMzY3LCAweDE1N2YsIDB4YWQ4MCwKKwkweDAwMDksIDB4NzAzNiwgMHg2YTE2LCAweDY4YjcsIDB4MDcwMCwgMHg2ODIzLCAweDA4MDAsIDB4NjgyNywKKwkweDAwMDMsIDB4NmViNCwgMHg3ZTVhLCAweDY4MjAsIDB4YTA4NCwgMHgwYzAwLCAweDAwNDAsIDB4MzNkMywKKwkweDEwNzgsIDB4Mzc5NywgMHgwMDc4LCAweDMzZDMsIDB4NzAwMywgMHgwMDAyLCAweDdhODAsIDB4YTI5NCwKKwkweDBmMDAsIDB4Nzg5YiwgMHgwMDE4LCAweDdjYTgsIDB4YTQ4NCwgMHgwMDFmLCAweGEyMTUsIDB4NzlhOCwKKwkweDc5YTgsIDB4YTE4YywgMHgwMGZmLCAweGExZTgsIDB4NzUwMCwgMHgyZDA0LCAweDJkMDgsIDB4NzE2MiwKKwkweDIwNjgsIDB4YTAwNSwgMHgwMDQwLCAweDMzYTMsIDB4NjgxNCwgMHhhMjA2LCAweDAwNDAsIDB4MzNiZSwKKwkweDY4MDAsIDB4MDA3OCwgMHgzMzk2LCAweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDc3MTAsIDB4MjA2OCwKKwkweDcwNGEsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMzEsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MDA3MCwKKwkweDMzYjMsIDB4MDA3OCwgMHgzM2FjLCAweDE1N2YsIDB4YWQ4MCwgMHgwMDA5LCAweDcwMzYsIDB4NmExNiwKKwkweDY4YjcsIDB4MDcwMCwgMHg2ODIzLCAweDA4MDAsIDB4NjgyNywgMHgwMDAzLCAweDZlYjQsIDB4N2U1YSwKKwkweDY4MjAsIDB4YTA4NCwgMHgwYzAwLCAweDAwNDAsIDB4MzNkMywgMHhhMDg0LCAweDA4MDAsIDB4MDA0MCwKKwkweDMzY2QsIDB4MTA3OCwgMHgzNzliLCAweDAwNzgsIDB4MzNkMywgMHgxMDc4LCAweDM3OTcsIDB4NzA4YiwKKwkweDAwMDAsIDB4MDA3OCwgMHgzM2QzLCAweDAyN2UsIDB4ODIwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywKKwkweDgwMDMsIDB4ODAwMywgMHhhMDgwLCAweDU0ODAsIDB4MjA2MCwgMHg3MDU2LCAweDYwMDAsIDB4NzA1YSwKKwkweDYwMDQsIDB4NzA1ZSwgMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwgMHgzNDJiLCAweDZiOTgsIDB4NmM5NCwKKwkweDY5YWMsIDB4NjhiMCwgMHhhMTA1LCAweDAwYzAsIDB4MzQwZCwgMHg3YmQyLCAweDdiZGEsIDB4N2NkNiwKKwkweDdjZGUsIDB4YTZiNCwgMHhiN2ZmLCAweDdlNWEsIDB4YTY4NCwgMHgwMDYwLCAweGEwODYsIDB4MDA2MCwKKwkweDAwNDAsIDB4MzQyYiwgMHg2OGMwLCAweGEwMDUsIDB4MDA0MCwgMHgzNDA2LCAweDcwMDMsIDB4MDAwMywKKwkweDY4MmIsIDB4MDAwMCwgMHgxMDc4LCAweDRiM2EsIDB4MDA3OCwgMHgzNDA4LCAweDEwNzgsIDB4NGI0YiwKKwkweGE2YjUsIDB4MjAwMCwgMHg3ZTVhLCAweDAwNzgsIDB4MzQyYiwgMHg2OGIwLCAweGEzMWEsIDB4MjEwMCwKKwkweGE0MjMsIDB4MjQwMCwgMHhhMzA1LCAweDAwNDAsIDB4MzQyYiwgMHg3YmQyLCAweDdiZGEsIDB4N2NkNiwKKwkweDdjZGUsIDB4NjhiMCwgMHhhNmI0LCAweGJmZmYsIDB4N2U1YSwgMHgwMDdlLCAweDY4YzAsIDB4YTAwNSwKKwkweDAwN2YsIDB4MDA0MCwgMHgzNDI5LCAweDcwMDMsIDB4MDAwMywgMHgxMDc4LCAweDRiM2EsIDB4MDA3OCwKKwkweDM0MmIsIDB4MTA3OCwgMHg0Yjk2LCAweDA3N2YsIDB4MTA3OCwgMHgzOGJkLCAweDIwMDksIDB4MDA2NSwKKwkweGE2ODQsIDB4MDAwNCwgMHgwMDQwLCAweDM0NGMsIDB4NzhlNCwgMHhhMDg0LCAweDAwMzAsIDB4MDA0MCwKKwkweDM0NDQsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgzNDQ0LCAweDc4MmIsIDB4MzAwOCwKKwkweDIwMDksIDB4MDA2NSwgMHgwMDc4LCAweDM0NGMsIDB4MGY3ZSwgMHgyMDc5LCAweDUyMDAsIDB4MTA3OCwKKwkweDQ4ODcsIDB4MGY3ZiwgMHgwMDQwLCAweDI1MjMsIDB4NzkxYSwgMHgyZDAwLCAweDcwNGEsIDB4ODIwNywKKwkweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMDgwLCAweDU0ODAsIDB4MjA0OCwKKwkweDAwNzgsIDB4MjRmYSwgMHg2MDIwLCAweGEwMDUsIDB4MDA0MCwgMHgzNDY2LCAweDgwMDEsIDB4NjAyMiwKKwkweDYwMDgsIDB4YTA4NSwgMHgwMDA4LCAweDYwMGEsIDB4NzAxMCwgMHg2MDI2LCAweDAwN2MsIDB4YTAwNiwKKwkweDEwNzgsIDB4NDg4NywgMHg2ODE3LCAweDAwMDAsIDB4NjgxYiwgMHgwMDAxLCAweDY4MjMsIDB4MDA0MCwKKwkweDY4MWYsIDB4MDEwMCwgMHg3MDAwLCAweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDM0NzcsIDB4MjUyMywKKwkweDM0ODEsIDB4MzQ4MSwgMHgzNDllLCAweDM0ODksIDB4MzQ4NywgMHgzNDg5LCAweDM0N2YsIDB4MTA3OCwKKwkweDI0OGMsIDB4MTA3OCwgMHgzNGE5LCAweDEwNzgsIDB4MzRhMiwgMHgxMDc4LCAweDFjZGMsIDB4MDA3OCwKKwkweDI1MjMsIDB4NzA2YywgMHg3MDZmLCAweDAwMDAsIDB4NzA5MywgMHgwMDAwLCAweDAwNzksIDB4MzQ5MCwKKwkweDM0OWEsIDB4MzQ5YSwgMHgzNDk4LCAweDM0OTgsIDB4MzQ5OCwgMHgzNDlhLCAweDM0OTgsIDB4MzQ5YSwKKwkweDAwNzksIDB4MjkwMiwgMHg3MDZmLCAweDAwMDAsIDB4MDA3OCwgMHgyNTIzLCAweDY4MWIsIDB4MDAwMCwKKwkweDAwNzgsIDB4MmZiNiwgMHg2ODAwLCAweGEwMDUsIDB4MDBjMCwgMHgzNGE3LCAweDYwMDIsIDB4NjAwNiwKKwkweDAwN2MsIDB4NjAxMCwgMHhhMDA1LCAweDAwNDAsIDB4MzRiMiwgMHg4MDAxLCAweDAwZDAsIDB4MzRiMiwKKwkweDEwNzgsIDB4MjQ4YywgMHg2MDEyLCAweDYwMDgsIDB4YTA4NCwgMHhmZmVmLCAweDYwMGEsIDB4MDA3YywKKwkweDYwMTgsIDB4YTAwNSwgMHgwMDQwLCAweDM0YmUsIDB4ODAwMSwgMHg2MDFhLCAweDAwN2MsIDB4MTA3OCwKKwkweDM5ZTAsIDB4NjgxYiwgMHgwMDE4LCAweDAwNzgsIDB4MzRmNSwgMHgxMDc4LCAweDM5ZTAsIDB4NjgxYiwKKwkweDAwMTksIDB4MDA3OCwgMHgzNGY1LCAweDEwNzgsIDB4MzllMCwgMHg2ODFiLCAweDAwMWEsIDB4MDA3OCwKKwkweDM0ZjUsIDB4MTA3OCwgMHgzOWUwLCAweDY4MWIsIDB4MDAwMywgMHgwMDc4LCAweDM0ZjUsIDB4Nzc4MCwKKwkweDEwNzgsIDB4MzhiZCwgMHg3MTg0LCAweGExOGMsIDB4MDBmZiwgMHhhMWU4LCAweDc1MDAsIDB4MmQwNCwKKwkweDJkMDgsIDB4MjA2OCwgMHhhMDA1LCAweDAwYzAsIDB4MzRlNywgMHgwMDc4LCAweDI1MjMsIDB4NjgxNCwKKwkweDcyODAsIDB4YTIwNiwgMHgwMDQwLCAweDM0ZWYsIDB4NjgwMCwgMHgwMDc4LCAweDM0ZTAsIDB4NjgwMCwKKwkweDIwMGEsIDB4NjgxYiwgMHgwMDA1LCAweDcwOGIsIDB4MDAwMCwgMHgxMDc4LCAweDM0YTksIDB4NjgyMCwKKwkweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDM0ZmUsIDB4MTA3OCwgMHgzNGEyLCAweDEwNzgsIDB4MzRiOCwKKwkweDY4MWYsIDB4MDAwMCwgMHg2ODIzLCAweDAwMjAsIDB4MTA3OCwgMHgxY2RjLCAweDAwNzgsIDB4MjUyMywKKwkweGEyODIsIDB4MDAwMywgMHgwMGMwLCAweDM3NmIsIDB4N2RhOCwgMHhhNWFjLCAweDAwZmYsIDB4N2NhOCwKKwkweGE0YTQsIDB4MDBmZiwgMHg2OTIwLCAweGExOGQsIDB4MDA4MCwgMHg2OTIyLCAweGExODQsIDB4MDEwMCwKKwkweDAwNDAsIDB4MzU2YywgMHhhMThjLCAweGZlZmYsIDB4NjkyMiwgMHhhNGE0LCAweDAwZmYsIDB4MDA0MCwKKwkweDM1NTYsIDB4YTQ4MiwgMHgwMDBjLCAweDAwNDgsIDB4MzUyOSwgMHgwMDQwLCAweDM1MjksIDB4MjAyMSwKKwkweDAwMGMsIDB4ODUyYiwgMHg4NTJiLCAweDEwNzgsIDB4MzgyZSwgMHgwMDQwLCAweDM1MzMsIDB4MTA3OCwKKwkweDM2MjcsIDB4MDA3OCwgMHgzNTVmLCAweDEwNzgsIDB4MzdlOSwgMHgwYzdlLCAweDI5NjAsIDB4NjAwNCwKKwkweGEwODQsIDB4ZmZmNSwgMHg2MDA2LCAweDEwNzgsIDB4MzY1MiwgMHgwYzdmLCAweDY5MjAsIDB4YTE4ZCwKKwkweDAxMDAsIDB4NjkyMiwgMHg3ZTU4LCAweGE2YjUsIDB4MDAwNCwgMHg3ZTVhLCAweGE2ODQsIDB4MDQwMCwKKwkweDAwYzAsIDB4MzU1MCwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDU2LCAweDAwNzgsIDB4MjRmYSwKKwkweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDBjN2UsIDB4Mjk2MCwKKwkweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsIDB4MTA3OCwgMHgzNjUyLCAweDBjN2YsIDB4N2U1OCwKKwkweGE2ODQsIDB4MDQwMCwgMHgwMGMwLCAweDM1NjgsIDB4NzgxYiwgMHgwMDU4LCAweDAwNzgsIDB4MjRmYSwKKwkweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4NjEwMCwKKwkweGExOGMsIDB4MTAwMCwgMHgwMDQwLCAweDM1YWMsIDB4NjIwOCwgMHg4MjE3LCAweGEyOTQsIDB4MDBmZiwKKwkweGEyODIsIDB4MDAwYywgMHgwMDQ4LCAweDM1ODAsIDB4MDA0MCwgMHgzNTgwLCAweDIwMTEsIDB4MDAwYywKKwkweDI0MDAsIDB4YTIwMiwgMHgwMGM4LCAweDM1ODUsIDB4MjIyMCwgMHg2MjA4LCAweGEyOTQsIDB4MDBmZiwKKwkweDcwMTgsIDB4YTA4NiwgMHgwMDI4LCAweDAwYzAsIDB4MzU5NSwgMHhhMjgyLCAweDAwMTksIDB4MDBjOCwKKwkweDM1OWIsIDB4MjAxMSwgMHgwMDE5LCAweDAwNzgsIDB4MzU5YiwgMHhhMjgyLCAweDAwMGMsIDB4MDBjOCwKKwkweDM1OWIsIDB4MjAxMSwgMHgwMDBjLCAweDIyMDAsIDB4YTUwMiwgMHgwMGM4LCAweDM1YTAsIDB4MjIyOCwKKwkweDEwNzgsIDB4MzdlZCwgMHg4NTJiLCAweDg1MmIsIDB4MTA3OCwgMHgzODJlLCAweDAwNDAsIDB4MzVhYywKKwkweDEwNzgsIDB4MzYyNywgMHgwMDc4LCAweDM1YjAsIDB4MTA3OCwgMHgzN2U5LCAweDEwNzgsIDB4MzY1MiwKKwkweDc4NTgsIDB4YTA4NSwgMHgwMDA0LCAweDc4NWEsIDB4MGM3ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDBjN2UsIDB4Mjk2MCwgMHg2MDAwLCAweGQwZTQsIDB4MDBjMCwKKwkweDM1ZDUsIDB4ZDBiNCwgMHgwMGMwLCAweDM1Y2YsIDB4NjAxMCwgMHhhMDg0LCAweDAwMGYsIDB4MDBjMCwKKwkweDM1Y2YsIDB4NjEwNCwgMHhhMThjLCAweGZmZjUsIDB4NjEwNiwgMHgwYzdmLCAweDAwN2MsIDB4MjAxMSwKKwkweDAwMzIsIDB4MjAxOSwgMHgwMDAwLCAweDAwNzgsIDB4MzVmYywgMHg2OGEwLCAweGEwODQsIDB4MDIwMCwKKwkweDAwYzAsIDB4MzVjZiwgMHg2MjA4LCAweGEyOTQsIDB4MDBmZiwgMHg3MDE4LCAweGEwODYsIDB4MDAyOCwKKwkweDAwYzAsIDB4MzVlYSwgMHhhMjgyLCAweDAwMTksIDB4MDBjOCwgMHgzNWYwLCAweDIwMTEsIDB4MDAxOSwKKwkweDAwNzgsIDB4MzVmMCwgMHhhMjgyLCAweDAwMGMsIDB4MDBjOCwgMHgzNWYwLCAweDIwMTEsIDB4MDAwYywKKwkweDYzMDgsIDB4ODMxZiwgMHhhMzljLCAweDAwZmYsIDB4YTM4MiwgMHgwMDBjLCAweDAwNDgsIDB4MzVmYywKKwkweDAwNDAsIDB4MzVmYywgMHgyMDE5LCAweDAwMGMsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMywKKwkweDc4YWIsIDB4MDAwMSwgMHg3YWFhLCAweDdiYWEsIDB4YThjMCwgMHgwMDA1LCAweDY4MjAsIDB4YTA4NSwKKwkweDAxMDAsIDB4NjgyMiwgMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwgMHgyOTYwLCAweGExOGMsIDB4ZmZmNSwKKwkweDYxMDYsIDB4MjAxMSwgMHgwMDMyLCAweDIwMTksIDB4MDAwMCwgMHgwMDc4LCAweDM2MTcsIDB4NzhhYiwKKwkweDAwMDEsIDB4NzhhYiwgMHgwMDAzLCAweDc4YWIsIDB4MDAwMSwgMHg3YWFhLCAweDdiYWEsIDB4YThjMCwKKwkweDAwMDUsIDB4NjgyMCwgMHhhMDg1LCAweDAxMDAsIDB4NjgyMiwgMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwKKwkweDcxNTQsIDB4MjE2MCwgMHgxMDc4LCAweDM2MmUsIDB4MGM3ZiwgMHgwMDdjLCAweDIwMDgsIDB4YTA4NCwKKwkweGZmZjAsIDB4YTQyNSwgMHg3Yzg2LCAweDYwMTgsIDB4Nzg5YSwgMHg3Y2FlLCAweDY0MTIsIDB4NzhhNCwKKwkweGEwODQsIDB4ZmZmOCwgMHhhMThjLCAweDAwMDcsIDB4YTEwNSwgMHg3OGE2LCAweDYwMTYsIDB4Nzg4YSwKKwkweGE0YTQsIDB4MDAwZiwgMHg4NDI3LCAweDgyMDQsIDB4ODAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTQwNSwKKwkweDYwMGUsIDB4NzhlYywgMHhkMDhjLCAweDAwYzAsIDB4MzY1MSwgMHg2MDA0LCAweGEwODQsIDB4ZmZmNSwKKwkweDYwMDYsIDB4MDA3YywgMHgwYzdlLCAweDcwNTQsIDB4MjA2MCwgMHgxMDc4LCAweDM2NTksIDB4MGM3ZiwKKwkweDAwN2MsIDB4NjAxOCwgMHg3ODlhLCAweDc4YTQsIDB4YTA4NCwgMHhmZmYwLCAweDc4YTYsIDB4NjAxMiwKKwkweDc4ODQsIDB4YTA4NCwgMHhmZmYwLCAweDc4ODYsIDB4MDA3YywgMHhhMjgyLCAweDAwMDIsIDB4MDBjMCwKKwkweDM3NmIsIDB4N2FhOCwgMHg2OTIwLCAweGExOGQsIDB4MDA4MCwgMHg2OTIyLCAweGExODQsIDB4MDIwMCwKKwkweDAwNDAsIDB4MzZhZSwgMHhhMThjLCAweGZkZmYsIDB4NjkyMiwgMHhhMjk0LCAweDAwZmYsIDB4YTI4MiwKKwkweDAwMDIsIDB4MDBjOCwgMHgzNzZiLCAweDEwNzgsIDB4MzZmOSwgMHgxMDc4LCAweDM2NTIsIDB4YTk4MCwKKwkweDAwMDEsIDB4MjAwYywgMHgxMDc4LCAweDM4YjksIDB4MTA3OCwgMHgzNWJiLCAweDg4ZmYsIDB4MDA0MCwKKwkweDM2YTEsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGE2YjUsIDB4MDAwNCwKKwkweDdlNWEsIDB4YTY4NCwgMHgwNDAwLCAweDAwYzAsIDB4MzY5YiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNTYsIDB4MDA3OCwgMHgyNGZhLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwKKwkweDI0ZmEsIDB4N2U1OCwgMHhhNjg0LCAweDA0MDAsIDB4MDBjMCwgMHgzNmFhLCAweDc4MWIsIDB4MDA1OCwKKwkweDAwNzgsIDB4MjRmYSwgMHg3ODFiLCAweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweGEyODIsIDB4MDAwMiwKKwkweDAwYzgsIDB4MzZiNiwgMHhhMjg0LCAweDAwMDEsIDB4MDA0MCwgMHgzNmMwLCAweDcxNTQsIDB4YTE4OCwKKwkweDAwMDAsIDB4MjEwYywgMHhhMThjLCAweDIwMDAsIDB4MDBjMCwgMHgzNmMwLCAweDIwMTEsIDB4MDAwMCwKKwkweDEwNzgsIDB4MzdkYiwgMHgxMDc4LCAweDM2ZjksIDB4MTA3OCwgMHgzNjUyLCAweDc4NTgsIDB4YTA4NSwKKwkweDAwMDQsIDB4Nzg1YSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjRmYSwKKwkweDBjN2UsIDB4MDI3ZSwgMHgyOTYwLCAweDYwMDAsIDB4MjAxMSwgMHgwMDAxLCAweGQwZWMsIDB4MDBjMCwKKwkweDM2ZTksIDB4ZDBiYywgMHgwMGMwLCAweDM2ZTcsIDB4NjAxNCwgMHhhMDg0LCAweDAwNDAsIDB4MDBjMCwKKwkweDM2ZTcsIDB4YTE4YywgMHhmZmVmLCAweDYxMDYsIDB4YTAwNiwgMHgwMDc4LCAweDM2ZjYsIDB4MjAxMSwKKwkweDAwMDAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMiwgMHg3OGFiLCAweDAwMDMsIDB4N2FhYSwKKwkweGE4YzAsIDB4MDAwNCwgMHg2ODIwLCAweGEwODUsIDB4MDIwMCwgMHg2ODIyLCAweDAyN2YsIDB4MGM3ZiwKKwkweDAwN2MsIDB4MGM3ZSwgMHg3MDU0LCAweDIwNjAsIDB4MTA3OCwgMHgzNzAwLCAweDBjN2YsIDB4MDA3YywKKwkweDgyZmYsIDB4MDA0MCwgMHgzNzA1LCAweDIwMTEsIDB4MDA0MCwgMHg2MDE4LCAweGEwODAsIDB4MDAwMiwKKwkweDc4OWEsIDB4NzhhNCwgMHhhMDg0LCAweGZmYmYsIDB4YTIwNSwgMHg3OGE2LCAweDc4OGEsIDB4NjAxNiwKKwkweDc4ZWMsIDB4ZDA4YywgMHgwMGMwLCAweDM3MTgsIDB4NjAwNCwgMHhhMDg0LCAweGZmZWYsIDB4NjAwNiwKKwkweDAwN2MsIDB4MDA3ZSwgMHg3MDAwLCAweGEwODYsIDB4MDAwMywgMHgwMDQwLCAweDM3MjIsIDB4MDA3ZiwKKwkweDAwNzgsIDB4MzcyNSwgMHgwMDdmLCAweDAwNzgsIDB4Mzc2NywgMHhhNjg0LCAweDAwMjAsIDB4MDA0MCwKKwkweDM3NjcsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwgMHgzNzY3LCAweDdiYjgsIDB4YTM4NCwKKwkweDAwM2YsIDB4ODMxYiwgMHgwMGM4LCAweDM3MzUsIDB4ODAwMCwgMHhhMDA1LCAweDAwNDAsIDB4Mzc0YiwKKwkweDgzMWIsIDB4MDBjOCwgMHgzNzNlLCAweDgwMDEsIDB4MDA0MCwgMHgzNzYzLCAweGE2ODQsIDB4NDAwMCwKKwkweDAwNDAsIDB4Mzc0YiwgMHg3OGI4LCAweDgwMWIsIDB4MDBjOCwgMHgzNzQ3LCAweDgwMDAsIDB4YTA4NCwKKwkweDAwM2YsIDB4MDBjMCwgMHgzNzYzLCAweGE2YjQsIDB4YmZmZiwgMHg3ZTVhLCAweDc5ZDgsIDB4N2FkYywKKwkweDIwMDEsIDB4MDAwMSwgMHhhMTA4LCAweDAwYzgsIDB4Mzc1NywgMHhhMjkxLCAweDAwMDAsIDB4NzlkMiwKKwkweDc5ZGEsIDB4N2FkNiwgMHg3YWRlLCAweDEwNzgsIDB4NGM0MSwgMHg3ODFiLCAweDAwNjQsIDB4MTA3OCwKKwkweDRhYzYsIDB4MDA3OCwgMHgyNGZhLCAweDc4MWIsIDB4MDA2NCwgMHgwMDc4LCAweDI0ZmEsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDEwNzgsIDB4MzdhMywgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDEwNzgsIDB4Mzc4ZiwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwNjUsIDB4MDA3OCwgMHgyNGZhLCAweDY4MjcsIDB4MDAwMiwgMHgxMDc4LCAweDM3OTcsIDB4NzhlNCwKKwkweGEwODQsIDB4MDAzMCwgMHgwMDQwLCAweDI1MjMsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwKKwkweDI1MjMsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA2NSwgMHgwMDc4LCAweDI0ZmEsIDB4MjAwMSwKKwkweDAwMDUsIDB4MDA3OCwgMHgzN2E1LCAweDIwMDEsIDB4MDAwYywgMHgwMDc4LCAweDM3YTUsIDB4MjAwMSwKKwkweDAwMDYsIDB4MDA3OCwgMHgzN2E1LCAweDIwMDEsIDB4MDAwZCwgMHgwMDc4LCAweDM3YTUsIDB4MjAwMSwKKwkweDAwMDksIDB4MDA3OCwgMHgzN2E1LCAweDIwMDEsIDB4MDAwNywgMHg3ODliLCAweDAwMTAsIDB4NzhhYSwKKwkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDEsIDB4YTZiNSwgMHgwMDA0LCAweDdlNWEsIDB4MDA3YywKKwkweDA3N2UsIDB4ODczZiwgMHhhN2JjLCAweDAwMGYsIDB4ODczYiwgMHg4NzNiLCAweDg3MDMsIDB4YTBlMCwKKwkweDU0ODAsIDB4YTdiOCwgMHgwMDIwLCAweDdmOWEsIDB4NzlhNCwgMHhhMTg0LCAweDAwMGYsIDB4MDA0MCwKKwkweDM3YzksIDB4YTE4NCwgMHhmZmYwLCAweDc4YTYsIDB4NjAxMiwgMHg2MDA0LCAweGEwODUsIDB4MDAwOCwKKwkweDYwMDYsIDB4ODczOCwgMHg4NzM4LCAweDdmOWEsIDB4NzlhNCwgMHhhMTg0LCAweDAwNDAsIDB4MDA0MCwKKwkweDM3ZDksIDB4YTE4NCwgMHhmZmJmLCAweDc4YTYsIDB4NjAxNiwgMHg2MDA0LCAweGEwODUsIDB4MDAxMCwKKwkweDYwMDYsIDB4MDc3ZiwgMHgwMDdjLCAweDc4OWIsIDB4MDAxMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwKKwkweDAwMDIsIDB4NzhhYiwgMHgwMDAzLCAweDdhYWEsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwNCwKKwkweDAwN2MsIDB4MjAyMSwgMHgwMDAwLCAweDIwMjksIDB4MDAzMiwgMHg3ODliLCAweDAwMTAsIDB4NzhhYiwKKwkweDAwMDEsIDB4NzhhYiwgMHgwMDAzLCAweDc4YWIsIDB4MDAwMSwgMHg3ZGFhLCAweDdjYWEsIDB4Nzg5YiwKKwkweDAwNjAsIDB4NzhhYiwgMHgwMDA1LCAweDAwN2MsIDB4MTU3ZSwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwKKwkweDgwMDMsIDB4ODAwMywgMHhhMDgwLCAweDAwMjAsIDB4Nzg5YSwgMHg3OWE0LCAweGExOGMsIDB4ZmZmMCwKKwkweDIwMDEsIDB4NTI0NiwgMHgyMDA0LCAweGEwODIsIDB4MDAyOCwgMHgwMDQwLCAweDM4MTcsIDB4MjAyMSwKKwkweDM4YTAsIDB4MjAxOSwgMHgwMDE0LCAweDIwYTksIDB4MDAwYywgMHgwMDc4LCAweDM4MWQsIDB4MjAyMSwKKwkweDM4YWMsIDB4MjAxOSwgMHgwMDE5LCAweDIwYTksIDB4MDAwZCwgMHgyMDExLCAweDAwNjQsIDB4MjQwNCwKKwkweGEwODQsIDB4ZmZmMCwgMHhhMTA2LCAweDAwNDAsIDB4MzgyYywgMHg4NDIwLCAweDIzMDAsIDB4YTIxMCwKKwkweDAwNzAsIDB4MzgyYywgMHgwMDc4LCAweDM4MWYsIDB4MTU3ZiwgMHgwMDdjLCAweDE1N2UsIDB4MjAwOSwKKwkweDUyNDYsIDB4MjEwYywgMHhhMTgyLCAweDAwMzIsIDB4MDA0OCwgMHgzODQyLCAweDAwNDAsIDB4Mzg0NiwKKwkweDIwMDksIDB4Mzg5MiwgMHgyMDE5LCAweDAwMTEsIDB4MjBhOSwgMHgwMDBlLCAweDIwMTEsIDB4MDAzMiwKKwkweDAwNzgsIDB4Mzg1OCwgMHhhMTgyLCAweDAwMjgsIDB4MDA0MCwgMHgzODUwLCAweDIwMDksIDB4MzhhMCwKKwkweDIwMTksIDB4MDAxNCwgMHgyMGE5LCAweDAwMGMsIDB4MjAxMSwgMHgwMDY0LCAweDAwNzgsIDB4Mzg1OCwKKwkweDIwMDksIDB4MzhhYywgMHgyMDE5LCAweDAwMTksIDB4MjBhOSwgMHgwMDBkLCAweDIwMTEsIDB4MDA2NCwKKwkweDIyMDAsIDB4YTUwMiwgMHgwMDQwLCAweDM4NjgsIDB4MDA0OCwgMHgzODY4LCAweDgxMDgsIDB4MjMwMCwKKwkweGEyMTAsIDB4MDA3MCwgMHgzODY1LCAweDAwNzgsIDB4Mzg1OCwgMHgxNTdmLCAweGEwMDYsIDB4MDA3YywKKwkweDE1N2YsIDB4YTU4MiwgMHgwMDY0LCAweDAwYzgsIDB4Mzg3NywgMHg3ODA4LCAweGEwODUsIDB4MDA3MCwKKwkweDc4MGEsIDB4NzA0NCwgMHhhMDg1LCAweDAwNzAsIDB4NzA0NiwgMHgwMDc4LCAweDM4NzcsIDB4NzhlYywKKwkweGEwODQsIDB4MDMwMCwgMHgwMDQwLCAweDM4N2YsIDB4MjEwNCwgMHgwMDc4LCAweDM4OTAsIDB4MjEwNCwKKwkweGEwOWUsIDB4MTEwMiwgMHgwMGMwLCAweDM4OTAsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4YTA4MiwKKwkweDAwMDUsIDB4MDA0OCwgMHgzODhmLCAweDIwMDEsIDB4MTIwMSwgMHgwMDc4LCAweDM4OTAsIDB4MjEwNCwKKwkweGEwMDUsIDB4MDA3YywgMHgxMTAyLCAweDMwMDIsIDB4MzIwMiwgMHg0MjAzLCAweDQ0MDMsIDB4NTQwNCwKKwkweDU2MDQsIDB4NjYwNSwgMHg2ODA1LCAweDc4MDYsIDB4N2EwNiwgMHgwYzA3LCAweDBjMDcsIDB4MGUwNywKKwkweDMyMDIsIDB4NDIwMiwgMHg1MjAyLCAweDYyMDIsIDB4NzIwMiwgMHg2NjA1LCAweDc2MDUsIDB4NzgwNSwKKwkweDdhMDUsIDB4N2MwNSwgMHg3ZTA1LCAweDdmMDUsIDB4MjIwMiwgMHgzMjAyLCAweDQyMDIsIDB4NTIwMiwKKwkweDU0MDQsIDB4NjQwNCwgMHg3NDA0LCAweDc2MDQsIDB4NzgwNCwgMHg3YTA0LCAweDdjMDQsIDB4N2UwNCwKKwkweDdmMDQsIDB4Nzg5YiwgMHgwMDEwLCAweGEwNDYsIDB4MDA3YywgMHhhNzg0LCAweDBmMDAsIDB4ODAwYiwKKwkweGE3ODQsIDB4MDAxZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4YTBlMCwKKwkweDU1MDAsIDB4MDA3YywgMHg3OWQ4LCAweDdhZGMsIDB4NzhkMCwgMHg4MDFiLCAweDAwYzgsIDB4MzhkMSwKKwkweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDAwN2MsIDB4MGY3ZSwKKwkweDIwNzksIDB4MDEwMCwgMHgyMDA5LCAweDUyNDAsIDB4MjA5MSwgMHg4MDAwLCAweDIxMDQsIDB4MDA3OSwKKwkweDM4ZTEsIDB4MzkxNywgMHgzOGViLCAweDM4ZWIsIDB4MzhlYiwgMHgzOGViLCAweDM4ZWIsIDB4MzhlYiwKKwkweDM5MWIsIDB4MTA3OCwgMHgyNDhjLCAweDc4NGIsIDB4MDAwNCwgMHg3ODQ4LCAweGEwODQsIDB4MDAwNCwKKwkweDAwYzAsIDB4MzhlZCwgMHg3ODRiLCAweDAwMDgsIDB4Nzg0OCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwKKwkweDM4ZjQsIDB4NjhiNCwgMHhhMDg1LCAweDQwMDAsIDB4NjhiNiwgMHg3ODU4LCAweGEwODUsIDB4NDAwMCwKKwkweDc4NWEsIDB4NzgzMCwgMHhhMDg0LCAweDAwODAsIDB4MDBjMCwgMHgzOTE3LCAweDAwMTgsIDB4MzkxNywKKwkweDY4MWMsIDB4YTA4NCwgMHgwMDIwLCAweDAwYzAsIDB4MzkxNSwgMHgwZTdlLCAweDIwNzEsIDB4NTI0MCwKKwkweDEwNzgsIDB4Mzk2YSwgMHgwZTdmLCAweDAwNzgsIDB4MzkxNywgMHg3ODFiLCAweDAwY2EsIDB4MjA5MSwKKwkweDgwMDEsIDB4MGY3ZiwgMHgwMDdjLCAweDcwYjMsIDB4MDAwMCwgMHgxMDc4LCAweDNiNDQsIDB4MDA3OCwKKwkweDM5MTcsIDB4MGM3ZSwgMHg2ODE0LCAweDgwMDcsIDB4YTA4NCwgMHgwMDBmLCAweDgwMDMsIDB4ODAwMywKKwkweDgwMDMsIDB4YTBlMCwgMHg1NDgwLCAweDYwMDQsIDB4YTA4NCwgMHgwMDBhLCAweDAwYzAsIDB4Mzk1NCwKKwkweDYxMDgsIDB4YTE5NCwgMHhmZjAwLCAweDAwNDAsIDB4Mzk1NCwgMHhhMThjLCAweDAwZmYsIDB4MjAwMSwKKwkweDAwMTksIDB4YTEwNiwgMHgwMDQwLCAweDM5NDMsIDB4MjAwMSwgMHgwMDMyLCAweGExMDYsIDB4MDA0MCwKKwkweDM5NDcsIDB4MDA3OCwgMHgzOTRiLCAweDIwMDksIDB4MDAyMCwgMHgwMDc4LCAweDM5NGQsIDB4MjAwOSwKKwkweDAwM2YsIDB4MDA3OCwgMHgzOTRkLCAweDIwMTEsIDB4MDAwMCwgMHgyMTAwLCAweGEyMDUsIDB4NjAwYSwKKwkweDYwMDQsIDB4YTA4NSwgMHgwMDAyLCAweDYwMDYsIDB4MGM3ZiwgMHgwMDdjLCAweDc4MWIsIDB4MDA2NSwKKwkweDAwNzgsIDB4MjRmYSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwgMHgwMDY1LCAweDAwNzgsIDB4MjRmYSwKKwkweDc4MWIsIDB4MDA1OCwgMHgwMDc4LCAweDI0ZmEsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDA1NiwKKwkweDAwNzgsIDB4MjRmYSwgMHgyMDA5LCAweDUyMjAsIDB4MjEwYywgMHhhMTg2LCAweDAwMDAsIDB4MDA0MCwKKwkweDM5N2UsIDB4YTE4NiwgMHgwMDAxLCAweDAwNDAsIDB4Mzk4MSwgMHgyMDA5LCAweDUyMzgsIDB4MjAwYiwKKwkweDAwMGIsIDB4NzA2ZiwgMHgwMDAxLCAweDc4MWIsIDB4MDA0OCwgMHgwMDdjLCAweDc4MWIsIDB4MDBjNCwKKwkweDAwN2MsIDB4MjAwOSwgMHg1MjM4LCAweDIwMGIsIDB4MDAwYSwgMHgwMDdjLCAweDIwMDksIDB4NTIyMCwKKwkweDIxMGMsIDB4YTE4NiwgMHgwMDAwLCAweDAwNDAsIDB4MzlhMSwgMHhhMTg2LCAweDAwMDEsIDB4MDA0MCwKKwkweDM5OWIsIDB4MjAwOSwgMHg1MjM4LCAweDIwMGIsIDB4MDAwYiwgMHg3MDZmLCAweDAwMDEsIDB4NzgxYiwKKwkweDAwNDgsIDB4MDA3OCwgMHgyNGZhLCAweDIwMDksIDB4NTIzOCwgMHgyMDBiLCAweDAwMGEsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzgyYiwgMHgzMDA4LCAweDc4MWIsIDB4MDBjNCwgMHgwMDc4LCAweDI0ZmEsIDB4NzgxYiwKKwkweDAwY2EsIDB4MDA3OCwgMHgyNGZhLCAweDc4MmIsIDB4MzAwOCwgMHg3ODFiLCAweDAwY2EsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzgxYiwgMHgwMDhmLCAweDAwNzgsIDB4MjRmYSwgMHg3ODJiLCAweDMwMDgsIDB4NzgxYiwKKwkweDAwOGYsIDB4MDA3OCwgMHgyNGZhLCAweDY4MTgsIDB4YTA4NCwgMHg4MDAwLCAweDAwNDAsIDB4MzljMiwKKwkweDY4MWIsIDB4MDAxZCwgMHg3MDZmLCAweDAwMDEsIDB4NzgxYiwgMHgwMDQ4LCAweDAwNzgsIDB4MjRmYSwKKwkweDAwN2UsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgzOWRlLCAweDc4MDgsIDB4YTA4NCwKKwkweGZmZmMsIDB4NzgwYSwgMHgwMDA1LCAweDAwMDUsIDB4MDAwNSwgMHgwMDA1LCAweDc4ZWMsIDB4YTA4NCwKKwkweDAwMjEsIDB4MDA0MCwgMHgzOWRlLCAweDcwNDQsIDB4NzgwYSwgMHhhMDA1LCAweDAwN2YsIDB4MDA3YywKKwkweDcwNDQsIDB4YTA4NSwgMHgwMDAyLCAweDcwNDYsIDB4NzgwYSwgMHgwMDdjLCAweDAwN2UsIDB4NzgzMCwKKwkweGEwODQsIDB4MDA0MCwgMHgwMGMwLCAweDM5ZTcsIDB4MDA5OCwgMHgzOWYyLCAweDAwN2YsIDB4Nzg5YSwKKwkweDc4YWMsIDB4MDA3YywgMHg3ODA4LCAweGEwODQsIDB4ZmZmZCwgMHg3ODBhLCAweDAwMDUsIDB4MDAwNSwKKwkweDAwMDUsIDB4MDAwNSwgMHg3OGVjLCAweGEwODQsIDB4MDAyMSwgMHgwMDQwLCAweDNhMDEsIDB4MDA5OCwKKwkweDM5ZmYsIDB4MDA3ZiwgMHg3ODlhLCAweDc4YWMsIDB4MDA3ZSwgMHg3MDQ0LCAweDc4MGEsIDB4MDA3ZiwKKwkweDAwN2MsIDB4NzhlYywgMHhhMDg0LCAweDAwMDIsIDB4MDBjMCwgMHg0ODcxLCAweGE3ODQsIDB4MDA3ZCwKKwkweDAwYzAsIDB4M2ExNSwgMHgyNzAwLCAweDEwNzgsIDB4MjQ4YywgMHhhNzg0LCAweDAwMDEsIDB4MDBjMCwKKwkweDMwMGMsIDB4YTc4NCwgMHgwMDcwLCAweDAwNDAsIDB4M2EyNSwgMHgwYzdlLCAweDJkNjAsIDB4MmY2OCwKKwkweDEwNzgsIDB4MjQzNywgMHgyZDc4LCAweDJjNjgsIDB4MGM3ZiwgMHhhNzg0LCAweDAwMDgsIDB4MDA0MCwKKwkweDNhMzIsIDB4Nzg0YiwgMHgwMDA4LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwNDAsIDB4MjUyMywKKwkweDAwNzgsIDB4Mzk1NiwgMHhhNzg0LCAweDAwMDQsIDB4MDA0MCwgMHgzYTY1LCAweDc4YjgsIDB4YTA4NCwKKwkweDQwMDEsIDB4MDA0MCwgMHgzYTY1LCAweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDAwNDAsIDB4MjUyMywgMHg3OGU0LCAweGEwODQsIDB4MDAwNywgMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwKKwkweDNhNjUsIDB4NzhjMCwgMHhhMDg1LCAweDQ4MDAsIDB4MjAzMCwgMHg3ZTVhLCAweDc4MWIsIDB4MDBjYSwKKwkweDAwNzgsIDB4MjRmYSwgMHg3ODRiLCAweDAwMDgsIDB4NjgxOCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwKKwkweDNhNjEsIDB4NjgxYiwgMHgwMDE1LCAweGE2ODQsIDB4NDAwMCwgMHgwMDQwLCAweDNhNjEsIDB4NjgxYiwKKwkweDAwMDcsIDB4MTA3OCwgMHgzOTZhLCAweDAwNzgsIDB4MjRmYSwgMHg2ODFiLCAweDAwMDMsIDB4Nzg1OCwKKwkweGEwODQsIDB4M2YwMCwgMHg2ODFlLCAweDY4MmYsIDB4MDAwMCwgMHg2ODMzLCAweDAwMDAsIDB4Nzg0YiwKKwkweDAwMDgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgyYTA2LCAweDAwMTgsIDB4MjRmYSwKKwkweDAwNzgsIDB4Mzc3MywgMHg2YjE0LCAweDgzMDcsIDB4YTA4NCwgMHgwMDBmLCAweDgwMDMsIDB4ODAwMywKKwkweDgwMDMsIDB4YTA4MCwgMHg1NDgwLCAweDIwNjAsIDB4MjA0OCwgMHg3MDU2LCAweDYwMDAsIDB4NzA1YSwKKwkweDYwMDQsIDB4NzA1ZSwgMHgyYTYwLCAweDAwN2MsIDB4MDA3OSwgMHgzYThlLCAweDNhOTYsIDB4M2E5NywKKwkweDNhOTYsIDB4M2E5OSwgMHgzYTk2LCAweDNhOTYsIDB4M2E5NiwgMHgzYTllLCAweDAwN2MsIDB4MTA3OCwKKwkweDM0YjgsIDB4MTA3OCwgMHg0ODg3LCAweDcwMzgsIDB4NjAwYSwgMHgwMDdjLCAweDcwYTAsIDB4YTAwNSwKKwkweDAwNDAsIDB4M2FhYiwgMHgyMDY4LCAweDEwNzgsIDB4MWJkMywgMHgxMDc4LCAweDQ3ZmUsIDB4MTA3OCwKKwkweDQ4MDUsIDB4NzBhMywgMHgwMDAwLCAweDAwN2MsIDB4MGU3ZSwgMHgyMDkxLCAweDgwMDAsIDB4MjA3MSwKKwkweDUyNDAsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDcsIDB4MDBjMCwgMHgzYWMyLCAweDYxMTAsIDB4NzBiYywKKwkweGExMDYsIDB4MDBjMCwgMHgzYWMyLCAweDBlN2YsIDB4MTA3OCwgMHgxYmUwLCAweDEwNzgsIDB4M2FjOCwKKwkweGEwMDYsIDB4MDA3YywgMHgyMDkxLCAweDgwMDEsIDB4MGU3ZiwgMHhhMDg1LCAweDAwMDEsIDB4MDA3YywKKwkweDBmN2UsIDB4MGU3ZSwgMHgyMDcxLCAweDUyNDAsIDB4MDA3OCwgMHgyMjk3LCAweDc4NWIsIDB4MDAwMCwKKwkweDcwYWYsIDB4MDAwZSwgMHgyMDA5LCAweDAxMDAsIDB4MDE3ZSwgMHg3MGEwLCAweGEwNmQsIDB4MDA0MCwKKwkweDNhZGQsIDB4NzBhMywgMHgwMDAwLCAweDAwNzgsIDB4M2FlMywgMHg3MGIzLCAweDAwMDAsIDB4MTA3OCwKKwkweDFjMGMsIDB4MDA0MCwgMHgzYWU5LCAweDcwYWMsIDB4NjgyNiwgMHgxMDc4LCAweDNiYzYsIDB4MDA3OCwKKwkweDNhZGQsIDB4MDE3ZiwgMHgxNTdlLCAweDBjN2UsIDB4MGQ3ZSwgMHgyMGE5LCAweDAwMDgsIDB4MjA2MSwKKwkweDc2MTAsIDB4NjAwMCwgMHhhMTA1LCAweDYwMDIsIDB4NjAxYywgMHhhMDZkLCAweDAwNDAsIDB4M2IwMSwKKwkweDY4MDAsIDB4NjAxZSwgMHgxMDc4LCAweDE5YWMsIDB4NjAwOCwgMHg4MDAwLCAweDYwMGEsIDB4MDA3OCwKKwkweDNhZjQsIDB4NjAxOCwgMHhhMDZkLCAweDAwNDAsIDB4M2IwYiwgMHg2ODAwLCAweDYwMWEsIDB4MTA3OCwKKwkweDE5YWMsIDB4MDA3OCwgMHgzYjAxLCAweGFjZTAsIDB4MDAwOCwgMHgwMDcwLCAweDNiMTEsIDB4MDA3OCwKKwkweDNhZjEsIDB4NzA5YywgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgzYjE4LCAweDEwNzgsIDB4M2M0NCwKKwkweDBkN2YsIDB4MGM3ZiwgMHgxNTdmLCAweDAwN2MsIDB4MTI3ZSwgMHgyMDkxLCAweDIzMDAsIDB4NjgwNCwKKwkweGEwODQsIDB4MDAwZiwgMHgwMDc5LCAweDNiMjQsIDB4M2IzNCwgMHgzYjM0LCAweDNiMzQsIDB4M2IzNCwKKwkweDNiMzQsIDB4M2IzNCwgMHgzYjM2LCAweDNiM2MsIDB4M2IzNCwgMHgzYjM0LCAweDNiMzQsIDB4M2IzNCwKKwkweDNiMzQsIDB4M2IzZSwgMHgzYjM0LCAweDNiMzYsIDB4MTA3OCwgMHgyNDhjLCAweDEwNzgsIDB4NDVkMywKKwkweDEwNzgsIDB4MTlhYywgMHgwMDc4LCAweDNiNDIsIDB4NjgyNywgMHgwMDBiLCAweDEwNzgsIDB4NDVkMywKKwkweDEwNzgsIDB4M2JjNiwgMHgxMjdmLCAweDAwN2MsIDB4MTI3ZSwgMHgyMDkxLCAweDIzMDAsIDB4MDA5OCwKKwkweDNiNjAsIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgzYjYwLCAweDBkN2UsIDB4MTA3OCwKKwkweDQ4MTIsIDB4MmQwMCwgMHg2ODJlLCAweDIwMDksIDB4MDAwNCwgMHgyMDAxLCAweDAwMDAsIDB4NjgyNywKKwkweDAwODQsIDB4MTA3OCwgMHg0N2M3LCAweDEwNzgsIDB4M2JjNiwgMHgwZDdmLCAweDAwNzgsIDB4M2I5NCwKKwkweDc5NDgsIDB4YTE4NSwgMHg0MDAwLCAweDc4NGEsIDB4MDA5OCwgMHgzYjY5LCAweDc5NGEsIDB4MDA3OCwKKwkweDNiNGUsIDB4NzgyOCwgMHhhMDg2LCAweDE4MzQsIDB4MDBjMCwgMHgzYjcyLCAweGExODUsIDB4MDAwNCwKKwkweDAwNzgsIDB4M2I3OSwgMHg3ODI4LCAweGEwODYsIDB4MTgxNCwgMHgwMGMwLCAweDNiNjYsIDB4YTE4NSwKKwkweDAwMGMsIDB4Nzg0YSwgMHg3ODliLCAweDAwMGUsIDB4NzhhYiwgMHgwMDAyLCAweDc4NTgsIDB4YTA4NCwKKwkweDAwZmYsIDB4YTA4NSwgMHgwNDAwLCAweDc4NWEsIDB4NzBiNCwgMHhhMDgwLCAweDAwOTEsIDB4NzgxYSwKKwkweDY4MjcsIDB4MDI4NCwgMHg2ODJjLCAweDY4MzYsIDB4NjgzMCwgMHg2ODNhLCAweDIwMDksIDB4MDAwNCwKKwkweDIwMDEsIDB4MDAwMCwgMHgxMDc4LCAweDQ3YzcsIDB4MTI3ZiwgMHgwMDdjLCAweDBkN2UsIDB4NmIxNCwKKwkweDEwNzgsIDB4MWM3MCwgMHgwMDQwLCAweDNiYTMsIDB4MjA2OCwgMHg2ODI3LCAweDAwMDIsIDB4MTA3OCwKKwkweDNiYzYsIDB4MDA3OCwgMHgzYjk4LCAweDBkN2YsIDB4MDA3YywgMHgwZDdlLCAweDZiMTQsIDB4NmMyOCwKKwkweGE0YTQsIDB4MDBmZiwgMHgxMDc4LCAweDFjMWMsIDB4MDA0MCwgMHgzYmIzLCAweDIwNjgsIDB4NjgyNywKKwkweDAwMDIsIDB4MTA3OCwgMHgzYmM2LCAweDBkN2YsIDB4MDA3YywgMHgwZDdlLCAweDZiMTQsIDB4YTM5YywKKwkweDAwZmYsIDB4MTA3OCwgMHgxYzQ4LCAweDAwNDAsIDB4M2JjNCwgMHgyMDY4LCAweDY4MjcsIDB4MDAwMiwKKwkweDEwNzgsIDB4M2JjNiwgMHgwMDc4LCAweDNiYjksIDB4MGQ3ZiwgMHgwMDdjLCAweDBjN2UsIDB4NjkxNCwKKwkweDEwNzgsIDB4M2MzYiwgMHg2OTA0LCAweGExOGMsIDB4MDBmZiwgMHhhMTg2LCAweDAwMDYsIDB4MDA0MCwKKwkweDNiZTEsIDB4YTE4NiwgMHgwMDBkLCAweDAwNDAsIDB4M2MwMCwgMHhhMTg2LCAweDAwMTcsIDB4MDBjMCwKKwkweDNiZGQsIDB4MTA3OCwgMHgxOWFjLCAweDAwNzgsIDB4M2JkZiwgMHgxMDc4LCAweDFjZGUsIDB4MGM3ZiwKKwkweDAwN2MsIDB4NjAwNCwgMHg4MDAxLCAweDAwNDgsIDB4M2JmZSwgMHg2MDA2LCAweDIwMDksIDB4MDAwMCwKKwkweGE2ODQsIDB4MDAwMSwgMHgwMGMwLCAweDNiZWUsIDB4YTE4ZCwgMHg4MDAwLCAweGE2ODQsIDB4MDAwNCwKKwkweDAwNDAsIDB4M2JmNCwgMHhhMThkLCAweDAwMDIsIDB4NjkxZSwgMHg2ODIzLCAweDAwMDAsIDB4NzEwNCwKKwkweDgxMGYsIDB4NjgxOCwgMHhhMTA1LCAweDY4MWEsIDB4MDA3OCwgMHgzYmRkLCAweDEwNzgsIDB4MjQ4YywKKwkweDYwMTgsIDB4YTAwNSwgMHgwMGMwLCAweDNjMGYsIDB4NjAwOCwgMHg4MDAxLCAweDAwNDgsIDB4M2MwZiwKKwkweDYwMGEsIDB4NjAxYywgMHg2ODAyLCAweDJkMDAsIDB4NjAxZSwgMHgwMDc4LCAweDNjMjUsIDB4YWM4OCwKKwkweDAwMDYsIDB4MjEwNCwgMHhhMDA1LCAweDAwNDAsIDB4M2MxOCwgMHgyMDA4LCAweDAwNzgsIDB4M2MxMSwKKwkweDY4MDIsIDB4MmQwYSwgMHg2MDA4LCAweDgwMDEsIDB4MDA0OCwgMHgzYmRmLCAweDYwMGEsIDB4NjAxOCwKKwkweDIwNjgsIDB4NjgwMCwgMHg2MDFhLCAweDAwNzgsIDB4M2MwOSwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwKKwkweDBjN2UsIDB4MGQ3ZSwgMHgxMDc4LCAweDE5ODksIDB4MDBjMCwgMHgzYzMwLCAweDEwNzgsIDB4MjQ4YywKKwkweDJkYTAsIDB4MTM3ZiwgMHgyMGE5LCAweDAwMzEsIDB4NTNhMywgMHgwYzdmLCAweDE0N2YsIDB4MTM3ZiwKKwkweDE1N2YsIDB4MDA3OCwgMHgzYmRkLCAweGExODQsIDB4MDAxZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKKwkweGEwODAsIDB4NzYxMCwgMHgyMDYwLCAweDAwN2MsIDB4MjAxOSwgMHg1MjUxLCAweDIzMDQsIDB4YTA4NSwKKwkweDAwMDEsIDB4MjAxYSwgMHgyMDE5LCAweDAxMDIsIDB4MjMwNCwgMHhhMDg1LCAweDAwMDEsIDB4MjAxYSwKKwkweDAwN2MsIDB4MjAxOSwgMHg1MjUxLCAweDIzMDQsIDB4YTA4NCwgMHhmZmZlLCAweDIwMWEsIDB4MjAxOSwKKwkweDAxMDIsIDB4MjMwNCwgMHhhMDg0LCAweGZmZmUsIDB4MjAxYSwgMHgwMDdjLCAweDc5OTAsIDB4YTE4YywKKwkweGZmZjgsIDB4Nzk5MiwgMHg3MGI0LCAweGEwODAsIDB4MDBkOCwgMHg3ODFhLCAweDAwNzgsIDB4MjRmYSwKKwkweDcwYTMsIDB4MDAwMCwgMHg3MDAzLCAweDAwMDAsIDB4NzA0MywgMHgwMDAxLCAweDcwMzcsIDB4MDAwMCwKKwkweDAwMTgsIDB4MjRiMSwgMHgxMDc4LCAweDFjMGMsIDB4MDA0MCwgMHgzYzk5LCAweDIwMDksIDB4NTIwZiwKKwkweDIwMGIsIDB4MDAwMCwgMHg2OGJjLCAweDIwNjAsIDB4NjEwMCwgMHhhMTg0LCAweDAzMDAsIDB4MDA0MCwKKwkweDNjOGQsIDB4NjgyNywgMHgwMDBlLCAweGEwODQsIDB4MDIwMCwgMHgwMDQwLCAweDNjODksIDB4NjgyNywKKwkweDAwMTcsIDB4MTA3OCwgMHgzYmM2LCAweDAwNzgsIDB4M2M2OCwgMHg3MDAwLCAweGEwODYsIDB4MDAwNywKKwkweDAwYzAsIDB4M2QwZCwgMHgyZDAwLCAweDcwYTIsIDB4YWQ4MCwgMHgwMDBmLCAweDcwMzYsIDB4MDA3OCwKKwkweDNjYTAsIDB4NzA0MCwgMHhhMDg2LCAweDAwMDEsIDB4MDA0MCwgMHgyNTMzLCAweDAwNzgsIDB4MjRmYSwKKwkweDIwMzEsIDB4MDAwMCwgMHg2OTFjLCAweGExODQsIDB4MDAwMiwgMHgwMDQwLCAweDNjYTksIDB4YTZiNSwKKwkweDAwMDQsIDB4YTE4NCwgMHgwMGMwLCAweDgwMDMsIDB4ODAwMywgMHg4MDA3LCAweGEwODAsIDB4M2RhNiwKKwkweDIwMDQsIDB4YTYzNSwgMHg2ODIwLCAweGEwODQsIDB4MDQwMCwgMHgwMDQwLCAweDNjYzEsIDB4Nzg5YiwKKwkweDAwMTgsIDB4NzhhYiwgMHgwMDAzLCAweDc4OWIsIDB4MDA4MSwgMHg3OGFiLCAweDAwMDEsIDB4YTZiNSwKKwkweDUwMDAsIDB4NjgyMCwgMHhhMDg0LCAweDgwMDAsIDB4MDA0MCwgMHgzY2NmLCAweGE2YjUsIDB4MDQwMCwKKwkweDc4OWIsIDB4MDAwZSwgMHg2ODI0LCAweDgwMDcsIDB4NzhhYSwgMHgwMDc4LCAweDNjZWYsIDB4NjgxYywKKwkweGQwZmMsIDB4MDBjMCwgMHgzY2RkLCAweGE2YjUsIDB4MDgwMCwgMHg2ODIwLCAweGQwYzQsIDB4MDA0MCwKKwkweDNjZWYsIDB4YTZiNSwgMHg0MDAwLCAweDAwNzgsIDB4M2NlZiwgMHg2ODIwLCAweGQwYzQsIDB4MDA0MCwKKwkweDNjZTUsIDB4YTZiNSwgMHg0MDAwLCAweDAwNzgsIDB4M2NlZiwgMHg3ODliLCAweDAwMTgsIDB4NzhhYiwKKwkweDAwMDIsIDB4Nzg5YiwgMHgwMDgxLCAweDc4YWIsIDB4MDAwMSwgMHhhNmI1LCAweDEwMDAsIDB4YTY4NCwKKwkweDAyMDAsIDB4MDA0MCwgMHgzZDA5LCAweDY4MmMsIDB4NzhkMiwgMHg2ODMwLCAweDc4ZDYsIDB4YTY4NCwKKwkweDAxMDAsIDB4MDA0MCwgMHgzZDA3LCAweDY4MmMsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4M2QwNywKKwkweDc4ODgsIDB4YTA4NCwgMHgwMDQwLCAweDAwNDAsIDB4M2QwNywgMHhhNmI1LCAweDgwMDAsIDB4MTA3OCwKKwkweDQ3ZjYsIDB4N2U1YSwgMHg2ZWI2LCAweDAwNzgsIDB4NDgzNSwgMHgxMDc4LCAweDM5YzgsIDB4MDBjMCwKKwkweDNkYTAsIDB4NzAyYywgMHg4MDA0LCAweDAwNDgsIDB4M2QxYiwgMHgyMDE5LCAweDRmNDksIDB4MTA3OCwKKwkweDIzMTMsIDB4NzAyZiwgMHgwMDAxLCAweDIwNDEsIDB4MDAwMSwgMHgyMDMxLCAweDEwMDAsIDB4Nzg5YiwKKwkweDAwMTgsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsIDB4YTA4NSwgMHgwMDgwLCAweDc4YWEsIDB4NjkxYywKKwkweGExODQsIDB4MDAwMiwgMHgwMDQwLCAweDNkMzQsIDB4YTZiNSwgMHgwMDA0LCAweDc4YWIsIDB4MDAyMCwKKwkweDY4MjgsIDB4NzhhYSwgMHhhOGMwLCAweDAwMDIsIDB4NjgxYywgMHhkMGY0LCAweDAwNDAsIDB4M2QzZCwKKwkweDJjNTAsIDB4MTA3OCwgMHgzYTdhLCAweDEwNzgsIDB4NDcwMiwgMHg2ODIwLCAweGEwODQsIDB4ODAwMCwKKwkweDAwNDAsIDB4M2Q0YiwgMHhhNmI1LCAweDA0MDAsIDB4Nzg5YiwgMHgwMDBlLCAweDY4MjQsIDB4ODAwNywKKwkweDc4YWEsIDB4MDA3OCwgMHgzZDUyLCAweDY4MWMsIDB4YTA4NCwgMHg4MDAwLCAweDAwYzAsIDB4M2Q1MiwKKwkweGE2YjUsIDB4MDgwMCwgMHg2ODIwLCAweGEwODQsIDB4MDEwMCwgMHgwMDQwLCAweDNkNTksIDB4YTZiNSwKKwkweDQwMDAsIDB4NjgxYywgMHhhMDg0LCAweDAwYzAsIDB4ODAwMywgMHg4MDAzLCAweDgwMDcsIDB4YTA4MCwKKwkweDNkYTYsIDB4MjAwNCwgMHhhNjM1LCAweGE2ODQsIDB4MDEwMCwgMHgwMDQwLCAweDNkNzMsIDB4NjgyYywKKwkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDNkNzMsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwKKwkweDNkNzMsIDB4YTZiNSwgMHg4MDAwLCAweDc4OWIsIDB4MDA3ZSwgMHg3ZWFlLCAweDZlYjYsIDB4NjgxNCwKKwkweDgwMDcsIDB4NzhhYSwgMHg3ODgyLCAweDI4MTAsIDB4N2FhYSwgMHg3ODMwLCAweGEwODQsIDB4MDBjMCwKKwkweDAwYzAsIDB4M2RhMCwgMHgwMDE4LCAweDNkYTAsIDB4NzBiNCwgMHhhMDgwLCAweDAwZGQsIDB4NzgxYSwKKwkweDEwNzgsIDB4MzllMCwgMHhhNjg0LCAweDAyMDAsIDB4MDA0MCwgMHgzZDk0LCAweDY4MmMsIDB4NzhkMiwKKwkweDY4MzAsIDB4NzhkNiwgMHgxMDc4LCAweDQ3ZjYsIDB4MmQwMCwgMHg3MGEyLCAweDcwNGEsIDB4NjgxMCwKKwkweDcwYmUsIDB4NzAwMywgMHgwMDA3LCAweGFkODAsIDB4MDAwZiwgMHg3MDM2LCAweDAwNzgsIDB4MjRmYSwKKwkweDEwNzgsIDB4MWJkMywgMHgxMDc4LCAweDM5ZTAsIDB4MDA3OCwgMHgyNGZhLCAweDAwMDAsIDB4MDMwMCwKKwkweDAyMDAsIDB4MDAwMCwgMHgxMDc4LCAweDI0OGMsIDB4MjMwMCwgMHgwMDc5LCAweDNkYWYsIDB4M2RiMiwKKwkweDNkYjIsIDB4M2RiNCwgMHgxMDc4LCAweDI0OGMsIDB4MTA3OCwgMHg0ODA1LCAweDY5MjQsIDB4YTE4NCwKKwkweDAwZmYsIDB4YTA4NiwgMHgwMDBhLCAweDAwNDAsIDB4M2RjNiwgMHhhMTg0LCAweGZmMDAsIDB4YTA4NSwKKwkweDAwMGEsIDB4NjgyNiwgMHgxMDc4LCAweDFiZDMsIDB4MDA3OCwgMHgzYzY4LCAweDIwMDEsIDB4MDAwYSwKKwkweDEwNzgsIDB4NDc5NywgMHgwMDc4LCAweDNjNjgsIDB4YTI4MiwgMHgwMDA1LCAweDAwNTAsIDB4M2RkMiwKKwkweDEwNzgsIDB4MjQ4YywgMHg3MDAwLCAweGEwODQsIDB4MDAwNywgMHgxMGMwLCAweDNhOGMsIDB4MTA3OCwKKwkweDE5ODksIDB4MDBjMCwgMHgzZGY0LCAweDIwNjksIDB4ZmZmZiwgMHhhNjg0LCAweDAwMDQsIDB4MDA0MCwKKwkweDNkZTUsIDB4MjAwMSwgMHgyODAwLCAweDAwNzgsIDB4M2RlNywgMHgyMDAxLCAweDA4MDAsIDB4NzFiNCwKKwkweGExODgsIDB4MDA5MSwgMHg3ODliLCAweDAwMGUsIDB4ODAwNywgMHg3OGFhLCAweDIwMzEsIDB4MDQwMCwKKwkweDdlNWEsIDB4NzkxYSwgMHgwMDc4LCAweDI0ZmEsIDB4NjgwNywgMHgwMTA2LCAweDY4MGIsIDB4MDAwMCwKKwkweDY4OWYsIDB4MDAwMCwgMHg2ODI3LCAweDAwMDAsIDB4YTM4NiwgMHgwMDAyLCAweDAwYzAsIDB4M2UxNSwKKwkweGEyODYsIDB4MDAwMiwgMHgwMGMwLCAweDNlMTUsIDB4NzhhMCwgMHhhMDA1LCAweDAwYzAsIDB4M2UxNSwKKwkweGE0ODQsIDB4ODAwMCwgMHgwMGMwLCAweDNlMTUsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA0MCwKKwkweDNlMTUsIDB4YTZiNSwgMHgwMDA4LCAweDIwMTksIDB4MDAwMCwgMHgxMDc4LCAweDQyMTcsIDB4MmQwMCwKKwkweDcwYTIsIDB4NzA0YSwgMHg3MDAzLCAweDAwMDcsIDB4NzAzNywgMHgwMDAwLCAweDY4MjQsIDB4YTA4NCwKKwkweDAwODAsIDB4MDA0MCwgMHgzZTI3LCAweDEwNzgsIDB4NDJjZCwgMHgwMDc4LCAweDI0ZmEsIDB4MjMwMCwKKwkweDAwNzksIDB4M2UyYSwgMHgzZTJkLCAweDNlYWUsIDB4M2VjNywgMHgyMjAwLCAweDAwNzksIDB4M2UzMCwKKwkweDNlMzUsIDB4M2U0NSwgMHgzZTZiLCAweDNlNzcsIDB4M2U5YSwgMHgyMDI5LCAweDAwMDEsIDB4YTAyNiwKKwkweDIwMTEsIDB4MDAwMCwgMHgxMDc4LCAweDQzZjMsIDB4MDA3OSwgMHgzZTNlLCAweDNlNDMsIDB4MjRmYSwKKwkweDNjNjgsIDB4M2U0MywgMHgzZTQzLCAweDEwNzgsIDB4MjQ4YywgMHg3OTkwLCAweGExOGMsIDB4MDAwNywKKwkweDAwYzAsIDB4M2U0YywgMHgyMDA5LCAweDAwMDgsIDB4MjAxMSwgMHgwMDAxLCAweGE2ODQsIDB4MDAwNCwKKwkweDAwNDAsIDB4M2U1NCwgMHgyMDExLCAweDAwMDMsIDB4MjIyMCwgMHhhMTJhLCAweDIwMTEsIDB4MDAwMSwKKwkweDEwNzgsIDB4NDNmMywgMHgwMDc5LCAweDNlNWMsIDB4M2U2MSwgMHgyNGZhLCAweDNjNjgsIDB4M2U2OSwKKwkweDNlNjMsIDB4MDA3OCwgMHg0ODNiLCAweDcwYWIsIDB4M2U2NywgMHgwMDc4LCAweDI0ZmEsIDB4MDA3OCwKKwkweDNlNjEsIDB4MTA3OCwgMHgyNDhjLCAweGE2ODQsIDB4MDAxMCwgMHgwMDQwLCAweDNlNzUsIDB4MTA3OCwKKwkweDQyOWMsIDB4MDA0MCwgMHgzZTc1LCAweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDQzMGQsIDB4NjAwMCwKKwkweGEwODQsIDB4MDAwMiwgMHgwMDQwLCAweDNlOTQsIDB4NzBiNCwgMHhhMDgwLCAweDAwY2QsIDB4NzgxYSwKKwkweDBkN2UsIDB4MTA3OCwgMHg0ODEyLCAweDJkMDAsIDB4NjgyZSwgMHg2ODI3LCAweDAwMDAsIDB4MTA3OCwKKwkweDNiYzYsIDB4MGQ3ZiwgMHgxMDc4LCAweDE5YWMsIDB4NzAwMywgMHgwMDAwLCAweDcwMzcsIDB4MDAwMCwKKwkweDcwNGIsIDB4MDAwMCwgMHgwMDc4LCAweDNjNjgsIDB4YTY4NCwgMHgwMDA0LCAweDAwYzAsIDB4M2U5YSwKKwkweDAwNzgsIDB4NDgzYiwgMHg2MDAwLCAweGEwODQsIDB4MDAwNCwgMHgwMGMwLCAweDNlYWMsIDB4NjAwMCwKKwkweGEwODQsIDB4MDAwMSwgMHgwMDQwLCAweDNlYWMsIDB4NzBhYiwgMHgzZWFjLCAweDIwMDEsIDB4MDAwNywKKwkweDEwNzgsIDB4NDc4ZiwgMHgwMDc4LCAweDQ4NDEsIDB4MDA3OCwgMHg0ODNiLCAweDIyMDAsIDB4MDA3OSwKKwkweDNlYjEsIDB4M2ViNiwgMHgzZWI4LCAweDNlYjYsIDB4M2ViNiwgMHgzZWI2LCAweDEwNzgsIDB4MjQ4YywKKwkweDcwYTcsIDB4M2ViYywgMHgwMDc4LCAweDQ4NDcsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwKKwkweDNlYjgsIDB4MTA3OCwgMHg0NzgxLCAweDcwYWIsIDB4M2VjNSwgMHgwMDc4LCAweDQ4M2IsIDB4MjIwMCwKKwkweDAwNzksIDB4M2VjYSwgMHgzZWNmLCAweDNlZDEsIDB4M2VkMSwgMHgzZWNmLCAweDNlY2YsIDB4MTA3OCwKKwkweDI0OGMsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA0MCwgMHgzZWU2LCAweDcwYTcsIDB4M2VkYSwKKwkweDAwNzgsIDB4NDg0NywgMHgyMDExLCAweDAwMDQsIDB4MTA3OCwgMHg0M2VkLCAweDAwNzksIDB4M2VlMCwKKwkweDNlZTYsIDB4MjRmYSwgMHgzYzY4LCAweDNlZTYsIDB4M2VmMCwgMHgzZWY0LCAweDcwYWIsIDB4M2VlZSwKKwkweDIwMDEsIDB4MDAwMywgMHgxMDc4LCAweDQ3OGYsIDB4MDA3OCwgMHg0ODQxLCAweDAwNzgsIDB4NDgzYiwKKwkweDcwYWIsIDB4M2VlNiwgMHgwMDc4LCAweDI0ZmEsIDB4NzBhYiwgMHgzZWY4LCAweDAwNzgsIDB4MjRmYSwKKwkweDAwNzgsIDB4M2VlZSwgMHhhMjgyLCAweDAwMDMsIDB4MDA1MCwgMHgzZjAwLCAweDEwNzgsIDB4MjQ4YywKKwkweGEzODYsIDB4MDAwMiwgMHgwMGMwLCAweDNmMTksIDB4YTI4NiwgMHgwMDAyLCAweDAwYzAsIDB4M2YxZiwKKwkweDc4YTAsIDB4YTAwNSwgMHgwMGMwLCAweDNmMWYsIDB4YTQ4NCwgMHg4MDAwLCAweDAwYzAsIDB4M2YxZiwKKwkweDc4ZTQsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4M2YxOSwgMHhhNmI1LCAweDAwMDgsIDB4MjAxOSwKKwkweDAwMDAsIDB4YTY4NCwgMHgwMDA4LCAweDAwNDAsIDB4M2YxZiwgMHgxMDc4LCAweDQyNzksIDB4NjgxMCwKKwkweDcwYmUsIDB4NzAwMywgMHgwMDA3LCAweDIzMDAsIDB4MDA3OSwgMHgzZjI2LCAweDNmMjksIDB4M2Y1NiwKKwkweDNmNWUsIDB4MjIwMCwgMHgwMDc5LCAweDNmMmMsIDB4M2YzMSwgMHgzZjJmLCAweDNmNGEsIDB4MTA3OCwKKwkweDI0OGMsIDB4Nzk5MCwgMHhhMWFjLCAweDAwMDcsIDB4YTAyNiwgMHgyMDExLCAweDAwMDEsIDB4MTA3OCwKKwkweDQzZjMsIDB4MDA3OSwgMHgzZjNiLCAweDNmNDAsIDB4MjRmYSwgMHgzYzY4LCAweDNmNDgsIDB4M2Y0MiwKKwkweDAwNzgsIDB4NDgzYiwgMHg3MGFiLCAweDNmNDYsIDB4MDA3OCwgMHgyNGZhLCAweDAwNzgsIDB4M2Y0MCwKKwkweDEwNzgsIDB4MjQ4YywgMHhhNjg0LCAweDAwMTAsIDB4MDA0MCwgMHgzZjU0LCAweDEwNzgsIDB4NDI5YywKKwkweDAwNDAsIDB4M2Y1NCwgMHgwMDc4LCAweDI0ZmEsIDB4MDA3OCwgMHg0MzBkLCAweDIyMDAsIDB4MDA3OSwKKwkweDNmNTksIDB4M2Y1YywgMHgzZjVjLCAweDNmNWMsIDB4MTA3OCwgMHgyNDhjLCAweDIyMDAsIDB4MDA3OSwKKwkweDNmNjEsIDB4M2Y2NCwgMHgzZjY2LCAweDNmNjYsIDB4MTA3OCwgMHgyNDhjLCAweDc4ZTQsIDB4YTA4NCwKKwkweDAwMDgsIDB4MDA0MCwgMHgzZjdiLCAweDcwYTcsIDB4M2Y2ZiwgMHgwMDc4LCAweDQ4NDcsIDB4MjAxMSwKKwkweDAwMDQsIDB4MTA3OCwgMHg0M2VkLCAweDAwNzksIDB4M2Y3NSwgMHgzZjdiLCAweDI0ZmEsIDB4M2M2OCwKKwkweDNmN2IsIDB4M2Y4NSwgMHgzZjg5LCAweDcwYWIsIDB4M2Y4MywgMHgyMDAxLCAweDAwMDMsIDB4MTA3OCwKKwkweDQ3OGYsIDB4MDA3OCwgMHg0ODQxLCAweDAwNzgsIDB4NDgzYiwgMHg3MGFiLCAweDNmN2IsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzBhYiwgMHgzZjhkLCAweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDNmODMsIDB4MjMwMCwKKwkweDAwNzksIDB4M2Y5MiwgMHgzZjk3LCAweDNmOTksIDB4M2Y5NSwgMHgxMDc4LCAweDI0OGMsIDB4NzBhNCwKKwkweDAwN2EsIDB4NzBhNCwgMHgwMDdhLCAweGEyODIsIDB4MDAwMiwgMHgwMDUwLCAweDNmYTEsIDB4MTA3OCwKKwkweDI0OGMsIDB4YTY4NCwgMHgwMjAwLCAweDAwNDAsIDB4M2ZhYiwgMHgxMDc4LCAweDQ3ZmUsIDB4MTA3OCwKKwkweDQzZDUsIDB4MTA3OCwgMHg0ODA1LCAweDIzMDAsIDB4MDA3OSwgMHgzZmFlLCAweDNmYjEsIDB4M2ZkOSwKKwkweDQwM2YsIDB4YWQ4NiwgMHhmZmZmLCAweDAwNDAsIDB4M2M2OCwgMHhhMjg2LCAweDAwMDEsIDB4MDA0MCwKKwkweDNmYmIsIDB4MTA3OCwgMHgyNDhjLCAweGE2ODQsIDB4MDIwMCwgMHgwMDQwLCAweDNmYzMsIDB4MTA3OCwKKwkweDQ3ZmUsIDB4MTA3OCwgMHg0ODA1LCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQ3OTcsIDB4NzhiOCwKKwkweGEwODQsIDB4YzAwMSwgMHgwMDQwLCAweDNmZDUsIDB4Nzg0OCwgMHhhMDg1LCAweDAwMDgsIDB4Nzg0YSwKKwkweDc4NDgsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsIDB4M2ZkMCwgMHg3MDAzLCAweDAwMDAsIDB4MDA3OCwKKwkweDNjNjgsIDB4MjIwMCwgMHgwMDc5LCAweDNmZGMsIDB4M2ZkZSwgMHg0MDBmLCAweDcwYTcsIDB4M2ZlMiwKKwkweDAwNzgsIDB4NDg0NywgMHgyMDExLCAweDAwMGQsIDB4MTA3OCwgMHg0M2VkLCAweDAwNzksIDB4M2ZlOCwKKwkweDNmZWYsIDB4MjRmYSwgMHgzYzY4LCAweDNmZjcsIDB4M2ZmZiwgMHg0MDA1LCAweDQwMDcsIDB4YTZiNCwKKwkweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwgMHgwMDc4LCAweDQ4MzUsIDB4YTZiNCwKKwkweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwgMHgwMDc4LCAweDQ4MzUsIDB4NzBhYiwKKwkweDQwMDMsIDB4MDA3OCwgMHgyNGZhLCAweDAwNzgsIDB4M2ZlZiwgMHgxMDc4LCAweDI0OGMsIDB4NzBhYiwKKwkweDQwMGIsIDB4MDA3OCwgMHgyNGZhLCAweDEwNzgsIDB4NDg0ZCwgMHgwMDc4LCAweDI0ZmEsIDB4NzBhNywKKwkweDQwMTMsIDB4MDA3OCwgMHg0ODQ3LCAweDIwMTEsIDB4MDAxMiwgMHgxMDc4LCAweDQzZWQsIDB4MDA3OSwKKwkweDQwMTksIDB4NDAxZiwgMHgyNGZhLCAweDNjNjgsIDB4NDAyYiwgMHg0MDMzLCAweDQwMzksIDB4YTZiNCwKKwkweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBhYSwKKwkweDc4MWEsIDB4MDA3OCwgMHgyNGZhLCAweGE2YjQsIDB4MDBmZiwgMHhhNmI1LCAweDA0MDAsIDB4NmViNiwKKwkweDdlNWEsIDB4MDA3OCwgMHg0ODM1LCAweDcwYWIsIDB4NDAzNywgMHgwMDc4LCAweDI0ZmEsIDB4MDA3OCwKKwkweDQwMWYsIDB4NzBhYiwgMHg0MDNkLCAweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDQwMmIsIDB4YTI4NiwKKwkweDAwMDEsIDB4MDA0MCwgMHg0MDQ1LCAweDEwNzgsIDB4MjQ4YywgMHg3MGE3LCAweDQwNDksIDB4MDA3OCwKKwkweDQ4NDcsIDB4MjAxMSwgMHgwMDE1LCAweDEwNzgsIDB4NDNlZCwgMHgwMDc5LCAweDQwNGYsIDB4NDA1NCwKKwkweDI0ZmEsIDB4M2M2OCwgMHg0MDYyLCAweDQwNmUsIDB4YTZiNCwgMHgwMGZmLCAweGE2YjUsIDB4MDQwMCwKKwkweDZlYjYsIDB4N2U1YSwgMHg3ODNiLCAweDEzMDEsIDB4NzBiNCwgMHhhMDgwLCAweDAwYjUsIDB4NzgxYSwKKwkweDAwNzgsIDB4MjRmYSwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwKKwkweDcwYjQsIDB4YTA4MCwgMHgwMGFhLCAweDc4MWEsIDB4MDA3OCwgMHgyNGZhLCAweDcwYWIsIDB4NDA3MiwKKwkweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDQwNTQsIDB4YTI4MiwgMHgwMDAzLCAweDAwNTAsIDB4NDA3YSwKKwkweDEwNzgsIDB4MjQ4YywgMHgyMzAwLCAweDAwNzksIDB4NDA3ZCwgMHg0MDgwLCAweDQwYjcsIDB4NDExNCwKKwkweGEyODYsIDB4MDAwMSwgMHgwMDQwLCAweDQwODYsIDB4MTA3OCwgMHgyNDhjLCAweDY4MDQsIDB4YTA4NCwKKwkweDAwZmYsIDB4YTA4NiwgMHgwMDA2LCAweDAwYzAsIDB4NDA5MywgMHgxMDc4LCAweDNiYzYsIDB4NzAwMywKKwkweDAwMDAsIDB4MDA3OCwgMHgzYzY4LCAweDY4M2IsIDB4MDAwMCwgMHg2ODM3LCAweDAwMDAsIDB4YTY4NCwKKwkweDAyMDAsIDB4MDA0MCwgMHg0MGExLCAweDEwNzgsIDB4NDdmZSwgMHgxMDc4LCAweDQzZDUsIDB4MTA3OCwKKwkweDQ4MDUsIDB4MjAwMSwgMHgwMDAxLCAweDEwNzgsIDB4NDc5NywgMHg3OGI4LCAweGEwODQsIDB4YzAwMSwKKwkweDAwNDAsIDB4NDBiMywgMHg3ODQ4LCAweGEwODUsIDB4MDAwOCwgMHg3ODRhLCAweDc4NDgsIDB4YTA4NCwKKwkweDAwMDgsIDB4MDBjMCwgMHg0MGFlLCAweDcwMDMsIDB4MDAwMCwgMHgwMDc4LCAweDNjNjgsIDB4MjIwMCwKKwkweDAwNzksIDB4NDBiYSwgMHg0MGJjLCAweDQwZWYsIDB4NzBhNywgMHg0MGMwLCAweDAwNzgsIDB4NDg0NywKKwkweDIwMTEsIDB4MDAwZCwgMHgxMDc4LCAweDQzZWQsIDB4MDA3OSwgMHg0MGM2LCAweDQwY2QsIDB4MjRmYSwKKwkweDNjNjgsIDB4NDBkNSwgMHg0MGRkLCAweDQwZTMsIDB4NDBlNSwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwKKwkweDA4MDAsIDB4NmViNiwgMHg3ZTVhLCAweDAwNzgsIDB4NDgzNSwgMHhhNmI0LCAweDAwZmYsIDB4YTZiNSwKKwkweDA4MDAsIDB4NmViNiwgMHg3ZTVhLCAweDAwNzgsIDB4NDgzNSwgMHg3MGFiLCAweDQwZTEsIDB4MDA3OCwKKwkweDI0ZmEsIDB4MDA3OCwgMHg0MGNkLCAweDEwNzgsIDB4MjQ4YywgMHg3MGFiLCAweDQwZWIsIDB4MTA3OCwKKwkweDQ4MDUsIDB4MDA3OCwgMHgyNGZhLCAweDEwNzgsIDB4NDg0ZCwgMHgwMDc4LCAweDI0ZmEsIDB4NzBhNywKKwkweDQwZjMsIDB4MDA3OCwgMHg0ODQ3LCAweDIwMTEsIDB4MDAwNSwgMHgxMDc4LCAweDQzZWQsIDB4MDA3OSwKKwkweDQwZjksIDB4NDBmZSwgMHgyNGZhLCAweDNjNjgsIDB4NDEwNiwgMHg0MTBlLCAweGE2YjQsIDB4MDBmZiwKKwkweGE2YjUsIDB4MDgwMCwgMHg2ZWI2LCAweDdlNWEsIDB4MDA3OCwgMHg0ODM1LCAweGE2YjQsIDB4MDBmZiwKKwkweGE2YjUsIDB4MDgwMCwgMHg2ZWI2LCAweDdlNWEsIDB4MDA3OCwgMHg0ODM1LCAweDcwYWIsIDB4NDExMiwKKwkweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDQwZmUsIDB4YTI4NiwgMHgwMDAxLCAweDAwNDAsIDB4NDExYSwKKwkweDEwNzgsIDB4MjQ4YywgMHg3MGE3LCAweDQxMWUsIDB4MDA3OCwgMHg0ODQ3LCAweDIwMTEsIDB4MDAwNiwKKwkweDEwNzgsIDB4NDNlZCwgMHgwMDc5LCAweDQxMjQsIDB4NDEyOSwgMHgyNGZhLCAweDNjNjgsIDB4NDEyZiwKKwkweDQxMzksIDB4YTZiNSwgMHgwODAwLCAweDZlYjYsIDB4N2U1YSwgMHgwMDc4LCAweDQ4MzUsIDB4YTZiNCwKKwkweDAwZmYsIDB4YTZiNSwgMHgwODAwLCAweDZlYjYsIDB4YTZiNSwgMHg0MDAwLCAweDdlNWEsIDB4MDA3OCwKKwkweDQ4MzUsIDB4NzBhYiwgMHg0MTNkLCAweDAwNzgsIDB4MjRmYSwgMHgwMDc4LCAweDQxMjksIDB4MjMwMCwKKwkweDAwNzksIDB4NDE0MiwgMHg0MTQ3LCAweDQxNDUsIDB4NDE0NSwgMHgxMDc4LCAweDI0OGMsIDB4MTA3OCwKKwkweDI0OGMsIDB4MjMwMCwgMHg3MWE4LCAweGEwMDUsIDB4MDE3YSwgMHg2ODEwLCAweDcwYmUsIDB4YTI4MiwKKwkweDAwMDMsIDB4MDA1MCwgMHg0MTU1LCAweDEwNzgsIDB4MjQ4YywgMHgyMzAwLCAweDAwNzksIDB4NDE1OCwKKwkweDQxNWIsIDB4NDE2OSwgMHg0MThiLCAweGE2ODQsIDB4MDIwMCwgMHgwMDQwLCAweDQxNjMsIDB4MTA3OCwKKwkweDQ3ZmUsIDB4MTA3OCwgMHg0ODA1LCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQ3OTcsIDB4MDA3OCwKKwkweDI0ZmEsIDB4YTI5NiwgMHgwMDAyLCAweDAwNDAsIDB4NDE3MiwgMHg4MmZmLCAweDAwNDAsIDB4NDE3MiwKKwkweDEwNzgsIDB4MjQ4YywgMHg3MGE3LCAweDQxNzYsIDB4MDA3OCwgMHg0ODQ3LCAweDIwMTEsIDB4MDAxOCwKKwkweDEwNzgsIDB4NDNlZCwgMHgwMDc5LCAweDQxN2MsIDB4NDE4MSwgMHgyNGZhLCAweDNjNjgsIDB4NDE4MywKKwkweDQxODUsIDB4MDA3OCwgMHg0ODM1LCAweDAwNzgsIDB4NDgzNSwgMHg3MGFiLCAweDQxODksIDB4MDA3OCwKKwkweDI0ZmEsIDB4MDA3OCwgMHg0MTgxLCAweDIyMDAsIDB4MDA3OSwgMHg0MThlLCAweDQxOTAsIDB4NDFhOSwKKwkweDcwYTcsIDB4NDE5NCwgMHgwMDc4LCAweDQ4NDcsIDB4MjAxMSwgMHgwMDE3LCAweDEwNzgsIDB4NDNlZCwKKwkweDAwNzksIDB4NDE5YSwgMHg0MTlmLCAweDI0ZmEsIDB4M2M2OCwgMHg0MWExLCAweDQxYTMsIDB4MDA3OCwKKwkweDQ4MzUsIDB4MDA3OCwgMHg0ODM1LCAweDcwYWIsIDB4NDFhNywgMHgwMDc4LCAweDI0ZmEsIDB4MDA3OCwKKwkweDQxOWYsIDB4YTQ4NCwgMHg4MDAwLCAweDAwYzAsIDB4NDIwNSwgMHhhNjg0LCAweDAxMDAsIDB4MDA0MCwKKwkweDQxYjUsIDB4MTA3OCwgMHg0N2ZlLCAweDEwNzgsIDB4NDNkNSwgMHg3OGQ4LCAweDc4ZDIsIDB4NzhkYywKKwkweDc4ZDYsIDB4YTZiNCwgMHhlZmZmLCAweDdlNWEsIDB4NzBhNywgMHg0MWMwLCAweDAwNzgsIDB4NDg0NywKKwkweDIwMTEsIDB4MDAwZCwgMHgxMDc4LCAweDQzZWQsIDB4MDA3OSwgMHg0MWM2LCAweDQxY2QsIDB4MjRmYSwKKwkweDNjNjgsIDB4NDFjZCwgMHg0MWYzLCAweDQxZjksIDB4NDFmYiwgMHg3OGQ4LCAweDc5ZGMsIDB4YTEwNSwKKwkweDAwYzAsIDB4NDFkZiwgMHg3OGI4LCAweGEwODQsIDB4MDAxZiwgMHgwMGMwLCAweDQxZGYsIDB4NzBiMywKKwkweDAwMDAsIDB4Nzg1OCwgMHhhMDg0LCAweGZkZmYsIDB4Nzg1YSwgMHgwMDc4LCAweDQ4MzUsIDB4YTY4NCwKKwkweDAxMDAsIDB4MDA0MCwgMHg0MWYxLCAweDc4NDgsIDB4YTA4NSwgMHgwMDA4LCAweDc4NGEsIDB4MTA3OCwKKwkweDQ3YmMsIDB4NjgyYywgMHg3OGQyLCAweDY4MzAsIDB4NzhkNiwgMHg3MGIzLCAweDAwMDAsIDB4MTA3OCwKKwkweDQ3ZjYsIDB4MDA3OCwgMHg0ODM1LCAweDcwYWIsIDB4NDFmNywgMHgwMDc4LCAweDI0ZmEsIDB4MDA3OCwKKwkweDQxY2QsIDB4MTA3OCwgMHgyNDhjLCAweDcwYWIsIDB4NDIwMSwgMHgxMDc4LCAweDQ4MDUsIDB4MDA3OCwKKwkweDI0ZmEsIDB4MTA3OCwgMHg0ODRkLCAweDAwNzgsIDB4MjRmYSwgMHgxMDc4LCAweDQ4MDUsIDB4NzBhYiwKKwkweDQyMGYsIDB4MjAwMSwgMHgwMDAzLCAweDEwNzgsIDB4NDc4ZiwgMHgwMDc4LCAweDQ4NDEsIDB4MTA3OCwKKwkweDQ3ZjYsIDB4NjgyYywgMHg3OGQyLCAweDY4MzAsIDB4NzhkNiwgMHgwMDc4LCAweDQ4MzUsIDB4NzBiOCwKKwkweDY4MTIsIDB4NzBiZSwgMHg4MDAwLCAweDcwYmEsIDB4NjgxYiwgMHgwMDAwLCAweGE2ODQsIDB4MDAwOCwKKwkweDAwNDAsIDB4NDIzYSwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwgMHg3ODkwLCAweDgwMDQsIDB4ODAwNCwKKwkweDgwMDQsIDB4ODAwNCwgMHhhMDg0LCAweDAwMGYsIDB4NjgxYSwgMHg4MGFjLCAweDc4OWIsIDB4MDAwMCwKKwkweGFmODAsIDB4MDAyYiwgMHgyMDk4LCAweGFkODAsIDB4MDAwYiwgMHgyMGEwLCAweDUzYTUsIDB4MTQ3ZiwKKwkweDEzN2YsIDB4MTU3ZiwgMHhhNmM0LCAweDBmMDAsIDB4YTY4NCwgMHgwMDAyLCAweDAwYzAsIDB4NDI0OSwKKwkweDY5MmMsIDB4ODEwZCwgMHg4MTBkLCAweDgxMGQsIDB4YTE4NCwgMHgwMDA3LCAweDIwMDgsIDB4MDA3OCwKKwkweDQyNWMsIDB4Nzg5YiwgMHgwMDEwLCAweDc5YWMsIDB4YTE4NCwgMHgwMDIwLCAweDAwNDAsIDB4NDI1YywKKwkweDAxN2UsIDB4MjAwOSwgMHgwMDA1LCAweDIwMDEsIDB4M2QwMCwgMHgxMDc4LCAweDQ3YzcsIDB4NjgyNCwKKwkweGEwODUsIDB4MDAzYiwgMHg2ODI2LCAweDAxN2YsIDB4YTE4NCwgMHgwMDFmLCAweGE4MDUsIDB4NjgxNiwKKwkweDEwNzgsIDB4M2MzYiwgMHg2OGJlLCAweGE2ODQsIDB4MDAwNCwgMHgwMDQwLCAweDQyNmQsIDB4YTE4YywKKwkweGZmMDAsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTEwNSwgMHg2ODJhLCAweGE2YjQsIDB4MDBmZiwKKwkweDYwMDAsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4NDI3NywgMHhhNmI1LCAweDQwMDAsIDB4NmViNiwKKwkweDAwN2MsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4NjkxOCwgMHg3ODkwLCAweDgwMDQsIDB4ODAwNCwKKwkweDgwMDQsIDB4ODAwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDA3ZSwgMHhhMTAwLCAweDY4MWEsIDB4MDA3ZiwKKwkweDgwMDAsIDB4ODAwNCwgMHgwMDQwLCAweDQyOTgsIDB4MjBhOCwgMHg4MTA0LCAweGEwODAsIDB4MDAwYiwKKwkweGFkMDAsIDB4MjBhMCwgMHg3ODliLCAweDAwMDAsIDB4YWY4MCwgMHgwMDJiLCAweDIwOTgsIDB4NTNhNSwKKwkweDE0N2YsIDB4MTM3ZiwgMHgxNTdmLCAweDAwN2MsIDB4NjgyYywgMHhhMDg0LCAweDAwMjAsIDB4MDBjMCwKKwkweDQyYTQsIDB4NjIwYywgMHgwMDc4LCAweDQyYTUsIDB4NjIxMCwgMHg2YjE4LCAweDIzMDAsIDB4YTIwMiwKKwkweDAwNDAsIDB4NDJjNSwgMHgyMDE4LCAweGEzODIsIDB4MDAwZSwgMHgwMDQ4LCAweDQyYjUsIDB4MDA0MCwKKwkweDQyYjUsIDB4MjAxOSwgMHgwMDBlLCAweDAwNzgsIDB4NDJiOSwgMHg3ODU4LCAweGEwODQsIDB4ZmZlZiwKKwkweDc4NWEsIDB4NzgzYiwgMHgxYjAxLCAweDc4OTMsIDB4MDAwMCwgMHg3YmEyLCAweDcwYjQsIDB4YTA4MCwKKwkweDAwOGUsIDB4NzgxYSwgMHhhMDg1LCAweDAwMDEsIDB4MDA3YywgMHg3ODU4LCAweGEwODQsIDB4ZmZlZiwKKwkweDc4NWEsIDB4Nzg5MywgMHgwMDAwLCAweGEwMDYsIDB4MDA3YywgMHg2OTA0LCAweGExOGMsIDB4MDBmZiwKKwkweGExOTYsIDB4MDAwNywgMHgwMDQwLCAweDQyZGEsIDB4YTE5NiwgMHgwMDBmLCAweDAwNDAsIDB4NDJkYSwKKwkweDY4MDcsIDB4MDExNywgMHg2OTE0LCAweDEwNzgsIDB4M2MzYiwgMHg2MTAwLCAweDgxMDQsIDB4MDBjOCwKKwkweDQyZjUsIDB4NjAxYywgMHhhMDA1LCAweDAwNDAsIDB4NDJlOSwgMHgyMDAxLCAweDA4MDAsIDB4MDA3OCwKKwkweDQyZjcsIDB4MGQ3ZSwgMHg2ODI0LCAweDAwN2UsIDB4MTA3OCwgMHg0ODEyLCAweDAwN2YsIDB4NjgyNiwKKwkweDJkMDAsIDB4NjgyZSwgMHgxMDc4LCAweDNiYzYsIDB4MGQ3ZiwgMHgyMDAxLCAweDAyMDAsIDB4NjkyNCwKKwkweGExOGMsIDB4MDBmZiwgMHhhMTBkLCAweDY5MjYsIDB4ODAwNywgMHg3ODliLCAweDAwMGUsIDB4NzhhYSwKKwkweDY4MjAsIDB4YTA4NSwgMHg4MDAwLCAweDY4MjIsIDB4MjAzMSwgMHgwNDAwLCAweDZlYjYsIDB4N2U1YSwKKwkweDcxYjQsIDB4YTE4OCwgMHgwMDkxLCAweDc5MWEsIDB4MDA3YywgMHhhNmM0LCAweDBmMDAsIDB4YTY4NCwKKwkweDAwMDIsIDB4MDBjMCwgMHg0MzIxLCAweDY5MmMsIDB4ODEwZCwgMHg4MTBkLCAweDgxMGQsIDB4YTE4NCwKKwkweDAwMDcsIDB4MjAwOCwgMHhhODA1LCAweDY4MTYsIDB4MTA3OCwgMHgzYzNiLCAweDY4YmUsIDB4MDA3OCwKKwkweDQzMjQsIDB4NjkxNCwgMHgxMDc4LCAweDNjM2IsIDB4NjEwMCwgMHg4MTA0LCAweDAwYzgsIDB4NDM4MiwKKwkweGExODQsIDB4MDMwMCwgMHgwMDQwLCAweDQzMzAsIDB4NjgwNywgMHgwMTE3LCAweDAwNzgsIDB4NDM0ZSwKKwkweDYwMDQsIDB4YTAwNSwgMHgwMGMwLCAweDQzNTcsIDB4NjgwNywgMHgwMTE3LCAweDYwMWMsIDB4YTAwNSwKKwkweDAwYzAsIDB4NDM0NCwgMHgwZDdlLCAweDEwNzgsIDB4NDgxMiwgMHg2ODI3LCAweDAwMzQsIDB4MmQwMCwKKwkweDY4MmUsIDB4MTA3OCwgMHgzYmM2LCAweDBkN2YsIDB4YTY4NCwgMHgwMDA0LCAweDAwNDAsIDB4NDM0ZSwKKwkweDIwMzEsIDB4MDQwMCwgMHgyMDAxLCAweDI4MDAsIDB4MDA3OCwgMHg0MzUyLCAweDIwMzEsIDB4MDQwMCwKKwkweDIwMDEsIDB4MDgwMCwgMHg3MWI0LCAweGExODgsIDB4MDA5MSwgMHgwMDc4LCAweDQzYjAsIDB4NjAxOCwKKwkweGEwMDUsIDB4MDBjMCwgMHg0MzQ0LCAweDYwMWMsIDB4YTAwNSwgMHgwMGMwLCAweDQzNDQsIDB4Njg5ZiwKKwkweDAwMDAsIDB4NjgyNywgMHgwMDNkLCAweGE2ODQsIDB4MDAwMSwgMHgwMDQwLCAweDQzYmUsIDB4ZDY5NCwKKwkweDAwYzAsIDB4NDM3YiwgMHg2MTAwLCAweGQxZDQsIDB4MDA0MCwgMHg0MzdiLCAweDY5MmMsIDB4YTE4YywKKwkweDAwZmYsIDB4MDA0MCwgMHg0M2JlLCAweGExODYsIDB4MDAwMywgMHgwMDQwLCAweDQzYmUsIDB4YTE4NiwKKwkweDAwMTIsIDB4MDA0MCwgMHg0M2JlLCAweGE2YjUsIDB4MDgwMCwgMHg3MWI0LCAweGExODgsIDB4MDBhZSwKKwkweDAwNzgsIDB4NDNiOSwgMHg2ODA3LCAweDAxMTcsIDB4MjAzMSwgMHgwNDAwLCAweDY5MmMsIDB4YTE4YywKKwkweDAwZmYsIDB4YTE4NiwgMHgwMDEyLCAweDAwYzAsIDB4NDM5MywgMHgyMDAxLCAweDQzY2IsIDB4MjAwOSwKKwkweDAwMDEsIDB4MDA3OCwgMHg0M2E0LCAweGExODYsIDB4MDAwMywgMHgwMGMwLCAweDQzOWQsIDB4MjAwMSwKKwkweDQzY2MsIDB4MjAwOSwgMHgwMDEyLCAweDAwNzgsIDB4NDNhNCwgMHgyMDAxLCAweDAyMDAsIDB4NzFiNCwKKwkweGExODgsIDB4MDA5MSwgMHgwMDc4LCAweDQzYjAsIDB4MTA3OCwgMHg0N2UxLCAweDc4YTMsIDB4MDAwMCwKKwkweDY4MWMsIDB4YTA4NSwgMHgwMDQwLCAweDY4MWUsIDB4NzFiNCwgMHhhMTg4LCAweDAwZGEsIDB4YTAwNiwKKwkweDY4MjYsIDB4ODAwNywgMHg3ODliLCAweDAwMGUsIDB4NzhhYSwgMHg2ODIwLCAweGEwODUsIDB4ODAwMCwKKwkweDY4MjIsIDB4NmViNiwgMHg3ZTVhLCAweDc5MWEsIDB4MDA3OCwgMHgyNGZhLCAweDZlYjYsIDB4MTA3OCwKKwkweDNiYzYsIDB4NjgxMCwgMHg3MGJlLCAweDcwMDMsIDB4MDAwNywgMHg3MGEzLCAweDAwMDAsIDB4NzA0YiwKKwkweDAwMDAsIDB4MDA3OCwgMHgyNGZhLCAweDAwMjMsIDB4MDA3MCwgMHgwMDA1LCAweDAwMDAsIDB4MGEwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDI1LCAweDAwMDAsIDB4MDAwMCwgMHg2ODNiLCAweDAwMDAsIDB4NjgzNywKKwkweDAwMDAsIDB4YTY4NCwgMHgwMjAwLCAweDAwNDAsIDB4NDNlYywgMHg3OGI4LCAweGEwOGMsIDB4MDAxZiwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDQzZTUsIDB4ODEwOCwgMHg3OGQ4LCAweGExMDAsIDB4NjgzNiwKKwkweDc4ZGMsIDB4YTA4MSwgMHgwMDAwLCAweDY4M2EsIDB4MDA3YywgMHg3OTkwLCAweDgxMGYsIDB4YTVhYywKKwkweDAwMDcsIDB4MjAyMSwgMHgwMDAwLCAweGE0ODAsIDB4MDAxMCwgMHg3ODlhLCAweDc5YTgsIDB4YTE4YywKKwkweDAwZmYsIDB4YTE4NCwgMHgwMDgwLCAweDAwYzAsIDB4NDQxYiwgMHhhMTgyLCAweDAwMjAsIDB4MDBjOCwKKwkweDQ0MzksIDB4YTE4MiwgMHgwMDEyLCAweDAwYzgsIDB4NDc4MSwgMHgyMTAwLCAweDEwNzksIDB4NDQwOSwKKwkweDAwN2MsIDB4NDc4MSwgMHg0NWViLCAweDQ3ODEsIDB4NDc4MSwgMHg0NDQ2LCAweDQ0NDksIDB4NDQ4MywKKwkweDQ0YjksIDB4NDRlZCwgMHg0NGYwLCAweDQ3ODEsIDB4NDc4MSwgMHg0NGE0LCAweDQ1MTQsIDB4NDU0ZSwKKwkweDQ3ODEsIDB4NDc4MSwgMHg0NTc0LCAweGExODQsIDB4MDAyMCwgMHgwMGMwLCAweDQ1YTgsIDB4YTE4YywKKwkweDAwMWYsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsIDB4YTEwNiwgMHgwMDQwLCAweDQ0MzYsIDB4NzBiNCwKKwkweGEwODAsIDB4MDBjZCwgMHg3ODFhLCAweDIwMDEsIDB4MDAxNCwgMHgxMDc4LCAweDQ3OTcsIDB4MTA3OCwKKwkweDQ4MDUsIDB4NzAwMywgMHgwMDAwLCAweDIwMDEsIDB4MDAwMiwgMHgwMDdjLCAweDIwMDEsIDB4MDAwMCwKKwkweDAwN2MsIDB4YTE4MiwgMHgwMDI0LCAweDAwYzgsIDB4NDc4MSwgMHhhMTg0LCAweDAwMDMsIDB4MTA3OSwKKwkweDQ0MDksIDB4MDA3YywgMHg0NzgxLCAweDQ3ODEsIDB4NDc4MSwgMHg0NzgxLCAweDEwNzgsIDB4NDc4MSwKKwkweDAwN2MsIDB4MjIwMCwgMHgwMDc5LCAweDQ0NGMsIDB4NDU3NywgMHg0NTc3LCAweDQ0NzAsIDB4NDQ3MCwKKwkweDQ0NzAsIDB4NDQ3MCwgMHg0NDcwLCAweDQ0NzAsIDB4NDQ3MCwgMHg0NDcwLCAweDQ0NmUsIDB4NDQ3MCwKKwkweDQ0NjUsIDB4NDQ3MCwgMHg0NDcwLCAweDQ0NzAsIDB4NDQ3MCwgMHg0NDcwLCAweDQ0NzgsIDB4NDQ3YiwKKwkweDQ1NzcsIDB4NDQ3YiwgMHg0NDcwLCAweDQ0NzAsIDB4NDQ3MCwgMHgwYzdlLCAweDA3N2UsIDB4NmYxNCwKKwkweDEwNzgsIDB4MzdiMCwgMHgwNzdmLCAweDBjN2YsIDB4MDA3OCwgMHg0NDcwLCAweDEwNzgsIDB4NDY4ZSwKKwkweDY4MjcsIDB4MDJiMywgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwgMHg0ODAwLCAweDAwNzgsIDB4NDVhYiwKKwkweDEwNzgsIDB4NDc3MywgMHgwMDdjLCAweDY4MjcsIDB4MDA5MywgMHgyMDA5LCAweDAwMGIsIDB4MjAwMSwKKwkweDQ4MDAsIDB4MDA3OCwgMHg0NTkzLCAweDJkNTgsIDB4NjgwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwKKwkweDAwMDYsIDB4MDBjMCwgMHg0NDhkLCAweDY4MDcsIDB4MDExNywgMHg2ODI3LCAweDAwMDIsIDB4MTA3OCwKKwkweDQ4MTIsIDB4NjgyNywgMHgwMDM2LCAweDY5MzIsIDB4MmQwMCwgMHg2ODJlLCAweDBkN2UsIDB4MTA3OCwKKwkweDNiOTYsIDB4MTA3OCwgMHg0NWQzLCAweDJiNjgsIDB4MTA3OCwgMHgzYmM2LCAweDBkN2YsIDB4MTA3OCwKKwkweDNiYzYsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2MsIDB4MTA3OCwgMHg0NWQzLCAweDIwMDEsIDB4MDAxNywKKwkweDEwNzgsIDB4NDc5NywgMHg3MGEzLCAweDAwMDAsIDB4MjAwOSwgMHg1MjM4LCAweDIwMGIsIDB4MDAwNiwKKwkweDcwYWYsIDB4MDAxNywgMHgyMDA5LCAweDAyMDAsIDB4MTA3OCwgMHgzYWQ0LCAweDIwMDEsIDB4MDAwMSwKKwkweDAwN2MsIDB4MjIwMCwgMHgwMDc5LCAweDQ0YmMsIDB4NDU3NywgMHg0NWE4LCAweDQ1YTgsIDB4NDVhOCwKKwkweDQ0ZGQsIDB4NDViYSwgMHg0NGU1LCAweDQ1YmEsIDB4NDViYSwgMHg0NWJkLCAweDQ1YmQsIDB4NDVjMiwKKwkweDQ1YzIsIDB4NDRkNSwgMHg0NGQ1LCAweDQ1YTgsIDB4NDVhOCwgMHg0NWJhLCAweDQ1YTgsIDB4NDRlNSwKKwkweDQ1NzcsIDB4NDRlNSwgMHg0NGU1LCAweDQ0ZTUsIDB4NDRlNSwgMHg2ODI3LCAweDAwODQsIDB4MjAwOSwKKwkweDAwMGIsIDB4MjAwMSwgMHg0MzAwLCAweDAwNzgsIDB4NDVjYywgMHg2ODI3LCAweDAwMGQsIDB4MjAwOSwKKwkweDAwMGIsIDB4MjAwMSwgMHg0MzAwLCAweDAwNzgsIDB4NDVhYiwgMHg2ODI3LCAweDAwOTMsIDB4MjAwOSwKKwkweDAwMGIsIDB4MjAwMSwgMHg0MzAwLCAweDAwNzgsIDB4NDU5MywgMHgyMDAxLCAweDAwMDAsIDB4MDA3YywKKwkweDIyMDAsIDB4MDA3OSwgMHg0NGYzLCAweDQ1NzcsIDB4NDUwYywgMHg0NTBjLCAweDQ1MGMsIDB4NDUwYywKKwkweDQ1YmEsIDB4NDViYSwgMHg0NWJhLCAweDQ1YmEsIDB4NDViYSwgMHg0NWJhLCAweDQ1YmEsIDB4NDViYSwKKwkweDQ1MGMsIDB4NDUwYywgMHg0NTBjLCAweDQ1MGMsIDB4NDViYSwgMHg0NTBjLCAweDQ1MGMsIDB4NDViYSwKKwkweDQ1YmEsIDB4NDViYSwgMHg0NWJhLCAweDQ1NzcsIDB4NjgyNywgMHgwMDkzLCAweDIwMDksIDB4MDAwYiwKKwkweDIwMDEsIDB4NDMwMCwgMHgwMDc4LCAweDQ1OTMsIDB4YTY4NCwgMHgwMDA0LCAweDAwYzAsIDB4NDUyOCwKKwkweDY4MDQsIDB4YTA4NCwgMHgwMGZmLCAweGEwODYsIDB4MDAwNiwgMHgwMGMwLCAweDQ3ODEsIDB4MTA3OCwKKwkweDQ1ZDMsIDB4NjgwNywgMHgwMTE3LCAweDEwNzgsIDB4M2JjNiwgMHgyMDAxLCAweDAwMDIsIDB4MDA3YywKKwkweDYwMDAsIDB4YTA4NCwgMHgwMDA0LCAweDAwNDAsIDB4NDc4MSwgMHgyZDU4LCAweDY4MDQsIDB4YTA4NCwKKwkweDAwZmYsIDB4YTA4NiwgMHgwMDA2LCAweDAwYzAsIDB4NDUzNywgMHg2ODA3LCAweDAxMTcsIDB4NjgyNywKKwkweDAwMDIsIDB4MTA3OCwgMHg0ODEyLCAweDY4MjcsIDB4MDAzNiwgMHg2OTMyLCAweDJkMDAsIDB4NjgyZSwKKwkweDBkN2UsIDB4MTA3OCwgMHgzYmE1LCAweDEwNzgsIDB4NDVkMywgMHgyYjY4LCAweDEwNzgsIDB4M2JjNiwKKwkweDBkN2YsIDB4MTA3OCwgMHgzYmM2LCAweDIwMDEsIDB4MDAwMiwgMHgwMDdjLCAweDYwMDAsIDB4YTA4NCwKKwkweDAwMDQsIDB4MDA0MCwgMHg0NzgxLCAweDZhMDQsIDB4YTI5NCwgMHgwMGZmLCAweGEyODYsIDB4MDAwNiwKKwkweDAwYzAsIDB4NDU1YywgMHg2ODA3LCAweDAxMTcsIDB4NjgyNywgMHgwMDAyLCAweDJkNTgsIDB4MTA3OCwKKwkweDQ4MTIsIDB4NjgyNywgMHgwMDM2LCAweDY5MzIsIDB4MmQwMCwgMHg2ODJlLCAweDBkN2UsIDB4MTA3OCwKKwkweDNiYjUsIDB4MTA3OCwgMHg0NWQzLCAweDJiNjgsIDB4MTA3OCwgMHgzYmM2LCAweDBkN2YsIDB4MTA3OCwKKwkweDNiYzYsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2MsIDB4MTA3OCwgMHg0NzgxLCAweDAwN2MsIDB4NzBiNCwKKwkweGEwODAsIDB4MDBjZCwgMHg3ODFhLCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQ3OTcsIDB4MTA3OCwKKwkweDQ4MDUsIDB4NzAwMywgMHgwMDAwLCAweDIwMDEsIDB4MDAwMiwgMHgwMDdjLCAweDEwNzgsIDB4NDdjNywKKwkweDEwNzgsIDB4NDdmZSwgMHgxMDc4LCAweDQzZDUsIDB4MTA3OCwgMHg0MmNkLCAweDEwNzgsIDB4NDgwNSwKKwkweDIwMDEsIDB4MDAwMSwgMHgwMDdjLCAweDEwNzgsIDB4NDdjNywgMHgxMDc4LCAweDQ3ZmUsIDB4MTA3OCwKKwkweDQzZDUsIDB4NzBiNCwgMHhhMDgwLCAweDAwY2QsIDB4NzgxYSwgMHgyMDAxLCAweDAwMTMsIDB4MTA3OCwKKwkweDQ3OTcsIDB4MTA3OCwgMHg0ODA1LCAweDcwMDMsIDB4MDAwMCwgMHgyMDAxLCAweDAwMDIsIDB4MDA3YywKKwkweDEwNzgsIDB4NDc4MSwgMHgwMDdjLCAweDEwNzgsIDB4NDdjNywgMHgxMDc4LCAweDQ3ZmUsIDB4MTA3OCwKKwkweDQzZDUsIDB4MTA3OCwgMHg0MmNkLCAweDEwNzgsIDB4NDgwNSwgMHgxMDc4LCAweDQ4NGQsIDB4MjAwMSwKKwkweDAwMDEsIDB4MDA3YywgMHgyMDAxLCAweDAwMDMsIDB4MDA3YywgMHgxMDc4LCAweDQ2OGUsIDB4MjAwMSwKKwkweDAwMDAsIDB4MDA3YywgMHgwYzdlLCAweDA3N2UsIDB4NmYxNCwgMHgxMDc4LCAweDM3YjAsIDB4MDc3ZiwKKwkweDBjN2YsIDB4MjAwMSwgMHgwMDAwLCAweDAwN2MsIDB4MTA3OCwgMHg0N2M3LCAweDEwNzgsIDB4NDc4MSwKKwkweDIwMDEsIDB4MDAwNiwgMHgwMDdjLCAweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywKKwkweDAwNDAsIDB4NDVkZSwgMHhhMTg2LCAweDAwMGYsIDB4MDBjMCwgMHg0NWUyLCAweDEwNzgsIDB4NDdmZSwKKwkweDEwNzgsIDB4NDNkNSwgMHg3MGI0LCAweGEwODAsIDB4MDBjZCwgMHg3ODFhLCAweDEwNzgsIDB4NDgwNSwKKwkweDcwMDMsIDB4MDAwMCwgMHgwMDdjLCAweDdhYTgsIDB4YTI5NCwgMHgwMGZmLCAweDc4YTgsIDB4YTA4NCwKKwkweDAwZmYsIDB4YTA4YSwgMHgwMDA0LCAweDAwYzgsIDB4NDc4MSwgMHgxMDc5LCAweDQ1ZjgsIDB4MDA3YywKKwkweDQ3ODEsIDB4NDVmYywgMHg0NzgxLCAweDQ2OTUsIDB4YTI4MiwgMHgwMDAzLCAweDAwNDAsIDB4NDYwMywKKwkweDEwNzgsIDB4NDc4MSwgMHgwMDdjLCAweDdkYTgsIDB4YTVhYywgMHgwMGZmLCAweDdjYTgsIDB4YTRhNCwKKwkweDAwZmYsIDB4NjliOCwgMHhhMTg0LCAweDAxMDAsIDB4MDA0MCwgMHg0NjQyLCAweGExOGMsIDB4ZmVmZiwKKwkweDY5YmEsIDB4NzhhMCwgMHhhMDA1LCAweDAwYzAsIDB4NDY0MiwgMHhhNGE0LCAweDAwZmYsIDB4MDA0MCwKKwkweDQ2MzYsIDB4YTQ4MiwgMHgwMDBjLCAweDAwNDAsIDB4NDYxZiwgMHgwMGM4LCAweDQ2MjksIDB4ODUyYiwKKwkweDg1MmIsIDB4MTA3OCwgMHgzODJlLCAweDAwNDAsIDB4NDYyOSwgMHgxMDc4LCAweDM2MjcsIDB4MDA3OCwKKwkweDQ2MzgsIDB4MTA3OCwgMHg0NzYwLCAweDEwNzgsIDB4MzY1MiwgMHg2OWI4LCAweGExOGQsIDB4MDEwMCwKKwkweDY5YmEsIDB4YTZiNSwgMHgxMDAwLCAweDdlNWEsIDB4MDA3OCwgMHg0NjNiLCAweDEwNzgsIDB4MzY1MiwKKwkweGE2YjQsIDB4ZWZmZiwgMHg3ZTVhLCAweDcwYjQsIDB4YTA4MCwgMHgwMDkxLCAweDc4MWEsIDB4MjAwMSwKKwkweDAwMDEsIDB4MDA3YywgMHgwYzdlLCAweDEwNzgsIDB4NDY4MiwgMHg2MjAwLCAweGQyZTQsIDB4MDA0MCwKKwkweDQ2NzMsIDB4NjIwOCwgMHg4MjE3LCAweGEyOTQsIDB4MDBmZiwgMHhhMjgyLCAweDAwMGMsIDB4MDA0OCwKKwkweDQ2NTUsIDB4MDA0MCwgMHg0NjU1LCAweDIwMTEsIDB4MDAwYywgMHgyNDAwLCAweGEyMDIsIDB4MDBjOCwKKwkweDQ2NWEsIDB4MjIyMCwgMHg2MjA4LCAweGEyOTQsIDB4MDBmZiwgMHg3MDFjLCAweGEyMDIsIDB4MDBjOCwKKwkweDQ2NjIsIDB4NzIxYywgMHgyMjAwLCAweGE1MDIsIDB4MDBjOCwgMHg0NjY3LCAweDIyMjgsIDB4MTA3OCwKKwkweDQ3NjQsIDB4ODUyYiwgMHg4NTJiLCAweDEwNzgsIDB4MzgyZSwgMHgwMDQwLCAweDQ2NzMsIDB4MTA3OCwKKwkweDM2MmUsIDB4MDA3OCwgMHg0Njc3LCAweDEwNzgsIDB4NDc2MCwgMHgxMDc4LCAweDM2NTksIDB4YTZiNSwKKwkweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBiOSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNCwKKwkweDBjN2YsIDB4MDA3YywgMHgwMDdlLCAweDY4MTQsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywKKwkweDgwMDMsIDB4ODAwMywgMHhhMGUwLCAweDU0ODAsIDB4MDA3ZiwgMHgwMDdjLCAweDBjN2UsIDB4MTA3OCwKKwkweDQ2ODIsIDB4MTA3OCwgMHgzNjU5LCAweDBjN2YsIDB4MDA3YywgMHhhMjgyLCAweDAwMDIsIDB4MDBjMCwKKwkweDQ3ODEsIDB4N2FhOCwgMHhhMjk0LCAweDAwZmYsIDB4NjliOCwgMHhhMTg0LCAweDAyMDAsIDB4MDA0MCwKKwkweDQ2Y2MsIDB4YTE4YywgMHhmZGZmLCAweDY5YmEsIDB4NzhhMCwgMHhhMDA1LCAweDAwYzAsIDB4NDZjYywKKwkweGEyODIsIDB4MDAwMiwgMHgwMGM4LCAweDM3NmIsIDB4MTA3OCwgMHg0NzJhLCAweDEwNzgsIDB4MzZmOSwKKwkweDEwNzgsIDB4MzY1MiwgMHhhNjg0LCAweDAxMDAsIDB4MDA0MCwgMHg0NmMyLCAweDY4MmMsIDB4YTA4NCwKKwkweDAwMDEsIDB4MDA0MCwgMHg0NmMyLCAweGM2ZmMsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwKKwkweDQ2YzIsIDB4YzZmZCwgMHhhNmI1LCAweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDA5MSwKKwkweDc4MWEsIDB4MjAwMSwgMHgwMDAxLCAweDAwN2MsIDB4MGM3ZSwgMHgxMDc4LCAweDQ2ODIsIDB4YTI4NCwKKwkweGZmZmUsIDB4MDA0MCwgMHg0NmQ3LCAweDIwMTEsIDB4MDAwMSwgMHgwMDc4LCAweDQ2ZGIsIDB4YTI4NCwKKwkweDAwMDEsIDB4MDA0MCwgMHg0NmUxLCAweDYxMDAsIDB4ZDFlYywgMHgwMGMwLCAweDQ2ZTEsIDB4MjAxMSwKKwkweDAwMDAsIDB4MTA3OCwgMHg0NzFjLCAweDEwNzgsIDB4MzcwMCwgMHgxMDc4LCAweDM2NTksIDB4YTY4NCwKKwkweDAxMDAsIDB4MDA0MCwgMHg0NmY3LCAweDY4MmMsIDB4YTA4NCwgMHgwMDAxLCAweDAwNDAsIDB4NDZmNywKKwkweGM2ZmMsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwgMHg0NmY3LCAweGM2ZmQsIDB4YTZiNSwKKwkweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBiOSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNCwKKwkweDBjN2YsIDB4MDA3YywgMHgwYzdlLCAweDI5NjAsIDB4NjAwMCwgMHgyMDExLCAweDAwMDEsIDB4YTA4NCwKKwkweDIwMDAsIDB4MDBjMCwgMHg0NzBkLCAweDIwMTEsIDB4MDAwMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwKKwkweDAwMDIsIDB4NzhhYiwgMHgwMDAzLCAweDdhYWEsIDB4YThjMCwgMHgwMDA0LCAweDY4YjgsIDB4YTA4NSwKKwkweDAyMDAsIDB4NjhiYSwgMHgwYzdmLCAweDAwN2MsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YWIsIDB4MDAwMSwKKwkweDc4YWIsIDB4MDAwMiwgMHg3OGFiLCAweDAwMDMsIDB4N2FhYSwgMHg3ODliLCAweDAwODEsIDB4NzhhYiwKKwkweDAwMDQsIDB4MDA3YywgMHgwYzdlLCAweDcwNTQsIDB4MjA2MCwgMHg2MDAwLCAweGEwODQsIDB4MTAwMCwKKwkweDAwYzAsIDB4NDczOCwgMHgyMDI5LCAweDAwMzIsIDB4MjAyMSwgMHgwMDAwLCAweDAwNzgsIDB4NDc1OCwKKwkweDY1MDgsIDB4YTVhYywgMHgwMGZmLCAweDcwMTgsIDB4YTA4NiwgMHgwMDI4LCAweDAwYzAsIDB4NDc0OCwKKwkweGE1ODIsIDB4MDAxOSwgMHgwMGM4LCAweDQ3NGUsIDB4MjAyOSwgMHgwMDE5LCAweDAwNzgsIDB4NDc0ZSwKKwkweGE1ODIsIDB4MDAwYywgMHgwMGM4LCAweDQ3NGUsIDB4MjAyOSwgMHgwMDBjLCAweDY0MDgsIDB4ODQyNywKKwkweGE0YTQsIDB4MDBmZiwgMHhhNDgyLCAweDAwMGMsIDB4MDA0OCwgMHg0NzU4LCAweDIwMjEsIDB4MDAwYywKKwkweDEwNzgsIDB4NDc2NCwgMHg2OGI4LCAweGEwODUsIDB4MDEwMCwgMHg2OGJhLCAweDBjN2YsIDB4MDA3YywKKwkweDIwMjEsIDB4MDAwMCwgMHgyMDI5LCAweDAwMzIsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YWIsIDB4MDAwMSwKKwkweDc4YWIsIDB4MDAwMywgMHg3OGFiLCAweDAwMDEsIDB4N2RhYSwgMHg3Y2FhLCAweDc4OWIsIDB4MDA4MSwKKwkweDc4YWIsIDB4MDAwNSwgMHgwMDdjLCAweDIwMDEsIDB4MDAwMywgMHgxMDc4LCAweDQ3OGYsIDB4YTZiNSwKKwkweDEwMDAsIDB4N2U1YSwgMHg3MGI0LCAweGEwODAsIDB4MDBiOSwgMHg3ODFhLCAweDIwMDEsIDB4MDAwNSwKKwkweDAwN2MsIDB4MjAwMSwgMHgwMDA3LCAweDEwNzgsIDB4NDc4ZiwgMHhhNmI1LCAweDEwMDAsIDB4N2U1YSwKKwkweDcwYjQsIDB4YTA4MCwgMHgwMGI5LCAweDc4MWEsIDB4MjAwMSwgMHgwMDA0LCAweDAwN2MsIDB4Nzg5YiwKKwkweDAwMTgsIDB4NzhhYSwgMHg3ODliLCAweDAwODEsIDB4NzhhYiwgMHgwMDAxLCAweDAwN2MsIDB4NjkwNCwKKwkweGExOGMsIDB4MDBmZiwgMHhhMTk2LCAweDAwMDcsIDB4MDA0MCwgMHg0N2E1LCAweGExOTYsIDB4MDAwZiwKKwkweDAwNDAsIDB4NDdhNSwgMHgxMDc4LCAweDE5YWMsIDB4MDA3YywgMHg2OTI0LCAweGExOTQsIDB4MDAzZiwKKwkweDAwYzAsIDB4NDdhZSwgMHhhMThjLCAweGZmYzAsIDB4YTEwNSwgMHg2ODI2LCAweDEwNzgsIDB4M2JjNiwKKwkweDY5MWMsIDB4YTE4NCwgMHgwMTAwLCAweDAwNDAsIDB4NDdiYiwgMHg2OTE0LCAweDEwNzgsIDB4M2MzYiwKKwkweDYyMDQsIDB4ODIxMCwgMHg2MjA2LCAweDAwN2MsIDB4NjkyYywgMHg2ODM0LCAweDY4MmUsIDB4YTExMiwKKwkweDY5MzAsIDB4NjgzOCwgMHg2ODMyLCAweGExMWIsIDB4YTIwMCwgMHhhMzAxLCAweDAwN2MsIDB4MGM3ZSwKKwkweGFkZTAsIDB4MDAxOCwgMHg2MDAzLCAweDAwNzAsIDB4NjEwNiwgMHg2MDBiLCAweDAwMDAsIDB4NjAwZiwKKwkweDBhMDAsIDB4NjAxMywgMHgwMDAwLCAweDYwMTcsIDB4MDAwMCwgMHg4MDA3LCAweDYwMWEsIDB4NjAxZiwKKwkweDAwMDAsIDB4NjAyMywgMHgwMDAwLCAweDBjN2YsIDB4NjgyNCwgMHhhMDg1LCAweDAwODAsIDB4NjgyNiwKKwkweDAwN2MsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4MjA5OCwgMHhhZjgwLCAweDAwMmQsIDB4MjBhMCwKKwkweDgxYWMsIDB4MDA0MCwgMHg0N2VjLCAweDUzYTYsIDB4YTE4NCwgMHgwMDAxLCAweDAwNDAsIDB4NDdmMiwKKwkweDMzMDQsIDB4NzhiZSwgMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwgMHgwMDdjLCAweDcwYjAsIDB4YTAwNSwKKwkweDEwYzAsIDB4MjQ4YywgMHg3MGIzLCAweDgwMDAsIDB4MDA3OCwgMHg0YjRiLCAweDcxYjAsIDB4ODFmZiwKKwkweDAwNDAsIDB4NDgwNCwgMHgxMDc4LCAweDRjNDEsIDB4MDA3YywgMHg3MWIwLCAweDgxZmYsIDB4MDA0MCwKKwkweDQ4MTEsIDB4Nzg0OCwgMHhhMDg1LCAweDAwMDgsIDB4Nzg0YSwgMHg3MGIzLCAweDAwMDAsIDB4MTA3OCwKKwkweDQ4ODcsIDB4MDA3YywgMHgwYzdlLCAweDBkN2UsIDB4MTA3OCwgMHgxOTg5LCAweDAwYzAsIDB4NDgxYSwKKwkweDEwNzgsIDB4MjQ4YywgMHgwYzdmLCAweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDJkYTAsIDB4MmM5OCwKKwkweDIwYTksIDB4MDAzMSwgMHg1M2EzLCAweDE0N2YsIDB4MTM3ZiwgMHgxNTdmLCAweDY4MDcsIDB4MDEwZCwKKwkweDY4MGIsIDB4MDAwMCwgMHg3MDA0LCAweDgwMDcsIDB4NjgxYSwgMHg2ODIzLCAweDAwMDAsIDB4NjgxZiwKKwkweDAwMDAsIDB4Njg5ZiwgMHgwMDAwLCAweDBjN2YsIDB4MDA3YywgMHg3MGI0LCAweGEwODAsIDB4MDA5MSwKKwkweDc4MWEsIDB4MDA3OCwgMHgyNGZhLCAweDcwYjQsIDB4YTA4MCwgMHgwMDgxLCAweDc4MWEsIDB4MDA3OCwKKwkweDI0ZmEsIDB4NzBiNCwgMHhhMDgwLCAweDAwYjksIDB4NzgxYSwgMHgwMDc4LCAweDI0ZmEsIDB4NzBiNCwKKwkweGEwODAsIDB4MDBjMywgMHg3ODFhLCAweDAwNzgsIDB4MjRmYSwgMHg2OTA0LCAweGExOGMsIDB4MDBmZiwKKwkweGExOTYsIDB4MDAwNywgMHgwMDQwLCAweDQ4NWEsIDB4YTE5NiwgMHgwMDBmLCAweDAwNDAsIDB4NDg1YSwKKwkweDY4MDcsIDB4MDExNywgMHg2ODI0LCAweGEwODQsIDB4MDBmZiwgMHhhMDg1LCAweDAyMDAsIDB4NjgyNiwKKwkweDgwMDcsIDB4Nzg5YiwgMHgwMDBlLCAweDc4YWEsIDB4NjgyMCwgMHhhMDg1LCAweDgwMDAsIDB4NjgyMiwKKwkweDIwMzEsIDB4MDQwMCwgMHg2ZWI2LCAweDdlNWEsIDB4NzFiNCwgMHhhMTg4LCAweDAwOTEsIDB4NzkxYSwKKwkweDAwN2MsIDB4MTA3OCwgMHg0ODA1LCAweDc4NDgsIDB4YTA4NSwgMHgwMDBjLCAweDc4NGEsIDB4NzBiNCwKKwkweGEwODAsIDB4MDBjZCwgMHg3ODFhLCAweDIwMDksIDB4MDAwYiwgMHgyMDAxLCAweDQ0MDAsIDB4MTA3OCwKKwkweDQ3YzcsIDB4MjAwMSwgMHgwMDEzLCAweDEwNzgsIDB4NDc5NywgMHgwMDc4LCAweDNjNjgsIDB4MTI3ZSwKKwkweDIwOTEsIDB4MjIwMCwgMHgyMDQ5LCAweDQ4ODcsIDB4NzAwMCwgMHg3MjA0LCAweGEyMDUsIDB4NzIwYywKKwkweGEyMTUsIDB4NzAwOCwgMHhhMDg0LCAweGZmZjcsIDB4YTIwNSwgMHgwMDQwLCAweDQ4OTksIDB4MDA3OCwKKwkweDQ4OWUsIDB4NzAwMywgMHgwMDAwLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDcwMDAsIDB4YTA4NCwKKwkweDAwMDEsIDB4MDBjMCwgMHg0OGNjLCAweDcxMDgsIDB4ODEwMywgMHgwMGM4LCAweDQ4YWIsIDB4MTA3OCwKKwkweDQ5Y2UsIDB4MDA3OCwgMHg0OGEzLCAweDcwMGMsIDB4YTA4YywgMHgwMGZmLCAweDAwNDAsIDB4NDhjYywKKwkweDcwMDQsIDB4ODAwNCwgMHgwMGM4LCAweDQ4YzMsIDB4NzAxNCwgMHhhMDA1LCAweDAwYzAsIDB4NDhiZiwKKwkweDcwMTAsIDB4YTAwNSwgMHgwMDQwLCAweDQ4YzMsIDB4YTEwMiwgMHgwMGM4LCAweDQ4YTMsIDB4NzAwNywKKwkweDAwMTAsIDB4MDA3OCwgMHg0OGNjLCAweDhhZmYsIDB4MDA0MCwgMHg0OGNjLCAweDEwNzgsIDB4NGMxOCwKKwkweDAwYzAsIDB4NDhjNiwgMHgwMDQwLCAweDQ4YTMsIDB4MTA3OCwgMHg0OTU3LCAweDcwMDMsIDB4MDAwMCwKKwkweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDAxN2UsIDB4NjEwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKKwkweDAwMDcsIDB4MDA0MCwgMHg0OGRmLCAweGExOGUsIDB4MDAwZiwgMHgwMGMwLCAweDQ4ZTIsIDB4NjA0MCwKKwkweDAwNzgsIDB4NDhlMywgMHg2NDI4LCAweDAxN2YsIDB4ODRmZiwgMHgwMDQwLCAweDQ5MGQsIDB4MmM3MCwKKwkweDcwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4NDkxZCwgMHgyNzNjLCAweDg3ZmIsIDB4MDBjMCwKKwkweDQ4ZmIsIDB4MDA0OCwgMHg0OGY1LCAweDEwNzgsIDB4MjQ4YywgMHg2MDljLCAweGEwNzUsIDB4MDA0MCwKKwkweDQ5MGQsIDB4MDA3OCwgMHg0OGU4LCAweDI3MDQsIDB4YWU2OCwgMHg2ODA4LCAweGE2MzAsIDB4NjgwYywKKwkweGE1MjksIDB4ODQyMSwgMHgwMDQwLCAweDQ5MGQsIDB4ODczOCwgMHgyNzA0LCAweGEwMDUsIDB4MDBjMCwKKwkweDQ4ZmMsIDB4NzA5YywgMHhhMDc1LCAweDAwYzAsIDB4NDhlOCwgMHgwMDdjLCAweDAwMDAsIDB4MDAwNSwKKwkweDAwMDksIDB4MDAwZCwgMHgwMDExLCAweDAwMTUsIDB4MDAxOSwgMHgwMDFkLCAweDAwMDAsIDB4MDAwMywKKwkweDAwMDksIDB4MDAwZiwgMHgwMDE1LCAweDAwMWIsIDB4MDAwMCwgMHgwMDAwLCAweDQ5MTIsIDB4NDkwZiwKKwkweDAwMDAsIDB4MDAwMCwgMHg4MDAwLCAweDAwMDAsIDB4NDkxMiwgMHgwMDAwLCAweDQ5MWEsIDB4NDkxNywKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4NDkxYSwgMHgwMDAwLCAweDQ5MTUsIDB4NDkxNSwKKwkweDAwMDAsIDB4MDAwMCwgMHg4MDAwLCAweDAwMDAsIDB4NDkxNSwgMHgwMDAwLCAweDQ5MWIsIDB4NDkxYiwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4NDkxYiwgMHgxMjdlLCAweDIwOTEsIDB4MjIwMCwKKwkweDIwNzksIDB4NTIwMCwgMHgyMDcxLCAweDAwMTAsIDB4NzAwNywgMHgwMDBhLCAweDcwMDcsIDB4MDAwMiwKKwkweDcwMDMsIDB4MDAwMCwgMHgyMDcxLCAweDAwMjAsIDB4NzAwNywgMHgwMDBhLCAweDcwMDcsIDB4MDAwMiwKKwkweDcwMDMsIDB4MDAwMCwgMHgyMDQ5LCAweDAwMDAsIDB4MTI3ZiwgMHgyMDAwLCAweDAwN2MsIDB4MjA0OSwKKwkweDQ5NTcsIDB4MjAxOSwgMHgwMDAwLCAweDcwMDQsIDB4ODAwNCwgMHgwMGM4LCAweDQ5YWEsIDB4NzAwNywKKwkweDAwMTIsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwgMHg0OTYxLCAweGExODQsIDB4MDFlMCwKKwkweDAwNDAsIDB4NDk2YywgMHgxMDc4LCAweDI0OGMsIDB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4YTA4MiwKKwkweDAwMDUsIDB4MDBjOCwgMHg0OTc3LCAweGExODQsIDB4NDAwMCwgMHgwMGMwLCAweDQ5NjEsIDB4YTE5YywKKwkweDMwMGMsIDB4YTM4NiwgMHgyMDA0LCAweDAwNDAsIDB4NDk4NSwgMHhhMzg2LCAweDAwMDgsIDB4MDA0MCwKKwkweDQ5OTAsIDB4YTM4NiwgMHgyMDBjLCAweDAwYzAsIDB4NDk2MSwgMHg3MjAwLCAweDgyMDQsIDB4MDA0OCwKKwkweDQ5OTAsIDB4NzMwYywgMHhhMzg0LCAweDAwZmYsIDB4MDA0MCwgMHg0OTkwLCAweDEwNzgsIDB4MjQ4YywKKwkweDcwMDcsIDB4MDAxMiwgMHg3MDAwLCAweGEwODQsIDB4MDAwMSwgMHgwMGMwLCAweDQ5YWEsIDB4NzAwOCwKKwkweGEwODQsIDB4MDFlMCwgMHgwMGMwLCAweDQ5YWEsIDB4NzMxMCwgMHg3MDE0LCAweGEzMDUsIDB4MDA0MCwKKwkweDQ5YWEsIDB4NzEwYywgMHhhMTg0LCAweDAzMDAsIDB4MDBjMCwgMHg0OWFhLCAweGExODQsIDB4MDBmZiwKKwkweDAwYzAsIDB4NDk1NywgMHg3MDA3LCAweDAwMTIsIDB4NzAwNywgMHgwMDA4LCAweDcwMDQsIDB4YTA4NCwKKwkweDAwMDgsIDB4MDBjMCwgMHg0OWFlLCAweDcwMDcsIDB4MDAxMiwgMHg3MTA4LCAweDgxMDMsIDB4MDA0OCwKKwkweDQ5YjMsIDB4NzAwMywgMHgwMDAwLCAweDIwNDksIDB4MDAwMCwgMHgwMDdjLCAweDEwN2UsIDB4MDA3ZSwKKwkweDEyN2UsIDB4MTU3ZSwgMHgyMDkxLCAweDIyMDAsIDB4NzEwOCwgMHgxMDc4LCAweDQ5Y2UsIDB4MTU3ZiwKKwkweDEyN2YsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2YsIDB4MTA3ZiwgMHgwMDdjLCAweDcyMDQsIDB4NzUwMCwKKwkweDczMGMsIDB4YTM4NCwgMHgwMzAwLCAweDAwYzAsIDB4NDlmNSwgMHhhMTg0LCAweDAxZTAsIDB4MDBjMCwKKwkweDRhMTksIDB4NzEwOCwgMHhhMTg0LCAweDAxZTAsIDB4MDBjMCwgMHg0YTE5LCAweDIwMDEsIDB4MDRmZCwKKwkweDIwMDQsIDB4YTA4MiwgMHgwMDA1LCAweDAwYzgsIDB4NDllOSwgMHhhMTg0LCAweDQwMDAsIDB4MDBjMCwKKwkweDQ5ZDksIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksIDB4NDllZCwgMHg0OWY3LCAweDRhMDksIDB4NDlmNSwKKwkweDRhMDksIDB4NDlmNSwgMHg0YTU1LCAweDQ5ZjUsIDB4NGE1MywgMHgxMDc4LCAweDI0OGMsIDB4NzAwNCwKKwkweGEwODQsIDB4MDAxMCwgMHhhMDg1LCAweDAwMDIsIDB4NzAwNiwgMHg4YWZmLCAweDAwYzAsIDB4NGEwNCwKKwkweDIwNDksIDB4MDAwMCwgMHgwMDc4LCAweDRhMDgsIDB4MTA3OCwgMHg0YzE4LCAweDAwYzAsIDB4NGEwNCwKKwkweDAwN2MsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YTA4NSwgMHgwMDAyLCAweDcwMDYsIDB4OGFmZiwKKwkweDAwYzAsIDB4NGExNCwgMHgwMDc4LCAweDRhMTgsIDB4MTA3OCwgMHg0YzE4LCAweDAwYzAsIDB4NGExNCwKKwkweDAwN2MsIDB4NzAwNywgMHgwMDEyLCAweDcxMDgsIDB4MDBlMCwgMHg0YTFjLCAweDIwOTEsIDB4NjAwMCwKKwkweDAwZTAsIDB4NGEyMCwgMHgyMDkxLCAweDYwMDAsIDB4NzAwNywgMHgwMDEyLCAweDcwMDcsIDB4MDAwOCwKKwkweDcwMDQsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsIDB4NGEyOCwgMHg3MDA3LCAweDAwMTIsIDB4NzEwOCwKKwkweDgxMDMsIDB4MDA0OCwgMHg0YTJkLCAweDcwMDMsIDB4MDAwMCwgMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwKKwkweDRhNDEsIDB4NzAwNCwgMHhhMDA1LCAweDAwYzAsIDB4NGE0MSwgMHg3MDBjLCAweGEwMDUsIDB4MDA0MCwKKwkweDRhNDMsIDB4MDA3OCwgMHg0YTI0LCAweDIwNDksIDB4MDAwMCwgMHgxMDc4LCAweDM4ZDcsIDB4NjgxOCwKKwkweGEwODQsIDB4ODAwMCwgMHgwMDQwLCAweDRhNGUsIDB4NjgxYiwgMHgwMDAyLCAweDAwN2MsIDB4MTA3OCwKKwkweDI0OGMsIDB4MTA3OCwgMHgyNDhjLCAweDEwNzgsIDB4NGFiMSwgMHg3MjEwLCAweDcxMTQsIDB4NzAwYywKKwkweGEwOWMsIDB4MDBmZiwgMHgyODAwLCAweGEzMDAsIDB4YTIxMSwgMHhhMTg5LCAweDAwMDAsIDB4MTA3OCwKKwkweDRhYjEsIDB4MjcwNCwgMHgyYzU4LCAweGFjNjAsIDB4NjMwOCwgMHgyMjAwLCAweGEzMjIsIDB4NjMwYywKKwkweDIxMDAsIDB4YTMxYiwgMHgyNDAwLCAweGEzMDUsIDB4MDA0MCwgMHg0YTc4LCAweDAwYzgsIDB4NGE3OCwKKwkweDg0MTIsIDB4ODIxMCwgMHg4MzBhLCAweGExODksIDB4MDAwMCwgMHgyYjYwLCAweDAwNzgsIDB4NGE1ZiwKKwkweDJiNjAsIDB4OGEwNywgMHgwMDdlLCAweDYwMDQsIDB4YTA4NCwgMHgwMDA4LCAweDAwNDAsIDB4NGE4NCwKKwkweGE3YmEsIDB4NDkxNywgMHgwMDc4LCAweDRhODYsIDB4YTdiYSwgMHg0OTBmLCAweDAwN2YsIDB4YTczZCwKKwkweDJjMDAsIDB4Njg4NiwgMHg2ZjhhLCAweDZjOTIsIDB4NmI4ZSwgMHg3MDA3LCAweDAwMTIsIDB4MTA3OCwKKwkweDQ5NTcsIDB4MDA3YywgMHg4NzM4LCAweDI3MDQsIDB4YTAwNSwgMHgwMGMwLCAweDRhYTUsIDB4NjA5YywKKwkweGEwMDUsIDB4MDA0MCwgMHg0YWFlLCAweDIwNjAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwKKwkweDQ5MWQsIDB4MjAzYywgMHg4N2ZiLCAweDEwNDAsIDB4MjQ4YywgMHg4YTUxLCAweDAwNDAsIDB4NGFhZCwKKwkweDcwMDgsIDB4YTA4NCwgMHgwMDAzLCAweGEwODYsIDB4MDAwMywgMHgwMDdjLCAweDIwNTEsIDB4MDAwMCwKKwkweDAwN2MsIDB4OGE1MCwgMHg4NzM5LCAweDI3MDQsIDB4YTAwNCwgMHgwMGMwLCAweDRhYzUsIDB4NjAwMCwKKwkweGEwNjQsIDB4MDBjMCwgMHg0YWJjLCAweDJkNjAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwKKwkweDQ5MmQsIDB4MjAzYywgMHg4N2ZiLCAweDEwNDAsIDB4MjQ4YywgMHgwMDdjLCAweDEyN2UsIDB4MGQ3ZSwKKwkweDIwOTEsIDB4MjIwMCwgMHgwZDdmLCAweDY4ODQsIDB4MjA2MCwgMHg2ODg4LCAweDZiOGMsIDB4NmM5MCwKKwkweDgwNTcsIDB4YWFkNCwgMHgwMGZmLCAweGEwODQsIDB4MDBmZiwgMHgwMDdlLCAweDY4MDQsIDB4YTA4NCwKKwkweDAwMDgsIDB4MDA3ZiwgMHgwMDQwLCAweDRhZTAsIDB4YTBiOCwgMHg0OTE3LCAweDAwNzgsIDB4NGFlMiwKKwkweGEwYjgsIDB4NDkwZiwgMHg3ZTA4LCAweGE2YjUsIDB4MDAwYywgMHg2OTA0LCAweGExOGMsIDB4MDBmZiwKKwkweGExODYsIDB4MDAwNywgMHgwMDQwLCAweDRhZjAsIDB4YTE4ZSwgMHgwMDBmLCAweDAwYzAsIDB4NGFmOSwKKwkweDY4MWMsIDB4YTA4NCwgMHgwMDQwLCAweDAwNDAsIDB4NGIwMCwgMHhhNmI1LCAweDAwMDEsIDB4MDA3OCwKKwkweDRiMDAsIDB4NjgxYywgMHhhMDg0LCAweDAwNDAsIDB4MDA0MCwgMHg0YjAwLCAweGE2YjUsIDB4MDAwMSwKKwkweDcwMDcsIDB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwgMHgwMGMwLCAweDRiMDIsIDB4MjQwMCwKKwkweGEzMDUsIDB4MDBjMCwgMHg0YjBkLCAweDAwNzgsIDB4NGIzMywgMHgyYzU4LCAweDI3MDQsIDB4NjEwNCwKKwkweGFjNjAsIDB4NjAwMCwgMHhhNDAwLCAweDcwMWEsIDB4NjAwNCwgMHhhMzAxLCAweDcwMWUsIDB4YTE4NCwKKwkweDAwMDgsIDB4MDA0MCwgMHg0YjIzLCAweDYwMTAsIDB4YTA4MSwgMHgwMDAwLCAweDcwMjIsIDB4NjAxNCwKKwkweGEwODEsIDB4MDAwMCwgMHg3MDI2LCAweDYyMDgsIDB4MjQwMCwgMHhhMjAyLCAweDcwMTIsIDB4NjIwYywKKwkweDIzMDAsIDB4YTIwMywgMHg3MDE2LCAweDc2MDIsIDB4NzAwNywgMHgwMDAxLCAweDJiNjAsIDB4MTA3OCwKKwkweDRhOTIsIDB4MDA3OCwgMHg0YjM1LCAweDEwNzgsIDB4NGMxOCwgMHgwMGMwLCAweDRiMzMsIDB4MTI3ZiwKKwkweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDBkN2UsIDB4MjA5MSwgMHgyMjAwLCAweDBkN2YsIDB4NzAwNywKKwkweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwgMHg0YjQxLCAweDcwMDMsIDB4MDAwOCwKKwkweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDEyN2UsIDB4MGQ3ZSwgMHgyMDkxLCAweDIyMDAsIDB4MGQ3ZiwKKwkweDIwNDksIDB4NGI0YiwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MDBjMCwKKwkweDRiNTQsIDB4N2UwOCwgMHhhNmI1LCAweDAwMGMsIDB4NjkwNCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwKKwkweDAwMDcsIDB4MDA0MCwgMHg0YjY3LCAweGExOGUsIDB4MDAwZiwgMHgwMGMwLCAweDRiNzIsIDB4NjgxYywKKwkweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDRiNmUsIDB4YTZiNSwgMHgwMDAxLCAweDY4NDAsIDB4MjA1MCwKKwkweDAwNzgsIDB4NGI3YiwgMHg2ODFjLCAweGEwODQsIDB4MDAyMCwgMHgwMGMwLCAweDRiNzksIDB4YTZiNSwKKwkweDAwMDEsIDB4NjgyOCwgMHgyMDUwLCAweDJkNjAsIDB4NjAwNCwgMHhhMGJjLCAweDAwMGYsIDB4YTdiOCwKKwkweDQ5MWQsIDB4MjczYywgMHg4N2ZiLCAweDAwYzAsIDB4NGI4ZiwgMHgwMDQ4LCAweDRiODksIDB4MTA3OCwKKwkweDI0OGMsIDB4Njg5YywgMHhhMDY1LCAweDAwNDAsIDB4NGI5MywgMHgwMDc4LCAweDRiN2MsIDB4MTA3OCwKKwkweDRjMTgsIDB4MDBjMCwgMHg0YjhmLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDEyN2UsIDB4MDA3ZSwKKwkweDAxN2UsIDB4MGQ3ZSwgMHgyMDkxLCAweDIyMDAsIDB4MGQ3ZiwgMHgwMzdmLCAweDA0N2YsIDB4N2UwOCwKKwkweGE2YjUsIDB4MDAwYywgMHg2OTA0LCAweGExOGMsIDB4MDBmZiwgMHhhMTg2LCAweDAwMDcsIDB4MDA0MCwKKwkweDRiYWQsIDB4YTE4ZSwgMHgwMDBmLCAweDAwYzAsIDB4NGJiNiwgMHg2ODFjLCAweGEwODQsIDB4MDA0MCwKKwkweDAwNDAsIDB4NGJiZCwgMHhhNmI1LCAweDAwMDEsIDB4MDA3OCwgMHg0YmJkLCAweDY4MWMsIDB4YTA4NCwKKwkweDAwNDAsIDB4MDA0MCwgMHg0YmJkLCAweGE2YjUsIDB4MDAwMSwgMHgyMDQ5LCAweDRiOTYsIDB4MDE3ZSwKKwkweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywgMHgwMDQwLCAweDRiY2IsIDB4YTE4ZSwKKwkweDAwMGYsIDB4MDBjMCwgMHg0YmNlLCAweDY4NDAsIDB4MDA3OCwgMHg0YmNmLCAweDY4MjgsIDB4MDE3ZiwKKwkweGEwNTUsIDB4MDA0MCwgMHg0YzE1LCAweDJkNzAsIDB4MmU2MCwgMHg3MDA0LCAweGEwYmMsIDB4MDAwZiwKKwkweGE3YjgsIDB4NDkxZCwgMHgyNzNjLCAweDg3ZmIsIDB4MDBjMCwgMHg0YmU5LCAweDAwNDgsIDB4NGJlMiwKKwkweDEwNzgsIDB4MjQ4YywgMHg3MDljLCAweGEwNzUsIDB4MjA2MCwgMHgwMDQwLCAweDRjMTUsIDB4MDA3OCwKKwkweDRiZDUsIDB4MjcwNCwgMHhhZTY4LCAweDY4MDgsIDB4YTQyMiwgMHg2ODBjLCAweGEzMWIsIDB4MDA0OCwKKwkweDRjMDIsIDB4OGE1MSwgMHgwMGMwLCAweDRiZjYsIDB4MTA3OCwgMHgyNDhjLCAweDg3MzgsIDB4MjcwNCwKKwkweGEwMDUsIDB4MDBjMCwgMHg0YmVhLCAweDcwOWMsIDB4YTA3NSwgMHgyMDYwLCAweDAwNDAsIDB4NGMxNSwKKwkweDAwNzgsIDB4NGJkNSwgMHg4NDIyLCAweDg0MjAsIDB4ODMxYSwgMHhhMzk5LCAweDAwMDAsIDB4NjkwOCwKKwkweDI0MDAsIDB4YTEyMiwgMHg2OTBjLCAweDIzMDAsIDB4YTExYiwgMHgwMGM4LCAweDRjMTEsIDB4MTA3OCwKKwkweDI0OGMsIDB4MjA3MSwgMHgwMDIwLCAweDAwNzgsIDB4NGIwMCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywKKwkweDcwMDgsIDB4YTA4NCwgMHgwMDAzLCAweGEwODYsIDB4MDAwMywgMHgwMDQwLCAweDRjNDAsIDB4MjcwNCwKKwkweGFjMDgsIDB4MjEwNCwgMHg3MDFhLCAweDgxMDgsIDB4MjEwNCwgMHg3MDFlLCAweDgxMDgsIDB4MjEwNCwKKwkweDcwMTIsIDB4ODEwOCwgMHgyMTA0LCAweDcwMTYsIDB4NjAwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA0MCwKKwkweDRjMzcsIDB4ODEwOCwgMHgyMTA0LCAweDcwMjIsIDB4ODEwOCwgMHgyMTA0LCAweDcwMjYsIDB4NzYwMiwKKwkweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGEwODUsIDB4MDAwMSwgMHg3MDA2LCAweDEwNzgsIDB4NGE5MiwKKwkweDAwN2MsIDB4MTI3ZSwgMHgwMDdlLCAweDBkN2UsIDB4MjA5MSwgMHgyMjAwLCAweDIwNDksIDB4NGM0MSwKKwkweDBkN2YsIDB4MDg3ZiwgMHg3MTA4LCAweGExODQsIDB4MDAwMywgMHgwMGMwLCAweDRjNmIsIDB4MDE3ZSwKKwkweDY5MDQsIDB4YTE4YywgMHgwMGZmLCAweGExODYsIDB4MDAwNywgMHgwMDQwLCAweDRjNWIsIDB4YTE4ZSwKKwkweDAwMGYsIDB4MDBjMCwgMHg0YzVlLCAweDY4NDAsIDB4MDA3OCwgMHg0YzVmLCAweDY4MjgsIDB4MDE3ZiwKKwkweGEwMDUsIDB4MDA0MCwgMHg0Yzc5LCAweDAwNzgsIDB4NDg5ZSwgMHgwMDIwLCAweDRjNmIsIDB4MTA3OCwKKwkweDRhNTUsIDB4MDA3OCwgMHg0Yzc5LCAweDAwYTAsIDB4NGM3MiwgMHg3MTA4LCAweDEwNzgsIDB4NDljZSwKKwkweDAwNzgsIDB4NGM0YSwgMHg3MDA3LCAweDAwMTAsIDB4MDBhMCwgMHg0Yzc0LCAweDcxMDgsIDB4MTA3OCwKKwkweDQ5Y2UsIDB4NzAwOCwgMHhhMDg2LCAweDAwMDgsIDB4MDBjMCwgMHg0YzRhLCAweDcwMDAsIDB4YTAwNSwKKwkweDAwYzAsIDB4NGM0YSwgMHg3MDAzLCAweDAwMDAsIDB4MjA0OSwgMHgwMDAwLCAweDEyN2YsIDB4MjAwMCwKKwkweDAwN2MsIDB4MTI3ZSwgMHgxNDdlLCAweDEzN2UsIDB4MTU3ZSwgMHgwYzdlLCAweDBkN2UsIDB4MjA5MSwKKwkweDIyMDAsIDB4MGQ3ZiwgMHgyMDQ5LCAweDRjODksIDB4YWQ4MCwgMHgwMDExLCAweDIwYTAsIDB4MjA5OSwKKwkweDAwMzEsIDB4NzAwYywgMHhhMDg0LCAweDAwZmYsIDB4NjgyYSwgMHg3MDA3LCAweDAwMDgsIDB4NzAwNywKKwkweDAwMDIsIDB4NzAwMywgMHgwMDAxLCAweDAwNDAsIDB4NGNhOCwgMHg4MDAwLCAweDgwYWMsIDB4NTNhNSwKKwkweDcwMDcsIDB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwgMHgwMGMwLCAweDRjYWEsIDB4MGM3ZiwKKwkweDIwNDksIDB4MDAwMCwgMHg3MDAzLCAweDAwMDAsIDB4MTU3ZiwgMHgxMzdmLCAweDE0N2YsIDB4MTI3ZiwKKwkweDIwMDAsIDB4MDA3YywgMHgyMDkxLCAweDYwMDAsIDB4MjA5MSwgMHg4MDAwLCAweDc4Y2MsIDB4YTAwNSwKKwkweDAwNDAsIDB4NGNkMSwgMHg3OTk0LCAweDcwZDAsIDB4YTEwNiwgMHgwMGMwLCAweDRjZDEsIDB4NzgwNCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0Y2QxLCAweDc4MDcsIDB4MDAwMCwgMHgwMDY4LCAweDRjZDEsIDB4MjA5MSwKKwkweDQwODAsIDB4NzgyMCwgMHg4MDAxLCAweDc4MjIsIDB4MDBjMCwgMHg0ZDJjLCAweDc4MjQsIDB4NzgyMiwKKwkweDIwNjksIDB4NTI0MCwgMHg2ODAwLCAweGEwODQsIDB4MDAwNywgMHgwMDQwLCAweDRjZWYsIDB4YTA4NiwKKwkweDAwMDIsIDB4MDA0MCwgMHg0Y2VmLCAweDY4MzQsIDB4YTAwZCwgMHgwMDQwLCAweDRjZWYsIDB4MjEwNCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0Y2VmLCAweDgwMDEsIDB4MjAwYSwgMHgwMDQwLCAweDRkZDQsIDB4Nzg0OCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0Y2ZkLCAweDgwMDEsIDB4Nzg0YSwgMHgwMGMwLCAweDRjZmQsIDB4MjAwOSwKKwkweDAxMDIsIDB4Njg0NCwgMHgyMDBhLCAweDEwNzgsIDB4MjI2ZiwgMHg2ODkwLCAweGEwMDUsIDB4MDA0MCwKKwkweDRkMDksIDB4ODAwMSwgMHg2ODkyLCAweDAwYzAsIDB4NGQwOSwgMHg2ODZmLCAweDAwMDAsIDB4Njg3MywKKwkweDAwMDEsIDB4MjA2MSwgMHg1NTAwLCAweDIwYTksIDB4MDEwMCwgMHgyMDA5LCAweDAwMDIsIDB4NjAzNCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0ZDFmLCAweDgwMDEsIDB4NjAzNiwgMHgwMGMwLCAweDRkMWYsIDB4NjAxMCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0ZDFmLCAweDAxN2UsIDB4MTA3OCwgMHgyMjZmLCAweDAxN2YsIDB4YWNlMCwKKwkweDAwMTAsIDB4MDA3MCwgMHg0ZDI1LCAweDAwNzgsIDB4NGQwZiwgMHg4MTA5LCAweDAwNDAsIDB4NGQyYywKKwkweDIwYTksIDB4MDEwMCwgMHgwMDc4LCAweDRkMGYsIDB4MTA3OCwgMHg0ZDM5LCAweDEwNzgsIDB4NGQ1ZSwKKwkweDIwMDksIDB4NTI1MSwgMHgyMTA0LCAweDIwMDksIDB4MDEwMiwgMHgyMDBhLCAweDIwOTEsIDB4ODAwMSwKKwkweDAwN2MsIDB4NzgzNCwgMHg4MDAxLCAweDc4MzYsIDB4MDBjMCwgMHg0ZDVkLCAweDc4MzgsIDB4NzgzNiwKKwkweDIwOTEsIDB4ODAwMCwgMHg3ODQ0LCAweGEwMDUsIDB4MDBjMCwgMHg0ZDQ4LCAweDIwMDEsIDB4MDEwMSwKKwkweDgwMDEsIDB4Nzg0NiwgMHhhMDgwLCAweDc1MDAsIDB4MjA0MCwgMHgyMDA0LCAweGEwNjUsIDB4MDA0MCwKKwkweDRkNWQsIDB4NjAyNCwgMHhhMDA1LCAweDAwNDAsIDB4NGQ1OSwgMHg4MDAxLCAweDYwMjYsIDB4MDA0MCwKKwkweDRkOGQsIDB4NjAwMCwgMHgyYzQwLCAweDAwNzgsIDB4NGQ0ZSwgMHgwMDdjLCAweDc4MjgsIDB4ODAwMSwKKwkweDc4MmEsIDB4MDBjMCwgMHg0ZDhjLCAweDc4MmMsIDB4NzgyYSwgMHg3ODMwLCAweGEwMDUsIDB4MDBjMCwKKwkweDRkNmIsIDB4MjAwMSwgMHgwMjAwLCAweDgwMDEsIDB4NzgzMiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKKwkweDgwMDMsIDB4YTA5MCwgMHg1NTAwLCAweGEyOTgsIDB4MDAwMiwgMHgyMzA0LCAweGEwODQsIDB4MDAwOCwKKwkweDAwNDAsIDB4NGQ4YywgMHhhMjkwLCAweDAwMDksIDB4MjIwNCwgMHhhMDA1LCAweDAwNDAsIDB4NGQ4NCwKKwkweDgwMDEsIDB4MjAxMiwgMHgwMGMwLCAweDRkOGMsIDB4MjMwNCwgMHhhMDg0LCAweGZmZjcsIDB4YTA4NSwKKwkweDAwODAsIDB4MjAxYSwgMHgxMDc4LCAweDIyNmYsIDB4MDA3YywgMHgyMDY5LCAweDUyNDAsIDB4NjgwMCwKKwkweGEwMDUsIDB4MDA0MCwgMHg0ZDk3LCAweDY4NDgsIDB4YWMwNiwgMHgwMDQwLCAweDRkZDQsIDB4NjAxYiwKKwkweDAwMDYsIDB4NjBiNCwgMHhhMDg0LCAweDNmMDAsIDB4NjAxZSwgMHg2MDIwLCAweGEwODQsIDB4MDBmZiwKKwkweGEwODUsIDB4MDA2MCwgMHg2MDIyLCAweDYwMDAsIDB4MjA0MiwgMHg2NzE0LCAweDZmODIsIDB4MTA3OCwKKwkweDE5YzUsIDB4NjgxOCwgMHhhMDA1LCAweDAwNDAsIDB4NGRhZiwgMHg4MDAxLCAweDY4MWEsIDB4NjgwOCwKKwkweGEwODQsIDB4ZmZlZiwgMHg2ODBhLCAweDY4MTAsIDB4ODAwMSwgMHgwMGQwLCAweDRkYjksIDB4MTA3OCwKKwkweDI0OGMsIDB4NjgxMiwgMHg2MDJmLCAweDAwMDAsIDB4NjAzMywgMHgwMDAwLCAweDJjNjgsIDB4MTA3OCwKKwkweDFjZGMsIDB4MjA2OSwgMHg1MjQwLCAweDc5NDQsIDB4YTE4NCwgMHgwMTAwLCAweDIwMDEsIDB4MDAwNiwKKwkweDY4NmUsIDB4MDBjMCwgMHg0ZGNmLCAweDY5ODYsIDB4MjAwMSwgMHgwMDA0LCAweDY4NmUsIDB4MTA3OCwKKwkweDIyNmEsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4MjA2OSwgMHgwMTAwLCAweDIwMDksIDB4NTI0MCwKKwkweDIxMDQsIDB4YTA4NCwgMHgwMDA3LCAweDAwNDAsIDB4NGUzMCwgMHhhMDg2LCAweDAwMDcsIDB4MDBjMCwKKwkweDRkZWEsIDB4MGQ3ZSwgMHgyMDA5LCAweDUyNTIsIDB4MjE2YywgMHgxMDc4LCAweDNiMWMsIDB4MGQ3ZiwKKwkweDAwNzgsIDB4NGUzMCwgMHgyMDA5LCAweDUyNTIsIDB4MjE2NCwgMHgxMDc4LCAweDI0MzcsIDB4NjAxYiwKKwkweDAwMDYsIDB4Njg1OCwgMHhhMDg0LCAweDNmMDAsIDB4NjAxZSwgMHg2MDIwLCAweGEwODQsIDB4MDBmZiwKKwkweGEwODUsIDB4MDA0OCwgMHg2MDIyLCAweDYwMmYsIDB4MDAwMCwgMHg2MDMzLCAweDAwMDAsIDB4NjgzMCwKKwkweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDRlMjQsIDB4Njg0YiwgMHgwMDA0LCAweDIwYTksIDB4MDAxNCwKKwkweDY4NDgsIDB4YTA4NCwgMHgwMDA0LCAweDAwNDAsIDB4NGUxMSwgMHgwMDcwLCAweDRlMTEsIDB4MDA3OCwKKwkweDRlMDgsIDB4Njg0YiwgMHgwMDA5LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGEwODQsIDB4MDAwMSwKKwkweDAwNDAsIDB4NGUxZSwgMHgwMDcwLCAweDRlMWUsIDB4MDA3OCwgMHg0ZTE1LCAweDIwYTksIDB4MDBmYSwKKwkweDAwNzAsIDB4NGUyNCwgMHgwMDc4LCAweDRlMjAsIDB4NjgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NjgwYSwKKwkweDY4MWIsIDB4MDA0OCwgMHgyMDA5LCAweDUyNWIsIDB4MjAwYiwgMHgwMDA3LCAweDc4NGMsIDB4Nzg0YSwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDIwNzksIDB4NTIwMCwgMHgxMDc4LCAweDRlNWUsIDB4MTA3OCwKKwkweDRlNDIsIDB4MTA3OCwgMHg0ZTUwLCAweDc4MzMsIDB4MDAwMCwgMHg3ODQ3LCAweDAwMDAsIDB4Nzg0YiwKKwkweDAwMDAsIDB4MDA3YywgMHgyMDE5LCAweDAwMDMsIDB4MjAxMSwgMHg1MjQ2LCAweDIyMDQsIDB4YTA4NiwKKwkweDAwM2MsIDB4MDA0MCwgMHg0ZTRkLCAweDIwMTksIDB4MDAwMiwgMHg3YjJhLCAweDdiMmUsIDB4MDA3YywKKwkweDIwMTksIDB4MDAzOSwgMHgyMDExLCAweDUyNDYsIDB4MjIwNCwgMHhhMDg2LCAweDAwM2MsIDB4MDA0MCwKKwkweDRlNWIsIDB4MjAxOSwgMHgwMDI3LCAweDdiMzYsIDB4N2IzYSwgMHgwMDdjLCAweDIwMTksIDB4Mzk3MSwKKwkweDIwMTEsIDB4NTI0NiwgMHgyMjA0LCAweGEwODYsIDB4MDAzYywgMHgwMDQwLCAweDRlNjksIDB4MjAxOSwKKwkweDI2MjYsIDB4N2IyMiwgMHg3YjI2LCAweDc4M2YsIDB4MDAwMCwgMHg3ODQzLCAweDAwMGEsIDB4MDA3YywKKwkweDAwMjAsIDB4MDAyYiwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMTQsIDB4MDAxNCwgMHg5ODQ5LCAweDAwMTQsIDB4MDAxNCwKKwkweDAwMTQsIDB4MDAxNCwgMHgwMDE0LCAweDAwMTQsIDB4MDAxNCwgMHgwMDgwLCAweDAwMGYsIDB4MDAwMCwKKwkweDAyMDEsIDB4MDYwNCwgMHgwYzA4LCAweDIxMjAsIDB4NDAyMiwgMHhmODgwLCAweDAwMTgsIDB4MzAwYiwKKwkweGEyMDEsIDB4MDAxNCwgMHhhMjAwLCAweDAwMTQsIDB4YTIwMCwgMHgwMjE0LCAweDAwMDAsIDB4MDA2YywKKwkweDAwMDIsIDB4MDAxNCwgMHg5OGNkLCAweDAwOWUsIDB4MDA5MywgMHhhMjAyLCAweDg4MzgsIDB4MzgwNiwKKwkweDg4MzksIDB4MjBjMywgMHgwODY0LCAweDk4ODUsIDB4MjhjMSwgMHg5Y2FlLCAweGEyMDMsIDB4MzAwYywKKwkweDI4NDYsIDB4ODE2MSwgMHg4NDZhLCAweDgzMDAsIDB4MTg1NiwgMHg4ODNhLCAweDk4NjUsIDB4MjhmMiwKKwkweDljOTEsIDB4OTg1OCwgMHgzMDBjLCAweDI4ZTEsIDB4OWM5MSwgMHgyODAyLCAweGEyMDYsIDB4NjRjMywKKwkweDI4MmUsIDB4YTIwNywgMHg2NGEwLCAweDZkZTAsIDB4NjdhMCwgMHg2ZmMwLCAweDE4MTQsIDB4ODgzYiwKKwkweDc4MjQsIDB4NjhjMSwgMHg3ODY0LCAweDg4M2UsIDB4OTg3OSwgMHg4NTc2LCAweDg2NzcsIDB4MjA2YiwKKwkweDI4YzEsIDB4OWNhZSwgMHgyMDQ0LCAweDIxMDMsIDB4MjBhMiwgMHgyMDgxLCAweDk4NjUsIDB4YTIwOSwKKwkweDI5MDEsIDB4OTg4ZCwgMHgwMDE0LCAweGEyMDUsIDB4YTMwMCwgMHgxODcyLCAweDg3OWEsIDB4ODgzYywKKwkweDFmZTIsIDB4YzYwMSwgMHhhMjBhLCAweDg1NmUsIDB4MDcwNCwgMHg5YzkxLCAweDAwMTQsIDB4YTIwNCwKKwkweGEzMDAsIDB4MzAwOSwgMHgxOWUyLCAweGY4NjQsIDB4ODU2ZSwgMHg4ODNmLCAweDA4ZTYsIDB4OTg5MSwKKwkweGY4ODEsIDB4OTg4YywgMHhjODAxLCAweDAwMTQsIDB4ZjhjMSwgMHgwMDE2LCAweDg1YjIsIDB4ODBmMCwKKwkweDk1MzIsIDB4ZmIwMiwgMHgxZGUyLCAweDAwMTQsIDB4ODUzMiwgMHhmMjQxLCAweDAwMTQsIDB4MWRlMiwKKwkweDg0YTgsIDB4ZDdhMCwgMHgxZmU2LCAweDAwMTQsIDB4YTIwOCwgMHg2MDQzLCAweDgwMDgsIDB4MWRjMSwKKwkweDAwMTYsIDB4ODMwMCwgMHg4MTYwLCAweDg0MmEsIDB4ZjA0MSwgMHgzMDA4LCAweDg0YTgsIDB4MTFkNiwKKwkweDcwNDIsIDB4MjBkZCwgMHgwMDExLCAweDIwZDUsIDB4ODgyMiwgMHgwMDE2LCAweDgwMDAsIDB4Mjg0NywKKwkweDEwMTEsIDB4OThjMCwgMHg4MDAwLCAweGEwMDAsIDB4MjgwMiwgMHgxMDExLCAweDk4YzYsIDB4OTg2NSwKKwkweDI4M2UsIDB4MTAxMSwgMHg5OGNhLCAweGEyMGIsIDB4MDAxNywgMHgzMDBjLCAweGEzMDAsIDB4MWRlMiwKKwkweGRiODEsIDB4MDAxNCwgMHgwMjEwLCAweDk4ZDcsIDB4MDAxNCwgMHgyNmUwLCAweDg3M2EsIDB4ZmIwMiwKKwkweDE5ZjIsIDB4MWZlMiwgMHgwMDE0LCAweGEyMGQsIDB4MzgwNiwgMHgwMjEwLCAweDljYjMsIDB4MDcwNCwKKwkweDAwMDAsIDB4MDA2YywgMHgwMDAyLCAweDk4NGYsIDB4MDAxNCwgMHgwMDllLCAweDAwYTAsIDB4MDAxNywKKwkweDYwZmYsIDB4MzAwYywgMHg4NzIwLCAweGEyMTEsIDB4OWNkMCwgMHg4NzcyLCAweDg4MzcsIDB4MjEwMSwKKwkweDk4N2EsIDB4MTBkMiwgMHg3OGUyLCAweDljZDMsIDB4OTg1OSwgMHhkOTg0LCAweGYwZTIsIDB4ZjBhMSwKKwkweDk4Y2QsIDB4MDAxNCwgMHg4ODMxLCAweGQxNjYsIDB4ODgzMCwgMHg4MDBmLCAweDk0MDEsIDB4YjUyMCwKKwkweGM4MDIsIDB4ODgyMCwgMHg5ODdhLCAweDIzMDEsIDB4OTg3YSwgMHgxMGQyLCAweDc4ZTQsIDB4OWNkMywKKwkweDg4MjEsIDB4ODgyMCwgMHg5ODU5LCAweGYxMjMsIDB4ZjE0MiwgMHhmMTAxLCAweDk4YzYsIDB4MTBkMiwKKwkweDcwZjYsIDB4ODgzMiwgMHg4MjAzLCAweDg3MGMsIDB4ZDk5ZSwgMHg2MDAxLCAweDAwMTQsIDB4Njg0NSwKKwkweDAyMTQsIDB4YTIxYiwgMHg5Y2QwLCAweDIwMDEsIDB4OThjNSwgMHg4MjAxLCAweDE4NTIsIDB4ZDE4NCwKKwkweGQxNjMsIDB4ODgzNCwgMHg4MDAxLCAweDk4OGQsIDB4MzAyNywgMHg4NGE4LCAweDFhNTYsIDB4ODgzMywKKwkweDAwMTQsIDB4YTIxOCwgMHg2OTgxLCAweDljYmMsIDB4NjkyNiwgMHg2OTAyLCAweDFhMzQsIDB4OTg5OSwKKwkweDFhMTQsIDB4NzAyMSwgMHgwMDE0LCAweGEzMDAsIDB4NjE0MSwgMHg2OTY0LCAweDgwMTAsIDB4ODU5MiwKKwkweDgwMjYsIDB4ODRiOSwgMHg2OWU0LCAweDgwMjMsIDB4MTZlMSwgMHg4MDAxLCAweDEwZjEsIDB4Njk0NiwKKwkweGEyMTMsIDB4MTQ2MiwgMHhhMjEzLCAweDgwMDAsIDB4MTZlMSwgMHg5OGI1LCAweDY5NjksIDB4YTIxNCwKKwkweDYxYzIsIDB4ODAwMiwgMHgxNGUxLCAweDgwMDQsIDB4MTZlMSwgMHgwMTAxLCAweDMwMGEsIDB4ODgyNywKKwkweDAwMTQsIDB4YTIxNywgMHg5Y2JjLCAweDAwMTQsIDB4YTMwMCwgMHg4MTgxLCAweDg0MmEsIDB4ODRhOCwKKwkweDFjZTYsIDB4ODgyYywgMHgwMDE2LCAweGEyMTIsIDB4OWNkMCwgMHgxMGQyLCAweDcwZTQsIDB4MDAwNCwKKwkweDgwMDcsIDB4OTQyNCwgMHhjYzFhLCAweDljZDMsIDB4OThjNSwgMHg4ODI3LCAweDMwMGEsIDB4MDAxMywKKwkweDgwMDAsIDB4ODRhNCwgMHgwMDE2LCAweDExYzIsIDB4MjExZSwgMHg4NzBlLCAweGEyMWQsIDB4MDAxNCwKKwkweDg3OGUsIDB4MDAxNiwgMHhhMjFjLCAweDEwMzUsIDB4OTg5MSwgMHhhMjEwLCAweGEwMDAsIDB4ODAxMCwKKwkweDg1OTIsIDB4ODUzYiwgMHhkMDQ0LCAweDgwMjIsIDB4MzgwNywgMHg4NGJiLCAweDk4ZWEsIDB4ODAyMSwKKwkweDM4MDcsIDB4ODRiOSwgMHgzMDBjLCAweDgxN2UsIDB4ODcyYiwgMHg4NzcyLCAweDk4OTEsIDB4MDAwMCwKKwkweDAwMjAsIDB4MDAyYiwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwKKwkweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMTQsIDB4MDAxNCwgMHg5ODQ5LCAweDAwMTQsIDB4MDAxNCwKKwkweDk4ZTIsIDB4OThjZCwgMHgwMDE0LCAweDAwMTQsIDB4MDAxNCwgMHgwMDgwLCAweDAxMzcsIDB4MDAwMCwKKwkweDAyMDEsIDB4MDYwNCwgMHgwYzA4LCAweDIxMjAsIDB4NDAyMiwgMHhmODgwLCAweDAwMTgsIDB4MzAwYiwKKwkweGEyMDEsIDB4MDAxNCwgMHhhMjAwLCAweDAwMTQsIDB4YTIwMCwgMHgwMjE0LCAweGEyMDIsIDB4ODgzOCwKKwkweDM4MDYsIDB4ODgzOSwgMHgyMGMzLCAweDA4NjQsIDB4YTgyZiwgMHgyOGMxLCAweDljYWUsIDB4YTIwMywKKwkweDMwMGMsIDB4Mjg0NiwgMHg4MTYxLCAweDg0NmEsIDB4ODMwMCwgMHgxODU2LCAweDg4M2EsIDB4YTgwNCwKKwkweDI4ZjIsIDB4OWM5MSwgMHhhOGY0LCAweDMwMGMsIDB4MjhlMSwgMHg5YzkxLCAweDI4MDIsIDB4YTIwNiwKKwkweDY0YzMsIDB4MjgyZSwgMHhhMjA3LCAweDY0YTAsIDB4NmRlMCwgMHg2N2EwLCAweDZmYzAsIDB4MTgxNCwKKwkweDg4M2IsIDB4NzgyNCwgMHg2OGMxLCAweDc4NjQsIDB4ODgzZSwgMHhhODAyLCAweDg1NzYsIDB4ODY3NywKKwkweDIwNmIsIDB4MjhjMSwgMHg5Y2FlLCAweDIwNDQsIDB4MjEwMywgMHgyMGEyLCAweDIwODEsIDB4YThlNCwKKwkweGEyMDksIDB4MjkwMSwgMHhhODA5LCAweDAwMTQsIDB4YTIwNSwgMHhhMzAwLCAweDE4NzIsIDB4ODc5YSwKKwkweDg4M2MsIDB4MWZlMiwgMHhjNjAxLCAweGEyMGEsIDB4ODU2ZSwgMHgwNzA0LCAweDljOTEsIDB4MDAxNCwKKwkweGEyMDQsIDB4YTMwMCwgMHgzMDA5LCAweDE5ZTIsIDB4Zjg2NCwgMHg4NTZlLCAweDg4M2YsIDB4MDhlNiwKKwkweGE4ZjcsIDB4Zjg4MSwgMHhhOGYwLCAweGM4MDEsIDB4MDAxNCwgMHhmOGMxLCAweDAwMTYsIDB4ODViMiwKKwkweDgwZjAsIDB4OTUzMiwgMHhmYjAyLCAweDFkZTIsIDB4MDAxNCwgMHg4NTMyLCAweGYyNDEsIDB4MDAxNCwKKwkweDFkZTIsIDB4ODRhOCwgMHhkN2EwLCAweDFmZTYsIDB4MDAxNCwgMHhhMjA4LCAweDYwNDMsIDB4ODAwOCwKKwkweDFkYzEsIDB4MDAxNiwgMHg4MzAwLCAweDgxNjAsIDB4ODQyYSwgMHhmMDQxLCAweDMwMDgsIDB4ODRhOCwKKwkweDExZDYsIDB4NzA0MiwgMHgyMGRkLCAweDAwMTEsIDB4MjBkNSwgMHg4ODIyLCAweDAwMTYsIDB4ODAwMCwKKwkweDI4NDcsIDB4MTAxMSwgMHhhOGZjLCAweDgwMDAsIDB4YTAwMCwgMHgyODAyLCAweDEwMTEsIDB4YThmZCwKKwkweGE4OWIsIDB4MjgzZSwgMHgxMDExLCAweGE4ZmQsIDB4YTIwYiwgMHgwMDE3LCAweDMwMGMsIDB4YTMwMCwKKwkweDFkZTIsIDB4ZGI4MSwgMHgwMDE0LCAweDAyMTAsIDB4YTgwMSwgMHgwMDE0LCAweDI2ZTAsIDB4ODczYSwKKwkweGZiMDIsIDB4MTlmMiwgMHgxZmUyLCAweDAwMTQsIDB4YTIwZCwgMHgzODA2LCAweDAyMTAsIDB4OWNiMywKKwkweDA3MDQsIDB4MDAxNywgMHg2MGZmLCAweDMwMGMsIDB4ODcyMCwgMHhhMjExLCAweDlkNjMsIDB4ODc3MiwKKwkweDg4MzcsIDB4MjEwMSwgMHhhODIxLCAweDEwZDIsIDB4NzhlMiwgMHg5ZDY2LCAweGE4ZmMsIDB4ZDk4NCwKKwkweGYwZTIsIDB4ZjBhMSwgMHhhODZjLCAweDAwMTQsIDB4ODgzMSwgMHhkMTY2LCAweDg4MzAsIDB4ODAwZiwKKwkweDk0MDEsIDB4YjUyMCwgMHhjODAyLCAweDg4MjAsIDB4YTgwZiwgMHgyMzAxLCAweGE4MGQsIDB4MTBkMiwKKwkweDc4ZTQsIDB4OWQ2NiwgMHg4ODIxLCAweDg4MjAsIDB4YThlNiwgMHhmMTIzLCAweGYxNDIsIDB4ZjEwMSwKKwkweGE4NGYsIDB4MTBkMiwgMHg3MGY2LCAweDg4MzIsIDB4ODIwMywgMHg4NzBjLCAweGQ5OWUsIDB4NjAwMSwKKwkweDAwMTQsIDB4Njg0NSwgMHgwMjE0LCAweGEyMWIsIDB4OWQ2MywgMHgyMDAxLCAweGE4NDAsIDB4ODIwMSwKKwkweDE4NTIsIDB4ZDE4NCwgMHhkMTYzLCAweDg4MzQsIDB4ODAwMSwgMHhhODAxLCAweDMwMjcsIDB4ODRhOCwKKwkweDFhNTYsIDB4ODgzMywgMHgwMDE0LCAweGEyMTgsIDB4Njk4MSwgMHg5ZDRmLCAweDY5MjYsIDB4NjkwMiwKKwkweDFhMzQsIDB4YTgwMSwgMHgxYTE0LCAweDcwMjEsIDB4MDAxNCwgMHhhMzAwLCAweDYxNDEsIDB4Njk2NCwKKwkweDgwMTAsIDB4ODU5MiwgMHg4MDI2LCAweDg0YjksIDB4NjllNCwgMHg4MDIzLCAweDE2ZTEsIDB4ODAwMSwKKwkweDEwZjEsIDB4Njk0NiwgMHhhMjEzLCAweDE0NjIsIDB4YTIxMywgMHg4MDAwLCAweDE2ZTEsIDB4YTgwNywKKwkweDY5NjksIDB4YTIxNCwgMHg2MWMyLCAweDgwMDIsIDB4MTRlMSwgMHg4MDA0LCAweDE2ZTEsIDB4MDEwMSwKKwkweDMwMGEsIDB4ODgyNywgMHgwMDE0LCAweGEyMTcsIDB4OWQ0ZiwgMHgwMDE0LCAweGEzMDAsIDB4ODE4MSwKKwkweDg0MmEsIDB4ODRhOCwgMHgxY2U2LCAweDg4MmMsIDB4MDAxNiwgMHhhMjEyLCAweDlkNjMsIDB4MTBkMiwKKwkweDcwZTQsIDB4MDAwNCwgMHg4MDA3LCAweDk0MjQsIDB4Y2MxYSwgMHg5ZDY2LCAweGE4ZjgsIDB4ODgyNywKKwkweDMwMGEsIDB4MDAxMywgMHg4MDAwLCAweDg0YTQsIDB4MDAxNiwgMHgxMWMyLCAweDIxMWUsIDB4ODcwZSwKKwkweGEyMWQsIDB4MDAxNCwgMHg4NzhlLCAweDAwMTYsIDB4YTIxYywgMHgxMDM1LCAweGE4YjQsIDB4YTIxMCwKKwkweDM4MDcsIDB4MzAwYywgMHg4MTdlLCAweDg3MmIsIDB4ODc3MiwgMHhhOGFkLCAweDAwMDAsIDB4MGQwYwogfTsKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgIHJpc2NfY29kZV9sZW5ndGgwMSA9IDB4NDA1NzsKLQorc3RhdGljIHVuc2lnbmVkIHNob3J0IHJpc2NfY29kZV9sZW5ndGgwMSA9IDB4NDE1ODsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbDEyMTYwX2Z3LmggYi9kcml2ZXJzL3Njc2kvcWwxMjE2MF9mdy5oCmluZGV4IDlkYjZhMjAuLmQ4OWRhYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbDEyMTYwX2Z3LmgKKysrIGIvZHJpdmVycy9zY3NpL3FsMTIxNjBfZncuaApAQCAtMjIsMTkgKzIyLDE5IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICoJRmlybXdhcmUgVmVyc2lvbiAxMC4wNC4zMiAoMTI6MDMgTWF5IDA5LCAyMDAxKQorICoJRmlybXdhcmUgVmVyc2lvbiAxMC4wNC40MiAoMTU6NDQgQXByIDE4LCAyMDAzKQogICovCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZncxMjE2MGlfdmVyc2lvbl9zdHJbXSA9IHsxMCw0LDMyfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGZ3MTIxNjBpX3ZlcnNpb25fc3RyW10gPSB7MTAsNCw0Mn07CiAjZWxzZQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZmlybXdhcmVfdmVyc2lvbltdID0gezEwLDQsMzJ9Oworc3RhdGljIHVuc2lnbmVkIGNoYXIgZmlybXdhcmVfdmVyc2lvbltdID0gezEwLDQsNDJ9OwogI2VuZGlmCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQotI2RlZmluZSBmdzEyMTYwaV9WRVJTSU9OX1NUUklORyAiMTAuMDQuMzIiCisjZGVmaW5lIGZ3MTIxNjBpX1ZFUlNJT05fU1RSSU5HICIxMC4wNC40MiIKICNlbHNlCi0jZGVmaW5lIEZXX1ZFUlNJT05fU1RSSU5HICIxMC4wNC4zMiIKKyNkZWZpbmUgRldfVkVSU0lPTl9TVFJJTkcgIjEwLjA0LjQyIgogI2VuZGlmCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQpAQCAtNDgsNyArNDgsNyBAQAogI2Vsc2UKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCByaXNjX2NvZGUwMVtdID0gewogI2VuZGlmCi0JMHgwODA0LCAweDEwNDEsIDB4MDAwMCwgMHgzNWU2LCAweDAwMDAsIDB4MjA0MywgMHg0ZjUwLCAweDU5NTIsCisJMHgwODA0LCAweDEwNDEsIDB4MDAwMCwgMHgzNmM5LCAweDAwMDAsIDB4MjA0MywgMHg0ZjUwLCAweDU5NTIsCiAJMHg0OTQ3LCAweDQ4NTQsIDB4MjAzMSwgMHgzOTM5LCAweDMxMmMsIDB4MzEzOSwgMHgzOTMyLCAweDJjMzEsCiAJMHgzOTM5LCAweDMzMmMsIDB4MzEzOSwgMHgzOTM0LCAweDIwNTEsIDB4NGM0ZiwgMHg0NzQ5LCAweDQzMjAsCiAJMHg0MzRmLCAweDUyNTAsIDB4NGY1MiwgMHg0MTU0LCAweDQ5NGYsIDB4NGUwMCwgMHgyMDQ5LCAweDUzNTAsCkBAIC01NiwxMTIgKzU2LDExMiBAQAogCTB4NjU3MiwgMHg3MzY5LCAweDZmNmUsIDB4MjAzMSwgMHgzMDJlLCAweDMwMzQsIDB4MjAyMCwgMHgyMDQzLAogCTB4NzU3MywgMHg3NDZmLCAweDZkNjUsIDB4NzIyMCwgMHg0ZTZmLCAweDJlMjAsIDB4MzAzMCwgMHgyMDUwLAogCTB4NzI2ZiwgMHg2NDc1LCAweDYzNzQsIDB4MjA0ZSwgMHg2ZjJlLCAweDIwMjAsIDB4MzAzMCwgMHgyMDIwLAotCTB4MjQwMCwgMHgyMGM5LCAweDhmZmYsIDB4MjA3MSwgMHgwMjAwLCAweDcwYTAsIDB4NzBhMiwgMHgyMDAxLAorCTB4MjQwMCwgMHgyMGM5LCAweDkwZmYsIDB4MjA3MSwgMHgwMjAwLCAweDcwYTAsIDB4NzBhMiwgMHgyMDAxLAogCTB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTEyMCwgMHgyMDcxLCAweDAxMDAsIDB4NzBhMCwgMHg3MGEyLAogCTB4MjBjMSwgMHgwMDIwLCAweDIwODksIDB4MTIyMSwgMHgyMDcxLCAweDAwMTAsIDB4NzBjMywgMHgwMDA0LAogCTB4NzBjNywgMHg0OTUzLCAweDcwY2IsIDB4NTAyMCwgMHg3MGNmLCAweDIwMjAsIDB4NzBkMywgMHgwMDBhLAogCTB4MjAwMSwgMHgwNGZkLCAweDIwMDQsIDB4NzBkNiwgMHgyMDA5LCAweGZlZmYsIDB4MjEzMCwgMHgyMTI4LAotCTB4YTFhMiwgMHg0NjAwLCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LAotCTB4YTE5MiwgMHg5MDAwLCAweDIwMDksIDB4MDAwMCwgMHgyMDAxLCAweDAwMzIsIDB4MDgwYywgMHgxZGU4LAotCTB4MjIxOCwgMHgyMDc5LCAweDQ2MDAsIDB4MmZhMCwgMHgyNDA4LCAweDIwMTEsIDB4MDAwMCwgMHgyMGE5LAorCTB4YTFhMiwgMHg0NzAwLCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LAorCTB4YTE5MiwgMHg5MTAwLCAweDIwMDksIDB4MDAwMCwgMHgyMDAxLCAweDAwMzIsIDB4MDgwYywgMHgxZTA1LAorCTB4MjIxOCwgMHgyMDc5LCAweDQ3MDAsIDB4MmZhMCwgMHgyNDA4LCAweDIwMTEsIDB4MDAwMCwgMHgyMGE5LAogCTB4MDA0MCwgMHg0MmE0LCAweDgxMDksIDB4MWRkOCwgMHgyMDA5LCAweGZmMDAsIDB4MzQwMCwgMHhhMTAyLAogCTB4MDIxOCwgMHgwMTEwLCAweDIwYTgsIDB4NDJhNCwgMHg3ODFiLCAweDAwNjQsIDB4NzgxNCwgMHhjMGNkLAotCTB4YzBkNSwgMHg3ODE2LCAweDIwNzEsIDB4MDIwMCwgMHgwMGQ2LCAweDIwNjksIDB4NDY0MCwgMHgwODBjLAotCTB4NDU5YSwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDExMzAsIDB4MjA2OSwgMHg0NjgwLAotCTB4MjA3MSwgMHgwMTAwLCAweDA4MGMsIDB4NDU5YSwgMHg3ODE0LCAweGMwZDQsIDB4NzgxNiwgMHgwMGRlLAorCTB4YzBkNSwgMHg3ODE2LCAweDIwNzEsIDB4MDIwMCwgMHgwMGQ2LCAweDIwNjksIDB4NDc0MCwgMHgwODBjLAorCTB4NDY1YywgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDExMzAsIDB4MjA2OSwgMHg0NzgwLAorCTB4MjA3MSwgMHgwMTAwLCAweDA4MGMsIDB4NDY1YywgMHg3ODE0LCAweGMwZDQsIDB4NzgxNiwgMHgwMGRlLAogCTB4N2VjYSwgMHg3Y2MyLCAweDdiYzYsIDB4Nzg2NywgMHgwMDAwLCAweDc4MDAsIDB4YzA4ZCwgMHg3ODAyLAogCTB4MjAzMSwgMHgwMDMwLCAweDc4YWYsIDB4MDEwMSwgMHg3ODIzLCAweDAwMDIsIDB4NzgyNywgMHgwMDAyLAotCTB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NDY0MCwgMHg2ODFiLCAweDAwMDMsIDB4NjgyMywgMHgwMDA3LAorCTB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NDc0MCwgMHg2ODFiLCAweDAwMDMsIDB4NjgyMywgMHgwMDA3LAogCTB4NjgyNywgMHgwMGZhLCAweDY4MmIsIDB4MDAwOCwgMHg2ODJmLCAweDAwMjgsIDB4NjgzNywgMHgwMDA2LAogCTB4NjgzMywgMHgwMDA4LCAweDY4M2IsIDB4MDAwMCwgMHg4MTA5LCAweDA1MDAsIDB4NjhjZiwgMHgwMDBhLAotCTB4NjhiZiwgMHg0NmMwLCAweDIwNzksIDB4NDYwMCwgMHg2OGQzLCAweDc2MmQsIDB4NjhjMywgMHg0YmMwLAotCTB4NjhjNywgMHg0YWMwLCAweDY4Y2IsIDB4OGJjMCwgMHg2OGE3LCAweDhlNDQsIDB4NjhhYiwgMHg4ZTQ5LAotCTB4NjhhZiwgMHg4ZTQ0LCAweDY4YjMsIDB4OGU0NCwgMHg2OGEzLCAweDAwMDEsIDB4MjAwMSwgMHgwMWZmLAotCTB4MjAwNCwgMHhkMGZjLCAweDExYzgsIDB4MjA2OSwgMHg0NjgwLCAweDA4NzAsIDB4NjhjZiwgMHgwMDBhLAotCTB4NjhiZiwgMHg0OGMwLCAweDY4ZDMsIDB4NzgzOSwgMHg2OGMzLCAweDZiYzAsIDB4NjhjNywgMHg0YjQwLAotCTB4NjhjYiwgMHg4Y2QwLCAweDY4YTcsIDB4OGU0OSwgMHg2OGFiLCAweDhlNGUsIDB4NjhhZiwgMHg4ZTQ5LAotCTB4NjhiMywgMHg4ZTQ5LCAweDY4YTMsIDB4MDAwMSwgMHgwMGU2LCAweDIwNjksIDB4NGFjMCwgMHgyMDcxLAorCTB4NjhiZiwgMHg0N2MwLCAweDIwNzksIDB4NDcwMCwgMHg2OGQzLCAweDc2MmQsIDB4NjhjMywgMHg0Y2MwLAorCTB4NjhjNywgMHg0YmMwLCAweDY4Y2IsIDB4OGNjMCwgMHg2OGE3LCAweDhmNDQsIDB4NjhhYiwgMHg4ZjQ5LAorCTB4NjhhZiwgMHg4ZjQ0LCAweDY4YjMsIDB4OGY0NCwgMHg2OGEzLCAweDAwMDEsIDB4MjAwMSwgMHgwMWZmLAorCTB4MjAwNCwgMHhkMGZjLCAweDExYzgsIDB4MjA2OSwgMHg0NzgwLCAweDA4NzAsIDB4NjhjZiwgMHgwMDBhLAorCTB4NjhiZiwgMHg0OWMwLCAweDY4ZDMsIDB4NzgzOSwgMHg2OGMzLCAweDZjYzAsIDB4NjhjNywgMHg0YzQwLAorCTB4NjhjYiwgMHg4ZGQwLCAweDY4YTcsIDB4OGY0OSwgMHg2OGFiLCAweDhmNGUsIDB4NjhhZiwgMHg4ZjQ5LAorCTB4NjhiMywgMHg4ZjQ5LCAweDY4YTMsIDB4MDAwMSwgMHgwMGU2LCAweDIwNjksIDB4NGJjMCwgMHgyMDcxLAogCTB4MDIwMCwgMHg3MGVjLCAweGQwZTQsIDB4MjAxOSwgMHgxODA5LCAweDIwMjEsIDB4MDAwOSwgMHgxMTIwLAotCTB4MjAxOSwgMHgxODBjLCAweDIwMjEsIDB4MDAwYywgMHgwODBjLCAweDFkNTgsIDB4MjAwMSwgMHgwMWZmLAotCTB4MjAwNCwgMHhkMGZjLCAweDExODgsIDB4MjA2OSwgMHg0YjQwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLAorCTB4MjAxOSwgMHgxODBjLCAweDIwMjEsIDB4MDAwYywgMHgwODBjLCAweDFkNzUsIDB4MjAwMSwgMHgwMWZmLAorCTB4MjAwNCwgMHhkMGZjLCAweDExODgsIDB4MjA2OSwgMHg0YzQwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLAogCTB4ZDBlNCwgMHgyMDE5LCAweDE4MDksIDB4MjAyMSwgMHgwMDA5LCAweDExMjAsIDB4MjAxOSwgMHgxODBjLAotCTB4MjAyMSwgMHgwMDBjLCAweDA4MGMsIDB4MWQ1OCwgMHgwMGVlLCAweDIwMTEsIDB4MDAwMiwgMHgyMDY5LAotCTB4NGJjMCwgMHgyMDA5LCAweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweDY4MzcsIDB4MDAwMCwgMHg2ODBiLAorCTB4MjAyMSwgMHgwMDBjLCAweDA4MGMsIDB4MWQ3NSwgMHgwMGVlLCAweDIwMTEsIDB4MDAwMiwgMHgyMDY5LAorCTB4NGNjMCwgMHgyMDA5LCAweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweDY4MzcsIDB4MDAwMCwgMHg2ODBiLAogCTB4MDA0MCwgMHg3YmM4LCAweGEzODYsIDB4ZmVmZiwgMHgxMTI4LCAweDY4MTcsIDB4MDEwMCwgMHg2ODFmLAogCTB4MDA2NCwgMHgwMDIwLCAweDY4MTcsIDB4MDA2NCwgMHg2ODFmLCAweDAwMDIsIDB4YWRlOCwgMHgwMDEwLAogCTB4MWYwNCwgMHgxMTM1LCAweDgxMDksIDB4MWQzOCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLAotCTB4MTEyOCwgMHg4MjExLCAweDAxMTgsIDB4MjA2OSwgMHg2YmMwLCAweDA4ZDgsIDB4MDgwYywgMHgyMmNmLAotCTB4MDgwYywgMHg0MDE1LCAweDA4MGMsIDB4MWI2ZCwgMHgwODBjLCAweDQ1NTMsIDB4MjA5MSwgMHgyMjAwLAotCTB4MjA3OSwgMHg0NjAwLCAweDIwNzEsIDB4MDA1MCwgMHgyMDkxLCAweDI0MDAsIDB4MjA3OSwgMHg0NjAwLAotCTB4MjA3MSwgMHgwMDIwLCAweDIwOTEsIDB4MjYwMCwgMHgyMDc5LCAweDAyMDAsIDB4MjA3MSwgMHg0NjQwLAotCTB4MjA5MSwgMHgyODAwLCAweDIwNzksIDB4MDEwMCwgMHgyMDcxLCAweDQ2ODAsIDB4MjA5MSwgMHgyMDAwLAotCTB4MjA3OSwgMHg0NjAwLCAweDIwNzEsIDB4MDAxMCwgMHgzMjAwLCAweGEwODUsIDB4MzAzZCwgMHgyMDkwLAorCTB4MTEyOCwgMHg4MjExLCAweDAxMTgsIDB4MjA2OSwgMHg2Y2MwLCAweDA4ZDgsIDB4MDgwYywgMHgyMmY2LAorCTB4MDgwYywgMHg0MDNkLCAweDA4MGMsIDB4MWI4YywgMHgwODBjLCAweDQ2MTUsIDB4MjA5MSwgMHgyMjAwLAorCTB4MjA3OSwgMHg0NzAwLCAweDIwNzEsIDB4MDA1MCwgMHgyMDkxLCAweDI0MDAsIDB4MjA3OSwgMHg0NzAwLAorCTB4MjA3MSwgMHgwMDIwLCAweDIwOTEsIDB4MjYwMCwgMHgyMDc5LCAweDAyMDAsIDB4MjA3MSwgMHg0NzQwLAorCTB4MjA5MSwgMHgyODAwLCAweDIwNzksIDB4MDEwMCwgMHgyMDcxLCAweDQ3ODAsIDB4MjA5MSwgMHgyMDAwLAorCTB4MjA3OSwgMHg0NzAwLCAweDIwNzEsIDB4MDAxMCwgMHgzMjAwLCAweGEwODUsIDB4MzAzZCwgMHgyMDkwLAogCTB4MjA3MSwgMHgwMDEwLCAweDcwYzMsIDB4MDAwMCwgMHgxMDA0LCAweDExOGMsIDB4NzBjMCwgMHhhMDg2LAogCTB4MDAwMiwgMHgxMTEwLCAweDA4MGMsIDB4MTNiYSwgMHgyMDM5LCAweDAwMDAsIDB4MDgwYywgMHgxMmFiLAogCTB4NzhhYywgMHhhMDA1LCAweDExODAsIDB4MGUwNCwgMHgxMTlhLCAweDc4NmMsIDB4YTA2NSwgMHgwMTEwLAotCTB4MDgwYywgMHgyMDdhLCAweDA4MGMsIDB4MWUwOSwgMHgwZTA0LCAweDExYWYsIDB4Nzg2YywgMHhhMDY1LAotCTB4MDExMCwgMHgwODBjLCAweDIwN2EsIDB4MGUwNCwgMHgxMWFmLCAweDIwMDksIDB4NDY0NywgMHgyMDExLAotCTB4NDY4NywgMHgyMTA0LCAweDIyMGMsIDB4YTEwNSwgMHgwMTEwLCAweDA4MGMsIDB4MWM3YywgMHgyMDcxLAotCTB4NDY0MCwgMHg3MGEwLCAweGEwMDUsIDB4MDFlOCwgMHg3NDRjLCAweGE0ODUsIDB4MDAwMCwgMHgwMWM4LAorCTB4MDgwYywgMHgyMGExLCAweDA4MGMsIDB4MWUyNiwgMHgwZTA0LCAweDExYWYsIDB4Nzg2YywgMHhhMDY1LAorCTB4MDExMCwgMHgwODBjLCAweDIwYTEsIDB4MGUwNCwgMHgxMWFmLCAweDIwMDksIDB4NDc0NywgMHgyMDExLAorCTB4NDc4NywgMHgyMTA0LCAweDIyMGMsIDB4YTEwNSwgMHgwMTEwLCAweDA4MGMsIDB4MWM5YiwgMHgyMDcxLAorCTB4NDc0MCwgMHg3MGEwLCAweGEwMDUsIDB4MDFlOCwgMHg3NDRjLCAweGE0ODUsIDB4MDAwMCwgMHgwMWM4LAogCTB4MjA3OSwgMHgwMjAwLCAweDIwOTEsIDB4ODAwMCwgMHg3MmQwLCAweGEyOGMsIDB4MzAzZCwgMHgyMTkwLAotCTB4MDgwYywgMHgyNzIwLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDMwM2QsIDB4MGUwNCwgMHgxMWQxLAotCTB4MjA3OSwgMHg0NjAwLCAweDc4NmMsIDB4YTA2NSwgMHgwMTIwLCAweDIwNzEsIDB4MDAxMCwgMHgwODBjLAotCTB4MjA3YSwgMHgxZDA0LCAweDExZDksIDB4MjA3OSwgMHg0NjAwLCAweDIwNzEsIDB4MDAxMCwgMHgwODBjLAotCTB4NDM3MCwgMHgyMDcxLCAweDQ2ODAsIDB4NzBhMCwgMHhhMDA1LCAweDAxODgsIDB4NzA0YywgMHhhMDI1LAorCTB4MDgwYywgMHgyNzRjLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDMwM2QsIDB4MGUwNCwgMHgxMWQxLAorCTB4MjA3OSwgMHg0NzAwLCAweDc4NmMsIDB4YTA2NSwgMHgwMTIwLCAweDIwNzEsIDB4MDAxMCwgMHgwODBjLAorCTB4MjBhMSwgMHgxZDA0LCAweDExZDksIDB4MjA3OSwgMHg0NzAwLCAweDIwNzEsIDB4MDAxMCwgMHgwODBjLAorCTB4NDQyOSwgMHgyMDcxLCAweDQ3ODAsIDB4NzBhMCwgMHhhMDA1LCAweDAxODgsIDB4NzA0YywgMHhhMDI1LAogCTB4MDE3MCwgMHgyMDc5LCAweDAxMDAsIDB4MjA5MSwgMHg4MDAwLCAweDcyZDAsIDB4YTI4YywgMHgzMDNkLAotCTB4MjE5MCwgMHgwODBjLCAweDI3MjAsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4MzAzZCwgMHgyMDc5LAotCTB4NDYwMCwgMHgyMDcxLCAweDAwMTAsIDB4MGUwNCwgMHgxMWZhLCAweDc4NmMsIDB4YTA2NSwgMHgwMTEwLAotCTB4MDgwYywgMHgyMDdhLCAweDFkMDQsIDB4MTE4ZSwgMHgwODBjLCAweDQzNzAsIDB4MDgwNCwgMHgxMThlLAorCTB4MjE5MCwgMHgwODBjLCAweDI3NGMsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4MzAzZCwgMHgyMDc5LAorCTB4NDcwMCwgMHgyMDcxLCAweDAwMTAsIDB4MGUwNCwgMHgxMWZhLCAweDc4NmMsIDB4YTA2NSwgMHgwMTEwLAorCTB4MDgwYywgMHgyMGExLCAweDFkMDQsIDB4MTE4ZSwgMHgwODBjLCAweDQ0MjksIDB4MDgwNCwgMHgxMThlLAogCTB4M2MwMCwgMHhhMDg0LCAweDAwMDcsIDB4MDAwMiwgMHgxMjBjLCAweDEyMGMsIDB4MTIwZSwgMHgxMjBlLAotCTB4MTIxMywgMHgxMjEzLCAweDEyMTgsIDB4MTIxOCwgMHgwODBjLCAweDI1NGMsIDB4MjA5MSwgMHgyNDAwLAotCTB4MDgwYywgMHg0MGFkLCAweDAwMDUsIDB4MjA5MSwgMHgyMjAwLCAweDA4MGMsIDB4NDBhZCwgMHgwMDA1LAotCTB4MjA5MSwgMHgyMjAwLCAweDA4MGMsIDB4NDBhZCwgMHgyMDkxLCAweDI0MDAsIDB4MDgwYywgMHg0MGFkLAorCTB4MTIxMywgMHgxMjEzLCAweDEyMTgsIDB4MTIxOCwgMHgwODBjLCAweDI1NzUsIDB4MjA5MSwgMHgyNDAwLAorCTB4MDgwYywgMHg0MGQ1LCAweDAwMDUsIDB4MjA5MSwgMHgyMjAwLCAweDA4MGMsIDB4NDBkNSwgMHgwMDA1LAorCTB4MjA5MSwgMHgyMjAwLCAweDA4MGMsIDB4NDBkNSwgMHgyMDkxLCAweDI0MDAsIDB4MDgwYywgMHg0MGQ1LAogCTB4MDAwNSwgMHgxMjQxLCAweDEyNDEsIDB4MTI0MiwgMHgxMjQyLCAweDEyNGQsIDB4MTI0ZCwgMHgxMjRkLAogCTB4MTI0ZCwgMHgxMjU2LCAweDEyNTYsIDB4MTI2MSwgMHgxMjYxLCAweDEyNGQsIDB4MTI0ZCwgMHgxMjRkLAogCTB4MTI0ZCwgMHgxMjcwLCAweDEyNzAsIDB4MTI3MCwgMHgxMjcwLCAweDEyNzAsIDB4MTI3MCwgMHgxMjcwLAogCTB4MTI3MCwgMHgxMjcwLCAweDEyNzAsIDB4MTI3MCwgMHgxMjcwLCAweDEyNzAsIDB4MTI3MCwgMHgxMjcwLAogCTB4MTI3MCwgMHgwY2Y4LCAweDAwMDYsIDB4MDEwNiwgMHgwMTI2LCAweDIwOTEsIDB4MjgwMCwgMHgwODBjLAotCTB4MjU2OSwgMHgwMTJlLCAweDAxMGUsIDB4MDAwZSwgMHgwMDBkLCAweDAwMDYsIDB4MDEwNiwgMHgwMTI2LAorCTB4MjU5MiwgMHgwMTJlLCAweDAxMGUsIDB4MDAwZSwgMHgwMDBkLCAweDAwMDYsIDB4MDEwNiwgMHgwMTI2LAogCTB4MDgwYywgMHgxMjAwLCAweDAxMmUsIDB4MDEwZSwgMHgwMDBlLCAweDAwMGQsIDB4MDAwNiwgMHgwMTA2LAotCTB4MDEyNiwgMHgyMDkxLCAweDI2MDAsIDB4MDgwYywgMHgyNTY5LCAweDAxMmUsIDB4MDEwZSwgMHgwMDBlLAotCTB4MDAwZCwgMHgwMDA2LCAweDAxMDYsIDB4MDEyNiwgMHgyMDkxLCAweDI2MDAsIDB4MDgwYywgMHgyNTY5LAotCTB4MjA5MSwgMHgyODAwLCAweDA4MGMsIDB4MjU2OSwgMHgwMTJlLCAweDAxMGUsIDB4MDAwZSwgMHgwMDBkLAotCTB4MDAwNiwgMHgwMTA2LCAweDAxMjYsIDB4MDBkNiwgMHgwMGU2LCAweDAwZjYsIDB4MjA3OSwgMHg0NjAwLAotCTB4MjA3MSwgMHgwMjAwLCAweDIwNjksIDB4NDY0MCwgMHgzZDAwLCAweGQwOGMsIDB4MDEzMCwgMHg3MGVjLAotCTB4YTA4NCwgMHgxYzAwLCAweDc4ZTIsIDB4MDgwYywgMHg0NTlhLCAweDNkMDAsIDB4ZDA4NCwgMHgwMTUwLAotCTB4MjA2OSwgMHg0NjgwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGU2LAotCTB4MDgwYywgMHg0NTlhLCAweDA4MGMsIDB4MjRmZCwgMHgwMGZlLCAweDAwZWUsIDB4MDBkZSwgMHgwMTJlLAorCTB4MDEyNiwgMHgyMDkxLCAweDI2MDAsIDB4MDgwYywgMHgyNTkyLCAweDAxMmUsIDB4MDEwZSwgMHgwMDBlLAorCTB4MDAwZCwgMHgwMDA2LCAweDAxMDYsIDB4MDEyNiwgMHgyMDkxLCAweDI2MDAsIDB4MDgwYywgMHgyNTkyLAorCTB4MjA5MSwgMHgyODAwLCAweDA4MGMsIDB4MjU5MiwgMHgwMTJlLCAweDAxMGUsIDB4MDAwZSwgMHgwMDBkLAorCTB4MDAwNiwgMHgwMTA2LCAweDAxMjYsIDB4MDBkNiwgMHgwMGU2LCAweDAwZjYsIDB4MjA3OSwgMHg0NzAwLAorCTB4MjA3MSwgMHgwMjAwLCAweDIwNjksIDB4NDc0MCwgMHgzZDAwLCAweGQwOGMsIDB4MDEzMCwgMHg3MGVjLAorCTB4YTA4NCwgMHgxYzAwLCAweDc4ZTIsIDB4MDgwYywgMHg0NjVjLCAweDNkMDAsIDB4ZDA4NCwgMHgwMTUwLAorCTB4MjA2OSwgMHg0NzgwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGU2LAorCTB4MDgwYywgMHg0NjVjLCAweDA4MGMsIDB4MjUyNiwgMHgwMGZlLCAweDAwZWUsIDB4MDBkZSwgMHgwMTJlLAogCTB4MDEwZSwgMHgwMDBlLCAweDAwMGQsIDB4NzAwOCwgMHg4MDBiLCAweDEyNDAsIDB4NzAwNywgMHgwMDAyLAogCTB4YTA4YywgMHgwMWUwLCAweDExMjAsIDB4ZDA5YywgMHgwMTA4LCAweDA4ODcsIDB4MDg5NywgMHg3MGMzLAogCTB4NDAwMiwgMHgwODA0LCAweDEzYmQsIDB4MGUwNCwgMHgxMzFlLCAweDIwNjEsIDB4MDAwMCwgMHg2MDE4LAogCTB4ZDA4NCwgMHgxOTA0LCAweDEzMWUsIDB4NzgyOCwgMHhhMDA1LCAweDExMjAsIDB4MDAwNCwgMHgxMzFmLAotCTB4MDgwNCwgMHgxMzFlLCAweGQwZmMsIDB4MDEzMCwgMHgwMDA2LCAweDA4MGMsIDB4MWIwYSwgMHgwMDBlLAotCTB4MDE1MCwgMHgwMDI4LCAweDAwMDYsIDB4MDgwYywgMHgxYWZmLCAweDAwMGUsIDB4MDEyMCwgMHgyMDAxLAotCTB4NDAwNywgMHgwODA0LCAweDEzYmMsIDB4NzkxMCwgMHhkMGZjLCAweDExMjgsIDB4MjA2MSwgMHg0NjQwLAotCTB4YzE5YywgMHhjN2ZjLCAweDAwMjAsIDB4MjA2MSwgMHg0NjgwLCAweGMxOWQsIDB4YzdmZCwgMHg2MDYwLAorCTB4MDgwNCwgMHgxMzFlLCAweGQwZmMsIDB4MDEzMCwgMHgwMDA2LCAweDA4MGMsIDB4MWIyOSwgMHgwMDBlLAorCTB4MDE1MCwgMHgwMDI4LCAweDAwMDYsIDB4MDgwYywgMHgxYjFlLCAweDAwMGUsIDB4MDEyMCwgMHgyMDAxLAorCTB4NDAwNywgMHgwODA0LCAweDEzYmMsIDB4NzkxMCwgMHhkMGZjLCAweDExMjgsIDB4MjA2MSwgMHg0NzQwLAorCTB4YzE5YywgMHhjN2ZjLCAweDAwMjAsIDB4MjA2MSwgMHg0NzgwLCAweGMxOWQsIDB4YzdmZCwgMHg2MDYwLAogCTB4YTAwNSwgMHgxOTA0LCAweDEzMWUsIDB4NzkxMiwgMHg2MDdlLCAweDc4MjgsIDB4YzBmYywgMHhhMDg2LAotCTB4MDAxOCwgMHgxMTIwLCAweDAwYzYsIDB4MDgwYywgMHgxOTE2LCAweDAwY2UsIDB4NzgyYiwgMHgwMDAwLAotCTB4NjA3OCwgMHhhMDY1LCAweDAxZTAsIDB4MDBjNiwgMHg2MDljLCAweDA4MGMsIDB4MWJkNCwgMHgwMGNlLAotCTB4NjA5ZiwgMHgwMDAwLCAweDA4MGMsIDB4MWE0MSwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLAorCTB4MDAxOCwgMHgxMTIwLCAweDAwYzYsIDB4MDgwYywgMHgxOTI2LCAweDAwY2UsIDB4NzgyYiwgMHgwMDAwLAorCTB4NjA3OCwgMHhhMDY1LCAweDAxZTAsIDB4MDBjNiwgMHg2MDljLCAweDA4MGMsIDB4MWJmMywgMHgwMGNlLAorCTB4NjA5ZiwgMHgwMDAwLCAweDA4MGMsIDB4MWE2MCwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLAogCTB4NzgxMCwgMHgwMDA2LCAweDg0ZmYsIDB4MTExMCwgMHg4NWZmLCAweDAxMTAsIDB4YzBjNSwgMHg3ODEyLAotCTB4MDgwYywgMHgxYjE1LCAweDAwMGUsIDB4NzgxMiwgMHgxMTk4LCAweDA4MGMsIDB4MWI2MCwgMHg3ODEwLAotCTB4ZDA5YywgMHgxMTE4LCAweDIwNjEsIDB4NDY0MCwgMHgwMDIwLCAweDIwNjEsIDB4NDY4MCwgMHhjMDljLAorCTB4MDgwYywgMHgxYjM0LCAweDAwMGUsIDB4NzgxMiwgMHgxMTk4LCAweDA4MGMsIDB4MWI3ZiwgMHg3ODEwLAorCTB4ZDA5YywgMHgxMTE4LCAweDIwNjEsIDB4NDc0MCwgMHgwMDIwLCAweDIwNjEsIDB4NDc4MCwgMHhjMDljLAogCTB4NzgxMiwgMHg2MDdiLCAweDAwMDAsIDB4NjBkMCwgMHhkMGM0LCAweDAxMzAsIDB4YzBjNCwgMHg2MGQyLAogCTB4MjAwMSwgMHg0MDA1LCAweDA4MDQsIDB4MTNiYywgMHgwODA0LCAweDEzYmEsIDB4MDAwNSwgMHhhMDA2LAogCTB4NzBjMiwgMHg3MGM2LCAweDcwY2EsIDB4NzBjZSwgMHg3MGRhLCAweDcwYzAsIDB4YTAzZCwgMHhhMDhhLAogCTB4MDA0MCwgMHgxYTA0LCAweDEzNmMsIDB4MDAwMiwgMHgxM2JhLCAweDE0MDgsIDB4MTNkNiwgMHgxNDNjLAotCTB4MTQ3MCwgMHgxNDcwLCAweDEzY2UsIDB4MWE1OSwgMHgxNDdhLCAweDEzYzgsIDB4MTNkYSwgMHgxM2RiLAotCTB4MTNkYywgMHgxM2RkLCAweDFhNWQsIDB4MTNjOCwgMHgxNDg3LCAweDE0ZGIsIDB4MTkzMSwgMHgxYTUzLAotCTB4MTNkZSwgMHgxN2JhLCAweDE3ZjAsIDB4MTgyMiwgMHgxODY4LCAweDE3NzcsIDB4MTc4NCwgMHgxNzk3LAotCTB4MTdhOSwgMHgxNWIwLCAweDEzYzgsIDB4MTUwZCwgMHgxNTE4LCAweDE1MjYsIDB4MTUzNCwgMHgxNTRiLAotCTB4MTU1OSwgMHgxNTVjLCAweDE1NmEsIDB4MTU3OCwgMHgxNTgyLCAweDE1OTYsIDB4MTVhMiwgMHgxM2M4LAotCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTViZCwgMHgxNWNlLCAweDE1ZTgsIDB4MTYxYywgMHgxNjQ1LAotCTB4MTY1NywgMHgxNjVhLCAweDE2ODUsIDB4MTZiZSwgMHgxNmQwLCAweDE3NDUsIDB4MTc1NSwgMHgxM2M4LAotCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTc2NywgMHgyMTAwLCAweGEwOGEsIDB4MDA0MCwgMHgxYTA0LAotCTB4MTNjOCwgMHgwMDAyLCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxYTdmLAotCTB4MWE4NSwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxYTg5LCAweDFhYzksIDB4MTNjOCwgMHgxM2M4LAotCTB4MTNjOCwgMHgxM2M4LCAweDE0MDMsIDB4MTQ2YiwgMHgxNDgyLCAweDE0ZDYsIDB4MTkyYywgMHgxM2M4LAotCTB4MTNjOCwgMHgxOGZiLCAweDEzYzgsIDB4MWFjZCwgMHgxYTcxLCAweDFhN2IsIDB4MTNjOCwgMHgxM2M4LAorCTB4MTQ3MCwgMHgxNDcwLCAweDEzY2UsIDB4MWE3OCwgMHgxNDdhLCAweDEzYzgsIDB4MTNkYSwgMHgxM2RiLAorCTB4MTNkYywgMHgxM2RkLCAweDFhN2MsIDB4MTNjOCwgMHgxNDg3LCAweDE0ZGIsIDB4MTk0MSwgMHgxYTcyLAorCTB4MTNkZSwgMHgxN2M4LCAweDE3ZmUsIDB4MTgzMCwgMHgxODc2LCAweDE3ODUsIDB4MTc5MiwgMHgxN2E1LAorCTB4MTdiNywgMHgxNWJmLCAweDEzYzgsIDB4MTUwZCwgMHgxNTE4LCAweDE1MjYsIDB4MTUzNCwgMHgxNTRiLAorCTB4MTU1OSwgMHgxNTVjLCAweDE1NmUsIDB4MTU3YywgMHgxNTg2LCAweDE1YTUsIDB4MTViMSwgMHgxM2M4LAorCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTVjYywgMHgxNWRkLCAweDE1ZjcsIDB4MTYyYiwgMHgxNjU0LAorCTB4MTY2NiwgMHgxNjY5LCAweDE2OTMsIDB4MTZjYywgMHgxNmRlLCAweDE3NTMsIDB4MTc2MywgMHgxM2M4LAorCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTc3NSwgMHgyMTAwLCAweGEwOGEsIDB4MDA0MCwgMHgxYTA0LAorCTB4MTNjOCwgMHgwMDAyLCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxYTllLAorCTB4MWFhNCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxYWE4LCAweDFhZTgsIDB4MTNjOCwgMHgxM2M4LAorCTB4MTNjOCwgMHgxM2M4LCAweDE0MDMsIDB4MTQ2YiwgMHgxNDgyLCAweDE0ZDYsIDB4MTkzYywgMHgxM2M4LAorCTB4MTNjOCwgMHgxOTBiLCAweDEzYzgsIDB4MWFlYywgMHgxYTkwLCAweDFhOWEsIDB4MTNjOCwgMHgxM2M4LAogCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LAogCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LAogCTB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LCAweDEzYzgsIDB4MTNjOCwgMHgxM2M4LApAQCAtMTkxLDcgKzE5MSw3IEBACiAJMHgwMDAxLCAweDcwMDgsIDB4ZDBmYywgMHgwZGU4LCAweGEwODQsIDB4MDFlMCwgMHgwZDQ4LCAweDcwYzMsCiAJMHg0MDAyLCAweDA4MDQsIDB4MTNiZCwgMHg3NWQ4LCAweDc0ZGMsIDB4NzVkYSwgMHg3NGRlLCAweDA4NzgsCiAJMHg3MWM0LCAweDcwYzgsIDB4MjExNCwgMHhhNzllLCAweDAwMDQsIDB4MTEwOCwgMHgyMDBhLCAweDcyY2EsCi0JMHgwODA0LCAweDEzYjksIDB4NzBjNywgMHgwMDBhLCAweDcwY2IsIDB4MDAwNCwgMHg3MGNmLCAweDAwMjAsCisJMHgwODA0LCAweDEzYjksIDB4NzBjNywgMHgwMDBhLCAweDcwY2IsIDB4MDAwNCwgMHg3MGNmLCAweDAwMmEsCiAJMHgwODA0LCAweDEzYmEsIDB4NzVkOCwgMHg3NmRjLCAweDc1ZGEsIDB4NzZkZSwgMHgwMDE4LCAweDIwMjksCiAJMHgwMDAwLCAweDI1MzAsIDB4NzBjNCwgMHg3MmM4LCAweDczY2MsIDB4NzRkMCwgMHg3MGM2LCAweDcyY2EsCiAJMHg3M2NlLCAweDc0ZDIsIDB4YTAwNSwgMHgwNWU4LCAweGE0MGEsIDB4MDEwOCwgMHgxMjQwLCAweDgwMDEsCkBAIC0yMTEsMTI4MSArMjExLDEyODYgQEAKIAkweGMyYzUsIDB4N2ExMiwgMHg3Yzk2LCAweDc4YWMsIDB4YTA4NCwgMHhmY2ZmLCAweDc4YWUsIDB4MDAxOCwKIAkweDc4YWMsIDB4YzBjNSwgMHg3OGFlLCAweDA4MDQsIDB4MTNiYSwgMHgyMDA5LCAweDAwMDAsIDB4Nzg2YywKIAkweGEwNjUsIDB4MDExOCwgMHg4MTA4LCAweDYwMDAsIDB4MGNkOCwgMHg3YWM0LCAweDA4MDQsIDB4MTNiOCwKLQkweDIwMDksIDB4NDY0OCwgMHgyMTBjLCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTkwNCwKLQkweDEzYjksIDB4MjAxMSwgMHg0Njg4LCAweDIyMTQsIDB4MDgwNCwgMHgxM2I4LCAweDIwMDksIDB4NDY0OSwKKwkweDIwMDksIDB4NDc0OCwgMHgyMTBjLCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTkwNCwKKwkweDEzYjksIDB4MjAxMSwgMHg0Nzg4LCAweDIyMTQsIDB4MDgwNCwgMHgxM2I4LCAweDIwMDksIDB4NDc0OSwKIAkweDIxMGMsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjAxMSwKLQkweDQ2ODksIDB4MjIxNCwgMHgwODA0LCAweDEzYjgsIDB4MjA2MSwgMHg0NjQwLCAweDYxMjgsIDB4NjIyYywKKwkweDQ3ODksIDB4MjIxNCwgMHgwODA0LCAweDEzYjgsIDB4MjA2MSwgMHg0NzQwLCAweDYxMjgsIDB4NjIyYywKIAkweDgyMTQsIDB4ODIxNCwgMHg4MjE0LCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTE0OCwKLQkweDIwNjEsIDB4NDY4MCwgMHg2MzI4LCAweDczZGEsIDB4NjMyYywgMHg4MzFjLCAweDgzMWMsIDB4ODMxYywKLQkweDczZGUsIDB4MDgwNCwgMHgxM2I4LCAweDIwMDksIDB4NDY0YywgMHgyMTBjLCAweDIwMDEsIDB4MDFmZiwKLQkweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjAxMSwgMHg0NjhjLCAweDIyMTQsIDB4MDgwNCwKLQkweDEzYjgsIDB4NzkxOCwgMHgwODA0LCAweDEzYjksIDB4MjAwOSwgMHgwMjAyLCAweDIxMGMsIDB4MjAwMSwKLQkweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDE5MDQsIDB4MTNiOSwgMHgyMDExLCAweDAxMDIsIDB4MjIxNCwKLQkweDA4MDQsIDB4MTNiOCwgMHgyMDA5LCAweDQ2NGQsIDB4MjEwYywgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwKLQkweGQwZmMsIDB4MTkwNCwgMHgxM2I5LCAweDIwMTEsIDB4NDY4ZCwgMHgyMjE0LCAweDA4MDQsIDB4MTNiOCwKLQkweDc5MjAsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4N2EyNCwKLQkweDA4MDQsIDB4MTNiOCwgMHgyMDExLCAweDRiNDAsIDB4NzFjNCwgMHhkMWZjLCAweDExMTAsIDB4MjAxMSwKLQkweDRhYzAsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YTI2OCwKLQkweDZhMDAsIDB4NmIwOCwgMHg2YzFjLCAweDc0ZGEsIDB4MDgwNCwgMHgxM2I3LCAweDc3YzQsIDB4MDgwYywKLQkweDFiN2IsIDB4MjA5MSwgMHg4MDAwLCAweDZiMWMsIDB4NmExNCwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwKLQkweDA4MDQsIDB4MTNiNywgMHgyMDYxLCAweDQ2NDAsIDB4NjExOCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwKLQkweGQwZmMsIDB4MTkwNCwgMHgxM2I5LCAweDIwNjEsIDB4NDY4MCwgMHg2MjE4LCAweDA4MDQsIDB4MTNiOCwKLQkweDc3YzQsIDB4MDgwYywgMHgxYjdiLCAweDIwOTEsIDB4ODAwMCwgMHg2OTA4LCAweDZhMTgsIDB4NmIxMCwKLQkweDc3ZGEsIDB4MjA5MSwgMHg4MDAxLCAweDA4MDQsIDB4MTNiNywgMHg3MWM0LCAweDIxMTAsIDB4YTI5NCwKLQkweDAwMGYsIDB4YTI4MiwgMHgwMDEwLCAweDFhMDQsIDB4MTNiMywgMHgwODBjLCAweDIzOGIsIDB4YTM4NCwKLQkweDQwMDAsIDB4MDExMCwgMHhhMjk1LCAweDAwMjAsIDB4MDgwNCwgMHgxM2I3LCAweDcxYzQsIDB4MjEwMCwKLQkweGMwYmMsIDB4YTA4MiwgMHgwMDEwLCAweDFhMDQsIDB4MTNiMywgMHhkMWJjLCAweDExMjAsIDB4MjAxMSwKLQkweDQ2NDgsIDB4MjIwNCwgMHgwMDIwLCAweDIwMTEsIDB4NDY4OCwgMHgyMjA0LCAweGMwYmQsIDB4MDAwNiwKLQkweDIxMDAsIDB4YzBiYywgMHgyMDEyLCAweDA4MGMsIDB4MjMzMSwgMHgwMDFlLCAweDA4MDQsIDB4MTNiOSwKLQkweDcxYzQsIDB4MjAyMSwgMHg0NjQ5LCAweDI0MDQsIDB4NzBjNiwgMHgyMDE5LCAweDAwMDAsIDB4MDAzMCwKLQkweDcxYzgsIDB4MjAyMSwgMHg0Njg5LCAweDI0MDQsIDB4NzBjYSwgMHhjM2ZkLCAweDIwMTEsIDB4MTYxNCwKLQkweDIwYTksIDB4MDAwOCwgMHgyMjA0LCAweGExMDYsIDB4MDEzOCwgMHg4MjEwLCAweDFmMDQsIDB4MTVmYSwKLQkweDcxYzQsIDB4NzJjOCwgMHgwODA0LCAweDEzYjIsIDB4YTI5MiwgMHgxNjE0LCAweDAwMjYsIDB4MjEyMiwKLQkweDAwMWUsIDB4MDgwYywgMHgyMzQzLCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTExMCwKLQkweGQzZmMsIDB4MDlmMCwgMHgwODA0LCAweDEzYmEsIDB4MDNlOCwgMHgwMGZhLCAweDAxZjQsIDB4MDJlZSwKLQkweDAwMDQsIDB4MDAwMSwgMHgwMDAyLCAweDAwMDMsIDB4MjA2MSwgMHg0NjQwLCAweDYxMjgsIDB4NjIyYywKLQkweDgyMTQsIDB4ODIxNCwgMHg4MjE0LCAweDcwYzQsIDB4NjAyYSwgMHg3MGM4LCAweDgwMDMsIDB4ODAwMywKLQkweDgwMDMsIDB4NjAyZSwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDExYTAsIDB4MDAyNiwKLQkweDAwMTYsIDB4MjA2MSwgMHg0NjgwLCAweDYxMjgsIDB4NjIyYywgMHg4MjE0LCAweDgyMTQsIDB4ODIxNCwKLQkweDcwZDgsIDB4NjAyYSwgMHg3MGRjLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweDYwMmUsIDB4NzFkYSwKLQkweDcyZGUsIDB4MDAxZSwgMHgwMDJlLCAweDA4MDQsIDB4MTNiOCwgMHgyMDYxLCAweDQ2NDAsIDB4NjEzMCwKLQkweDcwYzQsIDB4NjAzMiwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDE5MDQsIDB4MTNiOSwKLQkweDIwNjEsIDB4NDY4MCwgMHg2MjMwLCAweDcwYzgsIDB4NjAzMiwgMHgwODA0LCAweDEzYjgsIDB4NzkxOCwKLQkweDA4MDQsIDB4MTNiOSwgMHg3MWM0LCAweGExODQsIDB4ZjBjZiwgMHgwMTQ4LCAweDIwMDEsIDB4MDFmZiwKLQkweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjMsIDB4NzJjOCwgMHgwODA0LCAweDEzYjIsIDB4MDAwNiwKLQkweDIwMTksIDB4MDAwMCwgMHgwODBjLCAweDIzN2YsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywKLQkweDAxMTgsIDB4MDAxZSwgMHgwODA0LCAweDEzYjksIDB4NzFjOCwgMHhhMTg0LCAweGYwY2YsIDB4MDEyOCwKLQkweDAwMDYsIDB4MjExMCwgMHg3MWM0LCAweDA4MDQsIDB4MTNiMiwgMHgwMDA2LCAweGMzZmQsIDB4MDgwYywKLQkweDIzN2YsIDB4MDAyZSwgMHgwMDFlLCAweDA4MDQsIDB4MTNiOCwgMHg3MWM0LCAweGExODIsIDB4MDAxMCwKLQkweDAyNDgsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjMsIDB4NzJjOCwKLQkweDA4MDQsIDB4MTNiMiwgMHgyMDExLCAweDQ2NGQsIDB4MjIwNCwgMHgwMDA2LCAweDgxMDQsIDB4MTIwOCwKLQkweDgxMDgsIDB4MjExMiwgMHgyMDE5LCAweDAwMDAsIDB4MDgwYywgMHgyMzZjLCAweDIwMDEsIDB4MDFmZiwKLQkweDIwMDQsIDB4ZDBmYywgMHgwMTE4LCAweDAwMWUsIDB4MDgwNCwgMHgxM2I5LCAweDcxYzgsIDB4YTE4MiwKLQkweDAwMTAsIDB4MDIyOCwgMHgwMDA2LCAweDIxMTAsIDB4NzFjNCwgMHgwODA0LCAweDEzYjIsIDB4MjAxMSwKLQkweDQ2OGQsIDB4MjIwNCwgMHgwMDA2LCAweDgxMDQsIDB4MTIwOCwgMHg4MTA4LCAweDIxMTIsIDB4YzNmZCwKLQkweDA4MGMsIDB4MjM2YywgMHgwMDJlLCAweDAwMWUsIDB4MDgwNCwgMHgxM2I4LCAweDcxYzQsIDB4NzJjOCwKLQkweGExODQsIDB4ZmZmZCwgMHgxOTA0LCAweDEzYjIsIDB4YTI4NCwgMHhmZmZkLCAweDE5MDQsIDB4MTNiMiwKLQkweDIxMDAsIDB4NzkyMCwgMHg3ODIyLCAweDIyMDAsIDB4N2EyNCwgMHg3ODI2LCAweDA4MDQsIDB4MTNiOCwKLQkweDIwMTEsIDB4NGI0MCwgMHg3MWM0LCAweGQxZmMsIDB4MTExMCwgMHgyMDExLCAweDRhYzAsIDB4ODEwNywKLQkweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMjY4LCAweDcyYzgsIDB4NzNjYywKLQkweDc0ZDgsIDB4NzFjNiwgMHg2ODAwLCAweDcwY2EsIDB4NzNjZSwgMHg3NGRhLCAweDIwOTEsIDB4ODAwMCwKLQkweDZhMDIsIDB4ZDJhYywgMHgxMTE4LCAweDIwMjEsIDB4MDAwMCwgMHgwMDkwLCAweGE0ODQsIDB4MDBmZiwKLQkweGEwODIsIDB4MDAwMiwgMHgxYTA0LCAweDE3NDEsIDB4ODQzZiwgMHhhN2JjLCAweDAwZmYsIDB4MDE0MCwKLQkweGE3ODYsIDB4MDAwMiwgMHgxOTA0LCAweDE3NDEsIDB4YTQ4NCwgMHgwMGZmLCAweDA5MDQsIDB4MTc0MSwKLQkweDIwNjEsIDB4MDIwMCwgMHhkMWZjLCAweDAxMTAsIDB4MjA2MSwgMHgwMTAwLCAweDIwMjksIDB4MDAwOSwKLQkweDIwMzEsIDB4MDA2MiwgMHg4NDNmLCAweGE3YmMsIDB4MDBmZiwgMHgwMTMwLCAweDgzMDcsIDB4YTA4NCwKLQkweDAwZmYsIDB4MTExMCwgMHhhNzNkLCAweDExMzgsIDB4MjA0MSwgMHgwMDE5LCAweGEzODQsIDB4MDBmZiwKLQkweGEwODIsIDB4MDAxYSwgMHgwMjEwLCAweGE0YTQsIDB4MDBmZiwgMHg4MzA3LCAweGEwODQsIDB4MDBmZiwKLQkweDAxODgsIDB4YTg0MiwgMHgwMmYwLCAweGEwODYsIDB4MDAxMCwgMHgxMTIwLCAweGEzOWMsIDB4MDBmZiwKLQkweGEzOWQsIDB4MGYwMCwgMHhhM2JjLCAweDAwZmYsIDB4MjUwMCwgMHhhNzAyLCAweDAyOTAsIDB4MjYwMCwKLQkweGE3MDIsIDB4MTI3OCwgMHgyMDM5LCAweDAwM2EsIDB4NjgwNCwgMHhhNzA1LCAweDY4MDYsIDB4NmIwYSwKLQkweDZiMGMsIDB4NzNjZSwgMHg2ODFjLCAweDcwZGEsIDB4NmMxZSwgMHgyMDkxLCAweDgwMDEsIDB4MDgwNCwKLQkweDEzYmEsIDB4MjA5MSwgMHg4MDAxLCAweDA4MDQsIDB4MTNiNCwgMHg3N2M0LCAweDA4MGMsIDB4MWI3YiwKLQkweDIwOTEsIDB4ODAwMCwgMHg2YTE0LCAweDZiMWMsIDB4MjA5MSwgMHg4MDAxLCAweDcwYzgsIDB4NjgxNiwKLQkweDcwY2MsIDB4NjgxZSwgMHgyNzA4LCAweDA4MDQsIDB4MTNiNywgMHg3MGM0LCAweDIwNjEsIDB4NDY0MCwKLQkweDYxMTgsIDB4NjAxYSwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDE5MDQsIDB4MTNiOSwKLQkweDcwYzgsIDB4MjA2MSwgMHg0NjgwLCAweDYyMTgsIDB4NjAxYSwgMHgwODA0LCAweDEzYjgsIDB4NzFjNCwKLQkweDcyYzgsIDB4NzNjYywgMHhhMTgyLCAweDAwMTAsIDB4MWEwNCwgMHgxM2IzLCAweDA4MGMsIDB4MjNhZiwKLQkweGEzODQsIDB4NDAwMCwgMHgwMTEwLCAweGEyOTUsIDB4MDAyMCwgMHgwODA0LCAweDEzYjcsIDB4NzdjNCwKLQkweDA4MGMsIDB4MWI3YiwgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwgMHhjMjhkLCAweDZhMGEsIDB4MjA5MSwKLQkweDgwMDEsIDB4MjcwOCwgMHgwODA0LCAweDEzYjgsIDB4NzdjNCwgMHgwODBjLCAweDFiN2IsIDB4MjA5MSwKLQkweDgwMDAsIDB4NmEwOCwgMHhhMjk0LCAweGZmZjksIDB4NmEwYSwgMHg2ODA0LCAweGEwMDUsIDB4MDExMCwKLQkweDA4MGMsIDB4MjJhZSwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwgMHgwODA0LCAweDEzYjgsIDB4NzdjNCwKLQkweDA4MGMsIDB4MWI3YiwgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwgMHhjMjk1LCAweDZhMGEsIDB4NjgwNCwKLQkweGEwMDUsIDB4MDExMCwgMHgwODBjLCAweDIyYWUsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDgwNCwKLQkweDEzYjgsIDB4NzdjNCwgMHgyMDQxLCAweDAwMDEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAyMCwKLQkweDIwOTEsIDB4ODAwMCwgMHgwODBjLCAweDFiOTMsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4NmEwOCwKLQkweDA4MDQsIDB4MTNiOCwgMHg3N2M0LCAweGQ3ZmMsIDB4MDEyOCwgMHgwODBjLCAweDFiMGEsIDB4MDEzOCwKLQkweDA4MDQsIDB4MTNiYywgMHgwODBjLCAweDFhZmYsIDB4MDExMCwgMHgwODA0LCAweDEzYmMsIDB4NzNjOCwKLQkweDcyY2MsIDB4NzdjNiwgMHg3M2NhLCAweDcyY2UsIDB4MDgwYywgMHgxYzBiLCAweDExZTgsIDB4NjgxOCwKLQkweGEwMDUsIDB4MDFhMCwgMHgyNzA4LCAweDAwNzYsIDB4MDgwYywgMHgyM2NlLCAweDAwN2UsIDB4MTE3MCwKLQkweDIwMDEsIDB4MDAxNSwgMHhkN2ZjLCAweDExMTgsIDB4MjA2MSwgMHg0NjQwLCAweDAwMTgsIDB4YzBmZCwKLQkweDIwNjEsIDB4NDY4MCwgMHg3ODJhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDIwOTEsIDB4ODAwMSwKLQkweDIwMDEsIDB4NDAwNSwgMHgwODA0LCAweDEzYmMsIDB4MjA5MSwgMHg4MDAxLCAweDA4MDQsIDB4MTNiYSwKLQkweDc3YzQsIDB4ZDdmYywgMHgwMTI4LCAweDA4MGMsIDB4MWIwYSwgMHgwMTM4LCAweDA4MDQsIDB4MTNiYywKLQkweDA4MGMsIDB4MWFmZiwgMHgwMTEwLCAweDA4MDQsIDB4MTNiYywgMHg3N2M2LCAweDIwNDEsIDB4MDAyMSwKLQkweDIwNDksIDB4MDAwNSwgMHgyMDUxLCAweDAwMjAsIDB4MjA5MSwgMHg4MDAwLCAweDA4MGMsIDB4MWI5MywKLQkweDIwMDksIDB4MDAxNiwgMHhkN2ZjLCAweDExMTgsIDB4MjA2MSwgMHg0NjQwLCAweDAwMTgsIDB4MjA2MSwKLQkweDQ2ODAsIDB4YzFmZCwgMHg2MDYzLCAweDAwMDMsIDB4NjA3YiwgMHgwMDAwLCAweDY3NzIsIDB4NjA3ZiwKLQkweDAwMGYsIDB4NzkyYSwgMHg2MWQwLCAweGMxYzQsIDB4NjFkMiwgMHgwODBjLCAweDIyYWUsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDAwNSwgMHg3N2M4LCAweDc3Y2EsIDB4NzdjNCwgMHg3N2M2LCAweGQ3ZmMsIDB4MDEyOCwKLQkweDA4MGMsIDB4MWIwYSwgMHgwMTM4LCAweDA4MDQsIDB4MTNiYywgMHgwODBjLCAweDFhZmYsIDB4MDExMCwKLQkweDA4MDQsIDB4MTNiYywgMHhhN2JjLCAweGZmMDAsIDB4MjA5MSwgMHg4MDAwLCAweDIwMDksIDB4MDAxNywKLQkweGQ3ZmMsIDB4MTExOCwgMHgyMDYxLCAweDQ2NDAsIDB4MDAxOCwgMHgyMDYxLCAweDQ2ODAsIDB4YzFmZCwKLQkweDYwN2IsIDB4MDAwMCwgMHg2MDYzLCAweDAwMDIsIDB4Njc3MiwgMHg2MDdmLCAweDAwMGYsIDB4NzkyYSwKLQkweDYxZDAsIDB4YzFjNCwgMHg2MWQyLCAweDA4MGMsIDB4MjJhZSwgMHgyMDkxLCAweDgwMDEsIDB4MjA0MSwKLQkweDAwMjEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAzMCwgMHgyMDkxLCAweDgwMDAsIDB4NzBjOCwKLQkweGEwMDUsIDB4MDExOCwgMHg2MGQwLCAweGMwZmQsIDB4NjBkMiwgMHgwODBjLCAweDFiOTMsIDB4NzBjOCwKLQkweDY4MzYsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsIDB4MWRjMCwgMHgyMDkxLCAweDgwMDEsIDB4MDAwNSwKLQkweDIwMTksIDB4MDAwMCwgMHg3MmM4LCAweGQyODQsIDB4MDEyOCwgMHgwODBjLCAweDFiMGEsIDB4MDEzOCwKLQkweDA4MDQsIDB4MTNiYywgMHgwODBjLCAweDFhZmYsIDB4MDExMCwgMHgwODA0LCAweDEzYmMsIDB4NzJjOCwKLQkweDcyY2EsIDB4NzhhYywgMHhhMDg0LCAweDAwMDMsIDB4MTUwOCwgMHgyMDM5LCAweDAwMDAsIDB4ZDI4NCwKLQkweDAxMDgsIDB4YzdmZCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA0LCAweDIwNTEsIDB4MDAwOCwKLQkweDA4MGMsIDB4MWI3YiwgMHgyMDkxLCAweDgwMDAsIDB4NjgwOCwgMHhjMGQ0LCAweGE4MGQsIDB4NjkwYSwKLQkweDIwOTEsIDB4ODAwMSwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgxZDkwLCAweGE3YmMsIDB4ZmYwMCwKLQkweDg3M2YsIDB4ODczOCwgMHg4NzNmLCAweGE3ODQsIDB4MGYwMCwgMHgxZDUwLCAweDIwOTEsIDB4ODAwMCwKKwkweDIwNjEsIDB4NDc4MCwgMHg2MzI4LCAweDczZGEsIDB4NjMyYywgMHg4MzFjLCAweDgzMWMsIDB4ODMxYywKKwkweDczZGUsIDB4MDgwNCwgMHgxM2I4LCAweDIwMDksIDB4NDc0YywgMHgyMTBjLCAweDIwMDEsIDB4MDFmZiwKKwkweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjAxMSwgMHg0NzhjLCAweDIyMTQsIDB4MDgwNCwKKwkweDEzYjgsIDB4NzkxOCwgMHgwODA0LCAweDEzYjksIDB4MjAwOSwgMHgwMjAyLCAweDIxMGMsIDB4YTE4YywKKwkweDBmMzAsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjAxMSwKKwkweDAxMDIsIDB4MjIxNCwgMHhhMjk0LCAweDBmMzAsIDB4MDgwNCwgMHgxM2I4LCAweDIwMDksIDB4NDc0ZCwKKwkweDIxMGMsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjAxMSwKKwkweDQ3OGQsIDB4MjIxNCwgMHgwODA0LCAweDEzYjgsIDB4NzkyMCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwKKwkweGQwZmMsIDB4MTkwNCwgMHgxM2I5LCAweDdhMjQsIDB4MDgwNCwgMHgxM2I4LCAweDIwMTEsIDB4NGM0MCwKKwkweDcxYzQsIDB4ZDFmYywgMHgxMTEwLCAweDIwMTEsIDB4NGJjMCwgMHg4MTA3LCAweGEwODQsIDB4MDAwZiwKKwkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEyNjgsIDB4NmEwMCwgMHg2YjA4LCAweDZjMWMsIDB4NzRkYSwKKwkweGQxZmMsIDB4MTExOCwgMHgyMDIxLCAweDAyM2IsIDB4MDAxMCwgMHgyMDIxLCAweDAxM2IsIDB4MjQyNCwKKwkweGE0YTQsIDB4MWMwMCwgMHg3NGRlLCAweDA4MDQsIDB4MTNiNywgMHg3N2M0LCAweDA4MGMsIDB4MWI5YSwKKwkweDIwOTEsIDB4ODAwMCwgMHg2YjFjLCAweDZhMTQsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDgwNCwKKwkweDEzYjcsIDB4MjA2MSwgMHg0NzQwLCAweDYxMTgsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywKKwkweDE5MDQsIDB4MTNiOSwgMHgyMDYxLCAweDQ3ODAsIDB4NjIxOCwgMHgwODA0LCAweDEzYjgsIDB4NzdjNCwKKwkweDA4MGMsIDB4MWI5YSwgMHgyMDkxLCAweDgwMDAsIDB4NjkwOCwgMHg2YTE4LCAweDZiMTAsIDB4NzdkYSwKKwkweDIwOTEsIDB4ODAwMSwgMHgwODA0LCAweDEzYjcsIDB4NzFjNCwgMHgyMTEwLCAweGEyOTQsIDB4MDAwZiwKKwkweGEyODIsIDB4MDAxMCwgMHgxYTA0LCAweDEzYjMsIDB4MDgwYywgMHgyM2I0LCAweGEzODQsIDB4NDAwMCwKKwkweDAxMTAsIDB4YTI5NSwgMHgwMDIwLCAweDA4MDQsIDB4MTNiNywgMHg3MWM0LCAweDIxMDAsIDB4YzBiYywKKwkweGEwODIsIDB4MDAxMCwgMHgxYTA0LCAweDEzYjMsIDB4ZDFiYywgMHgxMTIwLCAweDIwMTEsIDB4NDc0OCwKKwkweDIyMDQsIDB4MDAyMCwgMHgyMDExLCAweDQ3ODgsIDB4MjIwNCwgMHhjMGJkLCAweDAwMDYsIDB4MjEwMCwKKwkweGMwYmMsIDB4MjAxMiwgMHgwODBjLCAweDIzNTgsIDB4MDAxZSwgMHgwODA0LCAweDEzYjksIDB4NzFjNCwKKwkweDIwMjEsIDB4NDc0OSwgMHgyNDA0LCAweDcwYzYsIDB4MjAxOSwgMHgwMDAwLCAweDAwMzAsIDB4NzFjOCwKKwkweDIwMjEsIDB4NDc4OSwgMHgyNDA0LCAweDcwY2EsIDB4YzNmZCwgMHgyMDExLCAweDE2MjMsIDB4MjBhOSwKKwkweDAwMDgsIDB4MjIwNCwgMHhhMTA2LCAweDAxMzgsIDB4ODIxMCwgMHgxZjA0LCAweDE2MDksIDB4NzFjNCwKKwkweDcyYzgsIDB4MDgwNCwgMHgxM2IyLCAweGEyOTIsIDB4MTYyMywgMHgwMDI2LCAweDIxMjIsIDB4MDAxZSwKKwkweDA4MGMsIDB4MjM2YSwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDExMTAsIDB4ZDNmYywKKwkweDA5ZjAsIDB4MDgwNCwgMHgxM2JhLCAweDAzZTgsIDB4MDBmYSwgMHgwMWY0LCAweDAyZWUsIDB4MDAwNCwKKwkweDAwMDEsIDB4MDAwMiwgMHgwMDAzLCAweDIwNjEsIDB4NDc0MCwgMHg2MTI4LCAweDYyMmMsIDB4ODIxNCwKKwkweDgyMTQsIDB4ODIxNCwgMHg3MGM0LCAweDYwMmEsIDB4NzBjOCwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKKwkweDYwMmUsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxMWEwLCAweDAwMjYsIDB4MDAxNiwKKwkweDIwNjEsIDB4NDc4MCwgMHg2MTI4LCAweDYyMmMsIDB4ODIxNCwgMHg4MjE0LCAweDgyMTQsIDB4NzBkOCwKKwkweDYwMmEsIDB4NzBkYywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg2MDJlLCAweDcxZGEsIDB4NzJkZSwKKwkweDAwMWUsIDB4MDAyZSwgMHgwODA0LCAweDEzYjgsIDB4MjA2MSwgMHg0NzQwLCAweDYxMzAsIDB4NzBjNCwKKwkweDYwMzIsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgxOTA0LCAweDEzYjksIDB4MjA2MSwKKwkweDQ3ODAsIDB4NjIzMCwgMHg3MGM4LCAweDYwMzIsIDB4MDgwNCwgMHgxM2I4LCAweDc5MTgsIDB4MDgwNCwKKwkweDEzYjksIDB4NzFjNCwgMHhhMTg0LCAweGYwY2YsIDB4MDE0OCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwKKwkweGQwZmMsIDB4MTkwNCwgMHgxM2IzLCAweDcyYzgsIDB4MDgwNCwgMHgxM2IyLCAweDIwMTksIDB4MDAwMCwKKwkweDA4MGMsIDB4MjNhNiwgMHgwMDM2LCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MDExOCwKKwkweDAwMWUsIDB4MDgwNCwgMHgxM2I5LCAweDcxYzgsIDB4YTE4NCwgMHhmMGNmLCAweDAxMjgsIDB4MDAwZSwKKwkweDIxMTAsIDB4NzFjNCwgMHgwODA0LCAweDEzYjIsIDB4YzNmZCwgMHgwODBjLCAweDIzYTYsIDB4MjMxMCwKKwkweDAwMWUsIDB4MDgwNCwgMHgxM2I4LCAweDcxYzQsIDB4YTE4MiwgMHgwMDEwLCAweDAyNDgsIDB4MjAwMSwKKwkweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDE5MDQsIDB4MTNiMywgMHg3MmM4LCAweDA4MDQsIDB4MTNiMiwKKwkweDIwMTEsIDB4NDc0ZCwgMHgyMjA0LCAweDAwMDYsIDB4ODEwNCwgMHgxMjA4LCAweDgxMDgsIDB4MjExMiwKKwkweDIwMTksIDB4MDAwMCwgMHgwODBjLCAweDIzOTMsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywKKwkweDAxMTgsIDB4MDAxZSwgMHgwODA0LCAweDEzYjksIDB4NzFjOCwgMHhhMTgyLCAweDAwMTAsIDB4MDIyOCwKKwkweDAwMDYsIDB4MjExMCwgMHg3MWM0LCAweDA4MDQsIDB4MTNiMiwgMHgyMDExLCAweDQ3OGQsIDB4MjIwNCwKKwkweDAwMDYsIDB4ODEwNCwgMHgxMjA4LCAweDgxMDgsIDB4MjExMiwgMHhjM2ZkLCAweDA4MGMsIDB4MjM5MywKKwkweDAwMmUsIDB4MDAxZSwgMHgwODA0LCAweDEzYjgsIDB4NzFjNCwgMHg3MmM4LCAweGExODQsIDB4ZmZmZCwKKwkweDE5MDQsIDB4MTNiMiwgMHhhMjg0LCAweGZmZmQsIDB4MTkwNCwgMHgxM2IyLCAweDIxMDAsIDB4NzkyMCwKKwkweDc4MjIsIDB4MjIwMCwgMHg3YTI0LCAweDc4MjYsIDB4MDgwNCwgMHgxM2I4LCAweDIwMTEsIDB4NGM0MCwKKwkweDcxYzQsIDB4ZDFmYywgMHgxMTEwLCAweDIwMTEsIDB4NGJjMCwgMHg4MTA3LCAweGEwODQsIDB4MDAwZiwKKwkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEyNjgsIDB4NzJjOCwgMHg3M2NjLCAweDc0ZDgsIDB4NzFjNiwKKwkweDY4MDAsIDB4NzBjYSwgMHg3M2NlLCAweDc0ZGEsIDB4MjA5MSwgMHg4MDAwLCAweDZhMDIsIDB4ZDJhYywKKwkweDExMTgsIDB4MjAyMSwgMHgwMDAwLCAweDAwOTAsIDB4YTQ4NCwgMHgwMGZmLCAweGEwODIsIDB4MDAwMiwKKwkweDFhMDQsIDB4MTc0ZiwgMHg4NDNmLCAweGE3YmMsIDB4MDBmZiwgMHgwMTQwLCAweGE3ODYsIDB4MDAwMiwKKwkweDE5MDQsIDB4MTc0ZiwgMHhhNDg0LCAweDAwZmYsIDB4MDkwNCwgMHgxNzRmLCAweDIwNjEsIDB4MDIwMCwKKwkweGQxZmMsIDB4MDExMCwgMHgyMDYxLCAweDAxMDAsIDB4MjAyOSwgMHgwMDA5LCAweDIwMzEsIDB4MDA2MiwKKwkweDg0M2YsIDB4YTdiYywgMHgwMGZmLCAweDAxMzAsIDB4ODMwNywgMHhhMDg0LCAweDAwZmYsIDB4MTExMCwKKwkweGE3M2QsIDB4MTEzOCwgMHgyMDQxLCAweDAwMTksIDB4YTM4NCwgMHgwMGZmLCAweGEwODIsIDB4MDAxYSwKKwkweDAyMTAsIDB4YTRhNCwgMHgwMGZmLCAweDgzMDcsIDB4YTA4NCwgMHgwMGZmLCAweDAxODgsIDB4YTg0MiwKKwkweDAyZjAsIDB4YTA4NiwgMHgwMDEwLCAweDExMjAsIDB4YTM5YywgMHgwMGZmLCAweGEzOWQsIDB4MGYwMCwKKwkweGEzYmMsIDB4MDBmZiwgMHgyNTAwLCAweGE3MDIsIDB4MDI5MCwgMHgyNjAwLCAweGE3MDIsIDB4MTI3OCwKKwkweDIwMzksIDB4MDAzYSwgMHg2ODA0LCAweGE3MDUsIDB4NjgwNiwgMHg2YjBhLCAweDZiMGMsIDB4NzNjZSwKKwkweDY4MWMsIDB4NzBkYSwgMHg2YzFlLCAweDIwOTEsIDB4ODAwMSwgMHgwODA0LCAweDEzYmEsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDgwNCwgMHgxM2I0LCAweDc3YzQsIDB4MDgwYywgMHgxYjlhLCAweDIwOTEsIDB4ODAwMCwKKwkweDZhMTQsIDB4NmIxYywgMHgyMDkxLCAweDgwMDEsIDB4NzBjOCwgMHg2ODE2LCAweDcwY2MsIDB4NjgxZSwKKwkweDI3MDgsIDB4MDgwNCwgMHgxM2I3LCAweDcwYzQsIDB4MjA2MSwgMHg0NzQwLCAweDYxMTgsIDB4NjAxYSwKKwkweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTkwNCwgMHgxM2I5LCAweDcwYzgsIDB4MjA2MSwKKwkweDQ3ODAsIDB4NjIxOCwgMHg2MDFhLCAweDA4MDQsIDB4MTNiOCwgMHg3MWM0LCAweDcyYzgsIDB4NzNjYywKKwkweGExODIsIDB4MDAxMCwgMHgxYTA0LCAweDEzYjMsIDB4MDgwYywgMHgyM2Q4LCAweGEzODQsIDB4NDAwMCwKKwkweDAxMTAsIDB4YTI5NSwgMHgwMDIwLCAweDA4MDQsIDB4MTNiNywgMHg3N2M0LCAweDA4MGMsIDB4MWI5YSwKKwkweDIwOTEsIDB4ODAwMCwgMHg2YTA4LCAweGMyOGQsIDB4NmEwYSwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwKKwkweDA4MDQsIDB4MTNiOCwgMHg3N2M0LCAweDA4MGMsIDB4MWI5YSwgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwKKwkweGEyOTQsIDB4ZmZmOSwgMHg2YTBhLCAweDY4MDQsIDB4YTAwNSwgMHgwMTEwLCAweDA4MGMsIDB4MjJkNSwKKwkweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDA4MDQsIDB4MTNiOCwgMHg3N2M0LCAweDA4MGMsIDB4MWI5YSwKKwkweDIwOTEsIDB4ODAwMCwgMHg2YTA4LCAweGMyOTUsIDB4NmEwYSwgMHg2ODA0LCAweGEwMDUsIDB4MDExMCwKKwkweDA4MGMsIDB4MjJkNSwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwgMHgwODA0LCAweDEzYjgsIDB4NzdjNCwKKwkweDIwNDEsIDB4MDAwMSwgMHgyMDQ5LCAweDAwMDUsIDB4MjA1MSwgMHgwMDIwLCAweDIwOTEsIDB4ODAwMCwKKwkweDA4MGMsIDB4MWJiMiwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwgMHg2YTA4LCAweDA4MDQsIDB4MTNiOCwKKwkweDc3YzQsIDB4ZDdmYywgMHgwMTI4LCAweDA4MGMsIDB4MWIyOSwgMHgwMTM4LCAweDA4MDQsIDB4MTNiYywKKwkweDA4MGMsIDB4MWIxZSwgMHgwMTEwLCAweDA4MDQsIDB4MTNiYywgMHg3M2M4LCAweDcyY2MsIDB4NzdjNiwKKwkweDczY2EsIDB4NzJjZSwgMHgwODBjLCAweDFjMmEsIDB4MTFlOCwgMHg2ODE4LCAweGEwMDUsIDB4MDFhMCwKKwkweDI3MDgsIDB4MDA3NiwgMHgwODBjLCAweDIzZjcsIDB4MDA3ZSwgMHgxMTcwLCAweDIwMDEsIDB4MDAxNSwKKwkweGQ3ZmMsIDB4MTExOCwgMHgyMDYxLCAweDQ3NDAsIDB4MDAxOCwgMHhjMGZkLCAweDIwNjEsIDB4NDc4MCwKKwkweDc4MmEsIDB4MjA5MSwgMHg4MDAxLCAweDAwMDUsIDB4MjA5MSwgMHg4MDAxLCAweDIwMDEsIDB4NDAwNSwKKwkweDA4MDQsIDB4MTNiYywgMHgyMDkxLCAweDgwMDEsIDB4MDgwNCwgMHgxM2JhLCAweDc3YzQsIDB4ZDdmYywKKwkweDAxMjgsIDB4MDgwYywgMHgxYjI5LCAweDAxMzgsIDB4MDgwNCwgMHgxM2JjLCAweDA4MGMsIDB4MWIxZSwKKwkweDAxMTAsIDB4MDgwNCwgMHgxM2JjLCAweDc3YzYsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksIDB4MDAwNSwKKwkweDIwNTEsIDB4MDAyMCwgMHgyMDkxLCAweDgwMDAsIDB4MDgwYywgMHgxYmIyLCAweDIwMDksIDB4MDAxNiwKKwkweGQ3ZmMsIDB4MTExOCwgMHgyMDYxLCAweDQ3NDAsIDB4MDAxOCwgMHgyMDYxLCAweDQ3ODAsIDB4YzFmZCwKKwkweDYwNjMsIDB4MDAwMywgMHg2MDdiLCAweDAwMDAsIDB4Njc3MiwgMHg2MDdmLCAweDAwMGYsIDB4NzkyYSwKKwkweDYxZDAsIDB4YzFjNCwgMHg2MWQyLCAweDA4MGMsIDB4MjJkNSwgMHgyMDkxLCAweDgwMDEsIDB4MDAwNSwKKwkweDc3YzgsIDB4NzdjYSwgMHg3N2M0LCAweDc3YzYsIDB4ZDdmYywgMHgwMTI4LCAweDA4MGMsIDB4MWIyOSwKKwkweDAxMzgsIDB4MDgwNCwgMHgxM2JjLCAweDA4MGMsIDB4MWIxZSwgMHgwMTEwLCAweDA4MDQsIDB4MTNiYywKKwkweGE3YmMsIDB4ZmYwMCwgMHgyMDkxLCAweDgwMDAsIDB4MjAwOSwgMHgwMDE3LCAweGQ3ZmMsIDB4MTExOCwKKwkweDIwNjEsIDB4NDc0MCwgMHgwMDE4LCAweDIwNjEsIDB4NDc4MCwgMHhjMWZkLCAweDYwN2IsIDB4MDAwMCwKKwkweDYwNjMsIDB4MDAwMiwgMHg2NzcyLCAweDYwN2YsIDB4MDAwZiwgMHg3OTJhLCAweDYxZDAsIDB4YzFjNCwKKwkweDYxZDIsIDB4MDgwYywgMHgyMmQ1LCAweDIwOTEsIDB4ODAwMSwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwKKwkweDAwMDUsIDB4MjA1MSwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMCwgMHg3MGM4LCAweGEwMDUsIDB4MDExOCwKKwkweDYwZDAsIDB4YzBmZCwgMHg2MGQyLCAweDA4MGMsIDB4MWJiMiwgMHg3MGM4LCAweDY4MzYsIDB4ODczOCwKKwkweGE3ODQsIDB4MDAxZiwgMHgxZGMwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDIwMTksIDB4MDAwMCwKKwkweDcyYzgsIDB4ZDI4NCwgMHgwMTI4LCAweDA4MGMsIDB4MWIyOSwgMHgwMTM4LCAweDA4MDQsIDB4MTNiYywKKwkweDA4MGMsIDB4MWIxZSwgMHgwMTEwLCAweDA4MDQsIDB4MTNiYywgMHg3MmM4LCAweDcyY2EsIDB4NzhhYywKKwkweGEwODQsIDB4MDAwMywgMHgxNTE4LCAweDIwMzksIDB4MDAwMCwgMHhkMjg0LCAweDAxMDgsIDB4YzdmZCwKKwkweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwgMHgwMDA4LCAweDA4MGMsIDB4MWI5YSwKKwkweDIwOTEsIDB4ODAwMCwgMHg2ODA4LCAweGMwZDQsIDB4YTgwZCwgMHg2OTBhLCAweDY4MzcsIDB4MDAwMCwKKwkweDIwOTEsIDB4ODAwMSwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgxZDgwLCAweGE3YmMsIDB4ZmYwMCwKKwkweDg3M2YsIDB4ODczOCwgMHg4NzNmLCAweGE3ODQsIDB4MGYwMCwgMHgxZDQwLCAweDIwOTEsIDB4ODAwMCwKIAkweDcyYzgsIDB4MjA2OSwgMHgwMTAwLCAweGQyODQsIDB4MTExMCwgMHgyMDY5LCAweDAyMDAsIDB4NjgwOCwKIAkweGEwODQsIDB4ZmZmZCwgMHg2ODBhLCAweDY4MzAsIDB4ZDBiNCwgMHgwMWIwLCAweDY4NGIsIDB4MDAwNCwKLQkweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwOTQsIDB4MDExMCwgMHgxZjA0LCAweDE4YjIsIDB4Njg0YiwKLQkweDAwMDksIDB4MjBhOSwgMHgwMDE0LCAweDY4NDgsIDB4ZDA4NCwgMHgwMTEwLCAweDFmMDQsIDB4MThiYiwKLQkweDIwYTksIDB4MDBmYSwgMHgxZjA0LCAweDE4YzIsIDB4MjA3OSwgMHg0NjAwLCAweDIwMDksIDB4MDAxOCwKLQkweDcyYzgsIDB4ZDI4NCwgMHgxMTE4LCAweDIwNjEsIDB4NDY0MCwgMHgwMDE4LCAweDIwNjEsIDB4NDY4MCwKKwkweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwOTQsIDB4MDExMCwgMHgxZjA0LCAweDE4YzIsIDB4Njg0YiwKKwkweDAwMDksIDB4MjBhOSwgMHgwMDE0LCAweDY4NDgsIDB4ZDA4NCwgMHgwMTEwLCAweDFmMDQsIDB4MThjYiwKKwkweDIwYTksIDB4MDBmYSwgMHgxZjA0LCAweDE4ZDIsIDB4MjA3OSwgMHg0NzAwLCAweDIwMDksIDB4MDAxOCwKKwkweDcyYzgsIDB4ZDI4NCwgMHgxMTE4LCAweDIwNjEsIDB4NDc0MCwgMHgwMDE4LCAweDIwNjEsIDB4NDc4MCwKIAkweGMxZmQsIDB4NjA3YiwgMHgwMDAwLCAweDc5MmEsIDB4NjA2MywgMHgwMDAxLCAweDYwN2YsIDB4MDAwZiwKIAkweDYwYTMsIDB4MDAwMCwgMHg2MGE0LCAweDYwYWUsIDB4NjBiMiwgMHg2MGQwLCAweGQwYjQsIDB4MDE2MCwKIAkweGMwYjQsIDB4NjBkMiwgMHgwMGM2LCAweDYwYjQsIDB4YTA2NSwgMHg2MDA4LCAweGMwZDQsIDB4NjAwYSwKIAkweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDAwY2UsIDB4NjBkMCwgMHhhMDg0LCAweDdlZmYsIDB4NjBkMiwKIAkweDc4YWMsIDB4YzA4ZCwgMHg3OGFlLCAweDgzZmYsIDB4MDEwOCwgMHgwMDA1LCAweDY4MWIsIDB4MDA1NCwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDczY2MsIDB4MDgwYywgMHgxODZhLCAweDY5ZWMsIDB4NmE0OCwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDczY2MsIDB4MDgwYywgMHgxODc4LCAweDY5ZWMsIDB4NmE0OCwKIAkweGExODUsIDB4MTgwMCwgMHg2ODRhLCAweGExODUsIDB4MDA0MCwgMHg2OGVlLCAweDczY2MsIDB4MjAyMSwKLQkweDAwMDQsIDB4MjBhOSwgMHgwOWZmLCAweDFmMDQsIDB4MTkwYiwgMHg4NDIxLCAweDFkZDAsIDB4ODMxOSwKKwkweDAwMDQsIDB4MjBhOSwgMHgwOWZmLCAweDFmMDQsIDB4MTkxYiwgMHg4NDIxLCAweDFkZDAsIDB4ODMxOSwKIAkweDFkYjAsIDB4NjllZSwgMHg2YTRhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweGQ3ZmMsIDB4MTExOCwKLQkweDIwNjksIDB4NDY0MCwgMHgwMDEwLCAweDIwNjksIDB4NDY4MCwgMHg3MWM0LCAweDcxYzYsIDB4NjkxNiwKKwkweDIwNjksIDB4NDc0MCwgMHgwMDEwLCAweDIwNjksIDB4NDc4MCwgMHg3MWM0LCAweDcxYzYsIDB4NjkxNiwKIAkweDgxZmYsIDB4MTExMCwgMHg2OGEzLCAweDAwMDEsIDB4NzhhYywgMHhjMDhjLCAweDc4YWUsIDB4ZDA4NCwKLQkweDExMTAsIDB4MDgwYywgMHgxYzViLCAweDAwMDUsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwKKwkweDExMTAsIDB4MDgwYywgMHgxYzdhLCAweDAwMDUsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwKIAkweDAwMTAsIDB4YTAyZSwgMHgyNTIwLCAweDcxYzQsIDB4NzNjOCwgMHg3MmNjLCAweDcxYzYsIDB4NzNjYSwKLQkweDcyY2UsIDB4MjA3OSwgMHg0NjAwLCAweDdkZGUsIDB4N2NkYSwgMHg3YmQ2LCAweDdhZDIsIDB4MDgwYywKLQkweDFiNTgsIDB4MDkwNCwgMHgxYTNkLCAweDIwYTksIDB4MDAwNSwgMHgyMGExLCAweDQ2MTQsIDB4MjA5MSwKLQkweDgwMDAsIDB4NDFhMSwgMHgyMDkxLCAweDgwMDEsIDB4MjAwOSwgMHgwMDQwLCAweDA4MGMsIDB4MWQyNCwKLQkweDAxMjAsIDB4MDgwYywgMHgxYjYwLCAweDA4MDQsIDB4MWEzZCwgMHg2MDA0LCAweGEwOGMsIDB4MDBmZiwKLQkweGExOGUsIDB4MDAwOSwgMHgxMTIwLCAweDAwMDYsIDB4MDgwYywgMHgyMDVmLCAweDAwMGUsIDB4YTA4NCwKLQkweGZmMDAsIDB4ODAwNywgMHg4MDA5LCAweDA5MDQsIDB4MTllMSwgMHgwMGM2LCAweDJjNjgsIDB4MDgwYywKLQkweDFiNTgsIDB4MDVhOCwgMHgyYzAwLCAweDY4OWUsIDB4ODEwOSwgMHgxZGMwLCAweDYwOWYsIDB4MDAwMCwKKwkweDcyY2UsIDB4MjA3OSwgMHg0NzAwLCAweDdkZGUsIDB4N2NkYSwgMHg3YmQ2LCAweDdhZDIsIDB4MDgwYywKKwkweDFiNzcsIDB4MDkwNCwgMHgxYTVjLCAweDIwYTksIDB4MDAwNSwgMHgyMGExLCAweDQ3MTQsIDB4MjA5MSwKKwkweDgwMDAsIDB4NDFhMSwgMHgyMDkxLCAweDgwMDEsIDB4MjAwOSwgMHgwMDQwLCAweDA4MGMsIDB4MWQ0MSwKKwkweDAxMjAsIDB4MDgwYywgMHgxYjdmLCAweDA4MDQsIDB4MWE1YywgMHg2MDA0LCAweGEwOGMsIDB4MDBmZiwKKwkweGExOGUsIDB4MDAwOSwgMHgxMTIwLCAweDAwMDYsIDB4MDgwYywgMHgyMDg2LCAweDAwMGUsIDB4YTA4NCwKKwkweGZmMDAsIDB4ODAwNywgMHg4MDA5LCAweDA5MDQsIDB4MTlmMSwgMHgwMGM2LCAweDJjNjgsIDB4MDgwYywKKwkweDFiNzcsIDB4MDVhOCwgMHgyYzAwLCAweDY4OWUsIDB4ODEwOSwgMHgxZGMwLCAweDYwOWYsIDB4MDAwMCwKIAkweDAwY2UsIDB4MDBjNiwgMHg3ZGRjLCAweDdjZDgsIDB4N2JkNCwgMHg3YWQwLCAweGEyOTAsIDB4MDA0MCwKIAkweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwgMHgwMDAwLCAweDdkZGUsIDB4N2NkYSwKLQkweDdiZDYsIDB4N2FkMiwgMHgyYzY4LCAweDY4OWMsIDB4YTA2NSwgMHgwOTA0LCAweDE5ZTAsIDB4MjAwOSwKLQkweDAwNDAsIDB4MDgwYywgMHgxZDI0LCAweDE1YTAsIDB4NjAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwKLQkweDAwMDIsIDB4MTE2OCwgMHg2MDA0LCAweGEwODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMGEsIDB4MTEyMCwKLQkweDAwMTYsIDB4MDgwYywgMHgyMDVjLCAweDAwMWUsIDB4MmQwMCwgMHg2MDAyLCAweDA4OTgsIDB4MDBjZSwKLQkweDAwYzYsIDB4NjA5YywgMHgwODBjLCAweDFiZDQsIDB4MDBjZSwgMHg2MDlmLCAweDAwMDAsIDB4MDgwYywKLQkweDFhNDEsIDB4MjAwOSwgMHgwMDE4LCAweDYwMDgsIDB4YzBjZCwgMHg2MDBhLCAweDYwMDQsIDB4NjA4NiwKKwkweDdiZDYsIDB4N2FkMiwgMHgyYzY4LCAweDY4OWMsIDB4YTA2NSwgMHgwOTA0LCAweDE5ZjAsIDB4MjAwOSwKKwkweDAwNDAsIDB4MDgwYywgMHgxZDQxLCAweDE1YTAsIDB4NjAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwKKwkweDAwMDIsIDB4MDE1MCwgMHg2MDA0LCAweGEwODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMGEsIDB4MTEzOCwKKwkweDAwMTYsIDB4MDgwYywgMHgyMDgzLCAweDAwMWUsIDB4MmQwMCwgMHg2MDAyLCAweDA4OTgsIDB4MDBjZSwKKwkweDAwYzYsIDB4NjA5YywgMHgwODBjLCAweDFiZjMsIDB4MDBjZSwgMHg2MDlmLCAweDAwMDAsIDB4MDgwYywKKwkweDFhNjAsIDB4MjAwOSwgMHgwMDE4LCAweDYwMDgsIDB4YzBjZCwgMHg2MDBhLCAweDYwMDQsIDB4NjA4NiwKIAkweDc4MTAsIDB4MDAwNiwgMHg4NGZmLCAweDExMTAsIDB4ODVmZiwgMHgwMTEwLCAweGMwYzUsIDB4NzgxMiwKLQkweDA4MGMsIDB4MWIxNSwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywgMHgxYjYwLCAweDA4MDQsIDB4MWEzZCwKLQkweDAwY2UsIDB4MDBjNiwgMHg2MDljLCAweDA4MGMsIDB4MWJkNCwgMHgwMGNlLCAweDYwOWYsIDB4MDAwMCwKLQkweDA4MGMsIDB4MWE0MSwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLCAweDYwMWIsIDB4MDAwMywKKwkweDA4MGMsIDB4MWIzNCwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywgMHgxYjdmLCAweDA4MDQsIDB4MWE1YywKKwkweDAwY2UsIDB4MDBjNiwgMHg2MDljLCAweDA4MGMsIDB4MWJmMywgMHgwMGNlLCAweDYwOWYsIDB4MDAwMCwKKwkweDA4MGMsIDB4MWE2MCwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLCAweDYwMWIsIDB4MDAwMywKIAkweDc4MTAsIDB4MDAwNiwgMHg4NGZmLCAweDExMTAsIDB4ODVmZiwgMHgwMTEwLCAweGMwYzUsIDB4NzgxMiwKLQkweDA4MGMsIDB4MWIxNSwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywgMHgxYjYwLCAweDA4MDQsIDB4MWEzZCwKLQkweDAwY2UsIDB4NjExNCwgMHhkMWZjLCAweDAxMjAsIDB4MDgwYywgMHgxYjBhLCAweDAxZjAsIDB4MDAxOCwKLQkweDA4MGMsIDB4MWFmZiwgMHgwMWQwLCAweDA4MGMsIDB4MWE0MSwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywKKwkweDA4MGMsIDB4MWIzNCwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywgMHgxYjdmLCAweDA4MDQsIDB4MWE1YywKKwkweDAwY2UsIDB4NjExNCwgMHhkMWZjLCAweDAxMjAsIDB4MDgwYywgMHgxYjI5LCAweDAxZjAsIDB4MDAxOCwKKwkweDA4MGMsIDB4MWIxZSwgMHgwMWQwLCAweDA4MGMsIDB4MWE2MCwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywKIAkweDAxMDMsIDB4NjAxYiwgMHgwMDIxLCAweDc4MTAsIDB4MDAwNiwgMHg4NGZmLCAweDExMTAsIDB4ODVmZiwKLQkweDAxMTAsIDB4YzBjNSwgMHg3ODEyLCAweDA4MGMsIDB4MWIxNSwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywKLQkweDFiNjAsIDB4MjAwMSwgMHg0MDA3LCAweDA4MDQsIDB4MTNiYywgMHg3NGM0LCAweDczYzgsIDB4NzJjYywKLQkweDYwMTQsIDB4MjA5MSwgMHg4MDAwLCAweDAwZTYsIDB4MjAwOSwgMHgwMDEyLCAweGQwZmMsIDB4MTExOCwKLQkweDIwNzEsIDB4NDY0MCwgMHgwMDE4LCAweDIwNzEsIDB4NDY4MCwgMHhjMWZkLCAweDc5MmEsIDB4NzA2MywKLQkweDAwMDUsIDB4NzFkMCwgMHhjMWM0LCAweDcxZDIsIDB4NzM2NiwgMHg3MjZhLCAweDc0NmUsIDB4NzA3MiwKLQkweDcwNzcsIDB4MDAwMCwgMHgyYzAwLCAweDcwN2EsIDB4YTAyZSwgMHgyNTMwLCAweDYxMWMsIDB4YTE4NCwKLQkweDAwNjAsIDB4MDExMCwgMHgwODBjLCAweDNmYzEsIDB4MDBlZSwgMHg2NTk2LCAweDY1YTYsIDB4NjY5YSwKLQkweDY2YWEsIDB4NjBhZiwgMHgwMDAwLCAweDYwYjMsIDB4MDAwMCwgMHg2NzE0LCAweDYwMjMsIDB4MDAwMCwKLQkweDA4MGMsIDB4MjJhZSwgMHgyMDkxLCAweDgwMDEsIDB4MDAwNSwgMHg3MGMzLCAweDQwMDUsIDB4MDgwNCwKLQkweDEzYmQsIDB4MjBhOSwgMHgwMDA1LCAweDIwOTksIDB4NDYxNCwgMHgyMDkxLCAweDgwMDAsIDB4NTMwYSwKLQkweDIwOTEsIDB4ODAwMSwgMHgyMTAwLCAweGEyMTAsIDB4YTM5OSwgMHgwMDAwLCAweGE0YTEsIDB4MDAwMCwKLQkweGE1YTksIDB4MDAwMCwgMHgwMDA1LCAweDcxYzQsIDB4NzBjNywgMHgwMDAwLCAweDc5MWUsIDB4MDgwNCwKLQkweDEzYmEsIDB4NzFjNCwgMHg3MWM2LCAweDIxNjgsIDB4MDAxMCwgMHgyMDY5LCAweDEwMDAsIDB4NjkwYywKLQkweGEwMTYsIDB4MmQwNCwgMHhhMjEwLCAweDhkNjgsIDB4ODEwOSwgMHgxZGQ4LCAweGEyODUsIDB4MDAwMCwKLQkweDExMTgsIDB4NzBjMywgMHg0MDAwLCAweDAwMTAsIDB4NzBjMywgMHg0MDAzLCAweDcwY2EsIDB4MDgwNCwKLQkweDEzYmQsIDB4Nzk2NCwgMHg3MWM2LCAweDcxYzQsIDB4YTE4MiwgMHgwMDAzLCAweDFhMDQsIDB4MTNiMywKLQkweDc5NjYsIDB4MDgwNCwgMHgxM2JhLCAweDc5NjQsIDB4NzFjNiwgMHgwODA0LCAweDEzYmEsIDB4NzkwMCwKLQkweDcxYzYsIDB4NzFjNCwgMHg3OTAyLCAweDA4MDQsIDB4MTNiYSwgMHg3OTAwLCAweDcxYzYsIDB4MDgwNCwKLQkweDEzYmEsIDB4NzBjNCwgMHgyMDExLCAweDAwMDAsIDB4YTA4YywgMHgwMDBkLCAweDAxNjAsIDB4ODEwYywKLQkweDAyMzAsIDB4ODIxMCwgMHg4MTBjLCAweDgxMGMsIDB4MDIxMCwgMHg4MjEwLCAweDgxMGMsIDB4ODFmZiwKLQkweDE5MDQsIDB4MTNiNCwgMHg4MjEwLCAweDdhMGUsIDB4ZDI4YywgMHgwNTM4LCAweDc5MTAsIDB4YzFjZCwKLQkweDc5MTIsIDB4MjAwOSwgMHgwMDIxLCAweDIwMTksIDB4MDAwMywgMHhkMjg0LCAweDAxYzAsIDB4ODEwOCwKLQkweDIwMTksIDB4MDA0MSwgMHgyMDExLCAweDhlNGUsIDB4MjMxMiwgMHgyMDE5LCAweDAwNDIsIDB4ODIxMCwKLQkweDIzMTIsIDB4MjAxOSwgMHgwMDQzLCAweDgyMTAsIDB4MjMxMiwgMHgyMDE5LCAweDAwNDYsIDB4ODIxMCwKLQkweDIzMTIsIDB4MjAxOSwgMHgwMDQ3LCAweDgyMTAsIDB4MjMxMiwgMHgyMDE5LCAweDAwMDYsIDB4MjAxMSwKLQkweDhlNTMsIDB4MjExMiwgMHgyMDExLCAweDhlNzMsIDB4MjMxMiwgMHg3OTA0LCAweDc4MDYsIDB4MDgwNCwKLQkweDEzYjksIDB4NzgwNCwgMHg3MGM2LCAweDA4MDQsIDB4MTNiYSwgMHg3MWM0LCAweGQxZmMsIDB4MTExOCwKLQkweDIwMTEsIDB4NGFjMCwgMHgwMDEwLCAweDIwMTEsIDB4NGI0MCwgMHg4MTA3LCAweGEwODQsIDB4MDAwZiwKLQkweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEyNjgsIDB4MjAxMSwgMHgwMDAwLCAweDY4MTQsIDB4ZDBmYywKLQkweDAxMTAsIDB4YTI5NSwgMHgwMjAwLCAweGQwYjQsIDB4MDExMCwgMHhhMjk1LCAweDAwMDEsIDB4NmIwYywKLQkweDY4MDAsIDB4NzBkYSwgMHgwODA0LCAweDEzYjcsIDB4NzgxNCwgMHhkMGY0LCAweDAxMzAsIDB4MjAwMSwKLQkweDQwMDcsIDB4NzBkYiwgMHgwMDAwLCAweGEwMDUsIDB4MDA0OCwgMHhkMGZjLCAweDAxMzAsIDB4MjAwMSwKLQkweDQwMDcsIDB4NzBkYiwgMHgwMDAxLCAweGEwMDUsIDB4MDAwOCwgMHhhMDA2LCAweDAwMDUsIDB4NzgxNCwKLQkweGQwZjQsIDB4MDEzMCwgMHgyMDAxLCAweDQwMDcsIDB4NzBkYiwgMHgwMDAwLCAweGEwMDUsIDB4MDAwOCwKLQkweGEwMDYsIDB4MDAwNSwgMHg3ODE0LCAweGQwZmMsIDB4MDEzMCwgMHgyMDAxLCAweDQwMDcsIDB4NzBkYiwKLQkweDAwMDEsIDB4YTAwNSwgMHgwMDA4LCAweGEwMDYsIDB4MDAwNSwgMHg3MTEyLCAweDcyMWEsIDB4NzMxZSwKLQkweDc4MTAsIDB4ZDBjNCwgMHgwMTEwLCAweDc0MjIsIDB4NzUyNiwgMHhhYzgwLCAweDAwMDEsIDB4ODEwOCwKLQkweDgxMGMsIDB4ODFhOSwgMHg4MDk4LCAweDIwYTEsIDB4MDAzMCwgMHg3MDAzLCAweDAwMDAsIDB4NjA4NCwKLQkweDIwYTIsIDB4NTNhNiwgMHg3MDA3LCAweDAwMDEsIDB4Nzk3NCwgMHhhMTg0LCAweGZmMDAsIDB4MDE0MCwKLQkweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsIDB4MDAxOCwKLQkweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweDc5N2MsIDB4YTEwOCwgMHg3YTc4LCAweGEwMDYsIDB4YTIxMSwKLQkweDdkMTAsIDB4ZDVjNCwgMHgwMTIwLCAweDdiODQsIDB4YTMxOSwgMHg3YzgwLCAweGE0MjEsIDB4NzAwOCwKLQkweGQwZmMsIDB4MGRlOCwgMHg3MDAzLCAweDAwMDEsIDB4NzAwNywgMHgwMDA2LCAweDcxMWEsIDB4NzIxZSwKLQkweDdkMTAsIDB4ZDVjNCwgMHgwMTEwLCAweDczMjIsIDB4NzQyNiwgMHhhMDg0LCAweDAxZTAsIDB4MDAwNSwKLQkweDc4NDgsIDB4YTA2NSwgMHgwMTIwLCAweDJjMDQsIDB4Nzg0YSwgMHgyMDYzLCAweDAwMDAsIDB4MDAwNSwKLQkweDAwZjYsIDB4MjA3OSwgMHg0NjAwLCAweDc4NDgsIDB4MjA2MiwgMHgyYzAwLCAweGEwMDUsIDB4MTExMCwKLQkweDA4MGMsIDB4MjU0YywgMHg3ODRhLCAweDAwZmUsIDB4MDAwNSwgMHgyMDExLCAweDkwMDAsIDB4N2E0YSwKLQkweDdiYzQsIDB4ODMxOSwgMHgwMTI4LCAweGEyODAsIDB4MDAzMiwgMHgyMDEyLCAweDIwMTAsIDB4MGNjOCwKLQkweDIwMTMsIDB4MDAwMCwgMHgwMDA1LCAweDAwMTYsIDB4MDAyNiwgMHhkN2ZjLCAweDExMTgsIDB4MjAxMSwKLQkweDRiYzAsIDB4MDAxMCwgMHgyMDExLCAweDZiYzAsIDB4YTc4NCwgMHgwZjAwLCAweDgwMGIsIDB4YTc4NCwKLQkweDAwMWYsIDB4MDEyMCwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4YTI2OCwKLQkweDAwMmUsIDB4MDAxZSwgMHgwMDA1LCAweDBjMzksIDB4MjkwMCwgMHg2ODJhLCAweDJhMDAsIDB4NjgyZSwKLQkweDY4MDgsIDB4YTA4NCwgMHhmOWVmLCAweGE4MGQsIDB4NjkwYSwgMHgwMGU2LCAweGQ3ZmMsIDB4MTEyOCwKLQkweDIwMDksIDB4NDY1MiwgMHgyMDcxLCAweDQ2NDAsIDB4MDAyMCwgMHgyMDA5LCAweDQ2OTIsIDB4MjA3MSwKLQkweDQ2ODAsIDB4MjEwYywgMHg2ODA0LCAweGEwMDUsIDB4MDE0OCwgMHhhMTE2LCAweDExMzgsIDB4MjA2MCwKLQkweDYwMDAsIDB4NjgwNiwgMHgwMDE2LCAweDIwMGIsIDB4MDAwMCwgMHgwMDE4LCAweDIwMDksIDB4MDAwMCwKLQkweDAwMTYsIDB4NjgwNCwgMHhhMDY1LCAweDAxNzgsIDB4NjAwMCwgMHg2ODA2LCAweDA0MjEsIDB4MDgwYywKLQkweDFkOTUsIDB4NjgxMCwgMHg3OTA4LCAweDgxMDksIDB4NzkwYSwgMHg4MDAxLCAweDY4MTIsIDB4MWQ4OCwKLQkweDc5MTAsIDB4YzFhNSwgMHg3OTEyLCAweDAwMWUsIDB4NjkwMiwgMHg2OTA2LCAweDJkMDAsIDB4MjA2MCwKLQkweDA4MGMsIDB4MjY5MywgMHgwMGVlLCAweDAwMDUsIDB4YTA2NSwgMHgwMTYwLCAweDIwMDgsIDB4NjA5YywKLQkweGEwMDUsIDB4MDEyOCwgMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwgMHhhMDY1LCAweDBjYzAsIDB4Nzg0OCwKLQkweDc5NGEsIDB4MjA2MiwgMHgwMDA1LCAweDYwMDcsIDB4MDEwMywgMHg2MDhmLCAweDAwMDAsIDB4MjBhOSwKLQkweDAwMWMsIDB4YWM4MCwgMHgwMDA1LCAweDIwYTAsIDB4MjAwMSwgMHgwMDAwLCAweDQwYTQsIDB4NjgyOCwKLQkweDYwMWEsIDB4NjgyYywgMHg2MDIyLCAweDAwMDUsIDB4MDBlNiwgMHhkN2ZjLCAweDExMjgsIDB4MjA3MSwKLQkweDQ2NDAsIDB4MjAzMSwgMHg0NmMwLCAweDAwMjAsIDB4MjA3MSwgMHg0NjgwLCAweDIwMzEsIDB4NDhjMCwKLQkweDcwNGMsIDB4YTA4YywgMHgwMjAwLCAweDExMjgsIDB4YTYwOCwgMHgyZDBhLCAweDgwMDAsIDB4NzA0ZSwKLQkweGEwMDYsIDB4MDBlZSwgMHgwMDA1LCAweDAwZjYsIDB4ZDdmYywgMHgxMTE4LCAweDIwNzksIDB4NDY0MCwKLQkweDAwMTAsIDB4MjA3OSwgMHg0NjgwLCAweDA4MGMsIDB4MWI3YiwgMHgyMDkxLCAweDgwMDAsIDB4NjgwNCwKLQkweDc4MGEsIDB4YTA2NSwgMHgwNWYwLCAweDAwMzAsIDB4MmMwMCwgMHg3ODBhLCAweDIwNjAsIDB4NjAwMCwKLQkweGEwNjUsIDB4MDViOCwgMHg2MDEwLCAweGEzMDYsIDB4MWRiOCwgMHg2MDBjLCAweGEyMDYsIDB4MWRhMCwKLQkweDJjMjgsIDB4Nzg0OCwgMHhhYzA2LCAweDExMDgsIDB4MDQ0OCwgMHg2ODA0LCAweGFjMDYsIDB4MTE0MCwKLQkweDYwMDAsIDB4MjA2MCwgMHg2ODA2LCAweGEwMDUsIDB4MTExOCwgMHg2ODAzLCAweDAwMDAsIDB4MDA0OCwKLQkweDY0MDAsIDB4NzgwOCwgMHgyMDYwLCAweDY0MDIsIDB4YTQ4NiwgMHgwMDAwLCAweDExMTAsIDB4MmMwMCwKLQkweDY4MDIsIDB4MjU2MCwgMHgwODBjLCAweDFiZTMsIDB4NjAxYiwgMHgwMDA1LCAweDYwMjMsIDB4MDAyMCwKLQkweDAwZmUsIDB4MDgwYywgMHgxZDk1LCAweDAwZjYsIDB4NzkwOCwgMHg4MTA5LCAweDc5MGEsIDB4NjgxMCwKLQkweDgwMDEsIDB4NjgxMiwgMHgxMTE4LCAweDc4MTAsIDB4YzBhNSwgMHg3ODEyLCAweDIwMDEsIDB4ZmZmZiwKLQkweGEwMDUsIDB4MDBmZSwgMHgwMDA1LCAweDAwNzYsIDB4MjcwMCwgMHgyMDM5LCAweDAwMDAsIDB4ZDBmYywKLQkweDAxMDgsIDB4YzdmZCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA0LCAweDIwNTEsIDB4MDAwOCwKLQkweDIwOTEsIDB4ODAwMCwgMHgwODBjLCAweDFiOTMsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsIDB4MWRkMCwKLQkweGE3YmMsIDB4ZmYwMCwgMHg4NzNmLCAweDg3MzgsIDB4ODczZiwgMHhhNzg0LCAweDBmMDAsIDB4MWQ5MCwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDdlLCAweDAwMDUsIDB4Nzg2YywgMHgyMDA5LCAweDhlNzQsIDB4MjEwYywKLQkweGExMGQsIDB4MDExOCwgMHhhMDY1LCAweDA4MDQsIDB4MjA3YSwgMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwKLQkweGQwODQsIDB4MTFiOCwgMHg3ODEwLCAweGQwOGMsIDB4MDEzMCwgMHhjMDhjLCAweDc4MTIsIDB4YzdmYywKLQkweDIwNjksIDB4NDY0MCwgMHgwMDI4LCAweGMwOGQsIDB4NzgxMiwgMHgyMDY5LCAweDQ2ODAsIDB4YzdmZCwKLQkweDIwOTEsIDB4ODAwMCwgMHg2ODFjLCAweDY4MWYsIDB4MDAwMCwgMHgyMDkxLCAweDgwMDEsIDB4YTAwNSwKLQkweDExMDgsIDB4MDAwNSwgMHhhMDhjLCAweGZmZjAsIDB4MDExMCwgMHgwODBjLCAweDI1NGMsIDB4MDAwMiwKLQkweDFjYjgsIDB4MWNiYiwgMHgxY2MxLCAweDFjYzUsIDB4MWNiOSwgMHgxY2M5LCAweDFjYjksIDB4MWNiOSwKLQkweDFjYjksIDB4MWNjZiwgMHgxY2ZiLCAweDFjZmUsIDB4MWQwMywgMHgxZDBjLCAweDFjYjksIDB4MWNiOSwKLQkweDAwMDUsIDB4MDgwYywgMHgyNTRjLCAweDA4MGMsIDB4MWM1YiwgMHgyMDAxLCAweDgwMDEsIDB4MDgwNCwKLQkweDFkMTUsIDB4MjAwMSwgMHg4MDAzLCAweDA4MDQsIDB4MWQxNSwgMHgyMDAxLCAweDgwMDQsIDB4MDgwNCwKLQkweDFkMTUsIDB4MDgwYywgMHgxYzViLCAweDIwMDEsIDB4ODAwNiwgMHgwODA0LCAweDFkMTUsIDB4MjA5MSwKLQkweDgwMDAsIDB4MDA3NiwgMHhkN2ZjLCAweDExMjgsIDB4MjA2OSwgMHg0NjQwLCAweDIwMzksIDB4MDAwOSwKLQkweDAwMjAsIDB4MjA2OSwgMHg0NjgwLCAweDIwMzksIDB4MDAwOSwgMHg2ODAwLCAweGEwODYsIDB4MDAwMCwKLQkweDAxMjgsIDB4MDAwZSwgMHg2ZjFlLCAweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDY4NzAsIDB4MDA3ZSwKLQkweGEwYmMsIDB4ZmYwMCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA0LCAweDIwNTEsIDB4MDAxMCwKLQkweDA4MGMsIDB4MWI5MywgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgxZGQwLCAweDIwOTEsIDB4ODAwMSwKLQkweDIwMDEsIDB4ODAwYSwgMHgwMGQwLCAweDIwMDEsIDB4ODAwYywgMHgwMGI4LCAweDA4MGMsIDB4MWM1YiwKLQkweDIwMDEsIDB4ODAwZCwgMHgwMDkwLCAweGQ3ZmMsIDB4MDExMCwgMHg3OGU0LCAweDAwMDgsIDB4NzhlMCwKLQkweDcwYzYsIDB4MjAwMSwgMHg4MDBlLCAweDAwNDgsIDB4ZDdmYywgMHgwMTEwLCAweDc4ZWMsIDB4MDAwOCwKLQkweDc4ZTgsIDB4NzBjNiwgMHgyMDAxLCAweDgwMGYsIDB4MDAwMCwgMHg3MGMyLCAweGQ3ZmMsIDB4MTExOCwKLQkweDcwZGIsIDB4MDAwMCwgMHgwMDEwLCAweDcwZGIsIDB4MDAwMSwgMHgyMDYxLCAweDAwMDAsIDB4NjAxYiwKLQkweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDAwMDUsIDB4YWM4MCwgMHgwMDAxLCAweDgxZmYsIDB4MDUxOCwKLQkweDIwOTksIDB4MDAzMCwgMHgyMGEwLCAweDcwMGMsIDB4YTA4NCwgMHgwN2ZmLCAweDAxMDAsIDB4NzAxOCwKLQkweDAwMDYsIDB4NzAxYywgMHgwMDA2LCAweDcwMjAsIDB4MDAwNiwgMHg3MDI0LCAweDAwMDYsIDB4NzExMiwKLQkweDgxYWMsIDB4NzIxYSwgMHg3MzFlLCAweDc0MjIsIDB4NzUyNiwgMHg3MDAzLCAweDAwMDEsIDB4NzAwNywKLQkweDAwMDEsIDB4NzAwOCwgMHg4MDBiLCAweDFlZTgsIDB4NzAwNywgMHgwMDAyLCAweGEwOGMsIDB4MDFlMCwKLQkweDExMTAsIDB4NTNhNSwgMHhhMDA2LCAweDcwMDMsIDB4MDAwMCwgMHg3MDA3LCAweDAwMDQsIDB4MDAwZSwKLQkweDcwMjYsIDB4MDAwZSwgMHg3MDIyLCAweDAwMGUsIDB4NzAxZSwgMHgwMDBlLCAweDcwMWEsIDB4MDAwNSwKLQkweDIwMTEsIDB4MDAyMCwgMHgyMDA5LCAweDAwMTAsIDB4NmIwYSwgMHg2YzBlLCAweDY4MWYsIDB4MDIwMSwKLQkweDY4MDMsIDB4ZmQyMCwgMHg2ODA3LCAweDAwMzgsIDB4NmExYSwgMHgyZDAwLCAweGEwZTgsIDB4MDAwOCwKLQkweGEyOTAsIDB4MDAwNCwgMHg4MTA5LCAweDFkODAsIDB4MDAwNSwgMHg3MGVjLCAweGQwZGMsIDB4MTUyMCwKLQkweDIwMjksIDB4MDAwMSwgMHg3ODE0LCAweGQwY2MsIDB4MTE2MCwgMHg3MGVjLCAweGQwZTQsIDB4MjAxOSwKLQkweDBjMGEsIDB4MjAyMSwgMHgwMDBhLCAweDExMjAsIDB4MjAxOSwgMHgwYzBjLCAweDIwMjEsIDB4MDAwYywKLQkweDAwNzAsIDB4NzBlYywgMHhkMGU0LCAweDExMjgsIDB4MjAxOSwgMHgxODBjLCAweDIwMjEsIDB4MDAwYywKLQkweDAwMzAsIDB4MjAxOSwgMHgxODA5LCAweDIwMjEsIDB4MDAwOSwgMHhhNWFkLCAweDAyMDAsIDB4NmIwYSwKLQkweDZjMGUsIDB4NmQxZSwgMHg2ODA3LCAweDAwMzgsIDB4MDAwNSwgMHg2MDA0LCAweDYwODYsIDB4MmMwOCwKLQkweDIwNjMsIDB4MDAwMCwgMHg3ODY4LCAweGEwMDUsIDB4Nzk2YSwgMHgwMTEwLCAweDJjMDIsIDB4MDAwOCwKLQkweDc5NmUsIDB4MDAwNSwgMHgwMGM2LCAweDIwNjEsIDB4NDYwMCwgMHg2ODg3LCAweDAxMDMsIDB4MmQwOCwKLQkweDIwNmIsIDB4MDAwMCwgMHg2MDY4LCAweGEwMDUsIDB4NjE2YSwgMHgwMTEwLCAweDJkMDIsIDB4MDAwOCwKLQkweDYxNmUsIDB4MDBjZSwgMHgwMDA1LCAweDIwOTEsIDB4ODAwMCwgMHgyYzA0LCAweDc4NmUsIDB4YTAwNSwKLQkweDExMDgsIDB4Nzg2YSwgMHgyMDkxLCAweDgwMDEsIDB4NjA5YywgMHhhMDA1LCAweDAxODgsIDB4MDBjNiwKLQkweDIwNjAsIDB4MjAwOCwgMHg2MDljLCAweGEwMDUsIDB4MDEzOCwgMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwKLQkweGEwNjUsIDB4NjA5YywgMHhhMDA1LCAweDFkYzgsIDB4Nzg0OCwgMHg3OTRhLCAweDIwNjIsIDB4MDBjZSwKLQkweDc4NDgsIDB4MjA2MiwgMHg2MDlmLCAweDAwMDAsIDB4YWM4NSwgMHgwMDAwLCAweDExMTAsIDB4MDgwYywKLQkweDI1NGMsIDB4Nzg0YSwgMHgwMDA1LCAweDIwYTksIDB4MDAxMCwgMHhhMDA2LCAweDgwMDQsIDB4ODA4NiwKLQkweDgxOGUsIDB4MTIwOCwgMHhhMjAwLCAweDFmMDQsIDB4MWRkZiwgMHg4MDg2LCAweDgxOGUsIDB4MDAwNSwKLQkweDAxNTYsIDB4MjBhOSwgMHgwMDEwLCAweGEwMDUsIDB4MDFiOCwgMHhhMTFhLCAweDEyYTgsIDB4ODIxMywKLQkweDgxOGQsIDB4MDIyOCwgMHhhMTFhLCAweDEyMjAsIDB4MWYwNCwgMHgxZGVmLCAweDAwMjgsIDB4YTExYSwKLQkweDIzMDgsIDB4ODIxMCwgMHgxZjA0LCAweDFkZWYsIDB4MDAwNiwgMHgzMjAwLCAweGEwODQsIDB4ZWZmZiwKLQkweDIwODAsIDB4MDAwZSwgMHgwMTVlLCAweDAwMDUsIDB4MDAwNiwgMHgzMjAwLCAweGEwODUsIDB4MTAwMCwKLQkweDBjYjgsIDB4N2Q3NCwgMHg3MGQwLCAweGE1MDYsIDB4MDkwNCwgMHgxZWJkLCAweDc4MTAsIDB4MjA1MCwKLQkweDA4MGMsIDB4MWI1OCwgMHgwOTA0LCAweDFlYmQsIDB4YTA0NiwgMHg3OTcwLCAweDI1MDAsIDB4ODAwMCwKLQkweGExMTIsIDB4MjAwOSwgMHgwMDQwLCAweDEyMDgsIDB4MDAzMCwgMHg3MmQwLCAweGEyMDYsIDB4MDExOCwKLQkweDg4NDAsIDB4MjAwOSwgMHgwMDgwLCAweDAwYzYsIDB4NzExMiwgMHg3MDA3LCAweDAwMDEsIDB4MjA5OSwKLQkweDAwMzAsIDB4MjBhOSwgMHgwMDIwLCAweGFjODAsIDB4MDAwMSwgMHgyMGEwLCAweDIwNjEsIDB4MDAwMCwKLQkweDg4ZmYsIDB4MDExMCwgMHgwODBjLCAweDFiNTgsIDB4NzAwOCwgMHhkMGZjLCAweDBkZTgsIDB4NzAwNywKLQkweDAwMDIsIDB4MjA5MSwgMHg4MDAxLCAweGEwOGMsIDB4MDFlMCwgMHgxNTM4LCAweDUzYTUsIDB4OGNmZiwKLQkweDExMjAsIDB4ODhmZiwgMHgwOTA0LCAweDFlYWEsIDB4MDA1MCwgMHgyYzAwLCAweDc4OGUsIDB4MjBhOSwKLQkweDAwMjAsIDB4YWM4MCwgMHgwMDAxLCAweDIwYTAsIDB4NTNhNSwgMHgwODA0LCAweDFlYWEsIDB4YTA0NiwKLQkweDcyMTgsIDB4NzMxYywgMHhkYWM0LCAweDAxMTAsIDB4NzQyMCwgMHg3NTI0LCAweGEyOTIsIDB4MDA0MCwKLQkweGEzOWIsIDB4MDAwMCwgMHhhNGEzLCAweDAwMDAsIDB4YTVhYiwgMHgwMDAwLCAweDcyMWEsIDB4NzMxZSwKLQkweGRhYzQsIDB4MDExOCwgMHg3NDIyLCAweDc1MjYsIDB4YTAwNiwgMHg3MDA3LCAweDAwMDQsIDB4MDkwNCwKLQkweDFlYWEsIDB4OGNmZiwgMHgwMTEwLCAweDA4MGMsIDB4MWI2MCwgMHgwMGNlLCAweDA4MGMsIDB4MWI2MCwKLQkweGEwNDYsIDB4Nzg4OCwgMHg4MDAwLCAweDc4OGEsIDB4YTA4NiwgMHgwMDAyLCAweDAxYzAsIDB4N2E3YywKLQkweDdiNzgsIDB4ZGFjNCwgMHgwMTEwLCAweDdjODQsIDB4N2Q4MCwgMHg3OTc0LCAweDgxMDcsIDB4ODAwNCwKLQkweDgwMDQsIDB4YTIxMCwgMHhhMzk5LCAweDAwMDAsIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwKLQkweDcyMWEsIDB4NzMxZSwgMHhkYWM0LCAweDA1ODgsIDB4NzQyMiwgMHg3NTI2LCAweDA0NzAsIDB4NjAxNCwKLQkweGQwZmMsIDB4MTExOCwgMHgyMDY5LCAweDQ2NDAsIDB4MDAxMCwgMHgyMDY5LCAweDQ2ODAsIDB4MjA5MSwKLQkweDgwMDAsIDB4NjgxZiwgMHgwMDAyLCAweDg4ZmYsIDB4MDEyMCwgMHhhMDQ2LCAweDc4OGMsIDB4MjA2MCwKLQkweDBjNzAsIDB4Nzg4YiwgMHgwMDAwLCAweDc4YWMsIDB4YTA4NSwgMHgwMDAzLCAweDc4YWUsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA5OCwgMHgwMGNlLCAweDc4OGIsIDB4MDAwMCwgMHgwODBjLCAweDIwMzUsIDB4NjAwNCwKLQkweGEwODQsIDB4MDAwZiwgMHgwMDU5LCAweDg4ZmYsIDB4MDEzMCwgMHg3ODhjLCAweDIwNjAsIDB4NjAwNCwKLQkweGEwODQsIDB4MDAwZiwgMHgwMDE5LCAweDA4MDQsIDB4MWUwOSwgMHgwMDA1LCAweDAwMDIsIDB4MWVjZiwKLQkweDFlZWEsIDB4MWYwMywgMHgxZWNmLCAweDFmMTAsIDB4MWVlMCwgMHgxZWNmLCAweDFlY2YsIDB4MWVjZiwKLQkweDFlZTgsIDB4MWYwMSwgMHgxZWNmLCAweDFlY2YsIDB4MWVjZiwgMHgxZWNmLCAweDFlY2YsIDB4MjAzOSwKLQkweDA0MDAsIDB4NzhiYywgMHhhNzA1LCAweDc4YmUsIDB4NjAwOCwgMHhhNzA1LCAweDYwMGEsIDB4MDgwYywKLQkweDFmNGMsIDB4NjA5YywgMHg3OGJhLCAweDYwOWYsIDB4MDAwMCwgMHgwODBjLCAweDIwMjEsIDB4MDAwNSwKLQkweDc4YmMsIDB4ZDBjNCwgMHgwMTA4LCAweDBjNTgsIDB4NjAxYywgMHhjMGJkLCAweDYwMWUsIDB4MDAzMCwKLQkweDA4MGMsIDB4MjA1ZiwgMHg3OGJjLCAweGQwYzQsIDB4MDEwOCwgMHgwYzA4LCAweDc4YmYsIDB4MDAwMCwKLQkweDYwMDQsIDB4ODAwNywgMHhhMDg0LCAweDAwZmYsIDB4NzhiMiwgMHg4MDAxLCAweDAxMzgsIDB4MDgwYywKLQkweDFmNGMsIDB4MDEyMCwgMHg3OGJjLCAweGMwYzUsIDB4NzhiZSwgMHgwMDEwLCAweDA4MDQsIDB4MWY2NywKLQkweDAwMDUsIDB4MDgwYywgMHgyMDVjLCAweDc4YmMsIDB4YTA4YywgMHgwZTAwLCAweDExMTAsIDB4ZDBjNCwKLQkweDExMDgsIDB4MDgyOCwgMHgwODBjLCAweDFmNGMsIDB4MTExMCwgMHgwODA0LCAweDFmNjcsIDB4MDAwNSwKLQkweDc4YmMsIDB4ZDBjNCwgMHgwMTEwLCAweDA4MDQsIDB4MWVjZiwgMHg3OGJmLCAweDAwMDAsIDB4NjcxNCwKLQkweDIwMTEsIDB4MDAwMSwgMHgyMmE4LCAweDYwMTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwMDUsIDB4MDE4OCwKLQkweGE3YmMsIDB4ZmYwMCwgMHgyMGE5LCAweDAwMjAsIDB4YTA4ZSwgMHgwMDAxLCAweDAxNTAsIDB4YTdiYywKLQkweDgwMDAsIDB4MjAxMSwgMHgwMDAyLCAweDIwYTksIDB4MDEwMCwgMHhhMDhlLCAweDAwMDIsIDB4MDEwOCwKLQkweDAwYzAsIDB4MDgwYywgMHgxYjdiLCAweDJkMDAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MmIsIDB4MDAwMCwKLQkweDY4MmYsIDB4MDAwMCwgMHg2ODA4LCAweGEwODQsIDB4ZmZkZSwgMHg2ODBhLCAweGFkZTgsIDB4MDAxMCwKLQkweDIwOTEsIDB4ODAwMSwgMHgxZjA0LCAweDFmMzQsIDB4ODIxMSwgMHgwMTE4LCAweDIwYTksIDB4MDEwMCwKLQkweDBjNTgsIDB4MDgwYywgMHgxYjYwLCAweDAwMDUsIDB4NjA5ZiwgMHgwMDAwLCAweDc4YjQsIDB4YTA2ZCwKLQkweDJjMDAsIDB4NzhiNiwgMHgxMTEwLCAweDc4YmEsIDB4MDAzOCwgMHg2ODllLCAweDJkMDAsIDB4NjAwMiwKLQkweDc4YjgsIDB4YWQwNiwgMHgxMTA4LCAweDYwMDIsIDB4NzhiMCwgMHg4MDAxLCAweDc4YjIsIDB4MTEzMCwKLQkweDc4YmMsIDB4YzBjNCwgMHg3OGJlLCAweDc4YjgsIDB4MjA2MCwgMHhhMDA2LCAweDAwMDUsIDB4MDBlNiwKLQkweGEwMmUsIDB4MjUzMCwgMHg3ZGJhLCAweDdkYjYsIDB4NjVhZSwgMHg2NWIyLCAweDYwMWMsIDB4NjBhMiwKLQkweDIwNDgsIDB4YTk4NCwgMHhlMWZmLCAweDYwMWUsIDB4YTk4NCwgMHgwMDYwLCAweDAxMTAsIDB4MDgwYywKLQkweDNmYzEsIDB4NjU5NiwgMHg2NWE2LCAweDY2OWEsIDB4NjZhYSwgMHg2NzE0LCAweDIwNzEsIDB4NDY4MCwKLQkweGQ3ZmMsIDB4MTExMCwgMHgyMDcxLCAweDQ2NDAsIDB4YTc4NCwgMHgwZjAwLCAweDgwMGIsIDB4YTc4NCwKLQkweDAwMWYsIDB4MDEyMCwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4NzFjMCwKLQkweGExNjgsIDB4MjcwMCwgMHg4MDA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKLQkweDcxYzQsIDB4YTEwMCwgMHg2MGMyLCAweDIwOTEsIDB4ODAwMCwgMHg3ODE0LCAweGQwYzQsIDB4MDEzOCwKLQkweGQ3ZmMsIDB4MTExOCwgMHhkMGY0LCAweDExNDAsIDB4MDAxMCwgMHhkMGZjLCAweDExMjgsIDB4NmUwOCwKLQkweGQ2ODQsIDB4MDFmMCwgMHhkOWZjLCAweDExZTAsIDB4MjA5MSwgMHg4MDAxLCAweDA4MGMsIDB4MWJlMywKLQkweDIwOTEsIDB4ODAwMCwgMHgwODBjLCAweDFkOTUsIDB4MjA5MSwgMHg4MDAxLCAweDc4MTQsIDB4ZDBjNCwKLQkweDA5MDQsIDB4MjAxZiwgMHhkN2ZjLCAweDExMjAsIDB4ZDBmNCwgMHgxMTMwLCAweDA4MDQsIDB4MjAxZiwKLQkweGQwZmMsIDB4MTExMCwgMHgwODA0LCAweDIwMWYsIDB4NjAxYiwgMHgwMDIxLCAweDA4MDQsIDB4MjAxZiwKLQkweDYwMjQsIDB4YTA5NiwgMHgwMDAxLCAweDExMTAsIDB4ODAwMCwgMHg2MDI2LCAweDZhMTAsIDB4NjgxNCwKLQkweGEyMDIsIDB4MDI2OCwgMHgwMTYwLCAweDIwOTEsIDB4ODAwMSwgMHgyMDM5LCAweDAyMDAsIDB4NjA5YywKLQkweDc4YmEsIDB4NjA5ZiwgMHgwMDAwLCAweDA4MGMsIDB4MjAyMSwgMHgwODA0LCAweDIwMWYsIDB4MmMwOCwKLQkweGQ5ZmMsIDB4MDFmMCwgMHg2ODAwLCAweGEwNjUsIDB4MDFkOCwgMHg2YTA0LCAweDcwMDAsIDB4YTA4NCwKLQkweDAwMDIsIDB4MDE2OCwgMHg3MDQ4LCAweGEyMDYsIDB4MTE1MCwgMHg2YjA0LCAweDIxNjAsIDB4MjMwNCwKLQkweDYwMDIsIDB4YTAwNSwgMHgxMTA4LCAweDY5MDIsIDB4MjI2MCwgMHg2MTAyLCAweDAwOTgsIDB4MmQwMCwKLQkweDIwNjAsIDB4MDgwYywgMHgyNjkzLCAweDZlMDgsIDB4MjE2MCwgMHg2MjAyLCAweDY5MDYsIDB4MDA1MCwKLQkweDY4MDAsIDB4NjkwMiwgMHhhMDY1LCAweDAxMTAsIDB4NjEwMiwgMHgwMDA4LCAweDY5MDYsIDB4MjE2MCwKLQkweDYwMDMsIDB4MDAwMCwgMHgyMTYwLCAweGQ5ZmMsIDB4MDExOCwgMHhhNmI0LCAweGZmZmMsIDB4NmUwYSwKLQkweDY4MTAsIDB4N2QwOCwgMHg4NTI4LCAweDdkMGEsIDB4ODAwMCwgMHg2ODEyLCAweDIwOTEsIDB4ODAwMSwKLQkweGQ2YjQsIDB4MDEyOCwgMHhhNmI2LCAweDAwNDAsIDB4NmUwYSwgMHgwODBjLCAweDFiZjQsIDB4MDBlZSwKLQkweDAwMDUsIDB4NjAwOCwgMHhhNzA1LCAweDYwMGEsIDB4MjA5MSwgMHg4MDAwLCAweDA4MGMsIDB4MWQ5NSwKLQkweDIwOTEsIDB4ODAwMSwgMHg3OGI4LCAweGEwNjUsIDB4MDEyOCwgMHg2MDljLCAweDc4YmEsIDB4NjA5ZiwKLQkweDAwMDAsIDB4MGM3OCwgMHg3OGI2LCAweDc4YmEsIDB4MDAwNSwgMHg3OTcwLCAweDc4NzQsIDB4MjgxOCwKLQkweGQzODQsIDB4MDExOCwgMHg4MDAwLCAweGExMTIsIDB4MDIyMCwgMHg4MDAwLCAweGExMTIsIDB4MTI3OCwKLQkweGMzODQsIDB4N2E3YywgMHg3MjFhLCAweDdhNzgsIDB4NzIxZSwgMHhkYWM0LCAweDAxMjAsIDB4N2E4NCwKLQkweDcyMjIsIDB4N2E4MCwgMHg3MjI2LCAweGEwMDYsIDB4ZDM4NCwgMHgwMTA4LCAweDgwMDAsIDB4Nzg3NiwKLQkweDcwZDIsIDB4NzgxYywgMHhhMDA1LCAweDAxMzgsIDB4ODAwMSwgMHg3ODFlLCAweDExMjAsIDB4MGUwNCwKLQkweDIwNWIsIDB4MjA5MSwgMHg0MDgwLCAweDAwMDUsIDB4MjAzOSwgMHgyMDcxLCAweDAwMTAsIDB4MjAzOSwKLQkweDIwNzcsIDB4MjcwNCwgMHhhMDA1LCAweDAxNjAsIDB4YWMwMCwgMHgyMDY4LCAweDY5MDgsIDB4NjgxMCwKLQkweDY5MTIsIDB4NjgwYSwgMHg2OTBjLCAweDY4MTQsIDB4NjkxNiwgMHg2ODBlLCAweDg3MzgsIDB4MGM4OCwKLQkweDAwMDUsIDB4MDAwMywgMHgwMDA5LCAweDAwMGYsIDB4MDAxNSwgMHgwMDFiLCAweDAwMDAsIDB4MDAxNSwKLQkweDAwMWIsIDB4MDAwMCwgMHgyMDQxLCAweDAwMDAsIDB4NzgwYywgMHgwMDAyLCAweDIyMjMsIDB4MjFmZSwKLQkweDIwODIsIDB4MjBmMiwgMHgyMDM5LCAweDhlNzQsIDB4MjczNCwgMHg3ZDEwLCAweDAwYzAsIDB4NjA4NCwKLQkweGEwODYsIDB4MDEwMywgMHgxOTA0LCAweDIwZGMsIDB4NjExNCwgMHg2MDE4LCAweGExMDUsIDB4MDEyMCwKLQkweDg2ZmYsIDB4MTFkOCwgMHgwODA0LCAweDIwZGMsIDB4ODYwMywgMHhhMDgwLCAweDhlNTUsIDB4NjIwYywKLQkweDIyMDIsIDB4ODAwMCwgMHg2MjEwLCAweDIyMDIsIDB4MDgwYywgMHgxZGIzLCAweDg2MzAsIDB4YTY4ZSwKLQkweDAwMGYsIDB4MDkwNCwgMHgyMTVkLCAweDc4NmMsIDB4YTA2NSwgMHgxZDA4LCAweDc4MDgsIDB4YTYwMiwKLQkweDEyMjAsIDB4ZDVhYywgMHgxMTEwLCAweDI2M2EsIDB4MDAwNSwgMHhhNjgyLCAweDAwMDMsIDB4MWEwNCwKLQkweDIxNWQsIDB4MjA5MSwgMHg4MDAwLCAweDIwNjksIDB4MDAwMCwgMHg2ODE4LCAweGQwODQsIDB4MTFmOCwKLQkweDIwMTEsIDB4OGU1NSwgMHgyMjA0LCAweDcwYzYsIDB4ODIxMCwgMHgyMjA0LCAweDcwY2EsIDB4ZDY4NCwKLQkweDExMzAsIDB4ODIxMCwgMHgyMjA0LCAweDcwZGEsIDB4ODIxMCwgMHgyMjA0LCAweDcwZGUsIDB4YTY4NSwKLQkweDgwMjAsIDB4NzBjMiwgMHg2ODFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDc4MTAsIDB4YTA4NCwKLQkweGZmY2YsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsIDB4MjAzYiwgMHgwMDAwLCAweDAwMDUsIDB4NzgxMCwKLQkweGMwYWQsIDB4NzgxMiwgMHgwODA0LCAweDIxNWQsIDB4MjYzYSwgMHgwODBjLCAweDIyMjksIDB4MTkwNCwKLQkweDIyNDUsIDB4Nzg2YywgMHhhMDY1LCAweDE5MDQsIDB4MjA4NywgMHgyMDkxLCAweDgwMDAsIDB4NzgxMCwKLQkweGEwODQsIDB4ZmZjZiwgMHg4NmZmLCAweDAxMDgsIDB4YzBhZCwgMHg3ODEyLCAweDIwOTEsIDB4ODAwMSwKLQkweDA4MDQsIDB4MjI0NSwgMHgyMDM5LCAweDhlNzQsIDB4MjczNCwgMHg3ZDEwLCAweDAwYTAsIDB4NjA4NCwKLQkweGEwODYsIDB4MDEwMywgMHgxOTA0LCAweDIxNDcsIDB4NjExNCwgMHg2MDE4LCAweGExMDUsIDB4MDEyMCwKLQkweDg2ZmYsIDB4MTFiOCwgMHgwODA0LCAweDIxNDcsIDB4YTY4MCwgMHg4ZTU1LCAweDYyMGMsIDB4MjIwMiwKLQkweDA4MGMsIDB4MWRiMywgMHg4NjMwLCAweGE2OGUsIDB4MDAxZSwgMHgwOTA0LCAweDIxNWQsIDB4Nzg2YywKLQkweGEwNjUsIDB4MWQyOCwgMHg3ODA4LCAweGE2MDIsIDB4MTIyMCwgMHhkNWFjLCAweDExMTAsIDB4MjYzYSwKLQkweDAwMDUsIDB4YTY4MiwgMHgwMDA2LCAweDFhMDQsIDB4MjE1ZCwgMHgyMDkxLCAweDgwMDAsIDB4MjA2OSwKLQkweDAwMDAsIDB4NjgxOCwgMHhkMDg0LCAweDExZjgsIDB4MjAxMSwgMHg4ZTU1LCAweDIwMDksIDB4OGU0ZSwKLQkweDI2YTgsIDB4MjExYywgMHgyMjA0LCAweDIwMWEsIDB4ODEwOCwgMHg4MjEwLCAweDFmMDQsIDB4MjEyOSwKLQkweGE2ODUsIDB4ODAzMCwgMHg3MGMyLCAweDY4MWIsIDB4MDAwMSwgMHgyMDkxLCAweDQwODAsIDB4NzgxMCwKLQkweGEwODQsIDB4ZmZjZiwgMHg3ODEyLCAweDIwOTEsIDB4ODAwMSwgMHhhMDA2LCAweDIwMDksIDB4OGU3NSwKLQkweDIwMGEsIDB4MjAzYSwgMHgwMDA1LCAweDc4MTAsIDB4YzBhZCwgMHg3ODEyLCAweDAwYjAsIDB4MjYzYSwKLQkweDA4MGMsIDB4MjIyOSwgMHgxOTA0LCAweDIyNDUsIDB4Nzg2YywgMHhhMDY1LCAweDE5MDQsIDB4MjBmNywKLQkweDIwOTEsIDB4ODAwMCwgMHg3ODEwLCAweGEwODQsIDB4ZmZjZiwgMHg4NmZmLCAweDAxMDgsIDB4YzBhZCwKLQkweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDA4MDQsIDB4MjI0NSwgMHgyMDkxLCAweDgwMDAsIDB4NzAwNywKLQkweDAwMDQsIDB4Nzk5NCwgMHg3MGQ0LCAweGExMDIsIDB4MDIyOCwgMHgwMTY4LCAweDdiOTAsIDB4YTMwMiwKLQkweDExNTAsIDB4MDAxMCwgMHg4MDAyLCAweDExMzgsIDB4MjYzYSwgMHg3ODEwLCAweGMwYWQsIDB4NzgxMiwKLQkweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweGExODQsIDB4ZmYwMCwgMHgwMTQwLCAweDgxMGYsIDB4ODEwYywKLQkweDgxMGMsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDcsIDB4YTEwMCwgMHgwMDE4LCAweDgxMDcsIDB4ODAwNCwKLQkweDgwMDQsIDB4N2E5YywgMHhhMjEwLCAweDcyMWEsIDB4N2E5OCwgMHhhMDA2LCAweGEyMTEsIDB4NzIxZSwKLQkweGQ0YzQsIDB4MDEzMCwgMHg3YWE0LCAweGEyMTEsIDB4NzIyMiwgMHg3YWEwLCAweGEyMTEsIDB4NzIyNiwKLQkweDIwYTEsIDB4MDAzMCwgMHg3MDAzLCAweDAwMDAsIDB4MjAwOSwgMHg4ZTU0LCAweDI2MGEsIDB4ODEwOSwKLQkweDIxOTgsIDB4MjEwNCwgMHhkMDg0LCAweDAxMDgsIDB4ODYzMywgMHhhNmIwLCAweDAwMDIsIDB4MjZhOCwKLQkweDUzYTYsIDB4ODYwMywgMHg3MDEyLCAweDcwMDcsIDB4MDAwMSwgMHg3OTkwLCAweDc4OTQsIDB4ODAwMCwKLQkweGExMGEsIDB4MTIwOCwgMHhhMDA2LCAweDIwMjgsIDB4Nzk3NCwgMHhhMTg0LCAweGZmMDAsIDB4MDE0MCwKLQkweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsIDB4MDAxOCwKLQkweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweDc5N2MsIDB4YTEwOCwgMHg3YTc4LCAweGEwMDYsIDB4YTIxMSwKLQkweGQ0YzQsIDB4MDEyMCwgMHg3Yjg0LCAweGEzMTksIDB4N2M4MCwgMHhhNDIxLCAweDcwMDgsIDB4ZDBmYywKLQkweDBkZTgsIDB4YTA4NCwgMHgwMWUwLCAweDAxZDAsIDB4N2QxMCwgMHgyMDMxLCAweDhlNTQsIDB4MjYzNCwKLQkweDc4YTgsIDB4ODAwMCwgMHg3OGFhLCAweGQwOGMsIDB4MTEzOCwgMHg3MDA3LCAweDAwMDYsIDB4NzAwNCwKLQkweGQwOTQsIDB4MWRlOCwgMHgwODA0LCAweDIxNWYsIDB4MjA2OSwgMHg0NjQ3LCAweDIwNmIsIDB4MDAwMywKLQkweDc4YWMsIDB4YTA4NSwgMHgwMzAwLCAweDc4YWUsIDB4YTAwNiwgMHgwMDQ4LCAweDIwMzAsIDB4NzVkNiwKLQkweDIwOTEsIDB4NDA4MCwgMHg3ZDk2LCAweDdkMTAsIDB4YTVhYywgMHhmZmNmLCAweDdkMTIsIDB4MjA5MSwKLQkweDgwMDEsIDB4NzhhYSwgMHg3MDA3LCAweDAwMDYsIDB4MjYzYSwgMHg3MDAzLCAweDAwMDEsIDB4NzExYSwKLQkweDcyMWUsIDB4ZDVjNCwgMHgwMTEwLCAweDczMjIsIDB4NzQyNiwgMHgwMDA1LCAweDYwODQsIDB4YTA4NiwKLQkweDAxMDMsIDB4MTFkOCwgMHg2MTE0LCAweDYwMTgsIDB4YTEwNSwgMHgxMWI4LCAweDIwNjksIDB4MDAwMCwKLQkweDY4MTgsIDB4ZDA4NCwgMHgxMTkwLCAweDYwMGMsIDB4NzBjNiwgMHg2MDEwLCAweDcwY2EsIDB4NzBjMywKLQkweDgwMjAsIDB4NjgxYiwgMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwgMHgwODBjLCAweDFkYjMsIDB4MGUwNCwKLQkweDIyMWMsIDB4Nzg2YywgMHhhMDY1LCAweDFkMTAsIDB4MDAwNSwgMHgwMDU5LCAweDE1MzAsIDB4Nzg2YywKLQkweGEwNjUsIDB4MTllMCwgMHgwNDEwLCAweDAwMjksIDB4MTUwMCwgMHg3ODZjLCAweGEwNjUsIDB4MWRkOCwKLQkweDAwZTAsIDB4NjA4NCwgMHhhMDg2LCAweDAxMDMsIDB4MTE2OCwgMHg2MDE4LCAweGMwZmMsIDB4NjAxYSwKLQkweGEwODYsIDB4MDAwNCwgMHgxMTM4LCAweDc4MDQsIDB4ZDBhNCwgMHgwMTIwLCAweDA4MGMsIDB4MWRiMywKLQkweGEwMDYsIDB4MDAwNSwgMHgwMDc5LCAweDExMTgsIDB4YTA4NSwgMHgwMDAxLCAweDAwMDUsIDB4MDBiOSwKLQkweDExMTAsIDB4MjA0MSwgMHgwMDAxLCAweDdkMTAsIDB4MDAwNSwgMHg4OGZmLCAweDAxMTAsIDB4MjA5MSwKLQkweDQwODAsIDB4MDAwNSwgMHg3YjkwLCAweDc5OTQsIDB4NzBkNCwgMHhhMTAyLCAweDExMTgsIDB4YTM4NSwKLQkweDAwMDAsIDB4MDAwNSwgMHgwMjEwLCAweGEzMDIsIDB4MDAwNSwgMHg4MDAyLCAweDAwMDUsIDB4YTE4NCwKLQkweGZmMDAsIDB4MDE0MCwgMHg4MTBmLCAweDgxMGMsIDB4ODEwYywgMHg4MDA0LCAweDgwMDQsIDB4ODAwNywKLQkweGExMDAsIDB4MDAxOCwgMHg4MTA3LCAweDgwMDQsIDB4ODAwNCwgMHg3YTljLCAweDdiOTgsIDB4N2NhNCwKLQkweDdkYTAsIDB4YTIxMCwgMHhhMDA2LCAweGEzMTksIDB4YTQyMSwgMHhhNTI5LCAweDIwMDksIDB4MDAxOCwKLQkweDYwMjgsIDB4YTAwNSwgMHgwMTEwLCAweDIwMDksIDB4MDA0MCwgMHgwODBjLCAweDFiMTUsIDB4MDFkMCwKLQkweDc4YTgsIDB4ODAwMCwgMHg3OGFhLCAweGQwOGMsIDB4MTUxMCwgMHg2MDE0LCAweGQwZmMsIDB4MTExOCwKLQkweDIwNjksIDB4NDY0MCwgMHgwMDEwLCAweDIwNjksIDB4NDY4MCwgMHgyMDkxLCAweDgwMDAsIDB4NjgxZiwKLQkweDAwMDMsIDB4NzhhYiwgMHgwMDAwLCAweDc4YWMsIDB4YTA4NSwgMHgwMzAwLCAweDc4YWUsIDB4MjA5MSwKLQkweDgwMDEsIDB4MDA2OCwgMHg3OGFiLCAweDAwMDAsIDB4MDgwYywgMHgxZGIzLCAweDc5OTAsIDB4Nzg5NCwKLQkweDgwMDAsIDB4YTEwYSwgMHgxMjA4LCAweGEwMDYsIDB4Nzg5NiwgMHg3MGQ2LCAweGEwMDYsIDB4MjA3MSwKLQkweDAwMTAsIDB4MjA5MSwgMHg4MDAxLCAweDAwMDUsIDB4ZDdmYywgMHgxMTE4LCAweDIwMDksIDB4NDY1OCwKLQkweDAwMTAsIDB4MjAwOSwgMHg0Njk4LCAweDIwOTEsIDB4ODAwMCwgMHgyMDBhLCAweDAwZjYsIDB4MjAwOSwKLQkweDQ2ODAsIDB4MjA3OSwgMHgwMTAwLCAweGQ3ZmMsIDB4MTEyMCwgMHgyMDA5LCAweDQ2NDAsIDB4MjA3OSwKLQkweDAyMDAsIDB4MjEwNCwgMHhhMDg2LCAweDAwMDAsIDB4MTE4MCwgMHhkN2ZjLCAweDExMTgsIDB4MjAwOSwKLQkweDQ2NDUsIDB4MDAxMCwgMHgyMDA5LCAweDQ2ODUsIDB4MjEwNCwgMHhhMDA1LCAweDExMzAsIDB4NzgzMCwKLQkweGEwODQsIDB4MDBjMCwgMHgxMTEwLCAweDc4MWIsIDB4MDA1MiwgMHgwMGZlLCAweDAwMDUsIDB4MjAwOSwKLQkweDAwMDIsIDB4MjA2OSwgMHg0NjAwLCAweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MTkwNCwKLQkweDIzMjQsIDB4MjA3MSwgMHg0NjgwLCAweDIwNzksIDB4MDEwMCwgMHgyMDIxLCAweDQ4YmYsIDB4Nzg0YiwKLQkweDAwMGYsIDB4MjAwMSwgMHgwMWZmLCAweDIwMDQsIDB4ZDBmYywgMHgwMTE4LCAweDIwMTksIDB4M2UwZiwKLQkweDAwMzAsIDB4MjBhMSwgMHgwMTJiLCAweDIwMTksIDB4M2UwZiwgMHhkMTg0LCAweDAxMTAsIDB4MjBhMSwKLQkweDAyMmIsIDB4MjMwNCwgMHhhMDA1LCAweDAxNDAsIDB4Nzg5YSwgMHg4MzE4LCAweDIzYWMsIDB4ODMxOCwKLQkweDIzOTgsIDB4NTNhNiwgMHgzMzE4LCAweDBjYTgsIDB4Nzg5YiwgMHgwMDAwLCAweDc4OWIsIDB4MDAyMCwKLQkweDIwYTksIDB4MDAxMCwgMHg3OGFmLCAweDAwMDAsIDB4NzhhZiwgMHgyMDIwLCAweDFmMDQsIDB4MjMwMiwKLQkweDcwMDMsIDB4MDAwMCwgMHgwMDE2LCAweGQxOGMsIDB4MjAwOSwgMHgwMDAwLCAweDAxMDgsIDB4YzFiZCwKLQkweDA4MGMsIDB4MjQ0MywgMHgwMDFlLCAweDcwMjAsIDB4YTA4NCwgMHgwMDBmLCAweGEwODUsIDB4NjMwMCwKLQkweDc4MDYsIDB4NzgwZiwgMHg5MDAwLCAweDc4NDMsIDB4MDBkOCwgMHg3ODUzLCAweDAwOTAsIDB4NzgwYiwKLQkweDJmMDgsIDB4NzQ1MiwgMHg3MDRmLCAweDAwMDAsIDB4ODEwOSwgMHgwMTQwLCAweDIwNzEsIDB4NDY0MCwKLQkweDIwNzksIDB4MDIwMCwgMHgyMDIxLCAweDQ2YmYsIDB4MDgwNCwgMHgyMmRmLCAweDA4MGMsIDB4MjRmZCwKLQkweDAwMDUsIDB4MDAxNiwgMHgyMDExLCAweDAxMDEsIDB4ZDFiYywgMHgxMTEwLCAweDIwMTEsIDB4MDIwMSwKLQkweGExOGMsIDB4MDAwZiwgMHgyMjA0LCAweGEwODQsIDB4ZmZmMCwgMHhhMTA1LCAweDIwMTIsIDB4MDAxZSwKLQkweDA4MGMsIDB4MjQ0MywgMHgwMDA1LCAweDIwMTEsIDB4MDEwMSwgMHhkM2ZjLCAweDExMTAsIDB4MjAxMSwKLQkweDAyMDEsIDB4MjBhOSwgMHgwMDA5LCAweDgxMGIsIDB4MWYwNCwgMHgyMzRiLCAweGExOGMsIDB4MGUwMCwKLQkweDIyMDQsIDB4YTA4NCwgMHhmMWZmLCAweGExMDUsIDB4MjAxMiwgMHgwMDA1LCAweDIwMTksIDB4MDAwMiwKLQkweDIwMDksIDB4MDEwMSwgMHgyMGE5LCAweDAwMDUsIDB4ODIxMywgMHgxZjA0LCAweDIzNWMsIDB4YTI5NCwKLQkweDAwZTAsIDB4MjEwNCwgMHhhMDg0LCAweGZmMWYsIDB4YTIwNSwgMHgyMDBhLCAweDgzMTksIDB4MDExOCwKLQkweDIwMDksIDB4MDIwMSwgMHgwYzc4LCAweDAwMDUsIDB4MjAxMSwgMHgwMTAxLCAweGQzZmMsIDB4MTExMCwKLQkweDIwMTEsIDB4MDIwMSwgMHgyMGE5LCAweDAwMGMsIDB4ODEwYiwgMHgxZjA0LCAweDIzNzQsIDB4YTE4YywKLQkweGYwMDAsIDB4MjIwNCwgMHhhMDg0LCAweDBmZmYsIDB4YTEwNSwgMHgyMDEyLCAweDAwMDUsIDB4MjAxMSwKLQkweDAxMDIsIDB4ZDNmYywgMHgxMTEwLCAweDIwMTEsIDB4MDIwMiwgMHgyMjA0LCAweGEwODQsIDB4ZjBjZiwKLQkweGExMDUsIDB4MjAxMiwgMHgwMDA1LCAweDAwYzYsIDB4MjA2MSwgMHgwMTAwLCAweGQxYmMsIDB4MTExMCwKLQkweDIwNjEsIDB4MDIwMCwgMHhjMWJjLCAweDgxMDMsIDB4ODAwMywgMHhhMDgwLCAweDAwMjAsIDB4NjA5YSwKLQkweDYyYWMsIDB4NjNhYywgMHgwMGNlLCAweDAwMDUsIDB4MDBjNiwgMHgyMDYxLCAweDAxMDAsIDB4ZDFiYywKLQkweDExMTAsIDB4MjA2MSwgMHgwMjAwLCAweGMxYmMsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsIDB4MDAyMiwKLQkweDYwOWEsIDB4NjBhNCwgMHhhMDg0LCAweGZmZGYsIDB4NjBhZSwgMHgwMGNlLCAweDAwMDUsIDB4MDBjNiwKLQkweDIwNjEsIDB4MDEwMCwgMHhkMWJjLCAweDExMTAsIDB4MjA2MSwgMHgwMjAwLCAweGMxYmMsIDB4ODEwMywKLQkweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDYwOWEsIDB4NjBhNCwgMHhhMjhjLCAweDAwMjAsIDB4MDExOCwKLQkweGMyYWMsIDB4YTM5ZCwgMHg0MDAwLCAweGMzZWMsIDB4ZDNiNCwgMHgxMTA4LCAweGMzZWQsIDB4NjJhZSwKLQkweDIwMTAsIDB4NjBhNCwgMHg2M2FlLCAweDIwMTgsIDB4MDBjZSwgMHgwMDA1LCAweDIwOTEsIDB4ODAwMCwKLQkweDAwYzYsIDB4MDBlNiwgMHg2ODE4LCAweGEwMDUsIDB4MDkwNCwgMHgyNDI3LCAweGQxZmMsIDB4MDExOCwKLQkweDIwNjEsIDB4OGRkMCwgMHgwMDEwLCAweDIwNjEsIDB4OGNjMCwgMHgwODBjLCAweDI0MmYsIDB4MDU2MCwKLQkweDIwYTksIDB4MDEwMSwgMHhkMWZjLCAweDAxMTgsIDB4MjA2MSwgMHg4Y2QwLCAweDAwMTAsIDB4MjA2MSwKLQkweDhiYzAsIDB4MDBjNiwgMHgwODBjLCAweDI0MmYsIDB4MDEyOCwgMHgwMGNlLCAweDhjNjAsIDB4MWYwNCwKLQkweDIzZTksIDB4MDRhOCwgMHgwMDBlLCAweGQxZmMsIDB4MDEyOCwgMHhhMDgyLCAweDhjZDAsIDB4MjA3MSwKLQkweDQ2ODAsIDB4MDAyMCwgMHhhMDgyLCAweDhiYzAsIDB4MjA3MSwgMHg0NjQwLCAweDcwNzYsIDB4NzE3MiwKLQkweDIxMzgsIDB4MjAwMSwgMHgwMDA0LCAweDcwNjIsIDB4NzA3ZiwgMHgwMDBmLCAweDcxZDAsIDB4YzFjNCwKLQkweDcxZDIsIDB4MDgwYywgMHgyMmE0LCAweDAwYzAsIDB4ZDFmYywgMHgxMTE4LCAweDIwNzEsIDB4NDY0MCwKLQkweDAwMTAsIDB4MjA3MSwgMHg0NjgwLCAweDYwMjAsIDB4YzBkZCwgMHg2MDIyLCAweDcxNzIsIDB4MjEzOCwKLQkweDJjMDAsIDB4NzA3YSwgMHgyMDAxLCAweDAwMDYsIDB4NzA2MiwgMHg3MDdmLCAweDAwMGYsIDB4NzFkMCwKLQkweGMxYzQsIDB4NzFkMiwgMHgwODBjLCAweDIyYTQsIDB4MjAwMSwgMHgwMDAwLCAweDAwMTAsIDB4MjAwMSwKLQkweDAwMDEsIDB4MjA5MSwgMHg4MDAxLCAweGEwMDUsIDB4MDBlZSwgMHgwMGNlLCAweDAwMDUsIDB4MmMwNCwKLQkweGEwMDUsIDB4MDE3MCwgMHgyMDYwLCAweDYwMTAsIDB4YTMwNiwgMHgxMTQwLCAweDYwMGMsIDB4YTIwNiwKLQkweDExMjgsIDB4NjAxNCwgMHhhMTA2LCAweDExMTAsIDB4YTAwNiwgMHgwMDIwLCAweDYwMDAsIDB4MGM4MCwKLQkweGEwODUsIDB4MDAwMSwgMHgwMDA1LCAweDAwZjYsIDB4MDBlNiwgMHgwMDE2LCAweDIwNzksIDB4NDY4MCwKLQkweDIwNzEsIDB4MDEwMCwgMHhkMWJjLCAweDExMjAsIDB4MjA3OSwgMHg0NjQwLCAweDIwNzEsIDB4MDIwMCwKLQkweDc5MjAsIDB4YTE4YywgMHgwMDBmLCAweDcwZWMsIDB4ZDBjNCwgMHgxMTEwLCAweDAwMWUsIDB4MDA2MCwKLQkweDgxMGIsIDB4ODEwYiwgMHg4MTBiLCAweDgxMGIsIDB4MDAwZSwgMHhhMThkLCAweDA4MDAsIDB4ZDBiYywKLQkweDExMTAsIDB4YTE4ZCwgMHgwZjAwLCAweDIxMDQsIDB4MDBlZSwgMHgwMGZlLCAweDAwMDUsIDB4MjAwMSwKLQkweDQ2MDEsIDB4MjAwNCwgMHhkMGFjLCAweDExMzgsIDB4NjhlNCwgMHhkMGFjLCAweDAxMjAsIDB4YTA4NCwKLQkweDAwMDYsIDB4MTEwOCwgMHgwMDA5LCAweDAwMDUsIDB4NjAxNCwgMHgwMGU2LCAweDAwMzYsIDB4MjAxOCwKLQkweDIwNzEsIDB4NGI0MCwgMHhkMGZjLCAweDExMTAsIDB4MjA3MSwgMHg0YWMwLCAweDgwMDcsIDB4YTA4NCwKLQkweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YWU3MCwgMHg3MDA0LCAweGEwODQsIDB4MDAwYSwKLQkweDE5MDQsIDB4MjRmYSwgMHg3MTA4LCAweGExOTQsIDB4ZmYwMCwgMHgwOTA0LCAweDI0ZmEsIDB4YTE4YywKLQkweDAwZmYsIDB4NzAxYywgMHhhMDg0LCAweGZmMDAsIDB4MDFjMCwgMHg3MDA0LCAweGEwODUsIDB4MDAzYSwKLQkweDcwMDYsIDB4MjAwMSwgMHgwMDA5LCAweGExMDIsIDB4MTZkOCwgMHgyMDAxLCAweDAwMGEsIDB4YTEwMiwKLQkweDE2ZDAsIDB4MjAwMSwgMHgwMDBjLCAweGExMDIsIDB4MTZjOCwgMHg3MDFjLCAweGEwODQsIDB4MDBmZiwKLQkweDcwMWUsIDB4NzAwNCwgMHhhMDg0LCAweGZmZGYsIDB4NzAwNiwgMHgyMDAxLCAweDAwMGEsIDB4YTEwNiwKLQkweDAxYTgsIDB4MjAwMSwgMHgwMDBjLCAweGExMDYsIDB4MDFhMCwgMHgyMDAxLCAweDAwMTIsIDB4YTEwNiwKLQkweDAxOTgsIDB4MjAwMSwgMHgwMDE0LCAweGExMDYsIDB4MDE5MCwgMHgyMDAxLCAweDAwMTksIDB4YTEwNiwKLQkweDAxODgsIDB4MjAwMSwgMHgwMDMyLCAweGExMDYsIDB4MDE4MCwgMHgwMGQ4LCAweDIwMDksIDB4MDAwYywKLQkweDAwZDAsIDB4MjAwOSwgMHgwMDEyLCAweDAwYjgsIDB4MjAwOSwgMHgwMDE0LCAweDAwYTAsIDB4MjAwOSwKLQkweDAwMTksIDB4MDA4OCwgMHgyMDA5LCAweDAwMjAsIDB4MDA3MCwgMHgyMDA5LCAweDAwM2YsIDB4MDA1OCwKLQkweDIwMDksIDB4MDAwYSwgMHgwMDQwLCAweDIwMDksIDB4MDAwYywgMHgwMDI4LCAweDIwMDksIDB4MDAxOSwKLQkweDAwMTAsIDB4MjAxMSwgMHgwMDAwLCAweDIxMDAsIDB4YTIwNSwgMHg3MDBhLCAweDcwMDQsIDB4YTA4NSwKLQkweDAwMGEsIDB4NzAwNiwgMHgyMDcxLCAweDQ2MDAsIDB4NzAwNCwgMHhkMGJjLCAweDAxNTgsIDB4ZDNmYywKLQkweDExMjAsIDB4NzNlYSwgMHgyMDcxLCAweDQ2NDAsIDB4MDAxOCwgMHg3M2VlLCAweDIwNzEsIDB4NDY4MCwKLQkweDcwMWYsIDB4MDAwZCwgMHgwMDNlLCAweDAwZWUsIDB4MDAwNSwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwKLQkweGQwZmMsIDB4MTFkMCwgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwgMHhhMDgyLCAweDAwMDUsIDB4MTJhMCwKLQkweDIwNzEsIDB4MDIwMCwgMHg3MWVjLCAweGExOGMsIDB4MWMwMCwgMHg4MTBmLCAweDgxMGMsIDB4ODEwYywKLQkweDIwNzksIDB4MDEwMCwgMHg3OGVjLCAweGEwODQsIDB4MWMwMCwgMHg4MDA3LCAweDgwMDQsIDB4ODAwNCwKLQkweGExMDUsIDB4YTA4YSwgMHgwMDA3LCAweDAyMDgsIDB4MDAwNSwgMHgwMDAyLCAweDI1NGIsIDB4MjUzMiwKLQkweDI1NGIsIDB4MjUzMiwgMHgyNTI1LCAweDI1M2YsIDB4MjUyNSwgMHg3MDA4LCAweGEwODQsIDB4YzNmZiwKLQkweGEwODUsIDB4MzAwMCwgMHg3MDBhLCAweDc4MDgsIDB4YTA4NCwgMHhjM2ZmLCAweGEwODUsIDB4MzAwMCwKLQkweDc4MGEsIDB4MDAwNSwgMHg3MDA4LCAweGEwODQsIDB4YzNmZiwgMHhhMDg1LCAweDIwMDAsIDB4NzAwYSwKLQkweDc4MDgsIDB4YTA4NCwgMHhjM2ZmLCAweGEwODUsIDB4MjAwMCwgMHg3ODBhLCAweDAwMDUsIDB4NzAwOCwKLQkweGEwODQsIDB4YzNmZiwgMHhhMDg1LCAweDBjMDAsIDB4NzAwYSwgMHg3ODA4LCAweGEwODQsIDB4YzNmZiwKLQkweGEwODUsIDB4MGMwMCwgMHg3ODBhLCAweDAwMDUsIDB4MGUwNCwgMHgyNTRjLCAweDIwOTEsIDB4ODAwMCwKLQkweDIwNzEsIDB4MDAwMCwgMHgwMDA2LCAweDcwMTgsIDB4ZDA4NCwgMHgxZGU4LCAweDAwMGUsIDB4MjA3MSwKLQkweDAwMTAsIDB4NzBjYSwgMHgwMDBlLCAweDcwYzYsIDB4NzBjMywgMHg4MDAyLCAweDcwZGIsIDB4MGEwNCwKLQkweDcwZGYsIDB4MDAyMCwgMHgyMDcxLCAweDAwMDAsIDB4NzAxYiwgMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwKLQkweDBjZjgsIDB4N2YzYywgMHg3ZTU4LCAweDdjMzAsIDB4N2QzOCwgMHg3OGEwLCAweDcwOGEsIDB4NzU4ZSwKLQkweDc0OTIsIDB4NzY5NiwgMHg3NzlhLCAweGE1OTQsIDB4MDAzZiwgMHhkNGY0LCAweDAxMzgsIDB4ZDdiYywKLQkweDExMjgsIDB4YTc4NCwgMHgwMDdkLCAweDE5MDQsIDB4M2M3NCwgMHgwODcxLCAweGE0OWMsIDB4MDAwZiwKLQkweGEzODIsIDB4MDAwNCwgMHgwMzIwLCAweGEzYTYsIDB4MDAwNywgMHgxOTMwLCAweDI0MTgsIDB4ODUwNywKLQkweGEwODQsIDB4MDAwZiwgMHgwMDAyLCAweDJiNDksIDB4MmMzNCwgMHgyYzcyLCAweDJlZDgsIDB4MzI1NiwKLQkweDMyYWQsIDB4MzM1MywgMHgzM2UyLCAweDM0YjYsIDB4MzU4OCwgMHgyNTllLCAweDI1OWIsIDB4Mjk3MCwKLQkweDJhNTYsIDB4MzIyYSwgMHgyNTliLCAweDA4MGMsIDB4MjU0YywgMHgwMDA1LCAweGEwMDYsIDB4MDAzOCwKLQkweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweGEwMDYsIDB4NzAwMiwgMHg3MDRhLCAweDcwNDIsIDB4NzBjZSwKLQkweDcwNWMsIDB4YTAwNSwgMHgxOTA0LCAweDI2ZWMsIDB4NzA2MCwgMHhhMDg0LCAweDAwMDcsIDB4MDAwMiwKLQkweDI1YjgsIDB4MjYyNiwgMHgyNjJlLCAweDI2MzcsIDB4MjY0MCwgMHgyNmQyLCAweDI2NDksIDB4MjYyNiwKLQkweDc4MzAsIDB4ZDBiYywgMHgxZDEwLCAweDcxZDAsIDB4ZDFiYywgMHgxOWY4LCAweGQxYjQsIDB4MTkwNCwKLQkweDI2MDMsIDB4NzBhMCwgMHhhMDg2LCAweDAwMDEsIDB4MDljMCwgMHg3MGIwLCAweGEwNmQsIDB4NjgwMCwKLQkweGEwNjUsIDB4YTA1NSwgMHg3ODliLCAweDAwODAsIDB4NmIwYywgMHg3YmFhLCAweDY4MDgsIDB4YTA0NSwKLQkweDZkMTAsIDB4NjgwNCwgMHhhMDZkLCAweGEwNWQsIDB4YTg4NiwgMHgwMDAxLCAweDAxMTgsIDB4NjliYywKLQkweDdkYWEsIDB4NzlhYSwgMHg2OGMwLCAweGEwNGQsIDB4NmUxYywgMHgyMDAxLCAweDAwMTAsIDB4MDgwNCwKLQkweDI4MWYsIDB4NzA1YywgMHhhMDA1LCAweDE5MDQsIDB4MjU5ZCwgMHgwMGM2LCAweDAwZDYsIDB4NzBiMCwKLQkweGEwNmQsIDB4NjgwMCwgMHhhMDY1LCAweGEwNTUsIDB4Nzg5YiwgMHgwMDgwLCAweDZiMGMsIDB4N2JhYSwKLQkweDY4MDgsIDB4YTA0NSwgMHg2ZDEwLCAweDY4MDQsIDB4YTA2ZCwgMHhhMDVkLCAweGE4ODYsIDB4MDAwMSwKLQkweDAxMTgsIDB4NjliYywgMHg3ZGFhLCAweDc5YWEsIDB4NjhjMCwgMHhhMDRkLCAweDZlMWMsIDB4MjAwMSwKLQkweDAwMjAsIDB4MDgwNCwgMHgyODFmLCAweDA4MGMsIDB4M2MzMywgMHgxOTA0LCAweDI1OWQsIDB4NzgxYiwKLQkweDAwNjgsIDB4NzBiOCwgMHhhMDZkLCAweDY4YjQsIDB4Nzg1YSwgMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwKLQkweDY4OTgsIDB4NzhkMiwgMHg3OGRhLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDY4YmMsIDB4NzAzZSwKLQkweGMxYjQsIDB4NzFkMiwgMHg3MGI0LCAweGEwNjUsIDB4NjhjMCwgMHg3MDU2LCAweDcwMDMsIDB4MDAwMiwKLQkweDJkMDAsIDB4NzA0YSwgMHhhZDgwLCAweDAwMDksIDB4NzA0MiwgMHgwMDA1LCAweDA4MGMsIDB4M2MzMywKLQkweDExMjAsIDB4NzgxYiwgMHgwMDU0LCAweDcwMDMsIDB4MDAwNCwgMHgwMDA1LCAweDA4MGMsIDB4M2MzMywKLQkweDExMjgsIDB4MjAxMSwgMHgwMDBjLCAweDA0MTksIDB4NzAwMywgMHgwMDA0LCAweDAwMDUsIDB4MDgwYywKLQkweDNjMzMsIDB4MTEyOCwgMHgyMDExLCAweDAwMDYsIDB4MDBkMSwgMHg3MDAzLCAweDAwMDQsIDB4MDAwNSwKLQkweDA4MGMsIDB4M2MzMywgMHgxMTI4LCAweDIwMTEsIDB4MDAwZCwgMHgwMDg5LCAweDcwMDMsIDB4MDAwNCwKLQkweDAwMDUsIDB4MDgwYywgMHgzYzMzLCAweDExNTAsIDB4MjAxMSwgMHgwMDA2LCAweDAwNDEsIDB4NzA3OCwKLQkweDcwN2IsIDB4MDAwMCwgMHgyMDY4LCAweDcwNGEsIDB4NzAwMywgMHgwMDA0LCAweDAwMDUsIDB4NzE3MCwKLQkweGMxZmMsIDB4ODEwNywgMHg3ODgyLCAweDc4OWIsIDB4MDA4MCwgMHhhMjg2LCAweDAwMGMsIDB4MTEyMCwKLQkweDdhYWEsIDB4MjAwMSwgMHgwMDAxLCAweDAwOTgsIDB4YTE4YywgMHgwMDFmLCAweGExOGQsIDB4MDBjMCwKLQkweDc5YWEsIDB4YTI4NiwgMHgwMDBkLCAweDAxMjAsIDB4N2FhYSwgMHgyMDAxLCAweDAwMDIsIDB4MDAzOCwKLQkweDc4YWIsIDB4MDAyMCwgMHg3MTc0LCAweDc5YWEsIDB4N2FhYSwgMHgyMDAxLCAweDAwMDQsIDB4Nzg5YiwKLQkweDAwNjAsIDB4NzhhYSwgMHg3ODViLCAweDAwMDQsIDB4NzgxYiwgMHgwMTEzLCAweDA4MGMsIDB4M2M0NiwKLQkweDcwN2YsIDB4MDAwZiwgMHg3MGQwLCAweGQwYjQsIDB4MDE2OCwgMHhjMGI0LCAweDcwZDIsIDB4MDBjNiwKLQkweDcwYjQsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsIDB4ODAwMSwKLQkweDYwMWEsIDB4MDBjZSwgMHgwMDA1LCAweDcwMTQsIDB4YTAwNSwgMHgxMTM4LCAweDcwZDAsIDB4ZDBiNCwKLQkweDAxMjgsIDB4NzBiNCwgMHhhYzA2LCAweDExMTAsIDB4MGMyOSwgMHgwMDA1LCAweDAwMTYsIDB4NzFhMCwKLQkweGExODYsIDB4MDAwMSwgMHgwNTI4LCAweDAwZDYsIDB4MDAyNiwgMHgyMTAwLCAweDIwMTEsIDB4MDAwMSwKLQkweGEyMTIsIDB4NzBiMCwgMHgyMDY4LCAweDY4MDAsIDB4YWMwNiwgMHgwMTIwLCAweDgyMTEsIDB4MDFiMCwKLQkweDAwYzksIDB4MGNjOCwgMHgwMGM2LCAweDIxMDAsIDB4MjAxMSwgMHgwMDAxLCAweGEyMTIsIDB4NzBiMCwKLQkweDIwNjgsIDB4NjgwMCwgMHgyMDYwLCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsIDB4ODIxMSwKLQkweDAxMTAsIDB4MDA0MSwgMHgwY2IwLCAweDcwYTMsIDB4MDAwMSwgMHgwMGNlLCAweDAwMmUsIDB4MDBkZSwKLQkweDAwMWUsIDB4MDAwNSwgMHhhZGU4LCAweDAwMDUsIDB4NzBhOCwgMHhhZDA2LCAweDExMTAsIDB4NzBhNCwKLQkweDIwNjgsIDB4MDAwNSwgMHgwODBjLCAweDNjMzMsIDB4MTkwNCwgMHgyNTlkLCAweDcwNzgsIDB4MjA2OCwKLQkweDc3NzAsIDB4MDgwYywgMHgzYjZmLCAweDJjNTAsIDB4MDgwYywgMHgzY2NlLCAweDc4OWIsIDB4MDA4MCwKLQkweDY4MTQsIDB4YTA4NCwgMHgwMDFmLCAweGMwYmQsIDB4NzhhYSwgMHg2ZTFjLCAweDIwNDEsIDB4MDAwMSwKLQkweDIwMDEsIDB4MDAwNCwgMHgwODA0LCAweDI4MjQsIDB4MDgwYywgMHgzYzMzLCAweDE5MDQsIDB4MjU5ZCwKLQkweDc4OWIsIDB4MDA4MCwgMHg3MDVjLCAweDIwNjgsIDB4NmYxNCwgMHg3MGQwLCAweGQwYjQsIDB4MDE2OCwKLQkweGMwYjQsIDB4NzBkMiwgMHgwMGM2LCAweDcwYjQsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwKLQkweDYwMGEsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4MDBjZSwgMHgwODBjLCAweDNiNmYsIDB4MmM1MCwKLQkweDA4MGMsIDB4M2NjZSwgMHg2ODI0LCAweGEwMDUsIDB4MDEzMCwgMHhhMDgyLCAweDAwMDYsIDB4MDIwOCwKLQkweDAwMTAsIDB4NjgyNywgMHgwMDA1LCAweDY4MTQsIDB4YTA4NCwgMHgwMDFmLCAweGMwYmQsIDB4NzhhYSwKLQkweDIwMzEsIDB4MDAyMCwgMHgyMDQxLCAweDAwMDEsIDB4MjAwMSwgMHgwMDAzLCAweDA4MDQsIDB4MjgyNCwKLQkweGMyOGQsIDB4NzJkMiwgMHg3MmJjLCAweGEyMDAsIDB4YTAxNSwgMHg3MTUwLCAweDgxMDgsIDB4YTEyYSwKLQkweDAyMDgsIDB4NzFiYywgMHgyMTY0LCAweDY1MDQsIDB4ODVmZiwgMHgxMTcwLCAweDcxNTIsIDB4ODQyMSwKLQkweDFkYTgsIDB4NzBkMCwgMHhkMDhjLCAweDAxMjgsIDB4NzBjYywgMHhhMDA1LCAweDExMTAsIDB4NzBjZiwKLQkweDAwMGEsIDB4MDAwNSwgMHgyMjAwLCAweDBjOTAsIDB4NzBkMCwgMHhjMDhjLCAweDcwZDIsIDB4NzBjZiwKLQkweDAwMDAsIDB4NjAzNCwgMHhhMDA1LCAweDFkYjAsIDB4NjcwOCwgMHhhNzg0LCAweDA3M2YsIDB4MDFkMCwKLQkweGQ3ZDQsIDB4MWQ4MCwgMHhhNzg0LCAweDAwMjEsIDB4MWQ2OCwgMHhhNzg0LCAweDAwMDIsIDB4MDEzMCwKLQkweGE3ODQsIDB4MDAwNCwgMHgwZDM4LCAweGE3YmMsIDB4ZmZmYiwgMHg2NzBhLCAweGE3ODQsIDB4MDIxOCwKLQkweDFkMDgsIDB4YTc4NCwgMHgwMTAwLCAweDAxMzAsIDB4NjAxOCwgMHhhMDA1LCAweDE5ZDgsIDB4YTdiYywKLQkweGZlZmYsIDB4NjcwYSwgMHgyNTY4LCAweDY4MjMsIDB4MDAwMCwgMHg2ZTFjLCAweGE2ODQsIDB4MDAwZSwKLQkweDYzMTgsIDB4MDEyOCwgMHg2MDFjLCAweGEzMDIsIDB4MDIyMCwgMHgwMTE4LCAweDA4NTgsIDB4ODNmZiwKLQkweDE5NDgsIDB4MmQ1OCwgMHgyYzUwLCAweDcxNTIsIDB4ZDdiYywgMHgxMTIwLCAweDcwMjgsIDB4NjAyMiwKLQkweDYwM2EsIDB4MDAxMCwgMHhjN2JjLCAweDY3MGEsIDB4NjhjMCwgMHhhMDY1LCAweGEwNGQsIDB4NjEwMCwKLQkweDJhNjAsIDB4MjA0MSwgMHgwMDAxLCAweDZiMTQsIDB4YTM5YywgMHgwMDFmLCAweGEzOWQsIDB4MDBjMCwKLQkweGQxZmMsIDB4MDExMCwgMHhkNjg0LCAweDAxMTAsIDB4YTM5YywgMHhmZmJmLCAweGQ2YTQsIDB4MDExMCwKLQkweGEzOWQsIDB4MDAyMCwgMHhhNjg0LCAweDAwMGUsIDB4MTkwNCwgMHgyN2Q2LCAweGM3YTUsIDB4NjcwYSwKLQkweDJjMDAsIDB4NjhjNiwgMHg3N2EwLCAweGE3ODYsIDB4MDAwMSwgMHgxMTc4LCAweDcwZDAsIDB4ZDBiNCwKLQkweDExNjAsIDB4NzAwMCwgMHhhMDgyLCAweDAwMDIsIDB4MTI0MCwgMHg3ODMwLCAweGQwYmMsIDB4MTEyOCwKLQkweDc4OWIsIDB4MDA4MCwgMHg3YmFhLCAweDA4MDQsIDB4MjgxZCwgMHg4NzM5LCAweDc3YTIsIDB4Mjc1MCwKLQkweDc3YWMsIDB4YTdiMCwgMHgwMDA1LCAweDcwYTgsIDB4YTYwNiwgMHgxMTA4LCAweDc2YTQsIDB4NzZhZSwKLQkweDJjM2EsIDB4ODczOCwgMHgyZDNhLCAweDg3MzgsIDB4MjgzYSwgMHg4NzM4LCAweDIzM2EsIDB4ODczOCwKLQkweDI1M2EsIDB4NzgzMCwgMHhkMGJjLCAweDAxNTAsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4MzAzZCwKLQkweDcwZDAsIDB4YTA4NCwgMHgzMDNkLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkwLCAweGFhZDUsIDB4MDAwMCwKLQkweDAxMjAsIDB4ODQyMSwgMHgyMjAwLCAweDE5MDQsIDB4MjcyNSwgMHgwMDA1LCAweGQxZGMsIDB4MDkwNCwKLQkweDM3Y2UsIDB4MjAyOSwgMHgwMDIwLCAweGQ2OWMsIDB4MTEyMCwgMHg4NTI4LCAweGQ2OGMsIDB4MTEwOCwKLQkweDg1MjgsIDB4ODg0MCwgMHg2ZjE0LCAweDYxMGMsIDB4ODEwOCwgMHhhMThjLCAweDAwZmYsIDB4NzBjOCwKLQkweGExNjAsIDB4MmM2NCwgMHg4Y2ZmLCAweDAxODgsIDB4NjAxNCwgMHhhNzA2LCAweDFkZDAsIDB4NjBiOCwKLQkweDgwMDEsIDB4NjBiYSwgMHgxZDg4LCAweDJhNjAsIDB4NjAwOCwgMHhhMDg1LCAweDAxMDAsIDB4NjAwYSwKLQkweDIyMDAsIDB4ODQyMSwgMHgxOTA0LCAweDI3MjUsIDB4MDAwNSwgMHgyYTYwLCAweDYxMGUsIDB4NjliZSwKLQkweDJjMDAsIDB4NjhjNiwgMHg4ODQwLCAweDYwMDgsIDB4YzBkNSwgMHg2MDBhLCAweDc3YTAsIDB4YTc4NiwKLQkweDAwMDEsIDB4MTkwNCwgMHgyN2FkLCAweDcwZDAsIDB4ZDBiNCwgMHgxOTA0LCAweDI3YWQsIDB4NzAwMCwKLQkweGEwODIsIDB4MDAwMiwgMHgxYTA0LCAweDI3YWQsIDB4NzgzMCwgMHhkMGJjLCAweDE5MDQsIDB4MjdhZCwKLQkweDc4OWIsIDB4MDA4MCwgMHg3YmFhLCAweDdkYWEsIDB4NzlhYSwgMHgyMDAxLCAweDAwMDIsIDB4MDAwNiwKLQkweDYwMTgsIDB4ODAwMCwgMHg2MDFhLCAweDAwMDgsIDB4MDAwNiwgMHgyOTYwLCAweDYxMDQsIDB4MmE2MCwKLQkweDA4MGMsIDB4M2NlMSwgMHgxNTkwLCAweGExODQsIDB4MDAxOCwgMHgwMTgwLCAweGExODQsIDB4MDAxMCwKLQkweDAxMTgsIDB4MDgwYywgMHgzOTc3LCAweDE1NDgsIDB4YTE4NCwgMHgwMDA4LCAweDAxMzgsIDB4NjlhMCwKLQkweGExODQsIDB4MDYwMCwgMHgxMTE4LCAweDA4MGMsIDB4Mzg5NSwgMHgwMGY4LCAweDY5YTAsIDB4YTE4NCwKLQkweDFlMDAsIDB4MDUyOCwgMHhhMTg0LCAweDA4MDAsIDB4MDE3OCwgMHgwMGM2LCAweDI5NjAsIDB4NjAwMCwKLQkweGEwODUsIDB4MjAwMCwgMHg2MDAyLCAweDYxMDQsIDB4YTE4ZCwgMHgwMDEwLCAweDYxMDYsIDB4MDBjZSwKLQkweDA4MGMsIDB4Mzk3NywgMHgxMTUwLCAweDY5YTAsIDB4YTE4NCwgMHgwMjAwLCAweDAxMTgsIDB4MDgwYywKLQkweDM4ZGEsIDB4MDAxOCwgMHhhMTg0LCAweDA0MDAsIDB4MTlmMCwgMHg2OWEwLCAweGExODQsIDB4MTAwMCwKLQkweDAxMzAsIDB4NjkxNCwgMHhhMThjLCAweGZmMDAsIDB4ODEwZiwgMHgwODBjLCAweDIzOWMsIDB4MDAyZSwKLQkweGE2OGMsIDB4MDBlMCwgMHhhNjg0LCAweDAwNjAsIDB4MDEyOCwgMHhhMDg2LCAweDAwNjAsIDB4MTExMCwKLQkweGExOGQsIDB4NDAwMCwgMHhhMThkLCAweDAxMDQsIDB4NjliNiwgMHg3ODliLCAweDAwNjAsIDB4MjgwMCwKLQkweDc4YWEsIDB4NjgxOCwgMHhjMGZkLCAweDY4MWEsIDB4ZDZiYywgMHgwMTY4LCAweGMwZmMsIDB4NzA4MywKLQkweDAwMDAsIDB4YTA4YSwgMHgwMDBkLCAweDAzMjgsIDB4YTA4YSwgMHgwMDBjLCAweDcxODIsIDB4MjAwMSwKLQkweDAwMGMsIDB4ODAwYywgMHg3MTg2LCAweDc4YWEsIDB4MzUxOCwgMHgzMzQwLCAweDM0MjgsIDB4ODAwMCwKLQkweDgwYWMsIDB4YWY4MCwgMHgwMDJiLCAweDIwYTAsIDB4Nzg5YiwgMHgwMDAwLCAweGFkODAsIDB4MDAwYiwKLQkweDIwOTgsIDB4NTNhNiwgMHgyM2E4LCAweDI4OTgsIDB4MjVhMCwgMHhhMjg2LCAweDAwMjAsIDB4MTUwOCwKLQkweDcwZDAsIDB4YzBiNSwgMHg3MGQyLCAweDJjMDAsIDB4NzBiNiwgMHgyZDAwLCAweDcwYmEsIDB4NjgxNCwKLQkweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweGEyODYsIDB4MDAwMiwgMHgwOTA0LCAweDI4ZjUsIDB4NzBhMCwKLQkweDgwMDAsIDB4NzBhMiwgMHg3NGIwLCAweGE0OTgsIDB4MDAwNSwgMHg3MGE4LCAweGEzMDYsIDB4MTEwOCwKLQkweDczYTQsIDB4NzNiMiwgMHhhMjg2LCAweDAwMTAsIDB4MDkwNCwgMHgyNTlkLCAweDAwZGUsIDB4MDBjZSwKLQkweDAwMDUsIDB4NzAwMCwgMHhhMDA1LCAweDE5ZTAsIDB4YTI4NiwgMHgwMDAyLCAweDE5MDQsIDB4MjkwYywKLQkweDA4MGMsIDB4M2MzMywgMHgxOWE4LCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsIDB4MjA5MSwKLQkweDgwMDAsIDB4NzgxYiwgMHgwMDY4LCAweDY4YjQsIDB4Nzg1YSwgMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwKLQkweDY4OTgsIDB4NzhkMiwgMHg3OGRhLCAweDIwOTEsIDB4ODAwMSwgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwKLQkweDAxMjYsIDB4MDBkNiwgMHgwMGM2LCAweDcwZDAsIDB4YTA4NCwgMHgyZTAwLCAweDIwOTAsIDB4MDBjZSwKLQkweDAwZGUsIDB4MDEyZSwgMHgyOTAwLCAweDcwNTYsIDB4NjhiYywgMHg3MDNlLCAweDcwMDMsIDB4MDAwMiwKLQkweDJkMDAsIDB4NzA0YSwgMHhhZDgwLCAweDAwMDksIDB4NzA0MiwgMHg3ODMwLCAweGQwYmMsIDB4MDE0MCwKLQkweDIwOTEsIDB4MzAzZCwgMHg3MGQwLCAweGEwODQsIDB4MzAzZCwgMHgyMDkxLCAweDgwMDAsIDB4MjA5MCwKLQkweDcwYTAsIDB4YTAwNSwgMHgxMTA4LCAweDAwMDUsIDB4ODQyMSwgMHgwZGU4LCAweDcyNGMsIDB4NzBiYywKLQkweGEyMDAsIDB4YTAxNSwgMHgwODA0LCAweDI3MjUsIDB4YTI4NiwgMHgwMDEwLCAweDE1NjAsIDB4MDgwYywKLQkweDNjMzMsIDB4MTkwNCwgMHgyOGEwLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsIDB4NzgxYiwKLQkweDAwNjgsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsIDB4NzhkMiwKLQkweDc4ZGEsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsIDB4NzBhMCwgMHg4MDAwLCAweDcwYTIsIDB4NzRiMCwKLQkweGE0OTAsIDB4MDAwNSwgMHg3MGE4LCAweGEyMDYsIDB4MTEwOCwgMHg3MmE0LCAweDcyYjIsIDB4MjkwMCwKLQkweDcwNTYsIDB4NjhiYywgMHg3MDNlLCAweDcwMDMsIDB4MDAwMiwgMHgyZDAwLCAweDcwNGEsIDB4YWQ4MCwKLQkweDAwMDksIDB4NzA0MiwgMHgwMDA1LCAweDZiYjQsIDB4YTM5ZCwgMHgyMDAwLCAweDdiNWEsIDB4NjgxNCwKLQkweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweDZiOTQsIDB4N2JkNiwgMHg3YmRlLCAweDZlOTgsIDB4N2VkMiwKLQkweDdlZGEsIDB4NzgxYiwgMHgwMDY4LCAweDI5MDAsIDB4NzA1NiwgMHg3MjAyLCAweDc4MDgsIDB4YzA4ZCwKLQkweDc4MGEsIDB4MjMwMCwgMHhhNjA1LCAweDAxNzAsIDB4NzBkMCwgMHhhMDg0LCAweDJlMDAsIDB4YTA4NiwKLQkweDI2MDAsIDB4MTExOCwgMHgyMDA5LCAweDAwMDAsIDB4MDAxMCwgMHgyMDA5LCAweDAwMDEsIDB4YTI4NCwKLQkweDAwMGYsIDB4MDAyMywgMHhhZDgwLCAweDAwMDksIDB4NzA0MiwgMHgwMDA1LCAweDI5NmUsIDB4NDFkOSwKLQkweDQxZDksIDB4NDFjNywgMHg0MWQ5LCAweDI5NmUsIDB4Mjk2ZSwgMHgyOTZlLCAweDA4MGMsIDB4MjU0YywKLQkweDc4MDgsIDB4YTA4NCwgMHhmZmZkLCAweDc4MGEsIDB4MDBmNiwgMHgyMDc5LCAweDQ2MDAsIDB4NzhhYywKLQkweDAwZmUsIDB4ZDA4NCwgMHgwMWIwLCAweDcwNjAsIDB4YTA4NiwgMHgwMDAxLCAweDA5MDQsIDB4MmEzMiwKLQkweDcwNjAsIDB4YTA4NiwgMHgwMDA1LCAweDExNTgsIDB4NzA3OCwgMHgyMDY4LCAweDY4MWIsIDB4MDAwNCwKKwkweDAxMTAsIDB4YzBjNSwgMHg3ODEyLCAweDA4MGMsIDB4MWIzNCwgMHgwMDBlLCAweDc4MTIsIDB4MDgwYywKKwkweDFiN2YsIDB4MjAwMSwgMHg0MDA3LCAweDA4MDQsIDB4MTNiYywgMHg2MTA0LCAweGExOGMsIDB4MDBmZiwKKwkweGExODYsIDB4MDAwNSwgMHgxMTE4LCAweDYwMWMsIDB4YzBiZCwgMHg2MDFlLCAweDc0YzQsIDB4NzNjOCwKKwkweDcyY2MsIDB4NjAxNCwgMHgyMDkxLCAweDgwMDAsIDB4MDBlNiwgMHgyMDA5LCAweDAwMTIsIDB4ZDBmYywKKwkweDExMTgsIDB4MjA3MSwgMHg0NzQwLCAweDAwMTgsIDB4MjA3MSwgMHg0NzgwLCAweGMxZmQsIDB4NzkyYSwKKwkweDcwNjMsIDB4MDAwNSwgMHg3MWQwLCAweGMxYzQsIDB4NzFkMiwgMHg3MzY2LCAweDcyNmEsIDB4NzQ2ZSwKKwkweDcwNzIsIDB4NzA3NywgMHgwMDAwLCAweDJjMDAsIDB4NzA3YSwgMHhhMDJlLCAweDI1MzAsIDB4NjExYywKKwkweGExODQsIDB4MDA2MCwgMHgwMTEwLCAweDA4MGMsIDB4M2ZlOSwgMHgwMGVlLCAweDY1OTYsIDB4NjVhNiwKKwkweDY2OWEsIDB4NjZhYSwgMHg2MGFmLCAweDAwMDAsIDB4NjBiMywgMHgwMDAwLCAweDY3MTQsIDB4NjAyMywKKwkweDAwMDAsIDB4NjAyNCwgMHhhMDk2LCAweDAwMDEsIDB4MTExMCwgMHg4MDAwLCAweDYwMjYsIDB4MDgwYywKKwkweDIyZDUsIDB4MjA5MSwgMHg4MDAxLCAweDAwMDUsIDB4NzBjMywgMHg0MDA1LCAweDA4MDQsIDB4MTNiZCwKKwkweDIwYTksIDB4MDAwNSwgMHgyMDk5LCAweDQ3MTQsIDB4MjA5MSwgMHg4MDAwLCAweDUzMGEsIDB4MjA5MSwKKwkweDgwMDEsIDB4MjEwMCwgMHhhMjEwLCAweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwKKwkweDAwMDAsIDB4MDAwNSwgMHg3MWM0LCAweDcwYzcsIDB4MDAwMCwgMHg3OTFlLCAweDA4MDQsIDB4MTNiYSwKKwkweDcxYzQsIDB4NzFjNiwgMHgyMTY4LCAweDAwMTAsIDB4MjA2OSwgMHgxMDAwLCAweDY5MGMsIDB4YTAxNiwKKwkweDJkMDQsIDB4YTIxMCwgMHg4ZDY4LCAweDgxMDksIDB4MWRkOCwgMHhhMjg1LCAweDAwMDAsIDB4MTExOCwKKwkweDcwYzMsIDB4NDAwMCwgMHgwMDEwLCAweDcwYzMsIDB4NDAwMywgMHg3MGNhLCAweDA4MDQsIDB4MTNiZCwKKwkweDc5NjQsIDB4NzFjNiwgMHg3MWM0LCAweGExODIsIDB4MDAwMywgMHgxYTA0LCAweDEzYjMsIDB4Nzk2NiwKKwkweDA4MDQsIDB4MTNiYSwgMHg3OTY0LCAweDcxYzYsIDB4MDgwNCwgMHgxM2JhLCAweDc5MDAsIDB4NzFjNiwKKwkweDcxYzQsIDB4NzkwMiwgMHgwODA0LCAweDEzYmEsIDB4NzkwMCwgMHg3MWM2LCAweDA4MDQsIDB4MTNiYSwKKwkweDcwYzQsIDB4MjAxMSwgMHgwMDAwLCAweGEwOGMsIDB4MDAwZCwgMHgwMTYwLCAweDgxMGMsIDB4MDIzMCwKKwkweDgyMTAsIDB4ODEwYywgMHg4MTBjLCAweDAyMTAsIDB4ODIxMCwgMHg4MTBjLCAweDgxZmYsIDB4MTkwNCwKKwkweDEzYjQsIDB4ODIxMCwgMHg3YTBlLCAweGQyOGMsIDB4MDUzOCwgMHg3OTEwLCAweGMxY2QsIDB4NzkxMiwKKwkweDIwMDksIDB4MDAyMSwgMHgyMDE5LCAweDAwMDMsIDB4ZDI4NCwgMHgwMWMwLCAweDgxMDgsIDB4MjAxOSwKKwkweDAwNDEsIDB4MjAxMSwgMHg4ZjRlLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQyLCAweDgyMTAsIDB4MjMxMiwKKwkweDIwMTksIDB4MDA0MywgMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQ2LCAweDgyMTAsIDB4MjMxMiwKKwkweDIwMTksIDB4MDA0NywgMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDA2LCAweDIwMTEsIDB4OGY1MywKKwkweDIxMTIsIDB4MjAxMSwgMHg4ZjczLCAweDIzMTIsIDB4NzkwNCwgMHg3ODA2LCAweDA4MDQsIDB4MTNiOSwKKwkweDc4MDQsIDB4NzBjNiwgMHgwODA0LCAweDEzYmEsIDB4NzFjNCwgMHhkMWZjLCAweDExMTgsIDB4MjAxMSwKKwkweDRiYzAsIDB4MDAxMCwgMHgyMDExLCAweDRjNDAsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywKKwkweDgwMDMsIDB4ODAwMywgMHhhMjY4LCAweDIwMTEsIDB4MDAwMCwgMHg2ODE0LCAweGQwZmMsIDB4MDExMCwKKwkweGEyOTUsIDB4MDIwMCwgMHhkMGI0LCAweDAxMTAsIDB4YTI5NSwgMHgwMDAxLCAweDZiMGMsIDB4NjgwMCwKKwkweDcwZGEsIDB4MDgwNCwgMHgxM2I3LCAweDc4MTQsIDB4ZDBmNCwgMHgwMTMwLCAweDIwMDEsIDB4NDAwNywKKwkweDcwZGIsIDB4MDAwMCwgMHhhMDA1LCAweDAwNDgsIDB4ZDBmYywgMHgwMTMwLCAweDIwMDEsIDB4NDAwNywKKwkweDcwZGIsIDB4MDAwMSwgMHhhMDA1LCAweDAwMDgsIDB4YTAwNiwgMHgwMDA1LCAweDc4MTQsIDB4ZDBmNCwKKwkweDAxMzAsIDB4MjAwMSwgMHg0MDA3LCAweDcwZGIsIDB4MDAwMCwgMHhhMDA1LCAweDAwMDgsIDB4YTAwNiwKKwkweDAwMDUsIDB4NzgxNCwgMHhkMGZjLCAweDAxMzAsIDB4MjAwMSwgMHg0MDA3LCAweDcwZGIsIDB4MDAwMSwKKwkweGEwMDUsIDB4MDAwOCwgMHhhMDA2LCAweDAwMDUsIDB4NzExMiwgMHg3MjFhLCAweDczMWUsIDB4NzgxMCwKKwkweGQwYzQsIDB4MDExMCwgMHg3NDIyLCAweDc1MjYsIDB4YWM4MCwgMHgwMDAxLCAweDgxMDgsIDB4ODEwYywKKwkweDgxYTksIDB4ODA5OCwgMHgyMGExLCAweDAwMzAsIDB4NzAwMywgMHgwMDAwLCAweDYwODQsIDB4MjBhMiwKKwkweDUzYTYsIDB4NzAwNywgMHgwMDAxLCAweDc5NzQsIDB4YTE4NCwgMHhmZjAwLCAweDAxNDAsIDB4ODEwZiwKKwkweDgxMGMsIDB4ODEwYywgMHg4MDA0LCAweDgwMDQsIDB4ODAwNywgMHhhMTAwLCAweDAwMTgsIDB4ODEwNywKKwkweDgwMDQsIDB4ODAwNCwgMHg3OTdjLCAweGExMDgsIDB4N2E3OCwgMHhhMDA2LCAweGEyMTEsIDB4N2QxMCwKKwkweGQ1YzQsIDB4MDEyMCwgMHg3Yjg0LCAweGEzMTksIDB4N2M4MCwgMHhhNDIxLCAweDcwMDgsIDB4ZDBmYywKKwkweDBkZTgsIDB4NzAwMywgMHgwMDAxLCAweDcwMDcsIDB4MDAwNiwgMHg3MTFhLCAweDcyMWUsIDB4N2QxMCwKKwkweGQ1YzQsIDB4MDExMCwgMHg3MzIyLCAweDc0MjYsIDB4YTA4NCwgMHgwMWUwLCAweDAwMDUsIDB4Nzg0OCwKKwkweGEwNjUsIDB4MDEyMCwgMHgyYzA0LCAweDc4NGEsIDB4MjA2MywgMHgwMDAwLCAweDAwMDUsIDB4MDBmNiwKKwkweDIwNzksIDB4NDcwMCwgMHg3ODQ4LCAweDIwNjIsIDB4MmMwMCwgMHhhMDA1LCAweDExMTAsIDB4MDgwYywKKwkweDI1NzUsIDB4Nzg0YSwgMHgwMGZlLCAweDAwMDUsIDB4MjAxMSwgMHg5MTAwLCAweDdhNGEsIDB4N2JjNCwKKwkweDgzMTksIDB4MDEyOCwgMHhhMjgwLCAweDAwMzIsIDB4MjAxMiwgMHgyMDEwLCAweDBjYzgsIDB4MjAxMywKKwkweDAwMDAsIDB4MDAwNSwgMHgwMDE2LCAweDAwMjYsIDB4ZDdmYywgMHgxMTE4LCAweDIwMTEsIDB4NGNjMCwKKwkweDAwMTAsIDB4MjAxMSwgMHg2Y2MwLCAweGE3ODQsIDB4MGYwMCwgMHg4MDBiLCAweGE3ODQsIDB4MDAxZiwKKwkweDAxMjAsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMTA1LCAweGEyNjgsIDB4MDAyZSwKKwkweDAwMWUsIDB4MDAwNSwgMHgwYzM5LCAweDI5MDAsIDB4NjgyYSwgMHgyYTAwLCAweDY4MmUsIDB4NjgwOCwKKwkweGEwODQsIDB4ZjllZiwgMHhhODBkLCAweDY5MGEsIDB4MDBlNiwgMHhkN2ZjLCAweDExMjgsIDB4MjAwOSwKKwkweDQ3NTIsIDB4MjA3MSwgMHg0NzQwLCAweDAwMjAsIDB4MjAwOSwgMHg0NzkyLCAweDIwNzEsIDB4NDc4MCwKKwkweDIxMGMsIDB4NjgwNCwgMHhhMDA1LCAweDAxNDgsIDB4YTExNiwgMHgxMTM4LCAweDIwNjAsIDB4NjAwMCwKKwkweDY4MDYsIDB4MDAxNiwgMHgyMDBiLCAweDAwMDAsIDB4MDAxOCwgMHgyMDA5LCAweDAwMDAsIDB4MDAxNiwKKwkweDY4MDQsIDB4YTA2NSwgMHgwMTc4LCAweDYwMDAsIDB4NjgwNiwgMHgwNDIxLCAweDA4MGMsIDB4MWRiMiwKKwkweDY4MTAsIDB4NzkwOCwgMHg4MTA5LCAweDc5MGEsIDB4ODAwMSwgMHg2ODEyLCAweDFkODgsIDB4NzkxMCwKKwkweGMxYTUsIDB4NzkxMiwgMHgwMDFlLCAweDY5MDIsIDB4NjkwNiwgMHgyZDAwLCAweDIwNjAsIDB4MDgwYywKKwkweDI2YmYsIDB4MDBlZSwgMHgwMDA1LCAweGEwNjUsIDB4MDE2MCwgMHgyMDA4LCAweDYwOWMsIDB4YTAwNSwKKwkweDAxMjgsIDB4MjA2MiwgMHg2MDlmLCAweDAwMDAsIDB4YTA2NSwgMHgwY2MwLCAweDc4NDgsIDB4Nzk0YSwKKwkweDIwNjIsIDB4MDAwNSwgMHg2MDA3LCAweDAxMDMsIDB4NjA4ZiwgMHgwMDAwLCAweDIwYTksIDB4MDAxYywKKwkweGFjODAsIDB4MDAwNSwgMHgyMGEwLCAweDIwMDEsIDB4MDAwMCwgMHg0MGE0LCAweDY4MjgsIDB4NjAxYSwKKwkweDY4MmMsIDB4NjAyMiwgMHgwMDA1LCAweDAwZTYsIDB4ZDdmYywgMHgxMTI4LCAweDIwNzEsIDB4NDc0MCwKKwkweDIwMzEsIDB4NDdjMCwgMHgwMDIwLCAweDIwNzEsIDB4NDc4MCwgMHgyMDMxLCAweDQ5YzAsIDB4NzA0YywKKwkweGEwOGMsIDB4MDIwMCwgMHgxMTI4LCAweGE2MDgsIDB4MmQwYSwgMHg4MDAwLCAweDcwNGUsIDB4YTAwNiwKKwkweDAwZWUsIDB4MDAwNSwgMHgwMGY2LCAweGQ3ZmMsIDB4MTExOCwgMHgyMDc5LCAweDQ3NDAsIDB4MDAxMCwKKwkweDIwNzksIDB4NDc4MCwgMHgwODBjLCAweDFiOWEsIDB4MjA5MSwgMHg4MDAwLCAweDY4MDQsIDB4NzgwYSwKKwkweGEwNjUsIDB4MDVmMCwgMHgwMDMwLCAweDJjMDAsIDB4NzgwYSwgMHgyMDYwLCAweDYwMDAsIDB4YTA2NSwKKwkweDA1YjgsIDB4NjAxMCwgMHhhMzA2LCAweDFkYjgsIDB4NjAwYywgMHhhMjA2LCAweDFkYTAsIDB4MmMyOCwKKwkweDc4NDgsIDB4YWMwNiwgMHgxMTA4LCAweDA0NDgsIDB4NjgwNCwgMHhhYzA2LCAweDExNDAsIDB4NjAwMCwKKwkweDIwNjAsIDB4NjgwNiwgMHhhMDA1LCAweDExMTgsIDB4NjgwMywgMHgwMDAwLCAweDAwNDgsIDB4NjQwMCwKKwkweDc4MDgsIDB4MjA2MCwgMHg2NDAyLCAweGE0ODYsIDB4MDAwMCwgMHgxMTEwLCAweDJjMDAsIDB4NjgwMiwKKwkweDI1NjAsIDB4MDgwYywgMHgxYzAyLCAweDYwMWIsIDB4MDAwNSwgMHg2MDIzLCAweDAwMjAsIDB4MDBmZSwKKwkweDA4MGMsIDB4MWRiMiwgMHgwMGY2LCAweDc5MDgsIDB4ODEwOSwgMHg3OTBhLCAweDY4MTAsIDB4ODAwMSwKKwkweDY4MTIsIDB4MTExOCwgMHg3ODEwLCAweGMwYTUsIDB4NzgxMiwgMHgyMDAxLCAweGZmZmYsIDB4YTAwNSwKKwkweDAwZmUsIDB4MDAwNSwgMHgwMDc2LCAweDI3MDAsIDB4MjAzOSwgMHgwMDAwLCAweGQwZmMsIDB4MDEwOCwKKwkweGM3ZmQsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMDgsIDB4MjA5MSwKKwkweDgwMDAsIDB4MDgwYywgMHgxYmIyLCAweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDFkZDAsIDB4YTdiYywKKwkweGZmMDAsIDB4ODczZiwgMHg4NzM4LCAweDg3M2YsIDB4YTc4NCwgMHgwZjAwLCAweDFkOTAsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDA3ZSwgMHgwMDA1LCAweDc4NmMsIDB4MjAwOSwgMHg4Zjc0LCAweDIxMGMsIDB4YTEwZCwKKwkweDAxMTgsIDB4YTA2NSwgMHgwODA0LCAweDIwYTEsIDB4MjA2MSwgMHgwMDAwLCAweDYwMTgsIDB4ZDA4NCwKKwkweDExYjgsIDB4NzgxMCwgMHhkMDhjLCAweDAxMzAsIDB4YzA4YywgMHg3ODEyLCAweGM3ZmMsIDB4MjA2OSwKKwkweDQ3NDAsIDB4MDAyOCwgMHhjMDhkLCAweDc4MTIsIDB4MjA2OSwgMHg0NzgwLCAweGM3ZmQsIDB4MjA5MSwKKwkweDgwMDAsIDB4NjgxYywgMHg2ODFmLCAweDAwMDAsIDB4MjA5MSwgMHg4MDAxLCAweGEwMDUsIDB4MTEwOCwKKwkweDAwMDUsIDB4YTA4YywgMHhmZmYwLCAweDAxMTAsIDB4MDgwYywgMHgyNTc1LCAweDAwMDIsIDB4MWNkNywKKwkweDFjZGEsIDB4MWNlMCwgMHgxY2U0LCAweDFjZDgsIDB4MWNlOCwgMHgxY2Q4LCAweDFjZDgsIDB4MWNkOCwKKwkweDFjZWUsIDB4MWQxOCwgMHgxZDFiLCAweDFkMjAsIDB4MWQyOSwgMHgxY2Q4LCAweDFjZDgsIDB4MDAwNSwKKwkweDA4MGMsIDB4MjU3NSwgMHgwODBjLCAweDFjN2EsIDB4MjAwMSwgMHg4MDAxLCAweDA4MDQsIDB4MWQzMiwKKwkweDIwMDEsIDB4ODAwMywgMHgwODA0LCAweDFkMzIsIDB4MjAwMSwgMHg4MDA0LCAweDA4MDQsIDB4MWQzMiwKKwkweDA4MGMsIDB4MWM3YSwgMHgyMDAxLCAweDgwMDYsIDB4MDgwNCwgMHgxZDMyLCAweDIwMTEsIDB4ODAwYSwKKwkweDIwOTEsIDB4ODAwMCwgMHhkN2ZjLCAweDExMTgsIDB4MjA2OSwgMHg0NzQwLCAweDAwMTAsIDB4MjA2OSwKKwkweDQ3ODAsIDB4MjAzOCwgMHg2ODAwLCAweGEwODYsIDB4MDAwMCwgMHgwMTIwLCAweDZmMWUsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDAwNSwgMHgwMDI2LCAweDY4NzAsIDB4YTBiYywgMHhmZjAwLCAweDIwNDEsIDB4MDAyMSwKKwkweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMTAsIDB4MDgwYywgMHgxYmIyLCAweDg3MzgsIDB4YTc4NCwKKwkweDAwMWYsIDB4MWRkMCwgMHgyMDkxLCAweDgwMDEsIDB4MDAwZSwgMHg2OTcwLCAweDcxYzYsIDB4MDBkMCwKKwkweDIwMDEsIDB4ODAwYywgMHgwMGI4LCAweDA4MGMsIDB4MWM3YSwgMHgyMDAxLCAweDgwMGQsIDB4MDA5MCwKKwkweGQ3ZmMsIDB4MDExMCwgMHg3OGU0LCAweDAwMDgsIDB4NzhlMCwgMHg3MGM2LCAweDIwMDEsIDB4ODAwZSwKKwkweDAwNDgsIDB4ZDdmYywgMHgwMTEwLCAweDc4ZWMsIDB4MDAwOCwgMHg3OGU4LCAweDcwYzYsIDB4MjAwMSwKKwkweDgwMGYsIDB4MDAwMCwgMHg3MGMyLCAweGQ3ZmMsIDB4MTExOCwgMHg3MGRiLCAweDAwMDAsIDB4MDAxMCwKKwkweDcwZGIsIDB4MDAwMSwgMHgyMDYxLCAweDAwMDAsIDB4NjAxYiwgMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwKKwkweDAwMDUsIDB4YWM4MCwgMHgwMDAxLCAweDgxZmYsIDB4MDUxOCwgMHgyMDk5LCAweDAwMzAsIDB4MjBhMCwKKwkweDcwMGMsIDB4YTA4NCwgMHgwN2ZmLCAweDAxMDAsIDB4NzAxOCwgMHgwMDA2LCAweDcwMWMsIDB4MDAwNiwKKwkweDcwMjAsIDB4MDAwNiwgMHg3MDI0LCAweDAwMDYsIDB4NzExMiwgMHg4MWFjLCAweDcyMWEsIDB4NzMxZSwKKwkweDc0MjIsIDB4NzUyNiwgMHg3MDAzLCAweDAwMDEsIDB4NzAwNywgMHgwMDAxLCAweDcwMDgsIDB4ODAwYiwKKwkweDFlZTgsIDB4NzAwNywgMHgwMDAyLCAweGEwOGMsIDB4MDFlMCwgMHgxMTEwLCAweDUzYTUsIDB4YTAwNiwKKwkweDcwMDMsIDB4MDAwMCwgMHg3MDA3LCAweDAwMDQsIDB4MDAwZSwgMHg3MDI2LCAweDAwMGUsIDB4NzAyMiwKKwkweDAwMGUsIDB4NzAxZSwgMHgwMDBlLCAweDcwMWEsIDB4MDAwNSwgMHgyMDExLCAweDAwMjAsIDB4MjAwOSwKKwkweDAwMTAsIDB4NmIwYSwgMHg2YzBlLCAweDY4MWYsIDB4MDIwMSwgMHg2ODAzLCAweGZkMjAsIDB4NjgwNywKKwkweDAwMzgsIDB4NmExYSwgMHgyZDAwLCAweGEwZTgsIDB4MDAwOCwgMHhhMjkwLCAweDAwMDQsIDB4ODEwOSwKKwkweDFkODAsIDB4MDAwNSwgMHg3MGVjLCAweGQwZGMsIDB4MTUyMCwgMHgyMDI5LCAweDAwMDEsIDB4NzgxNCwKKwkweGQwY2MsIDB4MTE2MCwgMHg3MGVjLCAweGQwZTQsIDB4MjAxOSwgMHgwYzBhLCAweDIwMjEsIDB4MDAwYSwKKwkweDExMjAsIDB4MjAxOSwgMHgwYzBjLCAweDIwMjEsIDB4MDAwYywgMHgwMDcwLCAweDcwZWMsIDB4ZDBlNCwKKwkweDExMjgsIDB4MjAxOSwgMHgxODBjLCAweDIwMjEsIDB4MDAwYywgMHgwMDMwLCAweDIwMTksIDB4MTgwOSwKKwkweDIwMjEsIDB4MDAwOSwgMHhhNWFkLCAweDAyMDAsIDB4NmIwYSwgMHg2YzBlLCAweDZkMWUsIDB4NjgwNywKKwkweDAwMzgsIDB4MDAwNSwgMHg2MDA0LCAweDYwODYsIDB4MmMwOCwgMHgyMDYzLCAweDAwMDAsIDB4Nzg2OCwKKwkweGEwMDUsIDB4Nzk2YSwgMHgwMTEwLCAweDJjMDIsIDB4MDAwOCwgMHg3OTZlLCAweDAwMDUsIDB4MDBjNiwKKwkweDIwNjEsIDB4NDcwMCwgMHg2ODg3LCAweDAxMDMsIDB4MmQwOCwgMHgyMDZiLCAweDAwMDAsIDB4NjA2OCwKKwkweGEwMDUsIDB4NjE2YSwgMHgwMTEwLCAweDJkMDIsIDB4MDAwOCwgMHg2MTZlLCAweDAwY2UsIDB4MDAwNSwKKwkweDIwOTEsIDB4ODAwMCwgMHgyYzA0LCAweDc4NmUsIDB4YTAwNSwgMHgxMTA4LCAweDc4NmEsIDB4MjA5MSwKKwkweDgwMDEsIDB4NjA5YywgMHhhMDA1LCAweDAxODgsIDB4MDBjNiwgMHgyMDYwLCAweDIwMDgsIDB4NjA5YywKKwkweGEwMDUsIDB4MDEzOCwgMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwgMHhhMDY1LCAweDYwOWMsIDB4YTAwNSwKKwkweDFkYzgsIDB4Nzg0OCwgMHg3OTRhLCAweDIwNjIsIDB4MDBjZSwgMHg3ODQ4LCAweDIwNjIsIDB4NjA5ZiwKKwkweDAwMDAsIDB4YWM4NSwgMHgwMDAwLCAweDExMTAsIDB4MDgwYywgMHgyNTc1LCAweDc4NGEsIDB4MDAwNSwKKwkweDIwYTksIDB4MDAxMCwgMHhhMDA2LCAweDgwMDQsIDB4ODA4NiwgMHg4MThlLCAweDEyMDgsIDB4YTIwMCwKKwkweDFmMDQsIDB4MWRmYywgMHg4MDg2LCAweDgxOGUsIDB4MDAwNSwgMHgwMTU2LCAweDIwYTksIDB4MDAxMCwKKwkweGEwMDUsIDB4MDFiOCwgMHhhMTFhLCAweDEyYTgsIDB4ODIxMywgMHg4MThkLCAweDAyMjgsIDB4YTExYSwKKwkweDEyMjAsIDB4MWYwNCwgMHgxZTBjLCAweDAwMjgsIDB4YTExYSwgMHgyMzA4LCAweDgyMTAsIDB4MWYwNCwKKwkweDFlMGMsIDB4MDAwNiwgMHgzMjAwLCAweGEwODQsIDB4ZWZmZiwgMHgyMDgwLCAweDAwMGUsIDB4MDE1ZSwKKwkweDAwMDUsIDB4MDAwNiwgMHgzMjAwLCAweGEwODUsIDB4MTAwMCwgMHgwY2I4LCAweDdkNzQsIDB4NzBkMCwKKwkweGE1MDYsIDB4MDkwNCwgMHgxZWRhLCAweDc4MTAsIDB4MjA1MCwgMHgwODBjLCAweDFiNzcsIDB4MDkwNCwKKwkweDFlZGEsIDB4YTA0NiwgMHg3OTcwLCAweDI1MDAsIDB4ODAwMCwgMHhhMTEyLCAweDIwMDksIDB4MDA0MCwKKwkweDEyMDgsIDB4MDAzMCwgMHg3MmQwLCAweGEyMDYsIDB4MDExOCwgMHg4ODQwLCAweDIwMDksIDB4MDA4MCwKKwkweDAwYzYsIDB4NzExMiwgMHg3MDA3LCAweDAwMDEsIDB4MjA5OSwgMHgwMDMwLCAweDIwYTksIDB4MDAyMCwKKwkweGFjODAsIDB4MDAwMSwgMHgyMGEwLCAweDIwNjEsIDB4MDAwMCwgMHg4OGZmLCAweDAxMTAsIDB4MDgwYywKKwkweDFiNzcsIDB4NzAwOCwgMHhkMGZjLCAweDBkZTgsIDB4NzAwNywgMHgwMDAyLCAweDIwOTEsIDB4ODAwMSwKKwkweGEwOGMsIDB4MDFlMCwgMHgxNTM4LCAweDUzYTUsIDB4OGNmZiwgMHgxMTIwLCAweDg4ZmYsIDB4MDkwNCwKKwkweDFlYzcsIDB4MDA1MCwgMHgyYzAwLCAweDc4OGUsIDB4MjBhOSwgMHgwMDIwLCAweGFjODAsIDB4MDAwMSwKKwkweDIwYTAsIDB4NTNhNSwgMHgwODA0LCAweDFlYzcsIDB4YTA0NiwgMHg3MjE4LCAweDczMWMsIDB4ZGFjNCwKKwkweDAxMTAsIDB4NzQyMCwgMHg3NTI0LCAweGEyOTIsIDB4MDA0MCwgMHhhMzliLCAweDAwMDAsIDB4YTRhMywKKwkweDAwMDAsIDB4YTVhYiwgMHgwMDAwLCAweDcyMWEsIDB4NzMxZSwgMHhkYWM0LCAweDAxMTgsIDB4NzQyMiwKKwkweDc1MjYsIDB4YTAwNiwgMHg3MDA3LCAweDAwMDQsIDB4MDkwNCwgMHgxZWM3LCAweDhjZmYsIDB4MDExMCwKKwkweDA4MGMsIDB4MWI3ZiwgMHgwMGNlLCAweDA4MGMsIDB4MWI3ZiwgMHhhMDQ2LCAweDc4ODgsIDB4ODAwMCwKKwkweDc4OGEsIDB4YTA4NiwgMHgwMDAyLCAweDAxYzAsIDB4N2E3YywgMHg3Yjc4LCAweGRhYzQsIDB4MDExMCwKKwkweDdjODQsIDB4N2Q4MCwgMHg3OTc0LCAweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweGEyMTAsIDB4YTM5OSwKKwkweDAwMDAsIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwgMHg3MjFhLCAweDczMWUsIDB4ZGFjNCwKKwkweDA1ODgsIDB4NzQyMiwgMHg3NTI2LCAweDA0NzAsIDB4NjAxNCwgMHhkMGZjLCAweDExMTgsIDB4MjA2OSwKKwkweDQ3NDAsIDB4MDAxMCwgMHgyMDY5LCAweDQ3ODAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MWYsIDB4MDAwMiwKKwkweDg4ZmYsIDB4MDEyMCwgMHhhMDQ2LCAweDc4OGMsIDB4MjA2MCwgMHgwYzcwLCAweDc4OGIsIDB4MDAwMCwKKwkweDc4YWMsIDB4YTA4NSwgMHgwMDAzLCAweDc4YWUsIDB4MjA5MSwgMHg4MDAxLCAweDAwOTgsIDB4MDBjZSwKKwkweDc4OGIsIDB4MDAwMCwgMHgwODBjLCAweDIwNWMsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDA1OSwKKwkweDg4ZmYsIDB4MDEzMCwgMHg3ODhjLCAweDIwNjAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDAxOSwKKwkweDA4MDQsIDB4MWUyNiwgMHgwMDA1LCAweDAwMDIsIDB4MWVlYywgMHgxZjA3LCAweDFmMjAsIDB4MWVlYywKKwkweDFmMmQsIDB4MWVmZCwgMHgxZWVjLCAweDFlZWMsIDB4MWVlYywgMHgxZjA1LCAweDFmMWUsIDB4MWVlYywKKwkweDFlZWMsIDB4MWVlYywgMHgxZWVjLCAweDFlZWMsIDB4MjAzOSwgMHgwNDAwLCAweDc4YmMsIDB4YTcwNSwKKwkweDc4YmUsIDB4NjAwOCwgMHhhNzA1LCAweDYwMGEsIDB4MDgwYywgMHgxZjY5LCAweDYwOWMsIDB4NzhiYSwKKwkweDYwOWYsIDB4MDAwMCwgMHgwODBjLCAweDIwNDgsIDB4MDAwNSwgMHg3OGJjLCAweGQwYzQsIDB4MDEwOCwKKwkweDBjNTgsIDB4NjAxYywgMHhjMGJkLCAweDYwMWUsIDB4MDAzMCwgMHgwODBjLCAweDIwODYsIDB4NzhiYywKKwkweGQwYzQsIDB4MDEwOCwgMHgwYzA4LCAweDc4YmYsIDB4MDAwMCwgMHg2MDA0LCAweDgwMDcsIDB4YTA4NCwKKwkweDAwZmYsIDB4NzhiMiwgMHg4MDAxLCAweDAxMzgsIDB4MDgwYywgMHgxZjY5LCAweDAxMjAsIDB4NzhiYywKKwkweGMwYzUsIDB4NzhiZSwgMHgwMDEwLCAweDA4MDQsIDB4MWY4NCwgMHgwMDA1LCAweDA4MGMsIDB4MjA4MywKKwkweDc4YmMsIDB4YTA4YywgMHgwZTAwLCAweDExMTAsIDB4ZDBjNCwgMHgxMTA4LCAweDA4MjgsIDB4MDgwYywKKwkweDFmNjksIDB4MTExMCwgMHgwODA0LCAweDFmODQsIDB4MDAwNSwgMHg3OGJjLCAweGQwYzQsIDB4MDExMCwKKwkweDA4MDQsIDB4MWVlYywgMHg3OGJmLCAweDAwMDAsIDB4NjcxNCwgMHgyMDExLCAweDAwMDEsIDB4MjJhOCwKKwkweDYwMTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwMDUsIDB4MDE4OCwgMHhhN2JjLCAweGZmMDAsIDB4MjBhOSwKKwkweDAwMjAsIDB4YTA4ZSwgMHgwMDAxLCAweDAxNTAsIDB4YTdiYywgMHg4MDAwLCAweDIwMTEsIDB4MDAwMiwKKwkweDIwYTksIDB4MDEwMCwgMHhhMDhlLCAweDAwMDIsIDB4MDEwOCwgMHgwMGMwLCAweDA4MGMsIDB4MWI5YSwKKwkweDJkMDAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2ODJmLCAweDAwMDAsIDB4NjgwOCwKKwkweGEwODQsIDB4ZmZkZSwgMHg2ODBhLCAweGFkZTgsIDB4MDAxMCwgMHgyMDkxLCAweDgwMDEsIDB4MWYwNCwKKwkweDFmNTEsIDB4ODIxMSwgMHgwMTE4LCAweDIwYTksIDB4MDEwMCwgMHgwYzU4LCAweDA4MGMsIDB4MWI3ZiwKKwkweDAwMDUsIDB4NjA5ZiwgMHgwMDAwLCAweDc4YjQsIDB4YTA2ZCwgMHgyYzAwLCAweDc4YjYsIDB4MTExMCwKKwkweDc4YmEsIDB4MDAzOCwgMHg2ODllLCAweDJkMDAsIDB4NjAwMiwgMHg3OGI4LCAweGFkMDYsIDB4MTEwOCwKKwkweDYwMDIsIDB4NzhiMCwgMHg4MDAxLCAweDc4YjIsIDB4MTEzMCwgMHg3OGJjLCAweGMwYzQsIDB4NzhiZSwKKwkweDc4YjgsIDB4MjA2MCwgMHhhMDA2LCAweDAwMDUsIDB4MDBlNiwgMHhhMDJlLCAweDI1MzAsIDB4N2RiYSwKKwkweDdkYjYsIDB4NjVhZSwgMHg2NWIyLCAweDYwMWMsIDB4NjBhMiwgMHgyMDQ4LCAweGE5ODQsIDB4ZTFmZiwKKwkweDYwMWUsIDB4YTk4NCwgMHgwMDYwLCAweDAxNjAsIDB4MDgwYywgMHgzZmU5LCAweDg2ZmYsIDB4MTE0MCwKKwkweDg1ZmYsIDB4MTEzMCwgMHgyMDM5LCAweDA4MDAsIDB4MDgwYywgMHgyMDQ4LCAweDA4MDQsIDB4MjA0NiwKKwkweDY1OTYsIDB4NjVhNiwgMHg2NjlhLCAweDY2YWEsIDB4NjcxNCwgMHgyMDcxLCAweDQ3ODAsIDB4ZDdmYywKKwkweDExMTAsIDB4MjA3MSwgMHg0NzQwLCAweGE3ODQsIDB4MGYwMCwgMHg4MDBiLCAweGE3ODQsIDB4MDAxZiwKKwkweDAxMjAsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMTA1LCAweDcxYzAsIDB4YTE2OCwKKwkweDI3MDAsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4NzFjNCwKKwkweGExMDAsIDB4NjBjMiwgMHgyMDkxLCAweDgwMDAsIDB4NzgxNCwgMHhkMGM0LCAweDAxMzgsIDB4ZDdmYywKKwkweDExMTgsIDB4ZDBmNCwgMHgxMTQwLCAweDAwMTAsIDB4ZDBmYywgMHgxMTI4LCAweDZlMDgsIDB4ZDY4NCwKKwkweDAxZjAsIDB4ZDlmYywgMHgxMWUwLCAweDIwOTEsIDB4ODAwMSwgMHgwODBjLCAweDFjMDIsIDB4MjA5MSwKKwkweDgwMDAsIDB4MDgwYywgMHgxZGIyLCAweDIwOTEsIDB4ODAwMSwgMHg3ODE0LCAweGQwYzQsIDB4MDkwNCwKKwkweDIwNDYsIDB4ZDdmYywgMHgxMTIwLCAweGQwZjQsIDB4MTEzMCwgMHgwODA0LCAweDIwNDYsIDB4ZDBmYywKKwkweDExMTAsIDB4MDgwNCwgMHgyMDQ2LCAweDYwMWIsIDB4MDAyMSwgMHgwODA0LCAweDIwNDYsIDB4NjAyNCwKKwkweGEwOTYsIDB4MDAwMSwgMHgxMTEwLCAweDgwMDAsIDB4NjAyNiwgMHg2YTEwLCAweDY4MTQsIDB4YTIwMiwKKwkweDAyNjgsIDB4MDE2MCwgMHgyMDkxLCAweDgwMDEsIDB4MjAzOSwgMHgwMjAwLCAweDYwOWMsIDB4NzhiYSwKKwkweDYwOWYsIDB4MDAwMCwgMHgwODBjLCAweDIwNDgsIDB4MDgwNCwgMHgyMDQ2LCAweDJjMDgsIDB4ZDlmYywKKwkweDAxZjAsIDB4NjgwMCwgMHhhMDY1LCAweDAxZDgsIDB4NmEwNCwgMHg3MDAwLCAweGEwODQsIDB4MDAwMiwKKwkweDAxNjgsIDB4NzA0OCwgMHhhMjA2LCAweDExNTAsIDB4NmIwNCwgMHgyMTYwLCAweDIzMDQsIDB4NjAwMiwKKwkweGEwMDUsIDB4MTEwOCwgMHg2OTAyLCAweDIyNjAsIDB4NjEwMiwgMHgwMDk4LCAweDJkMDAsIDB4MjA2MCwKKwkweDA4MGMsIDB4MjZiZiwgMHg2ZTA4LCAweDIxNjAsIDB4NjIwMiwgMHg2OTA2LCAweDAwNTAsIDB4NjgwMCwKKwkweDY5MDIsIDB4YTA2NSwgMHgwMTEwLCAweDYxMDIsIDB4MDAwOCwgMHg2OTA2LCAweDIxNjAsIDB4NjAwMywKKwkweDAwMDAsIDB4MjE2MCwgMHhkOWZjLCAweDAxMTgsIDB4YTZiNCwgMHhmZmZjLCAweDZlMGEsIDB4NjgxMCwKKwkweDdkMDgsIDB4ODUyOCwgMHg3ZDBhLCAweDgwMDAsIDB4NjgxMiwgMHgyMDkxLCAweDgwMDEsIDB4ZDZiNCwKKwkweDAxMjgsIDB4YTZiNiwgMHgwMDQwLCAweDZlMGEsIDB4MDgwYywgMHgxYzEzLCAweDAwZWUsIDB4MDAwNSwKKwkweDYwMDgsIDB4YTcwNSwgMHg2MDBhLCAweDIwOTEsIDB4ODAwMCwgMHgwODBjLCAweDFkYjIsIDB4MjA5MSwKKwkweDgwMDEsIDB4NzhiOCwgMHhhMDY1LCAweDAxMjgsIDB4NjA5YywgMHg3OGJhLCAweDYwOWYsIDB4MDAwMCwKKwkweDBjNzgsIDB4NzhiNiwgMHg3OGJhLCAweDAwMDUsIDB4Nzk3MCwgMHg3ODc0LCAweDI4MTgsIDB4ZDM4NCwKKwkweDAxMTgsIDB4ODAwMCwgMHhhMTEyLCAweDAyMjAsIDB4ODAwMCwgMHhhMTEyLCAweDEyNzgsIDB4YzM4NCwKKwkweDdhN2MsIDB4NzIxYSwgMHg3YTc4LCAweDcyMWUsIDB4ZGFjNCwgMHgwMTIwLCAweDdhODQsIDB4NzIyMiwKKwkweDdhODAsIDB4NzIyNiwgMHhhMDA2LCAweGQzODQsIDB4MDEwOCwgMHg4MDAwLCAweDc4NzYsIDB4NzBkMiwKKwkweDc4MWMsIDB4YTAwNSwgMHgwMTM4LCAweDgwMDEsIDB4NzgxZSwgMHgxMTIwLCAweDBlMDQsIDB4MjA4MiwKKwkweDIwOTEsIDB4NDA4MCwgMHgwMDA1LCAweDIwMzksIDB4MjA5OCwgMHgwMDEwLCAweDIwMzksIDB4MjA5ZSwKKwkweDI3MDQsIDB4YTAwNSwgMHgwMTYwLCAweGFjMDAsIDB4MjA2OCwgMHg2OTA4LCAweDY4MTAsIDB4NjkxMiwKKwkweDY4MGEsIDB4NjkwYywgMHg2ODE0LCAweDY5MTYsIDB4NjgwZSwgMHg4NzM4LCAweDBjODgsIDB4MDAwNSwKKwkweDAwMDMsIDB4MDAwOSwgMHgwMDBmLCAweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDAwMTUsIDB4MDAxYiwKKwkweDAwMDAsIDB4MjA0MSwgMHgwMDAwLCAweDc4MGMsIDB4MDAwMiwgMHgyMjRhLCAweDIyMjUsIDB4MjBhOSwKKwkweDIxMTksIDB4MjAzOSwgMHg4Zjc0LCAweDI3MzQsIDB4N2QxMCwgMHgwMGMwLCAweDYwODQsIDB4YTA4NiwKKwkweDAxMDMsIDB4MTkwNCwgMHgyMTAzLCAweDYxMTQsIDB4NjAxOCwgMHhhMTA1LCAweDAxMjAsIDB4ODZmZiwKKwkweDExZDgsIDB4MDgwNCwgMHgyMTAzLCAweDg2MDMsIDB4YTA4MCwgMHg4ZjU1LCAweDYyMGMsIDB4MjIwMiwKKwkweDgwMDAsIDB4NjIxMCwgMHgyMjAyLCAweDA4MGMsIDB4MWRkMCwgMHg4NjMwLCAweGE2OGUsIDB4MDAwZiwKKwkweDA5MDQsIDB4MjE4NCwgMHg3ODZjLCAweGEwNjUsIDB4MWQwOCwgMHg3ODA4LCAweGE2MDIsIDB4MTIyMCwKKwkweGQ1YWMsIDB4MTExMCwgMHgyNjNhLCAweDAwMDUsIDB4YTY4MiwgMHgwMDAzLCAweDFhMDQsIDB4MjE4NCwKKwkweDIwOTEsIDB4ODAwMCwgMHgyMDY5LCAweDAwMDAsIDB4NjgxOCwgMHhkMDg0LCAweDExZjgsIDB4MjAxMSwKKwkweDhmNTUsIDB4MjIwNCwgMHg3MGM2LCAweDgyMTAsIDB4MjIwNCwgMHg3MGNhLCAweGQ2ODQsIDB4MTEzMCwKKwkweDgyMTAsIDB4MjIwNCwgMHg3MGRhLCAweDgyMTAsIDB4MjIwNCwgMHg3MGRlLCAweGE2ODUsIDB4ODAyMCwKKwkweDcwYzIsIDB4NjgxYiwgMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwgMHg3ODEwLCAweGEwODQsIDB4ZmZjZiwKKwkweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDIwM2IsIDB4MDAwMCwgMHgwMDA1LCAweDc4MTAsIDB4YzBhZCwKKwkweDc4MTIsIDB4MDgwNCwgMHgyMTg0LCAweDI2M2EsIDB4MDgwYywgMHgyMjUwLCAweDE5MDQsIDB4MjI2YywKKwkweDc4NmMsIDB4YTA2NSwgMHgxOTA0LCAweDIwYWUsIDB4MjA5MSwgMHg4MDAwLCAweDc4MTAsIDB4YTA4NCwKKwkweGZmY2YsIDB4ODZmZiwgMHgwMTA4LCAweGMwYWQsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsIDB4MDgwNCwKKwkweDIyNmMsIDB4MjAzOSwgMHg4Zjc0LCAweDI3MzQsIDB4N2QxMCwgMHgwMGEwLCAweDYwODQsIDB4YTA4NiwKKwkweDAxMDMsIDB4MTkwNCwgMHgyMTZlLCAweDYxMTQsIDB4NjAxOCwgMHhhMTA1LCAweDAxMjAsIDB4ODZmZiwKKwkweDExYjgsIDB4MDgwNCwgMHgyMTZlLCAweGE2ODAsIDB4OGY1NSwgMHg2MjBjLCAweDIyMDIsIDB4MDgwYywKKwkweDFkZDAsIDB4ODYzMCwgMHhhNjhlLCAweDAwMWUsIDB4MDkwNCwgMHgyMTg0LCAweDc4NmMsIDB4YTA2NSwKKwkweDFkMjgsIDB4NzgwOCwgMHhhNjAyLCAweDEyMjAsIDB4ZDVhYywgMHgxMTEwLCAweDI2M2EsIDB4MDAwNSwKKwkweGE2ODIsIDB4MDAwNiwgMHgxYTA0LCAweDIxODQsIDB4MjA5MSwgMHg4MDAwLCAweDIwNjksIDB4MDAwMCwKKwkweDY4MTgsIDB4ZDA4NCwgMHgxMWY4LCAweDIwMTEsIDB4OGY1NSwgMHgyMDA5LCAweDhmNGUsIDB4MjZhOCwKKwkweDIxMWMsIDB4MjIwNCwgMHgyMDFhLCAweDgxMDgsIDB4ODIxMCwgMHgxZjA0LCAweDIxNTAsIDB4YTY4NSwKKwkweDgwMzAsIDB4NzBjMiwgMHg2ODFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDc4MTAsIDB4YTA4NCwKKwkweGZmY2YsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsIDB4YTAwNiwgMHgyMDA5LCAweDhmNzUsIDB4MjAwYSwKKwkweDIwM2EsIDB4MDAwNSwgMHg3ODEwLCAweGMwYWQsIDB4NzgxMiwgMHgwMGIwLCAweDI2M2EsIDB4MDgwYywKKwkweDIyNTAsIDB4MTkwNCwgMHgyMjZjLCAweDc4NmMsIDB4YTA2NSwgMHgxOTA0LCAweDIxMWUsIDB4MjA5MSwKKwkweDgwMDAsIDB4NzgxMCwgMHhhMDg0LCAweGZmY2YsIDB4ODZmZiwgMHgwMTA4LCAweGMwYWQsIDB4NzgxMiwKKwkweDIwOTEsIDB4ODAwMSwgMHgwODA0LCAweDIyNmMsIDB4MjA5MSwgMHg4MDAwLCAweDcwMDcsIDB4MDAwNCwKKwkweDc5OTQsIDB4NzBkNCwgMHhhMTAyLCAweDAyMjgsIDB4MDE2OCwgMHg3YjkwLCAweGEzMDIsIDB4MTE1MCwKKwkweDAwMTAsIDB4ODAwMiwgMHgxMTM4LCAweDI2M2EsIDB4NzgxMCwgMHhjMGFkLCAweDc4MTIsIDB4MjA5MSwKKwkweDgwMDEsIDB4MDAwNSwgMHhhMTg0LCAweGZmMDAsIDB4MDE0MCwgMHg4MTBmLCAweDgxMGMsIDB4ODEwYywKKwkweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsIDB4MDAxOCwgMHg4MTA3LCAweDgwMDQsIDB4ODAwNCwKKwkweDdhOWMsIDB4YTIxMCwgMHg3MjFhLCAweDdhOTgsIDB4YTAwNiwgMHhhMjExLCAweDcyMWUsIDB4ZDRjNCwKKwkweDAxMzAsIDB4N2FhNCwgMHhhMjExLCAweDcyMjIsIDB4N2FhMCwgMHhhMjExLCAweDcyMjYsIDB4MjBhMSwKKwkweDAwMzAsIDB4NzAwMywgMHgwMDAwLCAweDIwMDksIDB4OGY1NCwgMHgyNjBhLCAweDgxMDksIDB4MjE5OCwKKwkweDIxMDQsIDB4ZDA4NCwgMHgwMTA4LCAweDg2MzMsIDB4YTZiMCwgMHgwMDAyLCAweDI2YTgsIDB4NTNhNiwKKwkweDg2MDMsIDB4NzAxMiwgMHg3MDA3LCAweDAwMDEsIDB4Nzk5MCwgMHg3ODk0LCAweDgwMDAsIDB4YTEwYSwKKwkweDEyMDgsIDB4YTAwNiwgMHgyMDI4LCAweDc5NzQsIDB4YTE4NCwgMHhmZjAwLCAweDAxNDAsIDB4ODEwZiwKKwkweDgxMGMsIDB4ODEwYywgMHg4MDA0LCAweDgwMDQsIDB4ODAwNywgMHhhMTAwLCAweDAwMTgsIDB4ODEwNywKKwkweDgwMDQsIDB4ODAwNCwgMHg3OTdjLCAweGExMDgsIDB4N2E3OCwgMHhhMDA2LCAweGEyMTEsIDB4ZDRjNCwKKwkweDAxMjAsIDB4N2I4NCwgMHhhMzE5LCAweDdjODAsIDB4YTQyMSwgMHg3MDA4LCAweGQwZmMsIDB4MGRlOCwKKwkweGEwODQsIDB4MDFlMCwgMHgwMWQwLCAweDdkMTAsIDB4MjAzMSwgMHg4ZjU0LCAweDI2MzQsIDB4NzhhOCwKKwkweDgwMDAsIDB4NzhhYSwgMHhkMDhjLCAweDExMzgsIDB4NzAwNywgMHgwMDA2LCAweDcwMDQsIDB4ZDA5NCwKKwkweDFkZTgsIDB4MDgwNCwgMHgyMTg2LCAweDIwNjksIDB4NDc0NywgMHgyMDZiLCAweDAwMDMsIDB4NzhhYywKKwkweGEwODUsIDB4MDMwMCwgMHg3OGFlLCAweGEwMDYsIDB4MDA0OCwgMHgyMDMwLCAweDc1ZDYsIDB4MjA5MSwKKwkweDQwODAsIDB4N2Q5NiwgMHg3ZDEwLCAweGE1YWMsIDB4ZmZjZiwgMHg3ZDEyLCAweDIwOTEsIDB4ODAwMSwKKwkweDc4YWEsIDB4NzAwNywgMHgwMDA2LCAweDI2M2EsIDB4NzAwMywgMHgwMDAxLCAweDcxMWEsIDB4NzIxZSwKKwkweGQ1YzQsIDB4MDExMCwgMHg3MzIyLCAweDc0MjYsIDB4MDAwNSwgMHg2MDg0LCAweGEwODYsIDB4MDEwMywKKwkweDExZDgsIDB4NjExNCwgMHg2MDE4LCAweGExMDUsIDB4MTFiOCwgMHgyMDY5LCAweDAwMDAsIDB4NjgxOCwKKwkweGQwODQsIDB4MTE5MCwgMHg2MDBjLCAweDcwYzYsIDB4NjAxMCwgMHg3MGNhLCAweDcwYzMsIDB4ODAyMCwKKwkweDY4MWIsIDB4MDAwMSwgMHgyMDkxLCAweDQwODAsIDB4MDgwYywgMHgxZGQwLCAweDBlMDQsIDB4MjI0MywKKwkweDc4NmMsIDB4YTA2NSwgMHgxZDEwLCAweDAwMDUsIDB4MDA1OSwgMHgxNTMwLCAweDc4NmMsIDB4YTA2NSwKKwkweDE5ZTAsIDB4MDQxMCwgMHgwMDI5LCAweDE1MDAsIDB4Nzg2YywgMHhhMDY1LCAweDFkZDgsIDB4MDBlMCwKKwkweDYwODQsIDB4YTA4NiwgMHgwMTAzLCAweDExNjgsIDB4NjAxOCwgMHhjMGZjLCAweDYwMWEsIDB4YTA4NiwKKwkweDAwMDQsIDB4MTEzOCwgMHg3ODA0LCAweGQwYTQsIDB4MDEyMCwgMHgwODBjLCAweDFkZDAsIDB4YTAwNiwKKwkweDAwMDUsIDB4MDA3OSwgMHgxMTE4LCAweGEwODUsIDB4MDAwMSwgMHgwMDA1LCAweDAwYjksIDB4MTExMCwKKwkweDIwNDEsIDB4MDAwMSwgMHg3ZDEwLCAweDAwMDUsIDB4ODhmZiwgMHgwMTEwLCAweDIwOTEsIDB4NDA4MCwKKwkweDAwMDUsIDB4N2I5MCwgMHg3OTk0LCAweDcwZDQsIDB4YTEwMiwgMHgxMTE4LCAweGEzODUsIDB4MDAwMCwKKwkweDAwMDUsIDB4MDIxMCwgMHhhMzAyLCAweDAwMDUsIDB4ODAwMiwgMHgwMDA1LCAweGExODQsIDB4ZmYwMCwKKwkweDAxNDAsIDB4ODEwZiwgMHg4MTBjLCAweDgxMGMsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDcsIDB4YTEwMCwKKwkweDAwMTgsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsIDB4N2E5YywgMHg3Yjk4LCAweDdjYTQsIDB4N2RhMCwKKwkweGEyMTAsIDB4YTAwNiwgMHhhMzE5LCAweGE0MjEsIDB4YTUyOSwgMHgyMDA5LCAweDAwMTgsIDB4NjAyOCwKKwkweGEwMDUsIDB4MDExMCwgMHgyMDA5LCAweDAwNDAsIDB4MDgwYywgMHgxYjM0LCAweDAxZDAsIDB4NzhhOCwKKwkweDgwMDAsIDB4NzhhYSwgMHhkMDhjLCAweDE1MTAsIDB4NjAxNCwgMHhkMGZjLCAweDExMTgsIDB4MjA2OSwKKwkweDQ3NDAsIDB4MDAxMCwgMHgyMDY5LCAweDQ3ODAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MWYsIDB4MDAwMywKKwkweDc4YWIsIDB4MDAwMCwgMHg3OGFjLCAweGEwODUsIDB4MDMwMCwgMHg3OGFlLCAweDIwOTEsIDB4ODAwMSwKKwkweDAwNjgsIDB4NzhhYiwgMHgwMDAwLCAweDA4MGMsIDB4MWRkMCwgMHg3OTkwLCAweDc4OTQsIDB4ODAwMCwKKwkweGExMGEsIDB4MTIwOCwgMHhhMDA2LCAweDc4OTYsIDB4NzBkNiwgMHhhMDA2LCAweDIwNzEsIDB4MDAxMCwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweGQ3ZmMsIDB4MTExOCwgMHgyMDA5LCAweDQ3NTgsIDB4MDAxMCwKKwkweDIwMDksIDB4NDc5OCwgMHgyMDkxLCAweDgwMDAsIDB4MjAwYSwgMHgwMGY2LCAweDIwMDksIDB4NDc4MCwKKwkweDIwNzksIDB4MDEwMCwgMHhkN2ZjLCAweDExMjAsIDB4MjAwOSwgMHg0NzQwLCAweDIwNzksIDB4MDIwMCwKKwkweDIxMDQsIDB4YTA4NiwgMHgwMDAwLCAweDExODAsIDB4ZDdmYywgMHgxMTE4LCAweDIwMDksIDB4NDc0NSwKKwkweDAwMTAsIDB4MjAwOSwgMHg0Nzg1LCAweDIxMDQsIDB4YTAwNSwgMHgxMTMwLCAweDc4MzAsIDB4YTA4NCwKKwkweDAwYzAsIDB4MTExMCwgMHg3ODFiLCAweDAwNTIsIDB4MDBmZSwgMHgwMDA1LCAweDIwMDksIDB4MDAwMiwKKwkweDIwNjksIDB4NDcwMCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDE5MDQsIDB4MjM0YiwKKwkweDIwNzEsIDB4NDc4MCwgMHgyMDc5LCAweDAxMDAsIDB4MjAyMSwgMHg0OWJmLCAweDc4NGIsIDB4MDAwZiwKKwkweDIwMDEsIDB4MDFmZiwgMHgyMDA0LCAweGQwZmMsIDB4MDExOCwgMHgyMDE5LCAweDNlMzcsIDB4MDAzMCwKKwkweDIwYTEsIDB4MDEyYiwgMHgyMDE5LCAweDNlMzcsIDB4ZDE4NCwgMHgwMTEwLCAweDIwYTEsIDB4MDIyYiwKKwkweDIzMDQsIDB4YTAwNSwgMHgwMTQwLCAweDc4OWEsIDB4ODMxOCwgMHgyM2FjLCAweDgzMTgsIDB4MjM5OCwKKwkweDUzYTYsIDB4MzMxOCwgMHgwY2E4LCAweDc4OWIsIDB4MDAwMCwgMHg3ODliLCAweDAwMjAsIDB4MjBhOSwKKwkweDAwMTAsIDB4NzhhZiwgMHgwMDAwLCAweDc4YWYsIDB4MjAyMCwgMHgxZjA0LCAweDIzMjksIDB4NzAwMywKKwkweDAwMDAsIDB4MDAxNiwgMHhkMThjLCAweDIwMDksIDB4MDAwMCwgMHgwMTA4LCAweGMxYmQsIDB4MDgwYywKKwkweDI0NmMsIDB4MDAxZSwgMHg3MDIwLCAweGEwODQsIDB4MDAwZiwgMHhhMDg1LCAweDYzMDAsIDB4NzgwNiwKKwkweDc4MGYsIDB4OTAwMCwgMHg3ODQzLCAweDAwZDgsIDB4Nzg1MywgMHgwMDkwLCAweDc4MGIsIDB4MmYwOCwKKwkweDc0NTIsIDB4NzA0ZiwgMHgwMDAwLCAweDgxMDksIDB4MDE0MCwgMHgyMDcxLCAweDQ3NDAsIDB4MjA3OSwKKwkweDAyMDAsIDB4MjAyMSwgMHg0N2JmLCAweDA4MDQsIDB4MjMwNiwgMHgwODBjLCAweDI1MjYsIDB4MDAwNSwKKwkweDAwMTYsIDB4MjAxMSwgMHgwMTAxLCAweGQxYmMsIDB4MTExMCwgMHgyMDExLCAweDAyMDEsIDB4YTE4YywKKwkweDAwMGYsIDB4MjIwNCwgMHhhMDg0LCAweGZmZjAsIDB4YTEwNSwgMHgyMDEyLCAweDAwMWUsIDB4MDgwYywKKwkweDI0NmMsIDB4MDAwNSwgMHgyMDExLCAweDAxMDEsIDB4ZDNmYywgMHgxMTEwLCAweDIwMTEsIDB4MDIwMSwKKwkweDIwYTksIDB4MDAwOSwgMHg4MTBiLCAweDFmMDQsIDB4MjM3MiwgMHhhMThjLCAweDBlMDAsIDB4MjIwNCwKKwkweGEwODQsIDB4ZjFmZiwgMHhhMTA1LCAweDIwMTIsIDB4MDAwNSwgMHgyMDE5LCAweDAwMDIsIDB4MjAwOSwKKwkweDAxMDEsIDB4MjBhOSwgMHgwMDA1LCAweDgyMTMsIDB4MWYwNCwgMHgyMzgzLCAweGEyOTQsIDB4MDBlMCwKKwkweDIxMDQsIDB4YTA4NCwgMHhmZjFmLCAweGEyMDUsIDB4MjAwYSwgMHg4MzE5LCAweDAxMTgsIDB4MjAwOSwKKwkweDAyMDEsIDB4MGM3OCwgMHgwMDA1LCAweDIwMTEsIDB4MDEwMSwgMHhkM2ZjLCAweDExMTAsIDB4MjAxMSwKKwkweDAyMDEsIDB4MjBhOSwgMHgwMDBjLCAweDgxMGIsIDB4MWYwNCwgMHgyMzliLCAweGExOGMsIDB4ZjAwMCwKKwkweDIyMDQsIDB4YTA4NCwgMHgwZmZmLCAweGExMDUsIDB4MjAxMiwgMHgwMDA1LCAweDIwMTEsIDB4MDEwMiwKKwkweGQzZmMsIDB4MTExMCwgMHgyMDExLCAweDAyMDIsIDB4MjIwNCwgMHhhMDljLCAweDBmMzAsIDB4YTA4NCwKKwkweGYwY2YsIDB4YTEwNSwgMHgyMDEyLCAweDAwMDUsIDB4MDBjNiwgMHgyMDYxLCAweDAxMDAsIDB4ZDFiYywKKwkweDExMTAsIDB4MjA2MSwgMHgwMjAwLCAweGMxYmMsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsIDB4MDAyMCwKKwkweDYwOWEsIDB4NjJhYywgMHg2M2FjLCAweDAwY2UsIDB4MDAwNSwgMHgwMGM2LCAweDIwNjEsIDB4MDEwMCwKKwkweGQxYmMsIDB4MTExMCwgMHgyMDYxLCAweDAyMDAsIDB4YzFiYywgMHg4MTAzLCAweDgwMDMsIDB4YTA4MCwKKwkweDAwMjIsIDB4NjA5YSwgMHg2MGE0LCAweGEwODQsIDB4ZmZkZiwgMHg2MGFlLCAweDAwY2UsIDB4MDAwNSwKKwkweDAwYzYsIDB4MjA2MSwgMHgwMTAwLCAweGQxYmMsIDB4MTExMCwgMHgyMDYxLCAweDAyMDAsIDB4YzFiYywKKwkweDgxMDMsIDB4ODAwMywgMHhhMDgwLCAweDAwMjAsIDB4NjA5YSwgMHg2MGE0LCAweGEyOGMsIDB4MDAyMCwKKwkweDAxMTgsIDB4YzJhYywgMHhhMzlkLCAweDQwMDAsIDB4YzNlYywgMHhkM2I0LCAweDExMDgsIDB4YzNlZCwKKwkweDYyYWUsIDB4MjAxMCwgMHg2MGE0LCAweDYzYWUsIDB4MjAxOCwgMHgwMGNlLCAweDAwMDUsIDB4MjA5MSwKKwkweDgwMDAsIDB4MDBjNiwgMHgwMGU2LCAweDY4MTgsIDB4YTAwNSwgMHgwOTA0LCAweDI0NTAsIDB4ZDFmYywKKwkweDAxMTgsIDB4MjA2MSwgMHg4ZWQwLCAweDAwMTAsIDB4MjA2MSwgMHg4ZGMwLCAweDA4MGMsIDB4MjQ1OCwKKwkweDA1NjAsIDB4MjBhOSwgMHgwMTAxLCAweGQxZmMsIDB4MDExOCwgMHgyMDYxLCAweDhkZDAsIDB4MDAxMCwKKwkweDIwNjEsIDB4OGNjMCwgMHgwMGM2LCAweDA4MGMsIDB4MjQ1OCwgMHgwMTI4LCAweDAwY2UsIDB4OGM2MCwKKwkweDFmMDQsIDB4MjQxMiwgMHgwNGE4LCAweDAwMGUsIDB4ZDFmYywgMHgwMTI4LCAweGEwODIsIDB4OGRkMCwKKwkweDIwNzEsIDB4NDc4MCwgMHgwMDIwLCAweGEwODIsIDB4OGNjMCwgMHgyMDcxLCAweDQ3NDAsIDB4NzA3NiwKKwkweDcxNzIsIDB4MjEzOCwgMHgyMDAxLCAweDAwMDQsIDB4NzA2MiwgMHg3MDdmLCAweDAwMGYsIDB4NzFkMCwKKwkweGMxYzQsIDB4NzFkMiwgMHgwODBjLCAweDIyY2IsIDB4MDBjMCwgMHhkMWZjLCAweDExMTgsIDB4MjA3MSwKKwkweDQ3NDAsIDB4MDAxMCwgMHgyMDcxLCAweDQ3ODAsIDB4NjAyMCwgMHhjMGRkLCAweDYwMjIsIDB4NzE3MiwKKwkweDIxMzgsIDB4MmMwMCwgMHg3MDdhLCAweDIwMDEsIDB4MDAwNiwgMHg3MDYyLCAweDcwN2YsIDB4MDAwZiwKKwkweDcxZDAsIDB4YzFjNCwgMHg3MWQyLCAweDA4MGMsIDB4MjJjYiwgMHgyMDAxLCAweDAwMDAsIDB4MDAxMCwKKwkweDIwMDEsIDB4MDAwMSwgMHgyMDkxLCAweDgwMDEsIDB4YTAwNSwgMHgwMGVlLCAweDAwY2UsIDB4MDAwNSwKKwkweDJjMDQsIDB4YTAwNSwgMHgwMTcwLCAweDIwNjAsIDB4NjAxMCwgMHhhMzA2LCAweDExNDAsIDB4NjAwYywKKwkweGEyMDYsIDB4MTEyOCwgMHg2MDE0LCAweGExMDYsIDB4MTExMCwgMHhhMDA2LCAweDAwMjAsIDB4NjAwMCwKKwkweDBjODAsIDB4YTA4NSwgMHgwMDAxLCAweDAwMDUsIDB4MDBmNiwgMHgwMGU2LCAweDAwMTYsIDB4MjA3OSwKKwkweDQ3ODAsIDB4MjA3MSwgMHgwMTAwLCAweGQxYmMsIDB4MTEyMCwgMHgyMDc5LCAweDQ3NDAsIDB4MjA3MSwKKwkweDAyMDAsIDB4NzkyMCwgMHhhMThjLCAweDAwMGYsIDB4NzBlYywgMHhkMGM0LCAweDExMTAsIDB4MDAxZSwKKwkweDAwNjAsIDB4ODEwYiwgMHg4MTBiLCAweDgxMGIsIDB4ODEwYiwgMHgwMDBlLCAweGExOGQsIDB4MDgwMCwKKwkweGQwYmMsIDB4MTExMCwgMHhhMThkLCAweDBmMDAsIDB4MjEwNCwgMHgwMGVlLCAweDAwZmUsIDB4MDAwNSwKKwkweDIwMDEsIDB4NDcwMSwgMHgyMDA0LCAweGQwYWMsIDB4MTEzOCwgMHg2OGU0LCAweGQwYWMsIDB4MDEyMCwKKwkweGEwODQsIDB4MDAwNiwgMHgxMTA4LCAweDAwMDksIDB4MDAwNSwgMHg2MDE0LCAweDAwZTYsIDB4MDAzNiwKKwkweDIwMTgsIDB4MjA3MSwgMHg0YzQwLCAweGQwZmMsIDB4MTExMCwgMHgyMDcxLCAweDRiYzAsIDB4ODAwNywKKwkweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhZTcwLCAweDcwMDQsIDB4YTA4NCwKKwkweDAwMGEsIDB4MTkwNCwgMHgyNTIzLCAweDcxMDgsIDB4YTE5NCwgMHhmZjAwLCAweDA5MDQsIDB4MjUyMywKKwkweGExOGMsIDB4MDBmZiwgMHg3MDFjLCAweGEwODQsIDB4ZmYwMCwgMHgwMWMwLCAweDcwMDQsIDB4YTA4NSwKKwkweDAwM2EsIDB4NzAwNiwgMHgyMDAxLCAweDAwMDksIDB4YTEwMiwgMHgxNmQ4LCAweDIwMDEsIDB4MDAwYSwKKwkweGExMDIsIDB4MTZkMCwgMHgyMDAxLCAweDAwMGMsIDB4YTEwMiwgMHgxNmM4LCAweDcwMWMsIDB4YTA4NCwKKwkweDAwZmYsIDB4NzAxZSwgMHg3MDA0LCAweGEwODQsIDB4ZmZkZiwgMHg3MDA2LCAweDIwMDEsIDB4MDAwYSwKKwkweGExMDYsIDB4MDFhOCwgMHgyMDAxLCAweDAwMGMsIDB4YTEwNiwgMHgwMWEwLCAweDIwMDEsIDB4MDAxMiwKKwkweGExMDYsIDB4MDE5OCwgMHgyMDAxLCAweDAwMTQsIDB4YTEwNiwgMHgwMTkwLCAweDIwMDEsIDB4MDAxOSwKKwkweGExMDYsIDB4MDE4OCwgMHgyMDAxLCAweDAwMzIsIDB4YTEwNiwgMHgwMTgwLCAweDAwZDgsIDB4MjAwOSwKKwkweDAwMGMsIDB4MDBkMCwgMHgyMDA5LCAweDAwMTIsIDB4MDBiOCwgMHgyMDA5LCAweDAwMTQsIDB4MDBhMCwKKwkweDIwMDksIDB4MDAxOSwgMHgwMDg4LCAweDIwMDksIDB4MDAyMCwgMHgwMDcwLCAweDIwMDksIDB4MDAzZiwKKwkweDAwNTgsIDB4MjAwOSwgMHgwMDBhLCAweDAwNDAsIDB4MjAwOSwgMHgwMDBjLCAweDAwMjgsIDB4MjAwOSwKKwkweDAwMTksIDB4MDAxMCwgMHgyMDExLCAweDAwMDAsIDB4MjEwMCwgMHhhMjA1LCAweDcwMGEsIDB4NzAwNCwKKwkweGEwODUsIDB4MDAwYSwgMHg3MDA2LCAweDIwNzEsIDB4NDcwMCwgMHg3MDA0LCAweGQwYmMsIDB4MDE1OCwKKwkweGQzZmMsIDB4MTEyMCwgMHg3M2VhLCAweDIwNzEsIDB4NDc0MCwgMHgwMDE4LCAweDczZWUsIDB4MjA3MSwKKwkweDQ3ODAsIDB4NzAxZiwgMHgwMDBkLCAweDAwM2UsIDB4MDBlZSwgMHgwMDA1LCAweDIwMDEsIDB4MDFmZiwKKwkweDIwMDQsIDB4ZDBmYywgMHgxMWQwLCAweDIwMDEsIDB4MDRmZCwgMHgyMDA0LCAweGEwODIsIDB4MDAwNSwKKwkweDEyYTAsIDB4MjA3MSwgMHgwMjAwLCAweDcxZWMsIDB4YTE4YywgMHgxYzAwLCAweDgxMGYsIDB4ODEwYywKKwkweDgxMGMsIDB4MjA3OSwgMHgwMTAwLCAweDc4ZWMsIDB4YTA4NCwgMHgxYzAwLCAweDgwMDcsIDB4ODAwNCwKKwkweDgwMDQsIDB4YTEwNSwgMHhhMDhhLCAweDAwMDcsIDB4MDIwOCwgMHgwMDA1LCAweDAwMDIsIDB4MjU3NCwKKwkweDI1NWIsIDB4MjU3NCwgMHgyNTViLCAweDI1NGUsIDB4MjU2OCwgMHgyNTRlLCAweDcwMDgsIDB4YTA4NCwKKwkweGMzZmYsIDB4YTA4NSwgMHgzMDAwLCAweDcwMGEsIDB4NzgwOCwgMHhhMDg0LCAweGMzZmYsIDB4YTA4NSwKKwkweDMwMDAsIDB4NzgwYSwgMHgwMDA1LCAweDcwMDgsIDB4YTA4NCwgMHhjM2ZmLCAweGEwODUsIDB4MjAwMCwKKwkweDcwMGEsIDB4NzgwOCwgMHhhMDg0LCAweGMzZmYsIDB4YTA4NSwgMHgyMDAwLCAweDc4MGEsIDB4MDAwNSwKKwkweDcwMDgsIDB4YTA4NCwgMHhjM2ZmLCAweGEwODUsIDB4MGMwMCwgMHg3MDBhLCAweDc4MDgsIDB4YTA4NCwKKwkweGMzZmYsIDB4YTA4NSwgMHgwYzAwLCAweDc4MGEsIDB4MDAwNSwgMHgwZTA0LCAweDI1NzUsIDB4MjA5MSwKKwkweDgwMDAsIDB4MjA3MSwgMHgwMDAwLCAweDAwMDYsIDB4NzAxOCwgMHhkMDg0LCAweDFkZTgsIDB4MDAwZSwKKwkweDIwNzEsIDB4MDAxMCwgMHg3MGNhLCAweDAwMGUsIDB4NzBjNiwgMHg3MGMzLCAweDgwMDIsIDB4NzBkYiwKKwkweDBhMDQsIDB4NzBkZiwgMHgwMDJhLCAweDIwNzEsIDB4MDAwMCwgMHg3MDFiLCAweDAwMDEsIDB4MjA5MSwKKwkweDQwODAsIDB4MGNmOCwgMHg3ZjNjLCAweDdlNTgsIDB4N2MzMCwgMHg3ZDM4LCAweDc4YTAsIDB4NzA4YSwKKwkweDc1OGUsIDB4NzQ5MiwgMHg3Njk2LCAweDc3OWEsIDB4YTU5NCwgMHgwMDNmLCAweGQ0ZjQsIDB4MDEzOCwKKwkweGQ3YmMsIDB4MTEyOCwgMHhhNzg0LCAweDAwN2QsIDB4MTkwNCwgMHgzYzljLCAweDA4NzEsIDB4YTQ5YywKKwkweDAwMGYsIDB4YTM4MiwgMHgwMDA0LCAweDAzMjAsIDB4YTNhNiwgMHgwMDA3LCAweDE5MzAsIDB4MjQxOCwKKwkweDg1MDcsIDB4YTA4NCwgMHgwMDBmLCAweDAwMDIsIDB4MmI2YywgMHgyYzU3LCAweDJjOTUsIDB4MmVmYiwKKwkweDMyNzksIDB4MzJkMCwgMHgzMzc2LCAweDM0MDUsIDB4MzRkOSwgMHgzNWFiLCAweDI1YzcsIDB4MjVjNCwKKwkweDI5OWUsIDB4MmE4NSwgMHgzMjRkLCAweDI1YzQsIDB4MDgwYywgMHgyNTc1LCAweDAwMDUsIDB4YTAwNiwKKwkweDAwMzgsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsIDB4YTAwNiwgMHg3MDAyLCAweDcwNGEsIDB4NzA0MiwKKwkweDcwY2UsIDB4NzA1YywgMHhhMDA1LCAweDE5MDQsIDB4MjcxOCwgMHg3MDYwLCAweGEwODQsIDB4MDAwNywKKwkweDAwMDIsIDB4MjVlMSwgMHgyNjUyLCAweDI2NWEsIDB4MjY2MywgMHgyNjZjLCAweDI2ZmUsIDB4MjY3NSwKKwkweDI2NTIsIDB4NzgzMCwgMHhkMGJjLCAweDFkMTAsIDB4NzFkMCwgMHhkMWJjLCAweDE5ZjgsIDB4ZDFiNCwKKwkweDE5MDQsIDB4MjYyZiwgMHg3MGEwLCAweGEwODYsIDB4MDAwMSwgMHgwOWMwLCAweDcwMTQsIDB4YTAwNSwKKwkweDE5YTgsIDB4NzBiMCwgMHhhMDZkLCAweDY4MDAsIDB4YTA2NSwgMHhhMDU1LCAweDc4OWIsIDB4MDA4MCwKKwkweDZiMGMsIDB4N2JhYSwgMHg2ODA4LCAweGEwNDUsIDB4NmQxMCwgMHg2ODA0LCAweGEwNmQsIDB4YTA1ZCwKKwkweGE4ODYsIDB4MDAwMSwgMHgwMTE4LCAweDY5YmMsIDB4N2RhYSwgMHg3OWFhLCAweDY4YzAsIDB4YTA0ZCwKKwkweDZlMWMsIDB4MjAwMSwgMHgwMDEwLCAweDA4MDQsIDB4Mjg0YiwgMHg3MDVjLCAweGEwMDUsIDB4MTkwNCwKKwkweDI1YzYsIDB4MDBjNiwgMHgwMGQ2LCAweDcwYjAsIDB4YTA2ZCwgMHg2ODAwLCAweGEwNjUsIDB4YTA1NSwKKwkweDc4OWIsIDB4MDA4MCwgMHg2YjBjLCAweDdiYWEsIDB4NjgwOCwgMHhhMDQ1LCAweDZkMTAsIDB4NjgwNCwKKwkweGEwNmQsIDB4YTA1ZCwgMHhhODg2LCAweDAwMDEsIDB4MDExOCwgMHg2OWJjLCAweDdkYWEsIDB4NzlhYSwKKwkweDY4YzAsIDB4YTA0ZCwgMHg2ZTFjLCAweDIwMDEsIDB4MDAyMCwgMHgwODA0LCAweDI4NGIsIDB4MDgwYywKKwkweDNjNWIsIDB4MTkwNCwgMHgyNWM2LCAweDc4MWIsIDB4MDA2OCwgMHg3MGI4LCAweGEwNmQsIDB4NjhiNCwKKwkweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4NzgwOCwKKwkweGMwOGQsIDB4NzgwYSwgMHg2OGJjLCAweDcwM2UsIDB4YzFiNCwgMHg3MWQyLCAweDcwYjQsIDB4YTA2NSwKKwkweDY4YzAsIDB4NzA1NiwgMHg3MDAzLCAweDAwMDIsIDB4MmQwMCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwKKwkweDcwNDIsIDB4MDAwNSwgMHgwODBjLCAweDNjNWIsIDB4MTEyMCwgMHg3ODFiLCAweDAwNTQsIDB4NzAwMywKKwkweDAwMDQsIDB4MDAwNSwgMHgwODBjLCAweDNjNWIsIDB4MTEyOCwgMHgyMDExLCAweDAwMGMsIDB4MDQxOSwKKwkweDcwMDMsIDB4MDAwNCwgMHgwMDA1LCAweDA4MGMsIDB4M2M1YiwgMHgxMTI4LCAweDIwMTEsIDB4MDAwNiwKKwkweDAwZDEsIDB4NzAwMywgMHgwMDA0LCAweDAwMDUsIDB4MDgwYywgMHgzYzViLCAweDExMjgsIDB4MjAxMSwKKwkweDAwMGQsIDB4MDA4OSwgMHg3MDAzLCAweDAwMDQsIDB4MDAwNSwgMHgwODBjLCAweDNjNWIsIDB4MTE1MCwKKwkweDIwMTEsIDB4MDAwNiwgMHgwMDQxLCAweDcwNzgsIDB4NzA3YiwgMHgwMDAwLCAweDIwNjgsIDB4NzA0YSwKKwkweDcwMDMsIDB4MDAwNCwgMHgwMDA1LCAweDcxNzAsIDB4YzFmYywgMHg4MTA3LCAweDc4ODIsIDB4Nzg5YiwKKwkweDAwODAsIDB4YTI4NiwgMHgwMDBjLCAweDExMjAsIDB4N2FhYSwgMHgyMDAxLCAweDAwMDEsIDB4MDA5OCwKKwkweGExOGMsIDB4MDAxZiwgMHhhMThkLCAweDAwYzAsIDB4NzlhYSwgMHhhMjg2LCAweDAwMGQsIDB4MDEyMCwKKwkweDdhYWEsIDB4MjAwMSwgMHgwMDAyLCAweDAwMzgsIDB4NzhhYiwgMHgwMDIwLCAweDcxNzQsIDB4NzlhYSwKKwkweDdhYWEsIDB4MjAwMSwgMHgwMDA0LCAweDc4OWIsIDB4MDA2MCwgMHg3OGFhLCAweDc4NWIsIDB4MDAwNCwKKwkweDc4MWIsIDB4MDExMywgMHgwODBjLCAweDNjNmUsIDB4NzA3ZiwgMHgwMDBmLCAweDcwZDAsIDB4ZDBiNCwKKwkweDAxNjgsIDB4YzBiNCwgMHg3MGQyLCAweDAwYzYsIDB4NzBiNCwgMHhhMDY1LCAweDYwMDgsIDB4YTA4NCwKKwkweGZiZWYsIDB4NjAwYSwgMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwgMHgwMGNlLCAweDAwMDUsIDB4NzAxNCwKKwkweGEwMDUsIDB4MTEzOCwgMHg3MGQwLCAweGQwYjQsIDB4MDEyOCwgMHg3MGI0LCAweGFjMDYsIDB4MTExMCwKKwkweDBjMjksIDB4MDAwNSwgMHgwMDE2LCAweDcxYTAsIDB4YTE4NiwgMHgwMDAxLCAweDA1MjgsIDB4MDBkNiwKKwkweDAwMjYsIDB4MjEwMCwgMHgyMDExLCAweDAwMDEsIDB4YTIxMiwgMHg3MGIwLCAweDIwNjgsIDB4NjgwMCwKKwkweGFjMDYsIDB4MDEyMCwgMHg4MjExLCAweDAxYjAsIDB4MDBjOSwgMHgwY2M4LCAweDAwYzYsIDB4MjEwMCwKKwkweDIwMTEsIDB4MDAwMSwgMHhhMjEyLCAweDcwYjAsIDB4MjA2OCwgMHg2ODAwLCAweDIwNjAsIDB4NjAwOCwKKwkweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDgyMTEsIDB4MDExMCwgMHgwMDQxLCAweDBjYjAsIDB4NzBhMywKKwkweDAwMDEsIDB4MDBjZSwgMHgwMDJlLCAweDAwZGUsIDB4MDAxZSwgMHgwMDA1LCAweGFkZTgsIDB4MDAwNSwKKwkweDcwYTgsIDB4YWQwNiwgMHgxMTEwLCAweDcwYTQsIDB4MjA2OCwgMHgwMDA1LCAweDA4MGMsIDB4M2M1YiwKKwkweDE5MDQsIDB4MjVjNiwgMHg3MDc4LCAweDIwNjgsIDB4Nzc3MCwgMHgwODBjLCAweDNiOTUsIDB4MmM1MCwKKwkweDA4MGMsIDB4M2NmNiwgMHg3ODliLCAweDAwODAsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsIDB4YzBiZCwKKwkweDc4YWEsIDB4NmUxYywgMHgyMDQxLCAweDAwMDEsIDB4MjAwMSwgMHgwMDA0LCAweDA4MDQsIDB4Mjg1MCwKKwkweDA4MGMsIDB4M2M1YiwgMHgxOTA0LCAweDI1YzYsIDB4Nzg5YiwgMHgwMDgwLCAweDcwNWMsIDB4MjA2OCwKKwkweDZmMTQsIDB4NzBkMCwgMHhkMGI0LCAweDAxNjgsIDB4YzBiNCwgMHg3MGQyLCAweDAwYzYsIDB4NzBiNCwKKwkweGEwNjUsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwKKwkweDAwY2UsIDB4MDgwYywgMHgzYjk1LCAweDJjNTAsIDB4MDgwYywgMHgzY2Y2LCAweDY4MjQsIDB4YTAwNSwKKwkweDAxMzAsIDB4YTA4MiwgMHgwMDA2LCAweDAyMDgsIDB4MDAxMCwgMHg2ODI3LCAweDAwMDUsIDB4NjgxNCwKKwkweGEwODQsIDB4MDAxZiwgMHhjMGJkLCAweDc4YWEsIDB4MjAzMSwgMHgwMDIwLCAweDIwNDEsIDB4MDAwMSwKKwkweDIwMDEsIDB4MDAwMywgMHgwODA0LCAweDI4NTAsIDB4YzI4ZCwgMHg3MmQyLCAweDcyYmMsIDB4YTIwMCwKKwkweGEwMTUsIDB4NzE1MCwgMHg4MTA4LCAweGExMmEsIDB4MDIwOCwgMHg3MWJjLCAweDIxNjQsIDB4NjUwNCwKKwkweDg1ZmYsIDB4MTE3MCwgMHg3MTUyLCAweDg0MjEsIDB4MWRhOCwgMHg3MGQwLCAweGQwOGMsIDB4MDEyOCwKKwkweDcwY2MsIDB4YTAwNSwgMHgxMTEwLCAweDcwY2YsIDB4MDAwYSwgMHgwMDA1LCAweDIyMDAsIDB4MGM5MCwKKwkweDcwZDAsIDB4YzA4YywgMHg3MGQyLCAweDcwY2YsIDB4MDAwMCwgMHg2MDM0LCAweGEwMDUsIDB4MWRiMCwKKwkweDY3MDgsIDB4YTc4NCwgMHgwNzNmLCAweDAxZDAsIDB4ZDdkNCwgMHgxZDgwLCAweGE3ODQsIDB4MDAyMSwKKwkweDFkNjgsIDB4YTc4NCwgMHgwMDAyLCAweDAxMzAsIDB4YTc4NCwgMHgwMDA0LCAweDBkMzgsIDB4YTdiYywKKwkweGZmZmIsIDB4NjcwYSwgMHhhNzg0LCAweDAyMTgsIDB4MWQwOCwgMHhhNzg0LCAweDAxMDAsIDB4MDEzMCwKKwkweDYwMTgsIDB4YTAwNSwgMHgxOWQ4LCAweGE3YmMsIDB4ZmVmZiwgMHg2NzBhLCAweDI1NjgsIDB4NjgyMywKKwkweDAwMDAsIDB4NmUxYywgMHhhNjg0LCAweDAwMGUsIDB4NjMxOCwgMHgwMTI4LCAweDYwMWMsIDB4YTMwMiwKKwkweDAyMjAsIDB4MDExOCwgMHgwODU4LCAweDgzZmYsIDB4MTk0OCwgMHgyZDU4LCAweDJjNTAsIDB4NzE1MiwKKwkweGQ3YmMsIDB4MTEyMCwgMHg3MDI4LCAweDYwMjIsIDB4NjAzYSwgMHgwMDEwLCAweGM3YmMsIDB4NjcwYSwKKwkweDY4YzAsIDB4YTA2NSwgMHhhMDRkLCAweDYxMDAsIDB4MmE2MCwgMHgyMDQxLCAweDAwMDEsIDB4NmIxNCwKKwkweGEzOWMsIDB4MDAxZiwgMHhhMzlkLCAweDAwYzAsIDB4ZDFmYywgMHgwMTEwLCAweGQ2ODQsIDB4MDExMCwKKwkweGEzOWMsIDB4ZmZiZiwgMHhkNmE0LCAweDAxMTAsIDB4YTM5ZCwgMHgwMDIwLCAweGE2ODQsIDB4MDAwZSwKKwkweDE5MDQsIDB4MjgwMiwgMHhjN2E1LCAweDY3MGEsIDB4MmMwMCwgMHg2OGM2LCAweDc3YTAsIDB4YTc4NiwKKwkweDAwMDEsIDB4MTE3OCwgMHg3MGQwLCAweGQwYjQsIDB4MTE2MCwgMHg3MDAwLCAweGEwODIsIDB4MDAwMiwKKwkweDEyNDAsIDB4NzgzMCwgMHhkMGJjLCAweDExMjgsIDB4Nzg5YiwgMHgwMDgwLCAweDdiYWEsIDB4MDgwNCwKKwkweDI4NDksIDB4ODczOSwgMHg3N2EyLCAweDI3NTAsIDB4NzdhYywgMHhhN2IwLCAweDAwMDUsIDB4NzBhOCwKKwkweGE2MDYsIDB4MTEwOCwgMHg3NmE0LCAweDc2YWUsIDB4MmMzYSwgMHg4NzM4LCAweDJkM2EsIDB4ODczOCwKKwkweDI4M2EsIDB4ODczOCwgMHgyMzNhLCAweDg3MzgsIDB4MjUzYSwgMHg3ODMwLCAweGQwYmMsIDB4MDE1MCwKKwkweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDMwM2QsIDB4NzBkMCwgMHhhMDg0LCAweDMwM2QsIDB4MjA5MSwKKwkweDgwMDAsIDB4MjA5MCwgMHhhYWQ1LCAweDAwMDAsIDB4MDEyMCwgMHg4NDIxLCAweDIyMDAsIDB4MTkwNCwKKwkweDI3NTEsIDB4MDAwNSwgMHhkMWRjLCAweDA5MDQsIDB4MzdmMSwgMHgyMDI5LCAweDAwMjAsIDB4ZDY5YywKKwkweDExMjAsIDB4ODUyOCwgMHhkNjhjLCAweDExMDgsIDB4ODUyOCwgMHg4ODQwLCAweDZmMTQsIDB4NjEwYywKKwkweDgxMDgsIDB4YTE4YywgMHgwMGZmLCAweDcwYzgsIDB4YTE2MCwgMHgyYzY0LCAweDhjZmYsIDB4MDE4OCwKKwkweDYwMTQsIDB4YTcwNiwgMHgxZGQwLCAweDYwYjgsIDB4ODAwMSwgMHg2MGJhLCAweDFkODgsIDB4MmE2MCwKKwkweDYwMDgsIDB4YTA4NSwgMHgwMTAwLCAweDYwMGEsIDB4MjIwMCwgMHg4NDIxLCAweDE5MDQsIDB4Mjc1MSwKKwkweDAwMDUsIDB4MmE2MCwgMHg2MTBlLCAweDY5YmUsIDB4MmMwMCwgMHg2OGM2LCAweDg4NDAsIDB4NjAwOCwKKwkweGMwZDUsIDB4NjAwYSwgMHg3N2EwLCAweGE3ODYsIDB4MDAwMSwgMHgxOTA0LCAweDI3ZDksIDB4NzBkMCwKKwkweGQwYjQsIDB4MTkwNCwgMHgyN2Q5LCAweDcwMDAsIDB4YTA4MiwgMHgwMDAyLCAweDFhMDQsIDB4MjdkOSwKKwkweDc4MzAsIDB4ZDBiYywgMHgxOTA0LCAweDI3ZDksIDB4Nzg5YiwgMHgwMDgwLCAweDdiYWEsIDB4N2RhYSwKKwkweDc5YWEsIDB4MjAwMSwgMHgwMDAyLCAweDAwMDYsIDB4NjAxOCwgMHg4MDAwLCAweDYwMWEsIDB4MDAwOCwKKwkweDAwMDYsIDB4Mjk2MCwgMHg2MTA0LCAweDJhNjAsIDB4MDgwYywgMHgzZDA5LCAweDE1OTAsIDB4YTE4NCwKKwkweDAwMTgsIDB4MDE4MCwgMHhhMTg0LCAweDAwMTAsIDB4MDExOCwgMHgwODBjLCAweDM5OWEsIDB4MTU0OCwKKwkweGExODQsIDB4MDAwOCwgMHgwMTM4LCAweDY5YTAsIDB4YTE4NCwgMHgwNjAwLCAweDExMTgsIDB4MDgwYywKKwkweDM4YjgsIDB4MDBmOCwgMHg2OWEwLCAweGExODQsIDB4MWUwMCwgMHgwNTI4LCAweGExODQsIDB4MDgwMCwKKwkweDAxNzgsIDB4MDBjNiwgMHgyOTYwLCAweDYwMDAsIDB4YTA4NSwgMHgyMDAwLCAweDYwMDIsIDB4NjEwNCwKKwkweGExOGQsIDB4MDAxMCwgMHg2MTA2LCAweDAwY2UsIDB4MDgwYywgMHgzOTlhLCAweDExNTAsIDB4NjlhMCwKKwkweGExODQsIDB4MDIwMCwgMHgwMTE4LCAweDA4MGMsIDB4MzhmZCwgMHgwMDE4LCAweGExODQsIDB4MDQwMCwKKwkweDE5ZjAsIDB4NjlhMCwgMHhhMTg0LCAweDEwMDAsIDB4MDEzMCwgMHg2OTE0LCAweGExOGMsIDB4ZmYwMCwKKwkweDgxMGYsIDB4MDgwYywgMHgyM2M1LCAweDAwMmUsIDB4YTY4YywgMHgwMGUwLCAweGE2ODQsIDB4MDA2MCwKKwkweDAxMjgsIDB4YTA4NiwgMHgwMDYwLCAweDExMTAsIDB4YTE4ZCwgMHg0MDAwLCAweGExOGQsIDB4MDEwNCwKKwkweDY5YjYsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg2ODE4LCAweGMwZmQsIDB4NjgxYSwKKwkweGQ2YmMsIDB4MDE2OCwgMHhjMGZjLCAweDcwODMsIDB4MDAwMCwgMHhhMDhhLCAweDAwMGQsIDB4MDMyOCwKKwkweGEwOGEsIDB4MDAwYywgMHg3MTgyLCAweDIwMDEsIDB4MDAwYywgMHg4MDBjLCAweDcxODYsIDB4NzhhYSwKKwkweDM1MTgsIDB4MzM0MCwgMHgzNDI4LCAweDgwMDAsIDB4ODBhYywgMHhhZjgwLCAweDAwMmIsIDB4MjBhMCwKKwkweDc4OWIsIDB4MDAwMCwgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDIzYTgsIDB4Mjg5OCwKKwkweDI1YTAsIDB4YTI4NiwgMHgwMDIwLCAweDE1MDgsIDB4NzBkMCwgMHhjMGI1LCAweDcwZDIsIDB4MmMwMCwKKwkweDcwYjYsIDB4MmQwMCwgMHg3MGJhLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsIDB4YTI4NiwKKwkweDAwMDIsIDB4MDkwNCwgMHgyOTIxLCAweDcwYTAsIDB4ODAwMCwgMHg3MGEyLCAweDc0YjAsIDB4YTQ5OCwKKwkweDAwMDUsIDB4NzBhOCwgMHhhMzA2LCAweDExMDgsIDB4NzNhNCwgMHg3M2IyLCAweGEyODYsIDB4MDAxMCwKKwkweDA5MDQsIDB4MjVjNiwgMHgwMGRlLCAweDAwY2UsIDB4MDAwNSwgMHg3MDAwLCAweGEwMDUsIDB4MTllMCwKKwkweGEyODYsIDB4MDAwMiwgMHgxOTA0LCAweDI5MzgsIDB4MDgwYywgMHgzYzViLCAweDE5YTgsIDB4NjgxNCwKKwkweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweDIwOTEsIDB4ODAwMCwgMHg3ODFiLCAweDAwNjgsIDB4NjhiNCwKKwkweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4MjA5MSwKKwkweDgwMDEsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsIDB4MDEyNiwgMHgwMGQ2LCAweDAwYzYsIDB4NzBkMCwKKwkweGEwODQsIDB4MmUwMCwgMHgyMDkwLCAweDAwY2UsIDB4MDBkZSwgMHgwMTJlLCAweDI5MDAsIDB4NzA1NiwKKwkweDY4YmMsIDB4NzAzZSwgMHg3MDAzLCAweDAwMDIsIDB4MmQwMCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwKKwkweDcwNDIsIDB4NzgzMCwgMHhkMGJjLCAweDAxNDAsIDB4MjA5MSwgMHgzMDNkLCAweDcwZDAsIDB4YTA4NCwKKwkweDMwM2QsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTAsIDB4NzBhMCwgMHhhMDA1LCAweDExMDgsIDB4MDAwNSwKKwkweDg0MjEsIDB4MGRlOCwgMHg3MjRjLCAweDcwYmMsIDB4YTIwMCwgMHhhMDE1LCAweDA4MDQsIDB4Mjc1MSwKKwkweGEyODYsIDB4MDAxMCwgMHgxNTYwLCAweDA4MGMsIDB4M2M1YiwgMHgxOTA0LCAweDI4Y2MsIDB4NjgxNCwKKwkweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweDc4MWIsIDB4MDA2OCwgMHg2OGI0LCAweDc4NWEsIDB4Njg5NCwKKwkweDc4ZDYsIDB4NzhkZSwgMHg2ODk4LCAweDc4ZDIsIDB4NzhkYSwgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwKKwkweDcwYTAsIDB4ODAwMCwgMHg3MGEyLCAweDc0YjAsIDB4YTQ5MCwgMHgwMDA1LCAweDcwYTgsIDB4YTIwNiwKKwkweDExMDgsIDB4NzJhNCwgMHg3MmIyLCAweDI5MDAsIDB4NzA1NiwgMHg2OGJjLCAweDcwM2UsIDB4NzAwMywKKwkweDAwMDIsIDB4MmQwMCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwgMHg3MDQyLCAweDAwMDUsIDB4NmJiNCwKKwkweGEzOWQsIDB4MjAwMCwgMHg3YjVhLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsIDB4NmI5NCwKKwkweDdiZDYsIDB4N2JkZSwgMHg2ZTk4LCAweDdlZDIsIDB4N2VkYSwgMHg3ODFiLCAweDAwNjgsIDB4MjkwMCwKKwkweDcwNTYsIDB4NzIwMiwgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwgMHgyMzAwLCAweGE2MDUsIDB4MDE3MCwKKwkweDcwZDAsIDB4YTA4NCwgMHgyZTAwLCAweGEwODYsIDB4MjYwMCwgMHgxMTE4LCAweDIwMDksIDB4MDAwMCwKKwkweDAwMTAsIDB4MjAwOSwgMHgwMDAxLCAweGEyODQsIDB4MDAwZiwgMHgwMDMzLCAweGFkODAsIDB4MDAwOSwKKwkweDcwNDIsIDB4MmQwMCwgMHg3MDRhLCAweDAwMDUsIDB4Mjk5YywgMHg0MjA4LCAweDQyMDgsIDB4NDFmNiwKKwkweDQyMDgsIDB4Mjk5YywgMHgyOTljLCAweDI5OWMsIDB4MDgwYywgMHgyNTc1LCAweDc4MDgsIDB4YTA4NCwKKwkweGZmZmQsIDB4NzgwYSwgMHgwMGY2LCAweDIwNzksIDB4NDcwMCwgMHg3OGFjLCAweDAwZmUsIDB4ZDA4NCwKKwkweDAxYzAsIDB4NzE2MCwgMHhhMTg2LCAweDAwMDEsIDB4MDkwNCwgMHgyYTYxLCAweGExODYsIDB4MDAwNywKKwkweDAxNzAsIDB4YTE4NiwgMHgwMDA1LCAweDExNTgsIDB4NzA3OCwgMHgyMDY4LCAweDY4MWIsIDB4MDAwNCwKIAkweDY4MTcsIDB4MDAwMCwgMHg2ODIwLCAweGEwODQsIDB4MDBmZiwgMHhjMDlkLCAweDY4MjIsIDB4NzA2MywKLQkweDAwMDAsIDB4NzBhMywgMHgwMDAwLCAweDcwYTQsIDB4NzBhZSwgMHg3MGIyLCAweDA4MGMsIDB4MjY4MiwKLQkweDAxNTYsIDB4MjAxMSwgMHgwMDA0LCAweDcxNjAsIDB4YTE4NiwgMHgwMDAxLCAweDAxNjAsIDB4YTE4NiwKLQkweDAwMDcsIDB4MTExOCwgMHg3MDFmLCAweDAwMDUsIDB4MDAzMCwgMHg3MDFmLCAweDAwMDEsIDB4NzBkMCwKLQkweGMwYzUsIDB4NzBkMiwgMHgwMDAwLCAweDIwMDEsIDB4NDYwYSwgMHgyMDA0LCAweGEwODQsIDB4MDBmZiwKLQkweGEwODYsIDB4MDAxOCwgMHgwMTMwLCAweDcwMTgsIDB4NzAxNiwgMHhhMDA1LCAweDExMTAsIDB4NzBhMywKLQkweDAwMDEsIDB4MDA2NiwgMHgwODBjLCAweDNmMjYsIDB4MjBhOSwgMHgwMDEwLCAweDIwMzksIDB4MDAwMCwKLQkweDA4MGMsIDB4M2E2NiwgMHhhN2I4LCAweDAxMDAsIDB4MWYwNCwgMHgyOWMwLCAweDAwNmUsIDB4NzAwMCwKLQkweDAwMDIsIDB4MjlmZCwgMHgyOWRiLCAweDI5ZGIsIDB4MjlkMywgMHgyOWZkLCAweDI5ZmQsIDB4MjlmZCwKLQkweDI5ZDEsIDB4MDgwYywgMHgyNTRjLCAweDcwNWMsIDB4YTAwNSwgMHgwNTM4LCAweGFkMDYsIDB4MTExOCwKLQkweDY4MDAsIDB4NzA1ZSwgMHgwMDgwLCAweDY4MjAsIDB4ZDA4NCwgMHgxMTQ4LCAweDZmMTQsIDB4MDgwYywKLQkweDNiNmYsIDB4NjAwOCwgMHhjMGQ0LCAweDYwMGEsIDB4MDgwYywgMHgzN2E0LCAweDAwMjAsIDB4NzA1OCwKLQkweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweGE2ODQsIDB4NWYwMCwgMHg2ODFlLCAweDY4MTgsIDB4ZDBmYywKLQkweDAxMDgsIDB4NmExYSwgMHg2ODE3LCAweDAwMDAsIDB4NjgyYiwgMHgwMDAwLCAweDY4MjAsIDB4YTA4NCwKLQkweDAwZmYsIDB4YzA5ZCwgMHg2ODIyLCAweDA4MGMsIDB4MWRhMiwgMHgyMDExLCAweDAwMDQsIDB4NzRjOCwKLQkweGE0YTAsIDB4MDEwMCwgMHgwNGIxLCAweGFlYTAsIDB4MDAxNywgMHgwNDk5LCAweDIwYTksIDB4MDEwMSwKLQkweDc0YzgsIDB4MDQ3OSwgMHg4NDIwLCAweDFmMDQsIDB4MmEwOSwgMHg3MGMwLCAweDIwNjAsIDB4MjAyMSwKLQkweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweDYxMTAsIDB4ODFmZiwgMHgwMTk4LCAweDYwMTgsIDB4MDAxNiwKLQkweDAwMDYsIDB4MjAxMSwgMHg0NjAyLCAweDIyMGMsIDB4YTEwMiwgMHgyMDEyLCAweDAwMGUsIDB4MDAxZSwKLQkweGExMDIsIDB4MDMzOCwgMHg2MDEyLCAweDExMjgsIDB4MjAxMSwgMHg0NjA0LCAweDIyMDQsIDB4YzBhNSwKLQkweDIwMTIsIDB4NjAxYiwgMHgwMDAwLCAweGFjZTAsIDB4MDAxMCwgMHgxZjA0LCAweDJhMTMsIDB4ODQyMSwKLQkweDFkMDAsIDB4MDE1ZSwgMHg3MDYzLCAweDAwMDAsIDB4NzAwMywgMHgwMDAwLCAweDcwNGIsIDB4MDAwMCwKLQkweDAwMDUsIDB4MDA0NiwgMHgyNDA0LCAweGEwMDUsIDB4MDFhOCwgMHgyMDY4LCAweDY4MDAsIDB4MDAwNiwKLQkweDZhMWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2OGI0LCAweGEwODQsIDB4NWYwMCwKLQkweDY4MWUsIDB4NjgyMCwgMHhhMDg0LCAweDAwZmYsIDB4YzA5ZCwgMHg2ODIyLCAweDA4MGMsIDB4MWRhMiwKLQkweDAwMGUsIDB4MGM0OCwgMHgwMDRlLCAweDIwMjMsIDB4MDAwMCwgMHgwMDA1LCAweGEyODIsIDB4MDAwMywKLQkweDAzMTAsIDB4MDgwYywgMHgyNTRjLCAweDIzMDAsIDB4MDAwMiwgMHgyYTYwLCAweDJhZGQsIDB4MmFmNywKLQkweGEyODIsIDB4MDAwMiwgMHgwMTEwLCAweDA4MGMsIDB4MjU0YywgMHg3MDYwLCAweDcwNjMsIDB4MDAwMCwKLQkweDcwN2YsIDB4MDAwMCwgMHgwMDIyLCAweDc3ZDAsIDB4YzdjNSwgMHg3N2QyLCAweDAwMDIsIDB4MmE3NywKLQkweDJhNzcsIDB4MmE3OSwgMHgyYWIxLCAweDM3ZDgsIDB4MmE3NywgMHgyYWIxLCAweDJhNzcsIDB4MDgwYywKLQkweDI1NGMsIDB4Nzc3MCwgMHgwODBjLCAweDNhNjYsIDB4Nzc3MCwgMHhhN2JjLCAweDhmMDAsIDB4MDgwYywKLQkweDNiNmYsIDB4NjAxOCwgMHhhMDA1LCAweDA1MjgsIDB4ZDdmYywgMHgxMTE4LCAweDIwMjEsIDB4OGNjMCwKLQkweDAwMTAsIDB4MjAyMSwgMHg4ZGQwLCAweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMTAsIDB4MDgwYywKLQkweDJiMTEsIDB4MDFiOCwgMHgwMTU2LCAweDIwYTksIDB4MDEwMSwgMHhkN2ZjLCAweDExMTgsIDB4MjAyMSwKLQkweDhiYzAsIDB4MDAxMCwgMHgyMDIxLCAweDhjZDAsIDB4MDA0NiwgMHgyMDA5LCAweDAwMDUsIDB4MjAxMSwKLQkweDAwMTAsIDB4MDgwYywgMHgyYjExLCAweDAwNGUsIDB4MDExOCwgMHg4NDIwLCAweDFmMDQsIDB4MmE5YywKLQkweDAxNWUsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsIDB4MTk5MCwgMHgwODA0LCAweDI1YTAsIDB4MDgwNCwKLQkweDI1YTAsIDB4Nzc3MCwgMHgwODBjLCAweDNiNmYsIDB4NjAxOCwgMHhhMDA1LCAweDA1MjAsIDB4ZDdmYywKLQkweDExMTgsIDB4MjAyMSwgMHg4Y2MwLCAweDAwMTAsIDB4MjAyMSwgMHg4ZGQwLCAweDIwMDksIDB4MDAwNSwKLQkweDIwMTEsIDB4MDAyMCwgMHgwODBjLCAweDJiMTEsIDB4MDFiMCwgMHgwMTU2LCAweDIwYTksIDB4MDEwMSwKLQkweGQ3ZmMsIDB4MTExOCwgMHgyMDIxLCAweDhiYzAsIDB4MDAxMCwgMHgyMDIxLCAweDhjZDAsIDB4MDA0NiwKLQkweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMjAsIDB4MDRlMSwgMHgwMDRlLCAweDAxMTgsIDB4ODQyMCwKLQkweDFmMDQsIDB4MmFjZiwgMHgwMTVlLCAweDA4MDQsIDB4MjVhMCwgMHgyMjAwLCAweDAwMDIsIDB4MmFlMiwKLQkweDJhZTQsIDB4MmFlNCwgMHgwODBjLCAweDI1NGMsIDB4MjAwOSwgMHgwMDEyLCAweDcwNjAsIDB4YTA4NiwKLQkweDAwMDIsIDB4MDExMCwgMHgyMDA5LCAweDAwMGUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMDgsIDB4NjkxYSwKLQkweDcwNjMsIDB4MDAwMCwgMHg3MGQwLCAweGMwYzUsIDB4NzBkMiwgMHgwODA0LCAweDNiZTUsIDB4MjIwMCwKLQkweDAwMDIsIDB4MmFmZSwgMHgyYWU0LCAweDJhZmMsIDB4MDgwYywgMHgyNTRjLCAweDA4MGMsIDB4M2YyNiwKLQkweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDE5MDQsIDB4Mzc1ZCwgMHgwODBjLCAweDM3YmUsIDB4NjAwOCwKLQkweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDA4MGMsIDB4Mzc0ZiwgMHgwOTA0LCAweDM3NWQsIDB4MDgwNCwKLQkweDI1YTAsIDB4MjQwNCwgMHhhMDA1LCAweDA1OTAsIDB4MjA2OCwgMHgyZDA0LCAweDAwMDYsIDB4NjgxNCwKLQkweGE3MDYsIDB4MDExOCwgMHgyZDIwLCAweDAwMGUsIDB4MGNhOCwgMHgwMDBlLCAweDIwMjIsIDB4NjkxYSwKKwkweDAwMDAsIDB4NzBhMywgMHgwMDAwLCAweDcwYTQsIDB4NzBhZSwgMHg3MGIyLCAweDA4MGMsIDB4MjZhZSwKKwkweDAxNTYsIDB4MjAxMSwgMHgwMDA0LCAweDcxNjAsIDB4YTE4NiwgMHgwMDAxLCAweDAxNTgsIDB4YTE4NiwKKwkweDAwMDcsIDB4MTExOCwgMHg3MDFmLCAweDAwMDUsIDB4MDAxMCwgMHg3MDFmLCAweDAwMDEsIDB4NzBkMCwKKwkweGMwYzUsIDB4NzBkMiwgMHgyMDAxLCAweDQ3MGEsIDB4MjAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NiwKKwkweDAwMTgsIDB4MDEzMCwgMHg3MDE4LCAweDcwMTYsIDB4YTAwNSwgMHgxMTEwLCAweDcwYTMsIDB4MDAwMSwKKwkweDAwNjYsIDB4MDgwYywgMHgzZjRlLCAweDIwYTksIDB4MDAxMCwgMHgyMDM5LCAweDAwMDAsIDB4MDgwYywKKwkweDNhOGIsIDB4YTdiOCwgMHgwMTAwLCAweDFmMDQsIDB4MjllZiwgMHgwMDZlLCAweDcwMDAsIDB4MDAwMiwKKwkweDJhMmMsIDB4MmEwYSwgMHgyYTBhLCAweDJhMDIsIDB4MmEyYywgMHgyYTJjLCAweDJhMmMsIDB4MmEwMCwKKwkweDA4MGMsIDB4MjU3NSwgMHg3MDVjLCAweGEwMDUsIDB4MDUzOCwgMHhhZDA2LCAweDExMTgsIDB4NjgwMCwKKwkweDcwNWUsIDB4MDA4MCwgMHg2ODIwLCAweGQwODQsIDB4MTE0OCwgMHg2ZjE0LCAweDA4MGMsIDB4M2I5NSwKKwkweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDA4MGMsIDB4MzdjNywgMHgwMDIwLCAweDcwNTgsIDB4MjA2MCwKKwkweDY4MDAsIDB4NjAwMiwgMHhhNjg0LCAweDVmMDAsIDB4NjgxZSwgMHg2ODE4LCAweGQwZmMsIDB4MDEwOCwKKwkweDZhMWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2ODIwLCAweGEwODQsIDB4MDBmZiwKKwkweGMwOWQsIDB4NjgyMiwgMHgwODBjLCAweDFkYmYsIDB4MjAxMSwgMHgwMDA0LCAweDc0YzgsIDB4YTRhMCwKKwkweDAxMDAsIDB4MDRiMSwgMHhhZWEwLCAweDAwMTcsIDB4MDQ5OSwgMHgyMGE5LCAweDAxMDEsIDB4NzRjOCwKKwkweDA0NzksIDB4ODQyMCwgMHgxZjA0LCAweDJhMzgsIDB4NzBjMCwgMHgyMDYwLCAweDIwMjEsIDB4MDAwMiwKKwkweDIwYTksIDB4MDEwMCwgMHg2MTEwLCAweDgxZmYsIDB4MDE5OCwgMHg2MDE4LCAweDAwMTYsIDB4MDAwNiwKKwkweDIwMTEsIDB4NDcwMiwgMHgyMjBjLCAweGExMDIsIDB4MjAxMiwgMHgwMDBlLCAweDAwMWUsIDB4YTEwMiwKKwkweDAzMzgsIDB4NjAxMiwgMHgxMTI4LCAweDIwMTEsIDB4NDcwNCwgMHgyMjA0LCAweGMwYTUsIDB4MjAxMiwKKwkweDYwMWIsIDB4MDAwMCwgMHhhY2UwLCAweDAwMTAsIDB4MWYwNCwgMHgyYTQyLCAweDg0MjEsIDB4MWQwMCwKKwkweDAxNWUsIDB4NzA2MywgMHgwMDAwLCAweDcwMDMsIDB4MDAwMCwgMHg3MDRiLCAweDAwMDAsIDB4MDAwNSwKKwkweDAwNDYsIDB4MjQwNCwgMHhhMDA1LCAweDAxYTgsIDB4MjA2OCwgMHg2ODAwLCAweDAwMDYsIDB4NmExYSwKIAkweDY4MTcsIDB4MDAwMCwgMHg2ODJiLCAweDAwMDAsIDB4NjhiNCwgMHhhMDg0LCAweDVmMDAsIDB4NjgxZSwKLQkweDY4MjAsIDB4YTA4NCwgMHgwMGZmLCAweGEyMDUsIDB4NjgyMiwgMHgwODBjLCAweDFkYTIsIDB4MjAyMSwKLQkweDQ2MDIsIDB4MjQxYywgMHg4MzE5LCAweDIzMjIsIDB4NjAxMCwgMHg4MDAxLCAweDYwMTIsIDB4MTEyOCwKLQkweDIwMjEsIDB4NDYwNCwgMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwgMHg2MDA4LCAweGEwODQsIDB4ZjllZiwKLQkweDYwMGEsIDB4MDgwYywgMHgyNjllLCAweDA4MGMsIDB4MzdiZSwgMHgwMDA1LCAweGEwODUsIDB4MDAwMSwKLQkweDBjZTAsIDB4MjMwMCwgMHgwMDAyLCAweDJiNTAsIDB4MmI0ZSwgMHgyYmNiLCAweDA4MGMsIDB4MjU0YywKLQkweDc4ZTQsIDB4YTAwNSwgMHgxN2IwLCAweDMyMDgsIDB4YTE4YywgMHgwODAwLCAweDAxMTgsIDB4MDEwNCwKLQkweDI1OWQsIDB4MDAxMCwgMHgwMzA0LCAweDI1OWQsIDB4MjAwOCwgMHhhMDg0LCAweDAwMzAsIDB4MTExMCwKLQkweDA4MDQsIDB4MzIyYSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwZGQwLCAweDc4ODQsIDB4ZDBmYywKLQkweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNCwKLQkweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNSwKLQkweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDAwMDIsIDB4MmJhZSwKLQkweDJiYjcsIDB4MmJhNCwgMHgyYjg3LCAweDNjMjksIDB4M2MyOSwgMHgyYjg3LCAweDJiYzEsIDB4MDgwYywKLQkweDI1NGMsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDQsIDB4MTE5MCwgMHg3MDYwLCAweGEwODYsIDB4MDAwMiwKLQkweDExMzAsIDB4MjAxMSwgMHgwMDAyLCAweDIwMTksIDB4MDAwMCwgMHgwODA0LCAweDJhNTYsIDB4NzA2MCwKLQkweGEwODYsIDB4MDAwNiwgMHgwZGIwLCAweDcwNjAsIDB4YTA4NiwgMHgwMDA0LCAweDBkOTAsIDB4NzllNCwKLQkweDIwMDEsIDB4MDAwMywgMHgwODA0LCAweDJmMTgsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwKLQkweDAwMWQsIDB4MDgwYywgMHgzYTNjLCAweDc4MWIsIDB4MDA2ZSwgMHgwMDA1LCAweDY4MTgsIDB4ZDBmYywKLQkweDAxMTAsIDB4NjgxYiwgMHgwMDFkLCAweDA4MGMsIDB4M2EzYywgMHgwODA0LCAweDNjMDcsIDB4NjgxOCwKLQkweGQwZmMsIDB4MDExMCwgMHg2ODFiLCAweDAwMWQsIDB4MDgwYywgMHgzYTNjLCAweDc4MWIsIDB4MDBmYSwKLQkweDAwMDUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwgMHgwMDFkLCAweDA4MGMsIDB4M2EzYywKLQkweDc4MWIsIDB4MDBjYiwgMHgwMDA1LCAweGE1ODQsIDB4MDAwZiwgMHgxMWMwLCAweDcwMDAsIDB4MDAwMiwKLQkweDI1YTAsIDB4MmJkOCwgMHgyYmRhLCAweDM3NWQsIDB4Mzc1ZCwgMHgzNzVkLCAweDJiZDgsIDB4MmJkOCwKLQkweDA4MGMsIDB4MjU0YywgMHgwODBjLCAweDM3YmUsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwKLQkweDA4MGMsIDB4Mzc0ZiwgMHgwOTA0LCAweDM3NWQsIDB4MDgwNCwgMHgyNWEwLCAweDc4ZTQsIDB4YTAwNSwKLQkweDFiMDQsIDB4MmI4OSwgMHgzMjA4LCAweGExOGMsIDB4MDgwMCwgMHgwMTE4LCAweDAxMDQsIDB4MmI4OSwKLQkweDAwMTAsIDB4MDMwNCwgMHgyYjg5LCAweDIwMDgsIDB4YTA4NCwgMHgwMDMwLCAweDExMTgsIDB4NzgxYiwKLQkweDAwNjgsIDB4MDAwNSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwZGM4LCAweDc4ODQsIDB4ZDBmYywKLQkweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNCwKLQkweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNSwKLQkweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDAwMDIsIDB4MmMyNiwKLQkweDJjMmEsIDB4MmMyMSwgMHgyYzFmLCAweDNjMjksIDB4M2MyOSwgMHgyYzFmLCAweDNjMjMsIDB4MDgwYywKLQkweDI1NGMsIDB4MDgwYywgMHgzYTQyLCAweDc4MWIsIDB4MDA2ZSwgMHgwMDA1LCAweDA4MGMsIDB4M2E0MiwKLQkweDA4MDQsIDB4M2MwNywgMHgwODBjLCAweDNhNDIsIDB4NzgxYiwgMHgwMGZhLCAweDAwMDUsIDB4MDgwYywKLQkweDNhNDIsIDB4NzgxYiwgMHgwMGNiLCAweDAwMDUsIDB4MjMwMCwgMHgwMDAyLCAweDJjM2IsIDB4MmMzOSwKLQkweDJjM2QsIDB4MDgwYywgMHgyNTRjLCAweDA4MDQsIDB4MzNlMiwgMHg2ODFiLCAweDAwMTYsIDB4NzhhMywKLQkweDAwMDAsIDB4NzllNCwgMHhhMTg0LCAweDAwMzAsIDB4MDkwNCwgMHgzM2UyLCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDMsIDB4MDkwNCwgMHgzM2UyLCAweGExODQsIDB4MDEwMCwgMHgwZDk4LCAweDc4ODQsIDB4ZDBmYywKLQkweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNCwKLQkweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNSwKLQkweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDAwMDIsIDB4MmM2ZiwKLQkweDJjMmEsIDB4MmJhNCwgMHgzYmU1LCAweDNjMjksIDB4M2MyOSwgMHgzYmU1LCAweDNjMjMsIDB4MDgwYywKLQkweDNiZjEsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDUsIDB4MDMxMCwgMHgwODBjLCAweDI1NGMsIDB4Nzg5OCwKLQkweDIwNDAsIDB4MjMwMCwgMHgwMDAyLCAweDJjN2UsIDB4MmVhOCwgMHgyZWIyLCAweDIyMDAsIDB4MDAwMiwKLQkweDJjOWEsIDB4MmM4NywgMHgyYzlhLCAweDJjODUsIDB4MmU4YSwgMHgwODBjLCAweDI1NGMsIDB4Nzg5YiwKLQkweDAwMTgsIDB4NzhhOCwgMHgyMDEwLCAweGEwODQsIDB4MDBmZiwgMHhhMDgyLCAweDAwMjAsIDB4MGEwNCwKLQkweDNhMGIsIDB4YTA4YSwgMHgwMDA0LCAweDFhMDQsIDB4M2EwYiwgMHgwMDAyLCAweDNhMGIsIDB4M2EwYiwKLQkweDNhMGIsIDB4MzljMSwgMHg3ODliLCAweDAwMTgsIDB4NzlhOCwgMHhhMTg0LCAweDAwODAsIDB4MDE0OCwKLQkweDA4MDQsIDB4M2EwYiwgMHg3MDAwLCAweGEwMDUsIDB4MWRkOCwgMHgyMDExLCAweDAwMDQsIDB4MDgwNCwKLQkweDM1OTQsIDB4YTE4NCwgMHgwMGZmLCAweGEwOGEsIDB4MDAxMCwgMHgxYTA0LCAweDNhMGIsIDB4MDAwMiwKLQkweDJjYzIsIDB4MmNjMCwgMHgyY2Q0LCAweDJjZDgsIDB4MmQ4NiwgMHgzYTBiLCAweDNhMGIsIDB4MmQ4OCwKLQkweDNhMGIsIDB4M2EwYiwgMHgyZTg2LCAweDJlODYsIDB4M2EwYiwgMHgzYTBiLCAweDNhMGIsIDB4MmU4OCwKLQkweDA4MGMsIDB4MjU0YywgMHhkNmU0LCAweDAxNDAsIDB4MjAwMSwgMHgwMzAwLCAweDgwMDAsIDB4ODAwMCwKLQkweDc4M2EsIDB4NzgxYiwgMHgwMGM3LCAweDAwMDUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTgsIDB4NjgxYiwKLQkweDAwMWQsIDB4MGM5MCwgMHgwODA0LCAweDNiZTUsIDB4NjgxYiwgMHgwMDFkLCAweDA4MDQsIDB4M2EzNiwKLQkweDY5MjAsIDB4NjkyMiwgMHhhNjg0LCAweDE4MDAsIDB4MTkwNCwgMHgyZDI5LCAweDY4MjAsIDB4ZDA4NCwKLQkweDE5MDQsIDB4MmQzMSwgMHg2ODE4LCAweGEwODYsIDB4MDAwOCwgMHgxMTEwLCAweDY4MWIsIDB4MDAwMCwKLQkweGQ2ZDQsIDB4MDU2OCwgMHhkNmJjLCAweDA1NTgsIDB4NzA4MywgMHgwMDAwLCAweDY4MTgsIDB4YTA4NCwKLQkweDAwM2YsIDB4YTA4YSwgMHgwMDBkLCAweDA3MTgsIDB4YTA4YSwgMHgwMDBjLCAweDcxODIsIDB4MjAwMSwKLQkweDAwMGMsIDB4ODAwYywgMHg3MTg2LCAweDc4OWIsIDB4MDA2MSwgMHg3OGFhLCAweDAxNTYsIDB4MDEzNiwKLQkweDAxNDYsIDB4MDAxNiwgMHgzMjA4LCAweGExOGMsIDB4MDYwMCwgMHgwMTE4LCAweDIwYTEsIDB4MDIyYiwKLQkweDAwMTAsIDB4MjBhMSwgMHgwMTJiLCAweDAwMWUsIDB4Nzg5YiwgMHgwMDAwLCAweDgwMDAsIDB4ODBhYywKLQkweGFkODAsIDB4MDAwYiwgMHgyMDk4LCAweDUzYTYsIDB4MDE0ZSwgMHgwMTNlLCAweDAxNWUsIDB4NjAzOCwKLQkweGEwMDUsIDB4MTE1MCwgMHg2ODFjLCAweGEwODQsIDB4MDAwZSwgMHgwOTA0LCAweDNhMzYsIDB4MDgwYywKLQkweDNhNDgsIDB4NzgyYiwgMHgzMDA4LCAweDAwMTAsIDB4ODAwMSwgMHg2MDNhLCAweDc4MWIsIDB4MDA3MSwKLQkweDAwMDUsIDB4ZDZlNCwgMHgwMTMwLCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywKLQkweDAwMDUsIDB4YTY4NCwgMHgwMDYwLCAweDBkZDAsIDB4ZDZkYywgMHgwZGMwLCAweGQ2ZmMsIDB4MDFhMCwKLQkweGM2ZmMsIDB4N2U1YSwgMHg2ZWI2LCAweDdhZGMsIDB4NzlkOCwgMHg3OGQwLCAweDgwMDcsIDB4YTA4NCwKLQkweDAwN2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NmI5OCwgMHgyMTAwLCAweGEzMDIsIDB4NjhiMiwKLQkweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsIDB4ZDZmNCwgMHgwMTE4LCAweGM2ZjQsIDB4N2U1YSwKLQkweDZlYjYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MTE0OCwgMHgwMDA2LCAweDA4MGMsIDB4M2YyNiwKLQkweDA4MGMsIDB4NDFkOSwgMHgwMDBlLCAweDc4MWIsIDB4MDA4MCwgMHgwMDA1LCAweGEwMDYsIDB4MDgwYywKLQkweDQyYjUsIDB4NmFiMCwgMHg2OWFjLCAweDZjOTgsIDB4NmI5NCwgMHgyMjAwLCAweGExMDUsIDB4MDEyMCwKLQkweDIyMDAsIDB4YTQyMiwgMHgyMTAwLCAweGEzMWIsIDB4NmNhYSwgMHg3Y2QyLCAweDdjZGEsIDB4NmJhNiwKLQkweDdiZDYsIDB4N2JkZSwgMHgyMzAwLCAweGE0MDUsIDB4MTEzMCwgMHhjNmY1LCAweDdlNWEsIDB4NmViNiwKLQkweDc4MWIsIDB4MDA4MCwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MCwgMHgyMjAwLCAweGExMTUsIDB4MTExOCwKLQkweDA4MGMsIDB4NDFkOSwgMHgwMDA1LCAweDA4MGMsIDB4NDIwNiwgMHgwMDA1LCAweDA4MGMsIDB4MjU0YywKLQkweDA4MDQsIDB4MmUxYywgMHgwMGM2LCAweDcwNTQsIDB4MjA2MCwgMHg2OTIwLCAweGExOGMsIDB4ZWNmZiwKLQkweDY5MjIsIDB4NjAwMCwgMHhhMDg0LCAweGNmZGYsIDB4NjAwMiwgMHgwODBjLCAweDM4ZjQsIDB4YTAwNiwKLQkweDIwNDAsIDB4MjAzOCwgMHgwODBjLCAweDM5OWMsIDB4MDgwNCwgMHgyZTEwLCAweDAwYzYsIDB4NzA1NCwKLQkweDIwNjAsIDB4MmM0OCwgMHg3YWE4LCAweGEyOTQsIDB4MDBmZiwgMHhhMjg2LCAweDAwMDQsIDB4MTFkOCwKLQkweDY5MjAsIDB4ZDFlNCwgMHgxMTcwLCAweDIwMzksIDB4MDAwMCwgMHgyMDQxLCAweDAwMDAsIDB4MjAzMSwKLQkweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDA4MGMsIDB4MzhmNywgMHgwODBjLCAweDM5OWMsIDB4MDgwNCwKLQkweDJlMTAsIDB4YTE4YywgMHhlY2ZmLCAweDY5MjIsIDB4NjEwNCwgMHhhMThjLCAweGZmZGQsIDB4NjEwNiwKLQkweDYwMDAsIDB4YzBhYywgMHg2MDAyLCAweGEyODYsIDB4MDAwMywgMHgwMWQwLCAweDYxMDQsIDB4YTE4NCwKLQkweDAwMTAsIDB4MDU0OCwgMHgwODBjLCAweDNiNmIsIDB4MDgwYywgMHgzOTc3LCAweDg4ZmYsIDB4MDUxOCwKLQkweDAwY2UsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwKLQkweGQ2ZDQsIDB4MTExOCwgMHg3ODFiLCAweDAwNmUsIDB4MDAwNSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKLQkweDY5MjAsIDB4ZDFjYywgMHgwMTMwLCAweGExOGMsIDB4ZmRmZiwgMHg2OTIyLCAweDYwMDAsIDB4YzBlYywKLQkweDYwMDIsIDB4MjAzOSwgMHgwMDAwLCAweDIwNDEsIDB4MDAwMCwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwKLQkweDIwMTAsIDB4MDgwYywgMHgzOTljLCAweGEyODYsIDB4MDAwMSwgMHgwMTU4LCAweDYxMDQsIDB4YTE4NCwKLQkweDAwMDgsIDB4MDFiMCwgMHgwODBjLCAweDNiNmIsIDB4MDgwYywgMHgzODk1LCAweDg4ZmYsIDB4MTk4MCwKLQkweDAwNzgsIDB4NjkyMCwgMHhkMWM0LCAweDAxMzAsIDB4YTE4YywgMHhmZWZmLCAweDY5MjIsIDB4NjAwMCwKLQkweGMwZTQsIDB4NjAwMiwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDA4MGMsIDB4MzhmNywKLQkweDAwY2UsIDB4N2U1OCwgMHhkNmQ0LCAweDExMTgsIDB4NzgxYiwgMHgwMDcxLCAweDAwMDUsIDB4NzgxYiwKLQkweDAwODMsIDB4MDAwNSwgMHgwODA0LCAweDNhMzIsIDB4MjgwOCwgMHg3ODliLCAweDAwODAsIDB4MjAxOSwKLQkweDAwODAsIDB4NzhhOCwgMHhhMDk0LCAweDAwZmYsIDB4YTI4NiwgMHgwMDAxLCAweDExYjgsIDB4MjMwMCwKLQkweGExMDIsIDB4YTA4NiwgMHgwMDAxLCAweDA5MDQsIDB4MmQ4YSwgMHg3Y2E4LCAweGE0YTQsIDB4MDBmZiwKLQkweGE0ODAsIDB4MDAwMiwgMHhhMzAwLCAweDIwMTgsIDB4YTEwMiwgMHgwYTA0LCAweDJkOWUsIDB4MDkwNCwKLQkweDJkOWUsIDB4MjRhOCwgMHg3YWE4LCAweDFmMDQsIDB4MmUzYSwgMHgwYzE4LCAweGEyODQsIDB4MDBmMCwKLQkweGEwODIsIDB4MDAyMCwgMHgwNmI4LCAweDIyMDAsIDB4YTA4MiwgMHgwMDIxLCAweDE2OTgsIDB4N2FhOCwKLQkweDgzMTgsIDB4ODMxOCwgMHgyMTAwLCAweGEzMDIsIDB4MGFhMCwgMHhhMjg2LCAweDAwMjMsIDB4MDk1MCwKLQkweDY4MWMsIDB4YTA4NCwgMHhmZmYxLCAweDY4MWUsIDB4N2U1OCwgMHhhNjg0LCAweGZmZjEsIDB4YzBhNSwKLQkweDIwMzAsIDB4N2U1YSwgMHg2MDA4LCAweGMwYTUsIDB4NjAwYSwgMHg3OGEwLCAweDgwMDEsIDB4MDkwNCwKLQkweDJlMTAsIDB4MjBhOCwgMHg3OTk4LCAweDc4OWIsIDB4MDA2MCwgMHg3OGFhLCAweDIwMTEsIDB4MDA4MCwKLQkweDc5OWEsIDB4NzhhOCwgMHg3OTk4LCAweDdhOWEsIDB4NzhhYSwgMHg3YTk4LCAweDFmMDQsIDB4MmU2OCwKLQkweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDExMTgsIDB4NzgxYiwgMHgwMDZlLCAweDAwMDUsIDB4NzgxYiwKLQkweDAwODIsIDB4MDAwNSwgMHg4MzE4LCAweDIxMDAsIDB4YTMwMiwgMHgwYTA0LCAweDJlMjEsIDB4YTI4NCwKLQkweDAwODAsIDB4MTkwNCwgMHgzYTM2LCAweDc4YTAsIDB4YTAwNSwgMHgwOGM4LCAweDA4MDQsIDB4M2EzNiwKLQkweDA4MDQsIDB4M2EwYiwgMHg3MDU0LCAweGEwNGQsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YTgsIDB4YTA4NCwKLQkweDAwZmYsIDB4YTA4ZSwgMHgwMDAxLCAweDAxMTAsIDB4MDgwYywgMHgyNTRjLCAweDdhYTgsIDB4YTI5NCwKLQkweDAwZmYsIDB4Nzg0YiwgMHgwMDA4LCAweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwOGEsIDB4MDAwNSwKLQkweDFhMDQsIDB4M2EwYiwgMHgwMDAyLCAweDNhMGIsIDB4MzgwYywgMHgzYTBiLCAweDM5MjcsIDB4M2QzMSwKLQkweGEyODIsIDB4MDAwMCwgMHgxMTEwLCAweDA4MGMsIDB4MjU0YywgMHgwODBjLCAweDNhM2MsIDB4NzgxYiwKLQkweDAwODIsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDMsIDB4MTExMCwgMHgwODBjLCAweDI1NGMsIDB4ZDRmYywKLQkweDExZDAsIDB4NzA2MCwgMHhhMDA1LCAweDAxMTAsIDB4MDgwYywgMHgyNTRjLCAweDZmMTQsIDB4Nzc3MiwKLQkweGE3YmMsIDB4OGYwMCwgMHgwODBjLCAweDNiNmYsIDB4NjAwOCwgMHhhMDg1LCAweDAwMjEsIDB4NjAwYSwKLQkweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDFkYjAsIDB4MDgwYywgMHgzYTNmLCAweDcwNjMsIDB4MDAwMiwKLQkweDcwMWYsIDB4MDAwOSwgMHgwMDEwLCAweDA4MGMsIDB4M2E0YiwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKLQkweGEyODIsIDB4MDAwNCwgMHgwMzEwLCAweDA4MGMsIDB4MjU0YywgMHgyMzAwLCAweDAwMDIsIDB4MmVlMiwKLQkweDMwNzgsIDB4MzBiNCwgMHhhMjg2LCAweDAwMDMsIDB4MDU5OCwgMHg3MjAwLCAweDdjZDgsIDB4N2RkYywKLQkweDdmZDAsIDB4NzFkMCwgMHhkMWI0LCAweDA1MjgsIDB4ZDFiYywgMHgxNTE4LCAweDIwMDEsIDB4NDYwMSwKLQkweDIwMDQsIDB4ZDBjNCwgMHgxMWYwLCAweDc4NjgsIDB4YTA4NCwgMHgwMGZmLCAweDExZDAsIDB4YTI4MiwKLQkweDAwMDIsIDB4MTJiOCwgMHgwMGQ2LCAweDc4M2IsIDB4ODMwMCwgMHg3ODFiLCAweDAwNTksIDB4NzBiOCwKLQkweGEwNmQsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsIDB4NzhkMiwKLQkweDc4ZGEsIDB4YzFiNCwgMHg3MWQyLCAweDcwMDMsIDB4MDAzMCwgMHgwMGRlLCAweDIwMDEsIDB4MDAwMCwKLQkweDAwNTgsIDB4NzgzYiwgMHgxMzAwLCAweDc4MWIsIDB4MDA1NywgMHgyMDAxLCAweDAwMDAsIDB4MDAyMCwKLQkweDcyMDAsIDB4N2NkOCwgMHg3ZGRjLCAweDdmZDAsIDB4NzA0NiwgMHg2OGEwLCAweGQwZWMsIDB4MDExOCwKLQkweDYwMDgsIDB4YzA4ZCwgMHg2MDBhLCAweGEyODQsIDB4MDAwZiwgMHgwMDAyLCAweDMwNTksIDB4MmYzMywKLQkweDJmMzAsIDB4MzE4NCwgMHgzMjBmLCAweDI1YTAsIDB4MmYyZSwgMHgyZjJlLCAweDA4MGMsIDB4MjU0YywKLQkweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweGQ2ZTQsIDB4MDEyMCwgMHg3MDQ0LCAweGEwODYsIDB4MDAxNCwKLQkweDExZTgsIDB4MDgwYywgMHgzZjI2LCAweDIwMDksIDB4MDAwMCwgMHg2ODE4LCAweGQwZmMsIDB4MDEwOCwKLQkweDcwNDQsIDB4YTA4NiwgMHgwMDE0LCAweDAxNjgsIDB4NjgxOCwgMHhhMDg2LCAweDAwMDgsIDB4MTkwNCwKLQkweDMwMWIsIDB4Nzg1OCwgMHhkMDljLCAweDA5MDQsIDB4MzAxYiwgMHg2ODIwLCAweGQwYWMsIDB4MDkwNCwKLQkweDMwMWIsIDB4NjgxYiwgMHgwMDE0LCAweDIwMDksIDB4MDAwMiwgMHgwNGE4LCAweDc4NjgsIDB4YTA4YywKLQkweDAwZmYsIDB4MDU4OCwgMHhhMTg2LCAweDAwMDgsIDB4MTE1OCwgMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwKLQkweDA4MGMsIDB4Mzc0ZiwgMHgwNTQwLCAweDA4MGMsIDB4MzdiZSwgMHgwODBjLCAweDNmMjYsIDB4MDA2MCwKLQkweGExODYsIDB4MDAyOCwgMHgxNTAwLCAweDYwMTgsIDB4YTAwNSwgMHgwZDc4LCAweDgwMDEsIDB4MGQ2OCwKLQkweDgwMDEsIDB4MGQ1OCwgMHg2MDFlLCAweDBjNDgsIDB4NjgyMCwgMHhkMDg0LCAweDA5MDQsIDB4MjVhMCwKLQkweGMwODQsIDB4NjgyMiwgMHgwODBjLCAweDI2OTMsIDB4NzA1OCwgMHgwMGM2LCAweDIwNjAsIDB4NjgwMCwKLQkweDYwMDIsIDB4MDBjZSwgMHg2MDA0LCAweDY4MDIsIDB4YTAwNSwgMHgyZDAwLCAweDExMDgsIDB4NjAwMiwKLQkweDYwMDYsIDB4MDgwNCwgMHgyNWEwLCAweDAwMTYsIDB4ODFmZiwgMHgxNWYwLCAweDcwMDAsIDB4YTA4NiwKLQkweDAwMzAsIDB4MDVkMCwgMHg3MWQwLCAweGQxYmMsIDB4MTViOCwgMHhkMWI0LCAweDExZTgsIDB4NzA1YywKLQkweGEwMDUsIDB4MTU5MCwgMHg3MGEwLCAweGEwODYsIDB4MDAwMSwgMHgwNTcwLCAweDcwMDMsIDB4MDAwMCwKLQkweDAwNDYsIDB4MDA1NiwgMHgwMDc2LCAweDAwNjYsIDB4MDBjNiwgMHgwMGQ2LCAweDA4MGMsIDB4MjVjNSwKLQkweDAwZGUsIDB4MDBjZSwgMHgwMDZlLCAweDAwN2UsIDB4MDA1ZSwgMHgwMDRlLCAweDcxZDAsIDB4ZDFiNCwKLQkweDExZDgsIDB4NzAwMywgMHgwMDQwLCAweDAwYzAsIDB4MDgwYywgMHgzYzMzLCAweDExYTgsIDB4NzgxYiwKLQkweDAwNjgsIDB4MDBkNiwgMHg3MGI4LCAweGEwNmQsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwKKwkweDY4MjAsIDB4YTA4NCwgMHgwMGZmLCAweGMwOWQsIDB4NjgyMiwgMHgwODBjLCAweDFkYmYsIDB4MDAwZSwKKwkweDBjNDgsIDB4MDA0ZSwgMHgyMDIzLCAweDAwMDAsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDMsIDB4MDMxMCwKKwkweDA4MGMsIDB4MjU3NSwgMHgyMzAwLCAweDAwMDIsIDB4MmE4ZiwgMHgyYjBjLCAweDJiMWEsIDB4YTI4MiwKKwkweDAwMDIsIDB4MDExMCwgMHgwODBjLCAweDI1NzUsIDB4NzA2MCwgMHg3MDYzLCAweDAwMDAsIDB4NzA3ZiwKKwkweDAwMDAsIDB4MDAyMiwgMHg3N2QwLCAweGM3YzUsIDB4NzdkMiwgMHgwMDAyLCAweDJhYTYsIDB4MmFhNiwKKwkweDJhYTgsIDB4MmFlMCwgMHgzN2ZiLCAweDJhYTYsIDB4MmFlMCwgMHgyYWE2LCAweDA4MGMsIDB4MjU3NSwKKwkweDc3NzAsIDB4MDgwYywgMHgzYThiLCAweDc3NzAsIDB4YTdiYywgMHg4ZjAwLCAweDA4MGMsIDB4M2I5NSwKKwkweDYwMTgsIDB4YTAwNSwgMHgwNTI4LCAweGQ3ZmMsIDB4MTExOCwgMHgyMDIxLCAweDhkYzAsIDB4MDAxMCwKKwkweDIwMjEsIDB4OGVkMCwgMHgyMDA5LCAweDAwMDUsIDB4MjAxMSwgMHgwMDEwLCAweDA4MGMsIDB4MmIzNCwKKwkweDAxYjgsIDB4MDE1NiwgMHgyMGE5LCAweDAxMDEsIDB4ZDdmYywgMHgxMTE4LCAweDIwMjEsIDB4OGNjMCwKKwkweDAwMTAsIDB4MjAyMSwgMHg4ZGQwLCAweDAwNDYsIDB4MjAwOSwgMHgwMDA1LCAweDIwMTEsIDB4MDAxMCwKKwkweDA4MGMsIDB4MmIzNCwgMHgwMDRlLCAweDAxMTgsIDB4ODQyMCwgMHgxZjA0LCAweDJhY2IsIDB4MDE1ZSwKKwkweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDE5OTAsIDB4MDgwNCwgMHgyNWM5LCAweDA4MDQsIDB4MjVjOSwKKwkweDc3NzAsIDB4MDgwYywgMHgzYjk1LCAweDYwMTgsIDB4YTAwNSwgMHgwNTIwLCAweGQ3ZmMsIDB4MTExOCwKKwkweDIwMjEsIDB4OGRjMCwgMHgwMDEwLCAweDIwMjEsIDB4OGVkMCwgMHgyMDA5LCAweDAwMDUsIDB4MjAxMSwKKwkweDAwMjAsIDB4MDgwYywgMHgyYjM0LCAweDAxYjAsIDB4MDE1NiwgMHgyMGE5LCAweDAxMDEsIDB4ZDdmYywKKwkweDExMTgsIDB4MjAyMSwgMHg4Y2MwLCAweDAwMTAsIDB4MjAyMSwgMHg4ZGQwLCAweDAwNDYsIDB4MjAwOSwKKwkweDAwMDUsIDB4MjAxMSwgMHgwMDIwLCAweDA0ODEsIDB4MDA0ZSwgMHgwMTE4LCAweDg0MjAsIDB4MWYwNCwKKwkweDJhZmUsIDB4MDE1ZSwgMHgwODA0LCAweDI1YzksIDB4MjIwMCwgMHgwMDAyLCAweDJiMTEsIDB4MmIxMywKKwkweDJiMTMsIDB4MDgwYywgMHgyNTc1LCAweDcwNjMsIDB4MDAwMCwgMHg3MGQwLCAweGMwYzUsIDB4NzBkMiwKKwkweDA4MDQsIDB4MjVjOSwgMHgyMjAwLCAweDAwMDIsIDB4MmIyMSwgMHgyYjEzLCAweDJiMWYsIDB4MDgwYywKKwkweDI1NzUsIDB4MDgwYywgMHgzZjRlLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDE5MDQsIDB4Mzc4MCwKKwkweDA4MGMsIDB4MzdlMSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDA4MGMsIDB4Mzc3MiwKKwkweDA5MDQsIDB4Mzc4MCwgMHgwODA0LCAweDI1YzksIDB4MjQwNCwgMHhhMDA1LCAweDA1OTAsIDB4MjA2OCwKKwkweDJkMDQsIDB4MDAwNiwgMHg2ODE0LCAweGE3MDYsIDB4MDExOCwgMHgyZDIwLCAweDAwMGUsIDB4MGNhOCwKKwkweDAwMGUsIDB4MjAyMiwgMHg2OTFhLCAweDY4MTcsIDB4MDAwMCwgMHg2ODJiLCAweDAwMDAsIDB4NjhiNCwKKwkweGEwODQsIDB4NWYwMCwgMHg2ODFlLCAweDY4MjAsIDB4YTA4NCwgMHgwMGZmLCAweGEyMDUsIDB4NjgyMiwKKwkweDA4MGMsIDB4MWRiZiwgMHgyMDIxLCAweDQ3MDIsIDB4MjQxYywgMHg4MzE5LCAweDIzMjIsIDB4NjAxMCwKKwkweDgwMDEsIDB4NjAxMiwgMHgxMTI4LCAweDIwMjEsIDB4NDcwNCwgMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwKKwkweDYwMDgsIDB4YTA4NCwgMHhmOWVmLCAweDYwMGEsIDB4MDgwYywgMHgyNmNhLCAweDA4MGMsIDB4MzdlMSwKKwkweDAwMDUsIDB4YTA4NSwgMHgwMDAxLCAweDBjZTAsIDB4MjMwMCwgMHgwMDAyLCAweDJiNzMsIDB4MmI3MSwKKwkweDJiZWUsIDB4MDgwYywgMHgyNTc1LCAweDc4ZTQsIDB4YTAwNSwgMHgxN2IwLCAweDMyMDgsIDB4YTE4YywKKwkweDA4MDAsIDB4MDExOCwgMHgwMTA0LCAweDI1YzYsIDB4MDAxMCwgMHgwMzA0LCAweDI1YzYsIDB4MjAwOCwKKwkweGEwODQsIDB4MDAzMCwgMHgxMTEwLCAweDA4MDQsIDB4MzI0ZCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDBkZDAsIDB4Nzg4NCwgMHhkMGZjLCAweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA0LCAweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA1LCAweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwKKwkweDAwMDEsIDB4MDAwMiwgMHgyYmQxLCAweDJiZGEsIDB4MmJjNywgMHgyYmFhLCAweDNjNGYsIDB4M2M0ZiwKKwkweDJiYWEsIDB4MmJlNCwgMHgwODBjLCAweDI1NzUsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDQsIDB4MTE5MCwKKwkweDcwNjAsIDB4YTA4NiwgMHgwMDAyLCAweDExMzAsIDB4MjAxMSwgMHgwMDAyLCAweDIwMTksIDB4MDAwMCwKKwkweDA4MDQsIDB4MmE4NSwgMHg3MDYwLCAweGEwODYsIDB4MDAwNiwgMHgwZGIwLCAweDcwNjAsIDB4YTA4NiwKKwkweDAwMDQsIDB4MGQ5MCwgMHg3OWU0LCAweDIwMDEsIDB4MDAwMywgMHgwODA0LCAweDJmM2IsIDB4NjgxOCwKKwkweGQwZmMsIDB4MDExMCwgMHg2ODFiLCAweDAwMWQsIDB4MDgwYywgMHgzYTYxLCAweDc4MWIsIDB4MDA2ZSwKKwkweDAwMDUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwgMHgwMDFkLCAweDA4MGMsIDB4M2E2MSwKKwkweDA4MDQsIDB4M2MyZCwgMHg2ODE4LCAweGQwZmMsIDB4MDExMCwgMHg2ODFiLCAweDAwMWQsIDB4MDgwYywKKwkweDNhNjEsIDB4NzgxYiwgMHgwMGZhLCAweDAwMDUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwKKwkweDAwMWQsIDB4MDgwYywgMHgzYTYxLCAweDc4MWIsIDB4MDBjYiwgMHgwMDA1LCAweGE1ODQsIDB4MDAwZiwKKwkweDExYzAsIDB4NzAwMCwgMHgwMDAyLCAweDI1YzksIDB4MmJmYiwgMHgyYmZkLCAweDM3ODAsIDB4Mzc4MCwKKwkweDM3ODAsIDB4MmJmYiwgMHgyYmZiLCAweDA4MGMsIDB4MjU3NSwgMHgwODBjLCAweDM3ZTEsIDB4NjAwOCwKKwkweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDA4MGMsIDB4Mzc3MiwgMHgwOTA0LCAweDM3ODAsIDB4MDgwNCwKKwkweDI1YzksIDB4NzhlNCwgMHhhMDA1LCAweDFiMDQsIDB4MmJhYywgMHgzMjA4LCAweGExOGMsIDB4MDgwMCwKKwkweDAxMTgsIDB4MDEwNCwgMHgyYmFjLCAweDAwMTAsIDB4MDMwNCwgMHgyYmFjLCAweDIwMDgsIDB4YTA4NCwKKwkweDAwMzAsIDB4MTExOCwgMHg3ODFiLCAweDAwNjgsIDB4MDAwNSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDBkYzgsIDB4Nzg4NCwgMHhkMGZjLCAweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA0LCAweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA1LCAweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwKKwkweDAwMDEsIDB4MDAwMiwgMHgyYzQ5LCAweDJjNGQsIDB4MmM0NCwgMHgyYzQyLCAweDNjNGYsIDB4M2M0ZiwKKwkweDJjNDIsIDB4M2M0OSwgMHgwODBjLCAweDI1NzUsIDB4MDgwYywgMHgzYTY3LCAweDc4MWIsIDB4MDA2ZSwKKwkweDAwMDUsIDB4MDgwYywgMHgzYTY3LCAweDA4MDQsIDB4M2MyZCwgMHgwODBjLCAweDNhNjcsIDB4NzgxYiwKKwkweDAwZmEsIDB4MDAwNSwgMHgwODBjLCAweDNhNjcsIDB4NzgxYiwgMHgwMGNiLCAweDAwMDUsIDB4MjMwMCwKKwkweDAwMDIsIDB4MmM1ZSwgMHgyYzVjLCAweDJjNjAsIDB4MDgwYywgMHgyNTc1LCAweDA4MDQsIDB4MzQwNSwKKwkweDY4MWIsIDB4MDAxNiwgMHg3OGEzLCAweDAwMDAsIDB4NzllNCwgMHhhMTg0LCAweDAwMzAsIDB4MDkwNCwKKwkweDM0MDUsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDkwNCwgMHgzNDA1LCAweGExODQsIDB4MDEwMCwKKwkweDBkOTgsIDB4Nzg4NCwgMHhkMGZjLCAweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA0LCAweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwKKwkweDAwMDcsIDB4YTA4NiwgMHgwMDA1LCAweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwKKwkweDAwMDEsIDB4MDAwMiwgMHgyYzkyLCAweDJjNGQsIDB4MmJjNywgMHgzYzBiLCAweDNjNGYsIDB4M2M0ZiwKKwkweDNjMGIsIDB4M2M0OSwgMHgwODBjLCAweDNjMTcsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDUsIDB4MDMxMCwKKwkweDA4MGMsIDB4MjU3NSwgMHg3ODk4LCAweDIwNDAsIDB4MjMwMCwgMHgwMDAyLCAweDJjYTEsIDB4MmVjYiwKKwkweDJlZDUsIDB4MjIwMCwgMHgwMDAyLCAweDJjYmQsIDB4MmNhYSwgMHgyY2JkLCAweDJjYTgsIDB4MmVhZCwKKwkweDA4MGMsIDB4MjU3NSwgMHg3ODliLCAweDAwMTgsIDB4NzhhOCwgMHgyMDEwLCAweGEwODQsIDB4MDBmZiwKKwkweGEwODIsIDB4MDAyMCwgMHgwYTA0LCAweDNhMzAsIDB4YTA4YSwgMHgwMDA0LCAweDFhMDQsIDB4M2EzMCwKKwkweDAwMDIsIDB4M2EzMCwgMHgzYTMwLCAweDNhMzAsIDB4MzllNCwgMHg3ODliLCAweDAwMTgsIDB4NzlhOCwKKwkweGExODQsIDB4MDA4MCwgMHgwMTQ4LCAweDA4MDQsIDB4M2EzMCwgMHg3MDAwLCAweGEwMDUsIDB4MWRkOCwKKwkweDIwMTEsIDB4MDAwNCwgMHgwODA0LCAweDM1YjcsIDB4YTE4NCwgMHgwMGZmLCAweGEwOGEsIDB4MDAxMCwKKwkweDFhMDQsIDB4M2EzMCwgMHgwMDAyLCAweDJjZTUsIDB4MmNlMywgMHgyY2Y3LCAweDJjZmIsIDB4MmRhOSwKKwkweDNhMzAsIDB4M2EzMCwgMHgyZGFiLCAweDNhMzAsIDB4M2EzMCwgMHgyZWE5LCAweDJlYTksIDB4M2EzMCwKKwkweDNhMzAsIDB4M2EzMCwgMHgyZWFiLCAweDA4MGMsIDB4MjU3NSwgMHhkNmU0LCAweDAxNDAsIDB4MjAwMSwKKwkweDAzMDAsIDB4ODAwMCwgMHg4MDAwLCAweDc4M2EsIDB4NzgxYiwgMHgwMGM3LCAweDAwMDUsIDB4NjgxOCwKKwkweGQwZmMsIDB4MDExOCwgMHg2ODFiLCAweDAwMWQsIDB4MGM5MCwgMHgwODA0LCAweDNjMGIsIDB4NjgxYiwKKwkweDAwMWQsIDB4MDgwNCwgMHgzYTViLCAweDY5MjAsIDB4NjkyMiwgMHhhNjg0LCAweDE4MDAsIDB4MTkwNCwKKwkweDJkNGMsIDB4NjgyMCwgMHhkMDg0LCAweDE5MDQsIDB4MmQ1NCwgMHg2ODE4LCAweGEwODYsIDB4MDAwOCwKKwkweDExMTAsIDB4NjgxYiwgMHgwMDAwLCAweGQ2ZDQsIDB4MDU2OCwgMHhkNmJjLCAweDA1NTgsIDB4NzA4MywKKwkweDAwMDAsIDB4NjgxOCwgMHhhMDg0LCAweDAwM2YsIDB4YTA4YSwgMHgwMDBkLCAweDA3MTgsIDB4YTA4YSwKKwkweDAwMGMsIDB4NzE4MiwgMHgyMDAxLCAweDAwMGMsIDB4ODAwYywgMHg3MTg2LCAweDc4OWIsIDB4MDA2MSwKKwkweDc4YWEsIDB4MDE1NiwgMHgwMTM2LCAweDAxNDYsIDB4MDAxNiwgMHgzMjA4LCAweGExOGMsIDB4MDYwMCwKKwkweDAxMTgsIDB4MjBhMSwgMHgwMjJiLCAweDAwMTAsIDB4MjBhMSwgMHgwMTJiLCAweDAwMWUsIDB4Nzg5YiwKKwkweDAwMDAsIDB4ODAwMCwgMHg4MGFjLCAweGFkODAsIDB4MDAwYiwgMHgyMDk4LCAweDUzYTYsIDB4MDE0ZSwKKwkweDAxM2UsIDB4MDE1ZSwgMHg2MDM4LCAweGEwMDUsIDB4MTE1MCwgMHg2ODFjLCAweGEwODQsIDB4MDAwZSwKKwkweDA5MDQsIDB4M2E1YiwgMHgwODBjLCAweDNhNmQsIDB4NzgyYiwgMHgzMDA4LCAweDAwMTAsIDB4ODAwMSwKKwkweDYwM2EsIDB4NzgxYiwgMHgwMDcxLCAweDAwMDUsIDB4ZDZlNCwgMHgwMTMwLCAweDc4MWIsIDB4MDA4MywKKwkweDAwMDUsIDB4NzgxYiwgMHgwMDgzLCAweDAwMDUsIDB4YTY4NCwgMHgwMDYwLCAweDBkZDAsIDB4ZDZkYywKKwkweDBkYzAsIDB4ZDZmYywgMHgwMWEwLCAweGM2ZmMsIDB4N2U1YSwgMHg2ZWI2LCAweDdhZGMsIDB4NzlkOCwKKwkweDc4ZDAsIDB4ODAwNywgMHhhMDg0LCAweDAwN2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NmI5OCwKKwkweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsIDB4ZDZmNCwKKwkweDAxMTgsIDB4YzZmNCwgMHg3ZTVhLCAweDZlYjYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MTE0OCwKKwkweDAwMDYsIDB4MDgwYywgMHgzZjRlLCAweDA4MGMsIDB4NDIwOCwgMHgwMDBlLCAweDc4MWIsIDB4MDA4MCwKKwkweDAwMDUsIDB4YTAwNiwgMHgwODBjLCAweDQyZTgsIDB4NmFiMCwgMHg2OWFjLCAweDZjOTgsIDB4NmI5NCwKKwkweDIyMDAsIDB4YTEwNSwgMHgwMTIwLCAweDIyMDAsIDB4YTQyMiwgMHgyMTAwLCAweGEzMWIsIDB4NmNhYSwKKwkweDdjZDIsIDB4N2NkYSwgMHg2YmE2LCAweDdiZDYsIDB4N2JkZSwgMHgyMzAwLCAweGE0MDUsIDB4MTEzMCwKKwkweGM2ZjUsIDB4N2U1YSwgMHg2ZWI2LCAweDc4MWIsIDB4MDA4MCwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MCwKKwkweDIyMDAsIDB4YTExNSwgMHgxMTE4LCAweDA4MGMsIDB4NDIwOCwgMHgwMDA1LCAweDA4MGMsIDB4NDIzNSwKKwkweDAwMDUsIDB4MDgwYywgMHgyNTc1LCAweDA4MDQsIDB4MmUzZiwgMHgwMGM2LCAweDcwNTQsIDB4MjA2MCwKKwkweDY5MjAsIDB4YTE4YywgMHhlY2ZmLCAweDY5MjIsIDB4NjAwMCwgMHhhMDg0LCAweGNmZGYsIDB4NjAwMiwKKwkweDA4MGMsIDB4MzkxNywgMHhhMDA2LCAweDIwNDAsIDB4MjAzOCwgMHgwODBjLCAweDM5YmYsIDB4MDgwNCwKKwkweDJlMzMsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4MmM0OCwgMHg3YWE4LCAweGEyOTQsIDB4MDBmZiwKKwkweGEyODYsIDB4MDAwNCwgMHgxMWQ4LCAweDY5MjAsIDB4ZDFlNCwgMHgxMTcwLCAweDIwMzksIDB4MDAwMCwKKwkweDIwNDEsIDB4MDAwMCwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDA4MGMsIDB4MzkxYSwKKwkweDA4MGMsIDB4MzliZiwgMHgwODA0LCAweDJlMzMsIDB4YTE4YywgMHhlY2ZmLCAweDY5MjIsIDB4NjEwNCwKKwkweGExOGMsIDB4ZmZkZCwgMHg2MTA2LCAweDYwMDAsIDB4YzBhYywgMHg2MDAyLCAweGEyODYsIDB4MDAwMywKKwkweDAxZDAsIDB4NjEwNCwgMHhhMTg0LCAweDAwMTAsIDB4MDU0OCwgMHgwODBjLCAweDNiOTEsIDB4MDgwYywKKwkweDM5OWEsIDB4ODhmZiwgMHgwNTE4LCAweDAwY2UsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwKKwkweDdlNTgsIDB4YzY5NSwgMHg3ZTVhLCAweGQ2ZDQsIDB4MTExOCwgMHg3ODFiLCAweDAwNmUsIDB4MDAwNSwKKwkweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDY5MjAsIDB4ZDFjYywgMHgwMTMwLCAweGExOGMsIDB4ZmRmZiwKKwkweDY5MjIsIDB4NjAwMCwgMHhjMGVjLCAweDYwMDIsIDB4MjAzOSwgMHgwMDAwLCAweDIwNDEsIDB4MDAwMCwKKwkweDIwMzEsIDB4MDAwMCwgMHhhMDA2LCAweDIwMTAsIDB4MDgwYywgMHgzOWJmLCAweGEyODYsIDB4MDAwMSwKKwkweDAxNTgsIDB4NjEwNCwgMHhhMTg0LCAweDAwMDgsIDB4MDFiMCwgMHgwODBjLCAweDNiOTEsIDB4MDgwYywKKwkweDM4YjgsIDB4ODhmZiwgMHgxOTgwLCAweDAwNzgsIDB4NjkyMCwgMHhkMWM0LCAweDAxMzAsIDB4YTE4YywKKwkweGZlZmYsIDB4NjkyMiwgMHg2MDAwLCAweGMwZTQsIDB4NjAwMiwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwKKwkweDIwMTAsIDB4MDgwYywgMHgzOTFhLCAweDAwY2UsIDB4N2U1OCwgMHhkNmQ0LCAweDExMTgsIDB4NzgxYiwKKwkweDAwNzEsIDB4MDAwNSwgMHg3ODFiLCAweDAwODMsIDB4MDAwNSwgMHgwODA0LCAweDNhNTcsIDB4MjgwOCwKKwkweDc4OWIsIDB4MDA4MCwgMHgyMDE5LCAweDAwODAsIDB4NzhhOCwgMHhhMDk0LCAweDAwZmYsIDB4YTI4NiwKKwkweDAwMDEsIDB4MTFiOCwgMHgyMzAwLCAweGExMDIsIDB4YTA4NiwgMHgwMDAxLCAweDA5MDQsIDB4MmRhZCwKKwkweDdjYTgsIDB4YTRhNCwgMHgwMGZmLCAweGE0ODAsIDB4MDAwMiwgMHhhMzAwLCAweDIwMTgsIDB4YTEwMiwKKwkweDBhMDQsIDB4MmRjMSwgMHgwOTA0LCAweDJkYzEsIDB4MjRhOCwgMHg3YWE4LCAweDFmMDQsIDB4MmU1ZCwKKwkweDBjMTgsIDB4YTI4NCwgMHgwMGYwLCAweGEwODIsIDB4MDAyMCwgMHgwNmI4LCAweDIyMDAsIDB4YTA4MiwKKwkweDAwMjEsIDB4MTY5OCwgMHg3YWE4LCAweDgzMTgsIDB4ODMxOCwgMHgyMTAwLCAweGEzMDIsIDB4MGFhMCwKKwkweGEyODYsIDB4MDAyMywgMHgwOTUwLCAweDY4MWMsIDB4YTA4NCwgMHhmZmYxLCAweDY4MWUsIDB4N2U1OCwKKwkweGE2ODQsIDB4ZmZmMSwgMHhjMGE1LCAweDIwMzAsIDB4N2U1YSwgMHg2MDA4LCAweGMwYTUsIDB4NjAwYSwKKwkweDc4YTAsIDB4YTAwNSwgMHgwOTA0LCAweDJlMzQsIDB4MjBhOCwgMHg3OTk4LCAweDc4OWIsIDB4MDA2MCwKKwkweDc4YWEsIDB4MjAxMSwgMHgwMDgwLCAweDc5OWEsIDB4NzhhOCwgMHg3OTk4LCAweDdhOWEsIDB4NzhhYSwKKwkweDdhOTgsIDB4MWYwNCwgMHgyZThiLCAweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDExMTgsIDB4NzgxYiwKKwkweDAwNmUsIDB4MDAwNSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHg4MzE4LCAweDIxMDAsIDB4YTMwMiwKKwkweDBhMDQsIDB4MmU0NCwgMHhhMjg0LCAweDAwODAsIDB4MTkwNCwgMHgzYTViLCAweDc4YTAsIDB4YTAwNSwKKwkweDA4YzgsIDB4MDgwNCwgMHgzYTViLCAweDA4MDQsIDB4M2EzMCwgMHg3MDU0LCAweGEwNGQsIDB4Nzg5YiwKKwkweDAwMTgsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4ZSwgMHgwMDAxLCAweDAxMTAsIDB4MDgwYywKKwkweDI1NzUsIDB4N2FhOCwgMHhhMjk0LCAweDAwZmYsIDB4Nzg0YiwgMHgwMDA4LCAweDc4YTgsIDB4YTA4NCwKKwkweDAwZmYsIDB4YTA4YSwgMHgwMDA1LCAweDFhMDQsIDB4M2EzMCwgMHgwMDAyLCAweDNhMzAsIDB4MzgyZiwKKwkweDNhMzAsIDB4Mzk0YSwgMHgzZDU5LCAweGEyODIsIDB4MDAwMCwgMHgxMTEwLCAweDA4MGMsIDB4MjU3NSwKKwkweDA4MGMsIDB4M2E2MSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDMsIDB4MTExMCwKKwkweDA4MGMsIDB4MjU3NSwgMHhkNGZjLCAweDExZDAsIDB4NzA2MCwgMHhhMDA1LCAweDAxMTAsIDB4MDgwYywKKwkweDI1NzUsIDB4NmYxNCwgMHg3NzcyLCAweGE3YmMsIDB4OGYwMCwgMHgwODBjLCAweDNiOTUsIDB4NjAwOCwKKwkweGEwODUsIDB4MDAyMSwgMHg2MDBhLCAweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDFkYjAsIDB4MDgwYywKKwkweDNhNjQsIDB4NzA2MywgMHgwMDAyLCAweDcwMWYsIDB4MDAwOSwgMHgwMDEwLCAweDA4MGMsIDB4M2E3MCwKKwkweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweGEyODIsIDB4MDAwNCwgMHgwMzEwLCAweDA4MGMsIDB4MjU3NSwKKwkweDIzMDAsIDB4MDAwMiwgMHgyZjA1LCAweDMwOWIsIDB4MzBkNywgMHhhMjg2LCAweDAwMDMsIDB4MDU5OCwKKwkweDcyMDAsIDB4N2NkOCwgMHg3ZGRjLCAweDdmZDAsIDB4NzFkMCwgMHhkMWI0LCAweDA1MjgsIDB4ZDFiYywKKwkweDE1MTgsIDB4MjAwMSwgMHg0NzAxLCAweDIwMDQsIDB4ZDBjNCwgMHgxMWYwLCAweDc4NjgsIDB4YTA4NCwKKwkweDAwZmYsIDB4MTFkMCwgMHhhMjgyLCAweDAwMDIsIDB4MTJiOCwgMHgwMGQ2LCAweDc4M2IsIDB4ODMwMCwKKwkweDc4MWIsIDB4MDA1OSwgMHg3MGI4LCAweGEwNmQsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwKIAkweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YzFiNCwgMHg3MWQyLCAweDcwMDMsIDB4MDAzMCwKLQkweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDAwZGUsIDB4MDgwYywgMHgzMGRjLCAweDAwMWUsIDB4ODFmZiwKLQkweDA5MDQsIDB4MzAxYiwgMHhhNjg0LCAweGRmMDAsIDB4NjgxZSwgMHg2ODJiLCAweDAwMDAsIDB4NmYxNCwKLQkweGExODYsIDB4MDAwMiwgMHgxOTA0LCAweDMwMWMsIDB4NjgxOCwgMHhhMDg2LCAweDAwMTQsIDB4MTEzMCwKLQkweDIwMDgsIDB4ZDZlNCwgMHgwMTE4LCAweDc4NjgsIDB4YTA4YywgMHgwMGZmLCAweDA4MGMsIDB4M2E1NSwKLQkweDA4MGMsIDB4MjY5ZSwgMHg2ODIwLCAweGQwZGMsIDB4MTU3OCwgMHg4NzE3LCAweGEyOTQsIDB4MDAwZiwKLQkweDgyMTMsIDB4ODIxMywgMHg4MjEzLCAweGIyODQsIDB4MDYwMCwgMHgwMTE4LCAweGEyOTAsIDB4NGFjMCwKLQkweDAwMTAsIDB4YTI5MCwgMHg0YjQwLCAweGEyOTAsIDB4MDAwMCwgMHgyMjFjLCAweGQzYzQsIDB4MDE3MCwKLQkweDY4MjAsIDB4ZDBlNCwgMHgwMTI4LCAweGEwODQsIDB4ZWZmZiwgMHg2ODIyLCAweGMzYWMsIDB4MjMxMiwKLQkweDgyMTAsIDB4MjIwNCwgMHhhMDg1LCAweDAwMzgsIDB4MjAxMiwgMHg4MjExLCAweGQzZDQsIDB4MDEzOCwKLQkweDY4YTAsIDB4ZDBjNCwgMHgxMTIwLCAweDA4MGMsIDB4MzE0NCwgMHgwODA0LCAweDI1YTAsIDB4NjAwOCwKLQkweGMwOGQsIDB4NjAwYSwgMHgwMDA4LCAweDY5MmEsIDB4NjkxNiwgMHg2ODE4LCAweGQwZmMsIDB4MDExMCwKLQkweDcwNDQsIDB4NjgxYSwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwgMHg2NDEwLCAweDg0ZmYsIDB4MDE2OCwKLQkweDIwMDksIDB4NDYwMiwgMHgyMTA0LCAweDgwMDEsIDB4MjAwYSwgMHg4NDIxLCAweDY0MTIsIDB4MTEyOCwKLQkweDIwMjEsIDB4NDYwNCwgMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwgMHg2MDE4LCAweGEwMDUsIDB4MDExOCwKLQkweDgwMDEsIDB4NjAxYSwgMHgxMTE4LCAweDYwMDgsIDB4YzBhNCwgMHg2MDBhLCAweDY4MjAsIDB4ZDA4NCwKLQkweDExMzAsIDB4NjgwMCwgMHhhMDA1LCAweDExMDgsIDB4NjAwMiwgMHg2MDA2LCAweDAwMjAsIDB4NzA1OCwKLQkweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDIwNjEsIDB4NDYwMCwgMHg2ODg3LCAweDAxMDMsIDB4MmQwOCwKLQkweDIwNmIsIDB4MDAwMCwgMHg2MDY4LCAweGEwMDUsIDB4NjE2YSwgMHgwMTEwLCAweDJkMDIsIDB4MDAwOCwKLQkweDYxNmUsIDB4NzIwMCwgMHhhMjg2LCAweDAwMzAsIDB4MDE1OCwgMHhhMjg2LCAweDAwNDAsIDB4MTkwNCwKLQkweDI1YTAsIDB4NzAwMywgMHgwMDAyLCAweDcwNDgsIDB4MjA2OCwgMHg2OGM0LCAweDIwNjAsIDB4MDAwNSwKLQkweDcwMDMsIDB4MDAwMiwgMHg3MGI4LCAweGEwNmQsIDB4NjhiYywgMHg3MDNlLCAweDcwYjQsIDB4YTA2NSwKLQkweDY4YzAsIDB4NzA1NiwgMHgyZDAwLCAweDcwNGEsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDIsIDB4MDAwNSwKLQkweGEyODIsIDB4MDAwNCwgMHgwMjEwLCAweDA4MGMsIDB4MjU0YywgMHgyMjAwLCAweDAwMDIsIDB4MzA4MywKLQkweDMwOTIsIDB4MzA5ZSwgMHgzMDkyLCAweGE1ODYsIDB4MTMwMCwgMHgwMTYwLCAweGE1ODYsIDB4ODMwMCwKLQkweDFkOTAsIDB4NzAwMywgMHgwMDAwLCAweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDYwMDgsIDB4YTA4NCwKLQkweGZiZWYsIDB4NjAwYSwgMHg3MDAwLCAweGEwODYsIDB4MDAwNSwgMHgwMTI4LCAweDA4MGMsIDB4M2EzYywKLQkweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweDc4OTAsIDB4ODAwNywKLQkweDgwMDEsIDB4YTA4NCwgMHgwMDA3LCAweGEwODAsIDB4MDAxOCwgMHg3ODlhLCAweDc5YTgsIDB4YTE4YywKLQkweDAwZmYsIDB4YTE4NiwgMHgwMDAzLCAweDAxMjgsIDB4YTE4NiwgMHgwMDAwLCAweDAxMTAsIDB4MDgwNCwKLQkweDNhMGIsIDB4NzgxYiwgMHgwMDgzLCAweDAwMDUsIDB4NjgyMCwgMHhjMDk1LCAweDY4MjIsIDB4ODJmZiwKLQkweDExMTgsIDB4MDgwYywgMHgzYTNjLCAweDAwMzAsIDB4ODIxMSwgMHgwMTEwLCAweDA4MGMsIDB4MjU0YywKLQkweDA4MGMsIDB4M2E0YiwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHgwODBjLCAweDNjNDYsIDB4NzgzMCwKLQkweGEwODQsIDB4MDBjMCwgMHgxMTcwLCAweDAwMTYsIDB4MzIwOCwgMHhhMThjLCAweDA4MDAsIDB4MDAxZSwKLQkweDAxMTgsIDB4MDEwNCwgMHgzMGQ5LCAweDAwMTAsIDB4MDMwNCwgMHgzMGQ5LCAweDc5MWEsIDB4YTAwNiwKLQkweDAwMDUsIDB4YTA4NSwgMHgwMDAxLCAweDAwMDUsIDB4YTY4NCwgMHgwMDYwLCAweDExMzAsIDB4NjgyZiwKLQkweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDA4MDQsIDB4MzE0MywgMHhkNmRjLCAweDExOTgsIDB4NjhiNCwKLQkweGQwZGMsIDB4MTE4MCwgMHg2OTk4LCAweDZhOTQsIDB4NjkyZSwgMHg2YTMyLCAweDcwNDQsIDB4YTAwNSwKLQkweDExMzAsIDB4MjIwMCwgMHhhMTA1LCAweDA5MDQsIDB4M2YyNiwgMHg3MDQ3LCAweDAwMTUsIDB4MDgwNCwKLQkweDNmMjYsIDB4MDAwNSwgMHhkNmFjLCAweDAxZjAsIDB4ZDZmNCwgMHgwMTMwLCAweDY4MmYsIDB4MDAwMCwKLQkweDY4MzMsIDB4MDAwMCwgMHgwODA0LCAweDNmMjYsIDB4NjhiNCwgMHhhMDg0LCAweDQwMDAsIDB4YTYzNSwKLQkweGQ2ZjQsIDB4MWRhMCwgMHg3MDQ0LCAweGEwMDUsIDB4MTExMCwgMHg3MDQ3LCAweDAwMTUsIDB4ZDZkYywKLQkweDExMjgsIDB4NjhiNCwgMHhkMGRjLCAweDAxMTAsIDB4NmNhOCwgMHg2ZGE0LCAweDZjMmUsIDB4NmQzMiwKLQkweDA4MDQsIDB4M2YyNiwgMHhkNmY0LCAweDAxMzAsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwKLQkweDA4MDQsIDB4M2YyNiwgMHg2OGI0LCAweGEwODQsIDB4NDgwMCwgMHhhNjM1LCAweGQ2ZjQsIDB4MWRhMCwKLQkweDcwNDQsIDB4YTAwNSwgMHgxMTEwLCAweDcwNDcsIDB4MDAxNSwgMHgyNDA4LCAweDI1MTAsIDB4MjcwMCwKLQkweDgwMDcsIDB4YTA4NCwgMHgwMDdmLCAweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDY5MmUsIDB4NmEzMiwKLQkweDIxMDAsIDB4YTIwNSwgMHgxMTEwLCAweDA4MDQsIDB4M2YyNiwgMHg3MDAwLCAweGEwODYsIDB4MDAwNiwKLQkweDAxMTAsIDB4MDgwNCwgMHgzZjI2LCAweDAwMDUsIDB4Njk0NiwgMHg2MDA4LCAweGMwY2QsIDB4ZDNjYywKLQkweDAxMDgsIDB4YzA4ZCwgMHg2MDBhLCAweDY4MTgsIDB4NjgzYSwgMHg2ODFiLCAweDAwMDYsIDB4Njg4ZiwKLQkweDAwMDAsIDB4Njg5MywgMHgwMDAwLCAweDZhMzAsIDB4NjkyYywgMHg2YTNlLCAweDY5NDIsIDB4NjgyZiwKLQkweDAwMDMsIDB4NjgzMywgMHgwMDAwLCAweDY4MzcsIDB4MDAyMCwgMHg2ODk3LCAweDAwMDAsIDB4Njg5YiwKLQkweDAwMjAsIDB4NzAwMCwgMHgwMDAyLCAweDI1YTAsIDB4MzE3MywgMHgzMTZkLCAweDMxNmIsIDB4MzE2YiwKLQkweDMxNmIsIDB4MzE2YiwgMHgzMTZiLCAweDA4MGMsIDB4MjU0YywgMHg2ODIwLCAweGQwODQsIDB4MTExOCwKLQkweDA4MGMsIDB4MzdhNCwgMHgwMDMwLCAweDcwNTgsIDB4MmM1MCwgMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwKLQkweDJhNjAsIDB4YWVhMCwgMHgwMDE3LCAweDI0MDQsIDB4YTAwNSwgMHgwMTEwLCAweDIwMjAsIDB4MGNkOCwKLQkweDJkMjIsIDB4MjA2YiwgMHgwMDAwLCAweDAwMDUsIDB4MDgwYywgMHgzN2FhLCAweDA4MGMsIDB4MzdiZSwKLQkweDYwMDgsIDB4YzBjYywgMHg2MDBhLCAweDY4MmIsIDB4MDAwMCwgMHg3ODliLCAweDAwMGUsIDB4NmYxNCwKLQkweDY5MzgsIDB4NjkxYSwgMHg2OTQ0LCAweDY5MTYsIDB4MjAwOSwgMHgwMDAwLCAweGFlODYsIDB4NDY0MCwKLQkweDAxMTAsIDB4MjAwOSwgMHgwMDAxLCAweDA4MGMsIDB4NDJlYywgMHhkNmRjLCAweDAxYzgsIDB4NjkxYywKLQkweGMxZWQsIDB4NjkxZSwgMHg2ODI4LCAweGEwODIsIDB4MDAwZSwgMHgwMjkwLCAweDY4NDgsIDB4YTA4NCwKLQkweDAwMGYsIDB4YTA4NiwgMHgwMDBiLCAweDExNjAsIDB4Njg1YywgMHhhMDg2LCAweDAwNDcsIDB4MTE0MCwKLQkweDIwMDEsIDB4NDYwMSwgMHgyMDA0LCAweGQwYWMsIDB4MTExOCwgMHgyNzAwLCAweDA4MGMsIDB4MjQ3NSwKLQkweDY4MTgsIDB4ZDBmYywgMHgwMTQwLCAweDY4MWIsIDB4MDAwMCwgMHg3ODY4LCAweGEwOGMsIDB4MDBmZiwKLQkweDAxMTAsIDB4NjgxYiwgMHgwMDFlLCAweGFlYTAsIDB4MDAxNywgMHg2ODAwLCAweDIwMjIsIDB4NmEzYywKLQkweDY5NDAsIDB4NmEzMiwgMHg2OTJlLCAweDY4YzAsIDB4MjA2MCwgMHg2MDAwLCAweGQwYTQsIDB4MDU4MCwKLQkweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDUsIDB4MjA1MSwgMHgwMDIwLCAweDAwZDYsIDB4MDBmNiwKLQkweDAxNTYsIDB4MDE0NiwgMHgyMDc5LCAweDQ2MDAsIDB4MDgwYywgMHgxYjkzLCAweDAxNGUsIDB4MDE1ZSwKLQkweDAwZmUsIDB4NzBjOCwgMHgyMDEwLCAweDIwMDksIDB4MDEwMSwgMHgwMDI2LCAweDIyMDQsIDB4YTA2ZCwKLQkweDAxNDAsIDB4NjgxNCwgMHhhNzA2LCAweDAxMTAsIDB4NjgwMCwgMHgwY2M4LCAweDY4MjAsIDB4YzBkNSwKLQkweDY4MjIsIDB4MDAyZSwgMHg4MjEwLCAweDgxMDksIDB4MWQ4MCwgMHgwMGRlLCAweDcwNjMsIDB4MDAwMywKLQkweDcwN2IsIDB4MDAwMCwgMHg3NzcyLCAweDcwN2YsIDB4MDAwZiwgMHg3MWQwLCAweGMxYzQsIDB4NzFkMiwKLQkweDY4MTgsIDB4YTA4NiwgMHgwMDAyLCAweDExMzgsIDB4NjgxNywgMHgwMDAwLCAweDY4MmIsIDB4MDAwMCwKLQkweDY4MWMsIDB4YzBlYywgMHg2ODFlLCAweDA4MGMsIDB4MWRhMiwgMHgwODA0LCAweDI1YTAsIDB4N2NkOCwKLQkweDdkZGMsIDB4N2ZkMCwgMHgwODBjLCAweDMwZGMsIDB4NjgyYiwgMHgwMDAwLCAweDc4OWIsIDB4MDAwZSwKLQkweDZmMTQsIDB4MDgwYywgMHgzYzRhLCAweGEwOGMsIDB4MDBmZiwgMHg2OTE2LCAweDY4MTgsIDB4ZDBmYywKLQkweDAxMTAsIDB4NzA0NCwgMHg2ODFhLCAweGE2OGMsIDB4ZGYwMCwgMHg2OTFlLCAweDcwNjMsIDB4MDAwMCwKLQkweDA4MDQsIDB4MjVhMCwgMHg3MDAwLCAweGEwMDUsIDB4MTExMCwgMHgwODA0LCAweDI1YTAsIDB4YTAwNiwKLQkweDA4MGMsIDB4M2YyNiwgMHg2OTIwLCAweGQxYWMsIDB4MTExMCwgMHg2ODFiLCAweDAwMTQsIDB4YTY4YywKLQkweGRmMDAsIDB4NjkxZSwgMHg2ODJiLCAweDAwMDAsIDB4NjgyMCwgMHhhMDg0LCAweDAwZmYsIDB4NjgyMiwKLQkweDcwMDAsIDB4MDAwMiwgMHgyNWEwLCAweDMyNGMsIDB4MzI0YywgMHgzMjRmLCAweDMyNGYsIDB4MzI0ZiwKLQkweDMyNGEsIDB4MzI0YSwgMHgwODBjLCAweDI1NGMsIDB4NjgxOCwgMHgwODA0LCAweDJmMTgsIDB4NjAwOCwKLQkweGMwYTQsIDB4NjAwYSwgMHg2ODE3LCAweDAwMDAsIDB4MDgwNCwgMHgzNzcyLCAweDIzMDAsIDB4MDAwMiwKLQkweDMyNWIsIDB4MzI1ZCwgMHgzMmFiLCAweDA4MGMsIDB4MjU0YywgMHhkNmZjLCAweDE5MDQsIDB4MmQzOCwKLQkweDcwMDAsIDB4YTAwZCwgMHgwMDAyLCAweDI1YTAsIDB4MzI2ZCwgMHgzMjZkLCAweDMyOTcsIDB4MzI2ZCwKLQkweDMyYTgsIDB4MzI2YiwgMHgzMjZiLCAweDA4MGMsIDB4MjU0YywgMHhhNjg0LCAweDAwNjAsIDB4MDUzOCwKLQkweGEwODYsIDB4MDA2MCwgMHgxNTEwLCAweGM2YWMsIDB4YzZmNCwgMHhjNmVkLCAweDdlNWEsIDB4NmViNiwKLQkweDY4MWMsIDB4YzBhYywgMHg2ODFlLCAweGExODYsIDB4MDAwMiwgMHgwMTQ4LCAweDA4MGMsIDB4M2YyNiwKLQkweDY5YWMsIDB4NjhiMCwgMHhhMTE1LCAweDAxMTgsIDB4MDgwYywgMHg0MjA2LCAweDAwMTAsIDB4MDgwYywKLQkweDQxZDksIDB4NzgxYiwgMHgwMDgzLCAweDcxZDAsIDB4ZDFiNCwgMHgxOTA0LCAweDI1OWQsIDB4NzBhMCwKLQkweGEwODYsIDB4MDAwMSwgMHgxOTA0LCAweDI1ZTEsIDB4MDAwNSwgMHhkNmVjLCAweDA5ZjAsIDB4NjgxOCwKLQkweGQwZmMsIDB4MDE3MCwgMHhkNmY0LCAweDExMzAsIDB4NjgxYiwgMHgwMDE1LCAweDc4MWIsIDB4MDA4MywKLQkweDA4MDQsIDB4MjU5ZCwgMHg2ODFiLCAweDAwMDcsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwKLQkweDA4MGMsIDB4M2JmMSwgMHgwMDA1LCAweDA4MGMsIDB4MjU0YywgMHgyMzAwLCAweDAwMDIsIDB4MzJiNCwKLQkweDMyZDYsIDB4MzMyZSwgMHgwODBjLCAweDI1NGMsIDB4NzAwMCwgMHgwMDAyLCAweDMyYmUsIDB4MzJjMCwKLQkweDMyYzcsIDB4MzJiZSwgMHgzMmJlLCAweDMyYmUsIDB4MzJiZSwgMHgzMmJlLCAweDA4MGMsIDB4MjU0YywKLQkweDY5YWMsIDB4NjhiMCwgMHhhMTE1LCAweDAxMTgsIDB4MDgwYywgMHg0MjA2LCAweDAwMTAsIDB4MDgwYywKLQkweDQxZDksIDB4NjgxYywgMHhjMGI0LCAweDY4MWUsIDB4NzBkMCwgMHhkMGI0LCAweDE5MDQsIDB4MjU5ZCwKLQkweDcwYTAsIDB4YTA4NiwgMHgwMDAxLCAweDE5MDQsIDB4MjVlMSwgMHgwMDA1LCAweGQ2ZmMsIDB4MTkwNCwKLQkweDMzMWUsIDB4NzAwMCwgMHhhMDBkLCAweDAwMDIsIDB4MjVhMCwgMHgzMmVjLCAweDMyZTYsIDB4MzMxNiwKLQkweDMyZWMsIDB4MzMxYiwgMHgzMmU0LCAweDMyZTQsIDB4MDgwYywgMHgyNTRjLCAweDY4OTQsIDB4NzhkNiwKLQkweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YTY4NCwgMHgwMDYwLCAweDA1MzgsIDB4YTA4NiwKLQkweDAwNjAsIDB4MTUxMCwgMHhhNmI0LCAweGJmYmYsIDB4YzZlZCwgMHg3ZTVhLCAweDZlYjYsIDB4YTE4NiwKLQkweDAwMDIsIDB4MDE0OCwgMHgwODBjLCAweDNmMjYsIDB4NjlhYywgMHg2OGIwLCAweGExMTUsIDB4MDExOCwKLQkweDA4MGMsIDB4NDIwNiwgMHgwMDEwLCAweDA4MGMsIDB4NDFkOSwgMHg3ODFiLCAweDAwODMsIDB4NjgxYywKLQkweGMwYjQsIDB4NjgxZSwgMHg3MWQwLCAweGQxYjQsIDB4MTkwNCwgMHgyNTlkLCAweDcwYTAsIDB4YTA4NiwKLQkweDAwMDEsIDB4MTkwNCwgMHgyNWUxLCAweDAwMDUsIDB4ZDZlYywgMHgwOWYwLCAweDY4MTgsIDB4ZDBmYywKLQkweDAxMTAsIDB4NjgxYiwgMHgwMDA3LCAweDc4MWIsIDB4MDBmYiwgMHgwMDA1LCAweGM2ZmMsIDB4N2U1YSwKLQkweDdhZGMsIDB4NzlkOCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwKLQkweGEzMDMsIDB4NjhhZSwgMHg3OWQyLCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweGQ2ZGMsIDB4MDEzMCwKLQkweDc4MmIsIDB4MzAwOSwgMHg3ODFiLCAweDAwODMsIDB4MDgwNCwgMHgyNTlkLCAweDc4ODQsIDB4YzBhYywKLQkweDc4ODYsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MTE1MCwgMHhhNDg0LCAweDAyMDAsIDB4MDEwOCwKLQkweGM2ZjUsIDB4YzZkZCwgMHg3ZTVhLCAweDc4MWIsIDB4MDA4MywgMHgwODA0LCAweDI1OWQsIDB4NjgyMCwKLQkweGMwOTUsIDB4NjgyMiwgMHgwODBjLCAweDNiZGMsIDB4YzZkZCwgMHgwODBjLCAweDNhM2MsIDB4NzgxYiwKLQkweDAwODIsIDB4MDgwNCwgMHgyNTlkLCAweDIzMDAsIDB4MDAwMiwgMHgzMzU4LCAweDMzNWEsIDB4MzM1YywKLQkweDA4MGMsIDB4MjU0YywgMHgwODA0LCAweDNhMzYsIDB4N2Q5OCwgMHhkNmQ0LCAweDE1YTgsIDB4NzllNCwKLQkweGQxYWMsIDB4MDEzMCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMTEwLCAweDc4MmIsIDB4MzAwOSwKLQkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4N2Q5YSwKLQkweDc5ZTQsIDB4ZDFhYywgMHgwMTIwLCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDExMjAsIDB4MjAwMSwKLQkweDAwMTQsIDB4MDgwNCwgMHgyZjE4LCAweDc4ODQsIDB4ZDBmYywgMHgxMTE4LCAweGExODQsIDB4MDAwNywKKwkweDAwZGUsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTgsIDB4NzgzYiwgMHgxMzAwLCAweDc4MWIsIDB4MDA1NywKKwkweDIwMDEsIDB4MDAwMCwgMHgwMDIwLCAweDcyMDAsIDB4N2NkOCwgMHg3ZGRjLCAweDdmZDAsIDB4NzA0NiwKKwkweDY4YTAsIDB4ZDBlYywgMHgwMTE4LCAweDYwMDgsIDB4YzA4ZCwgMHg2MDBhLCAweGEyODQsIDB4MDAwZiwKKwkweDAwMDIsIDB4MzA3YywgMHgyZjU2LCAweDJmNTMsIDB4MzFhNywgMHgzMjMyLCAweDI1YzksIDB4MmY1MSwKKwkweDJmNTEsIDB4MDgwYywgMHgyNTc1LCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweGQ2ZTQsIDB4MDEyMCwKKwkweDcwNDQsIDB4YTA4NiwgMHgwMDE0LCAweDExZTgsIDB4MDgwYywgMHgzZjRlLCAweDIwMDksIDB4MDAwMCwKKwkweDY4MTgsIDB4ZDBmYywgMHgwMTA4LCAweDcwNDQsIDB4YTA4NiwgMHgwMDE0LCAweDAxNjgsIDB4NjgxOCwKKwkweGEwODYsIDB4MDAwOCwgMHgxOTA0LCAweDMwM2UsIDB4Nzg1OCwgMHhkMDljLCAweDA5MDQsIDB4MzAzZSwKKwkweDY4MjAsIDB4ZDBhYywgMHgwOTA0LCAweDMwM2UsIDB4NjgxYiwgMHgwMDE0LCAweDIwMDksIDB4MDAwMiwKKwkweDA0YTgsIDB4Nzg2OCwgMHhhMDhjLCAweDAwZmYsIDB4MDU4OCwgMHhhMTg2LCAweDAwMDgsIDB4MTE1OCwKKwkweDYwMDgsIDB4YzBhNCwgMHg2MDBhLCAweDA4MGMsIDB4Mzc3MiwgMHgwNTQwLCAweDA4MGMsIDB4MzdlMSwKKwkweDA4MGMsIDB4M2Y0ZSwgMHgwMDYwLCAweGExODYsIDB4MDAyOCwgMHgxNTAwLCAweDYwMTgsIDB4YTAwNSwKKwkweDBkNzgsIDB4ODAwMSwgMHgwZDY4LCAweDgwMDEsIDB4MGQ1OCwgMHg2MDFlLCAweDBjNDgsIDB4NjgyMCwKKwkweGQwODQsIDB4MDkwNCwgMHgyNWM5LCAweGMwODQsIDB4NjgyMiwgMHgwODBjLCAweDI2YmYsIDB4NzA1OCwKKwkweDAwYzYsIDB4MjA2MCwgMHg2ODAwLCAweDYwMDIsIDB4MDBjZSwgMHg2MDA0LCAweDY4MDIsIDB4YTAwNSwKKwkweDJkMDAsIDB4MTEwOCwgMHg2MDAyLCAweDYwMDYsIDB4MDgwNCwgMHgyNWM5LCAweDAwMTYsIDB4ODFmZiwKKwkweDE1ZjAsIDB4NzAwMCwgMHhhMDg2LCAweDAwMzAsIDB4MDVkMCwgMHg3MWQwLCAweGQxYmMsIDB4MTViOCwKKwkweGQxYjQsIDB4MTFlOCwgMHg3MDVjLCAweGEwMDUsIDB4MTU5MCwgMHg3MGEwLCAweGEwODYsIDB4MDAwMSwKKwkweDA1NzAsIDB4NzAwMywgMHgwMDAwLCAweDAwNDYsIDB4MDA1NiwgMHgwMDc2LCAweDAwNjYsIDB4MDBjNiwKKwkweDAwZDYsIDB4MDgwYywgMHgyNWYxLCAweDAwZGUsIDB4MDBjZSwgMHgwMDZlLCAweDAwN2UsIDB4MDA1ZSwKKwkweDAwNGUsIDB4NzFkMCwgMHhkMWI0LCAweDExZDgsIDB4NzAwMywgMHgwMDQwLCAweDAwYzAsIDB4MDgwYywKKwkweDNjNWIsIDB4MTFhOCwgMHg3ODFiLCAweDAwNjgsIDB4MDBkNiwgMHg3MGI4LCAweGEwNmQsIDB4NjhiNCwKKwkweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YzFiNCwKKwkweDcxZDIsIDB4NzAwMywgMHgwMDMwLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDAwZGUsIDB4MDgwYywKKwkweDMwZmYsIDB4MDAxZSwgMHg4MWZmLCAweDA5MDQsIDB4MzAzZSwgMHhhNjg0LCAweGRmMDAsIDB4NjgxZSwKKwkweDY4MmIsIDB4MDAwMCwgMHg2ZjE0LCAweGExODYsIDB4MDAwMiwgMHgxOTA0LCAweDMwM2YsIDB4NjgxOCwKKwkweGEwODYsIDB4MDAxNCwgMHgxMTMwLCAweDIwMDgsIDB4ZDZlNCwgMHgwMTE4LCAweDc4NjgsIDB4YTA4YywKKwkweDAwZmYsIDB4MDgwYywgMHgzYTdhLCAweDA4MGMsIDB4MjZjYSwgMHg2ODIwLCAweGQwZGMsIDB4MTU3OCwKKwkweDg3MTcsIDB4YTI5NCwgMHgwMDBmLCAweDgyMTMsIDB4ODIxMywgMHg4MjEzLCAweGIyODQsIDB4MDYwMCwKKwkweDAxMTgsIDB4YTI5MCwgMHg0YmMwLCAweDAwMTAsIDB4YTI5MCwgMHg0YzQwLCAweGEyOTAsIDB4MDAwMCwKKwkweDIyMWMsIDB4ZDNjNCwgMHgwMTcwLCAweDY4MjAsIDB4ZDBlNCwgMHgwMTI4LCAweGEwODQsIDB4ZWZmZiwKKwkweDY4MjIsIDB4YzNhYywgMHgyMzEyLCAweDgyMTAsIDB4MjIwNCwgMHhhMDg1LCAweDAwMzgsIDB4MjAxMiwKKwkweDgyMTEsIDB4ZDNkNCwgMHgwMTM4LCAweDY4YTAsIDB4ZDBjNCwgMHgxMTIwLCAweDA4MGMsIDB4MzE2NywKKwkweDA4MDQsIDB4MjVjOSwgMHg2MDA4LCAweGMwOGQsIDB4NjAwYSwgMHgwMDA4LCAweDY5MmEsIDB4NjkxNiwKKwkweDY4MTgsIDB4ZDBmYywgMHgwMTEwLCAweDcwNDQsIDB4NjgxYSwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwKKwkweDY0MTAsIDB4ODRmZiwgMHgwMTY4LCAweDIwMDksIDB4NDcwMiwgMHgyMTA0LCAweDgwMDEsIDB4MjAwYSwKKwkweDg0MjEsIDB4NjQxMiwgMHgxMTI4LCAweDIwMjEsIDB4NDcwNCwgMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwKKwkweDYwMTgsIDB4YTAwNSwgMHgwMTE4LCAweDgwMDEsIDB4NjAxYSwgMHgxMTE4LCAweDYwMDgsIDB4YzBhNCwKKwkweDYwMGEsIDB4NjgyMCwgMHhkMDg0LCAweDExMzAsIDB4NjgwMCwgMHhhMDA1LCAweDExMDgsIDB4NjAwMiwKKwkweDYwMDYsIDB4MDAyMCwgMHg3MDU4LCAweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDIwNjEsIDB4NDcwMCwKKwkweDY4ODcsIDB4MDEwMywgMHgyZDA4LCAweDIwNmIsIDB4MDAwMCwgMHg2MDY4LCAweGEwMDUsIDB4NjE2YSwKKwkweDAxMTAsIDB4MmQwMiwgMHgwMDA4LCAweDYxNmUsIDB4NzIwMCwgMHhhMjg2LCAweDAwMzAsIDB4MDE1OCwKKwkweGEyODYsIDB4MDA0MCwgMHgxOTA0LCAweDI1YzksIDB4NzAwMywgMHgwMDAyLCAweDcwNDgsIDB4MjA2OCwKKwkweDY4YzQsIDB4MjA2MCwgMHgwMDA1LCAweDcwMDMsIDB4MDAwMiwgMHg3MGI4LCAweGEwNmQsIDB4NjhiYywKKwkweDcwM2UsIDB4NzBiNCwgMHhhMDY1LCAweDY4YzAsIDB4NzA1NiwgMHgyZDAwLCAweDcwNGEsIDB4YWQ4MCwKKwkweDAwMDksIDB4NzA0MiwgMHgwMDA1LCAweGEyODIsIDB4MDAwNCwgMHgwMjEwLCAweDA4MGMsIDB4MjU3NSwKKwkweDIyMDAsIDB4MDAwMiwgMHgzMGE2LCAweDMwYjUsIDB4MzBjMSwgMHgzMGI1LCAweGE1ODYsIDB4MTMwMCwKKwkweDAxNjAsIDB4YTU4NiwgMHg4MzAwLCAweDFkOTAsIDB4NzAwMywgMHgwMDAwLCAweDYwMTgsIDB4ODAwMSwKKwkweDYwMWEsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHg3MDAwLCAweGEwODYsIDB4MDAwNSwKKwkweDAxMjgsIDB4MDgwYywgMHgzYTYxLCAweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywKKwkweDAwMDUsIDB4Nzg5MCwgMHg4MDA3LCAweDgwMDEsIDB4YTA4NCwgMHgwMDA3LCAweGEwODAsIDB4MDAxOCwKKwkweDc4OWEsIDB4NzlhOCwgMHhhMThjLCAweDAwZmYsIDB4YTE4NiwgMHgwMDAzLCAweDAxMjgsIDB4YTE4NiwKKwkweDAwMDAsIDB4MDExMCwgMHgwODA0LCAweDNhMzAsIDB4NzgxYiwgMHgwMDgzLCAweDAwMDUsIDB4NjgyMCwKKwkweGMwOTUsIDB4NjgyMiwgMHg4MmZmLCAweDExMTgsIDB4MDgwYywgMHgzYTYxLCAweDAwMzAsIDB4ODIxMSwKKwkweDAxMTAsIDB4MDgwYywgMHgyNTc1LCAweDA4MGMsIDB4M2E3MCwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKKwkweDA4MGMsIDB4M2M2ZSwgMHg3ODMwLCAweGEwODQsIDB4MDBjMCwgMHgxMTcwLCAweDAwMTYsIDB4MzIwOCwKKwkweGExOGMsIDB4MDgwMCwgMHgwMDFlLCAweDAxMTgsIDB4MDEwNCwgMHgzMGZjLCAweDAwMTAsIDB4MDMwNCwKKwkweDMwZmMsIDB4NzkxYSwgMHhhMDA2LCAweDAwMDUsIDB4YTA4NSwgMHgwMDAxLCAweDAwMDUsIDB4YTY4NCwKKwkweDAwNjAsIDB4MTEzMCwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDA4MDQsIDB4MzE2NiwKKwkweGQ2ZGMsIDB4MTE5OCwgMHg2OGI0LCAweGQwZGMsIDB4MTE4MCwgMHg2OTk4LCAweDZhOTQsIDB4NjkyZSwKKwkweDZhMzIsIDB4NzA0NCwgMHhhMDA1LCAweDExMzAsIDB4MjIwMCwgMHhhMTA1LCAweDA5MDQsIDB4M2Y0ZSwKKwkweDcwNDcsIDB4MDAxNSwgMHgwODA0LCAweDNmNGUsIDB4MDAwNSwgMHhkNmFjLCAweDAxZjAsIDB4ZDZmNCwKKwkweDAxMzAsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgwODA0LCAweDNmNGUsIDB4NjhiNCwKKwkweGEwODQsIDB4NDAwMCwgMHhhNjM1LCAweGQ2ZjQsIDB4MWRhMCwgMHg3MDQ0LCAweGEwMDUsIDB4MTExMCwKKwkweDcwNDcsIDB4MDAxNSwgMHhkNmRjLCAweDExMjgsIDB4NjhiNCwgMHhkMGRjLCAweDAxMTAsIDB4NmNhOCwKKwkweDZkYTQsIDB4NmMyZSwgMHg2ZDMyLCAweDA4MDQsIDB4M2Y0ZSwgMHhkNmY0LCAweDAxMzAsIDB4NjgyZiwKKwkweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDA4MDQsIDB4M2Y0ZSwgMHg2OGI0LCAweGEwODQsIDB4NDgwMCwKKwkweGE2MzUsIDB4ZDZmNCwgMHgxZGEwLCAweDcwNDQsIDB4YTAwNSwgMHgxMTEwLCAweDcwNDcsIDB4MDAxNSwKKwkweDI0MDgsIDB4MjUxMCwgMHgyNzAwLCAweDgwMDcsIDB4YTA4NCwgMHgwMDdmLCAweGExMDgsIDB4YTI5MSwKKwkweDAwMDAsIDB4NjkyZSwgMHg2YTMyLCAweDIxMDAsIDB4YTIwNSwgMHgxMTEwLCAweDA4MDQsIDB4M2Y0ZSwKKwkweDcwMDAsIDB4YTA4NiwgMHgwMDA2LCAweDAxMTAsIDB4MDgwNCwgMHgzZjRlLCAweDAwMDUsIDB4Njk0NiwKKwkweDYwMDgsIDB4YzBjZCwgMHhkM2NjLCAweDAxMDgsIDB4YzA4ZCwgMHg2MDBhLCAweDY4MTgsIDB4NjgzYSwKKwkweDY4MWIsIDB4MDAwNiwgMHg2ODhmLCAweDAwMDAsIDB4Njg5MywgMHgwMDAwLCAweDZhMzAsIDB4NjkyYywKKwkweDZhM2UsIDB4Njk0MiwgMHg2ODJmLCAweDAwMDMsIDB4NjgzMywgMHgwMDAwLCAweDY4MzcsIDB4MDAyMCwKKwkweDY4OTcsIDB4MDAwMCwgMHg2ODliLCAweDAwMjAsIDB4NzAwMCwgMHgwMDAyLCAweDI1YzksIDB4MzE5NiwKKwkweDMxOTAsIDB4MzE4ZSwgMHgzMThlLCAweDMxOGUsIDB4MzE4ZSwgMHgzMThlLCAweDA4MGMsIDB4MjU3NSwKKwkweDY4MjAsIDB4ZDA4NCwgMHgxMTE4LCAweDA4MGMsIDB4MzdjNywgMHgwMDMwLCAweDcwNTgsIDB4MmM1MCwKKwkweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDJhNjAsIDB4YWVhMCwgMHgwMDE3LCAweDI0MDQsIDB4YTAwNSwKKwkweDAxMTAsIDB4MjAyMCwgMHgwY2Q4LCAweDJkMjIsIDB4MjA2YiwgMHgwMDAwLCAweDAwMDUsIDB4MDgwYywKKwkweDM3Y2QsIDB4MDgwYywgMHgzN2UxLCAweDYwMDgsIDB4YzBjYywgMHg2MDBhLCAweDY4MmIsIDB4MDAwMCwKKwkweDc4OWIsIDB4MDAwZSwgMHg2ZjE0LCAweDY5MzgsIDB4NjkxYSwgMHg2OTQ0LCAweDY5MTYsIDB4MjAwOSwKKwkweDAwMDAsIDB4YWU4NiwgMHg0NzQwLCAweDAxMTAsIDB4MjAwOSwgMHgwMDAxLCAweDA4MGMsIDB4NDMxZiwKKwkweGQ2ZGMsIDB4MDFjOCwgMHg2OTFjLCAweGMxZWQsIDB4NjkxZSwgMHg2ODI4LCAweGEwODIsIDB4MDAwZSwKKwkweDAyOTAsIDB4Njg0OCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4NiwgMHgwMDBiLCAweDExNjAsIDB4Njg1YywKKwkweGEwODYsIDB4MDA0NywgMHgxMTQwLCAweDIwMDEsIDB4NDcwMSwgMHgyMDA0LCAweGQwYWMsIDB4MTExOCwKKwkweDI3MDAsIDB4MDgwYywgMHgyNDllLCAweDY4MTgsIDB4ZDBmYywgMHgwMTQwLCAweDY4MWIsIDB4MDAwMCwKKwkweDc4NjgsIDB4YTA4YywgMHgwMGZmLCAweDAxMTAsIDB4NjgxYiwgMHgwMDFlLCAweGFlYTAsIDB4MDAxNywKKwkweDY4MDAsIDB4MjAyMiwgMHg2YTNjLCAweDY5NDAsIDB4NmEzMiwgMHg2OTJlLCAweDY4YzAsIDB4MjA2MCwKKwkweDYwMDAsIDB4ZDBhNCwgMHgwNTgwLCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDUsIDB4MjA1MSwKKwkweDAwMjAsIDB4MDBkNiwgMHgwMGY2LCAweDAxNTYsIDB4MDE0NiwgMHgyMDc5LCAweDQ3MDAsIDB4MDgwYywKKwkweDFiYjIsIDB4MDE0ZSwgMHgwMTVlLCAweDAwZmUsIDB4NzBjOCwgMHgyMDEwLCAweDIwMDksIDB4MDEwMSwKKwkweDAwMjYsIDB4MjIwNCwgMHhhMDZkLCAweDAxNDAsIDB4NjgxNCwgMHhhNzA2LCAweDAxMTAsIDB4NjgwMCwKKwkweDBjYzgsIDB4NjgyMCwgMHhjMGQ1LCAweDY4MjIsIDB4MDAyZSwgMHg4MjEwLCAweDgxMDksIDB4MWQ4MCwKKwkweDAwZGUsIDB4NzA2MywgMHgwMDAzLCAweDcwN2IsIDB4MDAwMCwgMHg3NzcyLCAweDcwN2YsIDB4MDAwZiwKKwkweDcxZDAsIDB4YzFjNCwgMHg3MWQyLCAweDY4MTgsIDB4YTA4NiwgMHgwMDAyLCAweDExMzgsIDB4NjgxNywKKwkweDAwMDAsIDB4NjgyYiwgMHgwMDAwLCAweDY4MWMsIDB4YzBlYywgMHg2ODFlLCAweDA4MGMsIDB4MWRiZiwKKwkweDA4MDQsIDB4MjVjOSwgMHg3Y2Q4LCAweDdkZGMsIDB4N2ZkMCwgMHgwODBjLCAweDMwZmYsIDB4NjgyYiwKKwkweDAwMDAsIDB4Nzg5YiwgMHgwMDBlLCAweDZmMTQsIDB4MDgwYywgMHgzYzcyLCAweGEwOGMsIDB4MDBmZiwKKwkweDY5MTYsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NzA0NCwgMHg2ODFhLCAweGE2OGMsIDB4ZGYwMCwKKwkweDY5MWUsIDB4NzA2MywgMHgwMDAwLCAweDA4MDQsIDB4MjVjOSwgMHg3MDAwLCAweGEwMDUsIDB4MTExMCwKKwkweDA4MDQsIDB4MjVjOSwgMHhhMDA2LCAweDA4MGMsIDB4M2Y0ZSwgMHg2OTIwLCAweGQxYWMsIDB4MTExMCwKKwkweDY4MWIsIDB4MDAxNCwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwgMHg2ODJiLCAweDAwMDAsIDB4NjgyMCwKKwkweGEwODQsIDB4MDBmZiwgMHg2ODIyLCAweDcwMDAsIDB4MDAwMiwgMHgyNWM5LCAweDMyNmYsIDB4MzI2ZiwKKwkweDMyNzIsIDB4MzI3MiwgMHgzMjcyLCAweDMyNmQsIDB4MzI2ZCwgMHgwODBjLCAweDI1NzUsIDB4NjgxOCwKKwkweDA4MDQsIDB4MmYzYiwgMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwgMHg2ODE3LCAweDAwMDAsIDB4MDgwNCwKKwkweDM3OTUsIDB4MjMwMCwgMHgwMDAyLCAweDMyN2UsIDB4MzI4MCwgMHgzMmNlLCAweDA4MGMsIDB4MjU3NSwKKwkweGQ2ZmMsIDB4MTkwNCwgMHgyZDViLCAweDcwMDAsIDB4YTAwZCwgMHgwMDAyLCAweDI1YzksIDB4MzI5MCwKKwkweDMyOTAsIDB4MzJiYSwgMHgzMjkwLCAweDMyY2IsIDB4MzI4ZSwgMHgzMjhlLCAweDA4MGMsIDB4MjU3NSwKKwkweGE2ODQsIDB4MDA2MCwgMHgwNTM4LCAweGEwODYsIDB4MDA2MCwgMHgxNTEwLCAweGM2YWMsIDB4YzZmNCwKKwkweGM2ZWQsIDB4N2U1YSwgMHg2ZWI2LCAweDY4MWMsIDB4YzBhYywgMHg2ODFlLCAweGExODYsIDB4MDAwMiwKKwkweDAxNDgsIDB4MDgwYywgMHgzZjRlLCAweDY5YWMsIDB4NjhiMCwgMHhhMTE1LCAweDAxMTgsIDB4MDgwYywKKwkweDQyMzUsIDB4MDAxMCwgMHgwODBjLCAweDQyMDgsIDB4NzgxYiwgMHgwMDgzLCAweDcxZDAsIDB4ZDFiNCwKKwkweDE5MDQsIDB4MjVjNiwgMHg3MGEwLCAweGEwODYsIDB4MDAwMSwgMHgxOTA0LCAweDI2MGQsIDB4MDAwNSwKKwkweGQ2ZWMsIDB4MDlmMCwgMHg2ODE4LCAweGQwZmMsIDB4MDE3MCwgMHhkNmY0LCAweDExMzAsIDB4NjgxYiwKKwkweDAwMTUsIDB4NzgxYiwgMHgwMDgzLCAweDA4MDQsIDB4MjVjNiwgMHg2ODFiLCAweDAwMDcsIDB4NjgyZiwKKwkweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDA4MGMsIDB4M2MxNywgMHgwMDA1LCAweDA4MGMsIDB4MjU3NSwKKwkweDIzMDAsIDB4MDAwMiwgMHgzMmQ3LCAweDMyZjksIDB4MzM1MSwgMHgwODBjLCAweDI1NzUsIDB4NzAwMCwKKwkweDAwMDIsIDB4MzJlMSwgMHgzMmUzLCAweDMyZWEsIDB4MzJlMSwgMHgzMmUxLCAweDMyZTEsIDB4MzJlMSwKKwkweDMyZTEsIDB4MDgwYywgMHgyNTc1LCAweDY5YWMsIDB4NjhiMCwgMHhhMTE1LCAweDAxMTgsIDB4MDgwYywKKwkweDQyMzUsIDB4MDAxMCwgMHgwODBjLCAweDQyMDgsIDB4NjgxYywgMHhjMGI0LCAweDY4MWUsIDB4NzBkMCwKKwkweGQwYjQsIDB4MTkwNCwgMHgyNWM2LCAweDcwYTAsIDB4YTA4NiwgMHgwMDAxLCAweDE5MDQsIDB4MjYwZCwKKwkweDAwMDUsIDB4ZDZmYywgMHgxOTA0LCAweDMzNDEsIDB4NzAwMCwgMHhhMDBkLCAweDAwMDIsIDB4MjVjOSwKKwkweDMzMGYsIDB4MzMwOSwgMHgzMzM5LCAweDMzMGYsIDB4MzMzZSwgMHgzMzA3LCAweDMzMDcsIDB4MDgwYywKKwkweDI1NzUsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YTY4NCwKKwkweDAwNjAsIDB4MDUzOCwgMHhhMDg2LCAweDAwNjAsIDB4MTUxMCwgMHhhNmI0LCAweGJmYmYsIDB4YzZlZCwKKwkweDdlNWEsIDB4NmViNiwgMHhhMTg2LCAweDAwMDIsIDB4MDE0OCwgMHgwODBjLCAweDNmNGUsIDB4NjlhYywKKwkweDY4YjAsIDB4YTExNSwgMHgwMTE4LCAweDA4MGMsIDB4NDIzNSwgMHgwMDEwLCAweDA4MGMsIDB4NDIwOCwKKwkweDc4MWIsIDB4MDA4MywgMHg2ODFjLCAweGMwYjQsIDB4NjgxZSwgMHg3MWQwLCAweGQxYjQsIDB4MTkwNCwKKwkweDI1YzYsIDB4NzBhMCwgMHhhMDg2LCAweDAwMDEsIDB4MTkwNCwgMHgyNjBkLCAweDAwMDUsIDB4ZDZlYywKKwkweDA5ZjAsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwgMHgwMDA3LCAweDc4MWIsIDB4MDBmYiwKKwkweDAwMDUsIDB4YzZmYywgMHg3ZTVhLCAweDdhZGMsIDB4NzlkOCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwKKwkweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwgMHg3OWQyLCAweDc4MWIsIDB4MDA4MywKKwkweDAwMDUsIDB4ZDZkYywgMHgwMTMwLCAweDc4MmIsIDB4MzAwOSwgMHg3ODFiLCAweDAwODMsIDB4MDgwNCwKKwkweDI1YzYsIDB4Nzg4NCwgMHhjMGFjLCAweDc4ODYsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MTE1MCwKKwkweGE0ODQsIDB4MDIwMCwgMHgwMTA4LCAweGM2ZjUsIDB4YzZkZCwgMHg3ZTVhLCAweDc4MWIsIDB4MDA4MywKKwkweDA4MDQsIDB4MjVjNiwgMHg2ODIwLCAweGMwOTUsIDB4NjgyMiwgMHgwODBjLCAweDNjMDIsIDB4YzZkZCwKKwkweDA4MGMsIDB4M2E2MSwgMHg3ODFiLCAweDAwODIsIDB4MDgwNCwgMHgyNWM2LCAweDIzMDAsIDB4MDAwMiwKKwkweDMzN2IsIDB4MzM3ZCwgMHgzMzdmLCAweDA4MGMsIDB4MjU3NSwgMHgwODA0LCAweDNhNWIsIDB4N2Q5OCwKKwkweGQ2ZDQsIDB4MTVhOCwgMHg3OWU0LCAweGQxYWMsIDB4MDEzMCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywKKwkweDAxMTAsIDB4NzgyYiwgMHgzMDA5LCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4YTY4NCwKKwkweGZmZmIsIDB4Nzg1YSwgMHg3ZDlhLCAweDc5ZTQsIDB4ZDFhYywgMHgwMTIwLCAweDc4ZWMsIDB4YTA4NCwKKwkweDAwMDMsIDB4MTEyMCwgMHgyMDAxLCAweDAwMTQsIDB4MDgwNCwgMHgyZjNiLCAweDc4ODQsIDB4ZDBmYywKKwkweDExMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwOTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNCwKKwkweDExMTgsIDB4MjAwMSwgMHgwMDAwLCAweDAwNTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNSwKKwkweDAxMTgsIDB4YTE4NCwgMHgwMDA3LCAweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDA0YzIsIDB4N2E5MCwKKwkweGEyOTQsIDB4MDAwNywgMHg3ODliLCAweDAwNjAsIDB4NzlhOCwgMHg4MWZmLCAweDA1NjgsIDB4Nzg5YiwKKwkweDAwODAsIDB4N2JhOCwgMHhhMzg0LCAweDAwMDEsIDB4MTFkMCwgMHg3YmE4LCAweDdiYTgsIDB4YTM4NiwKKwkweDAwMDQsIDB4MTExOCwgMHgyMDA5LCAweGZmZGYsIDB4MDA1OCwgMHhhMzg2LCAweDAwMDEsIDB4MTExOCwKKwkweDIwMDksIDB4ZmZmNywgMHgwMDI4LCAweGEzODYsIDB4MDAwMywgMHgxMTQ4LCAweDIwMDksIDB4ZmZlZiwKKwkweDAwYzYsIDB4NzA1NCwgMHgyMDYwLCAweDYwMDQsIDB4YTEwNCwgMHg2MDA2LCAweDAwY2UsIDB4Nzg5YiwKKwkweDAwNjAsIDB4NzhhYiwgMHgwMDAwLCAweGE2ODQsIDB4ZmZmYiwgMHg3ODVhLCAweDc4MmIsIDB4MzAwOSwKKwkweDY5MjAsIDB4YTE4YywgMHhlY2ZmLCAweDY5MjIsIDB4N2Q5YSwgMHgwODA0LCAweDNjMGIsIDB4MmJkMSwKKwkweDJiZGEsIDB4MzNmOSwgMHgzM2ZmLCAweDMzZjcsIDB4MzNmNywgMHgzYzBiLCAweDNjMGIsIDB4MDgwYywKKwkweDI1NzUsIDB4NjkyMCwgMHhhMThjLCAweGZjZmYsIDB4NjkyMiwgMHgwODA0LCAweDNjMTEsIDB4NjkyMCwKKwkweGExOGMsIDB4ZmNmZiwgMHg2OTIyLCAweDA4MDQsIDB4M2MwYiwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwKKwkweDAxMjAsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MTU3MCwgMHg3MDAwLCAweGEwODYsIDB4MDAwNCwKKwkweDExOTAsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDIsIDB4MTEzMCwgMHgyMDExLCAweDAwMDIsIDB4MjAxOSwKKwkweDAwMDAsIDB4MDgwNCwgMHgyYTg1LCAweDcwNjAsIDB4YTA4NiwgMHgwMDA2LCAweDBkYjAsIDB4NzA2MCwKKwkweGEwODYsIDB4MDAwNCwgMHgwZDkwLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAwLCAweDA5MDQsIDB4MjVjNiwKKwkweDY5MjAsIDB4YTE4NCwgMHgwNDIwLCAweDAxMjgsIDB4YzFkNCwgMHg2OTIyLCAweDY4MTgsIDB4MDgwNCwKKwkweDJmM2IsIDB4NjgxOCwgMHhhMDhlLCAweDAwMDIsIDB4MDEyMCwgMHhjMGZkLCAweDY4MWEsIDB4MjAwMSwKKwkweDAwMTQsIDB4MDgwNCwgMHgyZjNiLCAweDc4ODQsIDB4ZDBmYywgMHgxMTE4LCAweGExODQsIDB4MDAwNywKIAkweDAwOTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNCwgMHgxMTE4LCAweDIwMDEsIDB4MDAwMCwKIAkweDAwNTAsIDB4YTE4NCwgMHgwMDA3LCAweGEwODYsIDB4MDAwNSwgMHgwMTE4LCAweGExODQsIDB4MDAwNywKLQkweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDA0YzIsIDB4N2E5MCwgMHhhMjk0LCAweDAwMDcsIDB4Nzg5YiwKLQkweDAwNjAsIDB4NzlhOCwgMHg4MWZmLCAweDA1NjgsIDB4Nzg5YiwgMHgwMDgwLCAweDdiYTgsIDB4YTM4NCwKLQkweDAwMDEsIDB4MTFkMCwgMHg3YmE4LCAweDdiYTgsIDB4YTM4NiwgMHgwMDA0LCAweDExMTgsIDB4MjAwOSwKLQkweGZmZGYsIDB4MDA1OCwgMHhhMzg2LCAweDAwMDEsIDB4MTExOCwgMHgyMDA5LCAweGZmZjcsIDB4MDAyOCwKLQkweGEzODYsIDB4MDAwMywgMHgxMTQ4LCAweDIwMDksIDB4ZmZlZiwgMHgwMGM2LCAweDcwNTQsIDB4MjA2MCwKLQkweDYwMDQsIDB4YTEwNCwgMHg2MDA2LCAweDAwY2UsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwMCwKLQkweGE2ODQsIDB4ZmZmYiwgMHg3ODVhLCAweDc4MmIsIDB4MzAwOSwgMHg2OTIwLCAweGExOGMsIDB4ZWNmZiwKLQkweDY5MjIsIDB4N2Q5YSwgMHgwODA0LCAweDNiZTUsIDB4MmJhZSwgMHgyYmI3LCAweDMzZDYsIDB4MzNkYywKLQkweDMzZDQsIDB4MzNkNCwgMHgzYmU1LCAweDNiZTUsIDB4MDgwYywgMHgyNTRjLCAweDY5MjAsIDB4YTE4YywKLQkweGZjZmYsIDB4NjkyMiwgMHgwODA0LCAweDNiZWIsIDB4NjkyMCwgMHhhMThjLCAweGZjZmYsIDB4NjkyMiwKLQkweDA4MDQsIDB4M2JlNSwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMTIwLCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDMsIDB4MTU3MCwgMHg3MDAwLCAweGEwODYsIDB4MDAwNCwgMHgxMTkwLCAweDcwNjAsIDB4YTA4NiwKLQkweDAwMDIsIDB4MTEzMCwgMHgyMDExLCAweDAwMDIsIDB4MjAxOSwgMHgwMDAwLCAweDA4MDQsIDB4MmE1NiwKLQkweDcwNjAsIDB4YTA4NiwgMHgwMDA2LCAweDBkYjAsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDQsIDB4MGQ5MCwKLQkweDcwMDAsIDB4YTA4NiwgMHgwMDAwLCAweDA5MDQsIDB4MjU5ZCwgMHg2OTIwLCAweGExODQsIDB4MDQyMCwKLQkweDAxMjgsIDB4YzFkNCwgMHg2OTIyLCAweDY4MTgsIDB4MDgwNCwgMHgyZjE4LCAweDY4MTgsIDB4YTA4ZSwKLQkweDAwMDIsIDB4MDEyMCwgMHhjMGZkLCAweDY4MWEsIDB4MjAwMSwgMHgwMDE0LCAweDA4MDQsIDB4MmYxOCwKLQkweDc4ODQsIDB4ZDBmYywgMHgxMTE4LCAweGExODQsIDB4MDAwNywgMHgwMDkwLCAweGExODQsIDB4MDAwNywKLQkweGEwODYsIDB4MDAwNCwgMHgxMTE4LCAweDIwMDEsIDB4MDAwMCwgMHgwMDUwLCAweGExODQsIDB4MDAwNywKLQkweGEwODYsIDB4MDAwNSwgMHgwMTE4LCAweGExODQsIDB4MDAwNywgMHgwMDEwLCAweDIwMDEsIDB4MDAwMSwKLQkweDAwMDIsIDB4M2JlNSwgMHgzYmU1LCAweDM0MzksIDB4M2JlNSwgMHgzYzI5LCAweDNjMjksIDB4M2JlNSwKLQkweDNiZTUsIDB4ZDZiYywgMHgwNTcwLCAweDcxODAsIDB4ODFmZiwgMHgwNTU4LCAweGExODIsIDB4MDAwZCwKLQkweDEzMTgsIDB4NzA4MywgMHgwMDAwLCAweDAwMjgsIDB4YTE4MiwgMHgwMDBjLCAweDcwODIsIDB4MjAwOSwKLQkweDAwMGMsIDB4Nzg5YiwgMHgwMDYxLCAweDc5YWEsIDB4MDE1NiwgMHgwMTM2LCAweDAxNDYsIDB4NzA4NCwKLQkweDgxMTQsIDB4YTIxMCwgMHg3Mjg2LCAweGEwODAsIDB4MDAwYiwgMHhhZDAwLCAweDIwOTgsIDB4YjI4NCwKLQkweDA2MDAsIDB4MDExOCwgMHgyMGExLCAweDAyMmIsIDB4MDAxMCwgMHgyMGExLCAweDAxMmIsIDB4Nzg5YiwKLQkweDAwMDAsIDB4ODEwOCwgMHg4MWFjLCAweDUzYTYsIDB4MDE0ZSwgMHgwMTNlLCAweDAxNWUsIDB4MDgwNCwKLQkweDNiZWIsIDB4ZDZkNCwgMHgxOTA0LCAweDM0YWMsIDB4NjgyMCwgMHhkMDg0LCAweDA5MDQsIDB4M2JlYiwKLQkweGE2OGMsIDB4MDA2MCwgMHhhNjg0LCAweDAwNjAsIDB4MDEyMCwgMHhhMDg2LCAweDAwNjAsIDB4MTEwOCwKLQkweGMxZjUsIDB4YzE5NCwgMHg3OTVhLCAweDY5YjYsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwMCwKLQkweDc4OWIsIDB4MDA2MSwgMHg2ODE4LCAweGMwZmQsIDB4NjgxYSwgMHg3OGFhLCAweDgwMDgsIDB4ODEwYywKLQkweDA5MDQsIDB4MzdkMywgMHhhMThjLCAweDAwZjgsIDB4MTkwNCwgMHgzN2QzLCAweDAxNTYsIDB4MDEzNiwKLQkweDAxNDYsIDB4MDAxNiwgMHgyMGExLCAweDAxMmIsIDB4MzIwOCwgMHhhMThjLCAweDA2MDAsIDB4MDExMCwKLQkweDIwYTEsIDB4MDIyYiwgMHgwMDFlLCAweDc4OWIsIDB4MDAwMCwgMHg4MDAwLCAweDgwYWMsIDB4YWQ4MCwKLQkweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDAxNGUsIDB4MDEzZSwgMHgwMTVlLCAweDY4MTQsIDB4YzBmYywKLQkweDgwMDcsIDB4Nzg4MiwgMHgwODA0LCAweDNiZWIsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwKLQkweDAwMDgsIDB4MDgwYywgMHgzYTNjLCAweDc4MWIsIDB4MDBlZCwgMHgwMDA1LCAweDIzMDAsIDB4MDAwMiwKLQkweDM0YmQsIDB4MzU3YSwgMHgzNGJiLCAweDA4MGMsIDB4MjU0YywgMHg3Y2Q4LCAweDdkZGMsIDB4N2ZkMCwKLQkweDgyZmYsIDB4MTUyOCwgMHg3MjAwLCAweGEyODYsIDB4MDAwMywgMHgwOTA0LCAweDJlZTYsIDB4NzFkMCwKLQkweGQxYmMsIDB4MTFmOCwgMHhkMWI0LCAweDAxZTgsIDB4MjAwMSwgMHg0NjAxLCAweDIwMDQsIDB4ZDBjNCwKLQkweDExYzAsIDB4MDBkNiwgMHg3ODNiLCAweDg4MDAsIDB4NzgxYiwgMHgwMDU5LCAweDcwYjgsIDB4YTA2ZCwKLQkweDY4YjQsIDB4YzBhNSwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsIDB4NzhkMiwKLQkweDc4ZGEsIDB4YzFiNCwgMHg3MWQyLCAweDcwMDMsIDB4MDAzMCwgMHgwMGRlLCAweDAwMzAsIDB4NzIwMCwKLQkweDAwMjAsIDB4NzgzYiwgMHgxODAwLCAweDc4MWIsIDB4MDA1NywgMHhhMjg0LCAweDAwMGYsIDB4MDAwMiwKLQkweDM1NjUsIDB4MzUyMiwgMHgzNGZhLCAweDJmMTUsIDB4MzRmOCwgMHgzNTY1LCAweDM0ZjgsIDB4MzRmOCwKLQkweDA4MGMsIDB4MjU0YywgMHg2ODFjLCAweGQwZWMsIDB4MDExOCwgMHg2MDA4LCAweGMwOGQsIDB4NjAwYSwKLQkweDY5MjAsIDB4YzE4NSwgMHg2OTIyLCAweDY4MDAsIDB4NjAwNiwgMHhhMDA1LCAweDExMDgsIDB4NjAwMiwKLQkweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDY4MWMsIDB4YTA4NCwgMHgwMDBlLCAweDExMjAsIDB4NzFjOCwKLQkweGExODgsIDB4MDEwMCwgMHgwMDI4LCAweDcwMzAsIDB4NjhiYSwgMHg3MTNjLCAweDcwYzgsIDB4YTEwOCwKLQkweDIxMDQsIDB4NjgwMiwgMHgyZDBhLCAweDcxNWEsIDB4ZDZkYywgMHgxMTIwLCAweGM2ZmMsIDB4NmViNiwKLQkweDA4MDQsIDB4MzU2NSwgMHg2ZWI2LCAweGE2ODQsIDB4MDA2MCwgMHgxMTIwLCAweGE2ODQsIDB4N2ZmZiwKLQkweDY4YjYsIDB4MDRkOCwgMHhkNmRjLCAweDExNTAsIDB4YTY4NCwgMHg3ZmZmLCAweDY4YjYsIDB4Njg5NCwKLQkweDY4YTYsIDB4Njg5OCwgMHg2OGFhLCAweDA4MGMsIDB4M2YyNiwgMHgwNDc4LCAweGQ2YWMsIDB4MDE0MCwKLQkweGEwMDYsIDB4MDgwYywgMHgzZjI2LCAweDI0MDgsIDB4MjUxMCwgMHg2OWFhLCAweDZhYTYsIDB4MDA2OCwKLQkweDI0MDgsIDB4MjUxMCwgMHgyNzAwLCAweDgwMDcsIDB4YTA4NCwgMHgwMDdmLCAweGExMDgsIDB4YTI5MSwKLQkweDAwMDAsIDB4NjlhYSwgMHg2YWE2LCAweDA4MGMsIDB4M2YyNiwgMHhkNmZjLCAweDAxYjAsIDB4YTY4NCwKLQkweDdmZmYsIDB4NjhiNiwgMHgyNTEwLCAweDI0MDgsIDB4ZDZhYywgMHgxMTM4LCAweDI3MDAsIDB4ODAwNywKLQkweGEwODQsIDB4MDA3ZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwKLQkweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwgMHg3MDAwLCAweGEwODYsIDB4MDAzMCwKLQkweDE5MDQsIDB4MjVhMCwgMHg3MDAzLCAweDAwMDIsIDB4NzBiOCwgMHhhMDZkLCAweDY4YmMsIDB4NzAzZSwKLQkweDcwYjQsIDB4YTA2NSwgMHg2OGMwLCAweDcwNTYsIDB4MmQwMCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwKLQkweDcwNDIsIDB4MDAwNSwgMHhhNTg2LCAweDg4MDAsIDB4MTE0OCwgMHg3MDAzLCAweDAwMDAsIDB4NjAxOCwKLQkweDgwMDEsIDB4NjAxYSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDA4MDQsIDB4M2EzNiwKLQkweDcwNDMsIDB4MDAwMCwgMHhhMjgyLCAweDAwMDYsIDB4MDMxMCwgMHgwODBjLCAweDI1NGMsIDB4MjMwMCwKLQkweDAwMDIsIDB4MzU5NCwgMHgzNWE1LCAweDM1YWYsIDB4MjIwMCwgMHgwMDAyLCAweDM1OWMsIDB4M2EzNiwKLQkweDM1OWUsIDB4MzU5YywgMHgzNWUwLCAweDM2MmUsIDB4MDgwYywgMHgyNTRjLCAweDdhODAsIDB4YTI5NCwKLQkweDBmMDAsIDB4MDgwYywgMHgzNjgyLCAweDA4MDQsIDB4M2EwYiwgMHgwMGMxLCAweDAwMDIsIDB4M2EzNiwKLQkweDM1YWQsIDB4MzVhZCwgMHgzNWUwLCAweDM1YWQsIDB4M2EzNiwgMHgwODBjLCAweDI1NGMsIDB4MDA3MSwKLQkweDAwMDIsIDB4MzViOSwgMHgzNWI3LCAweDM1YjcsIDB4MzViOSwgMHgzNWI3LCAweDM1YjksIDB4MDgwYywKLQkweDI1NGMsIDB4MDgwYywgMHgzYTRiLCAweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDcwMDAsIDB4YTA4NiwKLQkweDAwMDIsIDB4MTE1MCwgMHgwODBjLCAweDM3YmUsIDB4MDAxMCwgMHgwODBjLCAweDNmMjYsIDB4NjAwOCwKLQkweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDAwMjAsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MGRhOCwKLQkweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDhkZTAsIDB4YWU4ZSwgMHg0NjQwLCAweDAxMTAsIDB4MjAwMSwKLQkweDhlMTIsIDB4MjA2OCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwgMHg3MDQyLCAweDIyMDAsIDB4MDAwNSwKLQkweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDExNTgsIDB4NzBkMCwgMHhjMGI1LCAweDcwZDIsIDB4MmMwMCwKLQkweDcwYjYsIDB4MmQwMCwgMHg3MGJhLCAweDAwMzgsIDB4MDgwYywgMHgzZjI2LCAweDAwMjAsIDB4NzAwMCwKLQkweGEwODYsIDB4MDAwMywgMHgwZGM4LCAweDcwMDMsIDB4MDAwMSwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwKLQkweDc4OWIsIDB4MDAxOCwgMHg3Y2E4LCAweGE0ODQsIDB4MDAxZiwgMHhhMjE1LCAweDIwNjksIDB4OGNjMCwKLQkweGIyODQsIDB4MDYwMCwgMHgxMTE4LCAweGMyZmQsIDB4MjA2OSwgMHg4ZGQwLCAweDJkMDQsIDB4MmQwOCwKLQkweDcxNWEsIDB4YTA2ZCwgMHgwMTI4LCAweDY4MTQsIDB4YTIwNiwgMHgwMTIwLCAweDY4MDAsIDB4MGNiOCwKLQkweDA4MGMsIDB4MzY4MiwgMHg2ZWI0LCAweDdlNWEsIDB4NjkyMCwgMHhhMTg0LCAweDBjMDAsIDB4MDkwNCwKLQkweDM2YTgsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDYsIDB4MTEyOCwgMHg3MDcwLCAweGEyMDYsIDB4MTExMCwKLQkweDcwNjIsIDB4NzA3YSwgMHg2ODFiLCAweDAwMDUsIDB4YzFhZCwgMHg2ODFiLCAweDAwMDUsIDB4YzFhZCwKLQkweGMxZDQsIDB4NjkyMiwgMHgwODBjLCAweDNhNDIsIDB4MDgwNCwgMHgzNmE4LCAweDcyMDAsIDB4YTI4NiwKLQkweDAwMDIsIDB4MTE1OCwgMHg3MGQwLCAweGMwYjUsIDB4NzBkMiwgMHgyYzAwLCAweDcwYjYsIDB4MmQwMCwKLQkweDcwYmEsIDB4MDAzMCwgMHgwODBjLCAweDNmMjYsIDB4MDAxOCwgMHhhMjg2LCAweDAwMDMsIDB4MGRkMCwKLQkweDcwMDMsIDB4MDAwMSwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwgMHg3ODliLCAweDAwMTgsIDB4N2NhOCwKLQkweGE0ODQsIDB4MDAxZiwgMHhhMjE1LCAweGFlODYsIDB4NDY0MCwgMHgwMTA4LCAweGMyZmQsIDB4NzlhOCwKLQkweDc5YTgsIDB4YTE4YywgMHgwMGZmLCAweDIxMTgsIDB4NzBjOCwgMHhhMTY4LCAweDJkMDQsIDB4MmQwOCwKLQkweDcxNWEsIDB4YTA2ZCwgMHgwMTI4LCAweDY4MTQsIDB4YTIwNiwgMHgwMTE4LCAweDY4MDAsIDB4MGNiOCwKLQkweDA0MDksIDB4NmViNCwgMHg2OTIwLCAweGExODQsIDB4MGMwMCwgMHgwOTA0LCAweDM2YTgsIDB4ZDBkYywKLQkweDAxNzgsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDQsIDB4MTE0MCwgMHg3MDcwLCAweGEyMDYsIDB4MTEyOCwKLQkweDcwNzQsIDB4YTMwNiwgMHgxMTEwLCAweDcwNjIsIDB4NzA3YSwgMHgwODBjLCAweDNhNDgsIDB4MDQ4MCwKLQkweDY4MWIsIDB4MDAwNSwgMHhjMWFkLCAweGMxZDQsIDB4NjkyMiwgMHgwODBjLCAweDNhNDIsIDB4NzA3YiwKLQkweDAwMDAsIDB4MDQzMCwgMHg3MDAzLCAweDAwMDUsIDB4YjI4NCwgMHgwNjAwLCAweDAxMTgsIDB4MjAwMSwKLQkweDhkZTAsIDB4MDAxMCwgMHgyMDAxLCAweDhlMTIsIDB4MjA2OCwgMHg3MDRhLCAweDAxNTYsIDB4MjBhOSwKLQkweDAwMzIsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MWYwNCwgMHgzNjkxLCAweDAxNWUsIDB4YjI4NCwKLQkweDA2MDAsIDB4MDExMCwgMHhjMmZjLCAweDAwMDgsIDB4YzJmZCwgMHg2YTE2LCAweGFkODAsIDB4MDAwOSwKLQkweDcwNDIsIDB4NjhiNywgMHgwNzAwLCAweDY4MjMsIDB4MDgwMCwgMHg2ODI3LCAweDAwMDMsIDB4MDAwNSwKLQkweGM2ZWMsIDB4YTZhYywgMHgwMDYwLCAweDA5MDQsIDB4MzZlZiwgMHg2Yjk4LCAweDZjOTQsIDB4NjlhYywKLQkweDY4YjAsIDB4YTEwNSwgMHgxMWUwLCAweDdiZDIsIDB4N2JkYSwgMHg3Y2Q2LCAweDdjZGUsIDB4YTU4NiwKLQkweDAwNjAsIDB4MDVjOCwgMHhkNmY0LCAweDExMDgsIDB4YzZlZCwgMHhhNmI0LCAweGI3ZmYsIDB4N2U1YSwKLQkweDIwMDksIDB4MDA4MywgMHhkNjljLCAweDAxMjgsIDB4MjAwOSwgMHgwMDgyLCAweDIwMTksIDB4MDAwMCwKLQkweDIzMjAsIDB4NzkxYSwgMHhkNmVjLCAweDA1ODgsIDB4MDgwYywgMHg0MWQ5LCAweDA0NzAsIDB4NjhiMCwKLQkweGEzMWEsIDB4MjEwMCwgMHhhNDIzLCAweDI0MDAsIDB4YTMwNSwgMHgwMWY4LCAweDdiZDIsIDB4N2JkYSwKLQkweDdjZDYsIDB4N2NkZSwgMHg2OGIwLCAweGQ2ZjQsIDB4MTEwOCwgMHhjNmVkLCAweGM2ZjQsIDB4N2U1YSwKLQkweDIwMTEsIDB4MDA4MywgMHhkNjljLCAweDAxMjgsIDB4MjAxMSwgMHgwMDgyLCAweDIwMTksIDB4MDAwMCwKLQkweDIzMjAsIDB4N2ExYSwgMHhkNmVjLCAweDAxODgsIDB4MDgwYywgMHg0MjA2LCAweDAwNzAsIDB4MjAxOSwKLQkweDAwMDAsIDB4MjMyMCwgMHgwMDEwLCAweGE2YjQsIDB4YjdmZiwgMHg3ZTVhLCAweDIwMDksIDB4MDA4MywKLQkweGQ2OWMsIDB4MDExMCwgMHgyMDA5LCAweDAwODIsIDB4NzkxYSwgMHg2OGMwLCAweDcwNTYsIDB4MmQwMCwKLQkweDcwNGEsIDB4NjhjNCwgMHgyMDYwLCAweDcxZDAsIDB4MjAwMSwgMHg0NjAxLCAweDIwMDQsIDB4ZDBjNCwKLQkweDE1YzgsIDB4NzBkNCwgMHhhMDJkLCAweDAxYjgsIDB4ZDFiYywgMHgwNTQ4LCAweDdhODAsIDB4YTI5NCwKLQkweDBmMDAsIDB4NzBkOCwgMHhhMjA2LCAweDAxMTgsIDB4NzhlMCwgMHhhNTA0LCAweDE1NTgsIDB4NzBkNiwKLQkweGMxYmMsIDB4NzFkMiwgMHgwNDM4LCAweDIwMzEsIDB4MDAwMSwgMHg4NTJjLCAweDAyMTgsIDB4ODYzMywKLQkweDgyMTAsIDB4MGNkOCwgMHgwMDA1LCAweDdkZTAsIDB4YTU5NCwgMHhmZjAwLCAweDAxMzAsIDB4MjAxMSwKLQkweDAwMDgsIDB4ODUyZiwgMHgwYzgxLCAweDg2MzcsIDB4MDAwOCwgMHgwYzY5LCAweDgyMTcsIDB4Nzg4MCwKLQkweGEwODQsIDB4MGYwMCwgMHhhMjA2LCAweDAxNzAsIDB4NzJkYSwgMHg3NmQ2LCAweDAwNTgsIDB4N2E4MCwKLQkweGEyOTQsIDB4MGYwMCwgMHg3MGQ4LCAweGEyMzYsIDB4MGRjMCwgMHg3OGUwLCAweGE1MzQsIDB4MGRhOCwKLQkweGMxYmQsIDB4NzFkMiwgMHhkMWI0LCAweDE5MDQsIDB4MjU5ZCwgMHgyMzAwLCAweGE0MDUsIDB4MDkwNCwKLQkweDI1OWQsIDB4NzBhMCwgMHhhMDg2LCAweDAwMDEsIDB4MTkwNCwgMHgyNWUxLCAweDAwMDUsIDB4NjAyMCwKLQkweGEwMDUsIDB4MDE1MCwgMHg4MDAxLCAweDYwMjIsIDB4NjAwOCwgMHhhMDg1LCAweDAwMDgsIDB4NjAwYSwKLQkweDcwMGYsIDB4MDEwMCwgMHg3MDJjLCAweDYwMjYsIDB4MDAwNSwgMHhhMDA2LCAweDA4MGMsIDB4M2YyNiwKLQkweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDAxMjAsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDUsIDB4MTE1MCwKLQkweDY4MmIsIDB4MDAwMCwgMHg2ODE3LCAweDAwMDAsIDB4NjgxYiwgMHgwMDAxLCAweDY4MjMsIDB4MDA0MCwKLQkweDY4MWYsIDB4MDEwMCwgMHg3MDAwLCAweGEwODQsIDB4MDAwZiwgMHgwMDAyLCAweDI1YTAsIDB4Mzc4MywKLQkweDM3ODAsIDB4MzdhMCwgMHgzNzhjLCAweDI1YTAsIDB4Mzc3ZSwgMHgzNzdlLCAweDA4MGMsIDB4MjU0YywKLQkweDA0NDksIDB4MDQxMSwgMHgwMDI4LCAweDA0MzEsIDB4NzA1OCwgMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwKLQkweDA4MGMsIDB4MWRhMiwgMHgwODA0LCAweDI1YTAsIDB4NzA2MCwgMHg3MDYzLCAweDAwMDAsIDB4NzA3ZiwKLQkweDAwMDAsIDB4MDAwMiwgMHgzNzljLCAweDM3OWMsIDB4Mzc5YSwgMHgzNzlhLCAweDM3OWEsIDB4Mzc5YywKLQkweDM3OWEsIDB4Mzc5YywgMHgwODA0LCAweDJhNmIsIDB4NzA2MywgMHgwMDAwLCAweDA4MDQsIDB4MjVhMCwKLQkweDY4MWIsIDB4MDAwMCwgMHgwODA0LCAweDMxODQsIDB4NjgwMCwgMHhhMDA1LCAweDExMDgsIDB4NjAwMiwKLQkweDYwMDYsIDB4MDAwNSwgMHg2NDEwLCAweDg0ZmYsIDB4MDE2OCwgMHgyMDA5LCAweDQ2MDIsIDB4MjEwNCwKLQkweDgwMDEsIDB4MjAwYSwgMHg4NDIxLCAweDY0MTIsIDB4MTEyOCwgMHgyMDIxLCAweDQ2MDQsIDB4MjQwNCwKLQkweGMwYTUsIDB4MjAyMiwgMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwgMHgwMDA1LCAweDYwMTgsIDB4YTAwNSwKLQkweDAxMTAsIDB4ODAwMSwgMHg2MDFhLCAweDAwMDUsIDB4MDgwYywgMHgzYzQ2LCAweDY4MWIsIDB4MDAxOCwKLQkweDA0OTAsIDB4MDgwYywgMHgzYzQ2LCAweDY4MWIsIDB4MDAxOSwgMHgwNDY4LCAweDA4MGMsIDB4M2M0NiwKLQkweDY4MWIsIDB4MDAxYSwgMHgwNDQwLCAweDA4MGMsIDB4M2M0NiwgMHg2ODFiLCAweDAwMDMsIDB4MDQxOCwKLQkweDc3NzAsIDB4MDgwYywgMHgzYjZmLCAweDcxNzQsIDB4YTE4YywgMHgwMGZmLCAweDMyMTAsIDB4YTI5NCwKLQkweDA2MDAsIDB4MDExOCwgMHhhMWU4LCAweDhiYzAsIDB4MDAxMCwgMHhhMWU4LCAweDhjZDAsIDB4MmQwNCwKLQkweDJkMDgsIDB4MjA2OCwgMHhhMDA1LCAweDExMTgsIDB4NzA3YSwgMHgwODA0LCAweDI1YTAsIDB4NjgxNCwKLQkweDcyNzAsIDB4YTIwNiwgMHgwMTEwLCAweDY4MDAsIDB4MGM5OCwgMHg2ODAwLCAweDIwMGEsIDB4NjgxYiwKLQkweDAwMDUsIDB4NzA3YiwgMHgwMDAwLCAweDA4MGMsIDB4MzdhYSwgMHg2ODIwLCAweGQwODQsIDB4MTExMCwKLQkweDA4MGMsIDB4MzdhNCwgMHgwODBjLCAweDM3YmUsIDB4NjgxZiwgMHgwMDAwLCAweDY4MjMsIDB4MDAyMCwKLQkweDA4MGMsIDB4MWRhMiwgMHgwODA0LCAweDI1YTAsIDB4YTI4MiwgMHgwMDAzLCAweDE5MDQsIDB4M2ExMCwKLQkweDdkYTgsIDB4YTVhYywgMHgwMGZmLCAweDdlYTgsIDB4YTZiNCwgMHgwMGZmLCAweDY5MjAsIDB4YzFiZCwKLQkweDY5MjIsIDB4ZDFjNCwgMHgwNWIwLCAweGMxYzQsIDB4NjkyMiwgMHhhNmI0LCAweDAwZmYsIDB4MDUzMCwKLQkweGE2ODIsIDB4MDAxOCwgMHgwMjE4LCAweDAxMTAsIDB4MjAzMSwgMHgwMDE4LCAweGE2ODYsIDB4MDAxMCwKLQkweDExMDgsIDB4ODYzMCwgMHg4NTJiLCAweDg1MmIsIDB4MjA0MSwgMHgwMDAwLCAweDA4MGMsIDB4M2FjOSwKLQkweDAxMTgsIDB4MDgwYywgMHgzOGY3LCAweDAwYTAsIDB4MDgwYywgMHgzYTk1LCAweDA4MGMsIDB4MzhmNCwKLQkweDY5MjAsIDB4YzFjNSwgMHg2OTIyLCAweDdlNTgsIDB4YzY5NSwgMHg3ZTVhLCAweGQ2ZDQsIDB4MTExOCwKLQkweDc4MWIsIDB4MDA2ZSwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDA4MGMsIDB4MzhmNCwKKwkweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDAwMDIsIDB4M2MwYiwgMHgzYzBiLCAweDM0NWMsIDB4M2MwYiwKKwkweDNjNGYsIDB4M2M0ZiwgMHgzYzBiLCAweDNjMGIsIDB4ZDZiYywgMHgwNTcwLCAweDcxODAsIDB4ODFmZiwKKwkweDA1NTgsIDB4YTE4MiwgMHgwMDBkLCAweDEzMTgsIDB4NzA4MywgMHgwMDAwLCAweDAwMjgsIDB4YTE4MiwKKwkweDAwMGMsIDB4NzA4MiwgMHgyMDA5LCAweDAwMGMsIDB4Nzg5YiwgMHgwMDYxLCAweDc5YWEsIDB4MDE1NiwKKwkweDAxMzYsIDB4MDE0NiwgMHg3MDg0LCAweDgxMTQsIDB4YTIxMCwgMHg3Mjg2LCAweGEwODAsIDB4MDAwYiwKKwkweGFkMDAsIDB4MjA5OCwgMHhiMjg0LCAweDA2MDAsIDB4MDExOCwgMHgyMGExLCAweDAyMmIsIDB4MDAxMCwKKwkweDIwYTEsIDB4MDEyYiwgMHg3ODliLCAweDAwMDAsIDB4ODEwOCwgMHg4MWFjLCAweDUzYTYsIDB4MDE0ZSwKKwkweDAxM2UsIDB4MDE1ZSwgMHgwODA0LCAweDNjMTEsIDB4ZDZkNCwgMHgxOTA0LCAweDM0Y2YsIDB4NjgyMCwKKwkweGQwODQsIDB4MDkwNCwgMHgzYzExLCAweGE2OGMsIDB4MDA2MCwgMHhhNjg0LCAweDAwNjAsIDB4MDEyMCwKKwkweGEwODYsIDB4MDA2MCwgMHgxMTA4LCAweGMxZjUsIDB4YzE5NCwgMHg3OTVhLCAweDY5YjYsIDB4Nzg5YiwKKwkweDAwNjAsIDB4NzhhYiwgMHgwMDAwLCAweDc4OWIsIDB4MDA2MSwgMHg2ODE4LCAweGMwZmQsIDB4NjgxYSwKKwkweDc4YWEsIDB4ODAwOCwgMHg4MTBjLCAweDA5MDQsIDB4MzdmNiwgMHhhMThjLCAweDAwZjgsIDB4MTkwNCwKKwkweDM3ZjYsIDB4MDE1NiwgMHgwMTM2LCAweDAxNDYsIDB4MDAxNiwgMHgyMGExLCAweDAxMmIsIDB4MzIwOCwKKwkweGExOGMsIDB4MDYwMCwgMHgwMTEwLCAweDIwYTEsIDB4MDIyYiwgMHgwMDFlLCAweDc4OWIsIDB4MDAwMCwKKwkweDgwMDAsIDB4ODBhYywgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDAxNGUsIDB4MDEzZSwKKwkweDAxNWUsIDB4NjgxNCwgMHhjMGZjLCAweDgwMDcsIDB4Nzg4MiwgMHgwODA0LCAweDNjMTEsIDB4NjgxOCwKKwkweGQwZmMsIDB4MDExMCwgMHg2ODFiLCAweDAwMDgsIDB4MDgwYywgMHgzYTYxLCAweDc4MWIsIDB4MDBlZCwKKwkweDAwMDUsIDB4MjMwMCwgMHgwMDAyLCAweDM0ZTAsIDB4MzU5ZCwgMHgzNGRlLCAweDA4MGMsIDB4MjU3NSwKKwkweDdjZDgsIDB4N2RkYywgMHg3ZmQwLCAweDgyZmYsIDB4MTUyOCwgMHg3MjAwLCAweGEyODYsIDB4MDAwMywKKwkweDA5MDQsIDB4MmYwOSwgMHg3MWQwLCAweGQxYmMsIDB4MTFmOCwgMHhkMWI0LCAweDAxZTgsIDB4MjAwMSwKKwkweDQ3MDEsIDB4MjAwNCwgMHhkMGM0LCAweDExYzAsIDB4MDBkNiwgMHg3ODNiLCAweDg4MDAsIDB4NzgxYiwKKwkweDAwNTksIDB4NzBiOCwgMHhhMDZkLCAweDY4YjQsIDB4YzBhNSwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwKKwkweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YzFiNCwgMHg3MWQyLCAweDcwMDMsIDB4MDAzMCwKKwkweDAwZGUsIDB4MDAzMCwgMHg3MjAwLCAweDAwMjAsIDB4NzgzYiwgMHgxODAwLCAweDc4MWIsIDB4MDA1NywKKwkweGEyODQsIDB4MDAwZiwgMHgwMDAyLCAweDM1ODgsIDB4MzU0NSwgMHgzNTFkLCAweDJmMzgsIDB4MzUxYiwKKwkweDM1ODgsIDB4MzUxYiwgMHgzNTFiLCAweDA4MGMsIDB4MjU3NSwgMHg2ODFjLCAweGQwZWMsIDB4MDExOCwKKwkweDYwMDgsIDB4YzA4ZCwgMHg2MDBhLCAweDY5MjAsIDB4YzE4NSwgMHg2OTIyLCAweDY4MDAsIDB4NjAwNiwKKwkweGEwMDUsIDB4MTEwOCwgMHg2MDAyLCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDY4MWMsIDB4YTA4NCwKKwkweDAwMGUsIDB4MTEyMCwgMHg3MWM4LCAweGExODgsIDB4MDEwMCwgMHgwMDI4LCAweDcwMzAsIDB4NjhiYSwKKwkweDcxM2MsIDB4NzBjOCwgMHhhMTA4LCAweDIxMDQsIDB4NjgwMiwgMHgyZDBhLCAweDcxNWEsIDB4ZDZkYywKKwkweDExMjAsIDB4YzZmYywgMHg2ZWI2LCAweDA4MDQsIDB4MzU4OCwgMHg2ZWI2LCAweGE2ODQsIDB4MDA2MCwKKwkweDExMjAsIDB4YTY4NCwgMHg3ZmZmLCAweDY4YjYsIDB4MDRkOCwgMHhkNmRjLCAweDExNTAsIDB4YTY4NCwKKwkweDdmZmYsIDB4NjhiNiwgMHg2ODk0LCAweDY4YTYsIDB4Njg5OCwgMHg2OGFhLCAweDA4MGMsIDB4M2Y0ZSwKKwkweDA0NzgsIDB4ZDZhYywgMHgwMTQwLCAweGEwMDYsIDB4MDgwYywgMHgzZjRlLCAweDI0MDgsIDB4MjUxMCwKKwkweDY5YWEsIDB4NmFhNiwgMHgwMDY4LCAweDI0MDgsIDB4MjUxMCwgMHgyNzAwLCAweDgwMDcsIDB4YTA4NCwKKwkweDAwN2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NjlhYSwgMHg2YWE2LCAweDA4MGMsIDB4M2Y0ZSwKKwkweGQ2ZmMsIDB4MDFiMCwgMHhhNjg0LCAweDdmZmYsIDB4NjhiNiwgMHgyNTEwLCAweDI0MDgsIDB4ZDZhYywKKwkweDExMzgsIDB4MjcwMCwgMHg4MDA3LCAweGEwODQsIDB4MDA3ZiwgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwKKwkweDZiOTgsIDB4MjEwMCwgMHhhMzAyLCAweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwKKwkweDcwMDAsIDB4YTA4NiwgMHgwMDMwLCAweDE5MDQsIDB4MjVjOSwgMHg3MDAzLCAweDAwMDIsIDB4NzBiOCwKKwkweGEwNmQsIDB4NjhiYywgMHg3MDNlLCAweDcwYjQsIDB4YTA2NSwgMHg2OGMwLCAweDcwNTYsIDB4MmQwMCwKKwkweDcwNGEsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDIsIDB4MDAwNSwgMHhhNTg2LCAweDg4MDAsIDB4MTE0OCwKKwkweDcwMDMsIDB4MDAwMCwgMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwKKwkweDYwMGEsIDB4MDgwNCwgMHgzYTViLCAweDcwNDMsIDB4MDAwMCwgMHhhMjgyLCAweDAwMDYsIDB4MDMxMCwKKwkweDA4MGMsIDB4MjU3NSwgMHgyMzAwLCAweDAwMDIsIDB4MzViNywgMHgzNWM4LCAweDM1ZDIsIDB4MjIwMCwKKwkweDAwMDIsIDB4MzViZiwgMHgzYTViLCAweDM1YzEsIDB4MzViZiwgMHgzNjAzLCAweDM2NTEsIDB4MDgwYywKKwkweDI1NzUsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsIDB4MDgwYywgMHgzNmE1LCAweDA4MDQsIDB4M2EzMCwKKwkweDAwYzEsIDB4MDAwMiwgMHgzYTViLCAweDM1ZDAsIDB4MzVkMCwgMHgzNjAzLCAweDM1ZDAsIDB4M2E1YiwKKwkweDA4MGMsIDB4MjU3NSwgMHgwMDcxLCAweDAwMDIsIDB4MzVkYywgMHgzNWRhLCAweDM1ZGEsIDB4MzVkYywKKwkweDM1ZGEsIDB4MzVkYywgMHgwODBjLCAweDI1NzUsIDB4MDgwYywgMHgzYTcwLCAweDc4MWIsIDB4MDA4MiwKKwkweDAwMDUsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDIsIDB4MTE1MCwgMHgwODBjLCAweDM3ZTEsIDB4MDAxMCwKKwkweDA4MGMsIDB4M2Y0ZSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDAwMjAsIDB4NzAwMCwKKwkweGEwODYsIDB4MDAwMywgMHgwZGE4LCAweDcwMDMsIDB4MDAwNSwgMHgyMDAxLCAweDhlZTAsIDB4YWU4ZSwKKwkweDQ3NDAsIDB4MDExMCwgMHgyMDAxLCAweDhmMTIsIDB4MjA2OCwgMHg3MDRhLCAweGFkODAsIDB4MDAwOSwKKwkweDcwNDIsIDB4MjIwMCwgMHgwMDA1LCAweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDExNTgsIDB4NzBkMCwKKwkweGMwYjUsIDB4NzBkMiwgMHgyYzAwLCAweDcwYjYsIDB4MmQwMCwgMHg3MGJhLCAweDAwMzgsIDB4MDgwYywKKwkweDNmNGUsIDB4MDAyMCwgMHg3MDAwLCAweGEwODYsIDB4MDAwMywgMHgwZGM4LCAweDcwMDMsIDB4MDAwMSwKKwkweDdhODAsIDB4YTI5NCwgMHgwZjAwLCAweDc4OWIsIDB4MDAxOCwgMHg3Y2E4LCAweGE0ODQsIDB4MDAxZiwKKwkweGEyMTUsIDB4MjA2OSwgMHg4ZGMwLCAweGIyODQsIDB4MDYwMCwgMHgxMTE4LCAweGMyZmQsIDB4MjA2OSwKKwkweDhlZDAsIDB4MmQwNCwgMHgyZDA4LCAweDcxNWEsIDB4YTA2ZCwgMHgwMTI4LCAweDY4MTQsIDB4YTIwNiwKKwkweDAxMjAsIDB4NjgwMCwgMHgwY2I4LCAweDA4MGMsIDB4MzZhNSwgMHg2ZWI0LCAweDdlNWEsIDB4NjkyMCwKKwkweGExODQsIDB4MGMwMCwgMHgwOTA0LCAweDM2Y2IsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDYsIDB4MTEyOCwKKwkweDcwNzAsIDB4YTIwNiwgMHgxMTEwLCAweDcwNjIsIDB4NzA3YSwgMHg2ODFiLCAweDAwMDUsIDB4YzFhZCwKKwkweDY4MWIsIDB4MDAwNSwgMHhjMWFkLCAweGMxZDQsIDB4NjkyMiwgMHgwODBjLCAweDNhNjcsIDB4MDgwNCwKKwkweDM2Y2IsIDB4NzIwMCwgMHhhMjg2LCAweDAwMDIsIDB4MTE1OCwgMHg3MGQwLCAweGMwYjUsIDB4NzBkMiwKKwkweDJjMDAsIDB4NzBiNiwgMHgyZDAwLCAweDcwYmEsIDB4MDAzMCwgMHgwODBjLCAweDNmNGUsIDB4MDAxOCwKKwkweGEyODYsIDB4MDAwMywgMHgwZGQwLCAweDcwMDMsIDB4MDAwMSwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwKKwkweDc4OWIsIDB4MDAxOCwgMHg3Y2E4LCAweGE0ODQsIDB4MDAxZiwgMHhhMjE1LCAweGFlODYsIDB4NDc0MCwKKwkweDAxMDgsIDB4YzJmZCwgMHg3OWE4LCAweDc5YTgsIDB4YTE4YywgMHgwMGZmLCAweDIxMTgsIDB4NzBjOCwKKwkweGExNjgsIDB4MmQwNCwgMHgyZDA4LCAweDcxNWEsIDB4YTA2ZCwgMHgwMTI4LCAweDY4MTQsIDB4YTIwNiwKKwkweDAxMTgsIDB4NjgwMCwgMHgwY2I4LCAweDA0MDksIDB4NmViNCwgMHg2OTIwLCAweGExODQsIDB4MGMwMCwKKwkweDA5MDQsIDB4MzZjYiwgMHhkMGRjLCAweDAxNzgsIDB4NzA2MCwgMHhhMDg2LCAweDAwMDQsIDB4MTE0MCwKKwkweDcwNzAsIDB4YTIwNiwgMHgxMTI4LCAweDcwNzQsIDB4YTMwNiwgMHgxMTEwLCAweDcwNjIsIDB4NzA3YSwKKwkweDA4MGMsIDB4M2E2ZCwgMHgwNDgwLCAweDY4MWIsIDB4MDAwNSwgMHhjMWFkLCAweGMxZDQsIDB4NjkyMiwKKwkweDA4MGMsIDB4M2E2NywgMHg3MDdiLCAweDAwMDAsIDB4MDQzMCwgMHg3MDAzLCAweDAwMDUsIDB4YjI4NCwKKwkweDA2MDAsIDB4MDExOCwgMHgyMDAxLCAweDhlZTAsIDB4MDAxMCwgMHgyMDAxLCAweDhmMTIsIDB4MjA2OCwKKwkweDcwNGEsIDB4MDE1NiwgMHgyMGE5LCAweDAwMzIsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MWYwNCwKKwkweDM2YjQsIDB4MDE1ZSwgMHhiMjg0LCAweDA2MDAsIDB4MDExMCwgMHhjMmZjLCAweDAwMDgsIDB4YzJmZCwKKwkweDZhMTYsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDIsIDB4NjhiNywgMHgwNzAwLCAweDY4MjMsIDB4MDgwMCwKKwkweDY4MjcsIDB4MDAwMywgMHgwMDA1LCAweGM2ZWMsIDB4YTZhYywgMHgwMDYwLCAweDA5MDQsIDB4MzcxMiwKKwkweDZiOTgsIDB4NmM5NCwgMHg2OWFjLCAweDY4YjAsIDB4YTEwNSwgMHgxMWUwLCAweDdiZDIsIDB4N2JkYSwKKwkweDdjZDYsIDB4N2NkZSwgMHhhNTg2LCAweDAwNjAsIDB4MDVjOCwgMHhkNmY0LCAweDExMDgsIDB4YzZlZCwKKwkweGE2YjQsIDB4YjdmZiwgMHg3ZTVhLCAweDIwMDksIDB4MDA4MywgMHhkNjljLCAweDAxMjgsIDB4MjAwOSwKKwkweDAwODIsIDB4MjAxOSwgMHgwMDAwLCAweDIzMjAsIDB4NzkxYSwgMHhkNmVjLCAweDA1ODgsIDB4MDgwYywKKwkweDQyMDgsIDB4MDQ3MCwgMHg2OGIwLCAweGEzMWEsIDB4MjEwMCwgMHhhNDIzLCAweDI0MDAsIDB4YTMwNSwKKwkweDAxZjgsIDB4N2JkMiwgMHg3YmRhLCAweDdjZDYsIDB4N2NkZSwgMHg2OGIwLCAweGQ2ZjQsIDB4MTEwOCwKKwkweGM2ZWQsIDB4YzZmNCwgMHg3ZTVhLCAweDIwMTEsIDB4MDA4MywgMHhkNjljLCAweDAxMjgsIDB4MjAxMSwKKwkweDAwODIsIDB4MjAxOSwgMHgwMDAwLCAweDIzMjAsIDB4N2ExYSwgMHhkNmVjLCAweDAxODgsIDB4MDgwYywKKwkweDQyMzUsIDB4MDA3MCwgMHgyMDE5LCAweDAwMDAsIDB4MjMyMCwgMHgwMDEwLCAweGE2YjQsIDB4YjdmZiwKKwkweDdlNWEsIDB4MjAwOSwgMHgwMDgzLCAweGQ2OWMsIDB4MDExMCwgMHgyMDA5LCAweDAwODIsIDB4NzkxYSwKKwkweDY4YzAsIDB4NzA1NiwgMHgyZDAwLCAweDcwNGEsIDB4NjhjNCwgMHgyMDYwLCAweDcxZDAsIDB4MjAwMSwKKwkweDQ3MDEsIDB4MjAwNCwgMHhkMGM0LCAweDE1YzgsIDB4NzBkNCwgMHhhMDJkLCAweDAxYjgsIDB4ZDFiYywKKwkweDA1NDgsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsIDB4NzBkOCwgMHhhMjA2LCAweDAxMTgsIDB4NzhlMCwKKwkweGE1MDQsIDB4MTU1OCwgMHg3MGQ2LCAweGMxYmMsIDB4NzFkMiwgMHgwNDM4LCAweDIwMzEsIDB4MDAwMSwKKwkweDg1MmMsIDB4MDIxOCwgMHg4NjMzLCAweDgyMTAsIDB4MGNkOCwgMHgwMDA1LCAweDdkZTAsIDB4YTU5NCwKKwkweGZmMDAsIDB4MDEzMCwgMHgyMDExLCAweDAwMDgsIDB4ODUyZiwgMHgwYzgxLCAweDg2MzcsIDB4MDAwOCwKKwkweDBjNjksIDB4ODIxNywgMHg3ODgwLCAweGEwODQsIDB4MGYwMCwgMHhhMjA2LCAweDAxNzAsIDB4NzJkYSwKKwkweDc2ZDYsIDB4MDA1OCwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwgMHg3MGQ4LCAweGEyMzYsIDB4MGRjMCwKKwkweDc4ZTAsIDB4YTUzNCwgMHgwZGE4LCAweGMxYmQsIDB4NzFkMiwgMHhkMWI0LCAweDE5MDQsIDB4MjVjNiwKKwkweDIzMDAsIDB4YTQwNSwgMHgwOTA0LCAweDI1YzYsIDB4NzBhMCwgMHhhMDg2LCAweDAwMDEsIDB4MTkwNCwKKwkweDI2MGQsIDB4MDAwNSwgMHg2MDIwLCAweGEwMDUsIDB4MDE1MCwgMHg4MDAxLCAweDYwMjIsIDB4NjAwOCwKKwkweGEwODUsIDB4MDAwOCwgMHg2MDBhLCAweDcwMGYsIDB4MDEwMCwgMHg3MDJjLCAweDYwMjYsIDB4MDAwNSwKKwkweGEwMDYsIDB4MDgwYywgMHgzZjRlLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDAxMjAsIDB4NzA2MCwKKwkweGEwODYsIDB4MDAwNSwgMHgxMTUwLCAweDY4MmIsIDB4MDAwMCwgMHg2ODE3LCAweDAwMDAsIDB4NjgxYiwKKwkweDAwMDEsIDB4NjgyMywgMHgwMDQwLCAweDY4MWYsIDB4MDEwMCwgMHg3MDAwLCAweGEwODQsIDB4MDAwZiwKKwkweDAwMDIsIDB4MjVjOSwgMHgzN2E2LCAweDM3YTMsIDB4MzdjMywgMHgzN2FmLCAweDI1YzksIDB4MzdhMSwKKwkweDM3YTEsIDB4MDgwYywgMHgyNTc1LCAweDA0NDksIDB4MDQxMSwgMHgwMDI4LCAweDA0MzEsIDB4NzA1OCwKKwkweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDA4MGMsIDB4MWRiZiwgMHgwODA0LCAweDI1YzksIDB4NzA2MCwKKwkweDcwNjMsIDB4MDAwMCwgMHg3MDdmLCAweDAwMDAsIDB4MDAwMiwgMHgzN2JmLCAweDM3YmYsIDB4MzdiZCwKKwkweDM3YmQsIDB4MzdiZCwgMHgzN2JmLCAweDM3YmQsIDB4MzdiZiwgMHgwODA0LCAweDJhOWEsIDB4NzA2MywKKwkweDAwMDAsIDB4MDgwNCwgMHgyNWM5LCAweDY4MWIsIDB4MDAwMCwgMHgwODA0LCAweDMxYTcsIDB4NjgwMCwKKwkweGEwMDUsIDB4MTEwOCwgMHg2MDAyLCAweDYwMDYsIDB4MDAwNSwgMHg2NDEwLCAweDg0ZmYsIDB4MDE2OCwKKwkweDIwMDksIDB4NDcwMiwgMHgyMTA0LCAweDgwMDEsIDB4MjAwYSwgMHg4NDIxLCAweDY0MTIsIDB4MTEyOCwKKwkweDIwMjEsIDB4NDcwNCwgMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwgMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwKKwkweDAwMDUsIDB4NjAxOCwgMHhhMDA1LCAweDAxMTAsIDB4ODAwMSwgMHg2MDFhLCAweDAwMDUsIDB4MDgwYywKKwkweDNjNmUsIDB4NjgxYiwgMHgwMDE4LCAweDA0OTAsIDB4MDgwYywgMHgzYzZlLCAweDY4MWIsIDB4MDAxOSwKKwkweDA0NjgsIDB4MDgwYywgMHgzYzZlLCAweDY4MWIsIDB4MDAxYSwgMHgwNDQwLCAweDA4MGMsIDB4M2M2ZSwKKwkweDY4MWIsIDB4MDAwMywgMHgwNDE4LCAweDc3NzAsIDB4MDgwYywgMHgzYjk1LCAweDcxNzQsIDB4YTE4YywKKwkweDAwZmYsIDB4MzIxMCwgMHhhMjk0LCAweDA2MDAsIDB4MDExOCwgMHhhMWU4LCAweDhjYzAsIDB4MDAxMCwKKwkweGExZTgsIDB4OGRkMCwgMHgyZDA0LCAweDJkMDgsIDB4MjA2OCwgMHhhMDA1LCAweDExMTgsIDB4NzA3YSwKKwkweDA4MDQsIDB4MjVjOSwgMHg2ODE0LCAweDcyNzAsIDB4YTIwNiwgMHgwMTEwLCAweDY4MDAsIDB4MGM5OCwKKwkweDY4MDAsIDB4MjAwYSwgMHg2ODFiLCAweDAwMDUsIDB4NzA3YiwgMHgwMDAwLCAweDA4MGMsIDB4MzdjZCwKKwkweDY4MjAsIDB4ZDA4NCwgMHgxMTEwLCAweDA4MGMsIDB4MzdjNywgMHgwODBjLCAweDM3ZTEsIDB4NjgxZiwKKwkweDAwMDAsIDB4NjgyMywgMHgwMDIwLCAweDA4MGMsIDB4MWRiZiwgMHgwODA0LCAweDI1YzksIDB4YTI4MiwKKwkweDAwMDMsIDB4MTkwNCwgMHgzYTM1LCAweDdkYTgsIDB4YTVhYywgMHgwMGZmLCAweDdlYTgsIDB4YTZiNCwKKwkweDAwZmYsIDB4NjkyMCwgMHhjMWJkLCAweDY5MjIsIDB4ZDFjNCwgMHgwNWIwLCAweGMxYzQsIDB4NjkyMiwKKwkweGE2YjQsIDB4MDBmZiwgMHgwNTMwLCAweGE2ODIsIDB4MDAxOCwgMHgwMjE4LCAweDAxMTAsIDB4MjAzMSwKKwkweDAwMTgsIDB4YTY4NiwgMHgwMDEwLCAweDExMDgsIDB4ODYzMCwgMHg4NTJiLCAweDg1MmIsIDB4MjA0MSwKKwkweDAwMDAsIDB4MDgwYywgMHgzYWVlLCAweDAxMTgsIDB4MDgwYywgMHgzOTFhLCAweDAwYTAsIDB4MDgwYywKKwkweDNhYmEsIDB4MDgwYywgMHgzOTE3LCAweDY5MjAsIDB4YzFjNSwgMHg2OTIyLCAweDdlNTgsIDB4YzY5NSwKKwkweDdlNWEsIDB4ZDZkNCwgMHgxMTE4LCAweDc4MWIsIDB4MDA2ZSwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MiwKKwkweDAwMDUsIDB4MDgwYywgMHgzOTE3LCAweDdlNTgsIDB4ZDZkNCwgMHgxMTE4LCAweDc4MWIsIDB4MDA3MSwKKwkweDAwMDUsIDB4NzgxYiwgMHgwMDgzLCAweDAwMDUsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4NjEwMCwKKwkweGQxZTQsIDB4MDU5OCwgMHg2MjA4LCAweDgyMTcsIDB4YTI5NCwgMHgwMGZmLCAweGEyODIsIDB4MDAxOCwKKwkweDAyMTgsIDB4MDExMCwgMHgyMDExLCAweDAwMTgsIDB4MjYwMCwgMHhhMjAyLCAweDEyMDgsIDB4MjIzMCwKKwkweGE2ODYsIDB4MDAxMCwgMHgxMTA4LCAweDg2MzAsIDB4NjIwOCwgMHhhMjk0LCAweDAwZmYsIDB4NzhlYywKKwkweGQwZTQsIDB4MDEzMCwgMHhhMjgyLCAweDAwMGEsIDB4MTI0MCwgMHgyMDExLCAweDAwMGEsIDB4MDAyOCwKKwkweGEyODIsIDB4MDAwYywgMHgxMjEwLCAweDIwMTEsIDB4MDAwYywgMHgyMjAwLCAweGE1MDIsIDB4MTIwOCwKKwkweDIyMjgsIDB4MDgwYywgMHgzYWJlLCAweDg1MmIsIDB4ODUyYiwgMHgyMDQxLCAweDAwMDAsIDB4MDgwYywKKwkweDNhZWUsIDB4MDExOCwgMHgwODBjLCAweDM5MWEsIDB4MDAyMCwgMHgwODBjLCAweDNhYmEsIDB4MDgwYywKKwkweDM5MTcsIDB4Nzg1OCwgMHhjMDk1LCAweDc4NWEsIDB4MDBjZSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKKwkweDAwYzYsIDB4Mjk2MCwgMHg2MDAwLCAweGQwZTQsIDB4MTE4OCwgMHhkMGI0LCAweDExNTAsIDB4NjAxMCwKKwkweGEwODQsIDB4MDAwZiwgMHgxMTMwLCAweDYxMDQsIDB4YTE4YywgMHhmZmY1LCAweDYxMDYsIDB4MDBjZSwKKwkweDAwMDUsIDB4MjAxMSwgMHgwMDMyLCAweDIwMTksIDB4MDAwMCwgMHgwMGYwLCAweDY4YTAsIDB4ZDBjYywKKwkweDFkYzAsIDB4NjIwOCwgMHhhMjk0LCAweDAwZmYsIDB4NzhlYywgMHhkMGU0LCAweDAxMzAsIDB4YTI4MiwKKwkweDAwMGIsIDB4MTIxOCwgMHgyMDExLCAweDAwMGEsIDB4MDAyOCwgMHhhMjgyLCAweDAwMGMsIDB4MTIxMCwKKwkweDIwMTEsIDB4MDAwYywgMHg2MzA4LCAweDgzMWYsIDB4YTM5YywgMHgwMGZmLCAweGEzODIsIDB4MDAxOCwKKwkweDAyMTgsIDB4MDExMCwgMHgyMDE5LCAweDAwMTgsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMywKKwkweDc4YWIsIDB4MDAwMSwgMHg3YWFhLCAweDdiYWEsIDB4YThjMCwgMHgwMDA1LCAweDY4MjAsIDB4YzBjNSwKKwkweDY4MjIsIDB4MDgwYywgMHgzYTdhLCAweDAwY2UsIDB4MDAwNSwgMHgwMGM2LCAweDI5NjAsIDB4NjEwNCwKKwkweGExOGMsIDB4ZmZmNSwgMHg2MTA2LCAweDIwMTEsIDB4MDAzMiwgMHgyMDE5LCAweDAwMDAsIDB4MDAwMCwKKwkweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdhYWEsIDB4N2JhYSwKKwkweGE4YzAsIDB4MDAwNSwgMHg2ODIwLCAweGMwYzUsIDB4NjgyMiwgMHgwMGNlLCAweDAwMDUsIDB4YTAwNiwKKwkweDIwMzAsIDB4MjAxMCwgMHgwMGM2LCAweDcxNTQsIDB4MjE2MCwgMHgyMDE4LCAweDIwMDgsIDB4YTA4NCwKKwkweGZmZTAsIDB4YTYzNSwgMHg3ZTg2LCAweDYwMTgsIDB4Nzg5YSwgMHg3ZWFlLCAweDY2MTIsIDB4NzhhNCwKKwkweGEwODQsIDB4Nzc3MCwgMHhhMThjLCAweDAwMGYsIDB4YTEwNSwgMHgyMDI5LCAweDQ3MDUsIDB4MjUyYywKKwkweGQ1Y2MsIDB4MDE0MCwgMHhkM2E0LCAweDAxMTAsIDB4YTA4NSwgMHgwODAwLCAweGQzZmMsIDB4MDExMCwKKwkweGEwODUsIDB4ODA4MCwgMHg3OGE2LCAweDYwMTYsIDB4Nzg4YSwgMHhhNmI0LCAweDAwMWYsIDB4ODYzNywKKwkweDgyMDQsIDB4ODAwNCwgMHhhNjA1LCAweDYwMGUsIDB4NjAwNCwgMHhhMDg0LCAweGZmZDUsIDB4NjAwNiwKKwkweDAwY2UsIDB4MDAwNSwgMHhhMjgyLCAweDAwMDIsIDB4MTkwNCwgMHgzYTNmLCAweDdhYTgsIDB4NjkyMCwKKwkweGMxYmQsIDB4NjkyMiwgMHhkMWNjLCAweDA1NjgsIDB4YzFjYywgMHg2OTIyLCAweGEyOTQsIDB4MDBmZiwKKwkweGEyODIsIDB4MDAwMiwgMHgxYTA0LCAweDNhMzAsIDB4MDgwYywgMHgzOWMxLCAweDA4MGMsIDB4MzkxNywKKwkweGE5ODAsIDB4MDAwMSwgMHgyMDBjLCAweDA4MGMsIDB4M2I5MSwgMHgwODBjLCAweDM4YjgsIDB4ODhmZiwKKwkweDAxNzgsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwKKwkweGQ2ZDQsIDB4MTExOCwgMHg3ODFiLCAweDAwNmUsIDB4MDAwNSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKIAkweDdlNTgsIDB4ZDZkNCwgMHgxMTE4LCAweDc4MWIsIDB4MDA3MSwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywKLQkweDAwMDUsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4NjEwMCwgMHhkMWU0LCAweDA1OTgsIDB4NjIwOCwKLQkweDgyMTcsIDB4YTI5NCwgMHgwMGZmLCAweGEyODIsIDB4MDAxOCwgMHgwMjE4LCAweDAxMTAsIDB4MjAxMSwKLQkweDAwMTgsIDB4MjYwMCwgMHhhMjAyLCAweDEyMDgsIDB4MjIzMCwgMHhhNjg2LCAweDAwMTAsIDB4MTEwOCwKLQkweDg2MzAsIDB4NjIwOCwgMHhhMjk0LCAweDAwZmYsIDB4NzhlYywgMHhkMGU0LCAweDAxMzAsIDB4YTI4MiwKLQkweDAwMGEsIDB4MTI0MCwgMHgyMDExLCAweDAwMGEsIDB4MDAyOCwgMHhhMjgyLCAweDAwMGMsIDB4MTIxMCwKLQkweDIwMTEsIDB4MDAwYywgMHgyMjAwLCAweGE1MDIsIDB4MTIwOCwgMHgyMjI4LCAweDA4MGMsIDB4M2E5OSwKLQkweDg1MmIsIDB4ODUyYiwgMHgyMDQxLCAweDAwMDAsIDB4MDgwYywgMHgzYWM5LCAweDAxMTgsIDB4MDgwYywKLQkweDM4ZjcsIDB4MDAyMCwgMHgwODBjLCAweDNhOTUsIDB4MDgwYywgMHgzOGY0LCAweDc4NTgsIDB4YzA5NSwKLQkweDc4NWEsIDB4MDBjZSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHgwMGM2LCAweDI5NjAsIDB4NjAwMCwKLQkweGQwZTQsIDB4MTE4OCwgMHhkMGI0LCAweDExNTAsIDB4NjAxMCwgMHhhMDg0LCAweDAwMGYsIDB4MTEzMCwKLQkweDYxMDQsIDB4YTE4YywgMHhmZmY1LCAweDYxMDYsIDB4MDBjZSwgMHgwMDA1LCAweDIwMTEsIDB4MDAzMiwKLQkweDIwMTksIDB4MDAwMCwgMHgwMGYwLCAweDY4YTAsIDB4ZDBjYywgMHgxZGMwLCAweDYyMDgsIDB4YTI5NCwKLQkweDAwZmYsIDB4NzhlYywgMHhkMGU0LCAweDAxMzAsIDB4YTI4MiwgMHgwMDBiLCAweDEyMTgsIDB4MjAxMSwKLQkweDAwMGEsIDB4MDAyOCwgMHhhMjgyLCAweDAwMGMsIDB4MTIxMCwgMHgyMDExLCAweDAwMGMsIDB4NjMwOCwKLQkweDgzMWYsIDB4YTM5YywgMHgwMGZmLCAweGEzODIsIDB4MDAxOCwgMHgwMjE4LCAweDAxMTAsIDB4MjAxOSwKLQkweDAwMTgsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMywgMHg3OGFiLCAweDAwMDEsIDB4N2FhYSwKLQkweDdiYWEsIDB4YThjMCwgMHgwMDA1LCAweDY4MjAsIDB4YzBjNSwgMHg2ODIyLCAweDA4MGMsIDB4M2E1NSwKLQkweDAwY2UsIDB4MDAwNSwgMHgwMGM2LCAweDI5NjAsIDB4NjEwNCwgMHhhMThjLCAweGZmZjUsIDB4NjEwNiwKLQkweDIwMTEsIDB4MDAzMiwgMHgyMDE5LCAweDAwMDAsIDB4MDAwMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwKLQkweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdhYWEsIDB4N2JhYSwgMHhhOGMwLCAweDAwMDUsIDB4NjgyMCwKLQkweGMwYzUsIDB4NjgyMiwgMHgwMGNlLCAweDAwMDUsIDB4YTAwNiwgMHgyMDMwLCAweDIwMTAsIDB4MDBjNiwKLQkweDcxNTQsIDB4MjE2MCwgMHgyMDE4LCAweDIwMDgsIDB4YTA4NCwgMHhmZmUwLCAweGE2MzUsIDB4N2U4NiwKLQkweDYwMTgsIDB4Nzg5YSwgMHg3ZWFlLCAweDY2MTIsIDB4NzhhNCwgMHhhMDg0LCAweDc3NzAsIDB4YTE4YywKLQkweDAwMGYsIDB4YTEwNSwgMHgyMDI5LCAweDQ2MDUsIDB4MjUyYywgMHhkNWNjLCAweDAxNDAsIDB4ZDNhNCwKLQkweDAxMTAsIDB4YTA4NSwgMHgwODAwLCAweGQzZmMsIDB4MDExMCwgMHhhMDg1LCAweDgwODAsIDB4NzhhNiwKLQkweDYwMTYsIDB4Nzg4YSwgMHhhNmI0LCAweDAwMWYsIDB4ODYzNywgMHg4MjA0LCAweDgwMDQsIDB4YTYwNSwKLQkweDYwMGUsIDB4NjAwNCwgMHhhMDg0LCAweGZmZDUsIDB4NjAwNiwgMHgwMGNlLCAweDAwMDUsIDB4YTI4MiwKLQkweDAwMDIsIDB4MTkwNCwgMHgzYTFhLCAweDdhYTgsIDB4NjkyMCwgMHhjMWJkLCAweDY5MjIsIDB4ZDFjYywKLQkweDA1NjgsIDB4YzFjYywgMHg2OTIyLCAweGEyOTQsIDB4MDBmZiwgMHhhMjgyLCAweDAwMDIsIDB4MWEwNCwKLQkweDNhMGIsIDB4MDgwYywgMHgzOTllLCAweDA4MGMsIDB4MzhmNCwgMHhhOTgwLCAweDAwMDEsIDB4MjAwYywKLQkweDA4MGMsIDB4M2I2YiwgMHgwODBjLCAweDM4OTUsIDB4ODhmZiwgMHgwMTc4LCAweDc4OWIsIDB4MDA2MCwKLQkweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDExMTgsIDB4NzgxYiwKLQkweDAwNmUsIDB4MDAwNSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHg3ZTU4LCAweGQ2ZDQsIDB4MTExOCwKLQkweDc4MWIsIDB4MDA3MSwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweGEyODIsIDB4MDAwMiwKLQkweDEyMTgsIDB4YTI4NCwgMHgwMDAxLCAweDAxNDAsIDB4NzE1NCwgMHhhMTg4LCAweDAwMDAsIDB4MjEwYywKLQkweGQxZWMsIDB4MTExMCwgMHgyMDExLCAweDAwMDAsIDB4MDgwYywgMHgzYTg3LCAweDA0NzksIDB4MDgwYywKLQkweDM4ZjQsIDB4Nzg1OCwgMHhjMDk1LCAweDc4NWEsIDB4NzgxYiwgMHgwMDgyLCAweDAwMDUsIDB4MDBjNiwKLQkweDAwMjYsIDB4Mjk2MCwgMHg2MDAwLCAweDIwMTEsIDB4MDAwMSwgMHhkMGVjLCAweDExNTgsIDB4ZDBiYywKLQkweDExMzgsIDB4NjAxNCwgMHhkMGI0LCAweDExMjAsIDB4YzFhNCwgMHg2MTA2LCAweGEwMDYsIDB4MDA4OCwKLQkweDIwMTEsIDB4MDAwMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwgMHgwMDAyLCAweDc4YWIsIDB4MDAwMywKLQkweDdhYWEsIDB4YThjMCwgMHgwMDA0LCAweDA4MGMsIDB4M2E1NSwgMHg2ODIwLCAweGEwODUsIDB4MDIwMCwKLQkweDY4MjIsIDB4MDAyZSwgMHgwMGNlLCAweDAwMDUsIDB4ODgwNywgMHhhNzE1LCAweDAwYzYsIDB4MjAwOSwKLQkweDAwMDAsIDB4NzA1NCwgMHgyMDYwLCAweDgyZmYsIDB4MDExMCwgMHgyMDA5LCAweDAwNDAsIDB4NjAxOCwKLQkweGEwODAsIDB4MDAwMiwgMHg3ODlhLCAweDc4YTQsIDB4YTA4NCwgMHhmZjlmLCAweGExMDUsIDB4YzBlYywKLQkweGQwYjQsIDB4MTEwOCwgMHhjMGVkLCAweDYxMDAsIDB4ZDFmNCwgMHgwMTEwLCAweGEwODUsIDB4MDAyMCwKLQkweDc4YTYsIDB4NjAxNiwgMHg3ODhhLCAweDYwMDQsIDB4YTA4NCwgMHhmZmVmLCAweDYwMDYsIDB4MDBjZSwKLQkweDAwMDUsIDB4MDAwNiwgMHg3MDAwLCAweGEwODYsIDB4MDAwMywgMHgwMTEwLCAweDAwMGUsIDB4MDAxMCwKLQkweDAwMGUsIDB4MDQ4OCwgMHhkNmFjLCAweDA1NzgsIDB4Nzg4OCwgMHhhMDg0LCAweDAwNDAsIDB4MDU1OCwKLQkweDdiYjgsIDB4ODMwNywgMHhhMDg0LCAweDAwN2YsIDB4MTUwOCwgMHg4MjA3LCAweGEwODQsIDB4MDBmZiwKLQkweGEwOWUsIDB4MDAwMSwgMHgxOTA0LCAweDNhMzIsIDB4ZDZmNCwgMHgxMWQwLCAweDc5ZDgsIDB4N2FkYywKLQkweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDc5ZDIsIDB4NzlkYSwgMHg3YWQ2LCAweDdhZGUsIDB4MDgwYywKLQkweDQyYjUsIDB4NzgxYiwgMHgwMDgwLCAweGIyODQsIDB4MDYwMCwgMHgwMTE4LCAweDIwMDEsIDB4MDAwMCwKLQkweDAwMTAsIDB4MjAwMSwgMHgwMDAxLCAweDA4MGMsIDB4NDE3MiwgMHgwMDA1LCAweDA4MGMsIDB4MjU0YywKLQkweDc4MWIsIDB4MDA4MCwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweDIwMzksIDB4MDAwMCwKLQkweDIwNDEsIDB4MDAwMCwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDA4MGMsIDB4MzhmNywKLQkweDA4MGMsIDB4Mzk5YywgMHg3ZTU4LCAweDA4MGMsIDB4M2E0ZSwgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwKLQkweDBjZDEsIDB4NjgyMCwgMHhjMGM0LCAweDY4MjIsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4MDgwYywKLQkweDM5MjEsIDB4MDBiMCwgMHgwYzgxLCAweDY4MjAsIDB4YzBjYywgMHg2ODIyLCAweDAwYzYsIDB4NzA1NCwKLQkweDIwNjAsIDB4MDgwYywgMHgzOWJiLCAweDAwNjAsIDB4MGMzMSwgMHg2ODIwLCAweGEwODQsIDB4ZWNmZiwKLQkweDY4MjIsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4NjAwNCwgMHhhMDg0LCAweGZmYzUsIDB4NjAwNiwKLQkweDAwY2UsIDB4MDAwNSwgMHgwMDQ5LCAweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDY4MjcsIDB4MDAwMiwKLQkweDAwNDksIDB4NzgxYiwgMHgwMDgyLCAweDAwMDUsIDB4MjAwMSwgMHgwMDA1LCAweDAwODgsIDB4MjAwMSwKLQkweDAwMGMsIDB4MDA3MCwgMHg2ODIwLCAweGMwZDUsIDB4NjgyMiwgMHgyMDAxLCAweDAwMDYsIDB4MDA0MCwKLQkweDIwMDEsIDB4MDAwZCwgMHgwMDI4LCAweDIwMDEsIDB4MDAwOSwgMHgwMDEwLCAweDIwMDEsIDB4MDAwNywKLQkweDc4OWIsIDB4MDA3ZSwgMHg3OGFhLCAweGM2OWQsIDB4N2U1YSwgMHg3MGQwLCAweGQwYjQsIDB4MDE2OCwKLQkweGMwYjQsIDB4NzBkMiwgMHgwMGM2LCAweDcwYjQsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwKLQkweDYwMGEsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4MDBjZSwgMHgwMDA1LCAweDAwNzYsIDB4ODczZiwKLQkweGE3YmMsIDB4MDAwZiwgMHg4NzNiLCAweDg3M2IsIDB4ODcwMywgMHhhMGUwLCAweDRhYzAsIDB4YWU4ZSwKLQkweDQ2NDAsIDB4MDExMCwgMHhhMGUwLCAweDRiNDAsIDB4YTdiOCwgMHgwMDIwLCAweDdmOWEsIDB4NzlhNCwKLQkweGExODQsIDB4N2ZlMCwgMHg3OGFlLCAweDYwMTIsIDB4NzlhNCwgMHhhMTg0LCAweDc3M2YsIDB4NzhhNiwKLQkweDYwMTYsIDB4NjAwNCwgMHhhMDg1LCAweDAwMzgsIDB4NjAwNiwgMHgwMDdlLCAweDAwMDUsIDB4Nzg5YiwKLQkweDAwODAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwMiwgMHg3OGFiLCAweDAwMDMsIDB4N2FhYSwKLQkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDQsIDB4MDgwMCwgMHgyMDMxLCAweDAwMDAsIDB4MjAyOSwKLQkweDAwMzIsIDB4Nzg5YiwgMHgwMDgwLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwKLQkweDAwMDEsIDB4N2RhYSwgMHg3ZWFhLCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDUsIDB4MDgwNCwKLQkweDNhNTUsIDB4MDE1NiwgMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHg4MDAzLCAweDgwMDMsIDB4YTA4MCwKLQkweDAwMjAsIDB4Nzg5YSwgMHg3OWE0LCAweGExOGMsIDB4ZmZlMCwgMHgyMDIxLCAweDNiNTQsIDB4MjAxOSwKLQkweDAwMTEsIDB4MjBhOSwgMHgwMDBlLCAweDIwMTEsIDB4MDAzMiwgMHgyNDA0LCAweGEwODQsIDB4ZmZlMCwKLQkweGExMDYsIDB4MDEyOCwgMHg4NDIwLCAweDIzMDAsIDB4YTIxMCwgMHgxZjA0LCAweDNhYmQsIDB4MDE1ZSwKLQkweDAwMDUsIDB4MDE1NiwgMHgwNGY4LCAweDIwMjEsIDB4M2I2MiwgMHgyMGE5LCAweDAwMDksIDB4MjAxMSwKLQkweDAwMjksIDB4YTU4MiwgMHgwMDI4LCAweDA1NTAsIDB4ODQyMCwgMHg5NWE5LCAweDIwMTEsIDB4MDAzMywKLQkweGE1ODIsIDB4MDAzMywgMHgwNjE4LCAweDg0MjAsIDB4OTVhOSwgMHgyMDE5LCAweDAwMGEsIDB4MjAxMSwKLQkweDAwNjUsIDB4MjIwMCwgMHhhNTAyLCAweDAyZDAsIDB4ODQyMCwgMHgyMzAwLCAweGEyMTAsIDB4MWYwNCwKLQkweDNhZTEsIDB4MDE1ZSwgMHgwMDg4LCAweDIwMjEsIDB4M2I1NCwgMHgyMDE5LCAweDAwMTEsIDB4MjBhOSwKLQkweDAwMGUsIDB4MjAxMSwgMHgwMDMzLCAweDIyMDAsIDB4YTUwMiwgMHgwMjQwLCAweDg0MjAsIDB4MjMwMCwKLQkweGEyMTAsIDB4MWYwNCwgMHgzYWYzLCAweDAxNWUsIDB4YTAwNiwgMHgwMDA1LCAweDgyMTEsIDB4MDE1ZSwKLQkweGE1ODIsIDB4MDA2NCwgMHgxMjIwLCAweDc4MDgsIDB4YTA4NSwgMHgwMDcwLCAweDc4MGEsIDB4MjQwNCwKLQkweGEwMDUsIDB4MDAwNSwgMHhhODg2LCAweDAwMDIsIDB4MDFlOCwgMHgyMDIxLCAweDNiNDAsIDB4MjBhOSwKLQkweDAwMGQsIDB4MjAxMSwgMHgwMDI4LCAweGE1ODIsIDB4MDAyOCwgMHgwZDQ4LCAweDg0MjAsIDB4MjAxOSwKLQkweDAwMTksIDB4MjAxMSwgMHgwMDMzLCAweDIyMDAsIDB4YTUwMiwgMHgwZTAwLCAweDg0MjAsIDB4MjMwMCwKLQkweGEyMTAsIDB4MWYwNCwgMHgzYjFiLCAweDAxNWUsIDB4MjAxMSwgMHgwMTg0LCAweGE1ODIsIDB4MDE4NSwKLQkweDBhYjAsIDB4MDg5MCwgMHgyMDIxLCAweDNiNGYsIDB4MjBhOSwgMHgwMDAzLCAweDIwMTEsIDB4MDAyNCwKLQkweGE1ODYsIDB4MDAyNCwgMHgwOTYwLCAweDg0MjAsIDB4MjAxMSwgMHgwMDI4LCAweGE1ODYsIDB4MDAyOCwKLQkweDA5MzAsIDB4ODQyMCwgMHgyMDE5LCAweDAwMTksIDB4MjAxMSwgMHgwMDMzLCAweDA4MDQsIDB4M2FmMywKLQkweDEwMjEsIDB4MjIwMiwgMHgzNDAzLCAweDQ2MDQsIDB4NTgwNSwgMHg2YTA2LCAweDdjMDcsIDB4NDYxMCwKLQkweDQ2MTIsIDB4NTgxMiwgMHg1YTEyLCAweDZhMTQsIDB4NmMxNCwgMHg2ZTE0LCAweDdlMTcsIDB4OTAyMSwKLQkweGIwMDIsIDB4ZTIwNCwgMHhlMjEwLCAweGUyMTAsIDB4MTIwOSwgMHgzMDAyLCAweDMyMDIsIDB4NDIwMywKLQkweDQ0MDMsIDB4NTQwNCwgMHg1NjA0LCAweDY2MDUsIDB4NjgwNSwgMHg3ODA2LCAweDdhMDYsIDB4MGMwNywKLQkweDBjMDcsIDB4MGUwNywgMHgxMGUxLCAweDMzMGEsIDB4NTgwNSwgMHg1YTA1LCAweDZhMDYsIDB4NmMwNiwKLQkweDdjMDcsIDB4N2UwNywgMHgwZTAwLCAweDc4OWIsIDB4MDA4MCwgMHhhMDQ2LCAweDAwMDUsIDB4YTc4NCwKLQkweDBmMDAsIDB4ODAwYiwgMHhhNzg0LCAweDAwMWYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywKLQkweGExMDUsIDB4ZDdmYywgMHgwMTE4LCAweGEwZTAsIDB4NmJjMCwgMHgwMDEwLCAweGEwZTAsIDB4NGJjMCwKLQkweDAwMDUsIDB4MDBlNiwgMHgwMGY2LCAweGQwODQsIDB4MDEzOCwgMHgyMDc5LCAweDAxMDAsIDB4MjAwOSwKLQkweDQ2ODAsIDB4MjA3MSwgMHg0NjgwLCAweDAwMzAsIDB4MjAwOSwgMHg0NjQwLCAweDIwNzksIDB4MDIwMCwKLQkweDIwNzEsIDB4NDY0MCwgMHgyMDkxLCAweDgwMDAsIDB4MjEwNCwgMHhhMDg0LCAweDAwMGYsIDB4MDAwMiwKLQkweDNiYTIsIDB4M2JhMiwgMHgzYmEyLCAweDNiYTIsIDB4M2JhMiwgMHgzYmEyLCAweDNiYTAsIDB4M2JhMCwKLQkweDA4MGMsIDB4MjU0YywgMHg2OWI0LCAweGMxZjUsIDB4YTE4YywgMHhmZjlmLCAweDY5YjYsIDB4YTAwNSwKLQkweDA1ODAsIDB4Nzg1OCwgMHhhMDg0LCAweGZmOWYsIDB4YTA4NSwgMHg2MDAwLCAweDc4NWEsIDB4NzgyOCwKLQkweGEwODYsIDB4MTgxNCwgMHgxNTMwLCAweDc4NGIsIDB4MDAwNCwgMHg3ODQ4LCAweGEwODQsIDB4MDAwNCwKLQkweDFkZTAsIDB4Nzg0YiwgMHgwMDA4LCAweDc4NDgsIDB4YTA4NCwgMHgwMDA4LCAweDFkZTAsIDB4NzgzMCwKLQkweGQwYmMsIDB4MTFiOCwgMHhiMjg0LCAweDA4MDAsIDB4MDExOCwgMHgwMTA0LCAweDNiZDksIDB4MDAxMCwKLQkweDAzMDQsIDB4M2JkOSwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMTU4LCAweDc4ZWMsIDB4YTA4NCwKLQkweDAwMDMsIDB4MDEzOCwgMHg2ODFjLCAweGQwYWMsIDB4MTExMCwgMHgwMGQ5LCAweDAwMTAsIDB4NzgxYiwKLQkweDAwZmIsIDB4MDBmZSwgMHgwMGVlLCAweDAwMDUsIDB4MjAwMSwgMHg0NjAxLCAweDIwMDQsIDB4ZDBhYywKLQkweDExMTgsIDB4NjgxNCwgMHgwODBjLCAweDI0NzUsIDB4MDAwNSwgMHg3ODFiLCAweDAwODMsIDB4MDAwNSwKLQkweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDc4MWIsIDB4MDA3MSwgMHgwMDA1LCAweDc4MWIsIDB4MDA2ZSwKLQkweDAwMDUsIDB4MjAwOSwgMHg0NjE5LCAweDIxMGMsIDB4YTE4NiwgMHgwMDAwLCAweDAxNTAsIDB4YTE4NiwKLQkweDAwMDEsIDB4MDE1MCwgMHg3MDFmLCAweDAwMGIsIDB4NzA2MywgMHgwMDAxLCAweDc4MWIsIDB4MDA1NCwKLQkweDAwMDUsIDB4NzgxYiwgMHgwMGYzLCAweDAwMDUsIDB4NzAxZiwgMHgwMDBhLCAweDAwMDUsIDB4MjAwOSwKLQkweDQ2MTksIDB4MjEwYywgMHhhMTg2LCAweDAwMDAsIDB4MDE2OCwgMHhhMTg2LCAweDAwMDEsIDB4MDEzOCwKLQkweDcwMWYsIDB4MDAwYiwgMHg3MDYzLCAweDAwMDEsIDB4NzgxYiwgMHgwMDU0LCAweDAwMDUsIDB4NzAxZiwKLQkweDAwMGEsIDB4MDAwNSwgMHg3ODFiLCAweDAwZjIsIDB4MDAwNSwgMHg3ODFiLCAweDAwZmIsIDB4MDAwNSwKLQkweDc4MWIsIDB4MDBmYSwgMHgwMDA1LCAweDc4MWIsIDB4MDBjYywgMHgwMDA1LCAweDc4MWIsIDB4MDBjYiwKLQkweDAwMDUsIDB4NjgxOCwgMHhkMGZjLCAweDAxMTAsIDB4NjgxYiwgMHgwMDFkLCAweDcwNjMsIDB4MDAwMSwKKwkweDAwMDUsIDB4YTI4MiwgMHgwMDAyLCAweDEyMTgsIDB4YTI4NCwgMHgwMDAxLCAweDAxNDAsIDB4NzE1NCwKKwkweGExODgsIDB4MDAwMCwgMHgyMTBjLCAweGQxZWMsIDB4MTExMCwgMHgyMDExLCAweDAwMDAsIDB4MDgwYywKKwkweDNhYWMsIDB4MDQ3OSwgMHgwODBjLCAweDM5MTcsIDB4Nzg1OCwgMHhjMDk1LCAweDc4NWEsIDB4NzgxYiwKKwkweDAwODIsIDB4MDAwNSwgMHgwMGM2LCAweDAwMjYsIDB4Mjk2MCwgMHg2MDAwLCAweDIwMTEsIDB4MDAwMSwKKwkweGQwZWMsIDB4MTE1OCwgMHhkMGJjLCAweDExMzgsIDB4NjAxNCwgMHhkMGI0LCAweDExMjAsIDB4YzFhNCwKKwkweDYxMDYsIDB4YTAwNiwgMHgwMDg4LCAweDIwMTEsIDB4MDAwMCwgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwKKwkweDAwMDIsIDB4NzhhYiwgMHgwMDAzLCAweDdhYWEsIDB4YThjMCwgMHgwMDA0LCAweDA4MGMsIDB4M2E3YSwKKwkweDY4MjAsIDB4YTA4NSwgMHgwMjAwLCAweDY4MjIsIDB4MDAyZSwgMHgwMGNlLCAweDAwMDUsIDB4ODgwNywKKwkweGE3MTUsIDB4MDBjNiwgMHgyMDA5LCAweDAwMDAsIDB4NzA1NCwgMHgyMDYwLCAweDgyZmYsIDB4MDExMCwKKwkweDIwMDksIDB4MDA0MCwgMHg2MDE4LCAweGEwODAsIDB4MDAwMiwgMHg3ODlhLCAweDc4YTQsIDB4YTA4NCwKKwkweGZmOWYsIDB4YTEwNSwgMHhjMGVjLCAweGQwYjQsIDB4MTEwOCwgMHhjMGVkLCAweDYxMDAsIDB4ZDFmNCwKKwkweDAxMTAsIDB4YTA4NSwgMHgwMDIwLCAweDc4YTYsIDB4NjAxNiwgMHg3ODhhLCAweDYwMDQsIDB4YTA4NCwKKwkweGZmZWYsIDB4NjAwNiwgMHgwMGNlLCAweDAwMDUsIDB4MDAwNiwgMHg3MDAwLCAweGEwODYsIDB4MDAwMywKKwkweDAxMTAsIDB4MDAwZSwgMHgwMDEwLCAweDAwMGUsIDB4MDQ5OCwgMHhkNmFjLCAweDA1ODgsIDB4Nzg4OCwKKwkweGEwODQsIDB4MDA0MCwgMHgwNTY4LCAweDdiYjgsIDB4ODMwNywgMHhhMDg0LCAweDAwN2YsIDB4MTUxOCwKKwkweDgyMDcsIDB4YTA4NCwgMHgwMGZmLCAweDA5MDQsIDB4M2E1NywgMHhhMDlhLCAweDAwMDQsIDB4MWEwNCwKKwkweDNhNTcsIDB4ZDZmNCwgMHgxMWQwLCAweDc5ZDgsIDB4N2FkYywgMHhhMTA4LCAweGEyOTEsIDB4MDAwMCwKKwkweDc5ZDIsIDB4NzlkYSwgMHg3YWQ2LCAweDdhZGUsIDB4MDgwYywgMHg0MmU4LCAweDc4MWIsIDB4MDA4MCwKKwkweGIyODQsIDB4MDYwMCwgMHgwMTE4LCAweDIwMDEsIDB4MDAwMCwgMHgwMDEwLCAweDIwMDEsIDB4MDAwMSwKKwkweDA4MGMsIDB4NDE5YSwgMHgwMDA1LCAweDA4MGMsIDB4MjU3NSwgMHg3ODFiLCAweDAwODAsIDB4MDAwNSwKKwkweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweDIwMzksIDB4MDAwMCwgMHgyMDQxLCAweDAwMDAsIDB4MjAzMSwKKwkweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDA4MGMsIDB4MzkxYSwgMHgwODBjLCAweDM5YmYsIDB4N2U1OCwKKwkweDA4MGMsIDB4M2E3MywgMHg3ODFiLCAweDAwODIsIDB4MDAwNSwgMHgwY2QxLCAweDY4MjAsIDB4YzBjNCwKKwkweDY4MjIsIDB4MDBjNiwgMHg3MDU0LCAweDIwNjAsIDB4MDgwYywgMHgzOTQ0LCAweDAwYjAsIDB4MGM4MSwKKwkweDY4MjAsIDB4YzBjYywgMHg2ODIyLCAweDAwYzYsIDB4NzA1NCwgMHgyMDYwLCAweDA4MGMsIDB4MzlkZSwKKwkweDAwNjAsIDB4MGMzMSwgMHg2ODIwLCAweGEwODQsIDB4ZWNmZiwgMHg2ODIyLCAweDAwYzYsIDB4NzA1NCwKKwkweDIwNjAsIDB4NjAwNCwgMHhhMDg0LCAweGZmYzUsIDB4NjAwNiwgMHgwMGNlLCAweDAwMDUsIDB4MDA0OSwKKwkweDc4MWIsIDB4MDA4MiwgMHgwMDA1LCAweDY4MjcsIDB4MDAwMiwgMHgwMDQ5LCAweDc4MWIsIDB4MDA4MiwKKwkweDAwMDUsIDB4MjAwMSwgMHgwMDA1LCAweDAwODgsIDB4MjAwMSwgMHgwMDBjLCAweDAwNzAsIDB4NjgyMCwKKwkweGMwZDUsIDB4NjgyMiwgMHgyMDAxLCAweDAwMDYsIDB4MDA0MCwgMHgyMDAxLCAweDAwMGQsIDB4MDAyOCwKKwkweDIwMDEsIDB4MDAwOSwgMHgwMDEwLCAweDIwMDEsIDB4MDAwNywgMHg3ODliLCAweDAwN2UsIDB4NzhhYSwKKwkweGM2OWQsIDB4N2U1YSwgMHg3MGQwLCAweGQwYjQsIDB4MDE2OCwgMHhjMGI0LCAweDcwZDIsIDB4MDBjNiwKKwkweDcwYjQsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsIDB4ODAwMSwKKwkweDYwMWEsIDB4MDBjZSwgMHgwMDA1LCAweDAwNzYsIDB4ODczZiwgMHhhN2JjLCAweDAwMGYsIDB4ODczYiwKKwkweDg3M2IsIDB4ODcwMywgMHhhMGUwLCAweDRiYzAsIDB4YWU4ZSwgMHg0NzQwLCAweDAxMTAsIDB4YTBlMCwKKwkweDRjNDAsIDB4YTdiOCwgMHgwMDIwLCAweDdmOWEsIDB4NzlhNCwgMHhhMTg0LCAweDdmZTAsIDB4NzhhZSwKKwkweDYwMTIsIDB4NzlhNCwgMHhhMTg0LCAweDc3M2YsIDB4NzhhNiwgMHg2MDE2LCAweDYwMDQsIDB4YTA4NSwKKwkweDAwMzgsIDB4NjAwNiwgMHgwMDdlLCAweDAwMDUsIDB4Nzg5YiwgMHgwMDgwLCAweDc4YWIsIDB4MDAwMSwKKwkweDc4YWIsIDB4MDAwMiwgMHg3OGFiLCAweDAwMDMsIDB4N2FhYSwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwKKwkweDAwMDQsIDB4MDgwMCwgMHgyMDMxLCAweDAwMDAsIDB4MjAyOSwgMHgwMDMyLCAweDc4OWIsIDB4MDA4MCwKKwkweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdkYWEsIDB4N2VhYSwKKwkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDUsIDB4MDgwNCwgMHgzYTdhLCAweDAxNTYsIDB4ODAwNywKKwkweGEwODQsIDB4MDBmZiwgMHg4MDAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDc4OWEsIDB4NzlhNCwKKwkweGExOGMsIDB4ZmZlMCwgMHgyMDIxLCAweDNiN2EsIDB4MjAxOSwgMHgwMDExLCAweDIwYTksIDB4MDAwZSwKKwkweDIwMTEsIDB4MDAzMiwgMHgyNDA0LCAweGEwODQsIDB4ZmZlMCwgMHhhMTA2LCAweDAxMjgsIDB4ODQyMCwKKwkweDIzMDAsIDB4YTIxMCwgMHgxZjA0LCAweDNhZTIsIDB4MDE1ZSwgMHgwMDA1LCAweDAxNTYsIDB4MDgwNCwKKwkweDNiMzAsIDB4MjAyMSwgMHgzYjg4LCAweDIwYTksIDB4MDAwOSwgMHgyMDExLCAweDAwMjksIDB4YTU4MiwKKwkweDAwMjgsIDB4MDU1MCwgMHg4NDIwLCAweDk1YTksIDB4MjAxMSwgMHgwMDMzLCAweGE1ODIsIDB4MDAzMywKKwkweDA2MTgsIDB4ODQyMCwgMHg5NWE5LCAweDIwMTksIDB4MDAwYSwgMHgyMDExLCAweDAwNjUsIDB4MjIwMCwKKwkweGE1MDIsIDB4MDJkMCwgMHg4NDIwLCAweDIzMDAsIDB4YTIxMCwgMHgxZjA0LCAweDNiMDcsIDB4MDE1ZSwKKwkweDAwODgsIDB4MjAyMSwgMHgzYjdhLCAweDIwMTksIDB4MDAxMSwgMHgyMGE5LCAweDAwMGUsIDB4MjAxMSwKKwkweDAwMzMsIDB4MjIwMCwgMHhhNTAyLCAweDAyNDAsIDB4ODQyMCwgMHgyMzAwLCAweGEyMTAsIDB4MWYwNCwKKwkweDNiMTksIDB4MDE1ZSwgMHhhMDA2LCAweDAwMDUsIDB4ODIxMSwgMHgwMTVlLCAweGE1ODIsIDB4MDA2NCwKKwkweDEyMjAsIDB4NzgwOCwgMHhhMDg1LCAweDAwNzAsIDB4NzgwYSwgMHgyNDA0LCAweGEwMDUsIDB4MDAwNSwKKwkweGE4ODYsIDB4MDAwMiwgMHgwMWU4LCAweDIwMjEsIDB4M2I2NiwgMHgyMGE5LCAweDAwMGQsIDB4MjAxMSwKKwkweDAwMjgsIDB4YTU4MiwgMHgwMDI4LCAweDBkNDgsIDB4ODQyMCwgMHgyMDE5LCAweDAwMTksIDB4MjAxMSwKKwkweDAwMzMsIDB4MjIwMCwgMHhhNTAyLCAweDBlMDAsIDB4ODQyMCwgMHgyMzAwLCAweGEyMTAsIDB4MWYwNCwKKwkweDNiNDEsIDB4MDE1ZSwgMHgyMDExLCAweDAxODQsIDB4YTU4MiwgMHgwMTg1LCAweDBhYjAsIDB4MDg5MCwKKwkweDIwMjEsIDB4M2I3NSwgMHgyMGE5LCAweDAwMDMsIDB4MjAxMSwgMHgwMDI0LCAweGE1ODYsIDB4MDAyNCwKKwkweDA5NjAsIDB4ODQyMCwgMHgyMDExLCAweDAwMjgsIDB4YTU4NiwgMHgwMDI4LCAweDA5MzAsIDB4ODQyMCwKKwkweDIwMTksIDB4MDAxOSwgMHgyMDExLCAweDAwMzMsIDB4MDgwNCwgMHgzYjE5LCAweDEwMjEsIDB4MjIwMiwKKwkweDM0MDMsIDB4NDYwNCwgMHg1ODA1LCAweDZhMDYsIDB4N2MwNywgMHg0NjEwLCAweDQ2MTIsIDB4NTgxMiwKKwkweDVhMTIsIDB4NmExNCwgMHg2YzE0LCAweDZlMTQsIDB4N2UxNywgMHg5MDIxLCAweGIwMDIsIDB4ZTIwNCwKKwkweGUyMTAsIDB4ZTIxMCwgMHgxMjA5LCAweDMwMDIsIDB4MzIwMiwgMHg0MjAzLCAweDQ0MDMsIDB4NTQwNCwKKwkweDU2MDQsIDB4NjYwNSwgMHg2ODA1LCAweDc4MDYsIDB4N2EwNiwgMHgwYzA3LCAweDBjMDcsIDB4MGUwNywKKwkweDEwZTEsIDB4MzMwYSwgMHg1ODA1LCAweDVhMDUsIDB4NmEwNiwgMHg2YzA2LCAweDdjMDcsIDB4N2UwNywKKwkweDBlMDAsIDB4Nzg5YiwgMHgwMDgwLCAweGEwNDYsIDB4MDAwNSwgMHhhNzg0LCAweDBmMDAsIDB4ODAwYiwKKwkweGE3ODQsIDB4MDAxZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsIDB4ZDdmYywKKwkweDAxMTgsIDB4YTBlMCwgMHg2Y2MwLCAweDAwMTAsIDB4YTBlMCwgMHg0Y2MwLCAweDAwMDUsIDB4MDBlNiwKKwkweDAwZjYsIDB4ZDA4NCwgMHgwMTM4LCAweDIwNzksIDB4MDEwMCwgMHgyMDA5LCAweDQ3ODAsIDB4MjA3MSwKKwkweDQ3ODAsIDB4MDAzMCwgMHgyMDA5LCAweDQ3NDAsIDB4MjA3OSwgMHgwMjAwLCAweDIwNzEsIDB4NDc0MCwKKwkweDIwOTEsIDB4ODAwMCwgMHgyMTA0LCAweGEwODQsIDB4MDAwZiwgMHgwMDAyLCAweDNiYzgsIDB4M2JjOCwKKwkweDNiYzgsIDB4M2JjOCwgMHgzYmM4LCAweDNiYzgsIDB4M2JjNiwgMHgzYmM2LCAweDA4MGMsIDB4MjU3NSwKKwkweDY5YjQsIDB4YzFmNSwgMHhhMThjLCAweGZmOWYsIDB4NjliNiwgMHhhMDA1LCAweDA1ODAsIDB4Nzg1OCwKKwkweGEwODQsIDB4ZmY5ZiwgMHhhMDg1LCAweDYwMDAsIDB4Nzg1YSwgMHg3ODI4LCAweGEwODYsIDB4MTgxNCwKKwkweDE1MzAsIDB4Nzg0YiwgMHgwMDA0LCAweDc4NDgsIDB4YTA4NCwgMHgwMDA0LCAweDFkZTAsIDB4Nzg0YiwKKwkweDAwMDgsIDB4Nzg0OCwgMHhhMDg0LCAweDAwMDgsIDB4MWRlMCwgMHg3ODMwLCAweGQwYmMsIDB4MTFiOCwKKwkweGIyODQsIDB4MDgwMCwgMHgwMTE4LCAweDAxMDQsIDB4M2JmZiwgMHgwMDEwLCAweDAzMDQsIDB4M2JmZiwKKwkweDc5ZTQsIDB4YTE4NCwgMHgwMDMwLCAweDAxNTgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDEzOCwKKwkweDY4MWMsIDB4ZDBhYywgMHgxMTEwLCAweDAwZDksIDB4MDAxMCwgMHg3ODFiLCAweDAwZmIsIDB4MDBmZSwKKwkweDAwZWUsIDB4MDAwNSwgMHgyMDAxLCAweDQ3MDEsIDB4MjAwNCwgMHhkMGFjLCAweDExMTgsIDB4NjgxNCwKKwkweDA4MGMsIDB4MjQ5ZSwgMHgwMDA1LCAweDc4MWIsIDB4MDA4MywgMHgwMDA1LCAweDc4MWIsIDB4MDA4MiwKKwkweDAwMDUsIDB4NzgxYiwgMHgwMDcxLCAweDAwMDUsIDB4NzgxYiwgMHgwMDZlLCAweDAwMDUsIDB4MjAwOSwKKwkweDQ3MTksIDB4MjEwYywgMHhhMTg2LCAweDAwMDAsIDB4MDE1MCwgMHhhMTg2LCAweDAwMDEsIDB4MDE1MCwKKwkweDcwMWYsIDB4MDAwYiwgMHg3MDYzLCAweDAwMDEsIDB4NzgxYiwgMHgwMDU0LCAweDAwMDUsIDB4NzgxYiwKKwkweDAwZjMsIDB4MDAwNSwgMHg3MDFmLCAweDAwMGEsIDB4MDAwNSwgMHgyMDA5LCAweDQ3MTksIDB4MjEwYywKKwkweGExODYsIDB4MDAwMCwgMHgwMTY4LCAweGExODYsIDB4MDAwMSwgMHgwMTM4LCAweDcwMWYsIDB4MDAwYiwKKwkweDcwNjMsIDB4MDAwMSwgMHg3ODFiLCAweDAwNTQsIDB4MDAwNSwgMHg3MDFmLCAweDAwMGEsIDB4MDAwNSwKKwkweDc4MWIsIDB4MDBmMiwgMHgwMDA1LCAweDc4MWIsIDB4MDBmYiwgMHgwMDA1LCAweDc4MWIsIDB4MDBmYSwKKwkweDAwMDUsIDB4NzgxYiwgMHgwMGNjLCAweDAwMDUsIDB4NzgxYiwgMHgwMGNiLCAweDAwMDUsIDB4NjgxOCwKKwkweGQwZmMsIDB4MDExMCwgMHg2ODFiLCAweDAwMWQsIDB4NzAxZiwgMHgwMDBiLCAweDcwNjMsIDB4MDAwMSwKIAkweDc4MWIsIDB4MDA1NCwgMHgwMDA1LCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDExNzAsIDB4NzgwOCwKIAkweGMwOGMsIDB4NzgwYSwgMHhlMDAwLCAweGUwMDAsIDB4ZTAwMCwgMHhlMDAwLCAweDc4ZWMsIDB4YTA4NCwKIAkweDAwMjEsIDB4MDExOCwgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwgMHgwMDA1LCAweDc4MDgsIDB4YzA4ZCwKIAkweDc4MGEsIDB4MDAwNSwgMHg3ODMwLCAweGEwODQsIDB4MDA0MCwgMHgxZGUwLCAweGIyODQsIDB4MDgwMCwKLQkweDAxMTgsIDB4MTEwNCwgMHgzYzU4LCAweDAwMTAsIDB4MTMwNCwgMHgzYzU4LCAweDc4YWMsIDB4MDAwNSwKKwkweDAxMTgsIDB4MTEwNCwgMHgzYzgwLCAweDAwMTAsIDB4MTMwNCwgMHgzYzgwLCAweDc4YWMsIDB4MDAwNSwKIAkweDc4MDgsIDB4YTA4NCwgMHhmZmZkLCAweDc4MGEsIDB4ZTAwMCwgMHhlMDAwLCAweGUwMDAsIDB4ZTAwMCwKIAkweDc4ZWMsIDB4YTA4NCwgMHgwMDIxLCAweDAxNDAsIDB4YjI4NCwgMHgwODAwLCAweDAxMTgsIDB4MTEwNCwKLQkweDNjNjcsIDB4MDAxMCwgMHgxMzA0LCAweDNjNmEsIDB4NzhhYywgMHgwMDA2LCAweDc4MDgsIDB4YTA4NSwKLQkweDAwMDIsIDB4NzgwYSwgMHgwMDBlLCAweDAwMDUsIDB4YTc4NCwgMHgwMDAxLCAweDE5MDQsIDB4MzIyYSwKLQkweGE3ODQsIDB4MDA3MCwgMHgwMTQwLCAweDAwYzYsIDB4MmQ2MCwgMHgyZjY4LCAweDA4MGMsIDB4MjQ2NywKKwkweDNjOGYsIDB4MDAxMCwgMHgxMzA0LCAweDNjOTIsIDB4NzhhYywgMHgwMDA2LCAweDc4MDgsIDB4YTA4NSwKKwkweDAwMDIsIDB4NzgwYSwgMHgwMDBlLCAweDAwMDUsIDB4YTc4NCwgMHgwMDAxLCAweDE5MDQsIDB4MzI0ZCwKKwkweGE3ODQsIDB4MDA3MCwgMHgwMTQwLCAweDAwYzYsIDB4MmQ2MCwgMHgyZjY4LCAweDA4MGMsIDB4MjQ5MCwKIAkweDJkNzgsIDB4MmM2OCwgMHgwMGNlLCAweGE3ODQsIDB4MDAwOCwgMHgwMTQ4LCAweDc4NGIsIDB4MDAwOCwKLQkweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDA5MDQsIDB4MzIyYSwgMHgwODA0LCAweDNiZTUsIDB4YTc4NCwKKwkweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDA5MDQsIDB4MzI0ZCwgMHgwODA0LCAweDNjMGIsIDB4YTc4NCwKIAkweDAwMDQsIDB4MDFjOCwgMHg3OGI4LCAweGEwODQsIDB4ODAwMCwgMHgwMWE4LCAweDc4NGIsIDB4MDAwOCwKLQkweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDA5MDQsIDB4MzIyYSwgMHg3OGU0LCAweGEwODQsIDB4MDAwNywKKwkweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDA5MDQsIDB4MzI0ZCwgMHg3OGU0LCAweGEwODQsIDB4MDAwNywKIAkweGEwODYsIDB4MDAwMSwgMHgxMTQwLCAweDc4YzAsIDB4YTY4NSwgMHg0ODAwLCAweDIwMzAsIDB4N2U1YSwKIAkweDc4MWIsIDB4MDBmYiwgMHgwMDA1LCAweGE3ODQsIDB4MDA4MCwgMHgwMTQwLCAweDc4ODQsIDB4ZDBmYywKLQkweDAxMjgsIDB4MDgwYywgMHgzYTMyLCAweDY4MWIsIDB4MDAyMiwgMHgwMDA1LCAweDY4MWIsIDB4MDAwMywKKwkweDAxMjgsIDB4MDgwYywgMHgzYTU3LCAweDY4MWIsIDB4MDAyMiwgMHgwMDA1LCAweDY4MWIsIDB4MDAwMywKIAkweDc4NTgsIDB4YTA4NCwgMHg1ZjAwLCAweDY4MWUsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwKLQkweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwOTA0LCAweDJiODksIDB4YjI4NCwKLQkweDA4MDAsIDB4MDExMCwgMHgwMTA0LCAweDI1OWQsIDB4MDMwNCwgMHgyNTlkLCAweDZiMTQsIDB4ODMwNywKKwkweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwOTA0LCAweDJiYWMsIDB4YjI4NCwKKwkweDA4MDAsIDB4MDExMCwgMHgwMTA0LCAweDI1YzYsIDB4MDMwNCwgMHgyNWM2LCAweDZiMTQsIDB4ODMwNywKIAkweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhkM2ZjLCAweDAxMTgsIDB4YTA4MCwKLQkweDRiNDAsIDB4MDAxMCwgMHhhMDgwLCAweDRhYzAsIDB4MjA2MCwgMHgyMDQ4LCAweDcwNTYsIDB4MmE2MCwKLQkweDAwMDUsIDB4MDBjNiwgMHgyOTYwLCAweDYwMDAsIDB4ZDBhYywgMHgwOTA0LCAweDNkMmYsIDB4NjhhMCwKLQkweGQxYWMsIDB4MTEyMCwgMHhhMDg0LCAweDBlMDAsIDB4MDkwNCwgMHgzZDJkLCAweDYxMDgsIDB4ODExNywKKwkweDRjNDAsIDB4MDAxMCwgMHhhMDgwLCAweDRiYzAsIDB4MjA2MCwgMHgyMDQ4LCAweDcwNTYsIDB4MmE2MCwKKwkweDAwMDUsIDB4MDBjNiwgMHgyOTYwLCAweDYwMDAsIDB4ZDBhYywgMHgwOTA0LCAweDNkNTcsIDB4NjhhMCwKKwkweGQxYWMsIDB4MTEyMCwgMHhhMDg0LCAweDBlMDAsIDB4MDkwNCwgMHgzZDU1LCAweDYxMDgsIDB4ODExNywKIAkweGExOGMsIDB4MDBmZiwgMHg2MzFjLCAweDgzMmYsIDB4ZDBkYywgMHgwMTEwLCAweGEzOWQsIDB4MDAwMSwKIAkweGQwY2MsIDB4MTFjOCwgMHhhNTg0LCAweDAwZmYsIDB4MDEzOCwgMHg3OGVjLCAweGQwZTQsIDB4MDExMCwKIAkweDgyMTMsIDB4MDBiOCwgMHgyMDI5LCAweDAwMDAsIDB4YTE4MiwgMHgwMDBjLCAweDEyOTAsIDB4NzhlYywKQEAgLTE0OTMsMjMgKzE0OTgsMjMgQEAKIAkweDIwMDksIDB4MDAwYSwgMHgwMDMwLCAweDIwMDksIDB4MDAzMiwgMHgyMDExLCAweDAwMDAsIDB4MjAyOSwKIAkweDAwMDAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsIDB4MDAwNiwgMHg3OGFiLCAweDAwMDQsIDB4NzlhYSwKIAkweDc4YWIsIDB4MDAwMCwgMHg3YWFhLCAweDdiYWEsIDB4N2RhYSwgMHhhOGMwLCAweDAwMDgsIDB4NjgyMCwKLQkweGEwODUsIDB4MTAwMCwgMHg2ODIyLCAweDA4MGMsIDB4M2E1NSwgMHhhMDg1LCAweDAwMDEsIDB4MDBjZSwKLQkweDAwMDUsIDB4YTI4MiwgMHgwMDA2LCAweDE5MDQsIDB4M2EyNCwgMHg3ZGE4LCAweDdlYWMsIDB4ODYzNywKKwkweGEwODUsIDB4MTAwMCwgMHg2ODIyLCAweDA4MGMsIDB4M2E3YSwgMHhhMDg1LCAweDAwMDEsIDB4MDBjZSwKKwkweDAwMDUsIDB4YTI4MiwgMHgwMDA2LCAweDE5MDQsIDB4M2E0OSwgMHg3ZGE4LCAweDdlYWMsIDB4ODYzNywKIAkweGE1YWMsIDB4MDBmZiwgMHhhNmI0LCAweDAwZmYsIDB4N2ZhYywgMHg4NzQ3LCAweGE3YmMsIDB4MDBmZiwKLQkweGE4YzQsIDB4MDBmZiwgMHg2OTIwLCAweGMxYmQsIDB4NjkyMiwgMHhkMWU0LCAweDA5MDQsIDB4M2RhMywKLQkweGExOGMsIDB4ZWNmZiwgMHg2OTIyLCAweGE3ODIsIDB4MDAwMiwgMHgxYTA0LCAweDM5ZmUsIDB4YTZiNCwKLQkweDAwZmYsIDB4MDkwNCwgMHgzZGEwLCAweGE2ODIsIDB4MDAzMSwgMHgxYTA0LCAweDM5ZmUsIDB4YTU4MiwKLQkweDAwMDksIDB4MGEwNCwgMHgzOWZlLCAweGE4ODIsIDB4MDAwMywgMHgxYTA0LCAweDM5ZmUsIDB4YTg4NiwKLQkweDAwMDIsIDB4MDFkMCwgMHhhODg2LCAweDAwMDAsIDB4MTkwNCwgMHgzOWZlLCAweDIwMDEsIDB4MDAwYywKKwkweGE4YzQsIDB4MDBmZiwgMHg2OTIwLCAweGMxYmQsIDB4NjkyMiwgMHhkMWU0LCAweDA5MDQsIDB4M2RjYiwKKwkweGExOGMsIDB4ZWNmZiwgMHg2OTIyLCAweGE3ODIsIDB4MDAwMiwgMHgxYTA0LCAweDNhMjMsIDB4YTZiNCwKKwkweDAwZmYsIDB4MDkwNCwgMHgzZGM4LCAweGE2ODIsIDB4MDAzMSwgMHgxYTA0LCAweDNhMjMsIDB4YTU4MiwKKwkweDAwMDksIDB4MGEwNCwgMHgzYTIzLCAweGE4ODIsIDB4MDAwMywgMHgxYTA0LCAweDNhMjMsIDB4YTg4NiwKKwkweDAwMDIsIDB4MDFkMCwgMHhhODg2LCAweDAwMDAsIDB4MTkwNCwgMHgzYTIzLCAweDIwMDEsIDB4MDAwYywKIAkweDc5ZWMsIDB4ZDFlNCwgMHgwMTEwLCAweDIwMDEsIDB4MDAwYSwgMHhhNTAyLCAweDEyOTAsIDB4MDgwYywKLQkweDM5ZmUsIDB4MDBjNiwgMHgyOTYwLCAweDYwMDQsIDB4YTA4NSwgMHgwMDFhLCAweDYwMDYsIDB4NjAwMCwKLQkweGMwYWMsIDB4NjAwMiwgMHgwMGNlLCAweDAwMDUsIDB4YTc4NiwgMHgwMDAwLCAweDA5MDQsIDB4MzlmZSwKKwkweDNhMjMsIDB4MDBjNiwgMHgyOTYwLCAweDYwMDQsIDB4YTA4NSwgMHgwMDFhLCAweDYwMDYsIDB4NjAwMCwKKwkweGMwYWMsIDB4NjAwMiwgMHgwMGNlLCAweDAwMDUsIDB4YTc4NiwgMHgwMDAwLCAweDA5MDQsIDB4M2EyMywKIAkweDg2MzQsIDB4YTY4MiwgMHgwMDE4LCAweDAyMjgsIDB4MDEyMCwgMHgyMDMxLCAweDAwMTgsIDB4MDgwNCwKLQkweDNkZjEsIDB4YTY4NiwgMHgwMDEwLCAweDExMDgsIDB4ODYzMCwgMHg4NTJiLCAweDg1MmIsIDB4MDgwYywKLQkweDNhYzksIDB4MDkwNCwgMHgzOWZlLCAweDA4MGMsIDB4MzhmNywgMHgwODBjLCAweDM5OWMsIDB4N2U1OCwKKwkweDNlMTksIDB4YTY4NiwgMHgwMDEwLCAweDExMDgsIDB4ODYzMCwgMHg4NTJiLCAweDg1MmIsIDB4MDgwYywKKwkweDNhZWUsIDB4MDkwNCwgMHgzYTIzLCAweDA4MGMsIDB4MzkxYSwgMHgwODBjLCAweDM5YmYsIDB4N2U1OCwKIAkweGQ2ZDQsIDB4MTExOCwgMHg3ODFiLCAweDAwNzEsIDB4MDAwNSwgMHg3ODFiLCAweDAwODMsIDB4MDAwNSwKLQkweDA4MGMsIDB4MzhmNCwgMHgwYzkwLCAweGE4ODYsIDB4MDAwMiwgMHgxMTA4LCAweDg2MzQsIDB4NzE1NCwKLQkweGExODgsIDB4MDAwMCwgMHgyMTBjLCAweGQxYWMsIDB4MDkwNCwgMHgzOWZlLCAweGQxZWMsIDB4MTEyMCwKKwkweDA4MGMsIDB4MzkxNywgMHgwYzkwLCAweGE4ODYsIDB4MDAwMiwgMHgxMTA4LCAweDg2MzQsIDB4NzE1NCwKKwkweGExODgsIDB4MDAwMCwgMHgyMTBjLCAweGQxYWMsIDB4MDkwNCwgMHgzYTIzLCAweGQxZWMsIDB4MTEyMCwKIAkweDIwMzksIDB4MDAwMCwgMHgyMDQxLCAweDAwMDAsIDB4ZDFlNCwgMHgxMTIwLCAweDIwMzEsIDB4MDAwMCwKIAkweDIwNDEsIDB4MDAwMCwgMHhhNzgyLCAweDAwMDIsIDB4MTJjOCwgMHg2MjFjLCAweGEyODQsIDB4MDBmZiwKIAkweGE3MDYsIDB4MDExMCwgMHgyMDM5LCAweDAwMDAsIDB4YTYwNSwgMHgwMTkwLCAweDYxMDgsIDB4ODExZiwKQEAgLTE1MTcsMTEgKzE1MjIsMTEgQEAKIAkweGEwODYsIDB4MDIwMSwgMHgwMTYwLCAweGE4ODYsIDB4MDAwMCwgMHgwMTY4LCAweDIwMzksIDB4MDAwMCwKIAkweDIwNDEsIDB4MDAwMCwgMHgyMDMxLCAweDAwMDAsIDB4YTAwNiwgMHgyMDEwLCAweDAwNzAsIDB4YTI4NCwKIAkweGZmMDAsIDB4MTEwOCwgMHgyMDQwLCAweGExODQsIDB4MDBmZiwgMHhhNTAyLCAweDAxMDgsIDB4MjEyOCwKLQkweDg1MmIsIDB4ODUyYiwgMHgwODBjLCAweDNhYzksIDB4MGQ1OCwgMHgwODBjLCAweDM4ZjcsIDB4MDgwYywKLQkweDM5OWMsIDB4Nzg5YiwgMHgwMDgwLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDYsIDB4NzhhYiwKKwkweDg1MmIsIDB4ODUyYiwgMHgwODBjLCAweDNhZWUsIDB4MGQ1OCwgMHgwODBjLCAweDM5MWEsIDB4MDgwYywKKwkweDM5YmYsIDB4Nzg5YiwgMHgwMDgwLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDYsIDB4NzhhYiwKIAkweDAwMDQsIDB4N2RhYSwgMHg3OGFiLCAweDAwMDAsIDB4N2VhYSwgMHg3ZmFhLCAweDI4MDAsIDB4NzhhYSwKIAkweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDgsIDB4NjgyMCwgMHhjMGU1LCAweDY4MjIsIDB4MDgwYywKLQkweDNhNTUsIDB4Nzg1OCwgMHhjMDk1LCAweDc4NWEsIDB4NzgxYiwgMHgwMDgyLCAweDAwMDUsIDB4MDAyMCwKKwkweDNhN2EsIDB4Nzg1OCwgMHhjMDk1LCAweDc4NWEsIDB4NzgxYiwgMHgwMDgyLCAweDAwMDUsIDB4MDAyMCwKIAkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKIAkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKIAkweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwKQEAgLTE1NTksMjIzICsxNTY0LDI0OCBAQAogCTB4MjBkZCwgMHgwMDExLCAweDIwZDUsIDB4ODgyMiwgMHgwMDE2LCAweDAwMDAsIDB4MDEyNiwgMHg3MGQwLAogCTB4YTA4NCwgMHg0YzAwLCAweDgwMDQsIDB4MjA5MCwgMHg3MjA0LCAweDcwMDgsIDB4YzA5YywgMHhhMjA1LAogCTB4MTFhMCwgMHg3MjBjLCAweDgyZmYsIDB4MDEyOCwgMHg4YWZmLCAweDExNzgsIDB4NzIwMCwgMHhkMjg0LAotCTB4MTE2MCwgMHg3ODA0LCAweGQwY2MsIDB4MDExMCwgMHgwODBjLCAweDQzMjgsIDB4NzAwNywgMHgwMDA4LAorCTB4MTE2MCwgMHg3ODA0LCAweGQwY2MsIDB4MDExMCwgMHgwODBjLCAweDQzNWIsIDB4NzAwNywgMHgwMDA4LAogCTB4NzAwMywgMHgwMDA4LCAweDAxMmUsIDB4MjAwMCwgMHgwMDA1LCAweDcwMDAsIDB4YTA4NCwgMHgwMDAzLAogCTB4NzAwMiwgMHhjNjljLCAweGQwODQsIDB4MDU4OCwgMHg3MTA4LCAweGUwMDAsIDB4NzAwOCwgMHhhMTA2LAotCTB4MWRkOCwgMHhhMTg0LCAweDAwMDMsIDB4MDkwNCwgMHgzZmEyLCAweGExODQsIDB4MDFlMCwgMHgxOTA0LAotCTB4M2ZhMiwgMHhkMWY0LCAweDFkODgsIDB4YTE4NCwgMHgzMDAwLCAweGEwODYsIDB4MTAwMCwgMHgwZDYwLAorCTB4MWRkOCwgMHhhMTg0LCAweDAwMDMsIDB4MDkwNCwgMHgzZmNhLCAweGExODQsIDB4MDFlMCwgMHgxOTA0LAorCTB4M2ZjYSwgMHhkMWY0LCAweDFkODgsIDB4YTE4NCwgMHgzMDAwLCAweGEwODYsIDB4MTAwMCwgMHgwZDYwLAogCTB4MjAxMSwgMHgwMTgwLCAweDcxMGMsIDB4ODIxMSwgMHgwMTMwLCAweDcwMDgsIDB4ZDBmNCwgMHgxZDIwLAogCTB4NzAwYywgMHhhMTA2LCAweDBkYzAsIDB4NzAwNywgMHgwMDEyLCAweDcxMDgsIDB4ZTAwMCwgMHg3MDA4LAogCTB4YTEwNiwgMHgxZGQ4LCAweGExODQsIDB4MDAwMywgMHgwNTY4LCAweGQxOTQsIDB4MGRiMCwgMHhkMWY0LAogCTB4MDU0OCwgMHg3MDA3LCAweDAwMDIsIDB4MDg4MCwgMHgwNDI4LCAweDcxMDgsIDB4ZDFmYywgMHgwMTMwLAotCTB4MDgwYywgMHg0MGFlLCAweDhhZmYsIDB4MDkwNCwgMHgzZjJjLCAweDBjYjgsIDB4NzAwYywgMHhhMDhjLAorCTB4MDgwYywgMHg0MGQ2LCAweDhhZmYsIDB4MDkwNCwgMHgzZjU0LCAweDBjYjgsIDB4NzAwYywgMHhhMDhjLAogCTB4MDdmZiwgMHgwMWU4LCAweDcwMDQsIDB4ZDA4NCwgMHgwMTc4LCAweDcwMTQsIDB4YTAwNSwgMHgxMTQ4LAogCTB4NzAxMCwgMHg3MzEwLCAweGEzMDYsIDB4MWRlMCwgMHgyMzAwLCAweGEwMDUsIDB4MDEyOCwgMHhhMTAyLAotCTB4MWUyMCwgMHg3MDA3LCAweDAwMTAsIDB4MDAzMCwgMHg4YWZmLCAweDAxNDgsIDB4MDgwYywgMHg0MjZiLAotCTB4MWRlOCwgMHgwOWQ4LCAweDA4MGMsIDB4NDAzNCwgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwgMHg3MjA0LAorCTB4MWUyMCwgMHg3MDA3LCAweDAwMTAsIDB4MDAzMCwgMHg4YWZmLCAweDAxNDgsIDB4MDgwYywgMHg0MjlhLAorCTB4MWRlOCwgMHgwOWQ4LCAweDA4MGMsIDB4NDA1YywgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwgMHg3MjA0LAogCTB4NzEwOCwgMHhjMTljLCAweDgxMDMsIDB4MTIxOCwgMHg3MDA3LCAweDAwMDIsIDB4MGNjMCwgMHhhMjA1LAotCTB4MWQ4OCwgMHg3MDA3LCAweDAwMDgsIDB4NzAwMywgMHgwMDA4LCAweDAwMDYsIDB4MjAwMSwgMHg0NjAxLAotCTB4MjAwNCwgMHhkMGNjLCAweDAxMTAsIDB4MDgwYywgMHg0MzI4LCAweDAwMGUsIDB4MDEyZSwgMHgyMDAwLAorCTB4MWQ4OCwgMHg3MDA3LCAweDAwMDgsIDB4NzAwMywgMHgwMDA4LCAweDAwMDYsIDB4MjAwMSwgMHg0NzAxLAorCTB4MjAwNCwgMHhkMGNjLCAweDAxMTAsIDB4MDgwYywgMHg0MzViLCAweDAwMGUsIDB4MDEyZSwgMHgyMDAwLAogCTB4MDAwNSwgMHg2NDI4LCAweDg0ZmYsIDB4MDUwOCwgMHgyYzcwLCAweDcwMDQsIDB4YTBiYywgMHgwMDBmLAotCTB4YTdiOCwgMHgzZmY1LCAweDI3M2MsIDB4ODdmYiwgMHgxMTQ4LCAweDAyMTAsIDB4MDgwYywgMHgyNTRjLAotCTB4NjA5YywgMHhhMDc1LCAweDAxOTAsIDB4MGM4OCwgMHgyMDM5LCAweDNmZWEsIDB4MjcwNCwgMHhhZTY4LAorCTB4YTdiOCwgMHg0MDFkLCAweDI3M2MsIDB4ODdmYiwgMHgxMTQ4LCAweDAyMTAsIDB4MDgwYywgMHgyNTc1LAorCTB4NjA5YywgMHhhMDc1LCAweDAxOTAsIDB4MGM4OCwgMHgyMDM5LCAweDQwMTIsIDB4MjcwNCwgMHhhZTY4LAogCTB4NjgwOCwgMHhhNjMwLCAweDY4MGMsIDB4YTUyOSwgMHg4NDIxLCAweDAxMzgsIDB4ODczOCwgMHgyNzA0LAogCTB4YTAwNSwgMHgxZGE4LCAweDcwOWMsIDB4YTA3NSwgMHgxZDAwLCAweDAwMDUsIDB4MDAwMCwgMHgwMDA1LAogCTB4MDAwOSwgMHgwMDBkLCAweDAwMTEsIDB4MDAxNSwgMHgwMDE5LCAweDAwMWQsIDB4MDAwMCwgMHgwMDAzLAotCTB4MDAwOSwgMHgwMDBmLCAweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDAwMDAsIDB4M2ZlYSwgMHgzZmU3LAotCTB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHgzZmVhLCAweDAwMDAsIDB4M2ZmMiwgMHgzZmVmLAotCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgzZmYyLCAweDAwMDAsIDB4M2ZlZCwgMHgzZmVkLAotCTB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHgzZmVkLCAweDAwMDAsIDB4M2ZmMywgMHgzZmYzLAotCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgzZmYzLCAweDIwNzksIDB4NDYwMCwgMHgyMDcxLAorCTB4MDAwOSwgMHgwMDBmLCAweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDAwMDAsIDB4NDAxMiwgMHg0MDBmLAorCTB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHg0MDEyLCAweDAwMDAsIDB4NDAxYSwgMHg0MDE3LAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg0MDFhLCAweDAwMDAsIDB4NDAxNSwgMHg0MDE1LAorCTB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHg0MDE1LCAweDAwMDAsIDB4NDAxYiwgMHg0MDFiLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg0MDFiLCAweDIwNzksIDB4NDcwMCwgMHgyMDcxLAogCTB4MDAxMCwgMHg3MDA3LCAweDAwMGEsIDB4NzAwNywgMHgwMDAyLCAweDcwMDMsIDB4MDAwMSwgMHgyMDA5LAogCTB4MDAwMiwgMHgyMDcxLCAweDAwNTAsIDB4NzAwNywgMHgwMDBhLCAweDcwMDcsIDB4MDAwMiwgMHg3MDAzLAogCTB4MDAwMCwgMHgyMDAxLCAweDAxZmYsIDB4MjAwNCwgMHhkMGZjLCAweDExMjgsIDB4ODEwOSwgMHgwMTE4LAotCTB4MjA3MSwgMHgwMDIwLCAweDBjODAsIDB4MDAwNSwgMHg3MDA0LCAweDgwMDQsIDB4MWEwNCwgMHg0MDhhLAorCTB4MjA3MSwgMHgwMDIwLCAweDBjODAsIDB4MDAwNSwgMHg3MDA0LCAweDgwMDQsIDB4MWEwNCwgMHg0MGIyLAogCTB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MWRlMCwgMHhhMTg0LCAweDAxZTAsIDB4MDEyMCwgMHgwODBjLAotCTB4NDBlNiwgMHgwODA0LCAweDQwYWEsIDB4NzAwNywgMHgwMDEyLCAweDIwMTksIDB4MDAwMCwgMHg3MTA4LAotCTB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLCAweDAxMjAsIDB4MDgwYywgMHg0MGU2LAotCTB4MDgwNCwgMHg0MGFhLCAweGExOWMsIDB4MzAwYywgMHhhMzg2LCAweDIwMDQsIDB4MDE5MCwgMHhhMzg2LAorCTB4NDEwZSwgMHgwODA0LCAweDQwZDIsIDB4NzAwNywgMHgwMDEyLCAweDIwMTksIDB4MDAwMCwgMHg3MTA4LAorCTB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLCAweDAxMjAsIDB4MDgwYywgMHg0MTBlLAorCTB4MDgwNCwgMHg0MGQyLCAweGExOWMsIDB4MzAwYywgMHhhMzg2LCAweDIwMDQsIDB4MDE5MCwgMHhhMzg2LAogCTB4MDAwOCwgMHgwMWMwLCAweDcwMDQsIDB4ZDA4NCwgMHgxMTQ4LCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LAotCTB4MWRlMCwgMHhhMTg0LCAweDAwMDMsIDB4MDExMCwgMHgwODA0LCAweDQwZTYsIDB4YTM4NiwgMHgyMDBjLAorCTB4MWRlMCwgMHhhMTg0LCAweDAwMDMsIDB4MDExMCwgMHgwODA0LCAweDQxMGUsIDB4YTM4NiwgMHgyMDBjLAogCTB4MTlmMCwgMHg3MjAwLCAweDgyMDQsIDB4MDIzMCwgMHg3MzBjLCAweGEzODQsIDB4MDdmZiwgMHgwMTEwLAotCTB4MDgwYywgMHgyNTRjLCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLAotCTB4MDExOCwgMHgwODBjLCAweDQwZTYsIDB4MDQ3MCwgMHg3MDA3LCAweDAwMTIsIDB4NzAwMCwgMHhkMDg0LAorCTB4MDgwYywgMHgyNTc1LCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLAorCTB4MDExOCwgMHgwODBjLCAweDQxMGUsIDB4MDQ3MCwgMHg3MDA3LCAweDAwMTIsIDB4NzAwMCwgMHhkMDg0LAogCTB4MTE0OCwgMHg3MzEwLCAweDcwMTQsIDB4YTMwNSwgMHgwMTI4LCAweDcxMGMsIDB4YTE4NCwgMHgwN2ZmLAotCTB4MTkwNCwgMHg0MDM0LCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLAotCTB4MDExOCwgMHgwODBjLCAweDQwZTYsIDB4MDBiMCwgMHg3MDA3LCAweDAwMTIsIDB4NzAwNywgMHgwMDA4LAorCTB4MTkwNCwgMHg0MDVjLCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4YTE4NCwgMHgwMWUwLAorCTB4MDExOCwgMHgwODBjLCAweDQxMGUsIDB4MDBiMCwgMHg3MDA3LCAweDAwMTIsIDB4NzAwNywgMHgwMDA4LAogCTB4NzAwNCwgMHhkMDljLCAweDFkZTgsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MWRlMCwgMHhhMTg0LAotCTB4MDFlMCwgMHgwMTE4LCAweDA4MGMsIDB4NDBlNiwgMHgwMDI4LCAweDcwMDcsIDB4MDAxMiwgMHg3MTA4LAorCTB4MDFlMCwgMHgwMTE4LCAweDA4MGMsIDB4NDEwZSwgMHgwMDI4LCAweDcwMDcsIDB4MDAxMiwgMHg3MTA4LAogCTB4ODEwMywgMHgwZTg4LCAweDcwMDMsIDB4MDAwOCwgMHgwMDA1LCAweDcxMDgsIDB4YTE4NCwgMHgwMWUwLAogCTB4MTVhOCwgMHg3MTA4LCAweGExODQsIDB4MDFlMCwgMHgxNTg4LCAweGExODQsIDB4MDAwNywgMHgwMDAyLAotCTB4NDBjMiwgMHg0MGQwLCAweDQwYzAsIDB4NDBkMCwgMHg0MGMwLCAweDQxMjAsIDB4NDBjMCwgMHg0MTFlLAotCTB4MDgwYywgMHgyNTRjLCAweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGMwOGQsIDB4NzAwNiwgMHg4YWZmLAotCTB4MTExOCwgMHgyMDQ5LCAweDAwMDAsIDB4MDAwNSwgMHgwODBjLCAweDQyNmIsIDB4MWRlOCwgMHgwMDA1LAorCTB4NDBlYSwgMHg0MGY4LCAweDQwZTgsIDB4NDBmOCwgMHg0MGU4LCAweDQxNDgsIDB4NDBlOCwgMHg0MTQ2LAorCTB4MDgwYywgMHgyNTc1LCAweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGMwOGQsIDB4NzAwNiwgMHg4YWZmLAorCTB4MTExOCwgMHgyMDQ5LCAweDAwMDAsIDB4MDAwNSwgMHgwODBjLCAweDQyOWEsIDB4MWRlOCwgMHgwMDA1LAogCTB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4ZCwgMHg3MDA2LCAweDcwMDQsIDB4ZDA4NCwgMHgxMTQwLAogCTB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MWRlMCwgMHhhMTg0LCAweDAwMDMsIDB4MDEwOCwgMHgwMDMwLAotCTB4OGFmZiwgMHgwMTE4LCAweDA4MGMsIDB4NDI2YiwgMHgxZGU4LCAweDAwMDUsIDB4NzAwNywgMHgwMDEyLAotCTB4NzEwOCwgMHgxZDA0LCAweDQwZTksIDB4MjA5MSwgMHg2MDAwLCAweDFkMDQsIDB4NDBlZCwgMHgyMDkxLAorCTB4OGFmZiwgMHgwMTE4LCAweDA4MGMsIDB4NDI5YSwgMHgxZGU4LCAweDAwMDUsIDB4NzAwNywgMHgwMDEyLAorCTB4NzEwOCwgMHgxZDA0LCAweDQxMTEsIDB4MjA5MSwgMHg2MDAwLCAweDFkMDQsIDB4NDExNSwgMHgyMDkxLAogCTB4NjAwMCwgMHg3MDA3LCAweDAwMTIsIDB4NzAwNywgMHgwMDA4LCAweDcwMDQsIDB4ZDA5YywgMHgxZGU4LAogCTB4NzAwNywgMHgwMDEyLCAweDcxMDgsIDB4ZDFmYywgMHgxZGQ4LCAweDcwMDMsIDB4MDAwMCwgMHg3MDAwLAogCTB4YTAwNSwgMHgxMTMwLCAweDcwMDQsIDB4YTAwNSwgMHgxMTE4LCAweDcwMGMsIDB4YTAwNSwgMHgwMTA4LAogCTB4MGM0MCwgMHgyMDQ5LCAweDAwMDAsIDB4YjI4NCwgMHgwMjAwLCAweDAxMTgsIDB4MjAwMSwgMHgwMDAwLAotCTB4MDAxMCwgMHgyMDAxLCAweDAwMDEsIDB4MDgwYywgMHgzYjgxLCAweDY4MWIsIDB4MDAwMiwgMHgyMDUxLAotCTB4MDAwMCwgMHgwMDA1LCAweDA4MGMsIDB4MjU0YywgMHgwODBjLCAweDI1NGMsIDB4MDgwYywgMHg0MTVmLAorCTB4MDAxMCwgMHgyMDAxLCAweDAwMDEsIDB4MDgwYywgMHgzYmE3LCAweDY4MWIsIDB4MDAwMiwgMHgyMDUxLAorCTB4MDAwMCwgMHgwMDA1LCAweDA4MGMsIDB4MjU3NSwgMHgwODBjLCAweDI1NzUsIDB4MDgwYywgMHg0MTg3LAogCTB4NzIxMCwgMHg3MTE0LCAweDcwMGMsIDB4YTA5YywgMHgwN2ZmLCAweDI4MDAsIDB4YTMwMCwgMHhhMjExLAogCTB4YTE4OSwgMHgwMDAwLCAweDA0YTEsIDB4MjcwNCwgMHgyYzU4LCAweGFjNjAsIDB4NjMwOCwgMHgyMjAwLAogCTB4YTMyMiwgMHg2MzBjLCAweDIxMDAsIDB4YTMxYiwgMHgyNDAwLCAweGEzMDUsIDB4MDE0MCwgMHgxMjM4LAogCTB4ODQxMiwgMHg4MjEwLCAweDgzMGEsIDB4YTE4OSwgMHgwMDAwLCAweDJiNjAsIDB4MGM1OCwgMHgyYjYwLAotCTB4OGEwNywgMHgwMDA2LCAweDYwMDQsIDB4ZDA5YywgMHgwMTE4LCAweGE3YmEsIDB4M2ZlZiwgMHgwMDEwLAotCTB4YTdiYSwgMHgzZmU3LCAweDAwMGUsIDB4YTczZCwgMHgyYzAwLCAweDY4ODYsIDB4NmY4YSwgMHg2YzkyLAorCTB4OGEwNywgMHgwMDA2LCAweDYwMDQsIDB4ZDA5YywgMHgwMTE4LCAweGE3YmEsIDB4NDAxNywgMHgwMDEwLAorCTB4YTdiYSwgMHg0MDBmLCAweDAwMGUsIDB4YTczZCwgMHgyYzAwLCAweDY4ODYsIDB4NmY4YSwgMHg2YzkyLAogCTB4NmI4ZSwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwgMHgxZGUwLCAweGExODQsIDB4MDFlMCwgMHgwMTEwLAotCTB4MDgwYywgMHg0MGU2LCAweDcwMDcsIDB4MDAxMiwgMHgwODBjLCAweDQwMzQsIDB4MDAwNSwgMHg4YTUwLAorCTB4MDgwYywgMHg0MTBlLCAweDcwMDcsIDB4MDAxMiwgMHgwODBjLCAweDQwNWMsIDB4MDAwNSwgMHg4YTUwLAogCTB4ODczOSwgMHgyNzA0LCAweGEwMDQsIDB4MTE2OCwgMHg2MDAwLCAweGEwNjQsIDB4MTEwOCwgMHgyZDYwLAotCTB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwgMHg0MDA1LCAweDIwM2MsIDB4ODdmYiwgMHgwOTBjLAotCTB4MjU0YywgMHgwMDA1LCAweDAxMjYsIDB4MDBkNiwgMHg3MGQwLCAweGEwODQsIDB4NGMwMCwgMHg4MDA0LAorCTB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwgMHg0MDJkLCAweDIwM2MsIDB4ODdmYiwgMHgwOTBjLAorCTB4MjU3NSwgMHgwMDA1LCAweDAxMjYsIDB4MDBkNiwgMHg3MGQwLCAweGEwODQsIDB4NGMwMCwgMHg4MDA0LAogCTB4MjA5MCwgMHgwMGRlLCAweDY4ODQsIDB4MjA2MCwgMHg2ODg4LCAweDZiOGMsIDB4NmM5MCwgMHg4MDU3LAogCTB4YWFkNCwgMHgwMGZmLCAweGEwODQsIDB4MDBmZiwgMHgwMDA2LCAweDY4MDQsIDB4YTA4NCwgMHgwMDA4LAotCTB4MDAwZSwgMHgwMTE4LCAweGEwYjgsIDB4M2ZlZiwgMHgwMDEwLCAweGEwYjgsIDB4M2ZlNywgMHhiMjg0LAorCTB4MDAwZSwgMHgwMTE4LCAweGEwYjgsIDB4NDAxNywgMHgwMDEwLCAweGEwYjgsIDB4NDAwZiwgMHhiMjg0LAogCTB4MDIwMCwgMHgwMTEwLCAweDdlMjAsIDB4MDAwOCwgMHg3ZTI0LCAweGE2YjUsIDB4MDAwYywgMHg2ODFjLAotCTB4ZDBiNCwgMHgwMTA4LCAweGM2ODUsIDB4MjQwMCwgMHhhMzA1LCAweDA1MTgsIDB4MmM1OCwgMHgyNzA0LAotCTB4NjEwNCwgMHhhYzYwLCAweDYwMDAsIDB4YTQwMCwgMHg3MDFhLCAweDYwMDQsIDB4YTMwMSwgMHg3MDFlLAotCTB4ZDE5YywgMHgwMTQwLCAweDYwMTAsIDB4YTA4MSwgMHgwMDAwLCAweDcwMjIsIDB4NjAxNCwgMHhhMDgxLAotCTB4MDAwMCwgMHg3MDI2LCAweDYyMDgsIDB4MjQwMCwgMHhhMjAyLCAweDcwMTIsIDB4NjIwYywgMHgyMzAwLAotCTB4YTIwMywgMHg3MDE2LCAweDc2MDIsIDB4NzAwNywgMHgwMDAxLCAweDJiNjAsIDB4MDgwYywgMHg0MjkyLAotCTB4MDAxMCwgMHgwODBjLCAweDQyNmIsIDB4MWRlOCwgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwgMHgwMTI2LAotCTB4MDBkNiwgMHg3MGQwLCAweGEwODQsIDB4NGMwMCwgMHg4MDA0LCAweDIwOTAsIDB4MDBkZSwgMHg3MDA3LAotCTB4MDAwNCwgMHg3MDA0LCAweGQwOTQsIDB4MWRlOCwgMHg3MDAzLCAweDAwMDgsIDB4MDEyZSwgMHgyMDAwLAotCTB4MDAwNSwgMHgwMTI2LCAweDAwZDYsIDB4NzBkMCwgMHhhMDg0LCAweDRjMDAsIDB4ODAwNCwgMHgyMDkwLAotCTB4MDBkZSwgMHg3ZTIwLCAweGIyODQsIDB4MDIwMCwgMHgxMTA4LCAweDdlMjQsIDB4YTZiNSwgMHgwMDBjLAotCTB4NjgxYywgMHhkMGFjLCAweDExMTgsIDB4YzY4NSwgMHg3MDAzLCAweDAwMDAsIDB4NjgyOCwgMHgyMDUwLAotCTB4MmQ2MCwgMHg2MDA0LCAweGEwYmMsIDB4MDAwZiwgMHhhN2I4LCAweDNmZjUsIDB4MjczYywgMHg4N2ZiLAotCTB4MTEzOCwgMHgwMjEwLCAweDA4MGMsIDB4MjU0YywgMHg2ODljLCAweGEwNjUsIDB4MDEyMCwgMHgwYzg4LAotCTB4MDgwYywgMHg0MjZiLCAweDFkZTgsIDB4MDEyZSwgMHgyMDAwLCAweDAwMDUsIDB4MDEyNiwgMHgwMDA2LAotCTB4MDAxNiwgMHgwMGQ2LCAweDcwZDAsIDB4YTA4NCwgMHg0YzAwLCAweDgwMDQsIDB4MjA5MCwgMHg3ZTIwLAotCTB4YjI4NCwgMHgwMjAwLCAweDExMDgsIDB4N2UyNCwgMHgwMGRlLCAweDAwM2UsIDB4MDA0ZSwgMHhhNmI1LAotCTB4MDAwYywgMHg2ODFjLCAweGQwYjQsIDB4MDEyOCwgMHhjNjg1LCAweDcwMDMsIDB4MDAwMCwgMHg3MDA3LAotCTB4MDAwNCwgMHgyMDQ5LCAweDQyMDYsIDB4NjgyOCwgMHhhMDU1LCAweDAwZDYsIDB4MDkwNCwgMHg0MjY3LAotCTB4MmQ3MCwgMHgyZTYwLCAweDcwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4M2ZmNSwgMHgyNzNjLAotCTB4ODdmYiwgMHgxMTQwLCAweDAyMTAsIDB4MDgwYywgMHgyNTRjLCAweDcwOWMsIDB4YTA3NSwgMHgyMDYwLAotCTB4MDU3MCwgMHgwYzgwLCAweDI3MDQsIDB4YWU2OCwgMHg2ODA4LCAweGE0MjIsIDB4NjgwYywgMHhhMzFiLAotCTB4MDI2OCwgMHg4YTUxLCAweDExMTAsIDB4MDgwYywgMHgyNTRjLCAweDg3MzgsIDB4MjcwNCwgMHhhMDA1LAotCTB4MWQ5MCwgMHg3MDljLCAweGEwNzUsIDB4MjA2MCwgMHgwMWQwLCAweDA4ZTAsIDB4ODQyMiwgMHg4NDIwLAotCTB4ODMxYSwgMHhhMzk5LCAweDAwMDAsIDB4NjkwOCwgMHgyNDAwLCAweGExMjIsIDB4NjkwYywgMHgyMzAwLAotCTB4YTExYiwgMHgxMjEwLCAweDA4MGMsIDB4MjU0YywgMHhiMjg0LCAweDAyMDAsIDB4MDExOCwgMHgyMDcxLAotCTB4MDA1MCwgMHgwMDEwLCAweDIwNzEsIDB4MDAyMCwgMHgwMGRlLCAweDA4MDQsIDB4NDE5YiwgMHgwMGRlLAotCTB4MDEyZSwgMHgyMDAwLCAweDAwMDUsIDB4NzAwOCwgMHgwMDA2LCAweGEwODQsIDB4MDFlMCwgMHgwMDBlLAotCTB4MDExMCwgMHhhMDA2LCAweDAwMDUsIDB4YTA4NCwgMHgwMDAzLCAweGEwODYsIDB4MDAwMywgMHgxMTA4LAotCTB4MDAwNSwgMHgyNzA0LCAweGFjNzgsIDB4NzgwMCwgMHg3MDFhLCAweDc4MDQsIDB4NzAxZSwgMHg3ODA4LAotCTB4NzAxMiwgMHg3ODBjLCAweDcwMTYsIDB4NjAwNCwgMHhkMDljLCAweDAxMjAsIDB4NzgxMCwgMHg3MDIyLAotCTB4NzgxNCwgMHg3MDI2LCAweDc2MDIsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4NSwgMHg3MDA2LAotCTB4MjA3OSwgMHg0NjAwLCAweDhhNTEsIDB4MDFlOCwgMHg4NzM4LCAweDI3MDQsIDB4YTAwNSwgMHgxMTY4LAotCTB4NjA5YywgMHhhMDA1LCAweDAxYjgsIDB4MjA2MCwgMHg2MDA0LCAweGEwODQsIDB4MDAwZiwgMHhhMDgwLAotCTB4M2ZmNSwgMHgyMDNjLCAweDg3ZmIsIDB4MDkwYywgMHgyNTRjLCAweDcwMDgsIDB4MDAwNiwgMHhhMDg0LAotCTB4MDFlMCwgMHgwMDBlLCAweDAxMTAsIDB4YTAwNiwgMHgwMDI4LCAweGEwODQsIDB4MDAwMywgMHhhMDg2LAotCTB4MDAwMywgMHgwMDA1LCAweDIwNTEsIDB4MDAwMCwgMHgwMDA1LCAweDAxMjYsIDB4MDAwNiwgMHgwMGQ2LAotCTB4NzBkMCwgMHhhMDg0LCAweDRjMDAsIDB4ODAwNCwgMHgyMDkwLCAweDAwZGUsIDB4MDA4ZSwgMHg3MTA4LAotCTB4YTE4NCwgMHgwMDAzLCAweDExMjgsIDB4NjgyOCwgMHhhMDA1LCAweDAxNzgsIDB4MDgwNCwgMHgzZjQ1LAotCTB4NzEwOCwgMHhkMWZjLCAweDAxMTgsIDB4MDgwYywgMHg0MGFlLCAweDBjODgsIDB4NzAwNywgMHgwMDEwLAotCTB4NzEwOCwgMHhkMWZjLCAweDBkZTgsIDB4MDgwYywgMHg0MGFlLCAweDcwMDgsIDB4YTA4NiwgMHgwMDA4LAotCTB4MWQzMCwgMHg3MDAwLCAweGEwMDUsIDB4MWQxOCwgMHg3MDAzLCAweDAwMDAsIDB4MjA0OSwgMHgwMDAwLAotCTB4MDAwNiwgMHgyMDAxLCAweDQ2MDEsIDB4MjAwNCwgMHhkMGNjLCAweDAxMTAsIDB4MDgwYywgMHg0MzI4LAotCTB4MDAwZSwgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwgMHgwMTI2LCAweDAxNDYsIDB4MDEzNiwgMHgwMTU2LAotCTB4MDBjNiwgMHgwMGQ2LCAweDcwZDAsIDB4YTA4NCwgMHg0YzAwLCAweDgwMDQsIDB4MjA5MCwgMHgwMGRlLAotCTB4MjA0OSwgMHg0MmVjLCAweGFkODAsIDB4MDAxMSwgMHgyMGEwLCAweGIyODQsIDB4MDIwMCwgMHgwMTE4LAotCTB4MjA5OSwgMHgwMDMyLCAweDAwMTAsIDB4MjA5OSwgMHgwMDMxLCAweDcwMGMsIDB4YTA4NCwgMHgwN2ZmLAotCTB4NjgyYSwgMHg3MDA3LCAweDAwMDgsIDB4NzAwNywgMHgwMDAyLCAweDcwMDMsIDB4MDAwMSwgMHgwMTE4LAotCTB4ODAwMCwgMHg4MGFjLCAweDUzYTUsIDB4NzAwYywgMHhhMDg0LCAweDA3ZmYsIDB4MDEzMCwgMHg3MDA3LAotCTB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwgMHgxZGUwLCAweDAwY2UsIDB4MjA0OSwgMHgwMDAwLAotCTB4NzAwMywgMHgwMDAwLCAweDAxNWUsIDB4MDEzZSwgMHgwMTRlLCAweDAxMmUsIDB4MjAwMCwgMHgwMDA1LAotCTB4NjgxNCwgMHhkMGZjLCAweDA5MDQsIDB4NDM2YiwgMHg3MDAwLCAweGQwODQsIDB4MDVlMCwgMHg3ZTI0LAotCTB4YTZiNSwgMHgwMDA0LCAweDcwMDcsIDB4MDAwNCwgMHg3MDA0LCAweGEwODQsIDB4MDAwNCwgMHgxZGUwLAotCTB4NzExOCwgMHgwMDE2LCAweDcxMWMsIDB4MDAxNiwgMHg3MTIwLCAweDAwMTYsIDB4NzEyNCwgMHgwMDE2LAotCTB4NzAxYiwgMHgwMDAwLCAweDcwMWYsIDB4M2ZmZiwgMHg3MDIzLCAweDAwMDAsIDB4NzAyNywgMHgwMDAwLAotCTB4NzAxMywgMHgwMDA0LCAweDcwMTcsIDB4MDAwMCwgMHg3NjAyLCAweDcwMDcsIDB4MDAwMSwgMHgyMDAxLAotCTB4ZmZmZiwgMHgyMDA5LCAweDAwMzEsIDB4MjAwYSwgMHgyMDBhLCAweDcxMDgsIDB4NzAwOCwgMHhhMTA2LAotCTB4MWRlMCwgMHhkMWZjLCAweDBkZDAsIDB4MDAyZSwgMHg3MjI2LCAweDAwMmUsIDB4NzIyMiwgMHgwMDJlLAotCTB4NzIxZSwgMHgwMDJlLCAweDcyMWEsIDB4NzAwNywgMHgwMDAyLCAweDcwMDgsIDB4YTA4NiwgMHgwMDA4LAotCTB4MDExMCwgMHgwODA0LCAweDQwZTYsIDB4NzAwNywgMHgwMDA0LCAweDcwMDMsIDB4MDAwMCwgMHgwMDA1LAotCTB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4NjAwMCwgMHg3OGFjLCAweGEwMDUsIDB4MTE2OCwgMHg3OTc0LAotCTB4NzBkMCwgMHhhMTA2LCAweDExNDgsIDB4NzgxYywgMHhhMDA1LCAweDAxMzAsIDB4NzgxZiwgMHgwMDAwLAotCTB4MGUwNCwgMHg0Mzg0LCAweDIwOTEsIDB4NDA4MCwgMHgyMDY5LCAweDQ2ODAsIDB4ZDdmYywgMHgxMTEwLAotCTB4MjA2OSwgMHg0NjQwLCAweDY4MDAsIDB4YTA4NCwgMHgwMDBmLCAweDExOTgsIDB4NjhkMCwgMHhkMGI0LAotCTB4MDE4MCwgMHhkMGJjLCAweDExNzAsIDB4MDBmNiwgMHgyMDc5LCAweDAxMDAsIDB4ZDdmYywgMHgxMTEwLAotCTB4MjA3OSwgMHgwMjAwLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDExMTAsIDB4MDgwYywgMHgyMmFlLAotCTB4MDBmZSwgMHg3ODMwLCAweDgwMDEsIDB4NzgzMiwgMHgxOTA0LCAweDQ0MGIsIDB4NzgzNCwgMHg3ODMyLAotCTB4MjA2MSwgMHg2YmMwLCAweDIwNjksIDB4NDY4MCwgMHhjN2ZkLCAweDY4Y2MsIDB4YTAwNSwgMHgwMTI4LAotCTB4ODAwMSwgMHg2OGNlLCAweDExMTAsIDB4MDgwYywgMHg0NTc3LCAweDY4MDAsIDB4YTA4NCwgMHgwMDBmLAotCTB4MDE2OCwgMHhhMDg2LCAweDAwMDEsIDB4MDE1MCwgMHg2ODQwLCAweGEwMGQsIDB4MDEzOCwgMHgyMTA0LAotCTB4YTAwNSwgMHgwMTIwLCAweDgwMDEsIDB4MjAwYSwgMHgwOTA0LCAweDQ1MTQsIDB4NjgxNCwgMHhhMDA1LAotCTB4MDFhOCwgMHg4MDAxLCAweDY4MTYsIDB4MTE5MCwgMHg2OGEzLCAweDAwMDEsIDB4MDBmNiwgMHhkN2ZjLAotCTB4MTExOCwgMHgyMDc5LCAweDAyMDAsIDB4MDAxMCwgMHgyMDc5LCAweDAxMDAsIDB4MDgwYywgMHgzYzQ2LAotCTB4MDBmZSwgMHg2ODYwLCAweGEwMDUsIDB4MDExMCwgMHgwODBjLCAweDIyYWUsIDB4Njg3YywgMHhhMDA1LAotCTB4MDE0MCwgMHg4MDAxLCAweDY4N2UsIDB4MTEyOCwgMHg2ODYzLCAweDAwMDAsIDB4NjhkMCwgMHhjMGM1LAotCTB4NjhkMiwgMHg2OGQwLCAweGQwZmMsIDB4MDFiMCwgMHhjMGZjLCAweDY4ZDIsIDB4MjBhOSwgMHgwMjAwLAotCTB4NjAzNCwgMHhhMDA1LCAweDAxNTgsIDB4ODAwMSwgMHg2MDM2LCAweDY4ZDAsIDB4YzBmZCwgMHg2OGQyLAotCTB4MTEyOCwgMHg2MDEwLCAweGEwMDUsIDB4MDExMCwgMHgwODBjLCAweDIyYWUsIDB4YWNlMCwgMHgwMDEwLAotCTB4MWYwNCwgMHg0M2YwLCAweGQ3ZmMsIDB4MDEzOCwgMHgyMDYxLCAweDRiYzAsIDB4MjA2OSwgMHg0NjQwLAotCTB4YzdmYywgMHgwODA0LCAweDQzYWQsIDB4MDQ1OSwgMHg3ODM4LCAweDgwMDEsIDB4NzgzYSwgMHgxMWEwLAotCTB4NzgzYywgMHg3ODNhLCAweDIwNjEsIDB4NGJjMCwgMHgyMDY5LCAweDQ2NDAsIDB4YzdmYywgMHg2ODBjLAotCTB4YTAwNSwgMHgwMTEwLCAweDA4MGMsIDB4NDQ4NywgMHhkN2ZjLCAweDExMzAsIDB4MjA2MSwgMHg2YmMwLAotCTB4MjA2OSwgMHg0NjgwLCAweGM3ZmQsIDB4MGM5OCwgMHg3ODEwLCAweGQwY2MsIDB4MDE2OCwgMHhkMGFjLAotCTB4MTEyMCwgMHhkMGE0LCAweDAxNDgsIDB4YzBhZCwgMHg3ODEyLCAweDIwOTEsIDB4ODAwMSwgMHgwZTA0LAotCTB4NDQzMywgMHgwODBjLCAweDIwN2EsIDB4MDAwNSwgMHgyMDkxLCAweDgwMDEsIDB4MDAwNSwgMHg3ODQwLAotCTB4ODAwMSwgMHg3ODQyLCAweDE5MDQsIDB4NDQ4NiwgMHg3ODQ0LCAweDc4NDIsIDB4MjA2OSwgMHg0NjQwLAotCTB4YzdmYywgMHgyMDc5LCAweDAyMDAsIDB4NjhkNCwgMHhhMDA1LCAweDAxMzgsIDB4N2RlMCwgMHhhNTA0LAotCTB4MTEyMCwgMHg2OGQ2LCAweDY4ZDAsIDB4YzBiYywgMHg2OGQyLCAweDIwNzksIDB4NDYwMCwgMHg2ODEwLAotCTB4YTAwNSwgMHgxMTEwLCAweDIwMDEsIDB4MDEwMSwgMHg4MDAxLCAweDY4MTIsIDB4ZDdmYywgMHgwMTE4LAotCTB4YTA4MCwgMHg4Y2QwLCAweDAwMTAsIDB4YTA4MCwgMHg4YmMwLCAweDIwNDAsIDB4MjAwNCwgMHhhMDY1LAotCTB4MDFlMCwgMHg2MDI0LCAweGEwMDUsIDB4MDFiMCwgMHg4MDAxLCAweDYwMjYsIDB4MTE5OCwgMHg2ODAwLAotCTB4YTAwNSwgMHgwMTMwLCAweDY4NDgsIDB4YWMwNiwgMHgxMTE4LCAweDA4MGMsIDB4NDUxNCwgMHgwMDY4LAotCTB4Njg2MCwgMHhhMDA1LCAweDAxMTgsIDB4NjAyNywgMHgwMDAxLCAweDAwMjAsIDB4MDgwYywgMHg0NGM4LAotCTB4MjgwNCwgMHgwYzI4LCAweDYwMDAsIDB4MmM0MCwgMHgwYzEwLCAweGQ3ZmMsIDB4MTEzOCwgMHgyMDY5LAotCTB4NDY4MCwgMHhjN2ZkLCAweDIwNzksIDB4MDEwMCwgMHgwODA0LCAweDQ0NDMsIDB4MDAwNSwgMHgyMDA5LAotCTB4MDAwMCwgMHgyMGE5LCAweDAyMDAsIDB4NjAwOCwgMHhkMDljLCAweDA1NTgsIDB4NjAyNCwgMHhhMDA1LAotCTB4MDExOCwgMHg4MDAxLCAweDYwMjYsIDB4MDQxOCwgMHg2MDA4LCAweGMwOWMsIDB4ZDA4NCwgMHgxMTEwLAotCTB4ZDBhYywgMHgwMWMwLCAweDYwMGEsIDB4NjAwNCwgMHhhMDA1LCAweDAxZDgsIDB4MDBkNiwgMHgwMGM2LAotCTB4MDAxNiwgMHgyMDY4LCAweDYwMTAsIDB4ODAwMSwgMHg2MDEyLCAweDA4MGMsIDB4MzdhNCwgMHgyZDAwLAotCTB4MmM2OCwgMHgyMDYwLCAweDA4MGMsIDB4MWJlMywgMHgwODBjLCAweDFkOTUsIDB4MDAxZSwgMHgwMGNlLAotCTB4MDBkZSwgMHgwMDM4LCAweGMwYmQsIDB4NjAwYSwgMHhhMThkLCAweDAwMDEsIDB4MDAxMCwgMHhhMThkLAotCTB4MDEwMCwgMHhhY2UwLCAweDAwMTAsIDB4MWYwNCwgMHg0NDhiLCAweGExODQsIDB4MDAwMSwgMHgwMTMwLAotCTB4YTE4YywgMHhmZmZlLCAweDY5MGUsIDB4MDgwYywgMHgyMmFlLCAweDAwMDgsIDB4NjkwZSwgMHgwMDA1LAotCTB4MmMwMCwgMHg2ODdhLCAweDY3MTQsIDB4NmY3MiwgMHg2MDE3LCAweDAwMDAsIDB4NjAyYiwgMHgwMDAwLAotCTB4NjAxYiwgMHgwMDA2LCAweDYwYjQsIDB4YTA4NCwgMHg1ZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LAotCTB4MDBmZiwgMHhhMDg1LCAweDAwNjAsIDB4NjAyMiwgMHg2MDAwLCAweDIwNDIsIDB4Njg1OCwgMHhhYzA2LAotCTB4MTExMCwgMHgyODAwLCAweDY4NWEsIDB4MDgwYywgMHgxYjdiLCAweDY4MTgsIDB4YTAwNSwgMHgwMTEwLAotCTB4ODAwMSwgMHg2ODFhLCAweDY4MDgsIDB4YzBhNCwgMHg2ODBhLCAweDY4MTAsIDB4NzkwOCwgMHg4MTA5LAotCTB4NzkwYSwgMHg4MDAxLCAweDEzMTAsIDB4MDgwYywgMHgyNTRjLCAweDY4MTIsIDB4MTExOCwgMHg3OTEwLAotCTB4YzFhNSwgMHg3OTEyLCAweDYwMmYsIDB4MDAwMCwgMHg2MDMzLCAweDAwMDAsIDB4MmM2OCwgMHgwODBjLAotCTB4MWRhMiwgMHhkN2ZjLCAweDExMTgsIDB4MjA2OSwgMHg0NjQwLCAweDAwMTAsIDB4MjA2OSwgMHg0NjgwLAotCTB4NjkxMCwgMHhhMTg0LCAweDAxMDAsIDB4MjAwMSwgMHgwMDA2LCAweDExMTgsIDB4Njk3NiwgMHgyMDAxLAotCTB4MDAwNCwgMHgwODBjLCAweDIyYTQsIDB4MDAwNSwgMHgwMGQ2LCAweDY5NDgsIDB4MjE2MCwgMHhkN2ZjLAotCTB4MTExOCwgMHgyMDY5LCAweDAyMDAsIDB4MDAxMCwgMHgyMDY5LCAweDAxMDAsIDB4MDgwYywgMHgyNDY3LAotCTB4NjAxYiwgMHgwMDA2LCAweDY4NTgsIDB4YTA4NCwgMHg1ZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LAotCTB4MDBmZiwgMHhhMDg1LCAweDAwNDgsIDB4NjAyMiwgMHg2MDJmLCAweDAwMDAsIDB4NjAzMywgMHgwMDAwLAotCTB4NjgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NjgwYSwgMHg2ODMwLCAweGQwYjQsIDB4MDFiMCwgMHg2ODRiLAotCTB4MDAwNCwgMHgyMGE5LCAweDAwMTQsIDB4Njg0OCwgMHhkMDk0LCAweDAxMTAsIDB4MWYwNCwgMHg0NTNiLAotCTB4Njg0YiwgMHgwMDA5LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwODQsIDB4MDExMCwgMHgxZjA0LAotCTB4NDU0NCwgMHgyMGE5LCAweDAwZmEsIDB4MWYwNCwgMHg0NTRiLCAweDY4MWIsIDB4MDA1NCwgMHgwMGRlLAotCTB4Njg2MywgMHgwMDA3LCAweDAwMDUsIDB4MjA3OSwgMHg0NjAwLCAweDAwZTEsIDB4MDA4OSwgMHgwMGE5LAotCTB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NDY4MCwgMHg2ODBmLCAweDAwMDAsIDB4NjgxMywgMHgwMDAwLAotCTB4NjgxNywgMHgwMDAwLCAweDgxMDksIDB4MDExOCwgMHgyMDY5LCAweDQ2NDAsIDB4MGNhOCwgMHgwMDA1LAotCTB4MjAxOSwgMHgwMGEzLCAweDdiM2EsIDB4N2IzZSwgMHgwMDA1LCAweDIwMTksIDB4MDAzMywgMHg3YjQyLAotCTB4N2I0NiwgMHgwMDA1LCAweDIwMTksIDB4MzJkZCwgMHg3YjMyLCAweDdiMzYsIDB4MDAwNSwgMHg2YTRjLAotCTB4YTI4NSwgMHgwMDAwLCAweDAxZjAsIDB4Njk1MCwgMHg2YmJjLCAweGEzMDAsIDB4MDBjNiwgMHgyMTY0LAotCTB4NjMwNCwgMHg4M2ZmLCAweDExMzgsIDB4ODIxMSwgMHgwMTQ4LCAweDgxMDgsIDB4YTExYSwgMHgwZWI4LAotCTB4NjliYywgMHgwY2E4LCAweDY4Y2YsIDB4MDAwYSwgMHgwMGNlLCAweDAwMDUsIDB4Njk0YywgMHg2YWJjLAotCTB4MjI2NCwgMHg2MDA4LCAweGMwYjUsIDB4NjAwYSwgMHg4MjEwLCAweDgxMDksIDB4MWRjOCwgMHg2OTRlLAotCTB4MDBjZSwgMHgwMDA1LCAweDFkMDQsIDB4NDU5YSwgMHgyMDkxLCAweDYwMDAsIDB4MWQwNCwgMHg0NTllLAotCTB4MjA5MSwgMHg2MDAwLCAweDcwZWMsIDB4ZDBkYywgMHgxMTE4LCAweGQwZDQsIDB4MDE5MCwgMHgwMDk4LAotCTB4YWU4ZSwgMHgwMTAwLCAweDAxMzgsIDB4NzgxNCwgMHhjMGY1LCAweGMwYzUsIDB4NzgxNiwgMHhkMGQ0LAotCTB4MTU3OCwgMHgwNDU4LCAweDc4MTQsIDB4YzBmZCwgMHhjMGM1LCAweDc4MTYsIDB4ZDBkNCwgMHgxNTQwLAotCTB4MDQyMCwgMHhkMGU0LCAweDA1MzgsIDB4MWQwNCwgMHg0NWJiLCAweDIwOTEsIDB4NjAwMCwgMHgyMDA5LAotCTB4MDAwYywgMHgxZDA0LCAweDQ1YzEsIDB4MjA5MSwgMHg2MDAwLCAweDgxMDksIDB4MWRkMCwgMHg3MGU0LAotCTB4YTA4NCwgMHgwMWZmLCAweGEwODYsIDB4MDFmZiwgMHgxMTEwLCAweDcwZWMsIDB4MDhjOCwgMHhhZThlLAotCTB4MDEwMCwgMHgwMTI4LCAweDc4MTQsIDB4YzBmNCwgMHhkMGZjLCAweDExMzAsIDB4MDAyMCwgMHg3ODE0LAotCTB4YzBmYywgMHhkMGY0LCAweDExMDgsIDB4YzBjNCwgMHg3ODE2LCAweDc4MDQsIDB4ZDA4YywgMHgwMTEwLAotCTB4NjgxZiwgMHgwMDBjLCAweDcwYTAsIDB4NzBhMiwgMHgwMDA1LCAweDdjMTIKKwkweGQwYjQsIDB4MDEwOCwgMHhjNjg1LCAweDI0MDAsIDB4YTMwNSwgMHgwNTUwLCAweDJjNTgsIDB4MjcwNCwKKwkweDYxMDQsIDB4YWM2MCwgMHg2MDAwLCAweGE0MDAsIDB4MjA0OCwgMHhhOWNjLCAweDAwMDQsIDB4MDExOCwKKwkweDA4MGMsIDB4NDNhMywgMHgwNDAwLCAweDcwMWEsIDB4NjAwNCwgMHhhMzAxLCAweDcwMWUsIDB4ZDE5YywKKwkweDAxNDAsIDB4NjAxMCwgMHhhMDgxLCAweDAwMDAsIDB4NzAyMiwgMHg2MDE0LCAweGEwODEsIDB4MDAwMCwKKwkweDcwMjYsIDB4NjIwOCwgMHgyNDAwLCAweGEyMDIsIDB4NzAxMiwgMHg2MjBjLCAweDIzMDAsIDB4YTIwMywKKwkweDcwMTYsIDB4NzYwMiwgMHg3MDA3LCAweDAwMDEsIDB4MmI2MCwgMHgwODBjLCAweDQyYzUsIDB4MDAxMCwKKwkweDA4MGMsIDB4NDI5YSwgMHgxZGU4LCAweDAxMmUsIDB4MjAwMCwgMHgwMDA1LCAweDAxMjYsIDB4MDBkNiwKKwkweDcwZDAsIDB4YTA4NCwgMHg0YzAwLCAweDgwMDQsIDB4MjA5MCwgMHgwMGRlLCAweDcwMDcsIDB4MDAwNCwKKwkweDcwMDQsIDB4ZDA5NCwgMHgxZGU4LCAweDcwMDMsIDB4MDAwOCwgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwKKwkweDAxMjYsIDB4MDBkNiwgMHg3MGQwLCAweGEwODQsIDB4NGMwMCwgMHg4MDA0LCAweDIwOTAsIDB4MDBkZSwKKwkweDdlMjAsIDB4YjI4NCwgMHgwMjAwLCAweDExMDgsIDB4N2UyNCwgMHhhNmI1LCAweDAwMGMsIDB4NjgxYywKKwkweGQwYWMsIDB4MTExOCwgMHhjNjg1LCAweDcwMDMsIDB4MDAwMCwgMHg2ODI4LCAweDIwNTAsIDB4MmQ2MCwKKwkweDYwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4NDAxZCwgMHgyNzNjLCAweDg3ZmIsIDB4MTEzOCwKKwkweDAyMTAsIDB4MDgwYywgMHgyNTc1LCAweDY4OWMsIDB4YTA2NSwgMHgwMTIwLCAweDBjODgsIDB4MDgwYywKKwkweDQyOWEsIDB4MWRlOCwgMHgwMTJlLCAweDIwMDAsIDB4MDAwNSwgMHgwMTI2LCAweDAwMDYsIDB4MDAxNiwKKwkweDAwZDYsIDB4NzBkMCwgMHhhMDg0LCAweDRjMDAsIDB4ODAwNCwgMHgyMDkwLCAweDdlMjAsIDB4YjI4NCwKKwkweDAyMDAsIDB4MTEwOCwgMHg3ZTI0LCAweDAwZGUsIDB4MDAzZSwgMHgwMDRlLCAweGE2YjUsIDB4MDAwYywKKwkweDY4MWMsIDB4ZDBiNCwgMHgwMTI4LCAweGM2ODUsIDB4NzAwMywgMHgwMDAwLCAweDcwMDcsIDB4MDAwNCwKKwkweDIwNDksIDB4NDIzNSwgMHg2ODI4LCAweGEwNTUsIDB4MDBkNiwgMHgwOTA0LCAweDQyOTYsIDB4MmQ3MCwKKwkweDJlNjAsIDB4NzAwNCwgMHhhMGJjLCAweDAwMGYsIDB4YTdiOCwgMHg0MDFkLCAweDI3M2MsIDB4ODdmYiwKKwkweDExNDAsIDB4MDIxMCwgMHgwODBjLCAweDI1NzUsIDB4NzA5YywgMHhhMDc1LCAweDIwNjAsIDB4MDU3MCwKKwkweDBjODAsIDB4MjcwNCwgMHhhZTY4LCAweDY4MDgsIDB4YTQyMiwgMHg2ODBjLCAweGEzMWIsIDB4MDI2OCwKKwkweDhhNTEsIDB4MTExMCwgMHgwODBjLCAweDI1NzUsIDB4ODczOCwgMHgyNzA0LCAweGEwMDUsIDB4MWQ5MCwKKwkweDcwOWMsIDB4YTA3NSwgMHgyMDYwLCAweDAxZDAsIDB4MDhlMCwgMHg4NDIyLCAweDg0MjAsIDB4ODMxYSwKKwkweGEzOTksIDB4MDAwMCwgMHg2OTA4LCAweDI0MDAsIDB4YTEyMiwgMHg2OTBjLCAweDIzMDAsIDB4YTExYiwKKwkweDEyMTAsIDB4MDgwYywgMHgyNTc1LCAweGIyODQsIDB4MDIwMCwgMHgwMTE4LCAweDIwNzEsIDB4MDA1MCwKKwkweDAwMTAsIDB4MjA3MSwgMHgwMDIwLCAweDAwZGUsIDB4MDgwNCwgMHg0MWMzLCAweDAwZGUsIDB4MDEyZSwKKwkweDIwMDAsIDB4MDAwNSwgMHg3MDA4LCAweDAwMDYsIDB4YTA4NCwgMHgwMWUwLCAweDAwMGUsIDB4MDExMCwKKwkweGEwMDYsIDB4MDAwNSwgMHhhMDg0LCAweDAwMDMsIDB4YTA4NiwgMHgwMDAzLCAweDExMDgsIDB4MDAwNSwKKwkweDI3MDQsIDB4YWM3OCwgMHg3ODAwLCAweDJmMDgsIDB4ZDA5NCwgMHgxOTA0LCAweDQzYTYsIDB4NzAxYSwKKwkweDc4MDQsIDB4NzAxZSwgMHg3ODA4LCAweDcwMTIsIDB4NzgwYywgMHg3MDE2LCAweDYwMDQsIDB4ZDA5YywKKwkweDAxMjAsIDB4NzgxMCwgMHg3MDIyLCAweDc4MTQsIDB4NzAyNiwgMHg3NjAyLCAweDcwMDQsIDB4YTA4NCwKKwkweDAwMTAsIDB4YzA4NSwgMHg3MDA2LCAweDIwNzksIDB4NDcwMCwgMHg4YTUxLCAweDAxZTgsIDB4ODczOCwKKwkweDI3MDQsIDB4YTAwNSwgMHgxMTY4LCAweDYwOWMsIDB4YTAwNSwgMHgwMWI4LCAweDIwNjAsIDB4NjAwNCwKKwkweGEwODQsIDB4MDAwZiwgMHhhMDgwLCAweDQwMWQsIDB4MjAzYywgMHg4N2ZiLCAweDA5MGMsIDB4MjU3NSwKKwkweDcwMDgsIDB4MDAwNiwgMHhhMDg0LCAweDAxZTAsIDB4MDAwZSwgMHgwMTEwLCAweGEwMDYsIDB4MDAyOCwKKwkweGEwODQsIDB4MDAwMywgMHhhMDg2LCAweDAwMDMsIDB4MDAwNSwgMHgyMDUxLCAweDAwMDAsIDB4MDAwNSwKKwkweDAxMjYsIDB4MDAwNiwgMHgwMGQ2LCAweDcwZDAsIDB4YTA4NCwgMHg0YzAwLCAweDgwMDQsIDB4MjA5MCwKKwkweDAwZGUsIDB4MDA4ZSwgMHg3MTA4LCAweGExODQsIDB4MDAwMywgMHgxMTI4LCAweDY4MjgsIDB4YTAwNSwKKwkweDAxNzgsIDB4MDgwNCwgMHgzZjZkLCAweDcxMDgsIDB4ZDFmYywgMHgwMTE4LCAweDA4MGMsIDB4NDBkNiwKKwkweDBjODgsIDB4NzAwNywgMHgwMDEwLCAweDcxMDgsIDB4ZDFmYywgMHgwZGU4LCAweDA4MGMsIDB4NDBkNiwKKwkweDcwMDgsIDB4YTA4NiwgMHgwMDA4LCAweDFkMzAsIDB4NzAwMCwgMHhhMDA1LCAweDFkMTgsIDB4NzAwMywKKwkweDAwMDAsIDB4MjA0OSwgMHgwMDAwLCAweDAwMDYsIDB4MjAwMSwgMHg0NzAxLCAweDIwMDQsIDB4ZDBjYywKKwkweDAxMTAsIDB4MDgwYywgMHg0MzViLCAweDAwMGUsIDB4MDEyZSwgMHgyMDAwLCAweDAwMDUsIDB4MDEyNiwKKwkweDAxNDYsIDB4MDEzNiwgMHgwMTU2LCAweDAwYzYsIDB4MDBkNiwgMHg3MGQwLCAweGEwODQsIDB4NGMwMCwKKwkweDgwMDQsIDB4MjA5MCwgMHgwMGRlLCAweDIwNDksIDB4NDMxZiwgMHhhZDgwLCAweDAwMTEsIDB4MjBhMCwKKwkweGIyODQsIDB4MDIwMCwgMHgwMTE4LCAweDIwOTksIDB4MDAzMiwgMHgwMDEwLCAweDIwOTksIDB4MDAzMSwKKwkweDcwMGMsIDB4YTA4NCwgMHgwN2ZmLCAweDY4MmEsIDB4NzAwNywgMHgwMDA4LCAweDcwMDcsIDB4MDAwMiwKKwkweDcwMDMsIDB4MDAwMSwgMHgwMTE4LCAweDgwMDAsIDB4ODBhYywgMHg1M2E1LCAweDcwMGMsIDB4YTA4NCwKKwkweDA3ZmYsIDB4MDEzMCwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwgMHhhMDg0LCAweDAwMDQsIDB4MWRlMCwKKwkweDAwY2UsIDB4MjA0OSwgMHgwMDAwLCAweDcwMDMsIDB4MDAwMCwgMHgwMTVlLCAweDAxM2UsIDB4MDE0ZSwKKwkweDAxMmUsIDB4MjAwMCwgMHgwMDA1LCAweDY4MTQsIDB4ZDBmYywgMHgwOTA0LCAweDQzOWUsIDB4NzAwMCwKKwkweGQwODQsIDB4MDVlMCwgMHg3ZTI0LCAweGE2YjUsIDB4MDAwNCwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwKKwkweGEwODQsIDB4MDAwNCwgMHgxZGUwLCAweDcxMTgsIDB4MDAxNiwgMHg3MTFjLCAweDAwMTYsIDB4NzEyMCwKKwkweDAwMTYsIDB4NzEyNCwgMHgwMDE2LCAweDcwMWIsIDB4MDAwMCwgMHg3MDFmLCAweDNmZmYsIDB4NzAyMywKKwkweDAwMDAsIDB4NzAyNywgMHgwMDAwLCAweDcwMTMsIDB4MDAwNCwgMHg3MDE3LCAweDAwMDAsIDB4NzYwMiwKKwkweDcwMDcsIDB4MDAwMSwgMHgyMDAxLCAweGZmZmYsIDB4MjAwOSwgMHgwMDMxLCAweDIwMGEsIDB4MjAwYSwKKwkweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDFkZTAsIDB4ZDFmYywgMHgwZGQwLCAweDAwMmUsIDB4NzIyNiwKKwkweDAwMmUsIDB4NzIyMiwgMHgwMDJlLCAweDcyMWUsIDB4MDAyZSwgMHg3MjFhLCAweDcwMDcsIDB4MDAwMiwKKwkweDcwMDgsIDB4YTA4NiwgMHgwMDA4LCAweDAxMTAsIDB4MDgwNCwgMHg0MTBlLCAweDcwMDcsIDB4MDAwNCwKKwkweDcwMDMsIDB4MDAwMCwgMHgwMDA1LCAweDIwNDksIDB4NDFjMywgMHgwMDY4LCAweDcwMDgsIDB4YTA4NCwKKwkweDAwMDMsIDB4MDExMCwgMHhhMDA2LCAweDAwMDUsIDB4YTAwNiwgMHgyMDIwLCAweDIwMTgsIDB4MmM1OCwKKwkweDIxNjAsIDB4MjA0OSwgMHgwMDAwLCAweDhiNTgsIDB4NjEwMCwgMHgyMTAwLCAweGE0MDgsIDB4NzExYSwKKwkweDYwMDQsIDB4YTMwMSwgMHg3MDFlLCAweDAwMDYsIDB4MmIwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDE1MCwKKwkweDYwMTAsIDB4YTA4MSwgMHgwMDAwLCAweDcwMjIsIDB4MDAwNiwgMHg2MDE0LCAweGEwODEsIDB4MDAwMCwKKwkweDcwMjYsIDB4MDAwNiwgMHhhMTg0LCAweDAwMDcsIDB4MjAxMSwgMHgwMDA4LCAweGEyMmEsIDB4NjIwOCwKKwkweDI0MDAsIDB4YTIxMiwgMHgwMDI2LCAweDYyMGMsIDB4MjI0MCwgMHgyMzAwLCAweGE4NDMsIDB4MDAyZSwKKwkweDg4ZmYsIDB4MTE3MCwgMHgyNTAwLCAweGEyMDIsIDB4MDEwOCwgMHgxMjUwLCAweDIyMjAsIDB4MjA0MSwKKwkweDAwMDAsIDB4MmIwNCwgMHhkMDljLCAweDAxMTAsIDB4MDAwZSwgMHgwMDBlLCAweDAwMGUsIDB4MDQ1MCwKKwkweDc1MTIsIDB4NzAxNywgMHgwMDAwLCAweDc2MDIsIDB4YTk4NiwgMHg0MWMzLCAweDExMTgsIDB4NzAwNywKKwkweDAwMDEsIDB4MDAyOCwgMHg3MDA0LCAweGEwODQsIDB4MDAxMCwgMHhjMDg1LCAweDcwMDYsIDB4MjUwMCwKKwkweGExMDAsIDB4NzAxYSwgMHgyYjA0LCAweGEwODQsIDB4MDAwOCwgMHgwMTEwLCAweDAwMGUsIDB4MDA0ZSwKKwkweDAwMWUsIDB4YTE4OSwgMHgwMDAwLCAweDcxMWUsIDB4MmIwYywgMHhhMThjLCAweDAwMDgsIDB4MDEzMCwKKwkweGE0YTEsIDB4MDAwMCwgMHg3NDIyLCAweGEwODEsIDB4MDAwMCwgMHg3MDI2LCAweDI1MDAsIDB4YTIyMiwKKwkweGE4YzMsIDB4MDAwMCwgMHg3NDEyLCAweDI4MjAsIDB4NzQxNiwgMHg3NjAyLCAweGE5ODYsIDB4NDFjMywKKwkweDExMTgsIDB4NzAwNywgMHgwMDAxLCAweDAwMjgsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4NSwKKwkweDcwMDYsIDB4OGI1OSwgMHgyYjYwLCAweDIwNzksIDB4NDcwMCwgMHgwODBjLCAweDQyYzUsIDB4YTAwNiwKKwkweDAwMDUsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4NjAwMCwgMHg3OGFjLCAweGEwMDUsIDB4MTE2OCwKKwkweDc5NzQsIDB4NzBkMCwgMHhhMTA2LCAweDExNDgsIDB4NzgxYywgMHhhMDA1LCAweDAxMzAsIDB4NzgxZiwKKwkweDAwMDAsIDB4MGUwNCwgMHg0NDNkLCAweDIwOTEsIDB4NDA4MCwgMHgyMDY5LCAweDQ3ODAsIDB4YzdmZCwKKwkweDY4MDAsIDB4YTA4NCwgMHgwMDBmLCAweDExOTgsIDB4NjhkMCwgMHhkMGI0LCAweDAxODAsIDB4ZDBiYywKKwkweDExNzAsIDB4MDBmNiwgMHgyMDc5LCAweDAxMDAsIDB4ZDdmYywgMHgxMTEwLCAweDIwNzksIDB4MDIwMCwKKwkweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDExMTAsIDB4MDgwYywgMHgyMmQ1LCAweDAwZmUsIDB4ZDdmYywKKwkweDAxMjAsIDB4MjA2OSwgMHg0NzQwLCAweGM3ZmMsIDB4MGMxOCwgMHg3ODMwLCAweDgwMDEsIDB4NzgzMiwKKwkweDE5MDQsIDB4NDRjNywgMHg3ODM0LCAweDc4MzIsIDB4MjA2MSwgMHg2Y2MwLCAweDIwNjksIDB4NDc4MCwKKwkweGM3ZmQsIDB4NjhjYywgMHhhMDA1LCAweDAxMjgsIDB4ODAwMSwgMHg2OGNlLCAweDExMTAsIDB4MDgwYywKKwkweDQ2MzksIDB4NjgwMCwgMHhhMDg0LCAweDAwMGYsIDB4MDE2OCwgMHhhMDg2LCAweDAwMDEsIDB4MDE1MCwKKwkweDY4NDAsIDB4YTAwZCwgMHgwMTM4LCAweDIxMDQsIDB4YTAwNSwgMHgwMTIwLCAweDgwMDEsIDB4MjAwYSwKKwkweDA5MDQsIDB4NDVkNiwgMHg2ODE0LCAweGEwMDUsIDB4MDFhOCwgMHg4MDAxLCAweDY4MTYsIDB4MTE5MCwKKwkweDY4YTMsIDB4MDAwMSwgMHgwMGY2LCAweGQ3ZmMsIDB4MTExOCwgMHgyMDc5LCAweDAyMDAsIDB4MDAxMCwKKwkweDIwNzksIDB4MDEwMCwgMHgwODBjLCAweDNjNmUsIDB4MDBmZSwgMHg2ODYwLCAweGEwMDUsIDB4MDExMCwKKwkweDA4MGMsIDB4MjJkNSwgMHg2ODdjLCAweGEwMDUsIDB4MDE0MCwgMHg4MDAxLCAweDY4N2UsIDB4MTEyOCwKKwkweDY4NjMsIDB4MDAwMCwgMHg2OGQwLCAweGMwYzUsIDB4NjhkMiwgMHg2OGQwLCAweGQwZmMsIDB4MDFiMCwKKwkweGMwZmMsIDB4NjhkMiwgMHgyMGE5LCAweDAyMDAsIDB4NjAzNCwgMHhhMDA1LCAweDAxNTgsIDB4ODAwMSwKKwkweDYwMzYsIDB4NjhkMCwgMHhjMGZkLCAweDY4ZDIsIDB4MTEyOCwgMHg2MDEwLCAweGEwMDUsIDB4MDExMCwKKwkweDA4MGMsIDB4MjJkNSwgMHhhY2UwLCAweDAwMTAsIDB4MWYwNCwgMHg0NGFjLCAweGQ3ZmMsIDB4MDEzOCwKKwkweDIwNjEsIDB4NGNjMCwgMHgyMDY5LCAweDQ3NDAsIDB4YzdmYywgMHgwODA0LCAweDQ0NjksIDB4MDQ1OSwKKwkweDc4MzgsIDB4ODAwMSwgMHg3ODNhLCAweDExYTAsIDB4NzgzYywgMHg3ODNhLCAweDIwNjEsIDB4NGNjMCwKKwkweDIwNjksIDB4NDc0MCwgMHhjN2ZjLCAweDY4MGMsIDB4YTAwNSwgMHgwMTEwLCAweDA4MGMsIDB4NDU0MywKKwkweGQ3ZmMsIDB4MTEzMCwgMHgyMDYxLCAweDZjYzAsIDB4MjA2OSwgMHg0NzgwLCAweGM3ZmQsIDB4MGM5OCwKKwkweDc4MTAsIDB4ZDBjYywgMHgwMTY4LCAweGQwYWMsIDB4MTEyMCwgMHhkMGE0LCAweDAxNDgsIDB4YzBhZCwKKwkweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDBlMDQsIDB4NDRlZiwgMHgwODBjLCAweDIwYTEsIDB4MDAwNSwKKwkweDIwOTEsIDB4ODAwMSwgMHgwMDA1LCAweDc4NDAsIDB4ODAwMSwgMHg3ODQyLCAweDE5MDQsIDB4NDU0MiwKKwkweDc4NDQsIDB4Nzg0MiwgMHgyMDY5LCAweDQ3NDAsIDB4YzdmYywgMHgyMDc5LCAweDAyMDAsIDB4NjhkNCwKKwkweGEwMDUsIDB4MDEzOCwgMHg3ZGUwLCAweGE1MDQsIDB4MTEyMCwgMHg2OGQ2LCAweDY4ZDAsIDB4YzBiYywKKwkweDY4ZDIsIDB4MjA3OSwgMHg0NzAwLCAweDY4MTAsIDB4YTAwNSwgMHgxMTEwLCAweDIwMDEsIDB4MDEwMSwKKwkweDgwMDEsIDB4NjgxMiwgMHhkN2ZjLCAweDAxMTgsIDB4YTA4MCwgMHg4ZGQwLCAweDAwMTAsIDB4YTA4MCwKKwkweDhjYzAsIDB4MjA0MCwgMHgyMDA0LCAweGEwNjUsIDB4MDFlMCwgMHg2MDI0LCAweGEwMDUsIDB4MDFiMCwKKwkweDgwMDEsIDB4NjAyNiwgMHgxMTk4LCAweDY4MDAsIDB4YTAwNSwgMHgwMTMwLCAweDY4NDgsIDB4YWMwNiwKKwkweDExMTgsIDB4MDgwYywgMHg0NWQ2LCAweDAwNjgsIDB4Njg2MCwgMHhhMDA1LCAweDAxMTgsIDB4NjAyNywKKwkweDAwMDEsIDB4MDAyMCwgMHgwODBjLCAweDQ1ODQsIDB4MjgwNCwgMHgwYzI4LCAweDYwMDAsIDB4MmM0MCwKKwkweDBjMTAsIDB4ZDdmYywgMHgxMTM4LCAweDIwNjksIDB4NDc4MCwgMHhjN2ZkLCAweDIwNzksIDB4MDEwMCwKKwkweDA4MDQsIDB4NDRmZiwgMHgwMDA1LCAweDIwMDksIDB4MDAwMCwgMHgyMGE5LCAweDAyMDAsIDB4NjAwOCwKKwkweGQwOWMsIDB4MDU1OCwgMHg2MDI0LCAweGEwMDUsIDB4MDExOCwgMHg4MDAxLCAweDYwMjYsIDB4MDQxOCwKKwkweDYwMDgsIDB4YzA5YywgMHhkMDg0LCAweDExMTAsIDB4ZDBhYywgMHgwMWMwLCAweDYwMGEsIDB4NjAwNCwKKwkweGEwMDUsIDB4MDFkOCwgMHgwMGQ2LCAweDAwYzYsIDB4MDAxNiwgMHgyMDY4LCAweDYwMTAsIDB4ODAwMSwKKwkweDYwMTIsIDB4MDgwYywgMHgzN2M3LCAweDJkMDAsIDB4MmM2OCwgMHgyMDYwLCAweDA4MGMsIDB4MWMwMiwKKwkweDA4MGMsIDB4MWRiMiwgMHgwMDFlLCAweDAwY2UsIDB4MDBkZSwgMHgwMDM4LCAweGMwYmQsIDB4NjAwYSwKKwkweGExOGQsIDB4MDAwMSwgMHgwMDEwLCAweGExOGQsIDB4MDEwMCwgMHhhY2UwLCAweDAwMTAsIDB4MWYwNCwKKwkweDQ1NDcsIDB4YTE4NCwgMHgwMDAxLCAweDAxMzAsIDB4YTE4YywgMHhmZmZlLCAweDY5MGUsIDB4MDgwYywKKwkweDIyZDUsIDB4MDAwOCwgMHg2OTBlLCAweDAwMDUsIDB4MmMwMCwgMHg2ODdhLCAweDY3MTQsIDB4NmY3MiwKKwkweDYwMTcsIDB4MDAwMCwgMHg2MDJiLCAweDAwMDAsIDB4NjAxYiwgMHgwMDA2LCAweDYwYjQsIDB4YTA4NCwKKwkweDVmMDAsIDB4NjAxZSwgMHg2MDIwLCAweGEwODQsIDB4MDBmZiwgMHhhMDg1LCAweDAwNjAsIDB4NjAyMiwKKwkweDYwMDAsIDB4MjA0MiwgMHgyMDY5LCAweDQ3ODAsIDB4ZDdmYywgMHgxMTEwLCAweDIwNjksIDB4NDc0MCwKKwkweDY4NTgsIDB4YWMwNiwgMHgxMTEwLCAweDI4MDAsIDB4Njg1YSwgMHgwODBjLCAweDFiOWEsIDB4NjgxOCwKKwkweGEwMDUsIDB4MDExMCwgMHg4MDAxLCAweDY4MWEsIDB4NjgwOCwgMHhjMGE0LCAweDY4MGEsIDB4NjgxMCwKKwkweDc5MDgsIDB4ODEwOSwgMHg3OTBhLCAweDgwMDEsIDB4MTMxMCwgMHgwODBjLCAweDI1NzUsIDB4NjgxMiwKKwkweDExMTgsIDB4NzkxMCwgMHhjMWE1LCAweDc5MTIsIDB4NjAyZiwgMHgwMDAwLCAweDYwMzMsIDB4MDAwMCwKKwkweDJjNjgsIDB4MDgwYywgMHgxZGJmLCAweGQ3ZmMsIDB4MTExOCwgMHgyMDY5LCAweDQ3NDAsIDB4MDAxMCwKKwkweDIwNjksIDB4NDc4MCwgMHg2OTEwLCAweGExODQsIDB4MDEwMCwgMHgyMDAxLCAweDAwMDYsIDB4MTExOCwKKwkweDY5NzYsIDB4MjAwMSwgMHgwMDA0LCAweDA4MGMsIDB4MjJjYiwgMHgwMDA1LCAweDAwZDYsIDB4Njk0OCwKKwkweDIxNjAsIDB4ZDdmYywgMHgxMTE4LCAweDIwNjksIDB4MDIwMCwgMHgwMDEwLCAweDIwNjksIDB4MDEwMCwKKwkweDA4MGMsIDB4MjQ5MCwgMHg2MDFiLCAweDAwMDYsIDB4Njg1OCwgMHhhMDg0LCAweDVmMDAsIDB4NjAxZSwKKwkweDYwMjAsIDB4YTA4NCwgMHgwMGZmLCAweGEwODUsIDB4MDA0OCwgMHg2MDIyLCAweDYwMmYsIDB4MDAwMCwKKwkweDYwMzMsIDB4MDAwMCwgMHg2ODA4LCAweGEwODQsIDB4ZmZmZCwgMHg2ODBhLCAweDY4MzAsIDB4ZDBiNCwKKwkweDAxYjAsIDB4Njg0YiwgMHgwMDA0LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwOTQsIDB4MDExMCwKKwkweDFmMDQsIDB4NDVmZCwgMHg2ODRiLCAweDAwMDksIDB4MjBhOSwgMHgwMDE0LCAweDY4NDgsIDB4ZDA4NCwKKwkweDAxMTAsIDB4MWYwNCwgMHg0NjA2LCAweDIwYTksIDB4MDBmYSwgMHgxZjA0LCAweDQ2MGQsIDB4NjgxYiwKKwkweDAwNTQsIDB4MDBkZSwgMHg2ODYzLCAweDAwMDcsIDB4MDAwNSwgMHgyMDc5LCAweDQ3MDAsIDB4MDBlMSwKKwkweDAwODksIDB4MDBhOSwgMHgyMDA5LCAweDAwMDIsIDB4MjA2OSwgMHg0NzgwLCAweDY4MGYsIDB4MDAwMCwKKwkweDY4MTMsIDB4MDAwMCwgMHg2ODE3LCAweDAwMDAsIDB4ODEwOSwgMHgwMTE4LCAweDIwNjksIDB4NDc0MCwKKwkweDBjYTgsIDB4MDAwNSwgMHgyMDE5LCAweDAwYTMsIDB4N2IzYSwgMHg3YjNlLCAweDAwMDUsIDB4MjAxOSwKKwkweDAwMzMsIDB4N2I0MiwgMHg3YjQ2LCAweDAwMDUsIDB4MjAxOSwgMHgzMmRkLCAweDdiMzIsIDB4N2IzNiwKKwkweDAwMDUsIDB4NmE0YywgMHhhMjg1LCAweDAwMDAsIDB4MDFmMCwgMHg2OTUwLCAweDZiYmMsIDB4YTMwMCwKKwkweDAwYzYsIDB4MjE2NCwgMHg2MzA0LCAweDgzZmYsIDB4MTEzOCwgMHg4MjExLCAweDAxNDgsIDB4ODEwOCwKKwkweGExMWEsIDB4MGViOCwgMHg2OWJjLCAweDBjYTgsIDB4NjhjZiwgMHgwMDBhLCAweDAwY2UsIDB4MDAwNSwKKwkweDY5NGMsIDB4NmFiYywgMHgyMjY0LCAweDYwMDgsIDB4YzBiNSwgMHg2MDBhLCAweDgyMTAsIDB4ODEwOSwKKwkweDFkYzgsIDB4Njk0ZSwgMHgwMGNlLCAweDAwMDUsIDB4MDAxNiwgMHgxZDA0LCAweDQ2NWQsIDB4MjA5MSwKKwkweDYwMDAsIDB4MWQwNCwgMHg0NjYxLCAweDIwOTEsIDB4NjAwMCwgMHg3MGVjLCAweGQwZGMsIDB4MTExOCwKKwkweGQwZDQsIDB4MDE5MCwgMHgwMGEwLCAweGFlOGUsIDB4MDEwMCwgMHgwMTM4LCAweDc4MTQsIDB4YzBmNSwKKwkweGMwYzUsIDB4NzgxNiwgMHhkMGQ0LCAweDE1ODAsIDB4MDQ2MCwgMHg3ODE0LCAweGMwZmQsIDB4YzBjNSwKKwkweDc4MTYsIDB4ZDBkNCwgMHgxNTQ4LCAweDA0MjgsIDB4ZDBlNCwgMHgwOTA0LCAweDQ2YzQsIDB4MWQwNCwKKwkweDQ2N2YsIDB4MjA5MSwgMHg2MDAwLCAweDIwMDksIDB4MDAwYywgMHgxZDA0LCAweDQ2ODUsIDB4MjA5MSwKKwkweDYwMDAsIDB4ODEwOSwgMHgxZGQwLCAweDcwZTQsIDB4YTA4NCwgMHgwMWZmLCAweGEwODYsIDB4MDFmZiwKKwkweDExMTAsIDB4NzBlYywgMHgwOGMwLCAweGFlOGUsIDB4MDEwMCwgMHgwMTI4LCAweDc4MTQsIDB4YzBmNCwKKwkweGQwZmMsIDB4MTEzMCwgMHgwMDIwLCAweDc4MTQsIDB4YzBmYywgMHhkMGY0LCAweDExMDgsIDB4YzBjNCwKKwkweDc4MTYsIDB4NzgwNCwgMHhkMDhjLCAweDA1MDAsIDB4MDBjNiwgMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwKKwkweGQwODQsIDB4MTFiOCwgMHhhZTg2LCAweDAyMDAsIDB4MDBlNiwgMHgyMDcxLCAweDAwMTAsIDB4MDEyMCwKKwkweDcwZGIsIDB4MDAwMSwgMHg3OGU0LCAweDAwMTgsIDB4NzBkYiwgMHgwMDAwLCAweDc4ZTAsIDB4NzBjNiwKKwkweDcwYzMsIDB4ODAwZSwgMHg2MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDAwZWUsIDB4MDBjZSwKKwkweDAwMTgsIDB4MDBjZSwgMHg2ODFmLCAweDAwMGMsIDB4MDAxZSwgMHg3MGEwLCAweDcwYTIsIDB4MDAwNSwKKwkweDBjMjYKIH07CiAjaWZkZWYgVU5JUVVFX0ZXX05BTUUKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgIGZ3MTIxNjBpX2xlbmd0aDAxID0gMHgzNWU2Oworc3RhdGljIHVuc2lnbmVkIHNob3J0IGZ3MTIxNjBpX2xlbmd0aDAxID0gMHgzNmM5OwogI2Vsc2UKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCAgIHJpc2NfY29kZV9sZW5ndGgwMSA9IDB4MzVlNjsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCByaXNjX2NvZGVfbGVuZ3RoMDEgPSAweDM2Yzk7CiAjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsMTI4MF9mdy5oIGIvZHJpdmVycy9zY3NpL3FsMTI4MF9mdy5oCmluZGV4IDI2MjFlOTkuLjc4NGYyYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbDEyODBfZncuaAorKysgYi9kcml2ZXJzL3Njc2kvcWwxMjgwX2Z3LmgKQEAgLTIzLDI1ICsyMywyNSBAQAogCiAKIC8qCi0gKglGaXJtd2FyZSBWZXJzaW9uIDguMTUuMDAgKDE0OjM1IEF1ZyAyMiwgMjAwMCkKKyAqCUZpcm13YXJlIFZlcnNpb24gOC4xNS4xMSAoMTA6MjAgSmFuIDAyLCAyMDAyKQogICovCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZncxMjgwZWlfdmVyc2lvbl9zdHJbXSA9IHs4LDE1LDB9Oworc3RhdGljIHVuc2lnbmVkIGNoYXIgZncxMjgwZWlfdmVyc2lvbl9zdHJbXSA9IHs4LDE1LDExfTsKICNlbHNlCi1zdGF0aWMgdW5zaWduZWQgY2hhciBmaXJtd2FyZV92ZXJzaW9uW10gPSB7OCwxNSwwfTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGZpcm13YXJlX3ZlcnNpb25bXSA9IHs4LDE1LDExfTsKICNlbmRpZgogCiAjaWZkZWYgVU5JUVVFX0ZXX05BTUUKLSNkZWZpbmUgZncxMjgwZWlfVkVSU0lPTl9TVFJJTkcgIjguMTUuMDAiCisjZGVmaW5lIGZ3MTI4MGVpX1ZFUlNJT05fU1RSSU5HICI4LjE1LjExIgogI2Vsc2UKLSNkZWZpbmUgRldfVkVSU0lPTl9TVFJJTkcgIjguMTUuMDAiCisjZGVmaW5lIEZXX1ZFUlNJT05fU1RSSU5HICI4LjE1LjExIgogI2VuZGlmCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQotc3RhdGljIHVuc2lnbmVkIHNob3J0IGZ3MTI4MGVpX2FkZHIwMSA9IDB4MTAwMDsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBmdzEyODBlaV9hZGRyMDEgPSAweDEwMDAgOwogI2Vsc2UKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCByaXNjX2NvZGVfYWRkcjAxID0gMHgxMDAwOworc3RhdGljIHVuc2lnbmVkIHNob3J0IHJpc2NfY29kZV9hZGRyMDEgPSAweDEwMDAgOwogI2VuZGlmCiAKICNpZmRlZiBVTklRVUVfRldfTkFNRQpAQCAtNDksNyArNDksNyBAQAogI2Vsc2UKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCByaXNjX2NvZGUwMVtdID0gewogI2VuZGlmCi0JMHgwMDc4LCAweDEwNDEsIDB4MDAwMCwgMHgzZDNiLCAweDAwMDAsIDB4MjA0MywgMHg0ZjUwLCAweDU5NTIsCisJMHgwMDc4LCAweDEwNDEsIDB4MDAwMCwgMHgzZTJlLCAweDAwMDAsIDB4MjA0MywgMHg0ZjUwLCAweDU5NTIsCiAJMHg0OTQ3LCAweDQ4NTQsIDB4MjAzMSwgMHgzOTM5LCAweDMxMmMsIDB4MzEzOSwgMHgzOTMyLCAweDJjMzEsCiAJMHgzOTM5LCAweDMzMmMsIDB4MzEzOSwgMHgzOTM0LCAweDIwNTEsIDB4NGM0ZiwgMHg0NzQ5LCAweDQzMjAsCiAJMHg0MzRmLCAweDUyNTAsIDB4NGY1MiwgMHg0MTU0LCAweDQ5NGYsIDB4NGUwMCwgMHgyMDQ5LCAweDUzNTAsCkBAIC01Nyw3ICs1Nyw3IEBACiAJMHg2NTcyLCAweDczNjksIDB4NmY2ZSwgMHgyMDMwLCAweDM4MmUsIDB4MzEzNSwgMHgyMDIwLCAweDIwNDMsCiAJMHg3NTczLCAweDc0NmYsIDB4NmQ2NSwgMHg3MjIwLCAweDRlNmYsIDB4MmUyMCwgMHgzMDMwLCAweDIwNTAsCiAJMHg3MjZmLCAweDY0NzUsIDB4NjM3NCwgMHgyMDRlLCAweDZmMmUsIDB4MjAyMCwgMHgzMDMwLCAweDIwMjAsCi0JMHgyNDAwLCAweDIwYzksIDB4OTdmZiwgMHgyMDAxLCAweDA0ZmMsIDB4MjAwNCwgMHhhMDg2LCAweDEwODAsCisJMHgyNDAwLCAweDIwYzksIDB4OThmZiwgMHgyMDAxLCAweDA0ZmMsIDB4MjAwNCwgMHhhMDg2LCAweDEwODAsCiAJMHgwMGMwLCAweDEwNTQsIDB4MjA3MSwgMHgwMTAwLCAweDcwYTAsIDB4NzBhMiwgMHgyMGMxLCAweDAwMTAsCiAJMHgyMDg5LCAweDEzNzQsIDB4MDA3OCwgMHgxMDZkLCAweDIwMDEsIDB4MDRmYywgMHgyMDA0LCAweGEwODYsCiAJMHgxMjgwLCAweDAwYzAsIDB4MTA2OSwgMHgyMDcxLCAweDAyMDAsIDB4NzBhMCwgMHg3MGEyLCAweDIwNzEsCkBAIC03MCwxNjYwICs3MCwxNjcwIEBACiAJMHhhMjg2LCAweGE1YTUsIDB4MDA0MCwgMHgxMGE0LCAweGEzODYsIDB4MDAwZiwgMHgwMDQwLCAweDEwYTAsCiAJMHgyYzZhLCAweDJhNWEsIDB4MjBjMSwgMHgwMDIwLCAweDIwMTksIDB4MDAwZiwgMHgwMDc4LCAweDEwODAsCiAJMHgyYzZhLCAweDJhNWEsIDB4MDA3OCwgMHgxMGEyLCAweDJjNmEsIDB4MmE1YSwgMHgyMTMwLCAweDIxMjgsCi0JMHhhMWEyLCAweDRlMDAsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsCi0JMHhhMTkyLCAweDk4MDAsIDB4MjAwOSwgMHgwMDAwLCAweDIwMDEsIDB4MDAzMiwgMHgxMDc4LCAweDIwN2EsCi0JMHgyMjE4LCAweDIwNzksIDB4NGUwMCwgMHgyZmEwLCAweDI0MDgsIDB4MjAxMSwgMHgwMDAwLCAweDIwYTksCisJMHhhMWEyLCAweDRmMDAsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsIDB4ODQyNCwgMHg4NDI0LCAweDg0MjQsCisJMHhhMTkyLCAweDk5MDAsIDB4MjAwOSwgMHgwMDAwLCAweDIwMDEsIDB4MDAzMiwgMHgxMDc4LCAweDIwYzEsCisJMHgyMjE4LCAweDIwNzksIDB4NGYwMCwgMHgyZmEwLCAweDI0MDgsIDB4MjAxMSwgMHgwMDAwLCAweDIwYTksCiAJMHgwMDQwLCAweDQyYTQsIDB4ODEwOSwgMHgwMGMwLCAweDEwYmYsIDB4MjAwOSwgMHhmZjAwLCAweDM0MDAsCiAJMHhhMTAyLCAweDAwNDgsIDB4MTBjZiwgMHgwMDQwLCAweDEwY2YsIDB4MjBhOCwgMHg0MmE0LCAweDIwMDEsCiAJMHgwNGZjLCAweDIwMDQsIDB4YTA4NiwgMHgxMDgwLCAweDAwYzAsIDB4MTBlNSwgMHgyMDcxLCAweDAxMDAsCi0JMHgwZDdlLCAweDIwNjksIDB4NGU0MCwgMHgxMDc4LCAweDRjZGQsIDB4MGQ3ZiwgMHg3ODEwLCAweGMwZWQsCisJMHgwZDdlLCAweDIwNjksIDB4NGY0MCwgMHgxMDc4LCAweDRkYjAsIDB4MGQ3ZiwgMHg3ODEwLCAweGMwZWQsCiAJMHg3ODEyLCAweDc4MWIsIDB4MDA2NCwgMHgwMDc4LCAweDExMGEsIDB4MjAwMSwgMHgwNGZjLCAweDIwMDQsCiAJMHhhMDg2LCAweDEyODAsIDB4MDBjMCwgMHgxMTA1LCAweDc4MTQsIDB4YzBlZCwgMHhjMGQ1LCAweDc4MTYsCi0JMHg3ODFiLCAweDAwNjQsIDB4MjA3MSwgMHgwMjAwLCAweDBkN2UsIDB4MjA2OSwgMHg0ZTQwLCAweDEwNzgsCi0JMHg0Y2RkLCAweDIwNjksIDB4NGU4MCwgMHgyMDcxLCAweDAxMDAsIDB4MTA3OCwgMHg0Y2RkLCAweDc4MTQsCisJMHg3ODFiLCAweDAwNjQsIDB4MjA3MSwgMHgwMjAwLCAweDBkN2UsIDB4MjA2OSwgMHg0ZjQwLCAweDEwNzgsCisJMHg0ZGIwLCAweDIwNjksIDB4NGY4MCwgMHgyMDcxLCAweDAxMDAsIDB4MTA3OCwgMHg0ZGIwLCAweDc4MTQsCiAJMHhjMGQ0LCAweDc4MTYsIDB4MGQ3ZiwgMHgwMDc4LCAweDExMGEsIDB4NzgxNCwgMHhjMGU1LCAweDc4MTYsCiAJMHg3ODFiLCAweDAwM2MsIDB4N2VjYSwgMHg3Y2MyLCAweDdiYzYsIDB4Nzg2NywgMHgwMDAwLCAweDc4MDAsCiAJMHhjMDhkLCAweDc4MDIsIDB4MjAzMSwgMHgwMDMwLCAweDc4YWYsIDB4MDEwMSwgMHg3ODIzLCAweDAwMDIsCi0JMHg3ODI3LCAweDAwMDIsIDB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NGU0MCwgMHg2ODFiLCAweDAwMDMsCisJMHg3ODI3LCAweDAwMDIsIDB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NGY0MCwgMHg2ODFiLCAweDAwMDMsCiAJMHg2ODIzLCAweDAwMDcsIDB4NjgyNywgMHgwMGZhLCAweDY4MmIsIDB4MDAwOCwgMHg2ODJmLCAweDAwMjgsCiAJMHg2ODM3LCAweDAwMDAsIDB4NjgzYiwgMHgwMDA2LCAweDY4MzMsIDB4MDAwOCwgMHg2ODNmLCAweDAwMDAsCi0JMHg4MTA5LCAweDAwNDAsIDB4MTE1ZSwgMHg2OGQzLCAweDAwMGEsIDB4NjhjMywgMHg0ZWMwLCAweDIwNzksCi0JMHg0ZTAwLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDExNDQsIDB4ZDBlYywgMHgwMGMwLCAweDExNDgsCisJMHg4MTA5LCAweDAwNDAsIDB4MTE1ZSwgMHg2OGQzLCAweDAwMGEsIDB4NjhjMywgMHg0ZmMwLCAweDIwNzksCisJMHg0ZjAwLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDExNDQsIDB4ZDBlYywgMHgwMGMwLCAweDExNDgsCiAJMHg2OGQ3LCAweDczMjksIDB4MDA3OCwgMHgxMTRhLCAweDY4ZDcsIDB4NzMwZCwgMHgwMDc4LCAweDExNGEsCi0JMHg2OGQ3LCAweDczMmQsIDB4NjhjNywgMHg1M2MwLCAweDY4Y2IsIDB4NTJjMCwgMHg2OGNmLCAweDkzYzAsCi0JMHg2OGFiLCAweDk2NDQsIDB4NjhhZiwgMHg5NjQ5LCAweDY4YjMsIDB4OTY0NCwgMHg2OGI3LCAweDk2NDQsCi0JMHg2OGE3LCAweDAwMDEsIDB4MjA2OSwgMHg0ZTgwLCAweDAwNzgsIDB4MTExZSwgMHg2OGQzLCAweDAwMGEsCi0JMHg2OGMzLCAweDUwYzAsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsIDB4MTE2YSwgMHg2OGQ3LCAweDc0MzksCi0JMHgwMDc4LCAweDExNmMsIDB4NjhkNywgMHg3NDE5LCAweDY4YzcsIDB4NzNjMCwgMHg2OGNiLCAweDUzNDAsCi0JMHg2OGNmLCAweDk0ZDAsIDB4NjhhYiwgMHg5NjQ5LCAweDY4YWYsIDB4OTY0ZSwgMHg2OGIzLCAweDk2NDksCi0JMHg2OGI3LCAweDk2NDksIDB4NjhhNywgMHgwMDAxLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDExYzIsCi0JMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxMWI0LCAweDBlN2UsIDB4MjA2OSwgMHg1MmMwLCAweDIwNzEsCisJMHg2OGQ3LCAweDczMmQsIDB4NjhjNywgMHg1NGMwLCAweDY4Y2IsIDB4NTNjMCwgMHg2OGNmLCAweDk0YzAsCisJMHg2OGFiLCAweDk3NDQsIDB4NjhhZiwgMHg5NzQ5LCAweDY4YjMsIDB4OTc0NCwgMHg2OGI3LCAweDk3NDQsCisJMHg2OGE3LCAweDAwMDEsIDB4MjA2OSwgMHg0ZjgwLCAweDAwNzgsIDB4MTExZSwgMHg2OGQzLCAweDAwMGEsCisJMHg2OGMzLCAweDUxYzAsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsIDB4MTE2YSwgMHg2OGQ3LCAweDc0MzksCisJMHgwMDc4LCAweDExNmMsIDB4NjhkNywgMHg3NDE5LCAweDY4YzcsIDB4NzRjMCwgMHg2OGNiLCAweDU0NDAsCisJMHg2OGNmLCAweDk1ZDAsIDB4NjhhYiwgMHg5NzQ5LCAweDY4YWYsIDB4OTc0ZSwgMHg2OGIzLCAweDk3NDksCisJMHg2OGI3LCAweDk3NDksIDB4NjhhNywgMHgwMDAxLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDExYzIsCisJMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxMWI0LCAweDBlN2UsIDB4MjA2OSwgMHg1M2MwLCAweDIwNzEsCiAJMHgwMjAwLCAweDcwZWMsIDB4ZDBlNCwgMHgwMGMwLCAweDExOTUsIDB4MjAxOSwgMHgwYzBjLCAweDIwMjEsCi0JMHgwMDBjLCAweDEwNzgsIDB4MjAwOSwgMHgwMDc4LCAweDExOWIsIDB4MjAxOSwgMHgwYzBhLCAweDIwMjEsCi0JMHgwMDBhLCAweDEwNzgsIDB4MjAwOSwgMHgyMDY5LCAweDUzNDAsIDB4MjA3MSwgMHgwMTAwLCAweDcwZWMsCisJMHgwMDBjLCAweDEwNzgsIDB4MjA1MCwgMHgwMDc4LCAweDExOWIsIDB4MjAxOSwgMHgwYzBhLCAweDIwMjEsCisJMHgwMDBhLCAweDEwNzgsIDB4MjA1MCwgMHgyMDY5LCAweDU0NDAsIDB4MjA3MSwgMHgwMTAwLCAweDcwZWMsCiAJMHhkMGU0LCAweDAwYzAsIDB4MTFhYiwgMHgyMDE5LCAweDBjMGMsIDB4MjAyMSwgMHgwMDBjLCAweDEwNzgsCi0JMHgyMDA5LCAweDAwNzgsIDB4MTFiMSwgMHgyMDE5LCAweDBjMGEsIDB4MjAyMSwgMHgwMDBhLCAweDEwNzgsCi0JMHgyMDA5LCAweDBlN2YsIDB4MDA3OCwgMHgxMWRiLCAweDIwMTksIDB4MGMwYywgMHgyMDIxLCAweDAwMGMsCi0JMHgyMDY5LCAweDUyYzAsIDB4MTA3OCwgMHgyMDA5LCAweDIwNjksIDB4NTM0MCwgMHgxMDc4LCAweDIwMDksCi0JMHgwMDc4LCAweDExZGIsIDB4MjA2OSwgMHg1MmMwLCAweDBlN2UsIDB4MjA3MSwgMHgwMTAwLCAweDcwZWMsCisJMHgyMDUwLCAweDAwNzgsIDB4MTFiMSwgMHgyMDE5LCAweDBjMGEsIDB4MjAyMSwgMHgwMDBhLCAweDEwNzgsCisJMHgyMDUwLCAweDBlN2YsIDB4MDA3OCwgMHgxMWRiLCAweDIwMTksIDB4MGMwYywgMHgyMDIxLCAweDAwMGMsCisJMHgyMDY5LCAweDUzYzAsIDB4MTA3OCwgMHgyMDUwLCAweDIwNjksIDB4NTQ0MCwgMHgxMDc4LCAweDIwNTAsCisJMHgwMDc4LCAweDExZGIsIDB4MjA2OSwgMHg1M2MwLCAweDBlN2UsIDB4MjA3MSwgMHgwMTAwLCAweDcwZWMsCiAJMHhkMGU0LCAweDAwYzAsIDB4MTFkNCwgMHgyMDE5LCAweDBjMGMsIDB4MjAyMSwgMHgwMDBjLCAweDEwNzgsCi0JMHgyMDA5LCAweDBlN2YsIDB4MDA3OCwgMHgxMWRiLCAweDIwMTksIDB4MGMwYSwgMHgyMDIxLCAweDAwMGEsCi0JMHgxMDc4LCAweDIwMDksIDB4MGU3ZiwgMHgyMDExLCAweDAwMDIsIDB4MjA2OSwgMHg1M2MwLCAweDIwMDksCisJMHgyMDUwLCAweDBlN2YsIDB4MDA3OCwgMHgxMWRiLCAweDIwMTksIDB4MGMwYSwgMHgyMDIxLCAweDAwMGEsCisJMHgxMDc4LCAweDIwNTAsIDB4MGU3ZiwgMHgyMDExLCAweDAwMDIsIDB4MjA2OSwgMHg1NGMwLCAweDIwMDksCiAJMHgwMDAyLCAweDIwYTksIDB4MDEwMCwgMHg2ODM3LCAweDAwMDAsIDB4NjgwYiwgMHgwMDQwLCAweDdiYzgsCiAJMHhhMzg2LCAweGZlZmYsIDB4MDBjMCwgMHgxMWYyLCAweDY4MTcsIDB4MDEwMCwgMHg2ODFmLCAweDAwNjQsCiAJMHgwMDc4LCAweDExZjYsIDB4NjgxNywgMHgwMDY0LCAweDY4MWYsIDB4MDAwMiwgMHhhZGU4LCAweDAwMTAsCiAJMHgwMGYwLCAweDExZTMsIDB4ODEwOSwgMHgwMGMwLCAweDExZTEsIDB4ODIxMSwgMHgwMDQwLCAweDEyMDQsCi0JMHgyMDY5LCAweDczYzAsIDB4MDA3OCwgMHgxMWRmLCAweDEwNzgsIDB4MjY1YiwgMHgxMDc4LCAweDQ2OGUsCi0JMHgxMDc4LCAweDFkZDQsIDB4MTA3OCwgMHg0YzZmLCAweDIwOTEsIDB4MjEwMCwgMHgyMDc5LCAweDRlMDAsCisJMHgyMDY5LCAweDc0YzAsIDB4MDA3OCwgMHgxMWRmLCAweDEwNzgsIDB4MjZhMiwgMHgxMDc4LCAweDQ3MTIsCisJMHgxMDc4LCAweDFlMWIsIDB4MTA3OCwgMHg0ZDQyLCAweDIwOTEsIDB4MjEwMCwgMHgyMDc5LCAweDRmMDAsCiAJMHg3ODEwLCAweGQwZWMsIDB4MDA0MCwgMHgxMjE4LCAweDIwNzEsIDB4MDAyMCwgMHgwMDc4LCAweDEyMWEsCi0JMHgyMDcxLCAweDAwNTAsIDB4MjA5MSwgMHgyMjAwLCAweDIwNzksIDB4NGUwMCwgMHgyMDcxLCAweDAwMjAsCi0JMHgyMDkxLCAweDIzMDAsIDB4MjA3OSwgMHg0ZTAwLCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDEyMmMsCi0JMHgyMDc5LCAweDAxMDAsIDB4MDA3OCwgMHgxMjJlLCAweDIwNzksIDB4MDIwMCwgMHgyMDcxLCAweDRlNDAsCi0JMHgyMDkxLCAweDI0MDAsIDB4MjA3OSwgMHgwMTAwLCAweDIwNzEsIDB4NGU4MCwgMHgyMDkxLCAweDIwMDAsCi0JMHgyMDc5LCAweDRlMDAsIDB4MjA3MSwgMHgwMDEwLCAweDMyMDAsIDB4YTA4NSwgMHgzMDNkLCAweDIwOTAsCisJMHgyMDcxLCAweDAwNTAsIDB4MjA5MSwgMHgyMjAwLCAweDIwNzksIDB4NGYwMCwgMHgyMDcxLCAweDAwMjAsCisJMHgyMDkxLCAweDIzMDAsIDB4MjA3OSwgMHg0ZjAwLCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDEyMmMsCisJMHgyMDc5LCAweDAxMDAsIDB4MDA3OCwgMHgxMjJlLCAweDIwNzksIDB4MDIwMCwgMHgyMDcxLCAweDRmNDAsCisJMHgyMDkxLCAweDI0MDAsIDB4MjA3OSwgMHgwMTAwLCAweDIwNzEsIDB4NGY4MCwgMHgyMDkxLCAweDIwMDAsCisJMHgyMDc5LCAweDRmMDAsIDB4MjA3MSwgMHgwMDEwLCAweDMyMDAsIDB4YTA4NSwgMHgzMDNkLCAweDIwOTAsCiAJMHgyMDcxLCAweDAwMTAsIDB4NzBjMywgMHgwMDAwLCAweDAwOTAsIDB4MTI0ZCwgMHg3MGMwLCAweGEwODYsCi0JMHgwMDAyLCAweDAwYzAsIDB4MTI0ZCwgMHgxMDc4LCAweDE1YmEsIDB4MjAzOSwgMHgwMDAwLCAweDc4MTAsCisJMHgwMDAyLCAweDAwYzAsIDB4MTI0ZCwgMHgxMDc4LCAweDE1YzEsIDB4MjAzOSwgMHgwMDAwLCAweDc4MTAsCiAJMHhkMGVjLCAweDAwYzAsIDB4MTJjZiwgMHgxMDc4LCAweDE0OGUsIDB4NzhhYywgMHhhMDA1LCAweDAwYzAsCiAJMHgxMjZiLCAweDAwNjgsIDB4MTI2MSwgMHg3ODZjLCAweGEwNjUsIDB4MDA0MCwgMHgxMjYxLCAweDEwNzgsCi0JMHgyMzk1LCAweDEwNzgsIDB4MjBhMSwgMHgwMDY4LCAweDEyNzgsIDB4Nzg2YywgMHhhMDY1LCAweDAwNDAsCi0JMHgxMjZiLCAweDEwNzgsIDB4MjM5NSwgMHgwMDY4LCAweDEyNzgsIDB4MjAwOSwgMHg0ZTQ3LCAweDIwMTEsCi0JMHg0ZTg3LCAweDIxMDQsIDB4MjIwYywgMHhhMTA1LCAweDAwNDAsIDB4MTI3OCwgMHgxMDc4LCAweDFmMGEsCi0JMHgyMDcxLCAweDRlNDAsIDB4NzBhNCwgMHhhMDA1LCAweDAwNDAsIDB4MTI5ZCwgMHg3NDUwLCAweGE0ODUsCisJMHgyM2RjLCAweDEwNzgsIDB4MjBlOCwgMHgwMDY4LCAweDEyNzgsIDB4Nzg2YywgMHhhMDY1LCAweDAwNDAsCisJMHgxMjZiLCAweDEwNzgsIDB4MjNkYywgMHgwMDY4LCAweDEyNzgsIDB4MjAwOSwgMHg0ZjQ3LCAweDIwMTEsCisJMHg0Zjg3LCAweDIxMDQsIDB4MjIwYywgMHhhMTA1LCAweDAwNDAsIDB4MTI3OCwgMHgxMDc4LCAweDFmNTEsCisJMHgyMDcxLCAweDRmNDAsIDB4NzBhNCwgMHhhMDA1LCAweDAwNDAsIDB4MTI5ZCwgMHg3NDUwLCAweGE0ODUsCiAJMHgwMDAwLCAweDAwNDAsIDB4MTI5ZCwgMHgyMDc5LCAweDAyMDAsIDB4MjA5MSwgMHg4MDAwLCAweDcyZDQsCi0JMHhhMjhjLCAweDMwM2QsIDB4MjE5MCwgMHgxMDc4LCAweDJiNmEsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsCi0JMHgzMDNkLCAweDAwNjgsIDB4MTI5ZCwgMHgyMDc5LCAweDRlMDAsIDB4Nzg2YywgMHhhMDY1LCAweDAwNDAsCi0JMHgxMjlkLCAweDIwNzEsIDB4MDAxMCwgMHgxMDc4LCAweDIzOTUsIDB4MDBlMCwgMHgxMmE1LCAweDIwNzksCi0JMHg0ZTAwLCAweDIwNzEsIDB4MDAxMCwgMHgxMDc4LCAweDRhNDMsIDB4MjA3MSwgMHg0ZTgwLCAweDcwYTQsCisJMHhhMjhjLCAweDMwM2QsIDB4MjE5MCwgMHgxMDc4LCAweDJiYjEsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsCisJMHgzMDNkLCAweDAwNjgsIDB4MTI5ZCwgMHgyMDc5LCAweDRmMDAsIDB4Nzg2YywgMHhhMDY1LCAweDAwNDAsCisJMHgxMjlkLCAweDIwNzEsIDB4MDAxMCwgMHgxMDc4LCAweDIzZGMsIDB4MDBlMCwgMHgxMmE1LCAweDIwNzksCisJMHg0ZjAwLCAweDIwNzEsIDB4MDAxMCwgMHgxMDc4LCAweDRiMTYsIDB4MjA3MSwgMHg0ZjgwLCAweDcwYTQsCiAJMHhhMDA1LCAweDAwNDAsIDB4MTJiZCwgMHg3MDUwLCAweGEwMjUsIDB4MDA0MCwgMHgxMmJkLCAweDIwNzksCiAJMHgwMTAwLCAweDIwOTEsIDB4ODAwMCwgMHg3MmQ0LCAweGEyOGMsIDB4MzAzZCwgMHgyMTkwLCAweDEwNzgsCi0JMHgyYjZhLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDMwM2QsIDB4MjA3OSwgMHg0ZTAwLCAweDIwNzEsCisJMHgyYmIxLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDMwM2QsIDB4MjA3OSwgMHg0ZjAwLCAweDIwNzEsCiAJMHgwMDEwLCAweDAwNjgsIDB4MTJjOSwgMHg3ODZjLCAweGEwNjUsIDB4MDA0MCwgMHgxMmM5LCAweDEwNzgsCi0JMHgyMzk1LCAweDAwZTAsIDB4MTI1MywgMHgxMDc4LCAweDRhNDMsIDB4MDA3OCwgMHgxMjUzLCAweDEwNzgsCisJMHgyM2RjLCAweDAwZTAsIDB4MTI1MywgMHgxMDc4LCAweDRiMTYsIDB4MDA3OCwgMHgxMjUzLCAweDEwNzgsCiAJMHgxNDhlLCAweDc4YWMsIDB4YTAwNSwgMHgwMGMwLCAweDEyZTcsIDB4MDA2OCwgMHgxMmRkLCAweDc4NmMsCi0JMHhhMDY1LCAweDAwNDAsIDB4MTJkZCwgMHgxMDc4LCAweDIzOTUsIDB4MTA3OCwgMHgyMGExLCAweDAwNjgsCi0JMHgxMmYxLCAweDc4NmMsIDB4YTA2NSwgMHgwMDQwLCAweDEyZTcsIDB4MTA3OCwgMHgyMzk1LCAweDAwNjgsCi0JMHgxMmYxLCAweDIwMDksIDB4NGU0NywgMHgyMTA0LCAweGEwMDUsIDB4MDA0MCwgMHgxMmYxLCAweDEwNzgsCi0JMHgxZjBhLCAweDIwNzEsIDB4NGU0MCwgMHg3MGE0LCAweGEwMDUsIDB4MDA0MCwgMHgxMzBjLCAweDc0NTAsCisJMHhhMDY1LCAweDAwNDAsIDB4MTJkZCwgMHgxMDc4LCAweDIzZGMsIDB4MTA3OCwgMHgyMGU4LCAweDAwNjgsCisJMHgxMmYxLCAweDc4NmMsIDB4YTA2NSwgMHgwMDQwLCAweDEyZTcsIDB4MTA3OCwgMHgyM2RjLCAweDAwNjgsCisJMHgxMmYxLCAweDIwMDksIDB4NGY0NywgMHgyMTA0LCAweGEwMDUsIDB4MDA0MCwgMHgxMmYxLCAweDEwNzgsCisJMHgxZjUxLCAweDIwNzEsIDB4NGY0MCwgMHg3MGE0LCAweGEwMDUsIDB4MDA0MCwgMHgxMzBjLCAweDc0NTAsCiAJMHhhNDg1LCAweDAwMDAsIDB4MDA0MCwgMHgxMzBjLCAweDIwNzksIDB4MDEwMCwgMHgyMDkxLCAweDgwMDAsCi0JMHg3MmQ0LCAweGEyOGMsIDB4MzAzZCwgMHgyMTkwLCAweDEwNzgsIDB4MmI2YSwgMHgyMDkxLCAweDgwMDAsCi0JMHgyMDkxLCAweDMwM2QsIDB4MjA3OSwgMHg0ZTAwLCAweDIwNzEsIDB4MDAxMCwgMHgwMDY4LCAweDEzMTYsCi0JMHg3ODZjLCAweGEwNjUsIDB4MDA0MCwgMHgxMzE2LCAweDEwNzgsIDB4MjM5NSwgMHgwMGUwLCAweDEyY2YsCi0JMHgxMDc4LCAweDRhNDMsIDB4MDA3OCwgMHgxMmNmLCAweDEzM2MsIDB4MTMzYywgMHgxMzNlLCAweDEzM2UsCisJMHg3MmQ0LCAweGEyOGMsIDB4MzAzZCwgMHgyMTkwLCAweDEwNzgsIDB4MmJiMSwgMHgyMDkxLCAweDgwMDAsCisJMHgyMDkxLCAweDMwM2QsIDB4MjA3OSwgMHg0ZjAwLCAweDIwNzEsIDB4MDAxMCwgMHgwMDY4LCAweDEzMTYsCisJMHg3ODZjLCAweGEwNjUsIDB4MDA0MCwgMHgxMzE2LCAweDEwNzgsIDB4MjNkYywgMHgwMGUwLCAweDEyY2YsCisJMHgxMDc4LCAweDRiMTYsIDB4MDA3OCwgMHgxMmNmLCAweDEzM2MsIDB4MTMzYywgMHgxMzNlLCAweDEzM2UsCiAJMHgxMzRiLCAweDEzNGIsIDB4MTM0YiwgMHgxMzRiLCAweDEzNTYsIDB4MTM1NiwgMHgxMzYzLCAweDEzNjMsCiAJMHgxMzRiLCAweDEzNGIsIDB4MTM0YiwgMHgxMzRiLCAweDEzM2MsIDB4MTMzYywgMHgxMzNlLCAweDEzM2UsCiAJMHgxMzRiLCAweDEzNGIsIDB4MTM0YiwgMHgxMzRiLCAweDEzNTYsIDB4MTM1NiwgMHgxMzYzLCAweDEzNjMsCiAJMHgxMzRiLCAweDEzNGIsIDB4MTM0YiwgMHgxMzRiLCAweDAwNzgsIDB4MTMzYywgMHgwMDdlLCAweDEwN2UsCi0JMHgxMjdlLCAweDIwOTEsIDB4MjQwMCwgMHgxMDc4LCAweDI5OGEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCisJMHgxMjdlLCAweDIwOTEsIDB4MjQwMCwgMHgxMDc4LCAweDI5ZDEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCiAJMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgwMDdlLCAweDEwN2UsIDB4MTI3ZSwgMHgxMDc4LCAweDEzYzgsCiAJMHgxMjdmLCAweDEwN2YsIDB4MDA3ZiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgwMDdlLCAweDEwN2UsCi0JMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwgMHgxMDc4LCAweDI5OGEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCisJMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwgMHgxMDc4LCAweDI5ZDEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCiAJMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgwMDdlLCAweDEwN2UsIDB4MTI3ZSwgMHgyMDkxLCAweDIzMDAsCi0JMHgxMDc4LCAweDI5OGEsIDB4MjA5MSwgMHgyNDAwLCAweDEwNzgsIDB4Mjk4YSwgMHgxMjdmLCAweDEwN2YsCisJMHgxMDc4LCAweDI5ZDEsIDB4MjA5MSwgMHgyNDAwLCAweDEwNzgsIDB4MjlkMSwgMHgxMjdmLCAweDEwN2YsCiAJMHgwMDdmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDEzOTQsIDB4MTM5NCwgMHgxMzk2LCAweDEzOTYsCiAJMHgxM2EzLCAweDEzYTMsIDB4MTNhMywgMHgxM2EzLCAweDEzYWUsIDB4MTNhZSwgMHgxMzk2LCAweDEzOTYsCiAJMHgxM2EzLCAweDEzYTMsIDB4MTNhMywgMHgxM2EzLCAweDEzYWYsIDB4MTNhZiwgMHgxM2FmLCAweDEzYWYsCiAJMHgxM2FmLCAweDEzYWYsIDB4MTNhZiwgMHgxM2FmLCAweDEzYWYsIDB4MTNhZiwgMHgxM2FmLCAweDEzYWYsCiAJMHgxM2FmLCAweDEzYWYsIDB4MTNhZiwgMHgxM2FmLCAweDAwNzgsIDB4MTM5NCwgMHgwMDdlLCAweDEwN2UsCi0JMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwgMHgxMDc4LCAweDI5OGEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCisJMHgxMjdlLCAweDIwOTEsIDB4MjMwMCwgMHgxMDc4LCAweDI5ZDEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsCiAJMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgwMDdlLCAweDEwN2UsIDB4MTI3ZSwgMHgxMDc4LCAweDEzZDUsCiAJMHgxMjdmLCAweDEwN2YsIDB4MDA3ZiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgwMDdjLCAweDEwN2UsCiAJMHgxMjdlLCAweDBkN2UsIDB4MGU3ZSwgMHgwZjdlLCAweDAwN2UsIDB4MjA3MSwgMHgwMTAwLCAweDIwNjksCi0JMHg0ZTQwLCAweDIwNzksIDB4NGUwMCwgMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGUyLCAweDEwNzgsCi0JMHg0Y2RkLCAweDAwN2YsIDB4MGY3ZiwgMHgwZTdmLCAweDBkN2YsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2MsCisJMHg0ZjQwLCAweDIwNzksIDB4NGYwMCwgMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGUyLCAweDEwNzgsCisJMHg0ZGIwLCAweDAwN2YsIDB4MGY3ZiwgMHgwZTdmLCAweDBkN2YsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2MsCiAJMHgzYzAwLCAweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDEzY2QsIDB4MTNkZSwgMHgxM2RlLCAweDEzZTAsCiAJMHgxM2UwLCAweDEzZTUsIDB4MTNlNSwgMHgxM2VhLCAweDEzZWEsIDB4M2MwMCwgMHhhMDg0LCAweDAwMDMsCi0JMHgwMDc5LCAweDEzZGEsIDB4MTNkZSwgMHgxM2RlLCAweDEzZjMsIDB4MTNmMywgMHgxMDc4LCAweDI5NmIsCi0JMHgyMDkxLCAweDIyMDAsIDB4MTA3OCwgMHg0NzY4LCAweDAwN2MsIDB4MjA5MSwgMHgyMTAwLCAweDEwNzgsCi0JMHg0NzY4LCAweDAwN2MsIDB4MjA5MSwgMHgyMTAwLCAweDEwNzgsIDB4NDc2OCwgMHgyMDkxLCAweDIyMDAsCi0JMHgxMDc4LCAweDQ3NjgsIDB4MDA3YywgMHgyMDkxLCAweDIxMDAsIDB4MTA3OCwgMHg0NzY4LCAweDAwN2MsCisJMHgwMDc5LCAweDEzZGEsIDB4MTNkZSwgMHgxM2RlLCAweDEzZjMsIDB4MTNmMywgMHgxMDc4LCAweDI5YjIsCisJMHgyMDkxLCAweDIyMDAsIDB4MTA3OCwgMHg0N2VjLCAweDAwN2MsIDB4MjA5MSwgMHgyMTAwLCAweDEwNzgsCisJMHg0N2VjLCAweDAwN2MsIDB4MjA5MSwgMHgyMTAwLCAweDEwNzgsIDB4NDdlYywgMHgyMDkxLCAweDIyMDAsCisJMHgxMDc4LCAweDQ3ZWMsIDB4MDA3YywgMHgyMDkxLCAweDIxMDAsIDB4MTA3OCwgMHg0N2VjLCAweDAwN2MsCiAJMHgxNDE4LCAweDE0MTgsIDB4MTQxYSwgMHgxNDFhLCAweDE0MjcsIDB4MTQyNywgMHgxNDI3LCAweDE0MjcsCiAJMHgxNDMyLCAweDE0MzIsIDB4MTQzZiwgMHgxNDNmLCAweDE0MjcsIDB4MTQyNywgMHgxNDI3LCAweDE0MjcsCiAJMHgxNDUwLCAweDE0NTAsIDB4MTQ1MCwgMHgxNDUwLCAweDE0NTAsIDB4MTQ1MCwgMHgxNDUwLCAweDE0NTAsCiAJMHgxNDUwLCAweDE0NTAsIDB4MTQ1MCwgMHgxNDUwLCAweDE0NTAsIDB4MTQ1MCwgMHgxNDUwLCAweDE0NTAsCiAJMHgwMDc4LCAweDE0MTgsIDB4MDA3ZSwgMHgxMDdlLCAweDEyN2UsIDB4MjA5MSwgMHgyNDAwLCAweDEwNzgsCi0JMHgyOThhLCAweDEyN2YsIDB4MTA3ZiwgMHgwMDdmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDAwN2UsCisJMHgyOWQxLCAweDEyN2YsIDB4MTA3ZiwgMHgwMDdmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDAwN2UsCiAJMHgxMDdlLCAweDEyN2UsIDB4MTA3OCwgMHgxM2M4LCAweDEyN2YsIDB4MTA3ZiwgMHgwMDdmLCAweDIwOTEsCiAJMHg4MDAxLCAweDAwN2MsIDB4MDA3ZSwgMHgxMDdlLCAweDEyN2UsIDB4MjA5MSwgMHgyMzAwLCAweDEwNzgsCi0JMHgyOThhLCAweDEyN2YsIDB4MTA3ZiwgMHgwMDdmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDAwN2UsCi0JMHgxMDdlLCAweDEyN2UsIDB4MjA5MSwgMHgyMzAwLCAweDEwNzgsIDB4Mjk4YSwgMHgyMDkxLCAweDI0MDAsCi0JMHgxMDc4LCAweDI5OGEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCi0JMHgwMDdlLCAweDEwN2UsIDB4MTI3ZSwgMHgwZDdlLCAweDBlN2UsIDB4MGY3ZSwgMHgyMDc5LCAweDRlMDAsCi0JMHgyMDcxLCAweDAyMDAsIDB4MjA2OSwgMHg0ZTQwLCAweDNkMDAsIDB4ZDA4YywgMHgwMDQwLCAweDE0NjYsCi0JMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGUyLCAweDEwNzgsIDB4NGNkZCwgMHgzZDAwLCAweGQwODQsCi0JMHgwMDQwLCAweDE0NzQsIDB4MjA2OSwgMHg0ZTgwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLCAweGEwODQsCi0JMHgxYzAwLCAweDc4ZTYsIDB4MTA3OCwgMHg0Y2RkLCAweDBmN2YsIDB4MGU3ZiwgMHgwZDdmLCAweDEyN2YsCisJMHgyOWQxLCAweDEyN2YsIDB4MTA3ZiwgMHgwMDdmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDAwN2UsCisJMHgxMDdlLCAweDEyN2UsIDB4MjA5MSwgMHgyMzAwLCAweDEwNzgsIDB4MjlkMSwgMHgyMDkxLCAweDI0MDAsCisJMHgxMDc4LCAweDI5ZDEsIDB4MTI3ZiwgMHgxMDdmLCAweDAwN2YsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCisJMHgwMDdlLCAweDEwN2UsIDB4MTI3ZSwgMHgwZDdlLCAweDBlN2UsIDB4MGY3ZSwgMHgyMDc5LCAweDRmMDAsCisJMHgyMDcxLCAweDAyMDAsIDB4MjA2OSwgMHg0ZjQwLCAweDNkMDAsIDB4ZDA4YywgMHgwMDQwLCAweDE0NjYsCisJMHg3MGVjLCAweGEwODQsIDB4MWMwMCwgMHg3OGUyLCAweDEwNzgsIDB4NGRiMCwgMHgzZDAwLCAweGQwODQsCisJMHgwMDQwLCAweDE0NzQsIDB4MjA2OSwgMHg0ZjgwLCAweDIwNzEsIDB4MDEwMCwgMHg3MGVjLCAweGEwODQsCisJMHgxYzAwLCAweDc4ZTYsIDB4MTA3OCwgMHg0ZGIwLCAweDBmN2YsIDB4MGU3ZiwgMHgwZDdmLCAweDEyN2YsCiAJMHgxMDdmLCAweDAwN2YsIDB4MDA3YywgMHg3MDA4LCAweDgwMGIsIDB4MDBjOCwgMHgxNDg5LCAweDcwMDcsCiAJMHgwMDAyLCAweGEwOGMsIDB4MDFlMCwgMHgwMGMwLCAweDE0OGEsIDB4ZDA5YywgMHgwMDQwLCAweDE0ODksCi0JMHgwODdhLCAweDA5N2EsIDB4NzBjMywgMHg0MDAyLCAweDAwNzgsIDB4MTViZCwgMHgwMDY4LCAweDE1MTMsCi0JMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwgMHhkMDg0LCAweDAwYzAsIDB4MTUxMywgMHg3ODI4LCAweGEwMDUsCi0JMHgwMGMwLCAweDE0OWUsIDB4MDAxMCwgMHgxNTE0LCAweDAwNzgsIDB4MTUxMywgMHg3OTEwLCAweGQxZjQsCi0JMHgwMDQwLCAweDE0YTYsIDB4MjAwMSwgMHg0MDA3LCAweDAwNzgsIDB4MTViYywgMHg3OTE0LCAweGQxZWMsCi0JMHgwMDQwLCAweDE0YzEsIDB4ZDBmYywgMHgwMDQwLCAweDE0YjcsIDB4MDA3ZSwgMHgxMDc4LCAweDFkNjQsCi0JMHgwMDdmLCAweDAwNDAsIDB4MTRjMSwgMHgyMDAxLCAweDQwMDcsIDB4MDA3OCwgMHgxNWJjLCAweDAwN2UsCi0JMHgxMDc4LCAweDFkNTQsIDB4MDA3ZiwgMHgwMDQwLCAweDE0YzEsIDB4MjAwMSwgMHg0MDA3LCAweDAwNzgsCi0JMHgxNWJjLCAweDc5MTAsIDB4ZDBmYywgMHgwMGMwLCAweDE0Y2IsIDB4MjA2MSwgMHg0ZTQwLCAweGMxOWMsCi0JMHhjN2ZjLCAweDAwNzgsIDB4MTRjZiwgMHgyMDYxLCAweDRlODAsIDB4YzE5ZCwgMHhjN2ZkLCAweDYwNjQsCi0JMHhhMDA1LCAweDAwYzAsIDB4MTUxMywgMHg3OTEyLCAweDYwODMsIDB4MDAwMCwgMHg3ODI4LCAweGMwZmMsCi0JMHhhMDg2LCAweDAwMTgsIDB4MDBjMCwgMHgxNGUwLCAweDBjN2UsIDB4MTA3OCwgMHgxYjViLCAweDBjN2YsCi0JMHg3ODJiLCAweDAwMDAsIDB4NjA3YywgMHhhMDY1LCAweDAwNDAsIDB4MTRmOSwgMHgwYzdlLCAweDYwOWMsCi0JMHgxMDc4LCAweDFlNDksIDB4MGM3ZiwgMHg2MDlmLCAweDAwMDAsIDB4MTA3OCwgMHgxYzg0LCAweDIwMDksCi0JMHgwMDE4LCAweDYwODcsIDB4MDEwMywgMHgxMDc4LCAweDFkNzQsIDB4MDBjMCwgMHgxNTBkLCAweDEwNzgsCi0JMHgxZGM2LCAweDc4MTAsIDB4ZDA5YywgMHgwMGMwLCAweDE1MDEsIDB4MjA2MSwgMHg0ZTQwLCAweDAwNzgsCi0JMHgxNTA1LCAweDIwNjEsIDB4NGU4MCwgMHhjMDljLCAweDc4MTIsIDB4NjA3ZiwgMHgwMDAwLCAweDYwZDQsCi0JMHhkMGRjLCAweDAwNDAsIDB4MTUxMSwgMHhjMGRjLCAweDYwZDYsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsCi0JMHgxNWJjLCAweDAwNzgsIDB4MTViYSwgMHgwMDdjLCAweDc4MTAsIDB4ZDBmNCwgMHgwMDQwLCAweDE1MWMsCi0JMHgyMDAxLCAweDQwMDcsIDB4MDA3OCwgMHgxNWJjLCAweGEwMDYsIDB4NzBjMiwgMHg3MGM2LCAweDcwY2EsCi0JMHg3MGNlLCAweDcwZGEsIDB4NzBjMCwgMHhhMDNkLCAweGEwOGEsIDB4MDA0MCwgMHgwMGM4LCAweDE1MmEsCi0JMHgwMDc5LCAweDE1MzEsIDB4MjEwMCwgMHhhMDhhLCAweDAwNDAsIDB4MDBjOCwgMHgxNWM4LCAweDAwNzksCi0JMHgxNTcxLCAweDE1YmEsIDB4MTYxMCwgMHgxNWQ5LCAweDE2NDgsIDB4MTY4MCwgMHgxNjgwLCAweDE1ZDAsCi0JMHgxYzljLCAweDE2OGIsIDB4MTVjOCwgMHgxNWRkLCAweDE1ZGYsIDB4MTVlMSwgMHgxNWUzLCAweDFjYTEsCi0JMHgxNWM4LCAweDE2OTksIDB4MTZmNiwgMHgxYjdiLCAweDFjOTYsIDB4MTVlNSwgMHgxOWMwLCAweDFhMDIsCi0JMHgxYTNkLCAweDFhOGUsIDB4MTk3YiwgMHgxOTg4LCAweDE5OWMsIDB4MTlhZiwgMHgxN2NiLCAweDE1YzgsCi0JMHgxNzJkLCAweDE3M2EsIDB4MTc0NiwgMHgxNzUyLCAweDE3NjgsIDB4MTc3NCwgMHgxNzc3LCAweDE3ODMsCi0JMHgxNzhmLCAweDE3OTcsIDB4MTdiMywgMHgxN2JmLCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxN2Q4LCAweDE3ZWEsIDB4MTgwNiwgMHgxODNjLCAweDE4NjQsIDB4MTg3NCwgMHgxODc3LCAweDE4YTgsCi0JMHgxOGQ5LCAweDE4ZWIsIDB4MTk0YSwgMHgxOTVhLCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxOTZhLCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxY2M2LCAweDFjY2MsCi0JMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxY2QwLCAweDFkMTUsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDE2MGEsIDB4MTY3YSwgMHgxNjkzLCAweDE2ZjAsIDB4MWI3NSwgMHgxNWM4LCAweDE1YzgsCi0JMHgxYjNlLCAweDE1YzgsIDB4MWQxOSwgMHgxY2I4LCAweDFjYzIsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsIDB4MTVjOCwgMHgxNWM4LCAweDE1YzgsCi0JMHgxNWM4LCAweDcyY2EsIDB4NzFjNiwgMHgyMDAxLCAweDQwMDYsIDB4MDA3OCwgMHgxNWJjLCAweDczY2UsCi0JMHg3MmNhLCAweDcxYzYsIDB4MjAwMSwgMHg0MDAwLCAweDcwYzIsIDB4MDA2OCwgMHgxNWJkLCAweDIwNjEsCi0JMHgwMDAwLCAweDYwMWIsIDB4MDAwMSwgMHgyMDkxLCAweDUwMDAsIDB4MjA5MSwgMHg0MDgwLCAweDAwN2MsCi0JMHg3MGMzLCAweDQwMDEsIDB4MDA3OCwgMHgxNWJkLCAweDcwYzMsIDB4NDAwNiwgMHgwMDc4LCAweDE1YmQsCi0JMHgyMDk5LCAweDAwNDEsIDB4MjBhMSwgMHgwMDQxLCAweDIwYTksIDB4MDAwNSwgMHg1M2EzLCAweDAwNzgsCi0JMHgxNWJhLCAweDcwYzQsIDB4NzBjMywgMHgwMDA0LCAweDAwN2EsIDB4MDA3OCwgMHgxNWJhLCAweDAwNzgsCi0JMHgxNWJhLCAweDAwNzgsIDB4MTViYSwgMHgwMDc4LCAweDE1YmEsIDB4MjA5MSwgMHg4MDAwLCAweDcwYzMsCi0JMHgwMDA0LCAweDcwYzcsIDB4NDk1MywgMHg3MGNiLCAweDUwMjAsIDB4NzBjZiwgMHgyMDIwLCAweDcwZDMsCi0JMHgwMDA4LCAweDIwMDEsIDB4MDAwZiwgMHg3MGQ2LCAweDIwNzksIDB4MDAwMCwgMHg3ODFiLCAweDAwMDEsCi0JMHgyMDMxLCAweDAwMzAsIDB4MjA1OSwgMHgxMDAwLCAweDIwMjksIDB4MDQxYSwgMHgyMDUxLCAweDA0NDUsCi0JMHgyMDYxLCAweDA0NDcsIDB4MjBjMSwgMHgwMDIwLCAweDIwOTEsIDB4NTAwMCwgMHgyMDkxLCAweDQwODAsCi0JMHgwMDc4LCAweDA0MTgsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwgMHgwMDc4LCAweDE2MTMsCi0JMHgyMDI5LCAweDAwMDAsIDB4MjUyMCwgMHg3MWQwLCAweDcyYzgsIDB4NzNjYywgMHg3MGM0LCAweDIwYTAsCi0JMHgyMDk5LCAweDAwMzAsIDB4NzAwMywgMHgwMDAxLCAweDcwMDcsIDB4MDAwNiwgMHg3MzFhLCAweDcyMWUsCi0JMHg3NDIyLCAweDc1MjYsIDB4MjAyMSwgMHgwMDQwLCAweDgxZmYsIDB4MDA0MCwgMHgxNWJhLCAweGExODIsCi0JMHgwMDQwLCAweDAwYzgsIDB4MTYyZCwgMHgyMTIwLCAweGEwMDYsIDB4MjAwOCwgMHg4NDAzLCAweDcwMTIsCi0JMHg3MDA3LCAweDAwMDQsIDB4NzAwNywgMHgwMDAxLCAweDcwMDgsIDB4ZDBmYywgMHgwMDQwLCAweDE2MzQsCi0JMHg3MDA3LCAweDAwMDIsIDB4YTA4NCwgMHgwMWUwLCAweDAwNDAsIDB4MTY0MiwgMHg3MGMzLCAweDQwMDIsCi0JMHgwMDc4LCAweDE1YmQsIDB4MjRhOCwgMHg1M2E1LCAweDAwNzgsIDB4MTYyNCwgMHgwMDc4LCAweDE1YmEsCi0JMHgyMDI5LCAweDAwMDAsIDB4MjUyMCwgMHg3MWQwLCAweDcyYzgsIDB4NzNjYywgMHg3MGM0LCAweDIwOTgsCi0JMHgyMGExLCAweDAwMzAsIDB4NzAwMywgMHgwMDAwLCAweDcwMDcsIDB4MDAwNiwgMHg3MzFhLCAweDcyMWUsCi0JMHg3NDIyLCAweDc1MjYsIDB4MjAyMSwgMHgwMDQwLCAweDcwMDcsIDB4MDAwNiwgMHg4MWZmLCAweDAwNDAsCi0JMHgxNWJhLCAweGExODIsIDB4MDA0MCwgMHgwMGM4LCAweDE2NjcsIDB4MjEyMCwgMHhhMDA2LCAweDIwMDgsCi0JMHg4NDAzLCAweDcwMTIsIDB4MjRhOCwgMHg1M2E2LCAweDcwMDcsIDB4MDAwMSwgMHg3MDA4LCAweGQwZmMsCi0JMHgwMDQwLCAweDE2NmUsIDB4YTA4NCwgMHgwMWUwLCAweDAwNDAsIDB4MTY1YywgMHg3MGMzLCAweDQwMDIsCi0JMHgwMDc4LCAweDE1YmQsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwgMHgwMDc4LCAweDE2NGIsCi0JMHg3MWM0LCAweDcwYzgsIDB4MjExNCwgMHhhNzllLCAweDAwMDQsIDB4MDBjMCwgMHgxNjg4LCAweDIwMGEsCi0JMHg3MmNhLCAweDAwNzgsIDB4MTViOSwgMHg3MGM3LCAweDAwMDgsIDB4NzBjYiwgMHgwMDBmLCAweDcwY2YsCi0JMHgwMDAwLCAweDAwNzgsIDB4MTViYSwgMHg3NWQ4LCAweDc2ZGMsIDB4NzVkYSwgMHg3NmRlLCAweDAwNzgsCi0JMHgxNjljLCAweDIwMjksIDB4MDAwMCwgMHgyNTMwLCAweDcwYzQsIDB4NzJjOCwgMHg3M2NjLCAweDc0ZDAsCi0JMHg3MGM2LCAweDcyY2EsIDB4NzNjZSwgMHg3NGQyLCAweGEwMDUsIDB4MDA0MCwgMHgxNmViLCAweGE0MGEsCi0JMHgwMDQwLCAweDE2YWMsIDB4MDBjOCwgMHgxNmI1LCAweDgwMDEsIDB4Nzg3MiwgMHhhMDg0LCAweGZjMDAsCi0JMHgwMDQwLCAweDE2YjksIDB4NzhhYywgMHhjMDg1LCAweDc4YWUsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsCi0JMHgxNWJjLCAweDdiN2UsIDB4N2E3YSwgMHg3ZTg2LCAweDdkODIsIDB4N2M3NiwgMHhhNDhjLCAweGZmMDAsCi0JMHgwMDQwLCAweDE2ZDEsIDB4ODQwNywgMHg4MDA0LCAweDgwMDQsIDB4ODEwYywgMHg4MTBjLCAweDgxMGYsCi0JMHhhMTE4LCAweGEyOTEsIDB4MDAwMCwgMHhhNmIxLCAweDAwMDAsIDB4YTU4MSwgMHgwMDAwLCAweDAwNzgsCi0JMHgxNmRiLCAweDg0MDcsIDB4ODAwNCwgMHg4MDA0LCAweGEzMTgsIDB4YTI5MSwgMHgwMDAwLCAweGE2YjEsCi0JMHgwMDAwLCAweGE1ODEsIDB4MDAwMCwgMHg3MzFhLCAweDcyMWUsIDB4NzYyMiwgMHg3MDI2LCAweGE2MDUsCi0JMHgwMDQwLCAweDE2ZTUsIDB4N2ExMCwgMHhjMmM1LCAweDdhMTIsIDB4NzhhYywgMHhhMDg0LCAweGZmZmMsCi0JMHg3OGFlLCAweDAwNzgsIDB4MTZlZSwgMHg3OGFjLCAweGMwODUsIDB4NzhhZSwgMHgwMDc4LCAweDE1YmEsCi0JMHg3NWQ4LCAweDc2ZGMsIDB4NzVkYSwgMHg3NmRlLCAweDAwNzgsIDB4MTZmOSwgMHgyMDI5LCAweDAwMDAsCi0JMHgyNTMwLCAweDcwYzQsIDB4NzJjOCwgMHg3M2NjLCAweDc0ZDQsIDB4NzBjNiwgMHg3MmNhLCAweDczY2UsCi0JMHg3NGQ2LCAweGEwMDUsIDB4MDA0MCwgMHgxNzI4LCAweGE0MGEsIDB4MDA0MCwgMHgxNzA5LCAweDAwYzgsCi0JMHgxNWJjLCAweDgwMDEsIDB4Nzg5MiwgMHhhMDg0LCAweGZjMDAsIDB4MDA0MCwgMHgxNzE2LCAweDc4YWMsCi0JMHhjMGM1LCAweDc4YWUsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsIDB4MTViYywgMHg3YTlhLCAweDdiOWUsCi0JMHg3ZGEyLCAweDdlYTYsIDB4MjYwMCwgMHhhNTA1LCAweDAwNDAsIDB4MTcyMSwgMHg3YTEwLCAweGMyYzUsCi0JMHg3YTEyLCAweDdjOTYsIDB4NzhhYywgMHhhMDg0LCAweGZjZmYsIDB4NzhhZSwgMHgwMDc4LCAweDE3MmIsCi0JMHg3OGFjLCAweGMwYzUsIDB4NzhhZSwgMHgwMDc4LCAweDE1YmEsIDB4MjAwOSwgMHgwMDAwLCAweDc4NmMsCi0JMHhhMDY1LCAweDAwNDAsIDB4MTczNywgMHg4MTA4LCAweDYwMDAsIDB4MDA3OCwgMHgxNzMwLCAweDdhYzQsCi0JMHgwMDc4LCAweDE1YjgsIDB4MjAwOSwgMHg0ZTQ4LCAweDIxMGMsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsCi0JMHgxNWI5LCAweDIwMTEsIDB4NGU4OCwgMHgyMjE0LCAweDAwNzgsIDB4MTViOCwgMHgyMDA5LCAweDRlNDksCi0JMHgyMTBjLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YjksIDB4MjAxMSwgMHg0ZTg5LCAweDIyMTQsCi0JMHgwMDc4LCAweDE1YjgsIDB4MjA2MSwgMHg0ZTQwLCAweDYxMjgsIDB4NjIyYywgMHg4MjE0LCAweDgyMTQsCi0JMHg4MjE0LCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE3NjYsIDB4MjA2MSwgMHg0ZTgwLCAweDYzMjgsCi0JMHg3M2RhLCAweDYzMmMsIDB4ODMxYywgMHg4MzFjLCAweDgzMWMsIDB4NzNkZSwgMHgwMDc4LCAweDE1YjgsCi0JMHgyMDA5LCAweDRlNGMsIDB4MjEwYywgMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxNWI5LCAweDIwMTEsCi0JMHg0ZThjLCAweDIyMTQsIDB4MDA3OCwgMHgxNWI4LCAweDc5MTgsIDB4MDA3OCwgMHgxNWI5LCAweDIwMDksCi0JMHg0ZTRkLCAweDIxMGMsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTViOSwgMHgyMDExLCAweDRlOGQsCi0JMHgyMjE0LCAweDAwNzgsIDB4MTViOCwgMHgyMDA5LCAweDRlNGUsIDB4MjEwYywgMHg3ODEwLCAweGQwZWMsCi0JMHgwMGMwLCAweDE1YjksIDB4MjAxMSwgMHg0ZThlLCAweDIyMTQsIDB4MDA3OCwgMHgxNWI4LCAweDc5MjAsCi0JMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxNWI5LCAweDdhMjQsIDB4MDA3OCwgMHgxNWI4LCAweDcxYzQsCi0JMHhkMWZjLCAweDAwYzAsIDB4MTc5ZiwgMHgyMDExLCAweDUyYzAsIDB4MDA3OCwgMHgxN2ExLCAweDIwMTEsCi0JMHg1MzQwLCAweDgxMDcsIDB4YTA4NCwgMHgwMDBmLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGEyNjgsCi0JMHg2YTAwLCAweDY4MDQsIDB4ZDA5YywgMHgwMDQwLCAweDE3YjAsIDB4NmIwOCwgMHgwMDc4LCAweDE3YjEsCi0JMHg2YjBjLCAweDAwNzgsIDB4MTViNywgMHg3N2M0LCAweDEwNzgsIDB4MWRlNCwgMHgyMDkxLCAweDgwMDAsCi0JMHg2YjFjLCAweDZhMTQsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxNWI3LCAweDIwNjEsCi0JMHg0ZTQwLCAweDYxMTgsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTViOSwgMHgyMDYxLCAweDRlODAsCi0JMHg2MjE4LCAweDAwNzgsIDB4MTViOCwgMHg3N2M0LCAweDEwNzgsIDB4MWRlNCwgMHgyMDkxLCAweDgwMDAsCi0JMHg2OTA4LCAweDZhMTgsIDB4NmIxMCwgMHg3N2RhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDE1YjcsCi0JMHg3MWM0LCAweDIxMTAsIDB4YTI5NCwgMHgwMDBmLCAweGEyODIsIDB4MDAxMCwgMHgwMGM4LCAweDE1YjIsCi0JMHgxMDc4LCAweDI3N2YsIDB4YTM4NCwgMHg0MDAwLCAweDAwNDAsIDB4MTdlOCwgMHhhMjk1LCAweDAwMjAsCi0JMHgwMDc4LCAweDE1YjcsIDB4NzFjNCwgMHgyMTAwLCAweGMwYmMsIDB4YTA4MiwgMHgwMDEwLCAweDAwYzgsCi0JMHgxNWIyLCAweGQxYmMsIDB4MDBjMCwgMHgxN2Y5LCAweDIwMTEsIDB4NGU0OCwgMHgyMjA0LCAweDAwNzgsCi0JMHgxN2ZkLCAweDIwMTEsIDB4NGU4OCwgMHgyMjA0LCAweGMwYmQsIDB4MDA3ZSwgMHgyMTAwLCAweGMwYmMsCi0JMHgyMDEyLCAweDEwNzgsIDB4MjZkYywgMHgwMTdmLCAweDAwNzgsIDB4MTViOSwgMHg3MWM0LCAweDIwMjEsCi0JMHg0ZTQ5LCAweDI0MDQsIDB4NzBjNiwgMHgyMDE5LCAweDAwMDAsIDB4MDA3OCwgMHgxODE1LCAweDcxYzgsCi0JMHgyMDIxLCAweDRlODksIDB4MjQwNCwgMHg3MGNhLCAweGMzZmQsIDB4MjAxMSwgMHgxODM0LCAweDIwYTksCi0JMHgwMDA4LCAweDIyMDQsIDB4YTEwNiwgMHgwMDQwLCAweDE4MjQsIDB4ODIxMCwgMHgwMGYwLCAweDE4MTksCi0JMHg3MWM0LCAweDcyYzgsIDB4MDA3OCwgMHgxNWIxLCAweGEyOTIsIDB4MTgzNCwgMHgwMjdlLCAweDIxMjIsCi0JMHgwMTdmLCAweDEwNzgsIDB4MjZmZCwgMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxODMyLCAweGQzZmMsCi0JMHgwMDQwLCAweDE4MGYsIDB4MDA3OCwgMHgxNWJhLCAweDAzZTgsIDB4MDBmYSwgMHgwMWY0LCAweDAyZWUsCi0JMHgwMDA0LCAweDAwMDEsIDB4MDAwMiwgMHgwMDAzLCAweDIwNjEsIDB4NGU0MCwgMHg2MTI4LCAweDYyMmMsCisJMHgwODdhLCAweDA5N2EsIDB4NzBjMywgMHg0MDAyLCAweDAwNzgsIDB4MTVjNCwgMHgwMDY4LCAweDE1MWEsCisJMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwgMHhkMDg0LCAweDAwYzAsIDB4MTUxYSwgMHg3ODI4LCAweGEwMDUsCisJMHgwMGMwLCAweDE0OWUsIDB4MDAxMCwgMHgxNTFiLCAweDAwNzgsIDB4MTUxYSwgMHg3OTEwLCAweGQxZjQsCisJMHgwMDQwLCAweDE0YTQsIDB4MDA3OCwgMHgxNGI5LCAweDc5MTQsIDB4ZDFlYywgMHgwMDQwLCAweDE0YmQsCisJMHhkMGZjLCAweDAwNDAsIDB4MTRiMywgMHgwMDdlLCAweDEwNzgsIDB4MWRhZSwgMHgwMDdmLCAweDAwNDAsCisJMHgxNGJkLCAweDAwNzgsIDB4MTRiOSwgMHgwMDdlLCAweDEwNzgsIDB4MWRhMSwgMHgwMDdmLCAweDAwNDAsCisJMHgxNGJkLCAweDIwMDEsIDB4NDAwNywgMHgwMDc4LCAweDE1YzMsIDB4NzkxMCwgMHhkMGZjLCAweDAwYzAsCisJMHgxNGM3LCAweDIwNjEsIDB4NGY0MCwgMHhjMTljLCAweGM3ZmMsIDB4MDA3OCwgMHgxNGNiLCAweDIwNjEsCisJMHg0ZjgwLCAweGMxOWQsIDB4YzdmZCwgMHg2MDY0LCAweGEwMDUsIDB4MDBjMCwgMHgxNTFhLCAweDc5MTIsCisJMHg2MDgyLCAweDc4MjgsIDB4YzBmYywgMHhhMDg2LCAweDAwMTgsIDB4MDBjMCwgMHgxNGRiLCAweDBjN2UsCisJMHgxMDc4LCAweDFiODUsIDB4MGM3ZiwgMHg3ODJiLCAweDAwMDAsIDB4NjA3YywgMHhhMDY1LCAweDAwNDAsCisJMHgxNTAwLCAweDBjN2UsIDB4NjA5YywgMHgxMDc4LCAweDFlOTAsIDB4MGM3ZiwgMHg2MDlmLCAweDAwMDAsCisJMHgxMDc4LCAweDFjZDUsIDB4MjAwOSwgMHgwMDE4LCAweDYwODcsIDB4MDEwMywgMHg3ODEwLCAweDAwN2UsCisJMHg4NGZmLCAweDAwYzAsIDB4MTRmNiwgMHg4NWZmLCAweDAwNDAsIDB4MTRmOCwgMHhjMGM1LCAweDc4MTIsCisJMHgxMDc4LCAweDFkYmIsIDB4MDA3ZiwgMHg3ODEyLCAweDAwYzAsIDB4MTUxNCwgMHgxMDc4LCAweDFlMGQsCisJMHg3ODEwLCAweGQwOWMsIDB4MDBjMCwgMHgxNTA4LCAweDIwNjEsIDB4NGY0MCwgMHgwMDc4LCAweDE1MGMsCisJMHgyMDYxLCAweDRmODAsIDB4YzA5YywgMHg3ODEyLCAweDYwN2YsIDB4MDAwMCwgMHg2MGQ0LCAweGQwZGMsCisJMHgwMDQwLCAweDE1MTgsIDB4YzBkYywgMHg2MGQ2LCAweDIwMDEsIDB4NDAwNSwgMHgwMDc4LCAweDE1YzMsCisJMHgwMDc4LCAweDE1YzEsIDB4MDA3YywgMHg3ODEwLCAweGQwZjQsIDB4MDA0MCwgMHgxNTIzLCAweDIwMDEsCisJMHg0MDA3LCAweDAwNzgsIDB4MTVjMywgMHhhMDA2LCAweDcwYzIsIDB4NzBjNiwgMHg3MGNhLCAweDcwY2UsCisJMHg3MGRhLCAweDcwYzAsIDB4YTAzZCwgMHhhMDhhLCAweDAwNDAsIDB4MDBjOCwgMHgxNTMxLCAweDAwNzksCisJMHgxNTM4LCAweDIxMDAsIDB4YTA4YSwgMHgwMDQwLCAweDAwYzgsIDB4MTVjZiwgMHgwMDc5LCAweDE1NzgsCisJMHgxNWMxLCAweDE2MTcsIDB4MTVlMCwgMHgxNjRmLCAweDE2ODcsIDB4MTY4NywgMHgxNWQ3LCAweDFjZWQsCisJMHgxNjkyLCAweDE1Y2YsIDB4MTVlNCwgMHgxNWU2LCAweDE1ZTgsIDB4MTVlYSwgMHgxY2YyLCAweDE1Y2YsCisJMHgxNmEwLCAweDE2ZmQsIDB4MWJhNSwgMHgxY2U3LCAweDE1ZWMsIDB4MTllYSwgMHgxYTJjLCAweDFhNjcsCisJMHgxYWI4LCAweDE5YTUsIDB4MTliMiwgMHgxOWM2LCAweDE5ZDksIDB4MTdlYiwgMHgxNWNmLCAweDE3MzQsCisJMHgxNzQxLCAweDE3NGQsIDB4MTc1OSwgMHgxNzZmLCAweDE3N2IsIDB4MTc3ZSwgMHgxNzhhLCAweDE3OTYsCisJMHgxNzllLCAweDE3ZDMsIDB4MTdkZiwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE3ZjgsCisJMHgxODBhLCAweDE4MjYsIDB4MTg1YywgMHgxODg0LCAweDE4OTQsIDB4MTg5NywgMHgxOGM4LCAweDE4ZjksCisJMHgxOTBiLCAweDE5NzQsIDB4MTk4NCwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE5OTQsCisJMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsIDB4MWQxNywgMHgxZDFkLCAweDE1Y2YsCisJMHgxNWNmLCAweDE1Y2YsIDB4MWQyMSwgMHgxZDY2LCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHgxNjExLCAweDE2ODEsIDB4MTY5YSwgMHgxNmY3LCAweDFiOWYsIDB4MTVjZiwgMHgxNWNmLCAweDFiNjgsCisJMHgxNWNmLCAweDFkNmEsIDB4MWQwOSwgMHgxZDEzLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsIDB4MTVjZiwgMHgxNWNmLCAweDE1Y2YsCisJMHg3MmNhLCAweDcxYzYsIDB4MjAwMSwgMHg0MDA2LCAweDAwNzgsIDB4MTVjMywgMHg3M2NlLCAweDcyY2EsCisJMHg3MWM2LCAweDIwMDEsIDB4NDAwMCwgMHg3MGMyLCAweDAwNjgsIDB4MTVjNCwgMHgyMDYxLCAweDAwMDAsCisJMHg2MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg1MDAwLCAweDIwOTEsIDB4NDA4MCwgMHgwMDdjLCAweDcwYzMsCisJMHg0MDAxLCAweDAwNzgsIDB4MTVjNCwgMHg3MGMzLCAweDQwMDYsIDB4MDA3OCwgMHgxNWM0LCAweDIwOTksCisJMHgwMDQxLCAweDIwYTEsIDB4MDA0MSwgMHgyMGE5LCAweDAwMDUsIDB4NTNhMywgMHgwMDc4LCAweDE1YzEsCisJMHg3MGM0LCAweDcwYzMsIDB4MDAwNCwgMHgwMDdhLCAweDAwNzgsIDB4MTVjMSwgMHgwMDc4LCAweDE1YzEsCisJMHgwMDc4LCAweDE1YzEsIDB4MDA3OCwgMHgxNWMxLCAweDIwOTEsIDB4ODAwMCwgMHg3MGMzLCAweDAwMDQsCisJMHg3MGM3LCAweDQ5NTMsIDB4NzBjYiwgMHg1MDIwLCAweDcwY2YsIDB4MjAyMCwgMHg3MGQzLCAweDAwMDgsCisJMHgyMDAxLCAweDAwMGYsIDB4NzBkNiwgMHgyMDc5LCAweDAwMDAsIDB4NzgxYiwgMHgwMDAxLCAweDIwMzEsCisJMHgwMDMwLCAweDIwNTksIDB4MTAwMCwgMHgyMDI5LCAweDA0MWEsIDB4MjA1MSwgMHgwNDQ1LCAweDIwNjEsCisJMHgwNDQ3LCAweDIwYzEsIDB4MDAyMCwgMHgyMDkxLCAweDUwMDAsIDB4MjA5MSwgMHg0MDgwLCAweDAwNzgsCisJMHgwNDE4LCAweDc1ZDgsIDB4NzRkYywgMHg3NWRhLCAweDc0ZGUsIDB4MDA3OCwgMHgxNjFhLCAweDIwMjksCisJMHgwMDAwLCAweDI1MjAsIDB4NzFkMCwgMHg3MmM4LCAweDczY2MsIDB4NzBjNCwgMHgyMGEwLCAweDIwOTksCisJMHgwMDMwLCAweDcwMDMsIDB4MDAwMSwgMHg3MDA3LCAweDAwMDYsIDB4NzMxYSwgMHg3MjFlLCAweDc0MjIsCisJMHg3NTI2LCAweDIwMjEsIDB4MDA0MCwgMHg4MWZmLCAweDAwNDAsIDB4MTVjMSwgMHhhMTgyLCAweDAwNDAsCisJMHgwMGM4LCAweDE2MzQsIDB4MjEyMCwgMHhhMDA2LCAweDIwMDgsIDB4ODQwMywgMHg3MDEyLCAweDcwMDcsCisJMHgwMDA0LCAweDcwMDcsIDB4MDAwMSwgMHg3MDA4LCAweGQwZmMsIDB4MDA0MCwgMHgxNjNiLCAweDcwMDcsCisJMHgwMDAyLCAweGEwODQsIDB4MDFlMCwgMHgwMDQwLCAweDE2NDksIDB4NzBjMywgMHg0MDAyLCAweDAwNzgsCisJMHgxNWM0LCAweDI0YTgsIDB4NTNhNSwgMHgwMDc4LCAweDE2MmIsIDB4MDA3OCwgMHgxNWMxLCAweDIwMjksCisJMHgwMDAwLCAweDI1MjAsIDB4NzFkMCwgMHg3MmM4LCAweDczY2MsIDB4NzBjNCwgMHgyMDk4LCAweDIwYTEsCisJMHgwMDMwLCAweDcwMDMsIDB4MDAwMCwgMHg3MDA3LCAweDAwMDYsIDB4NzMxYSwgMHg3MjFlLCAweDc0MjIsCisJMHg3NTI2LCAweDIwMjEsIDB4MDA0MCwgMHg3MDA3LCAweDAwMDYsIDB4ODFmZiwgMHgwMDQwLCAweDE1YzEsCisJMHhhMTgyLCAweDAwNDAsIDB4MDBjOCwgMHgxNjZlLCAweDIxMjAsIDB4YTAwNiwgMHgyMDA4LCAweDg0MDMsCisJMHg3MDEyLCAweDI0YTgsIDB4NTNhNiwgMHg3MDA3LCAweDAwMDEsIDB4NzAwOCwgMHhkMGZjLCAweDAwNDAsCisJMHgxNjc1LCAweGEwODQsIDB4MDFlMCwgMHgwMDQwLCAweDE2NjMsIDB4NzBjMywgMHg0MDAyLCAweDAwNzgsCisJMHgxNWM0LCAweDc1ZDgsIDB4NzRkYywgMHg3NWRhLCAweDc0ZGUsIDB4MDA3OCwgMHgxNjUyLCAweDcxYzQsCisJMHg3MGM4LCAweDIxMTQsIDB4YTc5ZSwgMHgwMDA0LCAweDAwYzAsIDB4MTY4ZiwgMHgyMDBhLCAweDcyY2EsCisJMHgwMDc4LCAweDE1YzAsIDB4NzBjNywgMHgwMDA4LCAweDcwY2IsIDB4MDAwZiwgMHg3MGNmLCAweDAwMGIsCisJMHgwMDc4LCAweDE1YzEsIDB4NzVkOCwgMHg3NmRjLCAweDc1ZGEsIDB4NzZkZSwgMHgwMDc4LCAweDE2YTMsCisJMHgyMDI5LCAweDAwMDAsIDB4MjUzMCwgMHg3MGM0LCAweDcyYzgsIDB4NzNjYywgMHg3NGQwLCAweDcwYzYsCisJMHg3MmNhLCAweDczY2UsIDB4NzRkMiwgMHhhMDA1LCAweDAwNDAsIDB4MTZmMiwgMHhhNDBhLCAweDAwNDAsCisJMHgxNmIzLCAweDAwYzgsIDB4MTZiYywgMHg4MDAxLCAweDc4NzIsIDB4YTA4NCwgMHhmYzAwLCAweDAwNDAsCisJMHgxNmMwLCAweDc4YWMsIDB4YzA4NSwgMHg3OGFlLCAweDIwMDEsIDB4NDAwNSwgMHgwMDc4LCAweDE1YzMsCisJMHg3YjdlLCAweDdhN2EsIDB4N2U4NiwgMHg3ZDgyLCAweDdjNzYsIDB4YTQ4YywgMHhmZjAwLCAweDAwNDAsCisJMHgxNmQ4LCAweDg0MDcsIDB4ODAwNCwgMHg4MDA0LCAweDgxMGMsIDB4ODEwYywgMHg4MTBmLCAweGExMTgsCisJMHhhMjkxLCAweDAwMDAsIDB4YTZiMSwgMHgwMDAwLCAweGE1ODEsIDB4MDAwMCwgMHgwMDc4LCAweDE2ZTIsCisJMHg4NDA3LCAweDgwMDQsIDB4ODAwNCwgMHhhMzE4LCAweGEyOTEsIDB4MDAwMCwgMHhhNmIxLCAweDAwMDAsCisJMHhhNTgxLCAweDAwMDAsIDB4NzMxYSwgMHg3MjFlLCAweDc2MjIsIDB4NzAyNiwgMHhhNjA1LCAweDAwNDAsCisJMHgxNmVjLCAweDdhMTAsIDB4YzJjNSwgMHg3YTEyLCAweDc4YWMsIDB4YTA4NCwgMHhmZmZjLCAweDc4YWUsCisJMHgwMDc4LCAweDE2ZjUsIDB4NzhhYywgMHhjMDg1LCAweDc4YWUsIDB4MDA3OCwgMHgxNWMxLCAweDc1ZDgsCisJMHg3NmRjLCAweDc1ZGEsIDB4NzZkZSwgMHgwMDc4LCAweDE3MDAsIDB4MjAyOSwgMHgwMDAwLCAweDI1MzAsCisJMHg3MGM0LCAweDcyYzgsIDB4NzNjYywgMHg3NGQ0LCAweDcwYzYsIDB4NzJjYSwgMHg3M2NlLCAweDc0ZDYsCisJMHhhMDA1LCAweDAwNDAsIDB4MTcyZiwgMHhhNDBhLCAweDAwNDAsIDB4MTcxMCwgMHgwMGM4LCAweDE3MTksCisJMHg4MDAxLCAweDc4OTIsIDB4YTA4NCwgMHhmYzAwLCAweDAwNDAsIDB4MTcxZCwgMHg3OGFjLCAweGMwYzUsCisJMHg3OGFlLCAweDIwMDEsIDB4NDAwNSwgMHgwMDc4LCAweDE1YzMsIDB4N2E5YSwgMHg3YjllLCAweDdkYTIsCisJMHg3ZWE2LCAweDI2MDAsIDB4YTUwNSwgMHgwMDQwLCAweDE3MjgsIDB4N2ExMCwgMHhjMmM1LCAweDdhMTIsCisJMHg3Yzk2LCAweDc4YWMsIDB4YTA4NCwgMHhmY2ZmLCAweDc4YWUsIDB4MDA3OCwgMHgxNzMyLCAweDc4YWMsCisJMHhjMGM1LCAweDc4YWUsIDB4MDA3OCwgMHgxNWMxLCAweDIwMDksIDB4MDAwMCwgMHg3ODZjLCAweGEwNjUsCisJMHgwMDQwLCAweDE3M2UsIDB4ODEwOCwgMHg2MDAwLCAweDAwNzgsIDB4MTczNywgMHg3YWM0LCAweDAwNzgsCisJMHgxNWJmLCAweDIwMDksIDB4NGY0OCwgMHgyMTBjLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YzAsCisJMHgyMDExLCAweDRmODgsIDB4MjIxNCwgMHgwMDc4LCAweDE1YmYsIDB4MjAwOSwgMHg0ZjQ5LCAweDIxMGMsCisJMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxNWMwLCAweDIwMTEsIDB4NGY4OSwgMHgyMjE0LCAweDAwNzgsCisJMHgxNWJmLCAweDIwNjEsIDB4NGY0MCwgMHg2MTI4LCAweDYyMmMsIDB4ODIxNCwgMHg4MjE0LCAweDgyMTQsCisJMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxNzZkLCAweDIwNjEsIDB4NGY4MCwgMHg2MzI4LCAweDczZGEsCisJMHg2MzJjLCAweDgzMWMsIDB4ODMxYywgMHg4MzFjLCAweDczZGUsIDB4MDA3OCwgMHgxNWJmLCAweDIwMDksCisJMHg0ZjRjLCAweDIxMGMsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTVjMCwgMHgyMDExLCAweDRmOGMsCisJMHgyMjE0LCAweDAwNzgsIDB4MTViZiwgMHg3OTE4LCAweDAwNzgsIDB4MTVjMCwgMHgyMDA5LCAweDRmNGQsCisJMHgyMTBjLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YzAsIDB4MjAxMSwgMHg0ZjhkLCAweDIyMTQsCisJMHgwMDc4LCAweDE1YmYsIDB4MjAwOSwgMHg0ZjRlLCAweDIxMGMsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsCisJMHgxNWMwLCAweDIwMTEsIDB4NGY4ZSwgMHgyMjE0LCAweDAwNzgsIDB4MTViZiwgMHg3OTIwLCAweDc4MTAsCisJMHhkMGVjLCAweDAwYzAsIDB4MTVjMCwgMHg3YTI0LCAweDAwNzgsIDB4MTViZiwgMHg3MWM0LCAweGQxZmMsCisJMHgwMGMwLCAweDE3YTYsIDB4MjAxMSwgMHg1M2MwLCAweDAwNzgsIDB4MTdhOCwgMHgyMDExLCAweDU0NDAsCisJMHg4MTA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMjY4LCAweDZhMDAsCisJMHg2ODA0LCAweGQwOWMsIDB4MDA0MCwgMHgxN2I3LCAweDZiMDgsIDB4MDA3OCwgMHgxN2I4LCAweDZiMGMsCisJMHhkMWZjLCAweDAwYzAsIDB4MTdiZiwgMHgyMDIxLCAweDAyM2IsIDB4MDA3OCwgMHgxN2MxLCAweDIwMjEsCisJMHgwMTNiLCAweDI0MjQsIDB4NzkxNCwgMHhkMWU0LCAweDAwNDAsIDB4MTdjZCwgMHhkNGM0LCAweDAwYzAsCisJMHgxN2NjLCAweGM0ZDUsIDB4MDA3OCwgMHgxN2NkLCAweGM0ZGQsIDB4YTRhNCwgMHgxYzAwLCAweDc0ZGUsCisJMHg3MWM0LCAweDAwNzgsIDB4MTViZSwgMHg3N2M0LCAweDEwNzgsIDB4MWUyYiwgMHgyMDkxLCAweDgwMDAsCisJMHg2YjFjLCAweDZhMTQsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxNWJlLCAweDIwNjEsCisJMHg0ZjQwLCAweDYxMTgsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTVjMCwgMHgyMDYxLCAweDRmODAsCisJMHg2MjE4LCAweDAwNzgsIDB4MTViZiwgMHg3N2M0LCAweDEwNzgsIDB4MWUyYiwgMHgyMDkxLCAweDgwMDAsCisJMHg2OTA4LCAweDZhMTgsIDB4NmIxMCwgMHg3N2RhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDE1YmUsCisJMHg3MWM0LCAweDIxMTAsIDB4YTI5NCwgMHgwMDBmLCAweGEyODIsIDB4MDAxMCwgMHgwMGM4LCAweDE1YjksCisJMHgxMDc4LCAweDI3YzYsIDB4YTM4NCwgMHg0MDAwLCAweDAwNDAsIDB4MTgwOCwgMHhhMjk1LCAweDAwMjAsCisJMHgwMDc4LCAweDE1YmUsIDB4NzFjNCwgMHgyMTAwLCAweGMwYmMsIDB4YTA4MiwgMHgwMDEwLCAweDAwYzgsCisJMHgxNWI5LCAweGQxYmMsIDB4MDBjMCwgMHgxODE5LCAweDIwMTEsIDB4NGY0OCwgMHgyMjA0LCAweDAwNzgsCisJMHgxODFkLCAweDIwMTEsIDB4NGY4OCwgMHgyMjA0LCAweGMwYmQsIDB4MDA3ZSwgMHgyMTAwLCAweGMwYmMsCisJMHgyMDEyLCAweDEwNzgsIDB4MjcyMywgMHgwMTdmLCAweDAwNzgsIDB4MTVjMCwgMHg3MWM0LCAweDIwMjEsCisJMHg0ZjQ5LCAweDI0MDQsIDB4NzBjNiwgMHgyMDE5LCAweDAwMDAsIDB4MDA3OCwgMHgxODM1LCAweDcxYzgsCisJMHgyMDIxLCAweDRmODksIDB4MjQwNCwgMHg3MGNhLCAweGMzZmQsIDB4MjAxMSwgMHgxODU0LCAweDIwYTksCisJMHgwMDA4LCAweDIyMDQsIDB4YTEwNiwgMHgwMDQwLCAweDE4NDQsIDB4ODIxMCwgMHgwMGYwLCAweDE4MzksCisJMHg3MWM0LCAweDcyYzgsIDB4MDA3OCwgMHgxNWI4LCAweGEyOTIsIDB4MTg1NCwgMHgwMjdlLCAweDIxMjIsCisJMHgwMTdmLCAweDEwNzgsIDB4Mjc0NCwgMHg3ODEwLCAweGQwZWMsIDB4MDBjMCwgMHgxODUyLCAweGQzZmMsCisJMHgwMDQwLCAweDE4MmYsIDB4MDA3OCwgMHgxNWMxLCAweDAzZTgsIDB4MDBmYSwgMHgwMWY0LCAweDAyZWUsCisJMHgwMDA0LCAweDAwMDEsIDB4MDAwMiwgMHgwMDAzLCAweDIwNjEsIDB4NGY0MCwgMHg2MTI4LCAweDYyMmMsCiAJMHg4MjE0LCAweDgyMTQsIDB4ODIxNCwgMHg3MGM0LCAweDYwMmEsIDB4NzBjOCwgMHg4MDAzLCAweDgwMDMsCi0JMHg4MDAzLCAweDYwMmUsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTg2MiwgMHgwMjdlLCAweDAxN2UsCi0JMHgyMDYxLCAweDRlODAsIDB4NjEyOCwgMHg2MjJjLCAweDgyMTQsIDB4ODIxNCwgMHg4MjE0LCAweDcwZDgsCisJMHg4MDAzLCAweDYwMmUsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4MTg4MiwgMHgwMjdlLCAweDAxN2UsCisJMHgyMDYxLCAweDRmODAsIDB4NjEyOCwgMHg2MjJjLCAweDgyMTQsIDB4ODIxNCwgMHg4MjE0LCAweDcwZDgsCiAJMHg2MDJhLCAweDcwZGMsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4NjAyZSwgMHg3MWRhLCAweDcyZGUsCi0JMHgwMTdmLCAweDAyN2YsIDB4MDA3OCwgMHgxNWI4LCAweDIwNjEsIDB4NGU0MCwgMHg2MTMwLCAweDcwYzQsCi0JMHg2MDMyLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YjksIDB4MjA2MSwgMHg0ZTgwLCAweDYyMzAsCi0JMHg3MGM4LCAweDYwMzIsIDB4MDA3OCwgMHgxNWI4LCAweDc5MTgsIDB4MDA3OCwgMHgxNWI5LCAweDcxYzQsCi0JMHhhMTg0LCAweGZmY2YsIDB4MDA0MCwgMHgxODgzLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YjIsCi0JMHg3MmM4LCAweDAwNzgsIDB4MTViMSwgMHgyMDExLCAweDRlNGQsIDB4MjIwNCwgMHgyMTEyLCAweDAwN2UsCi0JMHgyMDE5LCAweDAwMDAsIDB4MTA3OCwgMHgyNzY0LCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDE4OTMsCi0JMHgwMTdmLCAweDAwNzgsIDB4MTViOSwgMHg3MWM4LCAweGExODQsIDB4ZmZjZiwgMHgwMDQwLCAweDE4OWMsCi0JMHgyMTEwLCAweDcxYzQsIDB4MDA3OCwgMHgxNWIxLCAweDIwMTEsIDB4NGU4ZCwgMHgyMjA0LCAweDIxMTIsCi0JMHgwMDdlLCAweGMzZmQsIDB4MTA3OCwgMHgyNzY0LCAweDAyN2YsIDB4MDE3ZiwgMHgwMDc4LCAweDE1YjgsCi0JMHg3MWM0LCAweGExODIsIDB4MDAxMCwgMHgwMDQ4LCAweDE4YjQsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsCi0JMHgxNWIyLCAweDcyYzgsIDB4MDA3OCwgMHgxNWIxLCAweDIwMTEsIDB4NGU0ZSwgMHgyMjA0LCAweDAwN2UsCi0JMHgyMTEyLCAweDIwMTksIDB4MDAwMCwgMHgxMDc4LCAweDI3NDIsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsCi0JMHgxOGM0LCAweDAxN2YsIDB4MDA3OCwgMHgxNWI5LCAweDcxYzgsIDB4YTE4MiwgMHgwMDEwLCAweDAwNDgsCi0JMHgxOGNkLCAweDIxMTAsIDB4NzFjNCwgMHgwMDc4LCAweDE1YjEsIDB4MjAxMSwgMHg0ZThlLCAweDIyMDQsCi0JMHgwMDdlLCAweDIxMTIsIDB4YzNmZCwgMHgxMDc4LCAweDI3NDIsIDB4MDI3ZiwgMHgwMTdmLCAweDAwNzgsCi0JMHgxNWI4LCAweDcxYzQsIDB4NzJjOCwgMHhhMTg0LCAweGZmZmQsIDB4MDBjMCwgMHgxNWIxLCAweGEyODQsCi0JMHhmZmZkLCAweDAwYzAsIDB4MTViMSwgMHgyMTAwLCAweDc5MjAsIDB4NzgyMiwgMHgyMjAwLCAweDdhMjQsCi0JMHg3ODI2LCAweDAwNzgsIDB4MTViOCwgMHg3MWM0LCAweGQxZmMsIDB4MDBjMCwgMHgxOGYzLCAweDIwMTEsCi0JMHg1MmMwLCAweDAwNzgsIDB4MThmNSwgMHgyMDExLCAweDUzNDAsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsCi0JMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMjY4LCAweDIwMTksIDB4MDAwMCwgMHg3MmM4LCAweDIwOTEsCi0JMHg4MDAwLCAweDY4MDAsIDB4MDA3ZSwgMHhhMjI2LCAweDAwNDAsIDB4MTkxZSwgMHg2YTAyLCAweGQ0ZWMsCi0JMHgwMDQwLCAweDE5MGIsIDB4YzNhNSwgMHhkNGU0LCAweDAwNDAsIDB4MTkwZiwgMHhjMzlkLCAweGQ0ZjQsCi0JMHgwMDQwLCAweDE5MWUsIDB4ODEwZiwgMHhkMmY0LCAweDAwNDAsIDB4MTkxYSwgMHgxMDc4LCAweDI3YzEsCi0JMHgwMDc4LCAweDE5MWUsIDB4MTA3OCwgMHgyNzlmLCAweDAwNzgsIDB4MTkxZSwgMHg3MmNjLCAweDY4MDgsCi0JMHhhMjA2LCAweDAwNDAsIDB4MTk0MCwgMHhhMmE0LCAweDAwZmYsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsCi0JMHgxOTMxLCAweGE0ODIsIDB4MDAyOCwgMHgwMDQ4LCAweDE5M2QsIDB4MDA0MCwgMHgxOTNkLCAweDAwNzgsCi0JMHgxOTM1LCAweGE0ODIsIDB4MDA0MywgMHgwMDQ4LCAweDE5M2QsIDB4NzFjNCwgMHg3MWM2LCAweDAyN2YsCi0JMHg3MmNhLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDE1YjMsIDB4NmEwYSwgMHhhMzlkLCAweDAwMGEsCi0JMHg2ODA0LCAweGEzMDUsIDB4NjgwNiwgMHgwMjdmLCAweDZiMGMsIDB4NzFjNCwgMHgyMDkxLCAweDgwMDEsCi0JMHgwMDc4LCAweDE1YjcsIDB4NzdjNCwgMHgxMDc4LCAweDFkZTQsIDB4MjA5MSwgMHg4MDAwLCAweDZhMTQsCi0JMHg2YjFjLCAweDIwOTEsIDB4ODAwMSwgMHg3MGM4LCAweDY4MTYsIDB4NzBjYywgMHg2ODFlLCAweDI3MDgsCi0JMHgwMDc4LCAweDE1YjcsIDB4NzBjNCwgMHgyMDYxLCAweDRlNDAsIDB4NjExOCwgMHg2MDFhLCAweDc4MTAsCi0JMHhkMGVjLCAweDAwYzAsIDB4MTViOSwgMHg3MGM4LCAweDIwNjEsIDB4NGU4MCwgMHg2MjE4LCAweDYwMWEsCi0JMHgwMDc4LCAweDE1YjgsIDB4NzFjNCwgMHg3MmM4LCAweDczY2MsIDB4YTE4MiwgMHgwMDEwLCAweDAwYzgsCi0JMHgxNWIyLCAweDEwNzgsIDB4MjdlMywgMHhhMzg0LCAweDQwMDAsIDB4MDA0MCwgMHgxOTc5LCAweGEyOTUsCi0JMHgwMDIwLCAweDAwNzgsIDB4MTViNywgMHg3N2M0LCAweDEwNzgsIDB4MWRlNCwgMHgyMDkxLCAweDgwMDAsCi0JMHg2YTA4LCAweGMyOGQsIDB4NmEwYSwgMHgyMDkxLCAweDgwMDEsIDB4MjcwOCwgMHgwMDc4LCAweDE1YjgsCi0JMHg3N2M0LCAweDEwNzgsIDB4MWRlNCwgMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwgMHhhMjk0LCAweGZmZjksCi0JMHg2YTBhLCAweDY4MDQsIDB4YTAwNSwgMHgwMDQwLCAweDE5OTcsIDB4MTA3OCwgMHgyNjI4LCAweDIwOTEsCi0JMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxNWI4LCAweDc3YzQsIDB4MTA3OCwgMHgxZGU0LCAweDIwOTEsCi0JMHg4MDAwLCAweDZhMDgsIDB4YzI5NSwgMHg2YTBhLCAweDY4MDQsIDB4YTAwNSwgMHgwMDQwLCAweDE5YWEsCi0JMHgxMDc4LCAweDI2MjgsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4MDA3OCwgMHgxNWI4LCAweDc3YzQsCi0JMHgyMDQxLCAweDAwMDEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAyMCwgMHgyMDkxLCAweDgwMDAsCi0JMHgxMDc4LCAweDFkZmYsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsIDB4NmEwOCwgMHgwMDc4LCAweDE1YjgsCi0JMHg3N2M0LCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDE5ZDQsIDB4ZDdmYywgMHgwMDQwLCAweDE5Y2UsCi0JMHgxMDc4LCAweDFkNjQsIDB4MDA0MCwgMHgxOWQ0LCAweDAwNzgsIDB4MTViYywgMHgxMDc4LCAweDFkNTQsCi0JMHgwMDQwLCAweDE5ZDQsIDB4MDA3OCwgMHgxNWJjLCAweDczYzgsIDB4NzJjYywgMHg3N2M2LCAweDczY2EsCi0JMHg3MmNlLCAweDEwNzgsIDB4MWU4NiwgMHgwMGMwLCAweDE5ZmUsIDB4NjgxOCwgMHhhMDA1LCAweDAwNDAsCi0JMHgxOWY4LCAweDI3MDgsIDB4MDc3ZSwgMHgxMDc4LCAweDI4MTMsIDB4MDc3ZiwgMHgwMGMwLCAweDE5ZjgsCi0JMHgyMDAxLCAweDAwMTUsIDB4ZDdmYywgMHgwMGMwLCAweDE5ZjEsIDB4MjA2MSwgMHg0ZTQwLCAweDAwNzgsCi0JMHgxOWY0LCAweGMwZmQsIDB4MjA2MSwgMHg0ZTgwLCAweDc4MmEsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCi0JMHgyMDkxLCAweDgwMDEsIDB4MjAwMSwgMHg0MDA1LCAweDAwNzgsIDB4MTViYywgMHgyMDkxLCAweDgwMDEsCi0JMHgwMDc4LCAweDE1YmEsIDB4NzdjNCwgMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxYTE2LCAweGQ3ZmMsCi0JMHgwMDQwLCAweDFhMTAsIDB4MTA3OCwgMHgxZDY0LCAweDAwNDAsIDB4MWExNiwgMHgwMDc4LCAweDE1YmMsCi0JMHgxMDc4LCAweDFkNTQsIDB4MDA0MCwgMHgxYTE2LCAweDAwNzgsIDB4MTViYywgMHg3N2M2LCAweDIwNDEsCi0JMHgwMDIxLCAweDIwNDksIDB4MDAwNSwgMHgyMDUxLCAweDAwMjAsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsCi0JMHgxZGZmLCAweDIwMDksIDB4MDAxNiwgMHhkN2ZjLCAweDAwYzAsIDB4MWEyYSwgMHgyMDYxLCAweDRlNDAsCi0JMHgwMDc4LCAweDFhMmQsIDB4MjA2MSwgMHg0ZTgwLCAweGMxZmQsIDB4NjA2NywgMHgwMDAzLCAweDYwN2YsCi0JMHgwMDAwLCAweDY3NzYsIDB4NjA4MywgMHgwMDBmLCAweDc5MmEsIDB4NjFkNCwgMHhjMWRjLCAweDYxZDYsCi0JMHgxMDc4LCAweDI2MjgsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4NzdjOCwgMHg3N2NhLCAweDc3YzQsCi0JMHg3N2M2LCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDFhNTQsIDB4ZDdmYywgMHgwMDQwLCAweDFhNGUsCi0JMHgxMDc4LCAweDFkNjQsIDB4MDA0MCwgMHgxYTU0LCAweDAwNzgsIDB4MTViYywgMHgxMDc4LCAweDFkNTQsCi0JMHgwMDQwLCAweDFhNTQsIDB4MDA3OCwgMHgxNWJjLCAweGE3YmMsIDB4ZmYwMCwgMHgyMDkxLCAweDgwMDAsCi0JMHgyMDA5LCAweDAwMTcsIDB4ZDdmYywgMHgwMGMwLCAweDFhNjEsIDB4MjA2MSwgMHg0ZTQwLCAweDAwNzgsCi0JMHgxYTY0LCAweDIwNjEsIDB4NGU4MCwgMHhjMWZkLCAweDYwN2YsIDB4MDAwMCwgMHg2MDY3LCAweDAwMDIsCi0JMHg2Nzc2LCAweDYwODMsIDB4MDAwZiwgMHg3OTJhLCAweDYxZDQsIDB4YzFkYywgMHg2MWQ2LCAweDEwNzgsCi0JMHgyNjI4LCAweDIwOTEsIDB4ODAwMSwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsCi0JMHgwMDEwLCAweDIwOTEsIDB4ODAwMCwgMHg3MGM4LCAweGEwMDUsIDB4MDA0MCwgMHgxYTgyLCAweDYwZDQsCi0JMHhjMGZkLCAweDYwZDYsIDB4MTA3OCwgMHgxZGZmLCAweDcwYzgsIDB4NjgzNiwgMHg4NzM4LCAweGE3ODQsCi0JMHgwMDFmLCAweDAwYzAsIDB4MWE4MiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHgyMDE5LCAweDAwMDAsCi0JMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxYWE0LCAweDcyYzgsIDB4ZDI4NCwgMHgwMDQwLCAweDFhOWUsCi0JMHgxMDc4LCAweDFkNjQsIDB4MDA0MCwgMHgxYWE0LCAweDAwNzgsIDB4MTViYywgMHgxMDc4LCAweDFkNTQsCi0JMHgwMDQwLCAweDFhYTQsIDB4MDA3OCwgMHgxNWJjLCAweDcyYzgsIDB4NzJjYSwgMHg3OGFjLCAweGEwODQsCi0JMHgwMDAzLCAweDAwYzAsIDB4MWFjZiwgMHgyMDM5LCAweDAwMDAsIDB4ZDI4NCwgMHgwMDQwLCAweDFhYjEsCi0JMHhjN2ZkLCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwgMHgwMDA4LCAweDEwNzgsCi0JMHgxZGU0LCAweDIwOTEsIDB4ODAwMCwgMHg2ODA4LCAweGMwZDQsIDB4YTgwZCwgMHg2OTBhLCAweDIwOTEsCi0JMHg4MDAxLCAweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDAwYzAsIDB4MWFiNywgMHhhN2JjLCAweGZmMDAsCi0JMHg4NzNmLCAweDg3MzgsIDB4ODczZiwgMHhhNzg0LCAweDBmMDAsIDB4MDBjMCwgMHgxYWI3LCAweDIwOTEsCi0JMHg4MDAwLCAweDcyYzgsIDB4ZDI4NCwgMHgwMGMwLCAweDFhZTEsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsCi0JMHgxYWRkLCAweDIwNjksIDB4MDEwMCwgMHgwMDc4LCAweDFhZTMsIDB4MjA2OSwgMHgwMjAwLCAweDAwNzgsCi0JMHgxYWUzLCAweDIwNjksIDB4MDEwMCwgMHg2ODA4LCAweGEwODQsIDB4ZmZmZCwgMHg2ODBhLCAweDY4MzAsCi0JMHhkMGI0LCAweDAwNDAsIDB4MWIwMywgMHg2ODRiLCAweDAwMDQsIDB4MjBhOSwgMHgwMDE0LCAweDY4NDgsCi0JMHhkMDk0LCAweDAwNDAsIDB4MWFmNSwgMHgwMGYwLCAweDFhZWYsIDB4Njg0YiwgMHgwMDA5LCAweDIwYTksCi0JMHgwMDE0LCAweDY4NDgsIDB4ZDA4NCwgMHgwMDQwLCAweDFhZmYsIDB4MDBmMCwgMHgxYWY5LCAweDIwYTksCi0JMHgwMGZhLCAweDAwZjAsIDB4MWIwMSwgMHgyMDc5LCAweDRlMDAsIDB4MjAwOSwgMHgwMDE4LCAweDcyYzgsCi0JMHhkMjg0LCAweDAwYzAsIDB4MWIwZiwgMHgyMDYxLCAweDRlNDAsIDB4MDA3OCwgMHgxYjEyLCAweDIwNjEsCi0JMHg0ZTgwLCAweGMxZmQsIDB4NjA3ZiwgMHgwMDAwLCAweDc5MmEsIDB4NjA2NywgMHgwMDAxLCAweDYwODMsCi0JMHgwMDBmLCAweDYwYTcsIDB4MDAwMCwgMHg2MGE4LCAweDYwYjIsIDB4NjBiNiwgMHg2MGQ0LCAweGQwYjQsCi0JMHgwMDQwLCAweDFiMmUsIDB4YzBiNCwgMHg2MGQ2LCAweDBjN2UsIDB4NjBiOCwgMHhhMDY1LCAweDYwMDgsCi0JMHhjMGQ0LCAweDYwMGEsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4MGM3ZiwgMHg2MGQ0LCAweGEwODQsCi0JMHg3N2ZmLCAweDYwZDYsIDB4NzhhYywgMHhjMDhkLCAweDc4YWUsIDB4ODNmZiwgMHgwMDQwLCAweDFiMzksCi0JMHgwMDdjLCAweDY4MWIsIDB4MDA0NywgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHg3M2NjLCAweDEwNzgsCi0JMHgxYTkwLCAweDY5ZWMsIDB4NmE0OCwgMHhhMTg1LCAweDE4MDAsIDB4Njg0YSwgMHhhMTg1LCAweDAwNDAsCi0JMHg2OGVlLCAweDczY2MsIDB4MjAyMSwgMHgwMDA0LCAweDIwYTksIDB4MDlmZiwgMHgwMGYwLCAweDFiNGUsCi0JMHg4NDIxLCAweDAwYzAsIDB4MWI0YywgMHg4MzE5LCAweDAwYzAsIDB4MWI0YSwgMHg2OWVlLCAweDZhNGEsCi0JMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHhkN2ZjLCAweDAwYzAsIDB4MWI2MiwgMHgyMDY5LCAweDRlNDAsCi0JMHgwMDc4LCAweDFiNjQsIDB4MjA2OSwgMHg0ZTgwLCAweDcxYzQsIDB4NzFjNiwgMHg2OTE2LCAweDgxZmYsCi0JMHgwMGMwLCAweDFiNmMsIDB4NjhhNywgMHgwMDAxLCAweDc4YWMsIDB4YzA4YywgMHg3OGFlLCAweGQwODQsCi0JMHgwMGMwLCAweDFiNzQsIDB4MTA3OCwgMHgxZWU2LCAweDAwN2MsIDB4NzVkOCwgMHg3NGRjLCAweDc1ZGEsCi0JMHg3NGRlLCAweDAwNzgsIDB4MWI3ZSwgMHgyMDI5LCAweDAwMDAsIDB4MjUyMCwgMHg3MWM0LCAweDczYzgsCi0JMHg3MmNjLCAweDcxYzYsIDB4NzNjYSwgMHg3MmNlLCAweDIwNzksIDB4NGUwMCwgMHg3ZGRlLCAweDdjZGEsCi0JMHg3YmQ2LCAweDdhZDIsIDB4MTA3OCwgMHgxZGJkLCAweDAwNDAsIDB4MWM4MCwgMHgyMGE5LCAweDAwMDUsCi0JMHgyMGExLCAweDRlMTQsIDB4MjA5MSwgMHg4MDAwLCAweDQxYTEsIDB4MjA5MSwgMHg4MDAxLCAweDIwMDksCi0JMHgwMDQwLCAweDEwNzgsIDB4MWZkMSwgMHgwMDQwLCAweDFiYTEsIDB4MTA3OCwgMHgxZGM2LCAweDAwNzgsCi0JMHgxYzgwLCAweDYwMDQsIDB4YTA4YywgMHgwMGZmLCAweGExOGUsIDB4MDAwOSwgMHgwMGMwLCAweDFiYWMsCi0JMHgwMDdlLCAweDEwNzgsIDB4MjM3OCwgMHgwMDdmLCAweGEwODQsIDB4ZmYwMCwgMHg4MDA3LCAweDgwMDksCi0JMHgwMDQwLCAweDFjMjAsIDB4MGM3ZSwgMHgyYzY4LCAweDEwNzgsIDB4MWRiZCwgMHgwMDQwLCAweDFiZjIsCi0JMHgyYzAwLCAweDY4OWUsIDB4ODEwOSwgMHgwMGMwLCAweDFiYjMsIDB4NjA5ZiwgMHgwMDAwLCAweDBjN2YsCi0JMHgwYzdlLCAweDdkZGMsIDB4N2NkOCwgMHg3YmQ0LCAweDdhZDAsIDB4YTI5MCwgMHgwMDQwLCAweGEzOTksCi0JMHgwMDAwLCAweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4N2RkZSwgMHg3Y2RhLCAweDdiZDYsCi0JMHg3YWQyLCAweDJjNjgsIDB4Njg5YywgMHhhMDY1LCAweDAwNDAsIDB4MWMxZiwgMHgyMDA5LCAweDAwNDAsCi0JMHgxMDc4LCAweDFmZDEsIDB4MDBjMCwgMHgxYzA5LCAweDYwMDQsIDB4YTA4NCwgMHgwMGZmLCAweGEwODYsCi0JMHgwMDAyLCAweDAwYzAsIDB4MWJmMiwgMHg2MDA0LCAweGEwODQsIDB4MDBmZiwgMHhhMDg2LCAweDAwMGEsCi0JMHgwMGMwLCAweDFiZWUsIDB4MDE3ZSwgMHgxMDc4LCAweDIzNzQsIDB4MDE3ZiwgMHgyZDAwLCAweDYwMDIsCi0JMHgwMDc4LCAweDFiYzEsIDB4MGM3ZiwgMHgwYzdlLCAweDYwOWMsIDB4MTA3OCwgMHgxZTQ5LCAweDBjN2YsCi0JMHg2MDlmLCAweDAwMDAsIDB4MTA3OCwgMHgxYzg0LCAweDIwMDksIDB4MDAxOCwgMHg2MDA4LCAweGMwY2QsCi0JMHg2MDBhLCAweDYwMDQsIDB4NjA4NiwgMHgxMDc4LCAweDFkNzQsIDB4MTA3OCwgMHgxZGM2LCAweDAwNzgsCi0JMHgxYzgwLCAweDBjN2YsIDB4MGM3ZSwgMHg2MDljLCAweDEwNzgsIDB4MWU0OSwgMHgwYzdmLCAweDYwOWYsCi0JMHgwMDAwLCAweDEwNzgsIDB4MWM4NCwgMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLCAweDYwMWIsCi0JMHgwMDAzLCAweDEwNzgsIDB4MWQ3NCwgMHgxMDc4LCAweDFkYzYsIDB4MDA3OCwgMHgxYzgwLCAweDBjN2YsCi0JMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxYzQ1LCAweDYxMTQsIDB4ZDFmYywgMHgwMDQwLCAweDFjMmUsCi0JMHgxMDc4LCAweDFkNjQsIDB4MDA0MCwgMHgxYzQ1LCAweDAwNzgsIDB4MWMzMiwgMHgxMDc4LCAweDFkNTQsCi0JMHgwMDQwLCAweDFjNDUsIDB4MjAyOSwgMHgwMDAwLCAweDI1MjAsIDB4MjAwOSwgMHgwMDE4LCAweDczYzgsCi0JMHg3MmNjLCAweDYwODcsIDB4MDEwMywgMHg2MDFiLCAweDAwMjEsIDB4MTA3OCwgMHgxZDc0LCAweDEwNzgsCi0JMHgxZGM2LCAweDIwMDEsIDB4NDAwNywgMHgwMDc4LCAweDE1YmMsIDB4NzRjNCwgMHg3M2M4LCAweDcyY2MsCi0JMHg2MDE0LCAweDIwOTEsIDB4ODAwMCwgMHgwZTdlLCAweDIwMDksIDB4MDAxMiwgMHhkMGZjLCAweDAwYzAsCi0JMHgxYzU1LCAweDIwNzEsIDB4NGU0MCwgMHgwMDc4LCAweDFjNTgsIDB4MjA3MSwgMHg0ZTgwLCAweGMxZmQsCi0JMHg3OTJhLCAweDcwNjcsIDB4MDAwNSwgMHg3MWQ0LCAweGMxZGMsIDB4NzFkNiwgMHg3MzZhLCAweDcyNmUsCi0JMHg3NDcyLCAweDcwNzYsIDB4NzA3YiwgMHgwMDAwLCAweDJjMDAsIDB4NzA3ZSwgMHhhMDJlLCAweDI1MzAsCi0JMHg2MTFjLCAweGExODQsIDB4MDA2MCwgMHgwMDQwLCAweDFjNmYsIDB4MTA3OCwgMHg0NjMyLCAweDBlN2YsCi0JMHg2NTk2LCAweDY1YTYsIDB4NjY5YSwgMHg2NmFhLCAweDYwYWYsIDB4MDAwMCwgMHg2MGIzLCAweDAwMDAsCi0JMHg2NzE0LCAweDYwMjMsIDB4MDAwMCwgMHgxMDc4LCAweDI2MjgsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCi0JMHg3MGMzLCAweDQwMDUsIDB4MDA3OCwgMHgxNWJkLCAweDIwYTksIDB4MDAwNSwgMHgyMDk5LCAweDRlMTQsCi0JMHgyMDkxLCAweDgwMDAsIDB4NTMwYSwgMHgyMDkxLCAweDgwMDEsIDB4MjEwMCwgMHhhMjEwLCAweGEzOTksCi0JMHgwMDAwLCAweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsIDB4MDA3YywgMHg3MWM0LCAweDcwYzcsCi0JMHgwMDAwLCAweDc5MWUsIDB4MDA3OCwgMHgxNWJhLCAweDcxYzQsIDB4NzFjNiwgMHgyMTY4LCAweDAwNzgsCi0JMHgxY2EzLCAweDIwNjksIDB4MTAwMCwgMHg2OTBjLCAweGEwMTYsIDB4MmQwNCwgMHhhMjEwLCAweDhkNjgsCi0JMHg4MTA5LCAweDAwYzAsIDB4MWNhNSwgMHhhMjg1LCAweDAwMDAsIDB4MDBjMCwgMHgxY2IzLCAweDcwYzMsCi0JMHg0MDAwLCAweDAwNzgsIDB4MWNiNSwgMHg3MGMzLCAweDQwMDMsIDB4NzBjYSwgMHgwMDc4LCAweDE1YmQsCi0JMHg3OTY0LCAweDcxYzYsIDB4NzFjNCwgMHhhMTgyLCAweDAwMDMsIDB4MDBjOCwgMHgxNWIyLCAweDc5NjYsCi0JMHgwMDc4LCAweDE1YmEsIDB4Nzk2NCwgMHg3MWM2LCAweDAwNzgsIDB4MTViYSwgMHg3OTAwLCAweDcxYzYsCi0JMHg3MWM0LCAweDc5MDIsIDB4MDA3OCwgMHgxNWJhLCAweDc5MDAsIDB4NzFjNiwgMHgwMDc4LCAweDE1YmEsCi0JMHg3MGM0LCAweDIwMTEsIDB4MDAwMCwgMHhhMDhjLCAweDAwMGQsIDB4MDA0MCwgMHgxY2U1LCAweDgxMGMsCi0JMHgwMDQ4LCAweDFjZTEsIDB4ODIxMCwgMHg4MTBjLCAweDgxMGMsIDB4MDA0OCwgMHgxY2UxLCAweDgyMTAsCi0JMHg4MTBjLCAweDgxZmYsIDB4MDBjMCwgMHgxNWIzLCAweDgyMTAsIDB4N2EwZSwgMHhkMjhjLCAweDAwNDAsCi0JMHgxZDExLCAweDc5MTAsIDB4YzFjZCwgMHg3OTEyLCAweDIwMDksIDB4MDAyMSwgMHgyMDE5LCAweDAwMDMsCi0JMHhkMjg0LCAweDAwNDAsIDB4MWQwYiwgMHg4MTA4LCAweDIwMTksIDB4MDA0MSwgMHgyMDExLCAweDk2NGUsCi0JMHgyMzEyLCAweDIwMTksIDB4MDA0MiwgMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQzLCAweDgyMTAsCi0JMHgyMzEyLCAweDIwMTksIDB4MDA0NiwgMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQ3LCAweDgyMTAsCi0JMHgyMzEyLCAweDIwMTksIDB4MDAwNiwgMHgyMDExLCAweDk2NTMsIDB4MjExMiwgMHgyMDExLCAweDk2NzMsCi0JMHgyMzEyLCAweDc5MDQsIDB4NzgwNiwgMHgwMDc4LCAweDE1YjksIDB4NzgwNCwgMHg3MGM2LCAweDAwNzgsCi0JMHgxNWJhLCAweDcxYzQsIDB4ZDFmYywgMHgwMGMwLCAweDFkMjEsIDB4MjAxMSwgMHg1MmMwLCAweDAwNzgsCi0JMHgxZDIzLCAweDIwMTEsIDB4NTM0MCwgMHg4MTA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsCi0JMHg4MDAzLCAweGEyNjgsIDB4NmExNCwgMHhkMmI0LCAweDAwNDAsIDB4MWQzMiwgMHgyMDExLCAweDAwMDEsCi0JMHgwMDc4LCAweDFkMzQsIDB4MjAxMSwgMHgwMDAwLCAweDZiMGMsIDB4NjgwMCwgMHg3MGRhLCAweDAwNzgsCi0JMHgxNWI3LCAweDAxN2UsIDB4NzgxNCwgMHhkMGY0LCAweDAwNDAsIDB4MWQ0NiwgMHgyMDAxLCAweDQwMDcsCi0JMHg3MGRiLCAweDAwMDAsIDB4YTE4ZCwgMHgwMDAxLCAweDAwNzgsIDB4MWQ1MiwgMHhkMGZjLCAweDAwNDAsCi0JMHgxZDUxLCAweDIwMDEsIDB4NDAwNywgMHg3MGRiLCAweDAwMDEsIDB4YTE4ZCwgMHgwMDAxLCAweDAwNzgsCi0JMHgxZDUyLCAweGEwMDYsIDB4MDE3ZiwgMHgwMDdjLCAweDAxN2UsIDB4NzgxNCwgMHhkMGY0LCAweDAwNDAsCi0JMHgxZDYxLCAweDIwMDEsIDB4NDAwNywgMHg3MGRiLCAweDAwMDAsIDB4YTE4ZCwgMHgwMDAxLCAweDAwNzgsCi0JMHgxZDYyLCAweGEwMDYsIDB4MDE3ZiwgMHgwMDdjLCAweDAxN2UsIDB4NzgxNCwgMHhkMGZjLCAweDAwNDAsCi0JMHgxZDcxLCAweDIwMDEsIDB4NDAwNywgMHg3MGRiLCAweDAwMDEsIDB4YTE4ZCwgMHgwMDAxLCAweDAwNzgsCi0JMHgxZDcyLCAweGEwMDYsIDB4MDE3ZiwgMHgwMDdjLCAweDcxMTIsIDB4NzIxYSwgMHg3MzFlLCAweDc4MTAsCi0JMHhkMGM0LCAweDAwNDAsIDB4MWQ3ZCwgMHg3NDIyLCAweDc1MjYsIDB4YWM4MCwgMHgwMDAxLCAweDgxMDgsCi0JMHg4MTBjLCAweDgxYTksIDB4ODA5OCwgMHgyMGExLCAweDAwMzAsIDB4NzAwMywgMHgwMDAwLCAweDYwODQsCi0JMHgyMGEyLCAweDUzYTYsIDB4NzAwNywgMHgwMDAxLCAweDc5NzQsIDB4YTE4NCwgMHhmZjAwLCAweDAwNDAsCi0JMHgxZDlhLCAweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsCi0JMHgwMDc4LCAweDFkOWQsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsIDB4Nzk3YywgMHhhMTA4LCAweDdhNzgsCi0JMHhhMDA2LCAweGEyMTEsIDB4N2QxMCwgMHhkNWM0LCAweDAwNDAsIDB4MWRhYSwgMHg3Yjg0LCAweGEzMTksCi0JMHg3YzgwLCAweGE0MjEsIDB4NzAwOCwgMHhkMGZjLCAweDAwNDAsIDB4MWRhYSwgMHg3MDAzLCAweDAwMDEsCi0JMHg3MDA3LCAweDAwMDYsIDB4NzExYSwgMHg3MjFlLCAweDdkMTAsIDB4ZDVjNCwgMHgwMDQwLCAweDFkYmEsCi0JMHg3MzIyLCAweDc0MjYsIDB4YTA4NCwgMHgwMWUwLCAweDAwN2MsIDB4Nzg0OCwgMHhhMDY1LCAweDAwNDAsCi0JMHgxZGM1LCAweDJjMDQsIDB4Nzg0YSwgMHgyMDYzLCAweDAwMDAsIDB4MDA3YywgMHgwZjdlLCAweDIwNzksCi0JMHg0ZTAwLCAweDc4NDgsIDB4MjA2MiwgMHgyYzAwLCAweGEwMDUsIDB4MDBjMCwgMHgxZGQxLCAweDEwNzgsCi0JMHgyOTZiLCAweDc4NGEsIDB4MGY3ZiwgMHgwMDdjLCAweDIwMTEsIDB4OTgwMCwgMHg3YTRhLCAweDdiYzQsCi0JMHg4MzE5LCAweDAwNDAsIDB4MWRlMSwgMHhhMjgwLCAweDAwMzIsIDB4MjAxMiwgMHgyMDEwLCAweDAwNzgsCi0JMHgxZGQ4LCAweDIwMTMsIDB4MDAwMCwgMHgwMDdjLCAweDAxN2UsIDB4MDI3ZSwgMHhkN2ZjLCAweDAwYzAsCi0JMHgxZGVkLCAweDIwMTEsIDB4NTNjMCwgMHgwMDc4LCAweDFkZWYsIDB4MjAxMSwgMHg3M2MwLCAweGE3ODQsCi0JMHgwZjAwLCAweDgwMGIsIDB4YTc4NCwgMHgwMDFmLCAweDAwNDAsIDB4MWRmYSwgMHg4MDAzLCAweDgwMDMsCi0JMHg4MDAzLCAweDgwMDMsIDB4YTEwNSwgMHhhMjY4LCAweDAyN2YsIDB4MDE3ZiwgMHgwMDdjLCAweDEwNzgsCi0JMHgxZGU0LCAweDI5MDAsIDB4NjgyYSwgMHgyYTAwLCAweDY4MmUsIDB4NjgwOCwgMHhhMDg0LCAweGY5ZWYsCi0JMHhhODBkLCAweDY5MGEsIDB4MGU3ZSwgMHhkN2ZjLCAweDAwYzAsIDB4MWUxNCwgMHgyMDA5LCAweDRlNTMsCi0JMHgyMDcxLCAweDRlNDAsIDB4MDA3OCwgMHgxZTE4LCAweDIwMDksIDB4NGU5MywgMHgyMDcxLCAweDRlODAsCi0JMHgyMTBjLCAweDY4MDQsIDB4YTAwNSwgMHgwMDQwLCAweDFlMjgsIDB4YTExNiwgMHgwMGMwLCAweDFlMjgsCi0JMHgyMDYwLCAweDYwMDAsIDB4NjgwNiwgMHgwMTdlLCAweDIwMGIsIDB4MDAwMCwgMHgwMDc4LCAweDFlMmIsCi0JMHgyMDA5LCAweDAwMDAsIDB4MDE3ZSwgMHg2ODA0LCAweGEwNjUsIDB4MDA0MCwgMHgxZTQwLCAweDYwMDAsCi0JMHg2ODA2LCAweDEwNzgsIDB4MWU1YiwgMHgxMDc4LCAweDIwMWQsIDB4NjgxMCwgMHg3OTA4LCAweDgxMDksCi0JMHg3OTBhLCAweDgwMDEsIDB4NjgxMiwgMHgwMGMwLCAweDFlMmIsIDB4NzkxMCwgMHhjMWE1LCAweDc5MTIsCi0JMHgwMTdmLCAweDY5MDIsIDB4NjkwNiwgMHgyZDAwLCAweDIwNjAsIDB4MTA3OCwgMHgyYWNjLCAweDBlN2YsCi0JMHgwMDdjLCAweGEwNjUsIDB4MDA0MCwgMHgxZTVhLCAweDIwMDgsIDB4NjA5YywgMHhhMDA1LCAweDAwNDAsCi0JMHgxZTU3LCAweDIwNjIsIDB4NjA5ZiwgMHgwMDAwLCAweGEwNjUsIDB4MDA3OCwgMHgxZTRkLCAweDc4NDgsCi0JMHg3OTRhLCAweDIwNjIsIDB4MDA3YywgMHg2MDA3LCAweDAxMDMsIDB4NjA4ZiwgMHgwMDAwLCAweDIwYTksCi0JMHgwMDFjLCAweGFjODAsIDB4MDAwNSwgMHgyMGEwLCAweDIwMDEsIDB4MDAwMCwgMHg0MGE0LCAweDY4MjgsCi0JMHg2MDFhLCAweDY4MmMsIDB4NjAyMiwgMHgwMDdjLCAweDBlN2UsIDB4ZDdmYywgMHgwMGMwLCAweDFlNzYsCi0JMHgyMDcxLCAweDRlNDAsIDB4MjAzMSwgMHg0ZWMwLCAweDAwNzgsIDB4MWU3YSwgMHgyMDcxLCAweDRlODAsCi0JMHgyMDMxLCAweDUwYzAsIDB4NzA1MCwgMHhhMDhjLCAweDAyMDAsIDB4MDBjMCwgMHgxZTg0LCAweGE2MDgsCi0JMHgyZDBhLCAweDgwMDAsIDB4NzA1MiwgMHhhMDA2LCAweDBlN2YsIDB4MDA3YywgMHgwZjdlLCAweGQ3ZmMsCi0JMHgwMGMwLCAweDFlOGUsIDB4MjA3OSwgMHg0ZTQwLCAweDAwNzgsIDB4MWU5MCwgMHgyMDc5LCAweDRlODAsCi0JMHgxMDc4LCAweDFkZTQsIDB4MjA5MSwgMHg4MDAwLCAweDY4MDQsIDB4NzgwYSwgMHhhMDY1LCAweDAwNDAsCi0JMHgxZWU0LCAweDAwNzgsIDB4MWVhMiwgMHgyYzAwLCAweDc4MGEsIDB4MjA2MCwgMHg2MDAwLCAweGEwNjUsCi0JMHgwMDQwLCAweDFlZTQsIDB4NjAxMCwgMHhhMzA2LCAweDAwYzAsIDB4MWU5YiwgMHg2MDBjLCAweGEyMDYsCi0JMHgwMGMwLCAweDFlOWIsIDB4MmMyOCwgMHg3ODRjLCAweGFjMDYsIDB4MDBjMCwgMHgxZWIxLCAweDAwNzgsCi0JMHgxZWUxLCAweDY4MDQsIDB4YWMwNiwgMHgwMGMwLCAweDFlYmYsIDB4NjAwMCwgMHgyMDYwLCAweDY4MDYsCi0JMHhhMDA1LCAweDAwYzAsIDB4MWViZiwgMHg2ODAzLCAweDAwMDAsIDB4MDA3OCwgMHgxZWM5LCAweDY0MDAsCi0JMHg3ODA4LCAweDIwNjAsIDB4NjQwMiwgMHhhNDg2LCAweDAwMDAsIDB4MDBjMCwgMHgxZWM5LCAweDJjMDAsCi0JMHg2ODAyLCAweDI1NjAsIDB4MGY3ZiwgMHgxMDc4LCAweDFlNWIsIDB4MGY3ZSwgMHg2MDFiLCAweDAwMDUsCi0JMHg2MDIzLCAweDAwMjAsIDB4MGY3ZiwgMHgxMDc4LCAweDIwMWQsIDB4MGY3ZSwgMHg3OTA4LCAweDgxMDksCi0JMHg3OTBhLCAweDY4MTAsIDB4ODAwMSwgMHg2ODEyLCAweDAwYzAsIDB4MWVlMSwgMHg3ODEwLCAweGMwYTUsCi0JMHg3ODEyLCAweDIwMDEsIDB4ZmZmZiwgMHhhMDA1LCAweDBmN2YsIDB4MDA3YywgMHgwNzdlLCAweDI3MDAsCi0JMHgyMDM5LCAweDAwMDAsIDB4ZDBmYywgMHgwMDQwLCAweDFlZWUsIDB4YzdmZCwgMHgyMDQxLCAweDAwMjEsCi0JMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwgMHgwMDA4LCAweDIwOTEsIDB4ODAwMCwgMHgxMDc4LCAweDFkZmYsCi0JMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDFlZjYsIDB4YTdiYywgMHhmZjAwLCAweDg3M2YsCi0JMHg4NzM4LCAweDg3M2YsIDB4YTc4NCwgMHgwZjAwLCAweDAwYzAsIDB4MWVmNiwgMHgyMDkxLCAweDgwMDEsCi0JMHgwNzdmLCAweDAwN2MsIDB4Nzg2YywgMHgyMDA5LCAweDk2NzQsIDB4MjEwYywgMHhhMTBkLCAweDAwNDAsCi0JMHgxZjE0LCAweGEwNjUsIDB4MDA3OCwgMHgyMzk1LCAweDIwNjEsIDB4MDAwMCwgMHg2MDE4LCAweGQwODQsCi0JMHgwMGMwLCAweDFmMzQsIDB4NzgxMCwgMHhkMDhjLCAweDAwNDAsIDB4MWYyNSwgMHhjMDhjLCAweDc4MTIsCi0JMHhjN2ZjLCAweDIwNjksIDB4NGU0MCwgMHgwMDc4LCAweDFmMmEsIDB4YzA4ZCwgMHg3ODEyLCAweDIwNjksCi0JMHg0ZTgwLCAweGM3ZmQsIDB4MjA5MSwgMHg4MDAwLCAweDY4MWMsIDB4NjgxZiwgMHgwMDAwLCAweDIwOTEsCi0JMHg4MDAxLCAweGEwMDUsIDB4MDBjMCwgMHgxZjM1LCAweDAwN2MsIDB4YTA4YywgMHhmZmYwLCAweDAwNDAsCi0JMHgxZjNiLCAweDEwNzgsIDB4Mjk2YiwgMHgwMDc5LCAweDFmM2QsIDB4MWY0ZCwgMHgxZjUwLCAweDFmNTYsCi0JMHgxZjVhLCAweDFmNGUsIDB4MWY1ZSwgMHgxZjRlLCAweDFmNGUsIDB4MWY0ZSwgMHgxZjY0LCAweDFmOTUsCi0JMHgxZjk5LCAweDFmOWYsIDB4MWZiNCwgMHgxZjRlLCAweDFmNGUsIDB4MDA3YywgMHgxMDc4LCAweDI5NmIsCi0JMHgxMDc4LCAweDFlZTYsIDB4MjAwMSwgMHg4MDAxLCAweDAwNzgsIDB4MWZjMCwgMHgyMDAxLCAweDgwMDMsCi0JMHgwMDc4LCAweDFmYzAsIDB4MjAwMSwgMHg4MDA0LCAweDAwNzgsIDB4MWZjMCwgMHgxMDc4LCAweDFlZTYsCi0JMHgyMDAxLCAweDgwMDYsIDB4MDA3OCwgMHgxZmMwLCAweDIwOTEsIDB4ODAwMCwgMHgwNzdlLCAweGQ3ZmMsCi0JMHgwMGMwLCAweDFmNzAsIDB4MjA2OSwgMHg0ZTQwLCAweDIwMzksIDB4MDAwOSwgMHgwMDc4LCAweDFmNzQsCi0JMHgyMDY5LCAweDRlODAsIDB4MjAzOSwgMHgwMDA5LCAweDY4MDAsIDB4YTA4NiwgMHgwMDAwLCAweDAwNDAsCi0JMHgxZjdlLCAweDAwN2YsIDB4NmYxZSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHg2ODc0LCAweDA3N2YsCi0JMHhhMGJjLCAweGZmMDAsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksIDB4MDAwNCwgMHgyMDUxLCAweDAwMTAsCi0JMHgxMDc4LCAweDFkZmYsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsIDB4MDBjMCwgMHgxZjg4LCAweDIwOTEsCi0JMHg4MDAxLCAweDIwMDEsIDB4ODAwYSwgMHgwMDc4LCAweDFmYzAsIDB4MjAwMSwgMHg4MDBjLCAweDAwNzgsCi0JMHgxZmMwLCAweDEwNzgsIDB4MWVlNiwgMHgyMDAxLCAweDgwMGQsIDB4MDA3OCwgMHgxZmMwLCAweDc4MTQsCi0JMHhkMGU0LCAweDAwYzAsIDB4MWZiMiwgMHhkMGVjLCAweDAwNDAsIDB4MWZhYywgMHhkN2ZjLCAweDAwNDAsCi0JMHgxZmFjLCAweDc4ZTQsIDB4MDA3OCwgMHgxZmFkLCAweDc4ZTAsIDB4NzBjNiwgMHgyMDAxLCAweDgwMGUsCi0JMHgwMDc4LCAweDFmYzAsIDB4MDA3OCwgMHgxZjRlLCAweGQ3ZmMsIDB4MDA0MCwgMHgxZmJhLCAweDc4ZWMsCi0JMHgwMDc4LCAweDFmYmIsIDB4NzhlOCwgMHg3MGM2LCAweDIwMDEsIDB4ODAwZiwgMHgwMDc4LCAweDFmYzAsCi0JMHg3MGMyLCAweGQ3ZmMsIDB4MDBjMCwgMHgxZmM4LCAweDcwZGIsIDB4MDAwMCwgMHgwMDc4LCAweDFmY2EsCi0JMHg3MGRiLCAweDAwMDEsIDB4MjA2MSwgMHgwMDAwLCAweDYwMWIsIDB4MDAwMSwgMHgyMDkxLCAweDQwODAsCi0JMHgwMDdjLCAweGFjODAsIDB4MDAwMSwgMHg4MWZmLCAweDAwNDAsIDB4MWZmYywgMHgyMDk5LCAweDAwMzAsCi0JMHgyMGEwLCAweDcwMGMsIDB4YTA4NCwgMHgwM2ZmLCAweDAwNDAsIDB4MWZkZSwgMHg3MDE4LCAweDAwN2UsCi0JMHg3MDFjLCAweDAwN2UsIDB4NzAyMCwgMHgwMDdlLCAweDcwMjQsIDB4MDA3ZSwgMHg3MTEyLCAweDgxYWMsCi0JMHg3MjFhLCAweDczMWUsIDB4NzQyMiwgMHg3NTI2LCAweDcwMDMsIDB4MDAwMSwgMHg3MDA3LCAweDAwMDEsCi0JMHg3MDA4LCAweDgwMGIsIDB4MDBjOCwgMHgxZmYwLCAweDcwMDcsIDB4MDAwMiwgMHhhMDhjLCAweDAxZTAsCi0JMHgwMGMwLCAweDFmZmMsIDB4NTNhNSwgMHhhMDA2LCAweDcwMDMsIDB4MDAwMCwgMHg3MDA3LCAweDAwMDQsCi0JMHgwMDdmLCAweDcwMjYsIDB4MDA3ZiwgMHg3MDIyLCAweDAwN2YsIDB4NzAxZSwgMHgwMDdmLCAweDcwMWEsCi0JMHgwMDdjLCAweDIwMTEsIDB4MDAyMCwgMHgyMDA5LCAweDAwMTAsIDB4NmIwYSwgMHg2YzBlLCAweDY4MDMsCi0JMHhmZDAwLCAweDY4MDcsIDB4MDAxOCwgMHg2YTFhLCAweDJkMDAsIDB4YTBlOCwgMHgwMDA4LCAweGEyOTAsCi0JMHgwMDA0LCAweDgxMDksIDB4MDBjMCwgMHgyMDBkLCAweDAwN2MsIDB4NjAwNCwgMHg2MDg2LCAweDJjMDgsCi0JMHgyMDYzLCAweDAwMDAsIDB4Nzg2OCwgMHhhMDA1LCAweDc5NmEsIDB4MDA0MCwgMHgyMDJhLCAweDJjMDIsCi0JMHgwMDc4LCAweDIwMmIsIDB4Nzk2ZSwgMHgwMDdjLCAweDBjN2UsIDB4MjA2MSwgMHg0ZTAwLCAweDY4ODcsCi0JMHgwMTAzLCAweDJkMDgsIDB4MjA2YiwgMHgwMDAwLCAweDYwNjgsIDB4YTAwNSwgMHg2MTZhLCAweDAwNDAsCi0JMHgyMDNjLCAweDJkMDIsIDB4MDA3OCwgMHgyMDNkLCAweDYxNmUsIDB4MGM3ZiwgMHgwMDdjLCAweDIwOTEsCi0JMHg4MDAwLCAweDJjMDQsIDB4Nzg2ZSwgMHhhMDA1LCAweDAwYzAsIDB4MjA0NywgMHg3ODZhLCAweDIwOTEsCi0JMHg4MDAxLCAweDYwOWMsIDB4YTAwNSwgMHgwMDQwLCAweDIwNjAsIDB4MGM3ZSwgMHgyMDYwLCAweDIwMDgsCi0JMHg2MDljLCAweGEwMDUsIDB4MDA0MCwgMHgyMDVjLCAweDIwNjIsIDB4NjA5ZiwgMHgwMDAwLCAweGEwNjUsCi0JMHg2MDljLCAweGEwMDUsIDB4MDBjMCwgMHgyMDU0LCAweDc4NDgsIDB4Nzk0YSwgMHgyMDYyLCAweDBjN2YsCi0JMHg3ODQ4LCAweDIwNjIsIDB4NjA5ZiwgMHgwMDAwLCAweGFjODUsIDB4MDAwMCwgMHgwMGMwLCAweDIwNmEsCi0JMHgxMDc4LCAweDI5NmIsIDB4Nzg0YSwgMHgwMDdjLCAweDIwYTksIDB4MDAxMCwgMHhhMDA2LCAweDgwMDQsCi0JMHg4MDg2LCAweDgxOGUsIDB4MDBjOCwgMHgyMDc1LCAweGEyMDAsIDB4MDBmMCwgMHgyMDcwLCAweDgwODYsCi0JMHg4MThlLCAweDAwN2MsIDB4MTU3ZSwgMHgyMGE5LCAweDAwMTAsIDB4YTAwNSwgMHgwMDQwLCAweDIwOWIsCi0JMHhhMTFhLCAweDAwYzgsIDB4MjA5YiwgMHg4MjEzLCAweDgxOGQsIDB4MDA0OCwgMHgyMDhlLCAweGExMWEsCi0JMHgwMGM4LCAweDIwOGYsIDB4MDBmMCwgMHgyMDgzLCAweDAwNzgsIDB4MjA5MywgMHhhMTFhLCAweDIzMDgsCi0JMHg4MjEwLCAweDAwZjAsIDB4MjA4MywgMHgwMDdlLCAweDMyMDAsIDB4YTA4NCwgMHhmN2ZmLCAweDIwODAsCi0JMHgwMDdmLCAweDE1N2YsIDB4MDA3YywgMHgwMDdlLCAweDMyMDAsIDB4YTA4NSwgMHgwODAwLCAweDAwNzgsCi0JMHgyMDk3LCAweDdkNzQsIDB4NzBkMCwgMHhhNTA2LCAweDAwNDAsIDB4MjE4NywgMHg3ODEwLCAweDIwNTAsCi0JMHg3ODAwLCAweGQwOGMsIDB4MDA0MCwgMHgyMGMzLCAweGRhZWMsIDB4MDA0MCwgMHgyMGMzLCAweDBlN2UsCi0JMHgyMDkxLCAweDgwMDAsIDB4MjA3MSwgMHgwMDIwLCAweDcwMDQsIDB4YTAwNSwgMHgwMGMwLCAweDIwYzAsCi0JMHg3MDA4LCAweDBlN2YsIDB4YTA4NiwgMHgwMDA4LCAweDAwNDAsIDB4MjBjMywgMHgwMDc4LCAweDIxODcsCi0JMHgwZTdmLCAweDAwNzgsIDB4MjE4NywgMHgxMDc4LCAweDFkYmQsIDB4MDA0MCwgMHgyMTg3LCAweGEwNDYsCi0JMHg3OTcwLCAweDI1MDAsIDB4ODAwMCwgMHhhMTEyLCAweDIwMDksIDB4MDA0MCwgMHgwMGM4LCAweDIwZDIsCi0JMHgwMDc4LCAweDIwZDksIDB4NzJkMCwgMHhhMjA2LCAweDAwNDAsIDB4MjBkOSwgMHg4ODQwLCAweDIwMDksCi0JMHgwMDgwLCAweDBjN2UsIDB4NzExMiwgMHg3MDA3LCAweDAwMDEsIDB4MjA5OSwgMHgwMDMwLCAweDIwYTksCi0JMHgwMDIwLCAweGFjODAsIDB4MDAwMSwgMHgyMGEwLCAweDIwNjEsIDB4MDAwMCwgMHg4OGZmLCAweDAwNDAsCi0JMHgyMGViLCAweDEwNzgsIDB4MWRiZCwgMHg3MDA4LCAweGQwZmMsIDB4MDA0MCwgMHgyMGViLCAweDcwMDcsCi0JMHgwMDAyLCAweDIwOTEsIDB4ODAwMSwgMHhhMDhjLCAweDAxZTAsIDB4MDBjMCwgMHgyMTIyLCAweDUzYTUsCi0JMHg4Y2ZmLCAweDAwYzAsIDB4MjEwMCwgMHg4OGZmLCAweDAwNDAsIDB4MjE3MSwgMHgwMDc4LCAweDIxMGEsCi0JMHgyYzAwLCAweDc4OGUsIDB4MjBhOSwgMHgwMDIwLCAweGFjODAsIDB4MDAwMSwgMHgyMGEwLCAweDUzYTUsCi0JMHgwMDc4LCAweDIxNzEsIDB4YTA0NiwgMHg3MjE4LCAweDczMWMsIDB4ZGFjNCwgMHgwMDQwLCAweDIxMTIsCi0JMHg3NDIwLCAweDc1MjQsIDB4YTI5MiwgMHgwMDQwLCAweGEzOWIsIDB4MDAwMCwgMHhhNGEzLCAweDAwMDAsCi0JMHhhNWFiLCAweDAwMDAsIDB4NzIxYSwgMHg3MzFlLCAweGRhYzQsIDB4MDA0MCwgMHgyMTIyLCAweDc0MjIsCi0JMHg3NTI2LCAweGEwMDYsIDB4NzAwNywgMHgwMDA0LCAweDAwNDAsIDB4MjE3MSwgMHg4Y2ZmLCAweDAwNDAsCi0JMHgyMTJiLCAweDEwNzgsIDB4MWRjNiwgMHgwYzdmLCAweDEwNzgsIDB4MWRjNiwgMHhhMDQ2LCAweDc4ODgsCi0JMHg4MDAwLCAweDc4OGEsIDB4YTA4NiwgMHgwMDAyLCAweDAwNDAsIDB4MjE1MSwgMHg3YTdjLCAweDdiNzgsCi0JMHhkYWM0LCAweDAwNDAsIDB4MjEzZCwgMHg3Yzg0LCAweDdkODAsIDB4Nzk3NCwgMHg4MTA3LCAweDgwMDQsCi0JMHg4MDA0LCAweGEyMTAsIDB4YTM5OSwgMHgwMDAwLCAweGE0YTEsIDB4MDAwMCwgMHhhNWE5LCAweDAwMDAsCi0JMHg3MjFhLCAweDczMWUsIDB4ZGFjNCwgMHgwMDQwLCAweDIxODcsIDB4NzQyMiwgMHg3NTI2LCAweDAwNzgsCi0JMHgyMTg3LCAweDYwMTQsIDB4ZDBmYywgMHgwMGMwLCAweDIxNTksIDB4MjA2OSwgMHg0ZTQwLCAweDAwNzgsCi0JMHgyMTViLCAweDIwNjksIDB4NGU4MCwgMHgyMDkxLCAweDgwMDAsIDB4NjgxZiwgMHgwMDAyLCAweDg4ZmYsCi0JMHgwMDQwLCAweDIxNjcsIDB4YTA0NiwgMHg3ODhjLCAweDIwNjAsIDB4MDA3OCwgMHgyMTUxLCAweDc4OGIsCi0JMHgwMDAwLCAweDc4YWMsIDB4YTA4NSwgMHgwMDAzLCAweDc4YWUsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsCi0JMHgyMTg3LCAweDBjN2YsIDB4Nzg4YiwgMHgwMDAwLCAweDEwNzgsIDB4MjM0NiwgMHg2MDA0LCAweGEwODQsCi0JMHgwMDBmLCAweDEwNzgsIDB4MjE4OCwgMHg4OGZmLCAweDAwNDAsIDB4MjE4NSwgMHg3ODhjLCAweDIwNjAsCi0JMHg2MDA0LCAweGEwODQsIDB4MDAwZiwgMHgxMDc4LCAweDIxODgsIDB4MDA3OCwgMHgyMGExLCAweDAwN2MsCi0JMHgwMDc5LCAweDIxOGEsIDB4MjE5YSwgMHgyMWI4LCAweDIxZDYsIDB4MjE5YSwgMHgyMWU3LCAweDIxYWIsCi0JMHgyMTlhLCAweDIxOWEsIDB4MjE5YSwgMHgyMWI2LCAweDIxZDQsIDB4MjE5YSwgMHgyMTlhLCAweDIxOWEsCi0JMHgyMTlhLCAweDIxOWEsIDB4MjAzOSwgMHgwNDAwLCAweDc4YmMsIDB4YTcwNSwgMHg3OGJlLCAweDYwMDgsCi0JMHhhNzA1LCAweDYwMGEsIDB4MTA3OCwgMHgyMjJhLCAweDYwOWMsIDB4NzhiYSwgMHg2MDlmLCAweDAwMDAsCi0JMHgxMDc4LCAweDIzMzAsIDB4MDA3YywgMHg3OGJjLCAweGQwYzQsIDB4MDA0MCwgMHgyMWIxLCAweDAwNzgsCi0JMHgyMTlhLCAweDYwMWMsIDB4YzBiZCwgMHg2MDFlLCAweDAwNzgsIDB4MjFiZSwgMHgxMDc4LCAweDIzNzgsCi0JMHg3OGJjLCAweGQwYzQsIDB4MDA0MCwgMHgyMWJlLCAweDAwNzgsIDB4MjE5YSwgMHg3OGJmLCAweDAwMDAsCi0JMHg2MDA0LCAweDgwMDcsIDB4YTA4NCwgMHgwMGZmLCAweDc4YjIsIDB4ODAwMSwgMHgwMDQwLCAweDIxZDEsCi0JMHgxMDc4LCAweDIyMmEsIDB4MDA0MCwgMHgyMWQxLCAweDc4YmMsIDB4YzBjNSwgMHg3OGJlLCAweDAwNzgsCi0JMHgyMWQzLCAweDAwNzgsIDB4MjI0OSwgMHgwMDdjLCAweDEwNzgsIDB4MjM3NCwgMHg3OGJjLCAweGEwOGMsCi0JMHgwZTAwLCAweDAwYzAsIDB4MjFkZSwgMHhkMGM0LCAweDAwYzAsIDB4MjFlMCwgMHgwMDc4LCAweDIxOWEsCi0JMHgxMDc4LCAweDIyMmEsIDB4MDBjMCwgMHgyMWU2LCAweDAwNzgsIDB4MjI0OSwgMHgwMDdjLCAweDc4YmMsCi0JMHhkMGM0LCAweDAwNDAsIDB4MjFlZCwgMHgwMDc4LCAweDIxOWEsIDB4NzhiZiwgMHgwMDAwLCAweDY3MTQsCi0JMHgyMDExLCAweDAwMDEsIDB4MjJhOCwgMHg2MDE4LCAweGEwODQsIDB4MDBmZiwgMHhhMDA1LCAweDAwNDAsCi0JMHgyMjBkLCAweGE3YmMsIDB4ZmYwMCwgMHgyMGE5LCAweDAwMjAsIDB4YTA4ZSwgMHgwMDAxLCAweDAwNDAsCi0JMHgyMjBkLCAweGE3YmMsIDB4ODAwMCwgMHgyMDExLCAweDAwMDIsIDB4MjBhOSwgMHgwMTAwLCAweGEwOGUsCi0JMHgwMDAyLCAweDAwNDAsIDB4MjIwZCwgMHgwMDc4LCAweDIyMjcsIDB4MTA3OCwgMHgxZGU0LCAweDJkMDAsCi0JMHgyMDkxLCAweDgwMDAsIDB4NjgyYiwgMHgwMDAwLCAweDY4MmYsIDB4MDAwMCwgMHg2ODA4LCAweGEwODQsCi0JMHhmZmRlLCAweDY4MGEsIDB4YWRlOCwgMHgwMDEwLCAweDIwOTEsIDB4ODAwMSwgMHgwMGYwLCAweDIyMTAsCi0JMHg4MjExLCAweDAwNDAsIDB4MjIyNywgMHgyMGE5LCAweDAxMDAsIDB4MDA3OCwgMHgyMjEwLCAweDEwNzgsCi0JMHgxZGM2LCAweDAwN2MsIDB4NjA5ZiwgMHgwMDAwLCAweDc4YjQsIDB4YTA2ZCwgMHgyYzAwLCAweDc4YjYsCi0JMHgwMGMwLCAweDIyMzUsIDB4NzhiYSwgMHgwMDc4LCAweDIyM2QsIDB4Njg5ZSwgMHgyZDAwLCAweDYwMDIsCi0JMHg3OGI4LCAweGFkMDYsIDB4MDBjMCwgMHgyMjNkLCAweDYwMDIsIDB4NzhiMCwgMHg4MDAxLCAweDc4YjIsCi0JMHgwMGMwLCAweDIyNDgsIDB4NzhiYywgMHhjMGM0LCAweDc4YmUsIDB4NzhiOCwgMHgyMDYwLCAweGEwMDYsCi0JMHgwMDdjLCAweDBlN2UsIDB4YTAyZSwgMHgyNTMwLCAweDdkYmEsIDB4N2RiNiwgMHg2NWFlLCAweDY1YjIsCi0JMHg2MDFjLCAweDYwYTIsIDB4MjA0OCwgMHhhOTg0LCAweGUxZmYsIDB4NjAxZSwgMHhhOTg0LCAweDAwNjAsCi0JMHgwMDQwLCAweDIyNWMsIDB4MTA3OCwgMHg0NjMyLCAweDY1OTYsIDB4NjVhNiwgMHg2NjlhLCAweDY2YWEsCi0JMHg2NzE0LCAweDIwNzEsIDB4NGU4MCwgMHhkN2ZjLCAweDAwYzAsIDB4MjI2OCwgMHgyMDcxLCAweDRlNDAsCi0JMHhhNzg0LCAweDBmMDAsIDB4ODAwYiwgMHhhNzg0LCAweDAwMWYsIDB4MDA0MCwgMHgyMjczLCAweDgwMDMsCi0JMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMTA1LCAweDcxYzQsIDB4YTE2OCwgMHgyNzAwLCAweDgwMDcsCi0JMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4NzFjOCwgMHhhMTAwLCAweDYwYzIsCi0JMHgyMDkxLCAweDgwMDAsIDB4NzgxNCwgMHhkMGM0LCAweDAwNDAsIDB4MjI5OCwgMHhkMGVjLCAweDAwNDAsCi0JMHgyMjk0LCAweGQ3ZmMsIDB4MDBjMCwgMHgyMjkxLCAweGQwZjQsIDB4MDBjMCwgMHgyMjlmLCAweDAwNzgsCi0JMHgyMjk4LCAweGQwZmMsIDB4MDBjMCwgMHgyMjlmLCAweDc4MTAsIDB4ZDBmNCwgMHgwMGMwLCAweDIyOWYsCi0JMHg2ZTA4LCAweGQ2ODQsIDB4MDA0MCwgMHgyMmM5LCAweGQ5ZmMsIDB4MDBjMCwgMHgyMmM5LCAweDIwOTEsCi0JMHg4MDAxLCAweDEwNzgsIDB4MWU1YiwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwgMHgyMDFkLCAweDIwOTEsCi0JMHg4MDAxLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDIzMmUsIDB4NzgxNCwgMHhkMGM0LCAweDAwNDAsCi0JMHgyMzJlLCAweGQwZWMsIDB4MDA0MCwgMHgyMmMxLCAweGQ3ZmMsIDB4MDBjMCwgMHgyMmJjLCAweGQwZjQsCi0JMHgwMGMwLCAweDIyYzUsIDB4MDA3OCwgMHgyMzJlLCAweGQwZmMsIDB4MDBjMCwgMHgyMmM1LCAweDAwNzgsCi0JMHgyMzJlLCAweDc4MTAsIDB4ZDBmNCwgMHgwMDQwLCAweDIzMmUsIDB4NjAxYiwgMHgwMDIxLCAweDAwNzgsCi0JMHgyMzJlLCAweDYwMjQsIDB4YTA5NiwgMHgwMDAxLCAweDAwYzAsIDB4MjJkMCwgMHg4MDAwLCAweDYwMjYsCi0JMHg2YTEwLCAweDY4MTQsIDB4YTIwMiwgMHgwMDQ4LCAweDIyZTMsIDB4MDA0MCwgMHgyMmUzLCAweDIwOTEsCi0JMHg4MDAxLCAweDIwMzksIDB4MDIwMCwgMHg2MDljLCAweDc4YmEsIDB4NjA5ZiwgMHgwMDAwLCAweDEwNzgsCi0JMHgyMzMwLCAweDAwNzgsIDB4MjMyZSwgMHgyYzA4LCAweGQ5ZmMsIDB4MDA0MCwgMHgyMzBiLCAweDY4MDAsCi0JMHhhMDY1LCAweDAwNDAsIDB4MjMwYiwgMHg2YTA0LCAweDcwMDAsIDB4YTA4NCwgMHgwMDAyLCAweDAwNDAsCi0JMHgyMzAxLCAweDcwNGMsIDB4YTIwNiwgMHgwMGMwLCAweDIzMDEsIDB4NmIwNCwgMHgyMTYwLCAweDIzMDQsCi0JMHg2MDAyLCAweGEwMDUsIDB4MDBjMCwgMHgyMmZkLCAweDY5MDIsIDB4MjI2MCwgMHg2MTAyLCAweDAwNzgsCi0JMHgyMzE3LCAweDJkMDAsIDB4MjA2MCwgMHgxMDc4LCAweDJhY2MsIDB4NmUwOCwgMHgyMTYwLCAweDYyMDIsCi0JMHg2OTA2LCAweDAwNzgsIDB4MjMxNywgMHg2ODAwLCAweDY5MDIsIDB4YTA2NSwgMHgwMDQwLCAweDIzMTMsCi0JMHg2MTAyLCAweDAwNzgsIDB4MjMxNCwgMHg2OTA2LCAweDIxNjAsIDB4NjAwMywgMHgwMDAwLCAweDIxNjAsCi0JMHhkOWZjLCAweDAwNDAsIDB4MjMxZSwgMHhhNmI0LCAweGZmZmMsIDB4NmUwYSwgMHg2ODEwLCAweDdkMDgsCi0JMHg4NTI4LCAweDdkMGEsIDB4ODAwMCwgMHg2ODEyLCAweDIwOTEsIDB4ODAwMSwgMHhkNmI0LCAweDAwNDAsCi0JMHgyMzJlLCAweGE2YjYsIDB4MDA0MCwgMHg2ZTBhLCAweDEwNzgsIDB4MWU2YywgMHgwZTdmLCAweDAwN2MsCi0JMHg2MDA4LCAweGE3MDUsIDB4NjAwYSwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwgMHgyMDFkLCAweDIwOTEsCi0JMHg4MDAxLCAweDc4YjgsIDB4YTA2NSwgMHgwMDQwLCAweDIzNDMsIDB4NjA5YywgMHg3OGJhLCAweDYwOWYsCi0JMHgwMDAwLCAweDAwNzgsIDB4MjMzMCwgMHg3OGI2LCAweDc4YmEsIDB4MDA3YywgMHg3OTcwLCAweDc4NzQsCi0JMHgyODE4LCAweGQzODQsIDB4MDA0MCwgMHgyMzUwLCAweDgwMDAsIDB4YTExMiwgMHgwMDQ4LCAweDIzNTUsCi0JMHg4MDAwLCAweGExMTIsIDB4MDBjOCwgMHgyMzY1LCAweGMzODQsIDB4N2E3YywgMHg3MjFhLCAweDdhNzgsCi0JMHg3MjFlLCAweGRhYzQsIDB4MDA0MCwgMHgyMzYwLCAweDdhODQsIDB4NzIyMiwgMHg3YTgwLCAweDcyMjYsCi0JMHhhMDA2LCAweGQzODQsIDB4MDA0MCwgMHgyMzY1LCAweDgwMDAsIDB4Nzg3NiwgMHg3MGQyLCAweDc4MWMsCi0JMHhhMDA1LCAweDAwNDAsIDB4MjM3MywgMHg4MDAxLCAweDc4MWUsIDB4MDBjMCwgMHgyMzczLCAweDAwNjgsCi0JMHgyMzczLCAweDIwOTEsIDB4NDA4MCwgMHgwMDdjLCAweDIwMzksIDB4MjM4YywgMHgwMDc4LCAweDIzN2EsCi0JMHgyMDM5LCAweDIzOTIsIDB4MjcwNCwgMHhhMDA1LCAweDAwNDAsIDB4MjM4YiwgMHhhYzAwLCAweDIwNjgsCi0JMHg2OTA4LCAweDY4MTAsIDB4NjkxMiwgMHg2ODBhLCAweDY5MGMsIDB4NjgxNCwgMHg2OTE2LCAweDY4MGUsCi0JMHg4NzM4LCAweDAwNzgsIDB4MjM3YSwgMHgwMDdjLCAweDAwMDMsIDB4MDAwOSwgMHgwMDBmLCAweDAwMTUsCi0JMHgwMDFiLCAweDAwMDAsIDB4MDAxNSwgMHgwMDFiLCAweDAwMDAsIDB4MjA0MSwgMHgwMDAwLCAweDc4MGMsCi0JMHgwMDc5LCAweDIzOWEsIDB4MjU2YywgMHgyNTNmLCAweDIzOWUsIDB4MjQxNywgMHgyMDM5LCAweDk2NzQsCi0JMHgyNzM0LCAweDdkMTAsIDB4MDA3OCwgMHgyM2JlLCAweDYwODQsIDB4YTA4NiwgMHgwMTAzLCAweDAwYzAsCi0JMHgyNDAwLCAweDYxMTQsIDB4NjAxOCwgMHhhMTA1LCAweDAwNDAsIDB4MjNiMywgMHg4NmZmLCAweDAwYzAsCi0JMHgyM2NmLCAweDAwNzgsIDB4MjQwMCwgMHg4NjAzLCAweGEwODAsIDB4OTY1NSwgMHg2MjBjLCAweDIyMDIsCi0JMHg4MDAwLCAweDYyMTAsIDB4MjIwMiwgMHgxMDc4LCAweDIwM2YsIDB4ODYzMCwgMHhhNjhlLCAweDAwMGYsCi0JMHgwMDQwLCAweDI0OGIsIDB4Nzg2YywgMHhhMDY1LCAweDAwYzAsIDB4MjNhNCwgMHg3ODA4LCAweGE2MDIsCi0JMHgwMGM4LCAweDIzY2YsIDB4ZDVhYywgMHgwMGMwLCAweDIzY2YsIDB4MjYzYSwgMHgwMDdjLCAweGE2ODIsCi0JMHgwMDAzLCAweDAwYzgsIDB4MjQ4YiwgMHgyMDkxLCAweDgwMDAsIDB4MjA2OSwgMHgwMDAwLCAweDY4MTgsCi0JMHhkMDg0LCAweDAwYzAsIDB4MjNmYiwgMHgyMDExLCAweDk2NTUsIDB4MjIwNCwgMHg3MGM2LCAweDgyMTAsCi0JMHgyMjA0LCAweDcwY2EsIDB4ZDY4NCwgMHgwMGMwLCAweDIzZWIsIDB4ODIxMCwgMHgyMjA0LCAweDcwZGEsCi0JMHg4MjEwLCAweDIyMDQsIDB4NzBkZSwgMHhhNjg1LCAweDgwMjAsIDB4NzBjMiwgMHg2ODFiLCAweDAwMDEsCisJMHgwMTdmLCAweDAyN2YsIDB4MDA3OCwgMHgxNWJmLCAweDIwNjEsIDB4NGY0MCwgMHg2MTMwLCAweDcwYzQsCisJMHg2MDMyLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YzAsIDB4MjA2MSwgMHg0ZjgwLCAweDYyMzAsCisJMHg3MGM4LCAweDYwMzIsIDB4MDA3OCwgMHgxNWJmLCAweDc5MTgsIDB4MDA3OCwgMHgxNWMwLCAweDcxYzQsCisJMHhhMTg0LCAweGZmY2YsIDB4MDA0MCwgMHgxOGEzLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YjksCisJMHg3MmM4LCAweDAwNzgsIDB4MTViOCwgMHgyMDExLCAweDRmNGQsIDB4MjIwNCwgMHgyMTEyLCAweDAwN2UsCisJMHgyMDE5LCAweDAwMDAsIDB4MTA3OCwgMHgyN2FiLCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDE4YjMsCisJMHgwMTdmLCAweDAwNzgsIDB4MTVjMCwgMHg3MWM4LCAweGExODQsIDB4ZmZjZiwgMHgwMDQwLCAweDE4YmMsCisJMHgyMTEwLCAweDcxYzQsIDB4MDA3OCwgMHgxNWI4LCAweDIwMTEsIDB4NGY4ZCwgMHgyMjA0LCAweDIxMTIsCisJMHgwMDdlLCAweGMzZmQsIDB4MTA3OCwgMHgyN2FiLCAweDAyN2YsIDB4MDE3ZiwgMHgwMDc4LCAweDE1YmYsCisJMHg3MWM0LCAweGExODIsIDB4MDAxMCwgMHgwMDQ4LCAweDE4ZDQsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsCisJMHgxNWI5LCAweDcyYzgsIDB4MDA3OCwgMHgxNWI4LCAweDIwMTEsIDB4NGY0ZSwgMHgyMjA0LCAweDAwN2UsCisJMHgyMTEyLCAweDIwMTksIDB4MDAwMCwgMHgxMDc4LCAweDI3ODksIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsCisJMHgxOGU0LCAweDAxN2YsIDB4MDA3OCwgMHgxNWMwLCAweDcxYzgsIDB4YTE4MiwgMHgwMDEwLCAweDAwNDgsCisJMHgxOGVkLCAweDIxMTAsIDB4NzFjNCwgMHgwMDc4LCAweDE1YjgsIDB4MjAxMSwgMHg0ZjhlLCAweDIyMDQsCisJMHgwMDdlLCAweDIxMTIsIDB4YzNmZCwgMHgxMDc4LCAweDI3ODksIDB4MDI3ZiwgMHgwMTdmLCAweDAwNzgsCisJMHgxNWJmLCAweDcxYzQsIDB4NzJjOCwgMHhhMTg0LCAweGZmZmQsIDB4MDBjMCwgMHgxNWI4LCAweGEyODQsCisJMHhmZmZkLCAweDAwYzAsIDB4MTViOCwgMHgyMTAwLCAweDc5MjAsIDB4NzgyMiwgMHgyMjAwLCAweDdhMjQsCisJMHg3ODI2LCAweDAwNzgsIDB4MTViZiwgMHg3MWM0LCAweGQxZmMsIDB4MDBjMCwgMHgxOTEzLCAweDIwMTEsCisJMHg1M2MwLCAweDAwNzgsIDB4MTkxNSwgMHgyMDExLCAweDU0NDAsIDB4ODEwNywgMHhhMDg0LCAweDAwMGYsCisJMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhMjY4LCAweDIwMTksIDB4MDAwMCwgMHg3MmM4LCAweGQyYmMsCisJMHgwMDQwLCAweDE5MjQsIDB4YTM5ZCwgMHgwMDEwLCAweGQyYjQsIDB4MDA0MCwgMHgxOTI5LCAweGEzOWQsCisJMHgwMDA4LCAweDIwOTEsIDB4ODAwMCwgMHg2ODAwLCAweDAwN2UsIDB4YTIyNiwgMHgwMDQwLCAweDE5NDgsCisJMHg2YTAyLCAweGQ0ZWMsIDB4MDA0MCwgMHgxOTM1LCAweGMzYTUsIDB4ZDRlNCwgMHgwMDQwLCAweDE5MzksCisJMHhjMzlkLCAweGQ0ZjQsIDB4MDA0MCwgMHgxOTQ4LCAweDgxMGYsIDB4ZDJmNCwgMHgwMDQwLCAweDE5NDQsCisJMHgxMDc4LCAweDI4MDgsIDB4MDA3OCwgMHgxOTQ4LCAweDEwNzgsIDB4MjdlNiwgMHgwMDc4LCAweDE5NDgsCisJMHg3MmNjLCAweDY4MDgsIDB4YTIwNiwgMHgwMDQwLCAweDE5NmEsIDB4YTJhNCwgMHgwMGZmLCAweDc4MTQsCisJMHhkMGU0LCAweDAwYzAsIDB4MTk1YiwgMHhhNDgyLCAweDAwMjgsIDB4MDA0OCwgMHgxOTY3LCAweDAwNDAsCisJMHgxOTY3LCAweDAwNzgsIDB4MTk1ZiwgMHhhNDgyLCAweDAwNDMsIDB4MDA0OCwgMHgxOTY3LCAweDcxYzQsCisJMHg3MWM2LCAweDAyN2YsIDB4NzJjYSwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwgMHgxNWJhLCAweDZhMGEsCisJMHhhMzlkLCAweDAwMGEsIDB4NjgwNCwgMHhhMzA1LCAweDY4MDYsIDB4MDI3ZiwgMHg2YjBjLCAweDcxYzQsCisJMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwgMHgxNWJlLCAweDc3YzQsIDB4MTA3OCwgMHgxZTJiLCAweDIwOTEsCisJMHg4MDAwLCAweDZhMTQsIDB4NmIxYywgMHgyMDkxLCAweDgwMDEsIDB4NzBjOCwgMHg2ODE2LCAweDcwY2MsCisJMHg2ODFlLCAweDI3MDgsIDB4MDA3OCwgMHgxNWJlLCAweDcwYzQsIDB4MjA2MSwgMHg0ZjQwLCAweDYxMTgsCisJMHg2MDFhLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDE1YzAsIDB4NzBjOCwgMHgyMDYxLCAweDRmODAsCisJMHg2MjE4LCAweDYwMWEsIDB4MDA3OCwgMHgxNWJmLCAweDcxYzQsIDB4NzJjOCwgMHg3M2NjLCAweGExODIsCisJMHgwMDEwLCAweDAwYzgsIDB4MTViOSwgMHgxMDc4LCAweDI4MmEsIDB4YTM4NCwgMHg0MDAwLCAweDAwNDAsCisJMHgxOWEzLCAweGEyOTUsIDB4MDAyMCwgMHgwMDc4LCAweDE1YmUsIDB4NzdjNCwgMHgxMDc4LCAweDFlMmIsCisJMHgyMDkxLCAweDgwMDAsIDB4NmEwOCwgMHhjMjhkLCAweDZhMGEsIDB4MjA5MSwgMHg4MDAxLCAweDI3MDgsCisJMHgwMDc4LCAweDE1YmYsIDB4NzdjNCwgMHgxMDc4LCAweDFlMmIsIDB4MjA5MSwgMHg4MDAwLCAweDZhMDgsCisJMHhhMjk0LCAweGZmZjksIDB4NmEwYSwgMHg2ODA0LCAweGEwMDUsIDB4MDA0MCwgMHgxOWMxLCAweDEwNzgsCisJMHgyNjZmLCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDAwNzgsIDB4MTViZiwgMHg3N2M0LCAweDEwNzgsCisJMHgxZTJiLCAweDIwOTEsIDB4ODAwMCwgMHg2YTA4LCAweGMyOTUsIDB4NmEwYSwgMHg2ODA0LCAweGEwMDUsCisJMHgwMDQwLCAweDE5ZDQsIDB4MTA3OCwgMHgyNjZmLCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDAwNzgsCisJMHgxNWJmLCAweDc3YzQsIDB4MjA0MSwgMHgwMDAxLCAweDIwNDksIDB4MDAwNSwgMHgyMDUxLCAweDAwMjAsCisJMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwgMHgxZTQ2LCAweDIwOTEsIDB4ODAwMSwgMHgyNzA4LCAweDZhMDgsCisJMHgwMDc4LCAweDE1YmYsIDB4NzdjNCwgMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxOWZlLCAweGQ3ZmMsCisJMHgwMDQwLCAweDE5ZjgsIDB4MTA3OCwgMHgxZGFlLCAweDAwNDAsIDB4MTlmZSwgMHgwMDc4LCAweDE1YzMsCisJMHgxMDc4LCAweDFkYTEsIDB4MDA0MCwgMHgxOWZlLCAweDAwNzgsIDB4MTVjMywgMHg3M2M4LCAweDcyY2MsCisJMHg3N2M2LCAweDczY2EsIDB4NzJjZSwgMHgxMDc4LCAweDFlY2QsIDB4MDBjMCwgMHgxYTI4LCAweDY4MTgsCisJMHhhMDA1LCAweDAwNDAsIDB4MWEyMiwgMHgyNzA4LCAweDA3N2UsIDB4MTA3OCwgMHgyODVhLCAweDA3N2YsCisJMHgwMGMwLCAweDFhMjIsIDB4MjAwMSwgMHgwMDE1LCAweGQ3ZmMsIDB4MDBjMCwgMHgxYTFiLCAweDIwNjEsCisJMHg0ZjQwLCAweDAwNzgsIDB4MWExZSwgMHhjMGZkLCAweDIwNjEsIDB4NGY4MCwgMHg3ODJhLCAweDIwOTEsCisJMHg4MDAxLCAweDAwN2MsIDB4MjA5MSwgMHg4MDAxLCAweDIwMDEsIDB4NDAwNSwgMHgwMDc4LCAweDE1YzMsCisJMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwgMHgxNWMxLCAweDc3YzQsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsCisJMHgxYTQwLCAweGQ3ZmMsIDB4MDA0MCwgMHgxYTNhLCAweDEwNzgsIDB4MWRhZSwgMHgwMDQwLCAweDFhNDAsCisJMHgwMDc4LCAweDE1YzMsIDB4MTA3OCwgMHgxZGExLCAweDAwNDAsIDB4MWE0MCwgMHgwMDc4LCAweDE1YzMsCisJMHg3N2M2LCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDUsIDB4MjA1MSwgMHgwMDIwLCAweDIwOTEsCisJMHg4MDAwLCAweDEwNzgsIDB4MWU0NiwgMHgyMDA5LCAweDAwMTYsIDB4ZDdmYywgMHgwMGMwLCAweDFhNTQsCisJMHgyMDYxLCAweDRmNDAsIDB4MDA3OCwgMHgxYTU3LCAweDIwNjEsIDB4NGY4MCwgMHhjMWZkLCAweDYwNjcsCisJMHgwMDAzLCAweDYwN2YsIDB4MDAwMCwgMHg2Nzc2LCAweDYwODMsIDB4MDAwZiwgMHg3OTJhLCAweDYxZDQsCisJMHhjMWRjLCAweDYxZDYsIDB4MTA3OCwgMHgyNjZmLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDc3YzgsCisJMHg3N2NhLCAweDc3YzQsIDB4NzdjNiwgMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgxYTdlLCAweGQ3ZmMsCisJMHgwMDQwLCAweDFhNzgsIDB4MTA3OCwgMHgxZGFlLCAweDAwNDAsIDB4MWE3ZSwgMHgwMDc4LCAweDE1YzMsCisJMHgxMDc4LCAweDFkYTEsIDB4MDA0MCwgMHgxYTdlLCAweDAwNzgsIDB4MTVjMywgMHhhN2JjLCAweGZmMDAsCisJMHgyMDkxLCAweDgwMDAsIDB4MjAwOSwgMHgwMDE3LCAweGQ3ZmMsIDB4MDBjMCwgMHgxYThiLCAweDIwNjEsCisJMHg0ZjQwLCAweDAwNzgsIDB4MWE4ZSwgMHgyMDYxLCAweDRmODAsIDB4YzFmZCwgMHg2MDdmLCAweDAwMDAsCisJMHg2MDY3LCAweDAwMDIsIDB4Njc3NiwgMHg2MDgzLCAweDAwMGYsIDB4NzkyYSwgMHg2MWQ0LCAweGMxZGMsCisJMHg2MWQ2LCAweDEwNzgsIDB4MjY2ZiwgMHgyMDkxLCAweDgwMDEsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksCisJMHgwMDA1LCAweDIwNTEsIDB4MDAxMCwgMHgyMDkxLCAweDgwMDAsIDB4NzBjOCwgMHhhMDA1LCAweDAwNDAsCisJMHgxYWFjLCAweDYwZDQsIDB4YzBmZCwgMHg2MGQ2LCAweDEwNzgsIDB4MWU0NiwgMHg3MGM4LCAweDY4MzYsCisJMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDFhYWMsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCisJMHgyMDE5LCAweDAwMDAsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsIDB4MWFjZSwgMHg3MmM4LCAweGQyODQsCisJMHgwMDQwLCAweDFhYzgsIDB4MTA3OCwgMHgxZGFlLCAweDAwNDAsIDB4MWFjZSwgMHgwMDc4LCAweDE1YzMsCisJMHgxMDc4LCAweDFkYTEsIDB4MDA0MCwgMHgxYWNlLCAweDAwNzgsIDB4MTVjMywgMHg3MmM4LCAweDcyY2EsCisJMHg3OGFjLCAweGEwODQsIDB4MDAwMywgMHgwMGMwLCAweDFhZjksIDB4MjAzOSwgMHgwMDAwLCAweGQyODQsCisJMHgwMDQwLCAweDFhZGIsIDB4YzdmZCwgMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA0LCAweDIwNTEsCisJMHgwMDA4LCAweDEwNzgsIDB4MWUyYiwgMHgyMDkxLCAweDgwMDAsIDB4NjgwOCwgMHhjMGQ0LCAweGE4MGQsCisJMHg2OTBhLCAweDIwOTEsIDB4ODAwMSwgMHg4NzM4LCAweGE3ODQsIDB4MDAxZiwgMHgwMGMwLCAweDFhZTEsCisJMHhhN2JjLCAweGZmMDAsIDB4ODczZiwgMHg4NzM4LCAweDg3M2YsIDB4YTc4NCwgMHgwZjAwLCAweDAwYzAsCisJMHgxYWUxLCAweDIwOTEsIDB4ODAwMCwgMHg3MmM4LCAweGQyODQsIDB4MDBjMCwgMHgxYjBiLCAweDc4MTAsCisJMHhkMGVjLCAweDAwNDAsIDB4MWIwNywgMHgyMDY5LCAweDAxMDAsIDB4MDA3OCwgMHgxYjBkLCAweDIwNjksCisJMHgwMjAwLCAweDAwNzgsIDB4MWIwZCwgMHgyMDY5LCAweDAxMDAsIDB4NjgwOCwgMHhhMDg0LCAweGZmZmQsCisJMHg2ODBhLCAweDY4MzAsIDB4ZDBiNCwgMHgwMDQwLCAweDFiMmQsIDB4Njg0YiwgMHgwMDA0LCAweDIwYTksCisJMHgwMDE0LCAweDY4NDgsIDB4ZDA5NCwgMHgwMDQwLCAweDFiMWYsIDB4MDBmMCwgMHgxYjE5LCAweDY4NGIsCisJMHgwMDA5LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwODQsIDB4MDA0MCwgMHgxYjI5LCAweDAwZjAsCisJMHgxYjIzLCAweDIwYTksIDB4MDBmYSwgMHgwMGYwLCAweDFiMmIsIDB4MjA3OSwgMHg0ZjAwLCAweDIwMDksCisJMHgwMDE4LCAweDcyYzgsIDB4ZDI4NCwgMHgwMGMwLCAweDFiMzksIDB4MjA2MSwgMHg0ZjQwLCAweDAwNzgsCisJMHgxYjNjLCAweDIwNjEsIDB4NGY4MCwgMHhjMWZkLCAweDYwN2YsIDB4MDAwMCwgMHg3OTJhLCAweDYwNjcsCisJMHgwMDAxLCAweDYwODMsIDB4MDAwZiwgMHg2MGE3LCAweDAwMDAsIDB4NjBhOCwgMHg2MGIyLCAweDYwYjYsCisJMHg2MGQ0LCAweGQwYjQsIDB4MDA0MCwgMHgxYjU4LCAweGMwYjQsIDB4NjBkNiwgMHgwYzdlLCAweDYwYjgsCisJMHhhMDY1LCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDBjN2YsCisJMHg2MGQ0LCAweGEwODQsIDB4NzdmZiwgMHg2MGQ2LCAweDc4YWMsIDB4YzA4ZCwgMHg3OGFlLCAweDgzZmYsCisJMHgwMDQwLCAweDFiNjMsIDB4MDA3YywgMHg2ODFiLCAweDAwNDcsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsCisJMHg3M2NjLCAweDEwNzgsIDB4MWFiYSwgMHg2OWVjLCAweDZhNDgsIDB4YTE4NSwgMHgxODAwLCAweDY4NGEsCisJMHhhMTg1LCAweDAwNDAsIDB4NjhlZSwgMHg3M2NjLCAweDIwMjEsIDB4MDAwNCwgMHgyMGE5LCAweDA5ZmYsCisJMHgwMGYwLCAweDFiNzgsIDB4ODQyMSwgMHgwMGMwLCAweDFiNzYsIDB4ODMxOSwgMHgwMGMwLCAweDFiNzQsCisJMHg2OWVlLCAweDZhNGEsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4ZDdmYywgMHgwMGMwLCAweDFiOGMsCisJMHgyMDY5LCAweDRmNDAsIDB4MDA3OCwgMHgxYjhlLCAweDIwNjksIDB4NGY4MCwgMHg3MWM0LCAweDcxYzYsCisJMHg2OTE2LCAweDgxZmYsIDB4MDBjMCwgMHgxYjk2LCAweDY4YTcsIDB4MDAwMSwgMHg3OGFjLCAweGMwOGMsCisJMHg3OGFlLCAweGQwODQsIDB4MDBjMCwgMHgxYjllLCAweDEwNzgsIDB4MWYyZCwgMHgwMDdjLCAweDc1ZDgsCisJMHg3NGRjLCAweDc1ZGEsIDB4NzRkZSwgMHgwMDc4LCAweDFiYTcsIDB4YTAyZSwgMHgyNTIwLCAweDcxYzQsCisJMHg3M2M4LCAweDcyY2MsIDB4NzFjNiwgMHg3M2NhLCAweDcyY2UsIDB4MjA3OSwgMHg0ZjAwLCAweDdkZGUsCisJMHg3Y2RhLCAweDdiZDYsIDB4N2FkMiwgMHgxMDc4LCAweDFlMDQsIDB4MDA0MCwgMHgxY2QxLCAweDIwYTksCisJMHgwMDA1LCAweDIwYTEsIDB4NGYxNCwgMHgyMDkxLCAweDgwMDAsIDB4NDFhMSwgMHgyMDkxLCAweDgwMDEsCisJMHgyMDA5LCAweDAwNDAsIDB4MTA3OCwgMHgyMDE4LCAweDAwNDAsIDB4MWJjYSwgMHgxMDc4LCAweDFlMGQsCisJMHgwMDc4LCAweDFjZDEsIDB4NjAwNCwgMHhhMDhjLCAweDAwZmYsIDB4YTE4ZSwgMHgwMDA5LCAweDAwYzAsCisJMHgxYmQ1LCAweDAwN2UsIDB4MTA3OCwgMHgyM2JmLCAweDAwN2YsIDB4YTA4NCwgMHhmZjAwLCAweDgwMDcsCisJMHg4MDA5LCAweDAwNDAsIDB4MWM2MSwgMHgwYzdlLCAweDJjNjgsIDB4MTA3OCwgMHgxZTA0LCAweDAwNDAsCisJMHgxYzFiLCAweDJjMDAsIDB4Njg5ZSwgMHg4MTA5LCAweDAwYzAsIDB4MWJkYywgMHg2MDlmLCAweDAwMDAsCisJMHgwYzdmLCAweDBjN2UsIDB4N2RkYywgMHg3Y2Q4LCAweDdiZDQsIDB4N2FkMCwgMHhhMjkwLCAweDAwNDAsCisJMHhhMzk5LCAweDAwMDAsIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwgMHg3ZGRlLCAweDdjZGEsCisJMHg3YmQ2LCAweDdhZDIsIDB4MmM2OCwgMHg2ODljLCAweGEwNjUsIDB4MDA0MCwgMHgxYzYwLCAweDIwMDksCisJMHgwMDQwLCAweDEwNzgsIDB4MjAxOCwgMHgwMGMwLCAweDFjM2UsIDB4NjAwNCwgMHhhMDg0LCAweDAwZmYsCisJMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgxYzFiLCAweDYwMDQsIDB4YTA4NCwgMHgwMGZmLCAweGEwODYsCisJMHgwMDBhLCAweDAwYzAsIDB4MWMxNywgMHgwMTdlLCAweDEwNzgsIDB4MjNiYiwgMHgwMTdmLCAweDJkMDAsCisJMHg2MDAyLCAweDAwNzgsIDB4MWJlYSwgMHgwYzdmLCAweDBjN2UsIDB4NjA5YywgMHgxMDc4LCAweDFlOTAsCisJMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDFjZDUsIDB4MjAwOSwgMHgwMDE4LCAweDYwMDgsCisJMHhjMGNkLCAweDYwMGEsIDB4NjAwNCwgMHg2MDg2LCAweDc4MTAsIDB4MDA3ZSwgMHg4NGZmLCAweDAwYzAsCisJMHgxYzM0LCAweDg1ZmYsIDB4MDA0MCwgMHgxYzM2LCAweGMwYzUsIDB4NzgxMiwgMHgxMDc4LCAweDFkYmIsCisJMHgwMDdmLCAweDc4MTIsIDB4MTA3OCwgMHgxZTBkLCAweDAwNzgsIDB4MWNkMSwgMHgwYzdmLCAweDBjN2UsCisJMHg2MDljLCAweDEwNzgsIDB4MWU5MCwgMHgwYzdmLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDFjZDUsCisJMHgyMDA5LCAweDAwMTgsIDB4NjA4NywgMHgwMTAzLCAweDYwMWIsIDB4MDAwMywgMHg3ODEwLCAweDAwN2UsCisJMHg4NGZmLCAweDAwYzAsIDB4MWM1NiwgMHg4NWZmLCAweDAwNDAsIDB4MWM1OCwgMHhjMGM1LCAweDc4MTIsCisJMHgxMDc4LCAweDFkYmIsIDB4MDA3ZiwgMHg3ODEyLCAweDEwNzgsIDB4MWUwZCwgMHgwMDc4LCAweDFjZDEsCisJMHgwYzdmLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDFjOGYsIDB4NjExNCwgMHhkMWZjLCAweDAwNDAsCisJMHgxYzZmLCAweDEwNzgsIDB4MWRhZSwgMHgwMDQwLCAweDFjOGYsIDB4MDA3OCwgMHgxYzczLCAweDEwNzgsCisJMHgxZGExLCAweDAwNDAsIDB4MWM4ZiwgMHgxMDc4LCAweDFjZDUsIDB4MjAwOSwgMHgwMDE4LCAweDYwODcsCisJMHgwMTAzLCAweDYwMWIsIDB4MDAyMSwgMHg3ODEwLCAweDAwN2UsIDB4ODRmZiwgMHgwMGMwLCAweDFjODMsCisJMHg4NWZmLCAweDAwNDAsIDB4MWM4NSwgMHhjMGM1LCAweDc4MTIsIDB4MTA3OCwgMHgxZGJiLCAweDAwN2YsCisJMHg3ODEyLCAweDEwNzgsIDB4MWUwZCwgMHgyMDAxLCAweDQwMDcsIDB4MDA3OCwgMHgxNWMzLCAweDc0YzQsCisJMHg3M2M4LCAweDcyY2MsIDB4NjAxNCwgMHgyMDkxLCAweDgwMDAsIDB4MGU3ZSwgMHgyMDA5LCAweDAwMTIsCisJMHhkMGZjLCAweDAwYzAsIDB4MWM5ZiwgMHgyMDcxLCAweDRmNDAsIDB4MDA3OCwgMHgxY2EyLCAweDIwNzEsCisJMHg0ZjgwLCAweGMxZmQsIDB4NzkyYSwgMHg3MDY3LCAweDAwMDUsIDB4NzFkNCwgMHhjMWRjLCAweDcxZDYsCisJMHg3MzZhLCAweDcyNmUsIDB4NzQ3MiwgMHg3MDc2LCAweDcwN2IsIDB4MDAwMCwgMHgyYzAwLCAweDcwN2UsCisJMHhhMDJlLCAweDI1MzAsIDB4NjExYywgMHhhMTg0LCAweDAwNjAsIDB4MDA0MCwgMHgxY2I5LCAweDEwNzgsCisJMHg0NmI2LCAweDBlN2YsIDB4NjU5NiwgMHg2NWE2LCAweDY2OWEsIDB4NjZhYSwgMHg2MGFmLCAweDAwMDAsCisJMHg2MGIzLCAweDAwMDAsIDB4NjcxNCwgMHg2MDIzLCAweDAwMDAsIDB4NjAyNCwgMHhhMDk2LCAweDAwMDEsCisJMHgwMGMwLCAweDFjY2MsIDB4ODAwMCwgMHg2MDI2LCAweDEwNzgsIDB4MjY2ZiwgMHgyMDkxLCAweDgwMDEsCisJMHgwMDdjLCAweDcwYzMsIDB4NDAwNSwgMHgwMDc4LCAweDE1YzQsIDB4MjBhOSwgMHgwMDA1LCAweDIwOTksCisJMHg0ZjE0LCAweDIwOTEsIDB4ODAwMCwgMHg1MzBhLCAweDIwOTEsIDB4ODAwMSwgMHgyMTAwLCAweGEyMTAsCisJMHhhMzk5LCAweDAwMDAsIDB4YTRhMSwgMHgwMDAwLCAweGE1YTksIDB4MDAwMCwgMHgwMDdjLCAweDcxYzQsCisJMHg3MGM3LCAweDAwMDAsIDB4NzkxZSwgMHgwMDc4LCAweDE1YzEsIDB4NzFjNCwgMHg3MWM2LCAweDIxNjgsCisJMHgwMDc4LCAweDFjZjQsIDB4MjA2OSwgMHgxMDAwLCAweDY5MGMsIDB4YTAxNiwgMHgyZDA0LCAweGEyMTAsCisJMHg4ZDY4LCAweDgxMDksIDB4MDBjMCwgMHgxY2Y2LCAweGEyODUsIDB4MDAwMCwgMHgwMGMwLCAweDFkMDQsCisJMHg3MGMzLCAweDQwMDAsIDB4MDA3OCwgMHgxZDA2LCAweDcwYzMsIDB4NDAwMywgMHg3MGNhLCAweDAwNzgsCisJMHgxNWM0LCAweDc5NjQsIDB4NzFjNiwgMHg3MWM0LCAweGExODIsIDB4MDAwMywgMHgwMGM4LCAweDE1YjksCisJMHg3OTY2LCAweDAwNzgsIDB4MTVjMSwgMHg3OTY0LCAweDcxYzYsIDB4MDA3OCwgMHgxNWMxLCAweDc5MDAsCisJMHg3MWM2LCAweDcxYzQsIDB4NzkwMiwgMHgwMDc4LCAweDE1YzEsIDB4NzkwMCwgMHg3MWM2LCAweDAwNzgsCisJMHgxNWMxLCAweDcwYzQsIDB4MjAxMSwgMHgwMDAwLCAweGEwOGMsIDB4MDAwZCwgMHgwMDQwLCAweDFkMzYsCisJMHg4MTBjLCAweDAwNDgsIDB4MWQzMiwgMHg4MjEwLCAweDgxMGMsIDB4ODEwYywgMHgwMDQ4LCAweDFkMzIsCisJMHg4MjEwLCAweDgxMGMsIDB4ODFmZiwgMHgwMGMwLCAweDE1YmEsIDB4ODIxMCwgMHg3YTBlLCAweGQyOGMsCisJMHgwMDQwLCAweDFkNjIsIDB4NzkxMCwgMHhjMWNkLCAweDc5MTIsIDB4MjAwOSwgMHgwMDIxLCAweDIwMTksCisJMHgwMDAzLCAweGQyODQsIDB4MDA0MCwgMHgxZDVjLCAweDgxMDgsIDB4MjAxOSwgMHgwMDQxLCAweDIwMTEsCisJMHg5NzRlLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQyLCAweDgyMTAsIDB4MjMxMiwgMHgyMDE5LCAweDAwNDMsCisJMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDQ2LCAweDgyMTAsIDB4MjMxMiwgMHgyMDE5LCAweDAwNDcsCisJMHg4MjEwLCAweDIzMTIsIDB4MjAxOSwgMHgwMDA2LCAweDIwMTEsIDB4OTc1MywgMHgyMTEyLCAweDIwMTEsCisJMHg5NzczLCAweDIzMTIsIDB4NzkwNCwgMHg3ODA2LCAweDAwNzgsIDB4MTVjMCwgMHg3ODA0LCAweDcwYzYsCisJMHgwMDc4LCAweDE1YzEsIDB4NzFjNCwgMHhkMWZjLCAweDAwYzAsIDB4MWQ3MiwgMHgyMDExLCAweDUzYzAsCisJMHgwMDc4LCAweDFkNzQsIDB4MjAxMSwgMHg1NDQwLCAweDgxMDcsIDB4YTA4NCwgMHgwMDBmLCAweDgwMDMsCisJMHg4MDAzLCAweDgwMDMsIDB4YTI2OCwgMHg2YTE0LCAweGQyYjQsIDB4MDA0MCwgMHgxZDgzLCAweDIwMTEsCisJMHgwMDAxLCAweDAwNzgsIDB4MWQ4NSwgMHgyMDExLCAweDAwMDAsIDB4NmIwYywgMHg2ODAwLCAweDcwZGEsCisJMHgwMDc4LCAweDE1YmUsIDB4NzgxNCwgMHhkMGY0LCAweDAwNDAsIDB4MWQ5NSwgMHgyMDAxLCAweDQwMDcsCisJMHg3MGRiLCAweDAwMDAsIDB4YTAwNSwgMHgwMDc4LCAweDFkYTAsIDB4ZDBmYywgMHgwMDQwLCAweDFkOWYsCisJMHgyMDAxLCAweDQwMDcsIDB4NzBkYiwgMHgwMDAxLCAweGEwMDUsIDB4MDA3OCwgMHgxZGEwLCAweGEwMDYsCisJMHgwMDdjLCAweDc4MTQsIDB4ZDBmNCwgMHgwMDQwLCAweDFkYWMsIDB4MjAwMSwgMHg0MDA3LCAweDcwZGIsCisJMHgwMDAwLCAweGEwMDUsIDB4MDA3OCwgMHgxZGFkLCAweGEwMDYsIDB4MDA3YywgMHg3ODE0LCAweGQwZmMsCisJMHgwMDQwLCAweDFkYjksIDB4MjAwMSwgMHg0MDA3LCAweDcwZGIsIDB4MDAwMSwgMHhhMDA1LCAweDAwNzgsCisJMHgxZGJhLCAweGEwMDYsIDB4MDA3YywgMHg3MTEyLCAweDcyMWEsIDB4NzMxZSwgMHg3ODEwLCAweGQwYzQsCisJMHgwMDQwLCAweDFkYzQsIDB4NzQyMiwgMHg3NTI2LCAweGFjODAsIDB4MDAwMSwgMHg4MTA4LCAweDgxMGMsCisJMHg4MWE5LCAweDgwOTgsIDB4MjBhMSwgMHgwMDMwLCAweDcwMDMsIDB4MDAwMCwgMHg2MDg0LCAweDIwYTIsCisJMHg1M2E2LCAweDcwMDcsIDB4MDAwMSwgMHg3OTc0LCAweGExODQsIDB4ZmYwMCwgMHgwMDQwLCAweDFkZTEsCisJMHg4MTBmLCAweDgxMGMsIDB4ODEwYywgMHg4MDA0LCAweDgwMDQsIDB4ODAwNywgMHhhMTAwLCAweDAwNzgsCisJMHgxZGU0LCAweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweDc5N2MsIDB4YTEwOCwgMHg3YTc4LCAweGEwMDYsCisJMHhhMjExLCAweDdkMTAsIDB4ZDVjNCwgMHgwMDQwLCAweDFkZjEsIDB4N2I4NCwgMHhhMzE5LCAweDdjODAsCisJMHhhNDIxLCAweDcwMDgsIDB4ZDBmYywgMHgwMDQwLCAweDFkZjEsIDB4NzAwMywgMHgwMDAxLCAweDcwMDcsCisJMHgwMDA2LCAweDcxMWEsIDB4NzIxZSwgMHg3ZDEwLCAweGQ1YzQsIDB4MDA0MCwgMHgxZTAxLCAweDczMjIsCisJMHg3NDI2LCAweGEwODQsIDB4MDFlMCwgMHgwMDdjLCAweDc4NDgsIDB4YTA2NSwgMHgwMDQwLCAweDFlMGMsCisJMHgyYzA0LCAweDc4NGEsIDB4MjA2MywgMHgwMDAwLCAweDAwN2MsIDB4MGY3ZSwgMHgyMDc5LCAweDRmMDAsCisJMHg3ODQ4LCAweDIwNjIsIDB4MmMwMCwgMHhhMDA1LCAweDAwYzAsIDB4MWUxOCwgMHgxMDc4LCAweDI5YjIsCisJMHg3ODRhLCAweDBmN2YsIDB4MDA3YywgMHgyMDExLCAweDk5MDAsIDB4N2E0YSwgMHg3YmM0LCAweDgzMTksCisJMHgwMDQwLCAweDFlMjgsIDB4YTI4MCwgMHgwMDMyLCAweDIwMTIsIDB4MjAxMCwgMHgwMDc4LCAweDFlMWYsCisJMHgyMDEzLCAweDAwMDAsIDB4MDA3YywgMHgwMTdlLCAweDAyN2UsIDB4ZDdmYywgMHgwMGMwLCAweDFlMzQsCisJMHgyMDExLCAweDU0YzAsIDB4MDA3OCwgMHgxZTM2LCAweDIwMTEsIDB4NzRjMCwgMHhhNzg0LCAweDBmMDAsCisJMHg4MDBiLCAweGE3ODQsIDB4MDAxZiwgMHgwMDQwLCAweDFlNDEsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsCisJMHg4MDAzLCAweGExMDUsIDB4YTI2OCwgMHgwMjdmLCAweDAxN2YsIDB4MDA3YywgMHgxMDc4LCAweDFlMmIsCisJMHgyOTAwLCAweDY4MmEsIDB4MmEwMCwgMHg2ODJlLCAweDY4MDgsIDB4YTA4NCwgMHhmOWVmLCAweGE4MGQsCisJMHg2OTBhLCAweDBlN2UsIDB4ZDdmYywgMHgwMGMwLCAweDFlNWIsIDB4MjAwOSwgMHg0ZjUzLCAweDIwNzEsCisJMHg0ZjQwLCAweDAwNzgsIDB4MWU1ZiwgMHgyMDA5LCAweDRmOTMsIDB4MjA3MSwgMHg0ZjgwLCAweDIxMGMsCisJMHg2ODA0LCAweGEwMDUsIDB4MDA0MCwgMHgxZTZmLCAweGExMTYsIDB4MDBjMCwgMHgxZTZmLCAweDIwNjAsCisJMHg2MDAwLCAweDY4MDYsIDB4MDE3ZSwgMHgyMDBiLCAweDAwMDAsIDB4MDA3OCwgMHgxZTcyLCAweDIwMDksCisJMHgwMDAwLCAweDAxN2UsIDB4NjgwNCwgMHhhMDY1LCAweDAwNDAsIDB4MWU4NywgMHg2MDAwLCAweDY4MDYsCisJMHgxMDc4LCAweDFlYTIsIDB4MTA3OCwgMHgyMDY0LCAweDY4MTAsIDB4NzkwOCwgMHg4MTA5LCAweDc5MGEsCisJMHg4MDAxLCAweDY4MTIsIDB4MDBjMCwgMHgxZTcyLCAweDc5MTAsIDB4YzFhNSwgMHg3OTEyLCAweDAxN2YsCisJMHg2OTAyLCAweDY5MDYsIDB4MmQwMCwgMHgyMDYwLCAweDEwNzgsIDB4MmIxMywgMHgwZTdmLCAweDAwN2MsCisJMHhhMDY1LCAweDAwNDAsIDB4MWVhMSwgMHgyMDA4LCAweDYwOWMsIDB4YTAwNSwgMHgwMDQwLCAweDFlOWUsCisJMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwgMHhhMDY1LCAweDAwNzgsIDB4MWU5NCwgMHg3ODQ4LCAweDc5NGEsCisJMHgyMDYyLCAweDAwN2MsIDB4NjAwNywgMHgwMTAzLCAweDYwOGYsIDB4MDAwMCwgMHgyMGE5LCAweDAwMWMsCisJMHhhYzgwLCAweDAwMDUsIDB4MjBhMCwgMHgyMDAxLCAweDAwMDAsIDB4NDBhNCwgMHg2ODI4LCAweDYwMWEsCisJMHg2ODJjLCAweDYwMjIsIDB4MDA3YywgMHgwZTdlLCAweGQ3ZmMsIDB4MDBjMCwgMHgxZWJkLCAweDIwNzEsCisJMHg0ZjQwLCAweDIwMzEsIDB4NGZjMCwgMHgwMDc4LCAweDFlYzEsIDB4MjA3MSwgMHg0ZjgwLCAweDIwMzEsCisJMHg1MWMwLCAweDcwNTAsIDB4YTA4YywgMHgwMjAwLCAweDAwYzAsIDB4MWVjYiwgMHhhNjA4LCAweDJkMGEsCisJMHg4MDAwLCAweDcwNTIsIDB4YTAwNiwgMHgwZTdmLCAweDAwN2MsIDB4MGY3ZSwgMHhkN2ZjLCAweDAwYzAsCisJMHgxZWQ1LCAweDIwNzksIDB4NGY0MCwgMHgwMDc4LCAweDFlZDcsIDB4MjA3OSwgMHg0ZjgwLCAweDEwNzgsCisJMHgxZTJiLCAweDIwOTEsIDB4ODAwMCwgMHg2ODA0LCAweDc4MGEsIDB4YTA2NSwgMHgwMDQwLCAweDFmMmIsCisJMHgwMDc4LCAweDFlZTksIDB4MmMwMCwgMHg3ODBhLCAweDIwNjAsIDB4NjAwMCwgMHhhMDY1LCAweDAwNDAsCisJMHgxZjJiLCAweDYwMTAsIDB4YTMwNiwgMHgwMGMwLCAweDFlZTIsIDB4NjAwYywgMHhhMjA2LCAweDAwYzAsCisJMHgxZWUyLCAweDJjMjgsIDB4Nzg0YywgMHhhYzA2LCAweDAwYzAsIDB4MWVmOCwgMHgwMDc4LCAweDFmMjgsCisJMHg2ODA0LCAweGFjMDYsIDB4MDBjMCwgMHgxZjA2LCAweDYwMDAsIDB4MjA2MCwgMHg2ODA2LCAweGEwMDUsCisJMHgwMGMwLCAweDFmMDYsIDB4NjgwMywgMHgwMDAwLCAweDAwNzgsIDB4MWYxMCwgMHg2NDAwLCAweDc4MDgsCisJMHgyMDYwLCAweDY0MDIsIDB4YTQ4NiwgMHgwMDAwLCAweDAwYzAsIDB4MWYxMCwgMHgyYzAwLCAweDY4MDIsCisJMHgyNTYwLCAweDBmN2YsIDB4MTA3OCwgMHgxZWEyLCAweDBmN2UsIDB4NjAxYiwgMHgwMDA1LCAweDYwMjMsCisJMHgwMDIwLCAweDBmN2YsIDB4MTA3OCwgMHgyMDY0LCAweDBmN2UsIDB4NzkwOCwgMHg4MTA5LCAweDc5MGEsCisJMHg2ODEwLCAweDgwMDEsIDB4NjgxMiwgMHgwMGMwLCAweDFmMjgsIDB4NzgxMCwgMHhjMGE1LCAweDc4MTIsCisJMHgyMDAxLCAweGZmZmYsIDB4YTAwNSwgMHgwZjdmLCAweDAwN2MsIDB4MDc3ZSwgMHgyNzAwLCAweDIwMzksCisJMHgwMDAwLCAweGQwZmMsIDB4MDA0MCwgMHgxZjM1LCAweGM3ZmQsIDB4MjA0MSwgMHgwMDIxLCAweDIwNDksCisJMHgwMDA0LCAweDIwNTEsIDB4MDAwOCwgMHgyMDkxLCAweDgwMDAsIDB4MTA3OCwgMHgxZTQ2LCAweDg3MzgsCisJMHhhNzg0LCAweDAwMWYsIDB4MDBjMCwgMHgxZjNkLCAweGE3YmMsIDB4ZmYwMCwgMHg4NzNmLCAweDg3MzgsCisJMHg4NzNmLCAweGE3ODQsIDB4MGYwMCwgMHgwMGMwLCAweDFmM2QsIDB4MjA5MSwgMHg4MDAxLCAweDA3N2YsCisJMHgwMDdjLCAweDc4NmMsIDB4MjAwOSwgMHg5Nzc0LCAweDIxMGMsIDB4YTEwZCwgMHgwMDQwLCAweDFmNWIsCisJMHhhMDY1LCAweDAwNzgsIDB4MjNkYywgMHgyMDYxLCAweDAwMDAsIDB4NjAxOCwgMHhkMDg0LCAweDAwYzAsCisJMHgxZjdiLCAweDc4MTAsIDB4ZDA4YywgMHgwMDQwLCAweDFmNmMsIDB4YzA4YywgMHg3ODEyLCAweGM3ZmMsCisJMHgyMDY5LCAweDRmNDAsIDB4MDA3OCwgMHgxZjcxLCAweGMwOGQsIDB4NzgxMiwgMHgyMDY5LCAweDRmODAsCisJMHhjN2ZkLCAweDIwOTEsIDB4ODAwMCwgMHg2ODFjLCAweDY4MWYsIDB4MDAwMCwgMHgyMDkxLCAweDgwMDEsCisJMHhhMDA1LCAweDAwYzAsIDB4MWY3YywgMHgwMDdjLCAweGEwOGMsIDB4ZmZmMCwgMHgwMDQwLCAweDFmODIsCisJMHgxMDc4LCAweDI5YjIsIDB4MDA3OSwgMHgxZjg0LCAweDFmOTQsIDB4MWY5NywgMHgxZjlkLCAweDFmYTEsCisJMHgxZjk1LCAweDFmYTUsIDB4MWY5NSwgMHgxZjk1LCAweDFmOTUsIDB4MWZhYiwgMHgxZmRjLCAweDFmZTAsCisJMHgxZmU2LCAweDFmZmIsIDB4MWY5NSwgMHgxZjk1LCAweDAwN2MsIDB4MTA3OCwgMHgyOWIyLCAweDEwNzgsCisJMHgxZjJkLCAweDIwMDEsIDB4ODAwMSwgMHgwMDc4LCAweDIwMDcsIDB4MjAwMSwgMHg4MDAzLCAweDAwNzgsCisJMHgyMDA3LCAweDIwMDEsIDB4ODAwNCwgMHgwMDc4LCAweDIwMDcsIDB4MTA3OCwgMHgxZjJkLCAweDIwMDEsCisJMHg4MDA2LCAweDAwNzgsIDB4MjAwNywgMHgyMDkxLCAweDgwMDAsIDB4MDc3ZSwgMHhkN2ZjLCAweDAwYzAsCisJMHgxZmI3LCAweDIwNjksIDB4NGY0MCwgMHgyMDM5LCAweDAwMDksIDB4MDA3OCwgMHgxZmJiLCAweDIwNjksCisJMHg0ZjgwLCAweDIwMzksIDB4MDAwOSwgMHg2ODAwLCAweGEwODYsIDB4MDAwMCwgMHgwMDQwLCAweDFmYzUsCisJMHgwMDdmLCAweDZmMWUsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4Njg3NCwgMHgwNzdmLCAweGEwYmMsCisJMHhmZjAwLCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDQsIDB4MjA1MSwgMHgwMDEwLCAweDEwNzgsCisJMHgxZTQ2LCAweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDAwYzAsIDB4MWZjZiwgMHgyMDkxLCAweDgwMDEsCisJMHgyMDAxLCAweDgwMGEsIDB4MDA3OCwgMHgyMDA3LCAweDIwMDEsIDB4ODAwYywgMHgwMDc4LCAweDIwMDcsCisJMHgxMDc4LCAweDFmMmQsIDB4MjAwMSwgMHg4MDBkLCAweDAwNzgsIDB4MjAwNywgMHg3ODE0LCAweGQwZTQsCisJMHgwMGMwLCAweDFmZjksIDB4ZDBlYywgMHgwMDQwLCAweDFmZjMsIDB4ZDdmYywgMHgwMDQwLCAweDFmZjMsCisJMHg3OGU0LCAweDAwNzgsIDB4MWZmNCwgMHg3OGUwLCAweDcwYzYsIDB4MjAwMSwgMHg4MDBlLCAweDAwNzgsCisJMHgyMDA3LCAweDAwNzgsIDB4MWY5NSwgMHhkN2ZjLCAweDAwNDAsIDB4MjAwMSwgMHg3OGVjLCAweDAwNzgsCisJMHgyMDAyLCAweDc4ZTgsIDB4NzBjNiwgMHgyMDAxLCAweDgwMGYsIDB4MDA3OCwgMHgyMDA3LCAweDcwYzIsCisJMHhkN2ZjLCAweDAwYzAsIDB4MjAwZiwgMHg3MGRiLCAweDAwMDAsIDB4MDA3OCwgMHgyMDExLCAweDcwZGIsCisJMHgwMDAxLCAweDIwNjEsIDB4MDAwMCwgMHg2MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDAwN2MsCisJMHhhYzgwLCAweDAwMDEsIDB4ODFmZiwgMHgwMDQwLCAweDIwNDMsIDB4MjA5OSwgMHgwMDMwLCAweDIwYTAsCisJMHg3MDBjLCAweGEwODQsIDB4MDNmZiwgMHgwMDQwLCAweDIwMjUsIDB4NzAxOCwgMHgwMDdlLCAweDcwMWMsCisJMHgwMDdlLCAweDcwMjAsIDB4MDA3ZSwgMHg3MDI0LCAweDAwN2UsIDB4NzExMiwgMHg4MWFjLCAweDcyMWEsCisJMHg3MzFlLCAweDc0MjIsIDB4NzUyNiwgMHg3MDAzLCAweDAwMDEsIDB4NzAwNywgMHgwMDAxLCAweDcwMDgsCisJMHg4MDBiLCAweDAwYzgsIDB4MjAzNywgMHg3MDA3LCAweDAwMDIsIDB4YTA4YywgMHgwMWUwLCAweDAwYzAsCisJMHgyMDQzLCAweDUzYTUsIDB4YTAwNiwgMHg3MDAzLCAweDAwMDAsIDB4NzAwNywgMHgwMDA0LCAweDAwN2YsCisJMHg3MDI2LCAweDAwN2YsIDB4NzAyMiwgMHgwMDdmLCAweDcwMWUsIDB4MDA3ZiwgMHg3MDFhLCAweDAwN2MsCisJMHgyMDExLCAweDAwMjAsIDB4MjAwOSwgMHgwMDEwLCAweDZiMGEsIDB4NmMwZSwgMHg2ODAzLCAweGZkMDAsCisJMHg2ODA3LCAweDAwMTgsIDB4NmExYSwgMHgyZDAwLCAweGEwZTgsIDB4MDAwOCwgMHhhMjkwLCAweDAwMDQsCisJMHg4MTA5LCAweDAwYzAsIDB4MjA1NCwgMHgwMDdjLCAweDYwMDQsIDB4NjA4NiwgMHgyYzA4LCAweDIwNjMsCisJMHgwMDAwLCAweDc4NjgsIDB4YTAwNSwgMHg3OTZhLCAweDAwNDAsIDB4MjA3MSwgMHgyYzAyLCAweDAwNzgsCisJMHgyMDcyLCAweDc5NmUsIDB4MDA3YywgMHgwYzdlLCAweDIwNjEsIDB4NGYwMCwgMHg2ODg3LCAweDAxMDMsCisJMHgyZDA4LCAweDIwNmIsIDB4MDAwMCwgMHg2MDY4LCAweGEwMDUsIDB4NjE2YSwgMHgwMDQwLCAweDIwODMsCisJMHgyZDAyLCAweDAwNzgsIDB4MjA4NCwgMHg2MTZlLCAweDBjN2YsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsCisJMHgyYzA0LCAweDc4NmUsIDB4YTAwNSwgMHgwMGMwLCAweDIwOGUsIDB4Nzg2YSwgMHgyMDkxLCAweDgwMDEsCisJMHg2MDljLCAweGEwMDUsIDB4MDA0MCwgMHgyMGE3LCAweDBjN2UsIDB4MjA2MCwgMHgyMDA4LCAweDYwOWMsCisJMHhhMDA1LCAweDAwNDAsIDB4MjBhMywgMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwgMHhhMDY1LCAweDYwOWMsCisJMHhhMDA1LCAweDAwYzAsIDB4MjA5YiwgMHg3ODQ4LCAweDc5NGEsIDB4MjA2MiwgMHgwYzdmLCAweDc4NDgsCisJMHgyMDYyLCAweDYwOWYsIDB4MDAwMCwgMHhhYzg1LCAweDAwMDAsIDB4MDBjMCwgMHgyMGIxLCAweDEwNzgsCisJMHgyOWIyLCAweDc4NGEsIDB4MDA3YywgMHgyMGE5LCAweDAwMTAsIDB4YTAwNiwgMHg4MDA0LCAweDgwODYsCisJMHg4MThlLCAweDAwYzgsIDB4MjBiYywgMHhhMjAwLCAweDAwZjAsIDB4MjBiNywgMHg4MDg2LCAweDgxOGUsCisJMHgwMDdjLCAweDE1N2UsIDB4MjBhOSwgMHgwMDEwLCAweGEwMDUsIDB4MDA0MCwgMHgyMGUyLCAweGExMWEsCisJMHgwMGM4LCAweDIwZTIsIDB4ODIxMywgMHg4MThkLCAweDAwNDgsIDB4MjBkNSwgMHhhMTFhLCAweDAwYzgsCisJMHgyMGQ2LCAweDAwZjAsIDB4MjBjYSwgMHgwMDc4LCAweDIwZGEsIDB4YTExYSwgMHgyMzA4LCAweDgyMTAsCisJMHgwMGYwLCAweDIwY2EsIDB4MDA3ZSwgMHgzMjAwLCAweGEwODQsIDB4ZjdmZiwgMHgyMDgwLCAweDAwN2YsCisJMHgxNTdmLCAweDAwN2MsIDB4MDA3ZSwgMHgzMjAwLCAweGEwODUsIDB4MDgwMCwgMHgwMDc4LCAweDIwZGUsCisJMHg3ZDc0LCAweDcwZDAsIDB4YTUwNiwgMHgwMDQwLCAweDIxY2UsIDB4NzgxMCwgMHgyMDUwLCAweDc4MDAsCisJMHhkMDhjLCAweDAwNDAsIDB4MjEwYSwgMHhkYWVjLCAweDAwNDAsIDB4MjEwYSwgMHgwZTdlLCAweDIwOTEsCisJMHg4MDAwLCAweDIwNzEsIDB4MDAyMCwgMHg3MDA0LCAweGEwMDUsIDB4MDBjMCwgMHgyMTA3LCAweDcwMDgsCisJMHgwZTdmLCAweGEwODYsIDB4MDAwOCwgMHgwMDQwLCAweDIxMGEsIDB4MDA3OCwgMHgyMWNlLCAweDBlN2YsCisJMHgwMDc4LCAweDIxY2UsIDB4MTA3OCwgMHgxZTA0LCAweDAwNDAsIDB4MjFjZSwgMHhhMDQ2LCAweDc5NzAsCisJMHgyNTAwLCAweDgwMDAsIDB4YTExMiwgMHgyMDA5LCAweDAwNDAsIDB4MDBjOCwgMHgyMTE5LCAweDAwNzgsCisJMHgyMTIwLCAweDcyZDAsIDB4YTIwNiwgMHgwMDQwLCAweDIxMjAsIDB4ODg0MCwgMHgyMDA5LCAweDAwODAsCisJMHgwYzdlLCAweDcxMTIsIDB4NzAwNywgMHgwMDAxLCAweDIwOTksIDB4MDAzMCwgMHgyMGE5LCAweDAwMjAsCisJMHhhYzgwLCAweDAwMDEsIDB4MjBhMCwgMHgyMDYxLCAweDAwMDAsIDB4ODhmZiwgMHgwMDQwLCAweDIxMzIsCisJMHgxMDc4LCAweDFlMDQsIDB4NzAwOCwgMHhkMGZjLCAweDAwNDAsIDB4MjEzMiwgMHg3MDA3LCAweDAwMDIsCisJMHgyMDkxLCAweDgwMDEsIDB4YTA4YywgMHgwMWUwLCAweDAwYzAsIDB4MjE2OSwgMHg1M2E1LCAweDhjZmYsCisJMHgwMGMwLCAweDIxNDcsIDB4ODhmZiwgMHgwMDQwLCAweDIxYjgsIDB4MDA3OCwgMHgyMTUxLCAweDJjMDAsCisJMHg3ODhlLCAweDIwYTksIDB4MDAyMCwgMHhhYzgwLCAweDAwMDEsIDB4MjBhMCwgMHg1M2E1LCAweDAwNzgsCisJMHgyMWI4LCAweGEwNDYsIDB4NzIxOCwgMHg3MzFjLCAweGRhYzQsIDB4MDA0MCwgMHgyMTU5LCAweDc0MjAsCisJMHg3NTI0LCAweGEyOTIsIDB4MDA0MCwgMHhhMzliLCAweDAwMDAsIDB4YTRhMywgMHgwMDAwLCAweGE1YWIsCisJMHgwMDAwLCAweDcyMWEsIDB4NzMxZSwgMHhkYWM0LCAweDAwNDAsIDB4MjE2OSwgMHg3NDIyLCAweDc1MjYsCisJMHhhMDA2LCAweDcwMDcsIDB4MDAwNCwgMHgwMDQwLCAweDIxYjgsIDB4OGNmZiwgMHgwMDQwLCAweDIxNzIsCisJMHgxMDc4LCAweDFlMGQsIDB4MGM3ZiwgMHgxMDc4LCAweDFlMGQsIDB4YTA0NiwgMHg3ODg4LCAweDgwMDAsCisJMHg3ODhhLCAweGEwODYsIDB4MDAwMiwgMHgwMDQwLCAweDIxOTgsIDB4N2E3YywgMHg3Yjc4LCAweGRhYzQsCisJMHgwMDQwLCAweDIxODQsIDB4N2M4NCwgMHg3ZDgwLCAweDc5NzQsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsCisJMHhhMjEwLCAweGEzOTksIDB4MDAwMCwgMHhhNGExLCAweDAwMDAsIDB4YTVhOSwgMHgwMDAwLCAweDcyMWEsCisJMHg3MzFlLCAweGRhYzQsIDB4MDA0MCwgMHgyMWNlLCAweDc0MjIsIDB4NzUyNiwgMHgwMDc4LCAweDIxY2UsCisJMHg2MDE0LCAweGQwZmMsIDB4MDBjMCwgMHgyMWEwLCAweDIwNjksIDB4NGY0MCwgMHgwMDc4LCAweDIxYTIsCisJMHgyMDY5LCAweDRmODAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MWYsIDB4MDAwMiwgMHg4OGZmLCAweDAwNDAsCisJMHgyMWFlLCAweGEwNDYsIDB4Nzg4YywgMHgyMDYwLCAweDAwNzgsIDB4MjE5OCwgMHg3ODhiLCAweDAwMDAsCisJMHg3OGFjLCAweGEwODUsIDB4MDAwMywgMHg3OGFlLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDIxY2UsCisJMHgwYzdmLCAweDc4OGIsIDB4MDAwMCwgMHgxMDc4LCAweDIzOGQsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsCisJMHgxMDc4LCAweDIxY2YsIDB4ODhmZiwgMHgwMDQwLCAweDIxY2MsIDB4Nzg4YywgMHgyMDYwLCAweDYwMDQsCisJMHhhMDg0LCAweDAwMGYsIDB4MTA3OCwgMHgyMWNmLCAweDAwNzgsIDB4MjBlOCwgMHgwMDdjLCAweDAwNzksCisJMHgyMWQxLCAweDIxZTEsIDB4MjFmZiwgMHgyMjFkLCAweDIxZTEsIDB4MjIyZSwgMHgyMWYyLCAweDIxZTEsCisJMHgyMWUxLCAweDIxZTEsIDB4MjFmZCwgMHgyMjFiLCAweDIxZTEsIDB4MjFlMSwgMHgyMWUxLCAweDIxZTEsCisJMHgyMWUxLCAweDIwMzksIDB4MDQwMCwgMHg3OGJjLCAweGE3MDUsIDB4NzhiZSwgMHg2MDA4LCAweGE3MDUsCisJMHg2MDBhLCAweDEwNzgsIDB4MjI3MSwgMHg2MDljLCAweDc4YmEsIDB4NjA5ZiwgMHgwMDAwLCAweDEwNzgsCisJMHgyMzc3LCAweDAwN2MsIDB4NzhiYywgMHhkMGM0LCAweDAwNDAsIDB4MjFmOCwgMHgwMDc4LCAweDIxZTEsCisJMHg2MDFjLCAweGMwYmQsIDB4NjAxZSwgMHgwMDc4LCAweDIyMDUsIDB4MTA3OCwgMHgyM2JmLCAweDc4YmMsCisJMHhkMGM0LCAweDAwNDAsIDB4MjIwNSwgMHgwMDc4LCAweDIxZTEsIDB4NzhiZiwgMHgwMDAwLCAweDYwMDQsCisJMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHg3OGIyLCAweDgwMDEsIDB4MDA0MCwgMHgyMjE4LCAweDEwNzgsCisJMHgyMjcxLCAweDAwNDAsIDB4MjIxOCwgMHg3OGJjLCAweGMwYzUsIDB4NzhiZSwgMHgwMDc4LCAweDIyMWEsCisJMHgwMDc4LCAweDIyOTAsIDB4MDA3YywgMHgxMDc4LCAweDIzYmIsIDB4NzhiYywgMHhhMDhjLCAweDBlMDAsCisJMHgwMGMwLCAweDIyMjUsIDB4ZDBjNCwgMHgwMGMwLCAweDIyMjcsIDB4MDA3OCwgMHgyMWUxLCAweDEwNzgsCisJMHgyMjcxLCAweDAwYzAsIDB4MjIyZCwgMHgwMDc4LCAweDIyOTAsIDB4MDA3YywgMHg3OGJjLCAweGQwYzQsCisJMHgwMDQwLCAweDIyMzQsIDB4MDA3OCwgMHgyMWUxLCAweDc4YmYsIDB4MDAwMCwgMHg2NzE0LCAweDIwMTEsCisJMHgwMDAxLCAweDIyYTgsIDB4NjAxOCwgMHhhMDg0LCAweDAwZmYsIDB4YTAwNSwgMHgwMDQwLCAweDIyNTQsCisJMHhhN2JjLCAweGZmMDAsIDB4MjBhOSwgMHgwMDIwLCAweGEwOGUsIDB4MDAwMSwgMHgwMDQwLCAweDIyNTQsCisJMHhhN2JjLCAweDgwMDAsIDB4MjAxMSwgMHgwMDAyLCAweDIwYTksIDB4MDEwMCwgMHhhMDhlLCAweDAwMDIsCisJMHgwMDQwLCAweDIyNTQsIDB4MDA3OCwgMHgyMjZlLCAweDEwNzgsIDB4MWUyYiwgMHgyZDAwLCAweDIwOTEsCisJMHg4MDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2ODJmLCAweDAwMDAsIDB4NjgwOCwgMHhhMDg0LCAweGZmZGUsCisJMHg2ODBhLCAweGFkZTgsIDB4MDAxMCwgMHgyMDkxLCAweDgwMDEsIDB4MDBmMCwgMHgyMjU3LCAweDgyMTEsCisJMHgwMDQwLCAweDIyNmUsIDB4MjBhOSwgMHgwMTAwLCAweDAwNzgsIDB4MjI1NywgMHgxMDc4LCAweDFlMGQsCisJMHgwMDdjLCAweDYwOWYsIDB4MDAwMCwgMHg3OGI0LCAweGEwNmQsIDB4MmMwMCwgMHg3OGI2LCAweDAwYzAsCisJMHgyMjdjLCAweDc4YmEsIDB4MDA3OCwgMHgyMjg0LCAweDY4OWUsIDB4MmQwMCwgMHg2MDAyLCAweDc4YjgsCisJMHhhZDA2LCAweDAwYzAsIDB4MjI4NCwgMHg2MDAyLCAweDc4YjAsIDB4ODAwMSwgMHg3OGIyLCAweDAwYzAsCisJMHgyMjhmLCAweDc4YmMsIDB4YzBjNCwgMHg3OGJlLCAweDc4YjgsIDB4MjA2MCwgMHhhMDA2LCAweDAwN2MsCisJMHgwZTdlLCAweGEwMmUsIDB4MjUzMCwgMHg3ZGJhLCAweDdkYjYsIDB4NjVhZSwgMHg2NWIyLCAweDYwMWMsCisJMHg2MGEyLCAweDIwNDgsIDB4YTk4NCwgMHhlMWZmLCAweDYwMWUsIDB4YTk4NCwgMHgwMDYwLCAweDAwNDAsCisJMHgyMmEzLCAweDEwNzgsIDB4NDZiNiwgMHg2NTk2LCAweDY1YTYsIDB4NjY5YSwgMHg2NmFhLCAweDY3MTQsCisJMHgyMDcxLCAweDRmODAsIDB4ZDdmYywgMHgwMGMwLCAweDIyYWYsIDB4MjA3MSwgMHg0ZjQwLCAweGE3ODQsCisJMHgwZjAwLCAweDgwMGIsIDB4YTc4NCwgMHgwMDFmLCAweDAwNDAsIDB4MjJiYSwgMHg4MDAzLCAweDgwMDMsCisJMHg4MDAzLCAweDgwMDMsIDB4YTEwNSwgMHg3MWM0LCAweGExNjgsIDB4MjcwMCwgMHg4MDA3LCAweGEwODQsCisJMHgwMDBmLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweDcxYzgsIDB4YTEwMCwgMHg2MGMyLCAweDIwOTEsCisJMHg4MDAwLCAweDc4MTQsIDB4ZDBjNCwgMHgwMDQwLCAweDIyZGYsIDB4ZDBlYywgMHgwMDQwLCAweDIyZGIsCisJMHhkN2ZjLCAweDAwYzAsIDB4MjJkOCwgMHhkMGY0LCAweDAwYzAsIDB4MjJlNiwgMHgwMDc4LCAweDIyZGYsCisJMHhkMGZjLCAweDAwYzAsIDB4MjJlNiwgMHg3ODEwLCAweGQwZjQsIDB4MDBjMCwgMHgyMmU2LCAweDZlMDgsCisJMHhkNjg0LCAweDAwNDAsIDB4MjMxMCwgMHhkOWZjLCAweDAwYzAsIDB4MjMxMCwgMHgyMDkxLCAweDgwMDEsCisJMHgxMDc4LCAweDFlYTIsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MjA2NCwgMHgyMDkxLCAweDgwMDEsCisJMHg3ODE0LCAweGQwZTQsIDB4MDBjMCwgMHgyMzc1LCAweDc4MTQsIDB4ZDBjNCwgMHgwMDQwLCAweDIzNzUsCisJMHhkMGVjLCAweDAwNDAsIDB4MjMwOCwgMHhkN2ZjLCAweDAwYzAsIDB4MjMwMywgMHhkMGY0LCAweDAwYzAsCisJMHgyMzBjLCAweDAwNzgsIDB4MjM3NSwgMHhkMGZjLCAweDAwYzAsIDB4MjMwYywgMHgwMDc4LCAweDIzNzUsCisJMHg3ODEwLCAweGQwZjQsIDB4MDA0MCwgMHgyMzc1LCAweDYwMWIsIDB4MDAyMSwgMHgwMDc4LCAweDIzNzUsCisJMHg2MDI0LCAweGEwOTYsIDB4MDAwMSwgMHgwMGMwLCAweDIzMTcsIDB4ODAwMCwgMHg2MDI2LCAweDZhMTAsCisJMHg2ODE0LCAweGEyMDIsIDB4MDA0OCwgMHgyMzJhLCAweDAwNDAsIDB4MjMyYSwgMHgyMDkxLCAweDgwMDEsCisJMHgyMDM5LCAweDAyMDAsIDB4NjA5YywgMHg3OGJhLCAweDYwOWYsIDB4MDAwMCwgMHgxMDc4LCAweDIzNzcsCisJMHgwMDc4LCAweDIzNzUsIDB4MmMwOCwgMHhkOWZjLCAweDAwNDAsIDB4MjM1MiwgMHg2ODAwLCAweGEwNjUsCisJMHgwMDQwLCAweDIzNTIsIDB4NmEwNCwgMHg3MDAwLCAweGEwODQsIDB4MDAwMiwgMHgwMDQwLCAweDIzNDgsCisJMHg3MDRjLCAweGEyMDYsIDB4MDBjMCwgMHgyMzQ4LCAweDZiMDQsIDB4MjE2MCwgMHgyMzA0LCAweDYwMDIsCisJMHhhMDA1LCAweDAwYzAsIDB4MjM0NCwgMHg2OTAyLCAweDIyNjAsIDB4NjEwMiwgMHgwMDc4LCAweDIzNWUsCisJMHgyZDAwLCAweDIwNjAsIDB4MTA3OCwgMHgyYjEzLCAweDZlMDgsIDB4MjE2MCwgMHg2MjAyLCAweDY5MDYsCisJMHgwMDc4LCAweDIzNWUsIDB4NjgwMCwgMHg2OTAyLCAweGEwNjUsIDB4MDA0MCwgMHgyMzVhLCAweDYxMDIsCisJMHgwMDc4LCAweDIzNWIsIDB4NjkwNiwgMHgyMTYwLCAweDYwMDMsIDB4MDAwMCwgMHgyMTYwLCAweGQ5ZmMsCisJMHgwMDQwLCAweDIzNjUsIDB4YTZiNCwgMHhmZmZjLCAweDZlMGEsIDB4NjgxMCwgMHg3ZDA4LCAweDg1MjgsCisJMHg3ZDBhLCAweDgwMDAsIDB4NjgxMiwgMHgyMDkxLCAweDgwMDEsIDB4ZDZiNCwgMHgwMDQwLCAweDIzNzUsCisJMHhhNmI2LCAweDAwNDAsIDB4NmUwYSwgMHgxMDc4LCAweDFlYjMsIDB4MGU3ZiwgMHgwMDdjLCAweDYwMDgsCisJMHhhNzA1LCAweDYwMGEsIDB4MjA5MSwgMHg4MDAwLCAweDEwNzgsIDB4MjA2NCwgMHgyMDkxLCAweDgwMDEsCisJMHg3OGI4LCAweGEwNjUsIDB4MDA0MCwgMHgyMzhhLCAweDYwOWMsIDB4NzhiYSwgMHg2MDlmLCAweDAwMDAsCisJMHgwMDc4LCAweDIzNzcsIDB4NzhiNiwgMHg3OGJhLCAweDAwN2MsIDB4Nzk3MCwgMHg3ODc0LCAweDI4MTgsCisJMHhkMzg0LCAweDAwNDAsIDB4MjM5NywgMHg4MDAwLCAweGExMTIsIDB4MDA0OCwgMHgyMzljLCAweDgwMDAsCisJMHhhMTEyLCAweDAwYzgsIDB4MjNhYywgMHhjMzg0LCAweDdhN2MsIDB4NzIxYSwgMHg3YTc4LCAweDcyMWUsCisJMHhkYWM0LCAweDAwNDAsIDB4MjNhNywgMHg3YTg0LCAweDcyMjIsIDB4N2E4MCwgMHg3MjI2LCAweGEwMDYsCisJMHhkMzg0LCAweDAwNDAsIDB4MjNhYywgMHg4MDAwLCAweDc4NzYsIDB4NzBkMiwgMHg3ODFjLCAweGEwMDUsCisJMHgwMDQwLCAweDIzYmEsIDB4ODAwMSwgMHg3ODFlLCAweDAwYzAsIDB4MjNiYSwgMHgwMDY4LCAweDIzYmEsCisJMHgyMDkxLCAweDQwODAsIDB4MDA3YywgMHgyMDM5LCAweDIzZDMsIDB4MDA3OCwgMHgyM2MxLCAweDIwMzksCisJMHgyM2Q5LCAweDI3MDQsIDB4YTAwNSwgMHgwMDQwLCAweDIzZDIsIDB4YWMwMCwgMHgyMDY4LCAweDY5MDgsCisJMHg2ODEwLCAweDY5MTIsIDB4NjgwYSwgMHg2OTBjLCAweDY4MTQsIDB4NjkxNiwgMHg2ODBlLCAweDg3MzgsCisJMHgwMDc4LCAweDIzYzEsIDB4MDA3YywgMHgwMDAzLCAweDAwMDksIDB4MDAwZiwgMHgwMDE1LCAweDAwMWIsCisJMHgwMDAwLCAweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDIwNDEsIDB4MDAwMCwgMHg3ODBjLCAweDAwNzksCisJMHgyM2UxLCAweDI1YjMsIDB4MjU4NiwgMHgyM2U1LCAweDI0NWUsIDB4MjAzOSwgMHg5Nzc0LCAweDI3MzQsCisJMHg3ZDEwLCAweDAwNzgsIDB4MjQwNSwgMHg2MDg0LCAweGEwODYsIDB4MDEwMywgMHgwMGMwLCAweDI0NDcsCisJMHg2MTE0LCAweDYwMTgsIDB4YTEwNSwgMHgwMDQwLCAweDIzZmEsIDB4ODZmZiwgMHgwMGMwLCAweDI0MTYsCisJMHgwMDc4LCAweDI0NDcsIDB4ODYwMywgMHhhMDgwLCAweDk3NTUsIDB4NjIwYywgMHgyMjAyLCAweDgwMDAsCisJMHg2MjEwLCAweDIyMDIsIDB4MTA3OCwgMHgyMDg2LCAweDg2MzAsIDB4YTY4ZSwgMHgwMDBmLCAweDAwNDAsCisJMHgyNGQyLCAweDc4NmMsIDB4YTA2NSwgMHgwMGMwLCAweDIzZWIsIDB4NzgwOCwgMHhhNjAyLCAweDAwYzgsCisJMHgyNDE2LCAweGQ1YWMsIDB4MDBjMCwgMHgyNDE2LCAweDI2M2EsIDB4MDA3YywgMHhhNjgyLCAweDAwMDMsCisJMHgwMGM4LCAweDI0ZDIsIDB4MjA5MSwgMHg4MDAwLCAweDIwNjksIDB4MDAwMCwgMHg2ODE4LCAweGQwODQsCisJMHgwMGMwLCAweDI0NDIsIDB4MjAxMSwgMHg5NzU1LCAweDIyMDQsIDB4NzBjNiwgMHg4MjEwLCAweDIyMDQsCisJMHg3MGNhLCAweGQ2ODQsIDB4MDBjMCwgMHgyNDMyLCAweDgyMTAsIDB4MjIwNCwgMHg3MGRhLCAweDgyMTAsCisJMHgyMjA0LCAweDcwZGUsIDB4YTY4NSwgMHg4MDIwLCAweDcwYzIsIDB4NjgxYiwgMHgwMDAxLCAweDIwOTEsCisJMHg0MDgwLCAweDc4MTAsIDB4YTA4NCwgMHhmZmNmLCAweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDIwM2IsCisJMHgwMDAwLCAweDAwN2MsIDB4NzgxMCwgMHhjMGFkLCAweDc4MTIsIDB4MDA3OCwgMHgyNGQyLCAweDI2M2EsCisJMHgxMDc4LCAweDI1YmQsIDB4MDBjMCwgMHgyNWUwLCAweDc4NmMsIDB4YTA2NSwgMHgwMGMwLCAweDIzZWIsCisJMHgyMDkxLCAweDgwMDAsIDB4NzgxMCwgMHhhMDg0LCAweGZmY2YsIDB4ODZmZiwgMHgwMDQwLCAweDI0NTksCisJMHhjMGFkLCAweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsIDB4MjVlMCwgMHgyMDM5LCAweDk3NzQsCisJMHgyNzM0LCAweDdkMTAsIDB4MDA3OCwgMHgyNDdhLCAweDYwODQsIDB4YTA4NiwgMHgwMTAzLCAweDAwYzAsCisJMHgyNGJiLCAweDYxMTQsIDB4NjAxOCwgMHhhMTA1LCAweDAwNDAsIDB4MjQ3MywgMHg4NmZmLCAweDAwYzAsCisJMHgyNDhiLCAweDAwNzgsIDB4MjRiYiwgMHhhNjgwLCAweDk3NTUsIDB4NjIwYywgMHgyMjAyLCAweDEwNzgsCisJMHgyMDg2LCAweDg2MzAsIDB4YTY4ZSwgMHgwMDFlLCAweDAwNDAsIDB4MjRkMiwgMHg3ODZjLCAweGEwNjUsCisJMHgwMGMwLCAweDI0NjQsIDB4NzgwOCwgMHhhNjAyLCAweDAwYzgsIDB4MjQ4YiwgMHhkNWFjLCAweDAwYzAsCisJMHgyNDhiLCAweDI2M2EsIDB4MDA3YywgMHhhNjgyLCAweDAwMDYsIDB4MDBjOCwgMHgyNGQyLCAweDIwOTEsCisJMHg4MDAwLCAweDIwNjksIDB4MDAwMCwgMHg2ODE4LCAweGQwODQsIDB4MDBjMCwgMHgyNGI2LCAweDIwMTEsCisJMHg5NzU1LCAweDIwMDksIDB4OTc0ZSwgMHgyNmE4LCAweDIxMWMsIDB4MjIwNCwgMHgyMDFhLCAweDgxMDgsCisJMHg4MjEwLCAweDAwZjAsIDB4MjQ5YywgMHhhNjg1LCAweDgwMzAsIDB4NzBjMiwgMHg2ODFiLCAweDAwMDEsCiAJMHgyMDkxLCAweDQwODAsIDB4NzgxMCwgMHhhMDg0LCAweGZmY2YsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsCi0JMHgyMDNiLCAweDAwMDAsIDB4MDA3YywgMHg3ODEwLCAweGMwYWQsIDB4NzgxMiwgMHgwMDc4LCAweDI0OGIsCi0JMHgyNjNhLCAweDEwNzgsIDB4MjU3NiwgMHgwMGMwLCAweDI1OTksIDB4Nzg2YywgMHhhMDY1LCAweDAwYzAsCi0JMHgyM2E0LCAweDIwOTEsIDB4ODAwMCwgMHg3ODEwLCAweGEwODQsIDB4ZmZjZiwgMHg4NmZmLCAweDAwNDAsCi0JMHgyNDEyLCAweGMwYWQsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3OCwgMHgyNTk5LCAweDIwMzksCi0JMHg5Njc0LCAweDI3MzQsIDB4N2QxMCwgMHgwMDc4LCAweDI0MzMsIDB4NjA4NCwgMHhhMDg2LCAweDAxMDMsCi0JMHgwMGMwLCAweDI0NzQsIDB4NjExNCwgMHg2MDE4LCAweGExMDUsIDB4MDA0MCwgMHgyNDJjLCAweDg2ZmYsCi0JMHgwMGMwLCAweDI0NDQsIDB4MDA3OCwgMHgyNDc0LCAweGE2ODAsIDB4OTY1NSwgMHg2MjBjLCAweDIyMDIsCi0JMHgxMDc4LCAweDIwM2YsIDB4ODYzMCwgMHhhNjhlLCAweDAwMWUsIDB4MDA0MCwgMHgyNDhiLCAweDc4NmMsCi0JMHhhMDY1LCAweDAwYzAsIDB4MjQxZCwgMHg3ODA4LCAweGE2MDIsIDB4MDBjOCwgMHgyNDQ0LCAweGQ1YWMsCi0JMHgwMGMwLCAweDI0NDQsIDB4MjYzYSwgMHgwMDdjLCAweGE2ODIsIDB4MDAwNiwgMHgwMGM4LCAweDI0OGIsCi0JMHgyMDkxLCAweDgwMDAsIDB4MjA2OSwgMHgwMDAwLCAweDY4MTgsIDB4ZDA4NCwgMHgwMGMwLCAweDI0NmYsCi0JMHgyMDExLCAweDk2NTUsIDB4MjAwOSwgMHg5NjRlLCAweDI2YTgsIDB4MjExYywgMHgyMjA0LCAweDIwMWEsCi0JMHg4MTA4LCAweDgyMTAsIDB4MDBmMCwgMHgyNDU1LCAweGE2ODUsIDB4ODAzMCwgMHg3MGMyLCAweDY4MWIsCi0JMHgwMDAxLCAweDIwOTEsIDB4NDA4MCwgMHg3ODEwLCAweGEwODQsIDB4ZmZjZiwgMHg3ODEyLCAweDIwOTEsCi0JMHg4MDAxLCAweGEwMDYsIDB4MjAwOSwgMHg5Njc1LCAweDIwMGEsIDB4MjAzYSwgMHgwMDdjLCAweDc4MTAsCi0JMHhjMGFkLCAweDc4MTIsIDB4MDA3OCwgMHgyNDhiLCAweDI2M2EsIDB4MTA3OCwgMHgyNTc2LCAweDAwYzAsCi0JMHgyNTk5LCAweDc4NmMsIDB4YTA2NSwgMHgwMGMwLCAweDI0MWQsIDB4MjA5MSwgMHg4MDAwLCAweDc4MTAsCi0JMHhhMDg0LCAweGZmY2YsIDB4ODZmZiwgMHgwMDQwLCAweDI0ODYsIDB4YzBhZCwgMHg3ODEyLCAweDIwOTEsCi0JMHg4MDAxLCAweDAwNzgsIDB4MjU5OSwgMHgyMDkxLCAweDgwMDAsIDB4NzAwNywgMHgwMDA0LCAweDc5OTQsCi0JMHg3MGQ0LCAweGExMDIsIDB4MDA0OCwgMHgyNDljLCAweDAwNDAsIDB4MjRhNiwgMHg3YjkwLCAweGEzMDIsCi0JMHgwMGMwLCAweDI0YTYsIDB4MDA3OCwgMHgyNDlmLCAweDgwMDIsIDB4MDBjMCwgMHgyNGE2LCAweDI2M2EsCi0JMHg3ODEwLCAweGMwYWQsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHhhMTg0LCAweGZmMDAsCi0JMHgwMDQwLCAweDI0YjMsIDB4ODEwZiwgMHg4MTBjLCAweDgxMGMsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDcsCi0JMHhhMTAwLCAweDAwNzgsIDB4MjRiNiwgMHg4MTA3LCAweDgwMDQsIDB4ODAwNCwgMHg3YTljLCAweGEyMTAsCi0JMHg3MjFhLCAweDdhOTgsIDB4YTAwNiwgMHhhMjExLCAweDcyMWUsIDB4ZDRjNCwgMHgwMDQwLCAweDI0YzYsCi0JMHg3YWE0LCAweGEyMTEsIDB4NzIyMiwgMHg3YWEwLCAweGEyMTEsIDB4NzIyNiwgMHgyMGExLCAweDAwMzAsCi0JMHg3MDAzLCAweDAwMDAsIDB4MjAwOSwgMHg5NjU0LCAweDI2MGEsIDB4ODEwOSwgMHgyMTk4LCAweDIxMDQsCi0JMHhkMDg0LCAweDAwNDAsIDB4MjRkNCwgMHg4NjMzLCAweGE2YjAsIDB4MDAwMiwgMHgyNmE4LCAweDUzYTYsCi0JMHg4NjAzLCAweDcwMTIsIDB4NzAwNywgMHgwMDAxLCAweDc5OTAsIDB4Nzg5NCwgMHg4MDAwLCAweGExMGEsCi0JMHgwMGM4LCAweDI0ZTMsIDB4YTAwNiwgMHgyMDI4LCAweDc5NzQsIDB4YTE4NCwgMHhmZjAwLCAweDAwNDAsCi0JMHgyNGYyLCAweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsCi0JMHgwMDc4LCAweDI0ZjUsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsIDB4Nzk3YywgMHhhMTA4LCAweDdhNzgsCi0JMHhhMDA2LCAweGEyMTEsIDB4ZDRjNCwgMHgwMDQwLCAweDI1MDEsIDB4N2I4NCwgMHhhMzE5LCAweDdjODAsCi0JMHhhNDIxLCAweDcwMDgsIDB4ZDBmYywgMHgwMDQwLCAweDI1MDEsIDB4YTA4NCwgMHgwMWUwLCAweDAwNDAsCi0JMHgyNTI2LCAweDdkMTAsIDB4MjAzMSwgMHg5NjU0LCAweDI2MzQsIDB4NzhhOCwgMHg4MDAwLCAweDc4YWEsCi0JMHhkMDhjLCAweDAwYzAsIDB4MjUxYiwgMHg3MDA3LCAweDAwMDYsIDB4NzAwNCwgMHhkMDk0LCAweDAwYzAsCi0JMHgyNTE1LCAweDAwNzgsIDB4MjQ4ZCwgMHgyMDY5LCAweDRlNDcsIDB4MjA2YiwgMHgwMDAzLCAweDc4YWMsCi0JMHhhMDg1LCAweDAzMDAsIDB4NzhhZSwgMHhhMDA2LCAweDAwNzgsIDB4MjUyZiwgMHgyMDMwLCAweDc1ZDYsCi0JMHgyMDkxLCAweDQwODAsIDB4N2Q5NiwgMHg3ZDEwLCAweGE1YWMsIDB4ZmZjZiwgMHg3ZDEyLCAweDIwOTEsCi0JMHg4MDAxLCAweDc4YWEsIDB4NzAwNywgMHgwMDA2LCAweDI2M2EsIDB4NzAwMywgMHgwMDAxLCAweDcxMWEsCi0JMHg3MjFlLCAweGQ1YzQsIDB4MDA0MCwgMHgyNTNlLCAweDczMjIsIDB4NzQyNiwgMHgwMDdjLCAweDYwODQsCi0JMHhhMDg2LCAweDAxMDMsIDB4MDBjMCwgMHgyNTYyLCAweDYxMTQsIDB4NjAxOCwgMHhhMTA1LCAweDAwYzAsCi0JMHgyNTYyLCAweDIwNjksIDB4MDAwMCwgMHg2ODE4LCAweGQwODQsIDB4MDBjMCwgMHgyNTYyLCAweDYwMGMsCi0JMHg3MGM2LCAweDYwMTAsIDB4NzBjYSwgMHg3MGMzLCAweDgwMjAsIDB4NjgxYiwgMHgwMDAxLCAweDIwOTEsCi0JMHg0MDgwLCAweDEwNzgsIDB4MjAzZiwgMHgwMDY4LCAweDI1NjEsIDB4Nzg2YywgMHhhMDY1LCAweDAwYzAsCi0JMHgyNTNmLCAweDAwN2MsIDB4MTA3OCwgMHgyNTc2LCAweDAwYzAsIDB4MjU5OSwgMHg3ODZjLCAweGEwNjUsCi0JMHgwMGMwLCAweDI1M2YsIDB4MDA3OCwgMHgyNTk5LCAweDEwNzgsIDB4MjU3NiwgMHgwMGMwLCAweDI1OTksCi0JMHg3ODZjLCAweGEwNjUsIDB4MDBjMCwgMHgyNTZjLCAweDAwNzgsIDB4MjU5OSwgMHg2MDg0LCAweGEwODYsCi0JMHgwMTAzLCAweDAwYzAsIDB4MjU4YSwgMHg2MDE4LCAweGMwZmMsIDB4NjAxYSwgMHhhMDg2LCAweDAwMDQsCi0JMHgwMGMwLCAweDI1OGEsIDB4NzgwNCwgMHhkMGE0LCAweDAwNDAsIDB4MjU4YSwgMHgxMDc4LCAweDIwM2YsCi0JMHhhMDA2LCAweDAwN2MsIDB4MTA3OCwgMHgyNTlmLCAweDAwYzAsIDB4MjU5MSwgMHhhMDg1LCAweDAwMDEsCi0JMHgwMDdjLCAweDEwNzgsIDB4MjVhZSwgMHgwMGMwLCAweDI1OTcsIDB4MjA0MSwgMHgwMDAxLCAweDdkMTAsCi0JMHgwMDdjLCAweDg4ZmYsIDB4MDA0MCwgMHgyNTllLCAweDIwOTEsIDB4NDA4MCwgMHgwMDdjLCAweDdiOTAsCi0JMHg3OTk0LCAweDcwZDQsIDB4YTEwMiwgMHgwMGMwLCAweDI1YTgsIDB4YTM4NSwgMHgwMDAwLCAweDAwN2MsCi0JMHgwMDQ4LCAweDI1YWMsIDB4YTMwMiwgMHgwMDdjLCAweDgwMDIsIDB4MDA3YywgMHg3ODEwLCAweGQwZWMsCi0JMHgwMDQwLCAweDI1YzYsIDB4MGU3ZSwgMHgyMDkxLCAweDgwMDAsIDB4MjA3MSwgMHgwMDIwLCAweDcwMDQsCi0JMHhhMDA1LCAweDAwYzAsIDB4MjVjMywgMHg3MDA4LCAweDBlN2YsIDB4YTA4NiwgMHgwMDA4LCAweDAwNDAsCi0JMHgyNWM2LCAweDAwNzgsIDB4MjYxNywgMHgwZTdmLCAweDAwNzgsIDB4MjYxNywgMHhhMTg0LCAweGZmMDAsCi0JMHgwMDQwLCAweDI1ZDMsIDB4ODEwZiwgMHg4MTBjLCAweDgxMGMsIDB4ODAwNCwgMHg4MDA0LCAweDgwMDcsCi0JMHhhMTAwLCAweDAwNzgsIDB4MjVkNiwgMHg4MTA3LCAweDgwMDQsIDB4ODAwNCwgMHg3YTljLCAweDdiOTgsCi0JMHg3Y2E0LCAweDdkYTAsIDB4YTIxMCwgMHhhMDA2LCAweGEzMTksIDB4YTQyMSwgMHhhNTI5LCAweDIwMDksCi0JMHgwMDE4LCAweDYwMjgsIDB4YTAwNSwgMHgwMDQwLCAweDI1ZTcsIDB4MjAwOSwgMHgwMDQwLCAweDEwNzgsCi0JMHgxZDc0LCAweDAwNDAsIDB4MjYwOSwgMHg3OGE4LCAweDgwMDAsIDB4NzhhYSwgMHhkMDhjLCAweDAwYzAsCi0JMHgyNjE3LCAweDYwMTQsIDB4ZDBmYywgMHgwMGMwLCAweDI1ZjksIDB4MjA2OSwgMHg0ZTQwLCAweDAwNzgsCi0JMHgyNWZiLCAweDIwNjksIDB4NGU4MCwgMHgyMDkxLCAweDgwMDAsIDB4NjgxZiwgMHgwMDAzLCAweDc4YWIsCi0JMHgwMDAwLCAweDc4YWMsIDB4YTA4NSwgMHgwMzAwLCAweDc4YWUsIDB4MjA5MSwgMHg4MDAxLCAweDAwNzgsCi0JMHgyNjE3LCAweDc4YWIsIDB4MDAwMCwgMHgxMDc4LCAweDIwM2YsIDB4Nzk5MCwgMHg3ODk0LCAweDgwMDAsCi0JMHhhMTBhLCAweDAwYzgsIDB4MjYxNCwgMHhhMDA2LCAweDc4OTYsIDB4NzBkNiwgMHhhMDA2LCAweDIwNzEsCi0JMHgwMDEwLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweGQ3ZmMsIDB4MDBjMCwgMHgyNjIzLCAweDIwMDksCi0JMHg0ZTU5LCAweDAwNzgsIDB4MjYyNSwgMHgyMDA5LCAweDRlOTksIDB4MjA5MSwgMHg4MDAwLCAweDIwMGEsCi0JMHgwZjdlLCAweGQ3ZmMsIDB4MDBjMCwgMHgyNjNjLCAweDIwMDksIDB4NGU0MCwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZWMsIDB4MDA0MCwgMHgyNjM4LCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDI2NDAsCi0JMHgyMDc5LCAweDAyMDAsIDB4MDA3OCwgMHgyNjQwLCAweDIwMDksIDB4NGU4MCwgMHgyMDc5LCAweDAxMDAsCi0JMHgyMTA0LCAweGEwODYsIDB4MDAwMCwgMHgwMGMwLCAweDI2NTksIDB4ZDdmYywgMHgwMGMwLCAweDI2NGMsCi0JMHgyMDA5LCAweDRlNDUsIDB4MDA3OCwgMHgyNjRlLCAweDIwMDksIDB4NGU4NSwgMHgyMTA0LCAweGEwMDUsCi0JMHgwMGMwLCAweDI2NTksIDB4NzgzMCwgMHhhMDg0LCAweDAwYzAsIDB4MDBjMCwgMHgyNjU5LCAweDc4MWIsCi0JMHgwMDQ1LCAweDBmN2YsIDB4MDA3YywgMHgyMDA5LCAweDAwMDIsIDB4MjA2OSwgMHg0ZTAwLCAweDY4MTAsCi0JMHhkMGVjLCAweDAwYzAsIDB4MjZjOCwgMHgyMDcxLCAweDRlODAsIDB4MjA3OSwgMHgwMTAwLCAweDIwMjEsCi0JMHg1MGJmLCAweDc4NGIsIDB4MDAwZiwgMHgyMDE5LCAweDQ0NTcsIDB4ZDE4NCwgMHgwMDQwLCAweDI2N2MsCi0JMHg2ODEwLCAweGQwZWMsIDB4MDA0MCwgMHgyNjc4LCAweDIwYTEsIDB4MDEyYiwgMHgwMDc4LCAweDI2N2UsCi0JMHgyMGExLCAweDAyMmIsIDB4MDA3OCwgMHgyNjdlLCAweDIwYTEsIDB4MDEyYiwgMHgyMzA0LCAweGEwMDUsCi0JMHgwMDQwLCAweDI2OGIsIDB4Nzg5YSwgMHg4MzE4LCAweDIzYWMsIDB4ODMxOCwgMHgyMzk4LCAweDUzYTYsCi0JMHgzMzE4LCAweDAwNzgsIDB4MjY3ZSwgMHg3ODliLCAweDAwMjAsIDB4MjBhOSwgMHgwMDEwLCAweDY4MTQsCi0JMHhkMGU0LCAweDAwNDAsIDB4MjY5YiwgMHg3OGFmLCAweDAwMDAsIDB4NzhhZiwgMHg5MDIwLCAweDAwZjAsCi0JMHgyNjkzLCAweDAwNzgsIDB4MjZhMSwgMHg3OGFmLCAweDAwMDAsIDB4NzhhZiwgMHg4MDIwLCAweDAwZjAsCi0JMHgyNjliLCAweDcwMDMsIDB4MDAwMCwgMHgwMTdlLCAweGQxOGMsIDB4MjAwOSwgMHgwMDAwLCAweDAwNDAsCi0JMHgyNmFhLCAweGMxYmQsIDB4MTA3OCwgMHgyODliLCAweDAxN2YsIDB4NzAyMCwgMHhhMDg0LCAweDAwMGYsCi0JMHgwMDdlLCAweDY4MTQsIDB4ZDBlNCwgMHgwMDdmLCAweDAwYzAsIDB4MjZiYSwgMHhhMDg1LCAweDYzNDAsCi0JMHgwMDc4LCAweDI2YmMsIDB4YTA4NSwgMHg2MmMwLCAweDc4MDYsIDB4NzgwZiwgMHg5MjAwLCAweDc4NDMsCi0JMHgwMGQ4LCAweDc4NTMsIDB4MDA4MCwgMHg3ODBiLCAweDAwMDgsIDB4NzQ1NiwgMHg3MDUzLCAweDAwMDAsCi0JMHg4MTA5LCAweDAwNDAsIDB4MjZkYiwgMHgyMDcxLCAweDRlNDAsIDB4NjgxMCwgMHhkMGVjLCAweDAwNDAsCi0JMHgyNmQ1LCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDI2ZDcsIDB4MjA3OSwgMHgwMjAwLCAweDIwMjEsCi0JMHg0ZWJmLCAweDAwNzgsIDB4MjY2OSwgMHgwMDdjLCAweDAxN2UsIDB4ZDFiYywgMHgwMGMwLCAweDI2ZjAsCi0JMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDI2ZWMsCi0JMHgyMDExLCAweDAxMDEsIDB4MDA3OCwgMHgyNmYyLCAweDIwMTEsIDB4MDIwMSwgMHgwMDc4LCAweDI2ZjIsCi0JMHgyMDExLCAweDAxMDEsIDB4YTE4YywgMHgwMDBmLCAweDIyMDQsIDB4YTA4NCwgMHhmZmYwLCAweGExMDUsCi0JMHgyMDEyLCAweDAxN2YsIDB4MTA3OCwgMHgyODliLCAweDAwN2MsIDB4ZDNmYywgMHgwMGMwLCAweDI3MTAsCi0JMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDI3MGMsCi0JMHgyMDExLCAweDAxMDEsIDB4MDA3OCwgMHgyNzEyLCAweDIwMTEsIDB4MDIwMSwgMHgwMDc4LCAweDI3MTIsCi0JMHgyMDExLCAweDAxMDEsIDB4MjBhOSwgMHgwMDA5LCAweDgxMGIsIDB4MDBmMCwgMHgyNzE0LCAweGExOGMsCi0JMHgwZTAwLCAweDIyMDQsIDB4YTA4NCwgMHhmMWZmLCAweGExMDUsIDB4MjAxMiwgMHgwMDdjLCAweDIwMTksCi0JMHgwMDAyLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsIDB4MDA0MCwgMHgyNzJjLCAweDgzMTksCi0JMHgyMDA5LCAweDAxMDEsIDB4MDA3OCwgMHgyNzJlLCAweDIwMDksIDB4MDEwMSwgMHgyMGE5LCAweDAwMDUsCi0JMHg4MjEzLCAweDAwZjAsIDB4MjczMCwgMHhhMjk0LCAweDAwZTAsIDB4MjEwNCwgMHhhMDg0LCAweGZmMWYsCi0JMHhhMjA1LCAweDIwMGEsIDB4ODMxOSwgMHgwMDQwLCAweDI3NDEsIDB4MjAwOSwgMHgwMjAxLCAweDAwNzgsCi0JMHgyNzJlLCAweDAwN2MsIDB4ZDNmYywgMHgwMGMwLCAweDI3NTUsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDI3NTEsIDB4MjAxMSwgMHgwMTAxLCAweDAwNzgsCi0JMHgyNzU3LCAweDIwMTEsIDB4MDIwMSwgMHgwMDc4LCAweDI3NTcsIDB4MjAxMSwgMHgwMTAxLCAweDIwYTksCi0JMHgwMDBjLCAweDgxMGIsIDB4MDBmMCwgMHgyNzU5LCAweGExOGMsIDB4ZjAwMCwgMHgyMjA0LCAweGEwODQsCi0JMHgwZmZmLCAweGExMDUsIDB4MjAxMiwgMHgwMDdjLCAweGQzZmMsIDB4MDBjMCwgMHgyNzc3LCAweDAwN2UsCi0JMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyNzczLCAweDIwMTEsCi0JMHgwMTAyLCAweDAwNzgsIDB4Mjc3OSwgMHgyMDExLCAweDAyMDIsIDB4MDA3OCwgMHgyNzc5LCAweDIwMTEsCi0JMHgwMTAyLCAweDIyMDQsIDB4YTA4NCwgMHhmZmNmLCAweGExMDUsIDB4MjAxMiwgMHgwMDdjLCAweDBjN2UsCi0JMHhkMWJjLCAweDAwYzAsIDB4Mjc5MywgMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsCi0JMHgwMDdmLCAweDAwNDAsIDB4Mjc4ZiwgMHgyMDYxLCAweDAxMDAsIDB4MDA3OCwgMHgyNzk1LCAweDIwNjEsCi0JMHgwMjAwLCAweDAwNzgsIDB4Mjc5NSwgMHgyMDYxLCAweDAxMDAsIDB4YzFiYywgMHg4MTAzLCAweDgwMDMsCi0JMHhhMDgwLCAweDAwMjAsIDB4NjA5YSwgMHg2MmFjLCAweDYzYWMsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsCi0JMHhkMWJjLCAweDAwYzAsIDB4MjdiMywgMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsCi0JMHgwMDdmLCAweDAwNDAsIDB4MjdhZiwgMHgyMDYxLCAweDAxMDAsIDB4MDA3OCwgMHgyN2I1LCAweDIwNjEsCi0JMHgwMjAwLCAweDAwNzgsIDB4MjdiNSwgMHgyMDYxLCAweDAxMDAsIDB4YzFiYywgMHg4MTAzLCAweDgwMDMsCi0JMHhhMDgwLCAweDAwMjIsIDB4NjA5YSwgMHg2MGE0LCAweGEwODQsIDB4ZmZkZiwgMHg2MGFlLCAweDBjN2YsCi0JMHgwMDdjLCAweDBjN2UsIDB4ZDFiYywgMHgwMGMwLCAweDI3ZDUsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDI3ZDEsIDB4MjA2MSwgMHgwMTAwLCAweDAwNzgsCi0JMHgyN2Q3LCAweDIwNjEsIDB4MDIwMCwgMHgwMDc4LCAweDI3ZDcsIDB4MjA2MSwgMHgwMTAwLCAweGMxYmMsCi0JMHg4MTAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIyLCAweDYwOWEsIDB4NjBhNCwgMHhhMDg1LCAweDAwMjAsCi0JMHg2MGFlLCAweDBjN2YsIDB4MDA3YywgMHgwYzdlLCAweGQxYmMsIDB4MDBjMCwgMHgyN2Y3LCAweDAwN2UsCi0JMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyN2YzLCAweDIwNjEsCi0JMHgwMTAwLCAweDAwNzgsIDB4MjdmOSwgMHgyMDYxLCAweDAyMDAsIDB4MDA3OCwgMHgyN2Y5LCAweDIwNjEsCi0JMHgwMTAwLCAweGMxYmMsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsIDB4MDAyMCwgMHg2MDlhLCAweDYwYTQsCi0JMHhhMjhjLCAweDAwMjAsIDB4MDA0MCwgMHgyODA3LCAweGMyYWMsIDB4YTM5ZCwgMHg0MDAwLCAweGMzZmMsCi0JMHhkM2I0LCAweDAwYzAsIDB4MjgwYywgMHhjM2ZkLCAweDYyYWUsIDB4MjAxMCwgMHg2MGE0LCAweDYzYWUsCi0JMHgyMDE4LCAweDBjN2YsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsIDB4MGM3ZSwgMHgwZTdlLCAweDY4MTgsCi0JMHhhMDA1LCAweDAwNDAsIDB4Mjg3OSwgMHhkMWZjLCAweDAwNDAsIDB4MjgyMiwgMHgyMDYxLCAweDk1ZDAsCi0JMHgwMDc4LCAweDI4MjQsIDB4MjA2MSwgMHg5NGMwLCAweDEwNzgsIDB4Mjg4MSwgMHgwMDQwLCAweDI4NWIsCi0JMHgyMGE5LCAweDAxMDEsIDB4ZDFmYywgMHgwMDQwLCAweDI4MzEsIDB4MjA2MSwgMHg5NGQwLCAweDAwNzgsCi0JMHgyODMzLCAweDIwNjEsIDB4OTNjMCwgMHgwYzdlLCAweDEwNzgsIDB4Mjg4MSwgMHgwMDQwLCAweDI4M2UsCi0JMHgwYzdmLCAweDhjNjAsIDB4MDBmMCwgMHgyODMzLCAweDAwNzgsIDB4Mjg3OSwgMHgwMDdmLCAweGQxZmMsCi0JMHgwMDQwLCAweDI4NDgsIDB4YTA4MiwgMHg5NGQwLCAweDIwNzEsIDB4NGU4MCwgMHgwMDc4LCAweDI4NGMsCi0JMHhhMDgyLCAweDkzYzAsIDB4MjA3MSwgMHg0ZTQwLCAweDcwN2EsIDB4NzE3NiwgMHgyMTM4LCAweDIwMDEsCi0JMHgwMDA0LCAweDcwNjYsIDB4NzA4MywgMHgwMDBmLCAweDcxZDQsIDB4YzFkYywgMHg3MWQ2LCAweDEwNzgsCi0JMHgyNjFjLCAweDAwNzgsIDB4Mjg3NSwgMHhkMWZjLCAweDAwYzAsIDB4Mjg2MiwgMHgyMDcxLCAweDRlNDAsCi0JMHgwMDc4LCAweDI4NjQsIDB4MjA3MSwgMHg0ZTgwLCAweDYwMjAsIDB4YzBkZCwgMHg2MDIyLCAweDcxNzYsCi0JMHgyMTM4LCAweDJjMDAsIDB4NzA3ZSwgMHgyMDAxLCAweDAwMDYsIDB4NzA2NiwgMHg3MDgzLCAweDAwMGYsCi0JMHg3MWQ0LCAweGMxZGMsIDB4NzFkNiwgMHgxMDc4LCAweDI2MWMsIDB4MjAwMSwgMHgwMDAwLCAweDAwNzgsCi0JMHgyODdiLCAweDIwMDEsIDB4MDAwMSwgMHgyMDkxLCAweDgwMDEsIDB4YTAwNSwgMHgwZTdmLCAweDBjN2YsCi0JMHgwMDdjLCAweDJjMDQsIDB4YTAwNSwgMHgwMDQwLCAweDI4OTgsIDB4MjA2MCwgMHg2MDEwLCAweGEzMDYsCi0JMHgwMGMwLCAweDI4OTUsIDB4NjAwYywgMHhhMjA2LCAweDAwYzAsIDB4Mjg5NSwgMHg2MDE0LCAweGExMDYsCi0JMHgwMGMwLCAweDI4OTUsIDB4YTAwNiwgMHgwMDc4LCAweDI4OWEsIDB4NjAwMCwgMHgwMDc4LCAweDI4ODIsCi0JMHhhMDg1LCAweDAwMDEsIDB4MDA3YywgMHgwZjdlLCAweDBlN2UsIDB4MDE3ZSwgMHhkMWJjLCAweDAwYzAsCi0JMHgyOGIzLCAweDIwNzksIDB4NGU0MCwgMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsCi0JMHgwMDdmLCAweDAwNDAsIDB4MjhhZiwgMHgyMDcxLCAweDAxMDAsIDB4MDA3OCwgMHgyOGI3LCAweDIwNzEsCi0JMHgwMjAwLCAweDAwNzgsIDB4MjhiNywgMHgyMDc5LCAweDRlODAsIDB4MjA3MSwgMHgwMTAwLCAweDc5MjAsCi0JMHhhMThjLCAweDAwMGYsIDB4NzBlYywgMHhkMGM0LCAweDAwYzAsIDB4MjhjMSwgMHgwMTdmLCAweDAwNzgsCi0JMHgyOGRjLCAweDgxMGIsIDB4ODEwYiwgMHg4MTBiLCAweDgxMGIsIDB4MDA3ZiwgMHhkMGJjLCAweDAwYzAsCi0JMHgyOGQ5LCAweDAwN2UsIDB4MjAwMSwgMHg0ZTA0LCAweDIwMDQsIDB4ZDBlYywgMHgwMDdmLCAweDAwNDAsCi0JMHgyOGQ1LCAweGExOGQsIDB4MGYwMCwgMHgwMDc4LCAweDI4ZGIsIDB4YTE4ZCwgMHgwZjAwLCAweDAwNzgsCi0JMHgyOGRiLCAweGExOGQsIDB4MDgwMCwgMHgyMTA0LCAweDBlN2YsIDB4MGY3ZiwgMHgwMDdjLCAweDBlN2UsCi0JMHgyMDAxLCAweDRlMDEsIDB4MjAwNCwgMHhkMGFjLCAweDAwYzAsIDB4Mjk1YywgMHg2OGU0LCAweGQwYWMsCi0JMHgwMDQwLCAweDI5NWMsIDB4YTA4NCwgMHgwMDA2LCAweDAwYzAsIDB4Mjk1YywgMHg2MDE0LCAweGQwZmMsCi0JMHgwMGMwLCAweDI4ZjYsIDB4MjA3MSwgMHg1MmMwLCAweDAwNzgsIDB4MjhmOCwgMHgyMDcxLCAweDUzNDAsCi0JMHg4MDA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHhhZTcwLCAweDcwMDQsCi0JMHhhMDg0LCAweDAwMGEsIDB4MDBjMCwgMHgyOTVjLCAweDcxMDgsIDB4YTE5NCwgMHhmZjAwLCAweDAwNDAsCi0JMHgyOTVjLCAweGExOGMsIDB4MDBmZiwgMHgyMDAxLCAweDAwMGEsIDB4YTEwNiwgMHgwMDQwLCAweDI5MmIsCi0JMHgyMDAxLCAweDAwMGMsIDB4YTEwNiwgMHgwMDQwLCAweDI5MmYsIDB4MjAwMSwgMHgwMDEyLCAweGExMDYsCi0JMHgwMDQwLCAweDI5MzMsIDB4MjAwMSwgMHgwMDE0LCAweGExMDYsIDB4MDA0MCwgMHgyOTM3LCAweDIwMDEsCi0JMHgwMDE5LCAweGExMDYsIDB4MDA0MCwgMHgyOTNiLCAweDIwMDEsIDB4MDAzMiwgMHhhMTA2LCAweDAwNDAsCi0JMHgyOTNmLCAweDAwNzgsIDB4Mjk0MywgMHgyMDA5LCAweDAwMGMsIDB4MDA3OCwgMHgyOTQ1LCAweDIwMDksCi0JMHgwMDEyLCAweDAwNzgsIDB4Mjk0NSwgMHgyMDA5LCAweDAwMTQsIDB4MDA3OCwgMHgyOTQ1LCAweDIwMDksCi0JMHgwMDE5LCAweDAwNzgsIDB4Mjk0NSwgMHgyMDA5LCAweDAwMjAsIDB4MDA3OCwgMHgyOTQ1LCAweDIwMDksCi0JMHgwMDNmLCAweDAwNzgsIDB4Mjk0NSwgMHgyMDExLCAweDAwMDAsIDB4MjEwMCwgMHhhMjA1LCAweDcwMGEsCi0JMHgyMDcxLCAweDRlMDAsIDB4NzAwNCwgMHhkMGJjLCAweDAwNDAsIDB4Mjk1YywgMHg2MDE0LCAweGQwZmMsCi0JMHgwMGMwLCAweDI5NTcsIDB4NzBlYSwgMHgyMDcxLCAweDRlNDAsIDB4MDA3OCwgMHgyOTVhLCAweDcwZWUsCi0JMHgyMDcxLCAweDRlODAsIDB4NzAxZiwgMHgwMDBkLCAweDBlN2YsIDB4MDA3YywgMHgyMDAxLCAweDRlMDUsCi0JMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHgyOTZhLCAweDc4MDQsIDB4YTA4NCwgMHhmZjFmLCAweGEwODUsCi0JMHg2MzQwLCAweDc4MDYsIDB4MDA3YywgMHgwMDY4LCAweDI5NmIsIDB4MjA5MSwgMHg4MDAwLCAweDIwNzEsCi0JMHgwMDAwLCAweDAwN2UsIDB4NzAxOCwgMHhkMDg0LCAweDAwYzAsIDB4Mjk3MiwgMHgwMDdmLCAweDIwNzEsCi0JMHgwMDEwLCAweDcwY2EsIDB4MDA3ZiwgMHg3MGM2LCAweDcwYzMsIDB4ODAwMiwgMHg3MGRiLCAweDA4MGYsCi0JMHg3MGRmLCAweDAwMDAsIDB4MjA3MSwgMHgwMDAwLCAweDcwMWIsIDB4MDAwMSwgMHgyMDkxLCAweDQwODAsCi0JMHgwMDc4LCAweDI5ODgsIDB4N2YzYywgMHg3ZTU4LCAweDdjMzAsIDB4N2QzOCwgMHg3OGEwLCAweDcwOGUsCi0JMHg3NTkyLCAweDc0OTYsIDB4NzY5YSwgMHg3NzllLCAweGE1OTQsIDB4MDAzZiwgMHhkNGY0LCAweDAwNDAsCi0JMHgyOTlmLCAweGE3ODQsIDB4MDA3ZCwgMHgwMGMwLCAweDQzY2QsIDB4MTA3OCwgMHgyOTZiLCAweGE0OWMsCi0JMHgwMDBmLCAweGEzODIsIDB4MDAwNCwgMHgwMDUwLCAweDI5YWEsIDB4YTNhNiwgMHgwMDA3LCAweDAwYzAsCi0JMHgyOTZiLCAweDI0MTgsIDB4ODUwNywgMHhhMDg0LCAweDAwMGYsIDB4MDA3OSwgMHgyOWFmLCAweDMwMjgsCi0JMHgzMTE5LCAweDMxNDQsIDB4MzNiNiwgMHgzNzlmLCAweDM4MTksIDB4MzhjZSwgMHgzOTVmLCAweDNhNGQsCi0JMHgzYjNjLCAweDI5YzIsIDB4MjliZiwgMHgyZGY5LCAweDJmMWMsIDB4Mzc3MCwgMHgyOWJmLCAweDEwNzgsCi0JMHgyOTZiLCAweDAwN2MsIDB4YTAwNiwgMHgwMDc4LCAweDI5Y2MsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsCi0JMHhhMDA2LCAweDcwMDIsIDB4NzA0ZSwgMHg3MDQ2LCAweDcwZDIsIDB4NzA2MCwgMHhhMDA1LCAweDAwYzAsCi0JMHgyYjMyLCAweDcwNjQsIDB4YTA4NCwgMHgwMDA3LCAweDAwNzksIDB4MjlkNiwgMHgyOWRlLCAweDJhNTEsCi0JMHgyYTVhLCAweDJhNjUsIDB4MmE3MCwgMHgyYjE4LCAweDJhN2IsIDB4MmE1MSwgMHg3ODMwLCAweGQwYmMsCi0JMHgwMGMwLCAweDI5YzEsIDB4NzFkNCwgMHhkMWJjLCAweDAwYzAsIDB4MjljMSwgMHhkMWI0LCAweDAwYzAsCi0JMHgyYTJlLCAweDcwYTQsIDB4YTA4NiwgMHgwMDAxLCAweDAwNDAsIDB4MjljMSwgMHg3MGI0LCAweGEwNmQsCi0JMHg2ODAwLCAweGEwNjUsIDB4YTA1NSwgMHg3ODliLCAweDAwMTAsIDB4NmIwYywgMHg3YmFhLCAweDY4MDgsCi0JMHhhMDQ1LCAweDZkMTAsIDB4NjgwNCwgMHhhMDZkLCAweGEwNWQsIDB4YTg4NiwgMHgwMDAxLCAweDAwNDAsCi0JMHgyYTA0LCAweDY5YmMsIDB4N2RhYSwgMHg3OWFhLCAweDY4YzAsIDB4YTA0ZCwgMHg2ZTFjLCAweDIwMDEsCi0JMHgwMDEwLCAweDAwNzgsIDB4MmM4YywgMHg3MDYwLCAweGEwMDUsIDB4MDBjMCwgMHgyOWMxLCAweDBjN2UsCi0JMHgwZDdlLCAweDcwYjQsIDB4YTA2ZCwgMHg2ODAwLCAweGEwNjUsIDB4YTA1NSwgMHg3ODliLCAweDAwMTAsCi0JMHg2YjBjLCAweDdiYWEsIDB4NjgwOCwgMHhhMDQ1LCAweDZkMTAsIDB4NjgwNCwgMHhhMDZkLCAweGEwNWQsCi0JMHhhODg2LCAweDAwMDEsIDB4MDA0MCwgMHgyYTI3LCAweDY5YmMsIDB4N2RhYSwgMHg3OWFhLCAweDY4YzAsCi0JMHhhMDRkLCAweDZlMWMsIDB4MjAwMSwgMHgwMDIwLCAweDAwNzgsIDB4MmM4YywgMHgxMDc4LCAweDQzNjAsCi0JMHgwMGMwLCAweDI5YzEsIDB4NzgxYiwgMHgwMDViLCAweDcwYmMsIDB4YTA2ZCwgMHg2OGI0LCAweDc4NWEsCi0JMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwgMHg2ODk4LCAweDc4ZDIsIDB4NzhkYSwgMHg3ODA4LCAweGMwOGQsCi0JMHg3ODBhLCAweDY4YmMsIDB4NzA0MiwgMHhjMWI0LCAweDcxZDYsIDB4NzBiOCwgMHhhMDY1LCAweDY4YzAsCi0JMHg3MDVhLCAweDcwMDMsIDB4MDAwMiwgMHgyZDAwLCAweDcwNGUsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsCi0JMHgwMDdjLCAweDEwNzgsIDB4NDM2MCwgMHgwMGMwLCAweDJhNTksIDB4NzgxYiwgMHgwMDQ3LCAweDcwMDMsCi0JMHgwMDA0LCAweDAwN2MsIDB4MTA3OCwgMHg0MzYwLCAweDAwYzAsIDB4MmE2NCwgMHgyMDExLCAweDAwMGMsCi0JMHgxMDc4LCAweDJhOGIsIDB4NzAwMywgMHgwMDA0LCAweDAwN2MsIDB4MTA3OCwgMHg0MzYwLCAweDAwYzAsCi0JMHgyYTZmLCAweDIwMTEsIDB4MDAwNiwgMHgxMDc4LCAweDJhOGIsIDB4NzAwMywgMHgwMDA0LCAweDAwN2MsCi0JMHgxMDc4LCAweDQzNjAsIDB4MDBjMCwgMHgyYTdhLCAweDIwMTEsIDB4MDAwZCwgMHgxMDc4LCAweDJhOGIsCi0JMHg3MDAzLCAweDAwMDQsIDB4MDA3YywgMHgxMDc4LCAweDQzNjAsIDB4MDBjMCwgMHgyYThhLCAweDIwMTEsCi0JMHgwMDA2LCAweDEwNzgsIDB4MmE4YiwgMHg3MDdjLCAweDcwN2YsIDB4MDAwMCwgMHgyMDY4LCAweDcwNGUsCi0JMHg3MDAzLCAweDAwMDEsIDB4MDA3YywgMHg3MTc0LCAweGMxZmMsIDB4ODEwNywgMHg3ODgyLCAweDc4OWIsCi0JMHgwMDEwLCAweGEyODYsIDB4MDAwYywgMHgwMGMwLCAweDJhOWEsIDB4N2FhYSwgMHgyMDAxLCAweDAwMDEsCi0JMHgwMDc4LCAweDJhYWYsIDB4YTE4YywgMHgwMDFmLCAweGExOGQsIDB4MDBjMCwgMHg3OWFhLCAweGEyODYsCi0JMHgwMDBkLCAweDAwNDAsIDB4MmFhOCwgMHg3YWFhLCAweDIwMDEsIDB4MDAwMiwgMHgwMDc4LCAweDJhYWYsCi0JMHg3OGFiLCAweDAwMjAsIDB4NzE3OCwgMHg3OWFhLCAweDdhYWEsIDB4MjAwMSwgMHgwMDA0LCAweDc4OWIsCi0JMHgwMDYwLCAweDc4YWEsIDB4Nzg1YiwgMHgwMDA0LCAweDc4MWIsIDB4MDExNiwgMHgxMDc4LCAweDQzODMsCi0JMHg3MDgzLCAweDAwMGYsIDB4NzBkNCwgMHhkMGI0LCAweDAwNDAsIDB4MmFjYiwgMHhjMGI0LCAweDcwZDYsCi0JMHgwYzdlLCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsCi0JMHg4MDAxLCAweDYwMWEsIDB4MGM3ZiwgMHgwMDdjLCAweDcwMTQsIDB4YTAwNSwgMHgwMGMwLCAweDJhZGEsCi0JMHg3MGQ0LCAweGQwYjQsIDB4MDA0MCwgMHgyYWRiLCAweDcwYjgsIDB4YWMwNiwgMHgwMGMwLCAweDJhZGIsCi0JMHgxMDc4LCAweDJhYmEsIDB4MDA3YywgMHgwMTdlLCAweDcxYTQsIDB4YTE4NiwgMHgwMDAxLCAweDAwNDAsCi0JMHgyYjBkLCAweDBkN2UsIDB4MDI3ZSwgMHgyMTAwLCAweDIwMTEsIDB4MDAwMSwgMHhhMjEyLCAweDcwYjQsCi0JMHgyMDY4LCAweDY4MDAsIDB4YWMwNiwgMHgwMDQwLCAweDJhZjQsIDB4ODIxMSwgMHgwMDQwLCAweDJiMGIsCi0JMHgxMDc4LCAweDJiMGYsIDB4MDA3OCwgMHgyYWU5LCAweDBjN2UsIDB4MjEwMCwgMHgyMDExLCAweDAwMDEsCi0JMHhhMjEyLCAweDcwYjQsIDB4MjA2OCwgMHg2ODAwLCAweDIwNjAsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsCi0JMHg2MDBhLCAweDgyMTEsIDB4MDA0MCwgMHgyYjA4LCAweDEwNzgsIDB4MmIwZiwgMHgwMDc4LCAweDJhZmIsCi0JMHg3MGE3LCAweDAwMDEsIDB4MGM3ZiwgMHgwMjdmLCAweDBkN2YsIDB4MDE3ZiwgMHgwMDdjLCAweGFkZTgsCi0JMHgwMDA1LCAweDcwYWMsIDB4YWQwNiwgMHgwMGMwLCAweDJiMTcsIDB4NzBhOCwgMHgyMDY4LCAweDAwN2MsCi0JMHgxMDc4LCAweDQzNjAsIDB4MDBjMCwgMHgyOWMxLCAweDcwN2MsIDB4MjA2OCwgMHg3Nzc0LCAweDEwNzgsCi0JMHg0MWZlLCAweDJjNTAsIDB4MTA3OCwgMHg0NDQyLCAweDc4OWIsIDB4MDAxMCwgMHg2ODE0LCAweGEwODQsCi0JMHgwMDFmLCAweGMwYmQsIDB4NzhhYSwgMHg2ZTFjLCAweDIwNDEsIDB4MDAwMSwgMHgyMDAxLCAweDAwMDQsCi0JMHgwMDc4LCAweDJjOTIsIDB4MTA3OCwgMHg0MzYwLCAweDAwYzAsIDB4MjljMSwgMHg3ODliLCAweDAwMTAsCi0JMHg3MDYwLCAweDIwNjgsIDB4NmYxNCwgMHg3MGQ0LCAweGQwYjQsIDB4MDA0MCwgMHgyYjRjLCAweGMwYjQsCi0JMHg3MGQ2LCAweDBjN2UsIDB4NzBiOCwgMHhhMDY1LCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsCi0JMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwgMHgwYzdmLCAweDEwNzgsIDB4NDFmZSwgMHgyYzUwLCAweDEwNzgsCi0JMHg0NDQyLCAweDY4MjQsIDB4YTAwNSwgMHgwMDQwLCAweDJiNWQsIDB4YTA4MiwgMHgwMDA2LCAweDAwNDgsCi0JMHgyYjViLCAweDAwNzgsIDB4MmI1ZCwgMHg2ODI3LCAweDAwMDUsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsCi0JMHhjMGJkLCAweDc4YWEsIDB4MjAzMSwgMHgwMDIwLCAweDIwNDEsIDB4MDAwMSwgMHgyMDAxLCAweDAwMDMsCi0JMHgwMDc4LCAweDJjOTIsIDB4YzI4ZCwgMHg3MmQ2LCAweDcyYzAsIDB4YTIwMCwgMHhhMDE1LCAweDcxNTQsCi0JMHg4MTA4LCAweGExMmEsIDB4MDA0OCwgMHgyYjc1LCAweDcxYzAsIDB4MjE2NCwgMHg2NTA0LCAweDg1ZmYsCi0JMHgwMGMwLCAweDJiOGMsIDB4NzE1NiwgMHg4NDIxLCAweDAwYzAsIDB4MmI3MCwgMHg3MGQ0LCAweGQwOGMsCi0JMHgwMDQwLCAweDJiODgsIDB4NzBkMCwgMHhhMDA1LCAweDAwYzAsIDB4MmI4OCwgMHg3MGQzLCAweDAwMGEsCi0JMHgwMDdjLCAweDIyMDAsIDB4MDA3OCwgMHgyYjdhLCAweDcwZDQsIDB4YzA4YywgMHg3MGQ2LCAweDcwZDMsCi0JMHgwMDAwLCAweDYwMzQsIDB4YTAwNSwgMHgwMGMwLCAweDJiODksIDB4NjcwOCwgMHhhNzg0LCAweDA3M2YsCi0JMHgwMDQwLCAweDJiYmIsIDB4ZDdkNCwgMHgwMGMwLCAweDJiODksIDB4YTc4NCwgMHgwMDIxLCAweDAwYzAsCi0JMHgyYjg5LCAweGE3ODQsIDB4MDAwMiwgMHgwMDQwLCAweDJiYWMsIDB4YTc4NCwgMHgwMDA0LCAweDAwNDAsCi0JMHgyYjg5LCAweGE3YmMsIDB4ZmZmYiwgMHg2NzBhLCAweGE3ODQsIDB4MDIxOCwgMHgwMGMwLCAweDJiODksCi0JMHhhNzg0LCAweDAxMDAsIDB4MDA0MCwgMHgyYmJiLCAweDYwMTgsIDB4YTAwNSwgMHgwMGMwLCAweDJiODksCi0JMHhhN2JjLCAweGZlZmYsIDB4NjcwYSwgMHgyNTY4LCAweDY4MjMsIDB4MDAwMCwgMHg2ZTFjLCAweGE2ODQsCi0JMHgwMDBlLCAweDYzMTgsIDB4MDA0MCwgMHgyYmNjLCAweDYwMWMsIDB4YTMwMiwgMHgwMDQ4LCAweDJiY2YsCi0JMHgwMDQwLCAweDJiY2YsIDB4MDA3OCwgMHgyYjg5LCAweDgzZmYsIDB4MDBjMCwgMHgyYjg5LCAweDJkNTgsCi0JMHgyYzUwLCAweDcxNTYsIDB4ZDdiYywgMHgwMGMwLCAweDJiZDgsIDB4NzAyOCwgMHg2MDIyLCAweDYwM2EsCi0JMHhjN2JjLCAweDY3MGEsIDB4NjhjMCwgMHhhMDY1LCAweGEwNGQsIDB4NjEwMCwgMHgyYTYwLCAweDIwNDEsCi0JMHgwMDAxLCAweDZiMTQsIDB4YTM5YywgMHgwMDFmLCAweGEzOWQsIDB4MDBjMCwgMHhkMWZjLCAweDAwNDAsCi0JMHgyYmVjLCAweGQ2ODQsIDB4MDA0MCwgMHgyYmVlLCAweGEzOWMsIDB4ZmZiZiwgMHhkNmE0LCAweDAwNDAsCi0JMHgyYmYzLCAweGEzOWQsIDB4MDAyMCwgMHhhNjg0LCAweDAwMGUsIDB4MDBjMCwgMHgyYzNlLCAweGM3YTUsCi0JMHg2NzBhLCAweDJjMDAsIDB4NjhjNiwgMHg3N2E0LCAweGE3ODYsIDB4MDAwMSwgMHgwMGMwLCAweDJjMTIsCi0JMHg3MGQ0LCAweGQwYjQsIDB4MDBjMCwgMHgyYzEyLCAweDcwMDAsIDB4YTA4MiwgMHgwMDAyLCAweDAwYzgsCi0JMHgyYzEyLCAweDc4MzAsIDB4ZDBiYywgMHgwMGMwLCAweDJjMTIsIDB4Nzg5YiwgMHgwMDEwLCAweDdiYWEsCi0JMHgwMDc4LCAweDJjOGEsIDB4ODczOSwgMHg3N2E2LCAweDI3NTAsIDB4NzdiMCwgMHhhN2IwLCAweDAwMDUsCi0JMHg3MGFjLCAweGE2MDYsIDB4MDBjMCwgMHgyYzFkLCAweDc2YTgsIDB4NzZiMiwgMHgyYzNhLCAweDg3MzgsCi0JMHgyZDNhLCAweDg3MzgsIDB4MjgzYSwgMHg4NzM4LCAweDIzM2EsIDB4ODczOCwgMHgyNTNhLCAweDc4MzAsCi0JMHhkMGJjLCAweDAwNDAsIDB4MmMzNSwgMHgyMDkxLCAweDgwMDAsIDB4MjA5MSwgMHgzMDNkLCAweDcwZDQsCi0JMHhhMDg0LCAweDMwM2QsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTAsIDB4YWFkNSwgMHgwMDAwLCAweDAwNDAsCi0JMHgyYzNkLCAweDg0MjEsIDB4MjIwMCwgMHgwMGMwLCAweDJiNmYsIDB4MDA3YywgMHhkMWRjLCAweDAwNDAsCi0JMHgzZTAwLCAweDIwMjksIDB4MDAyMCwgMHhkNjljLCAweDAwYzAsIDB4MmM0YiwgMHg4NTI4LCAweGQ2OGMsCi0JMHgwMGMwLCAweDJjNGIsIDB4ODUyOCwgMHg4ODQwLCAweDZmMTQsIDB4NjEwYywgMHg4MTA4LCAweGExOGMsCi0JMHgwMGZmLCAweDcwY2MsIDB4YTE2MCwgMHgyYzY0LCAweDhjZmYsIDB4MDA0MCwgMHgyYzZhLCAweDYwMTQsCi0JMHhhNzA2LCAweDAwYzAsIDB4MmM1MywgMHg2MGI4LCAweDgwMDEsIDB4NjBiYSwgMHgwMGMwLCAweDJjNGUsCi0JMHgyYTYwLCAweDYwMDgsIDB4YTA4NSwgMHgwMTAwLCAweDYwMGEsIDB4MjIwMCwgMHg4NDIxLCAweDAwYzAsCi0JMHgyYjZmLCAweDAwN2MsIDB4MmE2MCwgMHg2MTBlLCAweDY5YmUsIDB4MmMwMCwgMHg2OGM2LCAweDg4NDAsCi0JMHg2MDA4LCAweGMwZDUsIDB4NjAwYSwgMHg3N2E0LCAweGE3ODYsIDB4MDAwMSwgMHgwMGMwLCAweDJjMTIsCi0JMHg3MGQ0LCAweGQwYjQsIDB4MDBjMCwgMHgyYzEyLCAweDcwMDAsIDB4YTA4MiwgMHgwMDAyLCAweDAwYzgsCi0JMHgyYzEyLCAweDc4MzAsIDB4ZDBiYywgMHgwMGMwLCAweDJjMTIsIDB4Nzg5YiwgMHgwMDEwLCAweDdiYWEsCi0JMHg3ZGFhLCAweDc5YWEsIDB4MjAwMSwgMHgwMDAyLCAweDAwN2UsIDB4NjAxOCwgMHg4MDAwLCAweDYwMWEsCi0JMHgwMDc4LCAweDJjOTMsIDB4MDA3ZSwgMHgyOTYwLCAweDYxMDQsIDB4MmE2MCwgMHhhMTg0LCAweDAwMTgsCi0JMHgwMDQwLCAweDJjYWYsIDB4YTE4NCwgMHgwMDEwLCAweDAwNDAsIDB4MmNhMiwgMHgxMDc4LCAweDQwMTEsCi0JMHgwMGMwLCAweDJjZDQsIDB4YTE4NCwgMHgwMDA4LCAweDAwNDAsIDB4MmNhZiwgMHg2OWEwLCAweGExODQsCi0JMHgwNjAwLCAweDAwYzAsIDB4MmNhZiwgMHgxMDc4LCAweDNlZjUsIDB4MDA3OCwgMHgyY2Q0LCAweDY5YTAsCi0JMHhhMTg0LCAweDFlMDAsIDB4MDA0MCwgMHgyY2RmLCAweGExODQsIDB4MDgwMCwgMHgwMDQwLCAweDJjYzgsCi0JMHgwYzdlLCAweDI5NjAsIDB4NjAwMCwgMHhhMDg1LCAweDIwMDAsIDB4NjAwMiwgMHg2MTA0LCAweGExOGQsCi0JMHgwMDEwLCAweDYxMDYsIDB4MGM3ZiwgMHgxMDc4LCAweDQwMTEsIDB4MDBjMCwgMHgyY2Q0LCAweDY5YTAsCi0JMHhhMTg0LCAweDAyMDAsIDB4MDA0MCwgMHgyY2QwLCAweDEwNzgsIDB4M2Y1NCwgMHgwMDc4LCAweDJjZDQsCi0JMHhhMTg0LCAweDA0MDAsIDB4MDBjMCwgMHgyY2FiLCAweDY5YTAsIDB4YTE4NCwgMHgxMDAwLCAweDAwNDAsCi0JMHgyY2RmLCAweDY5MTQsIDB4YTE4YywgMHhmZjAwLCAweDgxMGYsIDB4MTA3OCwgMHgyNzlmLCAweDAyN2YsCi0JMHhhNjhjLCAweDAwZTAsIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsIDB4MmNlYywgMHhhMDg2LCAweDAwNjAsCi0JMHgwMGMwLCAweDJjZWMsIDB4YTE4ZCwgMHg0MDAwLCAweGExOGQsIDB4MDEwNCwgMHg2OWI2LCAweDc4OWIsCi0JMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg2ODE4LCAweGMwZmQsIDB4NjgxYSwgMHhkNmJjLCAweDAwNDAsCi0JMHgyZDA3LCAweGMwZmMsIDB4NzA4NywgMHgwMDAwLCAweGEwOGEsIDB4MDAwZCwgMHgwMDUwLCAweDJkMDUsCi0JMHhhMDhhLCAweDAwMGMsIDB4NzE4NiwgMHgyMDAxLCAweDAwMGMsIDB4ODAwYywgMHg3MThhLCAweDc4YWEsCi0JMHgzNTE4LCAweDMzNDAsIDB4MzQyOCwgMHg4MDAwLCAweDgwYWMsIDB4YWY4MCwgMHgwMDJiLCAweDIwYTAsCi0JMHg3ODliLCAweDAwMDAsIDB4YWQ4MCwgMHgwMDBiLCAweDIwOTgsIDB4NTNhNiwgMHgyM2E4LCAweDI4OTgsCi0JMHgyNWEwLCAweGEyODYsIDB4MDAyMCwgMHgwMGMwLCAweDJkM2YsIDB4NzBkNCwgMHhjMGI1LCAweDcwZDYsCi0JMHgyYzAwLCAweDcwYmEsIDB4MmQwMCwgMHg3MGJlLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsCi0JMHhhMjg2LCAweDAwMDIsIDB4MDA0MCwgMHgyZDc1LCAweDcwYTQsIDB4ODAwMCwgMHg3MGE2LCAweDc0YjQsCi0JMHhhNDk4LCAweDAwMDUsIDB4NzBhYywgMHhhMzA2LCAweDAwYzAsIDB4MmQzNywgMHg3M2E4LCAweDczYjYsCi0JMHhhMjg2LCAweDAwMTAsIDB4MDA0MCwgMHgyOWMxLCAweDBkN2YsIDB4MGM3ZiwgMHgwMDdjLCAweDcwMDAsCi0JMHhhMDA1LCAweDAwYzAsIDB4MmQxZCwgMHhhMjg2LCAweDAwMDIsIDB4MDBjMCwgMHgyZDhmLCAweDEwNzgsCi0JMHg0MzYwLCAweDAwYzAsIDB4MmQxZCwgMHg2ODE0LCAweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweDIwOTEsCi0JMHg4MDAwLCAweDc4MWIsIDB4MDA1YiwgMHg2OGI0LCAweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsCi0JMHg2ODk4LCAweDc4ZDIsIDB4NzhkYSwgMHgyMDkxLCAweDgwMDEsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsCi0JMHgxMjdlLCAweDBkN2UsIDB4MGM3ZSwgMHg3MGQ0LCAweGEwODQsIDB4MjcwMCwgMHgyMDkwLCAweDBjN2YsCi0JMHgwZDdmLCAweDEyN2YsIDB4MjkwMCwgMHg3MDVhLCAweDY4YmMsIDB4NzA0MiwgMHg3MDAzLCAweDAwMDIsCi0JMHgyZDAwLCAweDcwNGUsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsIDB4NzgzMCwgMHhkMGJjLCAweDAwNDAsCi0JMHgyZDgxLCAweDIwOTEsIDB4MzAzZCwgMHg3MGQ0LCAweGEwODQsIDB4MzAzZCwgMHgyMDkxLCAweDgwMDAsCi0JMHgyMDkwLCAweDcwYTQsIDB4YTAwNSwgMHgwMGMwLCAweDJkODYsIDB4MDA3YywgMHg4NDIxLCAweDAwNDAsCi0JMHgyZDg1LCAweDcyNTAsIDB4NzBjMCwgMHhhMjAwLCAweGEwMTUsIDB4MDA3OCwgMHgyYjZmLCAweGEyODYsCi0JMHgwMDEwLCAweDAwYzAsIDB4MmRjMCwgMHgxMDc4LCAweDQzNjAsIDB4MDBjMCwgMHgyZDFkLCAweDY4MTQsCi0JMHhjMGZjLCAweDgwMDcsIDB4Nzg4MiwgMHg3ODFiLCAweDAwNWIsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsCisJMHhhMDA2LCAweDIwMDksIDB4OTc3NSwgMHgyMDBhLCAweDIwM2EsIDB4MDA3YywgMHg3ODEwLCAweGMwYWQsCisJMHg3ODEyLCAweDAwNzgsIDB4MjRkMiwgMHgyNjNhLCAweDEwNzgsIDB4MjViZCwgMHgwMGMwLCAweDI1ZTAsCisJMHg3ODZjLCAweGEwNjUsIDB4MDBjMCwgMHgyNDY0LCAweDIwOTEsIDB4ODAwMCwgMHg3ODEwLCAweGEwODQsCisJMHhmZmNmLCAweDg2ZmYsIDB4MDA0MCwgMHgyNGNkLCAweGMwYWQsIDB4NzgxMiwgMHgyMDkxLCAweDgwMDEsCisJMHgwMDc4LCAweDI1ZTAsIDB4MjA5MSwgMHg4MDAwLCAweDcwMDcsIDB4MDAwNCwgMHg3OTk0LCAweDcwZDQsCisJMHhhMTAyLCAweDAwNDgsIDB4MjRlMywgMHgwMDQwLCAweDI0ZWQsIDB4N2I5MCwgMHhhMzAyLCAweDAwYzAsCisJMHgyNGVkLCAweDAwNzgsIDB4MjRlNiwgMHg4MDAyLCAweDAwYzAsIDB4MjRlZCwgMHgyNjNhLCAweDc4MTAsCisJMHhjMGFkLCAweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDAwN2MsIDB4YTE4NCwgMHhmZjAwLCAweDAwNDAsCisJMHgyNGZhLCAweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsCisJMHgwMDc4LCAweDI0ZmQsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsIDB4N2E5YywgMHhhMjEwLCAweDcyMWEsCisJMHg3YTk4LCAweGEwMDYsIDB4YTIxMSwgMHg3MjFlLCAweGQ0YzQsIDB4MDA0MCwgMHgyNTBkLCAweDdhYTQsCisJMHhhMjExLCAweDcyMjIsIDB4N2FhMCwgMHhhMjExLCAweDcyMjYsIDB4MjBhMSwgMHgwMDMwLCAweDcwMDMsCisJMHgwMDAwLCAweDIwMDksIDB4OTc1NCwgMHgyNjBhLCAweDgxMDksIDB4MjE5OCwgMHgyMTA0LCAweGQwODQsCisJMHgwMDQwLCAweDI1MWIsIDB4ODYzMywgMHhhNmIwLCAweDAwMDIsIDB4MjZhOCwgMHg1M2E2LCAweDg2MDMsCisJMHg3MDEyLCAweDcwMDcsIDB4MDAwMSwgMHg3OTkwLCAweDc4OTQsIDB4ODAwMCwgMHhhMTBhLCAweDAwYzgsCisJMHgyNTJhLCAweGEwMDYsIDB4MjAyOCwgMHg3OTc0LCAweGExODQsIDB4ZmYwMCwgMHgwMDQwLCAweDI1MzksCisJMHg4MTBmLCAweDgxMGMsIDB4ODEwYywgMHg4MDA0LCAweDgwMDQsIDB4ODAwNywgMHhhMTAwLCAweDAwNzgsCisJMHgyNTNjLCAweDgxMDcsIDB4ODAwNCwgMHg4MDA0LCAweDc5N2MsIDB4YTEwOCwgMHg3YTc4LCAweGEwMDYsCisJMHhhMjExLCAweGQ0YzQsIDB4MDA0MCwgMHgyNTQ4LCAweDdiODQsIDB4YTMxOSwgMHg3YzgwLCAweGE0MjEsCisJMHg3MDA4LCAweGQwZmMsIDB4MDA0MCwgMHgyNTQ4LCAweGEwODQsIDB4MDFlMCwgMHgwMDQwLCAweDI1NmQsCisJMHg3ZDEwLCAweDIwMzEsIDB4OTc1NCwgMHgyNjM0LCAweDc4YTgsIDB4ODAwMCwgMHg3OGFhLCAweGQwOGMsCisJMHgwMGMwLCAweDI1NjIsIDB4NzAwNywgMHgwMDA2LCAweDcwMDQsIDB4ZDA5NCwgMHgwMGMwLCAweDI1NWMsCisJMHgwMDc4LCAweDI0ZDQsIDB4MjA2OSwgMHg0ZjQ3LCAweDIwNmIsIDB4MDAwMywgMHg3OGFjLCAweGEwODUsCisJMHgwMzAwLCAweDc4YWUsIDB4YTAwNiwgMHgwMDc4LCAweDI1NzYsIDB4MjAzMCwgMHg3NWQ2LCAweDIwOTEsCisJMHg0MDgwLCAweDdkOTYsIDB4N2QxMCwgMHhhNWFjLCAweGZmY2YsIDB4N2QxMiwgMHgyMDkxLCAweDgwMDEsCisJMHg3OGFhLCAweDcwMDcsIDB4MDAwNiwgMHgyNjNhLCAweDcwMDMsIDB4MDAwMSwgMHg3MTFhLCAweDcyMWUsCisJMHhkNWM0LCAweDAwNDAsIDB4MjU4NSwgMHg3MzIyLCAweDc0MjYsIDB4MDA3YywgMHg2MDg0LCAweGEwODYsCisJMHgwMTAzLCAweDAwYzAsIDB4MjVhOSwgMHg2MTE0LCAweDYwMTgsIDB4YTEwNSwgMHgwMGMwLCAweDI1YTksCisJMHgyMDY5LCAweDAwMDAsIDB4NjgxOCwgMHhkMDg0LCAweDAwYzAsIDB4MjVhOSwgMHg2MDBjLCAweDcwYzYsCisJMHg2MDEwLCAweDcwY2EsIDB4NzBjMywgMHg4MDIwLCAweDY4MWIsIDB4MDAwMSwgMHgyMDkxLCAweDQwODAsCisJMHgxMDc4LCAweDIwODYsIDB4MDA2OCwgMHgyNWE4LCAweDc4NmMsIDB4YTA2NSwgMHgwMGMwLCAweDI1ODYsCisJMHgwMDdjLCAweDEwNzgsIDB4MjViZCwgMHgwMGMwLCAweDI1ZTAsIDB4Nzg2YywgMHhhMDY1LCAweDAwYzAsCisJMHgyNTg2LCAweDAwNzgsIDB4MjVlMCwgMHgxMDc4LCAweDI1YmQsIDB4MDBjMCwgMHgyNWUwLCAweDc4NmMsCisJMHhhMDY1LCAweDAwYzAsIDB4MjViMywgMHgwMDc4LCAweDI1ZTAsIDB4NjA4NCwgMHhhMDg2LCAweDAxMDMsCisJMHgwMGMwLCAweDI1ZDEsIDB4NjAxOCwgMHhjMGZjLCAweDYwMWEsIDB4YTA4NiwgMHgwMDA0LCAweDAwYzAsCisJMHgyNWQxLCAweDc4MDQsIDB4ZDBhNCwgMHgwMDQwLCAweDI1ZDEsIDB4MTA3OCwgMHgyMDg2LCAweGEwMDYsCisJMHgwMDdjLCAweDEwNzgsIDB4MjVlNiwgMHgwMGMwLCAweDI1ZDgsIDB4YTA4NSwgMHgwMDAxLCAweDAwN2MsCisJMHgxMDc4LCAweDI1ZjUsIDB4MDBjMCwgMHgyNWRlLCAweDIwNDEsIDB4MDAwMSwgMHg3ZDEwLCAweDAwN2MsCisJMHg4OGZmLCAweDAwNDAsIDB4MjVlNSwgMHgyMDkxLCAweDQwODAsIDB4MDA3YywgMHg3YjkwLCAweDc5OTQsCisJMHg3MGQ0LCAweGExMDIsIDB4MDBjMCwgMHgyNWVmLCAweGEzODUsIDB4MDAwMCwgMHgwMDdjLCAweDAwNDgsCisJMHgyNWYzLCAweGEzMDIsIDB4MDA3YywgMHg4MDAyLCAweDAwN2MsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsCisJMHgyNjBkLCAweDBlN2UsIDB4MjA5MSwgMHg4MDAwLCAweDIwNzEsIDB4MDAyMCwgMHg3MDA0LCAweGEwMDUsCisJMHgwMGMwLCAweDI2MGEsIDB4NzAwOCwgMHgwZTdmLCAweGEwODYsIDB4MDAwOCwgMHgwMDQwLCAweDI2MGQsCisJMHgwMDc4LCAweDI2NWUsIDB4MGU3ZiwgMHgwMDc4LCAweDI2NWUsIDB4YTE4NCwgMHhmZjAwLCAweDAwNDAsCisJMHgyNjFhLCAweDgxMGYsIDB4ODEwYywgMHg4MTBjLCAweDgwMDQsIDB4ODAwNCwgMHg4MDA3LCAweGExMDAsCisJMHgwMDc4LCAweDI2MWQsIDB4ODEwNywgMHg4MDA0LCAweDgwMDQsIDB4N2E5YywgMHg3Yjk4LCAweDdjYTQsCisJMHg3ZGEwLCAweGEyMTAsIDB4YTAwNiwgMHhhMzE5LCAweGE0MjEsIDB4YTUyOSwgMHgyMDA5LCAweDAwMTgsCisJMHg2MDI4LCAweGEwMDUsIDB4MDA0MCwgMHgyNjJlLCAweDIwMDksIDB4MDA0MCwgMHgxMDc4LCAweDFkYmIsCisJMHgwMDQwLCAweDI2NTAsIDB4NzhhOCwgMHg4MDAwLCAweDc4YWEsIDB4ZDA4YywgMHgwMGMwLCAweDI2NWUsCisJMHg2MDE0LCAweGQwZmMsIDB4MDBjMCwgMHgyNjQwLCAweDIwNjksIDB4NGY0MCwgMHgwMDc4LCAweDI2NDIsCisJMHgyMDY5LCAweDRmODAsIDB4MjA5MSwgMHg4MDAwLCAweDY4MWYsIDB4MDAwMywgMHg3OGFiLCAweDAwMDAsCisJMHg3OGFjLCAweGEwODUsIDB4MDMwMCwgMHg3OGFlLCAweDIwOTEsIDB4ODAwMSwgMHgwMDc4LCAweDI2NWUsCisJMHg3OGFiLCAweDAwMDAsIDB4MTA3OCwgMHgyMDg2LCAweDc5OTAsIDB4Nzg5NCwgMHg4MDAwLCAweGExMGEsCisJMHgwMGM4LCAweDI2NWIsIDB4YTAwNiwgMHg3ODk2LCAweDcwZDYsIDB4YTAwNiwgMHgyMDcxLCAweDAwMTAsCisJMHgyMDkxLCAweDgwMDEsIDB4MDA3YywgMHhkN2ZjLCAweDAwYzAsIDB4MjY2YSwgMHgyMDA5LCAweDRmNTksCisJMHgwMDc4LCAweDI2NmMsIDB4MjAwOSwgMHg0Zjk5LCAweDIwOTEsIDB4ODAwMCwgMHgyMDBhLCAweDBmN2UsCisJMHhkN2ZjLCAweDAwYzAsIDB4MjY4MywgMHgyMDA5LCAweDRmNDAsIDB4MjAwMSwgMHg0ZjA0LCAweDIwMDQsCisJMHhkMGVjLCAweDAwNDAsIDB4MjY3ZiwgMHgyMDc5LCAweDAxMDAsIDB4MDA3OCwgMHgyNjg3LCAweDIwNzksCisJMHgwMjAwLCAweDAwNzgsIDB4MjY4NywgMHgyMDA5LCAweDRmODAsIDB4MjA3OSwgMHgwMTAwLCAweDIxMDQsCisJMHhhMDg2LCAweDAwMDAsIDB4MDBjMCwgMHgyNmEwLCAweGQ3ZmMsIDB4MDBjMCwgMHgyNjkzLCAweDIwMDksCisJMHg0ZjQ1LCAweDAwNzgsIDB4MjY5NSwgMHgyMDA5LCAweDRmODUsIDB4MjEwNCwgMHhhMDA1LCAweDAwYzAsCisJMHgyNmEwLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsIDB4MjZhMCwgMHg3ODFiLCAweDAwNDUsCisJMHgwZjdmLCAweDAwN2MsIDB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NGYwMCwgMHg2ODEwLCAweGQwZWMsCisJMHgwMGMwLCAweDI3MGYsIDB4MjA3MSwgMHg0ZjgwLCAweDIwNzksIDB4MDEwMCwgMHgyMDIxLCAweDUxYmYsCisJMHg3ODRiLCAweDAwMGYsIDB4MjAxOSwgMHg0NGE3LCAweGQxODQsIDB4MDA0MCwgMHgyNmMzLCAweDY4MTAsCisJMHhkMGVjLCAweDAwNDAsIDB4MjZiZiwgMHgyMGExLCAweDAxMmIsIDB4MDA3OCwgMHgyNmM1LCAweDIwYTEsCisJMHgwMjJiLCAweDAwNzgsIDB4MjZjNSwgMHgyMGExLCAweDAxMmIsIDB4MjMwNCwgMHhhMDA1LCAweDAwNDAsCisJMHgyNmQyLCAweDc4OWEsIDB4ODMxOCwgMHgyM2FjLCAweDgzMTgsIDB4MjM5OCwgMHg1M2E2LCAweDMzMTgsCisJMHgwMDc4LCAweDI2YzUsIDB4Nzg5YiwgMHgwMDIwLCAweDIwYTksIDB4MDAxMCwgMHg2ODE0LCAweGQwZTQsCisJMHgwMDQwLCAweDI2ZTIsIDB4NzhhZiwgMHgwMDAwLCAweDc4YWYsIDB4OTAyMCwgMHgwMGYwLCAweDI2ZGEsCisJMHgwMDc4LCAweDI2ZTgsIDB4NzhhZiwgMHgwMDAwLCAweDc4YWYsIDB4ODAyMCwgMHgwMGYwLCAweDI2ZTIsCisJMHg3MDAzLCAweDAwMDAsIDB4MDE3ZSwgMHhkMThjLCAweDIwMDksIDB4MDAwMCwgMHgwMDQwLCAweDI2ZjEsCisJMHhjMWJkLCAweDEwNzgsIDB4MjhlMiwgMHgwMTdmLCAweDcwMjAsIDB4YTA4NCwgMHgwMDBmLCAweDAwN2UsCisJMHg2ODE0LCAweGQwZTQsIDB4MDA3ZiwgMHgwMGMwLCAweDI3MDEsIDB4YTA4NSwgMHg2MzQwLCAweDAwNzgsCisJMHgyNzAzLCAweGEwODUsIDB4NjJjMCwgMHg3ODA2LCAweDc4MGYsIDB4OTIwMCwgMHg3ODQzLCAweDAwZDgsCisJMHg3ODUzLCAweDAwODAsIDB4NzgwYiwgMHgwMDA4LCAweDc0NTYsIDB4NzA1MywgMHgwMDAwLCAweDgxMDksCisJMHgwMDQwLCAweDI3MjIsIDB4MjA3MSwgMHg0ZjQwLCAweDY4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDI3MWMsCisJMHgyMDc5LCAweDAxMDAsIDB4MDA3OCwgMHgyNzFlLCAweDIwNzksIDB4MDIwMCwgMHgyMDIxLCAweDRmYmYsCisJMHgwMDc4LCAweDI2YjAsIDB4MDA3YywgMHgwMTdlLCAweGQxYmMsIDB4MDBjMCwgMHgyNzM3LCAweDAwN2UsCisJMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyNzMzLCAweDIwMTEsCisJMHgwMTAxLCAweDAwNzgsIDB4MjczOSwgMHgyMDExLCAweDAyMDEsIDB4MDA3OCwgMHgyNzM5LCAweDIwMTEsCisJMHgwMTAxLCAweGExOGMsIDB4MDAwZiwgMHgyMjA0LCAweGEwODQsIDB4ZmZmMCwgMHhhMTA1LCAweDIwMTIsCisJMHgwMTdmLCAweDEwNzgsIDB4MjhlMiwgMHgwMDdjLCAweGQzZmMsIDB4MDBjMCwgMHgyNzU3LCAweDAwN2UsCisJMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyNzUzLCAweDIwMTEsCisJMHgwMTAxLCAweDAwNzgsIDB4Mjc1OSwgMHgyMDExLCAweDAyMDEsIDB4MDA3OCwgMHgyNzU5LCAweDIwMTEsCisJMHgwMTAxLCAweDIwYTksIDB4MDAwOSwgMHg4MTBiLCAweDAwZjAsIDB4Mjc1YiwgMHhhMThjLCAweDBlMDAsCisJMHgyMjA0LCAweGEwODQsIDB4ZjFmZiwgMHhhMTA1LCAweDIwMTIsIDB4MDA3YywgMHgyMDE5LCAweDAwMDIsCisJMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwNDAsIDB4Mjc3MywgMHg4MzE5LCAweDIwMDksCisJMHgwMTAxLCAweDAwNzgsIDB4Mjc3NSwgMHgyMDA5LCAweDAxMDEsIDB4MjBhOSwgMHgwMDA1LCAweDgyMTMsCisJMHgwMGYwLCAweDI3NzcsIDB4YTI5NCwgMHgwMGUwLCAweDIxMDQsIDB4YTA4NCwgMHhmZjFmLCAweGEyMDUsCisJMHgyMDBhLCAweDgzMTksIDB4MDA0MCwgMHgyNzg4LCAweDIwMDksIDB4MDIwMSwgMHgwMDc4LCAweDI3NzUsCisJMHgwMDdjLCAweGQzZmMsIDB4MDBjMCwgMHgyNzljLCAweDAwN2UsIDB4MjAwMSwgMHg0ZjA0LCAweDIwMDQsCisJMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyNzk4LCAweDIwMTEsIDB4MDEwMSwgMHgwMDc4LCAweDI3OWUsCisJMHgyMDExLCAweDAyMDEsIDB4MDA3OCwgMHgyNzllLCAweDIwMTEsIDB4MDEwMSwgMHgyMGE5LCAweDAwMGMsCisJMHg4MTBiLCAweDAwZjAsIDB4MjdhMCwgMHhhMThjLCAweGYwMDAsIDB4MjIwNCwgMHhhMDg0LCAweDBmZmYsCisJMHhhMTA1LCAweDIwMTIsIDB4MDA3YywgMHhkM2ZjLCAweDAwYzAsIDB4MjdiZSwgMHgwMDdlLCAweDIwMDEsCisJMHg0ZjA0LCAweDIwMDQsIDB4ZDBlYywgMHgwMDdmLCAweDAwNDAsIDB4MjdiYSwgMHgyMDExLCAweDAxMDIsCisJMHgwMDc4LCAweDI3YzAsIDB4MjAxMSwgMHgwMjAyLCAweDAwNzgsIDB4MjdjMCwgMHgyMDExLCAweDAxMDIsCisJMHgyMjA0LCAweGEwODQsIDB4ZmZjZiwgMHhhMTA1LCAweDIwMTIsIDB4MDA3YywgMHgwYzdlLCAweGQxYmMsCisJMHgwMGMwLCAweDI3ZGEsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCisJMHgwMDQwLCAweDI3ZDYsIDB4MjA2MSwgMHgwMTAwLCAweDAwNzgsIDB4MjdkYywgMHgyMDYxLCAweDAyMDAsCisJMHgwMDc4LCAweDI3ZGMsIDB4MjA2MSwgMHgwMTAwLCAweGMxYmMsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsCisJMHgwMDIwLCAweDYwOWEsIDB4NjJhYywgMHg2M2FjLCAweDBjN2YsIDB4MDA3YywgMHgwYzdlLCAweGQxYmMsCisJMHgwMGMwLCAweDI3ZmEsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCisJMHgwMDQwLCAweDI3ZjYsIDB4MjA2MSwgMHgwMTAwLCAweDAwNzgsIDB4MjdmYywgMHgyMDYxLCAweDAyMDAsCisJMHgwMDc4LCAweDI3ZmMsIDB4MjA2MSwgMHgwMTAwLCAweGMxYmMsIDB4ODEwMywgMHg4MDAzLCAweGEwODAsCisJMHgwMDIyLCAweDYwOWEsIDB4NjBhNCwgMHhhMDg0LCAweGZmZGYsIDB4NjBhZSwgMHgwYzdmLCAweDAwN2MsCisJMHgwYzdlLCAweGQxYmMsIDB4MDBjMCwgMHgyODFjLCAweDAwN2UsIDB4MjAwMSwgMHg0ZjA0LCAweDIwMDQsCisJMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgyODE4LCAweDIwNjEsIDB4MDEwMCwgMHgwMDc4LCAweDI4MWUsCisJMHgyMDYxLCAweDAyMDAsIDB4MDA3OCwgMHgyODFlLCAweDIwNjEsIDB4MDEwMCwgMHhjMWJjLCAweDgxMDMsCisJMHg4MDAzLCAweGEwODAsIDB4MDAyMiwgMHg2MDlhLCAweDYwYTQsIDB4YTA4NSwgMHgwMDIwLCAweDYwYWUsCisJMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwgMHhkMWJjLCAweDAwYzAsIDB4MjgzZSwgMHgwMDdlLCAweDIwMDEsCisJMHg0ZjA0LCAweDIwMDQsIDB4ZDBlYywgMHgwMDdmLCAweDAwNDAsIDB4MjgzYSwgMHgyMDYxLCAweDAxMDAsCisJMHgwMDc4LCAweDI4NDAsIDB4MjA2MSwgMHgwMjAwLCAweDAwNzgsIDB4Mjg0MCwgMHgyMDYxLCAweDAxMDAsCisJMHhjMWJjLCAweDgxMDMsIDB4ODAwMywgMHhhMDgwLCAweDAwMjAsIDB4NjA5YSwgMHg2MGE0LCAweGEyOGMsCisJMHgwMDIwLCAweDAwNDAsIDB4Mjg0ZSwgMHhjMmFjLCAweGEzOWQsIDB4NDAwMCwgMHhjM2ZjLCAweGQzYjQsCisJMHgwMGMwLCAweDI4NTMsIDB4YzNmZCwgMHg2MmFlLCAweDIwMTAsIDB4NjBhNCwgMHg2M2FlLCAweDIwMTgsCisJMHgwYzdmLCAweDAwN2MsIDB4MjA5MSwgMHg4MDAwLCAweDBjN2UsIDB4MGU3ZSwgMHg2ODE4LCAweGEwMDUsCisJMHgwMDQwLCAweDI4YzAsIDB4ZDFmYywgMHgwMDQwLCAweDI4NjksIDB4MjA2MSwgMHg5NmQwLCAweDAwNzgsCisJMHgyODZiLCAweDIwNjEsIDB4OTVjMCwgMHgxMDc4LCAweDI4YzgsIDB4MDA0MCwgMHgyOGEyLCAweDIwYTksCisJMHgwMTAxLCAweGQxZmMsIDB4MDA0MCwgMHgyODc4LCAweDIwNjEsIDB4OTVkMCwgMHgwMDc4LCAweDI4N2EsCisJMHgyMDYxLCAweDk0YzAsIDB4MGM3ZSwgMHgxMDc4LCAweDI4YzgsIDB4MDA0MCwgMHgyODg1LCAweDBjN2YsCisJMHg4YzYwLCAweDAwZjAsIDB4Mjg3YSwgMHgwMDc4LCAweDI4YzAsIDB4MDA3ZiwgMHhkMWZjLCAweDAwNDAsCisJMHgyODhmLCAweGEwODIsIDB4OTVkMCwgMHgyMDcxLCAweDRmODAsIDB4MDA3OCwgMHgyODkzLCAweGEwODIsCisJMHg5NGMwLCAweDIwNzEsIDB4NGY0MCwgMHg3MDdhLCAweDcxNzYsIDB4MjEzOCwgMHgyMDAxLCAweDAwMDQsCisJMHg3MDY2LCAweDcwODMsIDB4MDAwZiwgMHg3MWQ0LCAweGMxZGMsIDB4NzFkNiwgMHgxMDc4LCAweDI2NjMsCisJMHgwMDc4LCAweDI4YmMsIDB4ZDFmYywgMHgwMGMwLCAweDI4YTksIDB4MjA3MSwgMHg0ZjQwLCAweDAwNzgsCisJMHgyOGFiLCAweDIwNzEsIDB4NGY4MCwgMHg2MDIwLCAweGMwZGQsIDB4NjAyMiwgMHg3MTc2LCAweDIxMzgsCisJMHgyYzAwLCAweDcwN2UsIDB4MjAwMSwgMHgwMDA2LCAweDcwNjYsIDB4NzA4MywgMHgwMDBmLCAweDcxZDQsCisJMHhjMWRjLCAweDcxZDYsIDB4MTA3OCwgMHgyNjYzLCAweDIwMDEsIDB4MDAwMCwgMHgwMDc4LCAweDI4YzIsCisJMHgyMDAxLCAweDAwMDEsIDB4MjA5MSwgMHg4MDAxLCAweGEwMDUsIDB4MGU3ZiwgMHgwYzdmLCAweDAwN2MsCisJMHgyYzA0LCAweGEwMDUsIDB4MDA0MCwgMHgyOGRmLCAweDIwNjAsIDB4NjAxMCwgMHhhMzA2LCAweDAwYzAsCisJMHgyOGRjLCAweDYwMGMsIDB4YTIwNiwgMHgwMGMwLCAweDI4ZGMsIDB4NjAxNCwgMHhhMTA2LCAweDAwYzAsCisJMHgyOGRjLCAweGEwMDYsIDB4MDA3OCwgMHgyOGUxLCAweDYwMDAsIDB4MDA3OCwgMHgyOGM5LCAweGEwODUsCisJMHgwMDAxLCAweDAwN2MsIDB4MGY3ZSwgMHgwZTdlLCAweDAxN2UsIDB4ZDFiYywgMHgwMGMwLCAweDI4ZmEsCisJMHgyMDc5LCAweDRmNDAsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCisJMHgwMDQwLCAweDI4ZjYsIDB4MjA3MSwgMHgwMTAwLCAweDAwNzgsIDB4MjhmZSwgMHgyMDcxLCAweDAyMDAsCisJMHgwMDc4LCAweDI4ZmUsIDB4MjA3OSwgMHg0ZjgwLCAweDIwNzEsIDB4MDEwMCwgMHg3OTIwLCAweGExOGMsCisJMHgwMDBmLCAweDcwZWMsIDB4ZDBjNCwgMHgwMGMwLCAweDI5MDgsIDB4MDE3ZiwgMHgwMDc4LCAweDI5MjMsCisJMHg4MTBiLCAweDgxMGIsIDB4ODEwYiwgMHg4MTBiLCAweDAwN2YsIDB4ZDBiYywgMHgwMGMwLCAweDI5MjAsCisJMHgwMDdlLCAweDIwMDEsIDB4NGYwNCwgMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDI5MWMsCisJMHhhMThkLCAweDBmMDAsIDB4MDA3OCwgMHgyOTIyLCAweGExOGQsIDB4MGYwMCwgMHgwMDc4LCAweDI5MjIsCisJMHhhMThkLCAweDA4MDAsIDB4MjEwNCwgMHgwZTdmLCAweDBmN2YsIDB4MDA3YywgMHgwZTdlLCAweDIwMDEsCisJMHg0ZjAxLCAweDIwMDQsIDB4ZDBhYywgMHgwMGMwLCAweDI5YTMsIDB4NjhlNCwgMHhkMGFjLCAweDAwNDAsCisJMHgyOWEzLCAweGEwODQsIDB4MDAwNiwgMHgwMGMwLCAweDI5YTMsIDB4NjAxNCwgMHhkMGZjLCAweDAwYzAsCisJMHgyOTNkLCAweDIwNzEsIDB4NTNjMCwgMHgwMDc4LCAweDI5M2YsIDB4MjA3MSwgMHg1NDQwLCAweDgwMDcsCisJMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsIDB4YWU3MCwgMHg3MDA0LCAweGEwODQsCisJMHgwMDBhLCAweDAwYzAsIDB4MjlhMywgMHg3MTA4LCAweGExOTQsIDB4ZmYwMCwgMHgwMDQwLCAweDI5YTMsCisJMHhhMThjLCAweDAwZmYsIDB4MjAwMSwgMHgwMDBhLCAweGExMDYsIDB4MDA0MCwgMHgyOTcyLCAweDIwMDEsCisJMHgwMDBjLCAweGExMDYsIDB4MDA0MCwgMHgyOTc2LCAweDIwMDEsIDB4MDAxMiwgMHhhMTA2LCAweDAwNDAsCisJMHgyOTdhLCAweDIwMDEsIDB4MDAxNCwgMHhhMTA2LCAweDAwNDAsIDB4Mjk3ZSwgMHgyMDAxLCAweDAwMTksCisJMHhhMTA2LCAweDAwNDAsIDB4Mjk4MiwgMHgyMDAxLCAweDAwMzIsIDB4YTEwNiwgMHgwMDQwLCAweDI5ODYsCisJMHgwMDc4LCAweDI5OGEsIDB4MjAwOSwgMHgwMDBjLCAweDAwNzgsIDB4Mjk4YywgMHgyMDA5LCAweDAwMTIsCisJMHgwMDc4LCAweDI5OGMsIDB4MjAwOSwgMHgwMDE0LCAweDAwNzgsIDB4Mjk4YywgMHgyMDA5LCAweDAwMTksCisJMHgwMDc4LCAweDI5OGMsIDB4MjAwOSwgMHgwMDIwLCAweDAwNzgsIDB4Mjk4YywgMHgyMDA5LCAweDAwM2YsCisJMHgwMDc4LCAweDI5OGMsIDB4MjAxMSwgMHgwMDAwLCAweDIxMDAsIDB4YTIwNSwgMHg3MDBhLCAweDIwNzEsCisJMHg0ZjAwLCAweDcwMDQsIDB4ZDBiYywgMHgwMDQwLCAweDI5YTMsIDB4NjAxNCwgMHhkMGZjLCAweDAwYzAsCisJMHgyOTllLCAweDcwZWEsIDB4MjA3MSwgMHg0ZjQwLCAweDAwNzgsIDB4MjlhMSwgMHg3MGVlLCAweDIwNzEsCisJMHg0ZjgwLCAweDcwMWYsIDB4MDAwZCwgMHgwZTdmLCAweDAwN2MsIDB4MjAwMSwgMHg0ZjA1LCAweDIwMDQsCisJMHhkMGU0LCAweDAwYzAsIDB4MjliMSwgMHg3ODA0LCAweGEwODQsIDB4ZmYxZiwgMHhhMDg1LCAweDYzNDAsCisJMHg3ODA2LCAweDAwN2MsIDB4MDA2OCwgMHgyOWIyLCAweDIwOTEsIDB4ODAwMCwgMHgyMDcxLCAweDAwMDAsCisJMHgwMDdlLCAweDcwMTgsIDB4ZDA4NCwgMHgwMGMwLCAweDI5YjksIDB4MDA3ZiwgMHgyMDcxLCAweDAwMTAsCisJMHg3MGNhLCAweDAwN2YsIDB4NzBjNiwgMHg3MGMzLCAweDgwMDIsIDB4NzBkYiwgMHgwODBmLCAweDcwZGYsCisJMHgwMDBiLCAweDIwNzEsIDB4MDAwMCwgMHg3MDFiLCAweDAwMDEsIDB4MjA5MSwgMHg0MDgwLCAweDAwNzgsCisJMHgyOWNmLCAweDdmM2MsIDB4N2U1OCwgMHg3YzMwLCAweDdkMzgsIDB4NzhhMCwgMHg3MDhlLCAweDc1OTIsCisJMHg3NDk2LCAweDc2OWEsIDB4Nzc5ZSwgMHhhNTk0LCAweDAwM2YsIDB4ZDRmNCwgMHgwMDQwLCAweDI5ZTYsCisJMHhhNzg0LCAweDAwN2QsIDB4MDBjMCwgMHg0NDFkLCAweDEwNzgsIDB4MjliMiwgMHhhNDljLCAweDAwMGYsCisJMHhhMzgyLCAweDAwMDQsIDB4MDA1MCwgMHgyOWYxLCAweGEzYTYsIDB4MDAwNywgMHgwMGMwLCAweDI5YjIsCisJMHgyNDE4LCAweDg1MDcsIDB4YTA4NCwgMHgwMDBmLCAweDAwNzksIDB4MjlmNiwgMHgzMDcxLCAweDMxNjIsCisJMHgzMThkLCAweDMzZmYsIDB4MzdlOCwgMHgzODYyLCAweDM5MTcsIDB4MzlhOCwgMHgzYTk2LCAweDNiODUsCisJMHgyYTA5LCAweDJhMDYsIDB4MmU0MiwgMHgyZjY1LCAweDM3YjksIDB4MmEwNiwgMHgxMDc4LCAweDI5YjIsCisJMHgwMDdjLCAweGEwMDYsIDB4MDA3OCwgMHgyYTEzLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweGEwMDYsCisJMHg3MDAyLCAweDcwNGUsIDB4NzA0NiwgMHg3MGQyLCAweDcwNjAsIDB4YTAwNSwgMHgwMGMwLCAweDJiNzksCisJMHg3MDY0LCAweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDJhMWQsIDB4MmEyNSwgMHgyYTk4LCAweDJhYTEsCisJMHgyYWFjLCAweDJhYjcsIDB4MmI1ZiwgMHgyYWMyLCAweDJhOTgsIDB4NzgzMCwgMHhkMGJjLCAweDAwYzAsCisJMHgyYTA4LCAweDcxZDQsIDB4ZDFiYywgMHgwMGMwLCAweDJhMDgsIDB4ZDFiNCwgMHgwMGMwLCAweDJhNzUsCisJMHg3MGE0LCAweGEwODYsIDB4MDAwMSwgMHgwMDQwLCAweDJhMDgsIDB4NzBiNCwgMHhhMDZkLCAweDY4MDAsCisJMHhhMDY1LCAweGEwNTUsIDB4Nzg5YiwgMHgwMDEwLCAweDZiMGMsIDB4N2JhYSwgMHg2ODA4LCAweGEwNDUsCisJMHg2ZDEwLCAweDY4MDQsIDB4YTA2ZCwgMHhhMDVkLCAweGE4ODYsIDB4MDAwMSwgMHgwMDQwLCAweDJhNGIsCisJMHg2OWJjLCAweDdkYWEsIDB4NzlhYSwgMHg2OGMwLCAweGEwNGQsIDB4NmUxYywgMHgyMDAxLCAweDAwMTAsCisJMHgwMDc4LCAweDJjZDMsIDB4NzA2MCwgMHhhMDA1LCAweDAwYzAsIDB4MmEwOCwgMHgwYzdlLCAweDBkN2UsCisJMHg3MGI0LCAweGEwNmQsIDB4NjgwMCwgMHhhMDY1LCAweGEwNTUsIDB4Nzg5YiwgMHgwMDEwLCAweDZiMGMsCisJMHg3YmFhLCAweDY4MDgsIDB4YTA0NSwgMHg2ZDEwLCAweDY4MDQsIDB4YTA2ZCwgMHhhMDVkLCAweGE4ODYsCisJMHgwMDAxLCAweDAwNDAsIDB4MmE2ZSwgMHg2OWJjLCAweDdkYWEsIDB4NzlhYSwgMHg2OGMwLCAweGEwNGQsCisJMHg2ZTFjLCAweDIwMDEsIDB4MDAyMCwgMHgwMDc4LCAweDJjZDMsIDB4MTA3OCwgMHg0M2IwLCAweDAwYzAsCisJMHgyYTA4LCAweDc4MWIsIDB4MDA1YiwgMHg3MGJjLCAweGEwNmQsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsCiAJMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsCi0JMHg3MGE0LCAweDgwMDAsIDB4NzBhNiwgMHg3NGI0LCAweGE0OTAsIDB4MDAwNSwgMHg3MGFjLCAweGEyMDYsCi0JMHgwMGMwLCAweDJkYjMsIDB4NzJhOCwgMHg3MmI2LCAweDI5MDAsIDB4NzA1YSwgMHg2OGJjLCAweDcwNDIsCisJMHg2OGJjLCAweDcwNDIsIDB4YzFiNCwgMHg3MWQ2LCAweDcwYjgsIDB4YTA2NSwgMHg2OGMwLCAweDcwNWEsCiAJMHg3MDAzLCAweDAwMDIsIDB4MmQwMCwgMHg3MDRlLCAweGFkODAsIDB4MDAwOSwgMHg3MDQ2LCAweDAwN2MsCi0JMHg2YmI0LCAweGEzOWQsIDB4MjAwMCwgMHg3YjVhLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsCi0JMHg2Yjk0LCAweDdiZDYsIDB4N2JkZSwgMHg2ZTk4LCAweDdlZDIsIDB4N2VkYSwgMHg3ODFiLCAweDAwNWIsCi0JMHgyOTAwLCAweDcwNWEsIDB4NzIwMiwgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwgMHgyMzAwLCAweGE2MDUsCi0JMHgwMDQwLCAweDJkZWIsIDB4NzBkNCwgMHhhMDg0LCAweDI3MDAsIDB4YTA4NiwgMHgyMzAwLCAweDAwYzAsCi0JMHgyZGU1LCAweDIwMDksIDB4MDAwMCwgMHgwMDc4LCAweDJkZTcsIDB4MjAwOSwgMHgwMDAxLCAweGEyODQsCi0JMHgwMDBmLCAweDEwNzksIDB4MmRlZiwgMHhhZDgwLCAweDAwMDksIDB4NzA0NiwgMHgwMDdjLCAweDJkZjcsCi0JMHg0OGJkLCAweDQ4YmQsIDB4NDhhYSwgMHg0OGJkLCAweDJkZjcsIDB4MmRmNywgMHgyZGY3LCAweDEwNzgsCi0JMHgyOTZiLCAweDc4MDgsIDB4YTA4NCwgMHhmZmZkLCAweDc4MGEsIDB4MTA3OCwgMHgyOTVlLCAweDBmN2UsCi0JMHgyMDc5LCAweDRlMDAsIDB4NzhhYywgMHgwZjdmLCAweGQwODQsIDB4MDA0MCwgMHgyZTIxLCAweDcwNjQsCi0JMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwgMHgyZTBmLCAweDcwNjYsIDB4MDA3OCwgMHgyZWY4LCAweDcwNjQsCi0JMHhhMDg2LCAweDAwMDUsIDB4MDBjMCwgMHgyZTFmLCAweDcwN2MsIDB4MjA2OCwgMHg2ODFiLCAweDAwMDQsCi0JMHg2ODE3LCAweDAwMDAsIDB4NjgyMCwgMHhhMDg0LCAweDAwZmYsIDB4YzA5ZCwgMHg2ODIyLCAweDcwNjcsCi0JMHgwMDAwLCAweDcwYTcsIDB4MDAwMCwgMHg3MGE4LCAweDcwYjIsIDB4NzBiNiwgMHgxMDc4LCAweDJhYmEsCi0JMHgxNTdlLCAweDIwMTEsIDB4MDAwNCwgMHg3MTY0LCAweGExODYsIDB4MDAwMSwgMHgwMDQwLCAweDJlNDEsCi0JMHhhMTg2LCAweDAwMDcsIDB4MDBjMCwgMHgyZTM4LCAweDcwMWYsIDB4MDAwNSwgMHgwMDc4LCAweDJlNDEsCi0JMHg3MDFmLCAweDAwMDEsIDB4NzA2NywgMHgwMDAwLCAweDcwZDQsIDB4YzBkZCwgMHg3MGQ2LCAweDAwNzgsCi0JMHgyZTQzLCAweDcwNjcsIDB4MDAwMCwgMHgyMDAxLCAweDRlMGEsIDB4MjAwNCwgMHhhMDg0LCAweDAwZmYsCi0JMHhhMDg2LCAweDAwMTgsIDB4MDA0MCwgMHgyZTUzLCAweDcwMTgsIDB4NzAxNiwgMHhhMDA1LCAweDAwYzAsCi0JMHgyZTUzLCAweDcwYTcsIDB4MDAwMSwgMHgwNjdlLCAweDEwNzgsIDB4NDU4NiwgMHgyMGE5LCAweDAwMTAsCi0JMHgyMDM5LCAweDAwMDAsIDB4MTA3OCwgMHg0MGY4LCAweGE3YjgsIDB4MDEwMCwgMHgwMGYwLCAweDJlNWEsCi0JMHgwNjdmLCAweDcwMDAsIDB4MDA3OSwgMHgyZTY0LCAweDJlOWUsIDB4MmU3OSwgMHgyZTc5LCAweDJlNmUsCi0JMHgyZTllLCAweDJlOWUsIDB4MmU5ZSwgMHgyZTZjLCAweDEwNzgsIDB4Mjk2YiwgMHg3MDYwLCAweGEwMDUsCi0JMHgwMDQwLCAweDJlOWUsIDB4YWQwNiwgMHgwMGMwLCAweDJlNzksIDB4NjgwMCwgMHg3MDYyLCAweDAwNzgsCi0JMHgyZThiLCAweDY4MjAsIDB4ZDA4NCwgMHgwMGMwLCAweDJlODcsIDB4NmYxNCwgMHgxMDc4LCAweDQxZmUsCi0JMHg2MDA4LCAweGMwZDQsIDB4NjAwYSwgMHgxMDc4LCAweDNkZDAsIDB4MDA3OCwgMHgyZThiLCAweDcwNWMsCi0JMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwgMHhhNjg0LCAweDVmMDAsIDB4NjgxZSwgMHg2ODE4LCAweGQwZmMsCi0JMHgwMDQwLCAweDJlOTMsIDB4NmExYSwgMHg2ODE3LCAweDAwMDAsIDB4NjgyYiwgMHgwMDAwLCAweDY4MjAsCi0JMHhhMDg0LCAweDAwZmYsIDB4YzA5ZCwgMHg2ODIyLCAweDEwNzgsIDB4MjAyYywgMHhiMjg0LCAweDA0MDAsCi0JMHgwMDQwLCAweDJlYTYsIDB4MjAyMSwgMHg5NWQwLCAweDAwNzgsIDB4MmVhOCwgMHgyMDIxLCAweDk0YzAsCi0JMHgxMDc4LCAweDJlZmQsIDB4YjI4NCwgMHgwNDAwLCAweDAwNDAsIDB4MmViMiwgMHgyMDIxLCAweDRlOTgsCi0JMHgwMDc4LCAweDJlYjQsIDB4MjAyMSwgMHg0ZTU4LCAweDEwNzgsIDB4MmVmZCwgMHgyMGE5LCAweDAxMDEsCi0JMHhiMjg0LCAweDA0MDAsIDB4MDA0MCwgMHgyZWMwLCAweDIwMjEsIDB4OTRkMCwgMHgwMDc4LCAweDJlYzIsCi0JMHgyMDIxLCAweDkzYzAsIDB4MTA3OCwgMHgyZWZkLCAweDg0MjAsIDB4MDBmMCwgMHgyZWMyLCAweGIyODQsCi0JMHgwMzAwLCAweDAwNDAsIDB4MmVjZiwgMHgyMDYxLCAweDUzYzAsIDB4MDA3OCwgMHgyZWQxLCAweDIwNjEsCi0JMHg3M2MwLCAweDIwMjEsIDB4MDAwMiwgMHgyMGE5LCAweDAxMDAsIDB4NjExMCwgMHg4MWZmLCAweDAwNDAsCi0JMHgyZWVlLCAweDYwMTgsIDB4MDE3ZSwgMHgwMDdlLCAweDIwMTEsIDB4NGUwMiwgMHgyMjBjLCAweGExMDIsCi0JMHgyMDEyLCAweDAwN2YsIDB4MDE3ZiwgMHhhMTAyLCAweDAwNTAsIDB4MmVlZSwgMHg2MDEyLCAweDAwYzAsCi0JMHgyZWVlLCAweDIwMTEsIDB4NGUwNCwgMHgyMjA0LCAweGMwYTUsIDB4MjAxMiwgMHg2MDFiLCAweDAwMDAsCi0JMHhhY2UwLCAweDAwMTAsIDB4MDBmMCwgMHgyZWQ1LCAweDg0MjEsIDB4MDBjMCwgMHgyZWQzLCAweDE1N2YsCi0JMHg3MDAzLCAweDAwMDAsIDB4NzA0ZiwgMHgwMDAwLCAweDAwN2MsIDB4MDQ3ZSwgMHgyNDA0LCAweGEwMDUsCi0JMHgwMDQwLCAweDJmMTgsIDB4MjA2OCwgMHg2ODAwLCAweDAwN2UsIDB4NmExYSwgMHg2ODE3LCAweDAwMDAsCisJMHgxMDc4LCAweDQzYjAsIDB4MDBjMCwgMHgyYWEwLCAweDc4MWIsIDB4MDA0NywgMHg3MDAzLCAweDAwMDQsCisJMHgwMDdjLCAweDEwNzgsIDB4NDNiMCwgMHgwMGMwLCAweDJhYWIsIDB4MjAxMSwgMHgwMDBjLCAweDEwNzgsCisJMHgyYWQyLCAweDcwMDMsIDB4MDAwNCwgMHgwMDdjLCAweDEwNzgsIDB4NDNiMCwgMHgwMGMwLCAweDJhYjYsCisJMHgyMDExLCAweDAwMDYsIDB4MTA3OCwgMHgyYWQyLCAweDcwMDMsIDB4MDAwNCwgMHgwMDdjLCAweDEwNzgsCisJMHg0M2IwLCAweDAwYzAsIDB4MmFjMSwgMHgyMDExLCAweDAwMGQsIDB4MTA3OCwgMHgyYWQyLCAweDcwMDMsCisJMHgwMDA0LCAweDAwN2MsIDB4MTA3OCwgMHg0M2IwLCAweDAwYzAsIDB4MmFkMSwgMHgyMDExLCAweDAwMDYsCisJMHgxMDc4LCAweDJhZDIsIDB4NzA3YywgMHg3MDdmLCAweDAwMDAsIDB4MjA2OCwgMHg3MDRlLCAweDcwMDMsCisJMHgwMDAxLCAweDAwN2MsIDB4NzE3NCwgMHhjMWZjLCAweDgxMDcsIDB4Nzg4MiwgMHg3ODliLCAweDAwMTAsCisJMHhhMjg2LCAweDAwMGMsIDB4MDBjMCwgMHgyYWUxLCAweDdhYWEsIDB4MjAwMSwgMHgwMDAxLCAweDAwNzgsCisJMHgyYWY2LCAweGExOGMsIDB4MDAxZiwgMHhhMThkLCAweDAwYzAsIDB4NzlhYSwgMHhhMjg2LCAweDAwMGQsCisJMHgwMDQwLCAweDJhZWYsIDB4N2FhYSwgMHgyMDAxLCAweDAwMDIsIDB4MDA3OCwgMHgyYWY2LCAweDc4YWIsCisJMHgwMDIwLCAweDcxNzgsIDB4NzlhYSwgMHg3YWFhLCAweDIwMDEsIDB4MDAwNCwgMHg3ODliLCAweDAwNjAsCisJMHg3OGFhLCAweDc4NWIsIDB4MDAwNCwgMHg3ODFiLCAweDAxMTYsIDB4MTA3OCwgMHg0M2QzLCAweDcwODMsCisJMHgwMDBmLCAweDcwZDQsIDB4ZDBiNCwgMHgwMDQwLCAweDJiMTIsIDB4YzBiNCwgMHg3MGQ2LCAweDBjN2UsCisJMHg3MGI4LCAweGEwNjUsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHg2MDE4LCAweDgwMDEsCisJMHg2MDFhLCAweDBjN2YsIDB4MDA3YywgMHg3MDE0LCAweGEwMDUsIDB4MDBjMCwgMHgyYjIxLCAweDcwZDQsCisJMHhkMGI0LCAweDAwNDAsIDB4MmIyMiwgMHg3MGI4LCAweGFjMDYsIDB4MDBjMCwgMHgyYjIyLCAweDEwNzgsCisJMHgyYjAxLCAweDAwN2MsIDB4MDE3ZSwgMHg3MWE0LCAweGExODYsIDB4MDAwMSwgMHgwMDQwLCAweDJiNTQsCisJMHgwZDdlLCAweDAyN2UsIDB4MjEwMCwgMHgyMDExLCAweDAwMDEsIDB4YTIxMiwgMHg3MGI0LCAweDIwNjgsCisJMHg2ODAwLCAweGFjMDYsIDB4MDA0MCwgMHgyYjNiLCAweDgyMTEsIDB4MDA0MCwgMHgyYjUyLCAweDEwNzgsCisJMHgyYjU2LCAweDAwNzgsIDB4MmIzMCwgMHgwYzdlLCAweDIxMDAsIDB4MjAxMSwgMHgwMDAxLCAweGEyMTIsCisJMHg3MGI0LCAweDIwNjgsIDB4NjgwMCwgMHgyMDYwLCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsCisJMHg4MjExLCAweDAwNDAsIDB4MmI0ZiwgMHgxMDc4LCAweDJiNTYsIDB4MDA3OCwgMHgyYjQyLCAweDcwYTcsCisJMHgwMDAxLCAweDBjN2YsIDB4MDI3ZiwgMHgwZDdmLCAweDAxN2YsIDB4MDA3YywgMHhhZGU4LCAweDAwMDUsCisJMHg3MGFjLCAweGFkMDYsIDB4MDBjMCwgMHgyYjVlLCAweDcwYTgsIDB4MjA2OCwgMHgwMDdjLCAweDEwNzgsCisJMHg0M2IwLCAweDAwYzAsIDB4MmEwOCwgMHg3MDdjLCAweDIwNjgsIDB4Nzc3NCwgMHgxMDc4LCAweDQyNGUsCisJMHgyYzUwLCAweDEwNzgsIDB4NDQ5MiwgMHg3ODliLCAweDAwMTAsIDB4NjgxNCwgMHhhMDg0LCAweDAwMWYsCisJMHhjMGJkLCAweDc4YWEsIDB4NmUxYywgMHgyMDQxLCAweDAwMDEsIDB4MjAwMSwgMHgwMDA0LCAweDAwNzgsCisJMHgyY2Q5LCAweDEwNzgsIDB4NDNiMCwgMHgwMGMwLCAweDJhMDgsIDB4Nzg5YiwgMHgwMDEwLCAweDcwNjAsCisJMHgyMDY4LCAweDZmMTQsIDB4NzBkNCwgMHhkMGI0LCAweDAwNDAsIDB4MmI5MywgMHhjMGI0LCAweDcwZDYsCisJMHgwYzdlLCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsCisJMHg4MDAxLCAweDYwMWEsIDB4MGM3ZiwgMHgxMDc4LCAweDQyNGUsIDB4MmM1MCwgMHgxMDc4LCAweDQ0OTIsCisJMHg2ODI0LCAweGEwMDUsIDB4MDA0MCwgMHgyYmE0LCAweGEwODIsIDB4MDAwNiwgMHgwMDQ4LCAweDJiYTIsCisJMHgwMDc4LCAweDJiYTQsIDB4NjgyNywgMHgwMDA1LCAweDY4MTQsIDB4YTA4NCwgMHgwMDFmLCAweGMwYmQsCisJMHg3OGFhLCAweDIwMzEsIDB4MDAyMCwgMHgyMDQxLCAweDAwMDEsIDB4MjAwMSwgMHgwMDAzLCAweDAwNzgsCisJMHgyY2Q5LCAweGMyOGQsIDB4NzJkNiwgMHg3MmMwLCAweGEyMDAsIDB4YTAxNSwgMHg3MTU0LCAweDgxMDgsCisJMHhhMTJhLCAweDAwNDgsIDB4MmJiYywgMHg3MWMwLCAweDIxNjQsIDB4NjUwNCwgMHg4NWZmLCAweDAwYzAsCisJMHgyYmQzLCAweDcxNTYsIDB4ODQyMSwgMHgwMGMwLCAweDJiYjcsIDB4NzBkNCwgMHhkMDhjLCAweDAwNDAsCisJMHgyYmNmLCAweDcwZDAsIDB4YTAwNSwgMHgwMGMwLCAweDJiY2YsIDB4NzBkMywgMHgwMDBhLCAweDAwN2MsCisJMHgyMjAwLCAweDAwNzgsIDB4MmJjMSwgMHg3MGQ0LCAweGMwOGMsIDB4NzBkNiwgMHg3MGQzLCAweDAwMDAsCisJMHg2MDM0LCAweGEwMDUsIDB4MDBjMCwgMHgyYmQwLCAweDY3MDgsIDB4YTc4NCwgMHgwNzNmLCAweDAwNDAsCisJMHgyYzAyLCAweGQ3ZDQsIDB4MDBjMCwgMHgyYmQwLCAweGE3ODQsIDB4MDAyMSwgMHgwMGMwLCAweDJiZDAsCisJMHhhNzg0LCAweDAwMDIsIDB4MDA0MCwgMHgyYmYzLCAweGE3ODQsIDB4MDAwNCwgMHgwMDQwLCAweDJiZDAsCisJMHhhN2JjLCAweGZmZmIsIDB4NjcwYSwgMHhhNzg0LCAweDAyMTgsIDB4MDBjMCwgMHgyYmQwLCAweGE3ODQsCisJMHgwMTAwLCAweDAwNDAsIDB4MmMwMiwgMHg2MDE4LCAweGEwMDUsIDB4MDBjMCwgMHgyYmQwLCAweGE3YmMsCisJMHhmZWZmLCAweDY3MGEsIDB4MjU2OCwgMHg2ODIzLCAweDAwMDAsIDB4NmUxYywgMHhhNjg0LCAweDAwMGUsCisJMHg2MzE4LCAweDAwNDAsIDB4MmMxMywgMHg2MDFjLCAweGEzMDIsIDB4MDA0OCwgMHgyYzE2LCAweDAwNDAsCisJMHgyYzE2LCAweDAwNzgsIDB4MmJkMCwgMHg4M2ZmLCAweDAwYzAsIDB4MmJkMCwgMHgyZDU4LCAweDJjNTAsCisJMHg3MTU2LCAweGQ3YmMsIDB4MDBjMCwgMHgyYzFmLCAweDcwMjgsIDB4NjAyMiwgMHg2MDNhLCAweGM3YmMsCisJMHg2NzBhLCAweDY4YzAsIDB4YTA2NSwgMHhhMDRkLCAweDYxMDAsIDB4MmE2MCwgMHgyMDQxLCAweDAwMDEsCisJMHg2YjE0LCAweGEzOWMsIDB4MDAxZiwgMHhhMzlkLCAweDAwYzAsIDB4ZDFmYywgMHgwMDQwLCAweDJjMzMsCisJMHhkNjg0LCAweDAwNDAsIDB4MmMzNSwgMHhhMzljLCAweGZmYmYsIDB4ZDZhNCwgMHgwMDQwLCAweDJjM2EsCisJMHhhMzlkLCAweDAwMjAsIDB4YTY4NCwgMHgwMDBlLCAweDAwYzAsIDB4MmM4NSwgMHhjN2E1LCAweDY3MGEsCisJMHgyYzAwLCAweDY4YzYsIDB4NzdhNCwgMHhhNzg2LCAweDAwMDEsIDB4MDBjMCwgMHgyYzU5LCAweDcwZDQsCisJMHhkMGI0LCAweDAwYzAsIDB4MmM1OSwgMHg3MDAwLCAweGEwODIsIDB4MDAwMiwgMHgwMGM4LCAweDJjNTksCisJMHg3ODMwLCAweGQwYmMsIDB4MDBjMCwgMHgyYzU5LCAweDc4OWIsIDB4MDAxMCwgMHg3YmFhLCAweDAwNzgsCisJMHgyY2QxLCAweDg3MzksIDB4NzdhNiwgMHgyNzUwLCAweDc3YjAsIDB4YTdiMCwgMHgwMDA1LCAweDcwYWMsCisJMHhhNjA2LCAweDAwYzAsIDB4MmM2NCwgMHg3NmE4LCAweDc2YjIsIDB4MmMzYSwgMHg4NzM4LCAweDJkM2EsCisJMHg4NzM4LCAweDI4M2EsIDB4ODczOCwgMHgyMzNhLCAweDg3MzgsIDB4MjUzYSwgMHg3ODMwLCAweGQwYmMsCisJMHgwMDQwLCAweDJjN2MsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTEsIDB4MzAzZCwgMHg3MGQ0LCAweGEwODQsCisJMHgzMDNkLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkwLCAweGFhZDUsIDB4MDAwMCwgMHgwMDQwLCAweDJjODQsCisJMHg4NDIxLCAweDIyMDAsIDB4MDBjMCwgMHgyYmI2LCAweDAwN2MsIDB4ZDFkYywgMHgwMDQwLCAweDNlNDksCisJMHgyMDI5LCAweDAwMjAsIDB4ZDY5YywgMHgwMGMwLCAweDJjOTIsIDB4ODUyOCwgMHhkNjhjLCAweDAwYzAsCisJMHgyYzkyLCAweDg1MjgsIDB4ODg0MCwgMHg2ZjE0LCAweDYxMGMsIDB4ODEwOCwgMHhhMThjLCAweDAwZmYsCisJMHg3MGNjLCAweGExNjAsIDB4MmM2NCwgMHg4Y2ZmLCAweDAwNDAsIDB4MmNiMSwgMHg2MDE0LCAweGE3MDYsCisJMHgwMGMwLCAweDJjOWEsIDB4NjBiOCwgMHg4MDAxLCAweDYwYmEsIDB4MDBjMCwgMHgyYzk1LCAweDJhNjAsCisJMHg2MDA4LCAweGEwODUsIDB4MDEwMCwgMHg2MDBhLCAweDIyMDAsIDB4ODQyMSwgMHgwMGMwLCAweDJiYjYsCisJMHgwMDdjLCAweDJhNjAsIDB4NjEwZSwgMHg2OWJlLCAweDJjMDAsIDB4NjhjNiwgMHg4ODQwLCAweDYwMDgsCisJMHhjMGQ1LCAweDYwMGEsIDB4NzdhNCwgMHhhNzg2LCAweDAwMDEsIDB4MDBjMCwgMHgyYzU5LCAweDcwZDQsCisJMHhkMGI0LCAweDAwYzAsIDB4MmM1OSwgMHg3MDAwLCAweGEwODIsIDB4MDAwMiwgMHgwMGM4LCAweDJjNTksCisJMHg3ODMwLCAweGQwYmMsIDB4MDBjMCwgMHgyYzU5LCAweDc4OWIsIDB4MDAxMCwgMHg3YmFhLCAweDdkYWEsCisJMHg3OWFhLCAweDIwMDEsIDB4MDAwMiwgMHgwMDdlLCAweDYwMTgsIDB4ODAwMCwgMHg2MDFhLCAweDAwNzgsCisJMHgyY2RhLCAweDAwN2UsIDB4Mjk2MCwgMHg2MTA0LCAweDJhNjAsIDB4YTE4NCwgMHgwMDE4LCAweDAwNDAsCisJMHgyY2Y2LCAweGExODQsIDB4MDAxMCwgMHgwMDQwLCAweDJjZTksIDB4MTA3OCwgMHg0MDVlLCAweDAwYzAsCisJMHgyZDFiLCAweGExODQsIDB4MDAwOCwgMHgwMDQwLCAweDJjZjYsIDB4NjlhMCwgMHhhMTg0LCAweDA2MDAsCisJMHgwMGMwLCAweDJjZjYsIDB4MTA3OCwgMHgzZjNlLCAweDAwNzgsIDB4MmQxYiwgMHg2OWEwLCAweGExODQsCisJMHgxZTAwLCAweDAwNDAsIDB4MmQyNiwgMHhhMTg0LCAweDA4MDAsIDB4MDA0MCwgMHgyZDBmLCAweDBjN2UsCisJMHgyOTYwLCAweDYwMDAsIDB4YTA4NSwgMHgyMDAwLCAweDYwMDIsIDB4NjEwNCwgMHhhMThkLCAweDAwMTAsCisJMHg2MTA2LCAweDBjN2YsIDB4MTA3OCwgMHg0MDVlLCAweDAwYzAsIDB4MmQxYiwgMHg2OWEwLCAweGExODQsCisJMHgwMjAwLCAweDAwNDAsIDB4MmQxNywgMHgxMDc4LCAweDNmYTEsIDB4MDA3OCwgMHgyZDFiLCAweGExODQsCisJMHgwNDAwLCAweDAwYzAsIDB4MmNmMiwgMHg2OWEwLCAweGExODQsIDB4MTAwMCwgMHgwMDQwLCAweDJkMjYsCisJMHg2OTE0LCAweGExOGMsIDB4ZmYwMCwgMHg4MTBmLCAweDEwNzgsIDB4MjdlNiwgMHgwMjdmLCAweGE2OGMsCisJMHgwMGUwLCAweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDJkMzMsIDB4YTA4NiwgMHgwMDYwLCAweDAwYzAsCisJMHgyZDMzLCAweGExOGQsIDB4NDAwMCwgMHhhMThkLCAweDAxMDQsIDB4NjliNiwgMHg3ODliLCAweDAwNjAsCisJMHgyODAwLCAweDc4YWEsIDB4NjgxOCwgMHhjMGZkLCAweDY4MWEsIDB4ZDZiYywgMHgwMDQwLCAweDJkNGUsCisJMHhjMGZjLCAweDcwODcsIDB4MDAwMCwgMHhhMDhhLCAweDAwMGQsIDB4MDA1MCwgMHgyZDRjLCAweGEwOGEsCisJMHgwMDBjLCAweDcxODYsIDB4MjAwMSwgMHgwMDBjLCAweDgwMGMsIDB4NzE4YSwgMHg3OGFhLCAweDM1MTgsCisJMHgzMzQwLCAweDM0MjgsIDB4ODAwMCwgMHg4MGFjLCAweGFmODAsIDB4MDAyYiwgMHgyMGEwLCAweDc4OWIsCisJMHgwMDAwLCAweGFkODAsIDB4MDAwYiwgMHgyMDk4LCAweDUzYTYsIDB4MjNhOCwgMHgyODk4LCAweDI1YTAsCisJMHhhMjg2LCAweDAwMjAsIDB4MDBjMCwgMHgyZDg2LCAweDcwZDQsIDB4YzBiNSwgMHg3MGQ2LCAweDJjMDAsCisJMHg3MGJhLCAweDJkMDAsIDB4NzBiZSwgMHg2ODE0LCAweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweGEyODYsCisJMHgwMDAyLCAweDAwNDAsIDB4MmRiYywgMHg3MGE0LCAweDgwMDAsIDB4NzBhNiwgMHg3NGI0LCAweGE0OTgsCisJMHgwMDA1LCAweDcwYWMsIDB4YTMwNiwgMHgwMGMwLCAweDJkN2UsIDB4NzNhOCwgMHg3M2I2LCAweGEyODYsCisJMHgwMDEwLCAweDAwNDAsIDB4MmEwOCwgMHgwZDdmLCAweDBjN2YsIDB4MDA3YywgMHg3MDAwLCAweGEwMDUsCisJMHgwMGMwLCAweDJkNjQsIDB4YTI4NiwgMHgwMDAyLCAweDAwYzAsIDB4MmRkNiwgMHgxMDc4LCAweDQzYjAsCisJMHgwMGMwLCAweDJkNjQsIDB4NjgxNCwgMHhjMGZjLCAweDgwMDcsIDB4Nzg4MiwgMHgyMDkxLCAweDgwMDAsCisJMHg3ODFiLCAweDAwNWIsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsCisJMHg3OGQyLCAweDc4ZGEsIDB4MjA5MSwgMHg4MDAxLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDEyN2UsCisJMHgwZDdlLCAweDBjN2UsIDB4NzBkNCwgMHhhMDg0LCAweDI3MDAsIDB4MjA5MCwgMHgwYzdmLCAweDBkN2YsCisJMHgxMjdmLCAweDI5MDAsIDB4NzA1YSwgMHg2OGJjLCAweDcwNDIsIDB4NzAwMywgMHgwMDAyLCAweDJkMDAsCisJMHg3MDRlLCAweGFkODAsIDB4MDAwOSwgMHg3MDQ2LCAweDc4MzAsIDB4ZDBiYywgMHgwMDQwLCAweDJkYzgsCisJMHgyMDkxLCAweDMwM2QsIDB4NzBkNCwgMHhhMDg0LCAweDMwM2QsIDB4MjA5MSwgMHg4MDAwLCAweDIwOTAsCisJMHg3MGE0LCAweGEwMDUsIDB4MDBjMCwgMHgyZGNkLCAweDAwN2MsIDB4ODQyMSwgMHgwMDQwLCAweDJkY2MsCisJMHg3MjUwLCAweDcwYzAsIDB4YTIwMCwgMHhhMDE1LCAweDAwNzgsIDB4MmJiNiwgMHhhMjg2LCAweDAwMTAsCisJMHgwMGMwLCAweDJlMDcsIDB4MTA3OCwgMHg0M2IwLCAweDAwYzAsIDB4MmQ2NCwgMHg2ODE0LCAweGMwZmMsCisJMHg4MDA3LCAweDc4ODIsIDB4NzgxYiwgMHgwMDViLCAweDY4YjQsIDB4Nzg1YSwgMHg2ODk0LCAweDc4ZDYsCisJMHg3OGRlLCAweDY4OTgsIDB4NzhkMiwgMHg3OGRhLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDcwYTQsCisJMHg4MDAwLCAweDcwYTYsIDB4NzRiNCwgMHhhNDkwLCAweDAwMDUsIDB4NzBhYywgMHhhMjA2LCAweDAwYzAsCisJMHgyZGZhLCAweDcyYTgsIDB4NzJiNiwgMHgyOTAwLCAweDcwNWEsIDB4NjhiYywgMHg3MDQyLCAweDcwMDMsCisJMHgwMDAyLCAweDJkMDAsIDB4NzA0ZSwgMHhhZDgwLCAweDAwMDksIDB4NzA0NiwgMHgwMDdjLCAweDZiYjQsCisJMHhhMzlkLCAweDIwMDAsIDB4N2I1YSwgMHg2ODE0LCAweGMwZmMsIDB4ODAwNywgMHg3ODgyLCAweDZiOTQsCisJMHg3YmQ2LCAweDdiZGUsIDB4NmU5OCwgMHg3ZWQyLCAweDdlZGEsIDB4NzgxYiwgMHgwMDViLCAweDI5MDAsCisJMHg3MDVhLCAweDcyMDIsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsIDB4MjMwMCwgMHhhNjA1LCAweDAwNDAsCisJMHgyZTMyLCAweDcwZDQsIDB4YTA4NCwgMHgyNzAwLCAweGEwODYsIDB4MjMwMCwgMHgwMGMwLCAweDJlMmMsCisJMHgyMDA5LCAweDAwMDAsIDB4MDA3OCwgMHgyZTJlLCAweDIwMDksIDB4MDAwMSwgMHhhMjg0LCAweDAwMGYsCisJMHgxMDc5LCAweDJlMzgsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsIDB4MmQwMCwgMHg3MDRlLCAweDAwN2MsCisJMHgyZTQwLCAweDQ5M2YsIDB4NDkzZiwgMHg0OTJjLCAweDQ5M2YsIDB4MmU0MCwgMHgyZTQwLCAweDJlNDAsCisJMHgxMDc4LCAweDI5YjIsIDB4NzgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NzgwYSwgMHgxMDc4LCAweDI5YTUsCisJMHgwZjdlLCAweDIwNzksIDB4NGYwMCwgMHg3OGFjLCAweDBmN2YsIDB4ZDA4NCwgMHgwMDQwLCAweDJlNmEsCisJMHg3MDY0LCAweGEwODYsIDB4MDAwMSwgMHgwMGMwLCAweDJlNTgsIDB4NzA2NiwgMHgwMDc4LCAweDJmNDEsCisJMHg3MDY0LCAweGEwODYsIDB4MDAwNSwgMHgwMGMwLCAweDJlNjgsIDB4NzA3YywgMHgyMDY4LCAweDY4MWIsCisJMHgwMDA0LCAweDY4MTcsIDB4MDAwMCwgMHg2ODIwLCAweGEwODQsIDB4MDBmZiwgMHhjMDlkLCAweDY4MjIsCisJMHg3MDY3LCAweDAwMDAsIDB4NzBhNywgMHgwMDAwLCAweDcwYTgsIDB4NzBiMiwgMHg3MGI2LCAweDEwNzgsCisJMHgyYjAxLCAweDE1N2UsIDB4MjAxMSwgMHgwMDA0LCAweDcxNjQsIDB4YTE4NiwgMHgwMDAxLCAweDAwNDAsCisJMHgyZThhLCAweGExODYsIDB4MDAwNywgMHgwMGMwLCAweDJlODEsIDB4NzAxZiwgMHgwMDA1LCAweDAwNzgsCisJMHgyZThhLCAweDcwMWYsIDB4MDAwMSwgMHg3MDY3LCAweDAwMDAsIDB4NzBkNCwgMHhjMGRkLCAweDcwZDYsCisJMHgwMDc4LCAweDJlOGMsIDB4NzA2NywgMHgwMDAwLCAweDIwMDEsIDB4NGYwYSwgMHgyMDA0LCAweGEwODQsCisJMHgwMGZmLCAweGEwODYsIDB4MDAxOCwgMHgwMDQwLCAweDJlOWMsIDB4NzAxOCwgMHg3MDE2LCAweGEwMDUsCisJMHgwMGMwLCAweDJlOWMsIDB4NzBhNywgMHgwMDAxLCAweDA2N2UsIDB4MTA3OCwgMHg0NWQ2LCAweDIwYTksCisJMHgwMDEwLCAweDIwMzksIDB4MDAwMCwgMHgxMDc4LCAweDQxNDgsIDB4YTdiOCwgMHgwMTAwLCAweDAwZjAsCisJMHgyZWEzLCAweDA2N2YsIDB4NzAwMCwgMHgwMDc5LCAweDJlYWQsIDB4MmVlNywgMHgyZWMyLCAweDJlYzIsCisJMHgyZWI3LCAweDJlZTcsIDB4MmVlNywgMHgyZWU3LCAweDJlYjUsIDB4MTA3OCwgMHgyOWIyLCAweDcwNjAsCisJMHhhMDA1LCAweDAwNDAsIDB4MmVlNywgMHhhZDA2LCAweDAwYzAsIDB4MmVjMiwgMHg2ODAwLCAweDcwNjIsCisJMHgwMDc4LCAweDJlZDQsIDB4NjgyMCwgMHhkMDg0LCAweDAwYzAsIDB4MmVkMCwgMHg2ZjE0LCAweDEwNzgsCisJMHg0MjRlLCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDEwNzgsIDB4M2UxOSwgMHgwMDc4LCAweDJlZDQsCisJMHg3MDVjLCAweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweGE2ODQsIDB4NWYwMCwgMHg2ODFlLCAweDY4MTgsCisJMHhkMGZjLCAweDAwNDAsIDB4MmVkYywgMHg2YTFhLCAweDY4MTcsIDB4MDAwMCwgMHg2ODJiLCAweDAwMDAsCisJMHg2ODIwLCAweGEwODQsIDB4MDBmZiwgMHhjMDlkLCAweDY4MjIsIDB4MTA3OCwgMHgyMDczLCAweGIyODQsCisJMHgwNDAwLCAweDAwNDAsIDB4MmVlZiwgMHgyMDIxLCAweDk2ZDAsIDB4MDA3OCwgMHgyZWYxLCAweDIwMjEsCisJMHg5NWMwLCAweDEwNzgsIDB4MmY0NiwgMHhiMjg0LCAweDA0MDAsIDB4MDA0MCwgMHgyZWZiLCAweDIwMjEsCisJMHg0Zjk4LCAweDAwNzgsIDB4MmVmZCwgMHgyMDIxLCAweDRmNTgsIDB4MTA3OCwgMHgyZjQ2LCAweDIwYTksCisJMHgwMTAxLCAweGIyODQsIDB4MDQwMCwgMHgwMDQwLCAweDJmMDksIDB4MjAyMSwgMHg5NWQwLCAweDAwNzgsCisJMHgyZjBiLCAweDIwMjEsIDB4OTRjMCwgMHgxMDc4LCAweDJmNDYsIDB4ODQyMCwgMHgwMGYwLCAweDJmMGIsCisJMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgyZjE4LCAweDIwNjEsIDB4NTRjMCwgMHgwMDc4LCAweDJmMWEsCisJMHgyMDYxLCAweDc0YzAsIDB4MjAyMSwgMHgwMDAyLCAweDIwYTksIDB4MDEwMCwgMHg2MTEwLCAweDgxZmYsCisJMHgwMDQwLCAweDJmMzcsIDB4NjAxOCwgMHgwMTdlLCAweDAwN2UsIDB4MjAxMSwgMHg0ZjAyLCAweDIyMGMsCisJMHhhMTAyLCAweDIwMTIsIDB4MDA3ZiwgMHgwMTdmLCAweGExMDIsIDB4MDA1MCwgMHgyZjM3LCAweDYwMTIsCisJMHgwMGMwLCAweDJmMzcsIDB4MjAxMSwgMHg0ZjA0LCAweDIyMDQsIDB4YzBhNSwgMHgyMDEyLCAweDYwMWIsCisJMHgwMDAwLCAweGFjZTAsIDB4MDAxMCwgMHgwMGYwLCAweDJmMWUsIDB4ODQyMSwgMHgwMGMwLCAweDJmMWMsCisJMHgxNTdmLCAweDcwMDMsIDB4MDAwMCwgMHg3MDRmLCAweDAwMDAsIDB4MDA3YywgMHgwNDdlLCAweDI0MDQsCisJMHhhMDA1LCAweDAwNDAsIDB4MmY2MSwgMHgyMDY4LCAweDY4MDAsIDB4MDA3ZSwgMHg2YTFhLCAweDY4MTcsCisJMHgwMDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2OGI0LCAweGEwODQsIDB4NWYwMCwgMHg2ODFlLCAweDY4MjAsCisJMHhhMDg0LCAweDAwZmYsIDB4YzA5ZCwgMHg2ODIyLCAweDEwNzgsIDB4MjA3MywgMHgwMDdmLCAweDAwNzgsCisJMHgyZjQ4LCAweDA0N2YsIDB4MjAyMywgMHgwMDAwLCAweDAwN2MsIDB4YTI4MiwgMHgwMDAzLCAweDAwNTAsCisJMHgyZjZiLCAweDEwNzgsIDB4MjliMiwgMHgyMzAwLCAweDAwNzksIDB4MmY2ZSwgMHgyZjcxLCAweDJmZmMsCisJMHgzMDE5LCAweGEyODIsIDB4MDAwMiwgMHgwMDQwLCAweDJmNzcsIDB4MTA3OCwgMHgyOWIyLCAweDcwNjQsCisJMHg3MDY3LCAweDAwMDAsIDB4NzA4MywgMHgwMDAwLCAweDAwNzksIDB4MmY3ZSwgMHgyZjg2LCAweDJmODYsCisJMHgyZjg4LCAweDJmYzgsIDB4M2U1NSwgMHgyZjg2LCAweDJmYzgsIDB4MmY4NiwgMHgxMDc4LCAweDI5YjIsCisJMHg3Nzc0LCAweDEwNzgsIDB4NDE0OCwgMHg3Nzc0LCAweGE3YmMsIDB4OGYwMCwgMHgxMDc4LCAweDQyNGUsCisJMHg2MDE4LCAweGEwMDUsIDB4MDA0MCwgMHgyZmJmLCAweGQ3ZmMsIDB4MDBjMCwgMHgyZjliLCAweDIwMjEsCisJMHg5NWMwLCAweDAwNzgsIDB4MmY5ZCwgMHgyMDIxLCAweDk2ZDAsIDB4MjAwOSwgMHgwMDA1LCAweDIwMTEsCisJMHgwMDEwLCAweDEwNzgsIDB4MzAzNCwgMHgwMDQwLCAweDJmYmYsIDB4MTU3ZSwgMHgyMGE5LCAweDAxMDEsCisJMHhkN2ZjLCAweDAwYzAsIDB4MmZhZiwgMHgyMDIxLCAweDk0YzAsIDB4MDA3OCwgMHgyZmIxLCAweDIwMjEsCisJMHg5NWQwLCAweDA0N2UsIDB4MjAwOSwgMHgwMDA1LCAweDIwMTEsIDB4MDAxMCwgMHgxMDc4LCAweDMwMzQsCisJMHgwNDdmLCAweDAwNDAsIDB4MmZiZSwgMHg4NDIwLCAweDAwZjAsIDB4MmZiMSwgMHgxNTdmLCAweDg3MzgsCisJMHhhNzg0LCAweDAwMWYsIDB4MDBjMCwgMHgyZjhlLCAweDAwNzgsIDB4MmEwYywgMHgwMDc4LCAweDJhMGMsCisJMHg3Nzc0LCAweDEwNzgsIDB4NDI0ZSwgMHg2MDE4LCAweGEwMDUsIDB4MDA0MCwgMHgyZmZhLCAweGQ3ZmMsCisJMHgwMGMwLCAweDJmZDYsIDB4MjAyMSwgMHg5NWMwLCAweDAwNzgsIDB4MmZkOCwgMHgyMDIxLCAweDk2ZDAsCisJMHgyMDA5LCAweDAwMDUsIDB4MjAxMSwgMHgwMDIwLCAweDEwNzgsIDB4MzAzNCwgMHgwMDQwLCAweDJmZmEsCisJMHgxNTdlLCAweDIwYTksIDB4MDEwMSwgMHhkN2ZjLCAweDAwYzAsIDB4MmZlYSwgMHgyMDIxLCAweDk0YzAsCisJMHgwMDc4LCAweDJmZWMsIDB4MjAyMSwgMHg5NWQwLCAweDA0N2UsIDB4MjAwOSwgMHgwMDA1LCAweDIwMTEsCisJMHgwMDIwLCAweDEwNzgsIDB4MzAzNCwgMHgwNDdmLCAweDAwNDAsIDB4MmZmOSwgMHg4NDIwLCAweDAwZjAsCisJMHgyZmVjLCAweDE1N2YsIDB4MDA3OCwgMHgyYTBjLCAweDIyMDAsIDB4MDA3OSwgMHgyZmZmLCAweDMwMDIsCisJMHgzMDA0LCAweDMwMDQsIDB4MTA3OCwgMHgyOWIyLCAweDIwMDksIDB4MDAxMiwgMHg3MDY0LCAweGEwODYsCisJMHgwMDAyLCAweDAwNDAsIDB4MzAwZCwgMHgyMDA5LCAweDAwMGUsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCisJMHgzMDEyLCAweDY5MWEsIDB4NzA2NywgMHgwMDAwLCAweDcwZDQsIDB4YzBkZCwgMHg3MGQ2LCAweDAwNzgsCisJMHg0MzVkLCAweDIyMDAsIDB4MDA3OSwgMHgzMDFjLCAweDMwMjEsIDB4MzAwNCwgMHgzMDFmLCAweDEwNzgsCisJMHgyOWIyLCAweDEwNzgsIDB4NDVkNiwgMHg3MDAwLCAweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDNkYzcsCisJMHgxMDc4LCAweDNlMzYsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHgxMDc4LCAweDNkYjgsCisJMHgwMDQwLCAweDNkYzcsIDB4MDA3OCwgMHgyYTBjLCAweDI0MDQsIDB4YTAwNSwgMHgwMDQwLCAweDMwNmQsCisJMHgyMDY4LCAweDJkMDQsIDB4MDA3ZSwgMHg2ODE0LCAweGE3MDYsIDB4MDA0MCwgMHgzMDQzLCAweDJkMjAsCisJMHgwMDdmLCAweDAwNzgsIDB4MzAzNSwgMHgwMDdmLCAweDIwMjIsIDB4NjkxYSwgMHg2ODE3LCAweDAwMDAsCiAJMHg2ODJiLCAweDAwMDAsIDB4NjhiNCwgMHhhMDg0LCAweDVmMDAsIDB4NjgxZSwgMHg2ODIwLCAweGEwODQsCi0JMHgwMGZmLCAweGMwOWQsIDB4NjgyMiwgMHgxMDc4LCAweDIwMmMsIDB4MDA3ZiwgMHgwMDc4LCAweDJlZmYsCi0JMHgwNDdmLCAweDIwMjMsIDB4MDAwMCwgMHgwMDdjLCAweGEyODIsIDB4MDAwMywgMHgwMDUwLCAweDJmMjIsCi0JMHgxMDc4LCAweDI5NmIsIDB4MjMwMCwgMHgwMDc5LCAweDJmMjUsIDB4MmYyOCwgMHgyZmIzLCAweDJmZDAsCi0JMHhhMjgyLCAweDAwMDIsIDB4MDA0MCwgMHgyZjJlLCAweDEwNzgsIDB4Mjk2YiwgMHg3MDY0LCAweDcwNjcsCi0JMHgwMDAwLCAweDcwODMsIDB4MDAwMCwgMHgwMDc5LCAweDJmMzUsIDB4MmYzZCwgMHgyZjNkLCAweDJmM2YsCi0JMHgyZjdmLCAweDNlMGMsIDB4MmYzZCwgMHgyZjdmLCAweDJmM2QsIDB4MTA3OCwgMHgyOTZiLCAweDc3NzQsCi0JMHgxMDc4LCAweDQwZjgsIDB4Nzc3NCwgMHhhN2JjLCAweDhmMDAsIDB4MTA3OCwgMHg0MWZlLCAweDYwMTgsCi0JMHhhMDA1LCAweDAwNDAsIDB4MmY3NiwgMHhkN2ZjLCAweDAwYzAsIDB4MmY1MiwgMHgyMDIxLCAweDk0YzAsCi0JMHgwMDc4LCAweDJmNTQsIDB4MjAyMSwgMHg5NWQwLCAweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMTAsCi0JMHgxMDc4LCAweDJmZWIsIDB4MDA0MCwgMHgyZjc2LCAweDE1N2UsIDB4MjBhOSwgMHgwMTAxLCAweGQ3ZmMsCi0JMHgwMGMwLCAweDJmNjYsIDB4MjAyMSwgMHg5M2MwLCAweDAwNzgsIDB4MmY2OCwgMHgyMDIxLCAweDk0ZDAsCi0JMHgwNDdlLCAweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMTAsIDB4MTA3OCwgMHgyZmViLCAweDA0N2YsCi0JMHgwMDQwLCAweDJmNzUsIDB4ODQyMCwgMHgwMGYwLCAweDJmNjgsIDB4MTU3ZiwgMHg4NzM4LCAweGE3ODQsCi0JMHgwMDFmLCAweDAwYzAsIDB4MmY0NSwgMHgwMDc4LCAweDI5YzUsIDB4MDA3OCwgMHgyOWM1LCAweDc3NzQsCi0JMHgxMDc4LCAweDQxZmUsIDB4NjAxOCwgMHhhMDA1LCAweDAwNDAsIDB4MmZiMSwgMHhkN2ZjLCAweDAwYzAsCi0JMHgyZjhkLCAweDIwMjEsIDB4OTRjMCwgMHgwMDc4LCAweDJmOGYsIDB4MjAyMSwgMHg5NWQwLCAweDIwMDksCi0JMHgwMDA1LCAweDIwMTEsIDB4MDAyMCwgMHgxMDc4LCAweDJmZWIsIDB4MDA0MCwgMHgyZmIxLCAweDE1N2UsCi0JMHgyMGE5LCAweDAxMDEsIDB4ZDdmYywgMHgwMGMwLCAweDJmYTEsIDB4MjAyMSwgMHg5M2MwLCAweDAwNzgsCi0JMHgyZmEzLCAweDIwMjEsIDB4OTRkMCwgMHgwNDdlLCAweDIwMDksIDB4MDAwNSwgMHgyMDExLCAweDAwMjAsCi0JMHgxMDc4LCAweDJmZWIsIDB4MDQ3ZiwgMHgwMDQwLCAweDJmYjAsIDB4ODQyMCwgMHgwMGYwLCAweDJmYTMsCi0JMHgxNTdmLCAweDAwNzgsIDB4MjljNSwgMHgyMjAwLCAweDAwNzksIDB4MmZiNiwgMHgyZmI5LCAweDJmYmIsCi0JMHgyZmJiLCAweDEwNzgsIDB4Mjk2YiwgMHgyMDA5LCAweDAwMTIsIDB4NzA2NCwgMHhhMDg2LCAweDAwMDIsCi0JMHgwMDQwLCAweDJmYzQsIDB4MjAwOSwgMHgwMDBlLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDJmYzksCi0JMHg2OTFhLCAweDcwNjcsIDB4MDAwMCwgMHg3MGQ0LCAweGMwZGQsIDB4NzBkNiwgMHgwMDc4LCAweDQzMGQsCi0JMHgyMjAwLCAweDAwNzksIDB4MmZkMywgMHgyZmQ4LCAweDJmYmIsIDB4MmZkNiwgMHgxMDc4LCAweDI5NmIsCi0JMHgxMDc4LCAweDQ1ODYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgzZDdlLCAweDEwNzgsCi0JMHgzZGVkLCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsIDB4MTA3OCwgMHgzZDZmLCAweDAwNDAsCi0JMHgzZDdlLCAweDAwNzgsIDB4MjljNSwgMHgyNDA0LCAweGEwMDUsIDB4MDA0MCwgMHgzMDI0LCAweDIwNjgsCi0JMHgyZDA0LCAweDAwN2UsIDB4NjgxNCwgMHhhNzA2LCAweDAwNDAsIDB4MmZmYSwgMHgyZDIwLCAweDAwN2YsCi0JMHgwMDc4LCAweDJmZWMsIDB4MDA3ZiwgMHgyMDIyLCAweDY5MWEsIDB4NjgxNywgMHgwMDAwLCAweDY4MmIsCi0JMHgwMDAwLCAweDY4YjQsIDB4YTA4NCwgMHg1ZjAwLCAweDY4MWUsIDB4NjgyMCwgMHhhMDg0LCAweDAwZmYsCi0JMHhhMjA1LCAweDY4MjIsIDB4MTA3OCwgMHgyMDJjLCAweDIwMjEsIDB4NGUwMiwgMHgyNDFjLCAweDgzMTksCi0JMHgyMzIyLCAweDYwMTAsIDB4ODAwMSwgMHg2MDEyLCAweDAwYzAsIDB4MzAxYiwgMHgyMDIxLCAweDRlMDQsCi0JMHgyNDA0LCAweGMwYTUsIDB4MjAyMiwgMHg2MDA4LCAweGEwODQsIDB4ZjllZiwgMHg2MDBhLCAweDEwNzgsCi0JMHgyYWRiLCAweDEwNzgsIDB4M2RlZCwgMHgwMDdjLCAweGEwODUsIDB4MDAwMSwgMHgwMDc4LCAweDMwMjMsCi0JMHgyMzAwLCAweDAwNzksIDB4MzAyYiwgMHgzMDMwLCAweDMwMmUsIDB4MzBiMCwgMHgxMDc4LCAweDI5NmIsCi0JMHg3OGU0LCAweGEwMDUsIDB4MDBkMCwgMHgzMDY2LCAweDMyMDgsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDMwNDEsIDB4YTE4YywgMHgwMzAwLCAweDAwNzgsCi0JMHgzMDQzLCAweGExOGMsIDB4MDQwMCwgMHgwMDQwLCAweDMwNDksIDB4MDAxOCwgMHgyOWMxLCAweDAwNzgsCi0JMHgzMDRiLCAweDAwMjgsIDB4MjljMSwgMHgyMDA4LCAweGEwODQsIDB4MDAzMCwgMHgwMGMwLCAweDMwNTIsCi0JMHgwMDc4LCAweDM3NzAsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgzMDUwLCAweDIxMDAsCi0JMHhhMDg0LCAweDAwMDcsIDB4MDA3OSwgMHgzMDVjLCAweDMwOTAsIDB4MzA5YSwgMHgzMDg1LCAweDMwNjQsCi0JMHg0MzU1LCAweDQzNTUsIDB4MzA2NCwgMHgzMGE1LCAweDEwNzgsIDB4Mjk2YiwgMHg3MDAwLCAweGEwODYsCi0JMHgwMDA0LCAweDAwYzAsIDB4MzA4MCwgMHg3MDY0LCAweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDMwNzYsCi0JMHgyMDExLCAweDAwMDIsIDB4MjAxOSwgMHgwMDAwLCAweDAwNzgsIDB4MmYxYywgMHg3MDY0LCAweGEwODYsCi0JMHgwMDA2LCAweDAwNDAsIDB4MzA3MCwgMHg3MDY0LCAweGEwODYsIDB4MDAwNCwgMHgwMDQwLCAweDMwNzAsCi0JMHg3OWU0LCAweDIwMDEsIDB4MDAwMywgMHgwMDc4LCAweDMzZmEsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCi0JMHgzMDhiLCAweDY4MWIsIDB4MDAxZCwgMHgxMDc4LCAweDQwYzgsIDB4NzgxYiwgMHgwMDY0LCAweDAwN2MsCi0JMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzMDk2LCAweDY4MWIsIDB4MDAxZCwgMHgxMDc4LCAweDQwYzgsCi0JMHgwMDc4LCAweDQzMzEsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsIDB4MzBhMCwgMHg2ODFiLCAweDAwMWQsCi0JMHgxMDc4LCAweDQwYzgsIDB4NzgxYiwgMHgwMGY4LCAweDAwN2MsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCi0JMHgzMGFiLCAweDY4MWIsIDB4MDAxZCwgMHgxMDc4LCAweDQwYzgsIDB4NzgxYiwgMHgwMGM4LCAweDAwN2MsCi0JMHhhNTg0LCAweDAwMGYsIDB4MDBjMCwgMHgzMGNmLCAweDEwNzgsIDB4Mjk1ZSwgMHg3MDAwLCAweDAwNzksCi0JMHgzMGI5LCAweDI5YzUsIDB4MzBjMSwgMHgzMGMzLCAweDNkN2UsIDB4M2Q3ZSwgMHgzZDdlLCAweDMwYzEsCi0JMHgzMGMxLCAweDEwNzgsIDB4Mjk2YiwgMHgxMDc4LCAweDNkZWQsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsCi0JMHg2MDBhLCAweDEwNzgsIDB4M2Q2ZiwgMHgwMDQwLCAweDNkN2UsIDB4MDA3OCwgMHgyOWM1LCAweDc4ZTQsCi0JMHhhMDA1LCAweDAwZDAsIDB4MzA2NiwgMHgzMjA4LCAweDAwN2UsIDB4MjAwMSwgMHg0ZTA0LCAweDIwMDQsCi0JMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgzMGUwLCAweGExOGMsIDB4MDMwMCwgMHgwMDc4LCAweDMwZTIsCi0JMHhhMThjLCAweDA0MDAsIDB4MDA0MCwgMHgzMGU4LCAweDAwMTgsIDB4MzA2NiwgMHgwMDc4LCAweDMwZWEsCi0JMHgwMDI4LCAweDMwNjYsIDB4MjAwOCwgMHhhMDg0LCAweDAwMzAsIDB4MDBjMCwgMHgzMGYyLCAweDc4MWIsCi0JMHgwMDViLCAweDAwN2MsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgzMGVmLCAweDIxMDAsCi0JMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwgMHgzMGZjLCAweDMxMGIsIDB4MzEwZiwgMHgzMTA2LCAweDMxMDQsCi0JMHg0MzU1LCAweDQzNTUsIDB4MzEwNCwgMHg0MzRmLCAweDEwNzgsIDB4Mjk2YiwgMHgxMDc4LCAweDQwZDAsCi0JMHg3ODFiLCAweDAwNjQsIDB4MDA3YywgMHgxMDc4LCAweDQwZDAsIDB4MDA3OCwgMHg0MzMxLCAweDEwNzgsCi0JMHg0MGQwLCAweDc4MWIsIDB4MDBmOCwgMHgwMDdjLCAweDEwNzgsIDB4NDBkMCwgMHg3ODFiLCAweDAwYzgsCi0JMHgwMDdjLCAweDIzMDAsIDB4MDA3OSwgMHgzMTFjLCAweDMxMjEsIDB4MzExZiwgMHgzMTIzLCAweDEwNzgsCi0JMHgyOTZiLCAweDAwNzgsIDB4Mzk1ZiwgMHg2ODFiLCAweDAwMTYsIDB4NzhhMywgMHgwMDAwLCAweDc5ZTQsCi0JMHhhMTg0LCAweDAwMzAsIDB4MDA0MCwgMHgzOTVmLCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwNDAsCi0JMHgzOTVmLCAweGExODQsIDB4MDEwMCwgMHgwMDQwLCAweDMxMjcsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksCi0JMHgzMTM5LCAweDMxNDEsIDB4MzEwZiwgMHgzMDg1LCAweDQzMGQsIDB4NDM1NSwgMHg0MzU1LCAweDQzMGQsCi0JMHg0MzRmLCAweDEwNzgsIDB4NDMxOSwgMHgwMDdjLCAweGEyODIsIDB4MDAwNSwgMHgwMDUwLCAweDMxNGEsCi0JMHgxMDc4LCAweDI5NmIsIDB4MjMwMCwgMHgwMDc5LCAweDMxNGQsIDB4MzE1MCwgMHgzMzgwLCAweDMzOGIsCi0JMHgyMjAwLCAweDAwNzksIDB4MzE1MywgMHgzMTZkLCAweDMxNWEsIDB4MzE2ZCwgMHgzMTU4LCAweDMzNjMsCi0JMHgxMDc4LCAweDI5NmIsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwODIsCi0JMHgwMDIwLCAweDAwNDgsIDB4NDBiNywgMHhhMDhhLCAweDAwMDQsIDB4MDBjOCwgMHg0MGI3LCAweDAwNzksCi0JMHgzMTY5LCAweDQwYjcsIDB4NDBiNywgMHg0MGI3LCAweDQwNjEsIDB4Nzg5YiwgMHgwMDE4LCAweDc5YTgsCi0JMHhhMTg0LCAweDAwODAsIDB4MDA0MCwgMHgzMTdlLCAweDAwNzgsIDB4NDBiNywgMHg3MDAwLCAweGEwMDUsCi0JMHgwMGMwLCAweDMxNzQsIDB4MjAxMSwgMHgwMDA0LCAweDAwNzgsIDB4M2I0YSwgMHhhMTg0LCAweDAwZmYsCi0JMHhhMDhhLCAweDAwMTAsIDB4MDBjOCwgMHg0MGI3LCAweDAwNzksIDB4MzE4NiwgMHgzMTk4LCAweDMxOTYsCi0JMHgzMWFkLCAweDMxYjEsIDB4MzI4NCwgMHg0MGI3LCAweDQwYjcsIDB4MzI4NiwgMHg0MGI3LCAweDQwYjcsCi0JMHgzMzVmLCAweDMzNWYsIDB4NDBiNywgMHg0MGI3LCAweDQwYjcsIDB4MzM2MSwgMHgxMDc4LCAweDI5NmIsCi0JMHhkNmU0LCAweDAwNDAsIDB4MzFhMywgMHgyMDAxLCAweDAzMDAsIDB4ODAwMCwgMHg4MDAwLCAweDc4M2EsCi0JMHg3ODFiLCAweDAwYzMsIDB4MDA3YywgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzMWFiLCAweDY4MWIsCi0JMHgwMDFkLCAweDAwNzgsIDB4MzE5YiwgMHgwMDc4LCAweDQzMGQsIDB4NjgxYiwgMHgwMDFkLCAweDAwNzgsCi0JMHg0MGMxLCAweDY5MjAsIDB4NjkyMiwgMHhhNjg0LCAweDE4MDAsIDB4MDBjMCwgMHgzMjE2LCAweDY4MjAsCi0JMHhkMDg0LCAweDAwYzAsIDB4MzIxYywgMHg2ODE4LCAweGEwODYsIDB4MDAwOCwgMHgwMGMwLCAweDMxYzIsCi0JMHg2ODFiLCAweDAwMDAsIDB4ZDZkNCwgMHgwMDQwLCAweDMyODEsIDB4ZDZiYywgMHgwMDQwLCAweDMyMDIsCi0JMHg3MDg3LCAweDAwMDAsIDB4NjgxOCwgMHhhMDg0LCAweDAwM2YsIDB4YTA4YSwgMHgwMDBkLCAweDAwNTAsCi0JMHgzMjAyLCAweGEwOGEsIDB4MDAwYywgMHg3MTg2LCAweDIwMDEsIDB4MDAwYywgMHg4MDBjLCAweDcxOGEsCi0JMHg3ODliLCAweDAwNjEsIDB4NzhhYSwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwgMHgwMTdlLCAweDMyMDgsCi0JMHhhMThjLCAweDAzMDAsIDB4MDA0MCwgMHgzMWY0LCAweDAwN2UsIDB4MjAwMSwgMHg0ZTA0LCAweDIwMDQsCi0JMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgzMWYwLCAweDIwYTEsIDB4MDEyYiwgMHgwMDc4LCAweDMxZjYsCi0JMHgyMGExLCAweDAyMmIsIDB4MDA3OCwgMHgzMWY2LCAweDIwYTEsIDB4MDEyYiwgMHgwMTdmLCAweDc4OWIsCi0JMHgwMDAwLCAweDgwMDAsIDB4ODBhYywgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDE0N2YsCi0JMHgxMzdmLCAweDE1N2YsIDB4NjAzOCwgMHhhMDA1LCAweDAwYzAsIDB4MzIxMSwgMHg2ODFjLCAweGEwODQsCi0JMHgwMDBlLCAweDAwNDAsIDB4NDBjMSwgMHgxMDc4LCAweDQwZDcsIDB4NzgyYiwgMHgzMDA4LCAweDAwNzgsCi0JMHgzMjEzLCAweDgwMDEsIDB4NjAzYSwgMHg3ODFiLCAweDAwNjcsIDB4MDA3YywgMHhkNmU0LCAweDAwNDAsCi0JMHgzMjFjLCAweDc4MWIsIDB4MDA3OSwgMHgwMDdjLCAweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDMyN2UsCi0JMHhkNmRjLCAweDAwNDAsIDB4MzI3ZSwgMHhkNmZjLCAweDAwYzAsIDB4MzIyOCwgMHgwMDc4LCAweDMyM2YsCi0JMHhjNmZjLCAweDdlNWEsIDB4NmViNiwgMHg3YWRjLCAweDc5ZDgsIDB4NzhkMCwgMHg4MDFiLCAweDAwYzgsCi0JMHgzMjMyLCAweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDZiOTgsCi0JMHgyMTAwLCAweGEzMDIsIDB4NjhiMiwgMHg2Yjk0LCAweDIyMDAsIDB4YTMwMywgMHg2OGFlLCAweGQ2ZjQsCi0JMHgwMDQwLCAweDMyNDUsIDB4YzZmNCwgMHg3ZTVhLCAweDZlYjYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsCi0JMHgwMGMwLCAweDMyNTMsIDB4MDA3ZSwgMHgxMDc4LCAweDQ1ODYsIDB4MTA3OCwgMHg0OGJkLCAweDAwN2YsCi0JMHg3ODFiLCAweDAwNzYsIDB4MDA3YywgMHhhMDA2LCAweDEwNzgsIDB4NDljMywgMHg2YWIwLCAweDY5YWMsCi0JMHg2Yzk4LCAweDZiOTQsIDB4MjIwMCwgMHhhMTA1LCAweDAwNDAsIDB4MzI2MiwgMHgyMjAwLCAweGE0MjIsCi0JMHgyMTAwLCAweGEzMWIsIDB4NmNhYSwgMHg3Y2QyLCAweDdjZGEsIDB4NmJhNiwgMHg3YmQ2LCAweDdiZGUsCi0JMHgyMzAwLCAweGE0MDUsIDB4MDBjMCwgMHgzMjcyLCAweGM2ZjUsIDB4N2U1YSwgMHg2ZWI2LCAweDc4MWIsCi0JMHgwMDc2LCAweDAwN2MsIDB4NzgxYiwgMHgwMDc2LCAweDIyMDAsIDB4YTExNSwgMHgwMGMwLCAweDMyN2IsCi0JMHgxMDc4LCAweDQ4YmQsIDB4MDA3YywgMHgxMDc4LCAweDQ4ZjUsIDB4MDA3YywgMHg3ODFiLCAweDAwNzksCi0JMHgwMDdjLCAweDc4MWIsIDB4MDA2NywgMHgwMDdjLCAweDEwNzgsIDB4Mjk2YiwgMHgwMDc4LCAweDMyZDIsCi0JMHg2OTIwLCAweGQxYzQsIDB4MDA0MCwgMHgzMjliLCAweGMxYzQsIDB4NjkyMiwgMHgwYzdlLCAweDcwNTgsCi0JMHgyMDYwLCAweDYwMDAsIDB4YzBlNCwgMHg2MDAyLCAweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsCi0JMHgwYzdmLCAweDAwNzgsIDB4MzJjNiwgMHhkMWNjLCAweDAwNDAsIDB4MzJjNiwgMHhjMWNjLCAweDY5MjIsCi0JMHgwYzdlLCAweDcwNTgsIDB4MjA2MCwgMHg2MDAwLCAweGMwZWMsIDB4NjAwMiwgMHg2MDA0LCAweGMwYTQsCi0JMHg2MDA2LCAweDIwMDgsIDB4MmM0OCwgMHgwYzdmLCAweGQxOWMsIDB4MDA0MCwgMHgzMmM2LCAweDEwNzgsCi0JMHg0MWZhLCAweDEwNzgsIDB4M2VmNSwgMHg4OGZmLCAweDAwNDAsIDB4MzJjNiwgMHg3ODliLCAweDAwNjAsCi0JMHgyODAwLCAweDc4YWEsIDB4N2U1OCwgMHhjNjk1LCAweDdlNWEsIDB4ZDZkNCwgMHgwMGMwLCAweDMyYzMsCi0JMHg3ODFiLCAweDAwNjQsIDB4MDA3YywgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHg3ZTU4LCAweGQ2ZDQsCi0JMHgwMGMwLCAweDMyY2QsIDB4NzgxYiwgMHgwMDY3LCAweDAwN2MsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsCi0JMHgwMDc4LCAweDQwYmMsIDB4MjAxOSwgMHgwMDAwLCAweDc5OTAsIDB4YTE4YywgMHgwMDA3LCAweDAwYzAsCi0JMHgzMmUwLCAweDY4MjAsIDB4YTA4NCwgMHgwMTAwLCAweDAwNDAsIDB4MzJkMCwgMHgyMDA5LCAweDAwMDgsCi0JMHg3ODliLCAweDAwMTAsIDB4NzhhOCwgMHhhMDk0LCAweDAwZmYsIDB4YTI4NiwgMHgwMDAxLCAweDAwYzAsCi0JMHgzMmZjLCAweDIzMDAsIDB4N2NhOCwgMHhhNDAwLCAweDIwMTgsIDB4YTEwMiwgMHgwMDQwLCAweDMyZjQsCi0JMHgwMDQ4LCAweDMyZjQsIDB4MDA3OCwgMHgzMmY2LCAweDAwNzgsIDB4MzI4OCwgMHgyNGE4LCAweDdhYTgsCi0JMHgwMGYwLCAweDMyZjYsIDB4MDA3OCwgMHgzMmUyLCAweGEyODQsIDB4MDBmMCwgMHhhMDg2LCAweDAwMjAsCi0JMHgwMGMwLCAweDMzNTAsIDB4ODMxOCwgMHg4MzE4LCAweDIzMDAsIDB4YTEwMiwgMHgwMDQwLCAweDMzMGMsCi0JMHgwMDQ4LCAweDMzMGMsIDB4MDA3OCwgMHgzMzRkLCAweGEyODYsIDB4MDAyMywgMHgwMDQwLCAweDMyZDAsCi0JMHg2ODFjLCAweGEwODQsIDB4ZmZmMSwgMHg2ODFlLCAweDdlNTgsIDB4YTY4NCwgMHhmZmYxLCAweGMwYTUsCi0JMHgyMDMwLCAweDdlNWEsIDB4NjAwOCwgMHhjMGE1LCAweDYwMGEsIDB4MGM3ZSwgMHg3MDU4LCAweDIwNjAsCi0JMHg2MDA0LCAweDIwMDgsIDB4MmM0OCwgMHgwYzdmLCAweGQxYTQsIDB4MDA0MCwgMHgzMzJkLCAweDEwNzgsCi0JMHg0MWZhLCAweDEwNzgsIDB4NDAxMSwgMHgwMDc4LCAweDMzM2IsIDB4MGM3ZSwgMHg3MDU4LCAweDIwNjAsCi0JMHg2MDA0LCAweDIwMDgsIDB4MmM0OCwgMHgwYzdmLCAweGQxOWMsIDB4MDA0MCwgMHgzMmM2LCAweDEwNzgsCi0JMHg0MWZhLCAweDEwNzgsIDB4M2VmNSwgMHg4OGZmLCAweDAwNDAsIDB4MzJjNiwgMHg3ODliLCAweDAwNjAsCi0JMHgyODAwLCAweDc4YWEsIDB4YzY5NSwgMHg3ZTVhLCAweGQ2ZDQsIDB4MDBjMCwgMHgzMzRhLCAweDc4MWIsCi0JMHgwMDY0LCAweDAwN2MsIDB4NzgxYiwgMHgwMDc4LCAweDAwN2MsIDB4N2FhOCwgMHgwMDc4LCAweDMyZTIsCi0JMHg4MzE4LCAweDIzMDAsIDB4YTEwMiwgMHgwMDQwLCAweDMzNTksIDB4MDA0OCwgMHgzMzU5LCAweDAwNzgsCi0JMHgzMmUyLCAweGEyODQsIDB4MDA4MCwgMHgwMGMwLCAweDQwYzEsIDB4MDA3OCwgMHg0MGJjLCAweDAwNzgsCi0JMHg0MGMxLCAweDAwNzgsIDB4NDBiNywgMHg3MDU4LCAweGEwNGQsIDB4Nzg5YiwgMHgwMDE4LCAweDc4YTgsCi0JMHhhMDg0LCAweDAwZmYsIDB4YTA4ZSwgMHgwMDAxLCAweDAwNDAsIDB4MzM3MCwgMHgxMDc4LCAweDI5NmIsCi0JMHg3YWE4LCAweGEyOTQsIDB4MDBmZiwgMHg3OGE4LCAweGEwODQsIDB4MDBmZiwgMHhhMDhhLCAweDAwMDQsCi0JMHgwMGM4LCAweDQwYjcsIDB4MDA3OSwgMHgzMzdjLCAweDQwYjcsIDB4M2U0NiwgMHg0MGI3LCAweDNmYjksCi0JMHhhMjgyLCAweDAwMDAsIDB4MDBjMCwgMHgzMzg2LCAweDEwNzgsIDB4Mjk2YiwgMHgxMDc4LCAweDQwYzgsCi0JMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHhhMjgyLCAweDAwMDMsIDB4MDBjMCwgMHgzMzkxLCAweDEwNzgsCi0JMHgyOTZiLCAweGQ0ZmMsIDB4MDBjMCwgMHgzM2IxLCAweDcwNjQsIDB4YTAwNSwgMHgwMDQwLCAweDMzOWEsCi0JMHgxMDc4LCAweDI5NmIsIDB4NmYxNCwgMHg3Nzc2LCAweGE3YmMsIDB4OGYwMCwgMHgxMDc4LCAweDQxZmUsCi0JMHg2MDA4LCAweGEwODUsIDB4MDAyMSwgMHg2MDBhLCAweDg3MzgsIDB4YTc4NCwgMHgwMDFmLCAweDAwYzAsCi0JMHgzMzllLCAweDEwNzgsIDB4NDBjYywgMHg3MDY3LCAweDAwMDIsIDB4NzAxZiwgMHgwMDA5LCAweDAwNzgsCi0JMHgzM2IzLCAweDEwNzgsIDB4NDBkYiwgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHhhMjgyLCAweDAwMDQsCi0JMHgwMDUwLCAweDMzYmMsIDB4MTA3OCwgMHgyOTZiLCAweDIzMDAsIDB4MDA3OSwgMHgzM2JmLCAweDMzYzIsCi0JMHgzNTgyLCAweDM1YzUsIDB4YTI4NiwgMHgwMDAzLCAweDAwNDAsIDB4MzNmYSwgMHg3MjAwLCAweDdjZDgsCi0JMHg3ZGRjLCAweDdmZDAsIDB4NzFkNCwgMHhkMWJjLCAweDAwYzAsIDB4MzNmMiwgMHhkMWI0LCAweDAwNDAsCi0JMHgzM2YyLCAweDc4NjgsIDB4YTA4NCwgMHgwMGZmLCAweDAwYzAsIDB4MzNmMiwgMHhhMjgyLCAweDAwMDIsCi0JMHgwMGM4LCAweDMzZjIsIDB4MGQ3ZSwgMHg3ODNiLCAweDgzMDAsIDB4NzgxYiwgMHgwMDRjLCAweDcwYmMsCi0JMHhhMDZkLCAweDY4YjQsIDB4Nzg1YSwgMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwgMHg2ODk4LCAweDc4ZDIsCi0JMHg3OGRhLCAweGMxYjQsIDB4NzFkNiwgMHg3MDAzLCAweDAwMzAsIDB4MGQ3ZiwgMHgyMDAxLCAweDAwMDAsCi0JMHgwMDc4LCAweDMzZmUsIDB4NzgzYiwgMHgxMzAwLCAweDc4MWIsIDB4MDA0YSwgMHgyMDAxLCAweDAwMDAsCi0JMHgwMDc4LCAweDMzZmUsIDB4NzIwMCwgMHg3Y2Q4LCAweDdkZGMsIDB4N2ZkMCwgMHg3MDRhLCAweDY4YTAsCi0JMHhkMGVjLCAweDAwNDAsIDB4MzQwNiwgMHg2MDA4LCAweGMwOGQsIDB4NjAwYSwgMHhhMjg0LCAweDAwMGYsCi0JMHgwMDc5LCAweDM0MGEsIDB4MzU2MiwgMHgzNDE3LCAweDM0MTQsIDB4MzZjOCwgMHgzNzU0LCAweDI5YzUsCi0JMHgzNDEyLCAweDM0MTIsIDB4MTA3OCwgMHgyOTZiLCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweGQ2ZTQsCi0JMHgwMDQwLCAweDM0MWYsIDB4NzA0OCwgMHhhMDg2LCAweDAwMTQsIDB4MDBjMCwgMHgzNDNmLCAweDEwNzgsCi0JMHg0NTg2LCAweDIwMDksIDB4MDAwMCwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzNDI4LCAweDcwNDgsCi0JMHhhMDg2LCAweDAwMTQsIDB4MDA0MCwgMHgzNDM5LCAweDY4MTgsIDB4YTA4NiwgMHgwMDA4LCAweDAwYzAsCi0JMHgzNTFhLCAweDc4NTgsIDB4ZDA5YywgMHgwMDQwLCAweDM1MWEsIDB4NjgyMCwgMHhkMGFjLCAweDAwNDAsCi0JMHgzNTFhLCAweDY4MWIsIDB4MDAxNCwgMHgyMDA5LCAweDAwMDIsIDB4MDA3OCwgMHgzNDdlLCAweDc4NjgsCi0JMHhhMDhjLCAweDAwZmYsIDB4MDA0MCwgMHgzNDdlLCAweGExODYsIDB4MDAwOCwgMHgwMGMwLCAweDM0NTUsCi0JMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwgMHgxMDc4LCAweDNkNmYsIDB4MDA0MCwgMHgzNDdlLCAweDEwNzgsCi0JMHgzZGVkLCAweDEwNzgsIDB4NDU4NiwgMHgwMDc4LCAweDM0NjYsIDB4YTE4NiwgMHgwMDI4LCAweDAwYzAsCi0JMHgzNDdlLCAweDYwMTgsIDB4YTAwNSwgMHgwMDQwLCAweDM0NDgsIDB4ODAwMSwgMHgwMDQwLCAweDM0NDgsCi0JMHg4MDAxLCAweDAwNDAsIDB4MzQ0OCwgMHg2MDFlLCAweDAwNzgsIDB4MzQ0OCwgMHg2ODIwLCAweGQwODQsCi0JMHgwMDQwLCAweDI5YzUsIDB4YzA4NCwgMHg2ODIyLCAweDEwNzgsIDB4MmFjYywgMHg3MDVjLCAweDBjN2UsCi0JMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwgMHgwYzdmLCAweDYwMDQsIDB4NjgwMiwgMHhhMDA1LCAweDJkMDAsCi0JMHgwMGMwLCAweDM0N2IsIDB4NjAwMiwgMHg2MDA2LCAweDAwNzgsIDB4MjljNSwgMHgwMTdlLCAweDgxZmYsCi0JMHgwMGMwLCAweDM0YzgsIDB4NzAwMCwgMHhhMDg2LCAweDAwMzAsIDB4MDA0MCwgMHgzNGM4LCAweDcxZDQsCi0JMHhkMWJjLCAweDAwYzAsIDB4MzRjOCwgMHhkMWI0LCAweDAwYzAsIDB4MzRhZiwgMHg3MDYwLCAweGEwMDUsCi0JMHgwMGMwLCAweDM0YzgsIDB4NzBhNCwgMHhhMDg2LCAweDAwMDEsIDB4MDA0MCwgMHgzNGM4LCAweDcwMDMsCi0JMHgwMDAwLCAweDA0N2UsIDB4MDU3ZSwgMHgwNzdlLCAweDA2N2UsIDB4MGM3ZSwgMHgwZDdlLCAweDEwNzgsCi0JMHgyOWVlLCAweDBkN2YsIDB4MGM3ZiwgMHgwNjdmLCAweDA3N2YsIDB4MDU3ZiwgMHgwNDdmLCAweDcxZDQsCi0JMHhkMWI0LCAweDAwYzAsIDB4MzRjOCwgMHg3MDAzLCAweDAwNDAsIDB4MDA3OCwgMHgzNGM4LCAweDEwNzgsCi0JMHg0MzYwLCAweDAwYzAsIDB4MzRjOCwgMHg3ODFiLCAweDAwNWIsIDB4MGQ3ZSwgMHg3MGJjLCAweGEwNmQsCi0JMHg2OGI0LCAweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsCi0JMHhjMWI0LCAweDcxZDYsIDB4NzAwMywgMHgwMDMwLCAweDc4MDgsIDB4YzA4ZCwgMHg3ODBhLCAweDBkN2YsCi0JMHgxMDc4LCAweDM1ZmYsIDB4MDE3ZiwgMHg4MWZmLCAweDAwNDAsIDB4MzUxYSwgMHhhNjg0LCAweGRmMDAsCi0JMHg2ODFlLCAweDY4MmIsIDB4MDAwMCwgMHg2ZjE0LCAweGExODYsIDB4MDAwMiwgMHgwMGMwLCAweDM1MWIsCi0JMHg2ODE4LCAweGEwODYsIDB4MDAxNCwgMHgwMGMwLCAweDM0ZTQsIDB4MjAwOCwgMHhkNmU0LCAweDAwNDAsCi0JMHgzNGU0LCAweDc4NjgsIDB4YTA4YywgMHgwMGZmLCAweDEwNzgsIDB4MmFiYSwgMHgxMDc4LCAweDJhZGIsCi0JMHg2ODIwLCAweGQwZGMsIDB4MDBjMCwgMHgzNTFiLCAweDg3MTcsIDB4YTI5NCwgMHgwMDBmLCAweDgyMTMsCi0JMHg4MjEzLCAweDgyMTMsIDB4YjI4NCwgMHgwMzAwLCAweDAwNDAsIDB4MzRmYSwgMHhhMjkwLCAweDUyYzAsCi0JMHgwMDc4LCAweDM0ZmMsIDB4YTI5MCwgMHg1MzQwLCAweGEyOTAsIDB4MDAwMCwgMHgyMjFjLCAweGQzYzQsCi0JMHgwMGMwLCAweDM1MDQsIDB4MDA3OCwgMHgzNTBhLCAweDgyMTAsIDB4MjIwNCwgMHhhMDg1LCAweDAwMTgsCi0JMHgyMDEyLCAweDgyMTEsIDB4ZDNkNCwgMHgwMDQwLCAweDM1MTUsIDB4NjhhMCwgMHhkMGM0LCAweDAwYzAsCi0JMHgzNTE1LCAweDEwNzgsIDB4MzY3OSwgMHgwMDc4LCAweDI5YzUsIDB4NjAwOCwgMHhjMDhkLCAweDYwMGEsCi0JMHgwMDc4LCAweDM1MWIsIDB4NjkyYSwgMHg2OTE2LCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDM1MjIsCi0JMHg3MDQ4LCAweDY4MWEsIDB4YTY4YywgMHhkZjAwLCAweDY5MWUsIDB4NjQxMCwgMHg4NGZmLCAweDAwNDAsCi0JMHgzNTM3LCAweDIwMDksIDB4NGUwMiwgMHgyMTA0LCAweDgwMDEsIDB4MjAwYSwgMHg4NDIxLCAweDY0MTIsCi0JMHgwMGMwLCAweDM1MzcsIDB4MjAyMSwgMHg0ZTA0LCAweDI0MDQsIDB4YzBhNSwgMHgyMDIyLCAweDYwMTgsCi0JMHhhMDA1LCAweDAwNDAsIDB4MzUzZiwgMHg4MDAxLCAweDYwMWEsIDB4MDBjMCwgMHgzNTQyLCAweDYwMDgsCi0JMHhjMGE0LCAweDYwMGEsIDB4NjgyMCwgMHhkMDg0LCAweDAwYzAsIDB4MzU0ZSwgMHg2ODAwLCAweGEwMDUsCi0JMHgwMGMwLCAweDM1NGIsIDB4NjAwMiwgMHg2MDA2LCAweDAwNzgsIDB4MzU1MiwgMHg3MDVjLCAweDIwNjAsCi0JMHg2ODAwLCAweDYwMDIsIDB4MjA2MSwgMHg0ZTAwLCAweDY4ODcsIDB4MDEwMywgMHgyZDA4LCAweDIwNmIsCi0JMHgwMDAwLCAweDYwNjgsIDB4YTAwNSwgMHg2MTZhLCAweDAwNDAsIDB4MzU2MSwgMHgyZDAyLCAweDAwNzgsCi0JMHgzNTYyLCAweDYxNmUsIDB4NzIwMCwgMHhhMjg2LCAweDAwMzAsIDB4MDA0MCwgMHgzNTcyLCAweGEyODYsCi0JMHgwMDQwLCAweDAwYzAsIDB4MjljNSwgMHg3MDAzLCAweDAwMDIsIDB4NzA0YywgMHgyMDY4LCAweDY4YzQsCi0JMHgyMDYwLCAweDAwN2MsIDB4NzAwMywgMHgwMDAyLCAweDcwYmMsIDB4YTA2ZCwgMHg2OGJjLCAweDcwNDIsCi0JMHg3MGI4LCAweGEwNjUsIDB4NjhjMCwgMHg3MDVhLCAweDJkMDAsIDB4NzA0ZSwgMHhhZDgwLCAweDAwMDksCi0JMHg3MDQ2LCAweDAwN2MsIDB4YTI4MiwgMHgwMDA0LCAweDAwNDgsIDB4MzU4OCwgMHgxMDc4LCAweDI5NmIsCi0JMHgyMjAwLCAweDAwNzksIDB4MzU4YiwgMHgzNThmLCAweDM1YTAsIDB4MzVhZCwgMHgzNWEwLCAweGE1ODYsCi0JMHgxMzAwLCAweDAwNDAsIDB4MzVhMCwgMHhhNTg2LCAweDgzMDAsIDB4MDBjMCwgMHgzNTg2LCAweDcwMDMsCi0JMHgwMDAwLCAweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsCi0JMHg3MDAwLCAweGEwODYsIDB4MDAwNSwgMHgwMDQwLCAweDM1YWEsIDB4MTA3OCwgMHg0MGM4LCAweDc4MWIsCi0JMHgwMDc4LCAweDAwN2MsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsIDB4Nzg5MCwgMHg4MDA3LCAweDgwMDEsCi0JMHhhMDg0LCAweDAwMDcsIDB4YTA4MCwgMHgwMDE4LCAweDc4OWEsIDB4NzlhOCwgMHhhMThjLCAweDAwZmYsCi0JMHhhMTg2LCAweDAwMDMsIDB4MDA0MCwgMHgzNWMyLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDM1YzIsCi0JMHgwMDc4LCAweDQwYjcsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsIDB4NjgyMCwgMHhjMDk1LCAweDY4MjIsCi0JMHg4MmZmLCAweDAwYzAsIDB4MzVjZiwgMHgxMDc4LCAweDQwYzgsIDB4MDA3OCwgMHgzNWQ2LCAweDgyMTEsCi0JMHgwMDQwLCAweDM1ZDQsIDB4MTA3OCwgMHgyOTZiLCAweDEwNzgsIDB4NDBkYiwgMHg3ODFiLCAweDAwNzgsCi0JMHgwMDdjLCAweDEwNzgsIDB4NDM4MywgMHg3ODMwLCAweGEwODQsIDB4MDBjMCwgMHgwMGMwLCAweDM1ZmMsCi0JMHgwMTdlLCAweDMyMDgsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCi0JMHgwMDQwLCAweDM1ZWUsIDB4YTE4YywgMHgwMzAwLCAweDAwNzgsIDB4MzVmMCwgMHhhMThjLCAweDA0MDAsCi0JMHgwMTdmLCAweDAwNDAsIDB4MzVmNywgMHgwMDE4LCAweDM1ZmMsIDB4MDA3OCwgMHgzNWY5LCAweDAwMjgsCi0JMHgzNWZjLCAweDc5MWEsIDB4YTAwNiwgMHgwMDdjLCAweGEwODUsIDB4MDAwMSwgMHgwMDdjLCAweGE2ODQsCi0JMHgwMDYwLCAweDAwYzAsIDB4MzYwOSwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsCi0JMHgzNjc4LCAweGQ2ZGMsIDB4MDBjMCwgMHgzNjIxLCAweDY4YjQsIDB4ZDBkYywgMHgwMGMwLCAweDM2MjEsCi0JMHg2OTk4LCAweDZhOTQsIDB4NjkyZSwgMHg2YTMyLCAweDcwNDgsIDB4YTAwNSwgMHgwMGMwLCAweDM2MWUsCi0JMHgyMjAwLCAweGExMDUsIDB4MDA0MCwgMHg0NTg2LCAweDcwNGIsIDB4MDAxNSwgMHgwMDc4LCAweDQ1ODYsCi0JMHgwMDdjLCAweGQ2YWMsIDB4MDA0MCwgMHgzNjQ3LCAweGQ2ZjQsIDB4MDA0MCwgMHgzNjJkLCAweDY4MmYsCi0JMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgwMDc4LCAweDQ1ODYsIDB4NjhiNCwgMHhhMDg0LCAweDQwMDAsCi0JMHhhNjM1LCAweGQ2ZjQsIDB4MDBjMCwgMHgzNjI3LCAweDcwNDgsIDB4YTAwNSwgMHgwMGMwLCAweDM2M2EsCi0JMHg3MDRiLCAweDAwMTUsIDB4ZDZkYywgMHgwMGMwLCAweDM2NDMsIDB4NjhiNCwgMHhkMGRjLCAweDAwNDAsCi0JMHgzNjQzLCAweDZjYTgsIDB4NmRhNCwgMHg2YzJlLCAweDZkMzIsIDB4MDA3OCwgMHg0NTg2LCAweGQ2ZjQsCi0JMHgwMDQwLCAweDM2NTAsIDB4NjgyZiwgMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgwMDc4LCAweDQ1ODYsCi0JMHg2OGI0LCAweGEwODQsIDB4NDgwMCwgMHhhNjM1LCAweGQ2ZjQsIDB4MDBjMCwgMHgzNjRhLCAweDcwNDgsCi0JMHhhMDA1LCAweDAwYzAsIDB4MzY1ZCwgMHg3MDRiLCAweDAwMTUsIDB4MjQwOCwgMHgyNTEwLCAweDI3MDAsCi0JMHg4MGZiLCAweDAwYzgsIDB4MzY2NCwgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsCi0JMHgwMDAwLCAweDY5MmUsIDB4NmEzMiwgMHgyMTAwLCAweGEyMDUsIDB4MDBjMCwgMHgzNjcxLCAweDAwNzgsCi0JMHg0NTg2LCAweDcwMDAsIDB4YTA4NiwgMHgwMDA2LCAweDAwNDAsIDB4MzY3OCwgMHgwMDc4LCAweDQ1ODYsCi0JMHgwMDdjLCAweDY5NDYsIDB4NjAwOCwgMHhjMGNkLCAweGQzY2MsIDB4MDA0MCwgMHgzNjgwLCAweGMwOGQsCi0JMHg2MDBhLCAweDY4MTgsIDB4NjgzYSwgMHg2ODFiLCAweDAwMDYsIDB4Njg4ZiwgMHgwMDAwLCAweDY4OTMsCi0JMHgwMDAwLCAweDZhMzAsIDB4NjkyYywgMHg2YTNlLCAweDY5NDIsIDB4NjgyZiwgMHgwMDAzLCAweDY4MzMsCi0JMHgwMDAwLCAweDY4MzcsIDB4MDAyMCwgMHg2ODk3LCAweDAwMDAsIDB4Njg5YiwgMHgwMDIwLCAweDcwMDAsCi0JMHgwMDc5LCAweDM2OWEsIDB4MjljNSwgMHgzNmFjLCAweDM2YTQsIDB4MzZhMiwgMHgzNmEyLCAweDM2YTIsCi0JMHgzNmEyLCAweDM2YTIsIDB4MTA3OCwgMHgyOTZiLCAweDY4MjAsIDB4ZDA4NCwgMHgwMGMwLCAweDM2YWMsCi0JMHgxMDc4LCAweDNkZDAsIDB4MDA3OCwgMHgzNmIyLCAweDcwNWMsIDB4MmM1MCwgMHgyMDYwLCAweDY4MDAsCi0JMHg2MDAyLCAweDJhNjAsIDB4MzIwOCwgMHhhMThjLCAweDAzMDAsIDB4MDA0MCwgMHgzNmJiLCAweDIwMjEsCi0JMHg0ZTU4LCAweDAwNzgsIDB4MzZiZCwgMHgyMDIxLCAweDRlOTgsIDB4MjQwNCwgMHhhMDA1LCAweDAwNDAsCi0JMHgzNmM0LCAweDIwMjAsIDB4MDA3OCwgMHgzNmJkLCAweDJkMjIsIDB4MjA2YiwgMHgwMDAwLCAweDAwN2MsCi0JMHgxMDc4LCAweDNkZDcsIDB4MTA3OCwgMHgzZGVkLCAweDYwMDgsIDB4YzBjYywgMHg2MDBhLCAweDY4MmIsCi0JMHgwMDAwLCAweDc4OWIsIDB4MDAwZSwgMHg2ZjE0LCAweDY5MzgsIDB4NjkxYSwgMHg2OTQ0LCAweDY5MTYsCi0JMHgzMjA4LCAweGExOGMsIDB4MDMwMCwgMHgwMDQwLCAweDM2ZTEsIDB4MjAwOSwgMHgwMDAwLCAweDAwNzgsCi0JMHgzNmUzLCAweDIwMDksIDB4MDAwMSwgMHgxMDc4LCAweDQ5ZjgsIDB4ZDZkYywgMHgwMDQwLCAweDM2ZWIsCi0JMHg2OTFjLCAweGMxZWQsIDB4NjkxZSwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzNmZhLCAweDc4NjgsCi0JMHhhMDhjLCAweDAwZmYsIDB4MDA0MCwgMHgzNmY4LCAweDY4MWIsIDB4MDAxZSwgMHgwMDc4LCAweDM2ZmEsCi0JMHg2ODFiLCAweDAwMDAsIDB4YjI4NCwgMHgwMzAwLCAweDAwYzAsIDB4MzcwMiwgMHgyMDIxLCAweDRlOTgsCi0JMHgwMDc4LCAweDM3MDQsIDB4MjAyMSwgMHg0ZTU4LCAweDY4MDAsIDB4MjAyMiwgMHg2YTNjLCAweDY5NDAsCi0JMHg2YTMyLCAweDY5MmUsIDB4NjhjMCwgMHgyMDYwLCAweDYwMDAsIDB4ZDBhNCwgMHgwMDQwLCAweDM3NDQsCi0JMHgyMDQxLCAweDAwMjEsIDB4MjA0OSwgMHgwMDA1LCAweDIwNTEsIDB4MDAyMCwgMHgwZDdlLCAweDBmN2UsCi0JMHgxNTdlLCAweDE0N2UsIDB4MjA3OSwgMHg0ZTAwLCAweDEwNzgsIDB4MWRmZiwgMHgxNDdmLCAweDE1N2YsCi0JMHgwZjdmLCAweDcwY2MsIDB4MjAxMCwgMHgyMDA5LCAweDAxMDEsIDB4MDI3ZSwgMHgyMjA0LCAweGEwNmQsCi0JMHgwMDQwLCAweDM3MzQsIDB4NjgxNCwgMHhhNzA2LCAweDAwNDAsIDB4MzczMSwgMHg2ODAwLCAweDAwNzgsCi0JMHgzNzI3LCAweDY4MjAsIDB4YzBkNSwgMHg2ODIyLCAweDAyN2YsIDB4ODIxMCwgMHg4MTA5LCAweDAwYzAsCi0JMHgzNzI1LCAweDBkN2YsIDB4NzA2NywgMHgwMDAzLCAweDcwN2YsIDB4MDAwMCwgMHg3Nzc2LCAweDcwODMsCi0JMHgwMDBmLCAweDcxZDQsIDB4YzFkYywgMHg3MWQ2LCAweDY4MTgsIDB4YTA4NiwgMHgwMDAyLCAweDAwYzAsCi0JMHgzNzUwLCAweDY4MTcsIDB4MDAwMCwgMHg2ODJiLCAweDAwMDAsIDB4NjgxYywgMHhjMGVjLCAweDY4MWUsCi0JMHgxMDc4LCAweDIwMmMsIDB4MDA3OCwgMHgyOWM1LCAweDdjZDgsIDB4N2RkYywgMHg3ZmQwLCAweDEwNzgsCi0JMHgzNWZmLCAweDY4MmIsIDB4MDAwMCwgMHg3ODliLCAweDAwMGUsIDB4NmYxNCwgMHgxMDc4LCAweDQzODcsCi0JMHhhMDhjLCAweDAwZmYsIDB4NjkxNiwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzNzY5LCAweDcwNDgsCi0JMHg2ODFhLCAweGE2OGMsIDB4ZGYwMCwgMHg2OTFlLCAweDcwNjcsIDB4MDAwMCwgMHgwMDc4LCAweDI5YzUsCi0JMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwgMHgzNzc2LCAweDAwNzgsIDB4MjljNSwgMHhhMDA2LCAweDEwNzgsCi0JMHg0NTg2LCAweDY5MjAsIDB4ZDFhYywgMHgwMGMwLCAweDM3N2YsIDB4NjgxYiwgMHgwMDE0LCAweGE2OGMsCi0JMHhkZjAwLCAweDY5MWUsIDB4NjgyYiwgMHgwMDAwLCAweDY4MjAsIDB4YTA4NCwgMHgwMGZmLCAweDY4MjIsCi0JMHg3MDAwLCAweDAwNzksIDB4Mzc4YiwgMHgyOWM1LCAweDM3OTUsIDB4Mzc5NSwgMHgzNzk4LCAweDM3OTgsCi0JMHgzNzk4LCAweDM3OTMsIDB4Mzc5MywgMHgxMDc4LCAweDI5NmIsIDB4NjgxOCwgMHgwMDc4LCAweDMzZmEsCi0JMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwgMHg2ODE3LCAweDAwMDAsIDB4MDA3OCwgMHgzZDk1LCAweDIzMDAsCi0JMHgwMDc5LCAweDM3YTIsIDB4MzdhNSwgMHgzN2E3LCAweDM4MTcsIDB4MTA3OCwgMHgyOTZiLCAweGQ2ZmMsCi0JMHgwMGMwLCAweDM3ZmUsIDB4NzAwMCwgMHhhMDBkLCAweDAwNzksIDB4MzdhZSwgMHgyOWM1LCAweDM3YjgsCi0JMHgzN2I4LCAweDM3ZTgsIDB4MzdiOCwgMHgzN2ZiLCAweDM3YjYsIDB4MzdiNiwgMHgxMDc4LCAweDI5NmIsCi0JMHhhNjg0LCAweDAwNjAsIDB4MDA0MCwgMHgzN2U4LCAweGEwODYsIDB4MDA2MCwgMHgwMGMwLCAweDM3ZTUsCi0JMHhjNmFjLCAweGM2ZjQsIDB4YzZlZCwgMHg3ZTVhLCAweDZlYjYsIDB4NjgxYywgMHhjMGFjLCAweDY4MWUsCi0JMHhhMTg2LCAweDAwMDIsIDB4MDA0MCwgMHgzN2Q3LCAweDEwNzgsIDB4NDU4NiwgMHg2OWFjLCAweDY4YjAsCi0JMHhhMTE1LCAweDAwNDAsIDB4MzdkNywgMHgxMDc4LCAweDQ4ZjUsIDB4MDA3OCwgMHgzN2Q5LCAweDEwNzgsCi0JMHg0OGJkLCAweDc4MWIsIDB4MDA3OSwgMHg3MWQ0LCAweGQxYjQsIDB4MDBjMCwgMHgyOWMxLCAweDcwYTQsCi0JMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwgMHgyYTBiLCAweDAwN2MsIDB4ZDZlYywgMHgwMDQwLCAweDM3YzIsCi0JMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzN2ZiLCAweGQ2ZjQsIDB4MDBjMCwgMHgzN2Y1LCAweDY4MWIsCi0JMHgwMDE1LCAweDc4MWIsIDB4MDA3OSwgMHgwMDc4LCAweDI5YzEsIDB4NjgxYiwgMHgwMDA3LCAweDY4MmYsCi0JMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHgxMDc4LCAweDQzMTksIDB4MDA3YywgMHhjNmZjLCAweDdlNWEsCi0JMHg3YWRjLCAweDc5ZDgsIDB4NzhkMCwgMHg4MDFiLCAweDAwYzgsIDB4MzgwNywgMHg4MDAwLCAweGEwODQsCi0JMHgwMDNmLCAweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDZiOTgsIDB4MjEwMCwgMHhhMzAyLCAweDY4YjIsCi0JMHg2Yjk0LCAweDIyMDAsIDB4YTMwMywgMHg2OGFlLCAweDc4MWIsIDB4MDA3OSwgMHgwMDdjLCAweDEwNzgsCi0JMHgyOTZiLCAweDIzMDAsIDB4MDA3OSwgMHgzODFjLCAweDM4MjEsIDB4Mzg0NiwgMHgzOGE2LCAweDEwNzgsCi0JMHgyOTZiLCAweDcwMDAsIDB4MDA3OSwgMHgzODI0LCAweDM4MmMsIDB4MzgyZSwgMHgzODM3LCAweDM4MmMsCi0JMHgzODJjLCAweDM4MmMsIDB4MzgyYywgMHgzODJjLCAweDEwNzgsIDB4Mjk2YiwgMHg2OWFjLCAweDY4YjAsCi0JMHhhMTE1LCAweDAwNDAsIDB4MzgzNywgMHgxMDc4LCAweDQ4ZjUsIDB4MDA3OCwgMHgzODM5LCAweDEwNzgsCi0JMHg0OGJkLCAweDY4MWMsIDB4YzBiNCwgMHg2ODFlLCAweDcwZDQsIDB4ZDBiNCwgMHgwMGMwLCAweDI5YzEsCi0JMHg3MGE0LCAweGEwODYsIDB4MDAwMSwgMHgwMGMwLCAweDJhMGIsIDB4MDA3YywgMHhkNmZjLCAweDAwYzAsCi0JMHgzODk2LCAweDcwMDAsIDB4YTAwZCwgMHgwMDc5LCAweDM4NGQsIDB4MjljNSwgMHgzODVkLCAweDM4NTcsCi0JMHgzODhkLCAweDM4NWQsIDB4Mzg5MywgMHgzODU1LCAweDM4NTUsIDB4MTA3OCwgMHgyOTZiLCAweDY4OTQsCi0JMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsCi0JMHgzODhkLCAweGEwODYsIDB4MDA2MCwgMHgwMGMwLCAweDM4OGEsIDB4YTZiNCwgMHhiZmJmLCAweGM2ZWQsCi0JMHg3ZTVhLCAweDZlYjYsIDB4YTE4NiwgMHgwMDAyLCAweDAwNDAsIDB4Mzg3OSwgMHgxMDc4LCAweDQ1ODYsCi0JMHg2OWFjLCAweDY4YjAsIDB4YTExNSwgMHgwMDQwLCAweDM4NzksIDB4MTA3OCwgMHg0OGY1LCAweDAwNzgsCi0JMHgzODdiLCAweDEwNzgsIDB4NDhiZCwgMHg3ODFiLCAweDAwNzksIDB4NjgxYywgMHhjMGI0LCAweDY4MWUsCi0JMHg3MWQ0LCAweGQxYjQsIDB4MDBjMCwgMHgyOWMxLCAweDcwYTQsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsCi0JMHgyYTBiLCAweDAwN2MsIDB4ZDZlYywgMHgwMDQwLCAweDM4NjcsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCi0JMHgzODkzLCAweDY4MWIsIDB4MDAwNywgMHg3ODFiLCAweDAwZjksIDB4MDA3YywgMHhjNmZjLCAweDdlNWEsCi0JMHg3YWRjLCAweDc5ZDgsIDB4NmI5OCwgMHgyMTAwLCAweGEzMDIsIDB4NjhiMiwgMHg2Yjk0LCAweDIyMDAsCi0JMHhhMzAzLCAweDY4YWUsIDB4NzlkMiwgMHg3ODFiLCAweDAwNzksIDB4MDA3YywgMHhkNmRjLCAweDAwNDAsCi0JMHgzOGFmLCAweDc4MmIsIDB4MzAwOSwgMHg3ODFiLCAweDAwNzksIDB4MDA3OCwgMHgyOWMxLCAweDc4ODQsCi0JMHhjMGFjLCAweDc4ODYsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDgsIDB4MDBjMCwgMHgzOGMyLCAweGE0ODQsCi0JMHgwMjAwLCAweDAwNDAsIDB4MzhiYywgMHhjNmY1LCAweGM2ZGQsIDB4N2U1YSwgMHg3ODFiLCAweDAwNzksCi0JMHgwMDc4LCAweDI5YzEsIDB4NjgyMCwgMHhjMDk1LCAweDY4MjIsIDB4MTA3OCwgMHg0MjkyLCAweGM2ZGQsCi0JMHgxMDc4LCAweDQwYzgsIDB4NzgxYiwgMHgwMDc4LCAweDAwNzgsIDB4MjljMSwgMHgyMzAwLCAweDAwNzksCi0JMHgzOGQxLCAweDM4ZDQsIDB4MzhkNiwgMHgzOGQ4LCAweDEwNzgsIDB4Mjk2YiwgMHgwMDc4LCAweDQwYzEsCi0JMHhkNmQ0LCAweDAwYzAsIDB4MzkxMywgMHg3OWU0LCAweGQxYWMsIDB4MDA0MCwgMHgzOGU2LCAweDc4ZWMsCi0JMHhhMDg0LCAweDAwMDMsIDB4MDA0MCwgMHgzOGU2LCAweDc4MmIsIDB4MzAwOSwgMHg3ODliLCAweDAwNjAsCi0JMHg3OGFiLCAweDAwMDAsIDB4YTY4NCwgMHhmZmZiLCAweDc4NWEsIDB4NzllNCwgMHhkMWFjLCAweDAwNDAsCi0JMHgzOGY2LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwYzAsIDB4MzkwZiwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHgzOTBiLCAweDY4MjAsIDB4ZDBjNCwgMHgwMDQwLCAweDM5MGIsCi0JMHgwYzdlLCAweDcwNTgsIDB4MjA2MCwgMHg2MDA0LCAweGMwOWQsIDB4NjAwNiwgMHg2MDA4LCAweGEwODQsCi0JMHgwMGZmLCAweDYwMGEsIDB4MGM3ZiwgMHgyMDAxLCAweDAwMTQsIDB4MDA3OCwgMHgzM2ZhLCAweGExODQsCi0JMHgwMDA3LCAweDAwNzksIDB4Mzk0OSwgMHg3YTkwLCAweGEyOTQsIDB4MDAwNywgMHg3ODliLCAweDAwNjAsCi0JMHg3OWE4LCAweDgxZmYsIDB4MDA0MCwgMHgzOTQ3LCAweDc4OWIsIDB4MDAxMCwgMHg3YmE4LCAweGEzODQsCi0JMHgwMDAxLCAweDAwYzAsIDB4MzkzYSwgMHg3YmE4LCAweDdiYTgsIDB4YTM4NiwgMHgwMDAxLCAweDAwYzAsCi0JMHgzOTJkLCAweDIwMDksIDB4ZmZmNywgMHgwMDc4LCAweDM5MzMsIDB4YTM4NiwgMHgwMDAzLCAweDAwYzAsCi0JMHgzOTNhLCAweDIwMDksIDB4ZmZlZiwgMHgwYzdlLCAweDcwNTgsIDB4MjA2MCwgMHg2MDA0LCAweGExMDQsCi0JMHg2MDA2LCAweDBjN2YsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsIDB4MDAwMCwgMHhhNjg0LCAweGZmZmIsCi0JMHg3ODVhLCAweDc4MmIsIDB4MzAwOSwgMHg2OTIwLCAweGExOGMsIDB4ZmNmZiwgMHg2OTIyLCAweDAwNzgsCi0JMHg0MzBkLCAweDMwOTAsIDB4MzA5YSwgMHgzOTUzLCAweDM5NTksIDB4Mzk1MSwgMHgzOTUxLCAweDQzMGQsCi0JMHg0MzBkLCAweDEwNzgsIDB4Mjk2YiwgMHg2OTIwLCAweGExOGMsIDB4ZmNmZiwgMHg2OTIyLCAweDAwNzgsCi0JMHg0MzEzLCAweDY5MjAsIDB4YTE4YywgMHhmY2ZmLCAweDY5MjIsIDB4MDA3OCwgMHg0MzBkLCAweDc5ZTQsCi0JMHhhMTg0LCAweDAwMzAsIDB4MDA0MCwgMHgzOTY5LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDAzLCAweDAwYzAsCi0JMHgzOTlkLCAweDcwMDAsIDB4YTA4NiwgMHgwMDA0LCAweDAwYzAsIDB4Mzk4MywgMHg3MDY0LCAweGEwODYsCi0JMHgwMDAyLCAweDAwYzAsIDB4Mzk3OSwgMHgyMDExLCAweDAwMDIsIDB4MjAxOSwgMHgwMDAwLCAweDAwNzgsCi0JMHgyZjFjLCAweDcwNjQsIDB4YTA4NiwgMHgwMDA2LCAweDAwNDAsIDB4Mzk3MywgMHg3MDY0LCAweGEwODYsCi0JMHgwMDA0LCAweDAwNDAsIDB4Mzk3MywgMHg3MDAwLCAweGEwODYsIDB4MDAwMCwgMHgwMDQwLCAweDI5YzEsCi0JMHg2OTIwLCAweGExODQsIDB4MDQyMCwgMHgwMDQwLCAweDM5OTIsIDB4YzFkNCwgMHg2OTIyLCAweDY4MTgsCi0JMHgwMDc4LCAweDMzZmEsIDB4NjgxOCwgMHhhMDhlLCAweDAwMDIsIDB4MDA0MCwgMHgzOTliLCAweGMwZmQsCi0JMHg2ODFhLCAweDIwMDEsIDB4MDAxNCwgMHgwMDc4LCAweDMzZmEsIDB4YTE4NCwgMHgwMDA3LCAweDAwNzksCi0JMHgzOWExLCAweDQzMGQsIDB4NDMwZCwgMHgzOWE5LCAweDQzMGQsIDB4NDM1NSwgMHg0MzU1LCAweDQzMGQsCi0JMHg0MzBkLCAweGQ2YmMsIDB4MDA0MCwgMHgzOWViLCAweDcxODQsIDB4ODFmZiwgMHgwMDQwLCAweDM5ZWIsCi0JMHhhMTgyLCAweDAwMGQsIDB4MDBkMCwgMHgzOWI4LCAweDcwODcsIDB4MDAwMCwgMHgwMDc4LCAweDM5YmQsCi0JMHhhMTgyLCAweDAwMGMsIDB4NzA4NiwgMHgyMDA5LCAweDAwMGMsIDB4Nzg5YiwgMHgwMDYxLCAweDc5YWEsCi0JMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwgMHg3MDg4LCAweDgxMTQsIDB4YTIxMCwgMHg3MjhhLCAweGEwODAsCi0JMHgwMDBiLCAweGFkMDAsIDB4MjA5OCwgMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzOWRmLCAweDAwN2UsCi0JMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgzOWRiLCAweDIwYTEsCi0JMHgwMTJiLCAweDAwNzgsIDB4MzllMSwgMHgyMGExLCAweDAyMmIsIDB4MDA3OCwgMHgzOWUxLCAweDIwYTEsCi0JMHgwMTJiLCAweDc4OWIsIDB4MDAwMCwgMHg4MTA4LCAweDgxYWMsIDB4NTNhNiwgMHgxNDdmLCAweDEzN2YsCi0JMHgxNTdmLCAweDAwNzgsIDB4NDMxMywgMHhkNmQ0LCAweDAwYzAsIDB4M2EzZiwgMHg2ODIwLCAweGQwODQsCi0JMHgwMDQwLCAweDQzMTMsIDB4YTY4YywgMHgwMDYwLCAweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDM5ZmQsCi0JMHhhMDg2LCAweDAwNjAsIDB4MDBjMCwgMHgzOWZkLCAweGMxZjUsIDB4YzE5NCwgMHg3OTVhLCAweDY5YjYsCi0JMHg3ODliLCAweDAwNjAsIDB4NzhhYiwgMHgwMDAwLCAweDc4OWIsIDB4MDA2MSwgMHg2ODE4LCAweGMwZmQsCi0JMHg2ODFhLCAweDc4YWEsIDB4ODAwOCwgMHg4MTBjLCAweDAwNDAsIDB4M2UwNiwgMHhhMThjLCAweDAwZjgsCi0JMHgwMGMwLCAweDNlMDYsIDB4MTU3ZSwgMHgxMzdlLCAweDE0N2UsIDB4MDE3ZSwgMHgzMjA4LCAweGExOGMsCi0JMHgwMzAwLCAweDAwNDAsIDB4M2EyYiwgMHgwMDdlLCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsCi0JMHgwMDdmLCAweDAwNDAsIDB4M2EyNywgMHgyMGExLCAweDAxMmIsIDB4MDA3OCwgMHgzYTJkLCAweDIwYTEsCi0JMHgwMjJiLCAweDAwNzgsIDB4M2EyZCwgMHgyMGExLCAweDAxMmIsIDB4MDE3ZiwgMHg3ODliLCAweDAwMDAsCi0JMHg4MDAwLCAweDgwYWMsIDB4YWQ4MCwgMHgwMDBiLCAweDIwOTgsIDB4NTNhNiwgMHgxNDdmLCAweDEzN2YsCi0JMHgxNTdmLCAweDY4MTQsIDB4YzBmYywgMHg4MDA3LCAweDc4ODIsIDB4MDA3OCwgMHg0MzEzLCAweDY4MTgsCi0JMHhkMGZjLCAweDAwNDAsIDB4M2E0NSwgMHg2ODFiLCAweDAwMDgsIDB4NjgyMCwgMHhjMGFkLCAweDY4MjIsCi0JMHgxMDc4LCAweDQwZDAsIDB4NzgxYiwgMHgwMGVhLCAweDAwN2MsIDB4MjMwMCwgMHgwMDc5LCAweDNhNTAsCi0JMHgzYTU1LCAweDNiMmQsIDB4M2E1MywgMHgxMDc4LCAweDI5NmIsIDB4N2NkOCwgMHg3ZGRjLCAweDdmZDAsCi0JMHg4MmZmLCAweDAwYzAsIDB4M2E3ZSwgMHg3MjAwLCAweGEyODYsIDB4MDAwMywgMHgwMDQwLCAweDMzYzcsCi0JMHg3MWQ0LCAweGQxYmMsIDB4MDBjMCwgMHgzYTgxLCAweGQxYjQsIDB4MDA0MCwgMHgzYTgxLCAweDBkN2UsCi0JMHg3ODNiLCAweDg4MDAsIDB4NzgxYiwgMHgwMDRjLCAweDcwYmMsIDB4YTA2ZCwgMHg2OGI0LCAweGMwYTUsCi0JMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsIDB4NzhkMiwgMHg3OGRhLCAweGMxYjQsCi0JMHg3MWQ2LCAweDcwMDMsIDB4MDAzMCwgMHgwZDdmLCAweDAwNzgsIDB4M2E4NSwgMHg3MjAwLCAweDAwNzgsCi0JMHgzYTg1LCAweDc4M2IsIDB4MTgwMCwgMHg3ODFiLCAweDAwNGEsIDB4YTI4NCwgMHgwMDBmLCAweDAwNzksCi0JMHgzYTg5LCAweDNiMTgsIDB4M2FjNywgMHgzYTkzLCAweDMzZjYsIDB4M2E5MSwgMHgzYjE4LCAweDNhOTEsCi0JMHgzYTkxLCAweDEwNzgsIDB4Mjk2YiwgMHg2ODFjLCAweGQwZWMsIDB4MDA0MCwgMHgzYTlhLCAweDYwMDgsCi0JMHhjMDhkLCAweDYwMGEsIDB4NjkyMCwgMHhjMTg1LCAweDY5MjIsIDB4NjgwMCwgMHg2MDA2LCAweGEwMDUsCi0JMHgwMGMwLCAweDNhYTMsIDB4NjAwMiwgMHg2MDA4LCAweGMwZDQsIDB4NjAwYSwgMHg2ODFjLCAweGEwODQsCi0JMHgwMDBlLCAweDAwYzAsIDB4M2FiNywgMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzYWIzLCAweDIwMDksCi0JMHg5NGMwLCAweDAwNzgsIDB4M2FiYywgMHgyMDA5LCAweDk1ZDAsIDB4MDA3OCwgMHgzYWJjLCAweDcwMzAsCi0JMHg2OGJhLCAweDcxNDAsIDB4NzBjYywgMHhhMTA4LCAweDIxMDQsIDB4NjgwMiwgMHgyZDBhLCAweDcxNWUsCi0JMHhkNmRjLCAweDAwYzAsIDB4M2FjNywgMHhjNmZjLCAweDZlYjYsIDB4MDA3OCwgMHgzYjE4LCAweDZlYjYsCi0JMHhhNjg0LCAweDAwNjAsIDB4MDBjMCwgMHgzYWQxLCAweGE2ODQsIDB4N2ZmZiwgMHg2OGI2LCAweDAwNzgsCi0JMHgzYjE4LCAweGQ2ZGMsIDB4MDBjMCwgMHgzYWRmLCAweGE2ODQsIDB4N2ZmZiwgMHg2OGI2LCAweDY4OTQsCi0JMHg2OGE2LCAweDY4OTgsIDB4NjhhYSwgMHgxMDc4LCAweDQ1ODYsIDB4MDA3OCwgMHgzYjE4LCAweGQ2YWMsCi0JMHgwMDQwLCAweDNhZWIsIDB4YTAwNiwgMHgxMDc4LCAweDQ1ODYsIDB4MjQwOCwgMHgyNTEwLCAweDY5YWEsCi0JMHg2YWE2LCAweDAwNzgsIDB4M2FmYiwgMHgyNDA4LCAweDI1MTAsIDB4MjcwMCwgMHg4MDFiLCAweDAwYzgsCi0JMHgzYWYyLCAweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweGExMDgsIDB4YTI5MSwgMHgwMDAwLCAweDY5YWEsCi0JMHg2YWE2LCAweDEwNzgsIDB4NDU4NiwgMHhkNmZjLCAweDAwNDAsIDB4M2IxOCwgMHhhNjg0LCAweDdmZmYsCi0JMHg2OGI2LCAweDI1MTAsIDB4MjQwOCwgMHhkNmFjLCAweDAwYzAsIDB4M2IxMCwgMHgyNzAwLCAweDgwMWIsCi0JMHgwMGM4LCAweDNiMGIsIDB4ODAwMCwgMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsCisJMHgwMGZmLCAweGEyMDUsIDB4NjgyMiwgMHgxMDc4LCAweDIwNzMsIDB4MjAyMSwgMHg0ZjAyLCAweDI0MWMsCisJMHg4MzE5LCAweDIzMjIsIDB4NjAxMCwgMHg4MDAxLCAweDYwMTIsIDB4MDBjMCwgMHgzMDY0LCAweDIwMjEsCisJMHg0ZjA0LCAweDI0MDQsIDB4YzBhNSwgMHgyMDIyLCAweDYwMDgsIDB4YTA4NCwgMHhmOWVmLCAweDYwMGEsCisJMHgxMDc4LCAweDJiMjIsIDB4MTA3OCwgMHgzZTM2LCAweDAwN2MsIDB4YTA4NSwgMHgwMDAxLCAweDAwNzgsCisJMHgzMDZjLCAweDIzMDAsIDB4MDA3OSwgMHgzMDc0LCAweDMwNzksIDB4MzA3NywgMHgzMGY5LCAweDEwNzgsCisJMHgyOWIyLCAweDc4ZTQsIDB4YTAwNSwgMHgwMGQwLCAweDMwYWYsIDB4MzIwOCwgMHgwMDdlLCAweDIwMDEsCisJMHg0ZjA0LCAweDIwMDQsIDB4ZDBlYywgMHgwMDdmLCAweDAwNDAsIDB4MzA4YSwgMHhhMThjLCAweDAzMDAsCisJMHgwMDc4LCAweDMwOGMsIDB4YTE4YywgMHgwNDAwLCAweDAwNDAsIDB4MzA5MiwgMHgwMDE4LCAweDJhMDgsCisJMHgwMDc4LCAweDMwOTQsIDB4MDAyOCwgMHgyYTA4LCAweDIwMDgsIDB4YTA4NCwgMHgwMDMwLCAweDAwYzAsCisJMHgzMDliLCAweDAwNzgsIDB4MzdiOSwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDMwOTksCisJMHgyMTAwLCAweGEwODQsIDB4MDAwNywgMHgwMDc5LCAweDMwYTUsIDB4MzBkOSwgMHgzMGUzLCAweDMwY2UsCisJMHgzMGFkLCAweDQzYTUsIDB4NDNhNSwgMHgzMGFkLCAweDMwZWUsIDB4MTA3OCwgMHgyOWIyLCAweDcwMDAsCisJMHhhMDg2LCAweDAwMDQsIDB4MDBjMCwgMHgzMGM5LCAweDcwNjQsIDB4YTA4NiwgMHgwMDAyLCAweDAwYzAsCisJMHgzMGJmLCAweDIwMTEsIDB4MDAwMiwgMHgyMDE5LCAweDAwMDAsIDB4MDA3OCwgMHgyZjY1LCAweDcwNjQsCisJMHhhMDg2LCAweDAwMDYsIDB4MDA0MCwgMHgzMGI5LCAweDcwNjQsIDB4YTA4NiwgMHgwMDA0LCAweDAwNDAsCisJMHgzMGI5LCAweDc5ZTQsIDB4MjAwMSwgMHgwMDAzLCAweDAwNzgsIDB4MzQ0MywgMHg2ODE4LCAweGQwZmMsCisJMHgwMDQwLCAweDMwZDQsIDB4NjgxYiwgMHgwMDFkLCAweDEwNzgsIDB4NDExOCwgMHg3ODFiLCAweDAwNjQsCisJMHgwMDdjLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDMwZGYsIDB4NjgxYiwgMHgwMDFkLCAweDEwNzgsCisJMHg0MTE4LCAweDAwNzgsIDB4NDM4MSwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzMGU5LCAweDY4MWIsCisJMHgwMDFkLCAweDEwNzgsIDB4NDExOCwgMHg3ODFiLCAweDAwZjgsIDB4MDA3YywgMHg2ODE4LCAweGQwZmMsCisJMHgwMDQwLCAweDMwZjQsIDB4NjgxYiwgMHgwMDFkLCAweDEwNzgsIDB4NDExOCwgMHg3ODFiLCAweDAwYzgsCisJMHgwMDdjLCAweGE1ODQsIDB4MDAwZiwgMHgwMGMwLCAweDMxMTgsIDB4MTA3OCwgMHgyOWE1LCAweDcwMDAsCisJMHgwMDc5LCAweDMxMDIsIDB4MmEwYywgMHgzMTBhLCAweDMxMGMsIDB4M2RjNywgMHgzZGM3LCAweDNkYzcsCisJMHgzMTBhLCAweDMxMGEsIDB4MTA3OCwgMHgyOWIyLCAweDEwNzgsIDB4M2UzNiwgMHg2MDA4LCAweGEwODQsCisJMHhmYmVmLCAweDYwMGEsIDB4MTA3OCwgMHgzZGI4LCAweDAwNDAsIDB4M2RjNywgMHgwMDc4LCAweDJhMGMsCisJMHg3OGU0LCAweGEwMDUsIDB4MDBkMCwgMHgzMGFmLCAweDMyMDgsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsCisJMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDMxMjksIDB4YTE4YywgMHgwMzAwLCAweDAwNzgsCisJMHgzMTJiLCAweGExOGMsIDB4MDQwMCwgMHgwMDQwLCAweDMxMzEsIDB4MDAxOCwgMHgzMGFmLCAweDAwNzgsCisJMHgzMTMzLCAweDAwMjgsIDB4MzBhZiwgMHgyMDA4LCAweGEwODQsIDB4MDAzMCwgMHgwMGMwLCAweDMxM2IsCisJMHg3ODFiLCAweDAwNWIsIDB4MDA3YywgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDMxMzgsCisJMHgyMTAwLCAweGExODQsIDB4MDAwNywgMHgwMDc5LCAweDMxNDUsIDB4MzE1NCwgMHgzMTU4LCAweDMxNGYsCisJMHgzMTRkLCAweDQzYTUsIDB4NDNhNSwgMHgzMTRkLCAweDQzOWYsIDB4MTA3OCwgMHgyOWIyLCAweDEwNzgsCisJMHg0MTIwLCAweDc4MWIsIDB4MDA2NCwgMHgwMDdjLCAweDEwNzgsIDB4NDEyMCwgMHgwMDc4LCAweDQzODEsCisJMHgxMDc4LCAweDQxMjAsIDB4NzgxYiwgMHgwMGY4LCAweDAwN2MsIDB4MTA3OCwgMHg0MTIwLCAweDc4MWIsCisJMHgwMGM4LCAweDAwN2MsIDB4MjMwMCwgMHgwMDc5LCAweDMxNjUsIDB4MzE2YSwgMHgzMTY4LCAweDMxNmMsCisJMHgxMDc4LCAweDI5YjIsIDB4MDA3OCwgMHgzOWE4LCAweDY4MWIsIDB4MDAxNiwgMHg3OGEzLCAweDAwMDAsCisJMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDM5YTgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsCisJMHgwMDQwLCAweDM5YTgsIDB4YTE4NCwgMHgwMTAwLCAweDAwNDAsIDB4MzE3MCwgMHhhMTg0LCAweDAwMDcsCisJMHgwMDc5LCAweDMxODIsIDB4MzE4YSwgMHgzMTU4LCAweDMwY2UsIDB4NDM1ZCwgMHg0M2E1LCAweDQzYTUsCisJMHg0MzVkLCAweDQzOWYsIDB4MTA3OCwgMHg0MzY5LCAweDAwN2MsIDB4YTI4MiwgMHgwMDA1LCAweDAwNTAsCisJMHgzMTkzLCAweDEwNzgsIDB4MjliMiwgMHgyMzAwLCAweDAwNzksIDB4MzE5NiwgMHgzMTk5LCAweDMzYzksCisJMHgzM2Q0LCAweDIyMDAsIDB4MDA3OSwgMHgzMTljLCAweDMxYjYsIDB4MzFhMywgMHgzMWI2LCAweDMxYTEsCisJMHgzM2FjLCAweDEwNzgsIDB4MjliMiwgMHg3ODliLCAweDAwMTgsIDB4NzhhOCwgMHhhMDg0LCAweDAwZmYsCisJMHhhMDgyLCAweDAwMjAsIDB4MDA0OCwgMHg0MTA3LCAweGEwOGEsIDB4MDAwNCwgMHgwMGM4LCAweDQxMDcsCisJMHgwMDc5LCAweDMxYjIsIDB4NDEwNywgMHg0MTA3LCAweDQxMDcsIDB4NDBiMSwgMHg3ODliLCAweDAwMTgsCisJMHg3OWE4LCAweGExODQsIDB4MDA4MCwgMHgwMDQwLCAweDMxYzcsIDB4MDA3OCwgMHg0MTA3LCAweDcwMDAsCisJMHhhMDA1LCAweDAwYzAsIDB4MzFiZCwgMHgyMDExLCAweDAwMDQsIDB4MDA3OCwgMHgzYjkzLCAweGExODQsCisJMHgwMGZmLCAweGEwOGEsIDB4MDAxMCwgMHgwMGM4LCAweDQxMDcsIDB4MDA3OSwgMHgzMWNmLCAweDMxZTEsCisJMHgzMWRmLCAweDMxZjYsIDB4MzFmYSwgMHgzMmNkLCAweDQxMDcsIDB4NDEwNywgMHgzMmNmLCAweDQxMDcsCisJMHg0MTA3LCAweDMzYTgsIDB4MzNhOCwgMHg0MTA3LCAweDQxMDcsIDB4NDEwNywgMHgzM2FhLCAweDEwNzgsCisJMHgyOWIyLCAweGQ2ZTQsIDB4MDA0MCwgMHgzMWVjLCAweDIwMDEsIDB4MDMwMCwgMHg4MDAwLCAweDgwMDAsCisJMHg3ODNhLCAweDc4MWIsIDB4MDBjMywgMHgwMDdjLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDMxZjQsCisJMHg2ODFiLCAweDAwMWQsIDB4MDA3OCwgMHgzMWU0LCAweDAwNzgsIDB4NDM1ZCwgMHg2ODFiLCAweDAwMWQsCisJMHgwMDc4LCAweDQxMTEsIDB4NjkyMCwgMHg2OTIyLCAweGE2ODQsIDB4MTgwMCwgMHgwMGMwLCAweDMyNWYsCisJMHg2ODIwLCAweGQwODQsIDB4MDBjMCwgMHgzMjY1LCAweDY4MTgsIDB4YTA4NiwgMHgwMDA4LCAweDAwYzAsCisJMHgzMjBiLCAweDY4MWIsIDB4MDAwMCwgMHhkNmQ0LCAweDAwNDAsIDB4MzJjYSwgMHhkNmJjLCAweDAwNDAsCisJMHgzMjRiLCAweDcwODcsIDB4MDAwMCwgMHg2ODE4LCAweGEwODQsIDB4MDAzZiwgMHhhMDhhLCAweDAwMGQsCisJMHgwMDUwLCAweDMyNGIsIDB4YTA4YSwgMHgwMDBjLCAweDcxODYsIDB4MjAwMSwgMHgwMDBjLCAweDgwMGMsCisJMHg3MThhLCAweDc4OWIsIDB4MDA2MSwgMHg3OGFhLCAweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDAxN2UsCisJMHgzMjA4LCAweGExOGMsIDB4MDMwMCwgMHgwMDQwLCAweDMyM2QsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsCisJMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDMyMzksIDB4MjBhMSwgMHgwMTJiLCAweDAwNzgsCisJMHgzMjNmLCAweDIwYTEsIDB4MDIyYiwgMHgwMDc4LCAweDMyM2YsIDB4MjBhMSwgMHgwMTJiLCAweDAxN2YsCisJMHg3ODliLCAweDAwMDAsIDB4ODAwMCwgMHg4MGFjLCAweGFkODAsIDB4MDAwYiwgMHgyMDk4LCAweDUzYTYsCisJMHgxNDdmLCAweDEzN2YsIDB4MTU3ZiwgMHg2MDM4LCAweGEwMDUsIDB4MDBjMCwgMHgzMjVhLCAweDY4MWMsCisJMHhhMDg0LCAweDAwMGUsIDB4MDA0MCwgMHg0MTExLCAweDEwNzgsIDB4NDEyNywgMHg3ODJiLCAweDMwMDgsCisJMHgwMDc4LCAweDMyNWMsIDB4ODAwMSwgMHg2MDNhLCAweDc4MWIsIDB4MDA2NywgMHgwMDdjLCAweGQ2ZTQsCisJMHgwMDQwLCAweDMyNjUsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsCisJMHgzMmM3LCAweGQ2ZGMsIDB4MDA0MCwgMHgzMmM3LCAweGQ2ZmMsIDB4MDBjMCwgMHgzMjcxLCAweDAwNzgsCisJMHgzMjg4LCAweGM2ZmMsIDB4N2U1YSwgMHg2ZWI2LCAweDdhZGMsIDB4NzlkOCwgMHg3OGQwLCAweDgwMWIsCisJMHgwMGM4LCAweDMyN2IsIDB4ODAwMCwgMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsCiAJMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsCi0JMHg3MDAwLCAweGEwODYsIDB4MDAzMCwgMHgwMGMwLCAweDI5YzUsIDB4NzAwMywgMHgwMDAyLCAweDcwYmMsCi0JMHhhMDZkLCAweDY4YmMsIDB4NzA0MiwgMHg3MGI4LCAweGEwNjUsIDB4NjhjMCwgMHg3MDVhLCAweDJkMDAsCi0JMHg3MDRlLCAweGFkODAsIDB4MDAwOSwgMHg3MDQ2LCAweDAwN2MsIDB4YTU4NiwgMHg4ODAwLCAweDAwYzAsCi0JMHgzYjNhLCAweDcwMDMsIDB4MDAwMCwgMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwgMHg2MDA4LCAweGEwODQsCi0JMHhmYmVmLCAweDYwMGEsIDB4MDA3OCwgMHg0MGMxLCAweDcwNDcsIDB4MDAwMCwgMHhhMjgyLCAweDAwMDYsCi0JMHgwMDUwLCAweDNiNDQsIDB4MTA3OCwgMHgyOTZiLCAweDIzMDAsIDB4MDA3OSwgMHgzYjQ3LCAweDNiNGEsCi0JMHgzYjVjLCAweDNiNjgsIDB4MjIwMCwgMHgwMDc5LCAweDNiNGQsIDB4M2I1MywgMHg0MGMxLCAweDNiNTUsCi0JMHgzYjUzLCAweDNiYTIsIDB4M2JmNywgMHgxMDc4LCAweDI5NmIsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsCi0JMHgxMDc4LCAweDNjODEsIDB4MDA3OCwgMHg0MGI3LCAweDEwNzgsIDB4M2I3OSwgMHgwMDc5LCAweDNiNjAsCi0JMHg0MGMxLCAweDNiNjYsIDB4M2I2NiwgMHgzYmEyLCAweDNiNjYsIDB4NDBjMSwgMHgxMDc4LCAweDI5NmIsCi0JMHgxMDc4LCAweDNiNzksIDB4MDA3OSwgMHgzYjZjLCAweDNiNzQsIDB4M2I3MiwgMHgzYjcyLCAweDNiNzQsCi0JMHgzYjcyLCAweDNiNzQsIDB4MTA3OCwgMHgyOTZiLCAweDEwNzgsIDB4NDBkYiwgMHg3ODFiLCAweDAwNzgsCi0JMHgwMDdjLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDAwYzAsIDB4M2I4YSwgMHgxMDc4LCAweDNkZWQsCi0JMHgwMDc4LCAweDNiODQsIDB4MTA3OCwgMHg0NTg2LCAweDYwMDgsIDB4YTA4NCwgMHhmYmVmLCAweDYwMGEsCi0JMHgwMDc4LCAweDNiOGYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwgMHgzYjgyLCAweDcwMDMsCi0JMHgwMDA1LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNiOTksIDB4MjAwMSwgMHg5NWUwLCAweDAwNzgsCi0JMHgzYjliLCAweDIwMDEsIDB4OTYxMiwgMHgyMDY4LCAweDcwNGUsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsCi0JMHgyMjAwLCAweDAwN2MsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgzYmI0LCAweDcwZDQsCi0JMHhjMGI1LCAweDcwZDYsIDB4MmMwMCwgMHg3MGJhLCAweDJkMDAsIDB4NzBiZSwgMHgwMDc4LCAweDNiYjksCi0JMHgxMDc4LCAweDQ1ODYsIDB4MDA3OCwgMHgzYmI5LCAweDcwMDAsIDB4YTA4NiwgMHgwMDAzLCAweDAwNDAsCi0JMHgzYmIwLCAweDcwMDMsIDB4MDAwMSwgMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwgMHg3ODliLCAweDAwMTgsCi0JMHg3Y2E4LCAweGE0ODQsIDB4MDAxZiwgMHhhMjE1LCAweDIwNjksIDB4OTRjMCwgMHhiMjg0LCAweDAzMDAsCi0JMHgwMGMwLCAweDNiY2QsIDB4YzJmZCwgMHgyMDY5LCAweDk1ZDAsIDB4MmQwNCwgMHgyZDA4LCAweDcxNWUsCi0JMHhhMDZkLCAweDAwNDAsIDB4M2JkYSwgMHg2ODE0LCAweGEyMDYsIDB4MDA0MCwgMHgzYmRjLCAweDY4MDAsCi0JMHgwMDc4LCAweDNiY2UsIDB4MTA3OCwgMHgzYzgxLCAweDZlYjQsIDB4N2U1YSwgMHg2OTIwLCAweGExODQsCi0JMHgwYzAwLCAweDAwNDAsIDB4M2NhYiwgMHg3MDY0LCAweGEwODYsIDB4MDAwNiwgMHgwMGMwLCAweDNiZWUsCi0JMHg3MDc0LCAweGEyMDYsIDB4MDBjMCwgMHgzYmVlLCAweDcwNjYsIDB4NzA3ZSwgMHg2ODFiLCAweDAwMDUsCi0JMHhjMWFkLCAweGMxZDQsIDB4NjkyMiwgMHgxMDc4LCAweDQwZDAsIDB4MDA3OCwgMHgzY2FiLCAweDcyMDAsCi0JMHhhMjg2LCAweDAwMDIsIDB4MDBjMCwgMHgzYzA5LCAweDcwZDQsIDB4YzBiNSwgMHg3MGQ2LCAweDJjMDAsCi0JMHg3MGJhLCAweDJkMDAsIDB4NzBiZSwgMHgwMDc4LCAweDNjMGQsIDB4MTA3OCwgMHg0NTg2LCAweDAwNzgsCi0JMHgzYzBkLCAweGEyODYsIDB4MDAwMywgMHgwMDQwLCAweDNjMDUsIDB4NzAwMywgMHgwMDAxLCAweDdhODAsCi0JMHhhMjk0LCAweDBmMDAsIDB4Nzg5YiwgMHgwMDE4LCAweDdjYTgsIDB4YTQ4NCwgMHgwMDFmLCAweGEyMTUsCi0JMHhiMjg0LCAweDAzMDAsIDB4MDBjMCwgMHgzYzFkLCAweGMyZmQsIDB4NzlhOCwgMHg3OWE4LCAweGExOGMsCi0JMHgwMGZmLCAweDIxMTgsIDB4NzBjYywgMHhhMTY4LCAweDJkMDQsIDB4MmQwOCwgMHg3MTVlLCAweGEwNmQsCi0JMHgwMDQwLCAweDNjMzEsIDB4NjgxNCwgMHhhMjA2LCAweDAwNDAsIDB4M2M1YSwgMHg2ODAwLCAweDAwNzgsCi0JMHgzYzI1LCAweDcwMDMsIDB4MDAwNSwgMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzYzNiLCAweDIwMDEsCi0JMHg5NWUwLCAweDAwNzgsIDB4M2MzZCwgMHgyMDAxLCAweDk2MTIsIDB4MjA2OCwgMHg3MDRlLCAweDE1N2UsCi0JMHgyMGE5LCAweDAwMzIsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MDBmMCwgMHgzYzQyLCAweDE1N2YsCi0JMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzYzRmLCAweGMyZmMsIDB4MDA3OCwgMHgzYzUwLCAweGMyZmQsCi0JMHg2YTE2LCAweGFkODAsIDB4MDAwOSwgMHg3MDQ2LCAweDY4YjcsIDB4MDcwMCwgMHg2ODIzLCAweDA4MDAsCi0JMHg2ODI3LCAweDAwMDMsIDB4NmViNCwgMHg2OTIwLCAweGExODQsIDB4MGMwMCwgMHgwMDQwLCAweDNjYWIsCi0JMHhkMGRjLCAweDAwNDAsIDB4M2M3NiwgMHg3MDY0LCAweGEwODYsIDB4MDAwNCwgMHgwMGMwLCAweDNjNzIsCi0JMHg3MDc0LCAweGEyMDYsIDB4MDBjMCwgMHgzYzcyLCAweDcwNzgsIDB4YTMwNiwgMHgwMGMwLCAweDNjNzIsCi0JMHg3MDY2LCAweDcwN2UsIDB4MTA3OCwgMHg0MGQ3LCAweDAwNzgsIDB4M2NhYiwgMHg2ODFiLCAweDAwMDUsCi0JMHhjMWFkLCAweGMxZDQsIDB4NjkyMiwgMHgxMDc4LCAweDQwZDAsIDB4NzA3ZiwgMHgwMDAwLCAweDAwNzgsCi0JMHgzY2FiLCAweDcwMDMsIDB4MDAwNSwgMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzYzhiLCAweDIwMDEsCi0JMHg5NWUwLCAweDAwNzgsIDB4M2M4ZCwgMHgyMDAxLCAweDk2MTIsIDB4MjA2OCwgMHg3MDRlLCAweDE1N2UsCi0JMHgyMGE5LCAweDAwMzIsIDB4MjAwMywgMHgwMDAwLCAweDgwMDAsIDB4MDBmMCwgMHgzYzkyLCAweDE1N2YsCi0JMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzYzlmLCAweGMyZmMsIDB4MDA3OCwgMHgzY2EwLCAweGMyZmQsCi0JMHg2YTE2LCAweGFkODAsIDB4MDAwOSwgMHg3MDQ2LCAweDY4YjcsIDB4MDcwMCwgMHg2ODIzLCAweDA4MDAsCi0JMHg2ODI3LCAweDAwMDMsIDB4MDA3YywgMHhjNmVjLCAweGE2YWMsIDB4MDA2MCwgMHgwMDQwLCAweDNjZmQsCi0JMHg2Yjk4LCAweDZjOTQsIDB4NjlhYywgMHg2OGIwLCAweGExMDUsIDB4MDBjMCwgMHgzY2Q4LCAweDdiZDIsCi0JMHg3YmRhLCAweDdjZDYsIDB4N2NkZSwgMHhhNTg2LCAweDAwNjAsIDB4MDA0MCwgMHgzZDAyLCAweGQ2ZjQsCi0JMHgwMGMwLCAweDNjYzMsIDB4YzZlZCwgMHhhNmI0LCAweGI3ZmYsIDB4N2U1YSwgMHgyMDA5LCAweDAwNzksCi0JMHhkNjljLCAweDAwNDAsIDB4M2NkMCwgMHgyMDA5LCAweDAwNzgsIDB4MjAxOSwgMHgwMDAwLCAweDIzMjAsCi0JMHg3OTFhLCAweGQ2ZWMsIDB4MDA0MCwgMHgzZDBkLCAweDEwNzgsIDB4NDhiZCwgMHgwMDc4LCAweDNkMGQsCi0JMHg2OGIwLCAweGEzMWEsIDB4MjEwMCwgMHhhNDIzLCAweDI0MDAsIDB4YTMwNSwgMHgwMDQwLCAweDNkMDQsCi0JMHg3YmQyLCAweDdiZGEsIDB4N2NkNiwgMHg3Y2RlLCAweDY4YjAsIDB4ZDZmNCwgMHgwMGMwLCAweDNjZTksCi0JMHhjNmVkLCAweGM2ZjQsIDB4N2U1YSwgMHgyMDExLCAweDAwNzksIDB4ZDY5YywgMHgwMDQwLCAweDNjZjUsCi0JMHgyMDExLCAweDAwNzgsIDB4MjAxOSwgMHgwMDAwLCAweDIzMjAsIDB4N2ExYSwgMHhkNmVjLCAweDAwNDAsCi0JMHgzZDBkLCAweDEwNzgsIDB4NDhmNSwgMHgwMDc4LCAweDNkMGQsIDB4MjAxOSwgMHgwMDAwLCAweDIzMjAsCi0JMHgwMDc4LCAweDNkMDQsIDB4YTZiNCwgMHhiN2ZmLCAweDdlNWEsIDB4MjAwOSwgMHgwMDc5LCAweGQ2OWMsCi0JMHgwMDQwLCAweDNkMGMsIDB4MjAwOSwgMHgwMDc4LCAweDc5MWEsIDB4NjhjMCwgMHg3MDVhLCAweDJkMDAsCi0JMHg3MDRlLCAweDY4YzQsIDB4MjA2MCwgMHg3MWQ0LCAweDIwMDEsIDB4NGUwMSwgMHgyMDA0LCAweGQwYzQsCi0JMHgwMGMwLCAweDNkNjIsIDB4NzBkOCwgMHhhMDJkLCAweDAwNDAsIDB4M2QzYiwgMHhkMWJjLCAweDAwNDAsCi0JMHgzZDU1LCAweDdhODAsIDB4YTI5NCwgMHgwZjAwLCAweDcwZGMsIDB4YTIwNiwgMHgwMDQwLCAweDNkMmMsCi0JMHg3OGUwLCAweGE1MDQsIDB4MDBjMCwgMHgzZDYyLCAweDcwZGEsIDB4YzFiYywgMHg3MWQ2LCAweDAwNzgsCi0JMHgzZDYyLCAweDIwMzEsIDB4MDAwMSwgMHg4NTJjLCAweDAwNDgsIDB4M2QzYSwgMHg4NjMzLCAweDgyMTAsCi0JMHgwMDc4LCAweDNkMzMsIDB4MDA3YywgMHg3ZGUwLCAweGE1OTQsIDB4ZmYwMCwgMHgwMDQwLCAweDNkNDgsCi0JMHgyMDExLCAweDAwMDgsIDB4ODUyZiwgMHgxMDc4LCAweDNkMzEsIDB4ODYzNywgMHgwMDc4LCAweDNkNGEsCi0JMHgxMDc4LCAweDNkMzEsIDB4ODIxNywgMHg3ODgwLCAweGEwODQsIDB4MGYwMCwgMHhhMjA2LCAweDAwNDAsCi0JMHgzZDYyLCAweDcyZGUsIDB4NzZkYSwgMHgwMDc4LCAweDNkNjIsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsCi0JMHg3MGRjLCAweGEyMzYsIDB4MDA0MCwgMHgzZDUyLCAweDc4ZTAsIDB4YTUzNCwgMHgwMDQwLCAweDNkNTIsCi0JMHhjMWJkLCAweDcxZDYsIDB4ZDFiNCwgMHgwMGMwLCAweDI5YzEsIDB4MjMwMCwgMHhhNDA1LCAweDAwNDAsCi0JMHgyOWMxLCAweDcwYTQsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsIDB4MmEwYiwgMHgwMDdjLCAweDYwMjAsCi0JMHhhMDA1LCAweDAwNDAsIDB4M2Q3ZCwgMHg4MDAxLCAweDYwMjIsIDB4NjAwOCwgMHhhMDg1LCAweDAwMDgsCi0JMHg2MDBhLCAweDcwMGYsIDB4MDEwMCwgMHg3MDJjLCAweDYwMjYsIDB4MDA3YywgMHhhMDA2LCAweDEwNzgsCi0JMHg0NTg2LCAweDcwMDAsIDB4YTA4NiwgMHgwMDAyLCAweDAwNDAsIDB4M2Q4YiwgMHg3MDY0LCAweGEwODYsCi0JMHgwMDA1LCAweDAwYzAsIDB4M2Q5NSwgMHg2ODJiLCAweDAwMDAsIDB4NjgxNywgMHgwMDAwLCAweDY4MWIsCi0JMHgwMDAxLCAweDY4MjMsIDB4MDA0MCwgMHg2ODFmLCAweDAxMDAsIDB4NzAwMCwgMHhhMDg0LCAweDAwMGYsCi0JMHgwMDc5LCAweDNkOWEsIDB4MjljNSwgMHgzZGFhLCAweDNkYTQsIDB4M2RjYywgMHgzZGI0LCAweDI5YzUsCi0JMHgzZGEyLCAweDNkYTIsIDB4MTA3OCwgMHgyOTZiLCAweDEwNzgsIDB4M2RkNywgMHgxMDc4LCAweDNkZDAsCi0JMHgwMDc4LCAweDNkYjAsIDB4MTA3OCwgMHgzZGQ3LCAweDcwNWMsIDB4MjA2MCwgMHg2ODAwLCAweDYwMDIsCi0JMHgxMDc4LCAweDIwMmMsIDB4MDA3OCwgMHgyOWM1LCAweDcwNjQsIDB4NzA2NywgMHgwMDAwLCAweDcwODMsCi0JMHgwMDAwLCAweDAwNzksIDB4M2RiYiwgMHgzZGM4LCAweDNkYzgsIDB4M2RjMywgMHgzZGMzLCAweDNkYzMsCi0JMHgzZGM4LCAweDNkYzMsIDB4M2RjOCwgMHg3N2Q0LCAweGM3ZGQsIDB4NzdkNiwgMHgwMDc5LCAweDJmMzUsCi0JMHg3MDY3LCAweDAwMDAsIDB4MDA3OCwgMHgyOWM1LCAweDY4MWIsIDB4MDAwMCwgMHgwMDc4LCAweDM2YzgsCi0JMHg2ODAwLCAweGEwMDUsIDB4MDBjMCwgMHgzZGQ1LCAweDYwMDIsIDB4NjAwNiwgMHgwMDdjLCAweDY0MTAsCi0JMHg4NGZmLCAweDAwNDAsIDB4M2RlOSwgMHgyMDA5LCAweDRlMDIsIDB4MjEwNCwgMHg4MDAxLCAweDIwMGEsCi0JMHg4NDIxLCAweDY0MTIsIDB4MDBjMCwgMHgzZGU5LCAweDIwMjEsIDB4NGUwNCwgMHgyNDA0LCAweGMwYTUsCi0JMHgyMDIyLCAweDYwMDgsIDB4YzBhNCwgMHg2MDBhLCAweDAwN2MsIDB4NjAxOCwgMHhhMDA1LCAweDAwNDAsCi0JMHgzZGYzLCAweDgwMDEsIDB4NjAxYSwgMHgwMDdjLCAweDEwNzgsIDB4NDM4MywgMHg2ODFiLCAweDAwMTgsCi0JMHgwMDc4LCAweDNlMzQsIDB4MTA3OCwgMHg0MzgzLCAweDY4MWIsIDB4MDAxOSwgMHgwMDc4LCAweDNlMzQsCi0JMHgxMDc4LCAweDQzODMsIDB4NjgxYiwgMHgwMDFhLCAweDAwNzgsIDB4M2UzNCwgMHgxMDc4LCAweDQzODMsCi0JMHg2ODFiLCAweDAwMDMsIDB4MDA3OCwgMHgzZTM0LCAweDc3NzQsIDB4MTA3OCwgMHg0MWZlLCAweDcxNzgsCi0JMHhhMThjLCAweDAwZmYsIDB4MzIxMCwgMHhhMjk0LCAweDAzMDAsIDB4MDA0MCwgMHgzZTFiLCAweGExZTgsCi0JMHg5M2MwLCAweDAwNzgsIDB4M2UxZCwgMHhhMWU4LCAweDk0ZDAsIDB4MmQwNCwgMHgyZDA4LCAweDIwNjgsCi0JMHhhMDA1LCAweDAwYzAsIDB4M2UyNiwgMHg3MDdlLCAweDAwNzgsIDB4MjljNSwgMHg2ODE0LCAweDcyNzQsCi0JMHhhMjA2LCAweDAwNDAsIDB4M2UyZSwgMHg2ODAwLCAweDAwNzgsIDB4M2UxZSwgMHg2ODAwLCAweDIwMGEsCi0JMHg2ODFiLCAweDAwMDUsIDB4NzA3ZiwgMHgwMDAwLCAweDEwNzgsIDB4M2RkNywgMHg2ODIwLCAweGQwODQsCi0JMHgwMGMwLCAweDNlM2MsIDB4MTA3OCwgMHgzZGQwLCAweDEwNzgsIDB4M2RlZCwgMHg2ODFmLCAweDAwMDAsCi0JMHg2ODIzLCAweDAwMjAsIDB4MTA3OCwgMHgyMDJjLCAweDAwNzgsIDB4MjljNSwgMHhhMjgyLCAweDAwMDMsCi0JMHgwMGMwLCAweDQwYjcsIDB4N2RhOCwgMHhhNWFjLCAweDAwZmYsIDB4N2U1YSwgMHg3ZWE4LCAweGE2YjQsCi0JMHgwMGZmLCAweDY5MjAsIDB4YzFiZCwgMHg2OTIyLCAweGQxYzQsIDB4MDA0MCwgMHgzZWExLCAweGMxYzQsCi0JMHg2OTIyLCAweGE2YjQsIDB4MDBmZiwgMHgwMDQwLCAweDNlOGUsIDB4YTY4MiwgMHgwMDBjLCAweDAwNDgsCi0JMHgzZTY1LCAweDAwNDAsIDB4M2U2NSwgMHgyMDMxLCAweDAwMGMsIDB4MjUwMCwgMHhhMDg2LCAweDAwMGEsCi0JMHgwMDQwLCAweDNlNmMsIDB4ODUyYiwgMHg4NTJiLCAweDEwNzgsIDB4NDE5MCwgMHgwMDQwLCAweDNlNzQsCi0JMHgxMDc4LCAweDNmNmYsIDB4MDA3OCwgMHgzZTk3LCAweDEwNzgsIDB4NDE0YiwgMHgwYzdlLCAweDI5NjAsCi0JMHg2MDA0LCAweGEwODQsIDB4ZmZmNSwgMHg2MDA2LCAweDEwNzgsIDB4M2ZhNSwgMHgwYzdmLCAweDY5MjAsCi0JMHhjMWM1LCAweDY5MjIsIDB4N2U1OCwgMHhjNjk1LCAweDdlNWEsIDB4ZDZkNCwgMHgwMGMwLCAweDNlOGIsCi0JMHg3ODFiLCAweDAwNjQsIDB4MDA3YywgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHgwYzdlLCAweDI5NjAsCi0JMHg2MDA0LCAweGEwODQsIDB4ZmZmNSwgMHg2MDA2LCAweDEwNzgsIDB4M2ZhNSwgMHgwYzdmLCAweDdlNTgsCi0JMHhkNmQ0LCAweDAwYzAsIDB4M2U5ZSwgMHg3ODFiLCAweDAwNjcsIDB4MDA3YywgMHg3ODFiLCAweDAwNzksCi0JMHgwMDdjLCAweDBjN2UsIDB4NzA1OCwgMHgyMDYwLCAweDYxMDAsIDB4ZDFlNCwgMHgwMDQwLCAweDNlZWEsCi0JMHg2MjA4LCAweDgyMTcsIDB4YTI5NCwgMHgwMGZmLCAweGEyODIsIDB4MDAwYywgMHgwMDQ4LCAweDNlYjQsCi0JMHgwMDQwLCAweDNlYjQsIDB4MjAxMSwgMHgwMDBjLCAweDI2MDAsIDB4YTIwMiwgMHgwMGM4LCAweDNlYjksCi0JMHgyMjMwLCAweDYyMDgsIDB4YTI5NCwgMHgwMGZmLCAweDIwMDEsIDB4NGUwNSwgMHgyMDA0LCAweGQwZTQsCi0JMHgwMGMwLCAweDNlY2UsIDB4NzhlYywgMHhkMGU0LCAweDAwNDAsIDB4M2VjZSwgMHhhMjgyLCAweDAwMGEsCi0JMHgwMGM4LCAweDNlZDQsIDB4MjAxMSwgMHgwMDBhLCAweDAwNzgsIDB4M2VkNCwgMHhhMjgyLCAweDAwMGMsCi0JMHgwMGM4LCAweDNlZDQsIDB4MjAxMSwgMHgwMDBjLCAweDIyMDAsIDB4YTUwMiwgMHgwMGM4LCAweDNlZDksCi0JMHgyMjI4LCAweDEwNzgsIDB4NDE0ZiwgMHgyNTAwLCAweGEwODYsIDB4MDAwYSwgMHgwMDQwLCAweDNlZTIsCi0JMHg4NTJiLCAweDg1MmIsIDB4MTA3OCwgMHg0MTkwLCAweDAwNDAsIDB4M2VlYSwgMHgxMDc4LCAweDNmNmYsCi0JMHgwMDc4LCAweDNlZWUsIDB4MTA3OCwgMHg0MTRiLCAweDEwNzgsIDB4M2ZhNSwgMHg3ODU4LCAweGMwOTUsCi0JMHg3ODVhLCAweDBjN2YsIDB4NzgxYiwgMHgwMDc4LCAweDAwN2MsIDB4MGM3ZSwgMHgyOTYwLCAweDYwMDAsCi0JMHhkMGU0LCAweDAwYzAsIDB4M2YwYiwgMHhhMDg0LCAweDAwNDAsIDB4MDBjMCwgMHgzZjA1LCAweDYxMDQsCi0JMHhhMThjLCAweGZmZjUsIDB4NjEwNiwgMHgwYzdmLCAweDAwN2MsIDB4MjAxMSwgMHgwMDMyLCAweDIwMTksCi0JMHgwMDAwLCAweDAwNzgsIDB4M2YzNiwgMHg2OGEwLCAweGQwY2MsIDB4MDBjMCwgMHgzZjA1LCAweDYyMDgsCi0JMHhhMjk0LCAweDAwZmYsIDB4MjAwMSwgMHg0ZTA1LCAweDIwMDQsIDB4ZDBlNCwgMHgwMGMwLCAweDNmMjQsCi0JMHg3OGVjLCAweGQwZTQsIDB4MDA0MCwgMHgzZjI0LCAweGEyODIsIDB4MDAwYiwgMHgwMGM4LCAweDNmMjQsCi0JMHgyMDExLCAweDAwMGEsIDB4MDA3OCwgMHgzZjJhLCAweGEyODIsIDB4MDAwYywgMHgwMGM4LCAweDNmMmEsCi0JMHgyMDExLCAweDAwMGMsIDB4NjMwOCwgMHg4MzFmLCAweGEzOWMsIDB4MDBmZiwgMHhhMzgyLCAweDAwMGMsCi0JMHgwMDQ4LCAweDNmMzYsIDB4MDA0MCwgMHgzZjM2LCAweDIwMTksIDB4MDAwYywgMHg3OGFiLCAweDAwMDEsCi0JMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdhYWEsIDB4N2JhYSwgMHhhOGMwLCAweDAwMDUsCi0JMHg2ODIwLCAweGMwYzUsIDB4NjgyMiwgMHg3MGQ0LCAweGQwYjQsIDB4MDA0MCwgMHgzZjUyLCAweGMwYjQsCi0JMHg3MGQ2LCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsCi0JMHg4MDAxLCAweDYwMWEsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsIDB4Mjk2MCwgMHg2MTA0LCAweGExOGMsCi0JMHhmZmY1LCAweDYxMDYsIDB4MjAxMSwgMHgwMDMyLCAweDIwMTksIDB4MDAwMCwgMHgwMDc4LCAweDNmNjAsCi0JMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwgMHgwMDAzLCAweDc4YWIsIDB4MDAwMSwgMHg3YWFhLCAweDdiYWEsCi0JMHhhOGMwLCAweDAwMDUsIDB4NjgyMCwgMHhjMGM1LCAweDY4MjIsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsCi0JMHg3MTU4LCAweDIxNjAsIDB4MjAxOCwgMHhhMDhjLCAweDAwMjAsIDB4MDA0MCwgMHgzZjc4LCAweGMwYWMsCi0JMHgyMDA4LCAweGEwODQsIDB4ZmZmMCwgMHhhNjM1LCAweDdlODYsIDB4NjAxOCwgMHg3ODlhLCAweDdlYWUsCi0JMHg2NjEyLCAweDc4YTQsIDB4YTA4NCwgMHhmZmYwLCAweGExOGMsIDB4MDAwZiwgMHhhMTA1LCAweGMwZjQsCi0JMHhhMzljLCAweDAwMjAsIDB4MDA0MCwgMHgzZjhlLCAweGEwODUsIDB4NDAwMCwgMHhjMGZjLCAweGQwYjQsCi0JMHgwMGMwLCAweDNmOTMsIDB4YzBmZCwgMHg3OGE2LCAweDYwMTYsIDB4Nzg4YSwgMHhhNmI0LCAweDAwMGYsCi0JMHg4NjM3LCAweDgyMDQsIDB4ODAwNCwgMHhhMDg0LCAweDAwZmYsIDB4YTYwNSwgMHg2MDBlLCAweDYwMDQsCi0JMHhhMDg0LCAweGZmZjUsIDB4NjAwNiwgMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwgMHg3MDU4LCAweDIwNjAsCi0JMHg2MDE4LCAweDc4OWEsIDB4NzhhNCwgMHhhMDg0LCAweGZmZjAsIDB4NzhhNiwgMHg2MDEyLCAweDc4ODQsCi0JMHhhMDg0LCAweGZmZjAsIDB4Nzg4NiwgMHg2MDBjLCAweGEwODQsIDB4MDBmZiwgMHg2MDBlLCAweDBjN2YsCi0JMHgwMDdjLCAweGEyODIsIDB4MDAwMiwgMHgwMGMwLCAweDQwYjcsIDB4N2FhOCwgMHg2OTIwLCAweGMxYmQsCi0JMHg2OTIyLCAweGQxY2MsIDB4MDA0MCwgMHgzZmY0LCAweGMxY2MsIDB4NjkyMiwgMHhhMjk0LCAweDAwZmYsCi0JMHhhMjgyLCAweDAwMDIsIDB4MDBjOCwgMHg0MGI3LCAweDEwNzgsIDB4NDA0NCwgMHgxMDc4LCAweDNmYTUsCi0JMHhhOTgwLCAweDAwMDEsIDB4MjAwYywgMHgxMDc4LCAweDQxZmEsIDB4MTA3OCwgMHgzZWY1LCAweDg4ZmYsCi0JMHgwMDQwLCAweDNmZWEsIDB4Nzg5YiwgMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsCi0JMHg3ZTVhLCAweGQ2ZDQsIDB4MDBjMCwgMHgzZmU3LCAweDc4MWIsIDB4MDA2NCwgMHgwMDdjLCAweDc4MWIsCi0JMHgwMDc4LCAweDAwN2MsIDB4N2U1OCwgMHhkNmQ0LCAweDAwYzAsIDB4M2ZmMSwgMHg3ODFiLCAweDAwNjcsCi0JMHgwMDdjLCAweDc4MWIsIDB4MDA3OSwgMHgwMDdjLCAweGEyODIsIDB4MDAwMiwgMHgwMGM4LCAweDNmZmMsCi0JMHhhMjg0LCAweDAwMDEsIDB4MDA0MCwgMHg0MDA1LCAweDcxNTgsIDB4YTE4OCwgMHgwMDAwLCAweDIxMGMsCi0JMHhkMWVjLCAweDAwYzAsIDB4NDAwNSwgMHgyMDExLCAweDAwMDAsIDB4MTA3OCwgMHg0MTJjLCAweDEwNzgsCi0JMHg0MDQ0LCAweDEwNzgsIDB4M2ZhNSwgMHg3ODU4LCAweGMwOTUsIDB4Nzg1YSwgMHg3ODFiLCAweDAwNzgsCi0JMHgwMDdjLCAweDBjN2UsIDB4MDI3ZSwgMHgyOTYwLCAweDYwMDAsIDB4MjAxMSwgMHgwMDAxLCAweGQwZWMsCi0JMHgwMGMwLCAweDQwMjUsIDB4YTA4NCwgMHgwMDgwLCAweDAwYzAsIDB4NDAyMywgMHhjMWE0LCAweDYxMDYsCi0JMHhhMDA2LCAweDAwNzgsIDB4NDA0MSwgMHgyMDExLCAweDAwMDAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsCisJMHhkNmY0LCAweDAwNDAsIDB4MzI4ZSwgMHhjNmY0LCAweDdlNWEsIDB4NmViNiwgMHg3MDAwLCAweGEwODYsCisJMHgwMDAzLCAweDAwYzAsIDB4MzI5YywgMHgwMDdlLCAweDEwNzgsIDB4NDVkNiwgMHgxMDc4LCAweDQ5M2YsCisJMHgwMDdmLCAweDc4MWIsIDB4MDA3NiwgMHgwMDdjLCAweGEwMDYsIDB4MTA3OCwgMHg0YTQ0LCAweDZhYjAsCisJMHg2OWFjLCAweDZjOTgsIDB4NmI5NCwgMHgyMjAwLCAweGExMDUsIDB4MDA0MCwgMHgzMmFiLCAweDIyMDAsCisJMHhhNDIyLCAweDIxMDAsIDB4YTMxYiwgMHg2Y2FhLCAweDdjZDIsIDB4N2NkYSwgMHg2YmE2LCAweDdiZDYsCisJMHg3YmRlLCAweDIzMDAsIDB4YTQwNSwgMHgwMGMwLCAweDMyYmIsIDB4YzZmNSwgMHg3ZTVhLCAweDZlYjYsCisJMHg3ODFiLCAweDAwNzYsIDB4MDA3YywgMHg3ODFiLCAweDAwNzYsIDB4MjIwMCwgMHhhMTE1LCAweDAwYzAsCisJMHgzMmM0LCAweDEwNzgsIDB4NDkzZiwgMHgwMDdjLCAweDEwNzgsIDB4NDk3NywgMHgwMDdjLCAweDc4MWIsCisJMHgwMDc5LCAweDAwN2MsIDB4NzgxYiwgMHgwMDY3LCAweDAwN2MsIDB4MTA3OCwgMHgyOWIyLCAweDAwNzgsCisJMHgzMzFiLCAweDY5MjAsIDB4ZDFjNCwgMHgwMDQwLCAweDMyZTQsIDB4YzFjNCwgMHg2OTIyLCAweDBjN2UsCisJMHg3MDU4LCAweDIwNjAsIDB4NjAwMCwgMHhjMGU0LCAweDYwMDIsIDB4NjAwNCwgMHhhMDg0LCAweGZmZjUsCisJMHg2MDA2LCAweDBjN2YsIDB4MDA3OCwgMHgzMzBmLCAweGQxY2MsIDB4MDA0MCwgMHgzMzBmLCAweGMxY2MsCisJMHg2OTIyLCAweDBjN2UsIDB4NzA1OCwgMHgyMDYwLCAweDYwMDAsIDB4YzBlYywgMHg2MDAyLCAweDYwMDQsCisJMHhjMGE0LCAweDYwMDYsIDB4MjAwOCwgMHgyYzQ4LCAweDBjN2YsIDB4ZDE5YywgMHgwMDQwLCAweDMzMGYsCisJMHgxMDc4LCAweDQyNGEsIDB4MTA3OCwgMHgzZjNlLCAweDg4ZmYsIDB4MDA0MCwgMHgzMzBmLCAweDc4OWIsCisJMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDAwYzAsCisJMHgzMzBjLCAweDc4MWIsIDB4MDA2NCwgMHgwMDdjLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweDdlNTgsCisJMHhkNmQ0LCAweDAwYzAsIDB4MzMxNiwgMHg3ODFiLCAweDAwNjcsIDB4MDA3YywgMHg3ODFiLCAweDAwNzksCisJMHgwMDdjLCAweDAwNzgsIDB4NDEwYywgMHgyMDE5LCAweDAwMDAsIDB4Nzk5MCwgMHhhMThjLCAweDAwMDcsCisJMHgwMGMwLCAweDMzMjksIDB4NjgyMCwgMHhhMDg0LCAweDAxMDAsIDB4MDA0MCwgMHgzMzE5LCAweDIwMDksCisJMHgwMDA4LCAweDc4OWIsIDB4MDAxMCwgMHg3OGE4LCAweGEwOTQsIDB4MDBmZiwgMHhhMjg2LCAweDAwMDEsCisJMHgwMGMwLCAweDMzNDUsIDB4MjMwMCwgMHg3Y2E4LCAweGE0MDAsIDB4MjAxOCwgMHhhMTAyLCAweDAwNDAsCisJMHgzMzNkLCAweDAwNDgsIDB4MzMzZCwgMHgwMDc4LCAweDMzM2YsIDB4MDA3OCwgMHgzMmQxLCAweDI0YTgsCisJMHg3YWE4LCAweDAwZjAsIDB4MzMzZiwgMHgwMDc4LCAweDMzMmIsIDB4YTI4NCwgMHgwMGYwLCAweGEwODYsCisJMHgwMDIwLCAweDAwYzAsIDB4MzM5OSwgMHg4MzE4LCAweDgzMTgsIDB4MjMwMCwgMHhhMTAyLCAweDAwNDAsCisJMHgzMzU1LCAweDAwNDgsIDB4MzM1NSwgMHgwMDc4LCAweDMzOTYsIDB4YTI4NiwgMHgwMDIzLCAweDAwNDAsCisJMHgzMzE5LCAweDY4MWMsIDB4YTA4NCwgMHhmZmYxLCAweDY4MWUsIDB4N2U1OCwgMHhhNjg0LCAweGZmZjEsCisJMHhjMGE1LCAweDIwMzAsIDB4N2U1YSwgMHg2MDA4LCAweGMwYTUsIDB4NjAwYSwgMHgwYzdlLCAweDcwNTgsCisJMHgyMDYwLCAweDYwMDQsIDB4MjAwOCwgMHgyYzQ4LCAweDBjN2YsIDB4ZDFhNCwgMHgwMDQwLCAweDMzNzYsCisJMHgxMDc4LCAweDQyNGEsIDB4MTA3OCwgMHg0MDVlLCAweDAwNzgsIDB4MzM4NCwgMHgwYzdlLCAweDcwNTgsCisJMHgyMDYwLCAweDYwMDQsIDB4MjAwOCwgMHgyYzQ4LCAweDBjN2YsIDB4ZDE5YywgMHgwMDQwLCAweDMzMGYsCisJMHgxMDc4LCAweDQyNGEsIDB4MTA3OCwgMHgzZjNlLCAweDg4ZmYsIDB4MDA0MCwgMHgzMzBmLCAweDc4OWIsCisJMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHhjNjk1LCAweDdlNWEsIDB4ZDZkNCwgMHgwMGMwLCAweDMzOTMsCisJMHg3ODFiLCAweDAwNjQsIDB4MDA3YywgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHg3YWE4LCAweDAwNzgsCisJMHgzMzJiLCAweDgzMTgsIDB4MjMwMCwgMHhhMTAyLCAweDAwNDAsIDB4MzNhMiwgMHgwMDQ4LCAweDMzYTIsCisJMHgwMDc4LCAweDMzMmIsIDB4YTI4NCwgMHgwMDgwLCAweDAwYzAsIDB4NDExMSwgMHgwMDc4LCAweDQxMGMsCisJMHgwMDc4LCAweDQxMTEsIDB4MDA3OCwgMHg0MTA3LCAweDcwNTgsIDB4YTA0ZCwgMHg3ODliLCAweDAwMTgsCisJMHg3OGE4LCAweGEwODQsIDB4MDBmZiwgMHhhMDhlLCAweDAwMDEsIDB4MDA0MCwgMHgzM2I5LCAweDEwNzgsCisJMHgyOWIyLCAweDdhYTgsIDB4YTI5NCwgMHgwMGZmLCAweDc4YTgsIDB4YTA4NCwgMHgwMGZmLCAweGEwOGEsCisJMHgwMDA0LCAweDAwYzgsIDB4NDEwNywgMHgwMDc5LCAweDMzYzUsIDB4NDEwNywgMHgzZThmLCAweDQxMDcsCisJMHg0MDA2LCAweGEyODIsIDB4MDAwMCwgMHgwMGMwLCAweDMzY2YsIDB4MTA3OCwgMHgyOWIyLCAweDEwNzgsCisJMHg0MTE4LCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweGEyODIsIDB4MDAwMywgMHgwMGMwLCAweDMzZGEsCisJMHgxMDc4LCAweDI5YjIsIDB4ZDRmYywgMHgwMGMwLCAweDMzZmEsIDB4NzA2NCwgMHhhMDA1LCAweDAwNDAsCisJMHgzM2UzLCAweDEwNzgsIDB4MjliMiwgMHg2ZjE0LCAweDc3NzYsIDB4YTdiYywgMHg4ZjAwLCAweDEwNzgsCisJMHg0MjRlLCAweDYwMDgsIDB4YTA4NSwgMHgwMDIxLCAweDYwMGEsIDB4ODczOCwgMHhhNzg0LCAweDAwMWYsCisJMHgwMGMwLCAweDMzZTcsIDB4MTA3OCwgMHg0MTFjLCAweDcwNjcsIDB4MDAwMiwgMHg3MDFmLCAweDAwMDksCisJMHgwMDc4LCAweDMzZmMsIDB4MTA3OCwgMHg0MTJiLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweGEyODIsCisJMHgwMDA0LCAweDAwNTAsIDB4MzQwNSwgMHgxMDc4LCAweDI5YjIsIDB4MjMwMCwgMHgwMDc5LCAweDM0MDgsCisJMHgzNDBiLCAweDM1Y2IsIDB4MzYwZSwgMHhhMjg2LCAweDAwMDMsIDB4MDA0MCwgMHgzNDQzLCAweDcyMDAsCisJMHg3Y2Q4LCAweDdkZGMsIDB4N2ZkMCwgMHg3MWQ0LCAweGQxYmMsIDB4MDBjMCwgMHgzNDNiLCAweGQxYjQsCisJMHgwMDQwLCAweDM0M2IsIDB4Nzg2OCwgMHhhMDg0LCAweDAwZmYsIDB4MDBjMCwgMHgzNDNiLCAweGEyODIsCisJMHgwMDAyLCAweDAwYzgsIDB4MzQzYiwgMHgwZDdlLCAweDc4M2IsIDB4ODMwMCwgMHg3ODFiLCAweDAwNGMsCisJMHg3MGJjLCAweGEwNmQsIDB4NjhiNCwgMHg3ODVhLCAweDY4OTQsIDB4NzhkNiwgMHg3OGRlLCAweDY4OTgsCisJMHg3OGQyLCAweDc4ZGEsIDB4YzFiNCwgMHg3MWQ2LCAweDcwMDMsIDB4MDAzMCwgMHgwZDdmLCAweDIwMDEsCisJMHgwMDAwLCAweDAwNzgsIDB4MzQ0NywgMHg3ODNiLCAweDEzMDAsIDB4NzgxYiwgMHgwMDRhLCAweDIwMDEsCisJMHgwMDAwLCAweDAwNzgsIDB4MzQ0NywgMHg3MjAwLCAweDdjZDgsIDB4N2RkYywgMHg3ZmQwLCAweDcwNGEsCisJMHg2OGEwLCAweGQwZWMsIDB4MDA0MCwgMHgzNDRmLCAweDYwMDgsIDB4YzA4ZCwgMHg2MDBhLCAweGEyODQsCisJMHgwMDBmLCAweDAwNzksIDB4MzQ1MywgMHgzNWFiLCAweDM0NjAsIDB4MzQ1ZCwgMHgzNzExLCAweDM3OWQsCisJMHgyYTBjLCAweDM0NWIsIDB4MzQ1YiwgMHgxMDc4LCAweDI5YjIsIDB4NjAwOCwgMHhjMGQ0LCAweDYwMGEsCisJMHhkNmU0LCAweDAwNDAsIDB4MzQ2OCwgMHg3MDQ4LCAweGEwODYsIDB4MDAxNCwgMHgwMGMwLCAweDM0ODgsCisJMHgxMDc4LCAweDQ1ZDYsIDB4MjAwOSwgMHgwMDAwLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDM0NzEsCisJMHg3MDQ4LCAweGEwODYsIDB4MDAxNCwgMHgwMDQwLCAweDM0ODIsIDB4NjgxOCwgMHhhMDg2LCAweDAwMDgsCisJMHgwMGMwLCAweDM1NjMsIDB4Nzg1OCwgMHhkMDljLCAweDAwNDAsIDB4MzU2MywgMHg2ODIwLCAweGQwYWMsCisJMHgwMDQwLCAweDM1NjMsIDB4NjgxYiwgMHgwMDE0LCAweDIwMDksIDB4MDAwMiwgMHgwMDc4LCAweDM0YzcsCisJMHg3ODY4LCAweGEwOGMsIDB4MDBmZiwgMHgwMDQwLCAweDM0YzcsIDB4YTE4NiwgMHgwMDA4LCAweDAwYzAsCisJMHgzNDllLCAweDYwMDgsIDB4YzBhNCwgMHg2MDBhLCAweDEwNzgsIDB4M2RiOCwgMHgwMDQwLCAweDM0YzcsCisJMHgxMDc4LCAweDNlMzYsIDB4MTA3OCwgMHg0NWQ2LCAweDAwNzgsIDB4MzRhZiwgMHhhMTg2LCAweDAwMjgsCisJMHgwMGMwLCAweDM0YzcsIDB4NjAxOCwgMHhhMDA1LCAweDAwNDAsIDB4MzQ5MSwgMHg4MDAxLCAweDAwNDAsCisJMHgzNDkxLCAweDgwMDEsIDB4MDA0MCwgMHgzNDkxLCAweDYwMWUsIDB4MDA3OCwgMHgzNDkxLCAweDY4MjAsCisJMHhkMDg0LCAweDAwNDAsIDB4MmEwYywgMHhjMDg0LCAweDY4MjIsIDB4MTA3OCwgMHgyYjEzLCAweDcwNWMsCisJMHgwYzdlLCAweDIwNjAsIDB4NjgwMCwgMHg2MDAyLCAweDBjN2YsIDB4NjAwNCwgMHg2ODAyLCAweGEwMDUsCisJMHgyZDAwLCAweDAwYzAsIDB4MzRjNCwgMHg2MDAyLCAweDYwMDYsIDB4MDA3OCwgMHgyYTBjLCAweDAxN2UsCisJMHg4MWZmLCAweDAwYzAsIDB4MzUxMSwgMHg3MDAwLCAweGEwODYsIDB4MDAzMCwgMHgwMDQwLCAweDM1MTEsCisJMHg3MWQ0LCAweGQxYmMsIDB4MDBjMCwgMHgzNTExLCAweGQxYjQsIDB4MDBjMCwgMHgzNGY4LCAweDcwNjAsCisJMHhhMDA1LCAweDAwYzAsIDB4MzUxMSwgMHg3MGE0LCAweGEwODYsIDB4MDAwMSwgMHgwMDQwLCAweDM1MTEsCisJMHg3MDAzLCAweDAwMDAsIDB4MDQ3ZSwgMHgwNTdlLCAweDA3N2UsIDB4MDY3ZSwgMHgwYzdlLCAweDBkN2UsCisJMHgxMDc4LCAweDJhMzUsIDB4MGQ3ZiwgMHgwYzdmLCAweDA2N2YsIDB4MDc3ZiwgMHgwNTdmLCAweDA0N2YsCisJMHg3MWQ0LCAweGQxYjQsIDB4MDBjMCwgMHgzNTExLCAweDcwMDMsIDB4MDA0MCwgMHgwMDc4LCAweDM1MTEsCisJMHgxMDc4LCAweDQzYjAsIDB4MDBjMCwgMHgzNTExLCAweDc4MWIsIDB4MDA1YiwgMHgwZDdlLCAweDcwYmMsCisJMHhhMDZkLCAweDY4YjQsIDB4Nzg1YSwgMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwgMHg2ODk4LCAweDc4ZDIsCisJMHg3OGRhLCAweGMxYjQsIDB4NzFkNiwgMHg3MDAzLCAweDAwMzAsIDB4NzgwOCwgMHhjMDhkLCAweDc4MGEsCisJMHgwZDdmLCAweDEwNzgsIDB4MzY0OCwgMHgwMTdmLCAweDgxZmYsIDB4MDA0MCwgMHgzNTYzLCAweGE2ODQsCisJMHhkZjAwLCAweDY4MWUsIDB4NjgyYiwgMHgwMDAwLCAweDZmMTQsIDB4YTE4NiwgMHgwMDAyLCAweDAwYzAsCisJMHgzNTY0LCAweDY4MTgsIDB4YTA4NiwgMHgwMDE0LCAweDAwYzAsIDB4MzUyZCwgMHgyMDA4LCAweGQ2ZTQsCisJMHgwMDQwLCAweDM1MmQsIDB4Nzg2OCwgMHhhMDhjLCAweDAwZmYsIDB4MTA3OCwgMHgyYjAxLCAweDEwNzgsCisJMHgyYjIyLCAweDY4MjAsIDB4ZDBkYywgMHgwMGMwLCAweDM1NjQsIDB4ODcxNywgMHhhMjk0LCAweDAwMGYsCisJMHg4MjEzLCAweDgyMTMsIDB4ODIxMywgMHhiMjg0LCAweDAzMDAsIDB4MDA0MCwgMHgzNTQzLCAweGEyOTAsCisJMHg1M2MwLCAweDAwNzgsIDB4MzU0NSwgMHhhMjkwLCAweDU0NDAsIDB4YTI5MCwgMHgwMDAwLCAweDIyMWMsCisJMHhkM2M0LCAweDAwYzAsIDB4MzU0ZCwgMHgwMDc4LCAweDM1NTMsIDB4ODIxMCwgMHgyMjA0LCAweGEwODUsCisJMHgwMDE4LCAweDIwMTIsIDB4ODIxMSwgMHhkM2Q0LCAweDAwNDAsIDB4MzU1ZSwgMHg2OGEwLCAweGQwYzQsCisJMHgwMGMwLCAweDM1NWUsIDB4MTA3OCwgMHgzNmMyLCAweDAwNzgsIDB4MmEwYywgMHg2MDA4LCAweGMwOGQsCisJMHg2MDBhLCAweDAwNzgsIDB4MzU2NCwgMHg2OTJhLCAweDY5MTYsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCisJMHgzNTZiLCAweDcwNDgsIDB4NjgxYSwgMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwgMHg2NDEwLCAweDg0ZmYsCisJMHgwMDQwLCAweDM1ODAsIDB4MjAwOSwgMHg0ZjAyLCAweDIxMDQsIDB4ODAwMSwgMHgyMDBhLCAweDg0MjEsCisJMHg2NDEyLCAweDAwYzAsIDB4MzU4MCwgMHgyMDIxLCAweDRmMDQsIDB4MjQwNCwgMHhjMGE1LCAweDIwMjIsCisJMHg2MDE4LCAweGEwMDUsIDB4MDA0MCwgMHgzNTg4LCAweDgwMDEsIDB4NjAxYSwgMHgwMGMwLCAweDM1OGIsCisJMHg2MDA4LCAweGMwYTQsIDB4NjAwYSwgMHg2ODIwLCAweGQwODQsIDB4MDBjMCwgMHgzNTk3LCAweDY4MDAsCisJMHhhMDA1LCAweDAwYzAsIDB4MzU5NCwgMHg2MDAyLCAweDYwMDYsIDB4MDA3OCwgMHgzNTliLCAweDcwNWMsCisJMHgyMDYwLCAweDY4MDAsIDB4NjAwMiwgMHgyMDYxLCAweDRmMDAsIDB4Njg4NywgMHgwMTAzLCAweDJkMDgsCisJMHgyMDZiLCAweDAwMDAsIDB4NjA2OCwgMHhhMDA1LCAweDYxNmEsIDB4MDA0MCwgMHgzNWFhLCAweDJkMDIsCisJMHgwMDc4LCAweDM1YWIsIDB4NjE2ZSwgMHg3MjAwLCAweGEyODYsIDB4MDAzMCwgMHgwMDQwLCAweDM1YmIsCisJMHhhMjg2LCAweDAwNDAsIDB4MDBjMCwgMHgyYTBjLCAweDcwMDMsIDB4MDAwMiwgMHg3MDRjLCAweDIwNjgsCisJMHg2OGM0LCAweDIwNjAsIDB4MDA3YywgMHg3MDAzLCAweDAwMDIsIDB4NzBiYywgMHhhMDZkLCAweDY4YmMsCisJMHg3MDQyLCAweDcwYjgsIDB4YTA2NSwgMHg2OGMwLCAweDcwNWEsIDB4MmQwMCwgMHg3MDRlLCAweGFkODAsCisJMHgwMDA5LCAweDcwNDYsIDB4MDA3YywgMHhhMjgyLCAweDAwMDQsIDB4MDA0OCwgMHgzNWQxLCAweDEwNzgsCisJMHgyOWIyLCAweDIyMDAsIDB4MDA3OSwgMHgzNWQ0LCAweDM1ZDgsIDB4MzVlOSwgMHgzNWY2LCAweDM1ZTksCisJMHhhNTg2LCAweDEzMDAsIDB4MDA0MCwgMHgzNWU5LCAweGE1ODYsIDB4ODMwMCwgMHgwMGMwLCAweDM1Y2YsCisJMHg3MDAzLCAweDAwMDAsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsCisJMHg2MDBhLCAweDcwMDAsIDB4YTA4NiwgMHgwMDA1LCAweDAwNDAsIDB4MzVmMywgMHgxMDc4LCAweDQxMTgsCisJMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHg3ODFiLCAweDAwNzksIDB4MDA3YywgMHg3ODkwLCAweDgwMDcsCisJMHg4MDAxLCAweGEwODQsIDB4MDAwNywgMHhhMDgwLCAweDAwMTgsIDB4Nzg5YSwgMHg3OWE4LCAweGExOGMsCisJMHgwMGZmLCAweGExODYsIDB4MDAwMywgMHgwMDQwLCAweDM2MGIsIDB4YTE4NiwgMHgwMDAwLCAweDAwNDAsCisJMHgzNjBiLCAweDAwNzgsIDB4NDEwNywgMHg3ODFiLCAweDAwNzksIDB4MDA3YywgMHg2ODIwLCAweGMwOTUsCisJMHg2ODIyLCAweDgyZmYsIDB4MDBjMCwgMHgzNjE4LCAweDEwNzgsIDB4NDExOCwgMHgwMDc4LCAweDM2MWYsCisJMHg4MjExLCAweDAwNDAsIDB4MzYxZCwgMHgxMDc4LCAweDI5YjIsIDB4MTA3OCwgMHg0MTJiLCAweDc4MWIsCisJMHgwMDc4LCAweDAwN2MsIDB4MTA3OCwgMHg0M2QzLCAweDc4MzAsIDB4YTA4NCwgMHgwMGMwLCAweDAwYzAsCisJMHgzNjQ1LCAweDAxN2UsIDB4MzIwOCwgMHgwMDdlLCAweDIwMDEsIDB4NGYwNCwgMHgyMDA0LCAweGQwZWMsCisJMHgwMDdmLCAweDAwNDAsIDB4MzYzNywgMHhhMThjLCAweDAzMDAsIDB4MDA3OCwgMHgzNjM5LCAweGExOGMsCisJMHgwNDAwLCAweDAxN2YsIDB4MDA0MCwgMHgzNjQwLCAweDAwMTgsIDB4MzY0NSwgMHgwMDc4LCAweDM2NDIsCisJMHgwMDI4LCAweDM2NDUsIDB4NzkxYSwgMHhhMDA2LCAweDAwN2MsIDB4YTA4NSwgMHgwMDAxLCAweDAwN2MsCisJMHhhNjg0LCAweDAwNjAsIDB4MDBjMCwgMHgzNjUyLCAweDY4MmYsIDB4MDAwMCwgMHg2ODMzLCAweDAwMDAsCisJMHgwMDc4LCAweDM2YzEsIDB4ZDZkYywgMHgwMGMwLCAweDM2NmEsIDB4NjhiNCwgMHhkMGRjLCAweDAwYzAsCisJMHgzNjZhLCAweDY5OTgsIDB4NmE5NCwgMHg2OTJlLCAweDZhMzIsIDB4NzA0OCwgMHhhMDA1LCAweDAwYzAsCisJMHgzNjY3LCAweDIyMDAsIDB4YTEwNSwgMHgwMDQwLCAweDQ1ZDYsIDB4NzA0YiwgMHgwMDE1LCAweDAwNzgsCisJMHg0NWQ2LCAweDAwN2MsIDB4ZDZhYywgMHgwMDQwLCAweDM2OTAsIDB4ZDZmNCwgMHgwMDQwLCAweDM2NzYsCisJMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsIDB4NDVkNiwgMHg2OGI0LCAweGEwODQsCisJMHg0MDAwLCAweGE2MzUsIDB4ZDZmNCwgMHgwMGMwLCAweDM2NzAsIDB4NzA0OCwgMHhhMDA1LCAweDAwYzAsCisJMHgzNjgzLCAweDcwNGIsIDB4MDAxNSwgMHhkNmRjLCAweDAwYzAsIDB4MzY4YywgMHg2OGI0LCAweGQwZGMsCisJMHgwMDQwLCAweDM2OGMsIDB4NmNhOCwgMHg2ZGE0LCAweDZjMmUsIDB4NmQzMiwgMHgwMDc4LCAweDQ1ZDYsCisJMHhkNmY0LCAweDAwNDAsIDB4MzY5OSwgMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDAwNzgsCisJMHg0NWQ2LCAweDY4YjQsIDB4YTA4NCwgMHg0ODAwLCAweGE2MzUsIDB4ZDZmNCwgMHgwMGMwLCAweDM2OTMsCisJMHg3MDQ4LCAweGEwMDUsIDB4MDBjMCwgMHgzNmE2LCAweDcwNGIsIDB4MDAxNSwgMHgyNDA4LCAweDI1MTAsCisJMHgyNzAwLCAweDgwZmIsIDB4MDBjOCwgMHgzNmFkLCAweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweGExMDgsCisJMHhhMjkxLCAweDAwMDAsIDB4NjkyZSwgMHg2YTMyLCAweDIxMDAsIDB4YTIwNSwgMHgwMGMwLCAweDM2YmEsCisJMHgwMDc4LCAweDQ1ZDYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDYsIDB4MDA0MCwgMHgzNmMxLCAweDAwNzgsCisJMHg0NWQ2LCAweDAwN2MsIDB4Njk0NiwgMHg2MDA4LCAweGMwY2QsIDB4ZDNjYywgMHgwMDQwLCAweDM2YzksCisJMHhjMDhkLCAweDYwMGEsIDB4NjgxOCwgMHg2ODNhLCAweDY4MWIsIDB4MDAwNiwgMHg2ODhmLCAweDAwMDAsCisJMHg2ODkzLCAweDAwMDAsIDB4NmEzMCwgMHg2OTJjLCAweDZhM2UsIDB4Njk0MiwgMHg2ODJmLCAweDAwMDMsCisJMHg2ODMzLCAweDAwMDAsIDB4NjgzNywgMHgwMDIwLCAweDY4OTcsIDB4MDAwMCwgMHg2ODliLCAweDAwMjAsCisJMHg3MDAwLCAweDAwNzksIDB4MzZlMywgMHgyYTBjLCAweDM2ZjUsIDB4MzZlZCwgMHgzNmViLCAweDM2ZWIsCisJMHgzNmViLCAweDM2ZWIsIDB4MzZlYiwgMHgxMDc4LCAweDI5YjIsIDB4NjgyMCwgMHhkMDg0LCAweDAwYzAsCisJMHgzNmY1LCAweDEwNzgsIDB4M2UxOSwgMHgwMDc4LCAweDM2ZmIsIDB4NzA1YywgMHgyYzUwLCAweDIwNjAsCisJMHg2ODAwLCAweDYwMDIsIDB4MmE2MCwgMHgzMjA4LCAweGExOGMsIDB4MDMwMCwgMHgwMDQwLCAweDM3MDQsCisJMHgyMDIxLCAweDRmNTgsIDB4MDA3OCwgMHgzNzA2LCAweDIwMjEsIDB4NGY5OCwgMHgyNDA0LCAweGEwMDUsCisJMHgwMDQwLCAweDM3MGQsIDB4MjAyMCwgMHgwMDc4LCAweDM3MDYsIDB4MmQyMiwgMHgyMDZiLCAweDAwMDAsCisJMHgwMDdjLCAweDEwNzgsIDB4M2UyMCwgMHgxMDc4LCAweDNlMzYsIDB4NjAwOCwgMHhjMGNjLCAweDYwMGEsCisJMHg2ODJiLCAweDAwMDAsIDB4Nzg5YiwgMHgwMDBlLCAweDZmMTQsIDB4NjkzOCwgMHg2OTFhLCAweDY5NDQsCisJMHg2OTE2LCAweDMyMDgsIDB4YTE4YywgMHgwMzAwLCAweDAwNDAsIDB4MzcyYSwgMHgyMDA5LCAweDAwMDAsCisJMHgwMDc4LCAweDM3MmMsIDB4MjAwOSwgMHgwMDAxLCAweDEwNzgsIDB4NGE4MSwgMHhkNmRjLCAweDAwNDAsCisJMHgzNzM0LCAweDY5MWMsIDB4YzFlZCwgMHg2OTFlLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDM3NDMsCisJMHg3ODY4LCAweGEwOGMsIDB4MDBmZiwgMHgwMDQwLCAweDM3NDEsIDB4NjgxYiwgMHgwMDFlLCAweDAwNzgsCisJMHgzNzQzLCAweDY4MWIsIDB4MDAwMCwgMHhiMjg0LCAweDAzMDAsIDB4MDBjMCwgMHgzNzRiLCAweDIwMjEsCisJMHg0Zjk4LCAweDAwNzgsIDB4Mzc0ZCwgMHgyMDIxLCAweDRmNTgsIDB4NjgwMCwgMHgyMDIyLCAweDZhM2MsCisJMHg2OTQwLCAweDZhMzIsIDB4NjkyZSwgMHg2OGMwLCAweDIwNjAsIDB4NjAwMCwgMHhkMGE0LCAweDAwNDAsCisJMHgzNzhkLCAweDIwNDEsIDB4MDAyMSwgMHgyMDQ5LCAweDAwMDUsIDB4MjA1MSwgMHgwMDIwLCAweDBkN2UsCisJMHgwZjdlLCAweDE1N2UsIDB4MTQ3ZSwgMHgyMDc5LCAweDRmMDAsIDB4MTA3OCwgMHgxZTQ2LCAweDE0N2YsCisJMHgxNTdmLCAweDBmN2YsIDB4NzBjYywgMHgyMDEwLCAweDIwMDksIDB4MDEwMSwgMHgwMjdlLCAweDIyMDQsCisJMHhhMDZkLCAweDAwNDAsIDB4Mzc3ZCwgMHg2ODE0LCAweGE3MDYsIDB4MDA0MCwgMHgzNzdhLCAweDY4MDAsCisJMHgwMDc4LCAweDM3NzAsIDB4NjgyMCwgMHhjMGQ1LCAweDY4MjIsIDB4MDI3ZiwgMHg4MjEwLCAweDgxMDksCisJMHgwMGMwLCAweDM3NmUsIDB4MGQ3ZiwgMHg3MDY3LCAweDAwMDMsIDB4NzA3ZiwgMHgwMDAwLCAweDc3NzYsCisJMHg3MDgzLCAweDAwMGYsIDB4NzFkNCwgMHhjMWRjLCAweDcxZDYsIDB4NjgxOCwgMHhhMDg2LCAweDAwMDIsCisJMHgwMGMwLCAweDM3OTksIDB4NjgxNywgMHgwMDAwLCAweDY4MmIsIDB4MDAwMCwgMHg2ODFjLCAweGMwZWMsCisJMHg2ODFlLCAweDEwNzgsIDB4MjA3MywgMHgwMDc4LCAweDJhMGMsIDB4N2NkOCwgMHg3ZGRjLCAweDdmZDAsCisJMHgxMDc4LCAweDM2NDgsIDB4NjgyYiwgMHgwMDAwLCAweDc4OWIsIDB4MDAwZSwgMHg2ZjE0LCAweDEwNzgsCisJMHg0M2Q3LCAweGEwOGMsIDB4MDBmZiwgMHg2OTE2LCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDM3YjIsCisJMHg3MDQ4LCAweDY4MWEsIDB4YTY4YywgMHhkZjAwLCAweDY5MWUsIDB4NzA2NywgMHgwMDAwLCAweDAwNzgsCisJMHgyYTBjLCAweDcwMDAsIDB4YTAwNSwgMHgwMGMwLCAweDM3YmYsIDB4MDA3OCwgMHgyYTBjLCAweGEwMDYsCisJMHgxMDc4LCAweDQ1ZDYsIDB4NjkyMCwgMHhkMWFjLCAweDAwYzAsIDB4MzdjOCwgMHg2ODFiLCAweDAwMTQsCisJMHhhNjhjLCAweGRmMDAsIDB4NjkxZSwgMHg2ODJiLCAweDAwMDAsIDB4NjgyMCwgMHhhMDg0LCAweDAwZmYsCisJMHg2ODIyLCAweDcwMDAsIDB4MDA3OSwgMHgzN2Q0LCAweDJhMGMsIDB4MzdkZSwgMHgzN2RlLCAweDM3ZTEsCisJMHgzN2UxLCAweDM3ZTEsIDB4MzdkYywgMHgzN2RjLCAweDEwNzgsIDB4MjliMiwgMHg2ODE4LCAweDAwNzgsCisJMHgzNDQzLCAweDYwMDgsIDB4YzBhNCwgMHg2MDBhLCAweDY4MTcsIDB4MDAwMCwgMHgwMDc4LCAweDNkZGUsCisJMHgyMzAwLCAweDAwNzksIDB4MzdlYiwgMHgzN2VlLCAweDM3ZjAsIDB4Mzg2MCwgMHgxMDc4LCAweDI5YjIsCisJMHhkNmZjLCAweDAwYzAsIDB4Mzg0NywgMHg3MDAwLCAweGEwMGQsIDB4MDA3OSwgMHgzN2Y3LCAweDJhMGMsCisJMHgzODAxLCAweDM4MDEsIDB4MzgzMSwgMHgzODAxLCAweDM4NDQsIDB4MzdmZiwgMHgzN2ZmLCAweDEwNzgsCisJMHgyOWIyLCAweGE2ODQsIDB4MDA2MCwgMHgwMDQwLCAweDM4MzEsIDB4YTA4NiwgMHgwMDYwLCAweDAwYzAsCisJMHgzODJlLCAweGM2YWMsIDB4YzZmNCwgMHhjNmVkLCAweDdlNWEsIDB4NmViNiwgMHg2ODFjLCAweGMwYWMsCisJMHg2ODFlLCAweGExODYsIDB4MDAwMiwgMHgwMDQwLCAweDM4MjAsIDB4MTA3OCwgMHg0NWQ2LCAweDY5YWMsCisJMHg2OGIwLCAweGExMTUsIDB4MDA0MCwgMHgzODIwLCAweDEwNzgsIDB4NDk3NywgMHgwMDc4LCAweDM4MjIsCisJMHgxMDc4LCAweDQ5M2YsIDB4NzgxYiwgMHgwMDc5LCAweDcxZDQsIDB4ZDFiNCwgMHgwMGMwLCAweDJhMDgsCisJMHg3MGE0LCAweGEwODYsIDB4MDAwMSwgMHgwMGMwLCAweDJhNTIsIDB4MDA3YywgMHhkNmVjLCAweDAwNDAsCisJMHgzODBiLCAweDY4MTgsIDB4ZDBmYywgMHgwMDQwLCAweDM4NDQsIDB4ZDZmNCwgMHgwMGMwLCAweDM4M2UsCisJMHg2ODFiLCAweDAwMTUsIDB4NzgxYiwgMHgwMDc5LCAweDAwNzgsIDB4MmEwOCwgMHg2ODFiLCAweDAwMDcsCisJMHg2ODJmLCAweDAwMDAsIDB4NjgzMywgMHgwMDAwLCAweDEwNzgsIDB4NDM2OSwgMHgwMDdjLCAweGM2ZmMsCisJMHg3ZTVhLCAweDdhZGMsIDB4NzlkOCwgMHg3OGQwLCAweDgwMWIsIDB4MDBjOCwgMHgzODUwLCAweDgwMDAsCisJMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsIDB4NmI5OCwgMHgyMTAwLCAweGEzMDIsCisJMHg2OGIyLCAweDZiOTQsIDB4MjIwMCwgMHhhMzAzLCAweDY4YWUsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsCisJMHgxMDc4LCAweDI5YjIsIDB4MjMwMCwgMHgwMDc5LCAweDM4NjUsIDB4Mzg2YSwgMHgzODhmLCAweDM4ZWYsCisJMHgxMDc4LCAweDI5YjIsIDB4NzAwMCwgMHgwMDc5LCAweDM4NmQsIDB4Mzg3NSwgMHgzODc3LCAweDM4ODAsCisJMHgzODc1LCAweDM4NzUsIDB4Mzg3NSwgMHgzODc1LCAweDM4NzUsIDB4MTA3OCwgMHgyOWIyLCAweDY5YWMsCisJMHg2OGIwLCAweGExMTUsIDB4MDA0MCwgMHgzODgwLCAweDEwNzgsIDB4NDk3NywgMHgwMDc4LCAweDM4ODIsCisJMHgxMDc4LCAweDQ5M2YsIDB4NjgxYywgMHhjMGI0LCAweDY4MWUsIDB4NzBkNCwgMHhkMGI0LCAweDAwYzAsCisJMHgyYTA4LCAweDcwYTQsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsIDB4MmE1MiwgMHgwMDdjLCAweGQ2ZmMsCisJMHgwMGMwLCAweDM4ZGYsIDB4NzAwMCwgMHhhMDBkLCAweDAwNzksIDB4Mzg5NiwgMHgyYTBjLCAweDM4YTYsCisJMHgzOGEwLCAweDM4ZDYsIDB4MzhhNiwgMHgzOGRjLCAweDM4OWUsIDB4Mzg5ZSwgMHgxMDc4LCAweDI5YjIsCisJMHg2ODk0LCAweDc4ZDYsIDB4NzhkZSwgMHg2ODk4LCAweDc4ZDIsIDB4NzhkYSwgMHhhNjg0LCAweDAwNjAsCisJMHgwMDQwLCAweDM4ZDYsIDB4YTA4NiwgMHgwMDYwLCAweDAwYzAsIDB4MzhkMywgMHhhNmI0LCAweGJmYmYsCisJMHhjNmVkLCAweDdlNWEsIDB4NmViNiwgMHhhMTg2LCAweDAwMDIsIDB4MDA0MCwgMHgzOGMyLCAweDEwNzgsCisJMHg0NWQ2LCAweDY5YWMsIDB4NjhiMCwgMHhhMTE1LCAweDAwNDAsIDB4MzhjMiwgMHgxMDc4LCAweDQ5NzcsCisJMHgwMDc4LCAweDM4YzQsIDB4MTA3OCwgMHg0OTNmLCAweDc4MWIsIDB4MDA3OSwgMHg2ODFjLCAweGMwYjQsCisJMHg2ODFlLCAweDcxZDQsIDB4ZDFiNCwgMHgwMGMwLCAweDJhMDgsIDB4NzBhNCwgMHhhMDg2LCAweDAwMDEsCisJMHgwMGMwLCAweDJhNTIsIDB4MDA3YywgMHhkNmVjLCAweDAwNDAsIDB4MzhiMCwgMHg2ODE4LCAweGQwZmMsCisJMHgwMDQwLCAweDM4ZGMsIDB4NjgxYiwgMHgwMDA3LCAweDc4MWIsIDB4MDBmOSwgMHgwMDdjLCAweGM2ZmMsCisJMHg3ZTVhLCAweDdhZGMsIDB4NzlkOCwgMHg2Yjk4LCAweDIxMDAsIDB4YTMwMiwgMHg2OGIyLCAweDZiOTQsCisJMHgyMjAwLCAweGEzMDMsIDB4NjhhZSwgMHg3OWQyLCAweDc4MWIsIDB4MDA3OSwgMHgwMDdjLCAweGQ2ZGMsCisJMHgwMDQwLCAweDM4ZjgsIDB4NzgyYiwgMHgzMDA5LCAweDc4MWIsIDB4MDA3OSwgMHgwMDc4LCAweDJhMDgsCisJMHg3ODg0LCAweGMwYWMsIDB4Nzg4NiwgMHg3OGU0LCAweGEwODQsIDB4MDAwOCwgMHgwMGMwLCAweDM5MGIsCisJMHhhNDg0LCAweDAyMDAsIDB4MDA0MCwgMHgzOTA1LCAweGM2ZjUsIDB4YzZkZCwgMHg3ZTVhLCAweDc4MWIsCisJMHgwMDc5LCAweDAwNzgsIDB4MmEwOCwgMHg2ODIwLCAweGMwOTUsIDB4NjgyMiwgMHgxMDc4LCAweDQyZTIsCisJMHhjNmRkLCAweDEwNzgsIDB4NDExOCwgMHg3ODFiLCAweDAwNzgsIDB4MDA3OCwgMHgyYTA4LCAweDIzMDAsCisJMHgwMDc5LCAweDM5MWEsIDB4MzkxZCwgMHgzOTFmLCAweDM5MjEsIDB4MTA3OCwgMHgyOWIyLCAweDAwNzgsCisJMHg0MTExLCAweGQ2ZDQsIDB4MDBjMCwgMHgzOTVjLCAweDc5ZTQsIDB4ZDFhYywgMHgwMDQwLCAweDM5MmYsCisJMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDM5MmYsIDB4NzgyYiwgMHgzMDA5LCAweDc4OWIsCisJMHgwMDYwLCAweDc4YWIsIDB4MDAwMCwgMHhhNjg0LCAweGZmZmIsIDB4Nzg1YSwgMHg3OWU0LCAweGQxYWMsCisJMHgwMDQwLCAweDM5M2YsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsIDB4MDBjMCwgMHgzOTU4LCAweDIwMDEsCisJMHg0ZjA0LCAweDIwMDQsIDB4ZDBlNCwgMHgwMGMwLCAweDM5NTQsIDB4NjgyMCwgMHhkMGM0LCAweDAwNDAsCisJMHgzOTU0LCAweDBjN2UsIDB4NzA1OCwgMHgyMDYwLCAweDYwMDQsIDB4YzA5ZCwgMHg2MDA2LCAweDYwMDgsCisJMHhhMDg0LCAweDAwZmYsIDB4NjAwYSwgMHgwYzdmLCAweDIwMDEsIDB4MDAxNCwgMHgwMDc4LCAweDM0NDMsCisJMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwgMHgzOTkyLCAweDdhOTAsIDB4YTI5NCwgMHgwMDA3LCAweDc4OWIsCisJMHgwMDYwLCAweDc5YTgsIDB4ODFmZiwgMHgwMDQwLCAweDM5OTAsIDB4Nzg5YiwgMHgwMDEwLCAweDdiYTgsCisJMHhhMzg0LCAweDAwMDEsIDB4MDBjMCwgMHgzOTgzLCAweDdiYTgsIDB4N2JhOCwgMHhhMzg2LCAweDAwMDEsCisJMHgwMGMwLCAweDM5NzYsIDB4MjAwOSwgMHhmZmY3LCAweDAwNzgsIDB4Mzk3YywgMHhhMzg2LCAweDAwMDMsCisJMHgwMGMwLCAweDM5ODMsIDB4MjAwOSwgMHhmZmVmLCAweDBjN2UsIDB4NzA1OCwgMHgyMDYwLCAweDYwMDQsCisJMHhhMTA0LCAweDYwMDYsIDB4MGM3ZiwgMHg3ODliLCAweDAwNjAsIDB4NzhhYiwgMHgwMDAwLCAweGE2ODQsCisJMHhmZmZiLCAweDc4NWEsIDB4NzgyYiwgMHgzMDA5LCAweDY5MjAsIDB4YTE4YywgMHhmY2ZmLCAweDY5MjIsCisJMHgwMDc4LCAweDQzNWQsIDB4MzBkOSwgMHgzMGUzLCAweDM5OWMsIDB4MzlhMiwgMHgzOTlhLCAweDM5OWEsCisJMHg0MzVkLCAweDQzNWQsIDB4MTA3OCwgMHgyOWIyLCAweDY5MjAsIDB4YTE4YywgMHhmY2ZmLCAweDY5MjIsCisJMHgwMDc4LCAweDQzNjMsIDB4NjkyMCwgMHhhMThjLCAweGZjZmYsIDB4NjkyMiwgMHgwMDc4LCAweDQzNWQsCisJMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDM5YjIsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsCisJMHgwMGMwLCAweDM5ZTYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDQsIDB4MDBjMCwgMHgzOWNjLCAweDcwNjQsCisJMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgzOWMyLCAweDIwMTEsIDB4MDAwMiwgMHgyMDE5LCAweDAwMDAsCisJMHgwMDc4LCAweDJmNjUsIDB4NzA2NCwgMHhhMDg2LCAweDAwMDYsIDB4MDA0MCwgMHgzOWJjLCAweDcwNjQsCisJMHhhMDg2LCAweDAwMDQsIDB4MDA0MCwgMHgzOWJjLCAweDcwMDAsIDB4YTA4NiwgMHgwMDAwLCAweDAwNDAsCisJMHgyYTA4LCAweDY5MjAsIDB4YTE4NCwgMHgwNDIwLCAweDAwNDAsIDB4MzlkYiwgMHhjMWQ0LCAweDY5MjIsCisJMHg2ODE4LCAweDAwNzgsIDB4MzQ0MywgMHg2ODE4LCAweGEwOGUsIDB4MDAwMiwgMHgwMDQwLCAweDM5ZTQsCisJMHhjMGZkLCAweDY4MWEsIDB4MjAwMSwgMHgwMDE0LCAweDAwNzgsIDB4MzQ0MywgMHhhMTg0LCAweDAwMDcsCisJMHgwMDc5LCAweDM5ZWEsIDB4NDM1ZCwgMHg0MzVkLCAweDM5ZjIsIDB4NDM1ZCwgMHg0M2E1LCAweDQzYTUsCisJMHg0MzVkLCAweDQzNWQsIDB4ZDZiYywgMHgwMDQwLCAweDNhMzQsIDB4NzE4NCwgMHg4MWZmLCAweDAwNDAsCisJMHgzYTM0LCAweGExODIsIDB4MDAwZCwgMHgwMGQwLCAweDNhMDEsIDB4NzA4NywgMHgwMDAwLCAweDAwNzgsCisJMHgzYTA2LCAweGExODIsIDB4MDAwYywgMHg3MDg2LCAweDIwMDksIDB4MDAwYywgMHg3ODliLCAweDAwNjEsCisJMHg3OWFhLCAweDE1N2UsIDB4MTM3ZSwgMHgxNDdlLCAweDcwODgsIDB4ODExNCwgMHhhMjEwLCAweDcyOGEsCisJMHhhMDgwLCAweDAwMGIsIDB4YWQwMCwgMHgyMDk4LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNhMjgsCisJMHgwMDdlLCAweDIwMDEsIDB4NGYwNCwgMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDNhMjQsCisJMHgyMGExLCAweDAxMmIsIDB4MDA3OCwgMHgzYTJhLCAweDIwYTEsIDB4MDIyYiwgMHgwMDc4LCAweDNhMmEsCisJMHgyMGExLCAweDAxMmIsIDB4Nzg5YiwgMHgwMDAwLCAweDgxMDgsIDB4ODFhYywgMHg1M2E2LCAweDE0N2YsCisJMHgxMzdmLCAweDE1N2YsIDB4MDA3OCwgMHg0MzYzLCAweGQ2ZDQsIDB4MDBjMCwgMHgzYTg4LCAweDY4MjAsCisJMHhkMDg0LCAweDAwNDAsIDB4NDM2MywgMHhhNjhjLCAweDAwNjAsIDB4YTY4NCwgMHgwMDYwLCAweDAwNDAsCisJMHgzYTQ2LCAweGEwODYsIDB4MDA2MCwgMHgwMGMwLCAweDNhNDYsIDB4YzFmNSwgMHhjMTk0LCAweDc5NWEsCisJMHg2OWI2LCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDAsIDB4Nzg5YiwgMHgwMDYxLCAweDY4MTgsCisJMHhjMGZkLCAweDY4MWEsIDB4NzhhYSwgMHg4MDA4LCAweDgxMGMsIDB4MDA0MCwgMHgzZTRmLCAweGExOGMsCisJMHgwMGY4LCAweDAwYzAsIDB4M2U0ZiwgMHgxNTdlLCAweDEzN2UsIDB4MTQ3ZSwgMHgwMTdlLCAweDMyMDgsCisJMHhhMThjLCAweDAzMDAsIDB4MDA0MCwgMHgzYTc0LCAweDAwN2UsIDB4MjAwMSwgMHg0ZjA0LCAweDIwMDQsCisJMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHgzYTcwLCAweDIwYTEsIDB4MDEyYiwgMHgwMDc4LCAweDNhNzYsCisJMHgyMGExLCAweDAyMmIsIDB4MDA3OCwgMHgzYTc2LCAweDIwYTEsIDB4MDEyYiwgMHgwMTdmLCAweDc4OWIsCisJMHgwMDAwLCAweDgwMDAsIDB4ODBhYywgMHhhZDgwLCAweDAwMGIsIDB4MjA5OCwgMHg1M2E2LCAweDE0N2YsCisJMHgxMzdmLCAweDE1N2YsIDB4NjgxNCwgMHhjMGZjLCAweDgwMDcsIDB4Nzg4MiwgMHgwMDc4LCAweDQzNjMsCisJMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHgzYThlLCAweDY4MWIsIDB4MDAwOCwgMHg2ODIwLCAweGMwYWQsCisJMHg2ODIyLCAweDEwNzgsIDB4NDEyMCwgMHg3ODFiLCAweDAwZWEsIDB4MDA3YywgMHgyMzAwLCAweDAwNzksCisJMHgzYTk5LCAweDNhOWUsIDB4M2I3NiwgMHgzYTljLCAweDEwNzgsIDB4MjliMiwgMHg3Y2Q4LCAweDdkZGMsCisJMHg3ZmQwLCAweDgyZmYsIDB4MDBjMCwgMHgzYWM3LCAweDcyMDAsIDB4YTI4NiwgMHgwMDAzLCAweDAwNDAsCisJMHgzNDEwLCAweDcxZDQsIDB4ZDFiYywgMHgwMGMwLCAweDNhY2EsIDB4ZDFiNCwgMHgwMDQwLCAweDNhY2EsCisJMHgwZDdlLCAweDc4M2IsIDB4ODgwMCwgMHg3ODFiLCAweDAwNGMsIDB4NzBiYywgMHhhMDZkLCAweDY4YjQsCisJMHhjMGE1LCAweDc4NWEsIDB4Njg5NCwgMHg3OGQ2LCAweDc4ZGUsIDB4Njg5OCwgMHg3OGQyLCAweDc4ZGEsCisJMHhjMWI0LCAweDcxZDYsIDB4NzAwMywgMHgwMDMwLCAweDBkN2YsIDB4MDA3OCwgMHgzYWNlLCAweDcyMDAsCisJMHgwMDc4LCAweDNhY2UsIDB4NzgzYiwgMHgxODAwLCAweDc4MWIsIDB4MDA0YSwgMHhhMjg0LCAweDAwMGYsCisJMHgwMDc5LCAweDNhZDIsIDB4M2I2MSwgMHgzYjEwLCAweDNhZGMsIDB4MzQzZiwgMHgzYWRhLCAweDNiNjEsCisJMHgzYWRhLCAweDNhZGEsIDB4MTA3OCwgMHgyOWIyLCAweDY4MWMsIDB4ZDBlYywgMHgwMDQwLCAweDNhZTMsCisJMHg2MDA4LCAweGMwOGQsIDB4NjAwYSwgMHg2OTIwLCAweGMxODUsIDB4NjkyMiwgMHg2ODAwLCAweDYwMDYsCisJMHhhMDA1LCAweDAwYzAsIDB4M2FlYywgMHg2MDAyLCAweDYwMDgsIDB4YzBkNCwgMHg2MDBhLCAweDY4MWMsCisJMHhhMDg0LCAweDAwMGUsIDB4MDBjMCwgMHgzYjAwLCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNhZmMsCisJMHgyMDA5LCAweDk1YzAsIDB4MDA3OCwgMHgzYjA1LCAweDIwMDksIDB4OTZkMCwgMHgwMDc4LCAweDNiMDUsCisJMHg3MDMwLCAweDY4YmEsIDB4NzE0MCwgMHg3MGNjLCAweGExMDgsIDB4MjEwNCwgMHg2ODAyLCAweDJkMGEsCisJMHg3MTVlLCAweGQ2ZGMsIDB4MDBjMCwgMHgzYjEwLCAweGM2ZmMsIDB4NmViNiwgMHgwMDc4LCAweDNiNjEsCisJMHg2ZWI2LCAweGE2ODQsIDB4MDA2MCwgMHgwMGMwLCAweDNiMWEsIDB4YTY4NCwgMHg3ZmZmLCAweDY4YjYsCisJMHgwMDc4LCAweDNiNjEsIDB4ZDZkYywgMHgwMGMwLCAweDNiMjgsIDB4YTY4NCwgMHg3ZmZmLCAweDY4YjYsCisJMHg2ODk0LCAweDY4YTYsIDB4Njg5OCwgMHg2OGFhLCAweDEwNzgsIDB4NDVkNiwgMHgwMDc4LCAweDNiNjEsCisJMHhkNmFjLCAweDAwNDAsIDB4M2IzNCwgMHhhMDA2LCAweDEwNzgsIDB4NDVkNiwgMHgyNDA4LCAweDI1MTAsCisJMHg2OWFhLCAweDZhYTYsIDB4MDA3OCwgMHgzYjQ0LCAweDI0MDgsIDB4MjUxMCwgMHgyNzAwLCAweDgwMWIsCisJMHgwMGM4LCAweDNiM2IsIDB4ODAwMCwgMHhhMDg0LCAweDAwM2YsIDB4YTEwOCwgMHhhMjkxLCAweDAwMDAsCisJMHg2OWFhLCAweDZhYTYsIDB4MTA3OCwgMHg0NWQ2LCAweGQ2ZmMsIDB4MDA0MCwgMHgzYjYxLCAweGE2ODQsCisJMHg3ZmZmLCAweDY4YjYsIDB4MjUxMCwgMHgyNDA4LCAweGQ2YWMsIDB4MDBjMCwgMHgzYjU5LCAweDI3MDAsCisJMHg4MDFiLCAweDAwYzgsIDB4M2I1NCwgMHg4MDAwLCAweGEwODQsIDB4MDAzZiwgMHhhMTA4LCAweGEyOTEsCisJMHgwMDAwLCAweDZiOTgsIDB4MjEwMCwgMHhhMzAyLCAweDY4YjIsIDB4NmI5NCwgMHgyMjAwLCAweGEzMDMsCisJMHg2OGFlLCAweDcwMDAsIDB4YTA4NiwgMHgwMDMwLCAweDAwYzAsIDB4MmEwYywgMHg3MDAzLCAweDAwMDIsCisJMHg3MGJjLCAweGEwNmQsIDB4NjhiYywgMHg3MDQyLCAweDcwYjgsIDB4YTA2NSwgMHg2OGMwLCAweDcwNWEsCisJMHgyZDAwLCAweDcwNGUsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsIDB4MDA3YywgMHhhNTg2LCAweDg4MDAsCisJMHgwMGMwLCAweDNiODMsIDB4NzAwMywgMHgwMDAwLCAweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDYwMDgsCisJMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHgwMDc4LCAweDQxMTEsIDB4NzA0NywgMHgwMDAwLCAweGEyODIsCisJMHgwMDA2LCAweDAwNTAsIDB4M2I4ZCwgMHgxMDc4LCAweDI5YjIsIDB4MjMwMCwgMHgwMDc5LCAweDNiOTAsCisJMHgzYjkzLCAweDNiYTUsIDB4M2JiMSwgMHgyMjAwLCAweDAwNzksIDB4M2I5NiwgMHgzYjljLCAweDQxMTEsCisJMHgzYjllLCAweDNiOWMsIDB4M2JlYiwgMHgzYzQwLCAweDEwNzgsIDB4MjliMiwgMHg3YTgwLCAweGEyOTQsCisJMHgwZjAwLCAweDEwNzgsIDB4M2NjYSwgMHgwMDc4LCAweDQxMDcsIDB4MTA3OCwgMHgzYmMyLCAweDAwNzksCisJMHgzYmE5LCAweDQxMTEsIDB4M2JhZiwgMHgzYmFmLCAweDNiZWIsIDB4M2JhZiwgMHg0MTExLCAweDEwNzgsCisJMHgyOWIyLCAweDEwNzgsIDB4M2JjMiwgMHgwMDc5LCAweDNiYjUsIDB4M2JiZCwgMHgzYmJiLCAweDNiYmIsCisJMHgzYmJkLCAweDNiYmIsIDB4M2JiZCwgMHgxMDc4LCAweDI5YjIsIDB4MTA3OCwgMHg0MTJiLCAweDc4MWIsCisJMHgwMDc4LCAweDAwN2MsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDIsIDB4MDBjMCwgMHgzYmQzLCAweDEwNzgsCisJMHgzZTM2LCAweDAwNzgsIDB4M2JjZCwgMHgxMDc4LCAweDQ1ZDYsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsCisJMHg2MDBhLCAweDAwNzgsIDB4M2JkOCwgMHg3MDAwLCAweGEwODYsIDB4MDAwMywgMHgwMDQwLCAweDNiY2IsCisJMHg3MDAzLCAweDAwMDUsIDB4YjI4NCwgMHgwMzAwLCAweDAwNDAsIDB4M2JlMiwgMHgyMDAxLCAweDk2ZTAsCisJMHgwMDc4LCAweDNiZTQsIDB4MjAwMSwgMHg5NzEyLCAweDIwNjgsIDB4NzA0ZSwgMHhhZDgwLCAweDAwMDksCisJMHg3MDQ2LCAweDIyMDAsIDB4MDA3YywgMHg3MDAwLCAweGEwODYsIDB4MDAwMiwgMHgwMGMwLCAweDNiZmQsCisJMHg3MGQ0LCAweGMwYjUsIDB4NzBkNiwgMHgyYzAwLCAweDcwYmEsIDB4MmQwMCwgMHg3MGJlLCAweDAwNzgsCisJMHgzYzAyLCAweDEwNzgsIDB4NDVkNiwgMHgwMDc4LCAweDNjMDIsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsCisJMHgwMDQwLCAweDNiZjksIDB4NzAwMywgMHgwMDAxLCAweDdhODAsIDB4YTI5NCwgMHgwZjAwLCAweDc4OWIsCisJMHgwMDE4LCAweDdjYTgsIDB4YTQ4NCwgMHgwMDFmLCAweGEyMTUsIDB4MjA2OSwgMHg5NWMwLCAweGIyODQsCisJMHgwMzAwLCAweDAwYzAsIDB4M2MxNiwgMHhjMmZkLCAweDIwNjksIDB4OTZkMCwgMHgyZDA0LCAweDJkMDgsCisJMHg3MTVlLCAweGEwNmQsIDB4MDA0MCwgMHgzYzIzLCAweDY4MTQsIDB4YTIwNiwgMHgwMDQwLCAweDNjMjUsCisJMHg2ODAwLCAweDAwNzgsIDB4M2MxNywgMHgxMDc4LCAweDNjY2EsIDB4NmViNCwgMHg3ZTVhLCAweDY5MjAsCisJMHhhMTg0LCAweDBjMDAsIDB4MDA0MCwgMHgzY2Y0LCAweDcwNjQsIDB4YTA4NiwgMHgwMDA2LCAweDAwYzAsCisJMHgzYzM3LCAweDcwNzQsIDB4YTIwNiwgMHgwMGMwLCAweDNjMzcsIDB4NzA2NiwgMHg3MDdlLCAweDY4MWIsCisJMHgwMDA1LCAweGMxYWQsIDB4YzFkNCwgMHg2OTIyLCAweDEwNzgsIDB4NDEyMCwgMHgwMDc4LCAweDNjZjQsCisJMHg3MjAwLCAweGEyODYsIDB4MDAwMiwgMHgwMGMwLCAweDNjNTIsIDB4NzBkNCwgMHhjMGI1LCAweDcwZDYsCisJMHgyYzAwLCAweDcwYmEsIDB4MmQwMCwgMHg3MGJlLCAweDAwNzgsIDB4M2M1NiwgMHgxMDc4LCAweDQ1ZDYsCisJMHgwMDc4LCAweDNjNTYsIDB4YTI4NiwgMHgwMDAzLCAweDAwNDAsIDB4M2M0ZSwgMHg3MDAzLCAweDAwMDEsCisJMHg3YTgwLCAweGEyOTQsIDB4MGYwMCwgMHg3ODliLCAweDAwMTgsIDB4N2NhOCwgMHhhNDg0LCAweDAwMWYsCisJMHhhMjE1LCAweGIyODQsIDB4MDMwMCwgMHgwMGMwLCAweDNjNjYsIDB4YzJmZCwgMHg3OWE4LCAweDc5YTgsCisJMHhhMThjLCAweDAwZmYsIDB4MjExOCwgMHg3MGNjLCAweGExNjgsIDB4MmQwNCwgMHgyZDA4LCAweDcxNWUsCisJMHhhMDZkLCAweDAwNDAsIDB4M2M3YSwgMHg2ODE0LCAweGEyMDYsIDB4MDA0MCwgMHgzY2EzLCAweDY4MDAsCisJMHgwMDc4LCAweDNjNmUsIDB4NzAwMywgMHgwMDA1LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNjODQsCisJMHgyMDAxLCAweDk2ZTAsIDB4MDA3OCwgMHgzYzg2LCAweDIwMDEsIDB4OTcxMiwgMHgyMDY4LCAweDcwNGUsCisJMHgxNTdlLCAweDIwYTksIDB4MDAzMiwgMHgyMDAzLCAweDAwMDAsIDB4ODAwMCwgMHgwMGYwLCAweDNjOGIsCisJMHgxNTdmLCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNjOTgsIDB4YzJmYywgMHgwMDc4LCAweDNjOTksCisJMHhjMmZkLCAweDZhMTYsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsIDB4NjhiNywgMHgwNzAwLCAweDY4MjMsCisJMHgwODAwLCAweDY4MjcsIDB4MDAwMywgMHg2ZWI0LCAweDY5MjAsIDB4YTE4NCwgMHgwYzAwLCAweDAwNDAsCisJMHgzY2Y0LCAweGQwZGMsIDB4MDA0MCwgMHgzY2JmLCAweDcwNjQsIDB4YTA4NiwgMHgwMDA0LCAweDAwYzAsCisJMHgzY2JiLCAweDcwNzQsIDB4YTIwNiwgMHgwMGMwLCAweDNjYmIsIDB4NzA3OCwgMHhhMzA2LCAweDAwYzAsCisJMHgzY2JiLCAweDcwNjYsIDB4NzA3ZSwgMHgxMDc4LCAweDQxMjcsIDB4MDA3OCwgMHgzY2Y0LCAweDY4MWIsCisJMHgwMDA1LCAweGMxYWQsIDB4YzFkNCwgMHg2OTIyLCAweDEwNzgsIDB4NDEyMCwgMHg3MDdmLCAweDAwMDAsCisJMHgwMDc4LCAweDNjZjQsIDB4NzAwMywgMHgwMDA1LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNjZDQsCisJMHgyMDAxLCAweDk2ZTAsIDB4MDA3OCwgMHgzY2Q2LCAweDIwMDEsIDB4OTcxMiwgMHgyMDY4LCAweDcwNGUsCisJMHgxNTdlLCAweDIwYTksIDB4MDAzMiwgMHgyMDAzLCAweDAwMDAsIDB4ODAwMCwgMHgwMGYwLCAweDNjZGIsCisJMHgxNTdmLCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDNjZTgsIDB4YzJmYywgMHgwMDc4LCAweDNjZTksCisJMHhjMmZkLCAweDZhMTYsIDB4YWQ4MCwgMHgwMDA5LCAweDcwNDYsIDB4NjhiNywgMHgwNzAwLCAweDY4MjMsCisJMHgwODAwLCAweDY4MjcsIDB4MDAwMywgMHgwMDdjLCAweGM2ZWMsIDB4YTZhYywgMHgwMDYwLCAweDAwNDAsCisJMHgzZDQ2LCAweDZiOTgsIDB4NmM5NCwgMHg2OWFjLCAweDY4YjAsIDB4YTEwNSwgMHgwMGMwLCAweDNkMjEsCisJMHg3YmQyLCAweDdiZGEsIDB4N2NkNiwgMHg3Y2RlLCAweGE1ODYsIDB4MDA2MCwgMHgwMDQwLCAweDNkNGIsCisJMHhkNmY0LCAweDAwYzAsIDB4M2QwYywgMHhjNmVkLCAweGE2YjQsIDB4YjdmZiwgMHg3ZTVhLCAweDIwMDksCisJMHgwMDc5LCAweGQ2OWMsIDB4MDA0MCwgMHgzZDE5LCAweDIwMDksIDB4MDA3OCwgMHgyMDE5LCAweDAwMDAsCisJMHgyMzIwLCAweDc5MWEsIDB4ZDZlYywgMHgwMDQwLCAweDNkNTYsIDB4MTA3OCwgMHg0OTNmLCAweDAwNzgsCisJMHgzZDU2LCAweDY4YjAsIDB4YTMxYSwgMHgyMTAwLCAweGE0MjMsIDB4MjQwMCwgMHhhMzA1LCAweDAwNDAsCisJMHgzZDRkLCAweDdiZDIsIDB4N2JkYSwgMHg3Y2Q2LCAweDdjZGUsIDB4NjhiMCwgMHhkNmY0LCAweDAwYzAsCisJMHgzZDMyLCAweGM2ZWQsIDB4YzZmNCwgMHg3ZTVhLCAweDIwMTEsIDB4MDA3OSwgMHhkNjljLCAweDAwNDAsCisJMHgzZDNlLCAweDIwMTEsIDB4MDA3OCwgMHgyMDE5LCAweDAwMDAsIDB4MjMyMCwgMHg3YTFhLCAweGQ2ZWMsCisJMHgwMDQwLCAweDNkNTYsIDB4MTA3OCwgMHg0OTc3LCAweDAwNzgsIDB4M2Q1NiwgMHgyMDE5LCAweDAwMDAsCisJMHgyMzIwLCAweDAwNzgsIDB4M2Q0ZCwgMHhhNmI0LCAweGI3ZmYsIDB4N2U1YSwgMHgyMDA5LCAweDAwNzksCisJMHhkNjljLCAweDAwNDAsIDB4M2Q1NSwgMHgyMDA5LCAweDAwNzgsIDB4NzkxYSwgMHg2OGMwLCAweDcwNWEsCisJMHgyZDAwLCAweDcwNGUsIDB4NjhjNCwgMHgyMDYwLCAweDcxZDQsIDB4MjAwMSwgMHg0ZjAxLCAweDIwMDQsCisJMHhkMGM0LCAweDAwYzAsIDB4M2RhYiwgMHg3MGQ4LCAweGEwMmQsIDB4MDA0MCwgMHgzZDg0LCAweGQxYmMsCisJMHgwMDQwLCAweDNkOWUsIDB4N2E4MCwgMHhhMjk0LCAweDBmMDAsIDB4NzBkYywgMHhhMjA2LCAweDAwNDAsCisJMHgzZDc1LCAweDc4ZTAsIDB4YTUwNCwgMHgwMGMwLCAweDNkYWIsIDB4NzBkYSwgMHhjMWJjLCAweDcxZDYsCisJMHgwMDc4LCAweDNkYWIsIDB4MjAzMSwgMHgwMDAxLCAweDg1MmMsIDB4MDA0OCwgMHgzZDgzLCAweDg2MzMsCisJMHg4MjEwLCAweDAwNzgsIDB4M2Q3YywgMHgwMDdjLCAweDdkZTAsIDB4YTU5NCwgMHhmZjAwLCAweDAwNDAsCisJMHgzZDkxLCAweDIwMTEsIDB4MDAwOCwgMHg4NTJmLCAweDEwNzgsIDB4M2Q3YSwgMHg4NjM3LCAweDAwNzgsCisJMHgzZDkzLCAweDEwNzgsIDB4M2Q3YSwgMHg4MjE3LCAweDc4ODAsIDB4YTA4NCwgMHgwZjAwLCAweGEyMDYsCisJMHgwMDQwLCAweDNkYWIsIDB4NzJkZSwgMHg3NmRhLCAweDAwNzgsIDB4M2RhYiwgMHg3YTgwLCAweGEyOTQsCisJMHgwZjAwLCAweDcwZGMsIDB4YTIzNiwgMHgwMDQwLCAweDNkOWIsIDB4NzhlMCwgMHhhNTM0LCAweDAwNDAsCisJMHgzZDliLCAweGMxYmQsIDB4NzFkNiwgMHhkMWI0LCAweDAwYzAsIDB4MmEwOCwgMHgyMzAwLCAweGE0MDUsCisJMHgwMDQwLCAweDJhMDgsIDB4NzBhNCwgMHhhMDg2LCAweDAwMDEsIDB4MDBjMCwgMHgyYTUyLCAweDAwN2MsCisJMHg2MDIwLCAweGEwMDUsIDB4MDA0MCwgMHgzZGM2LCAweDgwMDEsIDB4NjAyMiwgMHg2MDA4LCAweGEwODUsCisJMHgwMDA4LCAweDYwMGEsIDB4NzAwZiwgMHgwMTAwLCAweDcwMmMsIDB4NjAyNiwgMHgwMDdjLCAweGEwMDYsCisJMHgxMDc4LCAweDQ1ZDYsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDIsIDB4MDA0MCwgMHgzZGQ0LCAweDcwNjQsCisJMHhhMDg2LCAweDAwMDUsIDB4MDBjMCwgMHgzZGRlLCAweDY4MmIsIDB4MDAwMCwgMHg2ODE3LCAweDAwMDAsCisJMHg2ODFiLCAweDAwMDEsIDB4NjgyMywgMHgwMDQwLCAweDY4MWYsIDB4MDEwMCwgMHg3MDAwLCAweGEwODQsCisJMHgwMDBmLCAweDAwNzksIDB4M2RlMywgMHgyYTBjLCAweDNkZjMsIDB4M2RlZCwgMHgzZTE1LCAweDNkZmQsCisJMHgyYTBjLCAweDNkZWIsIDB4M2RlYiwgMHgxMDc4LCAweDI5YjIsIDB4MTA3OCwgMHgzZTIwLCAweDEwNzgsCisJMHgzZTE5LCAweDAwNzgsIDB4M2RmOSwgMHgxMDc4LCAweDNlMjAsIDB4NzA1YywgMHgyMDYwLCAweDY4MDAsCisJMHg2MDAyLCAweDEwNzgsIDB4MjA3MywgMHgwMDc4LCAweDJhMGMsIDB4NzA2NCwgMHg3MDY3LCAweDAwMDAsCisJMHg3MDgzLCAweDAwMDAsIDB4MDA3OSwgMHgzZTA0LCAweDNlMTEsIDB4M2UxMSwgMHgzZTBjLCAweDNlMGMsCisJMHgzZTBjLCAweDNlMTEsIDB4M2UwYywgMHgzZTExLCAweDc3ZDQsIDB4YzdkZCwgMHg3N2Q2LCAweDAwNzksCisJMHgyZjdlLCAweDcwNjcsIDB4MDAwMCwgMHgwMDc4LCAweDJhMGMsIDB4NjgxYiwgMHgwMDAwLCAweDAwNzgsCisJMHgzNzExLCAweDY4MDAsIDB4YTAwNSwgMHgwMGMwLCAweDNlMWUsIDB4NjAwMiwgMHg2MDA2LCAweDAwN2MsCisJMHg2NDEwLCAweDg0ZmYsIDB4MDA0MCwgMHgzZTMyLCAweDIwMDksIDB4NGYwMiwgMHgyMTA0LCAweDgwMDEsCisJMHgyMDBhLCAweDg0MjEsIDB4NjQxMiwgMHgwMGMwLCAweDNlMzIsIDB4MjAyMSwgMHg0ZjA0LCAweDI0MDQsCisJMHhjMGE1LCAweDIwMjIsIDB4NjAwOCwgMHhjMGE0LCAweDYwMGEsIDB4MDA3YywgMHg2MDE4LCAweGEwMDUsCisJMHgwMDQwLCAweDNlM2MsIDB4ODAwMSwgMHg2MDFhLCAweDAwN2MsIDB4MTA3OCwgMHg0M2QzLCAweDY4MWIsCisJMHgwMDE4LCAweDAwNzgsIDB4M2U3ZCwgMHgxMDc4LCAweDQzZDMsIDB4NjgxYiwgMHgwMDE5LCAweDAwNzgsCisJMHgzZTdkLCAweDEwNzgsIDB4NDNkMywgMHg2ODFiLCAweDAwMWEsIDB4MDA3OCwgMHgzZTdkLCAweDEwNzgsCisJMHg0M2QzLCAweDY4MWIsIDB4MDAwMywgMHgwMDc4LCAweDNlN2QsIDB4Nzc3NCwgMHgxMDc4LCAweDQyNGUsCisJMHg3MTc4LCAweGExOGMsIDB4MDBmZiwgMHgzMjEwLCAweGEyOTQsIDB4MDMwMCwgMHgwMDQwLCAweDNlNjQsCisJMHhhMWU4LCAweDk0YzAsIDB4MDA3OCwgMHgzZTY2LCAweGExZTgsIDB4OTVkMCwgMHgyZDA0LCAweDJkMDgsCisJMHgyMDY4LCAweGEwMDUsIDB4MDBjMCwgMHgzZTZmLCAweDcwN2UsIDB4MDA3OCwgMHgyYTBjLCAweDY4MTQsCisJMHg3Mjc0LCAweGEyMDYsIDB4MDA0MCwgMHgzZTc3LCAweDY4MDAsIDB4MDA3OCwgMHgzZTY3LCAweDY4MDAsCisJMHgyMDBhLCAweDY4MWIsIDB4MDAwNSwgMHg3MDdmLCAweDAwMDAsIDB4MTA3OCwgMHgzZTIwLCAweDY4MjAsCisJMHhkMDg0LCAweDAwYzAsIDB4M2U4NSwgMHgxMDc4LCAweDNlMTksIDB4MTA3OCwgMHgzZTM2LCAweDY4MWYsCisJMHgwMDAwLCAweDY4MjMsIDB4MDAyMCwgMHgxMDc4LCAweDIwNzMsIDB4MDA3OCwgMHgyYTBjLCAweGEyODIsCisJMHgwMDAzLCAweDAwYzAsIDB4NDEwNywgMHg3ZGE4LCAweGE1YWMsIDB4MDBmZiwgMHg3ZTVhLCAweDdlYTgsCisJMHhhNmI0LCAweDAwZmYsIDB4NjkyMCwgMHhjMWJkLCAweDY5MjIsIDB4ZDFjNCwgMHgwMDQwLCAweDNlZWEsCisJMHhjMWM0LCAweDY5MjIsIDB4YTZiNCwgMHgwMGZmLCAweDAwNDAsIDB4M2VkNywgMHhhNjgyLCAweDAwMGMsCisJMHgwMDQ4LCAweDNlYWUsIDB4MDA0MCwgMHgzZWFlLCAweDIwMzEsIDB4MDAwYywgMHgyNTAwLCAweGEwODYsCisJMHgwMDBhLCAweDAwNDAsIDB4M2ViNSwgMHg4NTJiLCAweDg1MmIsIDB4MTA3OCwgMHg0MWUwLCAweDAwNDAsCisJMHgzZWJkLCAweDEwNzgsIDB4M2ZiYywgMHgwMDc4LCAweDNlZTAsIDB4MTA3OCwgMHg0MTliLCAweDBjN2UsCisJMHgyOTYwLCAweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsIDB4MTA3OCwgMHgzZmYyLCAweDBjN2YsCisJMHg2OTIwLCAweGMxYzUsIDB4NjkyMiwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDAwYzAsCisJMHgzZWQ0LCAweDc4MWIsIDB4MDA2NCwgMHgwMDdjLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweDBjN2UsCisJMHgyOTYwLCAweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsIDB4MTA3OCwgMHgzZmYyLCAweDBjN2YsCisJMHg3ZTU4LCAweGQ2ZDQsIDB4MDBjMCwgMHgzZWU3LCAweDc4MWIsIDB4MDA2NywgMHgwMDdjLCAweDc4MWIsCisJMHgwMDc5LCAweDAwN2MsIDB4MGM3ZSwgMHg3MDU4LCAweDIwNjAsIDB4NjEwMCwgMHhkMWU0LCAweDAwNDAsCisJMHgzZjMzLCAweDYyMDgsIDB4ODIxNywgMHhhMjk0LCAweDAwZmYsIDB4YTI4MiwgMHgwMDBjLCAweDAwNDgsCisJMHgzZWZkLCAweDAwNDAsIDB4M2VmZCwgMHgyMDExLCAweDAwMGMsIDB4MjYwMCwgMHhhMjAyLCAweDAwYzgsCisJMHgzZjAyLCAweDIyMzAsIDB4NjIwOCwgMHhhMjk0LCAweDAwZmYsIDB4MjAwMSwgMHg0ZjA1LCAweDIwMDQsCisJMHhkMGU0LCAweDAwYzAsIDB4M2YxNywgMHg3OGVjLCAweGQwZTQsIDB4MDA0MCwgMHgzZjE3LCAweGEyODIsCisJMHgwMDBhLCAweDAwYzgsIDB4M2YxZCwgMHgyMDExLCAweDAwMGEsIDB4MDA3OCwgMHgzZjFkLCAweGEyODIsCisJMHgwMDBjLCAweDAwYzgsIDB4M2YxZCwgMHgyMDExLCAweDAwMGMsIDB4MjIwMCwgMHhhNTAyLCAweDAwYzgsCisJMHgzZjIyLCAweDIyMjgsIDB4MTA3OCwgMHg0MTlmLCAweDI1MDAsIDB4YTA4NiwgMHgwMDBhLCAweDAwNDAsCisJMHgzZjJiLCAweDg1MmIsIDB4ODUyYiwgMHgxMDc4LCAweDQxZTAsIDB4MDA0MCwgMHgzZjMzLCAweDEwNzgsCisJMHgzZmJjLCAweDAwNzgsIDB4M2YzNywgMHgxMDc4LCAweDQxOWIsIDB4MTA3OCwgMHgzZmYyLCAweDc4NTgsCisJMHhjMDk1LCAweDc4NWEsIDB4MGM3ZiwgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHgwYzdlLCAweDI5NjAsCisJMHg2MDAwLCAweGQwZTQsIDB4MDBjMCwgMHgzZjU4LCAweGQwYjQsIDB4MDBjMCwgMHgzZjUyLCAweDYwMTAsCisJMHhhMDg0LCAweDAwMGYsIDB4MDBjMCwgMHgzZjUyLCAweDYxMDQsIDB4YTE4YywgMHhmZmY1LCAweDYxMDYsCisJMHgwYzdmLCAweDAwN2MsIDB4MjAxMSwgMHgwMDMyLCAweDIwMTksIDB4MDAwMCwgMHgwMDc4LCAweDNmODMsCisJMHg2OGEwLCAweGQwY2MsIDB4MDBjMCwgMHgzZjUyLCAweDYyMDgsIDB4YTI5NCwgMHgwMGZmLCAweDIwMDEsCisJMHg0ZjA1LCAweDIwMDQsIDB4ZDBlNCwgMHgwMGMwLCAweDNmNzEsIDB4NzhlYywgMHhkMGU0LCAweDAwNDAsCisJMHgzZjcxLCAweGEyODIsIDB4MDAwYiwgMHgwMGM4LCAweDNmNzEsIDB4MjAxMSwgMHgwMDBhLCAweDAwNzgsCisJMHgzZjc3LCAweGEyODIsIDB4MDAwYywgMHgwMGM4LCAweDNmNzcsIDB4MjAxMSwgMHgwMDBjLCAweDYzMDgsCisJMHg4MzFmLCAweGEzOWMsIDB4MDBmZiwgMHhhMzgyLCAweDAwMGMsIDB4MDA0OCwgMHgzZjgzLCAweDAwNDAsCisJMHgzZjgzLCAweDIwMTksIDB4MDAwYywgMHg3OGFiLCAweDAwMDEsIDB4NzhhYiwgMHgwMDAzLCAweDc4YWIsCisJMHgwMDAxLCAweDdhYWEsIDB4N2JhYSwgMHhhOGMwLCAweDAwMDUsIDB4NjgyMCwgMHhjMGM1LCAweDY4MjIsCisJMHg3MGQ0LCAweGQwYjQsIDB4MDA0MCwgMHgzZjlmLCAweGMwYjQsIDB4NzBkNiwgMHg3MGI4LCAweGEwNjUsCisJMHg2MDA4LCAweGEwODQsIDB4ZmJlZiwgMHg2MDBhLCAweDYwMTgsIDB4ODAwMSwgMHg2MDFhLCAweDBjN2YsCisJMHgwMDdjLCAweDBjN2UsIDB4Mjk2MCwgMHg2MTA0LCAweGExOGMsIDB4ZmZmNSwgMHg2MTA2LCAweDIwMTEsCisJMHgwMDMyLCAweDIwMTksIDB4MDAwMCwgMHgwMDc4LCAweDNmYWQsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsCisJMHgwMDAzLCAweDc4YWIsIDB4MDAwMSwgMHg3YWFhLCAweDdiYWEsIDB4YThjMCwgMHgwMDA1LCAweDY4MjAsCisJMHhjMGM1LCAweDY4MjIsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsIDB4NzE1OCwgMHgyMTYwLCAweDIwMTgsCisJMHhhMDhjLCAweDAwMjAsIDB4MDA0MCwgMHgzZmM1LCAweGMwYWMsIDB4MjAwOCwgMHhhMDg0LCAweGZmZjAsCisJMHhhNjM1LCAweDdlODYsIDB4NjAxOCwgMHg3ODlhLCAweDdlYWUsIDB4NjYxMiwgMHg3OGE0LCAweGEwODQsCisJMHhmZmYwLCAweGExOGMsIDB4MDAwZiwgMHhhMTA1LCAweGMwZjQsIDB4YTM5YywgMHgwMDIwLCAweDAwNDAsCisJMHgzZmRiLCAweGEwODUsIDB4NDAwMCwgMHhjMGZjLCAweGQwYjQsIDB4MDBjMCwgMHgzZmUwLCAweGMwZmQsCisJMHg3OGE2LCAweDYwMTYsIDB4Nzg4YSwgMHhhNmI0LCAweDAwMGYsIDB4ODYzNywgMHg4MjA0LCAweDgwMDQsCisJMHhhMDg0LCAweDAwZmYsIDB4YTYwNSwgMHg2MDBlLCAweDYwMDQsIDB4YTA4NCwgMHhmZmY1LCAweDYwMDYsCisJMHgwYzdmLCAweDAwN2MsIDB4MGM3ZSwgMHg3MDU4LCAweDIwNjAsIDB4NjAxOCwgMHg3ODlhLCAweDc4YTQsCisJMHhhMDg0LCAweGZmZjAsIDB4NzhhNiwgMHg2MDEyLCAweDc4ODQsIDB4YTA4NCwgMHhmZmYwLCAweDc4ODYsCisJMHg2MDBjLCAweGEwODQsIDB4MDBmZiwgMHg2MDBlLCAweDBjN2YsIDB4MDA3YywgMHhhMjgyLCAweDAwMDIsCisJMHgwMGMwLCAweDQxMDcsIDB4N2FhOCwgMHg2OTIwLCAweGMxYmQsIDB4NjkyMiwgMHhkMWNjLCAweDAwNDAsCisJMHg0MDQxLCAweGMxY2MsIDB4NjkyMiwgMHhhMjk0LCAweDAwZmYsIDB4YTI4MiwgMHgwMDAyLCAweDAwYzgsCisJMHg0MTA3LCAweDEwNzgsIDB4NDA5NCwgMHgxMDc4LCAweDNmZjIsIDB4YTk4MCwgMHgwMDAxLCAweDIwMGMsCisJMHgxMDc4LCAweDQyNGEsIDB4MTA3OCwgMHgzZjNlLCAweDg4ZmYsIDB4MDA0MCwgMHg0MDM3LCAweDc4OWIsCisJMHgwMDYwLCAweDI4MDAsIDB4NzhhYSwgMHg3ZTU4LCAweGM2OTUsIDB4N2U1YSwgMHhkNmQ0LCAweDAwYzAsCisJMHg0MDM0LCAweDc4MWIsIDB4MDA2NCwgMHgwMDdjLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweDdlNTgsCisJMHhkNmQ0LCAweDAwYzAsIDB4NDAzZSwgMHg3ODFiLCAweDAwNjcsIDB4MDA3YywgMHg3ODFiLCAweDAwNzksCisJMHgwMDdjLCAweGEyODIsIDB4MDAwMiwgMHgwMGM4LCAweDQwNDksIDB4YTI4NCwgMHgwMDAxLCAweDAwNDAsCisJMHg0MDUyLCAweDcxNTgsIDB4YTE4OCwgMHgwMDAwLCAweDIxMGMsIDB4ZDFlYywgMHgwMGMwLCAweDQwNTIsCisJMHgyMDExLCAweDAwMDAsIDB4MTA3OCwgMHg0MTdjLCAweDEwNzgsIDB4NDA5NCwgMHgxMDc4LCAweDNmZjIsCisJMHg3ODU4LCAweGMwOTUsIDB4Nzg1YSwgMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHgwYzdlLCAweDAyN2UsCisJMHgyOTYwLCAweDYwMDAsIDB4MjAxMSwgMHgwMDAxLCAweGQwZWMsIDB4MDBjMCwgMHg0MDc1LCAweGQwYmMsCisJMHgwMGMwLCAweDQwNzMsIDB4NjAxNCwgMHhkMGI0LCAweDAwYzAsIDB4NDA3MywgMHhjMWE0LCAweDYxMDYsCisJMHhhMDA2LCAweDAwNzgsIDB4NDA5MSwgMHgyMDExLCAweDAwMDAsIDB4NzhhYiwgMHgwMDAxLCAweDc4YWIsCiAJMHgwMDAyLCAweDc4YWIsIDB4MDAwMywgMHg3YWFhLCAweGE4YzAsIDB4MDAwNCwgMHg3MGQ0LCAweGQwYjQsCi0JMHgwMDQwLCAweDQwM2QsIDB4YzBiNCwgMHg3MGQ2LCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsCisJMHgwMDQwLCAweDQwOGQsIDB4YzBiNCwgMHg3MGQ2LCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsCiAJMHhmYmVmLCAweDYwMGEsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4NjgyMCwgMHhhMDg1LCAweDAyMDAsCiAJMHg2ODIyLCAweDAyN2YsIDB4MGM3ZiwgMHgwMDdjLCAweDBjN2UsIDB4NzA1OCwgMHgyMDYwLCAweDgyZmYsCi0JMHgwMDQwLCAweDQwNGMsIDB4MjAxMSwgMHgwMDQwLCAweDYwMTgsIDB4YTA4MCwgMHgwMDAyLCAweDc4OWEsCi0JMHg3OGE0LCAweGEwODQsIDB4ZmZiZiwgMHhhMjA1LCAweGMwZmMsIDB4ZDBiNCwgMHgwMGMwLCAweDQwNTksCisJMHgwMDQwLCAweDQwOWMsIDB4MjAxMSwgMHgwMDQwLCAweDYwMTgsIDB4YTA4MCwgMHgwMDAyLCAweDc4OWEsCisJMHg3OGE0LCAweGEwODQsIDB4ZmZiZiwgMHhhMjA1LCAweGMwZmMsIDB4ZDBiNCwgMHgwMGMwLCAweDQwYTksCiAJMHhjMGZkLCAweDc4YTYsIDB4NjAxNiwgMHg3ODhhLCAweDYwMDQsIDB4YzBhNCwgMHg2MDA2LCAweDBjN2YsCi0JMHgwMDdjLCAweDAwN2UsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwgMHg0MDZhLCAweDAwN2YsCi0JMHgwMDc4LCAweDQwNmQsIDB4MDA3ZiwgMHgwMDc4LCAweDQwYjQsIDB4ZDZhYywgMHgwMDQwLCAweDQwYjQsCi0JMHg3ODg4LCAweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDQwYjQsIDB4N2JiOCwgMHhhMzg0LCAweDAwM2YsCi0JMHg4MzFiLCAweDAwYzgsIDB4NDA3YywgMHg4MDAwLCAweGEwMDUsIDB4MDA0MCwgMHg0MDkxLCAweDgzMWIsCi0JMHgwMGM4LCAweDQwODUsIDB4ODAwMSwgMHgwMDQwLCAweDQwYjEsIDB4ZDZmNCwgMHgwMDQwLCAweDQwOTEsCi0JMHg3OGI4LCAweDgwMWIsIDB4MDBjOCwgMHg0MDhkLCAweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweDAwYzAsCi0JMHg0MGIxLCAweGM2ZjQsIDB4N2U1YSwgMHg3OWQ4LCAweDdhZGMsIDB4MjAwMSwgMHgwMDAxLCAweGExMDgsCi0JMHgwMGM4LCAweDQwOWMsIDB4YTI5MSwgMHgwMDAwLCAweDc5ZDIsIDB4NzlkYSwgMHg3YWQ2LCAweDdhZGUsCi0JMHgxMDc4LCAweDQ5YzMsIDB4NzgxYiwgMHgwMDc2LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDQwYWMsCi0JMHgyMDAxLCAweDAwMDAsIDB4MDA3OCwgMHg0MGFlLCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQ4NGIsCisJMHgwMDdjLCAweDAwN2UsIDB4NzAwMCwgMHhhMDg2LCAweDAwMDMsIDB4MDA0MCwgMHg0MGJhLCAweDAwN2YsCisJMHgwMDc4LCAweDQwYmQsIDB4MDA3ZiwgMHgwMDc4LCAweDQxMDQsIDB4ZDZhYywgMHgwMDQwLCAweDQxMDQsCisJMHg3ODg4LCAweGEwODQsIDB4MDA0MCwgMHgwMDQwLCAweDQxMDQsIDB4N2JiOCwgMHhhMzg0LCAweDAwM2YsCisJMHg4MzFiLCAweDAwYzgsIDB4NDBjYywgMHg4MDAwLCAweGEwMDUsIDB4MDA0MCwgMHg0MGUxLCAweDgzMWIsCisJMHgwMGM4LCAweDQwZDUsIDB4ODAwMSwgMHgwMDQwLCAweDQxMDEsIDB4ZDZmNCwgMHgwMDQwLCAweDQwZTEsCisJMHg3OGI4LCAweDgwMWIsIDB4MDBjOCwgMHg0MGRkLCAweDgwMDAsIDB4YTA4NCwgMHgwMDNmLCAweDAwYzAsCisJMHg0MTAxLCAweGM2ZjQsIDB4N2U1YSwgMHg3OWQ4LCAweDdhZGMsIDB4MjAwMSwgMHgwMDAxLCAweGExMDgsCisJMHgwMGM4LCAweDQwZWMsIDB4YTI5MSwgMHgwMDAwLCAweDc5ZDIsIDB4NzlkYSwgMHg3YWQ2LCAweDdhZGUsCisJMHgxMDc4LCAweDRhNDQsIDB4NzgxYiwgMHgwMDc2LCAweGIyODQsIDB4MDMwMCwgMHgwMDQwLCAweDQwZmMsCisJMHgyMDAxLCAweDAwMDAsIDB4MDA3OCwgMHg0MGZlLCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQ4Y2UsCiAJMHgwMDdjLCAweDc4MWIsIDB4MDA3NiwgMHgwMDdjLCAweDc4MWIsIDB4MDA3OSwgMHgwMDdjLCAweDEwNzgsCi0JMHg0MGRmLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweDEwNzgsIDB4NDBjOCwgMHg3ODFiLCAweDAwNzgsCi0JMHgwMDdjLCAweDY4MjcsIDB4MDAwMiwgMHgxMDc4LCAweDQwZDAsIDB4NzgxYiwgMHgwMDc4LCAweDAwN2MsCi0JMHgyMDAxLCAweDAwMDUsIDB4MDA3OCwgMHg0MGUxLCAweDIwMDEsIDB4MDAwYywgMHgwMDc4LCAweDQwZTEsCi0JMHg2ODIwLCAweGMwZDUsIDB4NjgyMiwgMHgyMDAxLCAweDAwMDYsIDB4MDA3OCwgMHg0MGUxLCAweDIwMDEsCi0JMHgwMDBkLCAweDAwNzgsIDB4NDBlMSwgMHgyMDAxLCAweDAwMDksIDB4MDA3OCwgMHg0MGUxLCAweDIwMDEsCisJMHg0MTJmLCAweDc4MWIsIDB4MDA3OCwgMHgwMDdjLCAweDEwNzgsIDB4NDExOCwgMHg3ODFiLCAweDAwNzgsCisJMHgwMDdjLCAweDY4MjcsIDB4MDAwMiwgMHgxMDc4LCAweDQxMjAsIDB4NzgxYiwgMHgwMDc4LCAweDAwN2MsCisJMHgyMDAxLCAweDAwMDUsIDB4MDA3OCwgMHg0MTMxLCAweDIwMDEsIDB4MDAwYywgMHgwMDc4LCAweDQxMzEsCisJMHg2ODIwLCAweGMwZDUsIDB4NjgyMiwgMHgyMDAxLCAweDAwMDYsIDB4MDA3OCwgMHg0MTMxLCAweDIwMDEsCisJMHgwMDBkLCAweDAwNzgsIDB4NDEzMSwgMHgyMDAxLCAweDAwMDksIDB4MDA3OCwgMHg0MTMxLCAweDIwMDEsCiAJMHgwMDA3LCAweDc4OWIsIDB4MDA3ZSwgMHg3OGFhLCAweGM2OWQsIDB4N2U1YSwgMHg3MGQ0LCAweGQwYjQsCi0JMHgwMDQwLCAweDQwZjcsIDB4YzBiNCwgMHg3MGQ2LCAweDBjN2UsIDB4NzBiOCwgMHhhMDY1LCAweDYwMDgsCisJMHgwMDQwLCAweDQxNDcsIDB4YzBiNCwgMHg3MGQ2LCAweDBjN2UsIDB4NzBiOCwgMHhhMDY1LCAweDYwMDgsCiAJMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHg2MDE4LCAweDgwMDEsIDB4NjAxYSwgMHgwYzdmLCAweDAwN2MsCiAJMHgwNzdlLCAweDg3M2YsIDB4YTdiYywgMHgwMDBmLCAweDg3M2IsIDB4ODczYiwgMHg4NzAzLCAweDAxN2UsCi0JMHhiMjhjLCAweDAzMDAsIDB4MDA0MCwgMHg0MTA4LCAweGEwZTAsIDB4NTJjMCwgMHgwMDc4LCAweDQxMGEsCi0JMHhhMGUwLCAweDUzNDAsIDB4MDE3ZiwgMHhhN2I4LCAweDAwMjAsIDB4N2Y5YSwgMHg3OWE0LCAweGExODQsCi0JMHgwMDBmLCAweDAwNDAsIDB4NDExYSwgMHhhMTg0LCAweGZmZjAsIDB4NzhhNiwgMHg2MDEyLCAweDYwMDQsCisJMHhiMjhjLCAweDAzMDAsIDB4MDA0MCwgMHg0MTU4LCAweGEwZTAsIDB4NTNjMCwgMHgwMDc4LCAweDQxNWEsCisJMHhhMGUwLCAweDU0NDAsIDB4MDE3ZiwgMHhhN2I4LCAweDAwMjAsIDB4N2Y5YSwgMHg3OWE0LCAweGExODQsCisJMHgwMDBmLCAweDAwNDAsIDB4NDE2YSwgMHhhMTg0LCAweGZmZjAsIDB4NzhhNiwgMHg2MDEyLCAweDYwMDQsCiAJMHhjMDlkLCAweDYwMDYsIDB4ODczOCwgMHg4NzM4LCAweDdmOWEsIDB4NzlhNCwgMHhhMTg0LCAweDAwNDAsCi0JMHgwMDQwLCAweDQxMmEsIDB4YTE4NCwgMHhmZmJmLCAweGMwZmQsIDB4NzhhNiwgMHg2MDE2LCAweDYwMDQsCisJMHgwMDQwLCAweDQxN2EsIDB4YTE4NCwgMHhmZmJmLCAweGMwZmQsIDB4NzhhNiwgMHg2MDE2LCAweDYwMDQsCiAJMHhjMGE1LCAweDYwMDYsIDB4MDc3ZiwgMHgwMDdjLCAweDc4OWIsIDB4MDAxMCwgMHg3OGFiLCAweDAwMDEsCiAJMHg3OGFiLCAweDAwMDIsIDB4NzhhYiwgMHgwMDAzLCAweDdhYWEsIDB4Nzg5YiwgMHgwMDYwLCAweDc4YWIsCi0JMHgwMDA0LCAweDcwZDQsIDB4ZDBiNCwgMHgwMDQwLCAweDQxNGEsIDB4YzBiNCwgMHg3MGQ2LCAweDBjN2UsCisJMHgwMDA0LCAweDcwZDQsIDB4ZDBiNCwgMHgwMDQwLCAweDQxOWEsIDB4YzBiNCwgMHg3MGQ2LCAweDBjN2UsCiAJMHg3MGI4LCAweGEwNjUsIDB4NjAwOCwgMHhhMDg0LCAweGZiZWYsIDB4NjAwYSwgMHg2MDE4LCAweDgwMDEsCiAJMHg2MDFhLCAweDBjN2YsIDB4MDA3YywgMHgyMDMxLCAweDAwMDAsIDB4MjAyOSwgMHgwMDMyLCAweDc4OWIsCiAJMHgwMDEwLCAweDc4YWIsIDB4MDAwMSwgMHg3OGFiLCAweDAwMDMsIDB4NzhhYiwgMHgwMDAxLCAweDdkYWEsCiAJMHg3ZWFhLCAweDc4OWIsIDB4MDA2MCwgMHg3OGFiLCAweDAwMDUsIDB4NzBkNCwgMHhkMGI0LCAweDAwNDAsCi0JMHg0MTZlLCAweGMwYjQsIDB4NzBkNiwgMHgwYzdlLCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsCisJMHg0MWJlLCAweGMwYjQsIDB4NzBkNiwgMHgwYzdlLCAweDcwYjgsIDB4YTA2NSwgMHg2MDA4LCAweGEwODQsCiAJMHhmYmVmLCAweDYwMGEsIDB4NjAxOCwgMHg4MDAxLCAweDYwMWEsIDB4MGM3ZiwgMHgwMDdjLCAweDE1N2UsCiAJMHg4MDA3LCAweGEwODQsIDB4MDBmZiwgMHg4MDAzLCAweDgwMDMsIDB4YTA4MCwgMHgwMDIwLCAweDc4OWEsCi0JMHg3OWE0LCAweGExOGMsIDB4ZmZmMCwgMHgyMDIxLCAweDQxZTMsIDB4MjAxOSwgMHgwMDExLCAweDIwYTksCisJMHg3OWE0LCAweGExOGMsIDB4ZmZmMCwgMHgyMDIxLCAweDQyMzMsIDB4MjAxOSwgMHgwMDExLCAweDIwYTksCiAJMHgwMDBlLCAweDIwMTEsIDB4MDAzMiwgMHgyNDA0LCAweGEwODQsIDB4ZmZmMCwgMHhhMTA2LCAweDAwNDAsCi0JMHg0MThlLCAweDg0MjAsIDB4MjMwMCwgMHhhMjEwLCAweDAwZjAsIDB4NDE4MywgMHgxNTdmLCAweDAwN2MsCi0JMHgxNTdlLCAweDIwMDEsIDB4NGUwNSwgMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHg0MWMxLCAweDIwMjEsCi0JMHg0MWYxLCAweDIwYTksIDB4MDAwOSwgMHgyMDExLCAweDAwMjgsIDB4YTU4MiwgMHgwMDE5LCAweDAwNDAsCi0JMHg0MWQ3LCAweDAwNDgsIDB4NDFkNywgMHg4NDIwLCAweDk1YTksIDB4MjAxMSwgMHgwMDMyLCAweGE1ODIsCi0JMHgwMDMyLCAweDAwNDAsIDB4NDFkNywgMHgwMDQ4LCAweDQxZDcsIDB4ODQyMCwgMHg5NWE5LCAweDIwMTksCi0JMHgwMDBhLCAweDIwMTEsIDB4MDA2NCwgMHgyMjAwLCAweGE1MDIsIDB4MDA0MCwgMHg0MWQ3LCAweDAwNDgsCi0JMHg0MWQ3LCAweDg0MjAsIDB4MjMwMCwgMHhhMjEwLCAweDAwZjAsIDB4NDFiMywgMHgxNTdmLCAweDAwNzgsCi0JMHg0MWQ1LCAweDIwMjEsIDB4NDFlMywgMHgyMDE5LCAweDAwMTEsIDB4MjBhOSwgMHgwMDBlLCAweDIwMTEsCi0JMHgwMDMyLCAweDIyMDAsIDB4YTUwMiwgMHgwMDQwLCAweDQxZDcsIDB4MDA0OCwgMHg0MWQ3LCAweDg0MjAsCi0JMHgyMzAwLCAweGEyMTAsIDB4MDBmMCwgMHg0MWM5LCAweDE1N2YsIDB4YTAwNiwgMHgwMDdjLCAweDE1N2YsCi0JMHhhNTgyLCAweDAwNjQsIDB4MDBjOCwgMHg0MWUwLCAweDc4MDgsIDB4YTA4NSwgMHgwMDcwLCAweDc4MGEsCisJMHg0MWRlLCAweDg0MjAsIDB4MjMwMCwgMHhhMjEwLCAweDAwZjAsIDB4NDFkMywgMHgxNTdmLCAweDAwN2MsCisJMHgxNTdlLCAweDIwMDEsIDB4NGYwNSwgMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHg0MjExLCAweDIwMjEsCisJMHg0MjQxLCAweDIwYTksIDB4MDAwOSwgMHgyMDExLCAweDAwMjgsIDB4YTU4MiwgMHgwMDE5LCAweDAwNDAsCisJMHg0MjI3LCAweDAwNDgsIDB4NDIyNywgMHg4NDIwLCAweDk1YTksIDB4MjAxMSwgMHgwMDMyLCAweGE1ODIsCisJMHgwMDMyLCAweDAwNDAsIDB4NDIyNywgMHgwMDQ4LCAweDQyMjcsIDB4ODQyMCwgMHg5NWE5LCAweDIwMTksCisJMHgwMDBhLCAweDIwMTEsIDB4MDA2NCwgMHgyMjAwLCAweGE1MDIsIDB4MDA0MCwgMHg0MjI3LCAweDAwNDgsCisJMHg0MjI3LCAweDg0MjAsIDB4MjMwMCwgMHhhMjEwLCAweDAwZjAsIDB4NDIwMywgMHgxNTdmLCAweDAwNzgsCisJMHg0MjI1LCAweDIwMjEsIDB4NDIzMywgMHgyMDE5LCAweDAwMTEsIDB4MjBhOSwgMHgwMDBlLCAweDIwMTEsCisJMHgwMDMyLCAweDIyMDAsIDB4YTUwMiwgMHgwMDQwLCAweDQyMjcsIDB4MDA0OCwgMHg0MjI3LCAweDg0MjAsCisJMHgyMzAwLCAweGEyMTAsIDB4MDBmMCwgMHg0MjE5LCAweDE1N2YsIDB4YTAwNiwgMHgwMDdjLCAweDE1N2YsCisJMHhhNTgyLCAweDAwNjQsIDB4MDBjOCwgMHg0MjMwLCAweDc4MDgsIDB4YTA4NSwgMHgwMDcwLCAweDc4MGEsCiAJMHgyNDA0LCAweGEwMDUsIDB4MDA3YywgMHgxMjA5LCAweDMwMDIsIDB4MzIwMiwgMHg0MjAzLCAweDQ0MDMsCiAJMHg1NDA0LCAweDU2MDQsIDB4NjYwNSwgMHg2ODA1LCAweDc4MDYsIDB4N2EwNiwgMHgwYzA3LCAweDBjMDcsCiAJMHgwZTA3LCAweDEwZTEsIDB4MzMwYSwgMHg1ODA1LCAweDVhMDUsIDB4NmEwNiwgMHg2YzA2LCAweDdjMDcsCiAJMHg3ZTA3LCAweDBlMDAsIDB4Nzg5YiwgMHgwMDEwLCAweGEwNDYsIDB4MDA3YywgMHhhNzg0LCAweDBmMDAsCiAJMHg4MDBiLCAweGE3ODQsIDB4MDAxZiwgMHg4MDAzLCAweDgwMDMsIDB4ODAwMywgMHg4MDAzLCAweGExMDUsCi0JMHhkN2ZjLCAweDAwNDAsIDB4NDIwZiwgMHhhMGUwLCAweDczYzAsIDB4MDA3OCwgMHg0MjExLCAweGEwZTAsCi0JMHg1M2MwLCAweDAwN2MsIDB4MGU3ZSwgMHgwZjdlLCAweGQwODQsIDB4MDA0MCwgMHg0MjFmLCAweDIwNzksCi0JMHgwMTAwLCAweDIwMDksIDB4NGU4MCwgMHgyMDcxLCAweDRlODAsIDB4MDA3OCwgMHg0MjJmLCAweDIwMDksCi0JMHg0ZTQwLCAweDIwNzEsIDB4NGU0MCwgMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwNDAsCi0JMHg0MjJkLCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDQyMmYsIDB4MjA3OSwgMHgwMjAwLCAweDIwOTEsCi0JMHg4MDAwLCAweDIxMDQsIDB4YTA4NCwgMHgwMDBmLCAweDAwNzksIDB4NDIzNiwgMHg0MjQwLCAweDQyNDAsCi0JMHg0MjQwLCAweDQyNDAsIDB4NDI0MCwgMHg0MjQwLCAweDQyM2UsIDB4NDIzZSwgMHgxMDc4LCAweDI5NmIsCi0JMHg2OWI0LCAweGMxZjUsIDB4YTE4YywgMHhmZjlmLCAweDY5YjYsIDB4YTAwNSwgMHgwMDQwLCAweDQyOGYsCisJMHhkN2ZjLCAweDAwNDAsIDB4NDI1ZiwgMHhhMGUwLCAweDc0YzAsIDB4MDA3OCwgMHg0MjYxLCAweGEwZTAsCisJMHg1NGMwLCAweDAwN2MsIDB4MGU3ZSwgMHgwZjdlLCAweGQwODQsIDB4MDA0MCwgMHg0MjZmLCAweDIwNzksCisJMHgwMTAwLCAweDIwMDksIDB4NGY4MCwgMHgyMDcxLCAweDRmODAsIDB4MDA3OCwgMHg0MjdmLCAweDIwMDksCisJMHg0ZjQwLCAweDIwNzEsIDB4NGY0MCwgMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwNDAsCisJMHg0MjdkLCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDQyN2YsIDB4MjA3OSwgMHgwMjAwLCAweDIwOTEsCisJMHg4MDAwLCAweDIxMDQsIDB4YTA4NCwgMHgwMDBmLCAweDAwNzksIDB4NDI4NiwgMHg0MjkwLCAweDQyOTAsCisJMHg0MjkwLCAweDQyOTAsIDB4NDI5MCwgMHg0MjkwLCAweDQyOGUsIDB4NDI4ZSwgMHgxMDc4LCAweDI5YjIsCisJMHg2OWI0LCAweGMxZjUsIDB4YTE4YywgMHhmZjlmLCAweDY5YjYsIDB4YTAwNSwgMHgwMDQwLCAweDQyZGYsCiAJMHg3ODU4LCAweGEwODQsIDB4ZmY5ZiwgMHhhMDg1LCAweDYwMDAsIDB4Nzg1YSwgMHg3ODI4LCAweGEwODYsCi0JMHgxODE0LCAweDAwYzAsIDB4NDI4ZiwgMHg3ODRiLCAweDAwMDQsIDB4Nzg0OCwgMHhhMDg0LCAweDAwMDQsCi0JMHgwMGMwLCAweDQyNTUsIDB4Nzg0YiwgMHgwMDA4LCAweDc4NDgsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsCi0JMHg0MjVjLCAweDc4MzAsIDB4ZDBiYywgMHgwMGMwLCAweDQyOGYsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsCi0JMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDQyNzEsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsCi0JMHg0MjczLCAweGIyODQsIDB4MDQwMCwgMHgwMDQwLCAweDQyNzksIDB4MDAxOCwgMHg0MjhmLCAweDAwNzgsCi0JMHg0MjdiLCAweDAwMjgsIDB4NDI4ZiwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDQyOGYsCi0JMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDQyOGYsIDB4NjgxYywgMHhkMGFjLCAweDAwYzAsCi0JMHg0MjhkLCAweDEwNzgsIDB4NDMxOSwgMHgwMDc4LCAweDQyOGYsIDB4NzgxYiwgMHgwMGY5LCAweDBmN2YsCi0JMHgwZTdmLCAweDAwN2MsIDB4MGM3ZSwgMHgyMDAxLCAweDRlMDEsIDB4MjAwNCwgMHhkMGFjLCAweDAwYzAsCi0JMHg0MzBiLCAweDY4MTQsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsCi0JMHhiMjhjLCAweDAzMDAsIDB4MDA0MCwgMHg0MmE4LCAweGEwZTAsIDB4NTJjMCwgMHgwMDc4LCAweDQyYWEsCi0JMHhhMGUwLCAweDUzNDAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGEsIDB4MDBjMCwgMHg0MzBiLCAweDYxMDgsCi0JMHhhMTk0LCAweGZmMDAsIDB4MDA0MCwgMHg0MzBiLCAweGExOGMsIDB4MDBmZiwgMHgyMDAxLCAweDAwMGEsCi0JMHhhMTA2LCAweDAwNDAsIDB4NDJkNiwgMHgyMDAxLCAweDAwMGMsIDB4YTEwNiwgMHgwMDQwLCAweDQyZGEsCi0JMHgyMDAxLCAweDAwMTIsIDB4YTEwNiwgMHgwMDQwLCAweDQyZGUsIDB4MjAwMSwgMHgwMDE0LCAweGExMDYsCi0JMHgwMDQwLCAweDQyZTIsIDB4MjAwMSwgMHgwMDE5LCAweGExMDYsIDB4MDA0MCwgMHg0MmU2LCAweDIwMDEsCi0JMHgwMDMyLCAweGExMDYsIDB4MDA0MCwgMHg0MmVhLCAweDAwNzgsIDB4NDJlZSwgMHgyMDA5LCAweDAwMGMsCi0JMHgwMDc4LCAweDQyZjAsIDB4MjAwOSwgMHgwMDEyLCAweDAwNzgsIDB4NDJmMCwgMHgyMDA5LCAweDAwMTQsCi0JMHgwMDc4LCAweDQyZjAsIDB4MjAwOSwgMHgwMDE5LCAweDAwNzgsIDB4NDJmMCwgMHgyMDA5LCAweDAwMjAsCi0JMHgwMDc4LCAweDQyZjAsIDB4MjAwOSwgMHgwMDNmLCAweDAwNzgsIDB4NDJmMCwgMHgyMDExLCAweDAwMDAsCisJMHgxODE0LCAweDAwYzAsIDB4NDJkZiwgMHg3ODRiLCAweDAwMDQsIDB4Nzg0OCwgMHhhMDg0LCAweDAwMDQsCisJMHgwMGMwLCAweDQyYTUsIDB4Nzg0YiwgMHgwMDA4LCAweDc4NDgsIDB4YTA4NCwgMHgwMDA4LCAweDAwYzAsCisJMHg0MmFjLCAweDc4MzAsIDB4ZDBiYywgMHgwMGMwLCAweDQyZGYsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsCisJMHgyMDA0LCAweGQwZWMsIDB4MDA3ZiwgMHgwMDQwLCAweDQyYzEsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsCisJMHg0MmMzLCAweGIyODQsIDB4MDQwMCwgMHgwMDQwLCAweDQyYzksIDB4MDAxOCwgMHg0MmRmLCAweDAwNzgsCisJMHg0MmNiLCAweDAwMjgsIDB4NDJkZiwgMHg3OWU0LCAweGExODQsIDB4MDAzMCwgMHgwMDQwLCAweDQyZGYsCisJMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDQyZGYsIDB4NjgxYywgMHhkMGFjLCAweDAwYzAsCisJMHg0MmRkLCAweDEwNzgsIDB4NDM2OSwgMHgwMDc4LCAweDQyZGYsIDB4NzgxYiwgMHgwMGY5LCAweDBmN2YsCisJMHgwZTdmLCAweDAwN2MsIDB4MGM3ZSwgMHgyMDAxLCAweDRmMDEsIDB4MjAwNCwgMHhkMGFjLCAweDAwYzAsCisJMHg0MzViLCAweDY4MTQsIDB4ODAwNywgMHhhMDg0LCAweDAwMGYsIDB4ODAwMywgMHg4MDAzLCAweDgwMDMsCisJMHhiMjhjLCAweDAzMDAsIDB4MDA0MCwgMHg0MmY4LCAweGEwZTAsIDB4NTNjMCwgMHgwMDc4LCAweDQyZmEsCisJMHhhMGUwLCAweDU0NDAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGEsIDB4MDBjMCwgMHg0MzViLCAweDYxMDgsCisJMHhhMTk0LCAweGZmMDAsIDB4MDA0MCwgMHg0MzViLCAweGExOGMsIDB4MDBmZiwgMHgyMDAxLCAweDAwMGEsCisJMHhhMTA2LCAweDAwNDAsIDB4NDMyNiwgMHgyMDAxLCAweDAwMGMsIDB4YTEwNiwgMHgwMDQwLCAweDQzMmEsCisJMHgyMDAxLCAweDAwMTIsIDB4YTEwNiwgMHgwMDQwLCAweDQzMmUsIDB4MjAwMSwgMHgwMDE0LCAweGExMDYsCisJMHgwMDQwLCAweDQzMzIsIDB4MjAwMSwgMHgwMDE5LCAweGExMDYsIDB4MDA0MCwgMHg0MzM2LCAweDIwMDEsCisJMHgwMDMyLCAweGExMDYsIDB4MDA0MCwgMHg0MzNhLCAweDAwNzgsIDB4NDMzZSwgMHgyMDA5LCAweDAwMGMsCisJMHgwMDc4LCAweDQzNDAsIDB4MjAwOSwgMHgwMDEyLCAweDAwNzgsIDB4NDM0MCwgMHgyMDA5LCAweDAwMTQsCisJMHgwMDc4LCAweDQzNDAsIDB4MjAwOSwgMHgwMDE5LCAweDAwNzgsIDB4NDM0MCwgMHgyMDA5LCAweDAwMjAsCisJMHgwMDc4LCAweDQzNDAsIDB4MjAwOSwgMHgwMDNmLCAweDAwNzgsIDB4NDM0MCwgMHgyMDExLCAweDAwMDAsCiAJMHgyMTAwLCAweGEyMDUsIDB4NjAwYSwgMHg2MDA0LCAweGEwODUsIDB4MDAwMiwgMHg2MDA2LCAweDIwNjEsCi0JMHg0ZTAwLCAweDYwMDQsIDB4ZDBiYywgMHgwMDQwLCAweDQzMGIsIDB4NjgxNCwgMHhkMGZjLCAweDAwYzAsCi0JMHg0MzA2LCAweDYwZWEsIDB4MjA2MSwgMHg0ZTQwLCAweDAwNzgsIDB4NDMwOSwgMHg2MGVlLCAweDIwNjEsCi0JMHg0ZTgwLCAweDYwMWYsIDB4ODAwZiwgMHgwYzdmLCAweDAwN2MsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsCisJMHg0ZjAwLCAweDYwMDQsIDB4ZDBiYywgMHgwMDQwLCAweDQzNWIsIDB4NjgxNCwgMHhkMGZjLCAweDAwYzAsCisJMHg0MzU2LCAweDYwZWEsIDB4MjA2MSwgMHg0ZjQwLCAweDAwNzgsIDB4NDM1OSwgMHg2MGVlLCAweDIwNjEsCisJMHg0ZjgwLCAweDYwMWYsIDB4ODAwZiwgMHgwYzdmLCAweDAwN2MsIDB4NzgxYiwgMHgwMDc5LCAweDAwN2MsCiAJMHg3ODFiLCAweDAwNzgsIDB4MDA3YywgMHg3ODFiLCAweDAwNjcsIDB4MDA3YywgMHg3ODFiLCAweDAwNjQsCi0JMHgwMDdjLCAweDIwMDksIDB4NGUxOSwgMHgyMTBjLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDQzMmIsCi0JMHhhMTg2LCAweDAwMDEsIDB4MDA0MCwgMHg0MzJlLCAweDcwMWYsIDB4MDAwYiwgMHg3MDY3LCAweDAwMDEsCisJMHgwMDdjLCAweDIwMDksIDB4NGYxOSwgMHgyMTBjLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDQzN2IsCisJMHhhMTg2LCAweDAwMDEsIDB4MDA0MCwgMHg0MzdlLCAweDcwMWYsIDB4MDAwYiwgMHg3MDY3LCAweDAwMDEsCiAJMHg3ODFiLCAweDAwNDcsIDB4MDA3YywgMHg3ODFiLCAweDAwZjAsIDB4MDA3YywgMHg3MDFmLCAweDAwMGEsCi0JMHgwMDdjLCAweDIwMDksIDB4NGUxOSwgMHgyMTBjLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDQzNDYsCi0JMHhhMTg2LCAweDAwMDEsIDB4MDA0MCwgMHg0MzQzLCAweDcwMWYsIDB4MDAwYiwgMHg3MDY3LCAweDAwMDEsCisJMHgwMDdjLCAweDIwMDksIDB4NGYxOSwgMHgyMTBjLCAweGExODYsIDB4MDAwMCwgMHgwMDQwLCAweDQzOTYsCisJMHhhMTg2LCAweDAwMDEsIDB4MDA0MCwgMHg0MzkzLCAweDcwMWYsIDB4MDAwYiwgMHg3MDY3LCAweDAwMDEsCiAJMHg3ODFiLCAweDAwNDcsIDB4MDA3YywgMHg3MDFmLCAweDAwMGEsIDB4MDA3YywgMHg3ODFiLCAweDAwZWYsCiAJMHgwMDdjLCAweDc4MWIsIDB4MDBmOSwgMHgwMDdjLCAweDc4MWIsIDB4MDBmOCwgMHgwMDdjLCAweDc4MWIsCiAJMHgwMGM5LCAweDAwN2MsIDB4NzgxYiwgMHgwMGM4LCAweDAwN2MsIDB4NjgxOCwgMHhkMGZjLCAweDAwNDAsCi0JMHg0MzViLCAweDY4MWIsIDB4MDAxZCwgMHg3MDY3LCAweDAwMDEsIDB4NzgxYiwgMHgwMDQ3LCAweDAwN2MsCi0JMHg3ODMwLCAweGEwODQsIDB4MDBjMCwgMHgwMGMwLCAweDQzODIsIDB4NzgwOCwgMHhjMDhjLCAweDc4MGEsCisJMHg0M2FiLCAweDY4MWIsIDB4MDAxZCwgMHg3MDY3LCAweDAwMDEsIDB4NzgxYiwgMHgwMDQ3LCAweDAwN2MsCisJMHg3ODMwLCAweGEwODQsIDB4MDBjMCwgMHgwMGMwLCAweDQzZDIsIDB4NzgwOCwgMHhjMDhjLCAweDc4MGEsCiAJMHgwMDA1LCAweDAwMDUsIDB4MDAwNSwgMHgwMDA1LCAweDc4ZWMsIDB4YTA4NCwgMHgwMDIxLCAweDAwYzAsCi0JMHg0MzdmLCAweDIwMDEsIDB4NGUwNSwgMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHg0MzdkLCAweDc4MDQsCisJMHg0M2NmLCAweDIwMDEsIDB4NGYwNSwgMHgyMDA0LCAweGQwZTQsIDB4MDBjMCwgMHg0M2NkLCAweDc4MDQsCiAJMHhhMDg0LCAweGZmMWYsIDB4YTA4NSwgMHgwMGUwLCAweDc4MDYsIDB4YTAwNiwgMHgwMDdjLCAweDc4MDgsCiAJMHhjMDhkLCAweDc4MGEsIDB4MDA3YywgMHg3ODA4LCAweGMwOGQsIDB4NzgwYSwgMHgwMDdjLCAweDc4MzAsCi0JMHhhMDg0LCAweDAwNDAsIDB4MDBjMCwgMHg0Mzg3LCAweDIwMDEsIDB4NGUwNCwgMHgyMDA0LCAweGQwZWMsCi0JMHgwMDQwLCAweDQzOTYsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsIDB4NDM5OCwgMHhiMjg0LCAweDA0MDAsCi0JMHgwMDQwLCAweDQzOWUsIDB4MDA5OCwgMHg0M2EyLCAweDAwNzgsIDB4NDNhMCwgMHgwMGE4LCAweDQzYTIsCisJMHhhMDg0LCAweDAwNDAsIDB4MDBjMCwgMHg0M2Q3LCAweDIwMDEsIDB4NGYwNCwgMHgyMDA0LCAweGQwZWMsCisJMHgwMDQwLCAweDQzZTYsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsIDB4NDNlOCwgMHhiMjg0LCAweDA0MDAsCisJMHgwMDQwLCAweDQzZWUsIDB4MDA5OCwgMHg0M2YyLCAweDAwNzgsIDB4NDNmMCwgMHgwMGE4LCAweDQzZjIsCiAJMHg3OGFjLCAweDAwN2MsIDB4NzgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NzgwYSwgMHgwMDA1LCAweDAwMDUsCi0JMHgwMDA1LCAweDAwMDUsIDB4NzhlYywgMHhhMDg0LCAweDAwMjEsIDB4MDA0MCwgMHg0M2M1LCAweDAwN2UsCi0JMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHg0M2JiLCAweGIyODQsCi0JMHgwMzAwLCAweDAwNzgsIDB4NDNiZCwgMHhiMjg0LCAweDA0MDAsIDB4MDA0MCwgMHg0M2MzLCAweDAwOTgsCi0JMHg0M2JmLCAweDAwNzgsIDB4NDNjNSwgMHgwMGE4LCAweDQzYzMsIDB4NzhhYywgMHgwMDdlLCAweDc4MDgsCisJMHgwMDA1LCAweDAwMDUsIDB4NzhlYywgMHhhMDg0LCAweDAwMjEsIDB4MDA0MCwgMHg0NDE1LCAweDAwN2UsCisJMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsIDB4MDA0MCwgMHg0NDBiLCAweGIyODQsCisJMHgwMzAwLCAweDAwNzgsIDB4NDQwZCwgMHhiMjg0LCAweDA0MDAsIDB4MDA0MCwgMHg0NDEzLCAweDAwOTgsCisJMHg0NDBmLCAweDAwNzgsIDB4NDQxNSwgMHgwMGE4LCAweDQ0MTMsIDB4NzhhYywgMHgwMDdlLCAweDc4MDgsCiAJMHhhMDg1LCAweDAwMDIsIDB4NzgwYSwgMHgwMDdmLCAweDAwN2MsIDB4YTc4NCwgMHgwMDAxLCAweDAwYzAsCi0JMHgzNzcwLCAweGE3ODQsIDB4MDA3MCwgMHgwMDQwLCAweDQzZGQsIDB4MGM3ZSwgMHgyZDYwLCAweDJmNjgsCi0JMHgxMDc4LCAweDI4ZGYsIDB4MmQ3OCwgMHgyYzY4LCAweDBjN2YsIDB4YTc4NCwgMHgwMDA4LCAweDAwNDAsCi0JMHg0M2VhLCAweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDM3NzAsCi0JMHgwMDc4LCAweDQzMGQsIDB4YTc4NCwgMHgwMDA0LCAweDAwNDAsIDB4NDQxOSwgMHg3OGI4LCAweGEwODQsCi0JMHg0MDAxLCAweDAwNDAsIDB4NDQxOSwgMHg3ODRiLCAweDAwMDgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsCi0JMHgwMDQwLCAweDM3NzAsIDB4NzhlNCwgMHhhMDg0LCAweDAwMDcsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsCi0JMHg0NDE5LCAweDc4YzAsIDB4YTY4NSwgMHg0ODAwLCAweDIwMzAsIDB4N2U1YSwgMHg3ODFiLCAweDAwZjksCi0JMHgwMDdjLCAweDc4NGIsIDB4MDAwOCwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHg0NDE2LCAweDY4MWIsCi0JMHgwMDE1LCAweGQ2ZjQsIDB4MDA0MCwgMHg0NDE2LCAweDY4MWIsIDB4MDAwNywgMHgxMDc4LCAweDQzMTksCisJMHgzN2I5LCAweGE3ODQsIDB4MDA3MCwgMHgwMDQwLCAweDQ0MmQsIDB4MGM3ZSwgMHgyZDYwLCAweDJmNjgsCisJMHgxMDc4LCAweDI5MjYsIDB4MmQ3OCwgMHgyYzY4LCAweDBjN2YsIDB4YTc4NCwgMHgwMDA4LCAweDAwNDAsCisJMHg0NDNhLCAweDc4NGIsIDB4MDAwOCwgMHg3OGVjLCAweGEwODQsIDB4MDAwMywgMHgwMDQwLCAweDM3YjksCisJMHgwMDc4LCAweDQzNWQsIDB4YTc4NCwgMHgwMDA0LCAweDAwNDAsIDB4NDQ2OSwgMHg3OGI4LCAweGEwODQsCisJMHg0MDAxLCAweDAwNDAsIDB4NDQ2OSwgMHg3ODRiLCAweDAwMDgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsCisJMHgwMDQwLCAweDM3YjksIDB4NzhlNCwgMHhhMDg0LCAweDAwMDcsIDB4YTA4NiwgMHgwMDAxLCAweDAwYzAsCisJMHg0NDY5LCAweDc4YzAsIDB4YTY4NSwgMHg0ODAwLCAweDIwMzAsIDB4N2U1YSwgMHg3ODFiLCAweDAwZjksCisJMHgwMDdjLCAweDc4NGIsIDB4MDAwOCwgMHg2ODE4LCAweGQwZmMsIDB4MDA0MCwgMHg0NDY2LCAweDY4MWIsCisJMHgwMDE1LCAweGQ2ZjQsIDB4MDA0MCwgMHg0NDY2LCAweDY4MWIsIDB4MDAwNywgMHgxMDc4LCAweDQzNjksCiAJMHgwMDdjLCAweDY4MWIsIDB4MDAwMywgMHg3ODU4LCAweGEwODQsIDB4M2YwMCwgMHg2ODFlLCAweDY4MmYsCiAJMHgwMDAwLCAweDY4MzMsIDB4MDAwMCwgMHg3ODRiLCAweDAwMDgsIDB4NzhlYywgMHhhMDg0LCAweDAwMDMsCi0JMHgwMDQwLCAweDMwNjYsIDB4MDA3ZSwgMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCi0JMHgwMDQwLCAweDQ0MzYsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsIDB4NDQzOCwgMHhiMjg0LCAweDA0MDAsCi0JMHgwMDQwLCAweDQ0M2UsIDB4MDAxOCwgMHgyOWMxLCAweDAwNzgsIDB4NDQ0MCwgMHgwMDI4LCAweDI5YzEsCi0JMHgwMDc4LCAweDQwYmMsIDB4NmIxNCwgMHg4MzA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsCi0JMHg4MDAzLCAweGQzZmMsIDB4MDA0MCwgMHg0NDUwLCAweGEwODAsIDB4NTM0MCwgMHgwMDc4LCAweDQ0NTIsCi0JMHhhMDgwLCAweDUyYzAsIDB4MjA2MCwgMHgyMDQ4LCAweDcwNWEsIDB4MmE2MCwgMHgwMDdjLCAweDAwMjAsCisJMHgwMDQwLCAweDMwYWYsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDQsIDB4MjAwNCwgMHhkMGVjLCAweDAwN2YsCisJMHgwMDQwLCAweDQ0ODYsIDB4YjI4NCwgMHgwMzAwLCAweDAwNzgsIDB4NDQ4OCwgMHhiMjg0LCAweDA0MDAsCisJMHgwMDQwLCAweDQ0OGUsIDB4MDAxOCwgMHgyYTA4LCAweDAwNzgsIDB4NDQ5MCwgMHgwMDI4LCAweDJhMDgsCisJMHgwMDc4LCAweDQxMGMsIDB4NmIxNCwgMHg4MzA3LCAweGEwODQsIDB4MDAwZiwgMHg4MDAzLCAweDgwMDMsCisJMHg4MDAzLCAweGQzZmMsIDB4MDA0MCwgMHg0NGEwLCAweGEwODAsIDB4NTQ0MCwgMHgwMDc4LCAweDQ0YTIsCisJMHhhMDgwLCAweDUzYzAsIDB4MjA2MCwgMHgyMDQ4LCAweDcwNWEsIDB4MmE2MCwgMHgwMDdjLCAweDAwMjAsCiAJMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsCiAJMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsCiAJMHgwMDIwLCAweDAwMDAsIDB4MDAyMCwgMHgwMDAwLCAweDAwMjAsIDB4MDAwMCwgMHgwMDIwLCAweDAwMDAsCkBAIC0xNzYzLDI1NSArMTc3MywyNzYgQEAKIAkweDAwMTYsIDB4Nzk0NCwgMHg4NDIxLCAweGEwMjAsIDB4YTUzMiwgMHg4NGExLCAweDAwMTYsIDB4Nzk0NCwKIAkweDg0MjEsIDB4YTBkZiwgMHg5NTMyLCAweDg0YTEsIDB4MDAxNiwgMHgwMDAwLCAweDEyN2UsIDB4NzBkNCwKIAkweGEwODQsIDB4NDYwMCwgMHg4MDA0LCAweDIwOTAsIDB4NzIwNCwgMHg3MDA4LCAweGMwOWMsIDB4YTIwNSwKLQkweDAwYzAsIDB4NDVhMiwgMHg3MjBjLCAweDgyZmYsIDB4MDA0MCwgMHg0NTlkLCAweDhhZmYsIDB4MDBjMCwKLQkweDQ1YTIsIDB4NzIwMCwgMHhkMjg0LCAweDAwYzAsIDB4NDVhMiwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwKKwkweDAwYzAsIDB4NDYwMiwgMHg3MjBjLCAweDgyZmYsIDB4MDA0MCwgMHg0NWVkLCAweDhhZmYsIDB4MDBjMCwKKwkweDQ2MDIsIDB4NzIwMCwgMHhkMjg0LCAweDAwYzAsIDB4NDYwMiwgMHg3ODA0LCAweGQwY2MsIDB4MDA0MCwKKwkweDQ1ZjMsIDB4MTA3OCwgMHg0YWNjLCAweDcwMjMsIDB4MDAwMCwgMHg3MDI3LCAweDAwMDAsIDB4NzAwMCwKKwkweGQwODQsIDB4MDA0MCwgMHg0NWZkLCAweDcwMDcsIDB4MDAwNCwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwKIAkweDIwMDAsIDB4MDA3YywgMHg3MDAwLCAweGEwODQsIDB4MDAwMywgMHg3MDAyLCAweGM2OWMsIDB4ZDA4NCwKLQkweDAwNDAsIDB4NDVlNSwgMHg3MTA4LCAweDAwMDUsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDVhYSwKLQkweGExODQsIDB4MDAwMywgMHgwMDQwLCAweDQ2MTYsIDB4YTE4NCwgMHgwMWUwLCAweDAwYzAsIDB4NDYxNiwKLQkweGQxZjQsIDB4MDBjMCwgMHg0NWFhLCAweGExODQsIDB4MzAwMCwgMHhhMDg2LCAweDEwMDAsIDB4MDA0MCwKLQkweDQ1YWEsIDB4MjAxMSwgMHgwMTgwLCAweDcxMGMsIDB4ODIxMSwgMHgwMDQwLCAweDQ1Y2YsIDB4NzAwOCwKLQkweGQwZjQsIDB4MDBjMCwgMHg0NWFhLCAweDcwMGMsIDB4YTEwNiwgMHgwMDQwLCAweDQ1YzQsIDB4NzAwNywKLQkweDAwMTIsIDB4NzEwOCwgMHgwMDA1LCAweDcwMDgsIDB4YTEwNiwgMHgwMGMwLCAweDQ1ZDEsIDB4YTE4NCwKLQkweDAwMDMsIDB4MDA0MCwgMHg0NjE2LCAweGQxOTQsIDB4MDA0MCwgMHg0NWQxLCAweGQxZjQsIDB4MDA0MCwKLQkweDQ2MTYsIDB4NzAwNywgMHgwMDAyLCAweDAwNzgsIDB4NDVhYSwgMHg3MTA4LCAweGQxZmMsIDB4MDA0MCwKLQkweDQ1ZjAsIDB4MTA3OCwgMHg0NzY5LCAweDhhZmYsIDB4MDA0MCwgMHg0NThjLCAweDAwNzgsIDB4NDVlNSwKLQkweDcwMGMsIDB4YTA4YywgMHgwM2ZmLCAweDAwNDAsIDB4NDYxYiwgMHg3MDA0LCAweGQwODQsIDB4MDA0MCwKLQkweDQ2MGQsIDB4NzAxNCwgMHhhMDA1LCAweDAwYzAsIDB4NDYwOSwgMHg3MDEwLCAweDczMTAsIDB4YTMwNiwKLQkweDAwYzAsIDB4NDVmZCwgMHgyMzAwLCAweGEwMDUsIDB4MDA0MCwgMHg0NjBkLCAweGExMDIsIDB4MDBjOCwKLQkweDQ1ZTUsIDB4NzAwNywgMHgwMDEwLCAweDAwNzgsIDB4NDYxNiwgMHg4YWZmLCAweDAwNDAsIDB4NDYxYiwKLQkweDEwNzgsIDB4NDk3MCwgMHgwMGMwLCAweDQ2MTAsIDB4MDA0MCwgMHg0NWU1LCAweDEwNzgsIDB4NDZiNCwKLQkweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDcyMDQsIDB4NzEwOCwgMHhjMTljLCAweDgxMDMsIDB4MDBjOCwKLQkweDQ2MmEsIDB4NzAwNywgMHgwMDAyLCAweDAwNzgsIDB4NDYxYiwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwKLQkweDIwMDAsIDB4MDA3YywgMHhhMjA1LCAweDAwYzAsIDB4NDYxNiwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwKLQkweDIwMDAsIDB4MDA3YywgMHg2NDI4LCAweDg0ZmYsIDB4MDA0MCwgMHg0NjVlLCAweDJjNzAsIDB4NzAwNCwKLQkweGEwYmMsIDB4MDAwZiwgMHhhN2I4LCAweDQ2NmUsIDB4MjczYywgMHg4N2ZiLCAweDAwYzAsIDB4NDY0YywKLQkweDAwNDgsIDB4NDY0NCwgMHgxMDc4LCAweDI5NmIsIDB4NjA5YywgMHhhMDc1LCAweDAwNDAsIDB4NDY1ZSwKLQkweDAwNzgsIDB4NDYzNywgMHgyMDM5LCAweDQ2NjMsIDB4MjcwNCwgMHhhZTY4LCAweDY4MDgsIDB4YTYzMCwKLQkweDY4MGMsIDB4YTUyOSwgMHg4NDIxLCAweDAwNDAsIDB4NDY1ZSwgMHg4NzM4LCAweDI3MDQsIDB4YTAwNSwKLQkweDAwYzAsIDB4NDY0ZCwgMHg3MDljLCAweGEwNzUsIDB4MDBjMCwgMHg0NjM3LCAweDAwN2MsIDB4MDAwMCwKLQkweDAwMDUsIDB4MDAwOSwgMHgwMDBkLCAweDAwMTEsIDB4MDAxNSwgMHgwMDE5LCAweDAwMWQsIDB4MDAwMCwKLQkweDAwMDMsIDB4MDAwOSwgMHgwMDBmLCAweDAwMTUsIDB4MDAxYiwgMHgwMDAwLCAweDAwMDAsIDB4NDY2MywKLQkweDQ2NjAsIDB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHg0NjYzLCAweDAwMDAsIDB4NDY2YiwKLQkweDQ2NjgsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg0NjZiLCAweDAwMDAsIDB4NDY2NiwKLQkweDQ2NjYsIDB4MDAwMCwgMHgwMDAwLCAweDgwMDAsIDB4MDAwMCwgMHg0NjY2LCAweDAwMDAsIDB4NDY2YywKLQkweDQ2NmMsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHg0NjZjLCAweDIwNzksIDB4NGUwMCwKLQkweDIwNzEsIDB4MDAxMCwgMHg3MDA3LCAweDAwMGEsIDB4NzAwNywgMHgwMDAyLCAweDcwMDMsIDB4MDAwMSwKLQkweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDQ2YTIsIDB4MjAwOSwgMHgwMDAxLCAweDIwNzEsIDB4MDAyMCwKLQkweDAwNzgsIDB4NDZhNiwgMHgyMDA5LCAweDAwMDIsIDB4MjA3MSwgMHgwMDUwLCAweDcwMDcsIDB4MDAwYSwKLQkweDcwMDcsIDB4MDAwMiwgMHg3MDAzLCAweDAwMDAsIDB4ODEwOSwgMHgwMDQwLCAweDQ2YjMsIDB4MjA3MSwKLQkweDAwMjAsIDB4MDA3OCwgMHg0NmE2LCAweDAwN2MsIDB4NzAwNCwgMHg4MDA0LCAweDAwYzgsIDB4NDczZCwKLQkweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDZiOCwgMHhhMTg0LCAweDAxZTAsIDB4MDA0MCwKLQkweDQ2YzUsIDB4MTA3OCwgMHg0N2FjLCAweDAwNzgsIDB4NDc2NSwgMHg3MDA3LCAweDAwMTIsIDB4MjAxOSwKLQkweDAwMDAsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwgMHg0NmM5LCAweGExODQsIDB4MDFlMCwKLQkweDAwNDAsIDB4NDZkNiwgMHgxMDc4LCAweDQ3YWMsIDB4MDA3OCwgMHg0NzY1LCAweDc4MTAsIDB4ZDBlYywKLQkweDAwNDAsIDB4NDZmMCwgMHgyMDAxLCAweDA0ZmQsIDB4MjAwNCwgMHhhMDg2LCAweDAwMDMsIDB4MDBjMCwKLQkweDQ2ZjQsIDB4YTE4NCwgMHg0MDAwLCAweDAwNDAsIDB4NDZmOCwgMHhhMzgyLCAweDAwMDMsIDB4MDBjOCwKLQkweDQ2ZjgsIDB4YTE4NCwgMHgwMDA0LCAweDAwNDAsIDB4NDZjOSwgMHg4MzE4LCAweDAwNzgsIDB4NDZjOSwKLQkweDc4MTQsIDB4ZDBlYywgMHgwMGMwLCAweDQ2ZjgsIDB4YTE4NCwgMHg0MDAwLCAweDAwYzAsIDB4NDZjOSwKLQkweGExOWMsIDB4MzAwYywgMHhhMzg2LCAweDIwMDQsIDB4MDA0MCwgMHg0NzE1LCAweGEzODYsIDB4MDAwOCwKLQkweDAwNDAsIDB4NDcyMCwgMHg3MDA0LCAweGQwODQsIDB4MDBjMCwgMHg0NzExLCAweDcxMDgsIDB4NzAwOCwKLQkweGExMDYsIDB4MDBjMCwgMHg0NzA2LCAweGExODQsIDB4MDAwMywgMHgwMDQwLCAweDQ3MTEsIDB4MDA3OCwKLQkweDQ3YWMsIDB4YTM4NiwgMHgyMDBjLCAweDAwYzAsIDB4NDZjOSwgMHg3MjAwLCAweDgyMDQsIDB4MDA0OCwKLQkweDQ3MjAsIDB4NzMwYywgMHhhMzg0LCAweDAzZmYsIDB4MDA0MCwgMHg0NzIwLCAweDEwNzgsIDB4Mjk2YiwKLQkweDcxMDgsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDcyMCwgMHhhMTg0LCAweDAxZTAsIDB4MDA0MCwKLQkweDQ3MmQsIDB4MTA3OCwgMHg0N2FjLCAweDAwNzgsIDB4NDc2NSwgMHg3MDA3LCAweDAwMTIsIDB4NzAwMCwKLQkweGQwODQsIDB4MDBjMCwgMHg0NzNkLCAweDczMTAsIDB4NzAxNCwgMHhhMzA1LCAweDAwNDAsIDB4NDczZCwKLQkweDcxMGMsIDB4YTE4NCwgMHgwM2ZmLCAweDAwYzAsIDB4NDZiNCwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwKLQkweDAwYzAsIDB4NDczZCwgMHhhMTg0LCAweDAxZTAsIDB4MDA0MCwgMHg0NzRhLCAweDEwNzgsIDB4NDdhYywKLQkweDAwNzgsIDB4NDc2NSwgMHg3MDA3LCAweDAwMTIsIDB4NzAwNywgMHgwMDA4LCAweDcwMDQsIDB4ZDA5YywKLQkweDAwYzAsIDB4NDc0ZSwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwgMHgwMGMwLCAweDQ3NTIsIDB4YTE4NCwKLQkweDAxZTAsIDB4MDA0MCwgMHg0NzVmLCAweDEwNzgsIDB4NDdhYywgMHgwMDc4LCAweDQ3NjUsIDB4NzAwNywKLQkweDAwMTIsIDB4NzEwOCwgMHg4MTAzLCAweDAwNDgsIDB4NDc1MiwgMHg3MDAzLCAweDAwMDgsIDB4MDA3YywKLQkweDcxMDgsIDB4YTE4NCwgMHgwMWUwLCAweDAwYzAsIDB4NDdhYywgMHg3MTA4LCAweGExODQsIDB4MDFlMCwKLQkweDAwYzAsIDB4NDdhYywgMHhhMTg0LCAweDAwMDcsIDB4MDA3OSwgMHg0Nzc2LCAweDQ3ODAsIDB4NDc5MCwKLQkweDQ3N2UsIDB4NDc5MCwgMHg0NzdlLCAweDQ3ZWUsIDB4NDc3ZSwgMHg0N2VjLCAweDEwNzgsIDB4Mjk2YiwKLQkweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGMwOGQsIDB4NzAwNiwgMHg4YWZmLCAweDAwYzAsIDB4NDc4YiwKLQkweDIwNDksIDB4MDAwMCwgMHgwMDdjLCAweDEwNzgsIDB4NDk3MCwgMHgwMGMwLCAweDQ3OGIsIDB4MDA3YywKLQkweDcwMDQsIDB4YTA4NCwgMHgwMDEwLCAweGMwOGQsIDB4NzAwNiwgMHg3MDA0LCAweGQwODQsIDB4MDBjMCwKLQkweDQ3YTQsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwgMHg0Nzk5LCAweGExODQsIDB4MDAwMywKLQkweDAwNDAsIDB4NDdhNCwgMHgwMDc4LCAweDQ3YWMsIDB4OGFmZiwgMHgwMDQwLCAweDQ3YWIsIDB4MTA3OCwKLQkweDQ5NzAsIDB4MDBjMCwgMHg0N2E3LCAweDAwN2MsIDB4NzAwNywgMHgwMDEyLCAweDcxMDgsIDB4MDBlMCwKLQkweDQ3YWYsIDB4MjA5MSwgMHg2MDAwLCAweDAwZTAsIDB4NDdiMywgMHgyMDkxLCAweDYwMDAsIDB4NzAwNywKLQkweDAwMTIsIDB4NzAwNywgMHgwMDA4LCAweDcwMDQsIDB4ZDA5YywgMHgwMGMwLCAweDQ3YmIsIDB4NzAwNywKLQkweDAwMTIsIDB4NzEwOCwgMHhkMWZjLCAweDAwYzAsIDB4NDdiZiwgMHg3MDAzLCAweDAwMDAsIDB4NzAwMCwKLQkweGEwMDUsIDB4MDBjMCwgMHg0N2QzLCAweDcwMDQsIDB4YTAwNSwgMHgwMGMwLCAweDQ3ZDMsIDB4NzAwYywKLQkweGEwMDUsIDB4MDA0MCwgMHg0N2Q1LCAweDAwNzgsIDB4NDdiNywgMHgyMDQ5LCAweDAwMDAsIDB4YjI4NCwKLQkweDAxMDAsIDB4MDA0MCwgMHg0N2RmLCAweDIwMDEsIDB4MDAwMCwgMHgwMDc4LCAweDQ3ZTEsIDB4MjAwMSwKLQkweDAwMDEsIDB4MTA3OCwgMHg0MjEyLCAweDY4MWIsIDB4MDAwMiwgMHgyMDUxLCAweDAwMDAsIDB4MDA3YywKLQkweDEwNzgsIDB4Mjk2YiwgMHgxMDc4LCAweDI5NmIsIDB4MTA3OCwgMHg0ODM2LCAweDcyMTAsIDB4NzExNCwKLQkweDcwMGMsIDB4YTA5YywgMHgwM2ZmLCAweDI4MDAsIDB4YTMwMCwgMHhhMjExLCAweGExODksIDB4MDAwMCwKLQkweDEwNzgsIDB4NDgzNiwgMHgyNzA0LCAweDJjNTgsIDB4YWM2MCwgMHg2MzA4LCAweDIyMDAsIDB4YTMyMiwKLQkweDYzMGMsIDB4MjEwMCwgMHhhMzFiLCAweDI0MDAsIDB4YTMwNSwgMHgwMDQwLCAweDQ4MTEsIDB4MDBjOCwKLQkweDQ4MTEsIDB4ODQxMiwgMHg4MjEwLCAweDgzMGEsIDB4YTE4OSwgMHgwMDAwLCAweDJiNjAsIDB4MDA3OCwKLQkweDQ3ZjgsIDB4MmI2MCwgMHg4YTA3LCAweDAwN2UsIDB4NjAwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA0MCwKLQkweDQ4MWQsIDB4YTdiYSwgMHg0NjY4LCAweDAwNzgsIDB4NDgxZiwgMHhhN2JhLCAweDQ2NjAsIDB4MDA3ZiwKLQkweGE3M2QsIDB4MmMwMCwgMHg2ODg2LCAweDZmOGEsIDB4NmM5MiwgMHg2YjhlLCAweDcxMDgsIDB4NzAwOCwKLQkweGExMDYsIDB4MDBjMCwgMHg0ODI2LCAweGExODQsIDB4MDFlMCwgMHgwMDQwLCAweDQ4MzEsIDB4MTA3OCwKLQkweDQ3YWMsIDB4NzAwNywgMHgwMDEyLCAweDEwNzgsIDB4NDZiNCwgMHgwMDdjLCAweDhhNTAsIDB4ODczOSwKLQkweDI3MDQsIDB4YTAwNCwgMHgwMGMwLCAweDQ4NGEsIDB4NjAwMCwgMHhhMDY0LCAweDAwYzAsIDB4NDg0MSwKLQkweDJkNjAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwgMHg0NjdlLCAweDIwM2MsIDB4ODdmYiwKLQkweDEwNDAsIDB4Mjk2YiwgMHgwMDdjLCAweDEyN2UsIDB4MGQ3ZSwgMHg3MGQ0LCAweGEwODQsIDB4NDYwMCwKLQkweDgwMDQsIDB4MjA5MCwgMHgwZDdmLCAweDY4ODQsIDB4MjA2MCwgMHg2ODg4LCAweDZiOGMsIDB4NmM5MCwKLQkweDgwNTcsIDB4YWFkNCwgMHgwMGZmLCAweGEwODQsIDB4MDBmZiwgMHgwMDdlLCAweDY4MDQsIDB4YTA4NCwKLQkweDAwMDgsIDB4MDA3ZiwgMHgwMDQwLCAweDQ4NjgsIDB4YTBiOCwgMHg0NjY4LCAweDAwNzgsIDB4NDg2YSwKLQkweGEwYjgsIDB4NDY2MCwgMHhiMjg0LCAweDAxMDAsIDB4MDA0MCwgMHg0ODcxLCAweDdlMjAsIDB4MDA3OCwKLQkweDQ4NzIsIDB4N2UyNCwgMHhhNmI1LCAweDAwMGMsIDB4NjgxYywgMHhkMGI0LCAweDAwNDAsIDB4NDg3OSwKLQkweGM2ODUsIDB4MjQwMCwgMHhhMzA1LCAweDAwNDAsIDB4NDhhMywgMHgyYzU4LCAweDI3MDQsIDB4NjEwNCwKLQkweGFjNjAsIDB4NjAwMCwgMHhhNDAwLCAweDcwMWEsIDB4NjAwNCwgMHhhMzAxLCAweDcwMWUsIDB4YTE4NCwKLQkweDAwMDgsIDB4MDA0MCwgMHg0ODkzLCAweDYwMTAsIDB4YTA4MSwgMHgwMDAwLCAweDcwMjIsIDB4NjAxNCwKLQkweGEwODEsIDB4MDAwMCwgMHg3MDI2LCAweDYyMDgsIDB4MjQwMCwgMHhhMjAyLCAweDcwMTIsIDB4NjIwYywKLQkweDIzMDAsIDB4YTIwMywgMHg3MDE2LCAweDc2MDIsIDB4NzAwNywgMHgwMDAxLCAweDJiNjAsIDB4MTA3OCwKLQkweDQ5OWIsIDB4MDA3OCwgMHg0OGE1LCAweDEwNzgsIDB4NDk3MCwgMHgwMGMwLCAweDQ4YTMsIDB4MTI3ZiwKLQkweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDBkN2UsIDB4NzBkNCwgMHhhMDg0LCAweDQ2MDAsIDB4ODAwNCwKLQkweDIwOTAsIDB4MGQ3ZiwgMHg3MDA3LCAweDAwMDQsIDB4NzAwNCwgMHhkMDk0LCAweDAwYzAsIDB4NDhiNCwKLQkweDcwMDMsIDB4MDAwOCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDBkN2UsIDB4NzBkNCwKLQkweGEwODQsIDB4NDYwMCwgMHg4MDA0LCAweDAwN2UsIDB4MjA5MCwgMHgwMDdmLCAweDBkN2YsIDB4N2UyMCwKLQkweGIyODQsIDB4MDEwMCwgMHgwMGMwLCAweDQ4Y2QsIDB4N2UyNCwgMHhhNmI1LCAweDAwMGMsIDB4NjgxYywKLQkweGQwYWMsIDB4MDBjMCwgMHg0OGQ4LCAweGM2ODUsIDB4NzAwMywgMHgwMDAwLCAweDcwMDcsIDB4MDAwNCwKLQkweDY4MjgsIDB4MjA1MCwgMHgyZDYwLCAweDYwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4NDY2ZSwKLQkweDI3M2MsIDB4ODdmYiwgMHgwMGMwLCAweDQ4ZWUsIDB4MDA0OCwgMHg0OGU4LCAweDEwNzgsIDB4Mjk2YiwKLQkweDY4OWMsIDB4YTA2NSwgMHgwMDQwLCAweDQ4ZjIsIDB4MDA3OCwgMHg0OGRiLCAweDEwNzgsIDB4NDk3MCwKLQkweDAwYzAsIDB4NDhlZSwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywgMHgxMjdlLCAweDAwN2UsIDB4MDE3ZSwKKwkweDAwNDAsIDB4NDY1YiwgMHg3MTA4LCAweDAwMDUsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDYwYSwKKwkweGExODQsIDB4MDAwMywgMHgwMDQwLCAweDQ2OGMsIDB4YTE4NCwgMHgwMWUwLCAweDAwYzAsIDB4NDY4YywKKwkweGQxZjQsIDB4MDBjMCwgMHg0NjBhLCAweGExODQsIDB4MzAwMCwgMHhhMDg2LCAweDEwMDAsIDB4MDA0MCwKKwkweDQ2MGEsIDB4MjAwMSwgMHg0ZjA1LCAweDIwMDQsIDB4ZDBlNCwgMHgwMDQwLCAweDQ2MzcsIDB4MjAxMSwKKwkweDAxODAsIDB4NzEwYywgMHg4MjExLCAweDAwNDAsIDB4NDY0NSwgMHg3MDA4LCAweGQwZjQsIDB4MDBjMCwKKwkweDQ2MGEsIDB4NzAwYywgMHhhMTA2LCAweDAwNDAsIDB4NDYyYSwgMHgwMDc4LCAweDQ2MjcsIDB4MjAxMSwKKwkweDAxODAsIDB4NzEwYywgMHg4MjExLCAweDAwNDAsIDB4NDY0NSwgMHg3MDA4LCAweGQwZjQsIDB4MDBjMCwKKwkweDQ2MGEsIDB4NzAwYywgMHhhMTA2LCAweDAwNDAsIDB4NDYzYSwgMHg3MDA3LCAweDAwMTIsIDB4NzEwOCwKKwkweDAwMDUsIDB4NzAwOCwgMHhhMTA2LCAweDAwYzAsIDB4NDY0NywgMHhhMTg0LCAweDAwMDMsIDB4MDA0MCwKKwkweDQ2OGMsIDB4ZDE5NCwgMHgwMDQwLCAweDQ2NDcsIDB4ZDFmNCwgMHgwMDQwLCAweDQ2OGMsIDB4NzAwNywKKwkweDAwMDIsIDB4MDA3OCwgMHg0NjBhLCAweDcxMDgsIDB4ZDFmYywgMHgwMDQwLCAweDQ2NjYsIDB4MTA3OCwKKwkweDQ3ZWQsIDB4OGFmZiwgMHgwMDQwLCAweDQ1ZGMsIDB4MDA3OCwgMHg0NjViLCAweDcwMGMsIDB4YTA4YywKKwkweDAzZmYsIDB4MDA0MCwgMHg0NjkxLCAweDcwMDQsIDB4ZDA4NCwgMHgwMDQwLCAweDQ2ODMsIDB4NzAxNCwKKwkweGEwMDUsIDB4MDBjMCwgMHg0NjdmLCAweDcwMTAsIDB4NzMxMCwgMHhhMzA2LCAweDAwYzAsIDB4NDY3MywKKwkweDIzMDAsIDB4YTAwNSwgMHgwMDQwLCAweDQ2ODMsIDB4YTEwMiwgMHgwMGM4LCAweDQ2NWIsIDB4NzAwNywKKwkweDAwMTAsIDB4MDA3OCwgMHg0NjhjLCAweDhhZmYsIDB4MDA0MCwgMHg0NjkxLCAweDEwNzgsIDB4NDlmMiwKKwkweDAwYzAsIDB4NDY4NiwgMHgwMDQwLCAweDQ2NWIsIDB4MTA3OCwgMHg0NzM4LCAweDEyN2YsIDB4MjAwMCwKKwkweDAwN2MsIDB4NzIwNCwgMHg3MTA4LCAweGMxOWMsIDB4ODEwMywgMHgwMGM4LCAweDQ2YTAsIDB4NzAwNywKKwkweDAwMDIsIDB4MDA3OCwgMHg0NjkxLCAweDcwMDMsIDB4MDAwOCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywKKwkweGEyMDUsIDB4MDBjMCwgMHg0NjhjLCAweDcwMjMsIDB4MDAwMCwgMHg3MDI3LCAweDAwMDAsIDB4NzAwMywKKwkweDAwMDgsIDB4MDA3ZSwgMHgyMDAxLCAweDRmMDEsIDB4MjAwNCwgMHhkMGNjLCAweDAwNDAsIDB4NDZiMiwKKwkweDEwNzgsIDB4NGFjYywgMHgwMDdmLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDY0MjgsIDB4ODRmZiwKKwkweDAwNDAsIDB4NDZlMiwgMHgyYzcwLCAweDcwMDQsIDB4YTBiYywgMHgwMDBmLCAweGE3YjgsIDB4NDZmMiwKKwkweDI3M2MsIDB4ODdmYiwgMHgwMGMwLCAweDQ2ZDAsIDB4MDA0OCwgMHg0NmM4LCAweDEwNzgsIDB4MjliMiwKKwkweDYwOWMsIDB4YTA3NSwgMHgwMDQwLCAweDQ2ZTIsIDB4MDA3OCwgMHg0NmJiLCAweDIwMzksIDB4NDZlNywKKwkweDI3MDQsIDB4YWU2OCwgMHg2ODA4LCAweGE2MzAsIDB4NjgwYywgMHhhNTI5LCAweDg0MjEsIDB4MDA0MCwKKwkweDQ2ZTIsIDB4ODczOCwgMHgyNzA0LCAweGEwMDUsIDB4MDBjMCwgMHg0NmQxLCAweDcwOWMsIDB4YTA3NSwKKwkweDAwYzAsIDB4NDZiYiwgMHgwMDdjLCAweDAwMDAsIDB4MDAwNSwgMHgwMDA5LCAweDAwMGQsIDB4MDAxMSwKKwkweDAwMTUsIDB4MDAxOSwgMHgwMDFkLCAweDAwMDAsIDB4MDAwMywgMHgwMDA5LCAweDAwMGYsIDB4MDAxNSwKKwkweDAwMWIsIDB4MDAwMCwgMHgwMDAwLCAweDQ2ZTcsIDB4NDZlNCwgMHgwMDAwLCAweDAwMDAsIDB4ODAwMCwKKwkweDAwMDAsIDB4NDZlNywgMHgwMDAwLCAweDQ2ZWYsIDB4NDZlYywgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4NDZlZiwgMHgwMDAwLCAweDQ2ZWEsIDB4NDZlYSwgMHgwMDAwLCAweDAwMDAsIDB4ODAwMCwKKwkweDAwMDAsIDB4NDZlYSwgMHgwMDAwLCAweDQ2ZjAsIDB4NDZmMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4NDZmMCwgMHgyMDc5LCAweDRmMDAsIDB4MjA3MSwgMHgwMDEwLCAweDcwMDcsIDB4MDAwYSwKKwkweDcwMDcsIDB4MDAwMiwgMHg3MDAzLCAweDAwMDEsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsIDB4NDcyNiwKKwkweDIwMDksIDB4MDAwMSwgMHgyMDcxLCAweDAwMjAsIDB4MDA3OCwgMHg0NzJhLCAweDIwMDksIDB4MDAwMiwKKwkweDIwNzEsIDB4MDA1MCwgMHg3MDA3LCAweDAwMGEsIDB4NzAwNywgMHgwMDAyLCAweDcwMDMsIDB4MDAwMCwKKwkweDgxMDksIDB4MDA0MCwgMHg0NzM3LCAweDIwNzEsIDB4MDAyMCwgMHgwMDc4LCAweDQ3MmEsIDB4MDA3YywKKwkweDcwMDQsIDB4ODAwNCwgMHgwMGM4LCAweDQ3YzEsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwKKwkweDQ3M2MsIDB4YTE4NCwgMHgwMWUwLCAweDAwNDAsIDB4NDc0OSwgMHgxMDc4LCAweDQ4MzAsIDB4MDA3OCwKKwkweDQ3ZTksIDB4NzAwNywgMHgwMDEyLCAweDIwMTksIDB4MDAwMCwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwKKwkweDAwYzAsIDB4NDc0ZCwgMHhhMTg0LCAweDAxZTAsIDB4MDA0MCwgMHg0NzVhLCAweDEwNzgsIDB4NDgzMCwKKwkweDAwNzgsIDB4NDdlOSwgMHg3ODEwLCAweGQwZWMsIDB4MDA0MCwgMHg0Nzc0LCAweDIwMDEsIDB4MDRmZCwKKwkweDIwMDQsIDB4YTA4NiwgMHgwMDAzLCAweDAwYzAsIDB4NDc3OCwgMHhhMTg0LCAweDQwMDAsIDB4MDA0MCwKKwkweDQ3N2MsIDB4YTM4MiwgMHgwMDAzLCAweDAwYzgsIDB4NDc3YywgMHhhMTg0LCAweDAwMDQsIDB4MDA0MCwKKwkweDQ3NGQsIDB4ODMxOCwgMHgwMDc4LCAweDQ3NGQsIDB4NzgxNCwgMHhkMGVjLCAweDAwYzAsIDB4NDc3YywKKwkweGExODQsIDB4NDAwMCwgMHgwMGMwLCAweDQ3NGQsIDB4YTE5YywgMHgzMDBjLCAweGEzODYsIDB4MjAwNCwKKwkweDAwNDAsIDB4NDc5OSwgMHhhMzg2LCAweDAwMDgsIDB4MDA0MCwgMHg0N2E0LCAweDcwMDQsIDB4ZDA4NCwKKwkweDAwYzAsIDB4NDc5NSwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwgMHgwMGMwLCAweDQ3OGEsIDB4YTE4NCwKKwkweDAwMDMsIDB4MDA0MCwgMHg0Nzk1LCAweDAwNzgsIDB4NDgzMCwgMHhhMzg2LCAweDIwMGMsIDB4MDBjMCwKKwkweDQ3NGQsIDB4NzIwMCwgMHg4MjA0LCAweDAwNDgsIDB4NDdhNCwgMHg3MzBjLCAweGEzODQsIDB4MDNmZiwKKwkweDAwNDAsIDB4NDdhNCwgMHgxMDc4LCAweDI5YjIsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwKKwkweDQ3YTQsIDB4YTE4NCwgMHgwMWUwLCAweDAwNDAsIDB4NDdiMSwgMHgxMDc4LCAweDQ4MzAsIDB4MDA3OCwKKwkweDQ3ZTksIDB4NzAwNywgMHgwMDEyLCAweDcwMDAsIDB4ZDA4NCwgMHgwMGMwLCAweDQ3YzEsIDB4NzMxMCwKKwkweDcwMTQsIDB4YTMwNSwgMHgwMDQwLCAweDQ3YzEsIDB4NzEwYywgMHhhMTg0LCAweDAzZmYsIDB4MDBjMCwKKwkweDQ3MzgsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwgMHg0N2MxLCAweGExODQsIDB4MDFlMCwKKwkweDAwNDAsIDB4NDdjZSwgMHgxMDc4LCAweDQ4MzAsIDB4MDA3OCwgMHg0N2U5LCAweDcwMDcsIDB4MDAxMiwKKwkweDcwMDcsIDB4MDAwOCwgMHg3MDA0LCAweGQwOWMsIDB4MDBjMCwgMHg0N2QyLCAweDcxMDgsIDB4NzAwOCwKKwkweGExMDYsIDB4MDBjMCwgMHg0N2Q2LCAweGExODQsIDB4MDFlMCwgMHgwMDQwLCAweDQ3ZTMsIDB4MTA3OCwKKwkweDQ4MzAsIDB4MDA3OCwgMHg0N2U5LCAweDcwMDcsIDB4MDAxMiwgMHg3MTA4LCAweDgxMDMsIDB4MDA0OCwKKwkweDQ3ZDYsIDB4NzAwMywgMHgwMDA4LCAweDAwN2MsIDB4NzEwOCwgMHhhMTg0LCAweDAxZTAsIDB4MDBjMCwKKwkweDQ4MzAsIDB4NzEwOCwgMHhhMTg0LCAweDAxZTAsIDB4MDBjMCwgMHg0ODMwLCAweGExODQsIDB4MDAwNywKKwkweDAwNzksIDB4NDdmYSwgMHg0ODA0LCAweDQ4MTQsIDB4NDgwMiwgMHg0ODE0LCAweDQ4MDIsIDB4NDg3MiwKKwkweDQ4MDIsIDB4NDg3MCwgMHgxMDc4LCAweDI5YjIsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4ZCwKKwkweDcwMDYsIDB4OGFmZiwgMHgwMGMwLCAweDQ4MGYsIDB4MjA0OSwgMHgwMDAwLCAweDAwN2MsIDB4MTA3OCwKKwkweDQ5ZjIsIDB4MDBjMCwgMHg0ODBmLCAweDAwN2MsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4ZCwKKwkweDcwMDYsIDB4NzAwNCwgMHhkMDg0LCAweDAwYzAsIDB4NDgyOCwgMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwKKwkweDAwYzAsIDB4NDgxZCwgMHhhMTg0LCAweDAwMDMsIDB4MDA0MCwgMHg0ODI4LCAweDAwNzgsIDB4NDgzMCwKKwkweDhhZmYsIDB4MDA0MCwgMHg0ODJmLCAweDEwNzgsIDB4NDlmMiwgMHgwMGMwLCAweDQ4MmIsIDB4MDA3YywKKwkweDcwMDcsIDB4MDAxMiwgMHg3MTA4LCAweDAwZTAsIDB4NDgzMywgMHgyMDkxLCAweDYwMDAsIDB4MDBlMCwKKwkweDQ4MzcsIDB4MjA5MSwgMHg2MDAwLCAweDcwMDcsIDB4MDAxMiwgMHg3MDA3LCAweDAwMDgsIDB4NzAwNCwKKwkweGQwOWMsIDB4MDBjMCwgMHg0ODNmLCAweDcwMDcsIDB4MDAxMiwgMHg3MTA4LCAweGQxZmMsIDB4MDBjMCwKKwkweDQ4NDMsIDB4NzAwMywgMHgwMDAwLCAweDcwMDAsIDB4YTAwNSwgMHgwMGMwLCAweDQ4NTcsIDB4NzAwNCwKKwkweGEwMDUsIDB4MDBjMCwgMHg0ODU3LCAweDcwMGMsIDB4YTAwNSwgMHgwMDQwLCAweDQ4NTksIDB4MDA3OCwKKwkweDQ4M2IsIDB4MjA0OSwgMHgwMDAwLCAweGIyODQsIDB4MDEwMCwgMHgwMDQwLCAweDQ4NjMsIDB4MjAwMSwKKwkweDAwMDAsIDB4MDA3OCwgMHg0ODY1LCAweDIwMDEsIDB4MDAwMSwgMHgxMDc4LCAweDQyNjIsIDB4NjgxYiwKKwkweDAwMDIsIDB4MjA1MSwgMHgwMDAwLCAweDAwN2MsIDB4MTA3OCwgMHgyOWIyLCAweDEwNzgsIDB4MjliMiwKKwkweDEwNzgsIDB4NDhiOSwgMHg3MjEwLCAweDcxMTQsIDB4NzAwYywgMHhhMDljLCAweDAzZmYsIDB4MjgwMCwKKwkweGEzMDAsIDB4YTIxMSwgMHhhMTg5LCAweDAwMDAsIDB4MTA3OCwgMHg0OGI5LCAweDI3MDQsIDB4MmM1OCwKKwkweGFjNjAsIDB4NjMwOCwgMHgyMjAwLCAweGEzMjIsIDB4NjMwYywgMHgyMTAwLCAweGEzMWIsIDB4MjQwMCwKKwkweGEzMDUsIDB4MDA0MCwgMHg0ODk1LCAweDAwYzgsIDB4NDg5NSwgMHg4NDEyLCAweDgyMTAsIDB4ODMwYSwKKwkweGExODksIDB4MDAwMCwgMHgyYjYwLCAweDAwNzgsIDB4NDg3YywgMHgyYjYwLCAweDhhMDcsIDB4MDA3ZSwKKwkweDYwMDQsIDB4ZDA5YywgMHgwMDQwLCAweDQ4YTAsIDB4YTdiYSwgMHg0NmVjLCAweDAwNzgsIDB4NDhhMiwKKwkweGE3YmEsIDB4NDZlNCwgMHgwMDdmLCAweGE3M2QsIDB4MmMwMCwgMHg2ODg2LCAweDZmOGEsIDB4NmM5MiwKKwkweDZiOGUsIDB4NzEwOCwgMHg3MDA4LCAweGExMDYsIDB4MDBjMCwgMHg0OGE5LCAweGExODQsIDB4MDFlMCwKKwkweDAwNDAsIDB4NDhiNCwgMHgxMDc4LCAweDQ4MzAsIDB4NzAwNywgMHgwMDEyLCAweDEwNzgsIDB4NDczOCwKKwkweDAwN2MsIDB4OGE1MCwgMHg4NzM5LCAweDI3MDQsIDB4YTAwNCwgMHgwMGMwLCAweDQ4Y2QsIDB4NjAwMCwKKwkweGEwNjQsIDB4MDBjMCwgMHg0OGM0LCAweDJkNjAsIDB4NjAwNCwgMHhhMDg0LCAweDAwMGYsIDB4YTA4MCwKKwkweDQ3MDIsIDB4MjAzYywgMHg4N2ZiLCAweDEwNDAsIDB4MjliMiwgMHgwMDdjLCAweDEyN2UsIDB4MGQ3ZSwKKwkweDcwZDQsIDB4YTA4NCwgMHg0NjAwLCAweDgwMDQsIDB4MjA5MCwgMHgwZDdmLCAweDY4ODQsIDB4MjA2MCwKKwkweDY4ODgsIDB4NmI4YywgMHg2YzkwLCAweDgwNTcsIDB4YWFkNCwgMHgwMGZmLCAweGEwODQsIDB4MDBmZiwKKwkweDAwN2UsIDB4NjgwNCwgMHhhMDg0LCAweDAwMDgsIDB4MDA3ZiwgMHgwMDQwLCAweDQ4ZWIsIDB4YTBiOCwKKwkweDQ2ZWMsIDB4MDA3OCwgMHg0OGVkLCAweGEwYjgsIDB4NDZlNCwgMHhiMjg0LCAweDAxMDAsIDB4MDA0MCwKKwkweDQ4ZjQsIDB4N2UyMCwgMHgwMDc4LCAweDQ4ZjUsIDB4N2UyNCwgMHhhNmI1LCAweDAwMGMsIDB4NjgxYywKKwkweGQwYjQsIDB4MDA0MCwgMHg0OGZjLCAweGM2ODUsIDB4MjQwMCwgMHhhMzA1LCAweDAwNDAsIDB4NDkyNSwKKwkweDJjNTgsIDB4MjcwNCwgMHg2MTA0LCAweGFjNjAsIDB4NjAwMCwgMHhhNDAwLCAweDcwMWEsIDB4NjAwNCwKKwkweGEzMDEsIDB4NzAxZSwgMHhkMTljLCAweDAwNDAsIDB4NDkxNSwgMHg2MDEwLCAweGEwODEsIDB4MDAwMCwKKwkweDcwMjIsIDB4NjAxNCwgMHhhMDgxLCAweDAwMDAsIDB4NzAyNiwgMHg2MjA4LCAweDI0MDAsIDB4YTIwMiwKKwkweDcwMTIsIDB4NjIwYywgMHgyMzAwLCAweGEyMDMsIDB4NzAxNiwgMHg3NjAyLCAweDcwMDcsIDB4MDAwMSwKKwkweDJiNjAsIDB4MTA3OCwgMHg0YTFjLCAweDAwNzgsIDB4NDkyNywgMHgxMDc4LCAweDQ5ZjIsIDB4MDBjMCwKKwkweDQ5MjUsIDB4MTI3ZiwgMHgyMDAwLCAweDAwN2MsIDB4MTI3ZSwgMHgwZDdlLCAweDcwZDQsIDB4YTA4NCwKKwkweDQ2MDAsIDB4ODAwNCwgMHgyMDkwLCAweDBkN2YsIDB4NzAwNywgMHgwMDA0LCAweDcwMDQsIDB4ZDA5NCwKKwkweDAwYzAsIDB4NDkzNiwgMHg3MDAzLCAweDAwMDgsIDB4MTI3ZiwgMHgyMDAwLCAweDAwN2MsIDB4MTI3ZSwKIAkweDBkN2UsIDB4NzBkNCwgMHhhMDg0LCAweDQ2MDAsIDB4ODAwNCwgMHgwMDdlLCAweDIwOTAsIDB4MDA3ZiwKLQkweDdlMjAsIDB4YjI4NCwgMHgwMTAwLCAweDAwYzAsIDB4NDkwNiwgMHg3ZTI0LCAweDBkN2YsIDB4MDM3ZiwKLQkweDA0N2YsIDB4YTZiNSwgMHgwMDBjLCAweDY4MWMsIDB4ZDBiNCwgMHgwMDQwLCAweDQ5MTQsIDB4YzY4NSwKLQkweDcwMDMsIDB4MDAwMCwgMHg3MDA3LCAweDAwMDQsIDB4MjA0OSwgMHg0OGY1LCAweDY4MjgsIDB4YTA1NSwKLQkweDBkN2UsIDB4MDA0MCwgMHg0OTZjLCAweDJkNzAsIDB4MmU2MCwgMHg3MDA0LCAweGEwYmMsIDB4MDAwZiwKLQkweGE3YjgsIDB4NDY2ZSwgMHgyNzNjLCAweDg3ZmIsIDB4MDBjMCwgMHg0OTMxLCAweDAwNDgsIDB4NDkyYSwKLQkweDEwNzgsIDB4Mjk2YiwgMHg3MDljLCAweGEwNzUsIDB4MjA2MCwgMHgwMDQwLCAweDQ5NmMsIDB4MDA3OCwKLQkweDQ5MWQsIDB4MjcwNCwgMHhhZTY4LCAweDY4MDgsIDB4YTQyMiwgMHg2ODBjLCAweGEzMWIsIDB4MDA0OCwKLQkweDQ5NGEsIDB4OGE1MSwgMHgwMGMwLCAweDQ5M2UsIDB4MTA3OCwgMHgyOTZiLCAweDg3MzgsIDB4MjcwNCwKLQkweGEwMDUsIDB4MDBjMCwgMHg0OTMyLCAweDcwOWMsIDB4YTA3NSwgMHgyMDYwLCAweDAwNDAsIDB4NDk2YywKLQkweDAwNzgsIDB4NDkxZCwgMHg4NDIyLCAweDg0MjAsIDB4ODMxYSwgMHhhMzk5LCAweDAwMDAsIDB4NjkwOCwKLQkweDI0MDAsIDB4YTEyMiwgMHg2OTBjLCAweDIzMDAsIDB4YTExYiwgMHgwMGM4LCAweDQ5NTksIDB4MTA3OCwKLQkweDI5NmIsIDB4YjI4NCwgMHgwMTAwLCAweDAwNDAsIDB4NDk2NywgMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwKLQkweGQwZWMsIDB4MDBjMCwgMHg0OTY3LCAweDIwNzEsIDB4MDA1MCwgMHgwMDc4LCAweDQ5NjksIDB4MjA3MSwKLQkweDAwMjAsIDB4MGQ3ZiwgMHgwMDc4LCAweDQ4NzksIDB4MGQ3ZiwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywKLQkweDcwMDgsIDB4MDA3ZSwgMHhhMDg0LCAweDAxZTAsIDB4MDA3ZiwgMHgwMDQwLCAweDQ5NzksIDB4YTAwNiwKLQkweDAwN2MsIDB4YTA4NCwgMHgwMDAzLCAweGEwODYsIDB4MDAwMywgMHgwMGMwLCAweDQ5ODAsIDB4MDA3YywKLQkweDI3MDQsIDB4YWM3OCwgMHg3ODAwLCAweDcwMWEsIDB4NzgwNCwgMHg3MDFlLCAweDc4MDgsIDB4NzAxMiwKLQkweDc4MGMsIDB4NzAxNiwgMHg2MDA0LCAweGEwODQsIDB4MDAwOCwgMHgwMDQwLCAweDQ5OTMsIDB4NzgxMCwKLQkweDcwMjIsIDB4NzgxNCwgMHg3MDI2LCAweDc2MDIsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsIDB4YzA4NSwKLQkweDcwMDYsIDB4MjA3OSwgMHg0ZTAwLCAweDhhNTEsIDB4MDA0MCwgMHg0OWJmLCAweDg3MzgsIDB4MjcwNCwKLQkweGEwMDUsIDB4MDBjMCwgMHg0OWIxLCAweDYwOWMsIDB4YTAwNSwgMHgwMDQwLCAweDQ5YzAsIDB4MjA2MCwKLQkweDYwMDQsIDB4YTA4NCwgMHgwMDBmLCAweGEwODAsIDB4NDY2ZSwgMHgyMDNjLCAweDg3ZmIsIDB4MTA0MCwKLQkweDI5NmIsIDB4NzAwOCwgMHgwMDdlLCAweGEwODQsIDB4MDFlMCwgMHgwMDdmLCAweDAwNDAsIDB4NDliYiwKLQkweGEwMDYsIDB4MDA3OCwgMHg0OWMwLCAweGEwODQsIDB4MDAwMywgMHhhMDg2LCAweDAwMDMsIDB4MDA3YywKLQkweDIwNTEsIDB4MDAwMCwgMHgwMDdjLCAweDEyN2UsIDB4MDA3ZSwgMHgwZDdlLCAweDcwZDQsIDB4YTA4NCwKLQkweDQ2MDAsIDB4ODAwNCwgMHgyMDkwLCAweDBkN2YsIDB4MDg3ZiwgMHg3MTA4LCAweGExODQsIDB4MDAwMywKLQkweDAwYzAsIDB4NDlkOCwgMHg2ODI4LCAweGEwMDUsIDB4MDA0MCwgMHg0OWU4LCAweDAwNzgsIDB4NDVhMiwKLQkweDcxMDgsIDB4ZDFmYywgMHgwMDQwLCAweDQ5ZTAsIDB4MTA3OCwgMHg0NzY5LCAweDAwNzgsIDB4NDljZCwKLQkweDcwMDcsIDB4MDAxMCwgMHg3MTA4LCAweGQxZmMsIDB4MDA0MCwgMHg0OWUyLCAweDEwNzgsIDB4NDc2OSwKLQkweDcwMDgsIDB4YTA4NiwgMHgwMDA4LCAweDAwYzAsIDB4NDljZCwgMHg3MDAwLCAweGEwMDUsIDB4MDBjMCwKLQkweDQ5Y2QsIDB4NzAwMywgMHgwMDAwLCAweDIwNDksIDB4MDAwMCwgMHgxMjdmLCAweDIwMDAsIDB4MDA3YywKLQkweDEyN2UsIDB4MTQ3ZSwgMHgxMzdlLCAweDE1N2UsIDB4MGM3ZSwgMHgwZDdlLCAweDcwZDQsIDB4YTA4NCwKLQkweDQ2MDAsIDB4ODAwNCwgMHgyMDkwLCAweDBkN2YsIDB4MjA0OSwgMHg0OWY4LCAweGFkODAsIDB4MDAxMSwKLQkweDIwYTAsIDB4YjI4NCwgMHgwMTAwLCAweDAwNDAsIDB4NGExYiwgMHgyMDAxLCAweDRlMDQsIDB4MjAwNCwKLQkweGQwZWMsIDB4MDA0MCwgMHg0YTE3LCAweDIwOTksIDB4MDAzMSwgMHgwMDc4LCAweDRhMWQsIDB4MjA5OSwKLQkweDAwMzIsIDB4MDA3OCwgMHg0YTFkLCAweDIwOTksIDB4MDAzMSwgMHg3MDBjLCAweGEwODQsIDB4MDNmZiwKLQkweDY4MmEsIDB4NzAwNywgMHgwMDA4LCAweDcwMDcsIDB4MDAwMiwgMHg3MDAzLCAweDAwMDEsIDB4MDA0MCwKLQkweDRhMmMsIDB4ODAwMCwgMHg4MGFjLCAweDUzYTUsIDB4NzAwYywgMHhhMDg0LCAweDAzZmYsIDB4MDA0MCwKLQkweDRhMzgsIDB4NzAwNywgMHgwMDA0LCAweDcwMDQsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsIDB4NGEzMywKLQkweDBjN2YsIDB4MjA0OSwgMHgwMDAwLCAweDcwMDMsIDB4MDAwMCwgMHgxNTdmLCAweDEzN2YsIDB4MTQ3ZiwKLQkweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDIwOTEsIDB4ODAwMCwgMHgyMDkxLCAweDYwMDAsIDB4NzhhYywKLQkweGEwMDUsIDB4MDBjMCwgMHg0YTVhLCAweDc5NzQsIDB4NzBkMCwgMHhhMTA2LCAweDAwYzAsIDB4NGE1YSwKLQkweDc4MWMsIDB4YTAwNSwgMHgwMDQwLCAweDRhNWEsIDB4NzgxZiwgMHgwMDAwLCAweDAwNjgsIDB4NGE1YSwKLQkweDIwOTEsIDB4NDA4MCwgMHg3ODMwLCAweDgwMDEsIDB4NzgzMiwgMHgwMGMwLCAweDRhZTIsIDB4NzgzNCwKLQkweDc4MzIsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4NGFkYiwgMHgyMDYxLCAweDczYzAsIDB4MjA2OSwKLQkweDRlODAsIDB4YzdmZCwgMHg2OGQwLCAweGEwMDUsIDB4MDA0MCwgMHg0YTc0LCAweDgwMDEsIDB4NjhkMiwKLQkweDAwYzAsIDB4NGE3NCwgMHgxMDc4LCAweDRjYjAsIDB4NjgwMCwgMHhhMDg0LCAweDAwMGYsIDB4MDA0MCwKLQkweDRhODksIDB4YTA4NiwgMHgwMDAxLCAweDAwNDAsIDB4NGE4OSwgMHg2ODQ0LCAweGEwMGQsIDB4MDA0MCwKLQkweDRhODksIDB4MjEwNCwgMHhhMDA1LCAweDAwNDAsIDB4NGE4OSwgMHg4MDAxLCAweDIwMGEsIDB4MDA0MCwKLQkweDRjMjMsIDB4NjgxNCwgMHhhMDA1LCAweDAwNDAsIDB4NGFhZSwgMHg4MDAxLCAweDY4MTYsIDB4MDBjMCwKLQkweDRhYWUsIDB4NjhhNywgMHgwMDAxLCAweDBmN2UsIDB4ZDdmYywgMHgwMGMwLCAweDRhYTMsIDB4NzgxMCwKLQkweGQwZWMsIDB4MDA0MCwgMHg0YTlmLCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDRhYTUsIDB4MjA3OSwKLQkweDAyMDAsIDB4MDA3OCwgMHg0YWE1LCAweDIwNzksIDB4MDEwMCwgMHgxMDc4LCAweDQzODMsIDB4MGY3ZiwKLQkweDY4NjQsIDB4YTAwNSwgMHgwMDQwLCAweDRhYWUsIDB4MTA3OCwgMHgyNjI4LCAweDY4ODAsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGFiYiwgMHg4MDAxLCAweDY4ODIsIDB4MDBjMCwgMHg0YWJiLCAweDY4NjcsIDB4MDAwMCwKLQkweDY4ZDQsIDB4YzBkZCwgMHg2OGQ2LCAweDY4ZDQsIDB4ZDBmYywgMHgwMDQwLCAweDRhZDgsIDB4YzBmYywKLQkweDY4ZDYsIDB4MjBhOSwgMHgwMjAwLCAweDYwMzQsIDB4YTAwNSwgMHgwMDQwLCAweDRhZDQsIDB4ODAwMSwKLQkweDYwMzYsIDB4NjhkNCwgMHhjMGZkLCAweDY4ZDYsIDB4MDBjMCwgMHg0YWQ0LCAweDYwMTAsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGFkNCwgMHgxMDc4LCAweDI2MjgsIDB4YWNlMCwgMHgwMDEwLCAweDAwZjAsIDB4NGFjMywKLQkweGQ3ZmMsIDB4MDA0MCwgMHg0YWUyLCAweDIwNjEsIDB4NTNjMCwgMHgyMDY5LCAweDRlNDAsIDB4YzdmYywKLQkweDAwNzgsIDB4NGE2YSwgMHgxMDc4LCAweDRiMWUsIDB4NzgzOCwgMHg4MDAxLCAweDc4M2EsIDB4MDBjMCwKLQkweDRiMDQsIDB4NzgzYywgMHg3ODNhLCAweDIwNjEsIDB4NTNjMCwgMHgyMDY5LCAweDRlNDAsIDB4YzdmYywKLQkweDY4MGMsIDB4YTAwNSwgMHgwMDQwLCAweDRhZjYsIDB4MTA3OCwgMHg0Yjg4LCAweGQ3ZmMsIDB4MDBjMCwKLQkweDRiMDQsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4NGIwNCwgMHgyMDYxLCAweDczYzAsIDB4MjA2OSwKLQkweDRlODAsIDB4YzdmZCwgMHgwMDc4LCAweDRhZjAsIDB4NzgxNCwgMHhkMGU0LCAweDAwYzAsIDB4NGIwOCwKLQkweDc4MTAsIDB4ZDBjYywgMHgwMDQwLCAweDRiMWIsIDB4ZDBhYywgMHgwMGMwLCAweDRiMTQsIDB4ZDBhNCwKLQkweDAwNDAsIDB4NGIxYiwgMHhjMGFkLCAweDc4MTIsIDB4MjA5MSwgMHg4MDAxLCAweDAwNjgsIDB4NGIxYSwKLQkweDEwNzgsIDB4MjM5NSwgMHgwMDdjLCAweDIwOTEsIDB4ODAwMSwgMHgwMDdjLCAweDc4NDAsIDB4ODAwMSwKLQkweDc4NDIsIDB4MDBjMCwgMHg0Yjg3LCAweDc4NDQsIDB4Nzg0MiwgMHgyMDY5LCAweDRlNDAsIDB4YzdmYywKLQkweDc4MTAsIDB4MjA3OSwgMHgwMjAwLCAweGQwZWMsIDB4MDA0MCwgMHg0YjMwLCAweDIwNzksIDB4MDEwMCwKLQkweDY4ZDgsIDB4YTAwNSwgMHgwMDQwLCAweDRiM2MsIDB4N2RlMCwgMHhhNTA0LCAweDAwYzAsIDB4NGIzYywKLQkweDY4ZGEsIDB4NjhkNCwgMHhjMGJjLCAweDY4ZDYsIDB4MjA3OSwgMHg0ZTAwLCAweDY4MTAsIDB4YTAwNSwKLQkweDAwYzAsIDB4NGI0NCwgMHgyMDAxLCAweDAxMDEsIDB4ODAwMSwgMHg2ODEyLCAweGQ3ZmMsIDB4MDA0MCwKLQkweDRiNGQsIDB4YTA4MCwgMHg5NGQwLCAweDAwNzgsIDB4NGI0ZiwgMHhhMDgwLCAweDkzYzAsIDB4MjA0MCwKLQkweDIwMDQsIDB4YTA2NSwgMHgwMDQwLCAweDRiNzksIDB4NjAyNCwgMHhhMDA1LCAweDAwNDAsIDB4NGI3NSwKLQkweDgwMDEsIDB4NjAyNiwgMHgwMGMwLCAweDRiNzUsIDB4NjgwMCwgMHhhMDA1LCAweDAwNDAsIDB4NGI2OCwKLQkweDY4NGMsIDB4YWMwNiwgMHgwMGMwLCAweDRiNjgsIDB4MTA3OCwgMHg0YzIzLCAweDAwNzgsIDB4NGI3OSwKLQkweDY4NjQsIDB4YTAwNSwgMHgwMDQwLCAweDRiNzAsIDB4NjAyNywgMHgwMDAxLCAweDAwNzgsIDB4NGI3NSwKLQkweDEwNzgsIDB4NGJkNiwgMHgyODA0LCAweDAwNzgsIDB4NGI1MSwgMHg2MDAwLCAweDJjNDAsIDB4MDA3OCwKLQkweDRiNTEsIDB4ZDdmYywgMHgwMGMwLCAweDRiODcsIDB4NzgxMCwgMHhkMGVjLCAweDAwYzAsIDB4NGI4NywKLQkweDIwNjksIDB4NGU4MCwgMHhjN2ZkLCAweDIwNzksIDB4MDEwMCwgMHgwMDc4LCAweDRiMzAsIDB4MDA3YywKLQkweDIwMDksIDB4MDAwMCwgMHgyMGE5LCAweDAyMDAsIDB4NjAwOCwgMHhkMDljLCAweDAwNDAsIDB4NGJjMiwKLQkweDYwMjQsIDB4YTAwNSwgMHgwMDQwLCAweDRiOTgsIDB4ODAwMSwgMHg2MDI2LCAweDAwNzgsIDB4NGJjMCwKLQkweDYwMDgsIDB4YzA5YywgMHhkMDg0LCAweDAwYzAsIDB4NGJhMCwgMHhkMGFjLCAweDAwNDAsIDB4NGJiYSwKLQkweDYwMGEsIDB4NjAwNCwgMHhhMDA1LCAweDAwNDAsIDB4NGJjMiwgMHgwZDdlLCAweDBjN2UsIDB4MDE3ZSwKLQkweDIwNjgsIDB4NjAxMCwgMHg4MDAxLCAweDYwMTIsIDB4MTA3OCwgMHgzZGQwLCAweDJkMDAsIDB4MmM2OCwKLQkweDIwNjAsIDB4MTA3OCwgMHgxZTViLCAweDEwNzgsIDB4MjAxZCwgMHgwMTdmLCAweDBjN2YsIDB4MGQ3ZiwKLQkweDAwNzgsIDB4NGJjMiwgMHhjMGJkLCAweDYwMGEsIDB4YTE4ZCwgMHgwMDAxLCAweDAwNzgsIDB4NGJjMiwKLQkweGExOGQsIDB4MDEwMCwgMHhhY2UwLCAweDAwMTAsIDB4MDBmMCwgMHg0YjhjLCAweGExODQsIDB4MDAwMSwKLQkweDAwNDAsIDB4NGJkMSwgMHhhMThjLCAweGZmZmUsIDB4NjkwZSwgMHgxMDc4LCAweDI2MjgsIDB4MDA3OCwKLQkweDRiZDIsIDB4NjkwZSwgMHgwMDdjLCAweDAwYzAsIDB4NGJkMiwgMHg3ODZjLCAweDJjMDAsIDB4Njg3ZSwKLQkweDY3MTQsIDB4NmY3NiwgMHg2MDE3LCAweDAwMDAsIDB4NjAyYiwgMHgwMDAwLCAweDYwMWIsIDB4MDAwNiwKLQkweDYwYjQsIDB4YTA4NCwgMHgzZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NSwKLQkweDAwNjAsIDB4NjAyMiwgMHg2MDAwLCAweDIwNDIsIDB4MTA3OCwgMHgxZGU0LCAweDY4MTgsIDB4YTAwNSwKLQkweDAwNDAsIDB4NGJmNCwgMHg4MDAxLCAweDY4MWEsIDB4NjgwOCwgMHhjMGE0LCAweDY4MGEsIDB4NjgxMCwKLQkweDc5MDgsIDB4ODEwOSwgMHg3OTBhLCAweDgwMDEsIDB4MDBkMCwgMHg0YzAwLCAweDEwNzgsIDB4Mjk2YiwKLQkweDY4MTIsIDB4MDBjMCwgMHg0YzA2LCAweDc5MTAsIDB4YzFhNSwgMHg3OTEyLCAweDYwMmYsIDB4MDAwMCwKLQkweDYwMzMsIDB4MDAwMCwgMHgyYzY4LCAweDEwNzgsIDB4MjAyYywgMHhkN2ZjLCAweDAwYzAsIDB4NGMxNCwKLQkweDIwNjksIDB4NGU0MCwgMHgwMDc4LCAweDRjMTYsIDB4MjA2OSwgMHg0ZTgwLCAweDY5MTAsIDB4YTE4NCwKLQkweDAxMDAsIDB4MjAwMSwgMHgwMDA2LCAweDAwYzAsIDB4NGMyMCwgMHg2OTdhLCAweDIwMDEsIDB4MDAwNCwKLQkweDEwNzgsIDB4MjYxYywgMHgwMDdjLCAweDBkN2UsIDB4Njk0YywgMHgyMTYwLCAweGQ3ZmMsIDB4MDBjMCwKLQkweDRjMzUsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsIDB4NGMzMSwgMHgyMDY5LCAweDAxMDAsIDB4MDA3OCwKLQkweDRjMzcsIDB4MjA2OSwgMHgwMjAwLCAweDAwNzgsIDB4NGMzNywgMHgyMDY5LCAweDAxMDAsIDB4MTA3OCwKLQkweDI4ZGYsIDB4NjAxYiwgMHgwMDA2LCAweDY4NTgsIDB4YTA4NCwgMHgzZjAwLCAweDYwMWUsIDB4NjAyMCwKLQkweGEwODQsIDB4MDBmZiwgMHhhMDg1LCAweDAwNDgsIDB4NjAyMiwgMHg2MDJmLCAweDAwMDAsIDB4NjAzMywKLQkweDAwMDAsIDB4NjgwOCwgMHhhMDg0LCAweGZmZmQsIDB4NjgwYSwgMHg2ODMwLCAweGQwYjQsIDB4MDA0MCwKLQkweDRjNjksIDB4Njg0YiwgMHgwMDA0LCAweDIwYTksIDB4MDAxNCwgMHg2ODQ4LCAweGQwOTQsIDB4MDA0MCwKLQkweDRjNWIsIDB4MDBmMCwgMHg0YzU1LCAweDY4NGIsIDB4MDAwOSwgMHgyMGE5LCAweDAwMTQsIDB4Njg0OCwKLQkweGQwODQsIDB4MDA0MCwgMHg0YzY1LCAweDAwZjAsIDB4NGM1ZiwgMHgyMGE5LCAweDAwZmEsIDB4MDBmMCwKLQkweDRjNjcsIDB4NjgxYiwgMHgwMDQ3LCAweDBkN2YsIDB4Njg2NywgMHgwMDA3LCAweDAwN2MsIDB4MjA3OSwKLQkweDRlMDAsIDB4MTA3OCwgMHg0Y2EzLCAweDEwNzgsIDB4NGM4OSwgMHgxMDc4LCAweDRjOTYsIDB4MjAwOSwKLQkweDAwMDIsIDB4MjA2OSwgMHg0ZTgwLCAweDY4MGYsIDB4MDAwMCwgMHg2ODEzLCAweDAwMDAsIDB4NjgxNywKLQkweDAwMDAsIDB4ODEwOSwgMHgwMDQwLCAweDRjODgsIDB4MjA2OSwgMHg0ZTQwLCAweDAwNzgsIDB4NGM3YiwKLQkweDAwN2MsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsIDB4NGM5MSwgMHgyMDE5LCAweDAwY2MsIDB4MDA3OCwKLQkweDRjOTMsIDB4MjAxOSwgMHgwMDdiLCAweDdiM2EsIDB4N2IzZSwgMHgwMDdjLCAweDc4MTQsIDB4ZDBlNCwKLQkweDAwYzAsIDB4NGM5ZSwgMHgyMDE5LCAweDAwNDAsIDB4MDA3OCwgMHg0Y2EwLCAweDIwMTksIDB4MDAyNiwKLQkweDdiNDIsIDB4N2I0NiwgMHgwMDdjLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDRjYWIsIDB4MjAxOSwKLQkweDNmOTQsIDB4MDA3OCwgMHg0Y2FkLCAweDIwMTksIDB4MjYyNCwgMHg3YjMyLCAweDdiMzYsIDB4MDA3YywKLQkweDZhNTAsIDB4YTI4NSwgMHgwMDAwLCAweDAwNDAsIDB4NGNkYywgMHg2OTU0LCAweDZiYzAsIDB4YTMwMCwKLQkweDBjN2UsIDB4MjE2NCwgMHg2MzA0LCAweDgzZmYsIDB4MDBjMCwgMHg0Y2M4LCAweDgyMTEsIDB4MDA0MCwKLQkweDRjY2MsIDB4ODEwOCwgMHhhMTFhLCAweDAwNDgsIDB4NGNiOSwgMHg2OWMwLCAweDAwNzgsIDB4NGNiOSwKLQkweDY4ZDMsIDB4MDAwYSwgMHgwYzdmLCAweDAwN2MsIDB4Njk1MCwgMHg2YWMwLCAweDIyNjQsIDB4NjAyYiwKLQkweDAwMDAsIDB4NjAyZiwgMHgwMDAwLCAweDYwMDgsIDB4YzBiNSwgMHg2MDBhLCAweDgyMTAsIDB4ODEwOSwKLQkweDAwYzAsIDB4NGNjZSwgMHg2OTUyLCAweDBjN2YsIDB4MDA3YywgMHgwMGUwLCAweDRjZGQsIDB4MjA5MSwKLQkweDYwMDAsIDB4MDBlMCwgMHg0Y2UxLCAweDIwOTEsIDB4NjAwMCwgMHg3MGVjLCAweGQwZGMsIDB4MDBjMCwKLQkweDRjZWUsIDB4ZDBkNCwgMHgwMDQwLCAweDRkMTcsIDB4MDA3OCwgMHg0ZDFhLCAweDIwMDgsIDB4NzgxMCwKLQkweGQwZWMsIDB4MDA0MCwgMHg0ZDAxLCAweGQxYzQsIDB4MDBjMCwgMHg0ZDM5LCAweDc4MTQsIDB4YzBjNSwKLQkweDc4MTYsIDB4NzgxMCwgMHhjMGY1LCAweDc4MTIsIDB4ZDBlYywgMHgwMDQwLCAweDRkMzUsIDB4MDA3OCwKLQkweDRkMzEsIDB4YWU4ZSwgMHgwMTAwLCAweDAwNDAsIDB4NGQwZSwgMHg3ODE0LCAweGMwZjUsIDB4YzBjNSwKLQkweDc4MTYsIDB4ZDBkNCwgMHgwMGMwLCAweDRkMzUsIDB4MDA3OCwgMHg0ZDMxLCAweDc4MTQsIDB4YzBmZCwKLQkweGMwYzUsIDB4NzgxNiwgMHhkMGQ0LCAweDAwYzAsIDB4NGQzNSwgMHgwMDc4LCAweDRkMzEsIDB4ZDBlNCwKLQkweDAwNDAsIDB4NGQzNywgMHgwMGUwLCAweDRkMWEsIDB4MjA5MSwgMHg2MDAwLCAweDIwMDksIDB4MDAwYywKLQkweDAwZTAsIDB4NGQyMCwgMHgyMDkxLCAweDYwMDAsIDB4ODEwOSwgMHgwMGMwLCAweDRkMjAsIDB4NzBlNCwKLQkweGEwODQsIDB4MDFmZiwgMHhhMDg2LCAweDAxZmYsIDB4MDBjMCwgMHg0ZDMxLCAweDcwZWMsIDB4MDA3OCwKLQkweDRjZWUsIDB4NzgwNCwgMHhkMDhjLCAweDAwNDAsIDB4NGQzNywgMHg2ODFmLCAweDAwMGMsIDB4NzBhMCwKLQkweDcwYTIsIDB4MDA3YywgMHgyMDViCisJMHgwZDdmLCAweDdlMjAsIDB4YjI4NCwgMHgwMTAwLCAweDAwYzAsIDB4NDk0ZiwgMHg3ZTI0LCAweGE2YjUsCisJMHgwMDBjLCAweDY4MWMsIDB4ZDBhYywgMHgwMGMwLCAweDQ5NWEsIDB4YzY4NSwgMHg3MDAzLCAweDAwMDAsCisJMHg3MDA3LCAweDAwMDQsIDB4NjgyOCwgMHgyMDUwLCAweDJkNjAsIDB4NjAwNCwgMHhhMGJjLCAweDAwMGYsCisJMHhhN2I4LCAweDQ2ZjIsIDB4MjczYywgMHg4N2ZiLCAweDAwYzAsIDB4NDk3MCwgMHgwMDQ4LCAweDQ5NmEsCisJMHgxMDc4LCAweDI5YjIsIDB4Njg5YywgMHhhMDY1LCAweDAwNDAsIDB4NDk3NCwgMHgwMDc4LCAweDQ5NWQsCisJMHgxMDc4LCAweDQ5ZjIsIDB4MDBjMCwgMHg0OTcwLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDEyN2UsCisJMHgwMDdlLCAweDAxN2UsIDB4MGQ3ZSwgMHg3MGQ0LCAweGEwODQsIDB4NDYwMCwgMHg4MDA0LCAweDAwN2UsCisJMHgyMDkwLCAweDAwN2YsIDB4N2UyMCwgMHhiMjg0LCAweDAxMDAsIDB4MDBjMCwgMHg0OTg4LCAweDdlMjQsCisJMHgwZDdmLCAweDAzN2YsIDB4MDQ3ZiwgMHhhNmI1LCAweDAwMGMsIDB4NjgxYywgMHhkMGI0LCAweDAwNDAsCisJMHg0OTk2LCAweGM2ODUsIDB4NzAwMywgMHgwMDAwLCAweDcwMDcsIDB4MDAwNCwgMHgyMDQ5LCAweDQ5NzcsCisJMHg2ODI4LCAweGEwNTUsIDB4MGQ3ZSwgMHgwMDQwLCAweDQ5ZWUsIDB4MmQ3MCwgMHgyZTYwLCAweDcwMDQsCisJMHhhMGJjLCAweDAwMGYsIDB4YTdiOCwgMHg0NmYyLCAweDI3M2MsIDB4ODdmYiwgMHgwMGMwLCAweDQ5YjMsCisJMHgwMDQ4LCAweDQ5YWMsIDB4MTA3OCwgMHgyOWIyLCAweDcwOWMsIDB4YTA3NSwgMHgyMDYwLCAweDAwNDAsCisJMHg0OWVlLCAweDAwNzgsIDB4NDk5ZiwgMHgyNzA0LCAweGFlNjgsIDB4NjgwOCwgMHhhNDIyLCAweDY4MGMsCisJMHhhMzFiLCAweDAwNDgsIDB4NDljYywgMHg4YTUxLCAweDAwYzAsIDB4NDljMCwgMHgxMDc4LCAweDI5YjIsCisJMHg4NzM4LCAweDI3MDQsIDB4YTAwNSwgMHgwMGMwLCAweDQ5YjQsIDB4NzA5YywgMHhhMDc1LCAweDIwNjAsCisJMHgwMDQwLCAweDQ5ZWUsIDB4MDA3OCwgMHg0OTlmLCAweDg0MjIsIDB4ODQyMCwgMHg4MzFhLCAweGEzOTksCisJMHgwMDAwLCAweDY5MDgsIDB4MjQwMCwgMHhhMTIyLCAweDY5MGMsIDB4MjMwMCwgMHhhMTFiLCAweDAwYzgsCisJMHg0OWRiLCAweDEwNzgsIDB4MjliMiwgMHhiMjg0LCAweDAxMDAsIDB4MDA0MCwgMHg0OWU5LCAweDIwMDEsCisJMHg0ZjA0LCAweDIwMDQsIDB4ZDBlYywgMHgwMGMwLCAweDQ5ZTksIDB4MjA3MSwgMHgwMDUwLCAweDAwNzgsCisJMHg0OWViLCAweDIwNzEsIDB4MDAyMCwgMHgwZDdmLCAweDAwNzgsIDB4NDhmYywgMHgwZDdmLCAweDEyN2YsCisJMHgyMDAwLCAweDAwN2MsIDB4NzAwOCwgMHgwMDdlLCAweGEwODQsIDB4MDFlMCwgMHgwMDdmLCAweDAwNDAsCisJMHg0OWZiLCAweGEwMDYsIDB4MDA3YywgMHhhMDg0LCAweDAwMDMsIDB4YTA4NiwgMHgwMDAzLCAweDAwYzAsCisJMHg0YTAyLCAweDAwN2MsIDB4MjcwNCwgMHhhYzc4LCAweDc4MDAsIDB4NzAxYSwgMHg3ODA0LCAweDcwMWUsCisJMHg3ODA4LCAweDcwMTIsIDB4NzgwYywgMHg3MDE2LCAweDYwMDQsIDB4ZDA5YywgMHgwMDQwLCAweDRhMTQsCisJMHg3ODEwLCAweDcwMjIsIDB4NzgxNCwgMHg3MDI2LCAweDc2MDIsIDB4NzAwNCwgMHhhMDg0LCAweDAwMTAsCisJMHhjMDg1LCAweDcwMDYsIDB4MjA3OSwgMHg0ZjAwLCAweDg3MzgsIDB4OGE1MSwgMHgwMDQwLCAweDRhNDAsCisJMHgyNzA0LCAweGEwMDUsIDB4MDBjMCwgMHg0YTMyLCAweDYwOWMsIDB4YTAwNSwgMHgwMDQwLCAweDRhNDEsCisJMHgyMDYwLCAweDYwMDQsIDB4YTA4NCwgMHgwMDBmLCAweGEwODAsIDB4NDZmMiwgMHgyMDNjLCAweDg3ZmIsCisJMHgxMDQwLCAweDI5YjIsIDB4NzAwOCwgMHgwMDdlLCAweGEwODQsIDB4MDFlMCwgMHgwMDdmLCAweDAwNDAsCisJMHg0YTNjLCAweGEwMDYsIDB4MDA3OCwgMHg0YTQxLCAweGEwODQsIDB4MDAwMywgMHhhMDg2LCAweDAwMDMsCisJMHgwMDdjLCAweDIwNTEsIDB4MDAwMCwgMHgwMDdjLCAweDEyN2UsIDB4MDA3ZSwgMHgwZDdlLCAweDcwZDQsCisJMHhhMDg0LCAweDQ2MDAsIDB4ODAwNCwgMHgyMDkwLCAweDBkN2YsIDB4MDg3ZiwgMHg3MTA4LCAweGExODQsCisJMHgwMDAzLCAweDAwYzAsIDB4NGE1OSwgMHg2ODI4LCAweGEwMDUsIDB4MDA0MCwgMHg0YTY5LCAweDAwNzgsCisJMHg0NjAyLCAweDcxMDgsIDB4ZDFmYywgMHgwMDQwLCAweDRhNjEsIDB4MTA3OCwgMHg0N2VkLCAweDAwNzgsCisJMHg0YTRlLCAweDcwMDcsIDB4MDAxMCwgMHg3MTA4LCAweGQxZmMsIDB4MDA0MCwgMHg0YTYzLCAweDEwNzgsCisJMHg0N2VkLCAweDcwMDgsIDB4YTA4NiwgMHgwMDA4LCAweDAwYzAsIDB4NGE0ZSwgMHg3MDAwLCAweGEwMDUsCisJMHgwMGMwLCAweDRhNGUsIDB4NzAwMywgMHgwMDAwLCAweDIwNDksIDB4MDAwMCwgMHgwMDdlLCAweDc4MDQsCisJMHhkMGNjLCAweDAwNDAsIDB4NGE3ZCwgMHgxMDc4LCAweDRhY2MsIDB4MDA3ZiwgMHgxMjdmLCAweDIwMDAsCisJMHgwMDdjLCAweDEyN2UsIDB4MTQ3ZSwgMHgxMzdlLCAweDE1N2UsIDB4MGM3ZSwgMHgwZDdlLCAweDcwZDQsCisJMHhhMDg0LCAweDQ2MDAsIDB4ODAwNCwgMHgyMDkwLCAweDBkN2YsIDB4MjA0OSwgMHg0YTgxLCAweGFkODAsCisJMHgwMDExLCAweDIwYTAsIDB4YjI4NCwgMHgwMTAwLCAweDAwNDAsIDB4NGFhNCwgMHgyMDAxLCAweDRmMDQsCisJMHgyMDA0LCAweGQwZWMsIDB4MDA0MCwgMHg0YWEwLCAweDIwOTksIDB4MDAzMSwgMHgwMDc4LCAweDRhYTYsCisJMHgyMDk5LCAweDAwMzIsIDB4MDA3OCwgMHg0YWE2LCAweDIwOTksIDB4MDAzMSwgMHg3MDBjLCAweGEwODQsCisJMHgwM2ZmLCAweDY4MmEsIDB4NzAwNywgMHgwMDA4LCAweDcwMDcsIDB4MDAwMiwgMHg3MDAzLCAweDAwMDEsCisJMHgwMDQwLCAweDRhYjUsIDB4ODAwMCwgMHg4MGFjLCAweDUzYTUsIDB4NzAwYywgMHhhMDg0LCAweDAzZmYsCisJMHgwMDQwLCAweDRhYzEsIDB4NzAwNywgMHgwMDA0LCAweDcwMDQsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsCisJMHg0YWJjLCAweDBjN2YsIDB4MjA0OSwgMHgwMDAwLCAweDcwMDMsIDB4MDAwMCwgMHgxNTdmLCAweDEzN2YsCisJMHgxNDdmLCAweDEyN2YsIDB4MjAwMCwgMHgwMDdjLCAweDY4MTQsIDB4ZDBmYywgMHgwMDQwLCAweDRiMTEsCisJMHg3MDAwLCAweGQwODQsIDB4MDA0MCwgMHg0YjExLCAweDdlMjQsIDB4YTZiNSwgMHgwMDA0LCAweDcwMDcsCisJMHgwMDA0LCAweDcwMDQsIDB4YTA4NCwgMHgwMDA0LCAweDAwYzAsIDB4NGFkOSwgMHg3MTE4LCAweDAxN2UsCisJMHg3MTFjLCAweDAxN2UsIDB4NzEyMCwgMHgwMTdlLCAweDcxMjQsIDB4MDE3ZSwgMHhhMDBlLCAweDcxMWEsCisJMHg3MDFmLCAweDNmZmYsIDB4NzEyMiwgMHg3MTI2LCAweDcwMTMsIDB4MDAwNCwgMHg3MTE2LCAweDc2MDIsCisJMHg3MDA3LCAweDAwMDEsIDB4MjAwMSwgMHhmZmZmLCAweDIwMDksIDB4MDAzMSwgMHgyMDBhLCAweDIwMGEsCisJMHg3MTA4LCAweDcwMDgsIDB4YTEwNiwgMHgwMGMwLCAweDRhZjgsIDB4ZDFmYywgMHgwMDQwLCAweDRhZjgsCisJMHgwMjdmLCAweDcyMjYsIDB4MDI3ZiwgMHg3MjIyLCAweDAyN2YsIDB4NzIxZSwgMHgwMjdmLCAweDcyMWEsCisJMHg3MDA3LCAweDAwMDIsIDB4NzAwOCwgMHhhMDg2LCAweDAwMDgsIDB4MDA0MCwgMHg0YjExLCAweDAwNzgsCisJMHg0ODMwLCAweDcwMDcsIDB4MDAwNCwgMHg3MDAzLCAweDAwMDAsIDB4MDA3YywgMHgyMDkxLCAweDgwMDAsCisJMHgyMDkxLCAweDYwMDAsIDB4NzhhYywgMHhhMDA1LCAweDAwYzAsIDB4NGIyZCwgMHg3OTc0LCAweDcwZDAsCisJMHhhMTA2LCAweDAwYzAsIDB4NGIyZCwgMHg3ODFjLCAweGEwMDUsIDB4MDA0MCwgMHg0YjJkLCAweDc4MWYsCisJMHgwMDAwLCAweDAwNjgsIDB4NGIyZCwgMHgyMDkxLCAweDQwODAsIDB4NzgzMCwgMHg4MDAxLCAweDc4MzIsCisJMHgwMGMwLCAweDRiYjUsIDB4NzgzNCwgMHg3ODMyLCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDRiYWUsCisJMHgyMDYxLCAweDc0YzAsIDB4MjA2OSwgMHg0ZjgwLCAweGM3ZmQsIDB4NjhkMCwgMHhhMDA1LCAweDAwNDAsCisJMHg0YjQ3LCAweDgwMDEsIDB4NjhkMiwgMHgwMGMwLCAweDRiNDcsIDB4MTA3OCwgMHg0ZDgzLCAweDY4MDAsCisJMHhhMDg0LCAweDAwMGYsIDB4MDA0MCwgMHg0YjVjLCAweGEwODYsIDB4MDAwMSwgMHgwMDQwLCAweDRiNWMsCisJMHg2ODQ0LCAweGEwMGQsIDB4MDA0MCwgMHg0YjVjLCAweDIxMDQsIDB4YTAwNSwgMHgwMDQwLCAweDRiNWMsCisJMHg4MDAxLCAweDIwMGEsIDB4MDA0MCwgMHg0Y2Y2LCAweDY4MTQsIDB4YTAwNSwgMHgwMDQwLCAweDRiODEsCisJMHg4MDAxLCAweDY4MTYsIDB4MDBjMCwgMHg0YjgxLCAweDY4YTcsIDB4MDAwMSwgMHgwZjdlLCAweGQ3ZmMsCisJMHgwMGMwLCAweDRiNzYsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsIDB4NGI3MiwgMHgyMDc5LCAweDAxMDAsCisJMHgwMDc4LCAweDRiNzgsIDB4MjA3OSwgMHgwMjAwLCAweDAwNzgsIDB4NGI3OCwgMHgyMDc5LCAweDAxMDAsCisJMHgxMDc4LCAweDQzZDMsIDB4MGY3ZiwgMHg2ODY0LCAweGEwMDUsIDB4MDA0MCwgMHg0YjgxLCAweDEwNzgsCisJMHgyNjZmLCAweDY4ODAsIDB4YTAwNSwgMHgwMDQwLCAweDRiOGUsIDB4ODAwMSwgMHg2ODgyLCAweDAwYzAsCisJMHg0YjhlLCAweDY4NjcsIDB4MDAwMCwgMHg2OGQ0LCAweGMwZGQsIDB4NjhkNiwgMHg2OGQ0LCAweGQwZmMsCisJMHgwMDQwLCAweDRiYWIsIDB4YzBmYywgMHg2OGQ2LCAweDIwYTksIDB4MDIwMCwgMHg2MDM0LCAweGEwMDUsCisJMHgwMDQwLCAweDRiYTcsIDB4ODAwMSwgMHg2MDM2LCAweDY4ZDQsIDB4YzBmZCwgMHg2OGQ2LCAweDAwYzAsCisJMHg0YmE3LCAweDYwMTAsIDB4YTAwNSwgMHgwMDQwLCAweDRiYTcsIDB4MTA3OCwgMHgyNjZmLCAweGFjZTAsCisJMHgwMDEwLCAweDAwZjAsIDB4NGI5NiwgMHhkN2ZjLCAweDAwNDAsIDB4NGJiNSwgMHgyMDYxLCAweDU0YzAsCisJMHgyMDY5LCAweDRmNDAsIDB4YzdmYywgMHgwMDc4LCAweDRiM2QsIDB4MTA3OCwgMHg0YmYxLCAweDc4MzgsCisJMHg4MDAxLCAweDc4M2EsIDB4MDBjMCwgMHg0YmQ3LCAweDc4M2MsIDB4NzgzYSwgMHgyMDYxLCAweDU0YzAsCisJMHgyMDY5LCAweDRmNDAsIDB4YzdmYywgMHg2ODBjLCAweGEwMDUsIDB4MDA0MCwgMHg0YmM5LCAweDEwNzgsCisJMHg0YzViLCAweGQ3ZmMsIDB4MDBjMCwgMHg0YmQ3LCAweDc4MTAsIDB4ZDBlYywgMHgwMGMwLCAweDRiZDcsCisJMHgyMDYxLCAweDc0YzAsIDB4MjA2OSwgMHg0ZjgwLCAweGM3ZmQsIDB4MDA3OCwgMHg0YmMzLCAweDc4MTQsCisJMHhkMGU0LCAweDAwYzAsIDB4NGJkYiwgMHg3ODEwLCAweGQwY2MsIDB4MDA0MCwgMHg0YmVlLCAweGQwYWMsCisJMHgwMGMwLCAweDRiZTcsIDB4ZDBhNCwgMHgwMDQwLCAweDRiZWUsIDB4YzBhZCwgMHg3ODEyLCAweDIwOTEsCisJMHg4MDAxLCAweDAwNjgsIDB4NGJlZCwgMHgxMDc4LCAweDIzZGMsIDB4MDA3YywgMHgyMDkxLCAweDgwMDEsCisJMHgwMDdjLCAweDc4NDAsIDB4ODAwMSwgMHg3ODQyLCAweDAwYzAsIDB4NGM1YSwgMHg3ODQ0LCAweDc4NDIsCisJMHgyMDY5LCAweDRmNDAsIDB4YzdmYywgMHg3ODEwLCAweDIwNzksIDB4MDIwMCwgMHhkMGVjLCAweDAwNDAsCisJMHg0YzAzLCAweDIwNzksIDB4MDEwMCwgMHg2OGQ4LCAweGEwMDUsIDB4MDA0MCwgMHg0YzBmLCAweDdkZTAsCisJMHhhNTA0LCAweDAwYzAsIDB4NGMwZiwgMHg2OGRhLCAweDY4ZDQsIDB4YzBiYywgMHg2OGQ2LCAweDIwNzksCisJMHg0ZjAwLCAweDY4MTAsIDB4YTAwNSwgMHgwMGMwLCAweDRjMTcsIDB4MjAwMSwgMHgwMTAxLCAweDgwMDEsCisJMHg2ODEyLCAweGQ3ZmMsIDB4MDA0MCwgMHg0YzIwLCAweGEwODAsIDB4OTVkMCwgMHgwMDc4LCAweDRjMjIsCisJMHhhMDgwLCAweDk0YzAsIDB4MjA0MCwgMHgyMDA0LCAweGEwNjUsIDB4MDA0MCwgMHg0YzRjLCAweDYwMjQsCisJMHhhMDA1LCAweDAwNDAsIDB4NGM0OCwgMHg4MDAxLCAweDYwMjYsIDB4MDBjMCwgMHg0YzQ4LCAweDY4MDAsCisJMHhhMDA1LCAweDAwNDAsIDB4NGMzYiwgMHg2ODRjLCAweGFjMDYsIDB4MDBjMCwgMHg0YzNiLCAweDEwNzgsCisJMHg0Y2Y2LCAweDAwNzgsIDB4NGM0YywgMHg2ODY0LCAweGEwMDUsIDB4MDA0MCwgMHg0YzQzLCAweDYwMjcsCisJMHgwMDAxLCAweDAwNzgsIDB4NGM0OCwgMHgxMDc4LCAweDRjYTksIDB4MjgwNCwgMHgwMDc4LCAweDRjMjQsCisJMHg2MDAwLCAweDJjNDAsIDB4MDA3OCwgMHg0YzI0LCAweGQ3ZmMsIDB4MDBjMCwgMHg0YzVhLCAweDc4MTAsCisJMHhkMGVjLCAweDAwYzAsIDB4NGM1YSwgMHgyMDY5LCAweDRmODAsIDB4YzdmZCwgMHgyMDc5LCAweDAxMDAsCisJMHgwMDc4LCAweDRjMDMsIDB4MDA3YywgMHgyMDA5LCAweDAwMDAsIDB4MjBhOSwgMHgwMjAwLCAweDYwMDgsCisJMHhkMDljLCAweDAwNDAsIDB4NGM5NSwgMHg2MDI0LCAweGEwMDUsIDB4MDA0MCwgMHg0YzZiLCAweDgwMDEsCisJMHg2MDI2LCAweDAwNzgsIDB4NGM5MywgMHg2MDA4LCAweGMwOWMsIDB4ZDA4NCwgMHgwMGMwLCAweDRjNzMsCisJMHhkMGFjLCAweDAwNDAsIDB4NGM4ZCwgMHg2MDBhLCAweDYwMDQsIDB4YTAwNSwgMHgwMDQwLCAweDRjOTUsCisJMHgwZDdlLCAweDBjN2UsIDB4MDE3ZSwgMHgyMDY4LCAweDYwMTAsIDB4ODAwMSwgMHg2MDEyLCAweDEwNzgsCisJMHgzZTE5LCAweDJkMDAsIDB4MmM2OCwgMHgyMDYwLCAweDEwNzgsIDB4MWVhMiwgMHgxMDc4LCAweDIwNjQsCisJMHgwMTdmLCAweDBjN2YsIDB4MGQ3ZiwgMHgwMDc4LCAweDRjOTUsIDB4YzBiZCwgMHg2MDBhLCAweGExOGQsCisJMHgwMDAxLCAweDAwNzgsIDB4NGM5NSwgMHhhMThkLCAweDAxMDAsIDB4YWNlMCwgMHgwMDEwLCAweDAwZjAsCisJMHg0YzVmLCAweGExODQsIDB4MDAwMSwgMHgwMDQwLCAweDRjYTQsIDB4YTE4YywgMHhmZmZlLCAweDY5MGUsCisJMHgxMDc4LCAweDI2NmYsIDB4MDA3OCwgMHg0Y2E1LCAweDY5MGUsIDB4MDA3YywgMHgwMGMwLCAweDRjYTUsCisJMHg3ODZjLCAweDJjMDAsIDB4Njg3ZSwgMHg2NzE0LCAweDZmNzYsIDB4NjAxNywgMHgwMDAwLCAweDYwMmIsCisJMHgwMDAwLCAweDYwMWIsIDB4MDAwNiwgMHg2MGI0LCAweGEwODQsIDB4M2YwMCwgMHg2MDFlLCAweDYwMjAsCisJMHhhMDg0LCAweDAwZmYsIDB4YTA4NSwgMHgwMDYwLCAweDYwMjIsIDB4NjAwMCwgMHgyMDQyLCAweDEwNzgsCisJMHgxZTJiLCAweDY4MTgsIDB4YTAwNSwgMHgwMDQwLCAweDRjYzcsIDB4ODAwMSwgMHg2ODFhLCAweDY4MDgsCisJMHhjMGE0LCAweDY4MGEsIDB4NjgxMCwgMHg3OTA4LCAweDgxMDksIDB4NzkwYSwgMHg4MDAxLCAweDAwZDAsCisJMHg0Y2QzLCAweDEwNzgsIDB4MjliMiwgMHg2ODEyLCAweDAwYzAsIDB4NGNkOSwgMHg3OTEwLCAweGMxYTUsCisJMHg3OTEyLCAweDYwMmYsIDB4MDAwMCwgMHg2MDMzLCAweDAwMDAsIDB4MmM2OCwgMHgxMDc4LCAweDIwNzMsCisJMHhkN2ZjLCAweDAwYzAsIDB4NGNlNywgMHgyMDY5LCAweDRmNDAsIDB4MDA3OCwgMHg0Y2U5LCAweDIwNjksCisJMHg0ZjgwLCAweDY5MTAsIDB4YTE4NCwgMHgwMTAwLCAweDIwMDEsIDB4MDAwNiwgMHgwMGMwLCAweDRjZjMsCisJMHg2OTdhLCAweDIwMDEsIDB4MDAwNCwgMHgxMDc4LCAweDI2NjMsIDB4MDA3YywgMHgwZDdlLCAweDY5NGMsCisJMHgyMTYwLCAweGQ3ZmMsIDB4MDBjMCwgMHg0ZDA4LCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDRkMDQsCisJMHgyMDY5LCAweDAxMDAsIDB4MDA3OCwgMHg0ZDBhLCAweDIwNjksIDB4MDIwMCwgMHgwMDc4LCAweDRkMGEsCisJMHgyMDY5LCAweDAxMDAsIDB4MTA3OCwgMHgyOTI2LCAweDYwMWIsIDB4MDAwNiwgMHg2ODU4LCAweGEwODQsCisJMHgzZjAwLCAweDYwMWUsIDB4NjAyMCwgMHhhMDg0LCAweDAwZmYsIDB4YTA4NSwgMHgwMDQ4LCAweDYwMjIsCisJMHg2MDJmLCAweDAwMDAsIDB4NjAzMywgMHgwMDAwLCAweDY4MDgsIDB4YTA4NCwgMHhmZmZkLCAweDY4MGEsCisJMHg2ODMwLCAweGQwYjQsIDB4MDA0MCwgMHg0ZDNjLCAweDY4NGIsIDB4MDAwNCwgMHgyMGE5LCAweDAwMTQsCisJMHg2ODQ4LCAweGQwOTQsIDB4MDA0MCwgMHg0ZDJlLCAweDAwZjAsIDB4NGQyOCwgMHg2ODRiLCAweDAwMDksCisJMHgyMGE5LCAweDAwMTQsIDB4Njg0OCwgMHhkMDg0LCAweDAwNDAsIDB4NGQzOCwgMHgwMGYwLCAweDRkMzIsCisJMHgyMGE5LCAweDAwZmEsIDB4MDBmMCwgMHg0ZDNhLCAweDY4MWIsIDB4MDA0NywgMHgwZDdmLCAweDY4NjcsCisJMHgwMDA3LCAweDAwN2MsIDB4MjA3OSwgMHg0ZjAwLCAweDEwNzgsIDB4NGQ3NiwgMHgxMDc4LCAweDRkNWMsCisJMHgxMDc4LCAweDRkNjksIDB4MjAwOSwgMHgwMDAyLCAweDIwNjksIDB4NGY4MCwgMHg2ODBmLCAweDAwMDAsCisJMHg2ODEzLCAweDAwMDAsIDB4NjgxNywgMHgwMDAwLCAweDgxMDksIDB4MDA0MCwgMHg0ZDViLCAweDIwNjksCisJMHg0ZjQwLCAweDAwNzgsIDB4NGQ0ZSwgMHgwMDdjLCAweDc4MTAsIDB4ZDBlYywgMHgwMDQwLCAweDRkNjQsCisJMHgyMDE5LCAweDAwY2MsIDB4MDA3OCwgMHg0ZDY2LCAweDIwMTksIDB4MDA3YiwgMHg3YjNhLCAweDdiM2UsCisJMHgwMDdjLCAweDc4MTQsIDB4ZDBlNCwgMHgwMGMwLCAweDRkNzEsIDB4MjAxOSwgMHgwMDQwLCAweDAwNzgsCisJMHg0ZDczLCAweDIwMTksIDB4MDAyNiwgMHg3YjQyLCAweDdiNDYsIDB4MDA3YywgMHg3ODE0LCAweGQwZTQsCisJMHgwMGMwLCAweDRkN2UsIDB4MjAxOSwgMHgzZjk0LCAweDAwNzgsIDB4NGQ4MCwgMHgyMDE5LCAweDI2MjQsCisJMHg3YjMyLCAweDdiMzYsIDB4MDA3YywgMHg2YTUwLCAweGEyODUsIDB4MDAwMCwgMHgwMDQwLCAweDRkYWYsCisJMHg2OTU0LCAweDZiYzAsIDB4YTMwMCwgMHgwYzdlLCAweDIxNjQsIDB4NjMwNCwgMHg4M2ZmLCAweDAwYzAsCisJMHg0ZDliLCAweDgyMTEsIDB4MDA0MCwgMHg0ZDlmLCAweDgxMDgsIDB4YTExYSwgMHgwMDQ4LCAweDRkOGMsCisJMHg2OWMwLCAweDAwNzgsIDB4NGQ4YywgMHg2OGQzLCAweDAwMGEsIDB4MGM3ZiwgMHgwMDdjLCAweDY5NTAsCisJMHg2YWMwLCAweDIyNjQsIDB4NjAyYiwgMHgwMDAwLCAweDYwMmYsIDB4MDAwMCwgMHg2MDA4LCAweGMwYjUsCisJMHg2MDBhLCAweDgyMTAsIDB4ODEwOSwgMHgwMGMwLCAweDRkYTEsIDB4Njk1MiwgMHgwYzdmLCAweDAwN2MsCisJMHgwMGUwLCAweDRkYjAsIDB4MjA5MSwgMHg2MDAwLCAweDAwZTAsIDB4NGRiNCwgMHgyMDkxLCAweDYwMDAsCisJMHg3MGVjLCAweGQwZGMsIDB4MDBjMCwgMHg0ZGMxLCAweGQwZDQsIDB4MDA0MCwgMHg0ZGVhLCAweDAwNzgsCisJMHg0ZGVkLCAweDIwMDgsIDB4NzgxMCwgMHhkMGVjLCAweDAwNDAsIDB4NGRkNCwgMHhkMWM0LCAweDAwYzAsCisJMHg0ZTBlLCAweDc4MTQsIDB4YzBjNSwgMHg3ODE2LCAweDc4MTAsIDB4YzBmNSwgMHg3ODEyLCAweGQwZWMsCisJMHgwMDQwLCAweDRlMGEsIDB4MDA3OCwgMHg0ZTA2LCAweGFlOGUsIDB4MDEwMCwgMHgwMDQwLCAweDRkZTEsCisJMHg3ODE0LCAweGMwZjUsIDB4YzBjNSwgMHg3ODE2LCAweGQwZDQsIDB4MDBjMCwgMHg0ZTBhLCAweDAwNzgsCisJMHg0ZTA2LCAweDc4MTQsIDB4YzBmZCwgMHhjMGM1LCAweDc4MTYsIDB4ZDBkNCwgMHgwMGMwLCAweDRlMGEsCisJMHgwMDc4LCAweDRlMDYsIDB4ZDBlNCwgMHgwMDQwLCAweDRlMGMsIDB4MDBlMCwgMHg0ZGVkLCAweDIwOTEsCisJMHg2MDAwLCAweDIwMDksIDB4MDAwYywgMHgwMGUwLCAweDRkZjMsIDB4MjA5MSwgMHg2MDAwLCAweDgxMDksCisJMHgwMGMwLCAweDRkZjMsIDB4NzBlNCwgMHhhMDg0LCAweDAxZmYsIDB4YTA4NiwgMHgwMWZmLCAweDAwYzAsCisJMHg0ZTA0LCAweDcwZWMsIDB4MDA3OCwgMHg0ZGMxLCAweDEwNzgsIDB4NGUwZiwgMHg3ODA0LCAweGQwOGMsCisJMHgwMDQwLCAweDRlMGMsIDB4NjgxZiwgMHgwMDBjLCAweDcwYTAsIDB4NzBhMiwgMHgwMDdjLCAweDc5MTAsCisJMHhkMWVjLCAweDAwNDAsIDB4NGUxOSwgMHg3ODE0LCAweGMwYzQsIDB4YzFmNCwgMHg3OTEyLCAweDAwNzgsCisJMHg0ZTJiLCAweGFlOGUsIDB4MDEwMCwgMHgwMDQwLCAweDRlMjUsIDB4NzgxNCwgMHhjMGY0LCAweGQwZmMsCisJMHgwMGMwLCAweDRlMmIsIDB4YzBjNCwgMHgwMDc4LCAweDRlMmIsIDB4NzgxNCwgMHhjMGZjLCAweGQwZjQsCisJMHgwMGMwLCAweDRlMmIsIDB4YzBjNCwgMHg3ODE2LCAweDAwN2MsIDB4MTRlMwogfTsKICNpZmRlZiBVTklRVUVfRldfTkFNRQotc3RhdGljIHVuc2lnbmVkIHNob3J0ICAgZncxMjgwZWlfbGVuZ3RoMDEgPSAweDNkM2I7CitzdGF0aWMgdW5zaWduZWQgc2hvcnQgZncxMjgwZWlfbGVuZ3RoMDEgPSAweDNlMmU7CiAjZWxzZQotc3RhdGljIHVuc2lnbmVkIHNob3J0ICAgcmlzY19jb2RlX2xlbmd0aDAxID0gMHgzZDNiOworc3RhdGljIHVuc2lnbmVkIHNob3J0IHJpc2NfY29kZV9sZW5ndGgwMSA9IDB4M2UyZTsKICNlbmRpZgorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMTI4MC5jIGIvZHJpdmVycy9zY3NpL3FsYTEyODAuYwppbmRleCA0YWQyODA4Li4xYTRjZTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMTI4MC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGExMjgwLmMKQEAgLTEwOTgsNyArMTA5OCwxMyBAQAogc3RhdGljIGludAogcWxhMTI4MF9laF9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICogY21kKQogewotCXJldHVybiBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIEFCT1JUX0NPTU1BTkQpOworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIEFCT1JUX0NPTU1BTkQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMTA4LDcgKzExMTQsMTMgQEAKIHN0YXRpYyBpbnQKIHFsYTEyODBfZWhfZGV2aWNlX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIHsKLQlyZXR1cm4gcWxhMTI4MF9lcnJvcl9hY3Rpb24oY21kLCBERVZJQ0VfUkVTRVQpOworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIERFVklDRV9SRVNFVCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCisJcmV0dXJuIHJjOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExMTgsNyArMTEzMCwxMyBAQAogc3RhdGljIGludAogcWxhMTI4MF9laF9idXNfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqY21kKQogewotCXJldHVybiBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIEJVU19SRVNFVCk7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IHFsYTEyODBfZXJyb3JfYWN0aW9uKGNtZCwgQlVTX1JFU0VUKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTEyOCw3ICsxMTQ2LDEzIEBACiBzdGF0aWMgaW50CiBxbGExMjgwX2VoX2FkYXB0ZXJfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqY21kKQogewotCXJldHVybiBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIEFEQVBURVJfUkVTRVQpOworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBxbGExMjgwX2Vycm9yX2FjdGlvbihjbWQsIEFEQVBURVJfUkVTRVQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKIH0KIAogc3RhdGljIGludApAQCAtNDAzOCwxMSArNDA2MiwxMCBAQAogCQkJc2NzaV9zdGF0dXMsIGhhbmRsZSk7CiAJfQogCi0JLyogVGFyZ2V0IGJ1c3kgKi8KLQlpZiAoc2NzaV9zdGF0dXMgJiBTU19CVVNZX0NPTkRJVElPTiAmJgotCSAgICBzY3NpX3N0YXR1cyAhPSBTU19SRVNFUlZFX0NPTkZMSUNUKSB7Ci0JCUNNRF9SRVNVTFQoY21kKSA9Ci0JCQlESURfQlVTX0JVU1kgPDwgMTYgfCAoc2NzaV9zdGF0dXMgJiAweGZmKTsKKwkvKiBUYXJnZXQgYnVzeSBvciBxdWV1ZSBmdWxsICovCisJaWYgKChzY3NpX3N0YXR1cyAmIDB4RkYpID09IFNBTV9TVEFUX1RBU0tfU0VUX0ZVTEwgfHwKKwkgICAgKHNjc2lfc3RhdHVzICYgMHhGRikgPT0gU0FNX1NUQVRfQlVTWSkgeworCQlDTURfUkVTVUxUKGNtZCkgPSBzY3NpX3N0YXR1cyAmIDB4ZmY7CiAJfSBlbHNlIHsKIAogCQkvKiBTYXZlIElTUCBjb21wbGV0aW9uIHN0YXR1cyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RiZy5jIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RiZy5jCmluZGV4IGM0Y2Q0YWMuLjMyOWQxYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kYmcuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGJnLmMKQEAgLTEwNjMsOCArMTA2Myw3IEBACiAJCXJldHVybjsKIAogCXByaW50aygiICBzcCBmbGFncz0weCV4XG4iLCBzcC0+ZmxhZ3MpOwotCXByaW50aygiICByX3N0YXJ0PTB4JWx4LCB1X3N0YXJ0PTB4JWx4LCBmX3N0YXJ0PTB4JWx4LCBzdGF0ZT0lZFxuIiwKLQkgICAgc3AtPnJfc3RhcnQsIHNwLT51X3N0YXJ0LCBzcC0+Zl9zdGFydCwgc3AtPnN0YXRlKTsKKwlwcmludGsoIiAgc3RhdGU9JWRcbiIsIHNwLT5zdGF0ZSk7CiB9CiAKICNpZiBkZWZpbmVkKFFMX0RFQlVHX1JPVVRJTkVTKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCmluZGV4IDdkNDdiOGQuLjgzYTMyZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKQEAgLTI1MiwzMSArMjUyLDEyIEBACiAJLyogUmVxdWVzdCBzdGF0ZSAqLwogCXVpbnQxNl90IHN0YXRlOwogCi0JLyogVGltaW5nIGNvdW50cy4gKi8KLQl1bnNpZ25lZCBsb25nIGVfc3RhcnQ7CQkvKiBTdGFydCBvZiBleHRlbmQgdGltZW91dCAqLwotCXVuc2lnbmVkIGxvbmcgcl9zdGFydDsJCS8qIFN0YXJ0IG9mIHJlcXVlc3QgKi8KLQl1bnNpZ25lZCBsb25nIHVfc3RhcnQ7CQkvKiBXaGVuIHNlbnQgdG8gUklTQyAqLwotCXVuc2lnbmVkIGxvbmcgZl9zdGFydDsJCS8qIFdoZW4gcGxhY2VkIGluIEZPIHF1ZXVlKi8KLQogCS8qIFNpbmdsZSB0cmFuc2ZlciBETUEgY29udGV4dCAqLwogCWRtYV9hZGRyX3QgZG1hX2hhbmRsZTsKIAogCXVpbnQzMl90IHJlcXVlc3Rfc2Vuc2VfbGVuZ3RoOwogCXVpbnQ4X3QgKnJlcXVlc3Rfc2Vuc2VfcHRyOwogCi0JaW50IGV4dF9oaXN0b3J5OwotCi0JLyogU3VzcGVuZCBkZWxheSAqLwotCWludCBkZWxheTsKLQotCS8qIFJhdyBjb21wbGV0aW9uIGluZm8gZm9yIHVzZSBieSBmYWlsb3ZlciA/ICovCi0JdWludDhfdAlmb19yZXRyeV9jbnQ7CQkvKiBSZXRyeSBjb3VudCB0aGlzIHJlcXVlc3QgKi8KLQl1aW50OF90CWVycl9pZDsJCQkvKiBlcnJvciBpZCAqLwotI2RlZmluZSBTUkJfRVJSX1BPUlQJMQkJLyogUmVxdWVzdCBmYWlsZWQgLS0gInBvcnQgZG93biIgKi8KLSNkZWZpbmUgU1JCX0VSUl9MT09QCTIJCS8qIFJlcXVlc3QgZmFpbGVkIC0tICJsb29wIGRvd24iICovCi0jZGVmaW5lIFNSQl9FUlJfREVWSUNFCTMJCS8qIFJlcXVlc3QgZmFpbGVkIC0tICJkZXZpY2UgZXJyb3IiICovCi0jZGVmaW5lIFNSQl9FUlJfT1RIRVIJNAotCiAJLyogU1JCIG1hZ2ljIG51bWJlciAqLwogCXVpbnQxNl90IG1hZ2ljOwogI2RlZmluZSBTUkJfTUFHSUMgICAgICAgMHgxMENCCkBAIC0yMDgyLDIzICsyMDYzLDggQEAKIAl1aW50MzJfdAljdXJyZW50X291dHN0YW5kaW5nX2NtZDsgCiAJc3JiX3QJCSpzdGF0dXNfc3JiOwkvKiBTdGF0dXMgY29udGludWF0aW9uIGVudHJ5LiAqLwogCi0JdW5zaWduZWQgbG9uZwlsYXN0X2lycV9jcHU7CS8qIGNwdSB3aGVyZSB3ZSBnb3Qgb3VyIGxhc3QgaXJxICovCi0KIAl1aW50MTZfdCAgICAgICAgICAgcmV2aXNpb247CiAJdWludDhfdCAgICAgICAgICAgcG9ydHM7Ci0JdV9sb25nICAgICAgICAgICAgYWN0dGhyZWFkczsKLQl1X2xvbmcgICAgICAgICAgICBpcHJlcV9jbnQ7Ci0JdV9sb25nICAgICAgICAgICAgcXRocmVhZHM7Ci0KLQl1aW50MzJfdCAgICAgICAgdG90YWxfaXNyX2NudDsJCS8qIEludGVycnVwdCBjb3VudCAqLwotCXVpbnQzMl90ICAgICAgICB0b3RhbF9pc3BfYWJvcnRzOwkvKiBjb250cm9sbGVyIGVyciBjbnQgKi8KLQl1aW50MzJfdCAgICAgICAgdG90YWxfbGlwX2NudDsJCS8qIExJUCBjbnQgKi8KLQl1aW50MzJfdAl0b3RhbF9kZXZfZXJyczsJCS8qIGRldmljZSBlcnJvciBjbnQgKi8KLQl1aW50MzJfdAl0b3RhbF9pb3M7CQkvKiBJTyBjbnQgKi8KLQl1aW50NjRfdAl0b3RhbF9ieXRlczsJCS8qIHhmciBieXRlIGNudCAqLwotCXVpbnQzMl90CXRvdGFsX21ieF90aW1lb3V0OwkvKiBtYWlsYm94IHRpbWVvdXQgY250ICovCi0JdWludDMyX3QgCXRvdGFsX2xvb3BfcmVzeW5jOyAJLyogbG9vcCByZXN5biBjbnQgKi8KLQl1aW50MzJfdAlkcm9wcGVkX2ZyYW1lX2Vycm9yX2NudDsKIAogCS8qIElTUCBjb25maWd1cmF0aW9uIGRhdGEuICovCiAJdWludDE2X3QJbG9vcF9pZDsJCS8qIEhvc3QgYWRhcHRlciBsb29wIGlkICovCkBAIC0yMTI0LDggKzIwOTAsNiBAQAogI2RlZmluZSBQMlBfTE9PUCAgMwogCiAgICAgICAgIHVpbnQ4X3QJCW1hcmtlcl9uZWVkZWQ7IAotCXVpbnQ4X3QJCXNuc19yZXRyeV9jbnQ7Ci0JdWludDhfdAkJbWVtX2VycjsKIAogCXVpbnQ4X3QJCWludGVycnVwdHNfb247CiAKQEAgLTIxMzgsMTYgKzIxMDIsMTEgQEAKIAl1aW50MTZfdAludnJhbV9iYXNlOwogCiAJdWludDE2X3QJbG9vcF9yZXNldF9kZWxheTsKLQl1aW50MTZfdAltaW5pbXVtX3RpbWVvdXQ7CiAJdWludDhfdAkJcmV0cnlfY291bnQ7CiAJdWludDhfdAkJbG9naW5fdGltZW91dDsKIAl1aW50MTZfdAlyX2FfdG92OwogCWludAkJcG9ydF9kb3duX3JldHJ5X2NvdW50OwotCXVpbnQ4X3QJCWxvb3BfZG93bl90aW1lb3V0OwogCXVpbnQ4X3QJCW1ieF9jb3VudDsKLQl1aW50MTZfdAltYXhfcHJvYmVfbHVuczsKLQl1aW50MTZfdAltYXhfbHVuczsKLQl1aW50MTZfdAltYXhfdGFyZ2V0czsKIAl1aW50MTZfdAlsYXN0X2xvb3BfaWQ7CiAKICAgICAgICAgdWludDMyX3QJbG9naW5fcmV0cnlfY291bnQ7IApAQCAtMjE4MSw3ICsyMTQwLDYgQEAKIAl1aW50OF90IGRwY19hY3RpdmU7ICAgICAgICAgICAgICAgICAgLyogRFBDIHJvdXRpbmUgaXMgYWN0aXZlICovCiAKIAkvKiBUaW1lb3V0IHRpbWVycy4gKi8KLQl1aW50OF90ICAgICAgICAgcXVldWVfcmVzdGFydF90aW1lcjsgICAKIAl1aW50OF90ICAgICAgICAgbG9vcF9kb3duX2Fib3J0X3RpbWU7ICAgIC8qIHBvcnQgZG93biB0aW1lciAqLwogCWF0b21pY190ICAgICAgICBsb29wX2Rvd25fdGltZXI7ICAgICAgICAgLyogbG9vcCBkb3duIHRpbWVyICovCiAJdWludDhfdCAgICAgICAgIGxpbmtfZG93bl90aW1lb3V0OyAgICAgICAvKiBsaW5rIGRvd24gdGltZW91dCAqLwpAQCAtMjIzMCwxOCArMjE4OCw2IEBACiAKIAltYnhfY21kX3QgCW1jOwogCi0JdWludDhfdAkqY21kbGluZTsKLQotCXVpbnQzMl90IGZhaWxvdmVyX3R5cGU7Ci0JdWludDMyX3QgZmFpbGJhY2tfZGVsYXk7Ci0JdW5zaWduZWQgbG9uZyAgIGNmZ19mbGFnczsKLSNkZWZpbmUJQ0ZHX0FDVElWRQkwCS8qIENGRyBkdXJpbmcgYSBmYWlsb3ZlciwgZXZlbnQgdXBkYXRlLCBvciBpb2N0bCAqLwotI2RlZmluZQlDRkdfRkFJTE9WRVIJMQkvKiBDRkcgZHVyaW5nIHBhdGggY2hhbmdlICovCi0KLQl1aW50MzJfdAliaW5kaW5nX3R5cGU7Ci0jZGVmaW5lIEJJTkRfQllfUE9SVF9OQU1FCTAKLSNkZWZpbmUgQklORF9CWV9QT1JUX0lECQkxCi0KIAkvKiBCYXNpYyBmaXJtd2FyZSByZWxhdGVkIGluZm9ybWF0aW9uLiAqLwogCXN0cnVjdCBxbGFfYm9hcmRfaW5mbwkqYnJkX2luZm87CiAJdWludDE2X3QJZndfbWFqb3JfdmVyc2lvbjsKQEAgLTIyNzQsMTIgKzIyMjAsNiBAQAogCXVpbnQ4X3QgICAgIG52cmFtX3ZlcnNpb247IAogCXVpbnQzMl90ICAgIGlzcF9hYm9ydF9jbnQ7CiAKLQkvKiBBZGFwdGVyIEkvTyBzdGF0aXN0aWNzIGZvciBmYWlsb3ZlciAqLwotCXVpbnQ2NF90CUlvc1JlcXVlc3RlZDsKLQl1aW50NjRfdAlCeXRlc1JlcXVlc3RlZDsKLQl1aW50NjRfdAlJb3NFeGVjdXRlZDsKLQl1aW50NjRfdAlCeXRlc0V4ZWN1dGVkOwotCiAJLyogTmVlZGVkIGZvciBCRUFDT04gKi8KIAl1aW50MTZfdAliZWFjb25fYmxpbmtfbGVkOwogCXVpbnQxNl90CWJlYWNvbl9ncmVlbl9vbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9nYmwuaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9nYmwuaAppbmRleCAyZWZlYzZjLi4xNjQ4NjZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZ2JsLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2dibC5oCkBAIC01MywyNyArNTMsMTMgQEAKICAqLwogZXh0ZXJuIGNoYXIgcWxhMngwMF92ZXJzaW9uX3N0cltdOwogCi1leHRlcm4gaW50IG51bV9ob3N0czsKLWV4dGVybiBpbnQgYXBpSEJBSW5zdGFuY2U7Ci0KLWV4dGVybiBzdHJ1Y3QgX3FsYTJ4MDBzdGF0cyBxbGEyeDAwX3N0YXRzOwotZXh0ZXJuIGludCBxbDJ4cmV0cnljb3VudDsKIGV4dGVybiBpbnQgcWwyeGxvZ2ludGltZW91dDsKIGV4dGVybiBpbnQgcWxwb3J0X2Rvd25fcmV0cnk7Ci1leHRlcm4gaW50IHFsMnhtYXhxZGVwdGg7Ci1leHRlcm4gaW50IGRpc3BsYXlDb25maWc7CiBleHRlcm4gaW50IHFsMnhwbG9naWFic2VudGRldmljZTsKIGV4dGVybiBpbnQgcWwyeGVuYWJsZXppbzsKIGV4dGVybiBpbnQgcWwyeGludHJkZWxheXRpbWVyOwogZXh0ZXJuIGludCBxbDJ4bG9naW5yZXRyeWNvdW50OwogCi1leHRlcm4gaW50IENvbmZpZ1JlcXVpcmVkOwotCi1leHRlcm4gaW50IEJpbmQ7Ci1leHRlcm4gaW50IHFsMnhzdXNwZW5kY291bnQ7Ci0jaWYgZGVmaW5lZChNT0RVTEUpCi1leHRlcm4gY2hhciAqcWwyeG9wdHM7Ci0jZW5kaWYKIGV4dGVybiB2b2lkIHFsYTJ4MDBfc3BfY29tcGwoc2NzaV9xbGFfaG9zdF90ICosIHNyYl90ICopOwogCiBleHRlcm4gY2hhciAqcWxhMngwMF9nZXRfZndfdmVyc2lvbl9zdHIoc3RydWN0IHNjc2lfcWxhX2hvc3QgKiwgY2hhciAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbml0LmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW5pdC5jCmluZGV4IDAzODcwMDUuLjc2Mjk1NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbml0LmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2luaXQuYwpAQCAtODUsOSArODUsNyBAQAogCWF0b21pY19zZXQoJmhhLT5sb29wX2Rvd25fdGltZXIsIExPT1BfRE9XTl9USU1FKTsKIAlhdG9taWNfc2V0KCZoYS0+bG9vcF9zdGF0ZSwgTE9PUF9ET1dOKTsKIAloYS0+ZGV2aWNlX2ZsYWdzID0gMDsKLQloYS0+c25zX3JldHJ5X2NudCA9IDA7CiAJaGEtPmRwY19mbGFncyA9IDA7Ci0JaGEtPmZhaWxiYWNrX2RlbGF5ID0gMDsKIAloYS0+ZmxhZ3MubWFuYWdlbWVudF9zZXJ2ZXJfbG9nZ2VkX2luID0gMDsKIAloYS0+bWFya2VyX25lZWRlZCA9IDA7CiAJaGEtPm1ieF9mbGFncyA9IDA7CkBAIC0xNzEsOCArMTY5LDYgQEAKIAogCQkJCWlmICh3YWl0X3RpbWUgPT0gMCkKIAkJCQkJcnZhbCA9IFFMQV9GVU5DVElPTl9GQUlMRUQ7Ci0JCQkJaWYgKGhhLT5tZW1fZXJyKQotCQkJCQlyZXN0YXJ0X3Jpc2MgPSAxOwogCQkJfSBlbHNlIGlmIChoYS0+ZGV2aWNlX2ZsYWdzICYgREZMR19OT19DQUJMRSkKIAkJCQkvKiBJZiBubyBjYWJsZSwgdGhlbiBhbGwgaXMgZ29vZC4gKi8KIAkJCQlydmFsID0gUUxBX1NVQ0NFU1M7CkBAIC0xNDEwLDEzICsxNDA2LDggQEAKIAkvKiBTZXQgbWluaW11bSBSQVRPViB0byAyMDAgdGVudGhzIG9mIGEgc2Vjb25kLiAqLwogCWhhLT5yX2FfdG92ID0gMjAwOwogCi0JaGEtPm1pbmltdW1fdGltZW91dCA9Ci0JICAgIChoYS0+bG9naW5fdGltZW91dCAqIGhhLT5yZXRyeV9jb3VudCkgKyBudi0+cG9ydF9kb3duX3JldHJ5X2NvdW50OwogCWhhLT5sb29wX3Jlc2V0X2RlbGF5ID0gbnYtPnJlc2V0X2RlbGF5OwogCi0JLyogV2lsbCBnZXQgdGhlIHZhbHVlIGZyb20gTlZSQU0uICovCi0JaGEtPmxvb3BfZG93bl90aW1lb3V0ID0gTE9PUF9ET1dOX1RJTUVPVVQ7Ci0KIAkvKiBMaW5rIERvd24gVGltZW91dCA9IDA6CiAJICoKIAkgKiAJV2hlbiBQb3J0IERvd24gdGltZXIgZXhwaXJlcyB3ZSB3aWxsIHN0YXJ0IHJldHVybmluZwpAQCAtMTQyOSwxOCArMTQyMCwxMyBAQAogCSAqLwkJCQkJCQogCWlmIChudi0+bGlua19kb3duX3RpbWVvdXQgPT0gMCkgewogCQloYS0+bG9vcF9kb3duX2Fib3J0X3RpbWUgPQotCQkgICAgKExPT1BfRE9XTl9USU1FIC0gaGEtPmxvb3BfZG93bl90aW1lb3V0KTsKKwkJICAgIChMT09QX0RPV05fVElNRSAtIExPT1BfRE9XTl9USU1FT1VUKTsKIAl9IGVsc2UgewogCQloYS0+bGlua19kb3duX3RpbWVvdXQgPQkgbnYtPmxpbmtfZG93bl90aW1lb3V0OwogCQloYS0+bG9vcF9kb3duX2Fib3J0X3RpbWUgPQogCQkgICAgKExPT1BfRE9XTl9USU1FIC0gaGEtPmxpbmtfZG93bl90aW1lb3V0KTsKIAl9IAogCi0JaGEtPm1heF9sdW5zID0gTUFYX0xVTlM7Ci0JaGEtPm1heF9wcm9iZV9sdW5zID0gbGUxNl90b19jcHUobnYtPm1heF9sdW5zX3Blcl90YXJnZXQpOwotCWlmIChoYS0+bWF4X3Byb2JlX2x1bnMgPT0gMCkKLQkJaGEtPm1heF9wcm9iZV9sdW5zID0gTUlOX0xVTlM7Ci0KIAkvKgogCSAqIE5lZWQgZW5vdWdoIHRpbWUgdG8gdHJ5IGFuZCBnZXQgdGhlIHBvcnQgYmFjay4KIAkgKi8KQEAgLTE0NTcsMTYgKzE0NDMsNiBAQAogCWlmIChxbDJ4bG9naW5yZXRyeWNvdW50KQogCQloYS0+bG9naW5fcmV0cnlfY291bnQgPSBxbDJ4bG9naW5yZXRyeWNvdW50OwogCi0JaGEtPmJpbmRpbmdfdHlwZSA9IEJpbmQ7Ci0JaWYgKGhhLT5iaW5kaW5nX3R5cGUgIT0gQklORF9CWV9QT1JUX05BTUUgJiYKLQkgICAgaGEtPmJpbmRpbmdfdHlwZSAhPSBCSU5EX0JZX1BPUlRfSUQpIHsKLQkJcWxhX3ByaW50ayhLRVJOX1dBUk5JTkcsIGhhLAotCQkgICAgIkludmFsaWQgYmluZGluZyB0eXBlIHNwZWNpZmllZCAoJWQpLCAiCi0JCSAgICAiZGVmYXVsdGluZyB0byBCSU5EX0JZX1BPUlRfTkFNRSEhIVxuIiwgaGEtPmJpbmRpbmdfdHlwZSk7Ci0KLQkJaGEtPmJpbmRpbmdfdHlwZSA9IEJJTkRfQllfUE9SVF9OQU1FOwotCX0KLQogCWljYi0+bHVuX2VuYWJsZXMgPSBfX2NvbnN0YW50X2NwdV90b19sZTE2KDApOwogCWljYi0+Y29tbWFuZF9yZXNvdXJjZV9jb3VudCA9IDA7CiAJaWNiLT5pbW1lZGlhdGVfbm90aWZ5X3Jlc291cmNlX2NvdW50ID0gMDsKQEAgLTE1NzgsNyArMTU1NCw2IEBACiAJICovCiAJY2xlYXJfYml0KExPQ0FMX0xPT1BfVVBEQVRFLCAmaGEtPmRwY19mbGFncyk7CiAJY2xlYXJfYml0KFJTQ05fVVBEQVRFLCAmaGEtPmRwY19mbGFncyk7Ci0JaGEtPm1lbV9lcnIgPSAwIDsKIAogCS8qIERldGVybWluZSB3aGF0IHdlIG5lZWQgdG8gZG8gKi8KIAlpZiAoaGEtPmN1cnJlbnRfdG9wb2xvZ3kgPT0gSVNQX0NGR19GTCAmJgpAQCAtMjcwNyw3ICsyNjgyLDYgQEAKIAlydmFsID0gUUxBX1NVQ0NFU1M7CiAKIAlhdG9taWNfc2V0KCZoYS0+bG9vcF9zdGF0ZSwgTE9PUF9VUERBVEUpOwotCXFsYTJ4MDBfc3RhdHMubG9vcF9yZXN5bmMrKzsKIAljbGVhcl9iaXQoSVNQX0FCT1JUX1JFVFJZLCAmaGEtPmRwY19mbGFncyk7CiAJaWYgKGhhLT5mbGFncy5vbmxpbmUpIHsKIAkJaWYgKCEocnZhbCA9IHFsYTJ4MDBfZndfcmVhZHkoaGEpKSkgewpAQCAtMjc4Niw5ICsyNzYwLDYgQEAKIAlpZiAoaGEtPmZsYWdzLm9ubGluZSkgewogCQloYS0+ZmxhZ3Mub25saW5lID0gMDsKIAkJY2xlYXJfYml0KElTUF9BQk9SVF9ORUVERUQsICZoYS0+ZHBjX2ZsYWdzKTsKLQkJcWxhMngwMF9zdGF0cy5pc3BBYm9ydCsrOwotCQloYS0+dG90YWxfaXNwX2Fib3J0cysrOyAgLyogdXNlZCBieSBpb2N0bCAqLwotCQloYS0+c25zX3JldHJ5X2NudCA9IDA7CiAKIAkJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLAogCQkgICAgIlBlcmZvcm1pbmcgSVNQIGVycm9yIHJlY292ZXJ5IC0gaGE9ICVwLlxuIiwgaGEpOwpAQCAtMjgxMCw4ICsyNzgxLDYgQEAKIAkJCXNwID0gaGEtPm91dHN0YW5kaW5nX2NtZHNbY250XTsKIAkJCWlmIChzcCkgewogCQkJCWhhLT5vdXRzdGFuZGluZ19jbWRzW2NudF0gPSBOVUxMOwotCQkJCWlmIChoYS0+YWN0dGhyZWFkcykKLQkJCQkJaGEtPmFjdHRocmVhZHMtLTsKIAkJCQlzcC0+ZmxhZ3MgPSAwOwogCQkJCXNwLT5jbWQtPnJlc3VsdCA9IERJRF9SRVNFVCA8PCAxNjsKIAkJCQlzcC0+Y21kLT5ob3N0X3NjcmliYmxlID0gKHVuc2lnbmVkIGNoYXIgKilOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lvY2IuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pb2NiLmMKaW5kZXggYWY5NjRiYi4uZWNhZjlmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lvY2IuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW9jYi5jCkBAIC00MzMsMTEgKzQzMyw4IEBACiAJfSBlbHNlCiAJCWhhLT5yZXF1ZXN0X3JpbmdfcHRyKys7CiAKLQloYS0+YWN0dGhyZWFkcysrOwotCWhhLT50b3RhbF9pb3MrKzsKIAlzcC0+ZmxhZ3MgfD0gU1JCX0RNQV9WQUxJRDsKIAlzcC0+c3RhdGUgPSBTUkJfQUNUSVZFX1NUQVRFOwotCXNwLT51X3N0YXJ0ID0gamlmZmllczsKIAogCS8qIFNldCBjaGlwIG5ldyByaW5nIGluZGV4LiAqLwogCVdSVF9SRUdfV09SRChJU1BfUkVRX1FfSU4oaGEsIHJlZyksIGhhLT5yZXFfcmluZ19pbmRleCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMKaW5kZXggNjc5MmNmYS4uZTdhOGI3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lzci5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pc3IuYwpAQCAtOTEsOSArOTEsNiBAQAogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCi0JaGEtPmxhc3RfaXJxX2NwdSA9IF9zbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaGEtPnRvdGFsX2lzcl9jbnQrKzsKLQogCWlmICh0ZXN0X2JpdChNQlhfSU5UUl9XQUlULCAmaGEtPm1ieF9jbWRfZmxhZ3MpICYmCiAJICAgIChzdGF0dXMgJiBNQlhfSU5URVJSVVBUKSAmJiBoYS0+ZmxhZ3MubWJveF9pbnQpIHsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5tYnhfcmVnX2xvY2ssIGZsYWdzKTsKQEAgLTIwMCw5ICsxOTcsNiBAQAogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCi0JaGEtPmxhc3RfaXJxX2NwdSA9IF9zbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaGEtPnRvdGFsX2lzcl9jbnQrKzsKLQogCWlmICh0ZXN0X2JpdChNQlhfSU5UUl9XQUlULCAmaGEtPm1ieF9jbWRfZmxhZ3MpICYmCiAJICAgIChzdGF0dXMgJiBNQlhfSU5URVJSVVBUKSAmJiBoYS0+ZmxhZ3MubWJveF9pbnQpIHsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmhhLT5tYnhfcmVnX2xvY2ssIGZsYWdzKTsKQEAgLTQxNyw3ICs0MTEsNiBAQAogCQkvKiBVcGRhdGUgQUVOIHF1ZXVlLiAqLwogCQlxbGEyeDAwX2VucXVldWVfYWVuKGhhLCBNQkFfTElQX09DQ1VSUkVELCBOVUxMKTsKIAotCQloYS0+dG90YWxfbGlwX2NudCsrOwogCQlicmVhazsKIAogCWNhc2UgTUJBX0xPT1BfVVA6CQkvKiBMb29wIFVwIEV2ZW50ICovCkBAIC00ODUsNyArNDc4LDYgQEAKIAkJLyogVXBkYXRlIEFFTiBxdWV1ZS4gKi8KIAkJcWxhMngwMF9lbnF1ZXVlX2FlbihoYSwgTUJBX0xJUF9SRVNFVCwgTlVMTCk7CiAKLQkJaGEtPnRvdGFsX2xpcF9jbnQrKzsKIAkJYnJlYWs7CiAKIAljYXNlIE1CQV9QT0lOVF9UT19QT0lOVDoJLyogUG9pbnQtdG8tUG9pbnQgKi8KQEAgLTY5NSwxNCArNjg3LDExIEBACiAJCS8qIEZyZWUgb3V0c3RhbmRpbmcgY29tbWFuZCBzbG90LiAqLwogCQloYS0+b3V0c3RhbmRpbmdfY21kc1tpbmRleF0gPSBOVUxMOwogCi0JCWlmIChoYS0+YWN0dGhyZWFkcykKLQkJCWhhLT5hY3R0aHJlYWRzLS07CiAJCUNNRF9DT01QTF9TVEFUVVMoc3AtPmNtZCkgPSAwTDsKIAkJQ01EX1NDU0lfU1RBVFVTKHNwLT5jbWQpID0gMEw7CiAKIAkJLyogU2F2ZSBJU1AgY29tcGxldGlvbiBzdGF0dXMgKi8KIAkJc3AtPmNtZC0+cmVzdWx0ID0gRElEX09LIDw8IDE2OwotCQlzcC0+Zm9fcmV0cnlfY250ID0gMDsKIAkJcWxhMngwMF9zcF9jb21wbChoYSwgc3ApOwogCX0gZWxzZSB7CiAJCURFQlVHMihwcmludGsoInNjc2koJWxkKTogSW52YWxpZCBJU1AgU0NTSSBjb21wbGV0aW9uIGhhbmRsZVxuIiwKQEAgLTg2NSw5ICs4NTQsNiBAQAogCQlyZXR1cm47CiAJfQogCi0JaWYgKGhhLT5hY3R0aHJlYWRzKQotCQloYS0+YWN0dGhyZWFkcy0tOwotCiAJY29tcF9zdGF0dXMgPSBsZTE2X3RvX2NwdShwa3QtPmNvbXBfc3RhdHVzKTsKIAkvKiBNYXNrIG9mIHJlc2VydmVkIGJpdHMgMTItMTUsIGJlZm9yZSB3ZSBleGFtaW5lIHRoZSBzY3NpIHN0YXR1cyAqLwogCXNjc2lfc3RhdHVzID0gbGUxNl90b19jcHUocGt0LT5zY3NpX3N0YXR1cykgJiBTU19NQVNLOwpAQCAtMTAyNiw3ICsxMDEyLDYgQEAKIAkJCQkgICAgY3AtPnJlcXVlc3RfYnVmZmxlbikpOwogCiAJCQkJY3AtPnJlc3VsdCA9IERJRF9CVVNfQlVTWSA8PCAxNjsKLQkJCQloYS0+ZHJvcHBlZF9mcmFtZV9lcnJvcl9jbnQrKzsKIAkJCQlicmVhazsKIAkJCX0KIApAQCAtMTIzMyw4ICsxMjE4LDcgQEAKIAlpZiAoc3ApIHsKIAkJLyogRnJlZSBvdXRzdGFuZGluZyBjb21tYW5kIHNsb3QuICovCiAJCWhhLT5vdXRzdGFuZGluZ19jbWRzW3BrdC0+aGFuZGxlXSA9IE5VTEw7Ci0JCWlmIChoYS0+YWN0dGhyZWFkcykKLQkJCWhhLT5hY3R0aHJlYWRzLS07CisKIAkJLyogQmFkIHBheWxvYWQgb3IgaGVhZGVyICovCiAJCWlmIChwa3QtPmVudHJ5X3N0YXR1cyAmCiAJCSAgICAoUkZfSU5WX0VfT1JERVIgfCBSRl9JTlZfRV9DT1VOVCB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWJ4LmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWJ4LmMKaW5kZXggMTVmNmFjYS4uZWVhZWM3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21ieC5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9tYnguYwpAQCAtMjE5LDEwICsyMTksOCBAQAogCQloYS0+ZmxhZ3MubWJveF9pbnQgPSAwOwogCQljbGVhcl9iaXQoTUJYX0lOVEVSUlVQVCwgJmhhLT5tYnhfY21kX2ZsYWdzKTsKIAotCQlpZiAoaGEtPm1haWxib3hfb3V0WzBdICE9IE1CU19DT01NQU5EX0NPTVBMRVRFKSB7Ci0JCQlxbGEyeDAwX3N0YXRzLm1ib3hlcnIrKzsKKwkJaWYgKGhhLT5tYWlsYm94X291dFswXSAhPSBNQlNfQ09NTUFORF9DT01QTEVURSkKIAkJCXJ2YWwgPSBRTEFfRlVOQ1RJT05fRkFJTEVEOwotCQl9CiAKIAkJLyogTG9hZCByZXR1cm4gbWFpbGJveCByZWdpc3RlcnMuICovCiAJCWlwdHIyID0gbWNwLT5tYjsKQEAgLTI0OSw4ICsyNDcsNiBAQAogCQlxbGEyeDAwX2R1bXBfcmVncyhoYSk7CiAjZW5kaWYKIAotCQlxbGEyeDAwX3N0YXRzLm1ib3h0b3V0Kys7Ci0JCWhhLT50b3RhbF9tYnhfdGltZW91dCsrOwogCQlydmFsID0gUUxBX0ZVTkNUSU9OX1RJTUVPVVQ7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCmluZGV4IDNjOTdhYTQuLjBiMTI0OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCkBAIC0zNiwyNyArMzYsMTIgQEAKIC8qCiAgKiBTUkIgYWxsb2NhdGlvbiBjYWNoZQogICovCi1jaGFyIHNyYl9jYWNoZXBfbmFtZVsxNl07Ci1rbWVtX2NhY2hlX3QgKnNyYl9jYWNoZXA7Ci0KLS8qCi0gKiBTdGF0cyBmb3IgYWxsIGFkcGF0ZXJzLgotICovCi1zdHJ1Y3QgX3FsYTJ4MDBzdGF0cyBxbGEyeDAwX3N0YXRzOworc3RhdGljIGttZW1fY2FjaGVfdCAqc3JiX2NhY2hlcDsKIAogLyoKICAqIElvY3RsIHJlbGF0ZWQgaW5mb3JtYXRpb24uCiAgKi8KLWludCBudW1faG9zdHM7Ci1pbnQgYXBpSEJBSW5zdGFuY2U7Ci0KLS8qCi0gKiBNb2R1bGUgcGFyYW1ldGVyIGluZm9ybWF0aW9uIGFuZCB2YXJpYWJsZXMKLSAqLwotaW50IHFsMnhtYXhxZGVwdGg7Ci1tb2R1bGVfcGFyYW0ocWwyeG1heHFkZXB0aCwgaW50LCBTX0lSVUdPfFNfSVdVU1IpOwotTU9EVUxFX1BBUk1fREVTQyhxbDJ4bWF4cWRlcHRoLAotCQkiTWF4aW11bSBxdWV1ZSBkZXB0aCB0byByZXBvcnQgZm9yIHRhcmdldCBkZXZpY2VzLiIpOworc3RhdGljIGludCBudW1faG9zdHM7CiAKIGludCBxbDJ4bG9naW50aW1lb3V0ID0gMjA7CiBtb2R1bGVfcGFyYW0ocWwyeGxvZ2ludGltZW91dCwgaW50LCBTX0lSVUdPfFNfSVJVU1IpOwpAQCAtNjksMTIgKzU0LDYgQEAKIAkJIk1heGltdW0gbnVtYmVyIG9mIGNvbW1hbmQgcmV0cmllcyB0byBhIHBvcnQgdGhhdCByZXR1cm5zIgogCQkiYSBQT1JULURPV04gc3RhdHVzLiIpOwogCi1pbnQgcWwyeHJldHJ5Y291bnQgPSAyMDsKLW1vZHVsZV9wYXJhbShxbDJ4cmV0cnljb3VudCwgaW50LCBTX0lSVUdPfFNfSVdVU1IpOwotTU9EVUxFX1BBUk1fREVTQyhxbDJ4cmV0cnljb3VudCwKLQkJIk1heGltdW0gbnVtYmVyIG9mIG1pZC1sYXllciByZXRyaWVzIGFsbG93ZWQgZm9yIGEgY29tbWFuZC4gICIKLQkJIkRlZmF1bHQgdmFsdWUgaXMgMjAsICIpOwotCiBpbnQgcWwyeHBsb2dpYWJzZW50ZGV2aWNlOwogbW9kdWxlX3BhcmFtKHFsMnhwbG9naWFic2VudGRldmljZSwgaW50LCBTX0lSVUdPfFNfSVdVU1IpOwogTU9EVUxFX1BBUk1fREVTQyhxbDJ4cGxvZ2lhYnNlbnRkZXZpY2UsCkBAIC05NSwyNSArNzQsNiBAQAogCQkiWklPOiBXYWl0aW5nIHRpbWUgZm9yIEZpcm13YXJlIGJlZm9yZSBpdCBnZW5lcmF0ZXMgYW4gIgogCQkiaW50ZXJydXB0IHRvIHRoZSBob3N0IHRvIG5vdGlmeSBjb21wbGV0aW9uIG9mIHJlcXVlc3QuIik7CiAKLWludCBDb25maWdSZXF1aXJlZDsKLW1vZHVsZV9wYXJhbShDb25maWdSZXF1aXJlZCwgaW50LCBTX0lSVUdPfFNfSVJVU1IpOwotTU9EVUxFX1BBUk1fREVTQyhDb25maWdSZXF1aXJlZCwKLQkJIklmIDEsIHRoZW4gb25seSBjb25maWd1cmVkIGRldmljZXMgcGFzc2VkIGluIHRocm91Z2ggdGhlIgotCQkicWwyeG9wdHMgcGFyYW1ldGVyIHdpbGwgYmUgcHJlc2VudGVkIHRvIHRoZSBPUyIpOwotCi1pbnQgQmluZCA9IEJJTkRfQllfUE9SVF9OQU1FOwotbW9kdWxlX3BhcmFtKEJpbmQsIGludCwgU19JUlVHT3xTX0lSVVNSKTsKLU1PRFVMRV9QQVJNX0RFU0MoQmluZCwKLQkJIlRhcmdldCBwZXJzaXN0ZW50IGJpbmRpbmcgbWV0aG9kOiAiCi0JCSIwIGJ5IFBvcnRuYW1lIChkZWZhdWx0KTsgMSBieSBQb3J0SUQ7IDIgYnkgTm9kZW5hbWUuICIpOwotCi1pbnQgcWwyeHN1c3BlbmRjb3VudCA9IFNVU1BFTkRfQ09VTlQ7Ci1tb2R1bGVfcGFyYW0ocWwyeHN1c3BlbmRjb3VudCwgaW50LCBTX0lSVUdPfFNfSVdVU1IpOwotTU9EVUxFX1BBUk1fREVTQyhxbDJ4c3VzcGVuZGNvdW50LAotCQkiTnVtYmVyIG9mIDYtc2Vjb25kIHN1c3BlbmQgaXRlcmF0aW9ucyB0byBwZXJmb3JtIHdoaWxlIGEgIgotCQkidGFyZ2V0IHJldHVybnMgYSA8Tk9UIFJFQURZPiBzdGF0dXMuICBEZWZhdWx0IGlzIDEwICIKLQkJIml0ZXJhdGlvbnMuIik7Ci0KIGludCBxbDJ4bG9naW5yZXRyeWNvdW50ID0gMDsKIG1vZHVsZV9wYXJhbShxbDJ4bG9naW5yZXRyeWNvdW50LCBpbnQsIFNfSVJVR098U19JUlVTUik7CiBNT0RVTEVfUEFSTV9ERVNDKHFsMnhsb2dpbnJldHJ5Y291bnQsCkBAIC0zMzAsNyArMjkwLDYgQEAKIAlzcC0+ZmNwb3J0ID0gZmNwb3J0OwogCXNwLT5jbWQgPSBjbWQ7CiAJc3AtPmZsYWdzID0gMDsKLQlzcC0+ZXJyX2lkID0gMDsKIAogCUNNRF9TUChjbWQpID0gKHZvaWQgKilzcDsKIAljbWQtPnNjc2lfZG9uZSA9IGRvbmU7CkBAIC00NzQsNyArNDMzLDYgQEAKIAogCXdoaWxlICgoIWF0b21pY19yZWFkKCZoYS0+bG9vcF9kb3duX3RpbWVyKSAmJgogCSAgICBhdG9taWNfcmVhZCgmaGEtPmxvb3Bfc3RhdGUpID09IExPT1BfRE9XTikgfHwKLQkgICAgdGVzdF9iaXQoQ0ZHX0FDVElWRSwgJmhhLT5jZmdfZmxhZ3MpIHx8CiAJICAgIGF0b21pY19yZWFkKCZoYS0+bG9vcF9zdGF0ZSkgIT0gTE9PUF9SRUFEWSkgewogCQltc2xlZXAoMTAwMCk7CiAJCWlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsIGxvb3BfdGltZW91dCkpIHsKQEAgLTUxOSw3ICs0NzcsNiBAQAogCXNlcmlhbCA9IGNtZC0+c2VyaWFsX251bWJlcjsKIAogCS8qIENoZWNrIGFjdGl2ZSBsaXN0IGZvciBjb21tYW5kIGNvbW1hbmQuICovCi0Jc3Bpbl91bmxvY2tfaXJxKGhhLT5ob3N0LT5ob3N0X2xvY2spOwogCXNwaW5fbG9ja19pcnFzYXZlKCZoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCWZvciAoaSA9IDE7IGkgPCBNQVhfT1VUU1RBTkRJTkdfQ09NTUFORFM7IGkrKykgewogCQlzcCA9IGhhLT5vdXRzdGFuZGluZ19jbWRzW2ldOwpAQCAtNTU4LDcgKzUxNSw2IEBACiAJCQkgICAgIiV4LlxuIiwgaGEtPmhvc3Rfbm8sIGlkLCBsdW4sIHNlcmlhbCwgcmV0KTsKIAkJfQogCX0KLQlzcGluX2xvY2tfaXJxKGhhLT5ob3N0LT5ob3N0X2xvY2spOwogCiAJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLCAKIAkgICAgInNjc2koJWxkOiVkOiVkKTogQWJvcnQgY29tbWFuZCBpc3N1ZWQgLS0gJWx4ICV4LlxuIiwgaGEtPmhvc3Rfbm8sCkBAIC02NTgsMTIgKzYxNCw4IEBACiAJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLAogCSAgICAic2NzaSglbGQ6JWQ6JWQpOiBERVZJQ0UgUkVTRVQgSVNTVUVELlxuIiwgaGEtPmhvc3Rfbm8sIGlkLCBsdW4pOwogCi0Jc3Bpbl91bmxvY2tfaXJxKGhhLT5ob3N0LT5ob3N0X2xvY2spOwotCi0JaWYgKHFsYTJ4MDBfd2FpdF9mb3JfaGJhX29ubGluZShoYSkgIT0gUUxBX1NVQ0NFU1MpIHsKLQkJc3Bpbl9sb2NrX2lycShoYS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlpZiAocWxhMngwMF93YWl0X2Zvcl9oYmFfb25saW5lKGhhKSAhPSBRTEFfU1VDQ0VTUykKIAkJZ290byBlaF9kZXZfcmVzZXRfZG9uZTsKLQl9CiAKIAlpZiAocWxhMngwMF93YWl0X2Zvcl9sb29wX3JlYWR5KGhhKSA9PSBRTEFfU1VDQ0VTUykgewogCQlpZiAocWxhMngwMF9kZXZpY2VfcmVzZXQoaGEsIGZjcG9ydCkgPT0gMCkKQEAgLTcxNCw4ICs2NjYsNiBAQAogCSAgICAic2NzaSglbGQ6JWQ6JWQpOiBERVZJQ0UgUkVTRVQgU1VDQ0VFREVELlxuIiwgaGEtPmhvc3Rfbm8sIGlkLCBsdW4pOwogCiBlaF9kZXZfcmVzZXRfZG9uZToKLQlzcGluX2xvY2tfaXJxKGhhLT5ob3N0LT5ob3N0X2xvY2spOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtODA1LDggKzc1NSw2IEBACiAJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLAogCSAgICAic2NzaSglbGQ6JWQ6JWQpOiBMT09QIFJFU0VUIElTU1VFRC5cbiIsIGhhLT5ob3N0X25vLCBpZCwgbHVuKTsKIAotCXNwaW5fdW5sb2NrX2lycShoYS0+aG9zdC0+aG9zdF9sb2NrKTsKLQogCWlmIChxbGEyeDAwX3dhaXRfZm9yX2hiYV9vbmxpbmUoaGEpICE9IFFMQV9TVUNDRVNTKSB7CiAJCURFQlVHMihwcmludGsoIiVzIGZhaWxlZDpib2FyZCBkaXNhYmxlZFxuIixfX2Z1bmNfXykpOwogCQlnb3RvIGVoX2J1c19yZXNldF9kb25lOwpAQCAtODI4LDggKzc3Niw2IEBACiAJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLCAiJXM6IHJlc2V0ICVzXG4iLCBfX2Z1bmNfXywKIAkgICAgKHJldCA9PSBGQUlMRUQpID8gImZhaWxlZCIgOiAic3VjY2VkZWQiKTsKIAotCXNwaW5fbG9ja19pcnEoaGEtPmhvc3QtPmhvc3RfbG9jayk7Ci0KIAlyZXR1cm4gcmV0OwogfQogCkBAIC04NzEsOCArODE3LDYgQEAKIAlxbGFfcHJpbnRrKEtFUk5fSU5GTywgaGEsCiAJICAgICJzY3NpKCVsZDolZDolZCk6IEFEQVBURVIgUkVTRVQgSVNTVUVELlxuIiwgaGEtPmhvc3Rfbm8sIGlkLCBsdW4pOwogCi0Jc3Bpbl91bmxvY2tfaXJxKGhhLT5ob3N0LT5ob3N0X2xvY2spOwotCiAJaWYgKHFsYTJ4MDBfd2FpdF9mb3JfaGJhX29ubGluZShoYSkgIT0gUUxBX1NVQ0NFU1MpCiAJCWdvdG8gZWhfaG9zdF9yZXNldF9sb2NrOwogCkBAIC05MDEsOCArODQ1LDYgQEAKIAkJcmV0ID0gU1VDQ0VTUzsKIAogZWhfaG9zdF9yZXNldF9sb2NrOgotCXNwaW5fbG9ja19pcnEoaGEtPmhvc3QtPmhvc3RfbG9jayk7Ci0KIAlxbGFfcHJpbnRrKEtFUk5fSU5GTywgaGEsICIlczogcmVzZXQgJXNcbiIsIF9fZnVuY19fLAogCSAgICAocmV0ID09IEZBSUxFRCkgPyAiZmFpbGVkIiA6ICJzdWNjZWRlZCIpOwogCkBAIC0xMTUwLDcgKzEwOTIsNyBAQAogICovCiBpbnQgcWxhMngwMF9wcm9iZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBxbGFfYm9hcmRfaW5mbyAqYnJkX2luZm8pCiB7Ci0JaW50CXJldDsKKwlpbnQJcmV0ID0gLUVOT0RFVjsKIAlkZXZpY2VfcmVnX3QgX19pb21lbSAqcmVnOwogCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q7CiAJc2NzaV9xbGFfaG9zdF90ICpoYTsKQEAgLTExNjEsNyArMTEwMyw3IEBACiAJZmNfcG9ydF90ICpmY3BvcnQ7CiAKIAlpZiAocGNpX2VuYWJsZV9kZXZpY2UocGRldikpCi0JCXJldHVybiAtMTsKKwkJZ290byBwcm9iZV9vdXQ7CiAKIAlob3N0ID0gc2NzaV9ob3N0X2FsbG9jKCZxbGEyeDAwX2RyaXZlcl90ZW1wbGF0ZSwKIAkgICAgc2l6ZW9mKHNjc2lfcWxhX2hvc3RfdCkpOwpAQCAtMTE4Myw5ICsxMTI1LDggQEAKIAogCS8qIENvbmZpZ3VyZSBQQ0kgSS9PIHNwYWNlICovCiAJcmV0ID0gcWxhMngwMF9pb3NwYWNlX2NvbmZpZyhoYSk7Ci0JaWYgKHJldCAhPSAwKSB7Ci0JCWdvdG8gcHJvYmVfYWxsb2NfZmFpbGVkOwotCX0KKwlpZiAocmV0KQorCQlnb3RvIHByb2JlX2ZhaWxlZDsKIAogCS8qIFNhbml0aXplIHRoZSBpbmZvcm1hdGlvbiBmcm9tIFBDSSBCSU9TLiAqLwogCWhvc3QtPmlycSA9IHBkZXYtPmlycTsKQEAgLTExOTYsMzQgKzExMzcsMjQgQEAKIAogCXNwaW5fbG9ja19pbml0KCZoYS0+aGFyZHdhcmVfbG9jayk7CiAKLQkvKiA0LjIzIEluaXRpYWxpemUgL3Byb2Mvc2NzaS9xbGEyeDAwIGNvdW50ZXJzICovCi0JaGEtPmFjdHRocmVhZHMgPSAwOwotCWhhLT5xdGhyZWFkcyAgID0gMDsKLQloYS0+dG90YWxfaXNyX2NudCA9IDA7Ci0JaGEtPnRvdGFsX2lzcF9hYm9ydHMgPSAwOwotCWhhLT50b3RhbF9saXBfY250ID0gMDsKLQloYS0+dG90YWxfZGV2X2VycnMgPSAwOwotCWhhLT50b3RhbF9pb3MgPSAwOwotCWhhLT50b3RhbF9ieXRlcyA9IDA7Ci0KIAloYS0+cHJldl90b3BvbG9neSA9IDA7CiAJaGEtPnBvcnRzID0gTUFYX0JVU0VTOwogCiAJaWYgKElTX1FMQTIxMDAoaGEpKSB7Ci0JCWhhLT5tYXhfdGFyZ2V0cyA9IE1BWF9UQVJHRVRTXzIxMDA7CisJCWhvc3QtPm1heF9pZCA9IE1BWF9UQVJHRVRTXzIxMDA7CiAJCWhhLT5tYnhfY291bnQgPSBNQUlMQk9YX1JFR0lTVEVSX0NPVU5UXzIxMDA7CiAJCWhhLT5yZXF1ZXN0X3FfbGVuZ3RoID0gUkVRVUVTVF9FTlRSWV9DTlRfMjEwMDsKIAkJaGEtPnJlc3BvbnNlX3FfbGVuZ3RoID0gUkVTUE9OU0VfRU5UUllfQ05UXzIxMDA7CiAJCWhhLT5sYXN0X2xvb3BfaWQgPSBTTlNfTEFTVF9MT09QX0lEXzIxMDA7CiAJCWhvc3QtPnNnX3RhYmxlc2l6ZSA9IDMyOwogCX0gZWxzZSBpZiAoSVNfUUxBMjIwMChoYSkpIHsKLQkJaGEtPm1heF90YXJnZXRzID0gTUFYX1RBUkdFVFNfMjIwMDsKKwkJaG9zdC0+bWF4X2lkID0gTUFYX1RBUkdFVFNfMjIwMDsKIAkJaGEtPm1ieF9jb3VudCA9IE1BSUxCT1hfUkVHSVNURVJfQ09VTlQ7CiAJCWhhLT5yZXF1ZXN0X3FfbGVuZ3RoID0gUkVRVUVTVF9FTlRSWV9DTlRfMjIwMDsKIAkJaGEtPnJlc3BvbnNlX3FfbGVuZ3RoID0gUkVTUE9OU0VfRU5UUllfQ05UXzIxMDA7CiAJCWhhLT5sYXN0X2xvb3BfaWQgPSBTTlNfTEFTVF9MT09QX0lEXzIxMDA7CiAJfSBlbHNlIC8qaWYgKElTX1FMQTIzMDAoaGEpKSovIHsKLQkJaGEtPm1heF90YXJnZXRzID0gTUFYX1RBUkdFVFNfMjIwMDsKKwkJaG9zdC0+bWF4X2lkID0gTUFYX1RBUkdFVFNfMjIwMDsKIAkJaGEtPm1ieF9jb3VudCA9IE1BSUxCT1hfUkVHSVNURVJfQ09VTlQ7CiAJCWhhLT5yZXF1ZXN0X3FfbGVuZ3RoID0gUkVRVUVTVF9FTlRSWV9DTlRfMjIwMDsKIAkJaGEtPnJlc3BvbnNlX3FfbGVuZ3RoID0gUkVTUE9OU0VfRU5UUllfQ05UXzIzMDA7CkBAIC0xMjU4LDIzICsxMTg5LDEwIEBACiAJCXFsYV9wcmludGsoS0VSTl9XQVJOSU5HLCBoYSwKIAkJICAgICJbRVJST1JdIEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGFkYXB0ZXJcbiIpOwogCi0JCWdvdG8gcHJvYmVfYWxsb2NfZmFpbGVkOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIHByb2JlX2ZhaWxlZDsKIAl9CiAKLQlwY2lfc2V0X2RydmRhdGEocGRldiwgaGEpOwotCWhvc3QtPnRoaXNfaWQgPSAyNTU7Ci0JaG9zdC0+Y21kX3Blcl9sdW4gPSAzOwotCWhvc3QtPnVuaXF1ZV9pZCA9IGhhLT5pbnN0YW5jZTsKLQlob3N0LT5tYXhfY21kX2xlbiA9IE1BWF9DTURTWjsKLQlob3N0LT5tYXhfY2hhbm5lbCA9IGhhLT5wb3J0cyAtIDE7Ci0JaG9zdC0+bWF4X2lkID0gaGEtPm1heF90YXJnZXRzOwotCWhvc3QtPm1heF9sdW4gPSBoYS0+bWF4X2x1bnM7Ci0JaG9zdC0+dHJhbnNwb3J0dCA9IHFsYTJ4eHhfdHJhbnNwb3J0X3RlbXBsYXRlOwotCWlmIChzY3NpX2FkZF9ob3N0KGhvc3QsICZwZGV2LT5kZXYpKQotCQlnb3RvIHByb2JlX2FsbG9jX2ZhaWxlZDsKLQotCXFsYTJ4MDBfYWxsb2Nfc3lzZnNfYXR0cihoYSk7Ci0KIAlpZiAocWxhMngwMF9pbml0aWFsaXplX2FkYXB0ZXIoaGEpICYmCiAJICAgICEoaGEtPmRldmljZV9mbGFncyAmIERGTEdfTk9fQ0FCTEUpKSB7CiAKQEAgLTEyODUsMTEgKzEyMDMsMTAgQEAKIAkJICAgICJBZGFwdGVyIGZsYWdzICV4LlxuIiwKIAkJICAgIGhhLT5ob3N0X25vLCBoYS0+ZGV2aWNlX2ZsYWdzKSk7CiAKKwkJcmV0ID0gLUVOT0RFVjsKIAkJZ290byBwcm9iZV9mYWlsZWQ7CiAJfQogCi0JcWxhMngwMF9pbml0X2hvc3RfYXR0cihoYSk7Ci0KIAkvKgogCSAqIFN0YXJ0dXAgdGhlIGtlcm5lbCB0aHJlYWQgZm9yIHRoaXMgaG9zdCBhZGFwdGVyCiAJICovCkBAIC0xMjk5LDE3ICsxMjE2LDI2IEBACiAJCXFsYV9wcmludGsoS0VSTl9XQVJOSU5HLCBoYSwKIAkJICAgICJVbmFibGUgdG8gc3RhcnQgRFBDIHRocmVhZCFcbiIpOwogCisJCXJldCA9IC1FTk9ERVY7CiAJCWdvdG8gcHJvYmVfZmFpbGVkOwogCX0KIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZoYS0+ZHBjX2luaXRlZCk7CiAKKwlob3N0LT50aGlzX2lkID0gMjU1OworCWhvc3QtPmNtZF9wZXJfbHVuID0gMzsKKwlob3N0LT51bmlxdWVfaWQgPSBoYS0+aW5zdGFuY2U7CisJaG9zdC0+bWF4X2NtZF9sZW4gPSBNQVhfQ01EU1o7CisJaG9zdC0+bWF4X2NoYW5uZWwgPSBoYS0+cG9ydHMgLSAxOworCWhvc3QtPm1heF9sdW4gPSBNQVhfTFVOUzsKKwlob3N0LT50cmFuc3BvcnR0ID0gcWxhMnh4eF90cmFuc3BvcnRfdGVtcGxhdGU7CisKIAlpZiAoSVNfUUxBMjEwMChoYSkgfHwgSVNfUUxBMjIwMChoYSkpCiAJCXJldCA9IHJlcXVlc3RfaXJxKGhvc3QtPmlycSwgcWxhMjEwMF9pbnRyX2hhbmRsZXIsCiAJCSAgICBTQV9JTlRFUlJVUFR8U0FfU0hJUlEsIGhhLT5icmRfaW5mby0+ZHJ2X25hbWUsIGhhKTsKIAllbHNlCiAJCXJldCA9IHJlcXVlc3RfaXJxKGhvc3QtPmlycSwgcWxhMjMwMF9pbnRyX2hhbmRsZXIsCiAJCSAgICBTQV9JTlRFUlJVUFR8U0FfU0hJUlEsIGhhLT5icmRfaW5mby0+ZHJ2X25hbWUsIGhhKTsKLQlpZiAocmV0ICE9IDApIHsKKwlpZiAocmV0KSB7CiAJCXFsYV9wcmludGsoS0VSTl9XQVJOSU5HLCBoYSwKIAkJICAgICJGYWlsZWQgdG8gcmVzZXJ2ZSBpbnRlcnJ1cHQgJWQgYWxyZWFkeSBpbiB1c2UuXG4iLAogCQkgICAgaG9zdC0+aXJxKTsKQEAgLTEzNjMsOSArMTI4OSwxOCBAQAogCQltc2xlZXAoMTApOwogCX0KIAorCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBoYSk7CiAJaGEtPmZsYWdzLmluaXRfZG9uZSA9IDE7CiAJbnVtX2hvc3RzKys7CiAKKwlyZXQgPSBzY3NpX2FkZF9ob3N0KGhvc3QsICZwZGV2LT5kZXYpOworCWlmIChyZXQpCisJCWdvdG8gcHJvYmVfZmFpbGVkOworCisJcWxhMngwMF9hbGxvY19zeXNmc19hdHRyKGhhKTsKKworCXFsYTJ4MDBfaW5pdF9ob3N0X2F0dHIoaGEpOworCiAJcWxhX3ByaW50ayhLRVJOX0lORk8sIGhhLCAiXG4iCiAJICAgICIgUUxvZ2ljIEZpYnJlIENoYW5uZWwgSEJBIERyaXZlcjogJXNcbiIKIAkgICAgIiAgUUxvZ2ljICVzIC0gJXNcbiIKQEAgLTEzODQsOSArMTMxOSw2IEBACiBwcm9iZV9mYWlsZWQ6CiAJZmNfcmVtb3ZlX2hvc3QoaGEtPmhvc3QpOwogCi0Jc2NzaV9yZW1vdmVfaG9zdChob3N0KTsKLQotcHJvYmVfYWxsb2NfZmFpbGVkOgogCXFsYTJ4MDBfZnJlZV9kZXZpY2UoaGEpOwogCiAJc2NzaV9ob3N0X3B1dChob3N0KTsKQEAgLTEzOTQsNyArMTMyNiw4IEBACiBwcm9iZV9kaXNhYmxlX2RldmljZToKIAlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7CiAKLQlyZXR1cm4gLTE7Citwcm9iZV9vdXQ6CisJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHFsYTJ4MDBfcHJvYmVfb25lKTsKIApAQCAtMjMzOCw4ICsyMjcxLDcgQEAKIHFsYTJ4MDBfbW9kdWxlX2luaXQodm9pZCkKIHsKIAkvKiBBbGxvY2F0ZSBjYWNoZSBmb3IgU1JCcy4gKi8KLQlzcHJpbnRmKHNyYl9jYWNoZXBfbmFtZSwgInFsYTJ4eHhfc3JicyIpOwotCXNyYl9jYWNoZXAgPSBrbWVtX2NhY2hlX2NyZWF0ZShzcmJfY2FjaGVwX25hbWUsIHNpemVvZihzcmJfdCksIDAsCisJc3JiX2NhY2hlcCA9IGttZW1fY2FjaGVfY3JlYXRlKCJxbGEyeHh4X3NyYnMiLCBzaXplb2Yoc3JiX3QpLCAwLAogCSAgICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwsIE5VTEwpOwogCWlmIChzcmJfY2FjaGVwID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCkBAIC0yMzY3LDE2ICsyMjk5LDcgQEAKIHN0YXRpYyB2b2lkIF9fZXhpdAogcWxhMngwMF9tb2R1bGVfZXhpdCh2b2lkKQogewotCS8qIEZyZWUgU1JCcyBjYWNoZS4gKi8KLQlpZiAoc3JiX2NhY2hlcCAhPSBOVUxMKSB7Ci0JCWlmIChrbWVtX2NhY2hlX2Rlc3Ryb3koc3JiX2NhY2hlcCkgIT0gMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkgICAgInFsYTJ4eHg6IFVuYWJsZSB0byBmcmVlIFNSQiBjYWNoZS4uLk1lbW9yeSBwb29scyAiCi0JCQkgICAgInN0aWxsIGFjdGl2ZT9cbiIpOwotCQl9Ci0JCXNyYl9jYWNoZXAgPSBOVUxMOwotCX0KLQorCWttZW1fY2FjaGVfZGVzdHJveShzcmJfY2FjaGVwKTsKIAlmY19yZWxlYXNlX3RyYW5zcG9ydChxbGEyeHh4X3RyYW5zcG9ydF90ZW1wbGF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbG9naWNmYXMuYyBiL2RyaXZlcnMvc2NzaS9xbG9naWNmYXMuYwppbmRleCBhMWFkYjM4Li41NWU2OThiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxvZ2ljZmFzLmMKKysrIGIvZHJpdmVycy9zY3NpL3Fsb2dpY2Zhcy5jCkBAIC0xOTEsOCArMTkxLDYgQEAKIAkucXVldWVjb21tYW5kCQk9IHFsb2dpY2ZhczQwOF9xdWV1ZWNvbW1hbmQsCiAJLmVoX2Fib3J0X2hhbmRsZXIJPSBxbG9naWNmYXM0MDhfYWJvcnQsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gcWxvZ2ljZmFzNDA4X2J1c19yZXNldCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXI9IHFsb2dpY2ZhczQwOF9kZXZpY2VfcmVzZXQsCi0JLmVoX2hvc3RfcmVzZXRfaGFuZGxlcgk9IHFsb2dpY2ZhczQwOF9ob3N0X3Jlc2V0LAogCS5iaW9zX3BhcmFtCQk9IHFsb2dpY2ZhczQwOF9iaW9zcGFyYW0sCiAJLmNhbl9xdWV1ZQkJPSAxLAogCS50aGlzX2lkCQk9IC0xLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Fsb2dpY2ZhczQwOC5jIGIvZHJpdmVycy9zY3NpL3Fsb2dpY2ZhczQwOC5jCmluZGV4IDViNmNlMGEuLmNiNzVlMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbG9naWNmYXM0MDguYworKysgYi9kcml2ZXJzL3Njc2kvcWxvZ2ljZmFzNDA4LmMKQEAgLTUxMSwyOSArNTExLDE3IEBACiBpbnQgcWxvZ2ljZmFzNDA4X2J1c19yZXNldChTY3NpX0NtbmQgKiBjbWQpCiB7CiAJc3RydWN0IHFsb2dpY2ZhczQwOF9wcml2ICpwcml2ID0gZ2V0X3ByaXZfYnlfY21kKGNtZCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwogCXByaXYtPnFhYm9ydCA9IDI7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAJcWxfemFwKHByaXYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKLS8qIAotICoJUmVzZXQgU0NTSSBob3N0IGNvbnRyb2xsZXIKLSAqLwotCi1pbnQgcWxvZ2ljZmFzNDA4X2hvc3RfcmVzZXQoU2NzaV9DbW5kICogY21kKQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KLS8qIAotICoJUmVzZXQgU0NTSSBkZXZpY2UKLSAqLwotCi1pbnQgcWxvZ2ljZmFzNDA4X2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBjbWQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQogLyoKICAqCVJldHVybiBpbmZvIHN0cmluZwogICovCkBAIC02MjYsOCArNjE0LDYgQEAKIEVYUE9SVF9TWU1CT0wocWxvZ2ljZmFzNDA4X3F1ZXVlY29tbWFuZCk7CiBFWFBPUlRfU1lNQk9MKHFsb2dpY2ZhczQwOF9hYm9ydCk7CiBFWFBPUlRfU1lNQk9MKHFsb2dpY2ZhczQwOF9idXNfcmVzZXQpOwotRVhQT1JUX1NZTUJPTChxbG9naWNmYXM0MDhfZGV2aWNlX3Jlc2V0KTsKLUVYUE9SVF9TWU1CT0wocWxvZ2ljZmFzNDA4X2hvc3RfcmVzZXQpOwogRVhQT1JUX1NZTUJPTChxbG9naWNmYXM0MDhfYmlvc3BhcmFtKTsKIEVYUE9SVF9TWU1CT0wocWxvZ2ljZmFzNDA4X2loYW5kbCk7CiBFWFBPUlRfU1lNQk9MKHFsb2dpY2ZhczQwOF9nZXRfY2hpcF90eXBlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbG9naWNmYXM0MDguaCBiL2RyaXZlcnMvc2NzaS9xbG9naWNmYXM0MDguaAppbmRleCBmMDFjYmQ2Li40YjNkZjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxvZ2ljZmFzNDA4LmgKKysrIGIvZHJpdmVycy9zY3NpL3Fsb2dpY2ZhczQwOC5oCkBAIC0xMDksOCArMTA5LDYgQEAKIAkJCXNlY3Rvcl90IGNhcGFjaXR5LCBpbnQgaXBbXSk7CiBpbnQgcWxvZ2ljZmFzNDA4X2Fib3J0KFNjc2lfQ21uZCAqIGNtZCk7CiBpbnQgcWxvZ2ljZmFzNDA4X2J1c19yZXNldChTY3NpX0NtbmQgKiBjbWQpOwotaW50IHFsb2dpY2ZhczQwOF9ob3N0X3Jlc2V0KFNjc2lfQ21uZCAqIGNtZCk7Ci1pbnQgcWxvZ2ljZmFzNDA4X2RldmljZV9yZXNldChTY3NpX0NtbmQgKiBjbWQpOwogY29uc3QgY2hhciAqcWxvZ2ljZmFzNDA4X2luZm8oc3RydWN0IFNjc2lfSG9zdCAqaG9zdCk7CiBpbnQgcWxvZ2ljZmFzNDA4X2dldF9jaGlwX3R5cGUoaW50IHFiYXNlLCBpbnQgaW50X3R5cGUpOwogdm9pZCBxbG9naWNmYXM0MDhfc2V0dXAoaW50IHFiYXNlLCBpbnQgaWQsIGludCBpbnRfdHlwZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2F0YV9zaWwuYyBiL2RyaXZlcnMvc2NzaS9zYXRhX3NpbC5jCmluZGV4IDIzODU4MGQuLjQ5ZWQ1NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zYXRhX3NpbC5jCisrKyBiL2RyaXZlcnMvc2NzaS9zYXRhX3NpbC5jCkBAIC00MzIsNyArNDMyLDEzIEBACiAJCXdyaXRlYihjbHMsIG1taW9fYmFzZSArIFNJTF9GSUZPX1IwKTsKIAkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fVzApOwogCQl3cml0ZWIoY2xzLCBtbWlvX2Jhc2UgKyBTSUxfRklGT19SMSk7Ci0JCXdyaXRlYihjbHMsIG1taW9fYmFzZSArIFNJTF9GSUZPX1cyKTsKKwkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fVzEpOworCQlpZiAoZW50LT5kcml2ZXJfZGF0YSA9PSBzaWxfMzExNCkgeworCQkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fUjIpOworCQkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fVzIpOworCQkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fUjMpOworCQkJd3JpdGViKGNscywgbW1pb19iYXNlICsgU0lMX0ZJRk9fVzMpOworCQl9CiAJfSBlbHNlCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgRFJWX05BTUUgIiglcyk6IGNhY2hlIGxpbmUgc2l6ZSBub3Qgc2V0LiAgRHJpdmVyIG1heSBub3QgZnVuY3Rpb25cbiIsCiAJCQlwY2lfbmFtZShwZGV2KSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaS5jIGIvZHJpdmVycy9zY3NpL3Njc2kuYwppbmRleCAxODRiY2FlLi41NTc4YWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpLmMKQEAgLTYzOCwxMCArNjM4LDEyIEBACiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAJaWYgKHJ0bikgewotCQlhdG9taWNfaW5jKCZjbWQtPmRldmljZS0+aW9kb25lX2NudCk7Ci0JCXNjc2lfcXVldWVfaW5zZXJ0KGNtZCwKLQkJCQkocnRuID09IFNDU0lfTUxRVUVVRV9ERVZJQ0VfQlVTWSkgPwotCQkJCSBydG4gOiBTQ1NJX01MUVVFVUVfSE9TVF9CVVNZKTsKKwkJaWYgKHNjc2lfZGVsZXRlX3RpbWVyKGNtZCkpIHsKKwkJCWF0b21pY19pbmMoJmNtZC0+ZGV2aWNlLT5pb2RvbmVfY250KTsKKwkJCXNjc2lfcXVldWVfaW5zZXJ0KGNtZCwKKwkJCQkJICAocnRuID09IFNDU0lfTUxRVUVVRV9ERVZJQ0VfQlVTWSkgPworCQkJCQkgIHJ0biA6IFNDU0lfTUxRVUVVRV9IT1NUX0JVU1kpOworCQl9CiAJCVNDU0lfTE9HX01MUVVFVUUoMywKIAkJICAgIHByaW50aygicXVldWVjb21tYW5kIDogcmVxdWVzdCByZWplY3RlZFxuIikpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zY3NpX2Vycm9yLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9lcnJvci5jCmluZGV4IDJiZjFlZTIuLmNlYjRlMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2Vycm9yLmMKKysrIGIvZHJpdmVycy9zY3NpL3Njc2lfZXJyb3IuYwpAQCAtNDM0LDggKzQzNCw3IEBACiAJU0NTSV9MT0dfRVJST1JfUkVDT1ZFUlkoMywgcHJpbnRrKCIlczogc2NtZDolcFxuIiwgX19GVU5DVElPTl9fLAogCQkJCQkgIHNjbWQpKTsKIAotCWlmIChzY21kLT5kZXZpY2UtPmhvc3QtPmVoX2FjdGlvbikKLQkJdXAoc2NtZC0+ZGV2aWNlLT5ob3N0LT5laF9hY3Rpb24pOworCXVwKHNjbWQtPmRldmljZS0+aG9zdC0+ZWhfYWN0aW9uKTsKIH0KIAogLyoqCkBAIC00NTcsOCArNDU2LDcgQEAKIAkJU0NTSV9MT0dfRVJST1JfUkVDT1ZFUlkoMywgcHJpbnRrKCIlcyBzY21kOiAlcCByZXN1bHQ6ICV4XG4iLAogCQkJCQkgICBfX0ZVTkNUSU9OX18sIHNjbWQsIHNjbWQtPnJlc3VsdCkpOwogCi0JCWlmIChzY21kLT5kZXZpY2UtPmhvc3QtPmVoX2FjdGlvbikKLQkJCXVwKHNjbWQtPmRldmljZS0+aG9zdC0+ZWhfYWN0aW9uKTsKKwkJdXAoc2NtZC0+ZGV2aWNlLT5ob3N0LT5laF9hY3Rpb24pOwogCX0KIH0KIApAQCAtNTI4LDEwICs1MjYsOCBAQAogCQkgKiBhYm9ydCBhIHRpbWVkIG91dCBjb21tYW5kIG9yIG5vdC4gIG5vdCBzdXJlIGhvdwogCQkgKiB3ZSBzaG91bGQgdHJlYXQgdGhlbSBkaWZmZXJlbnRseSBhbnl3YXlzLgogCQkgKi8KLQkJc3Bpbl9sb2NrX2lycXNhdmUoc2hvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCQlpZiAoc2hvc3QtPmhvc3R0LT5laF9hYm9ydF9oYW5kbGVyKQogCQkJc2hvc3QtPmhvc3R0LT5laF9hYm9ydF9oYW5kbGVyKHNjbWQpOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAkJCQogCQlzY21kLT5yZXF1ZXN0LT5ycV9zdGF0dXMgPSBSUV9TQ1NJX0RPTkU7CiAJCXNjbWQtPm93bmVyID0gU0NTSV9PV05FUl9FUlJPUl9IQU5ETEVSOwpAQCAtNzM3LDExICs3MzMsOCBAQAogICoqLwogc3RhdGljIGludCBzY3NpX3RyeV90b19hYm9ydF9jbWQoc3RydWN0IHNjc2lfY21uZCAqc2NtZCkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBydG4gPSBGQUlMRUQ7Ci0KIAlpZiAoIXNjbWQtPmRldmljZS0+aG9zdC0+aG9zdHQtPmVoX2Fib3J0X2hhbmRsZXIpCi0JCXJldHVybiBydG47CisJCXJldHVybiBGQUlMRUQ7CiAKIAkvKgogCSAqIHNjc2lfZG9uZSB3YXMgY2FsbGVkIGp1c3QgYWZ0ZXIgdGhlIGNvbW1hbmQgdGltZWQgb3V0IGFuZCBiZWZvcmUKQEAgLTc1MiwxMSArNzQ1LDcgQEAKIAogCXNjbWQtPm93bmVyID0gU0NTSV9PV05FUl9MT1dMRVZFTDsKIAotCXNwaW5fbG9ja19pcnFzYXZlKHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JcnRuID0gc2NtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0dC0+ZWhfYWJvcnRfaGFuZGxlcihzY21kKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gcnRuOworCXJldHVybiBzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5laF9hYm9ydF9oYW5kbGVyKHNjbWQpOwogfQogCiAvKioKQEAgLTc3MCw2ICs3NTksNyBAQAogewogCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHR1cl9jb21tYW5kWzZdID0ge1RFU1RfVU5JVF9SRUFEWSwgMCwgMCwgMCwgMCwgMH07CiAJaW50IHJldHJ5X2NudCA9IDEsIHJ0bjsKKwlpbnQgc2F2ZWRfcmVzdWx0OwogCiByZXRyeV90dXI6CiAJbWVtY3B5KHNjbWQtPmNtbmQsIHR1cl9jb21tYW5kLCBzaXplb2YodHVyX2NvbW1hbmQpKTsKQEAgLTc4MCw2ICs3NzAsNyBAQAogCSAqLwogCW1lbXNldChzY21kLT5zZW5zZV9idWZmZXIsIDAsIHNpemVvZihzY21kLT5zZW5zZV9idWZmZXIpKTsKIAorCXNhdmVkX3Jlc3VsdCA9IHNjbWQtPnJlc3VsdDsKIAlzY21kLT5yZXF1ZXN0X2J1ZmZlciA9IE5VTEw7CiAJc2NtZC0+cmVxdWVzdF9idWZmbGVuID0gMDsKIAlzY21kLT51c2Vfc2cgPSAwOwpAQCAtNzk0LDYgKzc4NSw3IEBACiAJICogdGhlIG9yaWdpbmFsIHJlcXVlc3QsIHNvIGxldCdzIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGRhdGEuIChkYikKIAkgKi8KIAlzY3NpX3NldHVwX2NtZF9yZXRyeShzY21kKTsKKwlzY21kLT5yZXN1bHQgPSBzYXZlZF9yZXN1bHQ7CiAKIAkvKgogCSAqIGhleSwgd2UgYXJlIGRvbmUuICBsZXQncyBsb29rIHRvIHNlZSB3aGF0IGhhcHBlbmVkLgpAQCAtODY1LDE3ICs4NTcsMTQgQEAKICAqKi8KIHN0YXRpYyBpbnQgc2NzaV90cnlfYnVzX2RldmljZV9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJ0biA9IEZBSUxFRDsKKwlpbnQgcnRuOwogCiAJaWYgKCFzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5laF9kZXZpY2VfcmVzZXRfaGFuZGxlcikKLQkJcmV0dXJuIHJ0bjsKKwkJcmV0dXJuIEZBSUxFRDsKIAogCXNjbWQtPm93bmVyID0gU0NTSV9PV05FUl9MT1dMRVZFTDsKIAotCXNwaW5fbG9ja19pcnFzYXZlKHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAJcnRuID0gc2NtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0dC0+ZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIoc2NtZCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCiAJaWYgKHJ0biA9PSBTVUNDRVNTKSB7CiAJCXNjbWQtPmRldmljZS0+d2FzX3Jlc2V0ID0gMTsKQEAgLTg5Niw2ICs4ODUsNyBAQAogewogCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHN0dV9jb21tYW5kWzZdID0ge1NUQVJUX1NUT1AsIDAsIDAsIDAsIDEsIDB9OwogCWludCBydG47CisJaW50IHNhdmVkX3Jlc3VsdDsKIAogCWlmICghc2NtZC0+ZGV2aWNlLT5hbGxvd19yZXN0YXJ0KQogCQlyZXR1cm4gMTsKQEAgLTkwOCw2ICs4OTgsNyBAQAogCSAqLwogCW1lbXNldChzY21kLT5zZW5zZV9idWZmZXIsIDAsIHNpemVvZihzY21kLT5zZW5zZV9idWZmZXIpKTsKIAorCXNhdmVkX3Jlc3VsdCA9IHNjbWQtPnJlc3VsdDsKIAlzY21kLT5yZXF1ZXN0X2J1ZmZlciA9IE5VTEw7CiAJc2NtZC0+cmVxdWVzdF9idWZmbGVuID0gMDsKIAlzY21kLT51c2Vfc2cgPSAwOwpAQCAtOTIyLDYgKzkxMyw3IEBACiAJICogdGhlIG9yaWdpbmFsIHJlcXVlc3QsIHNvIGxldCdzIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGRhdGEuIChkYikKIAkgKi8KIAlzY3NpX3NldHVwX2NtZF9yZXRyeShzY21kKTsKKwlzY21kLT5yZXN1bHQgPSBzYXZlZF9yZXN1bHQ7CiAKIAkvKgogCSAqIGhleSwgd2UgYXJlIGRvbmUuICBsZXQncyBsb29rIHRvIHNlZSB3aGF0IGhhcHBlbmVkLgpAQCAtMTA2MSw5ICsxMDUzLDcgQEAKIAlpZiAoIXNjbWQtPmRldmljZS0+aG9zdC0+aG9zdHQtPmVoX2J1c19yZXNldF9oYW5kbGVyKQogCQlyZXR1cm4gRkFJTEVEOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoc2NtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAlydG4gPSBzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5laF9idXNfcmVzZXRfaGFuZGxlcihzY21kKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAKIAlpZiAocnRuID09IFNVQ0NFU1MpIHsKIAkJaWYgKCFzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5za2lwX3NldHRsZV9kZWxheSkKQEAgLTEwOTIsOSArMTA4Miw3IEBACiAJaWYgKCFzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5laF9ob3N0X3Jlc2V0X2hhbmRsZXIpCiAJCXJldHVybiBGQUlMRUQ7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZShzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCXJ0biA9IHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdHQtPmVoX2hvc3RfcmVzZXRfaGFuZGxlcihzY21kKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAKIAlpZiAocnRuID09IFNVQ0NFU1MpIHsKIAkJaWYgKCFzY21kLT5kZXZpY2UtPmhvc3QtPmhvc3R0LT5za2lwX3NldHRsZV9kZWxheSkKQEAgLTE1NjEsNiArMTU0OSwxMSBAQAogCQkJCQkJCSAgc2NtZCkpOwogCQkJCXNjc2lfcXVldWVfaW5zZXJ0KHNjbWQsIFNDU0lfTUxRVUVVRV9FSF9SRVRSWSk7CiAJCX0gZWxzZSB7CisJCQkvKgorCQkJICogSWYganVzdCB3ZSBnb3Qgc2Vuc2UgZm9yIHRoZSBkZXZpY2UgKGNhbGxlZAorCQkJICogc2NzaV9laF9nZXRfc2Vuc2UpLCBzY21kLT5yZXN1bHQgaXMgYWxyZWFkeQorCQkJICogc2V0LCBkbyBub3Qgc2V0IERSSVZFUl9USU1FT1VULgorCQkJICovCiAJCQlpZiAoIXNjbWQtPnJlc3VsdCkKIAkJCQlzY21kLT5yZXN1bHQgfD0gKERSSVZFUl9USU1FT1VUIDw8IDI0KTsKIAkJCVNDU0lfTE9HX0VSUk9SX1JFQ09WRVJZKDMsIHByaW50aygiJXM6IGZsdXNoIGZpbmlzaCIKQEAgLTE4NzAsNyArMTg2Myw2IEBACiAJCXJ0biA9IEZBSUxFRDsKIAl9CiAKLQlzY3NpX2RlbGV0ZV90aW1lcihzY21kKTsKIAlzY3NpX25leHRfY29tbWFuZChzY21kKTsKIAlyZXR1cm4gcnRuOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwppbmRleCBkMThkYTIxLi45Zjk5NjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwpAQCAtOTIsMTAgKzkyLDEyIEBACiAJICovCiAJc3JlcS0+c3JfcmVxdWVzdC0+ZmxhZ3MgJj0gflJFUV9ET05UUFJFUDsKIAlibGtfaW5zZXJ0X3JlcXVlc3Qoc3JlcS0+c3JfZGV2aWNlLT5yZXF1ZXN0X3F1ZXVlLCBzcmVxLT5zcl9yZXF1ZXN0LAotCQkgICAgICAgCSAgIGF0X2hlYWQsIHNyZXEsIDApOworCQkgICAgICAgCSAgIGF0X2hlYWQsIHNyZXEpOwogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBzY3NpX3J1bl9xdWV1ZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSk7CisKIC8qCiAgKiBGdW5jdGlvbjogICAgc2NzaV9xdWV1ZV9pbnNlcnQoKQogICoKQEAgLTExOSwxOCArMTIxLDE0IEBACiB7CiAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IGNtZC0+ZGV2aWNlLT5ob3N0OwogCXN0cnVjdCBzY3NpX2RldmljZSAqZGV2aWNlID0gY21kLT5kZXZpY2U7CisJc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBkZXZpY2UtPnJlcXVlc3RfcXVldWU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCVNDU0lfTE9HX01MUVVFVUUoMSwKIAkJIHByaW50aygiSW5zZXJ0aW5nIGNvbW1hbmQgJXAgaW50byBtbHF1ZXVlXG4iLCBjbWQpKTsKIAogCS8qCi0JICogV2UgYXJlIGluc2VydGluZyB0aGUgY29tbWFuZCBpbnRvIHRoZSBtbCBxdWV1ZS4gIEZpcnN0LCB3ZQotCSAqIGNhbmNlbCB0aGUgdGltZXIsIHNvIGl0IGRvZXNuJ3QgdGltZSBvdXQuCi0JICovCi0Jc2NzaV9kZWxldGVfdGltZXIoY21kKTsKLQotCS8qCi0JICogTmV4dCwgc2V0IHRoZSBhcHByb3ByaWF0ZSBidXN5IGJpdCBmb3IgdGhlIGRldmljZS9ob3N0LgorCSAqIFNldCB0aGUgYXBwcm9wcmlhdGUgYnVzeSBiaXQgZm9yIHRoZSBkZXZpY2UvaG9zdC4KIAkgKgogCSAqIElmIHRoZSBob3N0L2RldmljZSBpc24ndCBidXN5LCBhc3N1bWUgdGhhdCBzb21ldGhpbmcgYWN0dWFsbHkKIAkgKiBjb21wbGV0ZWQsIGFuZCB0aGF0IHdlIHNob3VsZCBiZSBhYmxlIHRvIHF1ZXVlIGEgY29tbWFuZCBub3cuCkBAIC0xNjAsMTcgKzE1OCwyMiBAQAogCXNjc2lfZGV2aWNlX3VuYnVzeShkZXZpY2UpOwogCiAJLyoKLQkgKiBJbnNlcnQgdGhpcyBjb21tYW5kIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSBmb3IgaXQncyBkZXZpY2UuCi0JICogSXQgd2lsbCBnbyBiZWZvcmUgYWxsIG90aGVyIGNvbW1hbmRzIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIHF1ZXVlLgorCSAqIFJlcXVldWUgdGhpcyBjb21tYW5kLiAgSXQgd2lsbCBnbyBiZWZvcmUgYWxsIG90aGVyIGNvbW1hbmRzCisJICogdGhhdCBhcmUgYWxyZWFkeSBpbiB0aGUgcXVldWUuCiAJICoKIAkgKiBOT1RFOiB0aGVyZSBpcyBtYWdpYyBoZXJlIGFib3V0IHRoZSB3YXkgdGhlIHF1ZXVlIGlzIHBsdWdnZWQgaWYKIAkgKiB3ZSBoYXZlIG5vIG91dHN0YW5kaW5nIGNvbW1hbmRzLgogCSAqIAotCSAqIEFsdGhvdWdoIHRoaXMgKmRvZXNuJ3QqIHBsdWcgdGhlIHF1ZXVlLCBpdCBkb2VzIGNhbGwgdGhlIHJlcXVlc3QKKwkgKiBBbHRob3VnaCB3ZSAqZG9uJ3QqIHBsdWcgdGhlIHF1ZXVlLCB3ZSBjYWxsIHRoZSByZXF1ZXN0CiAJICogZnVuY3Rpb24uICBUaGUgU0NTSSByZXF1ZXN0IGZ1bmN0aW9uIGRldGVjdHMgdGhlIGJsb2NrZWQgY29uZGl0aW9uCiAJICogYW5kIHBsdWdzIHRoZSBxdWV1ZSBhcHByb3ByaWF0ZWx5LgotCSAqLwotCWJsa19pbnNlcnRfcmVxdWVzdChkZXZpY2UtPnJlcXVlc3RfcXVldWUsIGNtZC0+cmVxdWVzdCwgMSwgY21kLCAxKTsKKyAgICAgICAgICovCisJc3Bpbl9sb2NrX2lycXNhdmUocS0+cXVldWVfbG9jaywgZmxhZ3MpOworCWJsa19yZXF1ZXVlX3JlcXVlc3QocSwgY21kLT5yZXF1ZXN0KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKHEtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKKworCXNjc2lfcnVuX3F1ZXVlKHEpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ4NSw4ICs0ODgsMTMgQEAKICAqLwogc3RhdGljIHZvaWQgc2NzaV9yZXF1ZXVlX2NvbW1hbmQoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIHsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCiAJY21kLT5yZXF1ZXN0LT5mbGFncyAmPSB+UkVRX0RPTlRQUkVQOwotCWJsa19pbnNlcnRfcmVxdWVzdChxLCBjbWQtPnJlcXVlc3QsIDEsIGNtZCwgMSk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShxLT5xdWV1ZV9sb2NrLCBmbGFncyk7CisJYmxrX3JlcXVldWVfcmVxdWVzdChxLCBjbWQtPnJlcXVlc3QpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocS0+cXVldWVfbG9jaywgZmxhZ3MpOwogCiAJc2NzaV9ydW5fcXVldWUocSk7CiB9CkBAIC05NDEsMTAgKzk0OSw4IEBACiAJICogaWYgc2cgdGFibGUgYWxsb2NhdGlvbiBmYWlscywgcmVxdWV1ZSByZXF1ZXN0IGxhdGVyLgogCSAqLwogCXNncG50ID0gc2NzaV9hbGxvY19zZ3RhYmxlKGNtZCwgR0ZQX0FUT01JQyk7Ci0JaWYgKHVubGlrZWx5KCFzZ3BudCkpIHsKLQkJcmVxLT5mbGFncyB8PSBSRVFfU1BFQ0lBTDsKKwlpZiAodW5saWtlbHkoIXNncG50KSkKIAkJcmV0dXJuIEJMS1BSRVBfREVGRVI7Ci0JfQogCiAJY21kLT5yZXF1ZXN0X2J1ZmZlciA9IChjaGFyICopIHNncG50OwogCWNtZC0+cmVxdWVzdF9idWZmbGVuID0gcmVxLT5ucl9zZWN0b3JzIDw8IDk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV9zY2FuLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9zY2FuLmMKaW5kZXggOGQwZDMwMi4uOWZhMjA5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Njc2lfc2Nhbi5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX3NjYW4uYwpAQCAtMjkzLDYgKzI5MywxMCBAQAogewogCXN0cnVjdCBkZXZpY2UgKnBhcmVudCA9IGRldi0+cGFyZW50OwogCXN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCA9IHRvX3Njc2lfdGFyZ2V0KGRldik7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBkZXZfdG9fc2hvc3QocGFyZW50KTsKKworCWlmIChzaG9zdC0+aG9zdHQtPnRhcmdldF9kZXN0cm95KQorCQlzaG9zdC0+aG9zdHQtPnRhcmdldF9kZXN0cm95KHN0YXJnZXQpOwogCWtmcmVlKHN0YXJnZXQpOwogCXB1dF9kZXZpY2UocGFyZW50KTsKIH0KQEAgLTM2MCw5ICszNjQsMjMgQEAKIAlsaXN0X2FkZF90YWlsKCZzdGFyZ2V0LT5zaWJsaW5ncywgJnNob3N0LT5fX3RhcmdldHMpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2hvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOwogCS8qIGFsbG9jYXRlIGFuZCBhZGQgKi8KLQl0cmFuc3BvcnRfc2V0dXBfZGV2aWNlKCZzdGFyZ2V0LT5kZXYpOwotCWRldmljZV9hZGQoJnN0YXJnZXQtPmRldik7Ci0JdHJhbnNwb3J0X2FkZF9kZXZpY2UoJnN0YXJnZXQtPmRldik7CisJdHJhbnNwb3J0X3NldHVwX2RldmljZShkZXYpOworCWRldmljZV9hZGQoZGV2KTsKKwl0cmFuc3BvcnRfYWRkX2RldmljZShkZXYpOworCWlmIChzaG9zdC0+aG9zdHQtPnRhcmdldF9hbGxvYykgeworCQlpbnQgZXJyb3IgPSBzaG9zdC0+aG9zdHQtPnRhcmdldF9hbGxvYyhzdGFyZ2V0KTsKKworCQlpZihlcnJvcikgeworCQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgZGV2LCAidGFyZ2V0IGFsbG9jYXRpb24gZmFpbGVkLCBlcnJvciAlZFxuIiwgZXJyb3IpOworCQkJLyogZG9uJ3Qgd2FudCBzY3NpX3RhcmdldF9yZWFwIHRvIGRvIHRoZSBmaW5hbAorCQkJICogcHV0IGJlY2F1c2UgaXQgd2lsbCBiZSB1bmRlciB0aGUgaG9zdCBsb2NrICovCisJCQlnZXRfZGV2aWNlKGRldik7CisJCQlzY3NpX3RhcmdldF9yZWFwKHN0YXJnZXQpOworCQkJcHV0X2RldmljZShkZXYpOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwl9CisKIAlyZXR1cm4gc3RhcmdldDsKIAogIGZvdW5kOgpAQCAtNjI1LDYgKzY0Myw3IEBACiAJY2FzZSBUWVBFX01FRElVTV9DSEFOR0VSOgogCWNhc2UgVFlQRV9FTkNMT1NVUkU6CiAJY2FzZSBUWVBFX0NPTU06CisJY2FzZSBUWVBFX1JCQzoKIAkJc2Rldi0+d3JpdGVhYmxlID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBUWVBFX1dPUk06CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV90cmFuc3BvcnRfc3BpLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV90cmFuc3BvcnRfc3BpLmMKaW5kZXggNjdjNmNjNC4uYzg3YWU0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Njc2lfdHJhbnNwb3J0X3NwaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX3RyYW5zcG9ydF9zcGkuYwpAQCAtNjY5LDYgKzY2OSw3IEBACiB7CiAJc3RydWN0IHNwaV9pbnRlcm5hbCAqaSA9IHRvX3NwaV9pbnRlcm5hbChzcmVxLT5zcl9ob3N0LT50cmFuc3BvcnR0KTsKIAlzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYgPSBzcmVxLT5zcl9kZXZpY2U7CisJc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0ID0gc2Rldi0+c2Rldl90YXJnZXQ7CiAJaW50IHBlcmlvZCA9IDAsIHByZXZwZXJpb2QgPSAwOyAKIAllbnVtIHNwaV9jb21wYXJlX3JldHVybnMgcmV0dmFsOwogCkBAIC02ODIsMjQgKzY4Myw0MCBAQAogCQkJYnJlYWs7CiAKIAkJLyogT0ssIHJldHJhaW4sIGZhbGxiYWNrICovCisJCWlmIChpLT5mLT5nZXRfaXUpCisJCQlpLT5mLT5nZXRfaXUoc3RhcmdldCk7CisJCWlmIChpLT5mLT5nZXRfcWFzKQorCQkJaS0+Zi0+Z2V0X3FhcyhzdGFyZ2V0KTsKIAkJaWYgKGktPmYtPmdldF9wZXJpb2QpCiAJCQlpLT5mLT5nZXRfcGVyaW9kKHNkZXYtPnNkZXZfdGFyZ2V0KTsKLQkJbmV3cGVyaW9kID0gc3BpX3BlcmlvZChzZGV2LT5zZGV2X3RhcmdldCk7Ci0JCXBlcmlvZCA9IG5ld3BlcmlvZCA+IHBlcmlvZCA/IG5ld3BlcmlvZCA6IHBlcmlvZDsKLQkJaWYgKHBlcmlvZCA8IDB4MGQpCi0JCQlwZXJpb2QrKzsKLQkJZWxzZQotCQkJcGVyaW9kICs9IHBlcmlvZCA+PiAxOwogCi0JCWlmICh1bmxpa2VseShwZXJpb2QgPiAweGZmIHx8IHBlcmlvZCA9PSBwcmV2cGVyaW9kKSkgewotCQkJLyogVG90YWwgZmFpbHVyZTsgc2V0IHRvIGFzeW5jIGFuZCByZXR1cm4gKi8KLQkJCVNQSV9QUklOVEsoc2Rldi0+c2Rldl90YXJnZXQsIEtFUk5fRVJSLCAiRG9tYWluIFZhbGlkYXRpb24gRmFpbHVyZSwgZHJvcHBpbmcgYmFjayB0byBBc3luY2hyb25vdXNcbiIpOwotCQkJRFZfU0VUKG9mZnNldCwgMCk7Ci0JCQlyZXR1cm4gU1BJX0NPTVBBUkVfRkFJTFVSRTsKKwkJLyogSGVyZSdzIHRoZSBmYWxsYmFjayBzZXF1ZW5jZTsgZmlyc3QgdHJ5IHR1cm5pbmcgb2ZmCisJCSAqIElVLCB0aGVuIFFBUyAoaWYgd2UgY2FuIGNvbnRyb2wgdGhlbSksIHRoZW4gZmluYWxseQorCQkgKiBmYWxsIGRvd24gdGhlIHBlcmlvZHMgKi8KKwkJaWYgKGktPmYtPnNldF9pdSAmJiBzcGlfaXUoc3RhcmdldCkpIHsKKwkJCVNQSV9QUklOVEsoc3RhcmdldCwgS0VSTl9FUlIsICJEb21haW4gVmFsaWRhdGlvbiBEaXNhYmluZyBJbmZvcm1hdGlvbiBVbml0c1xuIik7CisJCQlEVl9TRVQoaXUsIDApOworCQl9IGVsc2UgaWYgKGktPmYtPnNldF9xYXMgJiYgc3BpX3FhcyhzdGFyZ2V0KSkgeworCQkJU1BJX1BSSU5USyhzdGFyZ2V0LCBLRVJOX0VSUiwgIkRvbWFpbiBWYWxpZGF0aW9uIERpc2FiaW5nIFF1aWNrIEFyYml0cmF0aW9uIGFuZCBTZWxlY3Rpb25cbiIpOworCQkJRFZfU0VUKHFhcywgMCk7CisJCX0gZWxzZSB7CisJCQluZXdwZXJpb2QgPSBzcGlfcGVyaW9kKHN0YXJnZXQpOworCQkJcGVyaW9kID0gbmV3cGVyaW9kID4gcGVyaW9kID8gbmV3cGVyaW9kIDogcGVyaW9kOworCQkJaWYgKHBlcmlvZCA8IDB4MGQpCisJCQkJcGVyaW9kKys7CisJCQllbHNlCisJCQkJcGVyaW9kICs9IHBlcmlvZCA+PiAxOworCisJCQlpZiAodW5saWtlbHkocGVyaW9kID4gMHhmZiB8fCBwZXJpb2QgPT0gcHJldnBlcmlvZCkpIHsKKwkJCQkvKiBUb3RhbCBmYWlsdXJlOyBzZXQgdG8gYXN5bmMgYW5kIHJldHVybiAqLworCQkJCVNQSV9QUklOVEsoc3RhcmdldCwgS0VSTl9FUlIsICJEb21haW4gVmFsaWRhdGlvbiBGYWlsdXJlLCBkcm9wcGluZyBiYWNrIHRvIEFzeW5jaHJvbm91c1xuIik7CisJCQkJRFZfU0VUKG9mZnNldCwgMCk7CisJCQkJcmV0dXJuIFNQSV9DT01QQVJFX0ZBSUxVUkU7CisJCQl9CisJCQlTUElfUFJJTlRLKHN0YXJnZXQsIEtFUk5fRVJSLCAiRG9tYWluIFZhbGlkYXRpb24gZGV0ZWN0ZWQgZmFpbHVyZSwgZHJvcHBpbmcgYmFja1xuIik7CisJCQlEVl9TRVQocGVyaW9kLCBwZXJpb2QpOworCQkJcHJldnBlcmlvZCA9IHBlcmlvZDsKIAkJfQotCQlTUElfUFJJTlRLKHNkZXYtPnNkZXZfdGFyZ2V0LCBLRVJOX0VSUiwgIkRvbWFpbiBWYWxpZGF0aW9uIGRldGVjdGVkIGZhaWx1cmUsIGRyb3BwaW5nIGJhY2tcbiIpOwotCQlEVl9TRVQocGVyaW9kLCBwZXJpb2QpOwotCQlwcmV2cGVyaW9kID0gcGVyaW9kOwogCX0KIAlyZXR1cm4gcmV0dmFsOwogfQpAQCAtNzY4LDIzICs3ODUsMjEgQEAKIAkKIAlpZiAoc3BpX2R2X2RldmljZV9jb21wYXJlX2lucXVpcnkoc3JlcSwgYnVmZmVyLCBidWZmZXIsIERWX0xPT1BTKQogCSAgICAhPSBTUElfQ09NUEFSRV9TVUNDRVNTKSB7Ci0JCVNQSV9QUklOVEsoc2Rldi0+c2Rldl90YXJnZXQsIEtFUk5fRVJSLCAiRG9tYWluIFZhbGlkYXRpb24gSW5pdGlhbCBJbnF1aXJ5IEZhaWxlZFxuIik7CisJCVNQSV9QUklOVEsoc3RhcmdldCwgS0VSTl9FUlIsICJEb21haW4gVmFsaWRhdGlvbiBJbml0aWFsIElucXVpcnkgRmFpbGVkXG4iKTsKIAkJLyogRklYTUU6IHNob3VsZCBwcm9iYWJseSBvZmZsaW5lIHRoZSBkZXZpY2UgaGVyZT8gKi8KIAkJcmV0dXJuOwogCX0KIAogCS8qIHRlc3Qgd2lkdGggKi8KIAlpZiAoaS0+Zi0+c2V0X3dpZHRoICYmIHNwaV9tYXhfd2lkdGgoc3RhcmdldCkgJiYgc2Rldi0+d2R0cikgewotCQlpLT5mLT5zZXRfd2lkdGgoc2Rldi0+c2Rldl90YXJnZXQsIDEpOwotCi0JCXByaW50aygiV0lEVEggSVMgJWRcbiIsIHNwaV9tYXhfd2lkdGgoc3RhcmdldCkpOworCQlpLT5mLT5zZXRfd2lkdGgoc3RhcmdldCwgMSk7CiAKIAkJaWYgKHNwaV9kdl9kZXZpY2VfY29tcGFyZV9pbnF1aXJ5KHNyZXEsIGJ1ZmZlciwKIAkJCQkJCSAgIGJ1ZmZlciArIGxlbiwKIAkJCQkJCSAgIERWX0xPT1BTKQogCQkgICAgIT0gU1BJX0NPTVBBUkVfU1VDQ0VTUykgewotCQkJU1BJX1BSSU5USyhzZGV2LT5zZGV2X3RhcmdldCwgS0VSTl9FUlIsICJXaWRlIFRyYW5zZmVycyBGYWlsXG4iKTsKLQkJCWktPmYtPnNldF93aWR0aChzZGV2LT5zZGV2X3RhcmdldCwgMCk7CisJCQlTUElfUFJJTlRLKHN0YXJnZXQsIEtFUk5fRVJSLCAiV2lkZSBUcmFuc2ZlcnMgRmFpbFxuIik7CisJCQlpLT5mLT5zZXRfd2lkdGgoc3RhcmdldCwgMCk7CiAJCX0KIAl9CiAKQEAgLTc5Miw3ICs4MDcsNyBAQAogCQlyZXR1cm47CiAKIAkvKiBkZXZpY2UgY2FuJ3QgaGFuZGxlIHN5bmNocm9ub3VzICovCi0JaWYoIXNkZXYtPnBwciAmJiAhc2Rldi0+c2R0cikKKwlpZiAoIXNkZXYtPnBwciAmJiAhc2Rldi0+c2R0cikKIAkJcmV0dXJuOwogCiAJLyogc2VlIGlmIHRoZSBkZXZpY2UgaGFzIGFuIGVjaG8gYnVmZmVyLiAgSWYgaXQgZG9lcyB3ZSBjYW4KQEAgLTgwNywxNiArODIyLDMwIEBACiAJLyogbm93IHNldCB1cCB0byB0aGUgbWF4aW11bSAqLwogCURWX1NFVChvZmZzZXQsIHNwaV9tYXhfb2Zmc2V0KHN0YXJnZXQpKTsKIAlEVl9TRVQocGVyaW9kLCBzcGlfbWluX3BlcmlvZChzdGFyZ2V0KSk7CisJLyogdHJ5IFFBUyByZXF1ZXN0czsgdGhpcyBzaG91bGQgYmUgaGFybWxlc3MgdG8gc2V0IGlmIHRoZQorCSAqIHRhcmdldCBzdXBwb3J0cyBpdCAqLworCURWX1NFVChxYXMsIDEpOworCS8qIEFsc28gdHJ5IElVIHRyYW5zZmVycyAqLworCURWX1NFVChpdSwgMSk7CisJaWYgKHNwaV9taW5fcGVyaW9kKHN0YXJnZXQpIDwgOSkgeworCQkvKiBUaGlzIHUzMjAgKG9yIHU2NDApLiBJZ25vcmUgdGhlIGNvdXBsZWQgcGFyYW1ldGVycworCQkgKiBsaWtlIERUIGFuZCBJVSwgYnV0IHNldCB0aGUgb3B0aW9uYWwgb25lcyAqLworCQlEVl9TRVQocmRfc3RybSwgMSk7CisJCURWX1NFVCh3cl9mbG93LCAxKTsKKwkJRFZfU0VUKHJ0aSwgMSk7CisJCWlmIChzcGlfbWluX3BlcmlvZChzdGFyZ2V0KSA9PSA4KQorCQkJRFZfU0VUKHBjb21wX2VuLCAxKTsKKwl9CiAKIAlpZiAobGVuID09IDApIHsKLQkJU1BJX1BSSU5USyhzZGV2LT5zZGV2X3RhcmdldCwgS0VSTl9JTkZPLCAiRG9tYWluIFZhbGlkYXRpb24gc2tpcHBpbmcgd3JpdGUgdGVzdHNcbiIpOworCQlTUElfUFJJTlRLKHN0YXJnZXQsIEtFUk5fSU5GTywgIkRvbWFpbiBWYWxpZGF0aW9uIHNraXBwaW5nIHdyaXRlIHRlc3RzXG4iKTsKIAkJc3BpX2R2X3JldHJhaW4oc3JlcSwgYnVmZmVyLCBidWZmZXIgKyBsZW4sCiAJCQkgICAgICAgc3BpX2R2X2RldmljZV9jb21wYXJlX2lucXVpcnkpOwogCQlyZXR1cm47CiAJfQogCiAJaWYgKGxlbiA+IFNQSV9NQVhfRUNIT19CVUZGRVJfU0laRSkgewotCQlTUElfUFJJTlRLKHNkZXYtPnNkZXZfdGFyZ2V0LCBLRVJOX1dBUk5JTkcsICJFY2hvIGJ1ZmZlciBzaXplICVkIGlzIHRvbyBiaWcsIHRyaW1taW5nIHRvICVkXG4iLCBsZW4sIFNQSV9NQVhfRUNIT19CVUZGRVJfU0laRSk7CisJCVNQSV9QUklOVEsoc3RhcmdldCwgS0VSTl9XQVJOSU5HLCAiRWNobyBidWZmZXIgc2l6ZSAlZCBpcyB0b28gYmlnLCB0cmltbWluZyB0byAlZFxuIiwgbGVuLCBTUElfTUFYX0VDSE9fQlVGRkVSX1NJWkUpOwogCQlsZW4gPSBTUElfTUFYX0VDSE9fQlVGRkVSX1NJWkU7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jCmluZGV4IDE5YWZiMjUuLmJiODIzNTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2QuYworKysgYi9kcml2ZXJzL3Njc2kvc2QuYwpAQCAtMTM2OCwxNyArMTM2OCwyNiBAQAogICovCiBzdGF0aWMgdm9pZAogc2RfcmVhZF9jYWNoZV90eXBlKHN0cnVjdCBzY3NpX2Rpc2sgKnNka3AsIGNoYXIgKmRpc2tuYW1lLAotCQkgICBzdHJ1Y3Qgc2NzaV9yZXF1ZXN0ICpTUnBudCwgdW5zaWduZWQgY2hhciAqYnVmZmVyKSB7CisJCSAgIHN0cnVjdCBzY3NpX3JlcXVlc3QgKlNScG50LCB1bnNpZ25lZCBjaGFyICpidWZmZXIpCit7CiAJaW50IGxlbiA9IDAsIHJlczsKIAotCWNvbnN0IGludCBkYmQgPSAwOwkgICAvKiBEQkQgKi8KLQljb25zdCBpbnQgbW9kZXBhZ2UgPSAweDA4OyAvKiBjdXJyZW50IHZhbHVlcywgY2FjaGUgcGFnZSAqLworCWludCBkYmQ7CisJaW50IG1vZGVwYWdlOwogCXN0cnVjdCBzY3NpX21vZGVfZGF0YSBkYXRhOwogCXN0cnVjdCBzY3NpX3NlbnNlX2hkciBzc2hkcjsKIAogCWlmIChzZGtwLT5kZXZpY2UtPnNraXBfbXNfcGFnZV84KQogCQlnb3RvIGRlZmF1bHRzOwogCisJaWYgKHNka3AtPmRldmljZS0+dHlwZSA9PSBUWVBFX1JCQykgeworCQltb2RlcGFnZSA9IDY7CisJCWRiZCA9IDg7CisJfSBlbHNlIHsKKwkJbW9kZXBhZ2UgPSA4OworCQlkYmQgPSAwOworCX0KKwogCS8qIGNhdXRpb3VzbHkgYXNrICovCiAJcmVzID0gc2RfZG9fbW9kZV9zZW5zZShTUnBudCwgZGJkLCBtb2RlcGFnZSwgYnVmZmVyLCA0LCAmZGF0YSk7CiAKQEAgLTE0MDksMTEgKzE0MTgsMjAgQEAKIAkJCSJ3cml0ZSBiYWNrLCBubyByZWFkIChkYWZ0KSIKIAkJfTsKIAkJaW50IGN0ID0gMDsKLQkJaW50IG9mZnNldCA9IGRhdGEuaGVhZGVyX2xlbmd0aCArCi0JCQlkYXRhLmJsb2NrX2Rlc2NyaXB0b3JfbGVuZ3RoICsgMjsKKwkJaW50IG9mZnNldCA9IGRhdGEuaGVhZGVyX2xlbmd0aCArIGRhdGEuYmxvY2tfZGVzY3JpcHRvcl9sZW5ndGg7CiAKLQkJc2RrcC0+V0NFID0gKChidWZmZXJbb2Zmc2V0XSAmIDB4MDQpICE9IDApOwotCQlzZGtwLT5SQ0QgPSAoKGJ1ZmZlcltvZmZzZXRdICYgMHgwMSkgIT0gMCk7CisJCWlmICgoYnVmZmVyW29mZnNldF0gJiAweDNmKSAhPSBtb2RlcGFnZSkgeworCQkJcHJpbnRrKEtFUk5fRVJSICIlczogZ290IHdyb25nIHBhZ2VcbiIsIGRpc2tuYW1lKTsKKwkJCWdvdG8gZGVmYXVsdHM7CisJCX0KKworCQlpZiAobW9kZXBhZ2UgPT0gOCkgeworCQkJc2RrcC0+V0NFID0gKChidWZmZXJbb2Zmc2V0ICsgMl0gJiAweDA0KSAhPSAwKTsKKwkJCXNka3AtPlJDRCA9ICgoYnVmZmVyW29mZnNldCArIDJdICYgMHgwMSkgIT0gMCk7CisJCX0gZWxzZSB7CisJCQlzZGtwLT5XQ0UgPSAoKGJ1ZmZlcltvZmZzZXQgKyAyXSAmIDB4MDEpID09IDApOworCQkJc2RrcC0+UkNEID0gMDsKKwkJfQogCiAJCWN0ID0gIHNka3AtPlJDRCArIDIqc2RrcC0+V0NFOwogCkBAIC0xNTMzLDcgKzE1NTEsNyBAQAogCWludCBlcnJvcjsKIAogCWVycm9yID0gLUVOT0RFVjsKLQlpZiAoKHNkcC0+dHlwZSAhPSBUWVBFX0RJU0spICYmIChzZHAtPnR5cGUgIT0gVFlQRV9NT0QpKQorCWlmIChzZHAtPnR5cGUgIT0gVFlQRV9ESVNLICYmIHNkcC0+dHlwZSAhPSBUWVBFX01PRCAmJiBzZHAtPnR5cGUgIT0gVFlQRV9SQkMpCiAJCWdvdG8gb3V0OwogCiAJU0NTSV9MT0dfSExRVUVVRSgzLCBwcmludGsoInNkX2F0dGFjaDogc2NzaSBkZXZpY2U6IDwlZCwlZCwlZCwlZD5cbiIsIApAQCAtMTU3MCw3ICsxNTg4LDcgQEAKIAlzZGtwLT5vcGVuZXJzID0gMDsKIAogCWlmICghc2RwLT50aW1lb3V0KSB7Ci0JCWlmIChzZHAtPnR5cGUgPT0gVFlQRV9ESVNLKQorCQlpZiAoc2RwLT50eXBlICE9IFRZUEVfTU9EKQogCQkJc2RwLT50aW1lb3V0ID0gU0RfVElNRU9VVDsKIAkJZWxzZQogCQkJc2RwLT50aW1lb3V0ID0gU0RfTU9EX1RJTUVPVVQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2VhZ2F0ZS5jIGIvZHJpdmVycy9zY3NpL3NlYWdhdGUuYwppbmRleCA0Yzk1YWJiLi5hMGNhY2U5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2VhZ2F0ZS5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZWFnYXRlLmMKQEAgLTk3LDYgKzk3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgpAQCAtMTYzMSw3ICsxNjMyLDcgQEAKIAkvKiBhc3NlcnQgIFJFU0VUIHNpZ25hbCBvbiBTQ1NJIGJ1cy4gICovCiAJV1JJVEVfQ09OVFJPTCAoQkFTRV9DTUQgfCBDTURfUlNUKTsKIAotCXVkZWxheSAoMjAgKiAxMDAwKTsKKwltZGVsYXkgKDIwKTsKIAogCVdSSVRFX0NPTlRST0wgKEJBU0VfQ01EKTsKIAlzdDB4X2Fib3J0ZWQgPSBESURfUkVTRVQ7CkBAIC0xNjQwLDE2ICsxNjQxLDYgQEAKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIAotc3RhdGljIGludCBzZWFnYXRlX3N0MHhfaG9zdF9yZXNldChTY3NpX0NtbmQgKlNDcG50KQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KLXN0YXRpYyBpbnQgc2VhZ2F0ZV9zdDB4X2RldmljZV9yZXNldChTY3NpX0NtbmQgKlNDcG50KQotewotCXJldHVybiBGQUlMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgc2VhZ2F0ZV9zdDB4X3JlbGVhc2Uoc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QpCiB7CiAJaWYgKHNob3N0LT5pcnEpCkBAIC0xNjY1LDggKzE2NTYsNiBAQAogCS5xdWV1ZWNvbW1hbmQgICAJPSBzZWFnYXRlX3N0MHhfcXVldWVfY29tbWFuZCwKIAkuZWhfYWJvcnRfaGFuZGxlcgk9IHNlYWdhdGVfc3QweF9hYm9ydCwKIAkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJPSBzZWFnYXRlX3N0MHhfYnVzX3Jlc2V0LAotCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIJPSBzZWFnYXRlX3N0MHhfaG9zdF9yZXNldCwKLQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBzZWFnYXRlX3N0MHhfZGV2aWNlX3Jlc2V0LAogCS5jYW5fcXVldWUgICAgICAJPSAxLAogCS50aGlzX2lkICAgICAgICAJPSA3LAogCS5zZ190YWJsZXNpemUgICAJPSBTR19BTEwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2VhZ2F0ZS5oIGIvZHJpdmVycy9zY3NpL3NlYWdhdGUuaAppbmRleCBlNDllOGVjLi44ODg5ZmYxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NlYWdhdGUuaAorKysgYi9kcml2ZXJzL3Njc2kvc2VhZ2F0ZS5oCkBAIC0xNSw3ICsxNSw1IEBACiBzdGF0aWMgaW50IHNlYWdhdGVfc3QweF9hYm9ydChTY3NpX0NtbmQgKik7CiBzdGF0aWMgY29uc3QgY2hhciAqc2VhZ2F0ZV9zdDB4X2luZm8oc3RydWN0IFNjc2lfSG9zdCAqKTsKIHN0YXRpYyBpbnQgc2VhZ2F0ZV9zdDB4X2J1c19yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IHNlYWdhdGVfc3QweF9kZXZpY2VfcmVzZXQoU2NzaV9DbW5kICopOwotc3RhdGljIGludCBzZWFnYXRlX3N0MHhfaG9zdF9yZXNldChTY3NpX0NtbmQgKik7CiAKICNlbmRpZiAvKiBfU0VBR0FURV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2cuYyBiL2RyaXZlcnMvc2NzaS9zZy5jCmluZGV4IDc5MzZhYWYuLjNkMWQ3YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zZy5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZy5jCkBAIC0yNDcyLDYgKzI0NzIsOCBAQAogCWlmICgoIXNmcCkgfHwgKCFzcnApIHx8ICghc2ZwLT5oZWFkcnApKQogCQlyZXR1cm4gcmVzOwogCXdyaXRlX2xvY2tfaXJxc2F2ZSgmc2ZwLT5ycV9saXN0X2xvY2ssIGlmbGFncyk7CisJaWYgKHNycC0+bXlfY21kcCkKKwkJc3JwLT5teV9jbWRwLT51cHBlcl9wcml2YXRlX2RhdGEgPSBOVUxMOwogCXByZXZfcnAgPSBzZnAtPmhlYWRycDsKIAlpZiAoc3JwID09IHByZXZfcnApIHsKIAkJc2ZwLT5oZWFkcnAgPSBwcmV2X3JwLT5uZXh0cnA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2dpd2Q5My5jIGIvZHJpdmVycy9zY3NpL3NnaXdkOTMuYwppbmRleCAyNzBmMmFhLi5hNWJhMmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2dpd2Q5My5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZ2l3ZDkzLmMKQEAgLTMxMCw3ICszMTAsMTQgQEAKIHN0YXRpYyBpbnQgc2dpd2Q5M19idXNfcmVzZXQoU2NzaV9DbW5kICpjbWQpCiB7CiAJLyogRklYTUUgcGVyZm9ybSBidXMtc3BlY2lmaWMgcmVzZXQgKi8KKworCS8qIEZJWE1FIDI6IGtpbGwgdGhpcyBmdW5jdGlvbiwgYW5kIGxldCBtaWRsYXllciBmYWxsYmFjaworCSAgIHRvIHRoZSBzYW1lIHJlc3VsdCwgY2FsbGluZyB3ZDMzYzkzX2hvc3RfcmVzZXQoKSAqLworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKIAl3ZDMzYzkzX2hvc3RfcmVzZXQoY21kKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKIAlyZXR1cm4gU1VDQ0VTUzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0LmMgYi9kcml2ZXJzL3Njc2kvc3QuYwppbmRleCAyNjVkMWVlLi4wM2I5MDJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3QuYworKysgYi9kcml2ZXJzL3Njc2kvc3QuYwpAQCAtMTcsNyArMTcsNyBAQAogICAgTGFzdCBtb2RpZmllZDogMTgtSkFOLTE5OTggUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+IERldmZzIHN1cHBvcnQKICAqLwogCi1zdGF0aWMgY2hhciAqdmVyc3RyID0gIjIwMDUwMzEyIjsKK3N0YXRpYyBjaGFyICp2ZXJzdHIgPSAiMjAwNTA1MDEiOwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L210aW8uaD4KKyNpbmNsdWRlIDxsaW51eC9jZHJvbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgpAQCAtNTAsNiArNTEsNyBAQAogI2luY2x1ZGUgPHNjc2kvc2NzaV9ob3N0Lmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX2lvY3RsLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxzY3NpL3NnLmg+CiAKIAogLyogVGhlIGRyaXZlciBwcmludHMgc29tZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUgaWYgREVCVUcKQEAgLTM0NjMsNyArMzQ2NSwxMCBAQAogCQljYXNlIFNDU0lfSU9DVExfR0VUX0JVU19OVU1CRVI6CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKKwkJCWlmICgoY21kX2luID09IFNHX0lPIHx8CisJCQkgICAgIGNtZF9pbiA9PSBTQ1NJX0lPQ1RMX1NFTkRfQ09NTUFORCB8fAorCQkJICAgICBjbWRfaW4gPT0gQ0RST01fU0VORF9QQUNLRVQpICYmCisJCQkgICAgIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCiAJCQkJaSA9IC1FUEVSTTsKIAkJCWVsc2UKIAkJCQlpID0gc2NzaV9jbWRfaW9jdGwoZmlsZSwgU1RwLT5kaXNrLCBjbWRfaW4sIHApOwpAQCAtMzQ3MSwxMCArMzQ3NiwxMiBAQAogCQkJCXJldHVybiBpOwogCQkJYnJlYWs7CiAJfQotCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSAmJgotCSAgICAoY21kX2luID09IFNDU0lfSU9DVExfU1RBUlRfVU5JVCB8fCBjbWRfaW4gPT0gU0NTSV9JT0NUTF9TVE9QX1VOSVQpKQotCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiBzY3NpX2lvY3RsKFNUcC0+ZGV2aWNlLCBjbWRfaW4sIHApOworCXJldHZhbCA9IHNjc2lfaW9jdGwoU1RwLT5kZXZpY2UsIGNtZF9pbiwgcCk7CisJaWYgKCFyZXR2YWwgJiYgY21kX2luID09IFNDU0lfSU9DVExfU1RPUF9VTklUKSB7IC8qIHVubG9hZCAqLworCQlTVHAtPnJld19hdF9jbG9zZSA9IDA7CisJCVNUcC0+cmVhZHkgPSBTVF9OT19UQVBFOworCX0KKwlyZXR1cm4gcmV0dmFsOwogCiAgb3V0OgogCXVwKCZTVHAtPmxvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N1bjN4X2VzcC5jIGIvZHJpdmVycy9zY3NpL3N1bjN4X2VzcC5jCmluZGV4IDVkMWRjMGUuLjA5ZDc2MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zdW4zeF9lc3AuYworKysgYi9kcml2ZXJzL3Njc2kvc3VuM3hfZXNwLmMKQEAgLTIzLDggKzIzLDYgQEAKICNpbmNsdWRlIDxhc20vZHZtYS5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIAotZXh0ZXJuIHN0cnVjdCBOQ1JfRVNQICplc3BjaGFpbjsKLQogc3RhdGljIHZvaWQgZG1hX2JhcnJpZXIoc3RydWN0IE5DUl9FU1AgKmVzcCk7CiBzdGF0aWMgaW50ICBkbWFfYnl0ZXNfc2VudChzdHJ1Y3QgTkNSX0VTUCAqZXNwLCBpbnQgZmlmb19jb3VudCk7CiBzdGF0aWMgaW50ICBkbWFfY2FuX3RyYW5zZmVyKHN0cnVjdCBOQ1JfRVNQICplc3AsIFNjc2lfQ21uZCAqc3ApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzQxNi5jIGIvZHJpdmVycy9zY3NpL3N5bTUzYzQxNi5jCmluZGV4IGViZmRkZDQuLmVmMTlhZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zeW01M2M0MTYuYworKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjNDE2LmMKQEAgLTc4NSwyNiArNzg1LDE0IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc3ltNTNjNDE2X2Fib3J0KFNjc2lfQ21uZCAqU0NwbnQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQotc3RhdGljIGludCBzeW01M2M0MTZfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqU0NwbnQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQotc3RhdGljIGludCBzeW01M2M0MTZfZGV2aWNlX3Jlc2V0KFNjc2lfQ21uZCAqU0NwbnQpCi17Ci0JcmV0dXJuIEZBSUxFRDsKLX0KLQogc3RhdGljIGludCBzeW01M2M0MTZfaG9zdF9yZXNldChTY3NpX0NtbmQgKlNDcG50KQogewogCWludCBiYXNlOwogCWludCBzY3NpX2lkID0gLTE7CQogCWludCBpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3ltNTNjNDE2X2xvY2ssIGZsYWdzKTsKIAogCS8qIHByaW50aygic3ltNTNjNDE2X3Jlc2V0XG4iKTsgKi8KIAliYXNlID0gU0NwbnQtPmRldmljZS0+aG9zdC0+aW9fcG9ydDsKQEAgLTgxNiw2ICs4MDQsOCBAQAogCW91dGIoTk9PUCB8IFBJT19NT0RFLCBiYXNlICsgQ09NTUFORF9SRUcpOwogCW91dGIoUkVTRVRfU0NTSV9CVVMsIGJhc2UgKyBDT01NQU5EX1JFRyk7CiAJc3ltNTNjNDE2X2luaXQoYmFzZSwgc2NzaV9pZCk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzeW01M2M0MTZfbG9jaywgZmxhZ3MpOwogCXJldHVybiBTVUNDRVNTOwogfQogCkBAIC04NjUsMTAgKzg1NSw3IEBACiAJLmRldGVjdCA9CQlzeW01M2M0MTZfZGV0ZWN0LAogCS5pbmZvID0JCQlzeW01M2M0MTZfaW5mbywJCiAJLnF1ZXVlY29tbWFuZCA9CQlzeW01M2M0MTZfcXVldWVjb21tYW5kLAotCS5laF9hYm9ydF9oYW5kbGVyID0Jc3ltNTNjNDE2X2Fib3J0LAogCS5laF9ob3N0X3Jlc2V0X2hhbmRsZXIgPXN5bTUzYzQxNl9ob3N0X3Jlc2V0LAotCS5laF9idXNfcmVzZXRfaGFuZGxlciA9IHN5bTUzYzQxNl9idXNfcmVzZXQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyID1zeW01M2M0MTZfZGV2aWNlX3Jlc2V0LAogCS5yZWxlYXNlID0gCQlzeW01M2M0MTZfcmVsZWFzZSwKIAkuYmlvc19wYXJhbSA9CQlzeW01M2M0MTZfYmlvc19wYXJhbSwKIAkuY2FuX3F1ZXVlID0JCTEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3ltNTNjNDE2LmggYi9kcml2ZXJzL3Njc2kvc3ltNTNjNDE2LmgKaW5kZXggM2MwZTNmOC4uZmQ2YjEyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzQxNi5oCisrKyBiL2RyaXZlcnMvc2NzaS9zeW01M2M0MTYuaApAQCAtMjYsMTAgKzI2LDcgQEAKIHN0YXRpYyBjb25zdCBjaGFyICpzeW01M2M0MTZfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICopOwogc3RhdGljIGludCBzeW01M2M0MTZfcmVsZWFzZShzdHJ1Y3QgU2NzaV9Ib3N0ICopOwogc3RhdGljIGludCBzeW01M2M0MTZfcXVldWVjb21tYW5kKFNjc2lfQ21uZCAqLCB2b2lkICgqZG9uZSkoU2NzaV9DbW5kICopKTsKLXN0YXRpYyBpbnQgc3ltNTNjNDE2X2Fib3J0KFNjc2lfQ21uZCAqKTsKIHN0YXRpYyBpbnQgc3ltNTNjNDE2X2hvc3RfcmVzZXQoU2NzaV9DbW5kICopOwotc3RhdGljIGludCBzeW01M2M0MTZfYnVzX3Jlc2V0KFNjc2lfQ21uZCAqKTsKLXN0YXRpYyBpbnQgc3ltNTNjNDE2X2RldmljZV9yZXNldChTY3NpX0NtbmQgKik7CiBzdGF0aWMgaW50IHN5bTUzYzQxNl9iaW9zX3BhcmFtKHN0cnVjdCBzY3NpX2RldmljZSAqLCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICosCiAJCXNlY3Rvcl90LCBpbnQgKik7CiBzdGF0aWMgdm9pZCBzeW01M2M0MTZfc2V0dXAoY2hhciAqc3RyLCBpbnQgKmludHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9kZWZzLmggYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2RlZnMuaAppbmRleCAxNWJiODkxLi4yZDk0MzdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2RlZnMuaAorKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2RlZnMuaApAQCAtNDAsNyArNDAsNyBAQAogI2lmbmRlZiBTWU1fREVGU19ICiAjZGVmaW5lIFNZTV9ERUZTX0gKIAotI2RlZmluZSBTWU1fVkVSU0lPTiAiMi4yLjAiCisjZGVmaW5lIFNZTV9WRVJTSU9OICIyLjIuMSIKICNkZWZpbmUgU1lNX0RSSVZFUl9OQU1FCSJzeW0tIiBTWU1fVkVSU0lPTgogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9nbHVlLmMgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuYwppbmRleCA1YjA3YzZlLi5kNzY3NjZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuYworKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuYwpAQCAtMTU1LDEwICsxNTUsMTEgQEAKIAliYXNlID0gdG1wOwogCWlmICgodG1wICYgMHg3KSA9PSBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0KSB7CiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwZGV2LCBQQ0lfQkFSX09GRlNFVChpbmRleCsrKSwgJnRtcCk7Ci0JCWlmICh0bXAgPiAwKQorCQlpZiAodG1wID4gMCkgewogCQkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJCSJCQVIgJWQgaXMgNjQtYml0LCBkaXNhYmxpbmdcbiIsIGluZGV4IC0gMSk7Ci0JCWJhc2UgPSAwOworCQkJYmFzZSA9IDA7CisJCX0KIAl9CiAKIAlpZiAoKGJhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFKSA9PSBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFX0lPKSB7CkBAIC0zODksMTMgKzM5MCwyMCBAQAogewogCXN0cnVjdCBzeW1fdGJsbW92ZSAqZGF0YSA9ICZjcC0+cGh5cy5kYXRhW1NZTV9DT05GX01BWF9TRy0xXTsKIAlpbnQgc2VnbWVudDsKKwl1bnNpZ25lZCBpbnQgbGVuID0gY21kLT5yZXF1ZXN0X2J1ZmZsZW47CiAKLQljcC0+ZGF0YV9sZW4gPSBjbWQtPnJlcXVlc3RfYnVmZmxlbjsKLQotCWlmIChjbWQtPnJlcXVlc3RfYnVmZmxlbikgeworCWlmIChsZW4pIHsKIAkJZG1hX2FkZHJfdCBiYWRkciA9IG1hcF9zY3NpX3NpbmdsZV9kYXRhKG5wLCBjbWQpOwogCQlpZiAoYmFkZHIpIHsKLQkJCXN5bV9idWlsZF9zZ2UobnAsIGRhdGEsIGJhZGRyLCBjbWQtPnJlcXVlc3RfYnVmZmxlbik7CisJCQlpZiAobGVuICYgMSkgeworCQkJCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W2NwLT50YXJnZXRdOworCQkJCWlmICh0cC0+aGVhZC53dmFsICYgRVdTKSB7CisJCQkJCWxlbisrOworCQkJCQljcC0+b2RkX2J5dGVfYWRqdXN0bWVudCsrOworCQkJCX0KKwkJCX0KKwkJCWNwLT5kYXRhX2xlbiA9IGxlbjsKKwkJCXN5bV9idWlsZF9zZ2UobnAsIGRhdGEsIGJhZGRyLCBsZW4pOwogCQkJc2VnbWVudCA9IDE7CiAJCX0gZWxzZSB7CiAJCQlzZWdtZW50ID0gLTI7CkBAIC00MTgsNiArNDI2LDcgQEAKIAkJc2VnbWVudCA9IHN5bV9zY2F0dGVyX25vX3NnbGlzdChucCwgY3AsIGNtZCk7CiAJZWxzZSBpZiAoKHVzZV9zZyA9IG1hcF9zY3NpX3NnX2RhdGEobnAsIGNtZCkpID4gMCkgewogCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNjYXR0ZXIgPSAoc3RydWN0IHNjYXR0ZXJsaXN0ICopY21kLT5idWZmZXI7CisJCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W2NwLT50YXJnZXRdOwogCQlzdHJ1Y3Qgc3ltX3RibG1vdmUgKmRhdGE7CiAKIAkJaWYgKHVzZV9zZyA+IFNZTV9DT05GX01BWF9TRykgewpAQCAtNDMxLDYgKzQ0MCwxMSBAQAogCQkJZG1hX2FkZHJfdCBiYWRkciA9IHNnX2RtYV9hZGRyZXNzKCZzY2F0dGVyW3NlZ21lbnRdKTsKIAkJCXVuc2lnbmVkIGludCBsZW4gPSBzZ19kbWFfbGVuKCZzY2F0dGVyW3NlZ21lbnRdKTsKIAorCQkJaWYgKChsZW4gJiAxKSAmJiAodHAtPmhlYWQud3ZhbCAmIEVXUykpIHsKKwkJCQlsZW4rKzsKKwkJCQljcC0+b2RkX2J5dGVfYWRqdXN0bWVudCsrOworCQkJfQorCiAJCQlzeW1fYnVpbGRfc2dlKG5wLCAmZGF0YVtzZWdtZW50XSwgYmFkZHIsIGxlbik7CiAJCQljcC0+ZGF0YV9sZW4gKz0gbGVuOwogCQl9CkBAIC00NTYsMTAgKzQ3MCw4IEBACiAJICogIE1pbmltYWwgY2hlY2tpbmdzLCBzbyB0aGF0IHdlIHdpbGwgbm90IAogCSAqICBnbyBvdXRzaWRlIG91ciB0YWJsZXMuCiAJICovCi0JaWYgKHNkZXYtPmlkID09IG5wLT5teWFkZHIgfHwKLQkgICAgc2Rldi0+aWQgPj0gU1lNX0NPTkZfTUFYX1RBUkdFVCB8fAotCSAgICBzZGV2LT5sdW4gPj0gU1lNX0NPTkZfTUFYX0xVTikgewotCQlzeW1feHB0X2RvbmUyKG5wLCBjbWQsIENBTV9ERVZfTk9UX1RIRVJFKTsKKwlpZiAoc2Rldi0+aWQgPT0gbnAtPm15YWRkcikgeworCQlzeW1feHB0X2RvbmUyKG5wLCBjbWQsIERJRF9OT19DT05ORUNUKTsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC00NjksMjggKzQ4MSw2IEBACiAJdHAgPSAmbnAtPnRhcmdldFtzZGV2LT5pZF07CiAKIAkvKgotCSAqICBDb21wbGV0ZSB0aGUgMXN0IElOUVVJUlkgY29tbWFuZCB3aXRoIGVycm9yIAotCSAqICBjb25kaXRpb24gaWYgdGhlIGRldmljZSBpcyBmbGFnZ2VkIE5PU0NBTiAKLQkgKiAgYXQgQk9PVCBpbiB0aGUgTlZSQU0uIFRoaXMgbWF5IHNwZWVkIHVwIAotCSAqICB0aGUgYm9vdCBhbmQgbWFpbnRhaW4gY29oZXJlbmN5IHdpdGggQklPUyAKLQkgKiAgZGV2aWNlIG51bWJlcmluZy4gQ2xlYXJpbmcgdGhlIGZsYWcgYWxsb3dzIAotCSAqICB1c2VyIHRvIHJlc2NhbiBza2lwcGVkIGRldmljZXMgbGF0ZXIuCi0JICogIFdlIGFsc28gcmV0dXJuIGVycm9yIGZvciBkZXZpY2VzIG5vdCBmbGFnZ2VkIAotCSAqICBmb3IgU0NBTiBMVU5TIGluIHRoZSBOVlJBTSBzaW5jZSBzb21lIG1vbm8tbHVuIAotCSAqICBkZXZpY2VzIGJlaGF2ZSBiYWRseSB3aGVuIGFza2VkIGZvciBzb21lIG5vbiAKLQkgKiAgemVybyBMVU4uIEJ0dywgdGhpcyBpcyBhbiBhYnNvbHV0ZSBoYWNrLjotKQotCSAqLwotCWlmIChjbWQtPmNtbmRbMF0gPT0gMHgxMiB8fCBjbWQtPmNtbmRbMF0gPT0gMHgwKSB7Ci0JCWlmICgodHAtPnVzcmZsYWdzICYgU1lNX1NDQU5fQk9PVF9ESVNBQkxFRCkgfHwKLQkJICAgICgodHAtPnVzcmZsYWdzICYgU1lNX1NDQU5fTFVOU19ESVNBQkxFRCkgJiYgCi0JCSAgICAgc2Rldi0+bHVuICE9IDApKSB7Ci0JCQl0cC0+dXNyZmxhZ3MgJj0gflNZTV9TQ0FOX0JPT1RfRElTQUJMRUQ7Ci0JCQlzeW1feHB0X2RvbmUyKG5wLCBjbWQsIENBTV9ERVZfTk9UX1RIRVJFKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCi0JLyoKIAkgKiAgU2VsZWN0IHRhZ2dlZC91bnRhZ2dlZC4KIAkgKi8KIAlscCA9IHN5bV9scCh0cCwgc2Rldi0+bHVuKTsKQEAgLTUxMSwyMyArNTAxLDEwIEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IHN5bV9zZXR1cF9jZGIoc3RydWN0IHN5bV9oY2IgKm5wLCBzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQsIHN0cnVjdCBzeW1fY2NiICpjcCkKIHsKLQl1MzIJY21kX2JhOwotCWludAljbWRfbGVuOwotCi0JLyoKLQkgKiAgQ0RCIGlzIDE2IGJ5dGVzIG1heC4KLQkgKi8KLQlpZiAoY21kLT5jbWRfbGVuID4gc2l6ZW9mKGNwLT5jZGJfYnVmKSkgewotCQlzeW1fc2V0X2NhbV9zdGF0dXMoY3AtPmNtZCwgQ0FNX1JFUV9JTlZBTElEKTsKLQkJcmV0dXJuIC0xOwotCX0KLQogCW1lbWNweShjcC0+Y2RiX2J1ZiwgY21kLT5jbW5kLCBjbWQtPmNtZF9sZW4pOwotCWNtZF9iYSAgPSBDQ0JfQkEgKGNwLCBjZGJfYnVmWzBdKTsKLQljbWRfbGVuID0gY21kLT5jbWRfbGVuOwogCi0JY3AtPnBoeXMuY21kLmFkZHIJPSBjcHVfdG9fc2NyKGNtZF9iYSk7Ci0JY3AtPnBoeXMuY21kLnNpemUJPSBjcHVfdG9fc2NyKGNtZF9sZW4pOworCWNwLT5waHlzLmNtZC5hZGRyID0gQ0NCX0JBKGNwLCBjZGJfYnVmWzBdKTsKKwljcC0+cGh5cy5jbWQuc2l6ZSA9IGNwdV90b19zY3IoY21kLT5jbWRfbGVuKTsKIAogCXJldHVybiAwOwogfQpAQCAtNTU0LDEwICs1MzEsNyBAQAogCWlmIChkaXIgIT0gRE1BX05PTkUpIHsKIAkJY3AtPnNlZ21lbnRzID0gc3ltX3NjYXR0ZXIobnAsIGNwLCBjbWQpOwogCQlpZiAoY3AtPnNlZ21lbnRzIDwgMCkgewotCQkJaWYgKGNwLT5zZWdtZW50cyA9PSAtMikKLQkJCQlzeW1fc2V0X2NhbV9zdGF0dXMoY21kLCBDQU1fUkVTUkNfVU5BVkFJTCk7Ci0JCQllbHNlCi0JCQkJc3ltX3NldF9jYW1fc3RhdHVzKGNtZCwgQ0FNX1JFUV9UT09fQklHKTsKKwkJCXN5bV9zZXRfY2FtX3N0YXR1cyhjbWQsIERJRF9FUlJPUik7CiAJCQlnb3RvIG91dF9hYm9ydDsKIAkJfQogCX0gZWxzZSB7CkBAIC04NTUsNyArODI5LDcgQEAKIAllcC0+dG9fZG8gPSB0b19kbzsKIAkvKiBDb21wbGV0ZSB0aGUgY29tbWFuZCB3aXRoIGxvY2tzIGhlbGQgYXMgcmVxdWlyZWQgYnkgdGhlIGRyaXZlciAqLwogCWlmICh0b19kbyA9PSBTWU1fRUhfRE9fQ09NUExFVEUpCi0JCXN5bV94cHRfZG9uZTIobnAsIGNtZCwgQ0FNX1JFUV9BQk9SVEVEKTsKKwkJc3ltX3hwdF9kb25lMihucCwgY21kLCBESURfQUJPUlQpOwogCiAJLyogV2FpdCBmb3IgY29tcGxldGlvbiB3aXRoIGxvY2tzIHJlbGVhc2VkLCBhcyByZXF1aXJlZCBieSBrZXJuZWwgKi8KIAlpZiAodG9fZG8gPT0gU1lNX0VIX0RPX1dBSVQpIHsKQEAgLTg4MiwyMiArODU2LDQ2IEBACiAgKi8KIHN0YXRpYyBpbnQgc3ltNTNjOHh4X2VoX2Fib3J0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21kKQogewotCXJldHVybiBzeW1fZWhfaGFuZGxlcihTWU1fRUhfQUJPUlQsICJBQk9SVCIsIGNtZCk7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IHN5bV9laF9oYW5kbGVyKFNZTV9FSF9BQk9SVCwgIkFCT1JUIiwgY21kKTsKKwlzcGluX3VubG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgc3ltNTNjOHh4X2VoX2RldmljZV9yZXNldF9oYW5kbGVyKHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkKIHsKLQlyZXR1cm4gc3ltX2VoX2hhbmRsZXIoU1lNX0VIX0RFVklDRV9SRVNFVCwgIkRFVklDRSBSRVNFVCIsIGNtZCk7CisJaW50IHJjOworCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwlyYyA9IHN5bV9laF9oYW5kbGVyKFNZTV9FSF9ERVZJQ0VfUkVTRVQsICJERVZJQ0UgUkVTRVQiLCBjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKIH0KIAogc3RhdGljIGludCBzeW01M2M4eHhfZWhfYnVzX3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21kKQogewotCXJldHVybiBzeW1fZWhfaGFuZGxlcihTWU1fRUhfQlVTX1JFU0VULCAiQlVTIFJFU0VUIiwgY21kKTsKKwlpbnQgcmM7CisKKwlzcGluX2xvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCXJjID0gc3ltX2VoX2hhbmRsZXIoU1lNX0VIX0JVU19SRVNFVCwgIkJVUyBSRVNFVCIsIGNtZCk7CisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgaW50IHN5bTUzYzh4eF9laF9ob3N0X3Jlc2V0X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21kKQogewotCXJldHVybiBzeW1fZWhfaGFuZGxlcihTWU1fRUhfSE9TVF9SRVNFVCwgIkhPU1QgUkVTRVQiLCBjbWQpOworCWludCByYzsKKworCXNwaW5fbG9ja19pcnEoY21kLT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisJcmMgPSBzeW1fZWhfaGFuZGxlcihTWU1fRUhfSE9TVF9SRVNFVCwgIkhPU1QgUkVTRVQiLCBjbWQpOworCXNwaW5fdW5sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKworCXJldHVybiByYzsKIH0KIAogLyoKQEAgLTkyMSw3ICs5MTksNyBAQAogCWxwLT5zLnJlcXRhZ3MgICAgID0gcmVxdGFnczsKIAogCWlmIChyZXF0YWdzICE9IG9sZHRhZ3MpIHsKLQkJZGV2X2luZm8oJnRwLT5zZGV2LT5zZGV2X3RhcmdldC0+ZGV2LAorCQlkZXZfaW5mbygmdHAtPnN0YXJnZXQtPmRldiwKIAkJICAgICAgICAgInRhZ2dlZCBjb21tYW5kIHF1ZXVpbmcgJXMsIGNvbW1hbmQgcXVldWUgZGVwdGggJWQuXG4iLAogCQkgICAgICAgICAgbHAtPnMucmVxdGFncyA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIsCiAgCQkgICAgICAgICAgbHAtPnN0YXJ0ZWRfbGltaXQpOwpAQCAtOTgxLDI0ICs5NzksMzYgQEAKIAlyZXR1cm4gREVGX0RFUFRIOwogfQogCi1zdGF0aWMgaW50IHN5bTUzYzh4eF9zbGF2ZV9hbGxvYyhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRldmljZSkKK3N0YXRpYyBpbnQgc3ltNTNjOHh4X3NsYXZlX2FsbG9jKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldikKIHsKLQlzdHJ1Y3Qgc3ltX2hjYiAqbnAgPSBzeW1fZ2V0X2hjYihkZXZpY2UtPmhvc3QpOwotCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W2RldmljZS0+aWRdOwotCWlmICghdHAtPnNkZXYpCi0JCXRwLT5zZGV2ID0gZGV2aWNlOworCXN0cnVjdCBzeW1faGNiICpucDsKKwlzdHJ1Y3Qgc3ltX3RjYiAqdHA7CiAKKwlpZiAoc2Rldi0+aWQgPj0gU1lNX0NPTkZfTUFYX1RBUkdFVCB8fCBzZGV2LT5sdW4gPj0gU1lNX0NPTkZfTUFYX0xVTikKKwkJcmV0dXJuIC1FTlhJTzsKKworCW5wID0gc3ltX2dldF9oY2Ioc2Rldi0+aG9zdCk7CisJdHAgPSAmbnAtPnRhcmdldFtzZGV2LT5pZF07CisKKwkvKgorCSAqIEZhaWwgdGhlIGRldmljZSBpbml0IGlmIHRoZSBkZXZpY2UgaXMgZmxhZ2dlZCBOT1NDQU4gYXQgQk9PVCBpbgorCSAqIHRoZSBOVlJBTS4gIFRoaXMgbWF5IHNwZWVkIHVwIGJvb3QgYW5kIG1haW50YWluIGNvaGVyZW5jeSB3aXRoCisJICogQklPUyBkZXZpY2UgbnVtYmVyaW5nLiAgQ2xlYXJpbmcgdGhlIGZsYWcgYWxsb3dzIHRoZSB1c2VyIHRvCisJICogcmVzY2FuIHNraXBwZWQgZGV2aWNlcyBsYXRlci4gIFdlIGFsc28gcmV0dXJuIGFuIGVycm9yIGZvcgorCSAqIGRldmljZXMgbm90IGZsYWdnZWQgZm9yIFNDQU4gTFVOUyBpbiB0aGUgTlZSQU0gc2luY2Ugc29tZSBzaW5nbGUKKwkgKiBsdW4gZGV2aWNlcyBiZWhhdmUgYmFkbHkgd2hlbiBhc2tlZCBmb3IgYSBub24gemVybyBMVU4uCisJICovCisKKwlpZiAoKHRwLT51c3JmbGFncyAmIFNZTV9TQ0FOX0JPT1RfRElTQUJMRUQpIHx8CisJICAgICgodHAtPnVzcmZsYWdzICYgU1lNX1NDQU5fTFVOU19ESVNBQkxFRCkgJiYgc2Rldi0+bHVuICE9IDApKSB7CisJCXRwLT51c3JmbGFncyAmPSB+U1lNX1NDQU5fQk9PVF9ESVNBQkxFRDsKKwkJcmV0dXJuIC1FTlhJTzsKKwl9CisKKwl0cC0+c3RhcmdldCA9IHNkZXYtPnNkZXZfdGFyZ2V0OwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBzeW01M2M4eHhfc2xhdmVfZGVzdHJveShzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc3ltX2hjYiAqbnAgPSBzeW1fZ2V0X2hjYihkZXZpY2UtPmhvc3QpOwotCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W2RldmljZS0+aWRdOwotCWlmICh0cC0+c2RldiA9PSBkZXZpY2UpCi0JCXRwLT5zZGV2ID0gTlVMTDsKLX0KLQogLyoKICAqIExpbnV4IGVudHJ5IHBvaW50IGZvciBkZXZpY2UgcXVldWUgc2l6aW5nLgogICovCkBAIC0xODk3LDYgKzE5MDcsNyBAQAogCSAqLwogCXByaW50aygiJXM6IHJlc2V0dGluZyBjaGlwXG4iLCBzeW1fbmFtZShucCkpOwogCU9VVEIobnAsIG5jX2lzdGF0LCBTUlNUKTsKKwlJTkIobnAsIG5jX21ib3gxKTsKIAl1ZGVsYXkoMTApOwogCU9VVEIobnAsIG5jX2lzdGF0LCAwKTsKIApAQCAtMTkxNSw3ICsxOTI2LDYgQEAKIAkucXVldWVjb21tYW5kCQk9IHN5bTUzYzh4eF9xdWV1ZV9jb21tYW5kLAogCS5zbGF2ZV9hbGxvYwkJPSBzeW01M2M4eHhfc2xhdmVfYWxsb2MsCiAJLnNsYXZlX2NvbmZpZ3VyZQk9IHN5bTUzYzh4eF9zbGF2ZV9jb25maWd1cmUsCi0JLnNsYXZlX2Rlc3Ryb3kJCT0gc3ltNTNjOHh4X3NsYXZlX2Rlc3Ryb3ksCiAJLmVoX2Fib3J0X2hhbmRsZXIJPSBzeW01M2M4eHhfZWhfYWJvcnRfaGFuZGxlciwKIAkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIgPSBzeW01M2M4eHhfZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIsCiAJLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gc3ltNTNjOHh4X2VoX2J1c19yZXNldF9oYW5kbGVyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9nbHVlLmggYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuaAppbmRleCBlOTQzZjE2Li5kM2Q1MmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuaAorKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuaApAQCAtMTQyLDMzICsxNDIsNiBAQAogI2RlZmluZSBzY3JfdG9fY3B1KGR3KQlsZTMyX3RvX2NwdShkdykKIAogLyoKLSAqICBSZW1hcCBzb21lIHN0YXR1cyBmaWVsZCB2YWx1ZXMuCi0gKi8KLSNkZWZpbmUgQ0FNX1JFUV9DTVAJCURJRF9PSwotI2RlZmluZSBDQU1fU0VMX1RJTUVPVVQJCURJRF9OT19DT05ORUNUCi0jZGVmaW5lIENBTV9DTURfVElNRU9VVAkJRElEX1RJTUVfT1VUCi0jZGVmaW5lIENBTV9SRVFfQUJPUlRFRAkJRElEX0FCT1JUCi0jZGVmaW5lIENBTV9VTkNPUl9QQVJJVFkJRElEX1BBUklUWQotI2RlZmluZSBDQU1fU0NTSV9CVVNfUkVTRVQJRElEX1JFU0VUCQotI2RlZmluZSBDQU1fUkVRVUVVRV9SRVEJCURJRF9TT0ZUX0VSUk9SCi0jZGVmaW5lCUNBTV9VTkVYUF9CVVNGUkVFCURJRF9FUlJPUgotI2RlZmluZQlDQU1fU0NTSV9CVVNZCQlESURfQlVTX0JVU1kKLQotI2RlZmluZQlDQU1fREVWX05PVF9USEVSRQlESURfTk9fQ09OTkVDVAotI2RlZmluZQlDQU1fUkVRX0lOVkFMSUQJCURJRF9FUlJPUgotI2RlZmluZQlDQU1fUkVRX1RPT19CSUcJCURJRF9FUlJPUgotCi0jZGVmaW5lCUNBTV9SRVNSQ19VTkFWQUlMCURJRF9FUlJPUgotCi0vKgotICogIFJlbWFwIGRhdGEgZGlyZWN0aW9uIHZhbHVlcy4KLSAqLwotI2RlZmluZSBDQU1fRElSX05PTkUJCURNQV9OT05FCi0jZGVmaW5lIENBTV9ESVJfSU4JCURNQV9GUk9NX0RFVklDRQotI2RlZmluZSBDQU1fRElSX09VVAkJRE1BX1RPX0RFVklDRQotI2RlZmluZSBDQU1fRElSX1VOS05PV04JCURNQV9CSURJUkVDVElPTkFMCi0KLS8qCiAgKiAgVGhlc2Ugb25lcyBhcmUgdXNlZCBhcyByZXR1cm4gY29kZSBmcm9tIAogICogIGVycm9yIHJlY292ZXJ5IGhhbmRsZXJzIHVuZGVyIExpbnV4LgogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2hpcGQuYyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1faGlwZC5jCmluZGV4IDUwYTE3NmIuLmU3NTNiYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1faGlwZC5jCisrKyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1faGlwZC5jCkBAIC05Nyw3ICs5Nyw3IEBACiBzdGF0aWMgdm9pZCBzeW1fcHJpbnRfbmVnb19tc2coc3RydWN0IHN5bV9oY2IgKm5wLCBpbnQgdGFyZ2V0LCBjaGFyICpsYWJlbCwgdV9jaGFyICptc2cpCiB7CiAJc3RydWN0IHN5bV90Y2IgKnRwID0gJm5wLT50YXJnZXRbdGFyZ2V0XTsKLQlkZXZfaW5mbygmdHAtPnNkZXYtPnNkZXZfdGFyZ2V0LT5kZXYsICIlczogIiwgbGFiZWwpOworCWRldl9pbmZvKCZ0cC0+c3RhcmdldC0+ZGV2LCAiJXM6ICIsIGxhYmVsKTsKIAogCXN5bV9zaG93X21zZyhtc2cpOwogCXByaW50ZigiLlxuIik7CkBAIC0xNDksOCArMTQ5LDEwIEBACiBzdGF0aWMgdm9pZCBzeW1fY2hpcF9yZXNldCAoc3RydWN0IHN5bV9oY2IgKm5wKQogewogCU9VVEIobnAsIG5jX2lzdGF0LCBTUlNUKTsKKwlJTkIobnAsIG5jX21ib3gxKTsKIAl1ZGVsYXkoMTApOwogCU9VVEIobnAsIG5jX2lzdGF0LCAwKTsKKwlJTkIobnAsIG5jX21ib3gxKTsKIAl1ZGVsYXkoMjAwMCk7CS8qIEZvciBCVVMgTU9ERSB0byBzZXR0bGUgKi8KIH0KIApAQCAtMjE2LDYgKzIxOCw3IEBACiAJT1VUQihucCwgbmNfc3Rlc3QzLCBURSk7CiAJT1VUQihucCwgbmNfZGNudGwsIChucC0+cnZfZGNudGwgJiBJUlFNKSk7CiAJT1VUQihucCwgbmNfc2NudGwxLCBDUlNUKTsKKwlJTkIobnAsIG5jX21ib3gxKTsKIAl1ZGVsYXkoMjAwKTsKIAogCWlmICghU1lNX1NFVFVQX1NDU0lfQlVTX0NIRUNLKQpAQCAtMjgwLDggKzI4MywxMCBAQAogCQlpZiAoIWkpCiAJCQlwcmludGYoIiVzOiB0aGUgY2hpcCBjYW5ub3QgbG9jayB0aGUgZnJlcXVlbmN5XG4iLAogCQkJCXN5bV9uYW1lKG5wKSk7Ci0JfSBlbHNlCi0JCXVkZWxheSgoNTArMTApKTsKKwl9IGVsc2UgeworCQlJTkIobnAsIG5jX21ib3gxKTsKKwkJdWRlbGF5KDUwKzEwKTsKKwl9CiAJT1VUQihucCwgbmNfc3Rlc3QzLCBIU0MpOwkJLyogSGFsdCB0aGUgc2NzaSBjbG9jawkqLwogCU9VVEIobnAsIG5jX3NjbnRsMywgc2NudGwzKTsKIAlPVVRCKG5wLCBuY19zdGVzdDEsIChEQkxFTnxEQkxTRUwpKTsvKiBTZWxlY3QgY2xvY2sgbXVsdGlwbGllcgkqLwpAQCAtMTQ0NSw3ICsxNDUwLDcgQEAKIHN0YXRpYyBpbnQgc3ltX3ByZXBhcmVfbmVnbyhzdHJ1Y3Qgc3ltX2hjYiAqbnAsIHN0cnVjdCBzeW1fY2NiICpjcCwgdV9jaGFyICptc2dwdHIpCiB7CiAJc3RydWN0IHN5bV90Y2IgKnRwID0gJm5wLT50YXJnZXRbY3AtPnRhcmdldF07Ci0Jc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0ID0gdHAtPnNkZXYtPnNkZXZfdGFyZ2V0OworCXN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCA9IHRwLT5zdGFyZ2V0OwogCXN0cnVjdCBzeW1fdHJhbnMgKmdvYWwgPSAmdHAtPnRnb2FsOwogCWludCBtc2dsZW4gPSAwOwogCWludCBuZWdvOwpAQCAtMTY5MCw3ICsxNjk1LDcgQEAKIAkJaWYgKGNhbV9zdGF0dXMpCiAJCQlzeW1fc2V0X2NhbV9zdGF0dXMoY21kLCBjYW1fc3RhdHVzKTsKICNpZmRlZiBTWU1fT1BUX0hBTkRMRV9ERVZJQ0VfUVVFVUVJTkcKLQkJaWYgKHN5bV9nZXRfY2FtX3N0YXR1cyhjbWQpID09IENBTV9SRVFVRVVFX1JFUSkgeworCQlpZiAoc3ltX2dldF9jYW1fc3RhdHVzKGNtZCkgPT0gRElEX1NPRlRfRVJST1IpIHsKIAkJCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W2NwLT50YXJnZXRdOwogCQkJc3RydWN0IHN5bV9sY2IgKmxwID0gc3ltX2xwKHRwLCBjcC0+bHVuKTsKIAkJCWlmIChscCkgewpAQCAtMTc5MSwxMiArMTc5NiwxMyBAQAogCS8qCiAJICogIFdha2V1cCBhbGwgcGVuZGluZyBqb2JzLgogCSAqLwotCXN5bV9mbHVzaF9idXN5X3F1ZXVlKG5wLCBDQU1fU0NTSV9CVVNfUkVTRVQpOworCXN5bV9mbHVzaF9idXN5X3F1ZXVlKG5wLCBESURfUkVTRVQpOwogCiAJLyoKIAkgKiAgSW5pdCBjaGlwLgogCSAqLwogCU9VVEIobnAsIG5jX2lzdGF0LCAgMHgwMCk7CQkJLyogIFJlbW92ZSBSZXNldCwgYWJvcnQgKi8KKwlJTkIobnAsIG5jX21ib3gxKTsKIAl1ZGVsYXkoMjAwMCk7IC8qIFRoZSA4OTUgbmVlZHMgdGltZSBmb3IgdGhlIGJ1cyBtb2RlIHRvIHNldHRsZSAqLwogCiAJT1VUQihucCwgbmNfc2NudGwwLCBucC0+cnZfc2NudGwwIHwgMHhjMCk7CkBAIC0xOTA1LDYgKzE5MTEsNyBAQAogCWlmIChucC0+ZmVhdHVyZXMgJiAoRkVfVUxUUkEyfEZFX1VMVFJBMykpIHsKIAkJT1VUT05XKG5wLCBuY19zaWVuLCBTQk1DKTsKIAkJaWYgKHJlYXNvbiA9PSAwKSB7CisJCQlJTkIobnAsIG5jX21ib3gxKTsKIAkJCW1kZWxheSgxMDApOwogCQkJSU5XKG5wLCBuY19zaXN0KTsKIAkJfQpAQCAtMjA3NCw3ICsyMDgxLDcgQEAKIHN0YXRpYyB2b2lkIHN5bV9zZXR3aWRlKHN0cnVjdCBzeW1faGNiICpucCwgaW50IHRhcmdldCwgdV9jaGFyIHdpZGUpCiB7CiAJc3RydWN0IHN5bV90Y2IgKnRwID0gJm5wLT50YXJnZXRbdGFyZ2V0XTsKLQlzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQgPSB0cC0+c2Rldi0+c2Rldl90YXJnZXQ7CisJc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0ID0gdHAtPnN0YXJnZXQ7CiAKIAlpZiAoc3BpX3dpZHRoKHN0YXJnZXQpID09IHdpZGUpCiAJCXJldHVybjsKQEAgLTIxMDIsNyArMjEwOSw3IEBACiAgICAgICAgICAgICB1X2NoYXIgb2ZzLCB1X2NoYXIgcGVyLCB1X2NoYXIgZGl2LCB1X2NoYXIgZmFrKQogewogCXN0cnVjdCBzeW1fdGNiICp0cCA9ICZucC0+dGFyZ2V0W3RhcmdldF07Ci0Jc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0ID0gdHAtPnNkZXYtPnNkZXZfdGFyZ2V0OworCXN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCA9IHRwLT5zdGFyZ2V0OwogCXVfY2hhciB3aWRlID0gKHRwLT5oZWFkLnd2YWwgJiBFV1MpID8gQlVTXzE2X0JJVCA6IEJVU184X0JJVDsKIAogCXN5bV9zZXR0cmFucyhucCwgdGFyZ2V0LCAwLCBvZnMsIHBlciwgd2lkZSwgZGl2LCBmYWspOwpAQCAtMjEyOSw3ICsyMTM2LDcgQEAKICAgICAgICAgICAgICB1X2NoYXIgcGVyLCB1X2NoYXIgd2lkZSwgdV9jaGFyIGRpdiwgdV9jaGFyIGZhaykKIHsKIAlzdHJ1Y3Qgc3ltX3RjYiAqdHAgPSAmbnAtPnRhcmdldFt0YXJnZXRdOwotCXN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCA9IHRwLT5zZGV2LT5zZGV2X3RhcmdldDsKKwlzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQgPSB0cC0+c3RhcmdldDsKIAogCXN5bV9zZXR0cmFucyhucCwgdGFyZ2V0LCBvcHRzLCBvZnMsIHBlciwgd2lkZSwgZGl2LCBmYWspOwogCkBAIC0yOTQ0LDcgKzI5NTEsNyBAQAogICogIERlcXVldWUgZnJvbSB0aGUgU1RBUlQgcXVldWUgYWxsIENDQnMgdGhhdCBtYXRjaCAKICAqICBhIGdpdmVuIHRhcmdldC9sdW4vdGFzayBjb25kaXRpb24gKC0xIG1lYW5zIGFsbCksCiAgKiAgYW5kIG1vdmUgdGhlbSBmcm9tIHRoZSBCVVNZIHF1ZXVlIHRvIHRoZSBDT01QIHF1ZXVlIAotICogIHdpdGggQ0FNX1JFUVVFVUVfUkVRIHN0YXR1cyBjb25kaXRpb24uCisgKiAgd2l0aCBESURfU09GVF9FUlJPUiBzdGF0dXMgY29uZGl0aW9uLgogICogIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgZXJyb3IgaGFuZGxpbmcvcmVjb3ZlcnkuCiAgKiAgSXQgaXMgY2FsbGVkIHdpdGggU0NSSVBUUyBub3QgcnVubmluZy4KICAqLwpAQCAtMjk3NCw3ICsyOTgxLDcgQEAKIAkJaWYgKCh0YXJnZXQgPT0gLTEgfHwgY3AtPnRhcmdldCA9PSB0YXJnZXQpICYmCiAJCSAgICAobHVuICAgID09IC0xIHx8IGNwLT5sdW4gICAgPT0gbHVuKSAgICAmJgogCQkgICAgKHRhc2sgICA9PSAtMSB8fCBjcC0+dGFnICAgID09IHRhc2spKSB7Ci0JCQlzeW1fc2V0X2NhbV9zdGF0dXMoY3AtPmNtZCwgQ0FNX1JFUVVFVUVfUkVRKTsKKwkJCXN5bV9zZXRfY2FtX3N0YXR1cyhjcC0+Y21kLCBESURfU09GVF9FUlJPUik7CiAJCQlzeW1fcmVtcXVlKCZjcC0+bGlua19jY2JxKTsKIAkJCXN5bV9pbnNxdWVfdGFpbCgmY3AtPmxpbmtfY2NicSwgJm5wLT5jb21wX2NjYnEpOwogCQl9CkBAIC0zMDkzLDEzICszMTAwLDEzIEBACiAJCS8qCiAJCSAqICBNZXNzYWdlIHRhYmxlIGluZGlyZWN0IHN0cnVjdHVyZS4KIAkJICovCi0JCWNwLT5waHlzLnNtc2cuYWRkcgk9IGNwdV90b19zY3IoQ0NCX0JBKGNwLCBzY3NpX3Ntc2cyKSk7CisJCWNwLT5waHlzLnNtc2cuYWRkcgk9IENDQl9CQShjcCwgc2NzaV9zbXNnMik7CiAJCWNwLT5waHlzLnNtc2cuc2l6ZQk9IGNwdV90b19zY3IobXNnbGVuKTsKIAogCQkvKgogCQkgKiAgc2Vuc2UgY29tbWFuZAogCQkgKi8KLQkJY3AtPnBoeXMuY21kLmFkZHIJPSBjcHVfdG9fc2NyKENDQl9CQShjcCwgc2Vuc2VjbWQpKTsKKwkJY3AtPnBoeXMuY21kLmFkZHIJPSBDQ0JfQkEoY3AsIHNlbnNlY21kKTsKIAkJY3AtPnBoeXMuY21kLnNpemUJPSBjcHVfdG9fc2NyKDYpOwogCiAJCS8qCkBAIC0zMTE2LDcgKzMxMjMsNyBAQAogCQkgKiAgc2Vuc2UgZGF0YQogCQkgKi8KIAkJbWVtc2V0KGNwLT5zbnNfYmJ1ZiwgMCwgU1lNX1NOU19CQlVGX0xFTik7Ci0JCWNwLT5waHlzLnNlbnNlLmFkZHIJPSBjcHVfdG9fc2NyKENDQl9CQShjcCwgc25zX2JidWYpKTsKKwkJY3AtPnBoeXMuc2Vuc2UuYWRkcgk9IENDQl9CQShjcCwgc25zX2JidWYpOwogCQljcC0+cGh5cy5zZW5zZS5zaXplCT0gY3B1X3RvX3NjcihTWU1fU05TX0JCVUZfTEVOKTsKIAogCQkvKgpAQCAtMzE5OCw3ICszMjA1LDcgQEAKIAkJc3ltX2luc3F1ZV90YWlsKCZjcC0+bGlua19jY2JxLCAmbnAtPmNvbXBfY2NicSk7CiAKIAkJLyogUHJlc2VydmUgdGhlIHNvZnR3YXJlIHRpbWVvdXQgY29uZGl0aW9uICovCi0JCWlmIChzeW1fZ2V0X2NhbV9zdGF0dXMoY21kKSAhPSBDQU1fQ01EX1RJTUVPVVQpCisJCWlmIChzeW1fZ2V0X2NhbV9zdGF0dXMoY21kKSAhPSBESURfVElNRV9PVVQpCiAJCQlzeW1fc2V0X2NhbV9zdGF0dXMoY21kLCBjYW1fc3RhdHVzKTsKIAkJKytpOwogI2lmIDAKQEAgLTMzNjYsNyArMzM3Myw3IEBACiAJCSAqICBNYWtlIHN1cmUgYXQgbGVhc3Qgb3VyIElPIHRvIGFib3J0IGhhcyBiZWVuIGRlcXVldWVkLgogCQkgKi8KICNpZm5kZWYgU1lNX09QVF9IQU5ETEVfREVWSUNFX1FVRVVFSU5HCi0JCWFzc2VydChpICYmIHN5bV9nZXRfY2FtX3N0YXR1cyhjcC0+Y21kKSA9PSBDQU1fUkVRVUVVRV9SRVEpOworCQlhc3NlcnQoaSAmJiBzeW1fZ2V0X2NhbV9zdGF0dXMoY3AtPmNtZCkgPT0gRElEX1NPRlRfRVJST1IpOwogI2Vsc2UKIAkJc3ltX3JlbXF1ZSgmY3AtPmxpbmtfY2NicSk7CiAJCXN5bV9pbnNxdWVfdGFpbCgmY3AtPmxpbmtfY2NicSwgJm5wLT5jb21wX2NjYnEpOwpAQCAtMzM3NSw5ICszMzgyLDkgQEAKIAkJICogIEtlZXAgdHJhY2sgaW4gY2FtIHN0YXR1cyBvZiB0aGUgcmVhc29uIG9mIHRoZSBhYm9ydC4KIAkJICovCiAJCWlmIChjcC0+dG9fYWJvcnQgPT0gMikKLQkJCXN5bV9zZXRfY2FtX3N0YXR1cyhjcC0+Y21kLCBDQU1fQ01EX1RJTUVPVVQpOworCQkJc3ltX3NldF9jYW1fc3RhdHVzKGNwLT5jbWQsIERJRF9USU1FX09VVCk7CiAJCWVsc2UKLQkJCXN5bV9zZXRfY2FtX3N0YXR1cyhjcC0+Y21kLCBDQU1fUkVRX0FCT1JURUQpOworCQkJc3ltX3NldF9jYW1fc3RhdHVzKGNwLT5jbWQsIERJRF9BQk9SVCk7CiAKIAkJLyoKIAkJICogIENvbXBsZXRlIHdpdGggZXJyb3IgZXZlcnl0aGluZyB0aGF0IHdlIGhhdmUgZGVxdWV1ZWQuCkBAIC0zNDkxLDcgKzM0OTgsNyBAQAogCQkgKiAgY29uZGl0aW9ucyBub3QgZHVlIHRvIHRpbWVvdXQuCiAJCSAqLwogCQlpZiAoY3AtPnRvX2Fib3J0ID09IDIpCi0JCQlzeW1fc2V0X2NhbV9zdGF0dXMoY3AtPmNtZCwgQ0FNX0NNRF9USU1FT1VUKTsKKwkJCXN5bV9zZXRfY2FtX3N0YXR1cyhjcC0+Y21kLCBESURfVElNRV9PVVQpOwogCQljcC0+dG9fYWJvcnQgPSAwOyAvKiBXZSBkb25ub3QgZXhwZWN0IHRvIGZhaWwgaGVyZSAqLwogCQlicmVhazsKIApAQCAtMzUwMiw3ICszNTA5LDcgQEAKIAljYXNlIFNJUl9BQk9SVF9TRU5UOgogCQl0YXJnZXQgPSBJTkIobnAsIG5jX3NkaWQpICYgMHhmOwogCQl0cCA9ICZucC0+dGFyZ2V0W3RhcmdldF07Ci0JCXN0YXJnZXQgPSB0cC0+c2Rldi0+c2Rldl90YXJnZXQ7CisJCXN0YXJnZXQgPSB0cC0+c3RhcmdldDsKIAkJCiAJCS8qCiAJCSoqICBJZiB3ZSBkaWRuJ3QgYWJvcnQgYW55dGhpbmcsIGxlYXZlIGhlcmUuCkBAIC0zNTUxLDcgKzM1NTgsNyBAQAogCQkgKi8KIAkJaSA9IChJTkwobnAsIG5jX3NjcmF0Y2hhKSAtIG5wLT5zcXVldWVfYmEpIC8gNDsKIAkJc3ltX2RlcXVldWVfZnJvbV9zcXVldWUobnAsIGksIHRhcmdldCwgbHVuLCAtMSk7Ci0JCXN5bV9jbGVhcl90YXNrcyhucCwgQ0FNX1JFUV9BQk9SVEVELCB0YXJnZXQsIGx1biwgdGFzayk7CisJCXN5bV9jbGVhcl90YXNrcyhucCwgRElEX0FCT1JULCB0YXJnZXQsIGx1biwgdGFzayk7CiAJCXN5bV9mbHVzaF9jb21wX3F1ZXVlKG5wLCAwKTsKIAogIAkJLyoKQEAgLTM1NjYsNyArMzU3Myw3IEBACiAJICogIFByaW50IHRvIHRoZSBsb2cgdGhlIG1lc3NhZ2Ugd2UgaW50ZW5kIHRvIHNlbmQuCiAJICovCiAJaWYgKG51bSA9PSBTSVJfVEFSR0VUX1NFTEVDVEVEKSB7Ci0JCWRldl9pbmZvKCZ0cC0+c2Rldi0+c2Rldl90YXJnZXQtPmRldiwgImNvbnRyb2wgbXNnb3V0OiIpOworCQlkZXZfaW5mbygmdHAtPnN0YXJnZXQtPmRldiwgImNvbnRyb2wgbXNnb3V0OiIpOwogCQlzeW1fcHJpbnRsX2hleChucC0+YWJydF9tc2csIG5wLT5hYnJ0X3RibC5zaXplKTsKIAkJbnAtPmFicnRfdGJsLnNpemUgPSBjcHVfdG9fc2NyKG5wLT5hYnJ0X3RibC5zaXplKTsKIAl9CkBAIC0zODc3LDYgKzM4ODQsOCBAQAogCQlyZXNpZCArPSAodG1wICYgMHhmZmZmZmYpOwogCX0KIAorCXJlc2lkIC09IGNwLT5vZGRfYnl0ZV9hZGp1c3RtZW50OworCiAJLyoKIAkgKiAgSG9wZWZ1bGx5LCB0aGUgcmVzdWx0IGlzIG5vdCB0b28gd3JvbmcuCiAJICovCkBAIC00NzU4LDEwICs0NzY3LDggQEAKIAl9CiAKICNlbmRpZgotCS8qCi0JICogIFJlbWVtYmVyIGFsbCBpbmZvcm1hdGlvbnMgbmVlZGVkIHRvIGZyZWUgdGhpcyBDQ0IuCi0JICovCiAJY3AtPnRvX2Fib3J0ID0gMDsKKwljcC0+b2RkX2J5dGVfYWRqdXN0bWVudCA9IDA7CiAJY3AtPnRhZwkgICA9IHRhZzsKIAljcC0+b3JkZXIgID0gdGFnX29yZGVyOwogCWNwLT50YXJnZXQgPSB0bjsKQEAgLTUxMDQsNyArNTExMSw3IEBACiAJbHAtPml0bHFfdGJsID0gc3ltX2NhbGxvY19kbWEoU1lNX0NPTkZfTUFYX1RBU0sqNCwgIklUTFFfVEJMIik7CiAJaWYgKCFscC0+aXRscV90YmwpCiAJCWdvdG8gZmFpbDsKLQlscC0+Y2JfdGFncyA9IGtjYWxsb2MoU1lNX0NPTkZfTUFYX1RBU0ssIDEsIEdGUF9LRVJORUwpOworCWxwLT5jYl90YWdzID0ga2NhbGxvYyhTWU1fQ09ORl9NQVhfVEFTSywgMSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFscC0+Y2JfdGFncykgewogCQlzeW1fbWZyZWVfZG1hKGxwLT5pdGxxX3RibCwgU1lNX0NPTkZfTUFYX1RBU0sqNCwgIklUTFFfVEJMIik7CiAJCWxwLT5pdGxxX3RibCA9IE5VTEw7CkBAIC01MjQzLDcgKzUyNTAsNyBAQAogCS8qCiAJICogIG1lc3NhZ2UKIAkgKi8KLQljcC0+cGh5cy5zbXNnLmFkZHIJPSBjcHVfdG9fc2NyKENDQl9CQShjcCwgc2NzaV9zbXNnKSk7CisJY3AtPnBoeXMuc21zZy5hZGRyCT0gQ0NCX0JBKGNwLCBzY3NpX3Ntc2cpOwogCWNwLT5waHlzLnNtc2cuc2l6ZQk9IGNwdV90b19zY3IobXNnbGVuKTsKIAogCS8qCkBAIC01MzQzLDcgKzUzNTAsNyBAQAogfQogCiAvKgotICogIENvbXBsZXRlIGV4ZWN1dGlvbiBvZiBhIFNDU0kgY29tbWFuZCB3aXRoIGV4dGVudGVkIAorICogIENvbXBsZXRlIGV4ZWN1dGlvbiBvZiBhIFNDU0kgY29tbWFuZCB3aXRoIGV4dGVuZGVkIAogICogIGVycm9yLCBTQ1NJIHN0YXR1cyBlcnJvciwgb3IgaGF2aW5nIGJlZW4gYXV0by1zZW5zZWQuCiAgKgogICogIFRoZSBTQ1JJUFRTIHByb2Nlc3NvciBpcyBub3QgcnVubmluZyB0aGVyZSwgc28gd2UgCkBAIC01NDQxLDcgKzU0NDgsNyBAQAogCQkvKgogCQkgKiAgTGV0J3MgcmVxdWV1ZSBpdCB0byBkZXZpY2UuCiAJCSAqLwotCQlzeW1fc2V0X2NhbV9zdGF0dXMoY21kLCBDQU1fUkVRVUVVRV9SRVEpOworCQlzeW1fc2V0X2NhbV9zdGF0dXMoY21kLCBESURfU09GVF9FUlJPUik7CiAJCWdvdG8gZmluaXNoOwogCX0KIHdlaXJkbmVzczoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1faGlwZC5oIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmgKaW5kZXggYTk1Y2JlNC4uYzU1YzdhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmgKKysrIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQAogCSAqLwogCXVfY2hhcgl1c3JmbGFnczsKIAl1X3Nob3J0CXVzcnRhZ3M7Ci0Jc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2OworCXN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldDsKIH07CiAKIC8qCkBAIC03NTQsMTAgKzc1NCw4IEBACiAJaW50CXNlZ21lbnRzOwkvKiBOdW1iZXIgb2YgU0cgc2VnbWVudHMJKi8KIAogCXU4CW9yZGVyOwkJLyogVGFnIHR5cGUgKGlmIHRhZ2dlZCBjb21tYW5kKQkqLworCXVuc2lnbmVkIGNoYXIgb2RkX2J5dGVfYWRqdXN0bWVudDsJLyogb2RkLXNpemVkIHJlcSBvbiB3aWRlIGJ1cyAqLwogCi0JLyoKLQkgKiAgTWlzY2VsbGFuZW91cyBzdGF0dXMnLgotCSAqLwogCXVfY2hhcgluZWdvX3N0YXR1czsJLyogTmVnb3RpYXRpb24gc3RhdHVzCQkqLwogCXVfY2hhcgl4ZXJyX3N0YXR1czsJLyogRXh0ZW5kZWQgZXJyb3IgZmxhZ3MJCSovCiAJdTMyCWV4dHJhX2J5dGVzOwkvKiBFeHRyYW5lb3VzIGJ5dGVzIHRyYW5zZmVycmVkCSovCkBAIC04MDksNyArODA3LDcgQEAKICNlbmRpZgogfTsKIAotI2RlZmluZSBDQ0JfQkEoY3AsbGJsKQkoY3AtPmNjYl9iYSArIG9mZnNldG9mKHN0cnVjdCBzeW1fY2NiLCBsYmwpKQorI2RlZmluZSBDQ0JfQkEoY3AsbGJsKQljcHVfdG9fc2NyKGNwLT5jY2JfYmEgKyBvZmZzZXRvZihzdHJ1Y3Qgc3ltX2NjYiwgbGJsKSkKIAogI2lmZGVmCVNZTV9PUFRfSEFORExFX0RJUl9VTktOT1dOCiAjZGVmaW5lCXN5bV9nb2FscChjcCkgKChjcC0+aG9zdF9mbGFncyAmIEhGX0RBVEFfSU4pID8gY3AtPmdvYWxwIDogY3AtPndnb2FscCkKQEAgLTExMzgsMzMgKzExMzYsMzMgQEAKIAkgKiAgTm8gc2VnbWVudHMgbWVhbnMgbm8gZGF0YS4KIAkgKi8KIAlpZiAoIWNwLT5zZWdtZW50cykKLQkJZGlyID0gQ0FNX0RJUl9OT05FOworCQlkaXIgPSBETUFfTk9ORTsKIAogCS8qCiAJICogIFNldCB0aGUgZGF0YSBwb2ludGVyLgogCSAqLwogCXN3aXRjaChkaXIpIHsKICNpZmRlZglTWU1fT1BUX0hBTkRMRV9ESVJfVU5LTk9XTgotCWNhc2UgQ0FNX0RJUl9VTktOT1dOOgorCWNhc2UgRE1BX0JJRElSRUNUSU9OQUw6CiAjZW5kaWYKLQljYXNlIENBTV9ESVJfT1VUOgorCWNhc2UgRE1BX1RPX0RFVklDRToKIAkJZ29hbHAgPSBTQ1JJUFRBX0JBKG5wLCBkYXRhX291dDIpICsgODsKIAkJbGFzdHAgPSBnb2FscCAtIDggLSAoY3AtPnNlZ21lbnRzICogKDIqNCkpOwogI2lmZGVmCVNZTV9PUFRfSEFORExFX0RJUl9VTktOT1dOCiAJCWNwLT53Z29hbHAgPSBjcHVfdG9fc2NyKGdvYWxwKTsKLQkJaWYgKGRpciAhPSBDQU1fRElSX1VOS05PV04pCisJCWlmIChkaXIgIT0gRE1BX0JJRElSRUNUSU9OQUwpCiAJCQlicmVhazsKIAkJY3AtPnBoeXMuaGVhZC53bGFzdHAgPSBjcHVfdG9fc2NyKGxhc3RwKTsKIAkJLyogZmFsbCB0aHJvdWdoICovCiAjZWxzZQogCQlicmVhazsKICNlbmRpZgotCWNhc2UgQ0FNX0RJUl9JTjoKKwljYXNlIERNQV9GUk9NX0RFVklDRToKIAkJY3AtPmhvc3RfZmxhZ3MgfD0gSEZfREFUQV9JTjsKIAkJZ29hbHAgPSBTQ1JJUFRBX0JBKG5wLCBkYXRhX2luMikgKyA4OwogCQlsYXN0cCA9IGdvYWxwIC0gOCAtIChjcC0+c2VnbWVudHMgKiAoMio0KSk7CiAJCWJyZWFrOwotCWNhc2UgQ0FNX0RJUl9OT05FOgorCWNhc2UgRE1BX05PTkU6CiAJZGVmYXVsdDoKICNpZmRlZglTWU1fT1BUX0hBTkRMRV9ESVJfVU5LTk9XTgogCQljcC0+aG9zdF9mbGFncyB8PSBIRl9EQVRBX0lOOwpAQCAtMTE4NSw3ICsxMTgzLDcgQEAKIAkvKgogCSAqICBJZiBkaXJlY3Rpb24gaXMgdW5rbm93biwgc3RhcnQgYXQgZGF0YV9pby4KIAkgKi8KLQlpZiAoZGlyID09IENBTV9ESVJfVU5LTk9XTikKKwlpZiAoZGlyID09IERNQV9CSURJUkVDVElPTkFMKQogCQljcC0+cGh5cy5oZWFkLnNhdmVwID0gY3B1X3RvX3NjcihTQ1JJUFRCX0JBKG5wLCBkYXRhX2lvKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1fbnZyYW0uYyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1fbnZyYW0uYwppbmRleCAxYjcyMWUzLi5jZDkxNDBlMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW1fbnZyYW0uYworKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX252cmFtLmMKQEAgLTI3MCw2ICsyNzAsNyBAQAogCiAJfQogCU9VVEIobnAsIG5jX2dwcmVnLCAqZ3ByZWcpOworCUlOQihucCwgbmNfbWJveDEpOwogCXVkZWxheSg1KTsKIH0KIApAQCAtNTQ3LDYgKzU0OCw3IEBACiBzdGF0aWMgdm9pZCBUOTNDNDZfQ2xrKHN0cnVjdCBzeW1fZGV2aWNlICpucCwgdV9jaGFyICpncHJlZykKIHsKIAlPVVRCKG5wLCBuY19ncHJlZywgKmdwcmVnIHwgMHgwNCk7CisJSU5CKG5wLCBuY19tYm94MSk7CiAJdWRlbGF5KDIpOwogCU9VVEIobnAsIG5jX2dwcmVnLCAqZ3ByZWcpOwogfQpAQCAtNTc0LDYgKzU3Niw3IEBACiAJKmdwcmVnIHw9IDB4MTA7CiAJCQogCU9VVEIobnAsIG5jX2dwcmVnLCAqZ3ByZWcpOworCUlOQihucCwgbmNfbWJveDEpOwogCXVkZWxheSgyKTsKIAogCVQ5M0M0Nl9DbGsobnAsIGdwcmVnKTsKQEAgLTU4Niw2ICs1ODksNyBAQAogewogCSpncHJlZyAmPSAweGVmOwogCU9VVEIobnAsIG5jX2dwcmVnLCAqZ3ByZWcpOworCUlOQihucCwgbmNfbWJveDEpOwogCXVkZWxheSgyKTsKIAogCVQ5M0M0Nl9DbGsobnAsIGdwcmVnKTsKQEAgLTczMyw3ICs3MzcsOCBAQAogCXJldHVybiBTWU1fUEFSSVNDX1BEQzsKIH0KICNlbHNlCi1zdGF0aWMgaW50IHN5bV9yZWFkX3BhcmlzY19wZGMoc3RydWN0IHN5bV9kZXZpY2UgKm5wLCBzdHJ1Y3QgcGRjX2luaXRpYXRvciAqeCkKK3N0YXRpYyBpbmxpbmUgaW50IHN5bV9yZWFkX3BhcmlzY19wZGMoc3RydWN0IHN5bV9kZXZpY2UgKm5wLAorCQkJCQlzdHJ1Y3QgcGRjX2luaXRpYXRvciAqeCkKIHsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS90MTI4LmMgYi9kcml2ZXJzL3Njc2kvdDEyOC5jCmluZGV4IDZkYzI4OTcuLmY0Yjc4MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS90MTI4LmMKKysrIGIvZHJpdmVycy9zY3NpL3QxMjguYwpAQCAtNDM3LDggKzQzNyw2IEBACiAJLnF1ZXVlY29tbWFuZCAgID0gdDEyOF9xdWV1ZV9jb21tYW5kLAogCS5laF9hYm9ydF9oYW5kbGVyID0gdDEyOF9hYm9ydCwKIAkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIgICAgPSB0MTI4X2J1c19yZXNldCwKLQkuZWhfaG9zdF9yZXNldF9oYW5kbGVyICAgPSB0MTI4X2hvc3RfcmVzZXQsCi0JLmVoX2RldmljZV9yZXNldF9oYW5kbGVyID0gdDEyOF9kZXZpY2VfcmVzZXQsCiAJLmJpb3NfcGFyYW0gICAgID0gdDEyOF9iaW9zcGFyYW0sCiAJLmNhbl9xdWV1ZSAgICAgID0gQ0FOX1FVRVVFLAogICAgICAgICAudGhpc19pZCAgICAgICAgPSA3LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3QxMjguaCBiL2RyaXZlcnMvc2NzaS90MTI4LmgKaW5kZXggMTYxYmE1My4uOWFkMWQ2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3QxMjguaAorKysgYi9kcml2ZXJzL3Njc2kvdDEyOC5oCkBAIC05Niw5ICs5Niw3IEBACiAJCQkgIHNlY3Rvcl90LCBpbnQqKTsKIHN0YXRpYyBpbnQgdDEyOF9kZXRlY3QoU2NzaV9Ib3N0X1RlbXBsYXRlICopOwogc3RhdGljIGludCB0MTI4X3F1ZXVlX2NvbW1hbmQoU2NzaV9DbW5kICosIHZvaWQgKCpkb25lKShTY3NpX0NtbmQgKikpOwotc3RhdGljIGludCB0MTI4X2hvc3RfcmVzZXQoU2NzaV9DbW5kICopOwogc3RhdGljIGludCB0MTI4X2J1c19yZXNldChTY3NpX0NtbmQgKik7Ci1zdGF0aWMgaW50IHQxMjhfZGV2aWNlX3Jlc2V0KFNjc2lfQ21uZCAqKTsKIAogI2lmbmRlZiBDTURfUEVSX0xVTgogI2RlZmluZSBDTURfUEVSX0xVTiAyCkBAIC0xNDAsOCArMTM4LDYgQEAKICNkZWZpbmUgZG9fTkNSNTM4MF9pbnRyIGRvX3QxMjhfaW50cgogI2RlZmluZSBOQ1I1MzgwX3F1ZXVlX2NvbW1hbmQgdDEyOF9xdWV1ZV9jb21tYW5kCiAjZGVmaW5lIE5DUjUzODBfYWJvcnQgdDEyOF9hYm9ydAotI2RlZmluZSBOQ1I1MzgwX2hvc3RfcmVzZXQgdDEyOF9ob3N0X3Jlc2V0Ci0jZGVmaW5lIE5DUjUzODBfZGV2aWNlX3Jlc2V0IHQxMjhfZGV2aWNlX3Jlc2V0CiAjZGVmaW5lIE5DUjUzODBfYnVzX3Jlc2V0IHQxMjhfYnVzX3Jlc2V0CiAjZGVmaW5lIE5DUjUzODBfcHJvY19pbmZvIHQxMjhfcHJvY19pbmZvCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS90bXNjc2ltLmMgYi9kcml2ZXJzL3Njc2kvdG1zY3NpbS5jCmluZGV4IGVlOWRmMDIuLjk1ODljNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS90bXNjc2ltLmMKKysrIGIvZHJpdmVycy9zY3NpL3Rtc2NzaW0uYwpAQCAtMjEyMCw2ICsyMTIwLDggQEAKIAlzdHJ1Y3QgZGMzOTBfYWNiKiAgICBwQUNCID0gKHN0cnVjdCBkYzM5MF9hY2IqKSBjbWQtPmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CiAJdTggICBidmFsOwogCisJc3Bpbl9sb2NrX2lycShjbWQtPmRldmljZS0+aG9zdC0+aG9zdF9sb2NrKTsKKwogCWJ2YWwgPSBEQzM5MF9yZWFkOChDdHJsUmVnMSkgfCBESVNfSU5UX09OX1NDU0lfUlNUOwogCURDMzkwX3dyaXRlOChDdHJsUmVnMSwgYnZhbCk7CS8qIGRpc2FibGUgSVJRIG9uIGJ1cyByZXNldCAqLwogCkBAIC0yMTI3LDcgKzIxMjksNyBAQAogCWRjMzkwX1Jlc2V0U0NTSUJ1cyhwQUNCKTsKIAogCWRjMzkwX1Jlc2V0RGV2UGFyYW0ocEFDQik7Ci0JdWRlbGF5KDEwMDApOworCW1kZWxheSgxKTsKIAlwQUNCLT5wU2NzaUhvc3QtPmxhc3RfcmVzZXQgPSBqaWZmaWVzICsgMypIWi8yIAogCQkrIEhaICogZGMzOTBfZWVwcm9tQnVmW3BBQ0ItPkFkYXB0ZXJJbmRleF1bRUVfREVMQVldOwogICAgIApAQCAtMjE0Miw2ICsyMTQ0LDggQEAKIAlidmFsID0gREMzOTBfcmVhZDgoQ3RybFJlZzEpICYgfkRJU19JTlRfT05fU0NTSV9SU1Q7CiAJREMzOTBfd3JpdGU4KEN0cmxSZWcxLCBidmFsKTsJLyogcmUtZW5hYmxlIGludGVycnVwdCAqLwogCisJc3Bpbl91bmxvY2tfaXJxKGNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOworCiAJcmV0dXJuIFNVQ0NFU1M7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS91MTQtMzRmLmMgYi9kcml2ZXJzL3Njc2kvdTE0LTM0Zi5jCmluZGV4IGRjYTIxNTQuLjk4MzY5Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS91MTQtMzRmLmMKKysrIGIvZHJpdmVycy9zY3NpL3UxNC0zNGYuYwpAQCAtNDQ2LDggKzQ0Niw2IEBACiAgICAgICAgICAgICAgICAgLnJlbGVhc2UgICAgICAgICAgICAgICAgID0gdTE0XzM0Zl9yZWxlYXNlLAogICAgICAgICAgICAgICAgIC5xdWV1ZWNvbW1hbmQgICAgICAgICAgICA9IHUxNF8zNGZfcXVldWVjb21tYW5kLAogICAgICAgICAgICAgICAgIC5laF9hYm9ydF9oYW5kbGVyICAgICAgICA9IHUxNF8zNGZfZWhfYWJvcnQsCi0gICAgICAgICAgICAgICAgLmVoX2RldmljZV9yZXNldF9oYW5kbGVyID0gTlVMTCwKLSAgICAgICAgICAgICAgICAuZWhfYnVzX3Jlc2V0X2hhbmRsZXIgICAgPSBOVUxMLAogICAgICAgICAgICAgICAgIC5laF9ob3N0X3Jlc2V0X2hhbmRsZXIgICA9IHUxNF8zNGZfZWhfaG9zdF9yZXNldCwKICAgICAgICAgICAgICAgICAuYmlvc19wYXJhbSAgICAgICAgICAgICAgPSB1MTRfMzRmX2Jpb3NfcGFyYW0sCiAgICAgICAgICAgICAgICAgLnNsYXZlX2NvbmZpZ3VyZSAgICAgICAgID0gdTE0XzM0Zl9zbGF2ZV9jb25maWd1cmUsCkBAIC0xNDE5LDE2ICsxNDE3LDIwIEBACiAgICBwcmludGsoIiVzOiByZXNldCwgZW50ZXIsIHRhcmdldCAlZC4lZDolZCwgcGlkICVsZC5cbiIsCiAgICAgICAgICAgQk4oaiksIFNDYXJnLT5kZXZpY2UtPmNoYW5uZWwsIFNDYXJnLT5kZXZpY2UtPmlkLCBTQ2FyZy0+ZGV2aWNlLT5sdW4sIFNDYXJnLT5waWQpOwogCisgICBzcGluX2xvY2tfaXJxKHNoW2pdLT5ob3N0X2xvY2spOworCiAgICBpZiAoU0NhcmctPmhvc3Rfc2NyaWJibGUgPT0gTlVMTCkKICAgICAgIHByaW50aygiJXM6IHJlc2V0LCBwaWQgJWxkIGluYWN0aXZlLlxuIiwgQk4oaiksIFNDYXJnLT5waWQpOwogCiAgICBpZiAoSEQoaiktPmluX3Jlc2V0KSB7CiAgICAgICBwcmludGsoIiVzOiByZXNldCwgZXhpdCwgYWxyZWFkeSBpbiByZXNldC5cbiIsIEJOKGopKTsKKyAgICAgIHNwaW5fdW5sb2NrX2lycShzaFtqXS0+aG9zdF9sb2NrKTsKICAgICAgIHJldHVybiBGQUlMRUQ7CiAgICAgICB9CiAKICAgIGlmICh3YWl0X29uX2J1c3koc2hbal0tPmlvX3BvcnQsIE1BWExPT1ApKSB7CiAgICAgICBwcmludGsoIiVzOiByZXNldCwgZXhpdCwgdGltZW91dCBlcnJvci5cbiIsIEJOKGopKTsKKyAgICAgIHNwaW5fdW5sb2NrX2lycShzaFtqXS0+aG9zdF9sb2NrKTsKICAgICAgIHJldHVybiBGQUlMRUQ7CiAgICAgICB9CiAKQEAgLTE0NzksNiArMTQ4MSw3IEBACiAKICAgIGlmICh3YWl0X29uX2J1c3koc2hbal0tPmlvX3BvcnQsIE1BWExPT1ApKSB7CiAgICAgICBwcmludGsoIiVzOiByZXNldCwgY2Fubm90IHJlc2V0LCB0aW1lb3V0IGVycm9yLlxuIiwgQk4oaikpOworICAgICAgc3Bpbl91bmxvY2tfaXJxKHNoW2pdLT5ob3N0X2xvY2spOwogICAgICAgcmV0dXJuIEZBSUxFRDsKICAgICAgIH0KIApAQCAtMTU0MCw2ICsxNTQzLDcgQEAKICAgIGlmIChhcmdfZG9uZSkgcHJpbnRrKCIlczogcmVzZXQsIGV4aXQsIHBpZCAlbGQgZG9uZS5cbiIsIEJOKGopLCBTQ2FyZy0+cGlkKTsKICAgIGVsc2UgICAgICAgICAgcHJpbnRrKCIlczogcmVzZXQsIGV4aXQuXG4iLCBCTihqKSk7CiAKKyAgIHNwaW5fdW5sb2NrX2lycShzaFtqXS0+aG9zdF9sb2NrKTsKICAgIHJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvdWx0cmFzdG9yLmMgYi9kcml2ZXJzL3Njc2kvdWx0cmFzdG9yLmMKaW5kZXggOTdmNGQ5MS4uNDg2NTUxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3VsdHJhc3Rvci5jCisrKyBiL2RyaXZlcnMvc2NzaS91bHRyYXN0b3IuYwpAQCAtODc5LDcgKzg3OSw3IEBACiAJb2dtX2FkZHIgPSAodW5zaWduZWQgaW50KWlzYV9idXNfdG9fdmlydChpbmwocG9ydDAgKyAyMykpOwogCWljbV9zdGF0dXMgPSBpbmIocG9ydDAgKyAyNyk7CiAJaWNtX2FkZHIgPSAodW5zaWduZWQgaW50KWlzYV9idXNfdG9fdmlydChpbmwocG9ydDAgKyAyOCkpOwotCXNwaW5fbG9ja19pcnFzYXZlKGhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAgICAgICB9CiAKICAgICAvKiBGaXJzdCBjaGVjayB0byBzZWUgaWYgYW4gaW50ZXJydXB0IGlzIHBlbmRpbmcuICBJIHN1c3BlY3QgdGhlIFNpUwpAQCAtOTU0LDkgKzk1NCw3IEBACiAgICAgU0NwbnQtPnJlc3VsdCA9IERJRF9BQk9SVCA8PCAxNjsKICAgICAKICAgICAvKiBUYWtlIHRoZSBob3N0IGxvY2sgdG8gZ3VhcmQgYWdhaW5zdCBzY3NpIGxheWVyIHJlLWVudHJ5ICovCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7CiAgICAgZG9uZShTQ3BudCk7Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKIAogICAgIC8qIE5lZWQgdG8gc2V0IGEgdGltZW91dCBoZXJlIGluIGNhc2UgY29tbWFuZCBuZXZlciBjb21wbGV0ZXMuICAqLwogICAgIHJldHVybiBTVUNDRVNTOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3dkNzAwMC5jIGIvZHJpdmVycy9zY3NpL3dkNzAwMC5jCmluZGV4IGJmNGE3NTguLmZiNTRhODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS93ZDcwMDAuYworKysgYi9kcml2ZXJzL3Njc2kvd2Q3MDAwLmMKQEAgLTE1ODYsOSArMTU4NiwxNiBAQAogewogCUFkYXB0ZXIgKmhvc3QgPSAoQWRhcHRlciAqKSBTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKIAotCWlmICh3ZDcwMDBfYWRhcHRlcl9yZXNldChob3N0KSA8IDApCisJc3Bpbl91bmxvY2tfaXJxKFNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RfbG9jayk7CisKKwlpZiAod2Q3MDAwX2FkYXB0ZXJfcmVzZXQoaG9zdCkgPCAwKSB7CisJCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCQlyZXR1cm4gRkFJTEVEOworCX0KKwogCXdkNzAwMF9lbmFibGVfaW50cihob3N0KTsKKworCXNwaW5fdW5sb2NrX2lycShTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0X2xvY2spOwogCXJldHVybiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zYTExMDAuYyBiL2RyaXZlcnMvc2VyaWFsL3NhMTEwMC5jCmluZGV4IDIyNTY1YTYuLjk4NjQxYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3NhMTEwMC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL3NhMTEwMC5jCkBAIC0xOTcsNyArMTk3LDcgQEAKIHNhMTEwMF9yeF9jaGFycyhzdHJ1Y3Qgc2ExMTAwX3BvcnQgKnNwb3J0LCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gc3BvcnQtPnBvcnQuaW5mby0+dHR5OwotCXVuc2lnbmVkIGludCBzdGF0dXMsIGNoLCBmbGcsIGlnbm9yZWQgPSAwOworCXVuc2lnbmVkIGludCBzdGF0dXMsIGNoLCBmbGc7CiAKIAlzdGF0dXMgPSBVVFNSMV9UT19TTShVQVJUX0dFVF9VVFNSMShzcG9ydCkpIHwKIAkJIFVUU1IwX1RPX1NNKFVBUlRfR0VUX1VUU1IwKHNwb3J0KSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC92cjQxeHhfc2l1LmMgYi9kcml2ZXJzL3NlcmlhbC92cjQxeHhfc2l1LmMKaW5kZXggNWQyY2ViNi4uMWY5ODUzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvdnI0MXh4X3NpdS5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL3ZyNDF4eF9zaXUuYwpAQCAtMjM0LDcgKzIzNCw3IEBACiAJCXJldHVybiAiRFNJVSI7CiAJfQogCi0JcmV0dXJuICJ1bmtub3duIjsKKwlyZXR1cm4gTlVMTDsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGludCBzaXVfdHhfZW1wdHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKQEAgLTQ4Miw5ICs0ODIsNiBAQAogCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQ7CiAJdWludDhfdCBpaXIsIGxzcjsKIAotCWlmIChkZXZfaWQgPT0gTlVMTCkKLQkJcmV0dXJuIElSUV9OT05FOwotCiAJcG9ydCA9IChzdHJ1Y3QgdWFydF9wb3J0ICopZGV2X2lkOwogCiAJaWlyID0gc2l1X3JlYWQocG9ydCwgVUFSVF9JSVIpOwpAQCAtNTA3LDYgKzUwNCw5IEBACiB7CiAJaW50IHJldHZhbDsKIAorCWlmIChwb3J0LT5tZW1iYXNlID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCiAJc2l1X2NsZWFyX2ZpZm8ocG9ydCk7CiAKIAkodm9pZClzaXVfcmVhZChwb3J0LCBVQVJUX0xTUik7CkBAIC01NDUsOSArNTQ1LDYgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVpbnQ4X3QgbGNyOwogCi0JaWYgKHBvcnQtPm1lbWJhc2UgPT0gTlVMTCkKLQkJcmV0dXJuOwotCiAJc2l1X3dyaXRlKHBvcnQsIFVBUlRfSUVSLCAwKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CkBAIC04MDIsNTMgKzc5OSw2IEBACiAKICNpZmRlZiBDT05GSUdfU0VSSUFMX1ZSNDFYWF9DT05TT0xFCiAKLXN0YXRpYyB2b2lkIGVhcmx5X3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCB0ZXJtaW9zICpuZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGVybWlvcyAqb2xkKQotewotCXRjZmxhZ190IGNfY2ZsYWc7Ci0JdWludDhfdCBsY3I7Ci0JdW5zaWduZWQgaW50IGJhdWQsIHF1b3Q7Ci0KLQljX2NmbGFnID0gbmV3LT5jX2NmbGFnOwotCXN3aXRjaCAoY19jZmxhZyAmIENTSVpFKSB7Ci0JY2FzZSBDUzU6Ci0JCWxjciA9IFVBUlRfTENSX1dMRU41OwotCQlicmVhazsKLQljYXNlIENTNjoKLQkJbGNyID0gVUFSVF9MQ1JfV0xFTjY7Ci0JCWJyZWFrOwotCWNhc2UgQ1M3OgotCQlsY3IgPSBVQVJUX0xDUl9XTEVONzsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJbGNyID0gVUFSVF9MQ1JfV0xFTjg7Ci0JCWJyZWFrOwotCX0KLQotCWlmIChjX2NmbGFnICYgQ1NUT1BCKQotCQlsY3IgfD0gVUFSVF9MQ1JfU1RPUDsKLQlpZiAoY19jZmxhZyAmIFBBUkVOQikKLQkJbGNyIHw9IFVBUlRfTENSX1BBUklUWTsKLQlpZiAoKGNfY2ZsYWcgJiBQQVJPREQpICE9IFBBUk9ERCkKLQkJbGNyIHw9IFVBUlRfTENSX0VQQVI7Ci0JaWYgKGNfY2ZsYWcgJiBDTVNQQVIpCi0JCWxjciB8PSBVQVJUX0xDUl9TUEFSOwotCi0JYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCBuZXcsIG9sZCwgMCwgcG9ydC0+dWFydGNsay8xNik7Ci0JcXVvdCA9IHVhcnRfZ2V0X2Rpdmlzb3IocG9ydCwgYmF1ZCk7Ci0KLQlzaXVfd3JpdGUocG9ydCwgVUFSVF9MQ1IsIGxjciB8IFVBUlRfTENSX0RMQUIpOwotCi0Jc2l1X3dyaXRlKHBvcnQsIFVBUlRfRExMLCAodWludDhfdClxdW90KTsKLQlzaXVfd3JpdGUocG9ydCwgVUFSVF9ETE0sICh1aW50OF90KShxdW90ID4+IDgpKTsKLQotCXNpdV93cml0ZShwb3J0LCBVQVJUX0xDUiwgbGNyKTsKLX0KLQotc3RhdGljIHN0cnVjdCB1YXJ0X29wcyBlYXJseV91YXJ0X29wcyA9IHsKLQkuc2V0X3Rlcm1pb3MJPSBlYXJseV9zZXRfdGVybWlvcywKLX07Ci0KICNkZWZpbmUgQk9USF9FTVBUWQkoVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkUpCiAKIHN0YXRpYyB2b2lkIHdhaXRfZm9yX3htaXRyKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCkBAIC05MTUsNyArODY1LDcgQEAKIAlpZiAocG9ydC0+bWVtYmFzZSA9PSBOVUxMKSB7CiAJCWlmIChwb3J0LT5tYXBiYXNlID09IDApCiAJCQlyZXR1cm4gLUVOT0RFVjsKLQkJcG9ydC0+bWVtYmFzZSA9ICh1bnNpZ25lZCBjaGFyIF9faW9tZW0gKilLU0VHMUFERFIocG9ydC0+bWFwYmFzZSk7CisJCXBvcnQtPm1lbWJhc2UgPSBpb3JlbWFwKHBvcnQtPm1hcGJhc2UsIHNpdV9wb3J0X3NpemUocG9ydCkpOwogCX0KIAogCXZyNDF4eF9zZWxlY3Rfc2l1X2ludGVyZmFjZShTSVVfSU5URVJGQUNFX1JTMjMyQyk7CkBAIC05NDksNyArODk5LDcgQEAKIAogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewogCQlwb3J0ID0gJnNpdV91YXJ0X3BvcnRzW2ldOwotCQlwb3J0LT5vcHMgPSAmZWFybHlfdWFydF9vcHM7CisJCXBvcnQtPm9wcyA9ICZzaXVfdWFydF9vcHM7CiAJfQogCiAJcmVnaXN0ZXJfY29uc29sZSgmc2l1X2NvbnNvbGUpOwpAQCAtOTk0LDggKzk0NCwxMCBAQAogCQlwb3J0LT5kZXYgPSBkZXY7CiAKIAkJcmV0dmFsID0gdWFydF9hZGRfb25lX3BvcnQoJnNpdV91YXJ0X2RyaXZlciwgcG9ydCk7Ci0JCWlmIChyZXR2YWwpCisJCWlmIChyZXR2YWwgPCAwKSB7CisJCQlwb3J0LT5kZXYgPSBOVUxMOwogCQkJYnJlYWs7CisJCX0KIAl9CiAKIAlpZiAoaSA9PSAwICYmIHJldHZhbCA8IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1odWIuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1odWIuYwppbmRleCA0MjkzMzBiYy4uZDdiNGY3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWh1Yi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1odWIuYwpAQCAtNDM5LDkgKzQzOSwxMiBAQAogCQkJLyogZm9yY2UgcmVzZXQgdG8gY29tcGxldGUgKi8KIAkJCXdyaXRlbCAodGVtcCAmIH5QT1JUX1JFU0VULAogCQkJCQkmZWhjaS0+cmVncy0+cG9ydF9zdGF0dXMgW3dJbmRleF0pOworCQkJLyogUkVWSVNJVDogIHNvbWUgaGFyZHdhcmUgbmVlZHMgNTUwKyB1c2VjIHRvIGNsZWFyCisJCQkgKiB0aGlzIGJpdDsgc2VlbXMgdG9vIGxvbmcgdG8gc3BpbiByb3V0aW5lbHkuLi4KKwkJCSAqLwogCQkJcmV0dmFsID0gaGFuZHNoYWtlICgKIAkJCQkJJmVoY2ktPnJlZ3MtPnBvcnRfc3RhdHVzIFt3SW5kZXhdLAotCQkJCQlQT1JUX1JFU0VULCAwLCA1MDApOworCQkJCQlQT1JUX1JFU0VULCAwLCA3NTApOwogCQkJaWYgKHJldHZhbCAhPSAwKSB7CiAJCQkJZWhjaV9lcnIgKGVoY2ksICJwb3J0ICVkIHJlc2V0IGVycm9yICVkXG4iLAogCQkJCQl3SW5kZXggKyAxLCByZXR2YWwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWVkaWEvcHdjL3B3Yy1pZi5jIGIvZHJpdmVycy91c2IvbWVkaWEvcHdjL3B3Yy1pZi5jCmluZGV4IDU0MjlmZjMuLmI3N2U2NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21lZGlhL3B3Yy9wd2MtaWYuYworKysgYi9kcml2ZXJzL3VzYi9tZWRpYS9wd2MvcHdjLWlmLmMKQEAgLTMzMiwxMCArMzMyLDYgQEAKICNlbmRpZgkgCiAJOwogCSB9Ci0JaWYgKGtidWYgPT0gTlVMTCkgewotCSAgIEVycigiRmFpbGVkIHRvIGFsbG9jYXRlIGRlY29tcHJlc3MgdGFibGUuXG4iKTsKLQkgICByZXR1cm4gLUVOT01FTTsKLQl9CiAJcGRldi0+ZGVjb21wcmVzc19kYXRhID0ga2J1ZjsKIAkKIAkvKiBBbGxvY2F0ZSBpbWFnZSBidWZmZXI7IGRvdWJsZSBidWZmZXIgZm9yIG1tYXAoKSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbmV0L2thd2V0aC5jIGIvZHJpdmVycy91c2IvbmV0L2thd2V0aC5jCmluZGV4IGE5YTdjZjQuLmZkNmZmNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL25ldC9rYXdldGguYworKysgYi9kcml2ZXJzL3VzYi9uZXQva2F3ZXRoLmMKQEAgLTUyMCw3ICs1MjAsNyBAQAogCiAJLyogd2UgY2hlY2sgdGhlIGxpbmsgc3RhdGUgdG8gcmVwb3J0IGNoYW5nZXMgKi8KIAlpZiAoa2F3ZXRoLT5saW5rc3RhdGUgIT0gKGFjdF9zdGF0ZSA9ICgga2F3ZXRoLT5pbnRidWZmZXJbU1RBVEVfT0ZGU0VUXSB8IFNUQVRFX01BU0spID4+IFNUQVRFX1NISUZUKSkgewotCQlpZiAoIWFjdF9zdGF0ZSkKKwkJaWYgKGFjdF9zdGF0ZSkKIAkJCW5ldGlmX2NhcnJpZXJfb24oa2F3ZXRoLT5uZXQpOwogCQllbHNlCiAJCQluZXRpZl9jYXJyaWVyX29mZihrYXdldGgtPm5ldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCmluZGV4IDA1MWMzYTcuLjNiZmNjN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCkBAIC0yNjQsNyArMjY0LDcgQEAKIC8qCiAgKiBWZXJzaW9uIEluZm9ybWF0aW9uCiAgKi8KLSNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYxLjQuMSIKKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gInYxLjQuMiIKICNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4sIEJpbGwgUnlkZXIgPGJyeWRlckBzZ2kuY29tPiwgS3ViYSBPYmVyIDxrdWJhQG1hcmVpbWJyaXVtLm9yZz4iCiAjZGVmaW5lIERSSVZFUl9ERVNDICJVU0IgRlRESSBTZXJpYWwgQ29udmVydGVycyBEcml2ZXIiCiAKQEAgLTY4Nyw2ICs2ODcsOCBAQAogIAljaGFyIHByZXZfc3RhdHVzLCBkaWZmX3N0YXR1czsgICAgICAgIC8qIFVzZWQgZm9yIFRJT0NNSVdBSVQgKi8KIAlfX3U4IHJ4X2ZsYWdzOwkJLyogcmVjZWl2ZSBzdGF0ZSBmbGFncyAodGhyb3R0bGluZykgKi8KIAlzcGlubG9ja190IHJ4X2xvY2s7CS8qIHNwaW5sb2NrIGZvciByZWNlaXZlIHN0YXRlICovCisJc3RydWN0IHdvcmtfc3RydWN0IHJ4X3dvcms7CisJaW50IHJ4X3Byb2Nlc3NlZDsKIAogCV9fdTE2IGludGVyZmFjZTsJLyogRlQyMjMyQyBwb3J0IGludGVyZmFjZSAoMCBmb3IgRlQyMzIvMjQ1KSAqLwogCkBAIC03MTcsNyArNzE5LDcgQEAKIHN0YXRpYyBpbnQgIGZ0ZGlfY2hhcnNfaW5fYnVmZmVyCShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KTsKIHN0YXRpYyB2b2lkIGZ0ZGlfd3JpdGVfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CiBzdGF0aWMgdm9pZCBmdGRpX3JlYWRfYnVsa19jYWxsYmFjawkoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Ci1zdGF0aWMgdm9pZCBmdGRpX3Byb2Nlc3NfcmVhZAkJKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpOworc3RhdGljIHZvaWQgZnRkaV9wcm9jZXNzX3JlYWQJCSh2b2lkICpwYXJhbSk7CiBzdGF0aWMgdm9pZCBmdGRpX3NldF90ZXJtaW9zCQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOwogc3RhdGljIGludCAgZnRkaV90aW9jbWdldCAgICAgICAgICAgICAgIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CiBzdGF0aWMgaW50ICBmdGRpX3Rpb2Ntc2V0CQkoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGZpbGUgKiBmaWxlLCB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpOwpAQCAtMTM4Nyw2ICsxMzg5LDggQEAKIAkJcG9ydC0+cmVhZF91cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBCVUZTWjsKIAl9CiAKKwlJTklUX1dPUksoJnByaXYtPnJ4X3dvcmssIGZ0ZGlfcHJvY2Vzc19yZWFkLCBwb3J0KTsKKwogCS8qIEZyZWUgcG9ydCdzIGV4aXN0aW5nIHdyaXRlIHVyYiBhbmQgdHJhbnNmZXIgYnVmZmVyLiAqLwogCWlmIChwb3J0LT53cml0ZV91cmIpIHsKIAkJdXNiX2ZyZWVfdXJiIChwb3J0LT53cml0ZV91cmIpOwpAQCAtMTYxNyw2ICsxNjIxLDcgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5yeF9sb2NrLCBmbGFncyk7CiAKIAkvKiBTdGFydCByZWFkaW5nIGZyb20gdGhlIGRldmljZSAqLworCXByaXYtPnJ4X3Byb2Nlc3NlZCA9IDA7CiAJdXNiX2ZpbGxfYnVsa191cmIocG9ydC0+cmVhZF91cmIsIGRldiwKIAkJICAgICAgdXNiX3JjdmJ1bGtwaXBlKGRldiwgcG9ydC0+YnVsa19pbl9lbmRwb2ludEFkZHJlc3MpLAogCQkgICAgICBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyLCBwb3J0LT5yZWFkX3VyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwKQEAgLTE2NjcsNiArMTY3MiwxMCBAQAogCQkJZXJyKCJFcnJvciBmcm9tIFJUUyBMT1cgdXJiIik7CiAJCX0KIAl9IC8qIE5vdGUgY2hhbmdlIG5vIGxpbmUgaWYgaHVwY2wgaXMgb2ZmICovCisKKwkvKiBjYW5jZWwgYW55IHNjaGVkdWxlZCByZWFkaW5nICovCisJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cnhfd29yayk7CisJZmx1c2hfc2NoZWR1bGVkX3dvcmsoKTsKIAkKIAkvKiBzaHV0ZG93biBvdXIgYnVsayByZWFkICovCiAJaWYgKHBvcnQtPnJlYWRfdXJiKQpAQCAtMTg2MiwyMyArMTg3MSwxNCBAQAogCQlyZXR1cm47CiAJfQogCi0JLyogSWYgdGhyb3R0bGVkLCBkZWxheSByZWNlaXZlIHByb2Nlc3NpbmcgdW50aWwgdW50aHJvdHRsZWQuICovCi0Jc3Bpbl9sb2NrKCZwcml2LT5yeF9sb2NrKTsKLQlpZiAocHJpdi0+cnhfZmxhZ3MgJiBUSFJPVFRMRUQpIHsKLQkJZGJnKCJEZWZlcnJpbmcgcmVhZCB1cmIgcHJvY2Vzc2luZyB1bnRpbCB1bnRocm90dGxlZCIpOwotCQlwcml2LT5yeF9mbGFncyB8PSBBQ1RVQUxMWV9USFJPVFRMRUQ7Ci0JCXNwaW5fdW5sb2NrKCZwcml2LT5yeF9sb2NrKTsKLQkJcmV0dXJuOwotCX0KLQlzcGluX3VubG9jaygmcHJpdi0+cnhfbG9jayk7Ci0KIAlmdGRpX3Byb2Nlc3NfcmVhZChwb3J0KTsKIAogfSAvKiBmdGRpX3JlYWRfYnVsa19jYWxsYmFjayAqLwogCiAKLXN0YXRpYyB2b2lkIGZ0ZGlfcHJvY2Vzc19yZWFkIChzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQorc3RhdGljIHZvaWQgZnRkaV9wcm9jZXNzX3JlYWQgKHZvaWQgKnBhcmFtKQogeyAvKiBmdGRpX3Byb2Nlc3NfcmVhZCAqLworCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQgPSAoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCopcGFyYW07CiAJc3RydWN0IHVyYiAqdXJiOwogCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CiAJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdjsKQEAgLTE4ODksNiArMTg4OSw3IEBACiAJaW50IHJlc3VsdDsKIAlpbnQgbmVlZF9mbGlwOwogCWludCBwYWNrZXRfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fRlVOQ1RJT05fXywgcG9ydC0+bnVtYmVyKTsKIApAQCAtMTkxNSwxMiArMTkxNiwxOCBAQAogCiAJZGF0YSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOwogCi0gICAgICAgIC8qIFRoZSBmaXJzdCB0d28gYnl0ZXMgb2YgZXZlcnkgcmVhZCBwYWNrZXQgYXJlIHN0YXR1cyAqLwotCWlmICh1cmItPmFjdHVhbF9sZW5ndGggPiAyKSB7Ci0JCXVzYl9zZXJpYWxfZGVidWdfZGF0YShkZWJ1ZywgJnBvcnQtPmRldiwgX19GVU5DVElPTl9fLCB1cmItPmFjdHVhbF9sZW5ndGgsIGRhdGEpOworCWlmIChwcml2LT5yeF9wcm9jZXNzZWQpIHsKKwkJZGJnKCIlcyAtIGFscmVhZHkgcHJvY2Vzc2VkOiAlZCBieXRlcywgJWQgcmVtYWluIiwgX19GVU5DVElPTl9fLAorCQkJCXByaXYtPnJ4X3Byb2Nlc3NlZCwKKwkJCQl1cmItPmFjdHVhbF9sZW5ndGggLSBwcml2LT5yeF9wcm9jZXNzZWQpOwogCX0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGJnKCJTdGF0dXMgb25seTogJTAzb28gJTAzb28iLGRhdGFbMF0sZGF0YVsxXSk7Ci0gICAgICAgIH0KKwkJLyogVGhlIGZpcnN0IHR3byBieXRlcyBvZiBldmVyeSByZWFkIHBhY2tldCBhcmUgc3RhdHVzICovCisJCWlmICh1cmItPmFjdHVhbF9sZW5ndGggPiAyKSB7CisJCQl1c2Jfc2VyaWFsX2RlYnVnX2RhdGEoZGVidWcsICZwb3J0LT5kZXYsIF9fRlVOQ1RJT05fXywgdXJiLT5hY3R1YWxfbGVuZ3RoLCBkYXRhKTsKKwkJfSBlbHNlIHsKKwkJCWRiZygiU3RhdHVzIG9ubHk6ICUwM29vICUwM29vIixkYXRhWzBdLGRhdGFbMV0pOworCQl9CisJfQogCiAKIAkvKiBUTyBETyAtLSBjaGVjayBmb3IgaHVuZyB1cCBsaW5lIGFuZCBoYW5kbGUgYXBwcm9wcmlhdGVseTogKi8KQEAgLTE5MjksOCArMTkzNiwxMiBAQAogCS8qIGlmIENEIGlzIGRyb3BwZWQgYW5kIHRoZSBsaW5lIGlzIG5vdCBDTE9DQUwgdGhlbiB3ZSBzaG91bGQgaGFuZ3VwICovCiAKIAluZWVkX2ZsaXAgPSAwOwotCWZvciAocGFja2V0X29mZnNldD0wOyBwYWNrZXRfb2Zmc2V0IDwgdXJiLT5hY3R1YWxfbGVuZ3RoOyBwYWNrZXRfb2Zmc2V0ICs9IFBLVFNaKSB7CisJZm9yIChwYWNrZXRfb2Zmc2V0ID0gcHJpdi0+cnhfcHJvY2Vzc2VkOyBwYWNrZXRfb2Zmc2V0IDwgdXJiLT5hY3R1YWxfbGVuZ3RoOyBwYWNrZXRfb2Zmc2V0ICs9IFBLVFNaKSB7CisJCWludCBsZW5ndGg7CisKIAkJLyogQ29tcGFyZSBuZXcgbGluZSBzdGF0dXMgdG8gdGhlIG9sZCBvbmUsIHNpZ25hbCBpZiBkaWZmZXJlbnQgKi8KKwkJLyogTi5CLiBwYWNrZXQgbWF5IGJlIHByb2Nlc3NlZCBtb3JlIHRoYW4gb25jZSwgYnV0IGRpZmZlcmVuY2VzCisJCSAqIGFyZSBvbmx5IHByb2Nlc3NlZCBvbmNlLiAgKi8KIAkJaWYgKHByaXYgIT0gTlVMTCkgewogCQkJY2hhciBuZXdfc3RhdHVzID0gZGF0YVtwYWNrZXRfb2Zmc2V0KzBdICYgRlRESV9TVEFUVVNfQjBfTUFTSzsKIAkJCWlmIChuZXdfc3RhdHVzICE9IHByaXYtPnByZXZfc3RhdHVzKSB7CkBAIC0xOTQwLDYgKzE5NTEsMzUgQEAKIAkJCX0KIAkJfQogCisJCWxlbmd0aCA9IG1pbihQS1RTWiwgdXJiLT5hY3R1YWxfbGVuZ3RoLXBhY2tldF9vZmZzZXQpLTI7CisJCWlmIChsZW5ndGggPCAwKSB7CisJCQllcnIoIiVzIC0gYmFkIHBhY2tldCBsZW5ndGg6ICVkIiwgX19GVU5DVElPTl9fLCBsZW5ndGgrMik7CisJCQlsZW5ndGggPSAwOworCQl9CisKKwkJLyogaGF2ZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGJ1ZmZlcgorCQkgICB3aXRoIHR0eV9pbnNlcnRfZmxpcF9jaGFyJ3MgKi8KKwkJaWYgKHR0eS0+ZmxpcC5jb3VudCtsZW5ndGggPiBUVFlfRkxJUEJVRl9TSVpFKSB7CisJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOworCQkJbmVlZF9mbGlwID0gMDsKKworCQkJaWYgKHR0eS0+ZmxpcC5jb3VudCAhPSAwKSB7CisJCQkJLyogZmxpcCBkaWRuJ3Qgd29yaywgdGhpcyBoYXBwZW5zIHdoZW4gZnRkaV9wcm9jZXNzX3JlYWQoKSBpcworCQkJCSAqIGNhbGxlZCBmcm9tIGZ0ZGlfdW50aHJvdHRsZSwgYmVjYXVzZSBUVFlfRE9OVF9GTElQIGlzIHNldCAqLworCQkJCWRiZygiJXMgLSBmbGlwIGJ1ZmZlciBwdXNoIGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKHByaXYtPnJ4X2ZsYWdzICYgVEhST1RUTEVEKSB7CisJCQlkYmcoIiVzIC0gdGhyb3R0bGVkIiwgX19GVU5DVElPTl9fKTsKKwkJCWJyZWFrOworCQl9CisJCWlmICh0dHktPmxkaXNjLnJlY2VpdmVfcm9vbSh0dHkpLXR0eS0+ZmxpcC5jb3VudCA8IGxlbmd0aCkgeworCQkJLyogYnJlYWsgb3V0ICYgd2FpdCBmb3IgdGhyb3R0bGluZy91bnRocm90dGxpbmcgdG8gaGFwcGVuICovCisJCQlkYmcoIiVzIC0gcmVjZWl2ZSByb29tIGxvdyIsIF9fRlVOQ1RJT05fXyk7CisJCQlicmVhazsKKwkJfQorCiAJCS8qIEhhbmRsZSBlcnJvcnMgYW5kIGJyZWFrICovCiAJCWVycm9yX2ZsYWcgPSBUVFlfTk9STUFMOwogCQkvKiBBbHRob3VnaCB0aGUgZGV2aWNlIHVzZXMgYSBiaXRtYXNrIGFuZCBoZW5jZSBjYW4gaGF2ZSBtdWx0aXBsZSAqLwpAQCAtMTk2MiwxMyArMjAwMiw4IEBACiAJCQllcnJvcl9mbGFnID0gVFRZX0ZSQU1FOwogCQkJZGJnKCJGUkFNSU5HIGVycm9yIik7CiAJCX0KLQkJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCA+IHBhY2tldF9vZmZzZXQgKyAyKSB7Ci0JCQlmb3IgKGkgPSAyOyAoaSA8IFBLVFNaKSAmJiAoKGkrcGFja2V0X29mZnNldCkgPCB1cmItPmFjdHVhbF9sZW5ndGgpOyArK2kpIHsKLQkJCQkvKiBoYXZlIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBvdmVyZmxvdyB0aGUgYnVmZmVyCi0JCQkJICB3aXRoIHR0eV9pbnNlcnRfZmxpcF9jaGFyJ3MgKi8KLQkJCQlpZih0dHktPmZsaXAuY291bnQgPj0gVFRZX0ZMSVBCVUZfU0laRSkgewotCQkJCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOwotCQkJCX0KKwkJaWYgKGxlbmd0aCA+IDApIHsKKwkJCWZvciAoaSA9IDI7IGkgPCBsZW5ndGgrMjsgaSsrKSB7CiAJCQkJLyogTm90ZSB0aGF0IHRoZSBlcnJvciBmbGFnIGlzIGR1cGxpY2F0ZWQgZm9yIAogCQkJCSAgIGV2ZXJ5IGNoYXJhY3RlciByZWNlaXZlZCBzaW5jZSB3ZSBkb24ndCBrbm93CiAJCQkJICAgd2hpY2ggY2hhcmFjdGVyIGl0IGFwcGxpZWQgdG8gKi8KQEAgLTIwMDUsNiArMjA0MCwzNSBAQAogCQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0dHkpOwogCX0KIAorCWlmIChwYWNrZXRfb2Zmc2V0IDwgdXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCS8qIG5vdCBjb21wbGV0ZWx5IHByb2Nlc3NlZCAtIHJlY29yZCBwcm9ncmVzcyAqLworCQlwcml2LT5yeF9wcm9jZXNzZWQgPSBwYWNrZXRfb2Zmc2V0OworCQlkYmcoIiVzIC0gaW5jb21wbGV0ZSwgJWQgYnl0ZXMgcHJvY2Vzc2VkLCAlZCByZW1haW4iLAorCQkJCV9fRlVOQ1RJT05fXywgcGFja2V0X29mZnNldCwKKwkJCQl1cmItPmFjdHVhbF9sZW5ndGggLSBwYWNrZXRfb2Zmc2V0KTsKKwkJLyogY2hlY2sgaWYgd2Ugd2VyZSB0aHJvdHRsZWQgd2hpbGUgcHJvY2Vzc2luZyAqLworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+cnhfbG9jaywgZmxhZ3MpOworCQlpZiAocHJpdi0+cnhfZmxhZ3MgJiBUSFJPVFRMRUQpIHsKKwkJCXByaXYtPnJ4X2ZsYWdzIHw9IEFDVFVBTExZX1RIUk9UVExFRDsKKwkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPnJ4X2xvY2ssIGZsYWdzKTsKKwkJCWRiZygiJXMgLSBkZWZlcnJpbmcgcmVtYWluZGVyIHVudGlsIHVudGhyb3R0bGVkIiwKKwkJCQkJX19GVU5DVElPTl9fKTsKKwkJCXJldHVybjsKKwkJfQorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5yeF9sb2NrLCBmbGFncyk7CisJCS8qIGlmIHRoZSBwb3J0IGlzIGNsb3NlZCBzdG9wIHRyeWluZyB0byByZWFkICovCisJCWlmIChwb3J0LT5vcGVuX2NvdW50ID4gMCl7CisJCQkvKiBkZWxheSBwcm9jZXNzaW5nIG9mIHJlbWFpbmRlciAqLworCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZwcml2LT5yeF93b3JrLCAxKTsKKwkJfSBlbHNlIHsKKwkJCWRiZygiJXMgLSBwb3J0IGlzIGNsb3NlZCIsIF9fRlVOQ1RJT05fXyk7CisJCX0KKwkJcmV0dXJuOworCX0KKworCS8qIHVyYiBpcyBjb21wbGV0ZWx5IHByb2Nlc3NlZCAqLworCXByaXYtPnJ4X3Byb2Nlc3NlZCA9IDA7CisKIAkvKiBpZiB0aGUgcG9ydCBpcyBjbG9zZWQgc3RvcCB0cnlpbmcgdG8gcmVhZCAqLwogCWlmIChwb3J0LT5vcGVuX2NvdW50ID4gMCl7CiAJCS8qIENvbnRpbnVlIHRyeWluZyB0byBhbHdheXMgcmVhZCAgKi8KQEAgLTI0NDQsNyArMjUwOCw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+cnhfbG9jaywgZmxhZ3MpOwogCiAJaWYgKGFjdHVhbGx5X3Rocm90dGxlZCkKLQkJZnRkaV9wcm9jZXNzX3JlYWQocG9ydCk7CisJCXNjaGVkdWxlX3dvcmsoJnByaXYtPnJ4X3dvcmspOwogfQogCiBzdGF0aWMgaW50IF9faW5pdCBmdGRpX2luaXQgKHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3Njc2lnbHVlLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3Njc2lnbHVlLmMKaW5kZXggMjJlNDhhMi4uMTAzNWIyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9zY3NpZ2x1ZS5jCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2NzaWdsdWUuYwpAQCAtMjMzLDEzICsyMzMsMTEgQEAKIAkJc2V0X2JpdChVU19GTElEWF9BQk9SVElORywgJnVzLT5mbGFncyk7CiAJCXVzYl9zdG9yX3N0b3BfdHJhbnNwb3J0KHVzKTsKIAl9Ci0Jc2NzaV91bmxvY2sodXNfdG9faG9zdCh1cykpOwogCiAJLyogV2FpdCBmb3IgdGhlIGFib3J0ZWQgY29tbWFuZCB0byBmaW5pc2ggKi8KIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ1cy0+bm90aWZ5KTsKIAogCS8qIFJlYWNxdWlyZSB0aGUgbG9jayBhbmQgYWxsb3cgVVNCIHRyYW5zZmVycyB0byByZXN1bWUgKi8KLQlzY3NpX2xvY2sodXNfdG9faG9zdCh1cykpOwogCWNsZWFyX2JpdChVU19GTElEWF9BQk9SVElORywgJnVzLT5mbGFncyk7CiAJY2xlYXJfYml0KFVTX0ZMSURYX1RJTUVEX09VVCwgJnVzLT5mbGFncyk7CiAJcmV0dXJuIFNVQ0NFU1M7CkBAIC0yNTUsOCArMjUzLDYgQEAKIAogCVVTX0RFQlVHUCgiJXMgY2FsbGVkXG4iLCBfX0ZVTkNUSU9OX18pOwogCi0Jc2NzaV91bmxvY2sodXNfdG9faG9zdCh1cykpOwotCiAJLyogbG9jayB0aGUgZGV2aWNlIHBvaW50ZXJzIGFuZCBkbyB0aGUgcmVzZXQgKi8KIAlkb3duKCYodXMtPmRldl9zZW1hcGhvcmUpKTsKIAlpZiAodGVzdF9iaXQoVVNfRkxJRFhfRElTQ09OTkVDVElORywgJnVzLT5mbGFncykpIHsKQEAgLTI2Niw4ICsyNjIsNiBAQAogCQlyZXN1bHQgPSB1cy0+dHJhbnNwb3J0X3Jlc2V0KHVzKTsKIAl1cCgmKHVzLT5kZXZfc2VtYXBob3JlKSk7CiAKLQkvKiBsb2NrIHRoZSBob3N0IGZvciB0aGUgcmV0dXJuICovCi0Jc2NzaV9sb2NrKHVzX3RvX2hvc3QodXMpKTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yODIsOCArMjc2LDYgQEAKIAogCVVTX0RFQlVHUCgiJXMgY2FsbGVkXG4iLCBfX0ZVTkNUSU9OX18pOwogCi0Jc2NzaV91bmxvY2sodXNfdG9faG9zdCh1cykpOwotCiAJLyogVGhlIFVTQiBzdWJzeXN0ZW0gZG9lc24ndCBoYW5kbGUgc3luY2hyb25pc2F0aW9uIGJldHdlZW4KIAkgKiBhIGRldmljZSdzIHNldmVyYWwgZHJpdmVycy4gVGhlcmVmb3JlIHdlIHJlc2V0IG9ubHkgZGV2aWNlcwogCSAqIHdpdGgganVzdCBvbmUgaW50ZXJmYWNlLCB3aGljaCB3ZSBvZiBjb3Vyc2Ugb3duLiAqLwpAQCAtMzEwLDcgKzMwMiw2IEBACiAJdXAoJih1cy0+ZGV2X3NlbWFwaG9yZSkpOwogCiAJLyogbG9jayB0aGUgaG9zdCBmb3IgdGhlIHJldHVybiAqLwotCXNjc2lfbG9jayh1c190b19ob3N0KHVzKSk7CiAJcmV0dXJuIHJlc3VsdCA8IDAgPyBGQUlMRUQgOiBTVUNDRVNTOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2F0eS9yYWRlb25fYmFzZS5jIGIvZHJpdmVycy92aWRlby9hdHkvcmFkZW9uX2Jhc2UuYwppbmRleCBlZTI1YjllLi40N2E2YjEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2F0eS9yYWRlb25fYmFzZS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vYXR5L3JhZGVvbl9iYXNlLmMKQEAgLTIzNzQsMTAgKzIzNzQsOSBAQAogCX0gd2hpbGUgKCAgIHJpbmZvLT5mYl9iYXNlID09IDAgJiYKIAkJICAoKHJpbmZvLT5tYXBwZWRfdnJhbSAvPTIpID49IE1JTl9NQVBQRURfVlJBTSkgKTsKIAotCWlmIChyaW5mby0+ZmJfYmFzZSkKLQkJbWVtc2V0X2lvKHJpbmZvLT5mYl9iYXNlLCAwLCByaW5mby0+bWFwcGVkX3ZyYW0pOwotCWVsc2UgewotCQlwcmludGsgKEtFUk5fRVJSICJyYWRlb25mYiAoJXMpOiBjYW5ub3QgbWFwIEZCXG4iLCBwY2lfbmFtZShyaW5mby0+cGRldikpOworCWlmIChyaW5mby0+ZmJfYmFzZSA9PSBOVUxMKSB7CisJCXByaW50ayAoS0VSTl9FUlIgInJhZGVvbmZiICglcyk6IGNhbm5vdCBtYXAgRkJcbiIsCisJCQlwY2lfbmFtZShyaW5mby0+cGRldikpOwogCQlyZXQgPSAtRUlPOwogCQlnb3RvIGVycl91bm1hcF9yb207CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYnN5c2ZzLmMgYi9kcml2ZXJzL3ZpZGVvL2Zic3lzZnMuYwppbmRleCBjNzhhMmM1Li4yNzdkNzMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zic3lzZnMuYworKysgYi9kcml2ZXJzL3ZpZGVvL2Zic3lzZnMuYwpAQCAtMjQxLDcgKzI0MSw3IEBACiAJc3RydWN0IGZiX2luZm8gKmZiX2luZm8gPQogCQkoc3RydWN0IGZiX2luZm8gKiljbGFzc19nZXRfZGV2ZGF0YShjbGFzc19kZXZpY2UpOwogCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVkLCVkXG4iLCBmYl9pbmZvLT52YXIueHJlc192aXJ0dWFsLAotCQkJZmJfaW5mby0+dmFyLnhyZXNfdmlydHVhbCk7CisJCQlmYl9pbmZvLT52YXIueXJlc192aXJ0dWFsKTsKIH0KIAogc3RhdGljIHNzaXplX3Qgc3RvcmVfY21hcChzdHJ1Y3QgY2xhc3NfZGV2aWNlICpjbGFzc19kZXZpY2UsIGNvbnN0IGNoYXIgKiBidWYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL21hY21vZGVzLmMgYi9kcml2ZXJzL3ZpZGVvL21hY21vZGVzLmMKaW5kZXggZGU1YTBmMy4uMmZjNzEwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9tYWNtb2Rlcy5jCisrKyBiL2RyaXZlcnMvdmlkZW8vbWFjbW9kZXMuYwpAQCAtMzg3LDMgKzM4Nyw0IEBACiB9CiBFWFBPUlRfU1lNQk9MKG1hY19maW5kX21vZGUpOwogCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmMKaW5kZXggYzM3NGJlNS4uZjhmNmI2YiAxMDA2NDQKLS0tIGEvZnMvYmluZm10X2VsZi5jCisrKyBiL2ZzL2JpbmZtdF9lbGYuYwpAQCAtMTEyNSw3ICsxMTI1LDcgQEAKIAlyZXR1cm4gZmlsZS0+Zl9vcC0+d3JpdGUoZmlsZSwgYWRkciwgbnIsICZmaWxlLT5mX3BvcykgPT0gbnI7CiB9CiAKLXN0YXRpYyBpbnQgZHVtcF9zZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBvZmZfdCBvZmYpCitzdGF0aWMgaW50IGR1bXBfc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZikKIHsKIAlpZiAoZmlsZS0+Zl9vcC0+bGxzZWVrKSB7CiAJCWlmIChmaWxlLT5mX29wLT5sbHNlZWsoZmlsZSwgb2ZmLCAwKSAhPSBvZmYpCmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZmxhdC5jIGIvZnMvYmluZm10X2ZsYXQuYwppbmRleCBmMGNkNjdkLi5jODk5OGRjIDEwMDY0NAotLS0gYS9mcy9iaW5mbXRfZmxhdC5jCisrKyBiL2ZzL2JpbmZtdF9mbGF0LmMKQEAgLTUyMCw3ICs1MjAsNyBAQAogCQlEQkdfRkxUKCJCSU5GTVRfRkxBVDogUk9NIG1hcHBpbmcgb2YgZmlsZSAod2UgaG9wZSlcbiIpOwogCiAJCWRvd25fd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7Ci0JCXRleHRwb3MgPSBkb19tbWFwKGJwcm0tPmZpbGUsIDAsIHRleHRfbGVuLCBQUk9UX1JFQUR8UFJPVF9FWEVDLCAwLCAwKTsKKwkJdGV4dHBvcyA9IGRvX21tYXAoYnBybS0+ZmlsZSwgMCwgdGV4dF9sZW4sIFBST1RfUkVBRHxQUk9UX0VYRUMsIE1BUF9TSEFSRUQsIDApOwogCQl1cF93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAkJaWYgKCF0ZXh0cG9zICB8fCB0ZXh0cG9zID49ICh1bnNpZ25lZCBsb25nKSAtNDA5NikgewogCQkJaWYgKCF0ZXh0cG9zKQpAQCAtNTMyLDcgKzUzMiw3IEBACiAJCWRvd25fd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CiAJCXJlYWxkYXRhc3RhcnQgPSBkb19tbWFwKDAsIDAsIGRhdGFfbGVuICsgZXh0cmEgKwogCQkJCU1BWF9TSEFSRURfTElCUyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwKLQkJCQlQUk9UX1JFQUR8UFJPVF9XUklURXxQUk9UX0VYRUMsIDAsIDApOworCQkJCVBST1RfUkVBRHxQUk9UX1dSSVRFfFBST1RfRVhFQywgTUFQX1BSSVZBVEUsIDApOwogCQl1cF93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAogCQlpZiAocmVhbGRhdGFzdGFydCA9PSAwIHx8IHJlYWxkYXRhc3RhcnQgPj0gKHVuc2lnbmVkIGxvbmcpLTQwOTYpIHsKQEAgLTU3NCw3ICs1NzQsNyBAQAogCQlkb3duX3dyaXRlKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCQl0ZXh0cG9zID0gZG9fbW1hcCgwLCAwLCB0ZXh0X2xlbiArIGRhdGFfbGVuICsgZXh0cmEgKwogCQkJCQlNQVhfU0hBUkVEX0xJQlMgKiBzaXplb2YodW5zaWduZWQgbG9uZyksCi0JCQkJUFJPVF9SRUFEIHwgUFJPVF9FWEVDIHwgUFJPVF9XUklURSwgMCwgMCk7CisJCQkJUFJPVF9SRUFEIHwgUFJPVF9FWEVDIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUsIDApOwogCQl1cF93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAkJaWYgKCF0ZXh0cG9zICB8fCB0ZXh0cG9zID49ICh1bnNpZ25lZCBsb25nKSAtNDA5NikgewogCQkJaWYgKCF0ZXh0cG9zKQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9DSEFOR0VTIGIvZnMvY2lmcy9DSEFOR0VTCmluZGV4IDk1NDgzYmEuLmRhYjQ3NzQgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvQ0hBTkdFUworKysgYi9mcy9jaWZzL0NIQU5HRVMKQEAgLTYsNyArNiw4IEBACiByZWNvbW1lbmRlZCwgdW5tb3VudCBhbmQgcm1tb2QgY2lmcyB3aWxsIGtpbGwgdGhlbSB3aGVuIHRoZXkgYXJlCiBubyBsb25nZXIgbmVlZGVkKS4gIEZpeCByZWFkZGlyIHRvIEFTQ0lJIHNlcnZlcnMgKGllIG9sZGVyIHNlcnZlcnMKIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFVuaWNvZGUpIGFuZCBhbHNvIHJlcXVpcmUgYXN0ZXJpay4KLQorRml4IG91dCBvZiBtZW1vcnkgY2FzZSBpbiB3aGljaCBkYXRhIGNvdWxkIGJlIHdyaXR0ZW4gb25lIHBhZ2UKK29mZiBpbiB0aGUgcGFnZSBjYWNoZS4KIAogVmVyc2lvbiAxLjMzCiAtLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2ZzLmggYi9mcy9jaWZzL2NpZnNmcy5oCmluZGV4IGQwMGIzYmYuLjc4YWY1ODUgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2ZzLmgKKysrIGIvZnMvY2lmcy9jaWZzZnMuaApAQCAtOTYsNSArOTYsNSBAQAogZXh0ZXJuIHNzaXplX3QJY2lmc19saXN0eGF0dHIoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIHNpemVfdCk7CiBleHRlcm4gaW50IGNpZnNfaW9jdGwgKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGVwLAogCQkgICAgICAgdW5zaWduZWQgaW50IGNvbW1hbmQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKLSNkZWZpbmUgQ0lGU19WRVJTSU9OICAgIjEuMzQiCisjZGVmaW5lIENJRlNfVkVSU0lPTiAgICIxLjM1IgogI2VuZGlmCQkJCS8qIF9DSUZTRlNfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9maWxlLmMgYi9mcy9jaWZzL2ZpbGUuYwppbmRleCBkZGUyZDI1Li4zMGFiNzBjIDEwMDY0NAotLS0gYS9mcy9jaWZzL2ZpbGUuYworKysgYi9mcy9jaWZzL2ZpbGUuYwpAQCAtMTM1Miw2ICsxMzUyLDggQEAKIAkJCQkgICAgICBHRlBfS0VSTkVMKSkgewogCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCQkJY0ZZSSgxLCAoIkFkZCBwYWdlIGNhY2hlIGZhaWxlZCIpKTsKKwkJCWRhdGEgKz0gUEFHRV9DQUNIRV9TSVpFOworCQkJYnl0ZXNfcmVhZCAtPSBQQUdFX0NBQ0hFX1NJWkU7CiAJCQljb250aW51ZTsKIAkJfQogCmRpZmYgLS1naXQgYS9mcy9jaWZzL2lub2RlLmMgYi9mcy9jaWZzL2lub2RlLmMKaW5kZXggYjhiNzhjYi4uOGQzMzZhOSAxMDA2NDQKLS0tIGEvZnMvY2lmcy9pbm9kZS5jCisrKyBiL2ZzL2NpZnMvaW5vZGUuYwpAQCAtODIsMTIgKzgyLDEyIEBACiAJCS8qIGdldCBuZXcgaW5vZGUgKi8KIAkJaWYgKCpwaW5vZGUgPT0gTlVMTCkgewogCQkJKnBpbm9kZSA9IG5ld19pbm9kZShzYik7Ci0JCQlpZigqcGlub2RlID09IE5VTEwpIAorCQkJaWYgKCpwaW5vZGUgPT0gTlVMTCkgCiAJCQkJcmV0dXJuIC1FTk9NRU07CiAJCQkvKiBJcyBhbiBpX2lubyBvZiB6ZXJvIGxlZ2FsPyAqLwogCQkJLyogQXJlIHRoZXJlIHNhbml0eSBjaGVja3Mgd2UgY2FuIHVzZSB0byBlbnN1cmUgdGhhdAogCQkJICAgdGhlIHNlcnZlciBpcyByZWFsbHkgZmlsbGluZyBpbiB0aGF0IGZpZWxkPyAqLwotCQkJaWYoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1NFUlZFUl9JTlVNKSB7CisJCQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1NFUlZFUl9JTlVNKSB7CiAJCQkJKCpwaW5vZGUpLT5pX2lubyA9CiAJCQkJCSh1bnNpZ25lZCBsb25nKWZpbmREYXRhLlVuaXF1ZUlkOwogCQkJfSAvKiBub3RlIGlubyBpbmNyZW1lbnRlZCB0byB1bmlxdWUgbnVtIGluIG5ld19pbm9kZSAqLwpAQCAtMTM0LDcgKzEzNCw3IEBACiAJCWlub2RlLT5pX2dpZCA9IGxlNjRfdG9fY3B1KGZpbmREYXRhLkdpZCk7CiAJCWlub2RlLT5pX25saW5rID0gbGU2NF90b19jcHUoZmluZERhdGEuTmxpbmtzKTsKIAotCQlpZihpc19zaXplX3NhZmVfdG9fY2hhbmdlKGNpZnNJbmZvKSkgeworCQlpZiAoaXNfc2l6ZV9zYWZlX3RvX2NoYW5nZShjaWZzSW5mbykpIHsKIAkJLyogY2FuIG5vdCBzYWZlbHkgY2hhbmdlIHRoZSBmaWxlIHNpemUgaGVyZSBpZiB0aGUKIAkJICAgY2xpZW50IGlzIHdyaXRpbmcgdG8gaXQgZHVlIHRvIHBvdGVudGlhbCByYWNlcyAqLwogCkBAIC0xNjIsNyArMTYyLDcgQEAKIAkJaWYgKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpIHsKIAkJCWNGWUkoMSwgKCIgRmlsZSBpbm9kZSAiKSk7CiAJCQlpbm9kZS0+aV9vcCA9ICZjaWZzX2ZpbGVfaW5vZGVfb3BzOwotCQkJaWYoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0RJUkVDVF9JTykKKwkJCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRElSRUNUX0lPKQogCQkJCWlub2RlLT5pX2ZvcCA9ICZjaWZzX2ZpbGVfZGlyZWN0X29wczsKIAkJCWVsc2UKIAkJCQlpbm9kZS0+aV9mb3AgPSAmY2lmc19maWxlX29wczsKQEAgLTE5OCwxNyArMTk4LDE3IEBACiAJcFRjb24gPSBjaWZzX3NiLT50Y29uOwogCWNGWUkoMSwoIkdldHRpbmcgaW5mbyBvbiAlcyAiLCBzZWFyY2hfcGF0aCkpOwogCi0JaWYoKHBmaW5kRGF0YSA9PSBOVUxMKSAmJiAoKnBpbm9kZSAhPSBOVUxMKSkgewotCQlpZihDSUZTX0koKnBpbm9kZSktPmNsaWVudENhbkNhY2hlUmVhZCkgeworCWlmICgocGZpbmREYXRhID09IE5VTEwpICYmICgqcGlub2RlICE9IE5VTEwpKSB7CisJCWlmIChDSUZTX0koKnBpbm9kZSktPmNsaWVudENhbkNhY2hlUmVhZCkgewogCQkJY0ZZSSgxLCgiTm8gbmVlZCB0byByZXZhbGlkYXRlIGNhY2hlZCBpbm9kZSBzaXplcyIpKTsKIAkJCXJldHVybiByYzsKIAkJfQogCX0KIAogCS8qIGlmIGZpbGUgaW5mbyBub3QgcGFzc2VkIGluIHRoZW4gZ2V0IGl0IGZyb20gc2VydmVyICovCi0JaWYocGZpbmREYXRhID09IE5VTEwpIHsKKwlpZiAocGZpbmREYXRhID09IE5VTEwpIHsKIAkJYnVmID0ga21hbGxvYyhzaXplb2YoRklMRV9BTExfSU5GTyksIEdGUF9LRVJORUwpOwotCQlpZihidWYgPT0gTlVMTCkKKwkJaWYgKGJ1ZiA9PSBOVUxMKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJCXBmaW5kRGF0YSA9IChGSUxFX0FMTF9JTkZPICopYnVmOwogCQkvKiBjb3VsZCBkbyBmaW5kIGZpcnN0IGluc3RlYWQgYnV0IHRoaXMgcmV0dXJucyBtb3JlIGluZm8gKi8KQEAgLTI2OCw3ICsyNjgsNyBAQAogCQkJICAgSW5kZXhOdW1iZXIgZmllbGQgaXMgbm90IGd1YXJhbnRlZWQgdW5pcXVlPyAqLwogCiAjaWZkZWYgQ09ORklHX0NJRlNfRVhQRVJJTUVOVEFMCQkKLQkJCWlmKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9TRVJWRVJfSU5VTSl7CisJCQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1NFUlZFUl9JTlVNKXsKIAkJCQlpbnQgcmMxID0gMDsKIAkJCQlfX3U2NCBpbm9kZV9udW07CiAKQEAgLTI3Nyw3ICsyNzcsNyBAQAogCQkJCQljaWZzX3NiLT5sb2NhbF9ubHMsCiAJCQkJCWNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkJCUNJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsKLQkJCQlpZihyYzEpIHsKKwkJCQlpZiAocmMxKSB7CiAJCQkJCWNGWUkoMSwoIkdldFNydklub2RlTnVtIHJjICVkIiwgcmMxKSk7CiAJCQkJCS8qIEJCIEVPUE5PU1VQUCBkaXNhYmxlIFNFUlZFUl9JTlVNPyAqLwogCQkJCX0gZWxzZSAvKiBkbyB3ZSBuZWVkIGNhc3Qgb3IgaGFzaCB0byBpbm8/ICovCkBAIC0zNTUsNyArMzU1LDcgQEAKIAkJaWYgKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpIHsKIAkJCWNGWUkoMSwgKCIgRmlsZSBpbm9kZSAiKSk7CiAJCQlpbm9kZS0+aV9vcCA9ICZjaWZzX2ZpbGVfaW5vZGVfb3BzOwotCQkJaWYoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0RJUkVDVF9JTykKKwkJCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRElSRUNUX0lPKQogCQkJCWlub2RlLT5pX2ZvcCA9ICZjaWZzX2ZpbGVfZGlyZWN0X29wczsKIAkJCWVsc2UKIAkJCQlpbm9kZS0+aV9mb3AgPSAmY2lmc19maWxlX29wczsKQEAgLTQyMiw3ICs0MjIsNyBAQAogCQkJY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAKIAlpZiAoIXJjKSB7Ci0JCWlmKGRpcmVudHJ5LT5kX2lub2RlKQorCQlpZiAoZGlyZW50cnktPmRfaW5vZGUpCiAJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9ubGluay0tOwogCX0gZWxzZSBpZiAocmMgPT0gLUVOT0VOVCkgewogCQlkX2Ryb3AoZGlyZW50cnkpOwpAQCAtNDQxLDcgKzQ0MSw3IEBACiAJCQkJCSAgICAgIGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgCiAJCQkJCQlDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAJCQlDSUZTU01CQ2xvc2UoeGlkLCBwVGNvbiwgbmV0ZmlkKTsKLQkJCWlmKGRpcmVudHJ5LT5kX2lub2RlKQorCQkJaWYgKGRpcmVudHJ5LT5kX2lub2RlKQogCQkJCWRpcmVudHJ5LT5kX2lub2RlLT5pX25saW5rLS07CiAJCX0KIAl9IGVsc2UgaWYgKHJjID09IC1FQUNDRVMpIHsKQEAgLTQ5Niw3ICs0OTYsNyBAQAogCQkJCQkgICAgY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiAKIAkJCQkJCUNJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsKIAkJCWlmICghcmMpIHsKLQkJCQlpZihkaXJlbnRyeS0+ZF9pbm9kZSkKKwkJCQlpZiAoZGlyZW50cnktPmRfaW5vZGUpCiAJCQkJCWRpcmVudHJ5LT5kX2lub2RlLT5pX25saW5rLS07CiAJCQl9IGVsc2UgaWYgKHJjID09IC1FVFhUQlNZKSB7CiAJCQkJaW50IG9wbG9jayA9IEZBTFNFOwpAQCAtNTE3LDE0ICs1MTcsMTQgQEAKIAkJCQkJCWNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkJCSAgICBDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAJCQkJCUNJRlNTTUJDbG9zZSh4aWQsIHBUY29uLCBuZXRmaWQpOwotCQkJCQlpZihkaXJlbnRyeS0+ZF9pbm9kZSkKKwkJCQkJaWYgKGRpcmVudHJ5LT5kX2lub2RlKQogCQkJICAgICAgICAgICAgICAgICAgICAgICAgZGlyZW50cnktPmRfaW5vZGUtPmlfbmxpbmstLTsKIAkJCQl9CiAJCQkvKiBCQiBpZiByYyA9IC1FVFhUQlVTWSBnb3RvIHRoZSByZW5hbWUgbG9naWMgQkIgKi8KIAkJCX0KIAkJfQogCX0KLQlpZihkaXJlbnRyeS0+ZF9pbm9kZSkgeworCWlmIChkaXJlbnRyeS0+ZF9pbm9kZSkgewogCQljaWZzSW5vZGUgPSBDSUZTX0koZGlyZW50cnktPmRfaW5vZGUpOwogCQljaWZzSW5vZGUtPnRpbWUgPSAwOwkvKiB3aWxsIGZvcmNlIHJldmFsaWRhdGUgdG8gZ2V0IGluZm8KIAkJCQkJICAgd2hlbiBuZWVkZWQgKi8KQEAgLTU4Miw3ICs1ODIsNyBAQAogCQlpZiAoZGlyZW50cnktPmRfaW5vZGUpCiAJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9ubGluayA9IDI7CiAJCWlmIChjaWZzX3NiLT50Y29uLT5zZXMtPmNhcGFiaWxpdGllcyAmIENBUF9VTklYKQotCQkJaWYoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1NFVF9VSUQpIHsKKwkJCWlmIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfU0VUX1VJRCkgewogCQkJCUNJRlNTTUJVbml4U2V0UGVybXMoeGlkLCBwVGNvbiwgZnVsbF9wYXRoLAogCQkJCQkJICAgIG1vZGUsCiAJCQkJCQkgICAgKF9fdTY0KWN1cnJlbnQtPmV1aWQsCmRpZmYgLS1naXQgYS9mcy9tcGFnZS5jIGIvZnMvbXBhZ2UuYwppbmRleCBiOTJjMGU2Li5iYjlhZWJlIDEwMDY0NAotLS0gYS9mcy9tcGFnZS5jCisrKyBiL2ZzL21wYWdlLmMKQEAgLTc5LDggKzc5LDExIEBACiAJCWlmICgtLWJ2ZWMgPj0gYmlvLT5iaV9pb192ZWMpCiAJCQlwcmVmZXRjaHcoJmJ2ZWMtPmJ2X3BhZ2UtPmZsYWdzKTsKIAotCQlpZiAoIXVwdG9kYXRlKQorCQlpZiAoIXVwdG9kYXRlKXsKIAkJCVNldFBhZ2VFcnJvcihwYWdlKTsKKwkJCWlmIChwYWdlLT5tYXBwaW5nKQorCQkJCXNldF9iaXQoQVNfRUlPLCAmcGFnZS0+bWFwcGluZy0+ZmxhZ3MpOworCQl9CiAJCWVuZF9wYWdlX3dyaXRlYmFjayhwYWdlKTsKIAl9IHdoaWxlIChidmVjID49IGJpby0+YmlfaW9fdmVjKTsKIAliaW9fcHV0KGJpbyk7CmRpZmYgLS1naXQgYS9mcy9uYW1laS5jIGIvZnMvbmFtZWkuYwppbmRleCBkZDc4ZjAxLi5hN2Y3ZjQ0IDEwMDY0NAotLS0gYS9mcy9uYW1laS5jCisrKyBiL2ZzL25hbWVpLmMKQEAgLTQ5MywxMiArNDkzLDIxIEBACiAJcmV0dXJuIFBUUl9FUlIobGluayk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IF9fZG9fZm9sbG93X2xpbmsoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKK3N0cnVjdCBwYXRoIHsKKwlzdHJ1Y3QgdmZzbW91bnQgKm1udDsKKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7Cit9OworCitzdGF0aWMgaW5saW5lIGludCBfX2RvX2ZvbGxvd19saW5rKHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKIHsKIAlpbnQgZXJyb3I7CisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gcGF0aC0+ZGVudHJ5OwogCi0JdG91Y2hfYXRpbWUobmQtPm1udCwgZGVudHJ5KTsKKwl0b3VjaF9hdGltZShwYXRoLT5tbnQsIGRlbnRyeSk7CiAJbmRfc2V0X2xpbmsobmQsIE5VTEwpOworCisJaWYgKHBhdGgtPm1udCA9PSBuZC0+bW50KQorCQltbnRnZXQocGF0aC0+bW50KTsKIAllcnJvciA9IGRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+Zm9sbG93X2xpbmsoZGVudHJ5LCBuZCk7CiAJaWYgKCFlcnJvcikgewogCQljaGFyICpzID0gbmRfZ2V0X2xpbmsobmQpOwpAQCAtNTA3LDYgKzUxNiw4IEBACiAJCWlmIChkZW50cnktPmRfaW5vZGUtPmlfb3AtPnB1dF9saW5rKQogCQkJZGVudHJ5LT5kX2lub2RlLT5pX29wLT5wdXRfbGluayhkZW50cnksIG5kKTsKIAl9CisJZHB1dChkZW50cnkpOworCW1udHB1dChwYXRoLT5tbnQpOwogCiAJcmV0dXJuIGVycm9yOwogfQpAQCAtNTE4LDcgKzUyOSw3IEBACiAgKiBXaXRob3V0IHRoYXQga2luZCBvZiB0b3RhbCBsaW1pdCwgbmFzdHkgY2hhaW5zIG9mIGNvbnNlY3V0aXZlCiAgKiBzeW1saW5rcyBjYW4gY2F1c2UgYWxtb3N0IGFyYml0cmFyaWx5IGxvbmcgbG9va3Vwcy4gCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IGRvX2ZvbGxvd19saW5rKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpCitzdGF0aWMgaW5saW5lIGludCBkb19mb2xsb3dfbGluayhzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0IG5hbWVpZGF0YSAqbmQpCiB7CiAJaW50IGVyciA9IC1FTE9PUDsKIAlpZiAoY3VycmVudC0+bGlua19jb3VudCA+PSBNQVhfTkVTVEVEX0xJTktTKQpAQCAtNTI3LDE3ICs1MzgsMjAgQEAKIAkJZ290byBsb29wOwogCUJVR19PTihuZC0+ZGVwdGggPj0gTUFYX05FU1RFRF9MSU5LUyk7CiAJY29uZF9yZXNjaGVkKCk7Ci0JZXJyID0gc2VjdXJpdHlfaW5vZGVfZm9sbG93X2xpbmsoZGVudHJ5LCBuZCk7CisJZXJyID0gc2VjdXJpdHlfaW5vZGVfZm9sbG93X2xpbmsocGF0aC0+ZGVudHJ5LCBuZCk7CiAJaWYgKGVycikKIAkJZ290byBsb29wOwogCWN1cnJlbnQtPmxpbmtfY291bnQrKzsKIAljdXJyZW50LT50b3RhbF9saW5rX2NvdW50Kys7CiAJbmQtPmRlcHRoKys7Ci0JZXJyID0gX19kb19mb2xsb3dfbGluayhkZW50cnksIG5kKTsKKwllcnIgPSBfX2RvX2ZvbGxvd19saW5rKHBhdGgsIG5kKTsKIAljdXJyZW50LT5saW5rX2NvdW50LS07CiAJbmQtPmRlcHRoLS07CiAJcmV0dXJuIGVycjsKIGxvb3A6CisJZHB1dChwYXRoLT5kZW50cnkpOworCWlmIChwYXRoLT5tbnQgIT0gbmQtPm1udCkKKwkJbW50cHV0KHBhdGgtPm1udCk7CiAJcGF0aF9yZWxlYXNlKG5kKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtNTY1LDg3ICs1NzksOTEgQEAKIC8qIG5vIG5lZWQgZm9yIGRjYWNoZV9sb2NrLCBhcyBzZXJpYWxpemF0aW9uIGlzIHRha2VuIGNhcmUgaW4KICAqIG5hbWVzcGFjZS5jCiAgKi8KLXN0YXRpYyBpbnQgZm9sbG93X21vdW50KHN0cnVjdCB2ZnNtb3VudCAqKm1udCwgc3RydWN0IGRlbnRyeSAqKmRlbnRyeSkKK3N0YXRpYyBpbnQgX19mb2xsb3dfbW91bnQoc3RydWN0IHBhdGggKnBhdGgpCiB7CiAJaW50IHJlcyA9IDA7Ci0Jd2hpbGUgKGRfbW91bnRwb2ludCgqZGVudHJ5KSkgewotCQlzdHJ1Y3QgdmZzbW91bnQgKm1vdW50ZWQgPSBsb29rdXBfbW50KCptbnQsICpkZW50cnkpOworCXdoaWxlIChkX21vdW50cG9pbnQocGF0aC0+ZGVudHJ5KSkgeworCQlzdHJ1Y3QgdmZzbW91bnQgKm1vdW50ZWQgPSBsb29rdXBfbW50KHBhdGgtPm1udCwgcGF0aC0+ZGVudHJ5KTsKIAkJaWYgKCFtb3VudGVkKQogCQkJYnJlYWs7Ci0JCW1udHB1dCgqbW50KTsKLQkJKm1udCA9IG1vdW50ZWQ7Ci0JCWRwdXQoKmRlbnRyeSk7Ci0JCSpkZW50cnkgPSBkZ2V0KG1vdW50ZWQtPm1udF9yb290KTsKKwkJZHB1dChwYXRoLT5kZW50cnkpOworCQlpZiAocmVzKQorCQkJbW50cHV0KHBhdGgtPm1udCk7CisJCXBhdGgtPm1udCA9IG1vdW50ZWQ7CisJCXBhdGgtPmRlbnRyeSA9IGRnZXQobW91bnRlZC0+bW50X3Jvb3QpOwogCQlyZXMgPSAxOwogCX0KIAlyZXR1cm4gcmVzOwogfQogCitzdGF0aWMgdm9pZCBmb2xsb3dfbW91bnQoc3RydWN0IHZmc21vdW50ICoqbW50LCBzdHJ1Y3QgZGVudHJ5ICoqZGVudHJ5KQoreworCXdoaWxlIChkX21vdW50cG9pbnQoKmRlbnRyeSkpIHsKKwkJc3RydWN0IHZmc21vdW50ICptb3VudGVkID0gbG9va3VwX21udCgqbW50LCAqZGVudHJ5KTsKKwkJaWYgKCFtb3VudGVkKQorCQkJYnJlYWs7CisJCWRwdXQoKmRlbnRyeSk7CisJCW1udHB1dCgqbW50KTsKKwkJKm1udCA9IG1vdW50ZWQ7CisJCSpkZW50cnkgPSBkZ2V0KG1vdW50ZWQtPm1udF9yb290KTsKKwl9Cit9CisKIC8qIG5vIG5lZWQgZm9yIGRjYWNoZV9sb2NrLCBhcyBzZXJpYWxpemF0aW9uIGlzIHRha2VuIGNhcmUgaW4KICAqIG5hbWVzcGFjZS5jCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fZm9sbG93X2Rvd24oc3RydWN0IHZmc21vdW50ICoqbW50LCBzdHJ1Y3QgZGVudHJ5ICoqZGVudHJ5KQoraW50IGZvbGxvd19kb3duKHN0cnVjdCB2ZnNtb3VudCAqKm1udCwgc3RydWN0IGRlbnRyeSAqKmRlbnRyeSkKIHsKIAlzdHJ1Y3QgdmZzbW91bnQgKm1vdW50ZWQ7CiAKIAltb3VudGVkID0gbG9va3VwX21udCgqbW50LCAqZGVudHJ5KTsKIAlpZiAobW91bnRlZCkgeworCQlkcHV0KCpkZW50cnkpOwogCQltbnRwdXQoKm1udCk7CiAJCSptbnQgPSBtb3VudGVkOwotCQlkcHV0KCpkZW50cnkpOwogCQkqZGVudHJ5ID0gZGdldChtb3VudGVkLT5tbnRfcm9vdCk7CiAJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KIAotaW50IGZvbGxvd19kb3duKHN0cnVjdCB2ZnNtb3VudCAqKm1udCwgc3RydWN0IGRlbnRyeSAqKmRlbnRyeSkKLXsKLQlyZXR1cm4gX19mb2xsb3dfZG93bihtbnQsZGVudHJ5KTsKLX0KLSAKLXN0YXRpYyBpbmxpbmUgdm9pZCBmb2xsb3dfZG90ZG90KHN0cnVjdCB2ZnNtb3VudCAqKm1udCwgc3RydWN0IGRlbnRyeSAqKmRlbnRyeSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBmb2xsb3dfZG90ZG90KHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewogCXdoaWxlKDEpIHsKIAkJc3RydWN0IHZmc21vdW50ICpwYXJlbnQ7Ci0JCXN0cnVjdCBkZW50cnkgKm9sZCA9ICpkZW50cnk7CisJCXN0cnVjdCBkZW50cnkgKm9sZCA9IG5kLT5kZW50cnk7CiAKICAgICAgICAgICAgICAgICByZWFkX2xvY2soJmN1cnJlbnQtPmZzLT5sb2NrKTsKLQkJaWYgKCpkZW50cnkgPT0gY3VycmVudC0+ZnMtPnJvb3QgJiYKLQkJICAgICptbnQgPT0gY3VycmVudC0+ZnMtPnJvb3RtbnQpIHsKKwkJaWYgKG5kLT5kZW50cnkgPT0gY3VycmVudC0+ZnMtPnJvb3QgJiYKKwkJICAgIG5kLT5tbnQgPT0gY3VycmVudC0+ZnMtPnJvb3RtbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZW50LT5mcy0+bG9jayk7CiAJCQlicmVhazsKIAkJfQogICAgICAgICAgICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZW50LT5mcy0+bG9jayk7CiAJCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOwotCQlpZiAoKmRlbnRyeSAhPSAoKm1udCktPm1udF9yb290KSB7Ci0JCQkqZGVudHJ5ID0gZGdldCgoKmRlbnRyeSktPmRfcGFyZW50KTsKKwkJaWYgKG5kLT5kZW50cnkgIT0gbmQtPm1udC0+bW50X3Jvb3QpIHsKKwkJCW5kLT5kZW50cnkgPSBkZ2V0KG5kLT5kZW50cnktPmRfcGFyZW50KTsKIAkJCXNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7CiAJCQlkcHV0KG9sZCk7CiAJCQlicmVhazsKIAkJfQogCQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOwogCQlzcGluX2xvY2soJnZmc21vdW50X2xvY2spOwotCQlwYXJlbnQgPSAoKm1udCktPm1udF9wYXJlbnQ7Ci0JCWlmIChwYXJlbnQgPT0gKm1udCkgeworCQlwYXJlbnQgPSBuZC0+bW50LT5tbnRfcGFyZW50OworCQlpZiAocGFyZW50ID09IG5kLT5tbnQpIHsKIAkJCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAkJCWJyZWFrOwogCQl9CiAJCW1udGdldChwYXJlbnQpOwotCQkqZGVudHJ5ID0gZGdldCgoKm1udCktPm1udF9tb3VudHBvaW50KTsKKwkJbmQtPmRlbnRyeSA9IGRnZXQobmQtPm1udC0+bW50X21vdW50cG9pbnQpOwogCQlzcGluX3VubG9jaygmdmZzbW91bnRfbG9jayk7CiAJCWRwdXQob2xkKTsKLQkJbW50cHV0KCptbnQpOwotCQkqbW50ID0gcGFyZW50OworCQltbnRwdXQobmQtPm1udCk7CisJCW5kLT5tbnQgPSBwYXJlbnQ7CiAJfQotCWZvbGxvd19tb3VudChtbnQsIGRlbnRyeSk7CisJZm9sbG93X21vdW50KCZuZC0+bW50LCAmbmQtPmRlbnRyeSk7CiB9CiAKLXN0cnVjdCBwYXRoIHsKLQlzdHJ1Y3QgdmZzbW91bnQgKm1udDsKLQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7Ci19OwotCiAvKgogICogIEl0J3MgbW9yZSBjb252b2x1dGVkIHRoYW4gSSdkIGxpa2UgaXQgdG8gYmUsIGJ1dC4uLiBpdCdzIHN0aWxsIGZhaXJseQogICogIHNtYWxsIGFuZCBmb3Igbm93IEknZCBwcmVmZXIgdG8gaGF2ZSBmYXN0IHBhdGggYXMgc3RyYWlnaHQgYXMgcG9zc2libGUuCkBAIC02NjQsNiArNjgyLDcgQEAKIGRvbmU6CiAJcGF0aC0+bW50ID0gbW50OwogCXBhdGgtPmRlbnRyeSA9IGRlbnRyeTsKKwlfX2ZvbGxvd19tb3VudChwYXRoKTsKIAlyZXR1cm4gMDsKIAogbmVlZF9sb29rdXA6CkBAIC03NTEsNyArNzcwLDcgQEAKIAkJCWNhc2UgMjoJCiAJCQkJaWYgKHRoaXMubmFtZVsxXSAhPSAnLicpCiAJCQkJCWJyZWFrOwotCQkJCWZvbGxvd19kb3Rkb3QoJm5kLT5tbnQsICZuZC0+ZGVudHJ5KTsKKwkJCQlmb2xsb3dfZG90ZG90KG5kKTsKIAkJCQlpbm9kZSA9IG5kLT5kZW50cnktPmRfaW5vZGU7CiAJCQkJLyogZmFsbHRocm91Z2ggKi8KIAkJCWNhc2UgMToKQEAgLTc3MSw4ICs3OTAsNiBAQAogCQllcnIgPSBkb19sb29rdXAobmQsICZ0aGlzLCAmbmV4dCk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKLQkJLyogQ2hlY2sgbW91bnRwb2ludHMuLiAqLwotCQlmb2xsb3dfbW91bnQoJm5leHQubW50LCAmbmV4dC5kZW50cnkpOwogCiAJCWVyciA9IC1FTk9FTlQ7CiAJCWlub2RlID0gbmV4dC5kZW50cnktPmRfaW5vZGU7CkBAIC03ODMsMTAgKzgwMCw3IEBACiAJCQlnb3RvIG91dF9kcHV0OwogCiAJCWlmIChpbm9kZS0+aV9vcC0+Zm9sbG93X2xpbmspIHsKLQkJCW1udGdldChuZXh0Lm1udCk7Ci0JCQllcnIgPSBkb19mb2xsb3dfbGluayhuZXh0LmRlbnRyeSwgbmQpOwotCQkJZHB1dChuZXh0LmRlbnRyeSk7Ci0JCQltbnRwdXQobmV4dC5tbnQpOworCQkJZXJyID0gZG9fZm9sbG93X2xpbmsoJm5leHQsIG5kKTsKIAkJCWlmIChlcnIpCiAJCQkJZ290byByZXR1cm5fZXJyOwogCQkJZXJyID0gLUVOT0VOVDsKQEAgLTc5OCw2ICs4MTIsOCBAQAogCQkJCWJyZWFrOwogCQl9IGVsc2UgewogCQkJZHB1dChuZC0+ZGVudHJ5KTsKKwkJCWlmIChuZC0+bW50ICE9IG5leHQubW50KQorCQkJCW1udHB1dChuZC0+bW50KTsKIAkJCW5kLT5tbnQgPSBuZXh0Lm1udDsKIAkJCW5kLT5kZW50cnkgPSBuZXh0LmRlbnRyeTsKIAkJfQpAQCAtODE5LDcgKzgzNSw3IEBACiAJCQljYXNlIDI6CQogCQkJCWlmICh0aGlzLm5hbWVbMV0gIT0gJy4nKQogCQkJCQlicmVhazsKLQkJCQlmb2xsb3dfZG90ZG90KCZuZC0+bW50LCAmbmQtPmRlbnRyeSk7CisJCQkJZm9sbG93X2RvdGRvdChuZCk7CiAJCQkJaW5vZGUgPSBuZC0+ZGVudHJ5LT5kX2lub2RlOwogCQkJCS8qIGZhbGx0aHJvdWdoICovCiAJCQljYXNlIDE6CkBAIC04MzMsMTkgKzg0OSwxNyBAQAogCQllcnIgPSBkb19sb29rdXAobmQsICZ0aGlzLCAmbmV4dCk7CiAJCWlmIChlcnIpCiAJCQlicmVhazsKLQkJZm9sbG93X21vdW50KCZuZXh0Lm1udCwgJm5leHQuZGVudHJ5KTsKIAkJaW5vZGUgPSBuZXh0LmRlbnRyeS0+ZF9pbm9kZTsKIAkJaWYgKChsb29rdXBfZmxhZ3MgJiBMT09LVVBfRk9MTE9XKQogCQkgICAgJiYgaW5vZGUgJiYgaW5vZGUtPmlfb3AgJiYgaW5vZGUtPmlfb3AtPmZvbGxvd19saW5rKSB7Ci0JCQltbnRnZXQobmV4dC5tbnQpOwotCQkJZXJyID0gZG9fZm9sbG93X2xpbmsobmV4dC5kZW50cnksIG5kKTsKLQkJCWRwdXQobmV4dC5kZW50cnkpOwotCQkJbW50cHV0KG5leHQubW50KTsKKwkJCWVyciA9IGRvX2ZvbGxvd19saW5rKCZuZXh0LCBuZCk7CiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gcmV0dXJuX2VycjsKIAkJCWlub2RlID0gbmQtPmRlbnRyeS0+ZF9pbm9kZTsKIAkJfSBlbHNlIHsKIAkJCWRwdXQobmQtPmRlbnRyeSk7CisJCQlpZiAobmQtPm1udCAhPSBuZXh0Lm1udCkKKwkJCQltbnRwdXQobmQtPm1udCk7CiAJCQluZC0+bW50ID0gbmV4dC5tbnQ7CiAJCQluZC0+ZGVudHJ5ID0gbmV4dC5kZW50cnk7CiAJCX0KQEAgLTg4NSw2ICs4OTksOCBAQAogCQlyZXR1cm4gMDsKIG91dF9kcHV0OgogCQlkcHV0KG5leHQuZGVudHJ5KTsKKwkJaWYgKG5kLT5tbnQgIT0gbmV4dC5tbnQpCisJCQltbnRwdXQobmV4dC5tbnQpOwogCQlicmVhazsKIAl9CiAJcGF0aF9yZWxlYXNlKG5kKTsKQEAgLTEzOTgsNyArMTQxNCw3IEBACiBpbnQgb3Blbl9uYW1laShjb25zdCBjaGFyICogcGF0aG5hbWUsIGludCBmbGFnLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpCiB7CiAJaW50IGFjY19tb2RlLCBlcnJvciA9IDA7Ci0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5OworCXN0cnVjdCBwYXRoIHBhdGg7CiAJc3RydWN0IGRlbnRyeSAqZGlyOwogCWludCBjb3VudCA9IDA7CiAKQEAgLTE0NDIsMjMgKzE0NTgsMjQgQEAKIAlkaXIgPSBuZC0+ZGVudHJ5OwogCW5kLT5mbGFncyAmPSB+TE9PS1VQX1BBUkVOVDsKIAlkb3duKCZkaXItPmRfaW5vZGUtPmlfc2VtKTsKLQlkZW50cnkgPSBfX2xvb2t1cF9oYXNoKCZuZC0+bGFzdCwgbmQtPmRlbnRyeSwgbmQpOworCXBhdGguZGVudHJ5ID0gX19sb29rdXBfaGFzaCgmbmQtPmxhc3QsIG5kLT5kZW50cnksIG5kKTsKKwlwYXRoLm1udCA9IG5kLT5tbnQ7CiAKIGRvX2xhc3Q6Ci0JZXJyb3IgPSBQVFJfRVJSKGRlbnRyeSk7Ci0JaWYgKElTX0VSUihkZW50cnkpKSB7CisJZXJyb3IgPSBQVFJfRVJSKHBhdGguZGVudHJ5KTsKKwlpZiAoSVNfRVJSKHBhdGguZGVudHJ5KSkgewogCQl1cCgmZGlyLT5kX2lub2RlLT5pX3NlbSk7CiAJCWdvdG8gZXhpdDsKIAl9CiAKIAkvKiBOZWdhdGl2ZSBkZW50cnksIGp1c3QgY3JlYXRlIHRoZSBmaWxlICovCi0JaWYgKCFkZW50cnktPmRfaW5vZGUpIHsKKwlpZiAoIXBhdGguZGVudHJ5LT5kX2lub2RlKSB7CiAJCWlmICghSVNfUE9TSVhBQ0woZGlyLT5kX2lub2RlKSkKIAkJCW1vZGUgJj0gfmN1cnJlbnQtPmZzLT51bWFzazsKLQkJZXJyb3IgPSB2ZnNfY3JlYXRlKGRpci0+ZF9pbm9kZSwgZGVudHJ5LCBtb2RlLCBuZCk7CisJCWVycm9yID0gdmZzX2NyZWF0ZShkaXItPmRfaW5vZGUsIHBhdGguZGVudHJ5LCBtb2RlLCBuZCk7CiAJCXVwKCZkaXItPmRfaW5vZGUtPmlfc2VtKTsKIAkJZHB1dChuZC0+ZGVudHJ5KTsKLQkJbmQtPmRlbnRyeSA9IGRlbnRyeTsKKwkJbmQtPmRlbnRyeSA9IHBhdGguZGVudHJ5OwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIGV4aXQ7CiAJCS8qIERvbid0IGNoZWNrIGZvciB3cml0ZSBwZXJtaXNzaW9uLCBkb24ndCB0cnVuY2F0ZSAqLwpAQCAtMTQ3NiwyMiArMTQ5MywyNCBAQAogCWlmIChmbGFnICYgT19FWENMKQogCQlnb3RvIGV4aXRfZHB1dDsKIAotCWlmIChkX21vdW50cG9pbnQoZGVudHJ5KSkgeworCWlmIChfX2ZvbGxvd19tb3VudCgmcGF0aCkpIHsKIAkJZXJyb3IgPSAtRUxPT1A7CiAJCWlmIChmbGFnICYgT19OT0ZPTExPVykKIAkJCWdvdG8gZXhpdF9kcHV0OwotCQl3aGlsZSAoX19mb2xsb3dfZG93bigmbmQtPm1udCwmZGVudHJ5KSAmJiBkX21vdW50cG9pbnQoZGVudHJ5KSk7CiAJfQogCWVycm9yID0gLUVOT0VOVDsKLQlpZiAoIWRlbnRyeS0+ZF9pbm9kZSkKKwlpZiAoIXBhdGguZGVudHJ5LT5kX2lub2RlKQogCQlnb3RvIGV4aXRfZHB1dDsKLQlpZiAoZGVudHJ5LT5kX2lub2RlLT5pX29wICYmIGRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+Zm9sbG93X2xpbmspCisJaWYgKHBhdGguZGVudHJ5LT5kX2lub2RlLT5pX29wICYmIHBhdGguZGVudHJ5LT5kX2lub2RlLT5pX29wLT5mb2xsb3dfbGluaykKIAkJZ290byBkb19saW5rOwogCiAJZHB1dChuZC0+ZGVudHJ5KTsKLQluZC0+ZGVudHJ5ID0gZGVudHJ5OworCW5kLT5kZW50cnkgPSBwYXRoLmRlbnRyeTsKKwlpZiAobmQtPm1udCAhPSBwYXRoLm1udCkKKwkJbW50cHV0KG5kLT5tbnQpOworCW5kLT5tbnQgPSBwYXRoLm1udDsKIAllcnJvciA9IC1FSVNESVI7Ci0JaWYgKGRlbnRyeS0+ZF9pbm9kZSAmJiBTX0lTRElSKGRlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlKSkKKwlpZiAocGF0aC5kZW50cnktPmRfaW5vZGUgJiYgU19JU0RJUihwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlKSkKIAkJZ290byBleGl0Owogb2s6CiAJZXJyb3IgPSBtYXlfb3BlbihuZCwgYWNjX21vZGUsIGZsYWcpOwpAQCAtMTUwMCw3ICsxNTE5LDkgQEAKIAlyZXR1cm4gMDsKIAogZXhpdF9kcHV0OgotCWRwdXQoZGVudHJ5KTsKKwlkcHV0KHBhdGguZGVudHJ5KTsKKwlpZiAobmQtPm1udCAhPSBwYXRoLm1udCkKKwkJbW50cHV0KHBhdGgubW50KTsKIGV4aXQ6CiAJcGF0aF9yZWxlYXNlKG5kKTsKIAlyZXR1cm4gZXJyb3I7CkBAIC0xNTIwLDE4ICsxNTQxLDE1IEBACiAJICogYXJlIGRvbmUuIFByb2Nmcy1saWtlIHN5bWxpbmtzIGp1c3Qgc2V0IExBU1RfQklORC4KIAkgKi8KIAluZC0+ZmxhZ3MgfD0gTE9PS1VQX1BBUkVOVDsKLQllcnJvciA9IHNlY3VyaXR5X2lub2RlX2ZvbGxvd19saW5rKGRlbnRyeSwgbmQpOworCWVycm9yID0gc2VjdXJpdHlfaW5vZGVfZm9sbG93X2xpbmsocGF0aC5kZW50cnksIG5kKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZXhpdF9kcHV0OwotCWVycm9yID0gX19kb19mb2xsb3dfbGluayhkZW50cnksIG5kKTsKLQlkcHV0KGRlbnRyeSk7CisJZXJyb3IgPSBfX2RvX2ZvbGxvd19saW5rKCZwYXRoLCBuZCk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAJbmQtPmZsYWdzICY9IH5MT09LVVBfUEFSRU5UOwotCWlmIChuZC0+bGFzdF90eXBlID09IExBU1RfQklORCkgewotCQlkZW50cnkgPSBuZC0+ZGVudHJ5OworCWlmIChuZC0+bGFzdF90eXBlID09IExBU1RfQklORCkKIAkJZ290byBvazsKLQl9CiAJZXJyb3IgPSAtRUlTRElSOwogCWlmIChuZC0+bGFzdF90eXBlICE9IExBU1RfTk9STSkKIAkJZ290byBleGl0OwpAQCAtMTU0Niw3ICsxNTY0LDggQEAKIAl9CiAJZGlyID0gbmQtPmRlbnRyeTsKIAlkb3duKCZkaXItPmRfaW5vZGUtPmlfc2VtKTsKLQlkZW50cnkgPSBfX2xvb2t1cF9oYXNoKCZuZC0+bGFzdCwgbmQtPmRlbnRyeSwgbmQpOworCXBhdGguZGVudHJ5ID0gX19sb29rdXBfaGFzaCgmbmQtPmxhc3QsIG5kLT5kZW50cnksIG5kKTsKKwlwYXRoLm1udCA9IG5kLT5tbnQ7CiAJcHV0bmFtZShuZC0+bGFzdC5uYW1lKTsKIAlnb3RvIGRvX2xhc3Q7CiB9CmRpZmYgLS1naXQgYS9mcy9uZnMvZGlyLmMgYi9mcy9uZnMvZGlyLmMKaW5kZXggNzNmOTZhYy4uZmY2MTU1ZiAxMDA2NDQKLS0tIGEvZnMvbmZzL2Rpci5jCisrKyBiL2ZzL25mcy9kaXIuYwpAQCAtNTI4LDE5ICs1MjgsMzkgQEAKIAlkZW50cnktPmRfdGltZSA9IGppZmZpZXM7CiB9CiAKKy8qCisgKiBSZXR1cm4gdGhlIGludGVudCBkYXRhIHRoYXQgYXBwbGllcyB0byB0aGlzIHBhcnRpY3VsYXIgcGF0aCBjb21wb25lbnQKKyAqCisgKiBOb3RlIHRoYXQgdGhlIGN1cnJlbnQgc2V0IG9mIGludGVudHMgb25seSBhcHBseSB0byB0aGUgdmVyeSBsYXN0CisgKiBjb21wb25lbnQgb2YgdGhlIHBhdGguCisgKiBXZSBjaGVjayBmb3IgdGhpcyB1c2luZyBMT09LVVBfQ09OVElOVUUgYW5kIExPT0tVUF9QQVJFTlQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG5mc19sb29rdXBfY2hlY2tfaW50ZW50KHN0cnVjdCBuYW1laWRhdGEgKm5kLCB1bnNpZ25lZCBpbnQgbWFzaykKK3sKKwlpZiAobmQtPmZsYWdzICYgKExPT0tVUF9DT05USU5VRXxMT09LVVBfUEFSRU5UKSkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIG5kLT5mbGFncyAmIG1hc2s7Cit9CisKKy8qCisgKiBJbm9kZSBhbmQgZmlsZWhhbmRsZSByZXZhbGlkYXRpb24gZm9yIGxvb2t1cHMuCisgKgorICogV2UgZm9yY2UgcmV2YWxpZGF0aW9uIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgVkZTIHNldHMgTE9PS1VQX1JFVkFMLAorICogb3IgaWYgdGhlIGludGVudCBpbmZvcm1hdGlvbiBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBhYm91dCB0byBvcGVuIHRoaXMKKyAqIHBhcnRpY3VsYXIgZmlsZSBhbmQgdGhlICJub2N0byIgbW91bnQgZmxhZyBpcyBub3Qgc2V0LgorICoKKyAqLwogc3RhdGljIGlubGluZQogaW50IG5mc19sb29rdXBfdmVyaWZ5X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewogCXN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXIgPSBORlNfU0VSVkVSKGlub2RlKTsKIAogCWlmIChuZCAhPSBOVUxMKSB7Ci0JCWludCBuZGZsYWdzID0gbmQtPmZsYWdzOwogCQkvKiBWRlMgd2FudHMgYW4gb24tdGhlLXdpcmUgcmV2YWxpZGF0aW9uICovCi0JCWlmIChuZGZsYWdzICYgTE9PS1VQX1JFVkFMKQorCQlpZiAobmQtPmZsYWdzICYgTE9PS1VQX1JFVkFMKQogCQkJZ290byBvdXRfZm9yY2U7CiAJCS8qIFRoaXMgaXMgYW4gb3BlbigyKSAqLwotCQlpZiAoKG5kZmxhZ3MgJiBMT09LVVBfT1BFTikgJiYKLQkJCQkhKG5kZmxhZ3MgJiBMT09LVVBfQ09OVElOVUUpICYmCisJCWlmIChuZnNfbG9va3VwX2NoZWNrX2ludGVudChuZCwgTE9PS1VQX09QRU4pICE9IDAgJiYKIAkJCQkhKHNlcnZlci0+ZmxhZ3MgJiBORlNfTU9VTlRfTk9DVE8pKQogCQkJZ290byBvdXRfZm9yY2U7CiAJfQpAQCAtNTYwLDEyICs1ODAsOCBAQAogaW50IG5mc19uZWdfbmVlZF9yZXZhbChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogCQkgICAgICAgc3RydWN0IG5hbWVpZGF0YSAqbmQpCiB7Ci0JaW50IG5kZmxhZ3MgPSAwOwotCi0JaWYgKG5kKQotCQluZGZsYWdzID0gbmQtPmZsYWdzOwogCS8qIERvbid0IHJldmFsaWRhdGUgYSBuZWdhdGl2ZSBkZW50cnkgaWYgd2UncmUgY3JlYXRpbmcgYSBuZXcgZmlsZSAqLwotCWlmICgobmRmbGFncyAmIExPT0tVUF9DUkVBVEUpICYmICEobmRmbGFncyAmIExPT0tVUF9DT05USU5VRSkpCisJaWYgKG5kICE9IE5VTEwgJiYgbmZzX2xvb2t1cF9jaGVja19pbnRlbnQobmQsIExPT0tVUF9DUkVBVEUpICE9IDApCiAJCXJldHVybiAwOwogCXJldHVybiAhbmZzX2NoZWNrX3ZlcmlmaWVyKGRpciwgZGVudHJ5KTsKIH0KQEAgLTcwMCwxMiArNzE2LDE2IEBACiAJLmRfaXB1dAkJPSBuZnNfZGVudHJ5X2lwdXQsCiB9OwogCisvKgorICogVXNlIGludGVudCBpbmZvcm1hdGlvbiB0byBjaGVjayB3aGV0aGVyIG9yIG5vdCB3ZSdyZSBnb2luZyB0byBkbworICogYW4gT19FWENMIGNyZWF0ZSB1c2luZyB0aGlzIHBhdGggY29tcG9uZW50LgorICovCiBzdGF0aWMgaW5saW5lCiBpbnQgbmZzX2lzX2V4Y2x1c2l2ZV9jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewogCWlmIChORlNfUFJPVE8oZGlyKS0+dmVyc2lvbiA9PSAyKQogCQlyZXR1cm4gMDsKLQlpZiAoIW5kIHx8IChuZC0+ZmxhZ3MgJiBMT09LVVBfQ09OVElOVUUpIHx8ICEobmQtPmZsYWdzICYgTE9PS1VQX0NSRUFURSkpCisJaWYgKG5kID09IE5VTEwgfHwgbmZzX2xvb2t1cF9jaGVja19pbnRlbnQobmQsIExPT0tVUF9DUkVBVEUpID09IDApCiAJCXJldHVybiAwOwogCXJldHVybiAobmQtPmludGVudC5vcGVuLmZsYWdzICYgT19FWENMKSAhPSAwOwogfQpAQCAtNzcyLDEyICs3OTIsMTMgQEAKIAkuZF9pcHV0CQk9IG5mc19kZW50cnlfaXB1dCwKIH07CiAKKy8qCisgKiBVc2UgaW50ZW50IGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZQorICogdGhlIE5GU3Y0LXN0eWxlIHN0YXRlZnVsIE9QRU4gZm9yIHRoZSBMT09LVVAgY2FsbAorICovCiBzdGF0aWMgaW50IGlzX2F0b21pY19vcGVuKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKIHsKLQlpZiAoIW5kKQotCQlyZXR1cm4gMDsKLQkvKiBDaGVjayB0aGF0IHdlIGFyZSBpbmRlZWQgdHJ5aW5nIHRvIG9wZW4gdGhpcyBmaWxlICovCi0JaWYgKChuZC0+ZmxhZ3MgJiBMT09LVVBfQ09OVElOVUUpIHx8ICEobmQtPmZsYWdzICYgTE9PS1VQX09QRU4pKQorCWlmIChuZCA9PSBOVUxMIHx8IG5mc19sb29rdXBfY2hlY2tfaW50ZW50KG5kLCBMT09LVVBfT1BFTikgPT0gMCkKIAkJcmV0dXJuIDA7CiAJLyogTkZTIGRvZXMgbm90ICh5ZXQpIGhhdmUgYSBzdGF0ZWZ1bCBvcGVuIGZvciBkaXJlY3RvcmllcyAqLwogCWlmIChuZC0+ZmxhZ3MgJiBMT09LVVBfRElSRUNUT1JZKQpkaWZmIC0tZ2l0IGEvZnMvbmZzL2ZpbGUuYyBiL2ZzL25mcy9maWxlLmMKaW5kZXggZjA2ZWVlNi4uNTVjOTA3NSAxMDA2NDQKLS0tIGEvZnMvbmZzL2ZpbGUuYworKysgYi9mcy9uZnMvZmlsZS5jCkBAIC0zNyw2ICszNyw3IEBACiAKIHN0YXRpYyBpbnQgbmZzX2ZpbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CiBzdGF0aWMgaW50IG5mc19maWxlX3JlbGVhc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOworc3RhdGljIGxvZmZfdCBuZnNfZmlsZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pOwogc3RhdGljIGludCAgbmZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7CiBzdGF0aWMgc3NpemVfdCBuZnNfZmlsZV9zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc2l6ZV90LCByZWFkX2FjdG9yX3QsIHZvaWQgKik7CiBzdGF0aWMgc3NpemVfdCBuZnNfZmlsZV9yZWFkKHN0cnVjdCBraW9jYiAqLCBjaGFyIF9fdXNlciAqLCBzaXplX3QsIGxvZmZfdCk7CkBAIC00OCw3ICs0OSw3IEBACiBzdGF0aWMgaW50IG5mc19mbG9jayhzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IGNtZCwgc3RydWN0IGZpbGVfbG9jayAqZmwpOwogCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5mc19maWxlX29wZXJhdGlvbnMgPSB7Ci0JLmxsc2VlawkJPSByZW1vdGVfbGxzZWVrLAorCS5sbHNlZWsJCT0gbmZzX2ZpbGVfbGxzZWVrLAogCS5yZWFkCQk9IGRvX3N5bmNfcmVhZCwKIAkud3JpdGUJCT0gZG9fc3luY193cml0ZSwKIAkuYWlvX3JlYWQJCT0gbmZzX2ZpbGVfcmVhZCwKQEAgLTExNCw2ICsxMTUsNDUgQEAKIAlyZXR1cm4gTkZTX1BST1RPKGlub2RlKS0+ZmlsZV9yZWxlYXNlKGlub2RlLCBmaWxwKTsKIH0KIAorLyoqCisgKiBuZnNfcmV2YWxpZGF0ZV9zaXplIC0gUmV2YWxpZGF0ZSB0aGUgZmlsZSBzaXplCisgKiBAaW5vZGUgLSBwb2ludGVyIHRvIGlub2RlIHN0cnVjdAorICogQGZpbGUgLSBwb2ludGVyIHRvIHN0cnVjdCBmaWxlCisgKgorICogUmV2YWxpZGF0ZXMgdGhlIGZpbGUgbGVuZ3RoLiBUaGlzIGlzIGJhc2ljYWxseSBhIHdyYXBwZXIgYXJvdW5kCisgKiBuZnNfcmV2YWxpZGF0ZV9pbm9kZSgpIHRoYXQgdGFrZXMgaW50byBhY2NvdW50IHRoZSBmYWN0IHRoYXQgd2UgbWF5CisgKiBoYXZlIGNhY2hlZCB3cml0ZXMgKGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgc2VydmVyJ3MKKyAqIGlkZWEgb2Ygd2hhdCB0aGUgZmlsZSBsZW5ndGggaXMpLCBvciBPX0RJUkVDVCAoaW4gd2hpY2ggY2FzZSB3ZQorICogc2hvdWxkbid0IHRydXN0IHRoZSBjYWNoZSkuCisgKi8KK3N0YXRpYyBpbnQgbmZzX3JldmFsaWRhdGVfZmlsZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXIgPSBORlNfU0VSVkVSKGlub2RlKTsKKwlzdHJ1Y3QgbmZzX2lub2RlICpuZnNpID0gTkZTX0koaW5vZGUpOworCisJaWYgKHNlcnZlci0+ZmxhZ3MgJiBORlNfTU9VTlRfTk9BQykKKwkJZ290byBmb3JjZV9yZXZhbDsKKwlpZiAoZmlscC0+Zl9mbGFncyAmIE9fRElSRUNUKQorCQlnb3RvIGZvcmNlX3JldmFsOworCWlmIChuZnNpLT5ucGFnZXMgIT0gMCkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIG5mc19yZXZhbGlkYXRlX2lub2RlKHNlcnZlciwgaW5vZGUpOworZm9yY2VfcmV2YWw6CisJcmV0dXJuIF9fbmZzX3JldmFsaWRhdGVfaW5vZGUoc2VydmVyLCBpbm9kZSk7Cit9CisKK3N0YXRpYyBsb2ZmX3QgbmZzX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxwLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQoreworCS8qIG9yaWdpbiA9PSBTRUVLX0VORCA9PiB3ZSBtdXN0IHJldmFsaWRhdGUgdGhlIGNhY2hlZCBmaWxlIGxlbmd0aCAqLworCWlmIChvcmlnaW4gPT0gMikgeworCQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlscC0+Zl9tYXBwaW5nLT5ob3N0OworCQlpbnQgcmV0dmFsID0gbmZzX3JldmFsaWRhdGVfZmlsZV9zaXplKGlub2RlLCBmaWxwKTsKKwkJaWYgKHJldHZhbCA8IDApCisJCQlyZXR1cm4gKGxvZmZfdClyZXR2YWw7CisJfQorCXJldHVybiByZW1vdGVfbGxzZWVrKGZpbHAsIG9mZnNldCwgb3JpZ2luKTsKK30KKwogLyoKICAqIEZsdXNoIGFsbCBkaXJ0eSBwYWdlcywgYW5kIGNoZWNrIGZvciB3cml0ZSBlcnJvcnMuCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYWxwaGEvYWdwLmggYi9pbmNsdWRlL2FzbS1hbHBoYS9hZ3AuaAppbmRleCBjOTlkYmJiLi5lZjg1NWEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hbHBoYS9hZ3AuaAorKysgYi9pbmNsdWRlL2FzbS1hbHBoYS9hZ3AuaApAQCAtMTAsNCArMTAsMTQgQEAKICNkZWZpbmUgZmx1c2hfYWdwX21hcHBpbmdzKCkgCiAjZGVmaW5lIGZsdXNoX2FncF9jYWNoZSgpIG1iKCkKIAorLyogQ29udmVydCBhIHBoeXNpY2FsIGFkZHJlc3MgdG8gYW4gYWRkcmVzcyBzdWl0YWJsZSBmb3IgdGhlIEdBUlQuICovCisjZGVmaW5lIHBoeXNfdG9fZ2FydCh4KSAoeCkKKyNkZWZpbmUgZ2FydF90b19waHlzKHgpICh4KQorCisvKiBHQVRUIGFsbG9jYXRpb24uIFJldHVybnMvYWNjZXB0cyBHQVRUIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuICovCisjZGVmaW5lIGFsbG9jX2dhdHRfcGFnZXMob3JkZXIpCQlcCisJKChjaGFyICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLCAob3JkZXIpKSkKKyNkZWZpbmUgZnJlZV9nYXR0X3BhZ2VzKHRhYmxlLCBvcmRlcikJXAorCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpKHRhYmxlKSwgKG9yZGVyKSkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbnRlZ3JhdG9yL3BsYXRmb3JtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbnRlZ3JhdG9yL3BsYXRmb3JtLmgKaW5kZXggYmQzNjRmNS4uOTZhZDNkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW50ZWdyYXRvci9wbGF0Zm9ybS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWludGVncmF0b3IvcGxhdGZvcm0uaApAQCAtMjkzLDcgKzI5MywxMSBAQAogI2RlZmluZSBJTlRFR1JBVE9SX0RCR19TV0lUQ0ggICAgICAgICAgIChJTlRFR1JBVE9SX0RCR19CQVNFICsgSU5URUdSQVRPUl9EQkdfU1dJVENIX09GRlNFVCkKIAogCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9JTlRFR1JBVE9SX0FQKQogI2RlZmluZSBJTlRFR1JBVE9SX0dQSU9fQkFTRSAgICAgICAgICAgIDB4MUIwMDAwMDAJIC8qICBHUElPICovCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0lOVEVHUkFUT1JfQ1ApCisjZGVmaW5lIElOVEVHUkFUT1JfR1BJT19CQVNFICAgICAgICAgICAgMHhDOTAwMDAwMAkgLyogIEdQSU8gKi8KKyNlbmRpZgogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBLTUkga2V5Ym9hcmQvbW91c2UgZGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDIwMDAvaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDIwMDAvaW8uaAppbmRleCBhOGUzYzJkLi4wODM0NjI2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHAyMDAwL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwMjAwMC9pby5oCkBAIC03NSw4ICs3NSw4IEBACiAJICogSXMgdGhpcyBjeWNsZSBtZWFudCBmb3IgdGhlIENTODkwMD8KIAkgKi8KIAlpZiAoKG1hY2hpbmVfaXNfaXhkcDI0MDEoKSB8fCBtYWNoaW5lX2lzX2l4ZHAyODAxKCkpICYmIAotCQkoKHBvcnQgPj0gSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfQkFTRSkgJiYgCi0JCSAocG9ydCA8PSBJWERQMlgwMV9DUzg5MDBfVklSVF9FTkQpKSkgeworCQkoKCh1MzIpcG9ydCA+PSAodTMyKUlYRFAyWDAxX0NTODkwMF9WSVJUX0JBU0UpICYmCisJCSAoKHUzMilwb3J0IDw9ICh1MzIpSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfRU5EKSkpIHsKIAkJdTggKmJ1ZjggPSAodTgqKWJ1ZjsKIAkJcmVnaXN0ZXIgdTMyIHRtcDMyOwogCkBAIC0xMDAsOCArMTAwLDggQEAKIAkgKiBJcyB0aGlzIGN5Y2xlIG1lYW50IGZvciB0aGUgQ1M4OTAwPwogCSAqLwogCWlmICgobWFjaGluZV9pc19peGRwMjQwMSgpIHx8IG1hY2hpbmVfaXNfaXhkcDI4MDEoKSkgJiYgCi0JCSgocG9ydCA+PSBJWERQMlgwMV9DUzg5MDBfVklSVF9CQVNFKSAmJiAKLQkJIChwb3J0IDw9IElYRFAyWDAxX0NTODkwMF9WSVJUX0VORCkpKSB7CisJCSgoKHUzMilwb3J0ID49ICh1MzIpSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfQkFTRSkgJiYKKwkJICgodTMyKXBvcnQgPD0gKHUzMilJWERQMlgwMV9DUzg5MDBfVklSVF9FTkQpKSkgewogCQlyZWdpc3RlciB1MzIgdG1wMzI7CiAJCXU4ICpidWY4ID0gKHU4KilidWY7CiAJCWRvIHsKQEAgLTEyNCw4ICsxMjQsOCBAQAogCSAqIElzIHRoaXMgY3ljbGUgbWVhbnQgZm9yIHRoZSBDUzg5MDA/CiAJICovCiAJaWYgKChtYWNoaW5lX2lzX2l4ZHAyNDAxKCkgfHwgbWFjaGluZV9pc19peGRwMjgwMSgpKSAmJiAKLQkJKChwb3J0ID49IElYRFAyWDAxX0NTODkwMF9WSVJUX0JBU0UpICYmIAotCQkgKHBvcnQgPD0gSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfRU5EKSkpIHsKKwkJKCgodTMyKXBvcnQgPj0gKHUzMilJWERQMlgwMV9DUzg5MDBfVklSVF9CQVNFKSAmJgorCQkgKCh1MzIpcG9ydCA8PSAodTMyKUlYRFAyWDAxX0NTODkwMF9WSVJUX0VORCkpKSB7CiAJCXJldHVybiAodTE2KSgqcG9ydCk7ICAKIAl9CiAKQEAgLTEzNyw4ICsxMzcsOCBAQAogCXJlZ2lzdGVyIHZvbGF0aWxlIHUzMiAqcG9ydCA9ICh2b2xhdGlsZSB1MzIgKilwdHI7CiAKIAlpZiAoKG1hY2hpbmVfaXNfaXhkcDI0MDEoKSB8fCBtYWNoaW5lX2lzX2l4ZHAyODAxKCkpICYmIAotCQkoKHBvcnQgPj0gSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfQkFTRSkgJiYgCi0JCSAocG9ydCA8PSBJWERQMlgwMV9DUzg5MDBfVklSVF9FTkQpKSkgeworCQkoKCh1MzIpcG9ydCA+PSAodTMyKUlYRFAyWDAxX0NTODkwMF9WSVJUX0JBU0UpICYmCisJCSAoKHUzMilwb3J0IDw9ICh1MzIpSVhEUDJYMDFfQ1M4OTAwX1ZJUlRfRU5EKSkpIHsKIAkJKnBvcnQgPSB2YWx1ZTsgIAogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaAppbmRleCAzOTc0MWQzLi5iNWU1NGE5ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgKQEAgLTEyOTYsNiArMTI5Niw3IEBACiAjZGVmaW5lIEdQSU8xMTFfTU1DREFUMwkJMTExCS8qIE1NQyBEQVQzIChQWEEyN3gpICovCiAjZGVmaW5lIEdQSU8xMTFfTU1DQ1MxCQkxMTEJLyogTU1DIENoaXAgU2VsZWN0IDEgKFBYQTI3eCkgKi8KICNkZWZpbmUgR1BJTzExMl9NTUNDTUQJCTExMgkvKiBNTUMgQ01EIChQWEEyN3gpICovCisjZGVmaW5lIEdQSU8xMTNfSTJTX1NZU0NMSwkxMTMJLyogSTJTIFN5c3RlbSBDbG9jayAoUFhBMjd4KSAqLwogI2RlZmluZSBHUElPMTEzX0FDOTdfUkVTRVRfTgkxMTMJLyogQUM5NyBOUkVTRVQgb24gKFBYQTI3eCkgKi8KIAogLyogR1BJTyBhbHRlcm5hdGUgZnVuY3Rpb24gbW9kZSAmIGRpcmVjdGlvbiAqLwpAQCAtMTQyOCw2ICsxNDI5LDcgQEAKICNkZWZpbmUgR1BJTzExMV9NTUNEQVQzX01ECSgxMTEgfCBHUElPX0FMVF9GTl8xX09VVCkKICNkZWZpbmUgR1BJTzExMF9NTUNDUzFfTUQJKDExMSB8IEdQSU9fQUxUX0ZOXzFfT1VUKQogI2RlZmluZSBHUElPMTEyX01NQ0NNRF9NRAkoMTEyIHwgR1BJT19BTFRfRk5fMV9PVVQpCisjZGVmaW5lIEdQSU8xMTNfSTJTX1NZU0NMS19NRAkoMTEzIHwgR1BJT19BTFRfRk5fMV9PVVQpCiAjZGVmaW5lIEdQSU8xMTNfQUM5N19SRVNFVF9OX01ECSgxMTMgfCBHUElPX0FMVF9GTl8yX09VVCkKICNkZWZpbmUgR1BJTzExN19JMkNTQ0xfTUQJKDExNyB8IEdQSU9fQUxUX0ZOXzFfT1VUKQogI2RlZmluZSBHUElPMTE4X0kyQ1NEQV9NRAkoMTE4IHwgR1BJT19BTFRfRk5fMV9JTikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXZlcnNhdGlsZS9wbGF0Zm9ybS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtdmVyc2F0aWxlL3BsYXRmb3JtLmgKaW5kZXggMjU5OGQxZi4uYTcxMDkzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtdmVyc2F0aWxlL3BsYXRmb3JtLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtdmVyc2F0aWxlL3BsYXRmb3JtLmgKQEAgLTQ5OCwxMSArNDk4LDE3IEBACiAvKgogICogSUIyIFZlcnNhdGlsZS9BQiBleHBhbnNpb24gYm9hcmQgZGVmaW5pdGlvbnMKICAqLwotI2RlZmluZSBWRVJTQVRJTEVfSUIyX0NBTUVSQV9CQU5LCTB4MjQwMDAwMDAKLSNkZWZpbmUgVkVSU0FUSUxFX0lCMl9LQkRfREFUQVJFRwkweDI1MDAwMDAwCi0jZGVmaW5lIFZFUlNBVElMRV9JQjJfSUVSCQkweDI2MDAwMDAwCS8qIGZvciBWSUNJTlRTT1VSQ0UyNyAqLwotI2RlZmluZSBWRVJTQVRJTEVfSUIyX0NUUkwJCTB4MjcwMDAwMDAKLSNkZWZpbmUgVkVSU0FUSUxFX0lCMl9TVEFUCQkweDI3MDAwMDA0CisjZGVmaW5lIFZFUlNBVElMRV9JQjJfQ0FNRVJBX0JBTksJVkVSU0FUSUxFX0lCMl9CQVNFCisjZGVmaW5lIFZFUlNBVElMRV9JQjJfS0JEX0RBVEFSRUcJKFZFUlNBVElMRV9JQjJfQkFTRSArIDB4MDEwMDAwMDApCisKKy8qIFZJQ0lOVFNPVVJDRTI3ICovCisjZGVmaW5lIFZFUlNBVElMRV9JQjJfSU5UX0JBU0UJCShWRVJTQVRJTEVfSUIyX0JBU0UgKyAweDAyMDAwMDAwKQorI2RlZmluZSBWRVJTQVRJTEVfSUIyX0lFUgkJKFZFUlNBVElMRV9JQjJfSU5UX0JBU0UgKyAwKQorI2RlZmluZSBWRVJTQVRJTEVfSUIyX0lTUgkJKFZFUlNBVElMRV9JQjJfSU5UX0JBU0UgKyA0KQorCisjZGVmaW5lIFZFUlNBVElMRV9JQjJfQ1RMX0JBU0UJCShWRVJTQVRJTEVfSUIyX0JBU0UgKyAweDAzMDAwMDAwKQorI2RlZmluZSBWRVJTQVRJTEVfSUIyX0NUUkwJCShWRVJTQVRJTEVfSUIyX0NUTF9CQVNFICsgMCkKKyNkZWZpbmUgVkVSU0FUSUxFX0lCMl9TVEFUCQkoVkVSU0FUSUxFX0lCMl9DVExfQkFTRSArIDQpCiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vZWxmLmggYi9pbmNsdWRlL2FzbS1hcm0vZWxmLmgKaW5kZXggY2JjZWFjYmUuLmExNjk2YmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9lbGYuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vZWxmLmgKQEAgLTM4LDkgKzM4LDkgQEAKICAqLwogI2RlZmluZSBFTEZfQ0xBU1MJRUxGQ0xBU1MzMgogI2lmZGVmIF9fQVJNRUJfXwotI2RlZmluZSBFTEZfREFUQQlFTEZEQVRBMk1TQjsKKyNkZWZpbmUgRUxGX0RBVEEJRUxGREFUQTJNU0IKICNlbHNlCi0jZGVmaW5lIEVMRl9EQVRBCUVMRkRBVEEyTFNCOworI2RlZmluZSBFTEZfREFUQQlFTEZEQVRBMkxTQgogI2VuZGlmCiAjZGVmaW5lIEVMRl9BUkNICUVNX0FSTQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0yNi9lbGYuaCBiL2luY2x1ZGUvYXNtLWFybTI2L2VsZi5oCmluZGV4IDhiMTQ5NDcuLjVhNDdmZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybTI2L2VsZi5oCisrKyBiL2luY2x1ZGUvYXNtLWFybTI2L2VsZi5oCkBAIC0zNiw3ICszNiw3IEBACiAgKiBUaGVzZSBhcmUgdXNlZCB0byBzZXQgcGFyYW1ldGVycyBpbiB0aGUgY29yZSBkdW1wcy4KICAqLwogI2RlZmluZSBFTEZfQ0xBU1MJRUxGQ0xBU1MzMgotI2RlZmluZSBFTEZfREFUQQlFTEZEQVRBMkxTQjsKKyNkZWZpbmUgRUxGX0RBVEEJRUxGREFUQTJMU0IKICNkZWZpbmUgRUxGX0FSQ0gJRU1fQVJNCiAKICNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybTI2L3NpZ25hbC5oIGIvaW5jbHVkZS9hc20tYXJtMjYvc2lnbmFsLmgKaW5kZXggZGVkYjI5Mi4uMzdhZDI1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtMjYvc2lnbmFsLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtMjYvc2lnbmFsLmgKQEAgLTE2Niw5ICsxNjYsNiBAQAogI2luY2x1ZGUgPGFzbS9zaWdjb250ZXh0Lmg+CiAKICNkZWZpbmUgc2lnbWFzayhzaWcpCSgxVUwgPDwgKChzaWcpIC0gMSkpCi0vL0ZJWE1FISEhCi0vLyNkZWZpbmUgSEFWRV9BUkNIX0dFVF9TSUdOQUxfVE9fREVMSVZFUgotCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1oODMwMC9rbWFwX3R5cGVzLmggYi9pbmNsdWRlL2FzbS1oODMwMC9rbWFwX3R5cGVzLmgKaW5kZXggODI0MzFlZC4uMWVjOGEzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taDgzMDAva21hcF90eXBlcy5oCisrKyBiL2luY2x1ZGUvYXNtLWg4MzAwL2ttYXBfdHlwZXMuaApAQCAtMSw1ICsxLDUgQEAKLSNpZm5kZWYgX0FTTV9LTUFQX1RZUEVTX0gKLSNkZWZpbmUgX0FTTV9LTUFQX1RZUEVTX0gKKyNpZm5kZWYgX0FTTV9IODMwMF9LTUFQX1RZUEVTX0gKKyNkZWZpbmUgX0FTTV9IODMwMF9LTUFQX1RZUEVTX0gKIAogZW51bSBrbV90eXBlIHsKIAlLTV9CT1VOQ0VfUkVBRCwKQEAgLTEzLDYgKzEzLDggQEAKIAlLTV9QVEUxLAogCUtNX0lSUTAsCiAJS01fSVJRMSwKKwlLTV9TT0ZUSVJRMCwKKwlLTV9TT0ZUSVJRMSwKIAlLTV9UWVBFX05SCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1oODMwMC9tbWFuLmggYi9pbmNsdWRlL2FzbS1oODMwMC9tbWFuLmgKaW5kZXggYWJlMDg4NS4uNjNmNzI3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taDgzMDAvbW1hbi5oCisrKyBiL2luY2x1ZGUvYXNtLWg4MzAwL21tYW4uaApAQCAtNCw2ICs0LDcgQEAKICNkZWZpbmUgUFJPVF9SRUFECTB4MQkJLyogcGFnZSBjYW4gYmUgcmVhZCAqLwogI2RlZmluZSBQUk9UX1dSSVRFCTB4MgkJLyogcGFnZSBjYW4gYmUgd3JpdHRlbiAqLwogI2RlZmluZSBQUk9UX0VYRUMJMHg0CQkvKiBwYWdlIGNhbiBiZSBleGVjdXRlZCAqLworI2RlZmluZSBQUk9UX1NFTQkweDgJCS8qIHBhZ2UgbWF5IGJlIHVzZWQgZm9yIGF0b21pYyBvcHMgKi8KICNkZWZpbmUgUFJPVF9OT05FCTB4MAkJLyogcGFnZSBjYW4gbm90IGJlIGFjY2Vzc2VkICovCiAjZGVmaW5lIFBST1RfR1JPV1NET1dOCTB4MDEwMDAwMDAJLyogbXByb3RlY3QgZmxhZzogZXh0ZW5kIGNoYW5nZSB0byBzdGFydCBvZiBncm93c2Rvd24gdm1hICovCiAjZGVmaW5lIFBST1RfR1JPV1NVUAkweDAyMDAwMDAwCS8qIG1wcm90ZWN0IGZsYWc6IGV4dGVuZCBjaGFuZ2UgdG8gZW5kIG9mIGdyb3dzdXAgdm1hICovCkBAIC0xOSw2ICsyMCw4IEBACiAjZGVmaW5lIE1BUF9FWEVDVVRBQkxFCTB4MTAwMAkJLyogbWFyayBpdCBhcyBhbiBleGVjdXRhYmxlICovCiAjZGVmaW5lIE1BUF9MT0NLRUQJMHgyMDAwCQkvKiBwYWdlcyBhcmUgbG9ja2VkICovCiAjZGVmaW5lIE1BUF9OT1JFU0VSVkUJMHg0MDAwCQkvKiBkb24ndCBjaGVjayBmb3IgcmVzZXJ2YXRpb25zICovCisjZGVmaW5lIE1BUF9QT1BVTEFURQkweDgwMDAJCS8qIHBvcHVsYXRlIChwcmVmYXVsdCkgcGFnZXRhYmxlcyAqLworI2RlZmluZSBNQVBfTk9OQkxPQ0sJMHgxMDAwMAkJLyogZG8gbm90IGJsb2NrIG9uIElPICovCiAKICNkZWZpbmUgTVNfQVNZTkMJMQkJLyogc3luYyBtZW1vcnkgYXN5bmNocm9ub3VzbHkgKi8KICNkZWZpbmUgTVNfSU5WQUxJREFURQkyCQkvKiBpbnZhbGlkYXRlIHRoZSBjYWNoZXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWkzODYvYWdwLmggYi9pbmNsdWRlL2FzbS1pMzg2L2FncC5oCmluZGV4IGE5MTdmZjUuLmI4MmY1ZjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWkzODYvYWdwLmgKKysrIGIvaW5jbHVkZS9hc20taTM4Ni9hZ3AuaApAQCAtMjEsNCArMjEsMTQgQEAKICAgIHdvcnRoIGl0LiBXb3VsZCBuZWVkIGEgcGFnZSBmb3IgaXQuICovCiAjZGVmaW5lIGZsdXNoX2FncF9jYWNoZSgpIGFzbSB2b2xhdGlsZSgid2JpbnZkIjo6OiJtZW1vcnkiKQogCisvKiBDb252ZXJ0IGEgcGh5c2ljYWwgYWRkcmVzcyB0byBhbiBhZGRyZXNzIHN1aXRhYmxlIGZvciB0aGUgR0FSVC4gKi8KKyNkZWZpbmUgcGh5c190b19nYXJ0KHgpICh4KQorI2RlZmluZSBnYXJ0X3RvX3BoeXMoeCkgKHgpCisKKy8qIEdBVFQgYWxsb2NhdGlvbi4gUmV0dXJucy9hY2NlcHRzIEdBVFQga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4gKi8KKyNkZWZpbmUgYWxsb2NfZ2F0dF9wYWdlcyhvcmRlcikJCVwKKwkoKGNoYXIgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIChvcmRlcikpKQorI2RlZmluZSBmcmVlX2dhdHRfcGFnZXModGFibGUsIG9yZGVyKQlcCisJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZykodGFibGUpLCAob3JkZXIpKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWkzODYvbWFjaC1udW1hcS9tYWNoX2lwaS5oIGIvaW5jbHVkZS9hc20taTM4Ni9tYWNoLW51bWFxL21hY2hfaXBpLmgKaW5kZXggMWI0NmZkMy4uYzYwNDQ0OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taTM4Ni9tYWNoLW51bWFxL21hY2hfaXBpLmgKKysrIGIvaW5jbHVkZS9hc20taTM4Ni9tYWNoLW51bWFxL21hY2hfaXBpLmgKQEAgLTEsNyArMSw3IEBACiAjaWZuZGVmIF9fQVNNX01BQ0hfSVBJX0gKICNkZWZpbmUgX19BU01fTUFDSF9JUElfSAogCi1pbmxpbmUgdm9pZCBzZW5kX0lQSV9tYXNrX3NlcXVlbmNlKGNwdW1hc2tfdCwgaW50IHZlY3Rvcik7Cit2b2lkIHNlbmRfSVBJX21hc2tfc2VxdWVuY2UoY3B1bWFza190LCBpbnQgdmVjdG9yKTsKIAogc3RhdGljIGlubGluZSB2b2lkIHNlbmRfSVBJX21hc2soY3B1bWFza190IG1hc2ssIGludCB2ZWN0b3IpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1pYTY0L2FncC5oIGIvaW5jbHVkZS9hc20taWE2NC9hZ3AuaAppbmRleCBkMTMxNmYxLi40ZTUxN2YwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1pYTY0L2FncC5oCisrKyBiL2luY2x1ZGUvYXNtLWlhNjQvYWdwLmgKQEAgLTE4LDQgKzE4LDE0IEBACiAjZGVmaW5lIGZsdXNoX2FncF9tYXBwaW5ncygpCQkvKiBub3RoaW5nICovCiAjZGVmaW5lIGZsdXNoX2FncF9jYWNoZSgpCQltYigpCiAKKy8qIENvbnZlcnQgYSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIGFkZHJlc3Mgc3VpdGFibGUgZm9yIHRoZSBHQVJULiAqLworI2RlZmluZSBwaHlzX3RvX2dhcnQoeCkgKHgpCisjZGVmaW5lIGdhcnRfdG9fcGh5cyh4KSAoeCkKKworLyogR0FUVCBhbGxvY2F0aW9uLiBSZXR1cm5zL2FjY2VwdHMgR0FUVCBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLiAqLworI2RlZmluZSBhbGxvY19nYXR0X3BhZ2VzKG9yZGVyKQkJXAorCSgoY2hhciAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwgKG9yZGVyKSkpCisjZGVmaW5lIGZyZWVfZ2F0dF9wYWdlcyh0YWJsZSwgb3JkZXIpCVwKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSh0YWJsZSksIChvcmRlcikpCisKICNlbmRpZiAvKiBfQVNNX0lBNjRfQUdQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWlhNjQvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20taWE2NC9wZ3RhYmxlLmgKaW5kZXggZWExMjFhMC4uZmNjOWMzMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taWE2NC9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20taWE2NC9wZ3RhYmxlLmgKQEAgLTgsNyArOCw3IEBACiAgKiBUaGlzIGhvcGVmdWxseSB3b3JrcyB3aXRoIGFueSAoZml4ZWQpIElBLTY0IHBhZ2Utc2l6ZSwgYXMgZGVmaW5lZAogICogaW4gPGFzbS9wYWdlLmg+LgogICoKLSAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0IEhld2xldHQtUGFja2FyZCBDbworICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUgSGV3bGV0dC1QYWNrYXJkIENvCiAgKglEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQGhwbC5ocC5jb20+CiAgKi8KIApAQCAtNTUxLDcgKzU1MSwxMSBAQAogCiAvKiBUaGVzZSB0ZWxsIGdldF91c2VyX3BhZ2VzKCkgdGhhdCB0aGUgZmlyc3QgZ2F0ZSBwYWdlIGlzIGFjY2Vzc2libGUgZnJvbSB1c2VyLWxldmVsLiAgKi8KICNkZWZpbmUgRklYQUREUl9VU0VSX1NUQVJUCUdBVEVfQUREUgotI2RlZmluZSBGSVhBRERSX1VTRVJfRU5ECShHQVRFX0FERFIgKyAyKlBFUkNQVV9QQUdFX1NJWkUpCisjaWZkZWYgSEFWRV9CVUdHWV9TRUdSRUwKKyMgZGVmaW5lIEZJWEFERFJfVVNFUl9FTkQJKEdBVEVfQUREUiArIDIqUEFHRV9TSVpFKQorI2Vsc2UKKyMgZGVmaW5lIEZJWEFERFJfVVNFUl9FTkQJKEdBVEVfQUREUiArIDIqUEVSQ1BVX1BBR0VfU0laRSkKKyNlbmRpZgogCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1BURVBfVEVTVF9BTkRfQ0xFQVJfWU9VTkcKICNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9URVNUX0FORF9DTEVBUl9ESVJUWQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20taWE2NC9wcm9jZXNzb3IuaCBiL2luY2x1ZGUvYXNtLWlhNjQvcHJvY2Vzc29yLmgKaW5kZXggOWUxYmE4Yi4uOTFiYmQxZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taWE2NC9wcm9jZXNzb3IuaAorKysgYi9pbmNsdWRlL2FzbS1pYTY0L3Byb2Nlc3Nvci5oCkBAIC00MDMsNyArNDAzLDEwIEBACiAgKiB0YXNrX3N0cnVjdCBhdCB0aGlzIHBvaW50LgogICovCiAKLS8qIFJldHVybiBUUlVFIGlmIHRhc2sgVCBvd25zIHRoZSBmcGggcGFydGl0aW9uIG9mIHRoZSBDUFUgd2UncmUgcnVubmluZyBvbi4gKi8KKy8qCisgKiBSZXR1cm4gVFJVRSBpZiB0YXNrIFQgb3ducyB0aGUgZnBoIHBhcnRpdGlvbiBvZiB0aGUgQ1BVIHdlJ3JlIHJ1bm5pbmcgb24uCisgKiBNdXN0IGJlIGNhbGxlZCBmcm9tIGNvZGUgdGhhdCBoYXMgcHJlZW1wdGlvbiBkaXNhYmxlZC4KKyAqLwogI2RlZmluZSBpYTY0X2lzX2xvY2FsX2ZwdV9vd25lcih0KQkJCQkJCQkJXAogKHsJCQkJCQkJCQkJCQlcCiAJc3RydWN0IHRhc2tfc3RydWN0ICpfX2lhNjRfaXNsZm9fdGFzayA9ICh0KTsJCQkJCQlcCkBAIC00MTEsNyArNDE0LDEwIEBACiAJICYmIF9faWE2NF9pc2xmb190YXNrID09IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKikgaWE2NF9nZXRfa3IoSUE2NF9LUl9GUFVfT1dORVIpKTsJXAogfSkKIAotLyogTWFyayB0YXNrIFQgYXMgb3duaW5nIHRoZSBmcGggcGFydGl0aW9uIG9mIHRoZSBDUFUgd2UncmUgcnVubmluZyBvbi4gKi8KKy8qCisgKiBNYXJrIHRhc2sgVCBhcyBvd25pbmcgdGhlIGZwaCBwYXJ0aXRpb24gb2YgdGhlIENQVSB3ZSdyZSBydW5uaW5nIG9uLgorICogTXVzdCBiZSBjYWxsZWQgZnJvbSBjb2RlIHRoYXQgaGFzIHByZWVtcHRpb24gZGlzYWJsZWQuCisgKi8KICNkZWZpbmUgaWE2NF9zZXRfbG9jYWxfZnB1X293bmVyKHQpIGRvIHsJCQkJCQlcCiAJc3RydWN0IHRhc2tfc3RydWN0ICpfX2lhNjRfc2xmb190YXNrID0gKHQpOwkJCQkJXAogCV9faWE2NF9zbGZvX3Rhc2stPnRocmVhZC5sYXN0X2ZwaF9jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2FncC5oIGIvaW5jbHVkZS9hc20tcHBjL2FncC5oCmluZGV4IGJlMjdjZmE4Li5jYTllNDIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvYWdwLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2FncC5oCkBAIC0xMCw0ICsxMCwxNCBAQAogI2RlZmluZSBmbHVzaF9hZ3BfbWFwcGluZ3MoKQogI2RlZmluZSBmbHVzaF9hZ3BfY2FjaGUoKSBtYigpCiAKKy8qIENvbnZlcnQgYSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIGFkZHJlc3Mgc3VpdGFibGUgZm9yIHRoZSBHQVJULiAqLworI2RlZmluZSBwaHlzX3RvX2dhcnQoeCkgKHgpCisjZGVmaW5lIGdhcnRfdG9fcGh5cyh4KSAoeCkKKworLyogR0FUVCBhbGxvY2F0aW9uLiBSZXR1cm5zL2FjY2VwdHMgR0FUVCBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLiAqLworI2RlZmluZSBhbGxvY19nYXR0X3BhZ2VzKG9yZGVyKQkJXAorCSgoY2hhciAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwgKG9yZGVyKSkpCisjZGVmaW5lIGZyZWVfZ2F0dF9wYWdlcyh0YWJsZSwgb3JkZXIpCVwKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSh0YWJsZSksIChvcmRlcikpCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL3NpZ2NvbnRleHQuaCBiL2luY2x1ZGUvYXNtLXBwYy9zaWdjb250ZXh0LmgKaW5kZXggZjgyZGNjYy4uYjdhNDE3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL3NpZ2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvc2lnY29udGV4dC5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBfQVNNX1BQQ19TSUdDT05URVhUX0gKIAogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLQorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAKIHN0cnVjdCBzaWdjb250ZXh0IHsKIAl1bnNpZ25lZCBsb25nCV91bnVzZWRbNF07CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGM2NC9hZ3AuaCBiL2luY2x1ZGUvYXNtLXBwYzY0L2FncC5oCmluZGV4IGJlMjdjZmE4Li5jYTllNDIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGM2NC9hZ3AuaAorKysgYi9pbmNsdWRlL2FzbS1wcGM2NC9hZ3AuaApAQCAtMTAsNCArMTAsMTQgQEAKICNkZWZpbmUgZmx1c2hfYWdwX21hcHBpbmdzKCkKICNkZWZpbmUgZmx1c2hfYWdwX2NhY2hlKCkgbWIoKQogCisvKiBDb252ZXJ0IGEgcGh5c2ljYWwgYWRkcmVzcyB0byBhbiBhZGRyZXNzIHN1aXRhYmxlIGZvciB0aGUgR0FSVC4gKi8KKyNkZWZpbmUgcGh5c190b19nYXJ0KHgpICh4KQorI2RlZmluZSBnYXJ0X3RvX3BoeXMoeCkgKHgpCisKKy8qIEdBVFQgYWxsb2NhdGlvbi4gUmV0dXJucy9hY2NlcHRzIEdBVFQga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4gKi8KKyNkZWZpbmUgYWxsb2NfZ2F0dF9wYWdlcyhvcmRlcikJCVwKKwkoKGNoYXIgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIChvcmRlcikpKQorI2RlZmluZSBmcmVlX2dhdHRfcGFnZXModGFibGUsIG9yZGVyKQlcCisJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZykodGFibGUpLCAob3JkZXIpKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYzY0L2VsZi5oIGIvaW5jbHVkZS9hc20tcHBjNjQvZWxmLmgKaW5kZXggNmM0MmQ2MS4uMDg1ZWVkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjNjQvZWxmLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjNjQvZWxmLmgKQEAgLTIyMSw5ICsyMjEsNyBAQAogCQlzZXRfdGhyZWFkX2ZsYWcoVElGX0FCSV9QRU5ESU5HKTsJCVwKIAllbHNlCQkJCQkJCVwKIAkJY2xlYXJfdGhyZWFkX2ZsYWcoVElGX0FCSV9QRU5ESU5HKTsJCVwKLQlpZiAoaWJjczIpCQkJCQkJXAotCQlzZXRfcGVyc29uYWxpdHkoUEVSX1NWUjQpOwkJCVwKLQllbHNlIGlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAhPSBQRVJfTElOVVgzMikJCVwKKwlpZiAocGVyc29uYWxpdHkoY3VycmVudC0+cGVyc29uYWxpdHkpICE9IFBFUl9MSU5VWDMyKQlcCiAJCXNldF9wZXJzb25hbGl0eShQRVJfTElOVVgpOwkJCVwKIH0gd2hpbGUgKDApCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvdXNlci5oIGIvaW5jbHVkZS9hc20tczM5MC91c2VyLmgKaW5kZXggYzY0ZjhjMS4uMWRjNzRiYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC91c2VyLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC91c2VyLmgKQEAgLTEwLDcgKzEwLDcgQEAKICNkZWZpbmUgX1MzOTBfVVNFUl9ICiAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KIC8qIENvcmUgZmlsZSBmb3JtYXQ6IFRoZSBjb3JlIGZpbGUgaXMgd3JpdHRlbiBpbiBzdWNoIGEgd2F5IHRoYXQgZ2RiCiAgICBjYW4gdW5kZXJzdGFuZCBpdCBhbmQgcHJvdmlkZSB1c2VmdWwgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgKHVuZGVyCiAgICBsaW51eCB3ZSB1c2UgdGhlICd0cmFkLWNvcmUnIGJmZCkuICBUaGVyZSBhcmUgcXVpdGUgYSBudW1iZXIgb2YKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNwYXJjL3VhY2Nlc3MuaCBiL2luY2x1ZGUvYXNtLXNwYXJjL3VhY2Nlc3MuaAppbmRleCBmNDYxMTQ0Li4wYTc4MGU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zcGFyYy91YWNjZXNzLmgKKysrIGIvaW5jbHVkZS9hc20tc3BhcmMvdWFjY2Vzcy5oCkBAIC00MSwxMCArNDEsMTEgQEAKICAqIE5vIG9uZSBjYW4gcmVhZC93cml0ZSBhbnl0aGluZyBmcm9tIHVzZXJsYW5kIGluIHRoZSBrZXJuZWwgc3BhY2UgYnkgc2V0dGluZwogICogbGFyZ2Ugc2l6ZSBhbmQgYWRkcmVzcyBuZWFyIHRvIFBBR0VfT0ZGU0VUIC0gYSBmYXVsdCB3aWxsIGJyZWFrIGhpcyBpbnRlbnRpb25zLgogICovCi0jZGVmaW5lIF9fdXNlcl9vayhhZGRyLHNpemUpICgoYWRkcikgPCBTVEFDS19UT1ApCisjZGVmaW5lIF9fdXNlcl9vayhhZGRyLCBzaXplKSAoeyAodm9pZCkoc2l6ZSk7IChhZGRyKSA8IFNUQUNLX1RPUDsgfSkKICNkZWZpbmUgX19rZXJuZWxfb2sgKHNlZ21lbnRfZXEoZ2V0X2ZzKCksIEtFUk5FTF9EUykpCiAjZGVmaW5lIF9fYWNjZXNzX29rKGFkZHIsc2l6ZSkgKF9fdXNlcl9vaygoYWRkcikgJiBnZXRfZnMoKS5zZWcsKHNpemUpKSkKLSNkZWZpbmUgYWNjZXNzX29rKHR5cGUsYWRkcixzaXplKSBfX2FjY2Vzc19vaygodW5zaWduZWQgbG9uZykoYWRkciksKHNpemUpKQorI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkJCQkJCVwKKwkoeyAodm9pZCkodHlwZSk7IF9fYWNjZXNzX29rKCh1bnNpZ25lZCBsb25nKShhZGRyKSwgc2l6ZSk7IH0pCiAKIC8qIHRoaXMgZnVuY3Rpb24gd2lsbCBnbyBhd2F5IHNvb24gLSB1c2UgYWNjZXNzX29rKCkgaW5zdGVhZCAqLwogc3RhdGljIGlubGluZSBpbnQgX19kZXByZWNhdGVkIHZlcmlmeV9hcmVhKGludCB0eXBlLCBjb25zdCB2b2lkIF9fdXNlciAqIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNwYXJjNjQvYWdwLmggYi9pbmNsdWRlL2FzbS1zcGFyYzY0L2FncC5oCmluZGV4IGJhMDViZGYuLjU4ZjhjYjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXNwYXJjNjQvYWdwLmgKKysrIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9hZ3AuaApAQCAtOCw0ICs4LDE0IEBACiAjZGVmaW5lIGZsdXNoX2FncF9tYXBwaW5ncygpIAogI2RlZmluZSBmbHVzaF9hZ3BfY2FjaGUoKSBtYigpCiAKKy8qIENvbnZlcnQgYSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIGFkZHJlc3Mgc3VpdGFibGUgZm9yIHRoZSBHQVJULiAqLworI2RlZmluZSBwaHlzX3RvX2dhcnQoeCkgKHgpCisjZGVmaW5lIGdhcnRfdG9fcGh5cyh4KSAoeCkKKworLyogR0FUVCBhbGxvY2F0aW9uLiBSZXR1cm5zL2FjY2VwdHMgR0FUVCBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLiAqLworI2RlZmluZSBhbGxvY19nYXR0X3BhZ2VzKG9yZGVyKQkJXAorCSgoY2hhciAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwgKG9yZGVyKSkpCisjZGVmaW5lIGZyZWVfZ2F0dF9wYWdlcyh0YWJsZSwgb3JkZXIpCVwKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSh0YWJsZSksIChvcmRlcikpCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2XzY0L2FncC5oIGIvaW5jbHVkZS9hc20teDg2XzY0L2FncC5oCmluZGV4IDBiYjkwMTkuLjA2YzUyZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Nl82NC9hZ3AuaAorKysgYi9pbmNsdWRlL2FzbS14ODZfNjQvYWdwLmgKQEAgLTE5LDQgKzE5LDE0IEBACiAgICB3b3J0aCBpdC4gV291bGQgbmVlZCBhIHBhZ2UgZm9yIGl0LiAqLwogI2RlZmluZSBmbHVzaF9hZ3BfY2FjaGUoKSBhc20gdm9sYXRpbGUoIndiaW52ZCI6OjoibWVtb3J5IikKIAorLyogQ29udmVydCBhIHBoeXNpY2FsIGFkZHJlc3MgdG8gYW4gYWRkcmVzcyBzdWl0YWJsZSBmb3IgdGhlIEdBUlQuICovCisjZGVmaW5lIHBoeXNfdG9fZ2FydCh4KSAoeCkKKyNkZWZpbmUgZ2FydF90b19waHlzKHgpICh4KQorCisvKiBHQVRUIGFsbG9jYXRpb24uIFJldHVybnMvYWNjZXB0cyBHQVRUIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuICovCisjZGVmaW5lIGFsbG9jX2dhdHRfcGFnZXMob3JkZXIpCQlcCisJKChjaGFyICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLCAob3JkZXIpKSkKKyNkZWZpbmUgZnJlZV9nYXR0X3BhZ2VzKHRhYmxlLCBvcmRlcikJXAorCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpKHRhYmxlKSwgKG9yZGVyKSkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2luY2x1ZGUvbGludXgvYWNwaS5oCmluZGV4IGQ1YTU1YmQuLmIxMjNjYzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oCkBAIC0yNSw2ICsyNSw4IEBACiAjaWZuZGVmIF9MSU5VWF9BQ1BJX0gKICNkZWZpbmUgX0xJTlVYX0FDUElfSAogCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisKICNpZmRlZglDT05GSUdfQUNQSQogCiAjaWZuZGVmIF9MSU5VWApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKaW5kZXggZWYxYWZjMS4uNGE5OWI3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCkBAIC01NDQsNyArNTQ0LDcgQEAKIGV4dGVybiB2b2lkIGJsa19hdHRlbXB0X3JlbWVyZ2UocmVxdWVzdF9xdWV1ZV90ICosIHN0cnVjdCByZXF1ZXN0ICopOwogZXh0ZXJuIHZvaWQgX19ibGtfYXR0ZW1wdF9yZW1lcmdlKHJlcXVlc3RfcXVldWVfdCAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsKIGV4dGVybiBzdHJ1Y3QgcmVxdWVzdCAqYmxrX2dldF9yZXF1ZXN0KHJlcXVlc3RfcXVldWVfdCAqLCBpbnQsIGludCk7Ci1leHRlcm4gdm9pZCBibGtfaW5zZXJ0X3JlcXVlc3QocmVxdWVzdF9xdWV1ZV90ICosIHN0cnVjdCByZXF1ZXN0ICosIGludCwgdm9pZCAqLCBpbnQpOworZXh0ZXJuIHZvaWQgYmxrX2luc2VydF9yZXF1ZXN0KHJlcXVlc3RfcXVldWVfdCAqLCBzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQsIHZvaWQgKik7CiBleHRlcm4gdm9pZCBibGtfcmVxdWV1ZV9yZXF1ZXN0KHJlcXVlc3RfcXVldWVfdCAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsKIGV4dGVybiB2b2lkIGJsa19wbHVnX2RldmljZShyZXF1ZXN0X3F1ZXVlX3QgKik7CiBleHRlcm4gaW50IGJsa19yZW1vdmVfcGx1ZyhyZXF1ZXN0X3F1ZXVlX3QgKik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NoaW8uaCBiL2luY2x1ZGUvbGludXgvY2hpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMDM1YWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2NoaW8uaApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIGlvY3RsIGludGVyZmFjZSBmb3IgdGhlIHNjc2kgbWVkaWEgY2hhbmdlciBkcml2ZXIKKyAqLworCisvKiBjaGFuZ2VyIGVsZW1lbnQgdHlwZXMgKi8KKyNkZWZpbmUgQ0hFVF9NVCAgIDAJLyogbWVkaWEgdHJhbnNwb3J0IGVsZW1lbnQgKHJvYm90KSAqLworI2RlZmluZSBDSEVUX1NUICAgMQkvKiBzdG9yYWdlIGVsZW1lbnQgKG1lZGlhIHNsb3RzKSAqLworI2RlZmluZSBDSEVUX0lFICAgMgkvKiBpbXBvcnQvZXhwb3J0IGVsZW1lbnQgKi8KKyNkZWZpbmUgQ0hFVF9EVCAgIDMJLyogZGF0YSB0cmFuc2ZlciBlbGVtZW50ICh0YXBlL2Nkcm9tL3doYXRldmVyKSAqLworI2RlZmluZSBDSEVUX1YxICAgNAkvKiB2ZW5kb3Igc3BlY2lmaWMgIzEgKi8KKyNkZWZpbmUgQ0hFVF9WMiAgIDUJLyogdmVuZG9yIHNwZWNpZmljICMyICovCisjZGVmaW5lIENIRVRfVjMgICA2CS8qIHZlbmRvciBzcGVjaWZpYyAjMyAqLworI2RlZmluZSBDSEVUX1Y0ICAgNwkvKiB2ZW5kb3Igc3BlY2lmaWMgIzQgKi8KKworCisvKgorICogQ0hJT0dQQVJBTVMKKyAqICAgIHF1ZXJ5IGNoYW5nZXIgcHJvcGVydGllcworICoKKyAqIENISU9WR1BBUkFNUworICogICAgcXVlcnkgdmVuZG9yLXNwZWNpZmljIGVsZW1lbnQgdHlwZXMKKyAqCisgKiAgICBhY2Nlc3NpbmcgZWxlbWVudHMgd29ya3MgYnkgc3BlY2lmaW5nIHR5cGUgYW5kIHVuaXQgb2YgdGhlIGVsZW1lbnQuCisgKiAgICBmb3IgZWFtcGxlLCBzdG9yYWdlIGVsZW1lbnRzIGFyZSBhZGRyZXNzZWQgd2l0aCB0eXBlID0gQ0hFVF9TVCBhbmQKKyAqICAgIHVuaXQgPSAwIC4uIGNwX25zbG90cy0xCisgKgorICovCitzdHJ1Y3QgY2hhbmdlcl9wYXJhbXMgeworCWludCBjcF9jdXJwaWNrZXI7ICAvKiBjdXJyZW50IHRyYW5zcG9ydCBlbGVtZW50ICovCisJaW50IGNwX25waWNrZXJzOyAgIC8qIG51bWJlciBvZiB0cmFuc3BvcnQgZWxlbWVudHMgICAgICAoQ0hFVF9NVCkgKi8KKwlpbnQgY3BfbnNsb3RzOyAgICAgLyogbnVtYmVyIG9mIHN0b3JhZ2UgZWxlbWVudHMgICAgICAgIChDSEVUX1NUKSAqLworCWludCBjcF9ucG9ydGFsczsgICAvKiBudW1iZXIgb2YgaW1wb3J0L2V4cG9ydCBlbGVtZW50cyAgKENIRVRfSUUpICovCisJaW50IGNwX25kcml2ZXM7ICAgIC8qIG51bWJlciBvZiBkYXRhIHRyYW5zZmVyIGVsZW1lbnRzICAoQ0hFVF9EVCkgKi8KK307CitzdHJ1Y3QgY2hhbmdlcl92ZW5kb3JfcGFyYW1zIHsKKwlpbnQgIGN2cF9uMTsgICAgICAgLyogbnVtYmVyIG9mIHZlbmRvciBzcGVjaWZpYyBlbGVtcyAgIChDSEVUX1YxKSAqLworCWNoYXIgY3ZwX2xhYmVsMVsxNl07CisJaW50ICBjdnBfbjI7ICAgICAgIC8qIG51bWJlciBvZiB2ZW5kb3Igc3BlY2lmaWMgZWxlbXMgICAoQ0hFVF9WMikgKi8KKwljaGFyIGN2cF9sYWJlbDJbMTZdOworCWludCAgY3ZwX24zOyAgICAgICAvKiBudW1iZXIgb2YgdmVuZG9yIHNwZWNpZmljIGVsZW1zICAgKENIRVRfVjMpICovCisJY2hhciBjdnBfbGFiZWwzWzE2XTsKKwlpbnQgIGN2cF9uNDsgICAgICAgLyogbnVtYmVyIG9mIHZlbmRvciBzcGVjaWZpYyBlbGVtcyAgIChDSEVUX1Y0KSAqLworCWNoYXIgY3ZwX2xhYmVsNFsxNl07CisJaW50ICByZXNlcnZlZFs4XTsKK307CisKKworLyoKKyAqIENISU9NT1ZFCisgKiAgICBtb3ZlIGEgbWVkaXVtIGZyb20gb25lIGVsZW1lbnQgdG8gYW5vdGhlcgorICovCitzdHJ1Y3QgY2hhbmdlcl9tb3ZlIHsKKwlpbnQgY21fZnJvbXR5cGU7CS8qIHR5cGUvdW5pdCBvZiBzb3VyY2UgZWxlbWVudCAqLworCWludCBjbV9mcm9tdW5pdDsJCisJaW50IGNtX3RvdHlwZTsJLyogdHlwZS91bml0IG9mIGRlc3RpbmF0aW9uIGVsZW1lbnQgKi8KKwlpbnQgY21fdG91bml0OworCWludCBjbV9mbGFnczsKK307CisjZGVmaW5lIENNX0lOVkVSVCAgIDEgICAvKiBmbGFnOiByb3RhdGUgbWVkaWEgKGZvciBkb3VibGUtc2lkZWQgbGlrZSBNT0QpICovCisKKworLyoKKyAqIENISU9FWENIQU5HRQorICogICAgbW92ZSBvbmUgbWVkaXVtIGZyb20gZWxlbWVudCAjMSB0byBlbGVtZW50ICMyLAorICogICAgYW5kIGFub3RoZXIgb25lIGZyb20gZWxlbWVudCAjMiB0byBlbGVtZW50ICMzLgorICogICAgZWxlbWVudCAjMSBhbmQgIzMgYXJlIGFsbG93ZWQgdG8gYmUgaWRlbnRpY2FsLgorICovCitzdHJ1Y3QgY2hhbmdlcl9leGNoYW5nZSB7CisJaW50IGNlX3NyY3R5cGU7CSAgICAvKiB0eXBlL3VuaXQgb2YgZWxlbWVudCAjMSAqLworCWludCBjZV9zcmN1bml0OworCWludCBjZV9mZHN0dHlwZTsgICAgLyogdHlwZS91bml0IG9mIGVsZW1lbnQgIzIgKi8KKwlpbnQgY2VfZmRzdHVuaXQ7CisJaW50IGNlX3Nkc3R0eXBlOyAgICAvKiB0eXBlL3VuaXQgb2YgZWxlbWVudCAjMyAqLworCWludCBjZV9zZHN0dW5pdDsKKwlpbnQgY2VfZmxhZ3M7Cit9OworI2RlZmluZSBDRV9JTlZFUlQxICAgMQorI2RlZmluZSBDRV9JTlZFUlQyICAgMgorCisKKy8qCisgKiBDSElPUE9TSVRJT04KKyAqICAgIG1vdmUgdGhlIHRyYW5zcG9ydCBlbGVtZW50IChyb2JvdCBhcm0pIHRvIGEgc3BlY2lmaWMgZWxlbWVudC4KKyAqLworc3RydWN0IGNoYW5nZXJfcG9zaXRpb24geworCWludCBjcF90eXBlOworCWludCBjcF91bml0OworCWludCBjcF9mbGFnczsKK307CisjZGVmaW5lIENQX0lOVkVSVCAgIDEKKworCisvKgorICogQ0hJT0dTVEFUVVMKKyAqICAgIGdldCBlbGVtZW50IHN0YXR1cyBmb3IgYWxsIGVsZW1lbnRzIG9mIGEgc3BlY2lmaWMgdHlwZQorICovCitzdHJ1Y3QgY2hhbmdlcl9lbGVtZW50X3N0YXR1cyB7CisJaW50ICAgICAgICAgICAgIGNlc190eXBlOworCXVuc2lnbmVkIGNoYXIgICAqY2VzX2RhdGE7Cit9OworI2RlZmluZSBDRVNUQVRVU19GVUxMICAgICAweDAxIC8qIGZ1bGwgKi8KKyNkZWZpbmUgQ0VTVEFUVVNfSU1QRVhQICAgMHgwMgkvKiBtZWRpYSB3YXMgaW1wb3J0ZWQgKGluc2VydGVkIGJ5IHN5c29wKSAqLworI2RlZmluZSBDRVNUQVRVU19FWENFUFQgICAweDA0CS8qIGVycm9yIGNvbmRpdGlvbiAqLworI2RlZmluZSBDRVNUQVRVU19BQ0NFU1MgICAweDA4CS8qIGFjY2VzcyBhbGxvd2VkICovCisjZGVmaW5lIENFU1RBVFVTX0VYRU5BQiAgIDB4MTAJLyogZWxlbWVudCBjYW4gZXhwb3J0IG1lZGlhICovCisjZGVmaW5lIENFU1RBVFVTX0lORU5BQiAgIDB4MjAJLyogZWxlbWVudCBjYW4gaW1wb3J0IG1lZGlhICovCisKKworLyoKKyAqIENISU9HRUxFTQorICogICAgZ2V0IG1vcmUgZGV0YWlsZWQgc3RhdHVzIGluZm9ybXRpb24gZm9yIGEgc2luZ2xlIGVsZW1lbnQKKyAqLworc3RydWN0IGNoYW5nZXJfZ2V0X2VsZW1lbnQgeworCWludAljZ2VfdHlwZTsJIC8qIHR5cGUvdW5pdCAqLworCWludAljZ2VfdW5pdDsKKwlpbnQJY2dlX3N0YXR1czsgICAgICAvKiBzdGF0dXMgKi8KKwlpbnQgICAgIGNnZV9lcnJubzsgICAgICAgLyogZXJybm8gKi8KKwlpbnQgICAgIGNnZV9zcmN0eXBlOyAgICAgLyogc291cmNlIGVsZW1lbnQgb2YgdGhlIGxhc3QgbW92ZS9leGNoYW5nZSAqLworCWludCAgICAgY2dlX3NyY3VuaXQ7CisJaW50ICAgICBjZ2VfaWQ7ICAgICAgICAgIC8qIHNjc2kgaWQgIChmb3IgZGF0YSB0cmFuc2ZlciBlbGVtZW50cykgKi8KKwlpbnQgICAgIGNnZV9sdW47ICAgICAgICAgLyogc2NzaSBsdW4gKGZvciBkYXRhIHRyYW5zZmVyIGVsZW1lbnRzKSAqLworCWNoYXIgICAgY2dlX3B2b2x0YWdbMzZdOyAvKiBwcmltYXJ5IHZvbHVtZSB0YWcgKi8KKwljaGFyICAgIGNnZV9hdm9sdGFnWzM2XTsgLyogYWx0ZXJuYXRlIHZvbHVtZSB0YWcgKi8KKwlpbnQgICAgIGNnZV9mbGFnczsKK307CisvKiBmbGFncyAqLworI2RlZmluZSBDR0VfRVJSTk8gICAgIDB4MDEgICAgICAgLyogZXJybm8gYXZhaWxhYmxlICAgICAgICovCisjZGVmaW5lIENHRV9JTlZFUlQgICAgMHgwMiAgICAgICAvKiBtZWRpYSBpbnZlcnRlZCAgICAgICAgKi8KKyNkZWZpbmUgQ0dFX1NSQyAgICAgICAweDA0ICAgICAgIC8qIG1lZGlhIHNyYyBhdmFpbGFibGUgICAqLworI2RlZmluZSBDR0VfSURMVU4gICAgIDB4MDggICAgICAgLyogSUQrTFVOIGF2YWlsYWJsZSAgICAgICovCisjZGVmaW5lIENHRV9QVk9MVEFHICAgMHgxMCAgICAgICAvKiBwcmltYXJ5IHZvbHVtZSB0YWcgYXZhaWxhYmxlICovCisjZGVmaW5lIENHRV9BVk9MVEFHICAgMHgyMCAgICAgICAvKiBhbHRlcm5hdGUgdm9sdW1lIHRhZyBhdmFpbGFibGUgKi8KKworCisvKgorICogQ0hJT1NWT0xUQUcKKyAqICAgIHNldCB2b2x1bWUgdGFnCisgKi8KK3N0cnVjdCBjaGFuZ2VyX3NldF92b2x0YWcgeworCWludAljc3ZfdHlwZTsJIC8qIHR5cGUvdW5pdCAqLworCWludAljc3ZfdW5pdDsKKwljaGFyICAgIGNzdl92b2x0YWdbMzZdOyAgLyogdm9sdW1lIHRhZyAqLworCWludCAgICAgY3N2X2ZsYWdzOworfTsKKyNkZWZpbmUgQ1NWX1BWT0xUQUcgICAweDAxICAgICAgIC8qIHByaW1hcnkgdm9sdW1lIHRhZyAqLworI2RlZmluZSBDU1ZfQVZPTFRBRyAgIDB4MDIgICAgICAgLyogYWx0ZXJuYXRlIHZvbHVtZSB0YWcgKi8KKyNkZWZpbmUgQ1NWX0NMRUFSVEFHICAweDA0ICAgICAgIC8qIGNsZWFyIHZvbHVtZSB0YWcgKi8KKworLyogaW9jdGxzICovCisjZGVmaW5lIENISU9NT1ZFICAgICAgIF9JT1coJ2MnLCAxLHN0cnVjdCBjaGFuZ2VyX21vdmUpCisjZGVmaW5lIENISU9FWENIQU5HRSAgIF9JT1coJ2MnLCAyLHN0cnVjdCBjaGFuZ2VyX2V4Y2hhbmdlKQorI2RlZmluZSBDSElPUE9TSVRJT04gICBfSU9XKCdjJywgMyxzdHJ1Y3QgY2hhbmdlcl9wb3NpdGlvbikKKyNkZWZpbmUgQ0hJT0dQSUNLRVIgICAgX0lPUignYycsIDQsaW50KSAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdCBpbXBsLiAqLworI2RlZmluZSBDSElPU1BJQ0tFUiAgICBfSU9XKCdjJywgNSxpbnQpICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90IGltcGwuICovCisjZGVmaW5lIENISU9HUEFSQU1TICAgIF9JT1IoJ2MnLCA2LHN0cnVjdCBjaGFuZ2VyX3BhcmFtcykKKyNkZWZpbmUgQ0hJT0dTVEFUVVMgICAgX0lPVygnYycsIDgsc3RydWN0IGNoYW5nZXJfZWxlbWVudF9zdGF0dXMpCisjZGVmaW5lIENISU9HRUxFTSAgICAgIF9JT1coJ2MnLDE2LHN0cnVjdCBjaGFuZ2VyX2dldF9lbGVtZW50KQorI2RlZmluZSBDSElPSU5JVEVMRU0gICBfSU8oJ2MnLDE3KQorI2RlZmluZSBDSElPU1ZPTFRBRyAgICBfSU9XKCdjJywxOCxzdHJ1Y3QgY2hhbmdlcl9zZXRfdm9sdGFnKQorI2RlZmluZSBDSElPR1ZQQVJBTVMgICBfSU9SKCdjJywxOSxzdHJ1Y3QgY2hhbmdlcl92ZW5kb3JfcGFyYW1zKQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBjLWJhc2ljLW9mZnNldDogOAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKaW5kZXggODA2YzMwNS4uMmQ4MGNjNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oCisrKyBiL2luY2x1ZGUvbGludXgvZG1hLW1hcHBpbmcuaApAQCAtMTQsNyArMTQsMTIgQEAKIH07CiAKICNkZWZpbmUgRE1BXzY0QklUX01BU0sJMHhmZmZmZmZmZmZmZmZmZmZmVUxMCisjZGVmaW5lIERNQV80MEJJVF9NQVNLCTB4MDAwMDAwZmZmZmZmZmZmZlVMTAorI2RlZmluZSBETUFfMzlCSVRfTUFTSwkweDAwMDAwMDdmZmZmZmZmZmZVTEwKICNkZWZpbmUgRE1BXzMyQklUX01BU0sJMHgwMDAwMDAwMGZmZmZmZmZmVUxMCisjZGVmaW5lIERNQV8zMUJJVF9NQVNLCTB4MDAwMDAwMDA3ZmZmZmZmZlVMTAorI2RlZmluZSBETUFfMzBCSVRfTUFTSwkweDAwMDAwMDAwM2ZmZmZmZmZVTEwKKyNkZWZpbmUgRE1BXzI5QklUX01BU0sJMHgwMDAwMDAwMDFmZmZmZmZmVUxMCiAKICNpbmNsdWRlIDxhc20vZG1hLW1hcHBpbmcuaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZl90ci5oIGIvaW5jbHVkZS9saW51eC9pZl90ci5oCmluZGV4IDY2ODhiNDEuLjNmYmE5ZTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWZfdHIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lmX3RyLmgKQEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgX0xJTlVYX0lGX1RSX0gKICNkZWZpbmUgX0xJTlVYX0lGX1RSX0gKIAorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4JLyogRm9yIF9fYmUxNiAqLworCiAvKiBJRUVFIDgwMi41IFRva2VuLVJpbmcgbWFnaWMgY29uc3RhbnRzLiAgVGhlIGZyYW1lIHNpemVzIG9taXQgdGhlIHByZWFtYmxlCiAgICBhbmQgRkNTL0NSQyAoZnJhbWUgY2hlY2sgc2VxdWVuY2UpLiAqLwogI2RlZmluZSBUUl9BTEVOCQk2CQkvKiBPY3RldHMgaW4gb25lIHRva2VuLXJpbmcgYWRkciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tYWpvci5oIGIvaW5jbHVkZS9saW51eC9tYWpvci5oCmluZGV4IDRiNjJjNDIuLmUzNmE0NjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWFqb3IuaAorKysgYi9pbmNsdWRlL2xpbnV4L21ham9yLmgKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2RlZmluZSBJMk9fTUFKT1IJCTgwCS8qIDgwLT44NyAqLwogCiAjZGVmaW5lIFNITUlRX01BSk9SCQk4NSAgIC8qIExpbnV4L21pcHMsIFNHSSAvZGV2L3NobWlxICovCisjZGVmaW5lIFNDU0lfQ0hBTkdFUl9NQUpPUiAgICAgIDg2CiAKICNkZWZpbmUgSURFNl9NQUpPUgkJODgKICNkZWZpbmUgSURFN19NQUpPUgkJODkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKaW5kZXggYjBkNjEzNC4uYjhiNGViZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKQEAgLTg3NCw2ICs4NzQsNyBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FQUExFX0tMX1VTQl9QCTB4MDAyNgogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX0FHUF9QCTB4MDAyNwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX0FHUDE1CTB4MDAyZAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX1BDSTE1CTB4MDAyZQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FQUExFX1VOSV9OX0ZXMgkweDAwMzAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9BUFBMRV9VTklfTl9HTUFDMgkweDAwMzIKICNkZWZpbmUgUENJX0RFVklFQ19JRF9BUFBMRV9VTklfTl9BVEEJMHgwMDMzCkBAIC0yMzgyLDYgKzIzODMsOCBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R19JRwkweDI1ODIKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF84MjkxNUdNX0hCCTB4MjU5MAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTE1R01fSUcJMHgyNTkyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfODI5NDVHX0hCCTB4Mjc3MAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyOTQ1R19JRwkweDI3NzIKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzAJMHgyNjQwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8xCTB4MjY0MQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDZfMgkweDI2NDIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2lnbmFsLmggYi9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oCmluZGV4IDBhOThmNWUuLjdiZTE4YjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2lnbmFsLmgKKysrIGIvaW5jbHVkZS9saW51eC9zaWduYWwuaApAQCAtMjMxLDEwICsyMzEsOCBAQAogZXh0ZXJuIGxvbmcgZG9fc2lncGVuZGluZyh2b2lkIF9fdXNlciAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiBpbnQgc2lncHJvY21hc2soaW50LCBzaWdzZXRfdCAqLCBzaWdzZXRfdCAqKTsKIAotI2lmbmRlZiBIQVZFX0FSQ0hfR0VUX1NJR05BTF9UT19ERUxJVkVSCiBzdHJ1Y3QgcHRfcmVnczsKIGV4dGVybiBpbnQgZ2V0X3NpZ25hbF90b19kZWxpdmVyKHNpZ2luZm9fdCAqaW5mbywgc3RydWN0IGtfc2lnYWN0aW9uICpyZXR1cm5fa2EsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB2b2lkICpjb29raWUpOwotI2VuZGlmCiAKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3lzY3RsLmggYi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oCmluZGV4IDIzMDMyZDkuLmExNzc0NWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3lzY3RsLmgKKysrIGIvaW5jbHVkZS9saW51eC9zeXNjdGwuaApAQCAtMzQ2LDYgKzM0Niw3IEBACiAJTkVUX1RDUF9NT0RFUkFURV9SQ1ZCVUY9MTA2LAogCU5FVF9UQ1BfVFNPX1dJTl9ESVZJU09SPTEwNywKIAlORVRfVENQX0JJQ19CRVRBPTEwOCwKKwlORVRfSVBWNF9JQ01QX0VSUk9SU19VU0VfSU5CT1VORF9JRkFERFI9MTA5LAogfTsKIAogZW51bSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RjX2VtYXRjaC90Y19lbV9tZXRhLmggYi9pbmNsdWRlL2xpbnV4L3RjX2VtYXRjaC90Y19lbV9tZXRhLmgKaW5kZXggYWE2YjQ4YmIuLmE2YjJjYzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGNfZW1hdGNoL3RjX2VtX21ldGEuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RjX2VtYXRjaC90Y19lbV9tZXRhLmgKQEAgLTU2LDYgKzU2LDM2IEBACiAJVENGX01FVEFfSURfVENDTEFTU0lELAogCVRDRl9NRVRBX0lEX1JUQ0xBU1NJRCwKIAlUQ0ZfTUVUQV9JRF9SVElJRiwKKwlUQ0ZfTUVUQV9JRF9TS19GQU1JTFksCisJVENGX01FVEFfSURfU0tfU1RBVEUsCisJVENGX01FVEFfSURfU0tfUkVVU0UsCisJVENGX01FVEFfSURfU0tfQk9VTkRfSUYsCisJVENGX01FVEFfSURfU0tfUkVGQ05ULAorCVRDRl9NRVRBX0lEX1NLX1NIVVRET1dOLAorCVRDRl9NRVRBX0lEX1NLX1BST1RPLAorCVRDRl9NRVRBX0lEX1NLX1RZUEUsCisJVENGX01FVEFfSURfU0tfUkNWQlVGLAorCVRDRl9NRVRBX0lEX1NLX1JNRU1fQUxMT0MsCisJVENGX01FVEFfSURfU0tfV01FTV9BTExPQywKKwlUQ0ZfTUVUQV9JRF9TS19PTUVNX0FMTE9DLAorCVRDRl9NRVRBX0lEX1NLX1dNRU1fUVVFVUVELAorCVRDRl9NRVRBX0lEX1NLX1JDVl9RTEVOLAorCVRDRl9NRVRBX0lEX1NLX1NORF9RTEVOLAorIAlUQ0ZfTUVUQV9JRF9TS19FUlJfUUxFTiwKKwlUQ0ZfTUVUQV9JRF9TS19GT1JXQVJEX0FMTE9DUywKKwlUQ0ZfTUVUQV9JRF9TS19TTkRCVUYsCisgCVRDRl9NRVRBX0lEX1NLX0FMTE9DUywKKyAJVENGX01FVEFfSURfU0tfUk9VVEVfQ0FQUywKKyAJVENGX01FVEFfSURfU0tfSEFTSEVOVCwKKyAJVENGX01FVEFfSURfU0tfTElOR0VSVElNRSwKKyAJVENGX01FVEFfSURfU0tfQUNLX0JBQ0tMT0csCisgCVRDRl9NRVRBX0lEX1NLX01BWF9BQ0tfQkFDS0xPRywKKyAJVENGX01FVEFfSURfU0tfUFJJTywKKyAJVENGX01FVEFfSURfU0tfUkNWTE9XQVQsCisgCVRDRl9NRVRBX0lEX1NLX1JDVlRJTUVPLAorIAlUQ0ZfTUVUQV9JRF9TS19TTkRUSU1FTywKKyAJVENGX01FVEFfSURfU0tfU0VORE1TR19PRkYsCisgCVRDRl9NRVRBX0lEX1NLX1dSSVRFX1BFTkRJTkcsCiAJX19UQ0ZfTUVUQV9JRF9NQVgKIH07CiAjZGVmaW5lIFRDRl9NRVRBX0lEX01BWCAoX19UQ0ZfTUVUQV9JRF9NQVggLSAxKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXAuaCBiL2luY2x1ZGUvbmV0L2lwLmgKaW5kZXggM2Y2Mzk5Mi4uMzIzNjBiYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaXAuaAorKysgYi9pbmNsdWRlL25ldC9pcC5oCkBAIC0xNjMsNiArMTYzLDcgQEAKIAogZXh0ZXJuIGludCBzeXNjdGxfbG9jYWxfcG9ydF9yYW5nZVsyXTsKIGV4dGVybiBpbnQgc3lzY3RsX2lwX2RlZmF1bHRfdHRsOworZXh0ZXJuIGludCBzeXNjdGxfaXBfbm9ubG9jYWxfYmluZDsKIAogI2lmZGVmIENPTkZJR19JTkVUCiAvKiBUaGUgZnVuY3Rpb24gaW4gMi4yIHdhcyBpbnZhbGlkLCBwcm9kdWNpbmcgd3JvbmcgcmVzdWx0IGZvcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zY3NpL3Njc2kuaCBiL2luY2x1ZGUvc2NzaS9zY3NpLmgKaW5kZXggNjU5ZWNmNC4uMWZiMjMzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2kuaAorKysgYi9pbmNsdWRlL3Njc2kvc2NzaS5oCkBAIC00MSw2ICs0MSw3IEBACiAjZGVmaW5lIEZPUk1BVF9VTklUICAgICAgICAgICAweDA0CiAjZGVmaW5lIFJFQURfQkxPQ0tfTElNSVRTICAgICAweDA1CiAjZGVmaW5lIFJFQVNTSUdOX0JMT0NLUyAgICAgICAweDA3CisjZGVmaW5lIElOSVRJQUxJWkVfRUxFTUVOVF9TVEFUVVMgMHgwNwogI2RlZmluZSBSRUFEXzYgICAgICAgICAgICAgICAgMHgwOAogI2RlZmluZSBXUklURV82ICAgICAgICAgICAgICAgMHgwYQogI2RlZmluZSBTRUVLXzYgICAgICAgICAgICAgICAgMHgwYgpAQCAtNjUsNiArNjYsNyBAQAogI2RlZmluZSBSRUFEXzEwICAgICAgICAgICAgICAgMHgyOAogI2RlZmluZSBXUklURV8xMCAgICAgICAgICAgICAgMHgyYQogI2RlZmluZSBTRUVLXzEwICAgICAgICAgICAgICAgMHgyYgorI2RlZmluZSBQT1NJVElPTl9UT19FTEVNRU5UICAgMHgyYgogI2RlZmluZSBXUklURV9WRVJJRlkgICAgICAgICAgMHgyZQogI2RlZmluZSBWRVJJRlkgICAgICAgICAgICAgICAgMHgyZgogI2RlZmluZSBTRUFSQ0hfSElHSCAgICAgICAgICAgMHgzMApAQCAtOTcsNiArOTksNyBAQAogI2RlZmluZSBQRVJTSVNURU5UX1JFU0VSVkVfT1VUIDB4NWYKICNkZWZpbmUgUkVQT1JUX0xVTlMgICAgICAgICAgIDB4YTAKICNkZWZpbmUgTU9WRV9NRURJVU0gICAgICAgICAgIDB4YTUKKyNkZWZpbmUgRVhDSEFOR0VfTUVESVVNICAgICAgIDB4YTYKICNkZWZpbmUgUkVBRF8xMiAgICAgICAgICAgICAgIDB4YTgKICNkZWZpbmUgV1JJVEVfMTIgICAgICAgICAgICAgIDB4YWEKICNkZWZpbmUgV1JJVEVfVkVSSUZZXzEyICAgICAgIDB4YWUKQEAgLTIxMCw2ICsyMTMsNyBAQAogI2RlZmluZSBUWVBFX0NPTU0gICAgICAgICAgIDB4MDkgICAgLyogQ29tbXVuaWNhdGlvbnMgZGV2aWNlICovCiAjZGVmaW5lIFRZUEVfRU5DTE9TVVJFICAgICAgMHgwZCAgICAvKiBFbmNsb3N1cmUgU2VydmljZXMgRGV2aWNlICovCiAjZGVmaW5lIFRZUEVfUkFJRCAgICAgICAgICAgMHgwYworI2RlZmluZSBUWVBFX1JCQwkgICAgMHgwZQogI2RlZmluZSBUWVBFX05PX0xVTiAgICAgICAgIDB4N2YKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2NzaS9zY3NpX2RldmljZS5oIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGV2aWNlLmgKaW5kZXggYzAxODAyMC4uNjNjOTFkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2lfZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9zY3NpL3Njc2lfZGV2aWNlLmgKQEAgLTE1NCw3ICsxNTQsOSBAQAogCXVuc2lnbmVkIGludAkJaWQ7IC8qIHRhcmdldCBpZCAuLi4gcmVwbGFjZQogCQkJCSAgICAgKiBzY3NpX2RldmljZS5pZCBldmVudHVhbGx5ICovCiAJdW5zaWduZWQgbG9uZwkJY3JlYXRlOjE7IC8qIHNpZ25hbCB0aGF0IGl0IG5lZWRzIHRvIGJlIGFkZGVkICovCi0JdW5zaWduZWQgbG9uZwkJc3RhcmdldF9kYXRhWzBdOworCXZvaWQgCQkJKmhvc3RkYXRhOyAvKiBhdmFpbGFibGUgdG8gbG93LWxldmVsIGRyaXZlciAqLworCXVuc2lnbmVkIGxvbmcJCXN0YXJnZXRfZGF0YVswXTsgLyogZm9yIHRoZSB0cmFuc3BvcnQgKi8KKwkvKiBzdGFyZ2V0X2RhdGEgbXVzdCBiZSB0aGUgbGFzdCBlbGVtZW50ISEhISAqLwogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKHNpemVvZih1bnNpZ25lZCBsb25nKSkpKTsKIAogI2RlZmluZSB0b19zY3NpX3RhcmdldChkKQljb250YWluZXJfb2YoZCwgc3RydWN0IHNjc2lfdGFyZ2V0LCBkZXYpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Njc2kvc2NzaV9ob3N0LmggYi9pbmNsdWRlL3Njc2kvc2NzaV9ob3N0LmgKaW5kZXggMWNlZTFlMS4uZGI5OTE0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zY3NpL3Njc2lfaG9zdC5oCisrKyBiL2luY2x1ZGUvc2NzaS9zY3NpX2hvc3QuaApAQCAtMTAsNiArMTAsNyBAQAogc3RydWN0IG1vZHVsZTsKIHN0cnVjdCBzY3NpX2NtbmQ7CiBzdHJ1Y3Qgc2NzaV9kZXZpY2U7CitzdHJ1Y3Qgc2NzaV90YXJnZXQ7CiBzdHJ1Y3QgU2NzaV9Ib3N0Owogc3RydWN0IHNjc2lfaG9zdF9jbWRfcG9vbDsKIHN0cnVjdCBzY3NpX3RyYW5zcG9ydF90ZW1wbGF0ZTsKQEAgLTIyOCw2ICsyMjksMzAgQEAKIAl2b2lkICgqIHNsYXZlX2Rlc3Ryb3kpKHN0cnVjdCBzY3NpX2RldmljZSAqKTsKIAogCS8qCisJICogQmVmb3JlIHRoZSBtaWQgbGF5ZXIgYXR0ZW1wdHMgdG8gc2NhbiBmb3IgYSBuZXcgZGV2aWNlIGF0dGFjaGVkCisJICogdG8gYSB0YXJnZXQgd2hlcmUgbm8gdGFyZ2V0IGN1cnJlbnRseSBleGlzdHMsIGl0IHdpbGwgY2FsbCB0aGlzCisJICogZW50cnkgaW4geW91ciBkcml2ZXIuICBTaG91bGQgeW91ciBkcml2ZXIgbmVlZCB0byBhbGxvY2F0ZSBhbnkKKwkgKiBzdHJ1Y3RzIG9yIHBlcmZvcm0gYW55IG90aGVyIGluaXQgaXRlbXMgaW4gb3JkZXIgdG8gc2VuZCBjb21tYW5kcworCSAqIHRvIGEgY3VycmVudGx5IHVudXNlZCB0YXJnZXQsIHRoZW4gdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHBlcmZvcm0KKwkgKiB0aG9zZSBhbGxvY2F0aW9ucy4KKwkgKgorCSAqIFJldHVybiB2YWx1ZXM6IDAgb24gc3VjY2Vzcywgbm9uLTAgb24gZmFpbHVyZQorCSAqCisJICogU3RhdHVzOiBPUFRJT05BTAorCSAqLworCWludCAoKiB0YXJnZXRfYWxsb2MpKHN0cnVjdCBzY3NpX3RhcmdldCAqKTsKKworCS8qCisJICogSW1tZWRpYXRlbHkgcHJpb3IgdG8gZGVhbGxvY2F0aW5nIHRoZSB0YXJnZXQgc3RydWN0dXJlLCBhbmQKKwkgKiBhZnRlciBhbGwgYWN0aXZpdHkgdG8gYXR0YWNoZWQgc2NzaSBkZXZpY2VzIGhhcyBjZWFzZWQsIHRoZQorCSAqIG1pZGxheWVyIGNhbGxzIHRoaXMgcG9pbnQgc28gdGhhdCB0aGUgZHJpdmVyIG1heSBkZWFsbG9jYXRlCisJICogYW5kIHRlcm1pbmF0ZSBhbnkgcmVmZXJlbmNlcyB0byB0aGUgdGFyZ2V0LgorCSAqCisJICogU3RhdHVzOiBPUFRJT05BTAorCSAqLworCXZvaWQgKCogdGFyZ2V0X2Rlc3Ryb3kpKHN0cnVjdCBzY3NpX3RhcmdldCAqKTsKKworCS8qCiAJICogZmlsbCBpbiB0aGlzIGZ1bmN0aW9uIHRvIGFsbG93IHRoZSBxdWV1ZSBkZXB0aCBvZiB0aGlzIGhvc3QKIAkgKiB0byBiZSBjaGFuZ2VhYmxlIChvbiBhIHBlciBkZXZpY2UgYmFzaXMpLiAgcmV0dXJucyBlaXRoZXIKIAkgKiB0aGUgY3VycmVudCBxdWV1ZSBkZXB0aCBzZXR0aW5nIChtYXkgYmUgZGlmZmVyZW50IGZyb20gd2hhdApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zY3NpL3Njc2lfdHJhbnNwb3J0LmggYi9pbmNsdWRlL3Njc2kvc2NzaV90cmFuc3BvcnQuaAppbmRleCAyZGNlZTdhLi5hNGYxODM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3Njc2kvc2NzaV90cmFuc3BvcnQuaAorKysgYi9pbmNsdWRlL3Njc2kvc2NzaV90cmFuc3BvcnQuaApAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTQ1NJX1RSQU5TUE9SVF9ICiAKICNpbmNsdWRlIDxsaW51eC90cmFuc3BvcnRfY2xhc3MuaD4KKyNpbmNsdWRlIDxzY3NpL3Njc2lfaG9zdC5oPgogCiBzdHJ1Y3Qgc2NzaV90cmFuc3BvcnRfdGVtcGxhdGUgewogCS8qIHRoZSBhdHRyaWJ1dGUgY29udGFpbmVycyAqLwpAQCAtMzIsOCArMzMsMTEgQEAKIAkgKiBzcGFjZSBvZiB0aGlzIHNpemUgd2lsbCBiZSBsZWZ0IGF0IHRoZSBlbmQgb2YgdGhlCiAJICogc2NzaV8qIHN0cnVjdHVyZSAqLwogCWludAlkZXZpY2Vfc2l6ZTsKKwlpbnQJZGV2aWNlX3ByaXZhdGVfb2Zmc2V0OwogCWludAl0YXJnZXRfc2l6ZTsKKwlpbnQJdGFyZ2V0X3ByaXZhdGVfb2Zmc2V0OwogCWludAlob3N0X3NpemU7CisJLyogbm8gcHJpdmF0ZSBvZmZzZXQgZm9yIHRoZSBob3N0OyB0aGVyZSdzIGFuIGFsdGVybmF0aXZlIG1lY2hhbmlzbSAqLwogCiAJLyoKIAkgKiBUcnVlIGlmIHRoZSB0cmFuc3BvcnQgd2FudHMgdG8gdXNlIGEgaG9zdC1iYXNlZCB3b3JrLXF1ZXVlCkBAIC00NSw0ICs0OSwzOCBAQAogCWRldl90b19zaG9zdCgodGMpLT5kZXYpCiAKIAorLyogUHJpdmF0ZSBhcmVhIG1haW50ZW5hbmNlLiBUaGUgZHJpdmVyIHJlcXVlc3RlZCBhbGxvY2F0aW9ucyBjb21lCisgKiBkaXJlY3RseSBhZnRlciB0aGUgdHJhbnNwb3J0IGNsYXNzIGFsbG9jYXRpb25zIChpZiBhbnkpLiAgVGhlIGlkZWEKKyAqIGlzIHRoYXQgeW91ICptdXN0KiBjYWxsIHRoZXNlIG9ubHkgb25jZS4gIFRoZSBjb2RlIGFzc3VtZXMgdGhhdCB0aGUKKyAqIGluaXRpYWwgdmFsdWVzIGFyZSB0aGUgb25lcyB0aGUgdHJhbnNwb3J0IHNwZWNpZmljIGNvZGUgcmVxdWlyZXMgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorc2NzaV90cmFuc3BvcnRfcmVzZXJ2ZV90YXJnZXQoc3RydWN0IHNjc2lfdHJhbnNwb3J0X3RlbXBsYXRlICogdCwgaW50IHNwYWNlKQoreworCUJVR19PTih0LT50YXJnZXRfcHJpdmF0ZV9vZmZzZXQgIT0gMCk7CisJdC0+dGFyZ2V0X3ByaXZhdGVfb2Zmc2V0ID0gQUxJR04odC0+dGFyZ2V0X3NpemUsIHNpemVvZih2b2lkICopKTsKKwl0LT50YXJnZXRfc2l6ZSA9IHQtPnRhcmdldF9wcml2YXRlX29mZnNldCArIHNwYWNlOworfQorc3RhdGljIGlubGluZSB2b2lkCitzY3NpX3RyYW5zcG9ydF9yZXNlcnZlX2RldmljZShzdHJ1Y3Qgc2NzaV90cmFuc3BvcnRfdGVtcGxhdGUgKiB0LCBpbnQgc3BhY2UpCit7CisJQlVHX09OKHQtPmRldmljZV9wcml2YXRlX29mZnNldCAhPSAwKTsKKwl0LT5kZXZpY2VfcHJpdmF0ZV9vZmZzZXQgPSBBTElHTih0LT5kZXZpY2Vfc2l6ZSwgc2l6ZW9mKHZvaWQgKikpOworCXQtPmRldmljZV9zaXplID0gdC0+ZGV2aWNlX3ByaXZhdGVfb2Zmc2V0ICsgc3BhY2U7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgKgorc2NzaV90cmFuc3BvcnRfdGFyZ2V0X2RhdGEoc3RydWN0IHNjc2lfdGFyZ2V0ICpzdGFyZ2V0KQoreworCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gZGV2X3RvX3Nob3N0KCZzdGFyZ2V0LT5kZXYpOworCXJldHVybiAodTggKilzdGFyZ2V0LT5zdGFyZ2V0X2RhdGEKKwkJKyBzaG9zdC0+dHJhbnNwb3J0dC0+dGFyZ2V0X3ByaXZhdGVfb2Zmc2V0OworCit9CitzdGF0aWMgaW5saW5lIHZvaWQgKgorc2NzaV90cmFuc3BvcnRfZGV2aWNlX2RhdGEoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2KQoreworCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gc2Rldi0+aG9zdDsKKwlyZXR1cm4gKHU4ICopc2Rldi0+c2Rldl9kYXRhCisJCSsgc2hvc3QtPnRyYW5zcG9ydHQtPmRldmljZV9wcml2YXRlX29mZnNldDsKK30KKwogI2VuZGlmIC8qIFNDU0lfVFJBTlNQT1JUX0ggKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9leGl0LmMgYi9rZXJuZWwvZXhpdC5jCmluZGV4IGVkYWE1MGIuLjJlZjJhZDUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9leGl0LmMKKysrIGIva2VybmVsL2V4aXQuYwpAQCAtODExLDEwICs4MTEsOCBAQAogCWFjY3RfdXBkYXRlX2ludGVncmFscyh0c2spOwogCXVwZGF0ZV9tZW1faGl3YXRlcih0c2spOwogCWdyb3VwX2RlYWQgPSBhdG9taWNfZGVjX2FuZF90ZXN0KCZ0c2stPnNpZ25hbC0+bGl2ZSk7Ci0JaWYgKGdyb3VwX2RlYWQpIHsKLSAJCWRlbF90aW1lcl9zeW5jKCZ0c2stPnNpZ25hbC0+cmVhbF90aW1lcik7CisJaWYgKGdyb3VwX2RlYWQpCiAJCWFjY3RfcHJvY2Vzcyhjb2RlKTsKLQl9CiAJZXhpdF9tbSh0c2spOwogCiAJZXhpdF9zZW0odHNrKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wb3NpeC10aW1lcnMuYyBiL2tlcm5lbC9wb3NpeC10aW1lcnMuYwppbmRleCBmZDMxNmMyLi5jYWJiNjNmIDEwMDY0NAotLS0gYS9rZXJuZWwvcG9zaXgtdGltZXJzLmMKKysrIGIva2VybmVsL3Bvc2l4LXRpbWVycy5jCkBAIC0xMTk3LDYgKzExOTcsNyBAQAogCQl0bXIgPSBsaXN0X2VudHJ5KHNpZy0+cG9zaXhfdGltZXJzLm5leHQsIHN0cnVjdCBrX2l0aW1lciwgbGlzdCk7CiAJCWl0aW1lcl9kZWxldGUodG1yKTsKIAl9CisJZGVsX3RpbWVyX3N5bmMoJnNpZy0+cmVhbF90aW1lcik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQuYyBiL2tlcm5lbC9zY2hlZC5jCmluZGV4IDY2YjJlZDcuLmYxMmEwYzggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC5jCisrKyBiL2tlcm5lbC9zY2hlZC5jCkBAIC0zNzU1LDE5ICszNzU1LDIyIEBACiAgKi8KIGludCBjb25kX3Jlc2NoZWRfbG9jayhzcGlubG9ja190ICogbG9jaykKIHsKKwlpbnQgcmV0ID0gMDsKKwogCWlmIChuZWVkX2xvY2ticmVhayhsb2NrKSkgewogCQlzcGluX3VubG9jayhsb2NrKTsKIAkJY3B1X3JlbGF4KCk7CisJCXJldCA9IDE7CiAJCXNwaW5fbG9jayhsb2NrKTsKIAl9CiAJaWYgKG5lZWRfcmVzY2hlZCgpKSB7CiAJCV9yYXdfc3Bpbl91bmxvY2sobG9jayk7CiAJCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKIAkJX19jb25kX3Jlc2NoZWQoKTsKKwkJcmV0ID0gMTsKIAkJc3Bpbl9sb2NrKGxvY2spOwotCQlyZXR1cm4gMTsKIAl9Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHJldDsKIH0KIAogRVhQT1JUX1NZTUJPTChjb25kX3Jlc2NoZWRfbG9jayk7CmRpZmYgLS1naXQgYS9tbS9maWxlbWFwLmMgYi9tbS9maWxlbWFwLmMKaW5kZXggMWQzM2ZlYy4uNGEyZmVlMiAxMDA2NDQKLS0tIGEvbW0vZmlsZW1hcC5jCisrKyBiL21tL2ZpbGVtYXAuYwpAQCAtMTk2OCw2ICsxOTY4LDcgQEAKIAlkbyB7CiAJCXVuc2lnbmVkIGxvbmcgaW5kZXg7CiAJCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OworCQl1bnNpZ25lZCBsb25nIG1heGxlbjsKIAkJc2l6ZV90IGNvcGllZDsKIAogCQlvZmZzZXQgPSAocG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtMSkpOyAvKiBXaXRoaW4gcGFnZSAqLwpAQCAtMTk4Miw3ICsxOTgzLDEwIEBACiAJCSAqIHNhbWUgcGFnZSBhcyB3ZSdyZSB3cml0aW5nIHRvLCB3aXRob3V0IGl0IGJlaW5nIG1hcmtlZAogCQkgKiB1cC10by1kYXRlLgogCQkgKi8KLQkJZmF1bHRfaW5fcGFnZXNfcmVhZGFibGUoYnVmLCBieXRlcyk7CisJCW1heGxlbiA9IGN1cl9pb3YtPmlvdl9sZW4gLSBpb3ZfYmFzZTsKKwkJaWYgKG1heGxlbiA+IGJ5dGVzKQorCQkJbWF4bGVuID0gYnl0ZXM7CisJCWZhdWx0X2luX3BhZ2VzX3JlYWRhYmxlKGJ1ZiwgbWF4bGVuKTsKIAogCQlwYWdlID0gX19ncmFiX2NhY2hlX3BhZ2UobWFwcGluZyxpbmRleCwmY2FjaGVkX3BhZ2UsJmxydV9wdmVjKTsKIAkJaWYgKCFwYWdlKSB7CkBAIC0yMDI0LDYgKzIwMjgsOCBAQAogCQkJCQlmaWxlbWFwX3NldF9uZXh0X2lvdmVjKCZjdXJfaW92LAogCQkJCQkJCSZpb3ZfYmFzZSwgc3RhdHVzKTsKIAkJCQkJYnVmID0gY3VyX2lvdi0+aW92X2Jhc2UgKyBpb3ZfYmFzZTsKKwkJCQl9IGVsc2UgeworCQkJCQlpb3ZfYmFzZSArPSBzdGF0dXM7CiAJCQkJfQogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IGYxNWEzZmYuLmFiOTM1NzcgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0xNzQ0LDYgKzE3NDQsNyBAQAogCXN0cnVjdCBzb2Z0bmV0X2RhdGEgKnF1ZXVlID0gJl9fZ2V0X2NwdV92YXIoc29mdG5ldF9kYXRhKTsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X3RpbWUgPSBqaWZmaWVzOwogCisJYmFja2xvZ19kZXYtPndlaWdodCA9IHdlaWdodF9wOwogCWZvciAoOzspIHsKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAkJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2V0aHRvb2wuYyBiL25ldC9jb3JlL2V0aHRvb2wuYwppbmRleCA4ZWM0ODQ4Li5hM2VlYjg4IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ldGh0b29sLmMKKysrIGIvbmV0L2NvcmUvZXRodG9vbC5jCkBAIC0zNTYsNyArMzU2LDcgQEAKIHsKIAlzdHJ1Y3QgZXRodG9vbF9jb2FsZXNjZSBjb2FsZXNjZTsKIAotCWlmICghZGV2LT5ldGh0b29sX29wcy0+Z2V0X2NvYWxlc2NlKQorCWlmICghZGV2LT5ldGh0b29sX29wcy0+c2V0X2NvYWxlc2NlKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoJmNvYWxlc2NlLCB1c2VyYWRkciwgc2l6ZW9mKGNvYWxlc2NlKSkpCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25ldC1zeXNmcy5jCmluZGV4IDkxMGViNGMuLmUyMTM3ZjMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL25ldC1zeXNmcy5jCisrKyBiL25ldC9jb3JlL25ldC1zeXNmcy5jCkBAIC0xODUsNiArMTg1LDIyIEBACiBzdGF0aWMgQ0xBU1NfREVWSUNFX0FUVFIodHhfcXVldWVfbGVuLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd190eF9xdWV1ZV9sZW4sIAogCQkJIHN0b3JlX3R4X3F1ZXVlX2xlbik7CiAKK05FVERFVklDRV9TSE9XKHdlaWdodCwgZm10X2RlYyk7CisKK3N0YXRpYyBpbnQgY2hhbmdlX3dlaWdodChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LCB1bnNpZ25lZCBsb25nIG5ld193ZWlnaHQpCit7CisJbmV0LT53ZWlnaHQgPSBuZXdfd2VpZ2h0OworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdCBzdG9yZV93ZWlnaHQoc3RydWN0IGNsYXNzX2RldmljZSAqZGV2LCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJcmV0dXJuIG5ldGRldl9zdG9yZShkZXYsIGJ1ZiwgbGVuLCBjaGFuZ2Vfd2VpZ2h0KTsKK30KKworc3RhdGljIENMQVNTX0RFVklDRV9BVFRSKHdlaWdodCwgU19JUlVHTyB8IFNfSVdVU1IsIHNob3dfd2VpZ2h0LCAKKwkJCSBzdG9yZV93ZWlnaHQpOworCiAKIHN0YXRpYyBzdHJ1Y3QgY2xhc3NfZGV2aWNlX2F0dHJpYnV0ZSAqbmV0X2NsYXNzX2F0dHJpYnV0ZXNbXSA9IHsKIAkmY2xhc3NfZGV2aWNlX2F0dHJfaWZpbmRleCwKQEAgLTE5NCw2ICsyMTAsNyBAQAogCSZjbGFzc19kZXZpY2VfYXR0cl9mZWF0dXJlcywKIAkmY2xhc3NfZGV2aWNlX2F0dHJfbXR1LAogCSZjbGFzc19kZXZpY2VfYXR0cl9mbGFncywKKwkmY2xhc3NfZGV2aWNlX2F0dHJfd2VpZ2h0LAogCSZjbGFzc19kZXZpY2VfYXR0cl90eXBlLAogCSZjbGFzc19kZXZpY2VfYXR0cl9hZGRyZXNzLAogCSZjbGFzc19kZXZpY2VfYXR0cl9icm9hZGNhc3QsCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9pbmV0LmMKaW5kZXggYjNjYjQ5Yy4uMDM5NDJmMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvYWZfaW5ldC5jCisrKyBiL25ldC9pcHY0L2FmX2luZXQuYwpAQCAtMTE4MSw2ICsxMTgxLDcgQEAKIEVYUE9SVF9TWU1CT0woaW5ldF9zdHJlYW1fb3BzKTsKIEVYUE9SVF9TWU1CT0woaW5ldF91bnJlZ2lzdGVyX3Byb3Rvc3cpOwogRVhQT1JUX1NZTUJPTChuZXRfc3RhdGlzdGljcyk7CitFWFBPUlRfU1lNQk9MKHN5c2N0bF9pcF9ub25sb2NhbF9iaW5kKTsKIAogI2lmZGVmIElORVRfUkVGQ05UX0RFQlVHCiBFWFBPUlRfU1lNQk9MKGluZXRfc29ja19ucik7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pY21wLmMgYi9uZXQvaXB2NC9pY21wLmMKaW5kZXggODViZjBkMy4uY2I3NTk0OCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWNtcC5jCisrKyBiL25ldC9pcHY0L2ljbXAuYwpAQCAtMjA3LDYgKzIwNyw3IEBACiAKIGludCBzeXNjdGxfaWNtcF9yYXRlbGltaXQgPSAxICogSFo7CiBpbnQgc3lzY3RsX2ljbXBfcmF0ZW1hc2sgPSAweDE4MTg7CitpbnQgc3lzY3RsX2ljbXBfZXJyb3JzX3VzZV9pbmJvdW5kX2lmYWRkcjsKIAogLyoKICAqCUlDTVAgY29udHJvbCBhcnJheS4gVGhpcyBzcGVjaWZpZXMgd2hhdCB0byBkbyB3aXRoIGVhY2ggSUNNUC4KQEAgLTUxMSw4ICs1MTIsMTIgQEAKIAkgKi8KIAogCXNhZGRyID0gaXBoLT5kYWRkcjsKLQlpZiAoIShydC0+cnRfZmxhZ3MgJiBSVENGX0xPQ0FMKSkKLQkJc2FkZHIgPSAwOworCWlmICghKHJ0LT5ydF9mbGFncyAmIFJUQ0ZfTE9DQUwpKSB7CisJCWlmIChzeXNjdGxfaWNtcF9lcnJvcnNfdXNlX2luYm91bmRfaWZhZGRyKQorCQkJc2FkZHIgPSBpbmV0X3NlbGVjdF9hZGRyKHNrYl9pbi0+ZGV2LCAwLCBSVF9TQ09QRV9MSU5LKTsKKwkJZWxzZQorCQkJc2FkZHIgPSAwOworCX0KIAogCXRvcyA9IGljbXBfcG9pbnRlcnNbdHlwZV0uZXJyb3IgPyAoKGlwaC0+dG9zICYgSVBUT1NfVE9TX01BU0spIHwKIAkJCQkJICAgSVBUT1NfUFJFQ19JTlRFUk5FVENPTlRST0wpIDoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L211bHRpcGF0aF9kcnIuYyBiL25ldC9pcHY0L211bHRpcGF0aF9kcnIuYwppbmRleCBjZjJlNmJjLi5jOWNmODcyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9tdWx0aXBhdGhfZHJyLmMKKysrIGIvbmV0L2lwdjQvbXVsdGlwYXRoX2Ryci5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvaWdtcC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21yb3V0ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxuZXQvaXAuaD4KQEAgLTI0NywzICsyNDgsNCBAQAogCiBtb2R1bGVfaW5pdChkcnJfaW5pdCk7CiBtb2R1bGVfZXhpdChkcnJfZXhpdCk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9tdWx0aXBhdGhfcmFuZG9tLmMgYi9uZXQvaXB2NC9tdWx0aXBhdGhfcmFuZG9tLmMKaW5kZXggODA1YTE2ZS4uNTI0OWRiZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvbXVsdGlwYXRoX3JhbmRvbS5jCisrKyBiL25ldC9pcHY0L211bHRpcGF0aF9yYW5kb20uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lnbXAuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tcm91dGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bmV0L2lwLmg+CkBAIC0xMjYsMyArMTI3LDQgQEAKIAogbW9kdWxlX2luaXQocmFuZG9tX2luaXQpOwogbW9kdWxlX2V4aXQocmFuZG9tX2V4aXQpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbXVsdGlwYXRoX3JyLmMgYi9uZXQvaXB2NC9tdWx0aXBhdGhfcnIuYwppbmRleCAwNjFiNmIyLi5iNmNkMjg3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9tdWx0aXBhdGhfcnIuYworKysgYi9uZXQvaXB2NC9tdWx0aXBhdGhfcnIuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lnbXAuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tcm91dGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bmV0L2lwLmg+CkBAIC05MywzICs5NCw0IEBACiAKIG1vZHVsZV9pbml0KHJyX2luaXQpOwogbW9kdWxlX2V4aXQocnJfZXhpdCk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9tdWx0aXBhdGhfd3JhbmRvbS5jIGIvbmV0L2lwdjQvbXVsdGlwYXRoX3dyYW5kb20uYwppbmRleCBjM2QyY2ExLi5iZDdkNzViIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9tdWx0aXBhdGhfd3JhbmRvbS5jCisrKyBiL25ldC9pcHY0L211bHRpcGF0aF93cmFuZG9tLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pZ21wLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXJvdXRlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPG5ldC9pcC5oPgpAQCAtMzQyLDMgKzM0Myw0IEBACiAKIG1vZHVsZV9pbml0KHdyYW5kb21faW5pdCk7CiBtb2R1bGVfZXhpdCh3cmFuZG9tX2V4aXQpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2Nvbm50cmFja19zdGFuZGFsb25lLmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY29ubnRyYWNrX3N0YW5kYWxvbmUuYwppbmRleCA0NmNhNDVmLi5iYzU5ZjdiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY29ubnRyYWNrX3N0YW5kYWxvbmUuYworKysgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY29ubnRyYWNrX3N0YW5kYWxvbmUuYwpAQCAtMjU2LDYgKzI1Niw3IEBACiB7CiAgCXN0cnVjdCBsaXN0X2hlYWQgKmUgPSB2OwogCisJKysqcG9zOwogCWUgPSBlLT5uZXh0OwogCiAJaWYgKGUgPT0gJmlwX2Nvbm50cmFja19leHBlY3RfbGlzdCkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9pcHRfcmVjZW50LmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXB0X3JlY2VudC5jCmluZGV4IDI1YWI5ZmEuLjJkNDRiMDcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L25ldGZpbHRlci9pcHRfcmVjZW50LmMKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9yZWNlbnQuYwpAQCAtMjIzLDcgKzIyMyw3IEBACiAJCQljdXJyX3RhYmxlLT50YWJsZVtjb3VudF0ubGFzdF9zZWVuID0gMDsKIAkJCWN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS5hZGRyID0gMDsKIAkJCWN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS50dGwgPSAwOwotCQkJbWVtc2V0KGN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS5sYXN0X3BrdHMsMCxpcF9wa3RfbGlzdF90b3Qqc2l6ZW9mKHVfaW50MzJfdCkpOworCQkJbWVtc2V0KGN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS5sYXN0X3BrdHMsMCxpcF9wa3RfbGlzdF90b3Qqc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKIAkJCWN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS5vbGRlc3RfcGt0ID0gMDsKIAkJCWN1cnJfdGFibGUtPnRhYmxlW2NvdW50XS50aW1lX3BvcyA9IDA7CiAJCQljdXJyX3RhYmxlLT50aW1lX2luZm9bY291bnRdLnBvc2l0aW9uID0gY291bnQ7CkBAIC01MDIsNyArNTAyLDcgQEAKIAkJbG9jYXRpb24gPSB0aW1lX2luZm9bY3Vycl90YWJsZS0+dGltZV9wb3NdLnBvc2l0aW9uOwogCQloYXNoX3RhYmxlW3JfbGlzdFtsb2NhdGlvbl0uaGFzaF9lbnRyeV0gPSAtMTsKIAkJaGFzaF90YWJsZVtoYXNoX3Jlc3VsdF0gPSBsb2NhdGlvbjsKLQkJbWVtc2V0KHJfbGlzdFtsb2NhdGlvbl0ubGFzdF9wa3RzLDAsaXBfcGt0X2xpc3RfdG90KnNpemVvZih1X2ludDMyX3QpKTsKKwkJbWVtc2V0KHJfbGlzdFtsb2NhdGlvbl0ubGFzdF9wa3RzLDAsaXBfcGt0X2xpc3RfdG90KnNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAJCXJfbGlzdFtsb2NhdGlvbl0udGltZV9wb3MgPSBjdXJyX3RhYmxlLT50aW1lX3BvczsKIAkJcl9saXN0W2xvY2F0aW9uXS5hZGRyID0gYWRkcjsKIAkJcl9saXN0W2xvY2F0aW9uXS50dGwgPSB0dGw7CkBAIC02MzEsNyArNjMxLDcgQEAKIAkJCXJfbGlzdFtsb2NhdGlvbl0ubGFzdF9zZWVuID0gMDsKIAkJCXJfbGlzdFtsb2NhdGlvbl0uYWRkciA9IDA7CiAJCQlyX2xpc3RbbG9jYXRpb25dLnR0bCA9IDA7Ci0JCQltZW1zZXQocl9saXN0W2xvY2F0aW9uXS5sYXN0X3BrdHMsMCxpcF9wa3RfbGlzdF90b3Qqc2l6ZW9mKHVfaW50MzJfdCkpOworCQkJbWVtc2V0KHJfbGlzdFtsb2NhdGlvbl0ubGFzdF9wa3RzLDAsaXBfcGt0X2xpc3RfdG90KnNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAJCQlyX2xpc3RbbG9jYXRpb25dLm9sZGVzdF9wa3QgPSAwOwogCQkJYW5zID0gIWluZm8tPmludmVydDsKIAkJfQpAQCAtNzM0LDEwICs3MzQsMTAgQEAKIAltZW1zZXQoY3Vycl90YWJsZS0+dGFibGUsMCxzaXplb2Yoc3RydWN0IHJlY2VudF9pcF9saXN0KSppcF9saXN0X3RvdCk7CiAjaWZkZWYgREVCVUcKIAlpZihkZWJ1ZykgcHJpbnRrKEtFUk5fSU5GTyBSRUNFTlRfTkFNRSAiOiBjaGVja2VudHJ5OiBBbGxvY2F0aW5nICVkIGZvciBwa3RfbGlzdC5cbiIsCi0JCQlzaXplb2YodV9pbnQzMl90KSppcF9wa3RfbGlzdF90b3QqaXBfbGlzdF90b3QpOworCQkJc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKmlwX3BrdF9saXN0X3RvdCppcF9saXN0X3RvdCk7CiAjZW5kaWYKIAotCWhvbGQgPSB2bWFsbG9jKHNpemVvZih1X2ludDMyX3QpKmlwX3BrdF9saXN0X3RvdCppcF9saXN0X3RvdCk7CisJaG9sZCA9IHZtYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKmlwX3BrdF9saXN0X3RvdCppcF9saXN0X3RvdCk7CiAjaWZkZWYgREVCVUcKIAlpZihkZWJ1ZykgcHJpbnRrKEtFUk5fSU5GTyBSRUNFTlRfTkFNRSAiOiBjaGVja2VudHJ5OiBBZnRlciBwa3RfbGlzdCBhbGxvY2F0aW9uLlxuIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIGIvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKaW5kZXggM2FhZmIyOS4uMjMwNjhiZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKQEAgLTIzLDYgKzIzLDcgQEAKIGV4dGVybiBpbnQgc3lzY3RsX2ljbXBfZWNob19pZ25vcmVfYWxsOwogZXh0ZXJuIGludCBzeXNjdGxfaWNtcF9lY2hvX2lnbm9yZV9icm9hZGNhc3RzOwogZXh0ZXJuIGludCBzeXNjdGxfaWNtcF9pZ25vcmVfYm9ndXNfZXJyb3JfcmVzcG9uc2VzOworZXh0ZXJuIGludCBzeXNjdGxfaWNtcF9lcnJvcnNfdXNlX2luYm91bmRfaWZhZGRyOwogCiAvKiBGcm9tIGlwX2ZyYWdtZW50LmMgKi8KIGV4dGVybiBpbnQgc3lzY3RsX2lwZnJhZ19sb3dfdGhyZXNoOwpAQCAtMzk2LDYgKzM5NywxNCBAQAogCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9pbnR2ZWMKIAl9LAogCXsKKwkJLmN0bF9uYW1lCT0gTkVUX0lQVjRfSUNNUF9FUlJPUlNfVVNFX0lOQk9VTkRfSUZBRERSLAorCQkucHJvY25hbWUJPSAiaWNtcF9lcnJvcnNfdXNlX2luYm91bmRfaWZhZGRyIiwKKwkJLmRhdGEJCT0gJnN5c2N0bF9pY21wX2Vycm9yc191c2VfaW5ib3VuZF9pZmFkZHIsCisJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19kb2ludHZlYworCX0sCisJewogCQkuY3RsX25hbWUJPSBORVRfSVBWNF9ST1VURSwKIAkJLnByb2NuYW1lCT0gInJvdXRlIiwKIAkJLm1heGxlbgkJPSAwLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCBhMDM3YmFmLi4wZDlhNGZkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjMzOCw3ICsyMzM4LDcgQEAKIAkJCSh0Y3BfYmhhc2hfc2l6ZSAqIHNpemVvZihzdHJ1Y3QgdGNwX2JpbmRfaGFzaGJ1Y2tldCkpOwogCQkJb3JkZXIrKykKIAkJOwotCWlmIChvcmRlciA+IDQpIHsKKwlpZiAob3JkZXIgPj0gNCkgewogCQlzeXNjdGxfbG9jYWxfcG9ydF9yYW5nZVswXSA9IDMyNzY4OwogCQlzeXNjdGxfbG9jYWxfcG9ydF9yYW5nZVsxXSA9IDYxMDAwOwogCQlzeXNjdGxfdGNwX21heF90d19idWNrZXRzID0gMTgwMDAwOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggNzc0NGEyNS4uMjcyMDg5OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0zNzIsNiArMzcyLDcgQEAKIAkJbmRldi0+cmVnZW5fdGltZXIuZGF0YSA9ICh1bnNpZ25lZCBsb25nKSBuZGV2OwogCQlpZiAoKGRldi0+ZmxhZ3MmSUZGX0xPT1BCQUNLKSB8fAogCQkgICAgZGV2LT50eXBlID09IEFSUEhSRF9UVU5ORUwgfHwKKwkJICAgIGRldi0+dHlwZSA9PSBBUlBIUkRfTk9ORSB8fAogCQkgICAgZGV2LT50eXBlID09IEFSUEhSRF9TSVQpIHsKIAkJCXByaW50ayhLRVJOX0lORk8KIAkJCQkiRGlzYWJsZWQgUHJpdmFjeSBFeHRlbnNpb25zIG9uIGRldmljZSAlcCglcylcbiIsCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pY21wLmMgYi9uZXQvaXB2Ni9pY21wLmMKaW5kZXggOGUwZjU2OS4uZmYzZWM5OCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWNtcC5jCisrKyBiL25ldC9pcHY2L2ljbXAuYwpAQCAtMjc3LDggKzI3Nyw4IEBACiB7CiAJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IE5VTEw7CiAJc3RydWN0IGlwdjZoZHIgKmhkciA9IHNrYi0+bmguaXB2Nmg7Ci0Jc3RydWN0IHNvY2sgKnNrID0gaWNtcHY2X3NvY2tldC0+c2s7Ci0Jc3RydWN0IGlwdjZfcGluZm8gKm5wID0gaW5ldDZfc2soc2spOworCXN0cnVjdCBzb2NrICpzazsKKwlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnA7CiAJc3RydWN0IGluNl9hZGRyICpzYWRkciA9IE5VTEw7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCXN0cnVjdCBpY21wNmhkciB0bXBfaGRyOwpAQCAtMzU4LDYgKzM1OCw5IEBACiAJaWYgKGljbXB2Nl94bWl0X2xvY2soKSkKIAkJcmV0dXJuOwogCisJc2sgPSBpY21wdjZfc29ja2V0LT5zazsKKwlucCA9IGluZXQ2X3NrKHNrKTsKKwogCWlmICghaWNtcHY2X3hybGltX2FsbG93KHNrLCB0eXBlLCAmZmwpKQogCQlnb3RvIG91dDsKIApAQCAtNDIzLDkgKzQyNiw5IEBACiAKIHN0YXRpYyB2b2lkIGljbXB2Nl9lY2hvX3JlcGx5KHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IHNvY2sgKnNrID0gaWNtcHY2X3NvY2tldC0+c2s7CisJc3RydWN0IHNvY2sgKnNrOwogCXN0cnVjdCBpbmV0Nl9kZXYgKmlkZXY7Ci0Jc3RydWN0IGlwdjZfcGluZm8gKm5wID0gaW5ldDZfc2soc2spOworCXN0cnVjdCBpcHY2X3BpbmZvICpucDsKIAlzdHJ1Y3QgaW42X2FkZHIgKnNhZGRyID0gTlVMTDsKIAlzdHJ1Y3QgaWNtcDZoZHIgKmljbXBoID0gKHN0cnVjdCBpY21wNmhkciAqKSBza2ItPmgucmF3OwogCXN0cnVjdCBpY21wNmhkciB0bXBfaGRyOwpAQCAtNDU0LDYgKzQ1Nyw5IEBACiAJaWYgKGljbXB2Nl94bWl0X2xvY2soKSkKIAkJcmV0dXJuOwogCisJc2sgPSBpY21wdjZfc29ja2V0LT5zazsKKwlucCA9IGluZXQ2X3NrKHNrKTsKKwogCWlmICghZmwub2lmICYmIGlwdjZfYWRkcl9pc19tdWx0aWNhc3QoJmZsLmZsNl9kc3QpKQogCQlmbC5vaWYgPSBucC0+bWNhc3Rfb2lmOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMgYi9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKaW5kZXggM2IxYzlmYS4uYmEzYjBjMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtODgyLDYgKzg4Miw3IEBACiAJdC0+cGFybXMuaG9wX2xpbWl0ID0gcC0+aG9wX2xpbWl0OwogCXQtPnBhcm1zLmVuY2FwX2xpbWl0ID0gcC0+ZW5jYXBfbGltaXQ7CiAJdC0+cGFybXMuZmxvd2luZm8gPSBwLT5mbG93aW5mbzsKKwl0LT5wYXJtcy5saW5rID0gcC0+bGluazsKIAlpcDZpcDZfdG5sX2xpbmtfY29uZmlnKHQpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL0tjb25maWcgYi9uZXQvc2NoZWQvS2NvbmZpZwppbmRleCBiMDk0MTE4Li5iMjJjOWJlIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvS2NvbmZpZworKysgYi9uZXQvc2NoZWQvS2NvbmZpZwpAQCAtNDA1LDcgKzQwNSw3IEBACiAJLS0taGVscC0tLQogCSAgU2l6ZSBvZiB0aGUgbG9jYWwgc3RhY2sgdmFyaWFibGUgdXNlZCB3aGlsZSBldmFsdWF0aW5nIHRoZSB0cmVlIG9mCiAJICBlbWF0Y2hlcy4gTGltaXRzIHRoZSBkZXB0aCBvZiB0aGUgdHJlZSwgaS5lLiB0aGUgbnVtYmVyIG9mCi0JICBlbmNhcHN1bGF0ZWQgcHJlY2VkZW5jZXMuIEV2ZXJ5IGxldmVsIHJlcXVpcmVzIDQgYnl0ZXMgb2YgYWRkdGlvbmFsCisJICBlbmNhcHN1bGF0ZWQgcHJlY2VkZW5jZXMuIEV2ZXJ5IGxldmVsIHJlcXVpcmVzIDQgYnl0ZXMgb2YgYWRkaXRpb25hbAogCSAgc3RhY2sgc3BhY2UuCiAKIGNvbmZpZyBORVRfRU1BVENIX0NNUApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9hcGkuYyBiL25ldC9zY2hlZC9hY3RfYXBpLmMKaW5kZXggY2FmY2IwOC4uOTE0Yzg1ZiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9hcGkuYworKysgYi9uZXQvc2NoZWQvYWN0X2FwaS5jCkBAIC04ODEsNyArODgxLDcgQEAKIAkJbGlua19wW1JUTV9HRVRBQ1RJT04tUlRNX0JBU0VdLmR1bXBpdCA9IHRjX2R1bXBfYWN0aW9uOwogCX0KIAotCXByaW50aygiVEMgY2xhc3NpZmllciBhY3Rpb24gKGJ1Z3MgdG8gbmV0ZGV2QG9zcy5zZ2kuY29tIGNjICIKKwlwcmludGsoIlRDIGNsYXNzaWZpZXIgYWN0aW9uIChidWdzIHRvIG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcgY2MgIgogCSAgICAgICAiaGFkaUBjeWJlcnVzLmNhKVxuIik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2Jhc2ljLmMgYi9uZXQvc2NoZWQvY2xzX2Jhc2ljLmMKaW5kZXggMGQyZDQ0MS4uZGZiMzAwYiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19iYXNpYy5jCisrKyBiL25ldC9zY2hlZC9jbHNfYmFzaWMuYwpAQCAtMjYxLDYgKzI2MSw5IEBACiAJcnRhID0gKHN0cnVjdCBydGF0dHIgKikgYjsKIAlSVEFfUFVUKHNrYiwgVENBX09QVElPTlMsIDAsIE5VTEwpOwogCisJaWYgKGYtPnJlcy5jbGFzc2lkKQorCQlSVEFfUFVUKHNrYiwgVENBX0JBU0lDX0NMQVNTSUQsIHNpemVvZih1MzIpLCAmZi0+cmVzLmNsYXNzaWQpOworCiAJaWYgKHRjZl9leHRzX2R1bXAoc2tiLCAmZi0+ZXh0cywgJmJhc2ljX2V4dF9tYXApIDwgMCB8fAogCSAgICB0Y2ZfZW1fdHJlZV9kdW1wKHNrYiwgJmYtPmVtYXRjaGVzLCBUQ0FfQkFTSUNfRU1BVENIRVMpIDwgMCkKIAkJZ290byBydGF0dHJfZmFpbHVyZTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9lbV9tZXRhLmMgYi9uZXQvc2NoZWQvZW1fbWV0YS5jCmluZGV4IGYxZWVhZjYuLjQ4YmIyM2MgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9lbV9tZXRhLmMKKysrIGIvbmV0L3NjaGVkL2VtX21ldGEuYwpAQCAtMzIsNyArMzIsNyBAQAogICogCSAgICAgICstLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rCiAgKiAJICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAqIAkgICAgICAgICAgICAtLS0+IG1ldGFfb3BzW0lOVF1bSU5ERVZdKC4uLikgICAgICAgICAgfAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKgkgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICogCSAgICAgICAgICAgIC0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgKiAJICAgICAgICAgICAgViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKICAqIAkgICAgICArLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKwpAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgPG5ldC9kc3QuaD4KICNpbmNsdWRlIDxuZXQvcm91dGUuaD4KICNpbmNsdWRlIDxuZXQvcGt0X2Nscy5oPgorI2luY2x1ZGUgPG5ldC9zb2NrLmg+CiAKIHN0cnVjdCBtZXRhX29iagogewpAQCAtMjg0LDYgKzI4NSwyMTQgQEAKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTb2NrZXQgQXR0cmlidXRlcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNLSVBfTk9OTE9DQUwoc2tiKQkJCVwKKwlpZiAodW5saWtlbHkoc2tiLT5zayA9PSBOVUxMKSkgewlcCisJCSplcnIgPSAtMTsJCQlcCisJCXJldHVybjsJCQkJXAorCX0KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX2ZhbWlseSkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX2ZhbWlseTsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3N0YXRlKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfc3RhdGU7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19yZXVzZSkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX3JldXNlOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfYm91bmRfaWYpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCS8qIE5vIGVycm9yIGlmIGJvdW5kX2Rldl9pZiBpcyAwLCBsZWdhbCB1c2Vyc3BhY2UgY2hlY2sgKi8KKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfYm91bmRfZGV2X2lmOworfQorCitNRVRBX0NPTExFQ1RPUih2YXJfc2tfYm91bmRfaWYpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCisJIGlmIChza2ItPnNrLT5za19ib3VuZF9kZXZfaWYgPT0gMCkgeworCQlkc3QtPnZhbHVlID0gKHVuc2lnbmVkIGxvbmcpICJhbnkiOworCQlkc3QtPmxlbiA9IDM7CisJIH0gZWxzZSAgeworCQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OworCQkKKwkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChza2ItPnNrLT5za19ib3VuZF9kZXZfaWYpOworCQkqZXJyID0gdmFyX2RldihkZXYsIGRzdCk7CisJCWlmIChkZXYpCisJCQlkZXZfcHV0KGRldik7CisJIH0KK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3JlZmNudCkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IGF0b21pY19yZWFkKCZza2ItPnNrLT5za19yZWZjbnQpOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfcmN2YnVmKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfcmN2YnVmOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfc2h1dGRvd24pCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za19zaHV0ZG93bjsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3Byb3RvKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfcHJvdG9jb2w7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za190eXBlKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfdHlwZTsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3JtZW1fYWxsb2MpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBhdG9taWNfcmVhZCgmc2tiLT5zay0+c2tfcm1lbV9hbGxvYyk7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za193bWVtX2FsbG9jKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gYXRvbWljX3JlYWQoJnNrYi0+c2stPnNrX3dtZW1fYWxsb2MpOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfb21lbV9hbGxvYykKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IGF0b21pY19yZWFkKCZza2ItPnNrLT5za19vbWVtX2FsbG9jKTsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3Jjdl9xbGVuKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfcmVjZWl2ZV9xdWV1ZS5xbGVuOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfc25kX3FsZW4pCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za193cml0ZV9xdWV1ZS5xbGVuOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfd21lbV9xdWV1ZWQpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za193bWVtX3F1ZXVlZDsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX2Z3ZF9hbGxvYykKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX2ZvcndhcmRfYWxsb2M7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19zbmRidWYpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za19zbmRidWY7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19hbGxvYykKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX2FsbG9jYXRpb247Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19yb3V0ZV9jYXBzKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfcm91dGVfY2FwczsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX2hhc2hlbnQpCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za19oYXNoZW50OworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfbGluZ2VydGltZSkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX2xpbmdlcnRpbWUgLyBIWjsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX2Vycl9xbGVuKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfZXJyb3JfcXVldWUucWxlbjsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX2Fja19ibCkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX2Fja19iYWNrbG9nOworfQorCitNRVRBX0NPTExFQ1RPUihpbnRfc2tfbWF4X2Fja19ibCkKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX21heF9hY2tfYmFja2xvZzsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3ByaW8pCit7CisJU0tJUF9OT05MT0NBTChza2IpOworCWRzdC0+dmFsdWUgPSBza2ItPnNrLT5za19wcmlvcml0eTsKK30KKworTUVUQV9DT0xMRUNUT1IoaW50X3NrX3Jjdmxvd2F0KQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfcmN2bG93YXQ7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19yY3Z0aW1lbykKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX3JjdnRpbWVvIC8gSFo7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19zbmR0aW1lbykKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX3NuZHRpbWVvIC8gSFo7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za19zZW5kbXNnX29mZikKK3sKKwlTS0lQX05PTkxPQ0FMKHNrYik7CisJZHN0LT52YWx1ZSA9IHNrYi0+c2stPnNrX3NuZG1zZ19vZmY7Cit9CisKK01FVEFfQ09MTEVDVE9SKGludF9za193cml0ZV9wZW5kKQoreworCVNLSVBfTk9OTE9DQUwoc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiLT5zay0+c2tfd3JpdGVfcGVuZGluZzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBNZXRhIHZhbHVlIGNvbGxlY3RvcnMgYXNzaWdubWVudCB0YWJsZQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0yOTMsNDEgKzUwMiw3NSBAQAogCQkJICAgICAgIHN0cnVjdCBtZXRhX3ZhbHVlICosIHN0cnVjdCBtZXRhX29iaiAqLCBpbnQgKik7CiB9OwogCisjZGVmaW5lIE1FVEFfSUQobmFtZSkgVENGX01FVEFfSURfIyNuYW1lCisjZGVmaW5lIE1FVEFfRlVOQyhuYW1lKSB7IC5nZXQgPSBtZXRhXyMjbmFtZSB9CisKIC8qIE1ldGEgdmFsdWUgb3BlcmF0aW9ucyB0YWJsZSBsaXN0aW5nIGFsbCBtZXRhIHZhbHVlIGNvbGxlY3RvcnMgYW5kCiAgKiBhc3NpZ25zIHRoZW0gdG8gYSB0eXBlIGFuZCBtZXRhIGlkLiAqLwogc3RhdGljIHN0cnVjdCBtZXRhX29wcyBfX21ldGFfb3BzW1RDRl9NRVRBX1RZUEVfTUFYKzFdW1RDRl9NRVRBX0lEX01BWCsxXSA9IHsKIAlbVENGX01FVEFfVFlQRV9WQVJdID0gewotCQlbVENGX01FVEFfSURfREVWXQk9IHsgLmdldCA9IG1ldGFfdmFyX2RldiB9LAotCQlbVENGX01FVEFfSURfSU5ERVZdCT0geyAuZ2V0ID0gbWV0YV92YXJfaW5kZXYgfSwKLQkJW1RDRl9NRVRBX0lEX1JFQUxERVZdCT0geyAuZ2V0ID0gbWV0YV92YXJfcmVhbGRldiB9CisJCVtNRVRBX0lEKERFVildCQkJPSBNRVRBX0ZVTkModmFyX2RldiksCisJCVtNRVRBX0lEKElOREVWKV0JCT0gTUVUQV9GVU5DKHZhcl9pbmRldiksCisJCVtNRVRBX0lEKFJFQUxERVYpXQkJPSBNRVRBX0ZVTkModmFyX3JlYWxkZXYpLAorCQlbTUVUQV9JRChTS19CT1VORF9JRildIAkJPSBNRVRBX0ZVTkModmFyX3NrX2JvdW5kX2lmKSwKIAl9LAogCVtUQ0ZfTUVUQV9UWVBFX0lOVF0gPSB7Ci0JCVtUQ0ZfTUVUQV9JRF9SQU5ET01dCT0geyAuZ2V0ID0gbWV0YV9pbnRfcmFuZG9tIH0sCi0JCVtUQ0ZfTUVUQV9JRF9MT0FEQVZHXzBdCT0geyAuZ2V0ID0gbWV0YV9pbnRfbG9hZGF2Z18wIH0sCi0JCVtUQ0ZfTUVUQV9JRF9MT0FEQVZHXzFdCT0geyAuZ2V0ID0gbWV0YV9pbnRfbG9hZGF2Z18xIH0sCi0JCVtUQ0ZfTUVUQV9JRF9MT0FEQVZHXzJdCT0geyAuZ2V0ID0gbWV0YV9pbnRfbG9hZGF2Z18yIH0sCi0JCVtUQ0ZfTUVUQV9JRF9ERVZdCT0geyAuZ2V0ID0gbWV0YV9pbnRfZGV2IH0sCi0JCVtUQ0ZfTUVUQV9JRF9JTkRFVl0JPSB7IC5nZXQgPSBtZXRhX2ludF9pbmRldiB9LAotCQlbVENGX01FVEFfSURfUkVBTERFVl0JPSB7IC5nZXQgPSBtZXRhX2ludF9yZWFsZGV2IH0sCi0JCVtUQ0ZfTUVUQV9JRF9QUklPUklUWV0JPSB7IC5nZXQgPSBtZXRhX2ludF9wcmlvcml0eSB9LAotCQlbVENGX01FVEFfSURfUFJPVE9DT0xdCT0geyAuZ2V0ID0gbWV0YV9pbnRfcHJvdG9jb2wgfSwKLQkJW1RDRl9NRVRBX0lEX1NFQ1VSSVRZXQk9IHsgLmdldCA9IG1ldGFfaW50X3NlY3VyaXR5IH0sCi0JCVtUQ0ZfTUVUQV9JRF9QS1RUWVBFXQk9IHsgLmdldCA9IG1ldGFfaW50X3BrdHR5cGUgfSwKLQkJW1RDRl9NRVRBX0lEX1BLVExFTl0JPSB7IC5nZXQgPSBtZXRhX2ludF9wa3RsZW4gfSwKLQkJW1RDRl9NRVRBX0lEX0RBVEFMRU5dCT0geyAuZ2V0ID0gbWV0YV9pbnRfZGF0YWxlbiB9LAotCQlbVENGX01FVEFfSURfTUFDTEVOXQk9IHsgLmdldCA9IG1ldGFfaW50X21hY2xlbiB9LAorCQlbTUVUQV9JRChSQU5ET00pXQkJPSBNRVRBX0ZVTkMoaW50X3JhbmRvbSksCisJCVtNRVRBX0lEKExPQURBVkdfMCldCQk9IE1FVEFfRlVOQyhpbnRfbG9hZGF2Z18wKSwKKwkJW01FVEFfSUQoTE9BREFWR18xKV0JCT0gTUVUQV9GVU5DKGludF9sb2FkYXZnXzEpLAorCQlbTUVUQV9JRChMT0FEQVZHXzIpXQkJPSBNRVRBX0ZVTkMoaW50X2xvYWRhdmdfMiksCisJCVtNRVRBX0lEKERFVildCQkJPSBNRVRBX0ZVTkMoaW50X2RldiksCisJCVtNRVRBX0lEKElOREVWKV0JCT0gTUVUQV9GVU5DKGludF9pbmRldiksCisJCVtNRVRBX0lEKFJFQUxERVYpXQkJPSBNRVRBX0ZVTkMoaW50X3JlYWxkZXYpLAorCQlbTUVUQV9JRChQUklPUklUWSldCQk9IE1FVEFfRlVOQyhpbnRfcHJpb3JpdHkpLAorCQlbTUVUQV9JRChQUk9UT0NPTCldCQk9IE1FVEFfRlVOQyhpbnRfcHJvdG9jb2wpLAorCQlbTUVUQV9JRChTRUNVUklUWSldCQk9IE1FVEFfRlVOQyhpbnRfc2VjdXJpdHkpLAorCQlbTUVUQV9JRChQS1RUWVBFKV0JCT0gTUVUQV9GVU5DKGludF9wa3R0eXBlKSwKKwkJW01FVEFfSUQoUEtUTEVOKV0JCT0gTUVUQV9GVU5DKGludF9wa3RsZW4pLAorCQlbTUVUQV9JRChEQVRBTEVOKV0JCT0gTUVUQV9GVU5DKGludF9kYXRhbGVuKSwKKwkJW01FVEFfSUQoTUFDTEVOKV0JCT0gTUVUQV9GVU5DKGludF9tYWNsZW4pLAogI2lmZGVmIENPTkZJR19ORVRGSUxURVIKLQkJW1RDRl9NRVRBX0lEX05GTUFSS10JPSB7IC5nZXQgPSBtZXRhX2ludF9uZm1hcmsgfSwKKwkJW01FVEFfSUQoTkZNQVJLKV0JCT0gTUVUQV9GVU5DKGludF9uZm1hcmspLAogI2VuZGlmCi0JCVtUQ0ZfTUVUQV9JRF9UQ0lOREVYXQk9IHsgLmdldCA9IG1ldGFfaW50X3RjaW5kZXggfSwKKwkJW01FVEFfSUQoVENJTkRFWCldCQk9IE1FVEFfRlVOQyhpbnRfdGNpbmRleCksCiAjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCi0JCVtUQ0ZfTUVUQV9JRF9UQ1ZFUkRJQ1RdCT0geyAuZ2V0ID0gbWV0YV9pbnRfdGN2ZXJkIH0sCi0JCVtUQ0ZfTUVUQV9JRF9UQ0NMQVNTSURdCT0geyAuZ2V0ID0gbWV0YV9pbnRfdGNjbGFzc2lkIH0sCisJCVtNRVRBX0lEKFRDVkVSRElDVCldCQk9IE1FVEFfRlVOQyhpbnRfdGN2ZXJkKSwKKwkJW01FVEFfSUQoVENDTEFTU0lEKV0JCT0gTUVUQV9GVU5DKGludF90Y2NsYXNzaWQpLAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX05FVF9DTFNfUk9VVEUKLQkJW1RDRl9NRVRBX0lEX1JUQ0xBU1NJRF0JPSB7IC5nZXQgPSBtZXRhX2ludF9ydGNsYXNzaWQgfSwKKwkJW01FVEFfSUQoUlRDTEFTU0lEKV0JCT0gTUVUQV9GVU5DKGludF9ydGNsYXNzaWQpLAogI2VuZGlmCi0JCVtUQ0ZfTUVUQV9JRF9SVElJRl0JPSB7IC5nZXQgPSBtZXRhX2ludF9ydGlpZiB9CisJCVtNRVRBX0lEKFJUSUlGKV0JCT0gTUVUQV9GVU5DKGludF9ydGlpZiksCisJCVtNRVRBX0lEKFNLX0ZBTUlMWSldCQk9IE1FVEFfRlVOQyhpbnRfc2tfZmFtaWx5KSwKKwkJW01FVEFfSUQoU0tfU1RBVEUpXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3N0YXRlKSwKKwkJW01FVEFfSUQoU0tfUkVVU0UpXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3JldXNlKSwKKwkJW01FVEFfSUQoU0tfQk9VTkRfSUYpXQkJPSBNRVRBX0ZVTkMoaW50X3NrX2JvdW5kX2lmKSwKKwkJW01FVEFfSUQoU0tfUkVGQ05UKV0JCT0gTUVUQV9GVU5DKGludF9za19yZWZjbnQpLAorCQlbTUVUQV9JRChTS19SQ1ZCVUYpXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3JjdmJ1ZiksCisJCVtNRVRBX0lEKFNLX1NOREJVRildCQk9IE1FVEFfRlVOQyhpbnRfc2tfc25kYnVmKSwKKwkJW01FVEFfSUQoU0tfU0hVVERPV04pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3NodXRkb3duKSwKKwkJW01FVEFfSUQoU0tfUFJPVE8pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3Byb3RvKSwKKwkJW01FVEFfSUQoU0tfVFlQRSldCQk9IE1FVEFfRlVOQyhpbnRfc2tfdHlwZSksCisJCVtNRVRBX0lEKFNLX1JNRU1fQUxMT0MpXQk9IE1FVEFfRlVOQyhpbnRfc2tfcm1lbV9hbGxvYyksCisJCVtNRVRBX0lEKFNLX1dNRU1fQUxMT0MpXQk9IE1FVEFfRlVOQyhpbnRfc2tfd21lbV9hbGxvYyksCisJCVtNRVRBX0lEKFNLX09NRU1fQUxMT0MpXQk9IE1FVEFfRlVOQyhpbnRfc2tfb21lbV9hbGxvYyksCisJCVtNRVRBX0lEKFNLX1dNRU1fUVVFVUVEKV0JPSBNRVRBX0ZVTkMoaW50X3NrX3dtZW1fcXVldWVkKSwKKwkJW01FVEFfSUQoU0tfUkNWX1FMRU4pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3Jjdl9xbGVuKSwKKwkJW01FVEFfSUQoU0tfU05EX1FMRU4pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3NuZF9xbGVuKSwKKwkJW01FVEFfSUQoU0tfRVJSX1FMRU4pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX2Vycl9xbGVuKSwKKwkJW01FVEFfSUQoU0tfRk9SV0FSRF9BTExPQ1MpXQk9IE1FVEFfRlVOQyhpbnRfc2tfZndkX2FsbG9jKSwKKwkJW01FVEFfSUQoU0tfQUxMT0NTKV0JCT0gTUVUQV9GVU5DKGludF9za19hbGxvYyksCisJCVtNRVRBX0lEKFNLX1JPVVRFX0NBUFMpXQk9IE1FVEFfRlVOQyhpbnRfc2tfcm91dGVfY2FwcyksCisJCVtNRVRBX0lEKFNLX0hBU0hFTlQpXQkJPSBNRVRBX0ZVTkMoaW50X3NrX2hhc2hlbnQpLAorCQlbTUVUQV9JRChTS19MSU5HRVJUSU1FKV0JPSBNRVRBX0ZVTkMoaW50X3NrX2xpbmdlcnRpbWUpLAorCQlbTUVUQV9JRChTS19BQ0tfQkFDS0xPRyldCT0gTUVUQV9GVU5DKGludF9za19hY2tfYmwpLAorCQlbTUVUQV9JRChTS19NQVhfQUNLX0JBQ0tMT0cpXQk9IE1FVEFfRlVOQyhpbnRfc2tfbWF4X2Fja19ibCksCisJCVtNRVRBX0lEKFNLX1BSSU8pXQkJPSBNRVRBX0ZVTkMoaW50X3NrX3ByaW8pLAorCQlbTUVUQV9JRChTS19SQ1ZMT1dBVCldCQk9IE1FVEFfRlVOQyhpbnRfc2tfcmN2bG93YXQpLAorCQlbTUVUQV9JRChTS19SQ1ZUSU1FTyldCQk9IE1FVEFfRlVOQyhpbnRfc2tfcmN2dGltZW8pLAorCQlbTUVUQV9JRChTS19TTkRUSU1FTyldCQk9IE1FVEFfRlVOQyhpbnRfc2tfc25kdGltZW8pLAorCQlbTUVUQV9JRChTS19TRU5ETVNHX09GRildCT0gTUVUQV9GVU5DKGludF9za19zZW5kbXNnX29mZiksCisJCVtNRVRBX0lEKFNLX1dSSVRFX1BFTkRJTkcpXQk9IE1FVEFfRlVOQyhpbnRfc2tfd3JpdGVfcGVuZCksCiAJfQogfTsKIApAQCAtMzk2LDkgKzYzOSw5IEBACiAJLyogTGV0IGdjYyBvcHRpbWl6ZSBpdCwgdGhlIHVubGlrZWx5IGlzIG5vdCByZWFsbHkgYmFzZWQgb24KIAkgKiBzb21lIG51bWJlcnMgYnV0IGp1bXAgZnJlZSBjb2RlIGZvciBtaXNtYXRjaGVzIHNlZW1zCiAJICogbW9yZSBsb2dpY2FsLiAqLwotCWlmICh1bmxpa2VseShhID09IGIpKQorCWlmICh1bmxpa2VseShhLT52YWx1ZSA9PSBiLT52YWx1ZSkpCiAJCXJldHVybiAwOwotCWVsc2UgaWYgKGEgPCBiKQorCWVsc2UgaWYgKGEtPnZhbHVlIDwgYi0+dmFsdWUpCiAJCXJldHVybiAtMTsKIAllbHNlCiAJCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaW5wdXQuYyBiL25ldC9zY3RwL2lucHV0LmMKaW5kZXggYjcxOWE3Ny4uZmZmYzg4MCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvaW5wdXQuYworKysgYi9uZXQvc2N0cC9pbnB1dC5jCkBAIC0xNzgsNiArMTc4LDM3IEBACiAKIAlhc29jID0gX19zY3RwX3Jjdl9sb29rdXAoc2tiLCAmc3JjLCAmZGVzdCwgJnRyYW5zcG9ydCk7CiAKKwlpZiAoIWFzb2MpCisJCWVwID0gX19zY3RwX3Jjdl9sb29rdXBfZW5kcG9pbnQoJmRlc3QpOworCisJLyogUmV0cmlldmUgdGhlIGNvbW1vbiBpbnB1dCBoYW5kbGluZyBzdWJzdHJ1Y3R1cmUuICovCisJcmN2ciA9IGFzb2MgPyAmYXNvYy0+YmFzZSA6ICZlcC0+YmFzZTsKKwlzayA9IHJjdnItPnNrOworCisJLyoKKwkgKiBJZiBhIGZyYW1lIGFycml2ZXMgb24gYW4gaW50ZXJmYWNlIGFuZCB0aGUgcmVjZWl2aW5nIHNvY2tldCBpcworCSAqIGJvdW5kIHRvIGFub3RoZXIgaW50ZXJmYWNlLCB2aWEgU09fQklORFRPREVWSUNFLCB0cmVhdCBpdCBhcyBPT1RCCisJICovCisJaWYgKHNrLT5za19ib3VuZF9kZXZfaWYgJiYgKHNrLT5za19ib3VuZF9kZXZfaWYgIT0gYWYtPnNrYl9paWYoc2tiKSkpCisJeworCQlzb2NrX3B1dChzayk7CisJCWlmIChhc29jKSB7CisJCQlzY3RwX2Fzc29jaWF0aW9uX3B1dChhc29jKTsKKwkJCWFzb2MgPSBOVUxMOworCQl9IGVsc2UgeworCQkJc2N0cF9lbmRwb2ludF9wdXQoZXApOworCQkJZXAgPSBOVUxMOworCQl9CisJCXNrID0gc2N0cF9nZXRfY3RsX3NvY2soKTsKKwkJZXAgPSBzY3RwX3NrKHNrKS0+ZXA7CisJCXNjdHBfZW5kcG9pbnRfaG9sZChlcCk7CisJCXNvY2tfaG9sZChzayk7CisJCXJjdnIgPSAmZXAtPmJhc2U7CisJfQorCisJaWYgKGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykgPj0gc2stPnNrX3JjdmJ1ZikKKwkJZ290byBkaXNjYXJkX3JlbGVhc2U7CisKIAkvKgogCSAqIFJGQyAyOTYwLCA4LjQgLSBIYW5kbGUgIk91dCBvZiB0aGUgYmx1ZSIgUGFja2V0cy4KIAkgKiBBbiBTQ1RQIHBhY2tldCBpcyBjYWxsZWQgYW4gIm91dCBvZiB0aGUgYmx1ZSIgKE9PVEIpCkBAIC0xODcsMjIgKzIxOCwxMiBAQAogCSAqIHBhY2tldCBiZWxvbmdzLgogCSAqLwogCWlmICghYXNvYykgewotCQllcCA9IF9fc2N0cF9yY3ZfbG9va3VwX2VuZHBvaW50KCZkZXN0KTsKIAkJaWYgKHNjdHBfcmN2X29vdGIoc2tiKSkgewogCQkJU0NUUF9JTkNfU1RBVFNfQkgoU0NUUF9NSUJfT1VUT0ZCTFVFUyk7CiAJCQlnb3RvIGRpc2NhcmRfcmVsZWFzZTsKIAkJfQogCX0KIAotCS8qIFJldHJpZXZlIHRoZSBjb21tb24gaW5wdXQgaGFuZGxpbmcgc3Vic3RydWN0dXJlLiAqLwotCXJjdnIgPSBhc29jID8gJmFzb2MtPmJhc2UgOiAmZXAtPmJhc2U7Ci0Jc2sgPSByY3ZyLT5zazsKLQotCWlmICgoc2spICYmIChhdG9taWNfcmVhZCgmc2stPnNrX3JtZW1fYWxsb2MpID49IHNrLT5za19yY3ZidWYpKSB7Ci0JCWdvdG8gZGlzY2FyZF9yZWxlYXNlOwotCX0KLQotCiAJLyogU0NUUCBzZWVtcyB0byBhbHdheXMgbmVlZCBhIHRpbWVzdGFtcCByaWdodCBub3cgKEZJWE1FKSAqLwogCWlmIChza2ItPnN0YW1wLnR2X3NlYyA9PSAwKSB7CiAJCWRvX2dldHRpbWVvZmRheSgmc2tiLT5zdGFtcCk7CkBAIC0yNjUsMTMgKzI4NiwxMSBAQAogCiBkaXNjYXJkX3JlbGVhc2U6CiAJLyogUmVsZWFzZSBhbnkgc3RydWN0dXJlcyB3ZSBtYXkgYmUgaG9sZGluZy4gKi8KLQlpZiAoYXNvYykgewotCQlzb2NrX3B1dChhc29jLT5iYXNlLnNrKTsKKwlzb2NrX3B1dChzayk7CisJaWYgKGFzb2MpCiAJCXNjdHBfYXNzb2NpYXRpb25fcHV0KGFzb2MpOwotCX0gZWxzZSB7Ci0JCXNvY2tfcHV0KGVwLT5iYXNlLnNrKTsKKwllbHNlCiAJCXNjdHBfZW5kcG9pbnRfcHV0KGVwKTsKLQl9CiAKIAlnb3RvIGRpc2NhcmRfaXQ7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggYzlkOWVhMC4uYzdlNDJkMSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtODEyLDI2ICs4MTIsMjMgQEAKIAlpZiAoYWRkci0+c2Euc2FfZmFtaWx5ICE9IEFGX0lORVQ2KQogCQlhZiA9IHNjdHBfZ2V0X2FmX3NwZWNpZmljKGFkZHItPnNhLnNhX2ZhbWlseSk7CiAJZWxzZSB7Ci0JCXN0cnVjdCBzb2NrICpzazsKIAkJaW50IHR5cGUgPSBpcHY2X2FkZHJfdHlwZSgmYWRkci0+djYuc2luNl9hZGRyKTsKLQkJc2sgPSBzY3RwX29wdDJzayhvcHQpOwotCQlpZiAodHlwZSAmIElQVjZfQUREUl9MSU5LTE9DQUwpIHsKLQkJCS8qIE5vdGU6IEJlaGF2aW9yIHNpbWlsYXIgdG8gYWZfaW5ldDYuYzoKLQkJCSAqICAxKSBPdmVycmlkZXMgcHJldmlvdXMgYm91bmRfZGV2X2lmCi0JCQkgKiAgMikgRGVzdHJ1Y3RpdmUgZXZlbiBpZiBiaW5kIGlzbid0IHN1Y2Nlc3NmdWwuCi0JCQkgKi8KKwkJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAotCQkJaWYgKGFkZHItPnY2LnNpbjZfc2NvcGVfaWQpCi0JCQkJc2stPnNrX2JvdW5kX2Rldl9pZiA9IGFkZHItPnY2LnNpbjZfc2NvcGVfaWQ7Ci0JCQlpZiAoIXNrLT5za19ib3VuZF9kZXZfaWYpCisJCWlmICh0eXBlICYgSVBWNl9BRERSX0xJTktMT0NBTCkgeworCQkJaWYgKCFhZGRyLT52Ni5zaW42X3Njb3BlX2lkKQogCQkJCXJldHVybiAwOworCQkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChhZGRyLT52Ni5zaW42X3Njb3BlX2lkKTsKKwkJCWlmICghZGV2KQorCQkJCXJldHVybiAwOworCQkJZGV2X3B1dChkZXYpOwogCQl9CiAJCWFmID0gb3B0LT5wZi0+YWY7CiAJfQogCXJldHVybiBhZi0+YXZhaWxhYmxlKGFkZHIsIG9wdCk7CiB9CiAKLS8qIFZlcmlmeSB0aGF0IHRoZSBwcm92aWRlZCBzb2NrYWRkciBsb29rcyBiaW5kYWJsZS4gICBDb21tb24gdmVyaWZpY2F0aW9uLAorLyogVmVyaWZ5IHRoYXQgdGhlIHByb3ZpZGVkIHNvY2thZGRyIGxvb2tzIHNlbmRhYmxlLiAgIENvbW1vbiB2ZXJpZmljYXRpb24sCiAgKiBoYXMgYWxyZWFkeSBiZWVuIHRha2VuIGNhcmUgb2YuCiAgKi8KIHN0YXRpYyBpbnQgc2N0cF9pbmV0Nl9zZW5kX3ZlcmlmeShzdHJ1Y3Qgc2N0cF9zb2NrICpvcHQsIHVuaW9uIHNjdHBfYWRkciAqYWRkcikKQEAgLTg0MiwxOSArODM5LDE2IEBACiAJaWYgKGFkZHItPnNhLnNhX2ZhbWlseSAhPSBBRl9JTkVUNikKIAkJYWYgPSBzY3RwX2dldF9hZl9zcGVjaWZpYyhhZGRyLT5zYS5zYV9mYW1pbHkpOwogCWVsc2UgewotCQlzdHJ1Y3Qgc29jayAqc2s7CiAJCWludCB0eXBlID0gaXB2Nl9hZGRyX3R5cGUoJmFkZHItPnY2LnNpbjZfYWRkcik7Ci0JCXNrID0gc2N0cF9vcHQyc2sob3B0KTsKLQkJaWYgKHR5cGUgJiBJUFY2X0FERFJfTElOS0xPQ0FMKSB7Ci0JCQkvKiBOb3RlOiBCZWhhdmlvciBzaW1pbGFyIHRvIGFmX2luZXQ2LmM6Ci0JCQkgKiAgMSkgT3ZlcnJpZGVzIHByZXZpb3VzIGJvdW5kX2Rldl9pZgotCQkJICogIDIpIERlc3RydWN0aXZlIGV2ZW4gaWYgYmluZCBpc24ndCBzdWNjZXNzZnVsLgotCQkJICovCisJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAKLQkJCWlmIChhZGRyLT52Ni5zaW42X3Njb3BlX2lkKQotCQkJCXNrLT5za19ib3VuZF9kZXZfaWYgPSBhZGRyLT52Ni5zaW42X3Njb3BlX2lkOwotCQkJaWYgKCFzay0+c2tfYm91bmRfZGV2X2lmKQorCQlpZiAodHlwZSAmIElQVjZfQUREUl9MSU5LTE9DQUwpIHsKKwkJCWlmICghYWRkci0+djYuc2luNl9zY29wZV9pZCkKIAkJCQlyZXR1cm4gMDsKKwkJCWRldiA9IGRldl9nZXRfYnlfaW5kZXgoYWRkci0+djYuc2luNl9zY29wZV9pZCk7CisJCQlpZiAoIWRldikKKwkJCQlyZXR1cm4gMDsKKwkJCWRldl9wdXQoZGV2KTsKIAkJfQogCQlhZiA9IG9wdC0+cGYtPmFmOwogCX0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb2MuYyBiL25ldC9zY3RwL3Byb2MuYwppbmRleCBlNDJmZDhjLi45OGQ0OWVjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9wcm9jLmMKKysrIGIvbmV0L3NjdHAvcHJvYy5jCkBAIC0xMzIsMTQgKzEzMiwyNSBAQAogc3RhdGljIHZvaWQgc2N0cF9zZXFfZHVtcF9sb2NhbF9hZGRycyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHNjdHBfZXBfY29tbW9uICplcGIpCiB7CiAJc3RydWN0IGxpc3RfaGVhZCAqcG9zOworCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jOwogCXN0cnVjdCBzY3RwX3NvY2thZGRyX2VudHJ5ICpsYWRkcjsKLQl1bmlvbiBzY3RwX2FkZHIgKmFkZHI7CisJc3RydWN0IHNjdHBfdHJhbnNwb3J0ICpwZWVyOworCXVuaW9uIHNjdHBfYWRkciAqYWRkciwgKnByaW1hcnkgPSBOVUxMOwogCXN0cnVjdCBzY3RwX2FmICphZjsKIAorCWlmIChlcGItPnR5cGUgPT0gU0NUUF9FUF9UWVBFX0FTU09DSUFUSU9OKSB7CisJICAgIGFzb2MgPSBzY3RwX2Fzc29jKGVwYik7CisJICAgIHBlZXIgPSBhc29jLT5wZWVyLnByaW1hcnlfcGF0aDsKKwkgICAgcHJpbWFyeSA9ICZwZWVyLT5zYWRkcjsKKwl9CisKIAlsaXN0X2Zvcl9lYWNoKHBvcywgJmVwYi0+YmluZF9hZGRyLmFkZHJlc3NfbGlzdCkgewogCQlsYWRkciA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3Qgc2N0cF9zb2NrYWRkcl9lbnRyeSwgbGlzdCk7CiAJCWFkZHIgPSAodW5pb24gc2N0cF9hZGRyICopJmxhZGRyLT5hOwogCQlhZiA9IHNjdHBfZ2V0X2FmX3NwZWNpZmljKGFkZHItPnNhLnNhX2ZhbWlseSk7CisJCWlmIChwcmltYXJ5ICYmIGFmLT5jbXBfYWRkcihhZGRyLCBwcmltYXJ5KSkgeworCQkJc2VxX3ByaW50ZihzZXEsICIqIik7CisJCX0KIAkJYWYtPnNlcV9kdW1wX2FkZHIoc2VxLCBhZGRyKTsKIAl9CiB9CkBAIC0xNDksMTcgKzE2MCw1NCBAQAogewogCXN0cnVjdCBsaXN0X2hlYWQgKnBvczsKIAlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydDsKLQl1bmlvbiBzY3RwX2FkZHIgKmFkZHI7CisJdW5pb24gc2N0cF9hZGRyICphZGRyLCAqcHJpbWFyeTsKIAlzdHJ1Y3Qgc2N0cF9hZiAqYWY7CiAKKwlwcmltYXJ5ID0gJihhc3NvYy0+cGVlci5wcmltYXJ5X2FkZHIpOwogCWxpc3RfZm9yX2VhY2gocG9zLCAmYXNzb2MtPnBlZXIudHJhbnNwb3J0X2FkZHJfbGlzdCkgewogCQl0cmFuc3BvcnQgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IHNjdHBfdHJhbnNwb3J0LCB0cmFuc3BvcnRzKTsKIAkJYWRkciA9ICh1bmlvbiBzY3RwX2FkZHIgKikmdHJhbnNwb3J0LT5pcGFkZHI7CiAJCWFmID0gc2N0cF9nZXRfYWZfc3BlY2lmaWMoYWRkci0+c2Euc2FfZmFtaWx5KTsKKwkJaWYgKGFmLT5jbXBfYWRkcihhZGRyLCBwcmltYXJ5KSkgeworCQkJc2VxX3ByaW50ZihzZXEsICIqIik7CisJCX0KIAkJYWYtPnNlcV9kdW1wX2FkZHIoc2VxLCBhZGRyKTsKIAl9CiB9CiAKK3N0YXRpYyB2b2lkICogc2N0cF9lcHNfc2VxX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBsb2ZmX3QgKnBvcykKK3sKKwlpZiAoKnBvcyA+IHNjdHBfZXBfaGFzaHNpemUpCisJCXJldHVybiBOVUxMOworCisJaWYgKCpwb3MgPCAwKQorCQkqcG9zID0gMDsKKworCWlmICgqcG9zID09IDApCisJCXNlcV9wcmludGYoc2VxLCAiIEVORFBUICAgICBTT0NLICAgU1RZIFNTVCBIQktUIExQT1JUICAgVUlEIElOT0RFIExBRERSU1xuIik7CisKKwkrKypwb3M7CisKKwlyZXR1cm4gKHZvaWQgKilwb3M7Cit9CisKK3N0YXRpYyB2b2lkIHNjdHBfZXBzX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQoreworCXJldHVybjsKK30KKworCitzdGF0aWMgdm9pZCAqIHNjdHBfZXBzX3NlcV9uZXh0KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKK3sKKwlpZiAoKnBvcyA+IHNjdHBfZXBfaGFzaHNpemUpCisJCXJldHVybiBOVUxMOworCisJKysqcG9zOworCisJcmV0dXJuIHBvczsKK30KKworCiAvKiBEaXNwbGF5IHNjdHAgZW5kcG9pbnRzICgvcHJvYy9uZXQvc2N0cC9lcHMpLiAqLwogc3RhdGljIGludCBzY3RwX2Vwc19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdikKIHsKQEAgLTE2NywzOCArMjE1LDUwIEBACiAJc3RydWN0IHNjdHBfZXBfY29tbW9uICplcGI7CiAJc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwOwogCXN0cnVjdCBzb2NrICpzazsKLQlpbnQgaGFzaDsKKwlpbnQgICAgaGFzaCA9ICooaW50ICopdjsKIAotCXNlcV9wcmludGYoc2VxLCAiIEVORFBUICAgICBTT0NLICAgU1RZIFNTVCBIQktUIExQT1JUIExBRERSU1xuIik7Ci0JZm9yIChoYXNoID0gMDsgaGFzaCA8IHNjdHBfZXBfaGFzaHNpemU7IGhhc2grKykgewotCQloZWFkID0gJnNjdHBfZXBfaGFzaHRhYmxlW2hhc2hdOwotCQlyZWFkX2xvY2soJmhlYWQtPmxvY2spOwotCQlmb3IgKGVwYiA9IGhlYWQtPmNoYWluOyBlcGI7IGVwYiA9IGVwYi0+bmV4dCkgewotCQkJZXAgPSBzY3RwX2VwKGVwYik7Ci0JCQlzayA9IGVwYi0+c2s7Ci0JCQlzZXFfcHJpbnRmKHNlcSwgIiU4cCAlOHAgJS0zZCAlLTNkICUtNGQgJS01ZCAiLCBlcCwgc2ssCi0JCQkJICAgc2N0cF9zayhzayktPnR5cGUsIHNrLT5za19zdGF0ZSwgaGFzaCwKLQkJCQkgICBlcGItPmJpbmRfYWRkci5wb3J0KTsKLQkJCXNjdHBfc2VxX2R1bXBfbG9jYWxfYWRkcnMoc2VxLCBlcGIpOwotCQkJc2VxX3ByaW50ZihzZXEsICJcbiIpOwotCQl9Ci0JCXJlYWRfdW5sb2NrKCZoZWFkLT5sb2NrKTsKKwlpZiAoaGFzaCA+IHNjdHBfZXBfaGFzaHNpemUpCisJCXJldHVybiAtRU5PTUVNOworCisJaGVhZCA9ICZzY3RwX2VwX2hhc2h0YWJsZVtoYXNoLTFdOworCXNjdHBfbG9jYWxfYmhfZGlzYWJsZSgpOworCXJlYWRfbG9jaygmaGVhZC0+bG9jayk7CisJZm9yIChlcGIgPSBoZWFkLT5jaGFpbjsgZXBiOyBlcGIgPSBlcGItPm5leHQpIHsKKwkJZXAgPSBzY3RwX2VwKGVwYik7CisJCXNrID0gZXBiLT5zazsKKwkJc2VxX3ByaW50ZihzZXEsICIlOHAgJThwICUtM2QgJS0zZCAlLTRkICUtNWQgJTVkICU1bHUgIiwgZXAsIHNrLAorCQkJICAgc2N0cF9zayhzayktPnR5cGUsIHNrLT5za19zdGF0ZSwgaGFzaC0xLAorCQkJICAgZXBiLT5iaW5kX2FkZHIucG9ydCwKKwkJCSAgIHNvY2tfaV91aWQoc2spLCBzb2NrX2lfaW5vKHNrKSk7CisKKwkJc2N0cF9zZXFfZHVtcF9sb2NhbF9hZGRycyhzZXEsIGVwYik7CisJCXNlcV9wcmludGYoc2VxLCAiXG4iKTsKIAl9CisJcmVhZF91bmxvY2soJmhlYWQtPmxvY2spOworCXNjdHBfbG9jYWxfYmhfZW5hYmxlKCk7CiAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBzY3RwX2Vwc19vcHMgPSB7CisJLnN0YXJ0ID0gc2N0cF9lcHNfc2VxX3N0YXJ0LAorCS5uZXh0ICA9IHNjdHBfZXBzX3NlcV9uZXh0LAorCS5zdG9wICA9IHNjdHBfZXBzX3NlcV9zdG9wLAorCS5zaG93ICA9IHNjdHBfZXBzX3NlcV9zaG93LAorfTsKKworCiAvKiBJbml0aWFsaXplIHRoZSBzZXEgZmlsZSBvcGVyYXRpb25zIGZvciAnZXBzJyBvYmplY3QuICovCiBzdGF0aWMgaW50IHNjdHBfZXBzX3NlcV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBzY3RwX2Vwc19zZXFfc2hvdywgTlVMTCk7CisJcmV0dXJuIHNlcV9vcGVuKGZpbGUsICZzY3RwX2Vwc19vcHMpOwogfQogCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzY3RwX2Vwc19zZXFfZm9wcyA9IHsKIAkub3BlbgkgPSBzY3RwX2Vwc19zZXFfb3BlbiwKIAkucmVhZAkgPSBzZXFfcmVhZCwKIAkubGxzZWVrCSA9IHNlcV9sc2VlaywKLQkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS5yZWxlYXNlID0gc2VxX3JlbGVhc2UsCiB9OwogCiAvKiBTZXQgdXAgdGhlIHByb2MgZnMgZW50cnkgZm9yICdlcHMnIG9iamVjdC4gKi8KQEAgLTIyMSw2ICsyODEsNDAgQEAKIAlyZW1vdmVfcHJvY19lbnRyeSgiZXBzIiwgcHJvY19uZXRfc2N0cCk7CiB9CiAKKworc3RhdGljIHZvaWQgKiBzY3RwX2Fzc29jc19zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpzZXEsIGxvZmZfdCAqcG9zKQoreworCWlmICgqcG9zID4gc2N0cF9hc3NvY19oYXNoc2l6ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoKnBvcyA8IDApCisJCSpwb3MgPSAwOworCisJaWYgKCpwb3MgPT0gMCkKKwkJc2VxX3ByaW50ZihzZXEsICIgQVNTT0MgICAgIFNPQ0sgICBTVFkgU1NUIFNUIEhCS1QgQVNTT0MtSUQgVFhfUVVFVUUgUlhfUVVFVUUgVUlEIElOT0RFIExQT1JUICIKKwkJCQkiUlBPUlQgTEFERFJTIDwtPiBSQUREUlNcbiIpOworCisJKysqcG9zOworCisJcmV0dXJuICh2b2lkICopcG9zOworfQorCitzdGF0aWMgdm9pZCBzY3RwX2Fzc29jc19zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdikKK3sKKwlyZXR1cm47Cit9CisKKworc3RhdGljIHZvaWQgKiBzY3RwX2Fzc29jc19zZXFfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJaWYgKCpwb3MgPiBzY3RwX2Fzc29jX2hhc2hzaXplKQorCQlyZXR1cm4gTlVMTDsKKworCSsrKnBvczsKKworCXJldHVybiBwb3M7Cit9CisKIC8qIERpc3BsYXkgc2N0cCBhc3NvY2lhdGlvbnMgKC9wcm9jL25ldC9zY3RwL2Fzc29jcykuICovCiBzdGF0aWMgaW50IHNjdHBfYXNzb2NzX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogewpAQCAtMjI4LDQzICszMjIsNTcgQEAKIAlzdHJ1Y3Qgc2N0cF9lcF9jb21tb24gKmVwYjsKIAlzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNzb2M7CiAJc3RydWN0IHNvY2sgKnNrOwotCWludCBoYXNoOworCWludCAgICBoYXNoID0gKihpbnQgKil2OwogCi0Jc2VxX3ByaW50ZihzZXEsICIgQVNTT0MgICAgIFNPQ0sgICBTVFkgU1NUIFNUIEhCS1QgTFBPUlQgUlBPUlQgIgotCQkJIkxBRERSUyA8LT4gUkFERFJTXG4iKTsKLQlmb3IgKGhhc2ggPSAwOyBoYXNoIDwgc2N0cF9hc3NvY19oYXNoc2l6ZTsgaGFzaCsrKSB7Ci0JCWhlYWQgPSAmc2N0cF9hc3NvY19oYXNodGFibGVbaGFzaF07Ci0JCXJlYWRfbG9jaygmaGVhZC0+bG9jayk7Ci0JCWZvciAoZXBiID0gaGVhZC0+Y2hhaW47IGVwYjsgZXBiID0gZXBiLT5uZXh0KSB7Ci0JCQlhc3NvYyA9IHNjdHBfYXNzb2MoZXBiKTsKLQkJCXNrID0gZXBiLT5zazsKLQkJCXNlcV9wcmludGYoc2VxLAotCQkJCSAgICIlOHAgJThwICUtM2QgJS0zZCAlLTJkICUtNGQgJS01ZCAlLTVkICIsCi0JCQkJICAgYXNzb2MsIHNrLCBzY3RwX3NrKHNrKS0+dHlwZSwgc2stPnNrX3N0YXRlLAotCQkJCSAgIGFzc29jLT5zdGF0ZSwgaGFzaCwgZXBiLT5iaW5kX2FkZHIucG9ydCwKLQkJCQkgICBhc3NvYy0+cGVlci5wb3J0KTsKLQkJCXNjdHBfc2VxX2R1bXBfbG9jYWxfYWRkcnMoc2VxLCBlcGIpOwotCQkJc2VxX3ByaW50ZihzZXEsICI8LT4gIik7Ci0JCQlzY3RwX3NlcV9kdW1wX3JlbW90ZV9hZGRycyhzZXEsIGFzc29jKTsKLQkJCXNlcV9wcmludGYoc2VxLCAiXG4iKTsKLQkJfQotCQlyZWFkX3VubG9jaygmaGVhZC0+bG9jayk7CisJaWYgKGhhc2ggPiBzY3RwX2Fzc29jX2hhc2hzaXplKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWhlYWQgPSAmc2N0cF9hc3NvY19oYXNodGFibGVbaGFzaC0xXTsKKwlzY3RwX2xvY2FsX2JoX2Rpc2FibGUoKTsKKwlyZWFkX2xvY2soJmhlYWQtPmxvY2spOworCWZvciAoZXBiID0gaGVhZC0+Y2hhaW47IGVwYjsgZXBiID0gZXBiLT5uZXh0KSB7CisJCWFzc29jID0gc2N0cF9hc3NvYyhlcGIpOworCQlzayA9IGVwYi0+c2s7CisJCXNlcV9wcmludGYoc2VxLAorCQkJICAgIiU4cCAlOHAgJS0zZCAlLTNkICUtMmQgJS00ZCAlNGQgJThkICU4ZCAlN2QgJTVsdSAlLTVkICU1ZCAiLAorCQkJICAgYXNzb2MsIHNrLCBzY3RwX3NrKHNrKS0+dHlwZSwgc2stPnNrX3N0YXRlLAorCQkJICAgYXNzb2MtPnN0YXRlLCBoYXNoLTEsIGFzc29jLT5hc3NvY19pZCwKKwkJCSAgIChzay0+c2tfcmN2YnVmIC0gYXNzb2MtPnJ3bmQpLAorCQkJICAgYXNzb2MtPnNuZGJ1Zl91c2VkLAorCQkJICAgc29ja19pX3VpZChzayksIHNvY2tfaV9pbm8oc2spLAorCQkJICAgZXBiLT5iaW5kX2FkZHIucG9ydCwKKwkJCSAgIGFzc29jLT5wZWVyLnBvcnQpOworCisJCXNlcV9wcmludGYoc2VxLCAiICIpOworCQlzY3RwX3NlcV9kdW1wX2xvY2FsX2FkZHJzKHNlcSwgZXBiKTsKKwkJc2VxX3ByaW50ZihzZXEsICI8LT4gIik7CisJCXNjdHBfc2VxX2R1bXBfcmVtb3RlX2FkZHJzKHNlcSwgYXNzb2MpOworCQlzZXFfcHJpbnRmKHNlcSwgIlxuIik7CiAJfQorCXJlYWRfdW5sb2NrKCZoZWFkLT5sb2NrKTsKKwlzY3RwX2xvY2FsX2JoX2VuYWJsZSgpOwogCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgc2N0cF9hc3NvY19vcHMgPSB7CisJLnN0YXJ0ID0gc2N0cF9hc3NvY3Nfc2VxX3N0YXJ0LAorCS5uZXh0ICA9IHNjdHBfYXNzb2NzX3NlcV9uZXh0LAorCS5zdG9wICA9IHNjdHBfYXNzb2NzX3NlcV9zdG9wLAorCS5zaG93ICA9IHNjdHBfYXNzb2NzX3NlcV9zaG93LAorfTsKKwogLyogSW5pdGlhbGl6ZSB0aGUgc2VxIGZpbGUgb3BlcmF0aW9ucyBmb3IgJ2Fzc29jcycgb2JqZWN0LiAqLwogc3RhdGljIGludCBzY3RwX2Fzc29jc19zZXFfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgc2N0cF9hc3NvY3Nfc2VxX3Nob3csIE5VTEwpOworCXJldHVybiBzZXFfb3BlbihmaWxlLCAmc2N0cF9hc3NvY19vcHMpOwogfQogCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzY3RwX2Fzc29jc19zZXFfZm9wcyA9IHsKIAkub3BlbgkgPSBzY3RwX2Fzc29jc19zZXFfb3BlbiwKIAkucmVhZAkgPSBzZXFfcmVhZCwKIAkubGxzZWVrCSA9IHNlcV9sc2VlaywKLQkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorCS5yZWxlYXNlID0gc2VxX3JlbGVhc2UsCiB9OwogCiAvKiBTZXQgdXAgdGhlIHByb2MgZnMgZW50cnkgZm9yICdhc3NvY3MnIG9iamVjdC4gKi8KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb3RvY29sLmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IDJlMWY5YzMuLjUxMzVlMWEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwpAQCAtMzc4LDEwICszNzgsMTMgQEAKIHsKIAlpbnQgcmV0ID0gaW5ldF9hZGRyX3R5cGUoYWRkci0+djQuc2luX2FkZHIuc19hZGRyKTsKIAotCS8qIEZJWE1FOiBpcF9ub25sb2NhbF9iaW5kIHN5c2N0bCBzdXBwb3J0LiAqLwogCi0JaWYgKGFkZHItPnY0LnNpbl9hZGRyLnNfYWRkciAhPSBJTkFERFJfQU5ZICYmIHJldCAhPSBSVE5fTE9DQUwpCisJaWYgKGFkZHItPnY0LnNpbl9hZGRyLnNfYWRkciAhPSBJTkFERFJfQU5ZICYmCisJICAgcmV0ICE9IFJUTl9MT0NBTCAmJgorCSAgICFzcC0+aW5ldC5mcmVlYmluZCAmJgorCSAgICFzeXNjdGxfaXBfbm9ubG9jYWxfYmluZCkKIAkJcmV0dXJuIDA7CisKIAlyZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCAwYjMzOGVjLi4yYTNjMGUwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDY4Niw2ICs0Njg2LDcgQEAKIAlzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqbmV3ZXAgPSBuZXdzcC0+ZXA7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiwgKnRtcDsKIAlzdHJ1Y3Qgc2N0cF91bHBldmVudCAqZXZlbnQ7CisJaW50IGZsYWdzID0gMDsKIAogCS8qIE1pZ3JhdGUgc29ja2V0IGJ1ZmZlciBzaXplcyBhbmQgYWxsIHRoZSBzb2NrZXQgbGV2ZWwgb3B0aW9ucyB0byB0aGUKIAkgKiBuZXcgc29ja2V0LgpAQCAtNDcwNyw2ICs0NzA4LDE3IEBACiAJc2N0cF9zayhuZXdzayktPmJpbmRfaGFzaCA9IHBwOwogCWluZXRfc2sobmV3c2spLT5udW0gPSBpbmV0X3NrKG9sZHNrKS0+bnVtOwogCisJLyogQ29weSB0aGUgYmluZF9hZGRyIGxpc3QgZnJvbSB0aGUgb3JpZ2luYWwgZW5kcG9pbnQgdG8gdGhlIG5ldworCSAqIGVuZHBvaW50IHNvIHRoYXQgd2UgY2FuIGhhbmRsZSByZXN0YXJ0cyBwcm9wZXJseQorCSAqLworCWlmIChhc3NvYy0+cGVlci5pcHY0X2FkZHJlc3MpCisJCWZsYWdzIHw9IFNDVFBfQUREUjRfUEVFUlNVUFA7CisJaWYgKGFzc29jLT5wZWVyLmlwdjZfYWRkcmVzcykKKwkJZmxhZ3MgfD0gU0NUUF9BRERSNl9QRUVSU1VQUDsKKwlzY3RwX2JpbmRfYWRkcl9jb3B5KCZuZXdzcC0+ZXAtPmJhc2UuYmluZF9hZGRyLAorCQkJICAgICAmb2xkc3AtPmVwLT5iYXNlLmJpbmRfYWRkciwKKwkJCSAgICAgU0NUUF9TQ09QRV9HTE9CQUwsIEdGUF9LRVJORUwsIGZsYWdzKTsKKwogCS8qIE1vdmUgYW55IG1lc3NhZ2VzIGluIHRoZSBvbGQgc29ja2V0J3MgcmVjZWl2ZSBxdWV1ZSB0aGF0IGFyZSBmb3IgdGhlCiAJICogcGVlbGVkIG9mZiBhc3NvY2lhdGlvbiB0byB0aGUgbmV3IHNvY2tldCdzIHJlY2VpdmUgcXVldWUuCiAJICovCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvdXNiYXVkaW8uYyBiL3NvdW5kL3VzYi91c2JhdWRpby5jCmluZGV4IDg0YjBiYmQuLmFhZTY2MTQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi91c2JhdWRpby5jCisrKyBiL3NvdW5kL3VzYi91c2JhdWRpby5jCkBAIC0zMjg5LDcgKzMyODksNyBAQAogCQl9CiAJCXVzYl9jaGlwW2NoaXAtPmluZGV4XSA9IE5VTEw7CiAJCXVwKCZyZWdpc3Rlcl9tdXRleCk7Ci0JCXNuZF9jYXJkX2ZyZWVfaW5fdGhyZWFkKGNhcmQpOworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOwogCX0gZWxzZSB7CiAJCXVwKCZyZWdpc3Rlcl9tdXRleCk7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3VzeDJ5L3VzYnVzeDJ5LmMgYi9zb3VuZC91c2IvdXN4MnkvdXNidXN4MnkuYwppbmRleCBiMDZhMjY3Li44OWVlOGI3IDEwMDY0NAotLS0gYS9zb3VuZC91c2IvdXN4MnkvdXNidXN4MnkuYworKysgYi9zb3VuZC91c2IvdXN4MnkvdXNidXN4MnkuYwpAQCAtMSw2ICsxLDExIEBACiAvKgogICogdXNidXN5MnkuYyAtIEFMU0EgVVNCIFVTLTQyOCBEcml2ZXIKICAqCisyMDA1LTA0LTE0IEthcnN0ZW4gV2llc2UKKwlWZXJzaW9uIDAuOC43LjI6CisJQ2FsbCBzbmRfY2FyZF9mcmVlKCkgaW5zdGVhZCBvZiBzbmRfY2FyZF9mcmVlX2luX3RocmVhZCgpIHRvIHByZXZlbnQgb29wcyB3aXRoIGRlYWQga2V5Ym9hcmQgc3ltcHRvbS4KKwlUZXN0ZWQgb2sgd2l0aCBrZXJuZWwgMi42LjEyLXJjMi4KKwogMjAwNC0xMi0xNCBLYXJzdGVuIFdpZXNlCiAJVmVyc2lvbiAwLjguNy4xOgogCXNuZF9wY21fb3BlbiBmb3IgcmF3dXNiIHBjbS1kZXZpY2VzIG5vdyByZXR1cm5zIC1FQlVTWSBpZiBjYWxsZWQgd2l0aG91dCByYXd1c2IncyBod2RlcCBkZXZpY2UgYmVpbmcgb3Blbi4KQEAgLTE0Myw3ICsxNDgsNyBAQAogCiAKIE1PRFVMRV9BVVRIT1IoIkthcnN0ZW4gV2llc2UgPGFubmFiZWxsZXNnYXJkZW5AeWFob28uZGU+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIlRBU0NBTSAiTkFNRV9BTExDQVBTIiBWZXJzaW9uIDAuOC43LjEiKTsKK01PRFVMRV9ERVNDUklQVElPTigiVEFTQ0FNICJOQU1FX0FMTENBUFMiIFZlcnNpb24gMC44LjcuMiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoInt7VEFTQ0FNKDB4MTYwNCksICJOQU1FX0FMTENBUFMiKDB4ODAwMSkoMHg4MDA1KSgweDgwMDcpIH19Iik7CiAKQEAgLTQzMCw4ICs0MzUsNiBAQAogCWlmIChwdHIpIHsKIAkJdXNYMllkZXZfdCogdXNYMlkgPSB1c1gyWSgoc25kX2NhcmRfdCopcHRyKTsKIAkJc3RydWN0IGxpc3RfaGVhZCogcDsKLQkJaWYgKHVzWDJZLT5jaGlwX3N0YXR1cyA9PSBVU1gyWV9TVEFUX0NISVBfSFVQKQkvLyBvbiAyLjYuMSBrZXJuZWwgc25kX3VzYm1pZGlfZGlzY29ubmVjdCgpCi0JCQlyZXR1cm47CQkJCQkvLyBjYWxscyB1cyBiYWNrLiBiZXR0ZXIgbGVhdmUgOi0pIC4KIAkJdXNYMlktPmNoaXAuc2h1dGRvd24gPSAxOwogCQl1c1gyWS0+Y2hpcF9zdGF0dXMgPSBVU1gyWV9TVEFUX0NISVBfSFVQOwogCQl1c1gyWV91bmxpbmtTZXEoJnVzWDJZLT5BUzA0KTsKQEAgLTQ0Myw3ICs0NDYsNyBAQAogCQl9CiAJCWlmICh1c1gyWS0+dXM0MjhjdGxzX3NoYXJlZG1lbSkgCiAJCQl3YWtlX3VwKCZ1c1gyWS0+dXM0MjhjdGxzX3dhaXRfcXVldWVfaGVhZCk7Ci0JCXNuZF9jYXJkX2ZyZWVfaW5fdGhyZWFkKChzbmRfY2FyZF90KilwdHIpOworCQlzbmRfY2FyZF9mcmVlKChzbmRfY2FyZF90KilwdHIpOwogCX0KIH0KIAo=