<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>15924</bug_id>
          
          <creation_ts>2007-11-09 10:58:04 -0800</creation_ts>
          <short_desc>next step in PCRE streamlining</short_desc>
          <delta_ts>2007-11-11 10:59:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60787</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-09 10:58:04 -0800</bug_when>
    <thetext>This is a 0.9% SunSpider speed-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60788</commentid>
    <comment_count>1</comment_count>
      <attachid>17158</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-09 10:59:12 -0800</bug_when>
    <thetext>Created attachment 17158
patch -- renames make it look *much* bigger than it is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60804</commentid>
    <comment_count>2</comment_count>
      <attachid>17158</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-11-09 18:08:29 -0800</bug_when>
    <thetext>Comment on attachment 17158
patch -- renames make it look *much* bigger than it is

One typo.  

+        (jsRegExpExecute): Use new/free instead of pcre_malloc/free. Removed unused
+        start_match field from the match block.

You meant new/delete I believe.

There is also one place where you use fastMalloc/fastFree instead of new/delete.  I am not sure if you want to make the change.

r=me.  You may want to test on windows first though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60912</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-11 10:59:57 -0800</bug_when>
    <thetext>Tested on Windows and made appropriate fixes.

Committed revision 27686.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17158</attachid>
            <date>2007-11-09 10:59:12 -0800</date>
            <delta_ts>2007-11-09 18:08:29 -0800</delta_ts>
            <desc>patch -- renames make it look *much* bigger than it is</desc>
            <filename>FastPCREPatch.txt</filename>
            <type>text/plain</type>
            <size>783713</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTM3IEBACisyMDA3LTExLTA5ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTI0CisgICAgICAgICAgbmV4dCByb3VuZCBvZiBjaGFuZ2VzIHRvIEpTUmVnRXhwIChmb3Jt
ZXJseSBQQ1JFKQorCisgICAgICAgIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiBjb252ZXJ0aW5n
IHRvIEMrKywgdHdlYWtpbmcgdGhlIEFQSSwgYW5kIGFkZGluZworICAgICAgICBzb21lIGFkZGl0
aW9uYWwgb3B0aW1pemF0aW9ucy4KKworICAgICAgICBGdXR1cmUgc3RlcHMgd2lsbCBpbnZvbHZl
IGdldHRpbmcgcmlkIG9mIHRoZSB1c2Ugb2YgVVRGLTggY29tcGxldGVseQorICAgICAgICAod2Un
bGwgdXNlIFVURi0xNiBleGNsdXNpdmVseSBpbnN0ZWFkKSwgZWxpbWluYXRpbmcgbW9yZSBzb3Vy
Y2UgZmlsZXMsCisgICAgICAgIGFuZCBzb21lIG1vcmUgc3BlZWQtdXBzLgorCisgICAgICAgIFN1
blNwaWRlciBzYXlzIHRoZSBjdXJyZW50IHJvdW5kIGlzIGFuIDAuOSUgc3BlZWQtdXAgb3ZlcmFs
bCwgYW5kIGEKKyAgICAgICAgNS4zJSBzcGVlZC11cCBmb3IgcmVnZXhwLgorCisgICAgICAgICog
SmF2YVNjcmlwdENvcmUuZXhwOiBVcGRhdGVkIGZvciBuZXcgZW50cnkgcG9pbnRzLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUucHJpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUudmNwcm9qL2RmdGFibGVzL2RmdGFibGVzLnZjcHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlU291cmNlcy5ia2w6CisgICAgICAgICoganNjb3JlLmJrbDoKKyAgICAgICAgVXBkYXRl
ZCBmb3IgbmV3IHNvdXJjZSBmaWxlIG5hbWVzIGFuZCBGb3J3YXJkaW5nSGVhZGVycy4KKworICAg
ICAgICAqIGtqcy9yZWdleHAuY3BwOgorICAgICAgICAoS0pTOjpSZWdFeHA6OlJlZ0V4cCk6IENo
YW5nZWQgdG8gdXNlIHRoZSBlcnJvciBtZXNzYWdlIHdpdGhvdXQgY2FsbGluZworICAgICAgICBz
dHJkdXAgb24gaXQgYW5kIHRvIHBhc3MgdGhlIG5ldyB0eXBlcyBhbmQgb3B0aW9ucy4KKyAgICAg
ICAgKEtKUzo6UmVnRXhwOjp+UmVnRXhwKTogUmVtb3ZlZCB0aGUgbm93LXVubmVlZGVkIGZyZWUg
b2YgdGhlIGVycm9yIG1lc3NhZ2UuCisgICAgICAgIChLSlM6OlJlZ0V4cDo6bWF0Y2gpOiBQYXNz
IHRoZSBuZXcgdHlwZXMgYW5kIG9wdGlvbnMuCisgICAgICAgICoga2pzL3JlZ2V4cC5oOiBVcGRh
dGUgdHlwZSBvZiBtX2NvbnN0cnVjdGlvbkVycm9yLgorCisgICAgICAgICogcGNyZS9BVVRIT1JT
OiBVcGRhdGUgdG8gcmVmbGVjdCB0aGUgc3RhdHVzIG9mIHRoZSBwcm9qZWN0IC0tIHdlIGRvbid0
IGluY2x1ZGUKKyAgICAgICAgdGhlIEdvb2dsZSBwYXJ0cywgYW5kIHRoaXMgaXNuJ3QgdGhlIFBD
UkUgbGlicmFyeSwgcGVyIHNlLgorICAgICAgICAqIHBjcmUvQ09QWUlORzogRGl0dG8uCisKKyAg
ICAgICAgKiBwY3JlL2RmdGFibGVzLmNwcDogQ29waWVkIGZyb20gSmF2YVNjcmlwdENvcmUvcGNy
ZS9kZnRhYmxlcy5jLgorICAgICAgICAobWFpbik6IFJlbW92ZWQgdW5uZWVkZWQgY3R5cGVfZGln
aXQuCisKKyAgICAgICAgKiBwY3JlL3BjcmUuaDogQ29udmVydCB0byBDKyssIHR3ZWFrIEFQSSBh
IGJpdC4gVXNlIFVDaGFyIGluc3RlYWQgb2YgSlNSZWdFeHBDaGFyLgorCisgICAgICAgICogcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwOiBDb3BpZWQgZnJvbSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVf
Y29tcGlsZS5jLgorICAgICAgICBNb3ZlZCBhIGxvdCBvZiBwcml2YXRlIHN0dWZmIHVzZWQgb25s
eSB3aXRoaW4gdGhpcyBmaWxlIGhlcmUgZnJvbSBwY3JlX2ludGVybmFsLmguCisgICAgICAgIFJl
bnVtYmVyZWQgdGhlIGVycm9yIGNvZGVzLgorICAgICAgICAoZXJyb3JfdGV4dCk6IFVzZSBhIHNp
bmdsZSBzdHJpbmcgd2l0aCBlbWJlZGRlZCBudWxscyBmb3IgdGhlIGVycm9yIHRleHQgKEkgZ290
CisgICAgICAgIHRoaXMgaWRlYSBmcm9tIG5ld2VyIHZlcnNpb25zIG9mIFBDUkUpLgorICAgICAg
ICAoY2hlY2tfZXNjYXBlKTogQ2hhbmdlZCByZXR1cm4gdHlwZSB0byBiZSBlbnVtIGluc3RlYWQg
b2YgaW50LiBSZXBsYWNlZCBjdHlwZV9kaWdpdAorICAgICAgICB1c2VzIHdpdGggaXNBU0NJSURp
Z2l0LgorICAgICAgICAoaXNfY291bnRlZF9yZXBlYXQpOiBEaXR0by4KKyAgICAgICAgKHJlYWRf
cmVwZWF0X2NvdW50cyk6IERpdHRvLgorICAgICAgICAoZmlyc3Rfc2lnbmlmaWNhbnRfY29kZSk6
IERpdHRvLgorICAgICAgICAoZmluZF9maXhlZGxlbmd0aCk6IERpdHRvLgorICAgICAgICAoY291
bGRfYmVfZW1wdHlfYnJhbmNoKTogRGl0dG8uCisgICAgICAgIChjb21waWxlX2JyYW5jaCk6IERp
dHRvLiBBbHNvIHJlbW92ZWQgc29tZSBjb2RlIHRoYXQgaGFuZGxlcyBjaGFuZ2luZyBvcHRpb25z
LgorICAgICAgICBKYXZhU2NyaXB0IGRvZXNuJ3QgaGF2ZSBhbnkgb2YgdGhlIGZlYXR1cmVzIHRo
YXQgYWxsb3cgb3B0aW9ucyB0byBjaGFuZ2UuCisgICAgICAgIChjb21waWxlX3JlZ2V4KTogVXBk
YXRlZCBmb3IgY2hhbmdlIHRvIG9wdGlvbnMgcGFyYW1ldGVyLgorICAgICAgICAoaXNfYW5jaG9y
ZWQpOiBEaXR0by4KKyAgICAgICAgKGZpbmRfZmlyc3Rhc3NlcnRlZGNoYXIpOiBEaXR0by4KKyAg
ICAgICAgKGpzUmVnRXhwQ29tcGlsZSk6IENoYW5nZWQgdG8gdGFrZSBzZXBhcmF0ZSBmbGFncyBp
bnN0ZWFkIG9mIGFuIG9wdGlvbnMgaW50LgorICAgICAgICBBbHNvIGNoYW5nZWQgdG8gY2FsbCBm
YXN0TWFsbG9jIGRpcmVjdGx5IGluc3RlYWQgb2YgcGNyZV9tYWxsb2MuCisgICAgICAgIChqc1Jl
Z0V4cEZyZWUpOiBEaXR0by4KKworICAgICAgICAqIHBjcmUvcGNyZV9leGVjLmNwcDogQ29waWVk
IGZyb20gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuYy4KKyAgICAgICAgQWRkZWQgYSBj
YXNlIHRoYXQgdXNlcyBjb21wdXRlZCBnb3RvIGZvciB0aGUgb3Bjb2RlIGxvb3AsIGJ1dCBkaWQg
bm90IHR1cm4gaXQgb24uCisgICAgICAgIENoYW5nZWQgdGhlIFJNQVRDSCBtYWNybyB0byBoYW5k
bGUgcmV0dXJucyBtb3JlIGVmZmljaWVudGx5IGJ5IHB1dHRpbmcgdGhlIHdoZXJlCisgICAgICAg
IHBvaW50ZXIgaW4gdGhlIG5ldyBmcmFtZSBpbnN0ZWFkIG9mIHRoZSBvbGQgb25lLCBhbGxvd2lu
ZyB1cyB0byBicmFuY2ggdG8gdGhlCisgICAgICAgIHJldHVybiB3aXRoIGEgc2luZ2xlIHN0YXRl
bWVudC4gU3dpdGNoZWQgdG8gbmV3L2RlbGV0ZSBmcm9tIHBjcmVfbWFsbG9jL2ZyZWUuCisgICAg
ICAgIENoYW5nZWQgbWFueSBSUkVUVVJOIGNhbGxlcnMgdG8gbm90IHNldCB0aGUgcmV0dXJuIHZh
bHVlIHNpbmNlIGl0J3MgYWxyZWFkeQorICAgICAgICBzZXQgY29ycmVjdGx5LiBSZXBsYWNlZCB0
aGUgcnJjIHZhcmlhYmxlIHdpdGggYW4gaXNfbWF0Y2ggdmFyaWFibGUuIFZhbHVlcyBvdGhlcgor
ICAgICAgICB0aGFuICJtYXRjaCIgYW5kICJubyBtYXRjaCIgYXJlIG5vdyBoYW5kbGVkIGRpZmZl
cmVudGx5LiBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUKKyAgICAgICAgdGhlIGNvZGUgdG8gY2hl
Y2sgZm9yIHRob3NlIGNhc2VzIGluIHZhcmlvdXMgcnVsZXMuCisgICAgICAgIChtYXRjaCk6IEFs
bCB0aGUgY2FzZSBzdGF0ZW1lbnRzIHVzZSBhIG1hY3JvIEJFR0lOX09QQ09ERSBpbnN0ZWFkLiBB
bmQgYWxsIHRoZQorICAgICAgICBjb250aW51ZSBzdGF0ZW1lbnRzLCBvciBicmVhayBzdGF0ZW1l
bnRzIHRoYXQgYnJlYWsgb3V0IG9mIHRoZSBvdXRlciBjYXNlIHVzZQorICAgICAgICBhIG1hY3Jv
IE5FWFRfT1BDT0RFIGluc3RlYWQuIFJlcGxhY2VkIGEgZmV3IGlmIHN0YXRlbWVudHMgd2l0aCBh
c3NlcnRpb25zLgorICAgICAgICAoanNSZWdFeHBFeGVjdXRlKTogVXNlIG5ldy9mcmVlIGluc3Rl
YWQgb2YgcGNyZV9tYWxsb2MvZnJlZS4gUmVtb3ZlZCB1bnVzZWQKKyAgICAgICAgc3RhcnRfbWF0
Y2ggZmllbGQgZnJvbSB0aGUgbWF0Y2ggYmxvY2suCisKKyAgICAgICAgKiBwY3JlL3BjcmVfaW50
ZXJuYWwuaDogTW92ZWQgdGhlIGxhc3QgZmV3IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZyb20gcGNy
ZS1jb25maWcuaAorICAgICAgICBpbiBoZXJlLiBSZW1vdmVkIHZhcmlvdXMgdW51c2VkIHR5cGVz
LiBDb252ZXJ0ZWQgZnJvbSBKU1JlZ0V4cENoYXIgdG8gVUNoYXIuCisgICAgICAgIEVsaW1pbmF0
ZWQgcGNyZV9tYWxsb2MvZnJlZS4gUmVwbGFjZWQgdGhlIG9wY29kZSBlbnVtIHdpdGggYSBtYWNy
byB0aGF0IGNhbiBiZQorICAgICAgICB1c2VkIGluIG11bHRpcGxlIHBsYWNlcy4gVW5mb3J0dW5h
dGVseSB3ZSBsb3NlIHRoZSBjb21tZW50cyBmb3IgZWFjaCBvcGNvZGU7IHdlCisgICAgICAgIHNo
b3VsZCBmaW5kIGEgcGxhY2UgdG8gcHV0IHRob3NlIGJhY2suIFJlbW92ZWQgY3R5cGVfZGlnaXQu
CisKKyAgICAgICAgKiBwY3JlL3BjcmVfbWFrZXRhYmxlcy5jcHA6IENvcGllZCBmcm9tIEphdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV9tYWtldGFibGVzLmMuCisgICAgICAgIChwY3JlX21ha2V0YWJs
ZXMpOiBHb3QgcmlkIG9mIHRoZSBjb25kaXRpb25hbCBjb2RlIHRoYXQgYWxsb3dzIHRoaXMgdG8g
YmUgY29tcGlsZWQKKyAgICAgICAgaW4gLS0gaXQncyBvbmx5IHVzZWQgZm9yIGRmdGFibGVzIG5v
dyAoYW5kIHNvb24gbWF5IGJlIG9ic29sZXRlIGVudGlyZWx5KS4KKyAgICAgICAgQ2hhbmdlZCBj
b2RlIGZvciBjYml0X2RpZ2l0IHRvIG5vdCB1c2UgaXNkaWdpdCwgYW5kIHRvb2sgdGhlICJfIiBj
YXNlIG91dCBvZiB0aGUKKyAgICAgICAgbG9vcC4gUmVtb3ZlZCBjdHlwZV9kaWdpdC4KKworICAg
ICAgICAqIHBjcmUvcGNyZV9vcmQydXRmOC5jcHA6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9vcmQydXRmOC5jLgorCisgICAgICAgICogcGNyZS9wY3JlX3RhYmxlcy5jcHA6
IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV90YWJsZXMuYy4KKyAgICAgICAg
TW92ZWQgX3BjcmVfT1BfbGVuZ3RocyBvdXQgb2YgaGVyZSBpbnRvIHBjcmVfZXhlYy5jcHAuCisK
KyAgICAgICAgKiBwY3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcDogQ29waWVkIGZyb20gSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jLgorICAgICAgICBVcGRhdGVk
IGZvciBvdGhlciBmaWxlIG5hbWUgY2hhbmdlcy4KKworICAgICAgICAqIHBjcmUvcGNyZV94Y2xh
c3MuY3BwOiBDb3BpZWQgZnJvbSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfeGNsYXNzLmMuCisK
KyAgICAgICAgKiBwY3JlL3VjcGludGVybmFsLmg6IFVwZGF0ZWQgaGVhZGVyLgorCisgICAgICAg
ICogcGNyZS91Y3B0YWJsZS5jcHA6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3BjcmUvdWNw
dGFibGUuYy4KKworICAgICAgICAqIHd0Zi9BU0NJSUNUeXBlLmg6IChXVEY6OmlzQVNDSUlEaWdp
dCk6IFJlbW92ZWQgYSBicmFuY2ggYnkgY2hhbmdpbmcgZnJvbSAmJiB0bworICAgICAgICAmIGZv
ciB0aGlzIG9wZXJhdGlvbi4gQWxzbyBhZGRlZCBhbiBvdmVybG9hZCB0aGF0IHRha2VzIGFuIGlu
dCBiZWNhdXNlIHRoYXQncworICAgICAgICB1c2VmdWwgZm9yIFBDUkUuIExhdGVyIHdlIGNvdWxk
IG9wdGltaXplIGZvciBpbnQgYW5kIG92ZXJsb2FkIG90aGVyIGZ1bmN0aW9ucyBpbgorICAgICAg
ICB0aGlzIGZpbGU7IHN0dWNrIHRvIHRoaXMgc2ltcGxlIG9uZSBmb3Igbm93LgorCisgICAgICAg
ICogd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogUmVtb3ZlZCB1bnVzZWQgaXNVcHBlci4K
KyAgICAgICAgKiB3dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5oOiBEaXR0by4KKworICAgICAg
ICAqIHBjcmUvTElDRU5DRTogUmVtb3ZlZC4KKyAgICAgICAgKiBwY3JlL3BjcmUtY29uZmlnLmg6
IFJlbW92ZWQuCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2NQQ1JFLmNwcDogUmVtb3ZlZC4KKwor
ICAgICAgICAqIHBjcmUvZGZ0YWJsZXMuYzogUmVuYW1lZCB0byBjcHAuCisgICAgICAgICogcGNy
ZS9wY3JlX2NvbXBpbGUuYzogRGl0dG8uCisgICAgICAgICogcGNyZS9wY3JlX2V4ZWMuYzogRGl0
dG8uCisgICAgICAgICogcGNyZS9wY3JlX21ha2V0YWJsZXMuYzogRGl0dG8uCisgICAgICAgICog
cGNyZS9wY3JlX29yZDJ1dGY4LmM6IERpdHRvLgorICAgICAgICAqIHBjcmUvcGNyZV90YWJsZXMu
YzogRGl0dG8uCisgICAgICAgICogcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jOiBEaXR0by4K
KyAgICAgICAgKiBwY3JlL3BjcmVfeGNsYXNzLmM6IERpdHRvLgorICAgICAgICAqIHBjcmUvdWNw
dGFibGUuYzogRGl0dG8uCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGY6IEFkZGVk
LgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9QbGF0Zm9ybS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvdW5pY29kZTogQWRkZWQuCisgICAgICAgICog
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL3VuaWNvZGUvVW5pY29kZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBGb3J3YXJkaW5nSGVhZGVycy93dGYvdW5pY29kZS9pY3U6IEFkZGVkLgorICAgICAgICAqIEZv
cndhcmRpbmdIZWFkZXJzL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1Lmg6IEFkZGVkLgorCiAy
MDA3LTExLTA5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5k
b3dzIGJ1aWxkIGZpeApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24g
Mjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMSw2ICsxMDEsOSBAQCBfX05QTl9SZXRhaW5PYmplY3QKIF9fTlBOX1NldEV4Y2Vw
dGlvbgogX19OUE5fU2V0UHJvcGVydHkKIF9fTlBOX1VURjhGcm9tSWRlbnRpZmllcgorX19aMTJq
c1JlZ0V4cEZyZWVQOEpTUmVnRXhwCitfX1oxNWpzUmVnRXhwQ29tcGlsZVBLdGkyNEpTUmVnRXhw
SWdub3JlQ2FzZU9wdGlvbjIzSlNSZWdFeHBNdWx0aWxpbmVPcHRpb25QalBQS2MKK19fWjE1anNS
ZWdFeHBFeGVjdXRlUEs4SlNSZWdFeHBQS3RpaVBpaQogX19aMjNfTlBOX0NyZWF0ZVNjcmlwdE9i
amVjdFA0X05QUFBOM0tKUzhKU09iamVjdEVOM1dURjEwUGFzc1JlZlB0cklOUzFfOEJpbmRpbmdz
MTBSb290T2JqZWN0RUVFUzhfCiBfX1oyNV9OUE5fQ3JlYXRlTm9TY3JpcHRPYmplY3R2CiBfX1pO
M0tKUzEwSWRlbnRpZmllcjExYWRkU2xvd0Nhc2VFUE5TXzdVU3RyaW5nM1JlcEUKQEAgLTI4NSw5
ICsyODgsNiBAQCBfX1pUVk4zS0pTMTRTdHJpbmdJbnN0YW5jZUUKIF9fWlRWTjNLSlMxNUpTV3Jh
cHBlck9iamVjdEUKIF9fWlRWTjNLSlMxOUludGVybmFsRnVuY3Rpb25JbXBFCiBfX1pUVk4zS0pT
OEpTT2JqZWN0RQotX2pzUmVnRXhwQ29tcGlsZQotX2pzUmVnRXhwRXhlY3V0ZQotX2pzUmVnRXhw
RnJlZQogX2pzY29yZV9jb2xsZWN0b3JfaW50cm9zcGVjdGlvbgogX2pzY29yZV9mYXN0bWFsbG9j
X2ludHJvc3BlY3Rpb24KIF9rSlNDbGFzc0RlZmluaXRpb25FbXB0eQpJbmRleDogSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnByaQkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgd3RmL0Fzc2VydGlvbnMuY3BwIFwKICAgICB3dGYvSGFzaFRhYmxlLmNwcCBcCiAg
ICAgd3RmL0Zhc3RNYWxsb2MuY3BwIFwKLSAgICB3dGYvRmFzdE1hbGxvY1BDUkUuY3BwIFwKICAg
ICBiaW5kaW5ncy9OUF9qc29iamVjdC5jcHAgXAogICAgIGJpbmRpbmdzL25wcnVudGltZS5jcHAg
XAogICAgIGJpbmRpbmdzL3J1bnRpbWVfYXJyYXkuY3BwIFwKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBAIFNvdXJjZSBmaWxlcyBmb3IgSlNDb3JlLgogLS0+CiA8bWFrZWZpbGU+CiAgICAgPHNl
dCBhcHBlbmQ9IjEiIHZhcj0iSlNDT1JFX1NPVVJDRVNfQVBJIj4KLSAgICAgICAgCiAgICAgICAg
IEFQSS9KU0Jhc2UuY3BwCiAgICAgICAgIEFQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCiAg
ICAgICAgIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCkBAIC00MCwxMSArMzksOSBAQCBTb3Vy
Y2UgZmlsZXMgZm9yIEpTQ29yZS4KICAgICAgICAgQVBJL0pTT2JqZWN0UmVmLmNwcAogICAgICAg
ICBBUEkvSlNTdHJpbmdSZWYuY3BwCiAgICAgICAgIEFQSS9KU1ZhbHVlUmVmLmNwcAotCiAgICAg
PC9zZXQ+CiAKICAgICA8c2V0IGFwcGVuZD0iMSIgdmFyPSJKU0NPUkVfU09VUkNFU19CSU5ESU5H
UyI+Ci0gICAgICAgIAogICAgICAgICBiaW5kaW5ncy9jL2NfY2xhc3MuY3BwCiAgICAgICAgIGJp
bmRpbmdzL2MvY19pbnN0YW5jZS5jcHAKICAgICAgICAgYmluZGluZ3MvYy9jX3J1bnRpbWUuY3Bw
CkBAIC01Niw3ICs1Myw2IEBAIFNvdXJjZSBmaWxlcyBmb3IgSlNDb3JlLgogICAgICAgICBiaW5k
aW5ncy9ydW50aW1lX21ldGhvZC5jcHAKICAgICAgICAgYmluZGluZ3MvcnVudGltZV9vYmplY3Qu
Y3BwCiAgICAgICAgIGJpbmRpbmdzL3J1bnRpbWVfcm9vdC5jcHAKLQogICAgIDwvc2V0PgogICAg
IAogICAgIDxzZXQgYXBwZW5kPSIxIiB2YXI9IkpTQ09SRV9TT1VSQ0VTX0tKUyI+CkBAIC0xMDQs
MTggKzEwMCwxNyBAQCBTb3VyY2UgZmlsZXMgZm9yIEpTQ29yZS4KIAogICAgIDwvc2V0PgogICAg
IDxzZXQgYXBwZW5kPSIxIiB2YXI9IkpTQ09SRV9TT1VSQ0VTX1BDUkUiPgotICAgICAgICBwY3Jl
L3BjcmVfY29tcGlsZS5jCi0gICAgICAgIHBjcmUvcGNyZV9leGVjLmMKLSAgICAgICAgcGNyZS9w
Y3JlX29yZDJ1dGY4LmMKLSAgICAgICAgcGNyZS9wY3JlX3RhYmxlcy5jCi0gICAgICAgIHBjcmUv
cGNyZV91Y3Bfc2VhcmNoZnVuY3MuYwotICAgICAgICBwY3JlL3BjcmVfeGNsYXNzLmMKKyAgICAg
ICAgcGNyZS9wY3JlX2NvbXBpbGUuY3BwCisgICAgICAgIHBjcmUvcGNyZV9leGVjLmNwcAorICAg
ICAgICBwY3JlL3BjcmVfb3JkMnV0ZjguY3BwCisgICAgICAgIHBjcmUvcGNyZV90YWJsZXMuY3Bw
CisgICAgICAgIHBjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCisgICAgICAgIHBjcmUvcGNy
ZV94Y2xhc3MuY3BwCiAgICAgPC9zZXQ+CiAgICAgCiAgICAgPHNldCBhcHBlbmQ9IjEiIHZhcj0i
V1RGX1NPVVJDRVMiPgogICAgICAgICB3dGYvQXNzZXJ0aW9ucy5jcHAKICAgICAgICAgd3RmL0Zh
c3RNYWxsb2MuY3BwCi0gICAgICAgIHd0Zi9GYXN0TWFsbG9jUENSRS5jcHAKICAgICAgICAgd3Rm
L0hhc2hUYWJsZS5jcHAKICAgICAgICAgd3RmL1RDU3lzdGVtQWxsb2MuY3BwCiAgICAgPC9zZXQ+
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qc2NvcmUuYmtsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2pzY29yZS5ia2wJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvanNj
b3JlLmJrbAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIEphdmFTY3JpcHRDb3Jl
IEJha2VmaWxlIHByb2plY3QgZmlsZS4KICAgICA8ZXhlIGlkPSJkZnRhYmxlcyI+CiAgICAgICAg
IDxkaXJuYW1lPiQoU1JDRElSKTwvZGlybmFtZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIp
L3d0ZjwvaW5jbHVkZT4KLSAgICAgICAgPHNvdXJjZXM+JChTUkNESVIpL3BjcmUvZGZ0YWJsZXMu
Yzwvc291cmNlcz4KKyAgICAgICAgPHNvdXJjZXM+JChTUkNESVIpL3BjcmUvZGZ0YWJsZXMuY3Bw
PC9zb3VyY2VzPgogICAgIDwvZXhlPgogCiAgICAgPGFjdGlvbiBpZD0iRGVyaXZlZFNvdXJjZXMi
PgpJbmRleDogSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1BsYXRmb3JtLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1BsYXRm
b3JtLmgJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1BsYXRmb3JtLmg+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBKYXZhU2NyaXB0Q29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpl
b2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvdW5pY29kZS9Vbmljb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL3VuaWNvZGUvVW5pY29kZS5oCShyZXZpc2lvbiAwKQorKysg
SmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3VuaWNvZGUvVW5pY29kZS5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVW5pY29k
ZS5oPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL3VuaWNvZGUvVW5pY29kZS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQog
ICArIG5hdGl2ZQoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91
bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAkocmV2aXNpb24gMCkK
KysrIEphdmFTY3JpcHRDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91bmljb2RlL2ljdS9Vbmlj
b2RlSWN1LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Vbmljb2RlSWN1Lmg+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBKYXZhU2NyaXB0Q29yZS9G
b3J3YXJkaW5nSGVhZGVycy93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NjcsMjMgKzU2NywxNSBAQAogCQkJTmFt
ZT0iUENSRSINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZc
RmFzdE1hbGxvY1BDUkUuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlLWNvbmZpZy5oIg0KLQkJCQk+DQotCQkJPC9G
aWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlLmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxw
Y3JlXHBjcmVfY29tcGlsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV9j
b21waWxlLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV9leGVjLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
cGNyZVxwY3JlX2V4ZWMuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQpAQCAt
NTkxLDE5ICs1ODMsMTkgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlX29yZDJ1dGY4LmMiDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cLi5ccGNyZVxwY3JlX29yZDJ1dGY4LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV90YWJsZXMuYyINCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVfdGFibGVzLmNwcCINCiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV91
Y3Bfc2VhcmNoZnVuY3MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVfdWNw
X3NlYXJjaGZ1bmNzLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV94Y2xhc3MuYyINCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxwY3JlXHBjcmVfeGNsYXNzLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9kZnRhYmxl
cy9kZnRhYmxlcy52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL2RmdGFibGVzL2RmdGFibGVzLnZjcHJvagkocmV2aXNpb24gMjc2NDgpCisr
KyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovZGZ0YWJsZXMvZGZ0YWJsZXMu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBACiAJPC9SZWZlcmVuY2VzPg0K
IAk8RmlsZXM+DQogCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxkZnRhYmxl
cy5jIg0KKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxkZnRhYmxlcy5jcHAiDQogCQkJPg0K
IAkJPC9GaWxlPg0KIAk8L0ZpbGVzPg0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc2
NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsMTMgKzEyMSwxMiBAQAogCQk2NUZCM0Y1MTA5
RDExQjI0MDBGNDlERUIgLyogZ3JhbW1hci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjVGQjNGNDkwOUQxMUIyNDAwRjQ5REVCIC8qIGdyYW1tYXIuaCAq
LzsgfTsKIAkJNjVGQjNGNTQwOUQxMUIyNDAwRjQ5REVCIC8qIHJlZ2V4cF9vYmplY3QubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUZCM0Y0QzA5
RDExQjI0MDBGNDlERUIgLyogcmVnZXhwX29iamVjdC5sdXQuaCAqLzsgfTsKIAkJNjVGREU0OUMw
QkREMUQ0QTAwRTgwMTExIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMjE3QjgwOEU3RUVDQzAwMjNFNUY2IC8qIEFzc2Vy
dGlvbnMuY3BwICovOyB9OwotCQk5MzAyMDQzQjBCNzkwNzUwMDAwQzYxMTUgLyogRmFzdE1hbGxv
Y1BDUkUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMwMjA0M0EwQjc5MDc1MDAwMEM2MTE1IC8qIEZhc3RNYWxsb2NQQ1JFLmNwcCAqLzsgfTsKIAkJ
OTMwM0Y1NjgwOTkxMThGQTAwQUQ3MUI4IC8qIE93blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwM0Y1NjcwOTkxMThGQTAwQUQ3MUI4IC8qIE93
blB0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzMDNGNTZBMDk5MTE5MDAwMEFENzFCOCAvKiBOb25jb3B5YWJsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwM0Y1NjkwOTkxMTkwMDAwQUQ3MUI4
IC8qIE5vbmNvcHlhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwM0Y1QTUwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAzRjVBNDA5OTEx
QTU4MDBBRDcxQjggLyogT3duQXJyYXlQdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzA3NTRDMTA4QjBGNjgwMDBBQjMwNTYgLyogcGNyZV9j
b21waWxlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA3NTRCRjA4QjBGNjgwMDBBQjMwNTYgLyogcGNyZV9jb21waWxlLmMgKi87IH07Ci0JCTkzMDc1
NEQwMDhCMEY3NDYwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzU0Q0UwOEIwRjc0NTAwQUIzMDU2IC8qIHBj
cmVfdGFibGVzLmMgKi87IH07Ci0JCTkzMDc1NEVCMDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4
ZWMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDc1
NEU5MDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuYyAqLzsgfTsKKwkJOTMwNzU0QzEwOEIw
RjY4MDAwQUIzMDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3NTRCRjA4QjBGNjgwMDBBQjMwNTYgLyogcGNyZV9j
b21waWxlLmNwcCAqLzsgfTsKKwkJOTMwNzU0RDAwOEIwRjc0NjAwQUIzMDU2IC8qIHBjcmVfdGFi
bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MDc1NENFMDhCMEY3NDUwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jcHAgKi87IH07CisJCTkzMDc1
NEVCMDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzU0RTkwOEIwRjc4NTAwQUIzMDU2IC8qIHBj
cmVfZXhlYy5jcHAgKi87IH07CiAJCTkzMkY1QjQwMDgyMkExQzcwMDczNjk3NSAvKiBhcnJheV9v
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2
OTJBODRFMDI1NTU5N0QwMUZGNjBGNyAvKiBhcnJheV9vYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzJGNUI0MjA4MjJBMUM3MDA3MzY5
NzUgLyogY29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNjkyQTg1MzAyNTU1OTdEMDFGRjYwRjcgLyogY29sbGVjdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMyRjVCNDMwODIyQTFD
NzAwNzM2OTc1IC8qIGRhdGVfb2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg1NjAyNTU1OTdEMDFGRjYwRjcgLyogZGF0ZV9vYmplY3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYw
LDcgKzE1OSw2IEBACiAJCTkzMkY1QjZBMDgyMkExQzcwMDczNjk3NSAvKiBsaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFDNkNFRjAzOEVFOERF
MDA4NjM1Q0UgLyogbGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzMkY1QjZCMDgyMkExQzcwMDczNjk3NSAvKiBkdG9hLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTFGNjQxMzAzOUQ1QjVGMDA3
ODM5NUMgLyogZHRvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzMkY1QjZDMDgyMkExQzcwMDczNjk3NSAvKiBwY3JlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQxNzIwRjAzOUUwOEI5MDA1OEJG
RUIgLyogcGNyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTkzMkY1QjZEMDgyMkExQzcwMDczNjk3NSAvKiBwY3JlLWNvbmZpZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0MTcyMTcwMzlFMEIyODAw
NThCRkVCIC8qIHBjcmUtY29uZmlnLmggKi87IH07CiAJCTkzMkY1QjZGMDgyMkExQzcwMDczNjk3
NSAvKiBqbmlfdXRpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE4NTZEOTAwNTYyRUU5NTAwOEI5RDgzIC8qIGpuaV91dGlsaXR5LmggKi87IH07
CiAJCTkzMkY1QjcwMDgyMkExQzcwMDczNjk3NSAvKiBydW50aW1lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFCMDg3MDA1NjQ2ODczMDA4MEU0ODYg
LyogcnVudGltZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzMkY1QjcxMDgyMkExQzcwMDczNjk3NSAvKiBqbmlfcnVudGltZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExQjA4NzYwNTY0NjhCQjAw
ODBFNDg2IC8qIGpuaV9ydW50aW1lLmggKi87IH07CkBAIC0yMTgsMTQgKzIxNiwxNCBAQAogCQk5
MzJGQzExRDA4MjRBNkEzMDA1QjNDNzUgLyogY3JlYXRlX2hhc2hfdGFibGUgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg1NDAyNTU1OTdEMDFGRjYw
RjcgLyogY3JlYXRlX2hhc2hfdGFibGUgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM1QUY0NkMwOUU5RDlEQjAwQUNEMUQ4IC8qIEZvcndhcmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUFGNDY5MDlF
OUQ5REIwMEFDRDFEOCAvKiBGb3J3YXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1QUY0NkUwOUU5RDlEQjAwQUNEMUQ4IC8qIFVudXNlZFBh
cmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVB
RjQ2QjA5RTlEOURCMDBBQ0QxRDggLyogVW51c2VkUGFyYW0uaCAqLzsgfTsKLQkJOTM1RjY5RkUw
ODI0NTA1NzAwM0QxQTQ1IC8qIGRmdGFibGVzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQxNzIwRTAzOUUwOEI5MDA1OEJGRUIgLyogZGZ0YWJsZXMu
YyAqLzsgfTsKLQkJOTM3MDEzNDgwQ0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1
bmNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzcw
MTM0NzBDQTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bfc2VhcmNoZnVuY3MuYyAqLzsgc2V0dGlu
Z3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLVduby1zaWduLWNvbXBhcmUiOyB9OyB9OworCQk5MzVG
NjlGRTA4MjQ1MDU3MDAzRDFBNDUgLyogZGZ0YWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0MTcyMEUwMzlFMDhCOTAwNThCRkVCIC8qIGRm
dGFibGVzLmNwcCAqLzsgfTsKKwkJOTM3MDEzNDgwQ0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNw
X3NlYXJjaGZ1bmNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNzAxMzQ3MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5j
cHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8tc2lnbi1jb21wYXJlIjsg
fTsgfTsKIAkJOTM4QzRGNkEwQ0EwNkJDNzAwRDkzMTBBIC8qIEFTQ0lJQ1R5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEM0RjY5MENBMDZCQzcw
MEQ5MzEwQSAvKiBBU0NJSUNUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM4QzRGNkMwQ0EwNkJDRTAwRDkzMTBBIC8qIERpc2FsbG93Q1R5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEM0
RjZCMENBMDZCQ0UwMEQ5MzEwQSAvKiBEaXNhbGxvd0NUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBQTRGNzgwOTU3MjUxRjAwODRCM0E3
IC8qIEFsd2F5c0lubGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBQTRGNzcwOTU3MjUxRjAwODRCM0E3IC8qIEFsd2F5c0lubGluZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQjZBMERGMEFB
NjREQTQwMDc2REUyNyAvKiBHZXRQdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQjZBMERFMEFBNjREQTQwMDc2REUyNyAvKiBHZXRQdHIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0UyNkJDQTA4
QjE1MTE5MDBGODUyMjYgLyogcGNyZV9vcmQydXRmOC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjZCQzkwOEIxNTExOTAwRjg1MjI2IC8qIHBjcmVf
b3JkMnV0ZjguYyAqLzsgfTsKLQkJOTNFMjZCRDQwOEIxNTE0MTAwRjg1MjI2IC8qIHBjcmVfeGNs
YXNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Uy
NkJEMzA4QjE1MTQxMDBGODUyMjYgLyogcGNyZV94Y2xhc3MuYyAqLzsgfTsKKwkJOTNFMjZCQ0Ew
OEIxNTExOTAwRjg1MjI2IC8qIHBjcmVfb3JkMnV0ZjguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjZCQzkwOEIxNTExOTAwRjg1MjI2IC8qIHBj
cmVfb3JkMnV0ZjguY3BwICovOyB9OworCQk5M0UyNkJENDA4QjE1MTQxMDBGODUyMjYgLyogcGNy
ZV94Y2xhc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNFMjZCRDMwOEIxNTE0MTAwRjg1MjI2IC8qIHBjcmVfeGNsYXNzLmNwcCAqLzsgfTsKIAkJ
OTNFMjZCRTYwOEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2QkU1MDhCMTUxNzEwMEY4NTIy
NiAvKiBwY3JlX2ludGVybmFsLmggKi87IH07CiAJCTkzRTI2QkZFMDhCMTUxRDQwMEY4NTIyNiAv
KiB1Y3BpbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNFMjZCRkMwOEIxNTFENDAwRjg1MjI2IC8qIHVjcGludGVybmFsLmggKi87IH07CiAJ
CTkzRjBCM0FDMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQ
YXJzZXIuaCAqLzsgfTsKQEAgLTQ5Miw5ICs0OTAsOCBAQAogCQk2NTIyNDZBNDBDOEQ3QTBFMDA3
QkRBRjcgLyogSGFzaEl0ZXJhdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIYXNoSXRlcmF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDAwQzBG
MEE2OUJBRjIwMDUwOTg4NyAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlOYW1lQXJyYXkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTQwMEMxMDBBNjlCQUYyMDA1MDk4ODcgLyogUHJvcGVydHlO
YW1lQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3BlcnR5TmFt
ZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NDE3MjBFMDM5RTA4Qjkw
MDU4QkZFQiAvKiBkZnRhYmxlcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmM7IG5hbWUgPSBkZnRhYmxlcy5jOyBwYXRoID0gcGNyZS9kZnRhYmxlcy5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTY1NDE3MjBFMDM5RTA4Qjkw
MDU4QkZFQiAvKiBkZnRhYmxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBkZnRhYmxlcy5jcHA7IHBhdGggPSBwY3JlL2RmdGFibGVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxNzIw
RjAzOUUwOEI5MDA1OEJGRUIgLyogcGNyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBwY3JlLmg7IHBhdGggPSBwY3JlL3BjcmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk2NTQxNzIxNzAzOUUwQjI4MDA1
OEJGRUIgLyogcGNyZS1jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gInBjcmUtY29uZmlnLmgiOyBwYXRoID0gInBjcmUvcGNyZS1jb25m
aWcuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjU0MUJE
NkUwOEU4MEExNzAwMkNCRUU3IC8qIFRDUGFnZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUQ1BhZ2VNYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxQkQ2RjA4RTgwQTE3MDAyQ0JFRTcgLyog
VENTcGluTG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUQ1NwaW5Mb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJNjU0MUJENzAwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxsb2MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVENT
eXN0ZW1BbGxvYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsK
QEAgLTU0NywxMyArNTQ0LDEyIEBACiAJCTcwQjE2QTI2MDU2OUExMDkwMERCNzU2RCAvKiBydW50
aW1lX29iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBydW50aW1lX29iamVjdC5jcHA7IHBhdGggPSBiaW5kaW5ncy9ydW50aW1l
X29iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJ
NzBCMTZBMjcwNTY5QTEwOTAwREI3NTZEIC8qIHJ1bnRpbWVfb2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHJ1bnRpbWVfb2JqZWN0Lmg7
IHBhdGggPSBiaW5kaW5ncy9ydW50aW1lX29iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CiAJCTg0QUJGMURFMDcwQjYyOEMwMEEzQUMwNSAvKiBucHJ1bnRp
bWVfaW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IG5wcnVudGltZV9pbXBsLmg7IHBhdGggPSBiaW5kaW5ncy9ucHJ1bnRpbWVfaW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTkzMDIwNDNBMEI3OTA3
NTAwMDBDNjExNSAvKiBGYXN0TWFsbG9jUENSRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGYXN0TWFsbG9jUENSRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMDNGNTY3MDk5MTE4RkEwMEFENzFCOCAvKiBPd25QdHIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMDNGNTY5MDk5MTE5MDAwMEFENzFCOCAvKiBOb25jb3B5YWJsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOb25jb3B5YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAzRjVBNDA5OTExQTU4MDBBRDcxQjggLyogT3duQXJyYXlQdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3duQXJyYXlQdHIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTMwNzU0QkYwOEIwRjY4MDAwQUIzMDU2IC8qIHBjcmVfY29tcGls
ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBw
Y3JlX2NvbXBpbGUuYzsgcGF0aCA9IHBjcmUvcGNyZV9jb21waWxlLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTMwNzU0Q0UwOEIwRjc0NTAwQUIzMDU2IC8q
IHBjcmVfdGFibGVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBjcmVfdGFibGVzLmM7IHBhdGggPSBwY3JlL3BjcmVfdGFibGVzLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTMwNzU0RTkwOEIwRjc4NTAw
QUIzMDU2IC8qIHBjcmVfZXhlYy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmM7IG5hbWUgPSBwY3JlX2V4ZWMuYzsgcGF0aCA9IHBjcmUvcGNyZV9leGVjLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJOTMwNzU0QkYwOEIwRjY4
MDAwQUIzMDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBwY3JlX2NvbXBpbGUuY3BwOyBwYXRoID0gcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IH07CisJCTkzMDc1NENFMDhCMEY3NDUwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBwY3JlX3Rh
Ymxlcy5jcHA7IHBhdGggPSBwY3JlL3BjcmVfdGFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk5MzA3NTRFOTA4QjBGNzg1MDBBQjMwNTYgLyogcGNy
ZV9leGVjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IHBjcmVfZXhlYy5jcHA7IHBhdGggPSBwY3JlL3BjcmVfZXhlYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTMxQzZDRUYwMzhFRThERTAw
ODYzNUNFIC8qIGxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBsaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKIAkJOTMxQzZDRjAwMzhFRThERTAwODYzNUNFIC8qIGxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBsaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5MzIyQTAwMzA2QzM0MUQzMDA5
MDY3QkIgLyogbGliaWN1Y29yZS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliaWN1
Y29yZS5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xpYmljdWNvcmUuZHlsaWI7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CkBAIC01NjcsNyArNTYzLDcgQEAKIAkJOTM1QUY0NkIwOUU5RDlE
QjAwQUNEMUQ4IC8qIFVudXNlZFBhcmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVudXNlZFBhcmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUY2OUY2
MDgyNDRGRUEwMDNEMUE0NSAvKiBkZnRhYmxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gZGZ0YWJsZXM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTkzNjRCMjczMDQ1QjdENkMwMEE5Q0FDMSAvKiBmcGNvbnN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZnBjb25z
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTM3MDEz
NDcwQ0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmM7IHBhdGggPSBwY3Jl
L3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NzAxMzQ3MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHA7
IHBhdGggPSBwY3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM3NEQzQTcwMzhEOUQ3NDAwODYzNUNFIC8qIHNjb3BlX2NoYWluLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc2NvcGVfY2hh
aW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5Mzc0RDNB
ODAzOEQ5RDc0MDA4NjM1Q0UgLyogc2NvcGVfY2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBzY29wZV9jaGFpbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTM3QjYzQ0MwOUU3NjZEMjAw
QTY3MUREIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUubWFrZTsgZmlsZUVuY29kaW5nID0gNDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNU
YWJzID0gMTsgfTsKQEAgLTU3Nyw4ICs1NzMsOCBAQAogCQk5M0FBNEY3NzA5NTcyNTFGMDA4NEIz
QTcgLyogQWx3YXlzSW5saW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWx3YXlzSW5saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJOTNBREZDRTYwQ0NCRDdBQzAwRDMwQjA4IC8qIGFycmF5X2luc3Rh
bmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGFycmF5X2luc3Rh
bmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCNkEwREUwQUE2NERBNDAw
NzZERTI3IC8qIEdldFB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0
UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRTI2QkM5MDhCMTUxMTkwMEY4
NTIyNiAvKiBwY3JlX29yZDJ1dGY4LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBjcmVfb3JkMnV0ZjguYzsgcGF0aCA9IHBjcmUvcGNyZV9vcmQy
dXRmOC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTkzRTI2
QkQzMDhCMTUxNDEwMEY4NTIyNiAvKiBwY3JlX3hjbGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwY3JlX3hjbGFzcy5jOyBwYXRoID0gcGNy
ZS9wY3JlX3hjbGFzcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CisJCTkzRTI2QkM5MDhCMTUxMTkwMEY4NTIyNiAvKiBwY3JlX29yZDJ1dGY4LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IHBjcmVfb3Jk
MnV0ZjguY3BwOyBwYXRoID0gcGNyZS9wY3JlX29yZDJ1dGY4LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk5M0UyNkJEMzA4QjE1MTQxMDBGODUyMjYgLyog
cGNyZV94Y2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gcGNyZV94Y2xhc3MuY3BwOyBwYXRoID0gcGNyZS9wY3JlX3hjbGFzcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTNFMjZCRTUw
OEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGNyZV9pbnRlcm5hbC5oOyBwYXRoID0gcGNy
ZS9wY3JlX2ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKIAkJOTNFMjZCRkMwOEIxNTFENDAwRjg1MjI2IC8qIHVjcGludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHVjcGludGVybmFsLmg7
IHBhdGggPSBwY3JlL3VjcGludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgfTsKIAkJOTNGMEIzQTkwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJzZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTA4LDcgKzkwNCw2IEBACiAJCQkJOTM4QzRGNkIwQ0EwNkJD
RTAwRDkzMTBBIC8qIERpc2FsbG93Q1R5cGUuaCAqLywKIAkJCQk2NUUyMTdCOTA4RTdFRUNDMDAy
M0U1RjYgLyogRmFzdE1hbGxvYy5jcHAgKi8sCiAJCQkJNjVFMjE3QkEwOEU3RUVDQzAwMjNFNUY2
IC8qIEZhc3RNYWxsb2MuaCAqLywKLQkJCQk5MzAyMDQzQTBCNzkwNzUwMDAwQzYxMTUgLyogRmFz
dE1hbGxvY1BDUkUuY3BwICovLAogCQkJCTkzNUFGNDY5MDlFOUQ5REIwMEFDRDFEOCAvKiBGb3J3
YXJkLmggKi8sCiAJCQkJOTNCNkEwREUwQUE2NERBNDAwNzZERTI3IC8qIEdldFB0ci5oICovLAog
CQkJCTY1N0VFQkJGMDk0RTQ0NUUwMDhDOUM3QiAvKiBIYXNoQ291bnRlZFNldC5oICovLApAQCAt
MTA1MSwxNiArMTA0NiwxNSBAQAogCQk2NTQxNzIwMzAzOUUwMUY5MDA1OEJGRUIgLyogcGNyZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNjU0MTcyMEUw
MzlFMDhCOTAwNThCRkVCIC8qIGRmdGFibGVzLmMgKi8sCi0JCQkJNjU0MTcyMTcwMzlFMEIyODAw
NThCRkVCIC8qIHBjcmUtY29uZmlnLmggKi8sCisJCQkJNjU0MTcyMEUwMzlFMDhCOTAwNThCRkVC
IC8qIGRmdGFibGVzLmNwcCAqLywKIAkJCQk2NTQxNzIwRjAzOUUwOEI5MDA1OEJGRUIgLyogcGNy
ZS5oICovLAotCQkJCTkzMDc1NEJGMDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2NvbXBpbGUuYyAq
LywKLQkJCQk5MzA3NTRFOTA4QjBGNzg1MDBBQjMwNTYgLyogcGNyZV9leGVjLmMgKi8sCisJCQkJ
OTMwNzU0QkYwOEIwRjY4MDAwQUIzMDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgKi8sCisJCQkJOTMw
NzU0RTkwOEIwRjc4NTAwQUIzMDU2IC8qIHBjcmVfZXhlYy5jcHAgKi8sCiAJCQkJOTNFMjZCRTUw
OEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCAqLywKLQkJCQk5M0UyNkJDOTA4QjE1
MTE5MDBGODUyMjYgLyogcGNyZV9vcmQydXRmOC5jICovLAotCQkJCTkzMDc1NENFMDhCMEY3NDUw
MEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jICovLAotCQkJCTkzNzAxMzQ3MENBOTdFMEUwMEZBMTRE
MyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jICovLAotCQkJCTkzRTI2QkQzMDhCMTUxNDEwMEY4
NTIyNiAvKiBwY3JlX3hjbGFzcy5jICovLAorCQkJCTkzRTI2QkM5MDhCMTUxMTkwMEY4NTIyNiAv
KiBwY3JlX29yZDJ1dGY4LmNwcCAqLywKKwkJCQk5MzA3NTRDRTA4QjBGNzQ1MDBBQjMwNTYgLyog
cGNyZV90YWJsZXMuY3BwICovLAorCQkJCTkzNzAxMzQ3MENBOTdFMEUwMEZBMTREMyAvKiBwY3Jl
X3VjcF9zZWFyY2hmdW5jcy5jcHAgKi8sCisJCQkJOTNFMjZCRDMwOEIxNTE0MTAwRjg1MjI2IC8q
IHBjcmVfeGNsYXNzLmNwcCAqLywKIAkJCQk5M0UyNkJGQzA4QjE1MUQ0MDBGODUyMjYgLyogdWNw
aW50ZXJuYWwuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gcGNyZTsKQEAgLTEyMzksNyArMTIzMyw2
IEBACiAJCQkJOTMyRjVCNTQwODIyQTFDNzAwNzM2OTc1IC8qIG9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMyRjVCNTMwODIyQTFDNzAwNzM2OTc1IC8qIG9iamVjdF9vYmplY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMkY1QjU1MDgyMkExQzcwMDczNjk3NSAvKiBvcGVyYXRpb25zLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk5MzJGNUI2RDA4MjJBMUM3MDA3MzY5NzUgLyogcGNyZS1jb25m
aWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMkY1QjZDMDgyMkExQzcwMDczNjk3NSAvKiBwY3Jl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0UyNkJFNjA4QjE1MTcxMDBGODUyMjYgLyogcGNyZV9p
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyRjVCNTYwODIyQTFDNzAwNzM2OTc1IC8q
IHByb3BlcnR5X21hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTA5LDcgKzE1MDIsNiBAQAogCQkJ
ZmlsZXMgPSAoCiAJCQkJNjU5MTI2QkQwQkREMTcyODAwMTkyMUZCIC8qIEFsbEluT25lRmlsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUZERTQ5QzBCREQxRDRBMDBFODAxMTEgLyogQXNzZXJ0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MzAyMDQzQjBCNzkwNzUwMDAwQzYxMTUgLyog
RmFzdE1hbGxvY1BDUkUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERkM5MzMwOEVBMTczQTAw
RjczMDBCIC8qIEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3
RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBGOEFGMEE1
MDhEMjAwMDA1RjA2MSAvKiBKU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTM4LDEyICsxNTMwLDEyIEBACiAJCQkJOTMyRjVCQzIwODIyQTFDNzAwNzM2OTc1IC8q
IG9iamNfaW5zdGFuY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzJGNUJDMTA4MjJBMUM3MDA3
MzY5NzUgLyogb2JqY19ydW50aW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMyRjVCQzMwODIy
QTFDNzAwNzM2OTc1IC8qIG9iamNfdXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzMDc1
NEMxMDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2NvbXBpbGUuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTkzMDc1NEVCMDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuYyBpbiBTb3VyY2VzICovLAot
CQkJCTkzRTI2QkNBMDhCMTUxMTkwMEY4NTIyNiAvKiBwY3JlX29yZDJ1dGY4LmMgaW4gU291cmNl
cyAqLywKLQkJCQk5MzA3NTREMDA4QjBGNzQ2MDBBQjMwNTYgLyogcGNyZV90YWJsZXMuYyBpbiBT
b3VyY2VzICovLAotCQkJCTkzNzAxMzQ4MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFy
Y2hmdW5jcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNFMjZCRDQwOEIxNTE0MTAwRjg1MjI2IC8q
IHBjcmVfeGNsYXNzLmMgaW4gU291cmNlcyAqLywKKwkJCQk5MzA3NTRDMTA4QjBGNjgwMDBBQjMw
NTYgLyogcGNyZV9jb21waWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzMDc1NEVCMDhCMEY3
ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNFMjZCQ0Ew
OEIxNTExOTAwRjg1MjI2IC8qIHBjcmVfb3JkMnV0ZjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTMwNzU0RDAwOEIwRjc0NjAwQUIzMDU2IC8qIHBjcmVfdGFibGVzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzNzAxMzQ4MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0UyNkJENDA4QjE1MTQxMDBGODUyMjYgLyogcGNyZV94
Y2xhc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMyRjVCQjkwODIyQTFDNzAwNzM2OTc1IC8q
IHJ1bnRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMyRjVCQkUwODIyQTFDNzAwNzM2OTc1
IC8qIHJ1bnRpbWVfYXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMyRjVCQkQwODIyQTFD
NzAwNzM2OTc1IC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU2NCw3
ICsxNTU2LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTkzNUY2OUZFMDgyNDUwNTcw
MDNEMUE0NSAvKiBkZnRhYmxlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJOTM1RjY5RkUwODI0NTA1
NzAwM0QxQTQ1IC8qIGRmdGFibGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTc0Niw2ICsxNzM4
LDcgQEAKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUM5MDUxNDQwQkE5RThBNzAw
ODFFOUQwIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7
CiAJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJSEVBREVSX1NFQVJDSF9QQVRI
UyA9IEZvcndhcmRpbmdIZWFkZXJzOwogCQkJCVNUUklQX0lOU1RBTExFRF9QUk9EVUNUID0gTk87
CiAJCQl9OwogCQkJbmFtZSA9IERlYnVnOwpAQCAtMTc1NCw2ICsxNzQ3LDcgQEAKIAkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSAx
QzkwNTE0NDBCQTlFOEE3MDA4MUU5RDAgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwogCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlIRUFERVJfU0VBUkNIX1BBVEhTID0gRm9yd2FyZGluZ0hl
YWRlcnM7CiAJCQkJU1RSSVBfSU5TVEFMTEVEX1BST0RVQ1QgPSBOTzsKIAkJCX07CiAJCQluYW1l
ID0gUmVsZWFzZTsKQEAgLTE3NjIsNiArMTc1Niw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUM5MDUxNDUwQkE5RThB
NzAwODFFOUQwIC8qIEJhc2UueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJ
CUhFQURFUl9TRUFSQ0hfUEFUSFMgPSBGb3J3YXJkaW5nSGVhZGVyczsKIAkJCX07CiAJCQluYW1l
ID0gUHJvZHVjdGlvbjsKIAkJfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwCShyZXZpc2lvbiAy
NzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNywxMCArMzcsOCBAQCBSZWdFeHA6OlJlZ0V4cChjb25zdCBVU3RyaW5nJiBwYXR0ZXJuKQog
ICAsIG1fY29uc3RydWN0aW9uRXJyb3IoMCkKICAgLCBtX251bVN1YnBhdHRlcm5zKDApCiB7Ci0g
ICAgY29uc3QgY2hhciogZXJyb3JNZXNzYWdlOwotICAgIG1fcmVnRXhwID0ganNSZWdFeHBDb21w
aWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSlNSZWdFeHBDaGFyKj4obV9wYXR0ZXJuLmRhdGEo
KSksIG1fcGF0dGVybi5zaXplKCksIDAsICZtX251bVN1YnBhdHRlcm5zLCAmZXJyb3JNZXNzYWdl
KTsKLSAgICBpZiAoIW1fcmVnRXhwKQotICAgICAgICBtX2NvbnN0cnVjdGlvbkVycm9yID0gc3Ry
ZHVwKGVycm9yTWVzc2FnZSk7CisgICAgbV9yZWdFeHAgPSBqc1JlZ0V4cENvbXBpbGUocmVpbnRl
cnByZXRfY2FzdDxjb25zdCA6OlVDaGFyKj4obV9wYXR0ZXJuLmRhdGEoKSksIG1fcGF0dGVybi5z
aXplKCksCisgICAgICAgIEpTUmVnRXhwRG9Ob3RJZ25vcmVDYXNlLCBKU1JlZ0V4cFNpbmdsZUxp
bmUsICZtX251bVN1YnBhdHRlcm5zLCAmbV9jb25zdHJ1Y3Rpb25FcnJvcik7CiB9CiAKIFJlZ0V4
cDo6UmVnRXhwKGNvbnN0IFVTdHJpbmcmIHBhdHRlcm4sIGNvbnN0IFVTdHJpbmcmIGZsYWdzKQpA
QCAtNTUsMjggKzUzLDI2IEBAIFJlZ0V4cDo6UmVnRXhwKGNvbnN0IFVTdHJpbmcmIHBhdHRlcm4s
IGMKICAgICBpZiAoZmxhZ3MuZmluZCgnZycpICE9IC0xKQogICAgICAgICBtX2ZsYWdzIHw9IEds
b2JhbDsKIAotICAgIC8vIEZJWE1FOiBFbGltaW5hdGUgZHVwbGljYXRpb24gYnkgYWRkaW5nIGEg
d2F5IGFzayBhIEpTUmVnRXhwIHdoYXQgaXRzIGZsYWdzIGFyZS4KLSAgICBpbnQgb3B0aW9ucyA9
IDA7CisgICAgLy8gRklYTUU6IEVsaW1pbmF0ZSBkdXBsaWNhdGlvbiBieSBhZGRpbmcgYSB3YXkg
YXNrIGEgSlNSZWdFeHAgd2hhdCBpdHMgZmxhZ3MgYXJlPworICAgIEpTUmVnRXhwSWdub3JlQ2Fz
ZU9wdGlvbiBpZ25vcmVDYXNlT3B0aW9uID0gSlNSZWdFeHBEb05vdElnbm9yZUNhc2U7CiAgICAg
aWYgKGZsYWdzLmZpbmQoJ2knKSAhPSAtMSkgewogICAgICAgICBtX2ZsYWdzIHw9IElnbm9yZUNh
c2U7Ci0gICAgICAgIG9wdGlvbnMgfD0gSlNfUkVHRVhQX0NBU0VMRVNTOworICAgICAgICBpZ25v
cmVDYXNlT3B0aW9uID0gSlNSZWdFeHBJZ25vcmVDYXNlOwogICAgIH0KIAorICAgIEpTUmVnRXhw
TXVsdGlsaW5lT3B0aW9uIG11bHRpbGluZU9wdGlvbiA9IEpTUmVnRXhwU2luZ2xlTGluZTsKICAg
ICBpZiAoZmxhZ3MuZmluZCgnbScpICE9IC0xKSB7CiAgICAgICAgIG1fZmxhZ3MgfD0gTXVsdGls
aW5lOwotICAgICAgICBvcHRpb25zIHw9IEpTX1JFR0VYUF9NVUxUSUxJTkU7CisgICAgICAgIG11
bHRpbGluZU9wdGlvbiA9IEpTUmVnRXhwTXVsdGlsaW5lOwogICAgIH0KICAgICAKLSAgICBjb25z
dCBjaGFyKiBlcnJvck1lc3NhZ2U7Ci0gICAgbV9yZWdFeHAgPSBqc1JlZ0V4cENvbXBpbGUocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBKU1JlZ0V4cENoYXIqPihtX3BhdHRlcm4uZGF0YSgpKSwgbV9w
YXR0ZXJuLnNpemUoKSwgb3B0aW9ucywgJm1fbnVtU3VicGF0dGVybnMsICZlcnJvck1lc3NhZ2Up
OwotICAgIGlmICghbV9yZWdFeHApCi0gICAgICAgIG1fY29uc3RydWN0aW9uRXJyb3IgPSBzdHJk
dXAoZXJyb3JNZXNzYWdlKTsKKyAgICBtX3JlZ0V4cCA9IGpzUmVnRXhwQ29tcGlsZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IDo6VUNoYXIqPihtX3BhdHRlcm4uZGF0YSgpKSwgbV9wYXR0ZXJuLnNp
emUoKSwKKyAgICAgICAgaWdub3JlQ2FzZU9wdGlvbiwgbXVsdGlsaW5lT3B0aW9uLCAmbV9udW1T
dWJwYXR0ZXJucywgJm1fY29uc3RydWN0aW9uRXJyb3IpOwogfQogCiBSZWdFeHA6On5SZWdFeHAo
KQogewotICBqc1JlZ0V4cEZyZWUobV9yZWdFeHApOwotICBmcmVlKG1fY29uc3RydWN0aW9uRXJy
b3IpOworICAgIGpzUmVnRXhwRnJlZShtX3JlZ0V4cCk7CiB9CiAKIGludCBSZWdFeHA6Om1hdGNo
KGNvbnN0IFVTdHJpbmcmIHMsIGludCBpLCBPd25BcnJheVB0cjxpbnQ+KiBvdmVjdG9yKQpAQCAt
MTA2LDExICsxMDIsMTEgQEAgaW50IFJlZ0V4cDo6bWF0Y2goY29uc3QgVVN0cmluZyYgcywgaW50
IAogICAgIG92ZWN0b3ItPnNldChvZmZzZXRWZWN0b3IpOwogICB9CiAKLSAgaW50IG51bU1hdGNo
ZXMgPSBqc1JlZ0V4cEV4ZWN1dGUobV9yZWdFeHAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSlNS
ZWdFeHBDaGFyKj4ocy5kYXRhKCkpLCBzLnNpemUoKSwgaSwgb2Zmc2V0VmVjdG9yLCBvZmZzZXRW
ZWN0b3JTaXplKTsKKyAgaW50IG51bU1hdGNoZXMgPSBqc1JlZ0V4cEV4ZWN1dGUobV9yZWdFeHAs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgOjpVQ2hhcio+KHMuZGF0YSgpKSwgcy5zaXplKCksIGks
IG9mZnNldFZlY3Rvciwgb2Zmc2V0VmVjdG9yU2l6ZSk7CiAKICAgaWYgKG51bU1hdGNoZXMgPCAw
KSB7CiAjaWZuZGVmIE5ERUJVRwotICAgIGlmIChudW1NYXRjaGVzICE9IEpTX1JFR0VYUF9FUlJP
Ul9OT01BVENIKQorICAgIGlmIChudW1NYXRjaGVzICE9IEpTUmVnRXhwRXJyb3JOb01hdGNoKQog
ICAgICAgZnByaW50ZihzdGRlcnIsICJLSlM6IHBjcmVfZXhlYygpIGZhaWxlZCB3aXRoIHJlc3Vs
dCAlZFxuIiwgbnVtTWF0Y2hlcyk7CiAjZW5kaWYKICAgICBpZiAob3ZlY3RvcikKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9r
anMvcmVnZXhwLmgJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAg
ICAgLy8gRGF0YSBzdXBwbGllZCBieSBQQ1JFLgogICAgIEpTUmVnRXhwKiBtX3JlZ0V4cDsKLSAg
ICBjaGFyKiBtX2NvbnN0cnVjdGlvbkVycm9yOworICAgIGNvbnN0IGNoYXIqIG1fY29uc3RydWN0
aW9uRXJyb3I7CiAgICAgdW5zaWduZWQgbV9udW1TdWJwYXR0ZXJuczsKICAgfTsKIApJbmRleDog
SmF2YVNjcmlwdENvcmUvcGNyZS9BVVRIT1JTCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvQVVUSE9SUwkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL0FV
VEhPUlMJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzEsMTIgQEAKLVRIRSBNQUlOIFBDUkUgTElC
UkFSWQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVdyaXR0ZW4gYnk6ICAgICAgIFBoaWxpcCBI
YXplbAotRW1haWwgbG9jYWwgcGFydDogcGgxMAotRW1haWwgZG9tYWluOiAgICAgY2FtLmFjLnVr
CitPcmlnaW5hbGx5IHdyaXR0ZW4gYnk6ICBQaGlsaXAgSGF6ZWwKK0VtYWlsIGxvY2FsIHBhcnQ6
ICAgICAgIHBoMTAKK0VtYWlsIGRvbWFpbjogICAgICAgICAgIGNhbS5hYy51awogCiBVbml2ZXJz
aXR5IG9mIENhbWJyaWRnZSBDb21wdXRpbmcgU2VydmljZSwKIENhbWJyaWRnZSwgRW5nbGFuZC4g
UGhvbmU6ICs0NCAxMjIzIDMzNDcxNC4KIAotQ29weXJpZ2h0IChjKSAxOTk3LTIwMDUgVW5pdmVy
c2l0eSBvZiBDYW1icmlkZ2UKLUFsbCByaWdodHMgcmVzZXJ2ZWQKLQotCi1VVEYtMTYgY2hhbmdl
cyBieSBEYXJpbiBBZGxlciBhbmQgR2VvZmYgR2FyZW4KLUNvcHlyaWdodCAoYykgMjAwNSwgMjAw
NiwgMjAwNyBBcHBsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkCi0KLQotVEhFIEMrKyBXUkFQ
UEVSIExJQlJBUlkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVdyaXR0ZW4gYnk6ICAgICAg
IEdvb2dsZSBJbmMuCitDb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJy
aWRnZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAotQ29weXJpZ2h0IChjKSAyMDA1IEdvb2dsZSBJ
bmMKLUFsbCByaWdodHMgcmVzZXJ2ZWQKK0FkYXB0ZWQgZm9yIEphdmFTY3JpcHRDb3JlIGFuZCBX
ZWJLaXQgYnkgQXBwbGUgSW5jLgogCi0jIyMjCitDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpJbmRleDogSmF2YVNjcmlwdENvcmUv
cGNyZS9DT1BZSU5HCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvQ09QWUlORwko
cmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL0NPUFlJTkcJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNDIgKzEsMTEgQEAKLVBDUkUgTElDRU5DRQotLS0tLS0tLS0tLS0tCi0KIFBD
UkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lv
bnMgd2hvc2Ugc3ludGF4CiBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0
byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgogCi1SZWxlYXNlIDYgb2YgUENSRSBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJCU0QiIGxpY2VuY2UsIGFzCi1zcGVj
aWZpZWQgYmVsb3cuIFRoZSBkb2N1bWVudGF0aW9uIGZvciBQQ1JFLCBzdXBwbGllZCBpbiB0aGUg
ImRvYyIKLWRpcmVjdG9yeSwgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMg
dGhlIHNvZnR3YXJlIGl0c2VsZi4KLQotVGhlIGJhc2ljIGxpYnJhcnkgZnVuY3Rpb25zIGFyZSB3
cml0dGVuIGluIEMgYW5kIGFyZSBmcmVlc3RhbmRpbmcuIEFsc28KLWluY2x1ZGVkIGluIHRoZSBk
aXN0cmlidXRpb24gaXMgYSBzZXQgb2YgQysrIHdyYXBwZXIgZnVuY3Rpb25zLgotCi0KLVRIRSBC
QVNJQyBMSUJSQVJZIEZVTkNUSU9OUwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVdy
aXR0ZW4gYnk6ICAgICAgIFBoaWxpcCBIYXplbAotRW1haWwgbG9jYWwgcGFydDogcGgxMAotRW1h
aWwgZG9tYWluOiAgICAgY2FtLmFjLnVrCi0KLVVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIENvbXB1
dGluZyBTZXJ2aWNlLAotQ2FtYnJpZGdlLCBFbmdsYW5kLiBQaG9uZTogKzQ0IDEyMjMgMzM0NzE0
LgotCi1Db3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotQWxs
IHJpZ2h0cyByZXNlcnZlZC4KK1RoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50IG9mIHRo
ZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQorc3RhcnRlZCBvdXQgYXMgYSBjb3B5
IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCityZW1vdmVk
LgogCi0KLVRIRSBDKysgV1JBUFBFUiBGVU5DVElPTlMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotQ29udHJpYnV0ZWQgYnk6ICAgR29vZ2xlIEluYy4KLQotQ29weXJpZ2h0IChjKSAyMDA1
LCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotCi1USEUgIkJTRCIgTElDRU5D
RQotLS0tLS0tLS0tLS0tLS0tLS0KK0NvcHlyaWdodCAoYykgMTk5Ny0yMDA1IFVuaXZlcnNpdHkg
b2YgQ2FtYnJpZGdlLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgpAQCAtNDgsNyArMTcsNyBAQCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhCiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogCi0gICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhl
IG5hbWUgb2YgR29vZ2xlCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5
IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWUgb2YgQXBwbGUKICAgICAgIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiB0aGVpciBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvcgogICAg
ICAgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yCiAgICAgICB3cml0dGVuIHBlcm1pc3Npb24uCkBAIC02NCw1ICszMywzIEBA
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSAKIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRQogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLUVuZApJ
bmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9MSUNFTkNFCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3BjcmUvTElDRU5DRQkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9w
Y3JlL0xJQ0VOQ0UJKHdvcmtpbmcgY29weSkKQEAgLTEsNjggKzAsMCBAQAotUENSRSBMSUNFTkNF
Ci0tLS0tLS0tLS0tLS0KLQotUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBv
cnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFz
IGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLVJl
bGVhc2UgNiBvZiBQQ1JFIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkJT
RCIgbGljZW5jZSwgYXMKLXNwZWNpZmllZCBiZWxvdy4gVGhlIGRvY3VtZW50YXRpb24gZm9yIFBD
UkUsIHN1cHBsaWVkIGluIHRoZSAiZG9jIgotZGlyZWN0b3J5LCBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgc29mdHdhcmUgaXRzZWxmLgotCi1UaGUgYmFzaWMgbGli
cmFyeSBmdW5jdGlvbnMgYXJlIHdyaXR0ZW4gaW4gQyBhbmQgYXJlIGZyZWVzdGFuZGluZy4gQWxz
bwotaW5jbHVkZWQgaW4gdGhlIGRpc3RyaWJ1dGlvbiBpcyBhIHNldCBvZiBDKysgd3JhcHBlciBm
dW5jdGlvbnMuCi0KLQotVEhFIEJBU0lDIExJQlJBUlkgRlVOQ1RJT05TCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotV3JpdHRlbiBieTogICAgICAgUGhpbGlwIEhhemVsCi1FbWFpbCBs
b2NhbCBwYXJ0OiBwaDEwCi1FbWFpbCBkb21haW46ICAgICBjYW0uYWMudWsKLQotVW5pdmVyc2l0
eSBvZiBDYW1icmlkZ2UgQ29tcHV0aW5nIFNlcnZpY2UsCi1DYW1icmlkZ2UsIEVuZ2xhbmQuIFBo
b25lOiArNDQgMTIyMyAzMzQ3MTQuCi0KLUNvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNp
dHkgb2YgQ2FtYnJpZGdlCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi0KLVRIRSBDKysgV1JBUFBF
UiBGVU5DVElPTlMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotQ29udHJpYnV0ZWQgYnk6
ICAgR29vZ2xlIEluYy4KLQotQ29weXJpZ2h0IChjKSAyMDA1LCBHb29nbGUgSW5jLgotQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLQotCi1USEUgIkJTRCIgTElDRU5DRQotLS0tLS0tLS0tLS0tLS0tLS0K
LQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAot
ICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl
IG5vciB0aGUgbmFtZSBvZiBHb29nbGUKLSAgICAgIEluYy4gbm9yIHRoZSBuYW1lcyBvZiB0aGVp
ciBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvcgotICAgICAgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
Ci0gICAgICB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LUVuZApJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuYwkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZh
U2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTY5ICswLDAg
QEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0q
ICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogUENSRSBp
cyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3
aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRo
b3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgV3Jp
dHRlbiBieSBQaGlsaXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYg
VW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElT
IgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQot
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8KLQotCi0vKiBUaGlzIGlzIGEgZnJlZXN0
YW5kaW5nIHN1cHBvcnQgcHJvZ3JhbSB0byBnZW5lcmF0ZSBhIGZpbGUgY29udGFpbmluZyBkZWZh
dWx0Ci1jaGFyYWN0ZXIgdGFibGVzIGZvciBQQ1JFLiBUaGUgdGFibGVzIGFyZSBidWlsdCBhY2Nv
cmRpbmcgdG8gdGhlIGRlZmF1bHQgQwotbG9jYWxlLiBOb3cgdGhhdCBwY3JlX21ha2V0YWJsZXMg
aXMgYSBmdW5jdGlvbiB2aXNpYmxlIHRvIHRoZSBvdXRzaWRlIHdvcmxkLCB3ZQotbWFrZSB1c2Ug
b2YgaXRzIGNvZGUgZnJvbSBoZXJlIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQuICovCi0KLSNp
bmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+
Ci0KLSNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCi0KLSNkZWZpbmUgREZUQUJMRVMgICAgICAg
ICAgLyogcGNyZV9tYWtldGFibGVzLmMgbm90aWNlcyB0aGlzICovCi0jaW5jbHVkZSAicGNyZV9t
YWtldGFibGVzLmMiCi0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotaW50
IGk7Ci1GSUxFICpmOwotY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGVzID0gcGNyZV9tYWtldGFi
bGVzKCk7Ci1jb25zdCB1bnNpZ25lZCBjaGFyICpiYXNlX29mX3RhYmxlcyA9IHRhYmxlczsKLQot
aWYgKGFyZ2MgIT0gMikKLSAgewotICBmcHJpbnRmKHN0ZGVyciwgImRmdGFibGVzOiBvbmUgZmls
ZW5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWRcbiIpOwotICByZXR1cm4gMTsKLSAgfQotCi1mID0g
Zm9wZW4oYXJndlsxXSwgIndiIik7Ci1pZiAoZiA9PSBOVUxMKQotICB7Ci0gIGZwcmludGYoc3Rk
ZXJyLCAiZGZ0YWJsZXM6IGZhaWxlZCB0byBvcGVuICVzIGZvciB3cml0aW5nXG4iLCBhcmd2WzFd
KTsKLSAgcmV0dXJuIDE7Ci0gIH0KLQotLyogVGhlcmUgYXJlIHR3byBmcHJpbnRmKCkgY2FsbHMg
aGVyZSwgYmVjYXVzZSBnY2MgaW4gcGVkYW50aWMgbW9kZSBjb21wbGFpbnMKLWFib3V0IHRoZSB2
ZXJ5IGxvbmcgc3RyaW5nIG90aGVyd2lzZS4gKi8KLQotZnByaW50ZihmLAotICAiLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIKLSAgIiogICAgICBQ
ZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqXG4iCi0gICIqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4iCi0gICIvKiBU
aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSB3cml0dGVuIGJ5IHRoZSBkZnRhYmxlcyBhdXhpbGlh
cnkgXG4iCi0gICJwcm9ncmFtLiBJZiB5b3UgZWRpdCBpdCBieSBoYW5kLCB5b3UgbWlnaHQgbGlr
ZSB0byBlZGl0IHRoZSBNYWtlZmlsZSB0byBcbiIKLSAgInByZXZlbnQgaXRzIGV2ZXIgYmVpbmcg
cmVnZW5lcmF0ZWQuXG5cbiIpOwotZnByaW50ZihmLAotICAiVGhpcyBmaWxlIGNvbnRhaW5zIHRo
ZSBkZWZhdWx0IHRhYmxlcyBmb3IgY2hhcmFjdGVycyB3aXRoIGNvZGVzIGxlc3MgdGhhblxuIgot
ICAiMTI4IChBU0NJSSBjaGFyYWN0ZXJzKS4gVGhlc2UgdGFibGVzIGFyZSB1c2VkIHdoZW4gbm8g
ZXh0ZXJuYWwgdGFibGVzIGFyZVxuIgotICAicGFzc2VkIHRvIFBDUkUuICovXG5cbiIKLSAgImNv
bnN0IHVuc2lnbmVkIGNoYXIgX3BjcmVfZGVmYXVsdF90YWJsZXNbXSA9IHtcblxuIgotICAiLyog
VGhpcyB0YWJsZSBpcyBhIGxvd2VyIGNhc2luZyB0YWJsZS4gKi9cblxuIik7Ci0KLWZwcmludGYo
ZiwgIiAgIik7Ci1mb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0gIHsKLSAgaWYgKChpICYgNykg
PT0gMCAmJiBpICE9IDApIGZwcmludGYoZiwgIlxuICAiKTsKLSAgZnByaW50ZihmLCAiJTNkIiwg
KnRhYmxlcysrKTsKLSAgaWYgKGkgIT0gMjU1KSBmcHJpbnRmKGYsICIsIik7Ci0gIH0KLWZwcmlu
dGYoZiwgIixcblxuIik7Ci0KLWZwcmludGYoZiwgIi8qIFRoaXMgdGFibGUgaXMgYSBjYXNlIGZs
aXBwaW5nIHRhYmxlLiAqL1xuXG4iKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZvciAoaSA9IDA7
IGkgPCAyNTY7IGkrKykKLSAgewotICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkgZnByaW50
ZihmLCAiXG4gICIpOwotICBmcHJpbnRmKGYsICIlM2QiLCAqdGFibGVzKyspOwotICBpZiAoaSAh
PSAyNTUpIGZwcmludGYoZiwgIiwiKTsKLSAgfQotZnByaW50ZihmLCAiLFxuXG4iKTsKLQotZnBy
aW50ZihmLAotICAiLyogVGhpcyB0YWJsZSBjb250YWlucyBiaXQgbWFwcyBmb3IgdmFyaW91cyBj
aGFyYWN0ZXIgY2xhc3Nlcy5cbiIKLSAgIkVhY2ggbWFwIGlzIDMyIGJ5dGVzIGxvbmcgYW5kIHRo
ZSBiaXRzIHJ1biBmcm9tIHRoZSBsZWFzdFxuIgotICAic2lnbmlmaWNhbnQgZW5kIG9mIGVhY2gg
Ynl0ZS4gVGhlIGNsYXNzZXMgdGhhdCBoYXZlIHRoZWlyIG93blxuIgotICAibWFwcyBhcmU6IHNw
YWNlLCB4ZGlnaXQsIGRpZ2l0LCB1cHBlciwgbG93ZXIsIHdvcmQsIGdyYXBoXG4iCi0gICJwcmlu
dCwgcHVuY3QsIGFuZCBjbnRybC4gT3RoZXIgY2xhc3NlcyBhcmUgYnVpbHQgZnJvbSBjb21iaW5h
dGlvbnMuICovXG5cbiIpOwotCi1mcHJpbnRmKGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IGNi
aXRfbGVuZ3RoOyBpKyspCi0gIHsKLSAgaWYgKChpICYgNykgPT0gMCAmJiBpICE9IDApCi0gICAg
ewotICAgIGlmICgoaSAmIDMxKSA9PSAwKSBmcHJpbnRmKGYsICJcbiIpOwotICAgIGZwcmludGYo
ZiwgIlxuICAiKTsKLSAgICB9Ci0gIGZwcmludGYoZiwgIjB4JTAyeCIsICp0YWJsZXMrKyk7Ci0g
IGlmIChpICE9IGNiaXRfbGVuZ3RoIC0gMSkgZnByaW50ZihmLCAiLCIpOwotICB9Ci1mcHJpbnRm
KGYsICIsXG5cbiIpOwotCi1mcHJpbnRmKGYsCi0gICIvKiBUaGlzIHRhYmxlIGlkZW50aWZpZXMg
dmFyaW91cyBjbGFzc2VzIG9mIGNoYXJhY3RlciBieSBpbmRpdmlkdWFsIGJpdHM6XG4iCi0gICIg
IDB4JTAyeCAgIHdoaXRlIHNwYWNlIGNoYXJhY3RlclxuIgotICAiICAweCUwMnggICBkZWNpbWFs
IGRpZ2l0XG4iCi0gICIgIDB4JTAyeCAgIGhleGFkZWNpbWFsIGRpZ2l0XG4iCi0gICIgIDB4JTAy
eCAgIGFscGhhbnVtZXJpYyBvciAnXydcbiovXG5cbiIsCi0gIGN0eXBlX3NwYWNlLCBjdHlwZV9k
aWdpdCwgY3R5cGVfeGRpZ2l0LCBjdHlwZV93b3JkKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZv
ciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKLSAgewotICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0g
MCkKLSAgICB7Ci0gICAgZnByaW50ZihmLCAiIC8qICIpOwotICAgIGlmIChpc3ByaW50KGktOCkp
IGZwcmludGYoZiwgIiAlYyAtIiwgaS04KTsKLSAgICAgIGVsc2UgZnByaW50ZihmLCAiJTNkLSIs
IGktOCk7Ci0gICAgaWYgKGlzcHJpbnQoaS0xKSkgZnByaW50ZihmLCAiICVjICIsIGktMSk7Ci0g
ICAgICBlbHNlIGZwcmludGYoZiwgIiUzZCIsIGktMSk7Ci0gICAgZnByaW50ZihmLCAiICovXG4g
ICIpOwotICAgIH0KLSAgZnByaW50ZihmLCAiMHglMDJ4IiwgKnRhYmxlcysrKTsKLSAgaWYgKGkg
IT0gMjU1KSBmcHJpbnRmKGYsICIsIik7Ci0gIH0KLQotZnByaW50ZihmLCAifTsvKiAiKTsKLWlm
IChpc3ByaW50KGktOCkpIGZwcmludGYoZiwgIiAlYyAtIiwgaS04KTsKLSAgZWxzZSBmcHJpbnRm
KGYsICIlM2QtIiwgaS04KTsKLWlmIChpc3ByaW50KGktMSkpIGZwcmludGYoZiwgIiAlYyAiLCBp
LTEpOwotICBlbHNlIGZwcmludGYoZiwgIiUzZCIsIGktMSk7Ci1mcHJpbnRmKGYsICIgKi9cblxu
LyogRW5kIG9mIGNoYXJ0YWJsZXMuYyAqL1xuIik7Ci0KLWZjbG9zZShmKTsKLWZyZWUoKHZvaWQg
KiliYXNlX29mX3RhYmxlcyk7Ci1yZXR1cm4gMDsKLX0KLQotLyogRW5kIG9mIGRmdGFibGVzLmMg
Ki8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCShyZXZpc2lvbiAyNzY0OCkJKGZyb20g
SmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jOjI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUv
cGNyZS9kZnRhYmxlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjkgQEAKKy8qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgUGVy
bC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogUENSRSBpcyBhIGxpYnJh
cnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50
YXgKK2FuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRo
ZSBQZXJsIDUgbGFuZ3VhZ2UuCisKKyAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQ
aGlsaXAgSGF6ZWwKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0
eSBvZiBDYW1icmlkZ2UKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1JlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAgICAgIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCisgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0
cworICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKworCisvKiBUaGlzIGlzIGEgZnJlZXN0YW5kaW5nIHN1
cHBvcnQgcHJvZ3JhbSB0byBnZW5lcmF0ZSBhIGZpbGUgY29udGFpbmluZyBkZWZhdWx0CitjaGFy
YWN0ZXIgdGFibGVzIGZvciBQQ1JFLiBUaGUgdGFibGVzIGFyZSBidWlsdCBhY2NvcmRpbmcgdG8g
dGhlIGRlZmF1bHQgQworbG9jYWxlLiBOb3cgdGhhdCBwY3JlX21ha2V0YWJsZXMgaXMgYSBmdW5j
dGlvbiB2aXNpYmxlIHRvIHRoZSBvdXRzaWRlIHdvcmxkLCB3ZQorbWFrZSB1c2Ugb2YgaXRzIGNv
ZGUgZnJvbSBoZXJlIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQuICovCisKKyNpbmNsdWRlIDxj
dHlwZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNs
dWRlICJwY3JlX2ludGVybmFsLmgiCisKKyNkZWZpbmUgREZUQUJMRVMgICAgICAgICAgLyogcGNy
ZV9tYWtldGFibGVzLmMgbm90aWNlcyB0aGlzICovCisjaW5jbHVkZSAicGNyZV9tYWtldGFibGVz
LmMiCisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworaW50IGk7CitGSUxF
ICpmOworY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGVzID0gcGNyZV9tYWtldGFibGVzKCk7Citj
b25zdCB1bnNpZ25lZCBjaGFyICpiYXNlX29mX3RhYmxlcyA9IHRhYmxlczsKKworaWYgKGFyZ2Mg
IT0gMikKKyAgeworICBmcHJpbnRmKHN0ZGVyciwgImRmdGFibGVzOiBvbmUgZmlsZW5hbWUgYXJn
dW1lbnQgaXMgcmVxdWlyZWRcbiIpOworICByZXR1cm4gMTsKKyAgfQorCitmID0gZm9wZW4oYXJn
dlsxXSwgIndiIik7CitpZiAoZiA9PSBOVUxMKQorICB7CisgIGZwcmludGYoc3RkZXJyLCAiZGZ0
YWJsZXM6IGZhaWxlZCB0byBvcGVuICVzIGZvciB3cml0aW5nXG4iLCBhcmd2WzFdKTsKKyAgcmV0
dXJuIDE7CisgIH0KKworLyogVGhlcmUgYXJlIHR3byBmcHJpbnRmKCkgY2FsbHMgaGVyZSwgYmVj
YXVzZSBnY2MgaW4gcGVkYW50aWMgbW9kZSBjb21wbGFpbnMKK2Fib3V0IHRoZSB2ZXJ5IGxvbmcg
c3RyaW5nIG90aGVyd2lzZS4gKi8KKworZnByaW50ZihmLAorICAiLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIKKyAgIiogICAgICBQZXJsLUNvbXBh
dGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqXG4iCisgICIqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4iCisgICIvKiBUaGlzIGZpbGUg
aXMgYXV0b21hdGljYWxseSB3cml0dGVuIGJ5IHRoZSBkZnRhYmxlcyBhdXhpbGlhcnkgXG4iCisg
ICJwcm9ncmFtLiBJZiB5b3UgZWRpdCBpdCBieSBoYW5kLCB5b3UgbWlnaHQgbGlrZSB0byBlZGl0
IHRoZSBNYWtlZmlsZSB0byBcbiIKKyAgInByZXZlbnQgaXRzIGV2ZXIgYmVpbmcgcmVnZW5lcmF0
ZWQuXG5cbiIpOworZnByaW50ZihmLAorICAiVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZhdWx0
IHRhYmxlcyBmb3IgY2hhcmFjdGVycyB3aXRoIGNvZGVzIGxlc3MgdGhhblxuIgorICAiMTI4IChB
U0NJSSBjaGFyYWN0ZXJzKS4gVGhlc2UgdGFibGVzIGFyZSB1c2VkIHdoZW4gbm8gZXh0ZXJuYWwg
dGFibGVzIGFyZVxuIgorICAicGFzc2VkIHRvIFBDUkUuICovXG5cbiIKKyAgImNvbnN0IHVuc2ln
bmVkIGNoYXIgX3BjcmVfZGVmYXVsdF90YWJsZXNbXSA9IHtcblxuIgorICAiLyogVGhpcyB0YWJs
ZSBpcyBhIGxvd2VyIGNhc2luZyB0YWJsZS4gKi9cblxuIik7CisKK2ZwcmludGYoZiwgIiAgIik7
Citmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisgIHsKKyAgaWYgKChpICYgNykgPT0gMCAmJiBp
ICE9IDApIGZwcmludGYoZiwgIlxuICAiKTsKKyAgZnByaW50ZihmLCAiJTNkIiwgKnRhYmxlcysr
KTsKKyAgaWYgKGkgIT0gMjU1KSBmcHJpbnRmKGYsICIsIik7CisgIH0KK2ZwcmludGYoZiwgIixc
blxuIik7CisKK2ZwcmludGYoZiwgIi8qIFRoaXMgdGFibGUgaXMgYSBjYXNlIGZsaXBwaW5nIHRh
YmxlLiAqL1xuXG4iKTsKKworZnByaW50ZihmLCAiICAiKTsKK2ZvciAoaSA9IDA7IGkgPCAyNTY7
IGkrKykKKyAgeworICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkgZnByaW50ZihmLCAiXG4g
ICIpOworICBmcHJpbnRmKGYsICIlM2QiLCAqdGFibGVzKyspOworICBpZiAoaSAhPSAyNTUpIGZw
cmludGYoZiwgIiwiKTsKKyAgfQorZnByaW50ZihmLCAiLFxuXG4iKTsKKworZnByaW50ZihmLAor
ICAiLyogVGhpcyB0YWJsZSBjb250YWlucyBiaXQgbWFwcyBmb3IgdmFyaW91cyBjaGFyYWN0ZXIg
Y2xhc3Nlcy5cbiIKKyAgIkVhY2ggbWFwIGlzIDMyIGJ5dGVzIGxvbmcgYW5kIHRoZSBiaXRzIHJ1
biBmcm9tIHRoZSBsZWFzdFxuIgorICAic2lnbmlmaWNhbnQgZW5kIG9mIGVhY2ggYnl0ZS4gVGhl
IGNsYXNzZXMgdGhhdCBoYXZlIHRoZWlyIG93blxuIgorICAibWFwcyBhcmU6IHNwYWNlLCB4ZGln
aXQsIGRpZ2l0LCB1cHBlciwgbG93ZXIsIHdvcmQsIGdyYXBoXG4iCisgICJwcmludCwgcHVuY3Qs
IGFuZCBjbnRybC4gT3RoZXIgY2xhc3NlcyBhcmUgYnVpbHQgZnJvbSBjb21iaW5hdGlvbnMuICov
XG5cbiIpOworCitmcHJpbnRmKGYsICIgICIpOworZm9yIChpID0gMDsgaSA8IGNiaXRfbGVuZ3Ro
OyBpKyspCisgIHsKKyAgaWYgKChpICYgNykgPT0gMCAmJiBpICE9IDApCisgICAgeworICAgIGlm
ICgoaSAmIDMxKSA9PSAwKSBmcHJpbnRmKGYsICJcbiIpOworICAgIGZwcmludGYoZiwgIlxuICAi
KTsKKyAgICB9CisgIGZwcmludGYoZiwgIjB4JTAyeCIsICp0YWJsZXMrKyk7CisgIGlmIChpICE9
IGNiaXRfbGVuZ3RoIC0gMSkgZnByaW50ZihmLCAiLCIpOworICB9CitmcHJpbnRmKGYsICIsXG5c
biIpOworCitmcHJpbnRmKGYsCisgICIvKiBUaGlzIHRhYmxlIGlkZW50aWZpZXMgdmFyaW91cyBj
bGFzc2VzIG9mIGNoYXJhY3RlciBieSBpbmRpdmlkdWFsIGJpdHM6XG4iCisgICIgIDB4JTAyeCAg
IHdoaXRlIHNwYWNlIGNoYXJhY3RlclxuIgorICAiICAweCUwMnggICBkZWNpbWFsIGRpZ2l0XG4i
CisgICIgIDB4JTAyeCAgIGhleGFkZWNpbWFsIGRpZ2l0XG4iCisgICIgIDB4JTAyeCAgIGFscGhh
bnVtZXJpYyBvciAnXydcbiovXG5cbiIsCisgIGN0eXBlX3NwYWNlLCBjdHlwZV9kaWdpdCwgY3R5
cGVfeGRpZ2l0LCBjdHlwZV93b3JkKTsKKworZnByaW50ZihmLCAiICAiKTsKK2ZvciAoaSA9IDA7
IGkgPCAyNTY7IGkrKykKKyAgeworICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkKKyAgICB7
CisgICAgZnByaW50ZihmLCAiIC8qICIpOworICAgIGlmIChpc3ByaW50KGktOCkpIGZwcmludGYo
ZiwgIiAlYyAtIiwgaS04KTsKKyAgICAgIGVsc2UgZnByaW50ZihmLCAiJTNkLSIsIGktOCk7Cisg
ICAgaWYgKGlzcHJpbnQoaS0xKSkgZnByaW50ZihmLCAiICVjICIsIGktMSk7CisgICAgICBlbHNl
IGZwcmludGYoZiwgIiUzZCIsIGktMSk7CisgICAgZnByaW50ZihmLCAiICovXG4gICIpOworICAg
IH0KKyAgZnByaW50ZihmLCAiMHglMDJ4IiwgKnRhYmxlcysrKTsKKyAgaWYgKGkgIT0gMjU1KSBm
cHJpbnRmKGYsICIsIik7CisgIH0KKworZnByaW50ZihmLCAifTsvKiAiKTsKK2lmIChpc3ByaW50
KGktOCkpIGZwcmludGYoZiwgIiAlYyAtIiwgaS04KTsKKyAgZWxzZSBmcHJpbnRmKGYsICIlM2Qt
IiwgaS04KTsKK2lmIChpc3ByaW50KGktMSkpIGZwcmludGYoZiwgIiAlYyAiLCBpLTEpOworICBl
bHNlIGZwcmludGYoZiwgIiUzZCIsIGktMSk7CitmcHJpbnRmKGYsICIgKi9cblxuLyogRW5kIG9m
IGNoYXJ0YWJsZXMuYyAqL1xuIik7CisKK2ZjbG9zZShmKTsKK2ZyZWUoKHZvaWQgKiliYXNlX29m
X3RhYmxlcyk7CityZXR1cm4gMDsKK30KKworLyogRW5kIG9mIGRmdGFibGVzLmMgKi8KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCShyZXZpc2lvbiAyNzY0OCkKKysrIEphdmFTY3JpcHRD
b3JlL3BjcmUvZGZ0YWJsZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACi0v
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAg
IFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUaGlzIGlzIEphdmFT
Y3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJh
cnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBv
ZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5
IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVpcmVkIGJ5IHRoZSBKYXZhU2Ny
aXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCitu
ZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KIAotLyogUENS
RSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9u
cyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRv
IHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAg
V3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0
dGVuIGJ5IFBoaWxpcCBIYXplbAogICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBV
bml2ZXJzaXR5IG9mIENhbWJyaWRnZQorICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAw
NiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQ5LDkgKzQ5LDcgQEAgbWFrZSB1c2Ugb2YgaXRzIGNvZGUg
ZnJvbSBoZXJlIGluIG9yZGVyIAogCiAjaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgogCi0jZGVm
aW5lIERGVEFCTEVTICAgICAgICAgIC8qIHBjcmVfbWFrZXRhYmxlcy5jIG5vdGljZXMgdGhpcyAq
LwotI2luY2x1ZGUgInBjcmVfbWFrZXRhYmxlcy5jIgotCisjaW5jbHVkZSAicGNyZV9tYWtldGFi
bGVzLmNwcCIKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewpAQCAtMTMzLDEw
ICsxMzEsOSBAQCBmcHJpbnRmKGYsICIsXG5cbiIpOwogZnByaW50ZihmLAogICAiLyogVGhpcyB0
YWJsZSBpZGVudGlmaWVzIHZhcmlvdXMgY2xhc3NlcyBvZiBjaGFyYWN0ZXIgYnkgaW5kaXZpZHVh
bCBiaXRzOlxuIgogICAiICAweCUwMnggICB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJcbiIKLSAgIiAg
MHglMDJ4ICAgZGVjaW1hbCBkaWdpdFxuIgogICAiICAweCUwMnggICBoZXhhZGVjaW1hbCBkaWdp
dFxuIgogICAiICAweCUwMnggICBhbHBoYW51bWVyaWMgb3IgJ18nXG4qL1xuXG4iLAotICBjdHlw
ZV9zcGFjZSwgY3R5cGVfZGlnaXQsIGN0eXBlX3hkaWdpdCwgY3R5cGVfd29yZCk7CisgIGN0eXBl
X3NwYWNlLCBjdHlwZV94ZGlnaXQsIGN0eXBlX3dvcmQpOwogCiBmcHJpbnRmKGYsICIgICIpOwog
Zm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQpAQCAtMTY1LDUgKzE2MiwzIEBAIGZjbG9zZShmKTsK
IGZyZWUoKHZvaWQgKiliYXNlX29mX3RhYmxlcyk7CiByZXR1cm4gMDsKIH0KLQotLyogRW5kIG9m
IGRmdGFibGVzLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJvCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJvCShyZXZpc2lvbiAy
NzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcgKzEsNyBAQAogVEVNUExBVEUgPSBhcHAKIENPTkZJRyArPSBjb25zb2xlCiBDT05G
SUcgLT0gYXBwX2J1bmRsZSBxdAotU09VUkNFUyA9IGRmdGFibGVzLmMKK1NPVVJDRVMgPSBkZnRh
Ymxlcy5jcHAKIFRBUkdFVCA9IGRmdGFibGVzCiBERVNURElSID0gdG1wCiAKQEAgLTEyLDQgKzEy
LDMgQEAgZ3RrLXBvcnQgewogfSBlbHNlIHsKICAgREVGSU5FUyArPSBCVUlMRElOR19RVF9fCiB9
Ci0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS1jb25maWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUtY29uZmlnLmgJKHJldmlzaW9uIDI3NjQ4KQorKysg
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLWNvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMx
ICswLDAgQEAKLS8qIFRoZSB2YWx1ZSBvZiBMSU5LX1NJWkUgZGV0ZXJtaW5lcyB0aGUgbnVtYmVy
IG9mIGJ5dGVzIHVzZWQgdG8gc3RvcmUgbGlua3MgYXMKLW9mZnNldHMgd2l0aGluIHRoZSBjb21w
aWxlZCByZWdleC4gVGhlIGRlZmF1bHQgaXMgMiwgd2hpY2ggYWxsb3dzIGZvciBjb21waWxlZAot
cGF0dGVybnMgdXAgdG8gNjRLIGxvbmcuIFRoaXMgY292ZXJzIHRoZSB2YXN0IG1ham9yaXR5IG9m
IGNhc2VzLiBIb3dldmVyLCBQQ1JFCi1jYW4gYWxzbyBiZSBjb21waWxlZCB0byB1c2UgMyBvciA0
IGJ5dGVzIGluc3RlYWQuIFRoaXMgYWxsb3dzIGZvciBsb25nZXIKLXBhdHRlcm5zIGluIGV4dHJl
bWUgY2FzZXMuIE9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGl0LCAiY29uZmlndXJlIiBjYW4gYmUg
dXNlZAotdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0LiAqLwotCi0jZGVmaW5lIExJTktfU0laRSAg
IDIKLQotLyogVGhlIHZhbHVlIG9mIE1BVENIX0xJTUlUIGRldGVybWluZXMgdGhlIGRlZmF1bHQg
bnVtYmVyIG9mIHRpbWVzIHRoZSBpbnRlcm5hbAotbWF0Y2goKSBmdW5jdGlvbiBjYW4gYmUgY2Fs
bGVkIGR1cmluZyBhIHNpbmdsZSBleGVjdXRpb24gb2YgcGNyZV9leGVjKCkuIFRoZXJlCi1pcyBh
IHJ1bnRpbWUgaW50ZXJmYWNlIGZvciBzZXR0aW5nIGEgZGlmZmVyZW50IGxpbWl0LiBUaGUgbGlt
aXQgZXhpc3RzIGluIG9yZGVyCi10byBjYXRjaCBydW5hd2F5IHJlZ3VsYXIgZXhwcmVzc2lvbnMg
dGhhdCB0YWtlIGZvciBldmVyIHRvIGRldGVybWluZSB0aGF0IHRoZXkKLWRvIG5vdCBtYXRjaC4g
VGhlIGRlZmF1bHQgaXMgc2V0IHZlcnkgbGFyZ2Ugc28gdGhhdCBpdCBkb2VzIG5vdCBhY2NpZGVu
dGFsbHkKLWNhdGNoIGxlZ2l0aW1hdGUgY2FzZXMuIE9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGl0
LCAiY29uZmlndXJlIiBjYW4gYmUgdXNlZCB0bwotb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGRlZmF1
bHQuICovCi0KLSNkZWZpbmUgTUFUQ0hfTElNSVQgMTAwMDAwMDAKLQotLyogVGhlIGFib3ZlIGxp
bWl0IGFwcGxpZXMgdG8gYWxsIGNhbGxzIG9mIG1hdGNoKCksIHdoZXRoZXIgb3Igbm90IHRoZXkK
LWluY3JlYXNlIHRoZSByZWN1cnNpb24gZGVwdGguIEluIHNvbWUgZW52aXJvbm1lbnRzIGl0IGlz
IGRlc2lyYWJsZSB0byBsaW1pdCB0aGUKLWRlcHRoIG9mIHJlY3Vyc2l2ZSBjYWxscyBvZiBtYXRj
aCgpIG1vcmUgc3RyaWN0bHksIGluIG9yZGVyIHRvIHJlc3RyaWN0IHRoZQotbWF4aW11bSBhbW91
bnQgb2Ygc3RhY2sgKG9yIGhlYXAsIGlmIE5PX1JFQ1VSU0UgaXMgZGVmaW5lZCkgdGhhdCBpcyB1
c2VkLiBUaGUKLXZhbHVlIG9mIE1BVENIX0xJTUlUX1JFQ1VSU0lPTiBhcHBsaWVzIG9ubHkgdG8g
cmVjdXJzaXZlIGNhbGxzIG9mIG1hdGNoKCkuIFRvCi1oYXZlIGFueSB1c2VmdWwgZWZmZWN0LCBp
dCBtdXN0IGJlIGxlc3MgdGhhbiB0aGUgdmFsdWUgb2YgTUFUQ0hfTElNSVQuIFRoZXJlIGlzCi1h
IHJ1bnRpbWUgbWV0aG9kIGZvciBzZXR0aW5nIGEgZGlmZmVyZW50IGxpbWl0LiBPbiBzeXN0ZW1z
IHRoYXQgc3VwcG9ydCBpdCwKLSJjb25maWd1cmUiIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRo
aXMgZGVmYXVsdCBkZWZhdWx0LiAqLwotCi0jZGVmaW5lIE1BVENIX0xJTUlUX1JFQ1VSU0lPTiBN
QVRDSF9MSU1JVAotCi0vKiBFbmQgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5oCShyZXZpc2lvbiAyNzY0
OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEx
ICsxLDEyIEBACiAvKiBUaGlzIGlzIHRoZSBwdWJsaWMgaGVhZGVyIGZpbGUgZm9yIEphdmFTY3Jp
cHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRQogbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5
IHN0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZQogZmVhdHVyZXMgb2Yg
UENSRSBoYXZlIGJlZW4gcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRo
ZQotcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0
IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sCi1hbmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucyBuZWVk
ZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KK3JlZ3VsYXIgZXhw
cmVzc2lvbiBmZWF0dXJlcyByZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZQorc3Bl
Y2lmaWNhdGlvbiwgYW5kIGhhcyBvbmx5IHRoZSBmdW5jdGlvbnMgbmVlZGVkIGJ5IEphdmFTY3Jp
cHRDb3JlIGFuZCB0aGUKK3Jlc3Qgb2YgV2ViS2l0LgogCiAgICAgICAgICAgIENvcHlyaWdodCAo
YykgMTk5Ny0yMDA1IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAgICAgICAgIENvcHlyaWdo
dCAoYykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgICAgQ29weXJpZ2h0IChD
KSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzYsNDEgKzM3LDMzIEBAIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiAKLS8v
IEZJWE1FOiBIZWFkZXIgbmVlZHMgdG8gYmUgcmVuYW1lZC4KKy8vIEZJWE1FOiBUaGlzIGZpbGUg
bmVlZHMgdG8gYmUgcmVuYW1lZCB0byBKU1JlZ0V4cC5oOyBpdCdzIG5vIGxvbmdlciBQQ1JFLgog
Ci0jaWZuZGVmIFBDUkVfSAotI2RlZmluZSBQQ1JFX0gKKyNpZm5kZWYgSlNSZWdFeHBfaAorI2Rl
ZmluZSBKU1JlZ0V4cF9oCiAKLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5k
aWYKKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLS8qIGpzUmVnRXhwQ29tcGls
ZSBvcHRpb25zICovCi0vKiBGSVhNRTogVXNlIHR3byBib29sZWFucyBpbnN0ZWFkPyAqLworc3Ry
dWN0IEpTUmVnRXhwOwogCi0jZGVmaW5lIEpTX1JFR0VYUF9DQVNFTEVTUyAgICAgIDB4MDAwMDAw
MDEKLSNkZWZpbmUgSlNfUkVHRVhQX01VTFRJTElORSAgICAgMHgwMDAwMDAwMgorZW51bSBKU1Jl
Z0V4cElnbm9yZUNhc2VPcHRpb24geyBKU1JlZ0V4cERvTm90SWdub3JlQ2FzZSwgSlNSZWdFeHBJ
Z25vcmVDYXNlIH07CitlbnVtIEpTUmVnRXhwTXVsdGlsaW5lT3B0aW9uIHsgSlNSZWdFeHBTaW5n
bGVMaW5lLCBKU1JlZ0V4cE11bHRpbGluZSB9OwogCiAvKiBqc1JlZ0V4cEV4ZWN1dGUgZXJyb3Ig
Y29kZXMgKi8KLS8qIEZJWE1FOiBVc2UgY29uc3QgYWZ0ZXIgY2hhbmdpbmcgdGhpcyB0byBDKys/
ICovCi0KLSNkZWZpbmUgSlNfUkVHRVhQX0VSUk9SX05PTUFUQ0ggICAgICAgICAoLTEpCi0jZGVm
aW5lIEpTX1JFR0VYUF9FUlJPUl9OT01FTU9SWSAgICAgICAgKC02KQotI2RlZmluZSBKU19SRUdF
WFBfRVJST1JfTUFUQ0hMSU1JVCAgICAgICgtOCkKLSNkZWZpbmUgSlNfUkVHRVhQX0VSUk9SX0lO
VEVSTkFMICAgICAgICgtMTQpCi0jZGVmaW5lIEpTX1JFR0VYUF9FUlJPUl9SRUNVUlNJT05MSU1J
VCAoLTIxKQotCi0vKiBGSVhNRTogTWVyZ2Ugd2l0aCBXVEYncyBVQ2hhcj8gKi8KLXR5cGVkZWYg
dW5zaWduZWQgc2hvcnQgSlNSZWdFeHBDaGFyOworY29uc3QgaW50IEpTUmVnRXhwRXJyb3JOb01h
dGNoID0gLTE7Citjb25zdCBpbnQgSlNSZWdFeHBFcnJvckludGVybmFsID0gLTI7Citjb25zdCBp
bnQgSlNSZWdFeHBFcnJvck5vTWVtb3J5ID0gLTM7Citjb25zdCBpbnQgSlNSZWdFeHBFcnJvck1h
dGNoTGltaXQgPSAtNDsKK2NvbnN0IGludCBKU1JlZ0V4cEVycm9yUmVjdXJzaW9uTGltaXQgPSAt
NTsKKworSlNSZWdFeHAqIGpzUmVnRXhwQ29tcGlsZShjb25zdCA6OlVDaGFyKiBwYXR0ZXJuLCBp
bnQgcGF0dGVybkxlbmd0aCwKKyAgICBKU1JlZ0V4cElnbm9yZUNhc2VPcHRpb24sIEpTUmVnRXhw
TXVsdGlsaW5lT3B0aW9uLAorICAgIHVuc2lnbmVkKiBudW1TdWJwYXR0ZXJucywgY29uc3QgY2hh
cioqIGVycm9yTWVzc2FnZSk7CisKK2ludCBqc1JlZ0V4cEV4ZWN1dGUoY29uc3QgSlNSZWdFeHAq
LAorICAgIGNvbnN0IDo6VUNoYXIqIHN1YmplY3QsIGludCBzdWJqZWN0TGVuZ3RoLCBpbnQgc3Rh
cnRPZmZzZXQsCisgICAgaW50KiBvZmZzZXRzVmVjdG9yLCBpbnQgb2Zmc2V0c1ZlY3Rvckxlbmd0
aCk7CiAKLXR5cGVkZWYgc3RydWN0IEpTUmVnRXhwIEpTUmVnRXhwOwotCi1KU1JlZ0V4cCoganNS
ZWdFeHBDb21waWxlKGNvbnN0IEpTUmVnRXhwQ2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5n
dGgsIGludCBvcHRpb25zLCB1bnNpZ25lZCogbnVtU3VicGF0dGVybnMsIGNvbnN0IGNoYXIqKiBl
cnJvck1lc3NhZ2UpOwotaW50IGpzUmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCosIGNvbnN0
IEpTUmVnRXhwQ2hhciosIGludCwgaW50LCBpbnQqLCBpbnQpOwogdm9pZCBqc1JlZ0V4cEZyZWUo
SlNSZWdFeHAqKTsKIAotI2lmZGVmIF9fY3BsdXNwbHVzCi19IC8qIGV4dGVybiAiQyIgKi8KLSNl
bmRpZgotCiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5wcmkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLnByaQkocmV2aXNpb24gMjc2NDgpCisr
KyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00LDE1ICs0
LDE1IEBAIElOQ0xVREVQQVRIICs9ICQkUFdEICQkT1VUUFVUX0RJUi9KYXZhU2MKIERFUEVORFBB
VEggKz0gJCRQV0QKIAogU09VUkNFUyArPSBcCi0gICAgcGNyZV9jb21waWxlLmMgXAotICAgIHBj
cmVfZXhlYy5jIFwKLSAgICBwY3JlX29yZDJ1dGY4LmMgXAotICAgIHBjcmVfdGFibGVzLmMgXAot
ICAgIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmMgXAotICAgIHBjcmVfeGNsYXNzLmMKKyAgICBwY3Jl
X2NvbXBpbGUuY3BwIFwKKyAgICBwY3JlX2V4ZWMuY3BwIFwKKyAgICBwY3JlX29yZDJ1dGY4LmNw
cCBcCisgICAgcGNyZV90YWJsZXMuY3BwIFwKKyAgICBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAg
XAorICAgIHBjcmVfeGNsYXNzLmNwcAogCiBDVEdFTkZJTEUgKz0gXAotICAgIGRmdGFibGVzLmMK
KyAgICBkZnRhYmxlcy5jcHAKIAogIyBHRU5FUkFUT1I6ICJjaGFydGFibGVzLmMiOiBjb21waWxl
IGFuZCBleGVjdXRlIHRoZSBjaGFydGFibGVzIGdlbmVyYXRvciAoYW5kIGFkZCBpdCB0byBzb3Vy
Y2VzKQogY3RnZW4ub3V0cHV0ID0gdG1wL2NoYXJ0YWJsZXMuYwpJbmRleDogSmF2YVNjcmlwdENv
cmUvcGNyZS9wY3JlX2NvbXBpbGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3Jl
L3BjcmVfY29tcGlsZS5jCShyZXZpc2lvbiAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUv
cGNyZV9jb21waWxlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMzM2NCArMCwwIEBACi0vKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwt
Q29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFBDUkUgaXMgYSBsaWJyYXJ5
IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4
Ci1hbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUg
UGVybCA1IGxhbmd1YWdlLgotCi0gICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhp
bGlwIEhhemVsCi0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkg
b2YgQ2FtYnJpZGdlCi0gICAgICAgICAgIENvcHlyaWdodCAoYykgMjAwNCwgMjAwNSBBcHBsZSBD
b21wdXRlciwgSW5jLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0KLS8qIFRoaXMgbW9kdWxlIGNvbnRhaW5zIHRoZSBl
eHRlcm5hbCBmdW5jdGlvbiBwY3JlX2NvbXBpbGUoKSwgYWxvbmcgd2l0aAotc3VwcG9ydGluZyBp
bnRlcm5hbCBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IHVzZWQgYnkgb3RoZXIgbW9kdWxlcy4gKi8K
LQotCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgotCi0KLS8qIFdBUk5JTkc6IFRoZXNlIG1h
Y3JvcyBldmFsdWF0ZSB0aGVpciBwYXJhbWV0ZXJzIG1vcmUgdGhhbiBvbmNlLiAqLwotI2RlZmlu
ZSBESUdJVEFCKHgpICgoeCkgPCAxMjggPyBkaWdpdGFiWyh4KV0gOiAwKQotCi0KLS8qIFdoZW4g
REVCVUcgaXMgZGVmaW5lZCwgd2UgbmVlZCB0aGUgcGNyZV9wcmludGludCgpIGZ1bmN0aW9uLCB3
aGljaCBpcyBhbHNvCi11c2VkIGJ5IHBjcmV0ZXN0LiBERUJVRyBpcyBub3QgZGVmaW5lZCB3aGVu
IGJ1aWxkaW5nIGEgcHJvZHVjdGlvbiBsaWJyYXJ5LiAqLwotCi0jaWZkZWYgREVCVUcKLSNpbmNs
dWRlICJwY3JlX3ByaW50aW50LnNyYyIKLSNlbmRpZgotCi0KLQotLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICBDb2RlIHBhcmFtZXRlcnMg
YW5kIHN0YXRpYyB0YWJsZXMgICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBvbiB0
aGUgbmVzdGVkIGJyYWNrZXQgc3RhY2tzIGF0IGNvbXBpbGUgdGltZS4gVGhpcwotYXBwbGllcyB0
byB0aGUgbmVzdGluZyBvZiBhbGwga2luZHMgb2YgcGFyZW50aGVzZXMuIEl0IGRvZXMgbm90IGxp
bWl0Ci11bi1uZXN0ZWQsIG5vbi1jYXB0dXJpbmcgcGFyZW50aGVzZXMuIFRoaXMgbnVtYmVyIGNh
biBiZSBtYWRlIGJpZ2dlciBpZgotbmVjZXNzYXJ5IC0gaXQgaXMgdXNlZCB0byBkaW1lbnNpb24g
b25lIGludCBhbmQgb25lIHVuc2lnbmVkIGNoYXIgdmVjdG9yIGF0Ci1jb21waWxlIHRpbWUuICov
Ci0KLSNkZWZpbmUgQlJBU1RBQ0tfU0laRSAyMDAKLQotLyogVGFibGUgZm9yIGhhbmRsaW5nIGVz
Y2FwZWQgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgJzAnLSd6Jy4gUG9zaXRpdmUgcmV0dXJucwot
YXJlIHNpbXBsZSBkYXRhIHZhbHVlczsgbmVnYXRpdmUgdmFsdWVzIGFyZSBmb3Igc3BlY2lhbCB0
aGluZ3MgbGlrZSBcZCBhbmQgc28KLW9uLiBaZXJvIG1lYW5zIGZ1cnRoZXIgcHJvY2Vzc2luZyBp
cyBuZWVkZWQgKGZvciB0aGluZ3MgbGlrZSBceCksIG9yIHRoZSBlc2NhcGUKLWlzIGludmFsaWQu
ICovCi0KLXN0YXRpYyBjb25zdCBzaG9ydCBpbnQgZXNjYXBlc1tdID0gewotICAgICAwLCAgICAg
IDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgLyog
MCAtIDcgKi8KLSAgICAgMCwgICAgICAwLCAgICAnOicsICAgICc7JywgICAgJzwnLCAgICAnPScs
ICAgICc+JywgICAgJz8nLCAgIC8qIDggLSA/ICovCi0gICAnQCcsICAgICAgMCwgLUVTQ19CLCAg
ICAgIDAsIC1FU0NfRCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAvKiBAIC0gRyAqLwotICAg
ICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAg
IDAsICAgLyogSCAtIE8gKi8KLSAgICAgMCwgICAgICAwLCAgICAgIDAsIC1FU0NfUywgICAgICAw
LCAgICAgIDAsICAgICAgMCwgLUVTQ19XLCAgIC8qIFAgLSBXICovCi0gICAgIDAsICAgICAgMCwg
ICAgICAwLCAgICAnWycsICAgJ1xcJywgICAgJ10nLCAgICAnXicsICAgICdfJywgICAvKiBYIC0g
XyAqLwotICAgJ2AnLCAgICAgIDcsIC1FU0NfYiwgICAgICAwLCAtRVNDX2QsICAgICAgMCwgICAn
XGYnLCAgICAgIDAsICAgLyogYCAtIGcgKi8KLSAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAg
MCwgICAgICAwLCAgICAgIDAsICAgJ1xuJywgICAgICAwLCAgIC8qIGggLSBvICovCi0gICAgIDAs
ICAgICAgMCwgICAgJ1xyJywgLUVTQ19zLCAgICdcdCcsICAgICAgMCwgICdcdicsIC1FU0Nfdywg
ICAvKiBwIC0gdyAqLwotICAgICAwLCAgICAgIDAsICAgICAgMCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogeCAtIHogKi8KLX07Ci0KLQotLyogVGhlIHRleHRz
IG9mIGNvbXBpbGUtdGltZSBlcnJvciBtZXNzYWdlcy4gVGhlc2UgYXJlICJjaGFyICoiIGJlY2F1
c2UgdGhleQotYXJlIHBhc3NlZCB0byB0aGUgb3V0c2lkZSB3b3JsZC4gKi8KLQotc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBlcnJvcl90ZXh0c1tdID0gewotICAibm8gZXJyb3IiLAotICAiXFwg
YXQgZW5kIG9mIHBhdHRlcm4iLAotICAiXFxjIGF0IGVuZCBvZiBwYXR0ZXJuIiwKLSAgInVucmVj
b2duaXplZCBjaGFyYWN0ZXIgZm9sbG93cyBcXCIsCi0gICJudW1iZXJzIG91dCBvZiBvcmRlciBp
biB7fSBxdWFudGlmaWVyIiwKLSAgLyogNSAqLwotICAibnVtYmVyIHRvbyBiaWcgaW4ge30gcXVh
bnRpZmllciIsCi0gICJtaXNzaW5nIHRlcm1pbmF0aW5nIF0gZm9yIGNoYXJhY3RlciBjbGFzcyIs
Ci0gICJpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSBpbiBjaGFyYWN0ZXIgY2xhc3MiLAotICAicmFu
Z2Ugb3V0IG9mIG9yZGVyIGluIGNoYXJhY3RlciBjbGFzcyIsCi0gICJub3RoaW5nIHRvIHJlcGVh
dCIsCi0gIC8qIDEwICovCi0gICJvcGVyYW5kIG9mIHVubGltaXRlZCByZXBlYXQgY291bGQgbWF0
Y2ggdGhlIGVtcHR5IHN0cmluZyIsCi0gICJpbnRlcm5hbCBlcnJvcjogdW5leHBlY3RlZCByZXBl
YXQiLAotICAidW5yZWNvZ25pemVkIGNoYXJhY3RlciBhZnRlciAoPyIsCi0gICJQT1NJWCBuYW1l
ZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWQgb25seSB3aXRoaW4gYSBjbGFzcyIsCi0gICJtaXNzaW5n
ICkiLAotICAvKiAxNSAqLwotICAicmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBzdWJwYXR0ZXJu
IiwKLSAgImVycm9mZnNldCBwYXNzZWQgYXMgTlVMTCIsCi0gICJ1bmtub3duIG9wdGlvbiBiaXQo
cykgc2V0IiwKLSAgIm1pc3NpbmcgKSBhZnRlciBjb21tZW50IiwKLSAgInBhcmVudGhlc2VzIG5l
c3RlZCB0b28gZGVlcGx5IiwKLSAgLyogMjAgKi8KLSAgInJlZ3VsYXIgZXhwcmVzc2lvbiB0b28g
bGFyZ2UiLAotICAiZmFpbGVkIHRvIGdldCBtZW1vcnkiLAotICAidW5tYXRjaGVkIHBhcmVudGhl
c2VzIiwKLSAgImludGVybmFsIGVycm9yOiBjb2RlIG92ZXJmbG93IiwKLSAgInVucmVjb2duaXpl
ZCBjaGFyYWN0ZXIgYWZ0ZXIgKD88IiwKLSAgLyogMjUgKi8KLSAgImxvb2tiZWhpbmQgYXNzZXJ0
aW9uIGlzIG5vdCBmaXhlZCBsZW5ndGgiLAotICAibWFsZm9ybWVkIG51bWJlciBhZnRlciAoPygi
LAotICAiY29uZGl0aW9uYWwgZ3JvdXAgY29udGFpbnMgbW9yZSB0aGFuIHR3byBicmFuY2hlcyIs
Ci0gICJhc3NlcnRpb24gZXhwZWN0ZWQgYWZ0ZXIgKD8oIiwKLSAgIig/UiBvciAoP2RpZ2l0cyBt
dXN0IGJlIGZvbGxvd2VkIGJ5ICkiLAotICAvKiAzMCAqLwotICAidW5rbm93biBQT1NJWCBjbGFz
cyBuYW1lIiwKLSAgIlBPU0lYIGNvbGxhdGluZyBlbGVtZW50cyBhcmUgbm90IHN1cHBvcnRlZCIs
Ci0gICJ0aGlzIHZlcnNpb24gb2YgUENSRSBpcyBub3QgY29tcGlsZWQgd2l0aCBQQ1JFX1VURjgg
c3VwcG9ydCIsCi0gICJzcGFyZSBlcnJvciIsCi0gICJjaGFyYWN0ZXIgdmFsdWUgaW4gXFx4ey4u
Ln0gc2VxdWVuY2UgaXMgdG9vIGxhcmdlIiwKLSAgLyogMzUgKi8KLSAgImludmFsaWQgY29uZGl0
aW9uICg/KDApIiwKLSAgIlxcQyBub3QgYWxsb3dlZCBpbiBsb29rYmVoaW5kIGFzc2VydGlvbiIs
Ci0gICJQQ1JFIGRvZXMgbm90IHN1cHBvcnQgXFxMLCBcXGwsIFxcTiwgXFxVLCBvciBcXHUiLAot
ICAibnVtYmVyIGFmdGVyICg/QyBpcyA+IDI1NSIsCi0gICJjbG9zaW5nICkgZm9yICg/QyBleHBl
Y3RlZCIsCi0gIC8qIDQwICovCi0gICJyZWN1cnNpdmUgY2FsbCBjb3VsZCBsb29wIGluZGVmaW5p
dGVseSIsCi0gICJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/UCIsCi0gICJzeW50YXgg
ZXJyb3IgYWZ0ZXIgKD9QIiwKLSAgInR3byBuYW1lZCBncm91cHMgaGF2ZSB0aGUgc2FtZSBuYW1l
IiwKLSAgImludmFsaWQgVVRGLTE2IHN0cmluZyIsCi0gIC8qIDQ1ICovCi0gICJzdXBwb3J0IGZv
ciBcXFAsIFxccCwgYW5kIFxcWCBoYXMgbm90IGJlZW4gY29tcGlsZWQiLAotICAibWFsZm9ybWVk
IFxcUCBvciBcXHAgc2VxdWVuY2UiLAotICAidW5rbm93biBwcm9wZXJ0eSBuYW1lIGFmdGVyIFxc
UCBvciBcXHAiCi19OwotCi0KLS8qIFRhYmxlIHRvIGlkZW50aWZ5IGRpZ2l0cyBhbmQgaGV4IGRp
Z2l0cy4gVGhpcyBpcyB1c2VkIHdoZW4gY29tcGlsaW5nCi1wYXR0ZXJucy4gTm90ZSB0aGF0IHRo
ZSB0YWJsZXMgaW4gY2hhcnRhYmxlcyBhcmUgZGVwZW5kZW50IG9uIHRoZSBsb2NhbGUsIGFuZAot
bWF5IG1hcmsgYXJiaXRyYXJ5IGNoYXJhY3RlcnMgYXMgZGlnaXRzIC0gYnV0IHRoZSBQQ1JFIGNv
bXBpbGluZyBjb2RlIGV4cGVjdHMKLXRvIGhhbmRsZSBvbmx5IDAtOSwgYS16LCBhbmQgQS1aIGFz
IGRpZ2l0cyB3aGVuIGNvbXBpbGluZy4gVGhhdCBpcyB3aHkgd2UgaGF2ZQotYSBwcml2YXRlIHRh
YmxlIGhlcmUuIEl0IGNvc3RzIDI1NiBieXRlcywgYnV0IGl0IGlzIGEgbG90IGZhc3RlciB0aGFu
IGRvaW5nCi1jaGFyYWN0ZXIgdmFsdWUgdGVzdHMgKGF0IGxlYXN0IGluIHNvbWUgc2ltcGxlIGNh
c2VzIEkgdGltZWQpLCBhbmQgaW4gc29tZQotYXBwbGljYXRpb25zIG9uZSB3YW50cyBQQ1JFIHRv
IGNvbXBpbGUgZWZmaWNpZW50bHkgYXMgd2VsbCBhcyBtYXRjaAotZWZmaWNpZW50bHkuCi0KLUZv
ciBjb252ZW5pZW5jZSwgd2UgdXNlIHRoZSBzYW1lIGJpdCBkZWZpbml0aW9ucyBhcyBpbiBjaGFy
dGFibGVzOgotCi0gIDB4MDQgICBkZWNpbWFsIGRpZ2l0Ci0gIDB4MDggICBoZXhhZGVjaW1hbCBk
aWdpdAotCi1UaGVuIHdlIGNhbiB1c2UgY3R5cGVfZGlnaXQgYW5kIGN0eXBlX3hkaWdpdCBpbiB0
aGUgY29kZS4gKi8KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGlnaXRhYltdID0KLSAg
ewotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAgMC0gIDcg
Ki8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgIDgtIDE1
ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDE2LSAy
MyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAyNC0g
MzEgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgICAt
ICcgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICgg
LSAvICAqLwotICAweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsIC8qICAw
IC0gNyAgKi8KLSAgMHgwYywweDBjLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAg
OCAtID8gICovCi0gIDB4MDAsMHgwOCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwMCwgLyog
IEAgLSBHICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8q
ICBIIC0gTyAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAv
KiAgUCAtIFcgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwg
LyogIFggLSBfICAqLwotICAweDAwLDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDAs
IC8qICBgIC0gZyAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LCAvKiAgaCAtIG8gICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwgLyogIHAgLSB3ICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsIC8qICB4IC0xMjcgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLCAvKiAxMjgtMTM1ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwgLyogMTM2LTE0MyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LDB4MDAsIC8qIDE0NC0xNTEgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwweDAwLCAvKiAxNTItMTU5ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsMHgwMCwgLyogMTYwLTE2NyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsIC8qIDE2OC0xNzUgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwweDAwLCAvKiAxNzYtMTgzICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LDB4MDAsMHgwMCwgLyogMTg0LTE5MSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwweDAwLDB4MDAsIC8qIDE5Mi0xOTkgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsMHgwMCwweDAwLCAvKiAyMDAtMjA3ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsMHgwMCwgLyogMjA4LTIxNSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwweDAwLDB4MDAsIC8qIDIxNi0yMjMgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LDB4MDAsMHgwMCwweDAwLCAvKiAyMjQtMjMxICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwweDAwLDB4MDAsMHgwMCwgLyogMjMyLTIzOSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsMHgwMCwweDAwLDB4MDAsIC8qIDI0MC0yNDcgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsMHgwMCwweDAwfTsvKiAyNDgtMjU1ICovCi0KLQotLyogRGVmaW5pdGlvbiB0byBh
bGxvdyBtdXR1YWwgcmVjdXJzaW9uICovCi0KLXN0YXRpYyBCT09MCi0gIGNvbXBpbGVfcmVnZXgo
aW50LCBpbnQgKiwgdXNjaGFyICoqLCBjb25zdCBwY3JlX3VjaGFyICoqLCBjb25zdCBwY3JlX3Vj
aGFyICosIGludCAqLCBpbnQsCi0gICAgaW50ICosIGludCAqLCBjb21waWxlX2RhdGEgKik7Ci0K
LQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
KiAgICAgICAgICAgIEhhbmRsZSBlc2NhcGVzICAgICAgICAgICAgICAgICAgICAgICoKLSoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBcIGhhcyBiZWVuIGVuY291bnRlcmVkLiBJdCBlaXRo
ZXIgcmV0dXJucyBhCi1wb3NpdGl2ZSB2YWx1ZSBmb3IgYSBzaW1wbGUgZXNjYXBlIHN1Y2ggYXMg
XG4sIG9yIGEgbmVnYXRpdmUgdmFsdWUgd2hpY2gKLWVuY29kZXMgb25lIG9mIHRoZSBtb3JlIGNv
bXBsaWNhdGVkIHRoaW5ncyBzdWNoIGFzIFxkLiBXaGVuIFVURi04IGlzIGVuYWJsZWQsCi1hIHBv
c2l0aXZlIHZhbHVlIGdyZWF0ZXIgdGhhbiAyNTUgbWF5IGJlIHJldHVybmVkLiBPbiBlbnRyeSwg
cHRyIGlzIHBvaW50aW5nIGF0Ci10aGUgXC4gT24gZXhpdCwgaXQgaXMgb24gdGhlIGZpbmFsIGNo
YXJhY3RlciBvZiB0aGUgZXNjYXBlIHNlcXVlbmNlLgotCi1Bcmd1bWVudHM6Ci0gIHB0cnB0ciAg
ICAgICAgIHBvaW50cyB0byB0aGUgcGF0dGVybiBwb3NpdGlvbiBwb2ludGVyCi0gIGVycm9yY29k
ZXB0ciAgIHBvaW50cyB0byB0aGUgZXJyb3Jjb2RlIHZhcmlhYmxlCi0gIGJyYWNvdW50ICAgICAg
IG51bWJlciBvZiBwcmV2aW91cyBleHRyYWN0aW5nIGJyYWNrZXRzCi0gIG9wdGlvbnMgICAgICAg
IHRoZSBvcHRpb25zIGJpdHMKLSAgaXNjbGFzcyAgICAgICAgVFJVRSBpZiBpbnNpZGUgYSBjaGFy
YWN0ZXIgY2xhc3MKLQotUmV0dXJuczogICAgICAgICB6ZXJvIG9yIHBvc2l0aXZlID0+IGEgZGF0
YSBjaGFyYWN0ZXIKLSAgICAgICAgICAgICAgICAgbmVnYXRpdmUgPT4gYSBzcGVjaWFsIGVzY2Fw
ZSBzZXF1ZW5jZQotICAgICAgICAgICAgICAgICBvbiBlcnJvciwgZXJyb3JwdHIgaXMgc2V0Ci0q
LwotCi1zdGF0aWMgaW50Ci1jaGVja19lc2NhcGUoY29uc3QgcGNyZV91Y2hhciAqKnB0cnB0ciwg
Y29uc3QgcGNyZV91Y2hhciAqcGF0dGVybkVuZCwgaW50ICplcnJvcmNvZGVwdHIsIGludCBicmFj
b3VudCwKLSAgQk9PTCBpc2NsYXNzKQotewotY29uc3QgcGNyZV91Y2hhciAqcHRyID0gKnB0cnB0
ciArIDE7Ci1pbnQgYywgaTsKLQotLyogSWYgYmFja3NsYXNoIGlzIGF0IHRoZSBlbmQgb2YgdGhl
IHBhdHRlcm4sIGl0J3MgYW4gZXJyb3IuICovCi1pZiAocHRyID09IHBhdHRlcm5FbmQpIHsKLSAg
ICAqZXJyb3Jjb2RlcHRyID0gRVJSMTsKLSAgICAqcHRycHRyID0gcHRyOwotICAgIHJldHVybiAw
OwotfQotCi1jID0gKnB0cjsKLQotaWYgKDApIHsgfSAvKiBNYXRjaGVzIHdpdGggZWxzZSBiZWxv
dzsgdG8gbWFrZSBtZXJnaW5nIGVhc2llci4gKi8KLQotLyogTm9uLWFscGhhbWVyaWNzIGFyZSBs
aXRlcmFscy4gRm9yIGRpZ2l0cyBvciBsZXR0ZXJzLCBkbyBhbiBpbml0aWFsIGxvb2t1cCBpbgot
YSB0YWJsZS4gQSBub24temVybyByZXN1bHQgaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIHJldHVy
bmVkIGltbWVkaWF0ZWx5LgotT3RoZXJ3aXNlIGZ1cnRoZXIgcHJvY2Vzc2luZyBtYXkgYmUgcmVx
dWlyZWQuICovCi0KLWVsc2UgaWYgKGMgPCAnMCcgfHwgYyA+ICd6Jykge30gICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBOb3QgYWxwaGFtZXJpYyAqLwotZWxzZSBpZiAoKGkgPSBlc2NhcGVz
W2MgLSAnMCddKSAhPSAwKSBjID0gaTsKLQotLyogRXNjYXBlcyB0aGF0IG5lZWQgZnVydGhlciBw
cm9jZXNzaW5nLCBvciBhcmUgaWxsZWdhbC4gKi8KLQotZWxzZQotICB7Ci0gIGNvbnN0IHBjcmVf
dWNoYXIgKm9sZHB0cjsKLSAgc3dpdGNoIChjKQotICAgIHsKLSAgICAvKiBBIG51bWJlciBvZiBQ
ZXJsIGVzY2FwZXMgYXJlIG5vdCBoYW5kbGVkIGJ5IFBDUkUuIFdlIGdpdmUgYW4gZXhwbGljaXQK
LSAgICBlcnJvci4gKi8KLQotICAgIC8qIFRoZSBoYW5kbGluZyBvZiBlc2NhcGUgc2VxdWVuY2Vz
IGNvbnNpc3Rpbmcgb2YgYSBzdHJpbmcgb2YgZGlnaXRzCi0gICAgc3RhcnRpbmcgd2l0aCBvbmUg
dGhhdCBpcyBub3QgemVybyBpcyBub3Qgc3RyYWlnaHRmb3J3YXJkLiBCeSBleHBlcmltZW50LAot
ICAgIHRoZSB3YXkgUGVybCB3b3JrcyBzZWVtcyB0byBiZSBhcyBmb2xsb3dzOgotCi0gICAgT3V0
c2lkZSBhIGNoYXJhY3RlciBjbGFzcywgdGhlIGRpZ2l0cyBhcmUgcmVhZCBhcyBhIGRlY2ltYWwg
bnVtYmVyLiBJZiB0aGUKLSAgICBudW1iZXIgaXMgbGVzcyB0aGFuIDEwLCBvciBpZiB0aGVyZSBh
cmUgdGhhdCBtYW55IHByZXZpb3VzIGV4dHJhY3RpbmcKLSAgICBsZWZ0IGJyYWNrZXRzLCB0aGVu
IGl0IGlzIGEgYmFjayByZWZlcmVuY2UuIE90aGVyd2lzZSwgdXAgdG8gdGhyZWUgb2N0YWwKLSAg
ICBkaWdpdHMgYXJlIHJlYWQgdG8gZm9ybSBhbiBlc2NhcGVkIGJ5dGUuIFRodXMgXDEyMyBpcyBs
aWtlbHkgdG8gYmUgb2N0YWwKLSAgICAxMjMgKGNmIFwwMTIzLCB3aGljaCBpcyBvY3RhbCAwMTIg
Zm9sbG93ZWQgYnkgdGhlIGxpdGVyYWwgMykuIElmIHRoZSBvY3RhbAotICAgIHZhbHVlIGlzIGdy
ZWF0ZXIgdGhhbiAzNzcsIHRoZSBsZWFzdCBzaWduaWZpY2FudCA4IGJpdHMgYXJlIHRha2VuLiBJ
bnNpZGUgYQotICAgIGNoYXJhY3RlciBjbGFzcywgXCBmb2xsb3dlZCBieSBhIGRpZ2l0IGlzIGFs
d2F5cyBhbiBvY3RhbCBudW1iZXIuICovCi0KLSAgICBjYXNlICcxJzogY2FzZSAnMic6IGNhc2Ug
JzMnOiBjYXNlICc0JzogY2FzZSAnNSc6Ci0gICAgY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4
JzogY2FzZSAnOSc6Ci0KLSAgICBpZiAoIWlzY2xhc3MpCi0gICAgICB7Ci0gICAgICBvbGRwdHIg
PSBwdHI7Ci0gICAgICBjIC09ICcwJzsKLSAgICAgIHdoaWxlIChwdHIgKyAxIDwgcGF0dGVybkVu
ZCAmJiAoRElHSVRBQihwdHJbMV0pICYgY3R5cGVfZGlnaXQpICE9IDApCi0gICAgICAgIGMgPSBj
ICogMTAgKyAqKCsrcHRyKSAtICcwJzsKLSAgICAgIGlmIChjIDwgMTAgfHwgYyA8PSBicmFjb3Vu
dCkKLSAgICAgICAgewotICAgICAgICBjID0gLShFU0NfUkVGICsgYyk7Ci0gICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICBwdHIgPSBvbGRwdHI7ICAgICAgLyogUHV0IHRoZSBwb2ludGVy
IGJhY2sgYW5kIGZhbGwgdGhyb3VnaCAqLwotICAgICAgfQotCi0gICAgLyogSGFuZGxlIGFuIG9j
dGFsIG51bWJlciBmb2xsb3dpbmcgXC4gSWYgdGhlIGZpcnN0IGRpZ2l0IGlzIDggb3IgOSwgUGVy
bAotICAgIGdlbmVyYXRlcyBhIGJpbmFyeSB6ZXJvIGJ5dGUgYW5kIHRyZWF0cyB0aGUgZGlnaXQg
YXMgYSBmb2xsb3dpbmcgbGl0ZXJhbC4KLSAgICBUaHVzIHdlIGhhdmUgdG8gcHVsbCBiYWNrIHRo
ZSBwb2ludGVyIGJ5IG9uZS4gKi8KLQotICAgIGlmICgoYyA9ICpwdHIpID49ICc4JykKLSAgICAg
IHsKLSAgICAgIHB0ci0tOwotICAgICAgYyA9IDA7Ci0gICAgICBicmVhazsKLSAgICAgIH0KLQot
ICAgIC8qIFwwIGFsd2F5cyBzdGFydHMgYW4gb2N0YWwgbnVtYmVyLCBidXQgd2UgbWF5IGRyb3Ag
dGhyb3VnaCB0byBoZXJlIHdpdGggYQotICAgIGxhcmdlciBmaXJzdCBvY3RhbCBkaWdpdC4gKi8K
LQotICAgIGNhc2UgJzAnOgotICAgIGMgLT0gJzAnOwotICAgIHdoaWxlIChpKysgPCAyICYmIHB0
ciArIDEgPCBwYXR0ZXJuRW5kICYmIHB0clsxXSA+PSAnMCcgJiYgcHRyWzFdIDw9ICc3JykKLSAg
ICAgICAgYyA9IGMgKiA4ICsgKigrK3B0cikgLSAnMCc7Ci0gICAgYyAmPSAyNTU7ICAgICAvKiBU
YWtlIGxlYXN0IHNpZ25pZmljYW50IDggYml0cyAqLwotICAgIGJyZWFrOwotCi0gICAgLyogXHgg
aXMgY29tcGxpY2F0ZWQuIFx4e2RkZH0gaXMgYSBjaGFyYWN0ZXIgbnVtYmVyIHdoaWNoIGNhbiBi
ZSBncmVhdGVyCi0gICAgdGhhbiAweGZmIGluIHV0ZjggbW9kZSwgYnV0IG9ubHkgaWYgdGhlIGRk
ZCBhcmUgaGV4IGRpZ2l0cy4gSWYgbm90LCB7IGlzCi0gICAgdHJlYXRlZCBhcyBhIGRhdGEgY2hh
cmFjdGVyLiAqLwotCi0gICAgY2FzZSAneCc6Ci0gICAgaWYgKHB0ciArIDEgPCBwYXR0ZXJuRW5k
ICYmIHB0clsxXSA9PSAneycpCi0gICAgICB7Ci0gICAgICBjb25zdCBwY3JlX3VjaGFyICpwdCA9
IHB0ciArIDI7Ci0gICAgICBpbnQgY291bnQgPSAwOwotCi0gICAgICBjID0gMDsKLSAgICAgIHdo
aWxlIChwdCA8IHBhdHRlcm5FbmQgJiYgKERJR0lUQUIoKnB0KSAmIGN0eXBlX3hkaWdpdCkgIT0g
MCkKLSAgICAgICAgewotICAgICAgICByZWdpc3RlciBpbnQgY2MgPSAqcHQrKzsKLSAgICAgICAg
aWYgKGMgPT0gMCAmJiBjYyA9PSAnMCcpIGNvbnRpbnVlOyAgICAgLyogTGVhZGluZyB6ZXJvZXMg
Ki8KLSAgICAgICAgY291bnQrKzsKLQotICAgICAgICBpZiAoY2MgPj0gJ2EnKSBjYyAtPSAzMjsg
ICAgICAgICAgICAgICAvKiBDb252ZXJ0IHRvIHVwcGVyIGNhc2UgKi8KLSAgICAgICAgYyA9IChj
IDw8IDQpICsgY2MgLSAoKGNjIDwgJ0EnKT8gJzAnIDogKCdBJyAtIDEwKSk7Ci0gICAgICAgIH0K
LQotICAgICAgaWYgKHB0IDwgcGF0dGVybkVuZCAmJiAqcHQgPT0gJ30nKQotICAgICAgICB7Ci0g
ICAgICAgIGlmIChjIDwgMCB8fCBjb3VudCA+IDgpICplcnJvcmNvZGVwdHIgPSBFUlIzNDsKLSAg
ICAgICAgZWxzZSBpZiAoYyA+PSAweEQ4MDAgJiYgYyA8PSAweERGRkYpICplcnJvcmNvZGVwdHIg
PSBFUlIzNDsgLy8gaGFsZiBvZiBzdXJyb2dhdGUgcGFpcgotICAgICAgICBlbHNlIGlmIChjID49
IDB4RkREMCAmJiBjIDw9IDB4RkRFRikgKmVycm9yY29kZXB0ciA9IEVSUjM0OyAvLyA/Ci0gICAg
ICAgIGVsc2UgaWYgKGMgPT0gMHhGRkZFKSAqZXJyb3Jjb2RlcHRyID0gRVJSMzQ7IC8vIG5vdCBh
IGNoYXJhY3RlcgotICAgICAgICBlbHNlIGlmIChjID09IDB4RkZGRikgICplcnJvcmNvZGVwdHIg
PSBFUlIzNDsgLy8gbm90IGEgY2hhcmFjdGVyCi0gICAgICAgIGVsc2UgaWYgKGMgPiAweDEwRkZG
RikgKmVycm9yY29kZXB0ciA9IEVSUjM0OyAvLyBvdXQgb2YgVW5pY29kZSBjaGFyYWN0ZXIgcmFu
Z2UKLSAgICAgICAgcHRyID0gcHQ7Ci0gICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAg
IC8qIElmIHRoZSBzZXF1ZW5jZSBvZiBoZXggZGlnaXRzIGRvZXMgbm90IGVuZCB3aXRoICd9Jywg
dGhlbiB3ZSBkb24ndAotICAgICAgcmVjb2duaXplIHRoaXMgY29uc3RydWN0OyBmYWxsIHRocm91
Z2ggdG8gdGhlIG5vcm1hbCBceCBoYW5kbGluZy4gKi8KLSAgICAgIH0KLQotICAgIC8qIFJlYWQg
anVzdCBhIHNpbmdsZS1ieXRlIGhleC1kZWZpbmVkIGNoYXIgKi8KLQotICAgIGMgPSAwOwotICAg
IHdoaWxlIChpKysgPCAyICYmIHB0ciArIDEgPCBwYXR0ZXJuRW5kICYmIChESUdJVEFCKHB0clsx
XSkgJiBjdHlwZV94ZGlnaXQpICE9IDApCi0gICAgICB7Ci0gICAgICBpbnQgY2M7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIFNvbWUgY29tcGlsZXJzIGRvbid0IGxpa2UgKysgKi8K
LSAgICAgIGNjID0gKigrK3B0cik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogaW4gaW5pdGlh
bGl6ZXJzICovCi0gICAgICBpZiAoY2MgPj0gJ2EnKSBjYyAtPSAzMjsgICAgICAgICAgICAgIC8q
IENvbnZlcnQgdG8gdXBwZXIgY2FzZSAqLwotICAgICAgYyA9IGMgKiAxNiArIGNjIC0gKChjYyA8
ICdBJyk/ICcwJyA6ICgnQScgLSAxMCkpOwotICAgICAgfQotICAgIGJyZWFrOwotCi0gICAgY2Fz
ZSAndSc6IHsKLSAgICBjb25zdCBwY3JlX3VjaGFyICpwdCA9IHB0cjsKLSAgICBjID0gMDsKLSAg
ICB3aGlsZSAoaSsrIDwgNCkKLSAgICAgIHsKLSAgICAgIGlmIChwdCArIDEgPj0gcGF0dGVybkVu
ZCB8fCAoRElHSVRBQihwdFsxXSkgJiBjdHlwZV94ZGlnaXQpID09IDApCi0gICAgICAgIHsKLSAg
ICAgICAgcHQgPSBwdHI7Ci0gICAgICAgIGMgPSAndSc7Ci0gICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgaW50IGNjOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIFNvbWUgY29tcGlsZXJzIGRvbid0IGxpa2UgKysgKi8KLSAgICAg
ICAgY2MgPSAqKCsrcHQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluIGluaXRpYWxpemVy
cyAqLwotICAgICAgICBpZiAoY2MgPj0gJ2EnKSBjYyAtPSAzMjsgICAgICAgICAgICAgLyogQ29u
dmVydCB0byB1cHBlciBjYXNlICovCi0gICAgICAgIGMgPSBjICogMTYgKyBjYyAtICgoY2MgPCAn
QScpPyAnMCcgOiAoJ0EnIC0gMTApKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIHB0ciA9IHB0
OwotICAgIGJyZWFrOwotICAgIH0KLQotICAgIC8qIE90aGVyIHNwZWNpYWwgZXNjYXBlcyBub3Qg
c3RhcnRpbmcgd2l0aCBhIGRpZ2l0IGFyZSBzdHJhaWdodGZvcndhcmQgKi8KLQotICAgIGNhc2Ug
J2MnOgotICAgIGlmICgrK3B0ciA9PSBwYXR0ZXJuRW5kKQotICAgICAgewotICAgICAgKmVycm9y
Y29kZXB0ciA9IEVSUjI7Ci0gICAgICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICBjID0gKnB0cjsK
LQotICAgIC8qIEEgbGV0dGVyIGlzIHVwcGVyLWNhc2VkOyB0aGVuIHRoZSAweDQwIGJpdCBpcyBm
bGlwcGVkLiBUaGlzIGNvZGluZwotICAgIGlzIEFTQ0lJLXNwZWNpZmljLCBidXQgdGhlbiB0aGUg
d2hvbGUgY29uY2VwdCBvZiBcY3ggaXMgQVNDSUktc3BlY2lmaWMuCi0gICAgKEhvd2V2ZXIsIGFu
IEVCQ0RJQyBlcXVpdmFsZW50IGhhcyBub3cgYmVlbiBhZGRlZC4pICovCi0KLSAgICBpZiAoYyA+
PSAnYScgJiYgYyA8PSAneicpIGMgLT0gMzI7Ci0gICAgYyBePSAweDQwOwotICAgIGJyZWFrOwot
Ci0gICAgZGVmYXVsdDoKLSAgICBicmVhazsKLSAgICB9Ci0gIH0KLQotKnB0cnB0ciA9IHB0cjsK
LXJldHVybiBjOwotfQotCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSogICAgICAgICAgICBDaGVjayBmb3IgY291bnRlZCByZXBlYXQgICAg
ICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotCi0vKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgJ3snIGlzIGVuY291bnRl
cmVkIGluIGEgcGxhY2Ugd2hlcmUgaXQgbWlnaHQKLXN0YXJ0IGEgcXVhbnRpZmllci4gSXQgbG9v
a3MgYWhlYWQgdG8gc2VlIGlmIGl0IHJlYWxseSBpcyBhIHF1YW50aWZpZXIgb3Igbm90LgotSXQg
aXMgb25seSBhIHF1YW50aWZpZXIgaWYgaXQgaXMgb25lIG9mIHRoZSBmb3JtcyB7ZGRkfSB7ZGRk
LH0gb3Ige2RkZCxkZGR9Ci13aGVyZSB0aGUgZGRkcyBhcmUgZGlnaXRzLgotCi1Bcmd1bWVudHM6
Ci0gIHAgICAgICAgICBwb2ludGVyIHRvIHRoZSBmaXJzdCBjaGFyIGFmdGVyICd7JwotCi1SZXR1
cm5zOiAgICBUUlVFIG9yIEZBTFNFCi0qLwotCi1zdGF0aWMgQk9PTAotaXNfY291bnRlZF9yZXBl
YXQoY29uc3QgcGNyZV91Y2hhciAqcCwgY29uc3QgcGNyZV91Y2hhciAqcGF0dGVybkVuZCkKLXsK
LWlmIChwID49IHBhdHRlcm5FbmQgfHwgKERJR0lUQUIoKnApICYgY3R5cGVfZGlnaXQpID09IDAp
Ci0gICAgcmV0dXJuIEZBTFNFOwotcCsrOwotd2hpbGUgKHAgPCBwYXR0ZXJuRW5kICYmIChESUdJ
VEFCKCpwKSAmIGN0eXBlX2RpZ2l0KSAhPSAwKQotICAgIHArKzsKLWlmIChwIDwgcGF0dGVybkVu
ZCAmJiAqcCA9PSAnfScpCi0gICAgcmV0dXJuIFRSVUU7Ci0KLWlmIChwID49IHBhdHRlcm5FbmQg
fHwgKnArKyAhPSAnLCcpCi0gICAgcmV0dXJuIEZBTFNFOwotaWYgKHAgPCBwYXR0ZXJuRW5kICYm
ICpwID09ICd9JykKLSAgICByZXR1cm4gVFJVRTsKLQotaWYgKHAgPj0gcGF0dGVybkVuZCB8fCAo
RElHSVRBQigqcCkgJiBjdHlwZV9kaWdpdCkgPT0gMCkKLSAgICByZXR1cm4gRkFMU0U7Ci1wKys7
Ci13aGlsZSAocCA8IHBhdHRlcm5FbmQgJiYgKERJR0lUQUIoKnApICYgY3R5cGVfZGlnaXQpICE9
IDApCi0gICAgcCsrOwotCi1yZXR1cm4gKHAgPCBwYXR0ZXJuRW5kICYmICpwID09ICd9Jyk7Ci19
Ci0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgotKiAgICAgICAgIFJlYWQgcmVwZWF0IGNvdW50cyAgICAgICAgICAgICAgICAgICAgICoKLSoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFJl
YWQgYW4gaXRlbSBvZiB0aGUgZm9ybSB7bixtfSBhbmQgcmV0dXJuIHRoZSB2YWx1ZXMuIFRoaXMg
aXMgY2FsbGVkIG9ubHkKLWFmdGVyIGlzX2NvdW50ZWRfcmVwZWF0KCkgaGFzIGNvbmZpcm1lZCB0
aGF0IGEgcmVwZWF0LWNvdW50IHF1YW50aWZpZXIgZXhpc3RzLAotc28gdGhlIHN5bnRheCBpcyBn
dWFyYW50ZWVkIHRvIGJlIGNvcnJlY3QsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIHRoZSB2YWx1ZXMu
Ci0KLUFyZ3VtZW50czoKLSAgcCAgICAgICAgICAgICAgcG9pbnRlciB0byBmaXJzdCBjaGFyIGFm
dGVyICd7JwotICBtaW5wICAgICAgICAgICBwb2ludGVyIHRvIGludCBmb3IgbWluCi0gIG1heHAg
ICAgICAgICAgIHBvaW50ZXIgdG8gaW50IGZvciBtYXgKLSAgICAgICAgICAgICAgICAgcmV0dXJu
ZWQgYXMgLTEgaWYgbm8gbWF4Ci0gIGVycm9yY29kZXB0ciAgIHBvaW50cyB0byBlcnJvciBjb2Rl
IHZhcmlhYmxlCi0KLVJldHVybnM6ICAgICAgICAgcG9pbnRlciB0byAnfScgb24gc3VjY2VzczsK
LSAgICAgICAgICAgICAgICAgY3VycmVudCBwdHIgb24gZXJyb3IsIHdpdGggZXJyb3Jjb2RlcHRy
IHNldCBub24temVybwotKi8KLQotc3RhdGljIGNvbnN0IHBjcmVfdWNoYXIgKgotcmVhZF9yZXBl
YXRfY291bnRzKGNvbnN0IHBjcmVfdWNoYXIgKnAsIGludCAqbWlucCwgaW50ICptYXhwLCBpbnQg
KmVycm9yY29kZXB0cikKLXsKLWludCBtaW4gPSAwOwotaW50IG1heCA9IC0xOwotCi0vKiBSZWFk
IHRoZSBtaW5pbXVtIHZhbHVlIGFuZCBkbyBhIHBhcmFub2lkIGNoZWNrOiBhIG5lZ2F0aXZlIHZh
bHVlIGluZGljYXRlcwotYW4gaW50ZWdlciBvdmVyZmxvdy4gKi8KLQotd2hpbGUgKChESUdJVEFC
KCpwKSAmIGN0eXBlX2RpZ2l0KSAhPSAwKSBtaW4gPSBtaW4gKiAxMCArICpwKysgLSAnMCc7Ci1p
ZiAobWluIDwgMCB8fCBtaW4gPiA2NTUzNSkKLSAgewotICAqZXJyb3Jjb2RlcHRyID0gRVJSNTsK
LSAgcmV0dXJuIHA7Ci0gIH0KLQotLyogUmVhZCB0aGUgbWF4aW11bSB2YWx1ZSBpZiB0aGVyZSBp
cyBvbmUsIGFuZCBhZ2FpbiBkbyBhIHBhcmFub2lkIG9uIGl0cyBzaXplLgotQWxzbywgbWF4IG11
c3Qgbm90IGJlIGxlc3MgdGhhbiBtaW4uICovCi0KLWlmICgqcCA9PSAnfScpIG1heCA9IG1pbjsg
ZWxzZQotICB7Ci0gIGlmICgqKCsrcCkgIT0gJ30nKQotICAgIHsKLSAgICBtYXggPSAwOwotICAg
IHdoaWxlKChESUdJVEFCKCpwKSAmIGN0eXBlX2RpZ2l0KSAhPSAwKSBtYXggPSBtYXggKiAxMCAr
ICpwKysgLSAnMCc7Ci0gICAgaWYgKG1heCA8IDAgfHwgbWF4ID4gNjU1MzUpCi0gICAgICB7Ci0g
ICAgICAqZXJyb3Jjb2RlcHRyID0gRVJSNTsKLSAgICAgIHJldHVybiBwOwotICAgICAgfQotICAg
IGlmIChtYXggPCBtaW4pCi0gICAgICB7Ci0gICAgICAqZXJyb3Jjb2RlcHRyID0gRVJSNDsKLSAg
ICAgIHJldHVybiBwOwotICAgICAgfQotICAgIH0KLSAgfQotCi0vKiBGaWxsIGluIHRoZSByZXF1
aXJlZCB2YXJpYWJsZXMsIGFuZCBwYXNzIGJhY2sgdGhlIHBvaW50ZXIgdG8gdGhlIHRlcm1pbmF0
aW5nCi0nfScuICovCi0KLSptaW5wID0gbWluOwotKm1heHAgPSBtYXg7Ci1yZXR1cm4gcDsKLX0K
LQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ci0qICAgICAgRmluZCBmaXJzdCBzaWduaWZpY2FudCBvcCBjb2RlICAgICAgICAgICAgKgotKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogVGhp
cyBpcyBjYWxsZWQgYnkgc2V2ZXJhbCBmdW5jdGlvbnMgdGhhdCBzY2FuIGEgY29tcGlsZWQgZXhw
cmVzc2lvbiBsb29raW5nCi1mb3IgYSBmaXhlZCBmaXJzdCBjaGFyYWN0ZXIsIG9yIGFuIGFuY2hv
cmluZyBvcCBjb2RlIGV0Yy4gSXQgc2tpcHMgb3ZlciB0aGluZ3MKLXRoYXQgZG8gbm90IGluZmx1
ZW5jZSB0aGlzLiBGb3Igc29tZSBjYWxscywgYSBjaGFuZ2Ugb2Ygb3B0aW9uIGlzIGltcG9ydGFu
dC4KLUZvciBzb21lIGNhbGxzLCBpdCBtYWtlcyBzZW5zZSB0byBza2lwIG5lZ2F0aXZlIGZvcndh
cmQgYW5kIGFsbCBiYWNrd2FyZAotYXNzZXJ0aW9ucywgYW5kIGFsc28gdGhlIFxiIGFzc2VydGlv
bjsgZm9yIG90aGVycyBpdCBkb2VzIG5vdC4KLQotQXJndW1lbnRzOgotICBjb2RlICAgICAgICAg
cG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGdyb3VwCi0gIHNraXBhc3NlcnQgICBUUlVFIGlm
IGNlcnRhaW4gYXNzZXJ0aW9ucyBhcmUgdG8gYmUgc2tpcHBlZAotCi1SZXR1cm5zOiAgICAgICBw
b2ludGVyIHRvIHRoZSBmaXJzdCBzaWduaWZpY2FudCBvcGNvZGUKLSovCi0KLXN0YXRpYyBjb25z
dCB1c2NoYXIqCi1maXJzdF9zaWduaWZpY2FudF9jb2RlKGNvbnN0IHVzY2hhciAqY29kZSwgQk9P
TCBza2lwYXNzZXJ0KQotewotZm9yICg7OykKLSAgewotICBzd2l0Y2ggKCpjb2RlKQotICAgIHsK
LSAgICBjYXNlIE9QX0FTU0VSVF9OT1Q6Ci0gICAgaWYgKCFza2lwYXNzZXJ0KSByZXR1cm4gY29k
ZTsKLSAgICBkbyBjb2RlICs9IEdFVChjb2RlLCAxKTsgd2hpbGUgKCpjb2RlID09IE9QX0FMVCk7
Ci0gICAgY29kZSArPSBfcGNyZV9PUF9sZW5ndGhzWypjb2RlXTsKLSAgICBicmVhazsKLQotICAg
IGNhc2UgT1BfV09SRF9CT1VOREFSWToKLSAgICBjYXNlIE9QX05PVF9XT1JEX0JPVU5EQVJZOgot
ICAgIGlmICghc2tpcGFzc2VydCkgcmV0dXJuIGNvZGU7Ci0gICAgLyogRmFsbCB0aHJvdWdoICov
Ci0KLSAgICBjYXNlIE9QX0JSQU5VTUJFUjoKLSAgICBjb2RlICs9IF9wY3JlX09QX2xlbmd0aHNb
KmNvZGVdOwotICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICByZXR1cm4gY29kZTsKLSAg
ICB9Ci0gIH0KLS8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi19Ci0KLQotCi0KLS8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAg
ICBGaW5kIHRoZSBmaXhlZCBsZW5ndGggb2YgYSBwYXR0ZXJuICAgICAgKgotKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogU2NhbiBhIHBhdHRl
cm4gYW5kIGNvbXB1dGUgdGhlIGZpeGVkIGxlbmd0aCBvZiBzdWJqZWN0IHRoYXQgd2lsbCBtYXRj
aCBpdCwKLWlmIHRoZSBsZW5ndGggaXMgZml4ZWQuIFRoaXMgaXMgbmVlZGVkIGZvciBkZWFsaW5n
IHdpdGggYmFja3dhcmQgYXNzZXJ0aW9ucy4KLUluIFVURjggbW9kZSwgdGhlIHJlc3VsdCBpcyBp
biBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIGJ5dGVzLgotCi1Bcmd1bWVudHM6Ci0gIGNvZGUgICAg
IHBvaW50cyB0byB0aGUgc3RhcnQgb2YgdGhlIHBhdHRlcm4gKHRoZSBicmFja2V0KQotICBvcHRp
b25zICB0aGUgY29tcGlsaW5nIG9wdGlvbnMKLQotUmV0dXJuczogICB0aGUgZml4ZWQgbGVuZ3Ro
LCBvciAtMSBpZiB0aGVyZSBpcyBubyBmaXhlZCBsZW5ndGgsCi0gICAgICAgICAgICAgb3IgLTIg
aWYgXEMgd2FzIGVuY291bnRlcmVkCi0qLwotCi1zdGF0aWMgaW50Ci1maW5kX2ZpeGVkbGVuZ3Ro
KHVzY2hhciAqY29kZSwgaW50IG9wdGlvbnMpCi17Ci1pbnQgbGVuZ3RoID0gLTE7Ci0KLXJlZ2lz
dGVyIGludCBicmFuY2hsZW5ndGggPSAwOwotcmVnaXN0ZXIgdXNjaGFyICpjYyA9IGNvZGUgKyAx
ICsgTElOS19TSVpFOwotCi0vKiBTY2FuIGFsb25nIHRoZSBvcGNvZGVzIGZvciB0aGlzIGJyYW5j
aC4gSWYgd2UgZ2V0IHRvIHRoZSBlbmQgb2YgdGhlCi1icmFuY2gsIGNoZWNrIHRoZSBsZW5ndGgg
YWdhaW5zdCB0aGF0IG9mIHRoZSBvdGhlciBicmFuY2hlcy4gKi8KLQotZm9yICg7OykKLSAgewot
ICBpbnQgZDsKLSAgcmVnaXN0ZXIgaW50IG9wID0gKmNjOwotICBpZiAob3AgPj0gT1BfQlJBKSBv
cCA9IE9QX0JSQTsKLQotICBzd2l0Y2ggKG9wKQotICAgIHsKLSAgICBjYXNlIE9QX0JSQToKLSAg
ICBjYXNlIE9QX09OQ0U6Ci0gICAgZCA9IGZpbmRfZml4ZWRsZW5ndGgoY2MsIG9wdGlvbnMpOwot
ICAgIGlmIChkIDwgMCkgcmV0dXJuIGQ7Ci0gICAgYnJhbmNobGVuZ3RoICs9IGQ7Ci0gICAgZG8g
Y2MgKz0gR0VUKGNjLCAxKTsgd2hpbGUgKCpjYyA9PSBPUF9BTFQpOwotICAgIGNjICs9IDEgKyBM
SU5LX1NJWkU7Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBSZWFjaGVkIGVuZCBvZiBhIGJyYW5jaDsg
aWYgaXQncyBhIGtldCBpdCBpcyB0aGUgZW5kIG9mIGEgbmVzdGVkCi0gICAgY2FsbC4gSWYgaXQn
cyBBTFQgaXQgaXMgYW4gYWx0ZXJuYXRpb24gaW4gYSBuZXN0ZWQgY2FsbC4gSWYgaXQgaXMKLSAg
ICBFTkQgaXQncyB0aGUgZW5kIG9mIHRoZSBvdXRlciBjYWxsLiBBbGwgY2FuIGJlIGhhbmRsZWQg
YnkgdGhlIHNhbWUgY29kZS4gKi8KLQotICAgIGNhc2UgT1BfQUxUOgotICAgIGNhc2UgT1BfS0VU
OgotICAgIGNhc2UgT1BfS0VUUk1BWDoKLSAgICBjYXNlIE9QX0tFVFJNSU46Ci0gICAgY2FzZSBP
UF9FTkQ6Ci0gICAgaWYgKGxlbmd0aCA8IDApIGxlbmd0aCA9IGJyYW5jaGxlbmd0aDsKLSAgICAg
IGVsc2UgaWYgKGxlbmd0aCAhPSBicmFuY2hsZW5ndGgpIHJldHVybiAtMTsKLSAgICBpZiAoKmNj
ICE9IE9QX0FMVCkgcmV0dXJuIGxlbmd0aDsKLSAgICBjYyArPSAxICsgTElOS19TSVpFOwotICAg
IGJyYW5jaGxlbmd0aCA9IDA7Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBTa2lwIG92ZXIgYXNzZXJ0
aXZlIHN1YnBhdHRlcm5zICovCi0KLSAgICBjYXNlIE9QX0FTU0VSVDoKLSAgICBjYXNlIE9QX0FT
U0VSVF9OT1Q6Ci0gICAgZG8gY2MgKz0gR0VUKGNjLCAxKTsgd2hpbGUgKCpjYyA9PSBPUF9BTFQp
OwotICAgIC8qIEZhbGwgdGhyb3VnaCAqLwotCi0gICAgLyogU2tpcCBvdmVyIHRoaW5ncyB0aGF0
IGRvbid0IG1hdGNoIGNoYXJzICovCi0KLSAgICBjYXNlIE9QX0JSQU5VTUJFUjoKLSAgICBjYXNl
IE9QX0NJUkM6Ci0gICAgY2FzZSBPUF9ET0xMOgotICAgIGNhc2UgT1BfTk9UX1dPUkRfQk9VTkRB
Ulk6Ci0gICAgY2FzZSBPUF9XT1JEX0JPVU5EQVJZOgotICAgIGNjICs9IF9wY3JlX09QX2xlbmd0
aHNbKmNjXTsKLSAgICBicmVhazsKLQotICAgIC8qIEhhbmRsZSBsaXRlcmFsIGNoYXJhY3RlcnMg
Ki8KLQotICAgIGNhc2UgT1BfQ0hBUjoKLSAgICBjYXNlIE9QX0NIQVJOQzoKLSAgICBjYXNlIE9Q
X05PVDoKLSAgICBicmFuY2hsZW5ndGgrKzsKLSAgICBjYyArPSAyOwotICAgIHdoaWxlICgoKmNj
ICYgMHhjMCkgPT0gMHg4MCkgY2MrKzsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfQVNDSUlf
Q0hBUjoKLSAgICBjYXNlIE9QX0FTQ0lJX0xFVFRFUl9OQzoKLSAgICBicmFuY2hsZW5ndGgrKzsK
LSAgICBjYyArPSAyOwotICAgIGJyZWFrOwotCi0gICAgLyogSGFuZGxlIGV4YWN0IHJlcGV0aXRp
b25zLiBUaGUgY291bnQgaXMgYWxyZWFkeSBpbiBjaGFyYWN0ZXJzLCBidXQgd2UKLSAgICBuZWVk
IHRvIHNraXAgb3ZlciBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgaW4gVVRGOCBtb2RlLiAgKi8KLQot
ICAgIGNhc2UgT1BfRVhBQ1Q6Ci0gICAgYnJhbmNobGVuZ3RoICs9IEdFVDIoY2MsMSk7Ci0gICAg
Y2MgKz0gNDsKLSAgICB3aGlsZSgoKmNjICYgMHg4MCkgPT0gMHg4MCkgY2MrKzsKLSAgICBicmVh
azsKLQotICAgIGNhc2UgT1BfVFlQRUVYQUNUOgotICAgIGJyYW5jaGxlbmd0aCArPSBHRVQyKGNj
LDEpOwotICAgIGNjICs9IDQ7Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBIYW5kbGUgc2luZ2xlLWNo
YXIgbWF0Y2hlcnMgKi8KLQotICAgIGNhc2UgT1BfTk9UX0RJR0lUOgotICAgIGNhc2UgT1BfRElH
SVQ6Ci0gICAgY2FzZSBPUF9OT1RfV0hJVEVTUEFDRToKLSAgICBjYXNlIE9QX1dISVRFU1BBQ0U6
Ci0gICAgY2FzZSBPUF9OT1RfV09SRENIQVI6Ci0gICAgY2FzZSBPUF9XT1JEQ0hBUjoKLSAgICBj
YXNlIE9QX0FOWToKLSAgICBicmFuY2hsZW5ndGgrKzsKLSAgICBjYysrOwotICAgIGJyZWFrOwot
Ci0gICAgLyogQ2hlY2sgYSBjbGFzcyBmb3IgdmFyaWFibGUgcXVhbnRpZmljYXRpb24gKi8KLQot
ICAgIGNhc2UgT1BfWENMQVNTOgotICAgIGNjICs9IEdFVChjYywgMSkgLSAzMzsKLSAgICAvKiBG
YWxsIHRocm91Z2ggKi8KLQotICAgIGNhc2UgT1BfQ0xBU1M6Ci0gICAgY2FzZSBPUF9OQ0xBU1M6
Ci0gICAgY2MgKz0gMzM7Ci0KLSAgICBzd2l0Y2ggKCpjYykKLSAgICAgIHsKLSAgICAgIGNhc2Ug
T1BfQ1JTVEFSOgotICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6Ci0gICAgICBjYXNlIE9QX0NSUVVF
Ulk6Ci0gICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6Ci0gICAgICByZXR1cm4gLTE7Ci0KLSAgICAg
IGNhc2UgT1BfQ1JSQU5HRToKLSAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToKLSAgICAgIGlmIChH
RVQyKGNjLDEpICE9IEdFVDIoY2MsMykpIHJldHVybiAtMTsKLSAgICAgIGJyYW5jaGxlbmd0aCAr
PSBHRVQyKGNjLDEpOwotICAgICAgY2MgKz0gNTsKLSAgICAgIGJyZWFrOwotCi0gICAgICBkZWZh
dWx0OgotICAgICAgYnJhbmNobGVuZ3RoKys7Ci0gICAgICB9Ci0gICAgYnJlYWs7Ci0KLSAgICAv
KiBBbnl0aGluZyBlbHNlIGlzIHZhcmlhYmxlIGxlbmd0aCAqLwotCi0gICAgZGVmYXVsdDoKLSAg
ICByZXR1cm4gLTE7Ci0gICAgfQotICB9Ci0vKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwot
fQotCi0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotKiAgICBTY2FuIGNvbXBpbGVkIGJyYW5jaCBmb3Igbm9uLWVtcHRpbmVzcyAgICAgICoK
LSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8q
IFRoaXMgZnVuY3Rpb24gc2NhbnMgdGhyb3VnaCBhIGJyYW5jaCBvZiBhIGNvbXBpbGVkIHBhdHRl
cm4gdG8gc2VlIHdoZXRoZXIgaXQKLWNhbiBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nIG9yIG5vdC4g
SXQgaXMgY2FsbGVkIG9ubHkgZnJvbSBjb3VsZF9iZV9lbXB0eSgpCi1iZWxvdy4gTm90ZSB0aGF0
IGZpcnN0X3NpZ25pZmljYW50X2NvZGUoKSBza2lwcyBvdmVyIGFzc2VydGlvbnMuIElmIHdlIGhp
dCBhbgotdW5jbG9zZWQgYnJhY2tldCwgd2UgcmV0dXJuICJlbXB0eSIgLSB0aGlzIG1lYW5zIHdl
J3ZlIHN0cnVjayBhbiBpbm5lciBicmFja2V0Ci13aG9zZSBjdXJyZW50IGJyYW5jaCB3aWxsIGFs
cmVhZHkgaGF2ZSBiZWVuIHNjYW5uZWQuCi0KLUFyZ3VtZW50czoKLSAgY29kZSAgICAgICAgcG9p
bnRzIHRvIHN0YXJ0IG9mIHNlYXJjaAotICBlbmRjb2RlICAgICBwb2ludHMgdG8gd2hlcmUgdG8g
c3RvcAotCi1SZXR1cm5zOiAgICAgIFRSVUUgaWYgd2hhdCBpcyBtYXRjaGVkIGNvdWxkIGJlIGVt
cHR5Ci0qLwotCi1zdGF0aWMgQk9PTAotY291bGRfYmVfZW1wdHlfYnJhbmNoKGNvbnN0IHVzY2hh
ciAqY29kZSwgY29uc3QgdXNjaGFyICplbmRjb2RlKQotewotcmVnaXN0ZXIgaW50IGM7Ci1mb3Ig
KGNvZGUgPSBmaXJzdF9zaWduaWZpY2FudF9jb2RlKGNvZGUgKyAxICsgTElOS19TSVpFLCBUUlVF
KTsKLSAgICAgY29kZSA8IGVuZGNvZGU7Ci0gICAgIGNvZGUgPSBmaXJzdF9zaWduaWZpY2FudF9j
b2RlKGNvZGUgKyBfcGNyZV9PUF9sZW5ndGhzW2NdLCBUUlVFKSkKLSAgewotICBjb25zdCB1c2No
YXIgKmNjb2RlOwotCi0gIGMgPSAqY29kZTsKLQotICBpZiAoYyA+PSBPUF9CUkEpCi0gICAgewot
ICAgIEJPT0wgZW1wdHlfYnJhbmNoOwotICAgIGlmIChHRVQoY29kZSwgMSkgPT0gMCkgcmV0dXJu
IFRSVUU7ICAgIC8qIEhpdCB1bmNsb3NlZCBicmFja2V0ICovCi0KLSAgICAvKiBTY2FuIGEgY2xv
c2VkIGJyYWNrZXQgKi8KLQotICAgIGVtcHR5X2JyYW5jaCA9IEZBTFNFOwotICAgIGRvCi0gICAg
ICB7Ci0gICAgICBpZiAoIWVtcHR5X2JyYW5jaCAmJiBjb3VsZF9iZV9lbXB0eV9icmFuY2goY29k
ZSwgZW5kY29kZSkpCi0gICAgICAgIGVtcHR5X2JyYW5jaCA9IFRSVUU7Ci0gICAgICBjb2RlICs9
IEdFVChjb2RlLCAxKTsKLSAgICAgIH0KLSAgICB3aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsKLSAg
ICBpZiAoIWVtcHR5X2JyYW5jaCkgcmV0dXJuIEZBTFNFOyAgIC8qIEFsbCBicmFuY2hlcyBhcmUg
bm9uLWVtcHR5ICovCi0gICAgY29kZSArPSAxICsgTElOS19TSVpFOwotICAgIGMgPSAqY29kZTsK
LSAgICB9Ci0KLSAgZWxzZSBzd2l0Y2ggKGMpCi0gICAgewotICAgIC8qIENoZWNrIGZvciBxdWFu
dGlmaWVycyBhZnRlciBhIGNsYXNzICovCi0KLSAgICBjYXNlIE9QX1hDTEFTUzoKLSAgICBjY29k
ZSA9IGNvZGUgKyBHRVQoY29kZSwgMSk7Ci0gICAgZ290byBDSEVDS19DTEFTU19SRVBFQVQ7Ci0K
LSAgICBjYXNlIE9QX0NMQVNTOgotICAgIGNhc2UgT1BfTkNMQVNTOgotICAgIGNjb2RlID0gY29k
ZSArIDMzOwotCi0gICAgQ0hFQ0tfQ0xBU1NfUkVQRUFUOgotCi0gICAgc3dpdGNoICgqY2NvZGUp
Ci0gICAgICB7Ci0gICAgICBjYXNlIE9QX0NSU1RBUjogICAgICAgICAgICAvKiBUaGVzZSBjb3Vs
ZCBiZSBlbXB0eTsgY29udGludWUgKi8KLSAgICAgIGNhc2UgT1BfQ1JNSU5TVEFSOgotICAgICAg
Y2FzZSBPUF9DUlFVRVJZOgotICAgICAgY2FzZSBPUF9DUk1JTlFVRVJZOgotICAgICAgYnJlYWs7
Ci0KLSAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgIC8qIE5vbi1yZXBlYXQgPT4gY2xh
c3MgbXVzdCBtYXRjaCAqLwotICAgICAgY2FzZSBPUF9DUlBMVVM6ICAgICAgICAgICAgLyogVGhl
c2UgcmVwZWF0cyBhcmVuJ3QgZW1wdHkgKi8KLSAgICAgIGNhc2UgT1BfQ1JNSU5QTFVTOgotICAg
ICAgcmV0dXJuIEZBTFNFOwotCi0gICAgICBjYXNlIE9QX0NSUkFOR0U6Ci0gICAgICBjYXNlIE9Q
X0NSTUlOUkFOR0U6Ci0gICAgICBpZiAoR0VUMihjY29kZSwgMSkgPiAwKSByZXR1cm4gRkFMU0U7
ICAvKiBNaW5pbXVtID4gMCAqLwotICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgYnJlYWs7Ci0K
LSAgICAvKiBPcGNvZGVzIHRoYXQgbXVzdCBtYXRjaCBhIGNoYXJhY3RlciAqLwotCi0gICAgY2Fz
ZSBPUF9OT1RfRElHSVQ6Ci0gICAgY2FzZSBPUF9ESUdJVDoKLSAgICBjYXNlIE9QX05PVF9XSElU
RVNQQUNFOgotICAgIGNhc2UgT1BfV0hJVEVTUEFDRToKLSAgICBjYXNlIE9QX05PVF9XT1JEQ0hB
UjoKLSAgICBjYXNlIE9QX1dPUkRDSEFSOgotICAgIGNhc2UgT1BfQU5ZOgotICAgIGNhc2UgT1Bf
Q0hBUjoKLSAgICBjYXNlIE9QX0NIQVJOQzoKLSAgICBjYXNlIE9QX0FTQ0lJX0NIQVI6Ci0gICAg
Y2FzZSBPUF9BU0NJSV9MRVRURVJfTkM6Ci0gICAgY2FzZSBPUF9OT1Q6Ci0gICAgY2FzZSBPUF9Q
TFVTOgotICAgIGNhc2UgT1BfTUlOUExVUzoKLSAgICBjYXNlIE9QX0VYQUNUOgotICAgIGNhc2Ug
T1BfTk9UUExVUzoKLSAgICBjYXNlIE9QX05PVE1JTlBMVVM6Ci0gICAgY2FzZSBPUF9OT1RFWEFD
VDoKLSAgICBjYXNlIE9QX1RZUEVQTFVTOgotICAgIGNhc2UgT1BfVFlQRU1JTlBMVVM6Ci0gICAg
Y2FzZSBPUF9UWVBFRVhBQ1Q6Ci0gICAgcmV0dXJuIEZBTFNFOwotCi0gICAgLyogRW5kIG9mIGJy
YW5jaCAqLwotCi0gICAgY2FzZSBPUF9LRVQ6Ci0gICAgY2FzZSBPUF9LRVRSTUFYOgotICAgIGNh
c2UgT1BfS0VUUk1JTjoKLSAgICBjYXNlIE9QX0FMVDoKLSAgICByZXR1cm4gVFJVRTsKLQotICAg
IC8qIEluIFVURi04IG1vZGUsIFNUQVIsIE1JTlNUQVIsIFFVRVJZLCBNSU5RVUVSWSwgVVBUTywg
YW5kIE1JTlVQVE8gIG1heSBiZQotICAgIGZvbGxvd2VkIGJ5IGEgbXVsdGlieXRlIGNoYXJhY3Rl
ciAqLwotCi0gICAgY2FzZSBPUF9TVEFSOgotICAgIGNhc2UgT1BfTUlOU1RBUjoKLSAgICBjYXNl
IE9QX1FVRVJZOgotICAgIGNhc2UgT1BfTUlOUVVFUlk6Ci0gICAgY2FzZSBPUF9VUFRPOgotICAg
IGNhc2UgT1BfTUlOVVBUTzoKLSAgICB3aGlsZSAoKGNvZGVbMl0gJiAweGMwKSA9PSAweDgwKSBj
b2RlKys7Ci0gICAgYnJlYWs7Ci0gICAgfQotICB9Ci0KLXJldHVybiBUUlVFOwotfQotCi0KLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICAgICBDb21wbGV0ZSBhIGNhbGxvdXQgaXRlbSAgICAgICAgICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBBIGNhbGxvdXQg
aXRlbSBjb250YWlucyB0aGUgbGVuZ3RoIG9mIHRoZSBuZXh0IGl0ZW0gaW4gdGhlIHBhdHRlcm4s
IHdoaWNoCi13ZSBjYW4ndCBmaWxsIGluIHRpbGwgYWZ0ZXIgd2UgaGF2ZSByZWFjaGVkIHRoZSBy
ZWxldmFudCBwb2ludC4gVGhpcyBpcyB1c2VkCi1mb3IgYm90aCBhdXRvbWF0aWMgYW5kIG1hbnVh
bCBjYWxsb3V0cy4KLQotQXJndW1lbnRzOgotICBwcmV2aW91c19jYWxsb3V0ICAgcG9pbnRzIHRv
IHByZXZpb3VzIGNhbGxvdXQgaXRlbQotICBwdHIgICAgICAgICAgICAgICAgY3VycmVudCBwYXR0
ZXJuIHBvaW50ZXIKLSAgY2QgICAgICAgICAgICAgICAgIHBvaW50ZXJzIHRvIHRhYmxlcyBldGMK
LQotUmV0dXJuczogICAgICAgICAgICAgbm90aGluZwotKi8KLQotc3RhdGljIHZvaWQKLWNvbXBs
ZXRlX2NhbGxvdXQodXNjaGFyICpwcmV2aW91c19jYWxsb3V0LCBjb25zdCBwY3JlX3VjaGFyICpw
dHIsIGNvbXBpbGVfZGF0YSAqY2QpCi17Ci1pbnQgbGVuZ3RoID0gcHRyIC0gY2QtPnN0YXJ0X3Bh
dHRlcm4gLSBHRVQocHJldmlvdXNfY2FsbG91dCwgMik7Ci1QVVQocHJldmlvdXNfY2FsbG91dCwg
MiArIExJTktfU0laRSwgbGVuZ3RoKTsKLX0KLQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICAgICBHZXQgb3RoZXJjYXNlIHJh
bmdlICAgICAgICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8KLQotLyogVGhpcyBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIHN0YXJ0
IGFuZCBlbmQgb2YgYSBjbGFzcyByYW5nZSwgaW4gVVRGLTggbW9kZQotd2l0aCBVQ1Agc3VwcG9y
dC4gSXQgc2VhcmNoZXMgdXAgdGhlIGNoYXJhY3RlcnMsIGxvb2tpbmcgZm9yIGludGVybmFsIHJh
bmdlcyBvZgotY2hhcmFjdGVycyBpbiB0aGUgIm90aGVyIiBjYXNlLiBFYWNoIGNhbGwgcmV0dXJu
cyB0aGUgbmV4dCBvbmUsIHVwZGF0aW5nIHRoZQotc3RhcnQgYWRkcmVzcy4KLQotQXJndW1lbnRz
OgotICBjcHRyICAgICAgICBwb2ludHMgdG8gc3RhcnRpbmcgY2hhcmFjdGVyIHZhbHVlOyB1cGRh
dGVkCi0gIGQgICAgICAgICAgIGVuZCB2YWx1ZQotICBvY3B0ciAgICAgICB3aGVyZSB0byBwdXQg
c3RhcnQgb2Ygb3RoZXJjYXNlIHJhbmdlCi0gIG9kcHRyICAgICAgIHdoZXJlIHRvIHB1dCBlbmQg
b2Ygb3RoZXJjYXNlIHJhbmdlCi0KLVlpZWxkOiAgICAgICAgVFJVRSB3aGVuIHJhbmdlIHJldHVy
bmVkOyBGQUxTRSB3aGVuIG5vIG1vcmUKLSovCi0KLXN0YXRpYyBCT09MCi1nZXRfb3RoZXJjYXNl
X3JhbmdlKGludCAqY3B0ciwgaW50IGQsIGludCAqb2NwdHIsIGludCAqb2RwdHIpCi17Ci1pbnQg
Yywgb3RoZXJjYXNlID0gMCwgbmV4dDsKLQotZm9yIChjID0gKmNwdHI7IGMgPD0gZDsgYysrKQot
ICB7IGlmICgob3RoZXJjYXNlID0gX3BjcmVfdWNwX290aGVyY2FzZShjKSkgPj0gMCkgYnJlYWs7
IH0KLQotaWYgKGMgPiBkKSByZXR1cm4gRkFMU0U7Ci0KLSpvY3B0ciA9IG90aGVyY2FzZTsKLW5l
eHQgPSBvdGhlcmNhc2UgKyAxOwotCi1mb3IgKCsrYzsgYyA8PSBkOyBjKyspCi0gIHsKLSAgaWYg
KF9wY3JlX3VjcF9vdGhlcmNhc2UoYykgIT0gbmV4dCkgYnJlYWs7Ci0gIG5leHQrKzsKLSAgfQot
Ci0qb2RwdHIgPSBuZXh0IC0gMTsKLSpjcHRyID0gYzsKLQotcmV0dXJuIFRSVUU7Ci19Ci0KLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICAgICAgIENvbXBpbGUgb25lIGJyYW5jaCAgICAgICAgICAgICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBTY2FuIHRoZSBw
YXR0ZXJuLCBjb21waWxpbmcgaXQgaW50byB0aGUgY29kZSB2ZWN0b3IuIElmIHRoZSBvcHRpb25z
IGFyZQotY2hhbmdlZCBkdXJpbmcgdGhlIGJyYW5jaCwgdGhlIHBvaW50ZXIgaXMgdXNlZCB0byBj
aGFuZ2UgdGhlIGV4dGVybmFsIG9wdGlvbnMKLWJpdHMuCi0KLUFyZ3VtZW50czoKLSAgb3B0aW9u
c3B0ciAgICAgcG9pbnRlciB0byB0aGUgb3B0aW9uIGJpdHMKLSAgYnJhY2tldHMgICAgICAgcG9p
bnRzIHRvIG51bWJlciBvZiBleHRyYWN0aW5nIGJyYWNrZXRzIHVzZWQKLSAgY29kZXB0ciAgICAg
ICAgcG9pbnRzIHRvIHRoZSBwb2ludGVyIHRvIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQKLSAgcHRy
cHRyICAgICAgICAgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHBhdHRlcm4gcG9pbnRlcgotICBlcnJv
cmNvZGVwdHIgICBwb2ludHMgdG8gZXJyb3IgY29kZSB2YXJpYWJsZQotICBmaXJzdGJ5dGVwdHIg
ICBzZXQgdG8gaW5pdGlhbCBsaXRlcmFsIGNoYXJhY3Rlciwgb3IgPCAwIChSRVFfVU5TRVQsIFJF
UV9OT05FKQotICByZXFieXRlcHRyICAgICBzZXQgdG8gdGhlIGxhc3QgbGl0ZXJhbCBjaGFyYWN0
ZXIgcmVxdWlyZWQsIGVsc2UgPCAwCi0gIGNkICAgICAgICAgICAgIGNvbnRhaW5zIHBvaW50ZXJz
IHRvIHRhYmxlcyBldGMuCi0KLVJldHVybnM6ICAgICAgICAgVFJVRSBvbiBzdWNjZXNzCi0gICAg
ICAgICAgICAgICAgIEZBTFNFLCB3aXRoICplcnJvcmNvZGVwdHIgc2V0IG5vbi16ZXJvIG9uIGVy
cm9yCi0qLwotCi1zdGF0aWMgQk9PTAotY29tcGlsZV9icmFuY2goaW50ICpvcHRpb25zcHRyLCBp
bnQgKmJyYWNrZXRzLCB1c2NoYXIgKipjb2RlcHRyLAotICBjb25zdCBwY3JlX3VjaGFyICoqcHRy
cHRyLCBjb25zdCBwY3JlX3VjaGFyICpwYXR0ZXJuRW5kLCBpbnQgKmVycm9yY29kZXB0ciwgaW50
ICpmaXJzdGJ5dGVwdHIsCi0gIGludCAqcmVxYnl0ZXB0ciwgY29tcGlsZV9kYXRhICpjZCkKLXsK
LWludCByZXBlYXRfdHlwZSwgb3BfdHlwZTsKLWludCByZXBlYXRfbWluID0gMCwgcmVwZWF0X21h
eCA9IDA7ICAgICAgLyogVG8gcGxlYXNlIHBpY2t5IGNvbXBpbGVycyAqLwotaW50IGJyYXZhbHVl
ID0gMDsKLWludCBmaXJzdGJ5dGUsIHJlcWJ5dGU7Ci1pbnQgemVyb3JlcWJ5dGUsIHplcm9maXJz
dGJ5dGU7Ci1pbnQgcmVxX2Nhc2VvcHQsIHJlcXZhcnksIHRlbXByZXF2YXJ5OwotaW50IG9wdGlv
bnMgPSAqb3B0aW9uc3B0cjsKLWludCBhZnRlcl9tYW51YWxfY2FsbG91dCA9IDA7Ci1yZWdpc3Rl
ciBpbnQgYzsKLXJlZ2lzdGVyIHVzY2hhciAqY29kZSA9ICpjb2RlcHRyOwotdXNjaGFyICp0ZW1w
Y29kZTsKLUJPT0wgZ3JvdXBzZXRmaXJzdGJ5dGUgPSBGQUxTRTsKLWNvbnN0IHBjcmVfdWNoYXIg
KnB0ciA9ICpwdHJwdHI7Ci1jb25zdCBwY3JlX3VjaGFyICp0ZW1wcHRyOwotdXNjaGFyICpwcmV2
aW91cyA9IE5VTEw7Ci11c2NoYXIgKnByZXZpb3VzX2NhbGxvdXQgPSBOVUxMOwotdXNjaGFyIGNs
YXNzYml0c1szMl07Ci0KLUJPT0wgY2xhc3NfdXRmODsKLXVzY2hhciAqY2xhc3NfdXRmOGRhdGE7
Ci11c2NoYXIgdXRmOF9jaGFyWzZdOwotCi0vKiBJbml0aWFsaXplIG5vIGZpcnN0IGJ5dGUsIG5v
IHJlcXVpcmVkIGJ5dGUuIFJFUV9VTlNFVCBtZWFucyAibm8gY2hhcgotbWF0Y2hpbmcgZW5jb3Vu
dGVyZWQgeWV0Ii4gSXQgZ2V0cyBjaGFuZ2VkIHRvIFJFUV9OT05FIGlmIHdlIGhpdCBzb21ldGhp
bmcgdGhhdAotbWF0Y2hlcyBhIG5vbi1maXhlZCBjaGFyIGZpcnN0IGNoYXI7IHJlcWJ5dGUganVz
dCByZW1haW5zIHVuc2V0IGlmIHdlIG5ldmVyCi1maW5kIG9uZS4KLQotV2hlbiB3ZSBoaXQgYSBy
ZXBlYXQgd2hvc2UgbWluaW11bSBpcyB6ZXJvLCB3ZSBtYXkgaGF2ZSB0byBhZGp1c3QgdGhlc2Ug
dmFsdWVzCi10byB0YWtlIHRoZSB6ZXJvIHJlcGVhdCBpbnRvIGFjY291bnQuIFRoaXMgaXMgaW1w
bGVtZW50ZWQgYnkgc2V0dGluZyB0aGVtIHRvCi16ZXJvZmlyc3RieXRlIGFuZCB6ZXJvcmVxYnl0
ZSB3aGVuIHN1Y2ggYSByZXBlYXQgaXMgZW5jb3VudGVyZWQuIFRoZSBpbmRpdmlkdWFsCi1pdGVt
IHR5cGVzIHRoYXQgY2FuIGJlIHJlcGVhdGVkIHNldCB0aGVzZSBiYWNrb2ZmIHZhcmlhYmxlcyBh
cHByb3ByaWF0ZWx5LiAqLwotCi1maXJzdGJ5dGUgPSByZXFieXRlID0gemVyb2ZpcnN0Ynl0ZSA9
IHplcm9yZXFieXRlID0gUkVRX1VOU0VUOwotCi0vKiBUaGUgdmFyaWFibGUgcmVxX2Nhc2VvcHQg
Y29udGFpbnMgZWl0aGVyIHRoZSBSRVFfQ0FTRUxFU1MgdmFsdWUgb3IgemVybywKLWFjY29yZGlu
ZyB0byB0aGUgY3VycmVudCBzZXR0aW5nIG9mIHRoZSBjYXNlbGVzcyBmbGFnLiBSRVFfQ0FTRUxF
U1MgaXMgYSBiaXQKLXZhbHVlID4gMjU1LiBJdCBpcyBhZGRlZCBpbnRvIHRoZSBmaXJzdGJ5dGUg
b3IgcmVxYnl0ZSB2YXJpYWJsZXMgdG8gcmVjb3JkIHRoZQotY2FzZSBzdGF0dXMgb2YgdGhlIHZh
bHVlLiBUaGlzIGlzIHVzZWQgb25seSBmb3IgQVNDSUkgY2hhcmFjdGVycy4gKi8KLQotcmVxX2Nh
c2VvcHQgPSAoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKT8gUkVRX0NBU0VMRVNTIDog
MDsKLQotLyogU3dpdGNoIG9uIG5leHQgY2hhcmFjdGVyIHVudGlsIHRoZSBlbmQgb2YgdGhlIGJy
YW5jaCAqLwotCi1mb3IgKDs7IHB0cisrKQotICB7Ci0gIEJPT0wgbmVnYXRlX2NsYXNzOwotICBC
T09MIHNob3VsZF9mbGlwX25lZ2F0aW9uOyAvKiBJZiBhIG5lZ2F0aXZlIHNwZWNpYWwgc3VjaCBh
cyBcUyBpcyB1c2VkLCB3ZSBzaG91bGQgbmVnYXRlIHRoZSB3aG9sZSBjbGFzcyB0byBwcm9wZXJs
eSBzdXBwb3J0IFVuaWNvZGUuICovCi0gIEJPT0wgcG9zc2Vzc2l2ZV9xdWFudGlmaWVyOwotICBC
T09MIGlzX3F1YW50aWZpZXI7Ci0gIGludCBjbGFzc19jaGFyY291bnQ7Ci0gIGludCBjbGFzc19s
YXN0Y2hhcjsKLSAgaW50IG5ld29wdGlvbnM7Ci0gIGludCBza2lwYnl0ZXM7Ci0gIGludCBzdWJy
ZXFieXRlOwotICBpbnQgc3ViZmlyc3RieXRlOwotICBpbnQgbWNsZW5ndGg7Ci0gIHVzY2hhciBt
Y2J1ZmZlcls4XTsKLQotICAvKiBOZXh0IGJ5dGUgaW4gdGhlIHBhdHRlcm4gKi8KLQotICBjID0g
cHRyIDwgcGF0dGVybkVuZCA/ICpwdHIgOiAwOwotCi0gIC8qIEZpbGwgaW4gbGVuZ3RoIG9mIGEg
cHJldmlvdXMgY2FsbG91dCwgZXhjZXB0IHdoZW4gdGhlIG5leHQgdGhpbmcgaXMKLSAgYSBxdWFu
dGlmaWVyLiAqLwotCi0gIGlzX3F1YW50aWZpZXIgPSBjID09ICcqJyB8fCBjID09ICcrJyB8fCBj
ID09ICc/JyB8fAotICAgIChjID09ICd7JyAmJiBpc19jb3VudGVkX3JlcGVhdChwdHIrMSwgcGF0
dGVybkVuZCkpOwotCi0gIGlmICghaXNfcXVhbnRpZmllciAmJiBwcmV2aW91c19jYWxsb3V0ICE9
IE5VTEwgJiYKLSAgICAgICBhZnRlcl9tYW51YWxfY2FsbG91dC0tIDw9IDApCi0gICAgewotICAg
IGNvbXBsZXRlX2NhbGxvdXQocHJldmlvdXNfY2FsbG91dCwgcHRyLCBjZCk7Ci0gICAgcHJldmlv
dXNfY2FsbG91dCA9IE5VTEw7Ci0gICAgfQotCi0gIHN3aXRjaChjKQotICAgIHsKLSAgICAvKiBU
aGUgYnJhbmNoIHRlcm1pbmF0ZXMgYXQgZW5kIG9mIHN0cmluZywgfCwgb3IgKS4gKi8KLQotICAg
IGNhc2UgMDoKLSAgICAgICAgaWYgKHB0ciA8IHBhdHRlcm5FbmQpCi0gICAgICAgICAgICBnb3Rv
IE5PUk1BTF9DSEFSOwotICAgICAgICAvLyBFbmQgb2Ygc3RyaW5nOyBmYWxsIHRocm91Z2gKLSAg
ICBjYXNlICd8JzoKLSAgICBjYXNlICcpJzoKLSAgICAqZmlyc3RieXRlcHRyID0gZmlyc3RieXRl
OwotICAgICpyZXFieXRlcHRyID0gcmVxYnl0ZTsKLSAgICAqY29kZXB0ciA9IGNvZGU7Ci0gICAg
KnB0cnB0ciA9IHB0cjsKLSAgICByZXR1cm4gVFJVRTsKLQotICAgIC8qIEhhbmRsZSBzaW5nbGUt
Y2hhcmFjdGVyIG1ldGFjaGFyYWN0ZXJzLiBJbiBtdWx0aWxpbmUgbW9kZSwgXiBkaXNhYmxlcwot
ICAgIHRoZSBzZXR0aW5nIG9mIGFueSBmb2xsb3dpbmcgY2hhciBhcyBhIGZpcnN0IGNoYXJhY3Rl
ci4gKi8KLQotICAgIGNhc2UgJ14nOgotICAgIGlmICgob3B0aW9ucyAmIFBDUkVfTVVMVElMSU5F
KSAhPSAwKQotICAgICAgewotICAgICAgaWYgKGZpcnN0Ynl0ZSA9PSBSRVFfVU5TRVQpIGZpcnN0
Ynl0ZSA9IFJFUV9OT05FOwotICAgICAgfQotICAgIHByZXZpb3VzID0gTlVMTDsKLSAgICAqY29k
ZSsrID0gT1BfQ0lSQzsKLSAgICBicmVhazsKLQotICAgIGNhc2UgJyQnOgotICAgIHByZXZpb3Vz
ID0gTlVMTDsKLSAgICAqY29kZSsrID0gT1BfRE9MTDsKLSAgICBicmVhazsKLQotICAgIC8qIFRo
ZXJlIGNhbiBuZXZlciBiZSBhIGZpcnN0IGNoYXIgaWYgJy4nIGlzIGZpcnN0LCB3aGF0ZXZlciBo
YXBwZW5zIGFib3V0Ci0gICAgcmVwZWF0cy4gVGhlIHZhbHVlIG9mIHJlcWJ5dGUgZG9lc24ndCBj
aGFuZ2UgZWl0aGVyLiAqLwotCi0gICAgY2FzZSAnLic6Ci0gICAgaWYgKGZpcnN0Ynl0ZSA9PSBS
RVFfVU5TRVQpIGZpcnN0Ynl0ZSA9IFJFUV9OT05FOwotICAgIHplcm9maXJzdGJ5dGUgPSBmaXJz
dGJ5dGU7Ci0gICAgemVyb3JlcWJ5dGUgPSByZXFieXRlOwotICAgIHByZXZpb3VzID0gY29kZTsK
LSAgICAqY29kZSsrID0gT1BfQU5ZOwotICAgIGJyZWFrOwotCi0gICAgLyogQ2hhcmFjdGVyIGNs
YXNzZXMuIElmIHRoZSBpbmNsdWRlZCBjaGFyYWN0ZXJzIGFyZSBhbGwgPCAyNTYsIHdlIGJ1aWxk
IGEKLSAgICAzMi1ieXRlIGJpdG1hcCBvZiB0aGUgcGVybWl0dGVkIGNoYXJhY3RlcnMsIGV4Y2Vw
dCBpbiB0aGUgc3BlY2lhbCBjYXNlCi0gICAgd2hlcmUgdGhlcmUgaXMgb25seSBvbmUgc3VjaCBj
aGFyYWN0ZXIuIEZvciBuZWdhdGVkIGNsYXNzZXMsIHdlIGJ1aWxkIHRoZQotICAgIG1hcCBhcyB1
c3VhbCwgdGhlbiBpbnZlcnQgaXQgYXQgdGhlIGVuZC4gSG93ZXZlciwgd2UgdXNlIGEgZGlmZmVy
ZW50IG9wY29kZQotICAgIHNvIHRoYXQgZGF0YSBjaGFyYWN0ZXJzID4gMjU1IGNhbiBiZSBoYW5k
bGVkIGNvcnJlY3RseS4KLQotICAgIElmIHRoZSBjbGFzcyBjb250YWlucyBjaGFyYWN0ZXJzIG91
dHNpZGUgdGhlIDAtMjU1IHJhbmdlLCBhIGRpZmZlcmVudAotICAgIG9wY29kZSBpcyBjb21waWxl
ZC4gSXQgbWF5IG9wdGlvbmFsbHkgaGF2ZSBhIGJpdCBtYXAgZm9yIGNoYXJhY3RlcnMgPCAyNTYs
Ci0gICAgYnV0IHRob3NlIGFib3ZlIGFyZSBhcmUgZXhwbGljaXRseSBsaXN0ZWQgYWZ0ZXJ3YXJk
cy4gQSBmbGFnIGJ5dGUgdGVsbHMKLSAgICB3aGV0aGVyIHRoZSBiaXRtYXAgaXMgcHJlc2VudCwg
YW5kIHdoZXRoZXIgdGhpcyBpcyBhIG5lZ2F0ZWQgY2xhc3Mgb3Igbm90LgotICAgICovCi0KLSAg
ICBjYXNlICdbJzoKLSAgICBwcmV2aW91cyA9IGNvZGU7Ci0gICAgc2hvdWxkX2ZsaXBfbmVnYXRp
b24gPSBGQUxTRTsKLQotICAgIC8qIFBDUkUgc3VwcG9ydHMgUE9TSVggY2xhc3Mgc3R1ZmYgaW5z
aWRlIGEgY2xhc3MuIFBlcmwgZ2l2ZXMgYW4gZXJyb3IgaWYKLSAgICB0aGV5IGFyZSBlbmNvdW50
ZXJlZCBhdCB0aGUgdG9wIGxldmVsLCBzbyB3ZSdsbCBkbyB0aGF0IHRvby4gKi8KLQotICAgIC8q
IElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgJ14nLCBzZXQgdGhlIG5lZ2F0aW9uIGZsYWcgYW5k
IHNraXAgaXQuICovCi0KLSAgICBpZiAoKGMgPSAqKCsrcHRyKSkgPT0gJ14nKQotICAgICAgewot
ICAgICAgbmVnYXRlX2NsYXNzID0gVFJVRTsKLSAgICAgIGMgPSAqKCsrcHRyKTsKLSAgICAgIH0K
LSAgICBlbHNlCi0gICAgICB7Ci0gICAgICBuZWdhdGVfY2xhc3MgPSBGQUxTRTsKLSAgICAgIH0K
LQotICAgIC8qIEtlZXAgYSBjb3VudCBvZiBjaGFycyB3aXRoIHZhbHVlcyA8IDI1NiBzbyB0aGF0
IHdlIGNhbiBvcHRpbWl6ZSB0aGUgY2FzZQotICAgIG9mIGp1c3QgYSBzaW5nbGUgY2hhcmFjdGVy
IChhcyBsb25nIGFzIGl0J3MgPCAyNTYpLiBGb3IgaGlnaGVyIHZhbHVlZCBVVEYtOAotICAgIGNo
YXJhY3RlcnMsIHdlIGRvbid0IHlldCBkbyBhbnkgb3B0aW1pemF0aW9uLiAqLwotCi0gICAgY2xh
c3NfY2hhcmNvdW50ID0gMDsKLSAgICBjbGFzc19sYXN0Y2hhciA9IC0xOwotCi0gICAgY2xhc3Nf
dXRmOCA9IEZBTFNFOyAgICAgICAgICAgICAgICAgICAgICAgLyogTm8gY2hhcnMgPj0gMjU2ICov
Ci0gICAgY2xhc3NfdXRmOGRhdGEgPSBjb2RlICsgTElOS19TSVpFICsgMzQ7ICAgLyogRm9yIFVU
Ri04IGl0ZW1zICovCi0KLSAgICAvKiBJbml0aWFsaXplIHRoZSAzMi1jaGFyIGJpdCBtYXAgdG8g
YWxsIHplcm9zLiBXZSBoYXZlIHRvIGJ1aWxkIHRoZQotICAgIG1hcCBpbiBhIHRlbXBvcmFyeSBi
aXQgb2Ygc3RvcmUsIGluIGNhc2UgdGhlIGNsYXNzIGNvbnRhaW5zIG9ubHkgMQotICAgIGNoYXJh
Y3RlciAoPCAyNTYpLCBiZWNhdXNlIGluIHRoYXQgY2FzZSB0aGUgY29tcGlsZWQgY29kZSBkb2Vz
bid0IHVzZSB0aGUKLSAgICBiaXQgbWFwLiAqLwotCi0gICAgbWVtc2V0KGNsYXNzYml0cywgMCwg
MzIgKiBzaXplb2YodXNjaGFyKSk7Ci0KLSAgICAvKiBQcm9jZXNzIGNoYXJhY3RlcnMgdW50aWwg
XSBpcyByZWFjaGVkLiBCeSB3cml0aW5nIHRoaXMgYXMgYSAiZG8iIGl0Ci0gICAgbWVhbnMgdGhh
dCBhbiBpbml0aWFsIF0gaXMgdGFrZW4gYXMgYSBkYXRhIGNoYXJhY3Rlci4gVGhlIGZpcnN0IHBh
c3MKLSAgICB0aHJvdWdoIHRoZSByZWdleCBjaGVja2VkIHRoZSBvdmVyYWxsIHN5bnRheCwgc28g
d2UgZG9uJ3QgbmVlZCB0byBiZSB2ZXJ5Ci0gICAgc3RyaWN0IGhlcmUuIEF0IHRoZSBzdGFydCBv
ZiB0aGUgbG9vcCwgYyBjb250YWlucyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUKLSAgICBjaGFyYWN0
ZXIuICovCi0KLSAgICBkbwotICAgICAgewotICAgICAgaWYgKGMgPiAxMjcpCi0gICAgICAgIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCcmFjZXMgYXJlIHJlcXVpcmVkIGJlY2F1c2Ug
dGhlICovCi0gICAgICAgIEdFVENIQVJMRU4oYywgcHRyLCBwdHIpOyAgICAvKiBtYWNybyBnZW5l
cmF0ZXMgbXVsdGlwbGUgc3RhdGVtZW50cyAqLwotICAgICAgICB9Ci0KLSAgICAgIC8qIEJhY2tz
bGFzaCBtYXkgaW50cm9kdWNlIGEgc2luZ2xlIGNoYXJhY3Rlciwgb3IgaXQgbWF5IGludHJvZHVj
ZSBvbmUKLSAgICAgIG9mIHRoZSBzcGVjaWFscywgd2hpY2gganVzdCBzZXQgYSBmbGFnLiBFc2Nh
cGVkIGl0ZW1zIGFyZSBjaGVja2VkIGZvcgotICAgICAgdmFsaWRpdHkgaW4gdGhlIHByZS1jb21w
aWxpbmcgcGFzcy4gVGhlIHNlcXVlbmNlIFxiIGlzIGEgc3BlY2lhbCBjYXNlLgotICAgICAgSW5z
aWRlIGEgY2xhc3MgKGFuZCBvbmx5IHRoZXJlKSBpdCBpcyB0cmVhdGVkIGFzIGJhY2tzcGFjZS4g
RWxzZXdoZXJlCi0gICAgICBpdCBtYXJrcyBhIHdvcmQgYm91bmRhcnkuIE90aGVyIGVzY2FwZXMg
aGF2ZSBwcmVzZXQgbWFwcyByZWFkeSB0bwotICAgICAgb3IgaW50byB0aGUgb25lIHdlIGFyZSBi
dWlsZGluZy4gV2UgYXNzdW1lIHRoZXkgaGF2ZSBtb3JlIHRoYW4gb25lCi0gICAgICBjaGFyYWN0
ZXIgaW4gdGhlbSwgc28gc2V0IGNsYXNzX2NoYXJjb3VudCBiaWdnZXIgdGhhbiBvbmUuICovCi0K
LSAgICAgIGlmIChjID09ICdcXCcpCi0gICAgICAgIHsKLSAgICAgICAgYyA9IGNoZWNrX2VzY2Fw
ZSgmcHRyLCBwYXR0ZXJuRW5kLCBlcnJvcmNvZGVwdHIsICpicmFja2V0cywgVFJVRSk7Ci0KLSAg
ICAgICAgaWYgKC1jID09IEVTQ19iKSBjID0gJ1xiJzsgICAgICAgLyogXGIgaXMgYmFja3NsYXNo
IGluIGEgY2xhc3MgKi8KLQotICAgICAgICBpZiAoYyA8IDApCi0gICAgICAgICAgewotICAgICAg
ICAgIHJlZ2lzdGVyIGNvbnN0IHVzY2hhciAqY2JpdHMgPSBjZC0+Y2JpdHM7Ci0gICAgICAgICAg
Y2xhc3NfY2hhcmNvdW50ICs9IDI7ICAgICAvKiBHcmVhdGVyIHRoYW4gMSBpcyB3aGF0IG1hdHRl
cnMgKi8KLSAgICAgICAgICBzd2l0Y2ggKC1jKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
Y2FzZSBFU0NfZDoKLSAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsgYysrKSBjbGFzc2Jp
dHNbY10gfD0gY2JpdHNbYytjYml0X2RpZ2l0XTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0g
ICAgICAgICAgICBjYXNlIEVTQ19EOgotICAgICAgICAgICAgc2hvdWxkX2ZsaXBfbmVnYXRpb24g
PSBUUlVFOwotICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNsYXNzYml0c1tj
XSB8PSB+Y2JpdHNbYytjYml0X2RpZ2l0XTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAg
ICAgICAgICBjYXNlIEVTQ193OgotICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKysp
IGNsYXNzYml0c1tjXSB8PSBjYml0c1tjK2NiaXRfd29yZF07Ci0gICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICAgICAgY2FzZSBFU0NfVzoKLSAgICAgICAgICAgIHNob3VsZF9mbGlwX25l
Z2F0aW9uID0gVFJVRTsKLSAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsgYysrKSBjbGFz
c2JpdHNbY10gfD0gfmNiaXRzW2MrY2JpdF93b3JkXTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgICAgICBjYXNlIEVTQ19zOgotICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMy
OyBjKyspIGNsYXNzYml0c1tjXSB8PSBjYml0c1tjK2NiaXRfc3BhY2VdOwotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgICAgIGNhc2UgRVNDX1M6Ci0gICAgICAgICAgICBzaG91bGRf
ZmxpcF9uZWdhdGlvbiA9IFRSVUU7Ci0gICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMr
KykgY2xhc3NiaXRzW2NdIHw9IH5jYml0c1tjK2NiaXRfc3BhY2VdOwotICAgICAgICAgICAgY29u
dGludWU7Ci0KLSAgICAgICAgICAgIC8qIFVucmVjb2duaXplZCBlc2NhcGVzIGFyZSBmYXVsdGVk
IGlmIFBDUkUgaXMgcnVubmluZyBpbiBpdHMKLSAgICAgICAgICAgIHN0cmljdCBtb2RlLiBCeSBk
ZWZhdWx0LCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFBlcmwsIHRoZXkgYXJlCi0gICAgICAgICAg
ICB0cmVhdGVkIGFzIGxpdGVyYWxzLiAqLwotCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgYyA9ICpwdHI7ICAgICAgICAgICAgICAvKiBUaGUgZmluYWwgY2hhcmFjdGVyICovCi0g
ICAgICAgICAgICBjbGFzc19jaGFyY291bnQgLT0gMjsgIC8qIFVuZG8gdGhlIGRlZmF1bHQgY291
bnQgZnJvbSBhYm92ZSAqLwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLQotICAgICAgICAv
KiBGYWxsIHRocm91Z2ggaWYgd2UgaGF2ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgKGMgPj0gMCkuIFRo
aXMgbWF5IGJlCi0gICAgICAgID4gMjU2IGluIFVURi04IG1vZGUuICovCi0KLSAgICAgICAgfSAg
IC8qIEVuZCBvZiBiYWNrc2xhc2ggaGFuZGxpbmcgKi8KLQotICAgICAgLyogQSBzaW5nbGUgY2hh
cmFjdGVyIG1heSBiZSBmb2xsb3dlZCBieSAnLScgdG8gZm9ybSBhIHJhbmdlLiBIb3dldmVyLAot
ICAgICAgUGVybCBkb2VzIG5vdCBwZXJtaXQgJ10nIHRvIGJlIHRoZSBlbmQgb2YgdGhlIHJhbmdl
LiBBICctJyBjaGFyYWN0ZXIKLSAgICAgIGhlcmUgaXMgdHJlYXRlZCBhcyBhIGxpdGVyYWwuICov
Ci0KLSAgICAgIGlmIChwdHJbMV0gPT0gJy0nICYmIHB0clsyXSAhPSAnXScpCi0gICAgICAgIHsK
LSAgICAgICAgaW50IGQ7Ci0gICAgICAgIHB0ciArPSAyOwotCi0gICAgICAgIEdFVENIQVJMRU4o
ZCwgcHRyLCBwdHIpOwotCi0gICAgICAgIC8qIFRoZSBzZWNvbmQgcGFydCBvZiBhIHJhbmdlIGNh
biBiZSBhIHNpbmdsZS1jaGFyYWN0ZXIgZXNjYXBlLCBidXQKLSAgICAgICAgbm90IGFueSBvZiB0
aGUgb3RoZXIgZXNjYXBlcy4gUGVybCA1LjYgdHJlYXRzIGEgaHlwaGVuIGFzIGEgbGl0ZXJhbAot
ICAgICAgICBpbiBzdWNoIGNpcmN1bXN0YW5jZXMuICovCi0KLSAgICAgICAgaWYgKGQgPT0gJ1xc
JykKLSAgICAgICAgICB7Ci0gICAgICAgICAgY29uc3QgcGNyZV91Y2hhciAqb2xkcHRyID0gcHRy
OwotICAgICAgICAgIGQgPSBjaGVja19lc2NhcGUoJnB0ciwgcGF0dGVybkVuZCwgZXJyb3Jjb2Rl
cHRyLCAqYnJhY2tldHMsIFRSVUUpOwotCi0gICAgICAgICAgLyogXGIgaXMgYmFja3NsYXNoOyBc
WCBpcyBsaXRlcmFsIFg7IGFueSBvdGhlciBzcGVjaWFsIG1lYW5zIHRoZSAnLScKLSAgICAgICAg
ICB3YXMgbGl0ZXJhbCAqLwotCi0gICAgICAgICAgaWYgKGQgPCAwKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKGQgPT0gLUVTQ19iKSBkID0gJ1xiJzsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICBwdHIgPSBvbGRwdHIgLSAyOwotICAgICAg
ICAgICAgICBnb3RvIExPTkVfU0lOR0xFX0NIQVJBQ1RFUjsgIC8qIEEgZmV3IGxpbmVzIGJlbG93
ICovCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0KLSAgICAg
ICAgLyogVGhlIGNoZWNrIHRoYXQgdGhlIHR3byB2YWx1ZXMgYXJlIGluIHRoZSBjb3JyZWN0IG9y
ZGVyIGhhcHBlbnMgaW4KLSAgICAgICAgdGhlIHByZS1wYXNzLiBPcHRpbWl6ZSBvbmUtY2hhcmFj
dGVyIHJhbmdlcyAqLwotCi0gICAgICAgIGlmIChkID09IGMpIGdvdG8gTE9ORV9TSU5HTEVfQ0hB
UkFDVEVSOyAgLyogQSBmZXcgbGluZXMgYmVsb3cgKi8KLQotICAgICAgICAvKiBJbiBVVEYtOCBt
b2RlLCBpZiB0aGUgdXBwZXIgbGltaXQgaXMgPiAyNTUsIG9yID4gMTI3IGZvciBjYXNlbGVzcwot
ICAgICAgICBtYXRjaGluZywgd2UgaGF2ZSB0byB1c2UgYW4gWENMQVNTIHdpdGggZXh0cmEgZGF0
YSBpdGVtcy4gQ2FzZWxlc3MKLSAgICAgICAgbWF0Y2hpbmcgZm9yIGNoYXJhY3RlcnMgPiAxMjcg
aXMgYXZhaWxhYmxlIG9ubHkgaWYgVUNQIHN1cHBvcnQgaXMKLSAgICAgICAgYXZhaWxhYmxlLiAq
LwotCi0gICAgICAgIGlmICgoZCA+IDI1NSB8fCAoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAh
PSAwICYmIGQgPiAxMjcpKSkKLSAgICAgICAgICB7Ci0gICAgICAgICAgY2xhc3NfdXRmOCA9IFRS
VUU7Ci0KLSAgICAgICAgICAvKiBXaXRoIFVDUCBzdXBwb3J0LCB3ZSBjYW4gZmluZCB0aGUgb3Ro
ZXIgY2FzZSBlcXVpdmFsZW50cyBvZgotICAgICAgICAgIHRoZSByZWxldmFudCBjaGFyYWN0ZXJz
LiBUaGVyZSBtYXkgYmUgc2V2ZXJhbCByYW5nZXMuIE9wdGltaXplIGhvdwotICAgICAgICAgIHRo
ZXkgZml0IHdpdGggdGhlIGJhc2ljIHJhbmdlLiAqLwotCi0gICAgICAgICAgaWYgKChvcHRpb25z
ICYgUENSRV9DQVNFTEVTUykgIT0gMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGludCBv
Y2MsIG9jZDsKLSAgICAgICAgICAgIGludCBjYyA9IGM7Ci0gICAgICAgICAgICBpbnQgb3JpZ2Qg
PSBkOwotICAgICAgICAgICAgd2hpbGUgKGdldF9vdGhlcmNhc2VfcmFuZ2UoJmNjLCBvcmlnZCwg
Jm9jYywgJm9jZCkpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKG9jYyA+PSBj
ICYmIG9jZCA8PSBkKSBjb250aW51ZTsgIC8qIFNraXAgZW1iZWRkZWQgcmFuZ2VzICovCi0KLSAg
ICAgICAgICAgICAgaWYgKG9jYyA8IGMgICYmIG9jZCA+PSBjIC0gMSkgICAgICAgIC8qIEV4dGVu
ZCB0aGUgYmFzaWMgcmFuZ2UgKi8KLSAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIGlmIHRoZXJlIGlzIG92ZXJsYXAsICAgKi8KLSAgICAgICAgICAg
ICAgICBjID0gb2NjOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdGluZyB0aGF0IGlm
IG9jYyA8IGMgKi8KLSAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIHdlIGNhbid0IGhhdmUgb2NkID4gZCAgKi8KLSAgICAgICAgICAgICAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJlY2F1c2UgYSBzdWJyYW5nZSBpcyAg
Ki8KLSAgICAgICAgICAgICAgaWYgKG9jZCA+IGQgJiYgb2NjIDw9IGQgKyAxKSAgICAgICAgIC8q
IGFsd2F5cyBzaG9ydGVyIHRoYW4gICAgKi8KLSAgICAgICAgICAgICAgICB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBiYXNpYyByYW5nZS4gICAgICAgKi8KLSAgICAg
ICAgICAgICAgICBkID0gb2NkOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICBpZiAob2NjID09IG9jZCkKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfU0lOR0xFOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9SQU5HRTsKLSAgICAgICAgICAg
ICAgICBjbGFzc191dGY4ZGF0YSArPSBfcGNyZV9vcmQydXRmOChvY2MsIGNsYXNzX3V0ZjhkYXRh
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IF9w
Y3JlX29yZDJ1dGY4KG9jZCwgY2xhc3NfdXRmOGRhdGEpOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAvKiBOb3cgcmVjb3JkIHRoZSBvcmlnaW5hbCByYW5nZSwg
cG9zc2libHkgbW9kaWZpZWQgZm9yIFVDUCBjYXNlbGVzcwotICAgICAgICAgIG92ZXJsYXBwaW5n
IHJhbmdlcy4gKi8KLQotICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1JBTkdFOwot
ICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IF9wY3JlX29yZDJ1dGY4KGMsIGNsYXNzX3V0Zjhk
YXRhKTsKLSAgICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBfcGNyZV9vcmQydXRmOChkLCBjbGFz
c191dGY4ZGF0YSk7Ci0KLSAgICAgICAgICAvKiBXaXRoIFVDUCBzdXBwb3J0LCB3ZSBhcmUgZG9u
ZS4gV2l0aG91dCBVQ1Agc3VwcG9ydCwgdGhlcmUgaXMgbm8KLSAgICAgICAgICBjYXNlbGVzcyBt
YXRjaGluZyBmb3IgVVRGLTggY2hhcmFjdGVycyA+IDEyNzsgd2UgY2FuIHVzZSB0aGUgYml0IG1h
cAotICAgICAgICAgIGZvciB0aGUgc21hbGxlciBvbmVzLiAqLwotCi0gICAgICAgICAgY29udGlu
dWU7ICAgIC8qIFdpdGggbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIGNsYXNzICovCi0gICAgICAgICAg
fQotCi0gICAgICAgIC8qIFdlIHVzZSB0aGUgYml0IG1hcCBmb3IgYWxsIGNhc2VzIHdoZW4gbm90
IGluIFVURi04IG1vZGU7IGVsc2UKLSAgICAgICAgcmFuZ2VzIHRoYXQgbGllIGVudGlyZWx5IHdp
dGhpbiAwLTEyNyB3aGVuIHRoZXJlIGlzIFVDUCBzdXBwb3J0OyBlbHNlCi0gICAgICAgIGZvciBw
YXJ0aWFsIHJhbmdlcyB3aXRob3V0IFVDUCBzdXBwb3J0LiAqLwotCi0gICAgICAgIGZvciAoOyBj
IDw9IGQ7IGMrKykKLSAgICAgICAgICB7Ci0gICAgICAgICAgY2xhc3NiaXRzW2MvOF0gfD0gKDEg
PDwgKGMmNykpOwotICAgICAgICAgIGlmICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgdWMgPSBjZC0+ZmNjW2NdOyAgICAgICAg
ICAgLyogZmxpcCBjYXNlICovCi0gICAgICAgICAgICBjbGFzc2JpdHNbdWMvOF0gfD0gKDEgPDwg
KHVjJjcpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBjbGFzc19jaGFyY291bnQrKzsgICAg
ICAgICAgICAgICAgLyogaW4gY2FzZSBhIG9uZS1jaGFyIHJhbmdlICovCi0gICAgICAgICAgY2xh
c3NfbGFzdGNoYXIgPSBjOwotICAgICAgICAgIH0KLQotICAgICAgICBjb250aW51ZTsgICAvKiBH
byBnZXQgdGhlIG5leHQgY2hhciBpbiB0aGUgY2xhc3MgKi8KLSAgICAgICAgfQotCi0gICAgICAv
KiBIYW5kbGUgYSBsb25lIHNpbmdsZSBjaGFyYWN0ZXIgLSB3ZSBjYW4gZ2V0IGhlcmUgZm9yIGEg
bm9ybWFsCi0gICAgICBub24tZXNjYXBlIGNoYXIsIG9yIGFmdGVyIFwgdGhhdCBpbnRyb2R1Y2Vz
IGEgc2luZ2xlIGNoYXJhY3RlciBvciBmb3IgYW4KLSAgICAgIGFwcGFyZW50IHJhbmdlIHRoYXQg
aXNuJ3QuICovCi0KLSAgICAgIExPTkVfU0lOR0xFX0NIQVJBQ1RFUjoKLQotICAgICAgLyogSGFu
ZGxlIGEgY2hhcmFjdGVyIHRoYXQgY2Fubm90IGdvIGluIHRoZSBiaXQgbWFwICovCi0KLSAgICAg
IGlmICgoYyA+IDI1NSB8fCAoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwICYmIGMgPiAx
MjcpKSkKLSAgICAgICAgewotICAgICAgICBjbGFzc191dGY4ID0gVFJVRTsKLSAgICAgICAgKmNs
YXNzX3V0ZjhkYXRhKysgPSBYQ0xfU0lOR0xFOwotICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBf
cGNyZV9vcmQydXRmOChjLCBjbGFzc191dGY4ZGF0YSk7Ci0KLSAgICAgICAgaWYgKChvcHRpb25z
ICYgUENSRV9DQVNFTEVTUykgIT0gMCkKLSAgICAgICAgICB7Ci0gICAgICAgICAgaW50IG90aGVy
Y2FzZTsKLSAgICAgICAgICBpZiAoKG90aGVyY2FzZSA9IF9wY3JlX3VjcF9vdGhlcmNhc2UoYykp
ID49IDApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhD
TF9TSU5HTEU7Ci0gICAgICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBfcGNyZV9vcmQydXRmOChv
dGhlcmNhc2UsIGNsYXNzX3V0ZjhkYXRhKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0K
LSAgICAgICAgfQotICAgICAgZWxzZQotCi0gICAgICAvKiBIYW5kbGUgYSBzaW5nbGUtYnl0ZSBj
aGFyYWN0ZXIgKi8KLSAgICAgICAgewotICAgICAgICBjbGFzc2JpdHNbYy84XSB8PSAoMSA8PCAo
YyY3KSk7Ci0gICAgICAgIGlmICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDApCi0gICAg
ICAgICAgewotICAgICAgICAgIGMgPSBjZC0+ZmNjW2NdOyAgIC8qIGZsaXAgY2FzZSAqLwotICAg
ICAgICAgIGNsYXNzYml0c1tjLzhdIHw9ICgxIDw8IChjJjcpKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIGNsYXNzX2NoYXJjb3VudCsrOwotICAgICAgICBjbGFzc19sYXN0Y2hhciA9IGM7Ci0gICAg
ICAgIH0KLSAgICAgIH0KLQotICAgIC8qIExvb3AgdW50aWwgJ10nIHJlYWNoZWQ7IHRoZSBjaGVj
ayBmb3IgZW5kIG9mIHN0cmluZyBoYXBwZW5zIGluc2lkZSB0aGUKLSAgICBsb29wLiBUaGlzICJ3
aGlsZSIgaXMgdGhlIGVuZCBvZiB0aGUgImRvIiBhYm92ZS4gKi8KLQotICAgIHdoaWxlICgoYyA9
ICooKytwdHIpKSAhPSAnXScpOwotCi0gICAgLyogSWYgY2xhc3NfY2hhcmNvdW50IGlzIDEsIHdl
IHNhdyBwcmVjaXNlbHkgb25lIGNoYXJhY3RlciB3aG9zZSB2YWx1ZSBpcwotICAgIGxlc3MgdGhh
biAyNTYuIEluIG5vbi1VVEYtOCBtb2RlIHdlIGNhbiBhbHdheXMgb3B0aW1pemUuIEluIFVURi04
IG1vZGUsIHdlCi0gICAgY2FuIG9wdGltaXplIHRoZSBuZWdhdGl2ZSBjYXNlIG9ubHkgaWYgdGhl
cmUgd2VyZSBubyBjaGFyYWN0ZXJzID49IDEyOAotICAgIGJlY2F1c2UgT1BfTk9UIGFuZCB0aGUg
cmVsYXRlZCBvcGNvZGVzIGxpa2UgT1BfTk9UU1RBUiBvcGVyYXRlIG9uCi0gICAgc2luZ2xlLWJ5
dGVzIG9ubHkuIFRoaXMgaXMgYW4gaGlzdG9yaWNhbCBoYW5nb3Zlci4gTWF5YmUgb25lIGRheSB3
ZSBjYW4KLSAgICB0aWR5IHRoZXNlIG9wY29kZXMgdG8gaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFj
dGVycy4KLQotICAgIFRoZSBvcHRpbWl6YXRpb24gdGhyb3dzIGF3YXkgdGhlIGJpdCBtYXAuIFdl
IHR1cm4gdGhlIGl0ZW0gaW50byBhCi0gICAgMS1jaGFyYWN0ZXIgT1BfQ0hBUltOQ10gaWYgaXQn
cyBwb3NpdGl2ZSwgb3IgT1BfTk9UIGlmIGl0J3MgbmVnYXRpdmUuIE5vdGUKLSAgICB0aGF0IE9Q
X05PVCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpYnl0ZSBjaGFyYWN0ZXJzLiBJbiB0aGUgcG9zaXRp
dmUgY2FzZSwgaXQKLSAgICBjYW4gY2F1c2UgZmlyc3RieXRlIHRvIGJlIHNldC4gT3RoZXJ3aXNl
LCB0aGVyZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBpZgotICAgIHRoaXMgaXRlbSBpcyBmaXJzdCwg
d2hhdGV2ZXIgcmVwZWF0IGNvdW50IG1heSBmb2xsb3cuIEluIHRoZSBjYXNlIG9mCi0gICAgcmVx
Ynl0ZSwgc2F2ZSB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIHJlaW5zdGF0aW5nLiAqLwotCi0gICAg
aWYgKGNsYXNzX2NoYXJjb3VudCA9PSAxICYmCi0gICAgICAgICAgKCFjbGFzc191dGY4ICYmICgh
bmVnYXRlX2NsYXNzIHx8IGNsYXNzX2xhc3RjaGFyIDwgMTI4KSkpCi0gICAgICB7Ci0gICAgICB6
ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7Ci0KLSAgICAgIC8qIFRoZSBPUF9OT1Qgb3Bjb2RlIHdvcmtz
IG9uIG9uZS1ieXRlIGNoYXJhY3RlcnMgb25seS4gKi8KLQotICAgICAgaWYgKG5lZ2F0ZV9jbGFz
cykKLSAgICAgICAgewotICAgICAgICBpZiAoZmlyc3RieXRlID09IFJFUV9VTlNFVCkgZmlyc3Ri
eXRlID0gUkVRX05PTkU7Ci0gICAgICAgIHplcm9maXJzdGJ5dGUgPSBmaXJzdGJ5dGU7Ci0gICAg
ICAgICpjb2RlKysgPSBPUF9OT1Q7Ci0gICAgICAgICpjb2RlKysgPSBjbGFzc19sYXN0Y2hhcjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgLyogRm9yIGEgc2luZ2xlLCBwb3Np
dGl2ZSBjaGFyYWN0ZXIsIGdldCB0aGUgdmFsdWUgaW50byBjLCBhbmQKLSAgICAgIHRoZW4gd2Ug
Y2FuIGhhbmRsZSB0aGlzIHdpdGggdGhlIG5vcm1hbCBvbmUtY2hhcmFjdGVyIGNvZGUuICovCi0K
LSAgICAgIGMgPSBjbGFzc19sYXN0Y2hhcjsKLSAgICAgIGdvdG8gTk9STUFMX0NIQVI7Ci0gICAg
ICB9ICAgICAgIC8qIEVuZCBvZiAxLWNoYXIgb3B0aW1pemF0aW9uICovCi0KLSAgICAvKiBUaGUg
Z2VuZXJhbCBjYXNlIC0gbm90IHRoZSBvbmUtY2hhciBvcHRpbWl6YXRpb24uIElmIHRoaXMgaXMg
dGhlIGZpcnN0Ci0gICAgdGhpbmcgaW4gdGhlIGJyYW5jaCwgdGhlcmUgY2FuIGJlIG5vIGZpcnN0
IGNoYXIgc2V0dGluZywgd2hhdGV2ZXIgdGhlCi0gICAgcmVwZWF0IGNvdW50LiBBbnkgcmVxYnl0
ZSBzZXR0aW5nIG11c3QgcmVtYWluIHVuY2hhbmdlZCBhZnRlciBhbnkga2luZCBvZgotICAgIHJl
cGVhdC4gKi8KLQotICAgIGlmIChmaXJzdGJ5dGUgPT0gUkVRX1VOU0VUKSBmaXJzdGJ5dGUgPSBS
RVFfTk9ORTsKLSAgICB6ZXJvZmlyc3RieXRlID0gZmlyc3RieXRlOwotICAgIHplcm9yZXFieXRl
ID0gcmVxYnl0ZTsKLQotICAgIC8qIElmIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIHdpdGggdmFsdWVz
ID4gMjU1LCB3ZSBoYXZlIHRvIGNvbXBpbGUgYW4KLSAgICBleHRlbmRlZCBjbGFzcywgd2l0aCBp
dHMgb3duIG9wY29kZS4gSWYgdGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgPCAyNTYsCi0gICAgd2Ug
Y2FuIG9taXQgdGhlIGJpdG1hcC4gKi8KLQotICAgIGlmIChjbGFzc191dGY4ICYmICFzaG91bGRf
ZmxpcF9uZWdhdGlvbikKLSAgICAgIHsKLSAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX0VO
RDsgICAgLyogTWFya3MgdGhlIGVuZCBvZiBleHRyYSBkYXRhICovCi0gICAgICAqY29kZSsrID0g
T1BfWENMQVNTOwotICAgICAgY29kZSArPSBMSU5LX1NJWkU7Ci0gICAgICAqY29kZSA9IG5lZ2F0
ZV9jbGFzcz8gWENMX05PVCA6IDA7Ci0KLSAgICAgIC8qIElmIHRoZSBtYXAgaXMgcmVxdWlyZWQs
IGluc3RhbGwgaXQsIGFuZCBtb3ZlIG9uIHRvIHRoZSBlbmQgb2YKLSAgICAgIHRoZSBleHRyYSBk
YXRhICovCi0KLSAgICAgIGlmIChjbGFzc19jaGFyY291bnQgPiAwKQotICAgICAgICB7Ci0gICAg
ICAgICpjb2RlKysgfD0gWENMX01BUDsKLSAgICAgICAgbWVtY3B5KGNvZGUsIGNsYXNzYml0cywg
MzIpOwotICAgICAgICBjb2RlID0gY2xhc3NfdXRmOGRhdGE7Ci0gICAgICAgIH0KLQotICAgICAg
LyogSWYgdGhlIG1hcCBpcyBub3QgcmVxdWlyZWQsIHNsaWRlIGRvd24gdGhlIGV4dHJhIGRhdGEu
ICovCi0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBpbnQgbGVuID0gY2xhc3NfdXRm
OGRhdGEgLSAoY29kZSArIDMzKTsKLSAgICAgICAgbWVtbW92ZShjb2RlICsgMSwgY29kZSArIDMz
LCBsZW4pOwotICAgICAgICBjb2RlICs9IGxlbiArIDE7Ci0gICAgICAgIH0KLQotICAgICAgLyog
Tm93IGZpbGwgaW4gdGhlIGNvbXBsZXRlIGxlbmd0aCBvZiB0aGUgaXRlbSAqLwotCi0gICAgICBQ
VVQocHJldmlvdXMsIDEsIGNvZGUgLSBwcmV2aW91cyk7Ci0gICAgICBicmVhazsgICAvKiBFbmQg
b2YgY2xhc3MgaGFuZGxpbmcgKi8KLSAgICAgIH0KLQotICAgIC8qIElmIHRoZXJlIGFyZSBubyBj
aGFyYWN0ZXJzID4gMjU1LCBuZWdhdGUgdGhlIDMyLWJ5dGUgbWFwIGlmIG5lY2Vzc2FyeSwKLSAg
ICBhbmQgY29weSBpdCBpbnRvIHRoZSBjb2RlIHZlY3Rvci4gSWYgdGhpcyBpcyB0aGUgZmlyc3Qg
dGhpbmcgaW4gdGhlIGJyYW5jaCwKLSAgICB0aGVyZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBzZXR0
aW5nLCB3aGF0ZXZlciB0aGUgcmVwZWF0IGNvdW50LiBBbnkgcmVxYnl0ZQotICAgIHNldHRpbmcg
bXVzdCByZW1haW4gdW5jaGFuZ2VkIGFmdGVyIGFueSBraW5kIG9mIHJlcGVhdC4gKi8KLQotICAg
ICpjb2RlKysgPSAobmVnYXRlX2NsYXNzID09IHNob3VsZF9mbGlwX25lZ2F0aW9uKSA/IE9QX0NM
QVNTIDogT1BfTkNMQVNTOwotICAgIGlmIChuZWdhdGVfY2xhc3MpCi0gICAgICB7Ci0gICAgICBm
b3IgKGMgPSAwOyBjIDwgMzI7IGMrKykgY29kZVtjXSA9IH5jbGFzc2JpdHNbY107Ci0gICAgICB9
Ci0gICAgZWxzZQotICAgICAgewotICAgICAgbWVtY3B5KGNvZGUsIGNsYXNzYml0cywgMzIpOwot
ICAgICAgfQotICAgIGNvZGUgKz0gMzI7Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBWYXJpb3VzIGtp
bmRzIG9mIHJlcGVhdDsgJ3snIGlzIG5vdCBuZWNlc3NhcmlseSBhIHF1YW50aWZpZXIsIGJ1dCB0
aGlzCi0gICAgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLiAqLwotCi0gICAgY2FzZSAneyc6Ci0gICAg
aWYgKCFpc19xdWFudGlmaWVyKSBnb3RvIE5PUk1BTF9DSEFSOwotICAgIHB0ciA9IHJlYWRfcmVw
ZWF0X2NvdW50cyhwdHIrMSwgJnJlcGVhdF9taW4sICZyZXBlYXRfbWF4LCBlcnJvcmNvZGVwdHIp
OwotICAgIGlmICgqZXJyb3Jjb2RlcHRyICE9IDApIGdvdG8gRkFJTEVEOwotICAgIGdvdG8gUkVQ
RUFUOwotCi0gICAgY2FzZSAnKic6Ci0gICAgcmVwZWF0X21pbiA9IDA7Ci0gICAgcmVwZWF0X21h
eCA9IC0xOwotICAgIGdvdG8gUkVQRUFUOwotCi0gICAgY2FzZSAnKyc6Ci0gICAgcmVwZWF0X21p
biA9IDE7Ci0gICAgcmVwZWF0X21heCA9IC0xOwotICAgIGdvdG8gUkVQRUFUOwotCi0gICAgY2Fz
ZSAnPyc6Ci0gICAgcmVwZWF0X21pbiA9IDA7Ci0gICAgcmVwZWF0X21heCA9IDE7Ci0KLSAgICBS
RVBFQVQ6Ci0gICAgaWYgKHByZXZpb3VzID09IE5VTEwpCi0gICAgICB7Ci0gICAgICAqZXJyb3Jj
b2RlcHRyID0gRVJSOTsKLSAgICAgIGdvdG8gRkFJTEVEOwotICAgICAgfQotCi0gICAgaWYgKHJl
cGVhdF9taW4gPT0gMCkKLSAgICAgIHsKLSAgICAgIGZpcnN0Ynl0ZSA9IHplcm9maXJzdGJ5dGU7
ICAgIC8qIEFkanVzdCBmb3IgemVybyByZXBlYXQgKi8KLSAgICAgIHJlcWJ5dGUgPSB6ZXJvcmVx
Ynl0ZTsgICAgICAgIC8qIERpdHRvICovCi0gICAgICB9Ci0KLSAgICAvKiBSZW1lbWJlciB3aGV0
aGVyIHRoaXMgaXMgYSB2YXJpYWJsZSBsZW5ndGggcmVwZWF0ICovCi0KLSAgICByZXF2YXJ5ID0g
KHJlcGVhdF9taW4gPT0gcmVwZWF0X21heCk/IDAgOiBSRVFfVkFSWTsKLQotICAgIG9wX3R5cGUg
PSAwOyAgICAgICAgICAgICAgICAgICAgLyogRGVmYXVsdCBzaW5nbGUtY2hhciBvcCBjb2RlcyAq
LwotICAgIHBvc3Nlc3NpdmVfcXVhbnRpZmllciA9IEZBTFNFOyAgLyogRGVmYXVsdCBub3QgcG9z
c2Vzc2l2ZSBxdWFudGlmaWVyICovCi0KLSAgICAvKiBTYXZlIHN0YXJ0IG9mIHByZXZpb3VzIGl0
ZW0sIGluIGNhc2Ugd2UgaGF2ZSB0byBtb3ZlIGl0IHVwIHRvIG1ha2Ugc3BhY2UKLSAgICBmb3Ig
YW4gaW5zZXJ0ZWQgT1BfT05DRSBmb3IgdGhlIGFkZGl0aW9uYWwgJysnIGV4dGVuc2lvbi4gKi8K
LQotICAgIHRlbXBjb2RlID0gcHJldmlvdXM7Ci0KLSAgICAvKiBJZiB0aGUgbmV4dCBjaGFyYWN0
ZXIgaXMgJysnLCB3ZSBoYXZlIGEgcG9zc2Vzc2l2ZSBxdWFudGlmaWVyLiBUaGlzCi0gICAgaW1w
bGllcyBncmVlZGluZXNzLCB3aGF0ZXZlciB0aGUgc2V0dGluZyBvZiB0aGUgUENSRV9VTkdSRUVE
WSBvcHRpb24uCi0gICAgSWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzICc/JyB0aGlzIGlzIGEgbWlu
aW1pemluZyByZXBlYXQsIGJ5IGRlZmF1bHQsCi0gICAgYnV0IGlmIFBDUkVfVU5HUkVFRFkgaXMg
c2V0LCBpdCB3b3JrcyB0aGUgb3RoZXIgd2F5IHJvdW5kLiBXZSBjaGFuZ2UgdGhlCi0gICAgcmVw
ZWF0IHR5cGUgdG8gdGhlIG5vbi1kZWZhdWx0LiAqLwotCi0gICAgaWYgKHB0ciArIDEgPCBwYXR0
ZXJuRW5kICYmIHB0clsxXSA9PSAnKycpCi0gICAgICB7Ci0gICAgICByZXBlYXRfdHlwZSA9IDA7
ICAgICAgICAgICAgICAgICAgLyogRm9yY2UgZ3JlZWR5ICovCi0gICAgICBwb3NzZXNzaXZlX3F1
YW50aWZpZXIgPSBUUlVFOwotICAgICAgcHRyKys7Ci0gICAgICB9Ci0gICAgZWxzZSBpZiAocHRy
ICsgMSA8IHBhdHRlcm5FbmQgJiYgcHRyWzFdID09ICc/JykKLSAgICAgIHsKLSAgICAgIHJlcGVh
dF90eXBlID0gMTsKLSAgICAgIHB0cisrOwotICAgICAgfQotICAgIGVsc2UgcmVwZWF0X3R5cGUg
PSAwOwotCi0gICAgLyogSWYgcHJldmlvdXMgd2FzIGEgY2hhcmFjdGVyIG1hdGNoLCBhYm9saXNo
IHRoZSBpdGVtIGFuZCBnZW5lcmF0ZSBhCi0gICAgcmVwZWF0IGl0ZW0gaW5zdGVhZC4gSWYgYSBj
aGFyIGl0ZW0gaGFzIGEgbWludW11bSBvZiBtb3JlIHRoYW4gb25lLCBlbnN1cmUKLSAgICB0aGF0
IGl0IGlzIHNldCBpbiByZXFieXRlIC0gaXQgbWlnaHQgbm90IGJlIGlmIGEgc2VxdWVuY2Ugc3Vj
aCBhcyB4ezN9IGlzCi0gICAgdGhlIGZpcnN0IHRoaW5nIGluIGEgYnJhbmNoIGJlY2F1c2UgdGhl
IHggd2lsbCBoYXZlIGdvbmUgaW50byBmaXJzdGJ5dGUKLSAgICBpbnN0ZWFkLiAgKi8KLQotICAg
IGlmICgqcHJldmlvdXMgPT0gT1BfQ0hBUiB8fCAqcHJldmlvdXMgPT0gT1BfQ0hBUk5DKQotICAg
ICAgewotICAgICAgLyogRGVhbCB3aXRoIFVURi04IGNoYXJhY3RlcnMgdGhhdCB0YWtlIHVwIG1v
cmUgdGhhbiBvbmUgYnl0ZS4gSXQncwotICAgICAgZWFzaWVyIHRvIHdyaXRlIHRoaXMgb3V0IHNl
cGFyYXRlbHkgdGhhbiB0cnkgdG8gbWFjcmlmeSBpdC4gVXNlIGMgdG8KLSAgICAgIGhvbGQgdGhl
IGxlbmd0aCBvZiB0aGUgY2hhcmFjdGVyIGluIGJ5dGVzLCBwbHVzIDB4ODAgdG8gZmxhZyB0aGF0
IGl0J3MgYQotICAgICAgbGVuZ3RoIHJhdGhlciB0aGFuIGEgc21hbGwgY2hhcmFjdGVyLiAqLwot
Ci0gICAgICBpZiAoKGNvZGVbLTFdICYgMHg4MCkgIT0gMCkKLSAgICAgICAgewotICAgICAgICB1
c2NoYXIgKmxhc3RjaGFyID0gY29kZSAtIDE7Ci0gICAgICAgIHdoaWxlKCgqbGFzdGNoYXIgJiAw
eGMwKSA9PSAweDgwKSBsYXN0Y2hhci0tOwotICAgICAgICBjID0gY29kZSAtIGxhc3RjaGFyOyAg
ICAgICAgICAgIC8qIExlbmd0aCBvZiBVVEYtOCBjaGFyYWN0ZXIgKi8KLSAgICAgICAgbWVtY3B5
KHV0ZjhfY2hhciwgbGFzdGNoYXIsIGMpOyAvKiBTYXZlIHRoZSBjaGFyICovCi0gICAgICAgIGMg
fD0gMHg4MDsgICAgICAgICAgICAgICAgICAgICAgLyogRmxhZyBjIGFzIGEgbGVuZ3RoICovCi0g
ICAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBjID0gY29kZVstMV07Ci0g
ICAgICAgIGlmIChyZXBlYXRfbWluID4gMSkgcmVxYnl0ZSA9IGMgfCByZXFfY2FzZW9wdCB8IGNk
LT5yZXFfdmFyeW9wdDsKLSAgICAgICAgfQotCi0gICAgICBnb3RvIE9VVFBVVF9TSU5HTEVfUkVQ
RUFUOyAgIC8qIENvZGUgc2hhcmVkIHdpdGggc2luZ2xlIGNoYXJhY3RlciB0eXBlcyAqLwotICAg
ICAgfQotCi0gICAgZWxzZSBpZiAoKnByZXZpb3VzID09IE9QX0FTQ0lJX0NIQVIgfHwgKnByZXZp
b3VzID09IE9QX0FTQ0lJX0xFVFRFUl9OQykKLSAgICAgIHsKLSAgICAgIGMgPSBwcmV2aW91c1sx
XTsKLSAgICAgIGlmIChyZXBlYXRfbWluID4gMSkgcmVxYnl0ZSA9IGMgfCByZXFfY2FzZW9wdCB8
IGNkLT5yZXFfdmFyeW9wdDsKLSAgICAgIGdvdG8gT1VUUFVUX1NJTkdMRV9SRVBFQVQ7Ci0gICAg
ICB9Ci0KLSAgICAvKiBJZiBwcmV2aW91cyB3YXMgYSBzaW5nbGUgbmVnYXRlZCBjaGFyYWN0ZXIg
KFteYV0gb3Igc2ltaWxhciksIHdlIHVzZQotICAgIG9uZSBvZiB0aGUgc3BlY2lhbCBvcGNvZGVz
LCByZXBsYWNpbmcgaXQuIFRoZSBjb2RlIGlzIHNoYXJlZCB3aXRoIHNpbmdsZS0KLSAgICBjaGFy
YWN0ZXIgcmVwZWF0cyBieSBzZXR0aW5nIG9wdF90eXBlIHRvIGFkZCBhIHN1aXRhYmxlIG9mZnNl
dCBpbnRvCi0gICAgcmVwZWF0X3R5cGUuIE9QX05PVCBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGZv
ciBzaW5nbGUtYnl0ZSBjaGFycy4gKi8KLQotICAgIGVsc2UgaWYgKCpwcmV2aW91cyA9PSBPUF9O
T1QpCi0gICAgICB7Ci0gICAgICBvcF90eXBlID0gT1BfTk9UU1RBUiAtIE9QX1NUQVI7ICAvKiBV
c2UgIm5vdCIgb3Bjb2RlcyAqLwotICAgICAgYyA9IHByZXZpb3VzWzFdOwotICAgICAgZ290byBP
VVRQVVRfU0lOR0xFX1JFUEVBVDsKLSAgICAgIH0KLQotICAgIC8qIElmIHByZXZpb3VzIHdhcyBh
IGNoYXJhY3RlciB0eXBlIG1hdGNoIChcZCBvciBzaW1pbGFyKSwgYWJvbGlzaCBpdCBhbmQKLSAg
ICBjcmVhdGUgYSBzdWl0YWJsZSByZXBlYXQgaXRlbS4gVGhlIGNvZGUgaXMgc2hhcmVkIHdpdGgg
c2luZ2xlLWNoYXJhY3RlcgotICAgIHJlcGVhdHMgYnkgc2V0dGluZyBvcF90eXBlIHRvIGFkZCBh
IHN1aXRhYmxlIG9mZnNldCBpbnRvIHJlcGVhdF90eXBlLiAqLwotCi0gICAgZWxzZSBpZiAoKnBy
ZXZpb3VzIDw9IE9QX0FOWSkKLSAgICAgIHsKLSAgICAgIHVzY2hhciAqb2xkY29kZTsKLSAgICAg
IGludCBwcm9wX3R5cGUsIHByb3BfdmFsdWU7Ci0gICAgICBvcF90eXBlID0gT1BfVFlQRVNUQVIg
LSBPUF9TVEFSOyAgLyogVXNlIHR5cGUgb3Bjb2RlcyAqLwotICAgICAgYyA9ICpwcmV2aW91czsK
LQotICAgICAgT1VUUFVUX1NJTkdMRV9SRVBFQVQ6Ci0gICAgICBwcm9wX3R5cGUgPSBwcm9wX3Zh
bHVlID0gLTE7Ci0KLSAgICAgIG9sZGNvZGUgPSBjb2RlOwotICAgICAgY29kZSA9IHByZXZpb3Vz
OyAgICAgICAgICAgICAgICAgIC8qIFVzdWFsbHkgb3ZlcndyaXRlIHByZXZpb3VzIGl0ZW0gKi8K
LQotICAgICAgLyogSWYgdGhlIG1heGltdW0gaXMgemVybyB0aGVuIHRoZSBtaW5pbXVtIG11c3Qg
YWxzbyBiZSB6ZXJvOyBQZXJsIGFsbG93cwotICAgICAgdGhpcyBjYXNlLCBzbyB3ZSBkbyB0b28g
LSBieSBzaW1wbHkgb21pdHRpbmcgdGhlIGl0ZW0gYWx0b2dldGhlci4gKi8KLQotICAgICAgaWYg
KHJlcGVhdF9tYXggPT0gMCkgZ290byBFTkRfUkVQRUFUOwotCi0gICAgICAvKiBDb21iaW5lIHRo
ZSBvcF90eXBlIHdpdGggdGhlIHJlcGVhdF90eXBlICovCi0KLSAgICAgIHJlcGVhdF90eXBlICs9
IG9wX3R5cGU7Ci0KLSAgICAgIC8qIEEgbWluaW11bSBvZiB6ZXJvIGlzIGhhbmRsZWQgZWl0aGVy
IGFzIHRoZSBzcGVjaWFsIGNhc2UgKiBvciA/LCBvciBhcwotICAgICAgYW4gVVBUTywgd2l0aCB0
aGUgbWF4aW11bSBnaXZlbi4gKi8KLQotICAgICAgaWYgKHJlcGVhdF9taW4gPT0gMCkKLSAgICAg
ICAgewotICAgICAgICBpZiAocmVwZWF0X21heCA9PSAtMSkgKmNvZGUrKyA9IE9QX1NUQVIgKyBy
ZXBlYXRfdHlwZTsKLSAgICAgICAgICBlbHNlIGlmIChyZXBlYXRfbWF4ID09IDEpICpjb2RlKysg
PSBPUF9RVUVSWSArIHJlcGVhdF90eXBlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgewotICAg
ICAgICAgICpjb2RlKysgPSBPUF9VUFRPICsgcmVwZWF0X3R5cGU7Ci0gICAgICAgICAgUFVUMklO
Qyhjb2RlLCAwLCByZXBlYXRfbWF4KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
LyogQSByZXBlYXQgbWluaW11bSBvZiAxIGlzIG9wdGltaXplZCBpbnRvIHNvbWUgc3BlY2lhbCBj
YXNlcy4gSWYgdGhlCi0gICAgICBtYXhpbXVtIGlzIHVubGltaXRlZCwgd2UgdXNlIE9QX1BMVVMu
IE90aGVyd2lzZSwgdGhlIG9yaWdpbmFsIGl0ZW0gaXQKLSAgICAgIGxlZnQgaW4gcGxhY2UgYW5k
LCBpZiB0aGUgbWF4aW11bSBpcyBncmVhdGVyIHRoYW4gMSwgd2UgdXNlIE9QX1VQVE8gd2l0aAot
ICAgICAgb25lIGxlc3MgdGhhbiB0aGUgbWF4aW11bS4gKi8KLQotICAgICAgZWxzZSBpZiAocmVw
ZWF0X21pbiA9PSAxKQotICAgICAgICB7Ci0gICAgICAgIGlmIChyZXBlYXRfbWF4ID09IC0xKQot
ICAgICAgICAgICpjb2RlKysgPSBPUF9QTFVTICsgcmVwZWF0X3R5cGU7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICB7Ci0gICAgICAgICAgY29kZSA9IG9sZGNvZGU7ICAgICAgICAgICAgICAgICAv
KiBsZWF2ZSBwcmV2aW91cyBpdGVtIGluIHBsYWNlICovCi0gICAgICAgICAgaWYgKHJlcGVhdF9t
YXggPT0gMSkgZ290byBFTkRfUkVQRUFUOwotICAgICAgICAgICpjb2RlKysgPSBPUF9VUFRPICsg
cmVwZWF0X3R5cGU7Ci0gICAgICAgICAgUFVUMklOQyhjb2RlLCAwLCByZXBlYXRfbWF4IC0gMSk7
Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgIC8qIFRoZSBjYXNlIHtuLG59IGlzIGp1
c3QgYW4gRVhBQ1QsIHdoaWxlIHRoZSBnZW5lcmFsIGNhc2Uge24sbX0gaXMKLSAgICAgIGhhbmRs
ZWQgYXMgYW4gRVhBQ1QgZm9sbG93ZWQgYnkgYW4gVVBUTy4gKi8KLQotICAgICAgZWxzZQotICAg
ICAgICB7Ci0gICAgICAgICpjb2RlKysgPSBPUF9FWEFDVCArIG9wX3R5cGU7ICAvKiBOQiBFWEFD
VCBkb2Vzbid0IGhhdmUgcmVwZWF0X3R5cGUgKi8KLSAgICAgICAgUFVUMklOQyhjb2RlLCAwLCBy
ZXBlYXRfbWluKTsKLQotICAgICAgICAvKiBJZiB0aGUgbWF4aW11bSBpcyB1bmxpbWl0ZWQsIGlu
c2VydCBhbiBPUF9TVEFSLiBCZWZvcmUgZG9pbmcgc28sCi0gICAgICAgIHdlIGhhdmUgdG8gaW5z
ZXJ0IHRoZSBjaGFyYWN0ZXIgZm9yIHRoZSBwcmV2aW91cyBjb2RlLiBGb3IgYSByZXBlYXRlZAot
ICAgICAgICBVbmljb2RlIHByb3BlcnR5IG1hdGNoLCB0aGVyZSBhcmUgdHdvIGV4dHJhIGJ5dGVz
IHRoYXQgZGVmaW5lIHRoZQotICAgICAgICByZXF1aXJlZCBwcm9wZXJ0eS4gSW4gVVRGLTggbW9k
ZSwgbG9uZyBjaGFyYWN0ZXJzIGhhdmUgdGhlaXIgbGVuZ3RoIGluCi0gICAgICAgIGMsIHdpdGgg
dGhlIDB4ODAgYml0IGFzIGEgZmxhZy4gKi8KLQotICAgICAgICBpZiAocmVwZWF0X21heCA8IDAp
Ci0gICAgICAgICAgewotICAgICAgICAgIGlmIChjID49IDEyOCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgIG1lbWNweShjb2RlLCB1dGY4X2NoYXIsIGMgJiA3KTsKLSAgICAgICAgICAgIGNv
ZGUgKz0gYyAmIDc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgKmNvZGUrKyA9IGM7Ci0gICAgICAgICAgICBpZiAocHJvcF90eXBlID49
IDApCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdHlwZTsK
LSAgICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdmFsdWU7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAqY29kZSsrID0gT1BfU1RBUiArIHJlcGVhdF90eXBlOwot
ICAgICAgICAgIH0KLQotICAgICAgICAvKiBFbHNlIGluc2VydCBhbiBVUFRPIGlmIHRoZSBtYXgg
aXMgZ3JlYXRlciB0aGFuIHRoZSBtaW4sIGFnYWluCi0gICAgICAgIHByZWNlZGVkIGJ5IHRoZSBj
aGFyYWN0ZXIsIGZvciB0aGUgcHJldmlvdXNseSBpbnNlcnRlZCBjb2RlLiAqLwotCi0gICAgICAg
IGVsc2UgaWYgKHJlcGVhdF9tYXggIT0gcmVwZWF0X21pbikKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgaWYgKGMgPj0gMTI4KQotICAgICAgICAgICAgewotICAgICAgICAgICAgbWVtY3B5KGNvZGUs
IHV0ZjhfY2hhciwgYyAmIDcpOwotICAgICAgICAgICAgY29kZSArPSBjICYgNzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgKmNvZGUrKyA9IGM7Ci0gICAgICAgICAg
aWYgKHByb3BfdHlwZSA+PSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgKmNvZGUrKyA9
IHByb3BfdHlwZTsKLSAgICAgICAgICAgICpjb2RlKysgPSBwcm9wX3ZhbHVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIHJlcGVhdF9tYXggLT0gcmVwZWF0X21pbjsKLSAgICAgICAgICAqY29k
ZSsrID0gT1BfVVBUTyArIHJlcGVhdF90eXBlOwotICAgICAgICAgIFBVVDJJTkMoY29kZSwgMCwg
cmVwZWF0X21heCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgIC8qIFRoZSBjaGFy
YWN0ZXIgb3IgY2hhcmFjdGVyIHR5cGUgaXRzZWxmIGNvbWVzIGxhc3QgaW4gYWxsIGNhc2VzLiAq
LwotCi0gICAgICBpZiAoYyA+PSAxMjgpCi0gICAgICAgIHsKLSAgICAgICAgbWVtY3B5KGNvZGUs
IHV0ZjhfY2hhciwgYyAmIDcpOwotICAgICAgICBjb2RlICs9IGMgJiA3OwotICAgICAgICB9Ci0g
ICAgICBlbHNlCi0gICAgICAqY29kZSsrID0gYzsKLQotICAgICAgLyogRm9yIGEgcmVwZWF0ZWQg
VW5pY29kZSBwcm9wZXJ0eSBtYXRjaCwgdGhlcmUgYXJlIHR3byBleHRyYSBieXRlcyB0aGF0Ci0g
ICAgICBkZWZpbmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5LiAqLwotCi0gICAgICBpZiAocHJvcF90
eXBlID49IDApCi0gICAgICAgIHsKLSAgICAgICAgKmNvZGUrKyA9IHByb3BfdHlwZTsKLSAgICAg
ICAgKmNvZGUrKyA9IHByb3BfdmFsdWU7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgIC8qIElm
IHByZXZpb3VzIHdhcyBhIGNoYXJhY3RlciBjbGFzcyBvciBhIGJhY2sgcmVmZXJlbmNlLCB3ZSBw
dXQgdGhlIHJlcGVhdAotICAgIHN0dWZmIGFmdGVyIGl0LCBidXQganVzdCBza2lwIHRoZSBpdGVt
IGlmIHRoZSByZXBlYXQgd2FzIHswLDB9LiAqLwotCi0gICAgZWxzZSBpZiAoKnByZXZpb3VzID09
IE9QX0NMQVNTIHx8Ci0gICAgICAgICAgICAgKnByZXZpb3VzID09IE9QX05DTEFTUyB8fAotICAg
ICAgICAgICAgICpwcmV2aW91cyA9PSBPUF9YQ0xBU1MgfHwKLSAgICAgICAgICAgICAqcHJldmlv
dXMgPT0gT1BfUkVGKQotICAgICAgewotICAgICAgaWYgKHJlcGVhdF9tYXggPT0gMCkKLSAgICAg
ICAgewotICAgICAgICBjb2RlID0gcHJldmlvdXM7Ci0gICAgICAgIGdvdG8gRU5EX1JFUEVBVDsK
LSAgICAgICAgfQotCi0gICAgICBpZiAocmVwZWF0X21pbiA9PSAwICYmIHJlcGVhdF9tYXggPT0g
LTEpCi0gICAgICAgICpjb2RlKysgPSBPUF9DUlNUQVIgKyByZXBlYXRfdHlwZTsKLSAgICAgIGVs
c2UgaWYgKHJlcGVhdF9taW4gPT0gMSAmJiByZXBlYXRfbWF4ID09IC0xKQotICAgICAgICAqY29k
ZSsrID0gT1BfQ1JQTFVTICsgcmVwZWF0X3R5cGU7Ci0gICAgICBlbHNlIGlmIChyZXBlYXRfbWlu
ID09IDAgJiYgcmVwZWF0X21heCA9PSAxKQotICAgICAgICAqY29kZSsrID0gT1BfQ1JRVUVSWSAr
IHJlcGVhdF90eXBlOwotICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICpjb2RlKysgPSBP
UF9DUlJBTkdFICsgcmVwZWF0X3R5cGU7Ci0gICAgICAgIFBVVDJJTkMoY29kZSwgMCwgcmVwZWF0
X21pbik7Ci0gICAgICAgIGlmIChyZXBlYXRfbWF4ID09IC0xKSByZXBlYXRfbWF4ID0gMDsgIC8q
IDItYnl0ZSBlbmNvZGluZyBmb3IgbWF4ICovCi0gICAgICAgIFBVVDJJTkMoY29kZSwgMCwgcmVw
ZWF0X21heCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgIC8qIElmIHByZXZpb3VzIHdhcyBh
IGJyYWNrZXQgZ3JvdXAsIHdlIG1heSBoYXZlIHRvIHJlcGxpY2F0ZSBpdCBpbiBjZXJ0YWluCi0g
ICAgY2FzZXMuICovCi0KLSAgICBlbHNlIGlmICgqcHJldmlvdXMgPj0gT1BfQlJBIHx8ICpwcmV2
aW91cyA9PSBPUF9PTkNFKQotICAgICAgewotICAgICAgcmVnaXN0ZXIgaW50IGk7Ci0gICAgICBp
bnQga2V0b2Zmc2V0ID0gMDsKLSAgICAgIGludCBsZW4gPSBjb2RlIC0gcHJldmlvdXM7Ci0gICAg
ICB1c2NoYXIgKmJyYWxpbmsgPSBOVUxMOwotCi0gICAgICAvKiBJZiB0aGUgbWF4aW11bSByZXBl
YXQgY291bnQgaXMgdW5saW1pdGVkLCBmaW5kIHRoZSBlbmQgb2YgdGhlIGJyYWNrZXQKLSAgICAg
IGJ5IHNjYW5uaW5nIHRocm91Z2ggZnJvbSB0aGUgc3RhcnQsIGFuZCBjb21wdXRlIHRoZSBvZmZz
ZXQgYmFjayB0byBpdAotICAgICAgZnJvbSB0aGUgY3VycmVudCBjb2RlIHBvaW50ZXIuIFRoZXJl
IG1heSBiZSBhbiBPUF9PUFQgc2V0dGluZyBmb2xsb3dpbmcKLSAgICAgIHRoZSBmaW5hbCBLRVQs
IHNvIHdlIGNhbid0IGZpbmQgdGhlIGVuZCBqdXN0IGJ5IGdvaW5nIGJhY2sgZnJvbSB0aGUgY29k
ZQotICAgICAgcG9pbnRlci4gKi8KLQotICAgICAgaWYgKHJlcGVhdF9tYXggPT0gLTEpCi0gICAg
ICAgIHsKLSAgICAgICAgcmVnaXN0ZXIgdXNjaGFyICprZXQgPSBwcmV2aW91czsKLSAgICAgICAg
ZG8ga2V0ICs9IEdFVChrZXQsIDEpOyB3aGlsZSAoKmtldCAhPSBPUF9LRVQpOwotICAgICAgICBr
ZXRvZmZzZXQgPSBjb2RlIC0ga2V0OwotICAgICAgICB9Ci0KLSAgICAgIC8qIFRoZSBjYXNlIG9m
IGEgemVybyBtaW5pbXVtIGlzIHNwZWNpYWwgYmVjYXVzZSBvZiB0aGUgbmVlZCB0byBzdGljawot
ICAgICAgT1BfQlJBWkVSTyBpbiBmcm9udCBvZiBpdCwgYW5kIGJlY2F1c2UgdGhlIGdyb3VwIGFw
cGVhcnMgb25jZSBpbiB0aGUKLSAgICAgIGRhdGEsIHdoZXJlYXMgaW4gb3RoZXIgY2FzZXMgaXQg
YXBwZWFycyB0aGUgbWluaW11bSBudW1iZXIgb2YgdGltZXMuIEZvcgotICAgICAgdGhpcyByZWFz
b24sIGl0IGlzIHNpbXBsZXN0IHRvIHRyZWF0IHRoaXMgY2FzZSBzZXBhcmF0ZWx5LCBhcyBvdGhl
cndpc2UKLSAgICAgIHRoZSBjb2RlIGdldHMgZmFyIHRvbyBtZXNzeS4gVGhlcmUgYXJlIHNldmVy
YWwgc3BlY2lhbCBzdWJjYXNlcyB3aGVuIHRoZQotICAgICAgbWluaW11bSBpcyB6ZXJvLiAqLwot
Ci0gICAgICBpZiAocmVwZWF0X21pbiA9PSAwKQotICAgICAgICB7Ci0gICAgICAgIC8qIElmIHRo
ZSBtYXhpbXVtIGlzIGFsc28gemVybywgd2UganVzdCBvbWl0IHRoZSBncm91cCBmcm9tIHRoZSBv
dXRwdXQKLSAgICAgICAgYWx0b2dldGhlci4gKi8KLQotICAgICAgICBpZiAocmVwZWF0X21heCA9
PSAwKQotICAgICAgICAgIHsKLSAgICAgICAgICBjb2RlID0gcHJldmlvdXM7Ci0gICAgICAgICAg
Z290byBFTkRfUkVQRUFUOwotICAgICAgICAgIH0KLQotICAgICAgICAvKiBJZiB0aGUgbWF4aW11
bSBpcyAxIG9yIHVubGltaXRlZCwgd2UganVzdCBoYXZlIHRvIHN0aWNrIGluIHRoZQotICAgICAg
ICBCUkFaRVJPIGFuZCBkbyBubyBtb3JlIGF0IHRoaXMgcG9pbnQuIEhvd2V2ZXIsIHdlIGRvIG5l
ZWQgdG8gYWRqdXN0Ci0gICAgICAgIGFueSBPUF9SRUNVUlNFIGNhbGxzIGluc2lkZSB0aGUgZ3Jv
dXAgdGhhdCByZWZlciB0byB0aGUgZ3JvdXAgaXRzZWxmIG9yCi0gICAgICAgIGFueSBpbnRlcm5h
bCBncm91cCwgYmVjYXVzZSB0aGUgb2Zmc2V0IGlzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB3aG9s
ZQotICAgICAgICByZWdleC4gVGVtcG9yYXJpbHkgdGVybWluYXRlIHRoZSBwYXR0ZXJuIHdoaWxl
IGRvaW5nIHRoaXMuICovCi0KLSAgICAgICAgaWYgKHJlcGVhdF9tYXggPD0gMSkKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgKmNvZGUgPSBPUF9FTkQ7Ci0gICAgICAgICAgbWVtbW92ZShwcmV2aW91
cysxLCBwcmV2aW91cywgbGVuKTsKLSAgICAgICAgICBjb2RlKys7Ci0gICAgICAgICAgKnByZXZp
b3VzKysgPSBPUF9CUkFaRVJPICsgcmVwZWF0X3R5cGU7Ci0gICAgICAgICAgfQotCi0gICAgICAg
IC8qIElmIHRoZSBtYXhpbXVtIGlzIGdyZWF0ZXIgdGhhbiAxIGFuZCBsaW1pdGVkLCB3ZSBoYXZl
IHRvIHJlcGxpY2F0ZQotICAgICAgICBpbiBhIG5lc3RlZCBmYXNoaW9uLCBzdGlja2luZyBPUF9C
UkFaRVJPIGJlZm9yZSBlYWNoIHNldCBvZiBicmFja2V0cy4KLSAgICAgICAgVGhlIGZpcnN0IG9u
ZSBoYXMgdG8gYmUgaGFuZGxlZCBjYXJlZnVsbHkgYmVjYXVzZSBpdCdzIHRoZSBvcmlnaW5hbAot
ICAgICAgICBjb3B5LCB3aGljaCBoYXMgdG8gYmUgbW92ZWQgdXAuIFRoZSByZW1haW5kZXIgY2Fu
IGJlIGhhbmRsZWQgYnkgY29kZQotICAgICAgICB0aGF0IGlzIGNvbW1vbiB3aXRoIHRoZSBub24t
emVybyBtaW5pbXVtIGNhc2UgYmVsb3cuIFdlIGhhdmUgdG8KLSAgICAgICAgYWRqdXN0IHRoZSB2
YWx1ZSBvciByZXBlYXRfbWF4LCBzaW5jZSBvbmUgbGVzcyBjb3B5IGlzIHJlcXVpcmVkLiBPbmNl
Ci0gICAgICAgIGFnYWluLCB3ZSBtYXkgaGF2ZSB0byBhZGp1c3QgYW55IE9QX1JFQ1VSU0UgY2Fs
bHMgaW5zaWRlIHRoZSBncm91cC4gKi8KLQotICAgICAgICBlbHNlCi0gICAgICAgICAgewotICAg
ICAgICAgIGludCBvZmZzZXQ7Ci0gICAgICAgICAgKmNvZGUgPSBPUF9FTkQ7Ci0gICAgICAgICAg
bWVtbW92ZShwcmV2aW91cyArIDIgKyBMSU5LX1NJWkUsIHByZXZpb3VzLCBsZW4pOwotICAgICAg
ICAgIGNvZGUgKz0gMiArIExJTktfU0laRTsKLSAgICAgICAgICAqcHJldmlvdXMrKyA9IE9QX0JS
QVpFUk8gKyByZXBlYXRfdHlwZTsKLSAgICAgICAgICAqcHJldmlvdXMrKyA9IE9QX0JSQTsKLQot
ICAgICAgICAgIC8qIFdlIGNoYWluIHRvZ2V0aGVyIHRoZSBicmFja2V0IG9mZnNldCBmaWVsZHMg
dGhhdCBoYXZlIHRvIGJlCi0gICAgICAgICAgZmlsbGVkIGluIGxhdGVyIHdoZW4gdGhlIGVuZHMg
b2YgdGhlIGJyYWNrZXRzIGFyZSByZWFjaGVkLiAqLwotCi0gICAgICAgICAgb2Zmc2V0ID0gKGJy
YWxpbmsgPT0gTlVMTCk/IDAgOiBwcmV2aW91cyAtIGJyYWxpbms7Ci0gICAgICAgICAgYnJhbGlu
ayA9IHByZXZpb3VzOwotICAgICAgICAgIFBVVElOQyhwcmV2aW91cywgMCwgb2Zmc2V0KTsKLSAg
ICAgICAgICB9Ci0KLSAgICAgICAgcmVwZWF0X21heC0tOwotICAgICAgICB9Ci0KLSAgICAgIC8q
IElmIHRoZSBtaW5pbXVtIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCByZXBsaWNhdGUgdGhlIGdyb3Vw
IGFzIG1hbnkKLSAgICAgIHRpbWVzIGFzIG5lY2Vzc2FyeSwgYW5kIGFkanVzdCB0aGUgbWF4aW11
bSB0byB0aGUgbnVtYmVyIG9mIHN1YnNlcXVlbnQKLSAgICAgIGNvcGllcyB0aGF0IHdlIG5lZWQu
IElmIHdlIHNldCBhIGZpcnN0IGNoYXIgZnJvbSB0aGUgZ3JvdXAsIGFuZCBkaWRuJ3QKLSAgICAg
IHNldCBhIHJlcXVpcmVkIGNoYXIsIGNvcHkgdGhlIGxhdHRlciBmcm9tIHRoZSBmb3JtZXIuICov
Ci0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBpZiAocmVwZWF0X21pbiA+IDEpCi0g
ICAgICAgICAgewotICAgICAgICAgIGlmIChncm91cHNldGZpcnN0Ynl0ZSAmJiByZXFieXRlIDwg
MCkgcmVxYnl0ZSA9IGZpcnN0Ynl0ZTsKLSAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgcmVwZWF0
X21pbjsgaSsrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgbWVtY3B5KGNvZGUsIHByZXZp
b3VzLCBsZW4pOwotICAgICAgICAgICAgY29kZSArPSBsZW47Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgfQotICAgICAgICBpZiAocmVwZWF0X21heCA+IDApIHJlcGVhdF9tYXggLT0gcmVwZWF0
X21pbjsKLSAgICAgICAgfQotCi0gICAgICAvKiBUaGlzIGNvZGUgaXMgY29tbW9uIHRvIGJvdGgg
dGhlIHplcm8gYW5kIG5vbi16ZXJvIG1pbmltdW0gY2FzZXMuIElmCi0gICAgICB0aGUgbWF4aW11
bSBpcyBsaW1pdGVkLCBpdCByZXBsaWNhdGVzIHRoZSBncm91cCBpbiBhIG5lc3RlZCBmYXNoaW9u
LAotICAgICAgcmVtZW1iZXJpbmcgdGhlIGJyYWNrZXQgc3RhcnRzIG9uIGEgc3RhY2suIEluIHRo
ZSBjYXNlIG9mIGEgemVybyBtaW5pbXVtLAotICAgICAgdGhlIGZpcnN0IG9uZSB3YXMgc2V0IHVw
IGFib3ZlLiBJbiBhbGwgY2FzZXMgdGhlIHJlcGVhdF9tYXggbm93IHNwZWNpZmllcwotICAgICAg
dGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIGNvcGllcyBuZWVkZWQuICovCi0KLSAgICAgIGlmIChy
ZXBlYXRfbWF4ID49IDApCi0gICAgICAgIHsKLSAgICAgICAgZm9yIChpID0gcmVwZWF0X21heCAt
IDE7IGkgPj0gMDsgaS0tKQotICAgICAgICAgIHsKLSAgICAgICAgICAqY29kZSsrID0gT1BfQlJB
WkVSTyArIHJlcGVhdF90eXBlOwotCi0gICAgICAgICAgLyogQWxsIGJ1dCB0aGUgZmluYWwgY29w
eSBzdGFydCBhIG5ldyBuZXN0aW5nLCBtYWludGFpbmluZyB0aGUKLSAgICAgICAgICBjaGFpbiBv
ZiBicmFja2V0cyBvdXRzdGFuZGluZy4gKi8KLQotICAgICAgICAgIGlmIChpICE9IDApCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0OwotICAgICAgICAgICAgKmNvZGUrKyA9
IE9QX0JSQTsKLSAgICAgICAgICAgIG9mZnNldCA9IChicmFsaW5rID09IE5VTEwpPyAwIDogY29k
ZSAtIGJyYWxpbms7Ci0gICAgICAgICAgICBicmFsaW5rID0gY29kZTsKLSAgICAgICAgICAgIFBV
VElOQyhjb2RlLCAwLCBvZmZzZXQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgbWVtY3B5
KGNvZGUsIHByZXZpb3VzLCBsZW4pOwotICAgICAgICAgIGNvZGUgKz0gbGVuOwotICAgICAgICAg
IH0KLQotICAgICAgICAvKiBOb3cgY2hhaW4gdGhyb3VnaCB0aGUgcGVuZGluZyBicmFja2V0cywg
YW5kIGZpbGwgaW4gdGhlaXIgbGVuZ3RoCi0gICAgICAgIGZpZWxkcyAod2hpY2ggYXJlIGhvbGRp
bmcgdGhlIGNoYWluIGxpbmtzIHBybyB0ZW0pLiAqLwotCi0gICAgICAgIHdoaWxlIChicmFsaW5r
ICE9IE5VTEwpCi0gICAgICAgICAgewotICAgICAgICAgIGludCBvbGRsaW5rb2Zmc2V0OwotICAg
ICAgICAgIGludCBvZmZzZXQgPSBjb2RlIC0gYnJhbGluayArIDE7Ci0gICAgICAgICAgdXNjaGFy
ICpicmEgPSBjb2RlIC0gb2Zmc2V0OwotICAgICAgICAgIG9sZGxpbmtvZmZzZXQgPSBHRVQoYnJh
LCAxKTsKLSAgICAgICAgICBicmFsaW5rID0gKG9sZGxpbmtvZmZzZXQgPT0gMCk/IE5VTEwgOiBi
cmFsaW5rIC0gb2xkbGlua29mZnNldDsKLSAgICAgICAgICAqY29kZSsrID0gT1BfS0VUOwotICAg
ICAgICAgIFBVVElOQyhjb2RlLCAwLCBvZmZzZXQpOwotICAgICAgICAgIFBVVChicmEsIDEsIG9m
ZnNldCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgIC8qIElmIHRoZSBtYXhpbXVt
IGlzIHVubGltaXRlZCwgc2V0IGEgcmVwZWF0ZXIgaW4gdGhlIGZpbmFsIGNvcHkuIFdlCi0gICAg
ICBjYW4ndCBqdXN0IG9mZnNldCBiYWNrd2FyZHMgZnJvbSB0aGUgY3VycmVudCBjb2RlIHBvaW50
LCBiZWNhdXNlIHdlCi0gICAgICBkb24ndCBrbm93IGlmIHRoZXJlJ3MgYmVlbiBhbiBvcHRpb25z
IHJlc2V0dGluZyBhZnRlciB0aGUga2V0LiBUaGUKLSAgICAgIGNvcnJlY3Qgb2Zmc2V0IHdhcyBj
b21wdXRlZCBhYm92ZS4gKi8KLQotICAgICAgZWxzZSBjb2RlWy1rZXRvZmZzZXRdID0gT1BfS0VU
Uk1BWCArIHJlcGVhdF90eXBlOwotICAgICAgfQotCi0gICAgLyogRWxzZSB0aGVyZSdzIHNvbWUg
a2luZCBvZiBzaGFtYmxlcyAqLwotCi0gICAgZWxzZQotICAgICAgewotICAgICAgKmVycm9yY29k
ZXB0ciA9IEVSUjExOwotICAgICAgZ290byBGQUlMRUQ7Ci0gICAgICB9Ci0KLSAgICAvKiBJZiB0
aGUgY2hhcmFjdGVyIGZvbGxvd2luZyBhIHJlcGVhdCBpcyAnKycsIHdlIHdyYXAgdGhlIGVudGly
ZSByZXBlYXRlZAotICAgIGl0ZW0gaW5zaWRlIE9QX09OQ0UgYnJhY2tldHMuIFRoaXMgaXMganVz
dCBzeW50YWN0aWMgc3VnYXIsIHRha2VuIGZyb20KLSAgICBTdW4ncyBKYXZhIHBhY2thZ2UuIFRo
ZSByZXBlYXRlZCBpdGVtIHN0YXJ0cyBhdCB0ZW1wY29kZSwgbm90IGF0IHByZXZpb3VzLAotICAg
IHdoaWNoIG1pZ2h0IGJlIHRoZSBmaXJzdCBwYXJ0IG9mIGEgc3RyaW5nIHdob3NlIChmb3JtZXIp
IGxhc3QgY2hhciB3ZQotICAgIHJlcGVhdGVkLiBIb3dldmVyLCB3ZSBkb24ndCBzdXBwb3J0ICcr
JyBhZnRlciBhIGdyZWVkaW5lc3MgJz8nLiAqLwotCi0gICAgaWYgKHBvc3Nlc3NpdmVfcXVhbnRp
ZmllcikKLSAgICAgIHsKLSAgICAgIGludCBsZW4gPSBjb2RlIC0gdGVtcGNvZGU7Ci0gICAgICBt
ZW1tb3ZlKHRlbXBjb2RlICsgMStMSU5LX1NJWkUsIHRlbXBjb2RlLCBsZW4pOwotICAgICAgY29k
ZSArPSAxICsgTElOS19TSVpFOwotICAgICAgbGVuICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICB0
ZW1wY29kZVswXSA9IE9QX09OQ0U7Ci0gICAgICAqY29kZSsrID0gT1BfS0VUOwotICAgICAgUFVU
SU5DKGNvZGUsIDAsIGxlbik7Ci0gICAgICBQVVQodGVtcGNvZGUsIDEsIGxlbik7Ci0gICAgICB9
Ci0KLSAgICAvKiBJbiBhbGwgY2FzZSB3ZSBubyBsb25nZXIgaGF2ZSBhIHByZXZpb3VzIGl0ZW0u
IFdlIGFsc28gc2V0IHRoZQotICAgICJmb2xsb3dzIHZhcnlpbmcgc3RyaW5nIiBmbGFnIGZvciBz
dWJzZXF1ZW50bHkgZW5jb3VudGVyZWQgcmVxYnl0ZXMgaWYKLSAgICBpdCBpc24ndCBhbHJlYWR5
IHNldCBhbmQgd2UgaGF2ZSBqdXN0IHBhc3NlZCBhIHZhcnlpbmcgbGVuZ3RoIGl0ZW0uICovCi0K
LSAgICBFTkRfUkVQRUFUOgotICAgIHByZXZpb3VzID0gTlVMTDsKLSAgICBjZC0+cmVxX3Zhcnlv
cHQgfD0gcmVxdmFyeTsKLSAgICBicmVhazsKLQotCi0gICAgLyogU3RhcnQgb2YgbmVzdGVkIGJy
YWNrZXQgc3ViLWV4cHJlc3Npb24sIG9yIGNvbW1lbnQgb3IgbG9va2FoZWFkIG9yCi0gICAgbG9v
a2JlaGluZCBvciBvcHRpb24gc2V0dGluZyBvciBjb25kaXRpb24uIEZpcnN0IGRlYWwgd2l0aCBz
cGVjaWFsIHRoaW5ncwotICAgIHRoYXQgY2FuIGNvbWUgYWZ0ZXIgYSBicmFja2V0OyBhbGwgYXJl
IGludHJvZHVjZWQgYnkgPywgYW5kIHRoZSBhcHBlYXJhbmNlCi0gICAgb2YgYW55IG9mIHRoZW0g
bWVhbnMgdGhhdCB0aGlzIGlzIG5vdCBhIHJlZmVyZW5jaW5nIGdyb3VwLiBUaGV5IHdlcmUKLSAg
ICBjaGVja2VkIGZvciB2YWxpZGl0eSBpbiB0aGUgZmlyc3QgcGFzcyBvdmVyIHRoZSBzdHJpbmcs
IHNvIHdlIGRvbid0IGhhdmUgdG8KLSAgICBjaGVjayBmb3Igc3ludGF4IGVycm9ycyBoZXJlLiAg
Ki8KLQotICAgIGNhc2UgJygnOgotICAgIG5ld29wdGlvbnMgPSBvcHRpb25zOwotICAgIHNraXBi
eXRlcyA9IDA7Ci0KLSAgICBpZiAoKigrK3B0cikgPT0gJz8nKQotICAgICAgewotICAgICAgc3dp
dGNoICgqKCsrcHRyKSkKLSAgICAgICAgewotICAgICAgICBjYXNlICc6JzogICAgICAgICAgICAg
ICAgIC8qIE5vbi1leHRyYWN0aW5nIGJyYWNrZXQgKi8KLSAgICAgICAgYnJhdmFsdWUgPSBPUF9C
UkE7Ci0gICAgICAgIHB0cisrOwotICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlICc9Jzog
ICAgICAgICAgICAgICAgIC8qIFBvc2l0aXZlIGxvb2thaGVhZCAqLwotICAgICAgICBicmF2YWx1
ZSA9IE9QX0FTU0VSVDsKLSAgICAgICAgcHRyKys7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAg
IGNhc2UgJyEnOiAgICAgICAgICAgICAgICAgLyogTmVnYXRpdmUgbG9va2FoZWFkICovCi0gICAg
ICAgIGJyYXZhbHVlID0gT1BfQVNTRVJUX05PVDsKLSAgICAgICAgcHRyKys7Ci0gICAgICAgIGJy
ZWFrOwotCi0gICAgICAgIC8qIENoYXJhY3RlciBhZnRlciAoPyBub3Qgc3BlY2lhbGx5IHJlY29n
bml6ZWQgKi8KLQotICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgIC8qIE9wdGlvbiBz
ZXR0aW5nICovCi0gICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlIxMjsKLSAgICAgICAgZ290byBG
QUlMRUQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgIC8qIEVsc2Ugd2UgaGF2ZSBhIHJlZmVy
ZW5jaW5nIGdyb3VwOyBhZGp1c3QgdGhlIG9wY29kZS4gSWYgdGhlIGJyYWNrZXQKLSAgICBudW1i
ZXIgaXMgZ3JlYXRlciB0aGFuIEVYVFJBQ1RfQkFTSUNfTUFYLCB3ZSBzZXQgdGhlIG9wY29kZSBv
bmUgaGlnaGVyLCBhbmQKLSAgICBhcnJhbmdlIGZvciB0aGUgdHJ1ZSBudW1iZXIgdG8gZm9sbG93
IGxhdGVyLCBpbiBhbiBPUF9CUkFOVU1CRVIgaXRlbS4gKi8KLQotICAgIGVsc2UKLSAgICAgIHsK
LSAgICAgIGlmICgrKygqYnJhY2tldHMpID4gRVhUUkFDVF9CQVNJQ19NQVgpCi0gICAgICAgIHsK
LSAgICAgICAgYnJhdmFsdWUgPSBPUF9CUkEgKyBFWFRSQUNUX0JBU0lDX01BWCArIDE7Ci0gICAg
ICAgIGNvZGVbMStMSU5LX1NJWkVdID0gT1BfQlJBTlVNQkVSOwotICAgICAgICBQVVQyKGNvZGUs
IDIrTElOS19TSVpFLCAqYnJhY2tldHMpOwotICAgICAgICBza2lwYnl0ZXMgPSAzOwotICAgICAg
ICB9Ci0gICAgICBlbHNlIGJyYXZhbHVlID0gT1BfQlJBICsgKmJyYWNrZXRzOwotICAgICAgfQot
Ci0gICAgLyogUHJvY2VzcyBuZXN0ZWQgYnJhY2tldGVkIHJlLiBBc3NlcnRpb25zIG1heSBub3Qg
YmUgcmVwZWF0ZWQsIGJ1dCBvdGhlcgotICAgIGtpbmRzIGNhbiBiZS4gV2UgY29weSBjb2RlIGlu
dG8gYSBub24tcmVnaXN0ZXIgdmFyaWFibGUgaW4gb3JkZXIgdG8gYmUgYWJsZQotICAgIHRvIHBh
c3MgaXRzIGFkZHJlc3MgYmVjYXVzZSBzb21lIGNvbXBpbGVycyBjb21wbGFpbiBvdGhlcndpc2Uu
IFBhc3MgaW4gYQotICAgIG5ldyBzZXR0aW5nIGZvciB0aGUgaW1zIG9wdGlvbnMgaWYgdGhleSBo
YXZlIGNoYW5nZWQuICovCi0KLSAgICBwcmV2aW91cyA9IChicmF2YWx1ZSA+PSBPUF9PTkNFKT8g
Y29kZSA6IE5VTEw7Ci0gICAgKmNvZGUgPSBicmF2YWx1ZTsKLSAgICB0ZW1wY29kZSA9IGNvZGU7
Ci0gICAgdGVtcHJlcXZhcnkgPSBjZC0+cmVxX3ZhcnlvcHQ7ICAgICAvKiBTYXZlIHZhbHVlIGJl
Zm9yZSBicmFja2V0ICovCi0KLSAgICBpZiAoIWNvbXBpbGVfcmVnZXgoCi0gICAgICAgICBuZXdv
cHRpb25zLCAgICAgICAgICAgICAgICAgICAvKiBUaGUgY29tcGxldGUgbmV3IG9wdGlvbiBzdGF0
ZSAqLwotICAgICAgICAgYnJhY2tldHMsICAgICAgICAgICAgICAgICAgICAgLyogRXh0cmFjdGlu
ZyBicmFja2V0IGNvdW50ICovCi0gICAgICAgICAmdGVtcGNvZGUsICAgICAgICAgICAgICAgICAg
ICAvKiBXaGVyZSB0byBwdXQgY29kZSAodXBkYXRlZCkgKi8KLSAgICAgICAgICZwdHIsICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIElucHV0IHBvaW50ZXIgKHVwZGF0ZWQpICovCi0gICAgICAg
ICBwYXR0ZXJuRW5kLAotICAgICAgICAgZXJyb3Jjb2RlcHRyLCAgICAgICAgICAgICAgICAgLyog
V2hlcmUgdG8gcHV0IGFuIGVycm9yIG1lc3NhZ2UgKi8KLSAgICAgICAgIHNraXBieXRlcywgICAg
ICAgICAgICAgICAgICAgIC8qIFNraXAgb3ZlciBPUF9CUkFOVU1CRVIgKi8KLSAgICAgICAgICZz
dWJmaXJzdGJ5dGUsICAgICAgICAgICAgICAgIC8qIEZvciBwb3NzaWJsZSBmaXJzdCBjaGFyICov
Ci0gICAgICAgICAmc3VicmVxYnl0ZSwgICAgICAgICAgICAgICAgICAvKiBGb3IgcG9zc2libGUg
bGFzdCBjaGFyICovCi0gICAgICAgICBjZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBU
YWJsZXMgYmxvY2sgKi8KLSAgICAgIGdvdG8gRkFJTEVEOwotCi0gICAgLyogQXQgdGhlIGVuZCBv
ZiBjb21waWxpbmcsIGNvZGUgaXMgc3RpbGwgcG9pbnRpbmcgdG8gdGhlIHN0YXJ0IG9mIHRoZQot
ICAgIGdyb3VwLCB3aGlsZSB0ZW1wY29kZSBoYXMgYmVlbiB1cGRhdGVkIHRvIHBvaW50IHBhc3Qg
dGhlIGVuZCBvZiB0aGUgZ3JvdXAKLSAgICBhbmQgYW55IG9wdGlvbiByZXNldHRpbmcgdGhhdCBt
YXkgZm9sbG93IGl0LiBUaGUgcGF0dGVybiBwb2ludGVyIChwdHIpCi0gICAgaXMgb24gdGhlIGJy
YWNrZXQuICovCi0KLSAgICAvKiBIYW5kbGUgdXBkYXRpbmcgb2YgdGhlIHJlcXVpcmVkIGFuZCBm
aXJzdCBjaGFyYWN0ZXJzLiBVcGRhdGUgZm9yIG5vcm1hbAotICAgIGJyYWNrZXRzIG9mIGFsbCBr
aW5kcywgYW5kIGNvbmRpdGlvbnMgd2l0aCB0d28gYnJhbmNoZXMgKHNlZSBjb2RlIGFib3ZlKS4K
LSAgICBJZiB0aGUgYnJhY2tldCBpcyBmb2xsb3dlZCBieSBhIHF1YW50aWZpZXIgd2l0aCB6ZXJv
IHJlcGVhdCwgd2UgaGF2ZSB0bwotICAgIGJhY2sgb2ZmLiBIZW5jZSB0aGUgZGVmaW5pdGlvbiBv
ZiB6ZXJvcmVxYnl0ZSBhbmQgemVyb2ZpcnN0Ynl0ZSBvdXRzaWRlIHRoZQotICAgIG1haW4gbG9v
cCBzbyB0aGF0IHRoZXkgY2FuIGJlIGFjY2Vzc2VkIGZvciB0aGUgYmFjayBvZmYuICovCi0KLSAg
ICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7Ci0gICAgemVyb2ZpcnN0Ynl0ZSA9IGZpcnN0Ynl0ZTsK
LSAgICBncm91cHNldGZpcnN0Ynl0ZSA9IEZBTFNFOwotCi0gICAgaWYgKGJyYXZhbHVlID49IE9Q
X0JSQSB8fCBicmF2YWx1ZSA9PSBPUF9PTkNFKQotICAgICAgewotICAgICAgLyogSWYgd2UgaGF2
ZSBub3QgeWV0IHNldCBhIGZpcnN0Ynl0ZSBpbiB0aGlzIGJyYW5jaCwgdGFrZSBpdCBmcm9tIHRo
ZQotICAgICAgc3VicGF0dGVybiwgcmVtZW1iZXJpbmcgdGhhdCBpdCB3YXMgc2V0IGhlcmUgc28g
dGhhdCBhIHJlcGVhdCBvZiBtb3JlCi0gICAgICB0aGFuIG9uZSBjYW4gcmVwbGljYXRlIGl0IGFz
IHJlcWJ5dGUgaWYgbmVjZXNzYXJ5LiBJZiB0aGUgc3VicGF0dGVybiBoYXMKLSAgICAgIG5vIGZp
cnN0Ynl0ZSwgc2V0ICJub25lIiBmb3IgdGhlIHdob2xlIGJyYW5jaC4gSW4gYm90aCBjYXNlcywg
YSB6ZXJvCi0gICAgICByZXBlYXQgZm9yY2VzIGZpcnN0Ynl0ZSB0byAibm9uZSIuICovCi0KLSAg
ICAgIGlmIChmaXJzdGJ5dGUgPT0gUkVRX1VOU0VUKQotICAgICAgICB7Ci0gICAgICAgIGlmIChz
dWJmaXJzdGJ5dGUgPj0gMCkKLSAgICAgICAgICB7Ci0gICAgICAgICAgZmlyc3RieXRlID0gc3Vi
Zmlyc3RieXRlOwotICAgICAgICAgIGdyb3Vwc2V0Zmlyc3RieXRlID0gVFJVRTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIGVsc2UgZmlyc3RieXRlID0gUkVRX05PTkU7Ci0gICAgICAgIHplcm9maXJz
dGJ5dGUgPSBSRVFfTk9ORTsKLSAgICAgICAgfQotCi0gICAgICAvKiBJZiBmaXJzdGJ5dGUgd2Fz
IHByZXZpb3VzbHkgc2V0LCBjb252ZXJ0IHRoZSBzdWJwYXR0ZXJuJ3MgZmlyc3RieXRlCi0gICAg
ICBpbnRvIHJlcWJ5dGUgaWYgdGhlcmUgd2Fzbid0IG9uZSwgdXNpbmcgdGhlIHZhcnkgZmxhZyB0
aGF0IHdhcyBpbgotICAgICAgZXhpc3RlbmNlIGJlZm9yZWhhbmQuICovCi0KLSAgICAgIGVsc2Ug
aWYgKHN1YmZpcnN0Ynl0ZSA+PSAwICYmIHN1YnJlcWJ5dGUgPCAwKQotICAgICAgICBzdWJyZXFi
eXRlID0gc3ViZmlyc3RieXRlIHwgdGVtcHJlcXZhcnk7Ci0KLSAgICAgIC8qIElmIHRoZSBzdWJw
YXR0ZXJuIHNldCBhIHJlcXVpcmVkIGJ5dGUgKG9yIHNldCBhIGZpcnN0IGJ5dGUgdGhhdCBpc24n
dAotICAgICAgcmVhbGx5IHRoZSBmaXJzdCBieXRlIC0gc2VlIGFib3ZlKSwgc2V0IGl0LiAqLwot
Ci0gICAgICBpZiAoc3VicmVxYnl0ZSA+PSAwKSByZXFieXRlID0gc3VicmVxYnl0ZTsKLSAgICAg
IH0KLQotICAgIC8qIEZvciBhIGZvcndhcmQgYXNzZXJ0aW9uLCB3ZSB0YWtlIHRoZSByZXFieXRl
LCBpZiBzZXQuIFRoaXMgY2FuIGJlCi0gICAgaGVscGZ1bCBpZiB0aGUgcGF0dGVybiB0aGF0IGZv
bGxvd3MgdGhlIGFzc2VydGlvbiBkb2Vzbid0IHNldCBhIGRpZmZlcmVudAotICAgIGNoYXIuIEZv
ciBleGFtcGxlLCBpdCdzIHVzZWZ1bCBmb3IgLyg/PWFiY2RlKS4rLy4gV2UgY2FuJ3Qgc2V0IGZp
cnN0Ynl0ZQotICAgIGZvciBhbiBhc3NlcnRpb24sIGhvd2V2ZXIgYmVjYXVzZSBpdCBsZWFkcyB0
byBpbmNvcnJlY3QgZWZmZWN0IGZvciBwYXR0ZXJucwotICAgIHN1Y2ggYXMgLyg/PWEpYS4rLyB3
aGVuIHRoZSAicmVhbCIgImEiIHdvdWxkIHRoZW4gYmVjb21lIGEgcmVxYnl0ZSBpbnN0ZWFkCi0g
ICAgb2YgYSBmaXJzdGJ5dGUuIFRoaXMgaXMgb3ZlcmNvbWUgYnkgYSBzY2FuIGF0IHRoZSBlbmQg
aWYgdGhlcmUncyBubwotICAgIGZpcnN0Ynl0ZSwgbG9va2luZyBmb3IgYW4gYXNzZXJ0ZWQgZmly
c3QgY2hhci4gKi8KLQotICAgIGVsc2UgaWYgKGJyYXZhbHVlID09IE9QX0FTU0VSVCAmJiBzdWJy
ZXFieXRlID49IDApIHJlcWJ5dGUgPSBzdWJyZXFieXRlOwotCi0gICAgLyogTm93IHVwZGF0ZSB0
aGUgbWFpbiBjb2RlIHBvaW50ZXIgdG8gdGhlIGVuZCBvZiB0aGUgZ3JvdXAuICovCi0KLSAgICBj
b2RlID0gdGVtcGNvZGU7Ci0KLSAgICAvKiBFcnJvciBpZiBoaXQgZW5kIG9mIHBhdHRlcm4gKi8K
LQotICAgIGlmIChwdHIgPj0gcGF0dGVybkVuZCB8fCAqcHRyICE9ICcpJykKLSAgICAgIHsKLSAg
ICAgICplcnJvcmNvZGVwdHIgPSBFUlIxNDsKLSAgICAgIGdvdG8gRkFJTEVEOwotICAgICAgfQot
ICAgIGJyZWFrOwotCi0gICAgLyogQ2hlY2sgXCBmb3IgYmVpbmcgYSByZWFsIG1ldGFjaGFyYWN0
ZXI7IGlmIG5vdCwgZmFsbCB0aHJvdWdoIGFuZCBoYW5kbGUKLSAgICBpdCBhcyBhIGRhdGEgY2hh
cmFjdGVyIGF0IHRoZSBzdGFydCBvZiBhIHN0cmluZy4gRXNjYXBlIGl0ZW1zIGFyZSBjaGVja2Vk
Ci0gICAgZm9yIHZhbGlkaXR5IGluIHRoZSBwcmUtY29tcGlsaW5nIHBhc3MuICovCi0KLSAgICBj
YXNlICdcXCc6Ci0gICAgdGVtcHB0ciA9IHB0cjsKLSAgICBjID0gY2hlY2tfZXNjYXBlKCZwdHIs
IHBhdHRlcm5FbmQsIGVycm9yY29kZXB0ciwgKmJyYWNrZXRzLCBGQUxTRSk7Ci0KLSAgICAvKiBI
YW5kbGUgbWV0YWNoYXJhY3RlcnMgaW50cm9kdWNlZCBieSBcLiBGb3Igb25lcyBsaWtlIFxkLCB0
aGUgRVNDXyB2YWx1ZXMKLSAgICBhcmUgYXJyYW5nZWQgdG8gYmUgdGhlIG5lZ2F0aW9uIG9mIHRo
ZSBjb3JyZXNwb25kaW5nIE9QX3ZhbHVlcy4gRm9yIHRoZQotICAgIGJhY2sgcmVmZXJlbmNlcywg
dGhlIHZhbHVlcyBhcmUgRVNDX1JFRiBwbHVzIHRoZSByZWZlcmVuY2UgbnVtYmVyLiBPbmx5Ci0g
ICAgYmFjayByZWZlcmVuY2VzIGFuZCB0aG9zZSB0eXBlcyB0aGF0IGNvbnN1bWUgYSBjaGFyYWN0
ZXIgbWF5IGJlIHJlcGVhdGVkLgotICAgIFdlIGNhbiB0ZXN0IGZvciB2YWx1ZXMgYmV0d2VlbiBF
U0NfYiBhbmQgRVNDX3cgZm9yIHRoZSBsYXR0ZXI7IHRoaXMgbWF5Ci0gICAgaGF2ZSB0byBjaGFu
Z2UgaWYgYW55IG5ldyBvbmVzIGFyZSBldmVyIGNyZWF0ZWQuICovCi0KLSAgICBpZiAoYyA8IDAp
Ci0gICAgICB7Ci0gICAgICAvKiBGb3IgbWV0YXNlcXVlbmNlcyB0aGF0IGFjdHVhbGx5IG1hdGNo
IGEgY2hhcmFjdGVyLCB3ZSBkaXNhYmxlIHRoZQotICAgICAgc2V0dGluZyBvZiBhIGZpcnN0IGNo
YXJhY3RlciBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHNldC4gKi8KLQotICAgICAgaWYgKGZp
cnN0Ynl0ZSA9PSBSRVFfVU5TRVQgJiYgLWMgPiBFU0NfYiAmJiAtYyA8PSBFU0NfdykKLSAgICAg
ICAgZmlyc3RieXRlID0gUkVRX05PTkU7Ci0KLSAgICAgIC8qIFNldCB2YWx1ZXMgdG8gcmVzZXQg
dG8gaWYgdGhpcyBpcyBmb2xsb3dlZCBieSBhIHplcm8gcmVwZWF0LiAqLwotCi0gICAgICB6ZXJv
Zmlyc3RieXRlID0gZmlyc3RieXRlOwotICAgICAgemVyb3JlcWJ5dGUgPSByZXFieXRlOwotCi0g
ICAgICAvKiBCYWNrIHJlZmVyZW5jZXMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5ICovCi0KLSAgICAg
IGlmICgtYyA+PSBFU0NfUkVGKQotICAgICAgICB7Ci0gICAgICAgIGludCBudW1iZXIgPSAtYyAt
IEVTQ19SRUY7Ci0gICAgICAgIHByZXZpb3VzID0gY29kZTsKLSAgICAgICAgKmNvZGUrKyA9IE9Q
X1JFRjsKLSAgICAgICAgUFVUMklOQyhjb2RlLCAwLCBudW1iZXIpOwotICAgICAgICB9Ci0KLSAg
ICAgIC8qIEZvciB0aGUgcmVzdCwgd2UgY2FuIG9idGFpbiB0aGUgT1AgdmFsdWUgYnkgbmVnYXRp
bmcgdGhlIGVzY2FwZQotICAgICAgdmFsdWUgKi8KLQotICAgICAgZWxzZQotICAgICAgICB7Ci0g
ICAgICAgIHByZXZpb3VzID0gKC1jID4gRVNDX2IgJiYgLWMgPD0gRVNDX3cpPyBjb2RlIDogTlVM
TDsKLSAgICAgICAgKmNvZGUrKyA9IC1jOwotICAgICAgICB9Ci0gICAgICBjb250aW51ZTsKLSAg
ICAgIH0KLQotICAgIC8qIEZhbGwgdGhyb3VnaC4gKi8KLQotICAgIC8qIEhhbmRsZSBhIGxpdGVy
YWwgY2hhcmFjdGVyLiBJdCBpcyBndWFyYW50ZWVkIG5vdCB0byBiZSB3aGl0ZXNwYWNlIG9yICMK
LSAgICB3aGVuIHRoZSBleHRlbmRlZCBmbGFnIGlzIHNldC4gSWYgd2UgYXJlIGluIFVURi04IG1v
ZGUsIGl0IG1heSBiZSBhCi0gICAgbXVsdGktYnl0ZSBsaXRlcmFsIGNoYXJhY3Rlci4gKi8KLQot
ICAgIGRlZmF1bHQ6Ci0gICAgTk9STUFMX0NIQVI6Ci0KLSAgICBwcmV2aW91cyA9IGNvZGU7Ci0K
LSAgICBpZiAoYyA8IDEyOCkKLSAgICAgIHsKLSAgICAgIG1jbGVuZ3RoID0gMTsKLSAgICAgIG1j
YnVmZmVyWzBdID0gYzsKLQotICAgICAgaWYgKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTICYmIChj
IHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ3onKQotICAgICAgICB7Ci0gICAgICAg
ICpjb2RlKysgPSBPUF9BU0NJSV9MRVRURVJfTkM7Ci0gICAgICAgICpjb2RlKysgPSBjIHwgMHgy
MDsKLSAgICAgICAgfQotICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICpjb2RlKysgPSBP
UF9BU0NJSV9DSEFSOwotICAgICAgICAqY29kZSsrID0gYzsKLSAgICAgICAgfQotICAgICAgfQot
ICAgIGVsc2UKLSAgICAgIHsKLSAgICAgIG1jbGVuZ3RoID0gX3BjcmVfb3JkMnV0ZjgoYywgbWNi
dWZmZXIpOwotCi0gICAgICAqY29kZSsrID0gKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0g
MCk/IE9QX0NIQVJOQyA6IE9QX0NIQVI7Ci0gICAgICBmb3IgKGMgPSAwOyBjIDwgbWNsZW5ndGg7
IGMrKykgKmNvZGUrKyA9IG1jYnVmZmVyW2NdOwotICAgICAgfQotCi0gICAgLyogU2V0IHRoZSBm
aXJzdCBhbmQgcmVxdWlyZWQgYnl0ZXMgYXBwcm9wcmlhdGVseS4gSWYgbm8gcHJldmlvdXMgZmly
c3QKLSAgICBieXRlLCBzZXQgaXQgZnJvbSB0aGlzIGNoYXJhY3RlciwgYnV0IHJldmVydCB0byBu
b25lIG9uIGEgemVybyByZXBlYXQuCi0gICAgT3RoZXJ3aXNlLCBsZWF2ZSB0aGUgZmlyc3RieXRl
IHZhbHVlIGFsb25lLCBhbmQgZG9uJ3QgY2hhbmdlIGl0IG9uIGEgemVybwotICAgIHJlcGVhdC4g
Ki8KLQotICAgIGlmIChmaXJzdGJ5dGUgPT0gUkVRX1VOU0VUKQotICAgICAgewotICAgICAgemVy
b2ZpcnN0Ynl0ZSA9IFJFUV9OT05FOwotICAgICAgemVyb3JlcWJ5dGUgPSByZXFieXRlOwotCi0g
ICAgICAvKiBJZiB0aGUgY2hhcmFjdGVyIGlzIG1vcmUgdGhhbiBvbmUgYnl0ZSBsb25nLCB3ZSBj
YW4gc2V0IGZpcnN0Ynl0ZQotICAgICAgb25seSBpZiBpdCBpcyBub3QgdG8gYmUgbWF0Y2hlZCBj
YXNlbGVzc2x5LiAqLwotCi0gICAgICBpZiAobWNsZW5ndGggPT0gMSB8fCByZXFfY2FzZW9wdCA9
PSAwKQotICAgICAgICB7Ci0gICAgICAgIGZpcnN0Ynl0ZSA9IG1jYnVmZmVyWzBdIHwgcmVxX2Nh
c2VvcHQ7Ci0gICAgICAgIGlmIChtY2xlbmd0aCAhPSAxKSByZXFieXRlID0gY29kZVstMV0gfCBj
ZC0+cmVxX3ZhcnlvcHQ7Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgZmlyc3RieXRlID0gcmVxYnl0
ZSA9IFJFUV9OT05FOwotICAgICAgfQotCi0gICAgLyogZmlyc3RieXRlIHdhcyBwcmV2aW91c2x5
IHNldDsgd2UgY2FuIHNldCByZXFieXRlIG9ubHkgdGhlIGxlbmd0aCBpcwotICAgIDEgb3IgdGhl
IG1hdGNoaW5nIGlzIGNhc2VmdWwuICovCi0KLSAgICBlbHNlCi0gICAgICB7Ci0gICAgICB6ZXJv
Zmlyc3RieXRlID0gZmlyc3RieXRlOwotICAgICAgemVyb3JlcWJ5dGUgPSByZXFieXRlOwotICAg
ICAgaWYgKG1jbGVuZ3RoID09IDEgfHwgcmVxX2Nhc2VvcHQgPT0gMCkKLSAgICAgICAgcmVxYnl0
ZSA9IGNvZGVbLTFdIHwgcmVxX2Nhc2VvcHQgfCBjZC0+cmVxX3ZhcnlvcHQ7Ci0gICAgICB9Ci0K
LSAgICBicmVhazsgICAgICAgICAgICAvKiBFbmQgb2YgbGl0ZXJhbCBjaGFyYWN0ZXIgaGFuZGxp
bmcgKi8KLSAgICB9Ci0gIH0gICAgICAgICAgICAgICAgICAgLyogZW5kIG9mIGJpZyBsb29wICov
Ci0KLS8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlIGJ5IGZhbGxpbmcgdGhyb3VnaCwgb25s
eSBieSBhIGdvdG8gZm9yIGFsbCB0aGUKLWVycm9yIHN0YXRlcy4gUGFzcyBiYWNrIHRoZSBwb3Np
dGlvbiBpbiB0aGUgcGF0dGVybiBzbyB0aGF0IGl0IGNhbiBiZSBkaXNwbGF5ZWQKLXRvIHRoZSB1
c2VyIGZvciBkaWFnbm9zaW5nIHRoZSBlcnJvci4gKi8KLQotRkFJTEVEOgotKnB0cnB0ciA9IHB0
cjsKLXJldHVybiBGQUxTRTsKLX0KLQotCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICAgIENvbXBpbGUgc2VxdWVuY2Ugb2YgYWx0ZXJu
YXRpdmVzICAgICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqLwotCi0vKiBPbiBlbnRyeSwgcHRyIGlzIHBvaW50aW5nIHBhc3QgdGhlIGJy
YWNrZXQgY2hhcmFjdGVyLCBidXQgb24gcmV0dXJuCi1pdCBwb2ludHMgdG8gdGhlIGNsb3Npbmcg
YnJhY2tldCwgb3IgdmVydGljYWwgYmFyLCBvciBlbmQgb2Ygc3RyaW5nLgotVGhlIGNvZGUgdmFy
aWFibGUgaXMgcG9pbnRpbmcgYXQgdGhlIGJ5dGUgaW50byB3aGljaCB0aGUgQlJBIG9wZXJhdG9y
IGhhcyBiZWVuCi1zdG9yZWQuIElmIHRoZSBpbXMgb3B0aW9ucyBhcmUgY2hhbmdlZCBhdCB0aGUg
c3RhcnQgKGZvciBhICg/aW1zOiBncm91cCkgb3IKLWR1cmluZyBhbnkgYnJhbmNoLCB3ZSBuZWVk
IHRvIGluc2VydCBhbiBPUF9PUFQgaXRlbSBhdCB0aGUgc3RhcnQgb2YgZXZlcnkKLWZvbGxvd2lu
ZyBicmFuY2ggdG8gZW5zdXJlIHRoZXkgZ2V0IHNldCBjb3JyZWN0bHkgYXQgcnVuIHRpbWUsIGFu
ZCBhbHNvIHBhc3MKLXRoZSBuZXcgb3B0aW9ucyBpbnRvIGV2ZXJ5IHN1YnNlcXVlbnQgYnJhbmNo
IGNvbXBpbGUuCi0KLUFyZ3VtZW50OgotICBvcHRpb25zICAgICAgICBvcHRpb24gYml0cywgaW5j
bHVkaW5nIGFueSBjaGFuZ2VzIGZvciB0aGlzIHN1YnBhdHRlcm4KLSAgYnJhY2tldHMgICAgICAg
LT4gaW50IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBleHRyYWN0aW5nIGJyYWNrZXRzIHVzZWQK
LSAgY29kZXB0ciAgICAgICAgLT4gdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgY29kZSBwb2lu
dGVyCi0gIHB0cnB0ciAgICAgICAgIC0+IHRoZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IHBhdHRl
cm4gcG9pbnRlcgotICBlcnJvcmNvZGVwdHIgICAtPiBwb2ludGVyIHRvIGVycm9yIGNvZGUgdmFy
aWFibGUKLSAgc2tpcGJ5dGVzICAgICAgc2tpcCB0aGlzIG1hbnkgYnl0ZXMgYXQgc3RhcnQgKGZv
ciBPUF9CUkFOVU1CRVIpCi0gIGZpcnN0Ynl0ZXB0ciAgIHBsYWNlIHRvIHB1dCB0aGUgZmlyc3Qg
cmVxdWlyZWQgY2hhcmFjdGVyLCBvciBhIG5lZ2F0aXZlIG51bWJlcgotICByZXFieXRlcHRyICAg
ICBwbGFjZSB0byBwdXQgdGhlIGxhc3QgcmVxdWlyZWQgY2hhcmFjdGVyLCBvciBhIG5lZ2F0aXZl
IG51bWJlcgotICBjZCAgICAgICAgICAgICBwb2ludHMgdG8gdGhlIGRhdGEgYmxvY2sgd2l0aCB0
YWJsZXMgcG9pbnRlcnMgZXRjLgotCi1SZXR1cm5zOiAgICAgIFRSVUUgb24gc3VjY2VzcwotKi8K
LQotc3RhdGljIEJPT0wKLWNvbXBpbGVfcmVnZXgoaW50IG9wdGlvbnMsIGludCAqYnJhY2tldHMs
IHVzY2hhciAqKmNvZGVwdHIsCi0gIGNvbnN0IHBjcmVfdWNoYXIgKipwdHJwdHIsIGNvbnN0IHBj
cmVfdWNoYXIgKnBhdHRlcm5FbmQsIGludCAqZXJyb3Jjb2RlcHRyLCBpbnQgc2tpcGJ5dGVzLAot
ICBpbnQgKmZpcnN0Ynl0ZXB0ciwgaW50ICpyZXFieXRlcHRyLCBjb21waWxlX2RhdGEgKmNkKQot
ewotY29uc3QgcGNyZV91Y2hhciAqcHRyID0gKnB0cnB0cjsKLXVzY2hhciAqY29kZSA9ICpjb2Rl
cHRyOwotdXNjaGFyICpsYXN0X2JyYW5jaCA9IGNvZGU7Ci11c2NoYXIgKnN0YXJ0X2JyYWNrZXQg
PSBjb2RlOwotaW50IGZpcnN0Ynl0ZSwgcmVxYnl0ZTsKLWludCBicmFuY2hmaXJzdGJ5dGUsIGJy
YW5jaHJlcWJ5dGU7Ci0KLWZpcnN0Ynl0ZSA9IHJlcWJ5dGUgPSBSRVFfVU5TRVQ7Ci0KLS8qIE9m
ZnNldCBpcyBzZXQgemVybyB0byBtYXJrIHRoYXQgdGhpcyBicmFja2V0IGlzIHN0aWxsIG9wZW4g
Ki8KLQotUFVUKGNvZGUsIDEsIDApOwotY29kZSArPSAxICsgTElOS19TSVpFICsgc2tpcGJ5dGVz
OwotCi0vKiBMb29wIGZvciBlYWNoIGFsdGVybmF0aXZlIGJyYW5jaCAqLwotCi1mb3IgKDs7KQot
ICB7Ci0gIC8qIE5vdyBjb21waWxlIHRoZSBicmFuY2ggKi8KLQotICBpZiAoIWNvbXBpbGVfYnJh
bmNoKCZvcHRpb25zLCBicmFja2V0cywgJmNvZGUsICZwdHIsIHBhdHRlcm5FbmQsIGVycm9yY29k
ZXB0ciwKLSAgICAgICAgJmJyYW5jaGZpcnN0Ynl0ZSwgJmJyYW5jaHJlcWJ5dGUsIGNkKSkKLSAg
ICB7Ci0gICAgKnB0cnB0ciA9IHB0cjsKLSAgICByZXR1cm4gRkFMU0U7Ci0gICAgfQotCi0gIC8q
IElmIHRoaXMgaXMgdGhlIGZpcnN0IGJyYW5jaCwgdGhlIGZpcnN0Ynl0ZSBhbmQgcmVxYnl0ZSB2
YWx1ZXMgZm9yIHRoZQotICBicmFuY2ggYmVjb21lIHRoZSB2YWx1ZXMgZm9yIHRoZSByZWdleC4g
Ki8KLQotICBpZiAoKmxhc3RfYnJhbmNoICE9IE9QX0FMVCkKLSAgICB7Ci0gICAgZmlyc3RieXRl
ID0gYnJhbmNoZmlyc3RieXRlOwotICAgIHJlcWJ5dGUgPSBicmFuY2hyZXFieXRlOwotICAgIH0K
LQotICAvKiBJZiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgYnJhbmNoLCB0aGUgZmlyc3QgY2hhciBh
bmQgcmVxYnl0ZSBoYXZlIHRvCi0gIG1hdGNoIHRoZSB2YWx1ZXMgZnJvbSBhbGwgdGhlIHByZXZp
b3VzIGJyYW5jaGVzLCBleGNlcHQgdGhhdCBpZiB0aGUgcHJldmlvdXMKLSAgdmFsdWUgZm9yIHJl
cWJ5dGUgZGlkbid0IGhhdmUgUkVRX1ZBUlkgc2V0LCBpdCBjYW4gc3RpbGwgbWF0Y2gsIGFuZCB3
ZSBzZXQKLSAgUkVRX1ZBUlkgZm9yIHRoZSByZWdleC4gKi8KLQotICBlbHNlCi0gICAgewotICAg
IC8qIElmIHdlIHByZXZpb3VzbHkgaGFkIGEgZmlyc3RieXRlLCBidXQgaXQgZG9lc24ndCBtYXRj
aCB0aGUgbmV3IGJyYW5jaCwKLSAgICB3ZSBoYXZlIHRvIGFiYW5kb24gdGhlIGZpcnN0Ynl0ZSBm
b3IgdGhlIHJlZ2V4LCBidXQgaWYgdGhlcmUgd2FzIHByZXZpb3VzbHkKLSAgICBubyByZXFieXRl
LCBpdCB0YWtlcyBvbiB0aGUgdmFsdWUgb2YgdGhlIG9sZCBmaXJzdGJ5dGUuICovCi0KLSAgICBp
ZiAoZmlyc3RieXRlID49IDAgJiYgZmlyc3RieXRlICE9IGJyYW5jaGZpcnN0Ynl0ZSkKLSAgICAg
IHsKLSAgICAgIGlmIChyZXFieXRlIDwgMCkgcmVxYnl0ZSA9IGZpcnN0Ynl0ZTsKLSAgICAgIGZp
cnN0Ynl0ZSA9IFJFUV9OT05FOwotICAgICAgfQotCi0gICAgLyogSWYgd2UgKG5vdyBvciBmcm9t
IGJlZm9yZSkgaGF2ZSBubyBmaXJzdGJ5dGUsIGEgZmlyc3RieXRlIGZyb20gdGhlCi0gICAgYnJh
bmNoIGJlY29tZXMgYSByZXFieXRlIGlmIHRoZXJlIGlzbid0IGEgYnJhbmNoIHJlcWJ5dGUuICov
Ci0KLSAgICBpZiAoZmlyc3RieXRlIDwgMCAmJiBicmFuY2hmaXJzdGJ5dGUgPj0gMCAmJiBicmFu
Y2hyZXFieXRlIDwgMCkKLSAgICAgICAgYnJhbmNocmVxYnl0ZSA9IGJyYW5jaGZpcnN0Ynl0ZTsK
LQotICAgIC8qIE5vdyBlbnN1cmUgdGhhdCB0aGUgcmVxYnl0ZXMgbWF0Y2ggKi8KLQotICAgIGlm
ICgocmVxYnl0ZSAmIH5SRVFfVkFSWSkgIT0gKGJyYW5jaHJlcWJ5dGUgJiB+UkVRX1ZBUlkpKQot
ICAgICAgcmVxYnl0ZSA9IFJFUV9OT05FOwotICAgIGVsc2UgcmVxYnl0ZSB8PSBicmFuY2hyZXFi
eXRlOyAgIC8qIFRvICJvciIgUkVRX1ZBUlkgKi8KLSAgICB9Ci0KLSAgLyogUmVhY2hlZCBlbmQg
b2YgZXhwcmVzc2lvbiwgZWl0aGVyICcpJyBvciBlbmQgb2YgcGF0dGVybi4gR28gYmFjayB0aHJv
dWdoCi0gIHRoZSBhbHRlcm5hdGl2ZSBicmFuY2hlcyBhbmQgcmV2ZXJzZSB0aGUgY2hhaW4gb2Yg
b2Zmc2V0cywgd2l0aCB0aGUgZmllbGQgaW4KLSAgdGhlIEJSQSBpdGVtIG5vdyBiZWNvbWluZyBh
biBvZmZzZXQgdG8gdGhlIGZpcnN0IGFsdGVybmF0aXZlLiBJZiB0aGVyZSBhcmUKLSAgbm8gYWx0
ZXJuYXRpdmVzLCBpdCBwb2ludHMgdG8gdGhlIGVuZCBvZiB0aGUgZ3JvdXAuIFRoZSBsZW5ndGgg
aW4gdGhlCi0gIHRlcm1pbmF0aW5nIGtldCBpcyBhbHdheXMgdGhlIGxlbmd0aCBvZiB0aGUgd2hv
bGUgYnJhY2tldGVkIGl0ZW0uIElmIGFueSBvZgotICB0aGUgaW1zIG9wdGlvbnMgd2VyZSBjaGFu
Z2VkIGluc2lkZSB0aGUgZ3JvdXAsIGNvbXBpbGUgYSByZXNldHRpbmcgb3AtY29kZQotICBmb2xs
b3dpbmcsIGV4Y2VwdCBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHBhdHRlcm4uIFJldHVybiBsZWF2
aW5nIHRoZSBwb2ludGVyCi0gIGF0IHRoZSB0ZXJtaW5hdGluZyBjaGFyLiAqLwotCi0gIGlmIChw
dHIgPj0gcGF0dGVybkVuZCB8fCAqcHRyICE9ICd8JykKLSAgICB7Ci0gICAgaW50IGxlbmd0aCA9
IGNvZGUgLSBsYXN0X2JyYW5jaDsKLSAgICBkbwotICAgICAgewotICAgICAgaW50IHByZXZfbGVu
Z3RoID0gR0VUKGxhc3RfYnJhbmNoLCAxKTsKLSAgICAgIFBVVChsYXN0X2JyYW5jaCwgMSwgbGVu
Z3RoKTsKLSAgICAgIGxlbmd0aCA9IHByZXZfbGVuZ3RoOwotICAgICAgbGFzdF9icmFuY2ggLT0g
bGVuZ3RoOwotICAgICAgfQotICAgIHdoaWxlIChsZW5ndGggPiAwKTsKLQotICAgIC8qIEZpbGwg
aW4gdGhlIGtldCAqLwotCi0gICAgKmNvZGUgPSBPUF9LRVQ7Ci0gICAgUFVUKGNvZGUsIDEsIGNv
ZGUgLSBzdGFydF9icmFja2V0KTsKLSAgICBjb2RlICs9IDEgKyBMSU5LX1NJWkU7Ci0KLSAgICAv
KiBTZXQgdmFsdWVzIHRvIHBhc3MgYmFjayAqLwotCi0gICAgKmNvZGVwdHIgPSBjb2RlOwotICAg
ICpwdHJwdHIgPSBwdHI7Ci0gICAgKmZpcnN0Ynl0ZXB0ciA9IGZpcnN0Ynl0ZTsKLSAgICAqcmVx
Ynl0ZXB0ciA9IHJlcWJ5dGU7Ci0gICAgcmV0dXJuIFRSVUU7Ci0gICAgfQotCi0gIC8qIEFub3Ro
ZXIgYnJhbmNoIGZvbGxvd3M7IGluc2VydCBhbiAib3IiIG5vZGUuIEl0cyBsZW5ndGggZmllbGQg
cG9pbnRzIGJhY2sKLSAgdG8gdGhlIHByZXZpb3VzIGJyYW5jaCB3aGlsZSB0aGUgYnJhY2tldCBy
ZW1haW5zIG9wZW4uIEF0IHRoZSBlbmQgdGhlIGNoYWluCi0gIGlzIHJldmVyc2VkLiBJdCdzIGRv
bmUgbGlrZSB0aGlzIHNvIHRoYXQgdGhlIHN0YXJ0IG9mIHRoZSBicmFja2V0IGhhcyBhCi0gIHpl
cm8gb2Zmc2V0IHVudGlsIGl0IGlzIGNsb3NlZCwgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGRldGVj
dCByZWN1cnNpb24uICovCi0KLSAgKmNvZGUgPSBPUF9BTFQ7Ci0gIFBVVChjb2RlLCAxLCBjb2Rl
IC0gbGFzdF9icmFuY2gpOwotICBsYXN0X2JyYW5jaCA9IGNvZGU7Ci0gIGNvZGUgKz0gMSArIExJ
TktfU0laRTsKLSAgcHRyKys7Ci0gIH0KLS8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICov
Ci19Ci0KLQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCi0qICAgICAgICAgIENoZWNrIGZvciBhbmNob3JlZCBleHByZXNzaW9uICAgICAgICAg
KgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQot
LyogVHJ5IHRvIGZpbmQgb3V0IGlmIHRoaXMgaXMgYW4gYW5jaG9yZWQgcmVndWxhciBleHByZXNz
aW9uLiBDb25zaWRlciBlYWNoCi1hbHRlcm5hdGl2ZSBicmFuY2guIElmIHRoZXkgYWxsIHN0YXJ0
IHdpdGggT1BfU09EIG9yIE9QX0NJUkMsIG9yIHdpdGggYSBicmFja2V0Ci1hbGwgb2Ygd2hvc2Ug
YWx0ZXJuYXRpdmVzIHN0YXJ0IHdpdGggT1BfU09EIG9yIE9QX0NJUkMgKHJlY3Vyc2UgYWQgbGli
KSwgdGhlbgotaXQncyBhbmNob3JlZC4gSG93ZXZlciwgaWYgdGhpcyBpcyBhIG11bHRpbGluZSBw
YXR0ZXJuLCB0aGVuIG9ubHkgT1BfU09ECi1jb3VudHMsIHNpbmNlIE9QX0NJUkMgY2FuIG1hdGNo
IGluIHRoZSBtaWRkbGUuCi0KLVdlIGNhbiBhbHNvIGNvbnNpZGVyIGEgcmVnZXggdG8gYmUgYW5j
aG9yZWQgaWYgT1BfU09NIHN0YXJ0cyBhbGwgaXRzIGJyYW5jaGVzLgotVGhpcyBpcyB0aGUgY29k
ZSBmb3IgXEcsIHdoaWNoIG1lYW5zICJtYXRjaCBhdCBzdGFydCBvZiBtYXRjaCBwb3NpdGlvbiwg
dGFraW5nCi1pbnRvIGFjY291bnQgdGhlIG1hdGNoIG9mZnNldCIuCi0KLUEgYnJhbmNoIGlzIGFs
c28gaW1wbGljaXRseSBhbmNob3JlZCBpZiBpdCBzdGFydHMgd2l0aCAuKiBhbmQgRE9UQUxMIGlz
IHNldCwKLWJlY2F1c2UgdGhhdCB3aWxsIHRyeSB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBhdCBh
bGwgcG9zc2libGUgbWF0Y2hpbmcgcG9pbnRzLAotc28gdGhlcmUgaXMgbm8gcG9pbnQgdHJ5aW5n
IGFnYWluLi4uLiBlciAuLi4uCi0KLS4uLi4gZXhjZXB0IHdoZW4gdGhlIC4qIGFwcGVhcnMgaW5z
aWRlIGNhcHR1cmluZyBwYXJlbnRoZXNlcywgYW5kIHRoZXJlIGlzIGEKLXN1YnNlcXVlbnQgYmFj
ayByZWZlcmVuY2UgdG8gdGhvc2UgcGFyZW50aGVzZXMuIFdlIGhhdmVuJ3QgZW5vdWdoIGluZm9y
bWF0aW9uCi10byBjYXRjaCB0aGF0IGNhc2UgcHJlY2lzZWx5LgotCi1BdCBmaXJzdCwgdGhlIGJl
c3Qgd2UgY291bGQgZG8gd2FzIHRvIGRldGVjdCB3aGVuIC4qIHdhcyBpbiBjYXB0dXJpbmcgYnJh
Y2tldHMKLWFuZCB0aGUgaGlnaGVzdCBiYWNrIHJlZmVyZW5jZSB3YXMgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIHRoYXQgbGV2ZWwuCi1Ib3dldmVyLCBieSBrZWVwaW5nIGEgYml0bWFwIG9mIHRo
ZSBmaXJzdCAzMSBiYWNrIHJlZmVyZW5jZXMsIHdlIGNhbiBjYXRjaCBzb21lCi1vZiB0aGUgbW9y
ZSBjb21tb24gY2FzZXMgbW9yZSBwcmVjaXNlbHkuCi0KLUFyZ3VtZW50czoKLSAgY29kZSAgICAg
ICAgICAgcG9pbnRzIHRvIHN0YXJ0IG9mIGV4cHJlc3Npb24gKHRoZSBicmFja2V0KQotICBvcHRp
b25zICAgICAgICBwb2ludHMgdG8gdGhlIG9wdGlvbnMgc2V0dGluZwotICBicmFja2V0X21hcCAg
ICBhIGJpdG1hcCBvZiB3aGljaCBicmFja2V0cyB3ZSBhcmUgaW5zaWRlIHdoaWxlIHRlc3Rpbmc7
IHRoaXMKLSAgICAgICAgICAgICAgICAgIGhhbmRsZXMgdXAgdG8gc3Vic3RyaW5nIDMxOyBhZnRl
ciB0aGF0IHdlIGp1c3QgaGF2ZSB0byB0YWtlCi0gICAgICAgICAgICAgICAgICB0aGUgbGVzcyBw
cmVjaXNlIGFwcHJvYWNoCi0gIGJhY2tyZWZfbWFwICAgIHRoZSBiYWNrIHJlZmVyZW5jZSBiaXRt
YXAKLQotUmV0dXJuczogICAgIFRSVUUgb3IgRkFMU0UKLSovCi0KLXN0YXRpYyBCT09MCi1pc19h
bmNob3JlZChyZWdpc3RlciBjb25zdCB1c2NoYXIgKmNvZGUsIGludCAqb3B0aW9ucywgdW5zaWdu
ZWQgaW50IGJyYWNrZXRfbWFwLAotICB1bnNpZ25lZCBpbnQgYmFja3JlZl9tYXApCi17Ci1kbyB7
Ci0gICBjb25zdCB1c2NoYXIgKnNjb2RlID0KLSAgICAgZmlyc3Rfc2lnbmlmaWNhbnRfY29kZShj
b2RlICsgMStMSU5LX1NJWkUsIEZBTFNFKTsKLSAgIHJlZ2lzdGVyIGludCBvcCA9ICpzY29kZTsK
LQotICAgLyogQ2FwdHVyaW5nIGJyYWNrZXRzICovCi0KLSAgIGlmIChvcCA+IE9QX0JSQSkKLSAg
ICAgewotICAgICBpbnQgbmV3X21hcDsKLSAgICAgb3AgLT0gT1BfQlJBOwotICAgICBpZiAob3Ag
PiBFWFRSQUNUX0JBU0lDX01BWCkgb3AgPSBHRVQyKHNjb2RlLCAyK0xJTktfU0laRSk7Ci0gICAg
IG5ld19tYXAgPSBicmFja2V0X21hcCB8ICgob3AgPCAzMik/ICgxIDw8IG9wKSA6IDEpOwotICAg
ICBpZiAoIWlzX2FuY2hvcmVkKHNjb2RlLCBvcHRpb25zLCBuZXdfbWFwLCBiYWNrcmVmX21hcCkp
IHJldHVybiBGQUxTRTsKLSAgICAgfQotCi0gICAvKiBPdGhlciBicmFja2V0cyAqLwotCi0gICBl
bHNlIGlmIChvcCA9PSBPUF9CUkEgfHwgb3AgPT0gT1BfQVNTRVJUIHx8IG9wID09IE9QX09OQ0Up
Ci0gICAgIHsKLSAgICAgaWYgKCFpc19hbmNob3JlZChzY29kZSwgb3B0aW9ucywgYnJhY2tldF9t
YXAsIGJhY2tyZWZfbWFwKSkgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLSAgIC8qIENoZWNrIGZv
ciBleHBsaWNpdCBhbmNob3JpbmcgKi8KLQotICAgZWxzZSBpZiAoKCgqb3B0aW9ucyAmIFBDUkVf
TVVMVElMSU5FKSAhPSAwIHx8IG9wICE9IE9QX0NJUkMpKQotICAgICByZXR1cm4gRkFMU0U7Ci0g
ICBjb2RlICs9IEdFVChjb2RlLCAxKTsKLSAgIH0KLXdoaWxlICgqY29kZSA9PSBPUF9BTFQpOyAg
IC8qIExvb3AgZm9yIGVhY2ggYWx0ZXJuYXRpdmUgKi8KLXJldHVybiBUUlVFOwotfQotCi0KLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICAgICBDaGVjayBmb3Igc3RhcnRpbmcgd2l0aCBeIG9yIC4qICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGlzIGNh
bGxlZCB0byBmaW5kIG91dCBpZiBldmVyeSBicmFuY2ggc3RhcnRzIHdpdGggXiBvciAuKiBzbyB0
aGF0Ci0iZmlyc3QgY2hhciIgcHJvY2Vzc2luZyBjYW4gYmUgZG9uZSB0byBzcGVlZCB0aGluZ3Mg
dXAgaW4gbXVsdGlsaW5lCi1tYXRjaGluZyBhbmQgZm9yIG5vbi1ET1RBTEwgcGF0dGVybnMgdGhh
dCBzdGFydCB3aXRoIC4qICh3aGljaCBtdXN0IHN0YXJ0IGF0Ci10aGUgYmVnaW5uaW5nIG9yIGFm
dGVyIFxuKS4gQXMgaW4gdGhlIGNhc2Ugb2YgaXNfYW5jaG9yZWQoKSAoc2VlIGFib3ZlKSwgd2UK
LWhhdmUgdG8gdGFrZSBhY2NvdW50IG9mIGJhY2sgcmVmZXJlbmNlcyB0byBjYXB0dXJpbmcgYnJh
Y2tldHMgdGhhdCBjb250YWluIC4qCi1iZWNhdXNlIGluIHRoYXQgY2FzZSB3ZSBjYW4ndCBtYWtl
IHRoZSBhc3N1bXB0aW9uLgotCi1Bcmd1bWVudHM6Ci0gIGNvZGUgICAgICAgICAgIHBvaW50cyB0
byBzdGFydCBvZiBleHByZXNzaW9uICh0aGUgYnJhY2tldCkKLSAgYnJhY2tldF9tYXAgICAgYSBi
aXRtYXAgb2Ygd2hpY2ggYnJhY2tldHMgd2UgYXJlIGluc2lkZSB3aGlsZSB0ZXN0aW5nOyB0aGlz
Ci0gICAgICAgICAgICAgICAgICBoYW5kbGVzIHVwIHRvIHN1YnN0cmluZyAzMTsgYWZ0ZXIgdGhh
dCB3ZSBqdXN0IGhhdmUgdG8gdGFrZQotICAgICAgICAgICAgICAgICAgdGhlIGxlc3MgcHJlY2lz
ZSBhcHByb2FjaAotICBiYWNrcmVmX21hcCAgICB0aGUgYmFjayByZWZlcmVuY2UgYml0bWFwCi0K
LVJldHVybnM6ICAgICAgICAgVFJVRSBvciBGQUxTRQotKi8KLQotc3RhdGljIEJPT0wKLWlzX3N0
YXJ0bGluZShjb25zdCB1c2NoYXIgKmNvZGUsIHVuc2lnbmVkIGludCBicmFja2V0X21hcCwKLSAg
dW5zaWduZWQgaW50IGJhY2tyZWZfbWFwKQotewotZG8gewotICAgY29uc3QgdXNjaGFyICpzY29k
ZSA9IGZpcnN0X3NpZ25pZmljYW50X2NvZGUoY29kZSArIDErTElOS19TSVpFLCBGQUxTRSk7Ci0g
ICByZWdpc3RlciBpbnQgb3AgPSAqc2NvZGU7Ci0KLSAgIC8qIENhcHR1cmluZyBicmFja2V0cyAq
LwotCi0gICBpZiAob3AgPiBPUF9CUkEpCi0gICAgIHsKLSAgICAgaW50IG5ld19tYXA7Ci0gICAg
IG9wIC09IE9QX0JSQTsKLSAgICAgaWYgKG9wID4gRVhUUkFDVF9CQVNJQ19NQVgpIG9wID0gR0VU
MihzY29kZSwgMitMSU5LX1NJWkUpOwotICAgICBuZXdfbWFwID0gYnJhY2tldF9tYXAgfCAoKG9w
IDwgMzIpPyAoMSA8PCBvcCkgOiAxKTsKLSAgICAgaWYgKCFpc19zdGFydGxpbmUoc2NvZGUsIG5l
d19tYXAsIGJhY2tyZWZfbWFwKSkgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLSAgIC8qIE90aGVy
IGJyYWNrZXRzICovCi0KLSAgIGVsc2UgaWYgKG9wID09IE9QX0JSQSB8fCBvcCA9PSBPUF9BU1NF
UlQgfHwgb3AgPT0gT1BfT05DRSkKLSAgICAgeyBpZiAoIWlzX3N0YXJ0bGluZShzY29kZSwgYnJh
Y2tldF9tYXAsIGJhY2tyZWZfbWFwKSkgcmV0dXJuIEZBTFNFOyB9Ci0KLSAgIC8qIC4qIG1lYW5z
ICJzdGFydCBhdCBzdGFydCBvciBhZnRlciBcbiIgaWYgaXQgaXNuJ3QgaW4gYnJhY2tldHMgdGhh
dAotICAgbWF5IGJlIHJlZmVyZW5jZWQuICovCi0KLSAgIGVsc2UgaWYgKG9wID09IE9QX1RZUEVT
VEFSIHx8IG9wID09IE9QX1RZUEVNSU5TVEFSKQotICAgICB7Ci0gICAgIGlmIChzY29kZVsxXSAh
PSBPUF9BTlkgfHwgKGJyYWNrZXRfbWFwICYgYmFja3JlZl9tYXApICE9IDApIHJldHVybiBGQUxT
RTsKLSAgICAgfQotCi0gICAvKiBDaGVjayBmb3IgZXhwbGljaXQgY2lyY3VtZmxleCAqLwotCi0g
ICBlbHNlIGlmIChvcCAhPSBPUF9DSVJDKSByZXR1cm4gRkFMU0U7Ci0KLSAgIC8qIE1vdmUgb24g
dG8gdGhlIG5leHQgYWx0ZXJuYXRpdmUgKi8KLQotICAgY29kZSArPSBHRVQoY29kZSwgMSk7Ci0g
ICB9Ci13aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsgIC8qIExvb3AgZm9yIGVhY2ggYWx0ZXJuYXRp
dmUgKi8KLXJldHVybiBUUlVFOwotfQotCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgQ2hlY2sgZm9yIGFzc2VydGVkIGZpeGVk
IGZpcnN0IGNoYXIgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqLwotCi0vKiBEdXJpbmcgY29tcGlsYXRpb24sIHRoZSAiZmlyc3QgY2hhciIg
c2V0dGluZ3MgZnJvbSBmb3J3YXJkIGFzc2VydGlvbnMgYXJlCi1kaXNjYXJkZWQsIGJlY2F1c2Ug
dGhleSBjYW4gY2F1c2UgY29uZmxpY3RzIHdpdGggYWN0dWFsIGxpdGVyYWxzIHRoYXQgZm9sbG93
LgotSG93ZXZlciwgaWYgd2UgZW5kIHVwIHdpdGhvdXQgYSBmaXJzdCBjaGFyIHNldHRpbmcgZm9y
IGFuIHVuYW5jaG9yZWQgcGF0dGVybiwKLWl0IGlzIHdvcnRoIHNjYW5uaW5nIHRoZSByZWdleCB0
byBzZWUgaWYgdGhlcmUgaXMgYW4gaW5pdGlhbCBhc3NlcnRlZCBmaXJzdAotY2hhci4gSWYgYWxs
IGJyYW5jaGVzIHN0YXJ0IHdpdGggdGhlIHNhbWUgYXNzZXJ0ZWQgY2hhciwgb3Igd2l0aCBhIGJy
YWNrZXQgYWxsCi1vZiB3aG9zZSBhbHRlcm5hdGl2ZXMgc3RhcnQgd2l0aCB0aGUgc2FtZSBhc3Nl
cnRlZCBjaGFyIChyZWN1cnNlIGFkIGxpYiksIHRoZW4KLXdlIHJldHVybiB0aGF0IGNoYXIsIG90
aGVyd2lzZSAtMS4KLQotQXJndW1lbnRzOgotICBjb2RlICAgICAgIHBvaW50cyB0byBzdGFydCBv
ZiBleHByZXNzaW9uICh0aGUgYnJhY2tldCkKLSAgb3B0aW9ucyAgICBwb2ludGVyIHRvIHRoZSBv
cHRpb25zICh1c2VkIHRvIGNoZWNrIGNhc2luZyBjaGFuZ2VzKQotICBpbmFzc2VydCAgIFRSVUUg
aWYgaW4gYW4gYXNzZXJ0aW9uCi0KLVJldHVybnM6ICAgICAtMSBvciB0aGUgZml4ZWQgZmlyc3Qg
Y2hhcgotKi8KLQotc3RhdGljIGludAotZmluZF9maXJzdGFzc2VydGVkY2hhcihjb25zdCB1c2No
YXIgKmNvZGUsIGludCAqb3B0aW9ucywgQk9PTCBpbmFzc2VydCkKLXsKLXJlZ2lzdGVyIGludCBj
ID0gLTE7Ci1kbyB7Ci0gICBpbnQgZDsKLSAgIGNvbnN0IHVzY2hhciAqc2NvZGUgPQotICAgICBm
aXJzdF9zaWduaWZpY2FudF9jb2RlKGNvZGUgKyAxK0xJTktfU0laRSwgVFJVRSk7Ci0gICByZWdp
c3RlciBpbnQgb3AgPSAqc2NvZGU7Ci0KLSAgIGlmIChvcCA+PSBPUF9CUkEpIG9wID0gT1BfQlJB
OwotCi0gICBzd2l0Y2gob3ApCi0gICAgIHsKLSAgICAgZGVmYXVsdDoKLSAgICAgcmV0dXJuIC0x
OwotCi0gICAgIGNhc2UgT1BfQlJBOgotICAgICBjYXNlIE9QX0FTU0VSVDoKLSAgICAgY2FzZSBP
UF9PTkNFOgotICAgICBpZiAoKGQgPSBmaW5kX2ZpcnN0YXNzZXJ0ZWRjaGFyKHNjb2RlLCBvcHRp
b25zLCBvcCA9PSBPUF9BU1NFUlQpKSA8IDApCi0gICAgICAgcmV0dXJuIC0xOwotICAgICBpZiAo
YyA8IDApIGMgPSBkOyBlbHNlIGlmIChjICE9IGQpIHJldHVybiAtMTsKLSAgICAgYnJlYWs7Ci0K
LSAgICAgY2FzZSBPUF9FWEFDVDogICAgICAgLyogRmFsbCB0aHJvdWdoICovCi0gICAgIHNjb2Rl
ICs9IDI7Ci0KLSAgICAgY2FzZSBPUF9DSEFSOgotICAgICBjYXNlIE9QX0NIQVJOQzoKLSAgICAg
Y2FzZSBPUF9BU0NJSV9DSEFSOgotICAgICBjYXNlIE9QX0FTQ0lJX0xFVFRFUl9OQzoKLSAgICAg
Y2FzZSBPUF9QTFVTOgotICAgICBjYXNlIE9QX01JTlBMVVM6Ci0gICAgIGlmICghaW5hc3NlcnQp
IHJldHVybiAtMTsKLSAgICAgaWYgKGMgPCAwKQotICAgICAgIHsKLSAgICAgICBjID0gc2NvZGVb
MV07Ci0gICAgICAgaWYgKCgqb3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDApIGMgfD0gUkVR
X0NBU0VMRVNTOwotICAgICAgIH0KLSAgICAgZWxzZSBpZiAoYyAhPSBzY29kZVsxXSkgcmV0dXJu
IC0xOwotICAgICBicmVhazsKLSAgICAgfQotCi0gICBjb2RlICs9IEdFVChjb2RlLCAxKTsKLSAg
IH0KLXdoaWxlICgqY29kZSA9PSBPUF9BTFQpOwotcmV0dXJuIGM7Ci19Ci0KLQotCi0vKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgQ29t
cGlsZSBhIFJlZ3VsYXIgRXhwcmVzc2lvbiAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFRoaXMgZnVuY3Rpb24gdGFr
ZXMgYSBzdHJpbmcgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGEgYmxvY2sgb2Ygc3RvcmUKLWhv
bGRpbmcgYSBjb21waWxlZCB2ZXJzaW9uIG9mIHRoZSBleHByZXNzaW9uLiBUaGUgb3JpZ2luYWwg
QVBJIGZvciB0aGlzCi1mdW5jdGlvbiBoYWQgbm8gZXJyb3IgY29kZSByZXR1cm4gdmFyaWFibGU7
IGl0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZHMKLWNvbXBhdGliaWxpdHkuIFRoZSBuZXcgZnVu
Y3Rpb24gaXMgZ2l2ZW4gYSBuZXcgbmFtZS4KLQotQXJndW1lbnRzOgotICBwYXR0ZXJuICAgICAg
IHRoZSByZWd1bGFyIGV4cHJlc3Npb24KLSAgb3B0aW9ucyAgICAgICB2YXJpb3VzIG9wdGlvbiBi
aXRzCi0gIGVycm9yY29kZXB0ciAgcG9pbnRlciB0byBlcnJvciBjb2RlIHZhcmlhYmxlIChwY3Jl
X2NvbXBpbGUyKCkgb25seSkKLSAgICAgICAgICAgICAgICAgIGNhbiBiZSBOVUxMIGlmIHlvdSBk
b24ndCB3YW50IGEgY29kZSB2YWx1ZQotICBlcnJvcnB0ciAgICAgIHBvaW50ZXIgdG8gcG9pbnRl
ciB0byBlcnJvciB0ZXh0Ci0gIGVycm9yb2Zmc2V0ICAgcHRyIG9mZnNldCBpbiBwYXR0ZXJuIHdo
ZXJlIGVycm9yIHdhcyBkZXRlY3RlZAotICB0YWJsZXMgICAgICAgIHBvaW50ZXIgdG8gY2hhcmFj
dGVyIHRhYmxlcyBvciBOVUxMCi0KLVJldHVybnM6ICAgICAgICBwb2ludGVyIHRvIGNvbXBpbGVk
IGRhdGEgYmxvY2ssIG9yIE5VTEwgb24gZXJyb3IsCi0gICAgICAgICAgICAgICAgd2l0aCBlcnJv
cnB0ciBhbmQgZXJyb3JvZmZzZXQgc2V0Ci0qLwotCi1wY3JlICoKLWpzUmVnRXhwQ29tcGlsZShj
b25zdCBwY3JlX2NoYXIqIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoLCBpbnQgb3B0aW9ucywg
dW5zaWduZWQqIG51bVN1YnBhdHRlcm5zLCBjb25zdCBjaGFyKiogZXJyb3JwdHIpCi17Ci1yZWFs
X3BjcmUgKnJlOwotaW50IGxlbmd0aCA9IDEgKyBMSU5LX1NJWkU7ICAgICAgLyogRm9yIGluaXRp
YWwgQlJBIHBsdXMgbGVuZ3RoICovCi1pbnQgYywgZmlyc3RieXRlLCByZXFieXRlOwotaW50IGJy
YWNvdW50ID0gMDsKLWludCBicmFuY2hfZXh0cmEgPSAwOwotaW50IGJyYW5jaF9uZXdleHRyYTsK
LWludCBpdGVtX2NvdW50ID0gLTE7Ci1pbnQgbmFtZV9jb3VudCA9IDA7Ci1pbnQgbWF4X25hbWVf
c2l6ZSA9IDA7Ci1pbnQgbGFzdGl0ZW1sZW5ndGggPSAwOwotaW50IGVycm9yY29kZSA9IDA7Ci1C
T09MIGNsYXNzX3V0Zjg7Ci1CT09MIGNhcHR1cmluZzsKLXVuc2lnbmVkIGludCBicmFzdGFja3B0
ciA9IDA7Ci1zaXplX3Qgc2l6ZTsKLXVzY2hhciAqY29kZTsKLWNvbnN0IHVzY2hhciAqY29kZXN0
YXJ0OwotY29uc3QgcGNyZV91Y2hhciAqcHRyOwotY29uc3QgcGNyZV91Y2hhciAqcGF0dGVybkVu
ZDsKLWNvbXBpbGVfZGF0YSBjb21waWxlX2Jsb2NrOwotaW50IGJyYXN0YWNrW0JSQVNUQUNLX1NJ
WkVdOwotdXNjaGFyIGJyYWxlbnN0YWNrW0JSQVNUQUNLX1NJWkVdOwotCi0vKiBXZSBjYW4ndCBw
YXNzIGJhY2sgYW4gZXJyb3IgbWVzc2FnZSBpZiBlcnJvcnB0ciBpcyBOVUxMOyBJIGd1ZXNzIHRo
ZSBiZXN0IHdlCi1jYW4gZG8gaXMganVzdCByZXR1cm4gTlVMTCwgYnV0IHdlIGNhbiBzZXQgYSBj
b2RlIHZhbHVlIGlmIHRoZXJlIGlzIGEgY29kZQotcG9pbnRlci4gKi8KLQotaWYgKGVycm9ycHRy
ID09IE5VTEwpCi0gIHsKLSAgcmV0dXJuIE5VTEw7Ci0gIH0KLQotKmVycm9ycHRyID0gTlVMTDsK
LQotLyogU2V0IHVwIHBvaW50ZXJzIHRvIHRoZSBpbmRpdmlkdWFsIGNoYXJhY3RlciB0YWJsZXMg
Ki8KLQotY29tcGlsZV9ibG9jay5sY2MgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGxjY19vZmZz
ZXQ7Ci1jb21waWxlX2Jsb2NrLmZjYyA9IF9wY3JlX2RlZmF1bHRfdGFibGVzICsgZmNjX29mZnNl
dDsKLWNvbXBpbGVfYmxvY2suY2JpdHMgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGNiaXRzX29m
ZnNldDsKLWNvbXBpbGVfYmxvY2suY3R5cGVzID0gX3BjcmVfZGVmYXVsdF90YWJsZXMgKyBjdHlw
ZXNfb2Zmc2V0OwotCi0vKiBNYXhpbXVtIGJhY2sgcmVmZXJlbmNlIGFuZCBiYWNrcmVmIGJpdG1h
cC4gVGhpcyBpcyB1cGRhdGVkIGZvciBudW1lcmljCi1yZWZlcmVuY2VzIGR1cmluZyB0aGUgZmly
c3QgcGFzcywgYnV0IGZvciBuYW1lZCByZWZlcmVuY2VzIGR1cmluZyB0aGUgYWN0dWFsCi1jb21w
aWxlIHBhc3MuIFRoZSBiaXRtYXAgcmVjb3JkcyB1cCB0byAzMSBiYWNrIHJlZmVyZW5jZXMgdG8g
aGVscCBpbiBkZWNpZGluZwotd2hldGhlciAoLiopIGNhbiBiZSB0cmVhdGVkIGFzIGFuY2hvcmVk
IG9yIG5vdC4gKi8KLQotY29tcGlsZV9ibG9jay50b3BfYmFja3JlZiA9IDA7Ci1jb21waWxlX2Js
b2NrLmJhY2tyZWZfbWFwID0gMDsKLQotLyogUmVmbGVjdCBwYXR0ZXJuIGZvciBkZWJ1Z2dpbmcg
b3V0cHV0ICovCi0KLURQUklOVEYoKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpKTsKLQotLyogVGhlIGZpcnN0IHRo
aW5nIHRvIGRvIGlzIHRvIG1ha2UgYSBwYXNzIG92ZXIgdGhlIHBhdHRlcm4gdG8gY29tcHV0ZSB0
aGUKLWFtb3VudCBvZiBzdG9yZSByZXF1aXJlZCB0byBob2xkIHRoZSBjb21waWxlZCBjb2RlLiBU
aGlzIGRvZXMgbm90IGhhdmUgdG8gYmUKLXBlcmZlY3QgYXMgbG9uZyBhcyBlcnJvcnMgYXJlIG92
ZXJlc3RpbWF0ZXMuIEF0IHRoZSBzYW1lIHRpbWUgd2UgY2FuIGRldGVjdCBhbnkKLWZsYWcgc2V0
dGluZ3MgcmlnaHQgYXQgdGhlIHN0YXJ0LCBhbmQgZXh0cmFjdCB0aGVtLiBNYWtlIGFuIGF0dGVt
cHQgdG8gY29ycmVjdAotZm9yIGFueSBjb3VudGVkIHdoaXRlIHNwYWNlIGlmIGFuICJleHRlbmRl
ZCIgZmxhZyBzZXR0aW5nIGFwcGVhcnMgbGF0ZSBpbiB0aGUKLXBhdHRlcm4uIFdlIGNhbid0IGJl
IHNvIGNsZXZlciBmb3IgIy1jb21tZW50cy4gKi8KLQotcHRyID0gKGNvbnN0IHBjcmVfdWNoYXIg
KikocGF0dGVybiAtIDEpOwotcGF0dGVybkVuZCA9IChjb25zdCBwY3JlX3VjaGFyICopKHBhdHRl
cm4gKyBwYXR0ZXJuTGVuZ3RoKTsKLQotd2hpbGUgKCsrcHRyIDwgcGF0dGVybkVuZCkKLSAgewot
ICBpbnQgbWluID0gMCwgbWF4ID0gMDsKLSAgaW50IGNsYXNzX29wdGNvdW50OwotICBpbnQgYnJh
Y2tldF9sZW5ndGg7Ci0gIGludCBkdXBsZW5ndGg7Ci0KLSAgYyA9ICpwdHI7Ci0gIAotICAvKiBJ
ZiB3ZSBhcmUgaW5zaWRlIGEgXFEuLi5cRSBzZXF1ZW5jZSwgYWxsIGNoYXJzIGFyZSBsaXRlcmFs
ICovCi0KLSAgaXRlbV9jb3VudCsrOyAgICAvKiBJcyB6ZXJvIGZvciB0aGUgZmlyc3Qgbm9uLWNv
bW1lbnQgaXRlbSAqLwotCi0gIHN3aXRjaChjKQotICAgIHsKLSAgICAvKiBBIGJhY2tzbGFzaGVk
IGl0ZW0gbWF5IGJlIGFuIGVzY2FwZWQgZGF0YSBjaGFyYWN0ZXIgb3IgaXQgbWF5IGJlIGEKLSAg
ICBjaGFyYWN0ZXIgdHlwZS4gKi8KLQotICAgIGNhc2UgJ1xcJzoKLSAgICBjID0gY2hlY2tfZXNj
YXBlKCZwdHIsIHBhdHRlcm5FbmQsICZlcnJvcmNvZGUsIGJyYWNvdW50LCBGQUxTRSk7Ci0gICAg
aWYgKGVycm9yY29kZSAhPSAwKSBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOwotCi0gICAgbGFzdGl0
ZW1sZW5ndGggPSAxOyAgICAgLyogRGVmYXVsdCBsZW5ndGggb2YgbGFzdCBpdGVtIGZvciByZXBl
YXRzICovCi0KLSAgICBpZiAoYyA+PSAwKSAgICAgICAgICAgICAvKiBEYXRhIGNoYXJhY3RlciAq
LwotICAgICAgewotICAgICAgbGVuZ3RoICs9IDI7ICAgICAgICAgIC8qIEZvciBhIG9uZS1ieXRl
IGNoYXJhY3RlciAqLwotCi0gICAgICBpZiAoYyA+IDEyNykKLSAgICAgICAgewotICAgICAgICBp
bnQgaTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IF9wY3JlX3V0ZjhfdGFibGUxX3NpemU7IGkr
KykKLSAgICAgICAgICBpZiAoYyA8PSBfcGNyZV91dGY4X3RhYmxlMVtpXSkgYnJlYWs7Ci0gICAg
ICAgIGxlbmd0aCArPSBpOwotICAgICAgICBsYXN0aXRlbWxlbmd0aCArPSBpOwotICAgICAgICB9
Ci0KLSAgICAgIGNvbnRpbnVlOwotICAgICAgfQotCi0gICAgLyogT3RoZXIgZXNjYXBlcyBuZWVk
IG9uZSBieXRlICovCi0KLSAgICBsZW5ndGgrKzsKLQotICAgIC8qIEEgYmFjayByZWZlcmVuY2Ug
bmVlZHMgYW4gYWRkaXRpb25hbCAyIGJ5dGVzLCBwbHVzIGVpdGhlciBvbmUgb3IgNQotICAgIGJ5
dGVzIGZvciBhIHJlcGVhdC4gV2UgYWxzbyBuZWVkIHRvIGtlZXAgdGhlIHZhbHVlIG9mIHRoZSBo
aWdoZXN0Ci0gICAgYmFjayByZWZlcmVuY2UuICovCi0KLSAgICBpZiAoYyA8PSAtRVNDX1JFRikK
LSAgICAgIHsKLSAgICAgIGludCByZWZudW0gPSAtYyAtIEVTQ19SRUY7Ci0gICAgICBjb21waWxl
X2Jsb2NrLmJhY2tyZWZfbWFwIHw9IChyZWZudW0gPCAzMik/ICgxIDw8IHJlZm51bSkgOiAxOwot
ICAgICAgaWYgKHJlZm51bSA+IGNvbXBpbGVfYmxvY2sudG9wX2JhY2tyZWYpCi0gICAgICAgIGNv
bXBpbGVfYmxvY2sudG9wX2JhY2tyZWYgPSByZWZudW07Ci0gICAgICBsZW5ndGggKz0gMjsgICAv
KiBGb3Igc2luZ2xlIGJhY2sgcmVmZXJlbmNlICovCi0gICAgICBpZiAocHRyWzFdID09ICd7JyAm
JiBpc19jb3VudGVkX3JlcGVhdChwdHIrMiwgcGF0dGVybkVuZCkpCi0gICAgICAgIHsKLSAgICAg
ICAgcHRyID0gcmVhZF9yZXBlYXRfY291bnRzKHB0cisyLCAmbWluLCAmbWF4LCAmZXJyb3Jjb2Rl
KTsKLSAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKSBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOwot
ICAgICAgICBpZiAoKG1pbiA9PSAwICYmIChtYXggPT0gMSB8fCBtYXggPT0gLTEpKSB8fAotICAg
ICAgICAgIChtaW4gPT0gMSAmJiBtYXggPT0gLTEpKQotICAgICAgICAgICAgbGVuZ3RoKys7Ci0g
ICAgICAgIGVsc2UgbGVuZ3RoICs9IDU7Ci0gICAgICAgIGlmIChwdHJbMV0gPT0gJz8nKSBwdHIr
KzsKLSAgICAgICAgICAgIHB0cisrOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgY29udGludWU7
Ci0KLSAgICBjYXNlICdeJzogICAgIC8qIFNpbmdsZS1ieXRlIG1ldGFjaGFyYWN0ZXJzICovCi0g
ICAgY2FzZSAnLic6Ci0gICAgY2FzZSAnJCc6Ci0gICAgbGVuZ3RoKys7Ci0gICAgbGFzdGl0ZW1s
ZW5ndGggPSAxOwotICAgIGNvbnRpbnVlOwotCi0gICAgY2FzZSAnKic6ICAgICAgICAgICAgLyog
VGhlc2UgcmVwZWF0cyB3b24ndCBiZSBhZnRlciBicmFja2V0czsgKi8KLSAgICBjYXNlICcrJzog
ICAgICAgICAgICAvKiB0aG9zZSBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5ICovCi0gICAgY2FzZSAn
Pyc6Ci0gICAgbGVuZ3RoKys7Ci0gICAgZ290byBQT1NFU1NJVkU7ICAgICAgLyogQSBmZXcgbGlu
ZXMgYmVsb3cgKi8KLQotICAgIC8qIFRoaXMgY292ZXJzIHRoZSBjYXNlcyBvZiBicmFjZWQgcmVw
ZWF0cyBhZnRlciBhIHNpbmdsZSBjaGFyLCBtZXRhY2hhciwKLSAgICBjbGFzcywgb3IgYmFjayBy
ZWZlcmVuY2UuICovCi0KLSAgICBjYXNlICd7JzoKLSAgICBpZiAoIWlzX2NvdW50ZWRfcmVwZWF0
KHB0cisxLCBwYXR0ZXJuRW5kKSkgZ290byBOT1JNQUxfQ0hBUjsKLSAgICBwdHIgPSByZWFkX3Jl
cGVhdF9jb3VudHMocHRyKzEsICZtaW4sICZtYXgsICZlcnJvcmNvZGUpOwotICAgIGlmIChlcnJv
cmNvZGUgIT0gMCkgZ290byBQQ1JFX0VSUk9SX1JFVFVSTjsKLQotICAgIC8qIFRoZXNlIHNwZWNp
YWwgY2FzZXMganVzdCBpbnNlcnQgb25lIGV4dHJhIG9wY29kZSAqLwotCi0gICAgaWYgKChtaW4g
PT0gMCAmJiAobWF4ID09IDEgfHwgbWF4ID09IC0xKSkgfHwKLSAgICAgIChtaW4gPT0gMSAmJiBt
YXggPT0gLTEpKQotICAgICAgICBsZW5ndGgrKzsKLQotICAgIC8qIFRoZXNlIGNhc2VzIG1pZ2h0
IGluc2VydCBhZGRpdGlvbmFsIGNvcGllcyBvZiBhIHByZWNlZGluZyBjaGFyYWN0ZXIuICovCi0K
LSAgICBlbHNlCi0gICAgICB7Ci0gICAgICBpZiAobWluICE9IDEpCi0gICAgICAgIHsKLSAgICAg
ICAgbGVuZ3RoIC09IGxhc3RpdGVtbGVuZ3RoOyAgIC8qIFVuY291bnQgdGhlIG9yaWdpbmFsIGNo
YXIgb3IgbWV0YWNoYXIgKi8KLSAgICAgICAgaWYgKG1pbiA+IDApIGxlbmd0aCArPSAzICsgbGFz
dGl0ZW1sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgIGxlbmd0aCArPSBsYXN0aXRlbWxlbmd0aCAr
ICgobWF4ID4gMCk/IDMgOiAxKTsKLSAgICAgIH0KLQotICAgIGlmIChwdHJbMV0gPT0gJz8nKSBw
dHIrKzsgICAgICAvKiBOZWVkcyBubyBleHRyYSBsZW5ndGggKi8KLQotICAgIFBPU0VTU0lWRTog
ICAgICAgICAgICAgICAgICAgICAvKiBUZXN0IGZvciBwb3NzZXNzaXZlIHF1YW50aWZpZXIgKi8K
LSAgICBpZiAocHRyWzFdID09ICcrJykKLSAgICAgIHsKLSAgICAgIHB0cisrOwotICAgICAgbGVu
Z3RoICs9IDIgKyAyKkxJTktfU0laRTsgICAvKiBBbGxvdyBmb3IgYXRvbWljIGJyYWNrZXRzICov
Ci0gICAgICB9Ci0gICAgY29udGludWU7Ci0KLSAgICAvKiBBbiBhbHRlcm5hdGlvbiBjb250YWlu
cyBhbiBvZmZzZXQgdG8gdGhlIG5leHQgYnJhbmNoIG9yIGtldC4gSWYgYW55IGltcwotICAgIG9w
dGlvbnMgY2hhbmdlZCBpbiB0aGUgcHJldmlvdXMgYnJhbmNoKGVzKSwgYW5kL29yIGlmIHdlIGFy
ZSBpbiBhCi0gICAgbG9va2JlaGluZCBhc3NlcnRpb24sIGV4dHJhIHNwYWNlIHdpbGwgYmUgbmVl
ZGVkIGF0IHRoZSBzdGFydCBvZiB0aGUKLSAgICBicmFuY2guIFRoaXMgaXMgaGFuZGxlZCBieSBi
cmFuY2hfZXh0cmEuICovCi0KLSAgICBjYXNlICd8JzoKLSAgICBsZW5ndGggKz0gMSArIExJTktf
U0laRSArIGJyYW5jaF9leHRyYTsKLSAgICBjb250aW51ZTsKLQotICAgIC8qIEEgY2hhcmFjdGVy
IGNsYXNzIHVzZXMgMzMgY2hhcmFjdGVycyBwcm92aWRlZCB0aGF0IGFsbCB0aGUgY2hhcmFjdGVy
Ci0gICAgdmFsdWVzIGFyZSBsZXNzIHRoYW4gMjU2LiBPdGhlcndpc2UsIGl0IHVzZXMgYSBiaXQg
bWFwIGZvciBsb3cgdmFsdWVkCi0gICAgY2hhcmFjdGVycywgYW5kIGluZGl2aWR1YWwgaXRlbXMg
Zm9yIG90aGVycy4gRG9uJ3Qgd29ycnkgYWJvdXQgY2hhcmFjdGVyCi0gICAgdHlwZXMgdGhhdCBh
cmVuJ3QgYWxsb3dlZCBpbiBjbGFzc2VzIC0gdGhleSdsbCBnZXQgcGlja2VkIHVwIGR1cmluZyB0
aGUKLSAgICBjb21waWxlLiBBIGNoYXJhY3RlciBjbGFzcyB0aGF0IGNvbnRhaW5zIG9ubHkgb25l
IHNpbmdsZS1ieXRlIGNoYXJhY3RlcgotICAgIHVzZXMgMiBvciAzIGJ5dGVzLCBkZXBlbmRpbmcg
b24gd2hldGhlciBpdCBpcyBuZWdhdGVkIG9yIG5vdC4gTm90aWNlIHRoaXMKLSAgICB3aGVyZSB3
ZSBjYW4uIChJbiBVVEYtOCBtb2RlIHdlIGNhbiBkbyB0aGlzIG9ubHkgZm9yIGNoYXJzIDwgMTI4
LikgKi8KLQotICAgIGNhc2UgJ1snOgotICAgIGlmICgqKCsrcHRyKSA9PSAnXicpCi0gICAgICB7
Ci0gICAgICBjbGFzc19vcHRjb3VudCA9IDEwOyAgLyogR3JlYXRlciB0aGFuIG9uZSAqLwotICAg
ICAgcHRyKys7Ci0gICAgICB9Ci0gICAgZWxzZSBjbGFzc19vcHRjb3VudCA9IDA7Ci0KLSAgICBj
bGFzc191dGY4ID0gRkFMU0U7Ci0KLSAgICAvKiBXcml0dGVuIGFzIGEgImRvIiBzbyB0aGF0IGFu
IGluaXRpYWwgJ10nIGlzIHRha2VuIGFzIGRhdGEgKi8KLQotICAgIGlmICgqcHRyICE9IDApIGRv
Ci0gICAgICB7Ci0gICAgICAvKiBPdXRzaWRlIFxRLi4uXEUsIGNoZWNrIGZvciBlc2NhcGVzICov
Ci0KLSAgICAgIGlmICgqcHRyID09ICdcXCcpCi0gICAgICAgIHsKLSAgICAgICAgYyA9IGNoZWNr
X2VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCAmZXJyb3Jjb2RlLCBicmFjb3VudCwgVFJVRSk7Ci0g
ICAgICAgIGlmIChlcnJvcmNvZGUgIT0gMCkgZ290byBQQ1JFX0VSUk9SX1JFVFVSTjsKLQotICAg
ICAgICAvKiBcYiBpcyBiYWNrc3BhY2UgaW5zaWRlIGEgY2xhc3M7IFxYIGlzIGxpdGVyYWwgKi8K
LQotICAgICAgICBpZiAoLWMgPT0gRVNDX2IpIGMgPSAnXGInOwotCi0gICAgICAgIC8qIEhhbmRs
ZSBlc2NhcGVzIHRoYXQgdHVybiBpbnRvIGNoYXJhY3RlcnMgKi8KLQotICAgICAgICBpZiAoYyA+
PSAwKSBnb3RvIE5PTl9TUEVDSUFMX0NIQVJBQ1RFUjsKLQotICAgICAgICAvKiBFc2NhcGVzIHRo
YXQgYXJlIG1ldGEtdGhpbmdzLiBUaGUgbm9ybWFsIG9uZXMganVzdCBhZmZlY3QgdGhlCi0gICAg
ICAgIGJpdCBtYXAsIGJ1dCBVbmljb2RlIHByb3BlcnRpZXMgcmVxdWlyZSBhbiBYQ0xBU1MgZXh0
ZW5kZWQgaXRlbS4gKi8KLQotICAgICAgICBlbHNlCi0gICAgICAgICAgewotICAgICAgICAgIGNs
YXNzX29wdGNvdW50ID0gMTA7ICAgICAgICAgLyogXGQsIFxzIGV0YzsgbWFrZSBzdXJlID4gMSAq
LwotICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAvKiBBbnl0aGluZyBlbHNlIGluY3Jl
bWVudHMgdGhlIHBvc3NpYmxlIG9wdGltaXphdGlvbiBjb3VudC4gV2UgaGF2ZSB0bwotICAgICAg
ZGV0ZWN0IHJhbmdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIGNvbXB1dGUgdGhlIG51bWJlciBvZiBl
eHRyYSByYW5nZXMgZm9yCi0gICAgICBjYXNlbGVzcyB3aWRlIGNoYXJhY3RlcnMgd2hlbiBVQ1Ag
c3VwcG9ydCBpcyBhdmFpbGFibGUuIElmIHRoZXJlIGFyZSB3aWRlCi0gICAgICBjaGFyYWN0ZXJz
LCB3ZSBhcmUgZ29pbmcgdG8gaGF2ZSB0byB1c2UgYW4gWENMQVNTLCBldmVuIGZvciBzaW5nbGUK
LSAgICAgIGNoYXJhY3RlcnMuICovCi0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBp
bnQgZDsKLQotICAgICAgICAgIHsKLSAgICAgICAgICBpbnQgZXh0cmEgPSAwOwotICAgICAgICAg
IEdFVENIQVJMRU5FTkQoYywgcHRyLCBwYXR0ZXJuRW5kLCBleHRyYSk7Ci0gICAgICAgICAgcHRy
ICs9IGV4dHJhOwotICAgICAgICAgIH0KLQotICAgICAgICAvKiBDb21lIGhlcmUgZnJvbSBoYW5k
bGluZyBcIGFib3ZlIHdoZW4gaXQgZXNjYXBlcyB0byBhIGNoYXIgdmFsdWUgKi8KLQotICAgICAg
ICBOT05fU1BFQ0lBTF9DSEFSQUNURVI6Ci0gICAgICAgIGNsYXNzX29wdGNvdW50Kys7Ci0KLSAg
ICAgICAgZCA9IC0xOwotICAgICAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgcHRyWzFd
ID09ICctJykKLSAgICAgICAgICB7Ci0gICAgICAgICAgcGNyZV91Y2hhciBjb25zdCAqaHlwdHIg
PSBwdHIrKzsKLSAgICAgICAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgcHRyWzFdID09
ICdcXCcpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgIGQg
PSBjaGVja19lc2NhcGUoJnB0ciwgcGF0dGVybkVuZCwgJmVycm9yY29kZSwgYnJhY291bnQsIFRS
VUUpOwotICAgICAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKSBnb3RvIFBDUkVfRVJST1JfUkVU
VVJOOwotICAgICAgICAgICAgaWYgKC1kID09IEVTQ19iKSBkID0gJ1xiJzsgICAgICAgIC8qIGJh
Y2tzcGFjZSAqLwotICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKHB0ciArIDEgPCBw
YXR0ZXJuRW5kICYmIHB0clsxXSAhPSAnXScpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBw
dHIrKzsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICBpbnQgZXh0cmEgPSAwOwotICAg
ICAgICAgICAgICBHRVRDSEFSTEVORU5EKGQsIHB0ciwgcGF0dGVybkVuZCwgZXh0cmEpOwotICAg
ICAgICAgICAgICBwdHIgKz0gZXh0cmE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICBpZiAoZCA8IDApIHB0ciA9IGh5cHRyOyAgICAgIC8qIGdvIGJhY2sgdG8gaHlw
aGVuIGFzIGRhdGEgKi8KLSAgICAgICAgICB9Ci0KLSAgICAgICAgLyogSWYgZCA+PSAwIHdlIGhh
dmUgYSByYW5nZS4gSW4gVVRGLTggbW9kZSwgaWYgdGhlIGVuZCBpcyA+IDI1NSwgb3IgPgotICAg
ICAgICAxMjcgZm9yIGNhc2VsZXNzIG1hdGNoaW5nLCB3ZSB3aWxsIG5lZWQgdG8gdXNlIGFuIFhD
TEFTUy4gKi8KLQotICAgICAgICBpZiAoZCA+PSAwKQotICAgICAgICAgIHsKLSAgICAgICAgICBj
bGFzc19vcHRjb3VudCA9IDEwOyAgICAgLyogRW5zdXJlID4gMSAqLwotICAgICAgICAgIGlmIChk
IDwgYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGVycm9yY29kZSA9IEVSUjg7Ci0gICAg
ICAgICAgICBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgaWYgKChkID4gMjU1IHx8ICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAgJiYgZCA+
IDEyNykpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgdXNjaGFyIGJ1ZmZlcls2XTsKLSAg
ICAgICAgICAgIGlmICghY2xhc3NfdXRmOCkgICAgICAgICAvKiBBbGxvdyBmb3IgWENMQVNTIG92
ZXJoZWFkICovCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgY2xhc3NfdXRmOCA9IFRS
VUU7Ci0gICAgICAgICAgICAgIGxlbmd0aCArPSBMSU5LX1NJWkUgKyAyOwotICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIC8qIElmIHdlIGhhdmUgVUNQIHN1cHBvcnQsIGZpbmQgb3V0IGhv
dyBtYW55IGV4dHJhIHJhbmdlcyBhcmUKLSAgICAgICAgICAgIG5lZWRlZCB0byBtYXAgdGhlIG90
aGVyIGNhc2Ugb2YgY2hhcmFjdGVycyB3aXRoaW4gdGhpcyByYW5nZS4gV2UKLSAgICAgICAgICAg
IGhhdmUgdG8gbWltaWMgdGhlIHJhbmdlIG9wdGltaXphdGlvbiBoZXJlLCBiZWNhdXNlIGV4dGVu
ZGluZyB0aGUKLSAgICAgICAgICAgIHJhbmdlIHVwd2FyZHMgbWlnaHQgcHVzaCBkIG92ZXIgYSBi
b3VuZGFyeSB0aGF0IG1ha2VzIGlzIHVzZQotICAgICAgICAgICAgYW5vdGhlciBieXRlIGluIHRo
ZSBVVEYtOCByZXByZXNlbnRhdGlvbi4gKi8KLQotICAgICAgICAgICAgaWYgKChvcHRpb25zICYg
UENSRV9DQVNFTEVTUykgIT0gMCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICBpbnQg
b2NjLCBvY2Q7Ci0gICAgICAgICAgICAgIGludCBjYyA9IGM7Ci0gICAgICAgICAgICAgIGludCBv
cmlnZCA9IGQ7Ci0gICAgICAgICAgICAgIHdoaWxlIChnZXRfb3RoZXJjYXNlX3JhbmdlKCZjYywg
b3JpZ2QsICZvY2MsICZvY2QpKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBp
ZiAob2NjID49IGMgJiYgb2NkIDw9IGQpIGNvbnRpbnVlOyAgIC8qIFNraXAgZW1iZWRkZWQgKi8K
LQotICAgICAgICAgICAgICAgIGlmIChvY2MgPCBjICAmJiBvY2QgPj0gYyAtIDEpICAvKiBFeHRl
bmQgdGhlIGJhc2ljIHJhbmdlICovCi0gICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIGlmIHRoZXJlIGlzIG92ZXJsYXAsICAgKi8KLSAgICAgICAgICAgICAg
ICAgIGMgPSBvY2M7ICAgICAgICAgICAgICAgICAgICAgLyogbm90aW5nIHRoYXQgaWYgb2NjIDwg
YyAqLwotICAgICAgICAgICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAgICAgICAvKiB3
ZSBjYW4ndCBoYXZlIG9jZCA+IGQgICovCi0gICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIGJlY2F1c2UgYSBzdWJyYW5nZSBpcyAgKi8KLSAgICAgICAgICAg
ICAgICBpZiAob2NkID4gZCAmJiBvY2MgPD0gZCArIDEpICAgLyogYWx3YXlzIHNob3J0ZXIgdGhh
biAgICAqLwotICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiB0aGUgYmFzaWMgcmFuZ2UuICAgICAgICovCi0gICAgICAgICAgICAgICAgICBkID0gb2NkOwot
ICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgICAvKiBBbiBleHRyYSBpdGVtIGlzIG5lZWRlZCAqLwotCi0gICAgICAgICAgICAg
ICAgbGVuZ3RoICs9IDEgKyBfcGNyZV9vcmQydXRmOChvY2MsIGJ1ZmZlcikgKwotICAgICAgICAg
ICAgICAgICAgKChvY2MgPT0gb2NkKT8gMCA6IF9wY3JlX29yZDJ1dGY4KG9jZCwgYnVmZmVyKSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIFRo
ZSBsZW5ndGggb2YgdGhlIChwb3NzaWJseSBleHRlbmRlZCkgcmFuZ2UgKi8KLQotICAgICAgICAg
ICAgbGVuZ3RoICs9IDEgKyBfcGNyZV9vcmQydXRmOChjLCBidWZmZXIpICsgX3BjcmVfb3JkMnV0
ZjgoZCwgYnVmZmVyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgIH0KLQotICAgICAgICAv
KiBXZSBoYXZlIGEgc2luZ2xlIGNoYXJhY3Rlci4gVGhlcmUgaXMgbm90aGluZyB0byBiZSBkb25l
IHVubGVzcyB3ZQotICAgICAgICBhcmUgaW4gVVRGLTggbW9kZS4gSWYgdGhlIGNoYXIgaXMgPiAy
NTUsIG9yIDEyNyB3aGVuIGNhc2VsZXNzLCB3ZSBtdXN0Ci0gICAgICAgIGFsbG93IGZvciBhbiBY
Q0xfU0lOR0xFIGl0ZW0sIGRvdWJsZWQgZm9yIGNhc2VsZXNzbmVzcyBpZiB0aGVyZSBpcyBVQ1AK
LSAgICAgICAgc3VwcG9ydC4gKi8KLQotICAgICAgICBlbHNlCi0gICAgICAgICAgewotICAgICAg
ICAgIGlmICgoYyA+IDI1NSB8fCAoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwICYmIGMg
PiAxMjcpKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIHVzY2hhciBidWZmZXJbNl07Ci0g
ICAgICAgICAgICBjbGFzc19vcHRjb3VudCA9IDEwOyAgICAgLyogRW5zdXJlID4gMSAqLwotICAg
ICAgICAgICAgaWYgKCFjbGFzc191dGY4KSAgICAgICAgIC8qIEFsbG93IGZvciBYQ0xBU1Mgb3Zl
cmhlYWQgKi8KLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICBjbGFzc191dGY4ID0gVFJV
RTsKLSAgICAgICAgICAgICAgbGVuZ3RoICs9IExJTktfU0laRSArIDI7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGxlbmd0aCArPSAoKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0g
MCk/IDIgOiAxKSAqCi0gICAgICAgICAgICAgICgxICsgX3BjcmVfb3JkMnV0ZjgoYywgYnVmZmVy
KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
d2hpbGUgKCsrcHRyIDwgcGF0dGVybkVuZCAmJiAqcHRyICE9ICddJyk7IC8qIENvbmNsdWRlcyAi
ZG8iIGFib3ZlICovCi0KLSAgICBpZiAocHRyID49IHBhdHRlcm5FbmQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiBNaXNzaW5nIHRlcm1pbmF0aW5nICddJyAqLwotICAgICAgewotICAgICAg
ZXJyb3Jjb2RlID0gRVJSNjsKLSAgICAgIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47Ci0gICAgICB9
Ci0KLSAgICAvKiBXZSBjYW4gb3B0aW1pemUgd2hlbiB0aGVyZSB3YXMgb25seSBvbmUgb3B0aW1p
emFibGUgY2hhcmFjdGVyLiBSZXBlYXRzCi0gICAgZm9yIHBvc2l0aXZlIGFuZCBuZWdhdGVkIHNp
bmdsZSBvbmUtYnl0ZSBjaGFycyBhcmUgaGFuZGxlZCBieSB0aGUgZ2VuZXJhbAotICAgIGNvZGUu
IEhlcmUsIHdlIGhhbmRsZSByZXBlYXRzIGZvciB0aGUgY2xhc3Mgb3Bjb2Rlcy4gKi8KLQotICAg
IGlmIChjbGFzc19vcHRjb3VudCA9PSAxKSBsZW5ndGggKz0gMzsgZWxzZQotICAgICAgewotICAg
ICAgbGVuZ3RoICs9IDMzOwotCi0gICAgICAvKiBBIHJlcGVhdCBuZWVkcyBlaXRoZXIgMSBvciA1
IGJ5dGVzLiBJZiBpdCBpcyBhIHBvc3Nlc3NpdmUgcXVhbnRpZmllciwKLSAgICAgIHdlIGFsc28g
bmVlZCBleHRyYSBmb3Igd3JhcHBpbmcgdGhlIHdob2xlIHRoaW5nIGluIGEgc3ViLXBhdHRlcm4u
ICovCi0KLSAgICAgIGlmIChwdHIgKyAxIDwgcGF0dGVybkVuZCAmJiBwdHJbMV0gPT0gJ3snICYm
IGlzX2NvdW50ZWRfcmVwZWF0KHB0cisyLCBwYXR0ZXJuRW5kKSkKLSAgICAgICAgewotICAgICAg
ICBwdHIgPSByZWFkX3JlcGVhdF9jb3VudHMocHRyKzIsICZtaW4sICZtYXgsICZlcnJvcmNvZGUp
OwotICAgICAgICBpZiAoZXJyb3Jjb2RlICE9IDApIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47Ci0g
ICAgICAgIGlmICgobWluID09IDAgJiYgKG1heCA9PSAxIHx8IG1heCA9PSAtMSkpIHx8Ci0gICAg
ICAgICAgKG1pbiA9PSAxICYmIG1heCA9PSAtMSkpCi0gICAgICAgICAgICBsZW5ndGgrKzsKLSAg
ICAgICAgZWxzZSBsZW5ndGggKz0gNTsKLSAgICAgICAgaWYgKHB0ciArIDEgPCBwYXR0ZXJuRW5k
ICYmIHB0clsxXSA9PSAnKycpCi0gICAgICAgICAgewotICAgICAgICAgIHB0cisrOwotICAgICAg
ICAgIGxlbmd0aCArPSAyICsgMipMSU5LX1NJWkU7Ci0gICAgICAgICAgfQotICAgICAgICBlbHNl
IGlmIChwdHIgKyAxIDwgcGF0dGVybkVuZCAmJiBwdHJbMV0gPT0gJz8nKSBwdHIrKzsKLSAgICAg
ICAgfQotICAgICAgfQotICAgIGNvbnRpbnVlOwotCi0gICAgLyogQnJhY2tldHMgbWF5IGJlIGdl
bnVpbmUgZ3JvdXBzIG9yIHNwZWNpYWwgdGhpbmdzICovCi0KLSAgICBjYXNlICcoJzoKLSAgICBi
cmFuY2hfbmV3ZXh0cmEgPSAwOwotICAgIGJyYWNrZXRfbGVuZ3RoID0gMSArIExJTktfU0laRTsK
LSAgICBjYXB0dXJpbmcgPSBGQUxTRTsKLQotICAgIC8qIEhhbmRsZSBzcGVjaWFsIGZvcm1zIG9m
IGJyYWNrZXQsIHdoaWNoIGFsbCBzdGFydCAoPyAqLwotCi0gICAgaWYgKHB0ciArIDEgPCBwYXR0
ZXJuRW5kICYmIHB0clsxXSA9PSAnPycpCi0gICAgICB7Ci0gICAgICBzd2l0Y2ggKGMgPSAocHRy
ICsgMiA8IHBhdHRlcm5FbmQgPyBwdHJbMl0gOiAwKSkKLSAgICAgICAgewotICAgICAgICAvKiBO
b24tcmVmZXJlbmNpbmcgZ3JvdXBzIGFuZCBsb29rYWhlYWRzIGp1c3QgbW92ZSB0aGUgcG9pbnRl
ciBvbiwgYW5kCi0gICAgICAgIHRoZW4gYmVoYXZlIGxpa2UgYSBub24tc3BlY2lhbCBicmFja2V0
LCBleGNlcHQgdGhhdCB0aGV5IGRvbid0IGluY3JlbWVudAotICAgICAgICB0aGUgY291bnQgb2Yg
ZXh0cmFjdGluZyBicmFja2V0cy4gRGl0dG8gZm9yIHRoZSAib25jZSBvbmx5IiBicmFja2V0LAot
ICAgICAgICB3aGljaCBpcyBpbiBQZXJsIGZyb20gdmVyc2lvbiA1LjAwNS4gKi8KLQotICAgICAg
ICBjYXNlICc6JzoKLSAgICAgICAgY2FzZSAnPSc6Ci0gICAgICAgIGNhc2UgJyEnOgotICAgICAg
ICBwdHIgKz0gMjsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLyogRWxzZSBsb29wIGNoZWNr
aW5nIHZhbGlkIG9wdGlvbnMgdW50aWwgKSBpcyBtZXQuIEFueXRoaW5nIGVsc2UgaXMgYW4KLSAg
ICAgICAgZXJyb3IuIElmIHdlIGFyZSB3aXRob3V0IGFueSBicmFja2V0cywgaS5lLiBhdCB0b3Ag
bGV2ZWwsIHRoZSBzZXR0aW5ncwotICAgICAgICBhY3QgYXMgaWYgc3BlY2lmaWVkIGluIHRoZSBv
cHRpb25zLCBzbyBtYXNzYWdlIHRoZSBvcHRpb25zIGltbWVkaWF0ZWx5LgotICAgICAgICBUaGlz
IGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggUGVybCA1LjAwNC4gKi8KLQotICAg
ICAgICBkZWZhdWx0OgotICAgICAgICBlcnJvcmNvZGUgPSBFUlIxMjsKLSAgICAgICAgZ290byBQ
Q1JFX0VSUk9SX1JFVFVSTjsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgZWxzZSBjYXB0dXJp
bmcgPSAxOwotCi0gICAgLyogQ2FwdHVyaW5nIGJyYWNrZXRzIG11c3QgYmUgY291bnRlZCBzbyB3
ZSBjYW4gcHJvY2VzcyBlc2NhcGVzIGluIGEKLSAgICBQZXJsaXNoIHdheS4gSWYgdGhlIG51bWJl
ciBleGNlZWRzIEVYVFJBQ1RfQkFTSUNfTUFYIHdlIGFyZSBnb2luZyB0byBuZWVkCi0gICAgYW4g
YWRkaXRpb25hbCAzIGJ5dGVzIG9mIG1lbW9yeSBwZXIgY2FwdHVyaW5nIGJyYWNrZXQuICovCi0K
LSAgICBpZiAoY2FwdHVyaW5nKQotICAgICAgewotICAgICAgYnJhY291bnQrKzsKLSAgICAgIGlm
IChicmFjb3VudCA+IEVYVFJBQ1RfQkFTSUNfTUFYKSBicmFja2V0X2xlbmd0aCArPSAzOwotICAg
ICAgfQotCi0gICAgLyogU2F2ZSBsZW5ndGggZm9yIGNvbXB1dGluZyB3aG9sZSBsZW5ndGggYXQg
ZW5kIGlmIHRoZXJlJ3MgYSByZXBlYXQgdGhhdAotICAgIHJlcXVpcmVzIGR1cGxpY2F0aW9uIG9m
IHRoZSBncm91cC4gQWxzbyBzYXZlIHRoZSBjdXJyZW50IHZhbHVlIG9mCi0gICAgYnJhbmNoX2V4
dHJhLCBhbmQgc3RhcnQgdGhlIG5ldyBncm91cCB3aXRoIHRoZSBuZXcgdmFsdWUuIElmIG5vbi16
ZXJvLCB0aGlzCi0gICAgd2lsbCBlaXRoZXIgYmUgMiBmb3IgYSAoP2ltc3g6IGdyb3VwLCBvciAz
IGZvciBhIGxvb2tiZWhpbmQgYXNzZXJ0aW9uLiAqLwotCi0gICAgaWYgKGJyYXN0YWNrcHRyID49
IHNpemVvZihicmFzdGFjaykvc2l6ZW9mKGludCkpCi0gICAgICB7Ci0gICAgICBlcnJvcmNvZGUg
PSBFUlIxOTsKLSAgICAgIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47Ci0gICAgICB9Ci0KLSAgICBi
cmFsZW5zdGFja1ticmFzdGFja3B0cl0gPSBicmFuY2hfZXh0cmE7Ci0gICAgYnJhbmNoX2V4dHJh
ID0gYnJhbmNoX25ld2V4dHJhOwotCi0gICAgYnJhc3RhY2tbYnJhc3RhY2twdHIrK10gPSBsZW5n
dGg7Ci0gICAgbGVuZ3RoICs9IGJyYWNrZXRfbGVuZ3RoOwotICAgIGNvbnRpbnVlOwotCi0gICAg
LyogSGFuZGxlIGtldC4gTG9vayBmb3Igc3Vic2VxdWVudCBtYXgvbWluOyBmb3IgY2VydGFpbiBz
ZXRzIG9mIHZhbHVlcyB3ZQotICAgIGhhdmUgdG8gcmVwbGljYXRlIHRoaXMgYnJhY2tldCB1cCB0
byB0aGF0IG1hbnkgdGltZXMuIElmIGJyYXN0YWNrcHRyIGlzCi0gICAgMCB0aGlzIGlzIGFuIHVu
bWF0Y2hlZCBicmFja2V0IHdoaWNoIHdpbGwgZ2VuZXJhdGUgYW4gZXJyb3IsIGJ1dCB0YWtlIGNh
cmUKLSAgICBub3QgdG8gdHJ5IHRvIGFjY2VzcyBicmFzdGFja1stMV0gd2hlbiBjb21wdXRpbmcg
dGhlIGxlbmd0aCBhbmQgcmVzdG9yaW5nCi0gICAgdGhlIGJyYW5jaF9leHRyYSB2YWx1ZS4gKi8K
LQotICAgIGNhc2UgJyknOgotICAgIGxlbmd0aCArPSAxICsgTElOS19TSVpFOwotICAgIGlmIChi
cmFzdGFja3B0ciA+IDApCi0gICAgICB7Ci0gICAgICBkdXBsZW5ndGggPSBsZW5ndGggLSBicmFz
dGFja1stLWJyYXN0YWNrcHRyXTsKLSAgICAgIGJyYW5jaF9leHRyYSA9IGJyYWxlbnN0YWNrW2Jy
YXN0YWNrcHRyXTsKLSAgICAgIH0KLSAgICBlbHNlIGR1cGxlbmd0aCA9IDA7Ci0KLSAgICAvKiBM
ZWF2ZSBwdHIgYXQgdGhlIGZpbmFsIGNoYXI7IGZvciByZWFkX3JlcGVhdF9jb3VudHMgdGhpcyBo
YXBwZW5zCi0gICAgYXV0b21hdGljYWxseTsgZm9yIHRoZSBvdGhlcnMgd2UgbmVlZCBhbiBpbmNy
ZW1lbnQuICovCi0KLSAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgKGMgPSBwdHJbMV0p
ID09ICd7JyAmJiBpc19jb3VudGVkX3JlcGVhdChwdHIrMiwgcGF0dGVybkVuZCkpCi0gICAgICB7
Ci0gICAgICBwdHIgPSByZWFkX3JlcGVhdF9jb3VudHMocHRyKzIsICZtaW4sICZtYXgsICZlcnJv
cmNvZGUpOwotICAgICAgaWYgKGVycm9yY29kZSAhPSAwKSBnb3RvIFBDUkVfRVJST1JfUkVUVVJO
OwotICAgICAgfQotICAgIGVsc2UgaWYgKGMgPT0gJyonKSB7IG1pbiA9IDA7IG1heCA9IC0xOyBw
dHIrKzsgfQotICAgIGVsc2UgaWYgKGMgPT0gJysnKSB7IG1pbiA9IDE7IG1heCA9IC0xOyBwdHIr
KzsgfQotICAgIGVsc2UgaWYgKGMgPT0gJz8nKSB7IG1pbiA9IDA7IG1heCA9IDE7ICBwdHIrKzsg
fQotICAgIGVsc2UgeyBtaW4gPSAxOyBtYXggPSAxOyB9Ci0KLSAgICAvKiBJZiB0aGUgbWluaW11
bSBpcyB6ZXJvLCB3ZSBoYXZlIHRvIGFsbG93IGZvciBhbiBPUF9CUkFaRVJPIGJlZm9yZSB0aGUK
LSAgICBncm91cCwgYW5kIGlmIHRoZSBtYXhpbXVtIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB3ZSBo
YXZlIHRvIHJlcGxpY2F0ZQotICAgIG1heHZhbC0xIHRpbWVzOyBlYWNoIHJlcGxpY2F0aW9uIGFj
cXVpcmVzIGFuIE9QX0JSQVpFUk8gcGx1cyBhIG5lc3RpbmcKLSAgICBicmFja2V0IHNldC4gKi8K
LQotICAgIGlmIChtaW4gPT0gMCkKLSAgICAgIHsKLSAgICAgIGxlbmd0aCsrOwotICAgICAgaWYg
KG1heCA+IDApIGxlbmd0aCArPSAobWF4IC0gMSkgKiAoZHVwbGVuZ3RoICsgMyArIDIqTElOS19T
SVpFKTsKLSAgICAgIH0KLQotICAgIC8qIFdoZW4gdGhlIG1pbmltdW0gaXMgZ3JlYXRlciB0aGFu
IHplcm8sIHdlIGhhdmUgdG8gcmVwbGljYXRlIHVwIHRvCi0gICAgbWludmFsLTEgdGltZXMsIHdp
dGggbm8gYWRkaXRpb25zIHJlcXVpcmVkIGluIHRoZSBjb3BpZXMuIFRoZW4sIGlmIHRoZXJlCi0g
ICAgaXMgYSBsaW1pdGVkIG1heGltdW0gd2UgaGF2ZSB0byByZXBsaWNhdGUgdXAgdG8gbWF4dmFs
LTEgdGltZXMgYWxsb3dpbmcKLSAgICBmb3IgYSBCUkFaRVJPIGl0ZW0gYmVmb3JlIGVhY2ggb3B0
aW9uYWwgY29weSBhbmQgbmVzdGluZyBicmFja2V0cyBmb3IgYWxsCi0gICAgYnV0IG9uZSBvZiB0
aGUgb3B0aW9uYWwgY29waWVzLiAqLwotCi0gICAgZWxzZQotICAgICAgewotICAgICAgbGVuZ3Ro
ICs9IChtaW4gLSAxKSAqIGR1cGxlbmd0aDsKLSAgICAgIGlmIChtYXggPiBtaW4pICAgLyogTmVl
ZCB0aGlzIHRlc3QgYXMgbWF4PS0xIG1lYW5zIG5vIGxpbWl0ICovCi0gICAgICAgIGxlbmd0aCAr
PSAobWF4IC0gbWluKSAqIChkdXBsZW5ndGggKyAzICsgMipMSU5LX1NJWkUpCi0gICAgICAgICAg
LSAoMiArIDIqTElOS19TSVpFKTsKLSAgICAgIH0KLQotICAgIC8qIEFsbG93IHNwYWNlIGZvciBv
bmNlIGJyYWNrZXRzIGZvciAicG9zc2Vzc2l2ZSBxdWFudGlmaWVyIiAqLwotCi0gICAgaWYgKHB0
ciArIDEgPCBwYXR0ZXJuRW5kICYmIHB0clsxXSA9PSAnKycpCi0gICAgICB7Ci0gICAgICBwdHIr
KzsKLSAgICAgIGxlbmd0aCArPSAyICsgMipMSU5LX1NJWkU7Ci0gICAgICB9Ci0gICAgY29udGlu
dWU7Ci0KLSAgICAvKiBOb24tc3BlY2lhbCBjaGFyYWN0ZXIuIEl0IHdvbid0IGJlIHNwYWNlIG9y
ICMgaW4gZXh0ZW5kZWQgbW9kZSwgc28gaXQgaXMKLSAgICBhbHdheXMgYSBnZW51aW5lIGNoYXJh
Y3Rlci4gSWYgd2UgYXJlIGluIGEgXFEuLi5cRSBzZXF1ZW5jZSwgY2hlY2sgZm9yIHRoZQotICAg
IGVuZDsgaWYgbm90LCB3ZSBoYXZlIGEgbGl0ZXJhbC4gKi8KLQotICAgIGRlZmF1bHQ6Ci0gICAg
Tk9STUFMX0NIQVI6Ci0KLSAgICBsZW5ndGggKz0gMjsgICAgICAgICAgLyogRm9yIGEgb25lLWJ5
dGUgY2hhcmFjdGVyICovCi0gICAgbGFzdGl0ZW1sZW5ndGggPSAxOyAgIC8qIERlZmF1bHQgbGVu
Z3RoIG9mIGxhc3QgaXRlbSBmb3IgcmVwZWF0cyAqLwotCi0gICAgLyogSW4gVVRGLTggbW9kZSwg
Y2hlY2sgZm9yIGFkZGl0aW9uYWwgYnl0ZXMuICovCi0KLSAgICBpZiAoYyA+IDEyNykKLSAgICAg
IHsKLSAgICAgICAgaWYgKElTX0xFQURJTkdfU1VSUk9HQVRFKGMpKQotICAgICAgICAgIHsKLSAg
ICAgICAgICBjID0gREVDT0RFX1NVUlJPR0FURV9QQUlSKGMsIHB0ciA8IHBhdHRlcm5FbmQgPyAq
cHRyIDogMCk7Ci0gICAgICAgICAgKytwdHI7Ci0gICAgICAgICAgfQotCi0gICAgICAgIHsKLSAg
ICAgICAgICBpbnQgaTsKLSAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgX3BjcmVfdXRmOF90YWJs
ZTFfc2l6ZTsgaSsrKQotICAgICAgICAgICAgaWYgKGMgPD0gX3BjcmVfdXRmOF90YWJsZTFbaV0p
IGJyZWFrOwotICAgICAgICAgIGxlbmd0aCArPSBpOwotICAgICAgICAgIGxhc3RpdGVtbGVuZ3Ro
ICs9IGk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgIGNvbnRpbnVlOwotICAgIH0KLSAgfQot
Ci1sZW5ndGggKz0gMiArIExJTktfU0laRTsgICAgLyogRm9yIGZpbmFsIEtFVCBhbmQgRU5EICov
Ci0KLWlmIChsZW5ndGggPiBNQVhfUEFUVEVSTl9TSVpFKQotICB7Ci0gIGVycm9yY29kZSA9IEVS
UjIwOwotICBnb3RvIFBDUkVfRUFSTFlfRVJST1JfUkVUVVJOOwotICB9Ci0KLS8qIENvbXB1dGUg
dGhlIHNpemUgb2YgZGF0YSBibG9jayBuZWVkZWQgYW5kIGdldCBpdCwgZWl0aGVyIGZyb20gbWFs
bG9jIG9yCi1leHRlcm5hbGx5IHByb3ZpZGVkIGZ1bmN0aW9uLiAqLwotCi1zaXplID0gbGVuZ3Ro
ICsgc2l6ZW9mKHJlYWxfcGNyZSkgKyBuYW1lX2NvdW50ICogKG1heF9uYW1lX3NpemUgKyAzKTsK
LXJlID0gKHJlYWxfcGNyZSAqKShwY3JlX21hbGxvYykoc2l6ZSk7Ci0KLWlmIChyZSA9PSBOVUxM
KQotICB7Ci0gIGVycm9yY29kZSA9IEVSUjIxOwotICBnb3RvIFBDUkVfRUFSTFlfRVJST1JfUkVU
VVJOOwotICB9Ci0KLS8qIFB1dCBpbiB0aGUgbWFnaWMgbnVtYmVyLCBhbmQgc2F2ZSB0aGUgc2l6
ZXMsIG9wdGlvbnMsIGFuZCBjaGFyYWN0ZXIgdGFibGUKLXBvaW50ZXIuIE5VTEwgaXMgdXNlZCBm
b3IgdGhlIGRlZmF1bHQgY2hhcmFjdGVyIHRhYmxlcy4gVGhlIG51bGxwYWQgZmllbGQgaXMgYXQK
LXRoZSBlbmQ7IGl0J3MgdGhlcmUgdG8gaGVscCBpbiB0aGUgY2FzZSB3aGVuIGEgcmVnZXggY29t
cGlsZWQgb24gYSBzeXN0ZW0gd2l0aAotNC1ieXRlIHBvaW50ZXJzIGlzIHJ1biBvbiBhbm90aGVy
IHdpdGggOC1ieXRlIHBvaW50ZXJzLiAqLwotCi1yZS0+c2l6ZSA9IChwY3JlX3VpbnQzMilzaXpl
OwotcmUtPm9wdGlvbnMgPSBvcHRpb25zOwotCi0vKiBUaGUgc3RhcnRpbmcgcG9pbnRzIG9mIHRo
ZSBuYW1lL251bWJlciB0cmFuc2xhdGlvbiB0YWJsZSBhbmQgb2YgdGhlIGNvZGUgYXJlCi1wYXNz
ZWQgYXJvdW5kIGluIHRoZSBjb21waWxlIGRhdGEgYmxvY2suICovCi0KLWNvZGVzdGFydCA9IChj
b25zdCB1c2NoYXIgKikocmUgKyAxKTsKLWNvbXBpbGVfYmxvY2suc3RhcnRfY29kZSA9IGNvZGVz
dGFydDsKLWNvbXBpbGVfYmxvY2suc3RhcnRfcGF0dGVybiA9IChjb25zdCBwY3JlX3VjaGFyICop
cGF0dGVybjsKLWNvbXBpbGVfYmxvY2sucmVxX3ZhcnlvcHQgPSAwOwotCi0vKiBTZXQgdXAgYSBz
dGFydGluZywgbm9uLWV4dHJhY3RpbmcgYnJhY2tldCwgdGhlbiBjb21waWxlIHRoZSBleHByZXNz
aW9uLiBPbgotZXJyb3IsIGVycm9yY29kZSB3aWxsIGJlIHNldCBub24temVybywgc28gd2UgZG9u
J3QgbmVlZCB0byBsb29rIGF0IHRoZSByZXN1bHQKLW9mIHRoZSBmdW5jdGlvbiBoZXJlLiAqLwot
Ci1wdHIgPSAoY29uc3QgcGNyZV91Y2hhciAqKXBhdHRlcm47Ci1jb2RlID0gKHVzY2hhciAqKWNv
ZGVzdGFydDsKLSpjb2RlID0gT1BfQlJBOwotYnJhY291bnQgPSAwOwotKHZvaWQpY29tcGlsZV9y
ZWdleChvcHRpb25zLCAmYnJhY291bnQsICZjb2RlLCAmcHRyLAotICBwYXR0ZXJuRW5kLAotICAm
ZXJyb3Jjb2RlLCAwLCAmZmlyc3RieXRlLCAmcmVxYnl0ZSwgJmNvbXBpbGVfYmxvY2spOwotcmUt
PnRvcF9icmFja2V0ID0gYnJhY291bnQ7Ci1yZS0+dG9wX2JhY2tyZWYgPSBjb21waWxlX2Jsb2Nr
LnRvcF9iYWNrcmVmOwotCi0vKiBJZiBub3QgcmVhY2hlZCBlbmQgb2YgcGF0dGVybiBvbiBzdWNj
ZXNzLCB0aGVyZSdzIGFuIGV4Y2VzcyBicmFja2V0LiAqLwotCi1pZiAoZXJyb3Jjb2RlID09IDAg
JiYgcHRyIDwgcGF0dGVybkVuZCkgZXJyb3Jjb2RlID0gRVJSMjI7Ci0KLS8qIEZpbGwgaW4gdGhl
IHRlcm1pbmF0aW5nIHN0YXRlIGFuZCBjaGVjayBmb3IgZGlzYXN0cm91cyBvdmVyZmxvdywgYnV0
Ci1pZiBkZWJ1Z2dpbmcsIGxlYXZlIHRoZSB0ZXN0IHRpbGwgYWZ0ZXIgdGhpbmdzIGFyZSBwcmlu
dGVkIG91dC4gKi8KLQotKmNvZGUrKyA9IE9QX0VORDsKLQotI2lmbmRlZiBERUJVRwotaWYgKGNv
ZGUgLSBjb2Rlc3RhcnQgPiBsZW5ndGgpIGVycm9yY29kZSA9IEVSUjIzOwotI2VuZGlmCi0KLS8q
IEdpdmUgYW4gZXJyb3IgaWYgdGhlcmUncyBiYWNrIHJlZmVyZW5jZSB0byBhIG5vbi1leGlzdGVu
dCBjYXB0dXJpbmcKLXN1YnBhdHRlcm4uICovCi0KLWlmIChyZS0+dG9wX2JhY2tyZWYgPiByZS0+
dG9wX2JyYWNrZXQpIGVycm9yY29kZSA9IEVSUjE1OwotCi0vKiBGYWlsZWQgdG8gY29tcGlsZSwg
b3IgZXJyb3Igd2hpbGUgcG9zdC1wcm9jZXNzaW5nICovCi0KLWlmIChlcnJvcmNvZGUgIT0gMCkK
LSAgewotICAocGNyZV9mcmVlKShyZSk7Ci0gIFBDUkVfRVJST1JfUkVUVVJOOgotICBQQ1JFX0VB
UkxZX0VSUk9SX1JFVFVSTjoKLSAgKmVycm9ycHRyID0gZXJyb3JfdGV4dHNbZXJyb3Jjb2RlXTsK
LSAgcmV0dXJuIE5VTEw7Ci0gIH0KLQotLyogSWYgdGhlIGFuY2hvcmVkIG9wdGlvbiB3YXMgbm90
IHBhc3NlZCwgc2V0IHRoZSBmbGFnIGlmIHdlIGNhbiBkZXRlcm1pbmUgdGhhdAotdGhlIHBhdHRl
cm4gaXMgYW5jaG9yZWQgYnkgdmlydHVlIG9mIF4gY2hhcmFjdGVycyBvciBcQSBvciBhbnl0aGlu
ZyBlbHNlIChzdWNoCi1hcyBzdGFydGluZyB3aXRoIC4qIHdoZW4gRE9UQUxMIGlzIHNldCkuCi0K
LU90aGVyd2lzZSwgaWYgd2Uga25vdyB3aGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgaGFzIHRvIGJl
LCBzYXZlIGl0LCBiZWNhdXNlIHRoYXQKLXNwZWVkcyB1cCB1bmFuY2hvcmVkIG1hdGNoZXMgbm8g
ZW5kLiBJZiBub3QsIHNlZSBpZiB3ZSBjYW4gc2V0IHRoZQotUENSRV9TVEFSVExJTkUgZmxhZy4g
VGhpcyBpcyBoZWxwZnVsIGZvciBtdWx0aWxpbmUgbWF0Y2hlcyB3aGVuIGFsbCBicmFuY2hlcwot
c3RhcnQgd2l0aCBeLiBhbmQgYWxzbyB3aGVuIGFsbCBicmFuY2hlcyBzdGFydCB3aXRoIC4qIGZv
ciBub24tRE9UQUxMIG1hdGNoZXMuCi0qLwotCi0gIHsKLSAgaW50IHRlbXBfb3B0aW9ucyA9IG9w
dGlvbnM7Ci0gIGlmIChpc19hbmNob3JlZChjb2Rlc3RhcnQsICZ0ZW1wX29wdGlvbnMsIDAsIGNv
bXBpbGVfYmxvY2suYmFja3JlZl9tYXApKQotICAgIHJlLT5vcHRpb25zIHw9IFBDUkVfQU5DSE9S
RUQ7Ci0gIGVsc2UKLSAgICB7Ci0gICAgaWYgKGZpcnN0Ynl0ZSA8IDApCi0gICAgICBmaXJzdGJ5
dGUgPSBmaW5kX2ZpcnN0YXNzZXJ0ZWRjaGFyKGNvZGVzdGFydCwgJnRlbXBfb3B0aW9ucywgRkFM
U0UpOwotICAgIGlmIChmaXJzdGJ5dGUgPj0gMCkgICAvKiBSZW1vdmUgY2FzZWxlc3MgZmxhZyBm
b3Igbm9uLWNhc2VhYmxlIGNoYXJzICovCi0gICAgICB7Ci0gICAgICBpbnQgY2ggPSBmaXJzdGJ5
dGUgJiAyNTU7Ci0gICAgICBpZiAoY2ggPCAxMjcpCi0gICAgICB7IC8qIFN0cmFuZ2UgaW5kZW50
YXRpb24gdG8gYWlkIGluIG1lcmdpbmcuICovCi0gICAgICByZS0+Zmlyc3RfYnl0ZSA9ICgoZmly
c3RieXRlICYgUkVRX0NBU0VMRVNTKSAhPSAwICYmCi0gICAgICAgICBjb21waWxlX2Jsb2NrLmZj
Y1tjaF0gPT0gY2gpPyBjaCA6IGZpcnN0Ynl0ZTsKLSAgICAgIHJlLT5vcHRpb25zIHw9IFBDUkVf
RklSU1RTRVQ7Ci0gICAgICB9Ci0gICAgICB9Ci0gICAgZWxzZSBpZiAoaXNfc3RhcnRsaW5lKGNv
ZGVzdGFydCwgMCwgY29tcGlsZV9ibG9jay5iYWNrcmVmX21hcCkpCi0gICAgICByZS0+b3B0aW9u
cyB8PSBQQ1JFX1NUQVJUTElORTsKLSAgICB9Ci0gIH0KLQotLyogRm9yIGFuIGFuY2hvcmVkIHBh
dHRlcm4sIHdlIHVzZSB0aGUgInJlcXVpcmVkIGJ5dGUiIG9ubHkgaWYgaXQgZm9sbG93cyBhCi12
YXJpYWJsZSBsZW5ndGggaXRlbSBpbiB0aGUgcmVnZXguIFJlbW92ZSB0aGUgY2FzZWxlc3MgZmxh
ZyBmb3Igbm9uLWNhc2VhYmxlCi1ieXRlcy4gKi8KLQotaWYgKHJlcWJ5dGUgPj0gMCAmJgotICAg
ICAoKHJlLT5vcHRpb25zICYgUENSRV9BTkNIT1JFRCkgPT0gMCB8fCAocmVxYnl0ZSAmIFJFUV9W
QVJZKSAhPSAwKSkKLSAgewotICBpbnQgY2ggPSByZXFieXRlICYgMjU1OwotICBpZiAoY2ggPCAx
MjcpCi0gIHsgLyogU3RyYW5nZSBpbmRlbnRhdGlvbiB0byBhaWQgaW4gbWVyZ2luZy4gKi8KLSAg
cmUtPnJlcV9ieXRlID0gKChyZXFieXRlICYgUkVRX0NBU0VMRVNTKSAhPSAwICYmCi0gICAgICBj
b21waWxlX2Jsb2NrLmZjY1tjaF0gPT0gY2gpPyAocmVxYnl0ZSAmIH5SRVFfQ0FTRUxFU1MpIDog
cmVxYnl0ZTsKLSAgcmUtPm9wdGlvbnMgfD0gUENSRV9SRVFDSFNFVDsKLSAgfQotICB9Ci0KLS8q
IFByaW50IG91dCB0aGUgY29tcGlsZWQgZGF0YSBpZiBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC4gVGhp
cyBpcyBuZXZlciB0aGUKLWNhc2Ugd2hlbiBidWlsZGluZyBhIHByb2R1Y3Rpb24gbGlicmFyeS4g
Ki8KLQotI2lmZGVmIERFQlVHCi0KLXByaW50ZigiTGVuZ3RoID0gJWQgdG9wX2JyYWNrZXQgPSAl
ZCB0b3BfYmFja3JlZiA9ICVkXG4iLAotICBsZW5ndGgsIHJlLT50b3BfYnJhY2tldCwgcmUtPnRv
cF9iYWNrcmVmKTsKLQotaWYgKHJlLT5vcHRpb25zICE9IDApCi0gIHsKLSAgcHJpbnRmKCIlcyVz
JXNcbiIsCi0gICAgKChyZS0+b3B0aW9ucyAmIFBDUkVfQU5DSE9SRUQpICE9IDApPyAiYW5jaG9y
ZWQgIiA6ICIiLAotICAgICgocmUtPm9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKT8gImNh
c2VsZXNzICIgOiAiIiwKLSAgICAoKHJlLT5vcHRpb25zICYgUENSRV9NVUxUSUxJTkUpICE9IDAp
PyAibXVsdGlsaW5lICIgOiAiIik7Ci0gIH0KLQotaWYgKChyZS0+b3B0aW9ucyAmIFBDUkVfRklS
U1RTRVQpICE9IDApCi0gIHsKLSAgaW50IGNoID0gcmUtPmZpcnN0X2J5dGUgJiAyNTU7Ci0gIGNv
bnN0IGNoYXIgKmNhc2VsZXNzID0gKChyZS0+Zmlyc3RfYnl0ZSAmIFJFUV9DQVNFTEVTUykgPT0g
MCk/Ci0gICAgIiIgOiAiIChjYXNlbGVzcykiOwotICBpZiAoaXNwcmludChjaCkpIHByaW50Zigi
Rmlyc3QgY2hhciA9ICVjJXNcbiIsIGNoLCBjYXNlbGVzcyk7Ci0gICAgZWxzZSBwcmludGYoIkZp
cnN0IGNoYXIgPSBcXHglMDJ4JXNcbiIsIGNoLCBjYXNlbGVzcyk7Ci0gIH0KLQotaWYgKChyZS0+
b3B0aW9ucyAmIFBDUkVfUkVRQ0hTRVQpICE9IDApCi0gIHsKLSAgaW50IGNoID0gcmUtPnJlcV9i
eXRlICYgMjU1OwotICBjb25zdCBjaGFyICpjYXNlbGVzcyA9ICgocmUtPnJlcV9ieXRlICYgUkVR
X0NBU0VMRVNTKSA9PSAwKT8KLSAgICAiIiA6ICIgKGNhc2VsZXNzKSI7Ci0gIGlmIChpc3ByaW50
KGNoKSkgcHJpbnRmKCJSZXEgY2hhciA9ICVjJXNcbiIsIGNoLCBjYXNlbGVzcyk7Ci0gICAgZWxz
ZSBwcmludGYoIlJlcSBjaGFyID0gXFx4JTAyeCVzXG4iLCBjaCwgY2FzZWxlc3MpOwotICB9Ci0K
LXBjcmVfcHJpbnRpbnQocmUsIHN0ZG91dCk7Ci0KLS8qIFRoaXMgY2hlY2sgaXMgZG9uZSBoZXJl
IGluIHRoZSBkZWJ1Z2dpbmcgY2FzZSBzbyB0aGF0IHRoZSBjb2RlIHRoYXQKLXdhcyBjb21waWxl
ZCBjYW4gYmUgc2Vlbi4gKi8KLQotaWYgKGNvZGUgLSBjb2Rlc3RhcnQgPiBsZW5ndGgpCi0gIHsK
LSAgKHBjcmVfZnJlZSkocmUpOwotICAqZXJyb3JwdHIgPSBlcnJvcl90ZXh0c1tFUlIyM107Ci0g
IHJldHVybiBOVUxMOwotICB9Ci0jZW5kaWYKLQotaWYgKG51bVN1YnBhdHRlcm5zKQotICAgICpu
dW1TdWJwYXR0ZXJucyA9IHJlLT50b3BfYnJhY2tldDsKLXJldHVybiAocGNyZSAqKXJlOwotfQot
Ci12b2lkIGpzUmVnRXhwRnJlZShKU1JlZ0V4cCogcmUpCi17Ci0gICAgcGNyZV9mcmVlKHJlKTsK
LX0KLQotLyogRW5kIG9mIHBjcmVfY29tcGlsZS5jICovCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfY29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX2NvbXBpbGUuY3BwCShyZXZpc2lvbiAyNzY0OCkJKGZyb20gSmF2YVNjcmlwdENvcmUvcGNy
ZS9wY3JlX2NvbXBpbGUuYzoyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21w
aWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzNjQgQEAKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgUGVybC1Db21wYXRp
YmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVu
Y3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBz
ZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUg
bGFuZ3VhZ2UuCisKKyAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6
ZWwKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1i
cmlkZ2UKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDA0LCAyMDA1IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorCisgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAgICAg
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKK0FORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKK0lNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCitBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKK0xJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKK0NPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCitTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKK0lOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCitDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyovCisKKworLyogVGhpcyBtb2R1bGUgY29udGFpbnMgdGhlIGV4dGVybmFs
IGZ1bmN0aW9uIHBjcmVfY29tcGlsZSgpLCBhbG9uZyB3aXRoCitzdXBwb3J0aW5nIGludGVybmFs
IGZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgdXNlZCBieSBvdGhlciBtb2R1bGVzLiAqLworCisKKyNp
bmNsdWRlICJwY3JlX2ludGVybmFsLmgiCisKKworLyogV0FSTklORzogVGhlc2UgbWFjcm9zIGV2
YWx1YXRlIHRoZWlyIHBhcmFtZXRlcnMgbW9yZSB0aGFuIG9uY2UuICovCisjZGVmaW5lIERJR0lU
QUIoeCkgKCh4KSA8IDEyOCA/IGRpZ2l0YWJbKHgpXSA6IDApCisKKworLyogV2hlbiBERUJVRyBp
cyBkZWZpbmVkLCB3ZSBuZWVkIHRoZSBwY3JlX3ByaW50aW50KCkgZnVuY3Rpb24sIHdoaWNoIGlz
IGFsc28KK3VzZWQgYnkgcGNyZXRlc3QuIERFQlVHIGlzIG5vdCBkZWZpbmVkIHdoZW4gYnVpbGRp
bmcgYSBwcm9kdWN0aW9uIGxpYnJhcnkuICovCisKKyNpZmRlZiBERUJVRworI2luY2x1ZGUgInBj
cmVfcHJpbnRpbnQuc3JjIgorI2VuZGlmCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgIENvZGUgcGFyYW1ldGVycyBhbmQgc3Rh
dGljIHRhYmxlcyAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCisKKy8qIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBuZXN0
ZWQgYnJhY2tldCBzdGFja3MgYXQgY29tcGlsZSB0aW1lLiBUaGlzCithcHBsaWVzIHRvIHRoZSBu
ZXN0aW5nIG9mIGFsbCBraW5kcyBvZiBwYXJlbnRoZXNlcy4gSXQgZG9lcyBub3QgbGltaXQKK3Vu
LW5lc3RlZCwgbm9uLWNhcHR1cmluZyBwYXJlbnRoZXNlcy4gVGhpcyBudW1iZXIgY2FuIGJlIG1h
ZGUgYmlnZ2VyIGlmCituZWNlc3NhcnkgLSBpdCBpcyB1c2VkIHRvIGRpbWVuc2lvbiBvbmUgaW50
IGFuZCBvbmUgdW5zaWduZWQgY2hhciB2ZWN0b3IgYXQKK2NvbXBpbGUgdGltZS4gKi8KKworI2Rl
ZmluZSBCUkFTVEFDS19TSVpFIDIwMAorCisvKiBUYWJsZSBmb3IgaGFuZGxpbmcgZXNjYXBlZCBj
aGFyYWN0ZXJzIGluIHRoZSByYW5nZSAnMCctJ3onLiBQb3NpdGl2ZSByZXR1cm5zCithcmUgc2lt
cGxlIGRhdGEgdmFsdWVzOyBuZWdhdGl2ZSB2YWx1ZXMgYXJlIGZvciBzcGVjaWFsIHRoaW5ncyBs
aWtlIFxkIGFuZCBzbworb24uIFplcm8gbWVhbnMgZnVydGhlciBwcm9jZXNzaW5nIGlzIG5lZWRl
ZCAoZm9yIHRoaW5ncyBsaWtlIFx4KSwgb3IgdGhlIGVzY2FwZQoraXMgaW52YWxpZC4gKi8KKwor
c3RhdGljIGNvbnN0IHNob3J0IGludCBlc2NhcGVzW10gPSB7CisgICAgIDAsICAgICAgMCwgICAg
ICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAvKiAwIC0gNyAq
LworICAgICAwLCAgICAgIDAsICAgICc6JywgICAgJzsnLCAgICAnPCcsICAgICc9JywgICAgJz4n
LCAgICAnPycsICAgLyogOCAtID8gKi8KKyAgICdAJywgICAgICAwLCAtRVNDX0IsICAgICAgMCwg
LUVTQ19ELCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgIC8qIEAgLSBHICovCisgICAgIDAsICAg
ICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAv
KiBIIC0gTyAqLworICAgICAwLCAgICAgIDAsICAgICAgMCwgLUVTQ19TLCAgICAgIDAsICAgICAg
MCwgICAgICAwLCAtRVNDX1csICAgLyogUCAtIFcgKi8KKyAgICAgMCwgICAgICAwLCAgICAgIDAs
ICAgICdbJywgICAnXFwnLCAgICAnXScsICAgICdeJywgICAgJ18nLCAgIC8qIFggLSBfICovCisg
ICAnYCcsICAgICAgNywgLUVTQ19iLCAgICAgIDAsIC1FU0NfZCwgICAgICAwLCAgICdcZicsICAg
ICAgMCwgICAvKiBgIC0gZyAqLworICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAg
IDAsICAgICAgMCwgICAnXG4nLCAgICAgIDAsICAgLyogaCAtIG8gKi8KKyAgICAgMCwgICAgICAw
LCAgICAnXHInLCAtRVNDX3MsICAgJ1x0JywgICAgICAwLCAgJ1x2JywgLUVTQ193LCAgIC8qIHAg
LSB3ICovCisgICAgIDAsICAgICAgMCwgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiB4IC0geiAqLworfTsKKworCisvKiBUaGUgdGV4dHMgb2YgY29t
cGlsZS10aW1lIGVycm9yIG1lc3NhZ2VzLiBUaGVzZSBhcmUgImNoYXIgKiIgYmVjYXVzZSB0aGV5
CithcmUgcGFzc2VkIHRvIHRoZSBvdXRzaWRlIHdvcmxkLiAqLworCitzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGVycm9yX3RleHRzW10gPSB7CisgICJubyBlcnJvciIsCisgICJcXCBhdCBlbmQg
b2YgcGF0dGVybiIsCisgICJcXGMgYXQgZW5kIG9mIHBhdHRlcm4iLAorICAidW5yZWNvZ25pemVk
IGNoYXJhY3RlciBmb2xsb3dzIFxcIiwKKyAgIm51bWJlcnMgb3V0IG9mIG9yZGVyIGluIHt9IHF1
YW50aWZpZXIiLAorICAvKiA1ICovCisgICJudW1iZXIgdG9vIGJpZyBpbiB7fSBxdWFudGlmaWVy
IiwKKyAgIm1pc3NpbmcgdGVybWluYXRpbmcgXSBmb3IgY2hhcmFjdGVyIGNsYXNzIiwKKyAgImlu
dmFsaWQgZXNjYXBlIHNlcXVlbmNlIGluIGNoYXJhY3RlciBjbGFzcyIsCisgICJyYW5nZSBvdXQg
b2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNzIiwKKyAgIm5vdGhpbmcgdG8gcmVwZWF0IiwKKyAg
LyogMTAgKi8KKyAgIm9wZXJhbmQgb2YgdW5saW1pdGVkIHJlcGVhdCBjb3VsZCBtYXRjaCB0aGUg
ZW1wdHkgc3RyaW5nIiwKKyAgImludGVybmFsIGVycm9yOiB1bmV4cGVjdGVkIHJlcGVhdCIsCisg
ICJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/IiwKKyAgIlBPU0lYIG5hbWVkIGNsYXNz
ZXMgYXJlIHN1cHBvcnRlZCBvbmx5IHdpdGhpbiBhIGNsYXNzIiwKKyAgIm1pc3NpbmcgKSIsCisg
IC8qIDE1ICovCisgICJyZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IHN1YnBhdHRlcm4iLAorICAi
ZXJyb2Zmc2V0IHBhc3NlZCBhcyBOVUxMIiwKKyAgInVua25vd24gb3B0aW9uIGJpdChzKSBzZXQi
LAorICAibWlzc2luZyApIGFmdGVyIGNvbW1lbnQiLAorICAicGFyZW50aGVzZXMgbmVzdGVkIHRv
byBkZWVwbHkiLAorICAvKiAyMCAqLworICAicmVndWxhciBleHByZXNzaW9uIHRvbyBsYXJnZSIs
CisgICJmYWlsZWQgdG8gZ2V0IG1lbW9yeSIsCisgICJ1bm1hdGNoZWQgcGFyZW50aGVzZXMiLAor
ICAiaW50ZXJuYWwgZXJyb3I6IGNvZGUgb3ZlcmZsb3ciLAorICAidW5yZWNvZ25pemVkIGNoYXJh
Y3RlciBhZnRlciAoPzwiLAorICAvKiAyNSAqLworICAibG9va2JlaGluZCBhc3NlcnRpb24gaXMg
bm90IGZpeGVkIGxlbmd0aCIsCisgICJtYWxmb3JtZWQgbnVtYmVyIGFmdGVyICg/KCIsCisgICJj
b25kaXRpb25hbCBncm91cCBjb250YWlucyBtb3JlIHRoYW4gdHdvIGJyYW5jaGVzIiwKKyAgImFz
c2VydGlvbiBleHBlY3RlZCBhZnRlciAoPygiLAorICAiKD9SIG9yICg/ZGlnaXRzIG11c3QgYmUg
Zm9sbG93ZWQgYnkgKSIsCisgIC8qIDMwICovCisgICJ1bmtub3duIFBPU0lYIGNsYXNzIG5hbWUi
LAorICAiUE9TSVggY29sbGF0aW5nIGVsZW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkIiwKKyAgInRo
aXMgdmVyc2lvbiBvZiBQQ1JFIGlzIG5vdCBjb21waWxlZCB3aXRoIFBDUkVfVVRGOCBzdXBwb3J0
IiwKKyAgInNwYXJlIGVycm9yIiwKKyAgImNoYXJhY3RlciB2YWx1ZSBpbiBcXHh7Li4ufSBzZXF1
ZW5jZSBpcyB0b28gbGFyZ2UiLAorICAvKiAzNSAqLworICAiaW52YWxpZCBjb25kaXRpb24gKD8o
MCkiLAorICAiXFxDIG5vdCBhbGxvd2VkIGluIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIiwKKyAgIlBD
UkUgZG9lcyBub3Qgc3VwcG9ydCBcXEwsIFxcbCwgXFxOLCBcXFUsIG9yIFxcdSIsCisgICJudW1i
ZXIgYWZ0ZXIgKD9DIGlzID4gMjU1IiwKKyAgImNsb3NpbmcgKSBmb3IgKD9DIGV4cGVjdGVkIiwK
KyAgLyogNDAgKi8KKyAgInJlY3Vyc2l2ZSBjYWxsIGNvdWxkIGxvb3AgaW5kZWZpbml0ZWx5IiwK
KyAgInVucmVjb2duaXplZCBjaGFyYWN0ZXIgYWZ0ZXIgKD9QIiwKKyAgInN5bnRheCBlcnJvciBh
ZnRlciAoP1AiLAorICAidHdvIG5hbWVkIGdyb3VwcyBoYXZlIHRoZSBzYW1lIG5hbWUiLAorICAi
aW52YWxpZCBVVEYtMTYgc3RyaW5nIiwKKyAgLyogNDUgKi8KKyAgInN1cHBvcnQgZm9yIFxcUCwg
XFxwLCBhbmQgXFxYIGhhcyBub3QgYmVlbiBjb21waWxlZCIsCisgICJtYWxmb3JtZWQgXFxQIG9y
IFxccCBzZXF1ZW5jZSIsCisgICJ1bmtub3duIHByb3BlcnR5IG5hbWUgYWZ0ZXIgXFxQIG9yIFxc
cCIKK307CisKKworLyogVGFibGUgdG8gaWRlbnRpZnkgZGlnaXRzIGFuZCBoZXggZGlnaXRzLiBU
aGlzIGlzIHVzZWQgd2hlbiBjb21waWxpbmcKK3BhdHRlcm5zLiBOb3RlIHRoYXQgdGhlIHRhYmxl
cyBpbiBjaGFydGFibGVzIGFyZSBkZXBlbmRlbnQgb24gdGhlIGxvY2FsZSwgYW5kCittYXkgbWFy
ayBhcmJpdHJhcnkgY2hhcmFjdGVycyBhcyBkaWdpdHMgLSBidXQgdGhlIFBDUkUgY29tcGlsaW5n
IGNvZGUgZXhwZWN0cwordG8gaGFuZGxlIG9ubHkgMC05LCBhLXosIGFuZCBBLVogYXMgZGlnaXRz
IHdoZW4gY29tcGlsaW5nLiBUaGF0IGlzIHdoeSB3ZSBoYXZlCithIHByaXZhdGUgdGFibGUgaGVy
ZS4gSXQgY29zdHMgMjU2IGJ5dGVzLCBidXQgaXQgaXMgYSBsb3QgZmFzdGVyIHRoYW4gZG9pbmcK
K2NoYXJhY3RlciB2YWx1ZSB0ZXN0cyAoYXQgbGVhc3QgaW4gc29tZSBzaW1wbGUgY2FzZXMgSSB0
aW1lZCksIGFuZCBpbiBzb21lCithcHBsaWNhdGlvbnMgb25lIHdhbnRzIFBDUkUgdG8gY29tcGls
ZSBlZmZpY2llbnRseSBhcyB3ZWxsIGFzIG1hdGNoCitlZmZpY2llbnRseS4KKworRm9yIGNvbnZl
bmllbmNlLCB3ZSB1c2UgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGFzIGluIGNoYXJ0YWJsZXM6
CisKKyAgMHgwNCAgIGRlY2ltYWwgZGlnaXQKKyAgMHgwOCAgIGhleGFkZWNpbWFsIGRpZ2l0CisK
K1RoZW4gd2UgY2FuIHVzZSBjdHlwZV9kaWdpdCBhbmQgY3R5cGVfeGRpZ2l0IGluIHRoZSBjb2Rl
LiAqLworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkaWdpdGFiW10gPQorICB7CisgIDB4
MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICAwLSAgNyAqLworICAw
eDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAgOC0gMTUgKi8KKyAg
MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgMTYtIDIzICovCisg
IDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDI0LSAzMSAqLwor
ICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAgIC0gJyAgKi8K
KyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgKCAtIC8gICov
CisgIDB4MGMsMHgwYywweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsMHgwYywgLyogIDAgLSA3ICAq
LworICAweDBjLDB4MGMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICA4IC0gPyAg
Ki8KKyAgMHgwMCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDAwLCAvKiAgQCAtIEcg
ICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIEggLSBP
ICAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBQIC0g
VyAgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgWCAt
IF8gICovCisgIDB4MDAsMHgwOCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwMCwgLyogIGAg
LSBnICAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBo
IC0gbyAgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAg
cCAtIHcgICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyog
IHggLTEyNyAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8q
IDEyOC0xMzUgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAv
KiAxMzYtMTQzICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwg
LyogMTQ0LTE1MSAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
IC8qIDE1Mi0xNTkgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LCAvKiAxNjAtMTY3ICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwgLyogMTY4LTE3NSAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsIC8qIDE3Ni0xODMgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLCAvKiAxODQtMTkxICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwgLyogMTkyLTE5OSAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LDB4MDAsIC8qIDIwMC0yMDcgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwweDAwLCAvKiAyMDgtMjE1ICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4
MDAsMHgwMCwgLyogMjE2LTIyMyAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsIC8qIDIyNC0yMzEgKi8KKyAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwweDAwLCAvKiAyMzItMjM5ICovCisgIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw
LDB4MDAsMHgwMCwgLyogMjQwLTI0NyAqLworICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgw
MCwweDAwLDB4MDB9Oy8qIDI0OC0yNTUgKi8KKworCisvKiBEZWZpbml0aW9uIHRvIGFsbG93IG11
dHVhbCByZWN1cnNpb24gKi8KKworc3RhdGljIEJPT0wKKyAgY29tcGlsZV9yZWdleChpbnQsIGlu
dCAqLCB1c2NoYXIgKiosIGNvbnN0IHBjcmVfdWNoYXIgKiosIGNvbnN0IHBjcmVfdWNoYXIgKiwg
aW50ICosIGludCwKKyAgICBpbnQgKiwgaW50ICosIGNvbXBpbGVfZGF0YSAqKTsKKworCisKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAg
ICAgICAgSGFuZGxlIGVzY2FwZXMgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgd2hlbiBhIFwgaGFzIGJlZW4gZW5jb3VudGVyZWQuIEl0IGVpdGhlciByZXR1
cm5zIGEKK3Bvc2l0aXZlIHZhbHVlIGZvciBhIHNpbXBsZSBlc2NhcGUgc3VjaCBhcyBcbiwgb3Ig
YSBuZWdhdGl2ZSB2YWx1ZSB3aGljaAorZW5jb2RlcyBvbmUgb2YgdGhlIG1vcmUgY29tcGxpY2F0
ZWQgdGhpbmdzIHN1Y2ggYXMgXGQuIFdoZW4gVVRGLTggaXMgZW5hYmxlZCwKK2EgcG9zaXRpdmUg
dmFsdWUgZ3JlYXRlciB0aGFuIDI1NSBtYXkgYmUgcmV0dXJuZWQuIE9uIGVudHJ5LCBwdHIgaXMg
cG9pbnRpbmcgYXQKK3RoZSBcLiBPbiBleGl0LCBpdCBpcyBvbiB0aGUgZmluYWwgY2hhcmFjdGVy
IG9mIHRoZSBlc2NhcGUgc2VxdWVuY2UuCisKK0FyZ3VtZW50czoKKyAgcHRycHRyICAgICAgICAg
cG9pbnRzIHRvIHRoZSBwYXR0ZXJuIHBvc2l0aW9uIHBvaW50ZXIKKyAgZXJyb3Jjb2RlcHRyICAg
cG9pbnRzIHRvIHRoZSBlcnJvcmNvZGUgdmFyaWFibGUKKyAgYnJhY291bnQgICAgICAgbnVtYmVy
IG9mIHByZXZpb3VzIGV4dHJhY3RpbmcgYnJhY2tldHMKKyAgb3B0aW9ucyAgICAgICAgdGhlIG9w
dGlvbnMgYml0cworICBpc2NsYXNzICAgICAgICBUUlVFIGlmIGluc2lkZSBhIGNoYXJhY3RlciBj
bGFzcworCitSZXR1cm5zOiAgICAgICAgIHplcm8gb3IgcG9zaXRpdmUgPT4gYSBkYXRhIGNoYXJh
Y3RlcgorICAgICAgICAgICAgICAgICBuZWdhdGl2ZSA9PiBhIHNwZWNpYWwgZXNjYXBlIHNlcXVl
bmNlCisgICAgICAgICAgICAgICAgIG9uIGVycm9yLCBlcnJvcnB0ciBpcyBzZXQKKyovCisKK3N0
YXRpYyBpbnQKK2NoZWNrX2VzY2FwZShjb25zdCBwY3JlX3VjaGFyICoqcHRycHRyLCBjb25zdCBw
Y3JlX3VjaGFyICpwYXR0ZXJuRW5kLCBpbnQgKmVycm9yY29kZXB0ciwgaW50IGJyYWNvdW50LAor
ICBCT09MIGlzY2xhc3MpCit7Citjb25zdCBwY3JlX3VjaGFyICpwdHIgPSAqcHRycHRyICsgMTsK
K2ludCBjLCBpOworCisvKiBJZiBiYWNrc2xhc2ggaXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0dGVy
biwgaXQncyBhbiBlcnJvci4gKi8KK2lmIChwdHIgPT0gcGF0dGVybkVuZCkgeworICAgICplcnJv
cmNvZGVwdHIgPSBFUlIxOworICAgICpwdHJwdHIgPSBwdHI7CisgICAgcmV0dXJuIDA7Cit9CisK
K2MgPSAqcHRyOworCitpZiAoMCkgeyB9IC8qIE1hdGNoZXMgd2l0aCBlbHNlIGJlbG93OyB0byBt
YWtlIG1lcmdpbmcgZWFzaWVyLiAqLworCisvKiBOb24tYWxwaGFtZXJpY3MgYXJlIGxpdGVyYWxz
LiBGb3IgZGlnaXRzIG9yIGxldHRlcnMsIGRvIGFuIGluaXRpYWwgbG9va3VwIGluCithIHRhYmxl
LiBBIG5vbi16ZXJvIHJlc3VsdCBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW1t
ZWRpYXRlbHkuCitPdGhlcndpc2UgZnVydGhlciBwcm9jZXNzaW5nIG1heSBiZSByZXF1aXJlZC4g
Ki8KKworZWxzZSBpZiAoYyA8ICcwJyB8fCBjID4gJ3onKSB7fSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIE5vdCBhbHBoYW1lcmljICovCitlbHNlIGlmICgoaSA9IGVzY2FwZXNbYyAtICcw
J10pICE9IDApIGMgPSBpOworCisvKiBFc2NhcGVzIHRoYXQgbmVlZCBmdXJ0aGVyIHByb2Nlc3Np
bmcsIG9yIGFyZSBpbGxlZ2FsLiAqLworCitlbHNlCisgIHsKKyAgY29uc3QgcGNyZV91Y2hhciAq
b2xkcHRyOworICBzd2l0Y2ggKGMpCisgICAgeworICAgIC8qIEEgbnVtYmVyIG9mIFBlcmwgZXNj
YXBlcyBhcmUgbm90IGhhbmRsZWQgYnkgUENSRS4gV2UgZ2l2ZSBhbiBleHBsaWNpdAorICAgIGVy
cm9yLiAqLworCisgICAgLyogVGhlIGhhbmRsaW5nIG9mIGVzY2FwZSBzZXF1ZW5jZXMgY29uc2lz
dGluZyBvZiBhIHN0cmluZyBvZiBkaWdpdHMKKyAgICBzdGFydGluZyB3aXRoIG9uZSB0aGF0IGlz
IG5vdCB6ZXJvIGlzIG5vdCBzdHJhaWdodGZvcndhcmQuIEJ5IGV4cGVyaW1lbnQsCisgICAgdGhl
IHdheSBQZXJsIHdvcmtzIHNlZW1zIHRvIGJlIGFzIGZvbGxvd3M6CisKKyAgICBPdXRzaWRlIGEg
Y2hhcmFjdGVyIGNsYXNzLCB0aGUgZGlnaXRzIGFyZSByZWFkIGFzIGEgZGVjaW1hbCBudW1iZXIu
IElmIHRoZQorICAgIG51bWJlciBpcyBsZXNzIHRoYW4gMTAsIG9yIGlmIHRoZXJlIGFyZSB0aGF0
IG1hbnkgcHJldmlvdXMgZXh0cmFjdGluZworICAgIGxlZnQgYnJhY2tldHMsIHRoZW4gaXQgaXMg
YSBiYWNrIHJlZmVyZW5jZS4gT3RoZXJ3aXNlLCB1cCB0byB0aHJlZSBvY3RhbAorICAgIGRpZ2l0
cyBhcmUgcmVhZCB0byBmb3JtIGFuIGVzY2FwZWQgYnl0ZS4gVGh1cyBcMTIzIGlzIGxpa2VseSB0
byBiZSBvY3RhbAorICAgIDEyMyAoY2YgXDAxMjMsIHdoaWNoIGlzIG9jdGFsIDAxMiBmb2xsb3dl
ZCBieSB0aGUgbGl0ZXJhbCAzKS4gSWYgdGhlIG9jdGFsCisgICAgdmFsdWUgaXMgZ3JlYXRlciB0
aGFuIDM3NywgdGhlIGxlYXN0IHNpZ25pZmljYW50IDggYml0cyBhcmUgdGFrZW4uIEluc2lkZSBh
CisgICAgY2hhcmFjdGVyIGNsYXNzLCBcIGZvbGxvd2VkIGJ5IGEgZGlnaXQgaXMgYWx3YXlzIGFu
IG9jdGFsIG51bWJlci4gKi8KKworICAgIGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNh
c2UgJzQnOiBjYXNlICc1JzoKKyAgICBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNl
ICc5JzoKKworICAgIGlmICghaXNjbGFzcykKKyAgICAgIHsKKyAgICAgIG9sZHB0ciA9IHB0cjsK
KyAgICAgIGMgLT0gJzAnOworICAgICAgd2hpbGUgKHB0ciArIDEgPCBwYXR0ZXJuRW5kICYmIChE
SUdJVEFCKHB0clsxXSkgJiBjdHlwZV9kaWdpdCkgIT0gMCkKKyAgICAgICAgYyA9IGMgKiAxMCAr
ICooKytwdHIpIC0gJzAnOworICAgICAgaWYgKGMgPCAxMCB8fCBjIDw9IGJyYWNvdW50KQorICAg
ICAgICB7CisgICAgICAgIGMgPSAtKEVTQ19SRUYgKyBjKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgIHB0ciA9IG9sZHB0cjsgICAgICAvKiBQdXQgdGhlIHBvaW50ZXIgYmFjayBh
bmQgZmFsbCB0aHJvdWdoICovCisgICAgICB9CisKKyAgICAvKiBIYW5kbGUgYW4gb2N0YWwgbnVt
YmVyIGZvbGxvd2luZyBcLiBJZiB0aGUgZmlyc3QgZGlnaXQgaXMgOCBvciA5LCBQZXJsCisgICAg
Z2VuZXJhdGVzIGEgYmluYXJ5IHplcm8gYnl0ZSBhbmQgdHJlYXRzIHRoZSBkaWdpdCBhcyBhIGZv
bGxvd2luZyBsaXRlcmFsLgorICAgIFRodXMgd2UgaGF2ZSB0byBwdWxsIGJhY2sgdGhlIHBvaW50
ZXIgYnkgb25lLiAqLworCisgICAgaWYgKChjID0gKnB0cikgPj0gJzgnKQorICAgICAgeworICAg
ICAgcHRyLS07CisgICAgICBjID0gMDsKKyAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgLyog
XDAgYWx3YXlzIHN0YXJ0cyBhbiBvY3RhbCBudW1iZXIsIGJ1dCB3ZSBtYXkgZHJvcCB0aHJvdWdo
IHRvIGhlcmUgd2l0aCBhCisgICAgbGFyZ2VyIGZpcnN0IG9jdGFsIGRpZ2l0LiAqLworCisgICAg
Y2FzZSAnMCc6CisgICAgYyAtPSAnMCc7CisgICAgd2hpbGUgKGkrKyA8IDIgJiYgcHRyICsgMSA8
IHBhdHRlcm5FbmQgJiYgcHRyWzFdID49ICcwJyAmJiBwdHJbMV0gPD0gJzcnKQorICAgICAgICBj
ID0gYyAqIDggKyAqKCsrcHRyKSAtICcwJzsKKyAgICBjICY9IDI1NTsgICAgIC8qIFRha2UgbGVh
c3Qgc2lnbmlmaWNhbnQgOCBiaXRzICovCisgICAgYnJlYWs7CisKKyAgICAvKiBceCBpcyBjb21w
bGljYXRlZC4gXHh7ZGRkfSBpcyBhIGNoYXJhY3RlciBudW1iZXIgd2hpY2ggY2FuIGJlIGdyZWF0
ZXIKKyAgICB0aGFuIDB4ZmYgaW4gdXRmOCBtb2RlLCBidXQgb25seSBpZiB0aGUgZGRkIGFyZSBo
ZXggZGlnaXRzLiBJZiBub3QsIHsgaXMKKyAgICB0cmVhdGVkIGFzIGEgZGF0YSBjaGFyYWN0ZXIu
ICovCisKKyAgICBjYXNlICd4JzoKKyAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgcHRy
WzFdID09ICd7JykKKyAgICAgIHsKKyAgICAgIGNvbnN0IHBjcmVfdWNoYXIgKnB0ID0gcHRyICsg
MjsKKyAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgIGMgPSAwOworICAgICAgd2hpbGUgKHB0
IDwgcGF0dGVybkVuZCAmJiAoRElHSVRBQigqcHQpICYgY3R5cGVfeGRpZ2l0KSAhPSAwKQorICAg
ICAgICB7CisgICAgICAgIHJlZ2lzdGVyIGludCBjYyA9ICpwdCsrOworICAgICAgICBpZiAoYyA9
PSAwICYmIGNjID09ICcwJykgY29udGludWU7ICAgICAvKiBMZWFkaW5nIHplcm9lcyAqLworICAg
ICAgICBjb3VudCsrOworCisgICAgICAgIGlmIChjYyA+PSAnYScpIGNjIC09IDMyOyAgICAgICAg
ICAgICAgIC8qIENvbnZlcnQgdG8gdXBwZXIgY2FzZSAqLworICAgICAgICBjID0gKGMgPDwgNCkg
KyBjYyAtICgoY2MgPCAnQScpPyAnMCcgOiAoJ0EnIC0gMTApKTsKKyAgICAgICAgfQorCisgICAg
ICBpZiAocHQgPCBwYXR0ZXJuRW5kICYmICpwdCA9PSAnfScpCisgICAgICAgIHsKKyAgICAgICAg
aWYgKGMgPCAwIHx8IGNvdW50ID4gOCkgKmVycm9yY29kZXB0ciA9IEVSUjM0OworICAgICAgICBl
bHNlIGlmIChjID49IDB4RDgwMCAmJiBjIDw9IDB4REZGRikgKmVycm9yY29kZXB0ciA9IEVSUjM0
OyAvLyBoYWxmIG9mIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgIGVsc2UgaWYgKGMgPj0gMHhGREQw
ICYmIGMgPD0gMHhGREVGKSAqZXJyb3Jjb2RlcHRyID0gRVJSMzQ7IC8vID8KKyAgICAgICAgZWxz
ZSBpZiAoYyA9PSAweEZGRkUpICplcnJvcmNvZGVwdHIgPSBFUlIzNDsgLy8gbm90IGEgY2hhcmFj
dGVyCisgICAgICAgIGVsc2UgaWYgKGMgPT0gMHhGRkZGKSAgKmVycm9yY29kZXB0ciA9IEVSUjM0
OyAvLyBub3QgYSBjaGFyYWN0ZXIKKyAgICAgICAgZWxzZSBpZiAoYyA+IDB4MTBGRkZGKSAqZXJy
b3Jjb2RlcHRyID0gRVJSMzQ7IC8vIG91dCBvZiBVbmljb2RlIGNoYXJhY3RlciByYW5nZQorICAg
ICAgICBwdHIgPSBwdDsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgLyogSWYg
dGhlIHNlcXVlbmNlIG9mIGhleCBkaWdpdHMgZG9lcyBub3QgZW5kIHdpdGggJ30nLCB0aGVuIHdl
IGRvbid0CisgICAgICByZWNvZ25pemUgdGhpcyBjb25zdHJ1Y3Q7IGZhbGwgdGhyb3VnaCB0byB0
aGUgbm9ybWFsIFx4IGhhbmRsaW5nLiAqLworICAgICAgfQorCisgICAgLyogUmVhZCBqdXN0IGEg
c2luZ2xlLWJ5dGUgaGV4LWRlZmluZWQgY2hhciAqLworCisgICAgYyA9IDA7CisgICAgd2hpbGUg
KGkrKyA8IDIgJiYgcHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgKERJR0lUQUIocHRyWzFdKSAmIGN0
eXBlX3hkaWdpdCkgIT0gMCkKKyAgICAgIHsKKyAgICAgIGludCBjYzsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogU29tZSBjb21waWxlcnMgZG9uJ3QgbGlrZSArKyAqLworICAgICAg
Y2MgPSAqKCsrcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbiBpbml0aWFsaXplcnMg
Ki8KKyAgICAgIGlmIChjYyA+PSAnYScpIGNjIC09IDMyOyAgICAgICAgICAgICAgLyogQ29udmVy
dCB0byB1cHBlciBjYXNlICovCisgICAgICBjID0gYyAqIDE2ICsgY2MgLSAoKGNjIDwgJ0EnKT8g
JzAnIDogKCdBJyAtIDEwKSk7CisgICAgICB9CisgICAgYnJlYWs7CisKKyAgICBjYXNlICd1Jzog
eworICAgIGNvbnN0IHBjcmVfdWNoYXIgKnB0ID0gcHRyOworICAgIGMgPSAwOworICAgIHdoaWxl
IChpKysgPCA0KQorICAgICAgeworICAgICAgaWYgKHB0ICsgMSA+PSBwYXR0ZXJuRW5kIHx8IChE
SUdJVEFCKHB0WzFdKSAmIGN0eXBlX3hkaWdpdCkgPT0gMCkKKyAgICAgICAgeworICAgICAgICBw
dCA9IHB0cjsKKyAgICAgICAgYyA9ICd1JzsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICBpbnQgY2M7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogU29tZSBjb21waWxlcnMgZG9uJ3QgbGlrZSArKyAqLworICAgICAgICBjYyA9
ICooKytwdCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogaW4gaW5pdGlhbGl6ZXJzICovCisg
ICAgICAgIGlmIChjYyA+PSAnYScpIGNjIC09IDMyOyAgICAgICAgICAgICAvKiBDb252ZXJ0IHRv
IHVwcGVyIGNhc2UgKi8KKyAgICAgICAgYyA9IGMgKiAxNiArIGNjIC0gKChjYyA8ICdBJyk/ICcw
JyA6ICgnQScgLSAxMCkpOworICAgICAgICB9CisgICAgICB9CisgICAgcHRyID0gcHQ7CisgICAg
YnJlYWs7CisgICAgfQorCisgICAgLyogT3RoZXIgc3BlY2lhbCBlc2NhcGVzIG5vdCBzdGFydGlu
ZyB3aXRoIGEgZGlnaXQgYXJlIHN0cmFpZ2h0Zm9yd2FyZCAqLworCisgICAgY2FzZSAnYyc6Cisg
ICAgaWYgKCsrcHRyID09IHBhdHRlcm5FbmQpCisgICAgICB7CisgICAgICAqZXJyb3Jjb2RlcHRy
ID0gRVJSMjsKKyAgICAgIHJldHVybiAwOworICAgICAgfQorICAgIGMgPSAqcHRyOworCisgICAg
LyogQSBsZXR0ZXIgaXMgdXBwZXItY2FzZWQ7IHRoZW4gdGhlIDB4NDAgYml0IGlzIGZsaXBwZWQu
IFRoaXMgY29kaW5nCisgICAgaXMgQVNDSUktc3BlY2lmaWMsIGJ1dCB0aGVuIHRoZSB3aG9sZSBj
b25jZXB0IG9mIFxjeCBpcyBBU0NJSS1zcGVjaWZpYy4KKyAgICAoSG93ZXZlciwgYW4gRUJDRElD
IGVxdWl2YWxlbnQgaGFzIG5vdyBiZWVuIGFkZGVkLikgKi8KKworICAgIGlmIChjID49ICdhJyAm
JiBjIDw9ICd6JykgYyAtPSAzMjsKKyAgICBjIF49IDB4NDA7CisgICAgYnJlYWs7CisKKyAgICBk
ZWZhdWx0OgorICAgIGJyZWFrOworICAgIH0KKyAgfQorCisqcHRycHRyID0gcHRyOworcmV0dXJu
IGM7Cit9CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKiAgICAgICAgICAgIENoZWNrIGZvciBjb3VudGVkIHJlcGVhdCAgICAgICAgICAg
ICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK
Ky8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSAneycgaXMgZW5jb3VudGVyZWQgaW4g
YSBwbGFjZSB3aGVyZSBpdCBtaWdodAorc3RhcnQgYSBxdWFudGlmaWVyLiBJdCBsb29rcyBhaGVh
ZCB0byBzZWUgaWYgaXQgcmVhbGx5IGlzIGEgcXVhbnRpZmllciBvciBub3QuCitJdCBpcyBvbmx5
IGEgcXVhbnRpZmllciBpZiBpdCBpcyBvbmUgb2YgdGhlIGZvcm1zIHtkZGR9IHtkZGQsfSBvciB7
ZGRkLGRkZH0KK3doZXJlIHRoZSBkZGRzIGFyZSBkaWdpdHMuCisKK0FyZ3VtZW50czoKKyAgcCAg
ICAgICAgIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoYXIgYWZ0ZXIgJ3snCisKK1JldHVybnM6ICAg
IFRSVUUgb3IgRkFMU0UKKyovCisKK3N0YXRpYyBCT09MCitpc19jb3VudGVkX3JlcGVhdChjb25z
dCBwY3JlX3VjaGFyICpwLCBjb25zdCBwY3JlX3VjaGFyICpwYXR0ZXJuRW5kKQoreworaWYgKHAg
Pj0gcGF0dGVybkVuZCB8fCAoRElHSVRBQigqcCkgJiBjdHlwZV9kaWdpdCkgPT0gMCkKKyAgICBy
ZXR1cm4gRkFMU0U7CitwKys7Cit3aGlsZSAocCA8IHBhdHRlcm5FbmQgJiYgKERJR0lUQUIoKnAp
ICYgY3R5cGVfZGlnaXQpICE9IDApCisgICAgcCsrOworaWYgKHAgPCBwYXR0ZXJuRW5kICYmICpw
ID09ICd9JykKKyAgICByZXR1cm4gVFJVRTsKKworaWYgKHAgPj0gcGF0dGVybkVuZCB8fCAqcCsr
ICE9ICcsJykKKyAgICByZXR1cm4gRkFMU0U7CitpZiAocCA8IHBhdHRlcm5FbmQgJiYgKnAgPT0g
J30nKQorICAgIHJldHVybiBUUlVFOworCitpZiAocCA+PSBwYXR0ZXJuRW5kIHx8IChESUdJVEFC
KCpwKSAmIGN0eXBlX2RpZ2l0KSA9PSAwKQorICAgIHJldHVybiBGQUxTRTsKK3ArKzsKK3doaWxl
IChwIDwgcGF0dGVybkVuZCAmJiAoRElHSVRBQigqcCkgJiBjdHlwZV9kaWdpdCkgIT0gMCkKKyAg
ICBwKys7CisKK3JldHVybiAocCA8IHBhdHRlcm5FbmQgJiYgKnAgPT0gJ30nKTsKK30KKworCisK
Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ICAgICAgUmVhZCByZXBlYXQgY291bnRzICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogUmVhZCBhbiBp
dGVtIG9mIHRoZSBmb3JtIHtuLG19IGFuZCByZXR1cm4gdGhlIHZhbHVlcy4gVGhpcyBpcyBjYWxs
ZWQgb25seQorYWZ0ZXIgaXNfY291bnRlZF9yZXBlYXQoKSBoYXMgY29uZmlybWVkIHRoYXQgYSBy
ZXBlYXQtY291bnQgcXVhbnRpZmllciBleGlzdHMsCitzbyB0aGUgc3ludGF4IGlzIGd1YXJhbnRl
ZWQgdG8gYmUgY29ycmVjdCwgYnV0IHdlIG5lZWQgdG8gY2hlY2sgdGhlIHZhbHVlcy4KKworQXJn
dW1lbnRzOgorICBwICAgICAgICAgICAgICBwb2ludGVyIHRvIGZpcnN0IGNoYXIgYWZ0ZXIgJ3sn
CisgIG1pbnAgICAgICAgICAgIHBvaW50ZXIgdG8gaW50IGZvciBtaW4KKyAgbWF4cCAgICAgICAg
ICAgcG9pbnRlciB0byBpbnQgZm9yIG1heAorICAgICAgICAgICAgICAgICByZXR1cm5lZCBhcyAt
MSBpZiBubyBtYXgKKyAgZXJyb3Jjb2RlcHRyICAgcG9pbnRzIHRvIGVycm9yIGNvZGUgdmFyaWFi
bGUKKworUmV0dXJuczogICAgICAgICBwb2ludGVyIHRvICd9JyBvbiBzdWNjZXNzOworICAgICAg
ICAgICAgICAgICBjdXJyZW50IHB0ciBvbiBlcnJvciwgd2l0aCBlcnJvcmNvZGVwdHIgc2V0IG5v
bi16ZXJvCisqLworCitzdGF0aWMgY29uc3QgcGNyZV91Y2hhciAqCityZWFkX3JlcGVhdF9jb3Vu
dHMoY29uc3QgcGNyZV91Y2hhciAqcCwgaW50ICptaW5wLCBpbnQgKm1heHAsIGludCAqZXJyb3Jj
b2RlcHRyKQoreworaW50IG1pbiA9IDA7CitpbnQgbWF4ID0gLTE7CisKKy8qIFJlYWQgdGhlIG1p
bmltdW0gdmFsdWUgYW5kIGRvIGEgcGFyYW5vaWQgY2hlY2s6IGEgbmVnYXRpdmUgdmFsdWUgaW5k
aWNhdGVzCithbiBpbnRlZ2VyIG92ZXJmbG93LiAqLworCit3aGlsZSAoKERJR0lUQUIoKnApICYg
Y3R5cGVfZGlnaXQpICE9IDApIG1pbiA9IG1pbiAqIDEwICsgKnArKyAtICcwJzsKK2lmIChtaW4g
PCAwIHx8IG1pbiA+IDY1NTM1KQorICB7CisgICplcnJvcmNvZGVwdHIgPSBFUlI1OworICByZXR1
cm4gcDsKKyAgfQorCisvKiBSZWFkIHRoZSBtYXhpbXVtIHZhbHVlIGlmIHRoZXJlIGlzIG9uZSwg
YW5kIGFnYWluIGRvIGEgcGFyYW5vaWQgb24gaXRzIHNpemUuCitBbHNvLCBtYXggbXVzdCBub3Qg
YmUgbGVzcyB0aGFuIG1pbi4gKi8KKworaWYgKCpwID09ICd9JykgbWF4ID0gbWluOyBlbHNlCisg
IHsKKyAgaWYgKCooKytwKSAhPSAnfScpCisgICAgeworICAgIG1heCA9IDA7CisgICAgd2hpbGUo
KERJR0lUQUIoKnApICYgY3R5cGVfZGlnaXQpICE9IDApIG1heCA9IG1heCAqIDEwICsgKnArKyAt
ICcwJzsKKyAgICBpZiAobWF4IDwgMCB8fCBtYXggPiA2NTUzNSkKKyAgICAgIHsKKyAgICAgICpl
cnJvcmNvZGVwdHIgPSBFUlI1OworICAgICAgcmV0dXJuIHA7CisgICAgICB9CisgICAgaWYgKG1h
eCA8IG1pbikKKyAgICAgIHsKKyAgICAgICplcnJvcmNvZGVwdHIgPSBFUlI0OworICAgICAgcmV0
dXJuIHA7CisgICAgICB9CisgICAgfQorICB9CisKKy8qIEZpbGwgaW4gdGhlIHJlcXVpcmVkIHZh
cmlhYmxlcywgYW5kIHBhc3MgYmFjayB0aGUgcG9pbnRlciB0byB0aGUgdGVybWluYXRpbmcKKyd9
Jy4gKi8KKworKm1pbnAgPSBtaW47CisqbWF4cCA9IG1heDsKK3JldHVybiBwOworfQorCisKKwor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAg
ICBGaW5kIGZpcnN0IHNpZ25pZmljYW50IG9wIGNvZGUgICAgICAgICAgICAqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBUaGlzIGlzIGNh
bGxlZCBieSBzZXZlcmFsIGZ1bmN0aW9ucyB0aGF0IHNjYW4gYSBjb21waWxlZCBleHByZXNzaW9u
IGxvb2tpbmcKK2ZvciBhIGZpeGVkIGZpcnN0IGNoYXJhY3Rlciwgb3IgYW4gYW5jaG9yaW5nIG9w
IGNvZGUgZXRjLiBJdCBza2lwcyBvdmVyIHRoaW5ncwordGhhdCBkbyBub3QgaW5mbHVlbmNlIHRo
aXMuIEZvciBzb21lIGNhbGxzLCBhIGNoYW5nZSBvZiBvcHRpb24gaXMgaW1wb3J0YW50LgorRm9y
IHNvbWUgY2FsbHMsIGl0IG1ha2VzIHNlbnNlIHRvIHNraXAgbmVnYXRpdmUgZm9yd2FyZCBhbmQg
YWxsIGJhY2t3YXJkCithc3NlcnRpb25zLCBhbmQgYWxzbyB0aGUgXGIgYXNzZXJ0aW9uOyBmb3Ig
b3RoZXJzIGl0IGRvZXMgbm90LgorCitBcmd1bWVudHM6CisgIGNvZGUgICAgICAgICBwb2ludGVy
IHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JvdXAKKyAgc2tpcGFzc2VydCAgIFRSVUUgaWYgY2VydGFp
biBhc3NlcnRpb25zIGFyZSB0byBiZSBza2lwcGVkCisKK1JldHVybnM6ICAgICAgIHBvaW50ZXIg
dG8gdGhlIGZpcnN0IHNpZ25pZmljYW50IG9wY29kZQorKi8KKworc3RhdGljIGNvbnN0IHVzY2hh
cioKK2ZpcnN0X3NpZ25pZmljYW50X2NvZGUoY29uc3QgdXNjaGFyICpjb2RlLCBCT09MIHNraXBh
c3NlcnQpCit7Citmb3IgKDs7KQorICB7CisgIHN3aXRjaCAoKmNvZGUpCisgICAgeworICAgIGNh
c2UgT1BfQVNTRVJUX05PVDoKKyAgICBpZiAoIXNraXBhc3NlcnQpIHJldHVybiBjb2RlOworICAg
IGRvIGNvZGUgKz0gR0VUKGNvZGUsIDEpOyB3aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsKKyAgICBj
b2RlICs9IF9wY3JlX09QX2xlbmd0aHNbKmNvZGVdOworICAgIGJyZWFrOworCisgICAgY2FzZSBP
UF9XT1JEX0JPVU5EQVJZOgorICAgIGNhc2UgT1BfTk9UX1dPUkRfQk9VTkRBUlk6CisgICAgaWYg
KCFza2lwYXNzZXJ0KSByZXR1cm4gY29kZTsKKyAgICAvKiBGYWxsIHRocm91Z2ggKi8KKworICAg
IGNhc2UgT1BfQlJBTlVNQkVSOgorICAgIGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV07
CisgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgIHJldHVybiBjb2RlOworICAgIH0KKyAg
fQorLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KK30KKworCisKKworLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgIEZpbmQg
dGhlIGZpeGVkIGxlbmd0aCBvZiBhIHBhdHRlcm4gICAgICAqCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBTY2FuIGEgcGF0dGVybiBhbmQg
Y29tcHV0ZSB0aGUgZml4ZWQgbGVuZ3RoIG9mIHN1YmplY3QgdGhhdCB3aWxsIG1hdGNoIGl0LAor
aWYgdGhlIGxlbmd0aCBpcyBmaXhlZC4gVGhpcyBpcyBuZWVkZWQgZm9yIGRlYWxpbmcgd2l0aCBi
YWNrd2FyZCBhc3NlcnRpb25zLgorSW4gVVRGOCBtb2RlLCB0aGUgcmVzdWx0IGlzIGluIGNoYXJh
Y3RlcnMgcmF0aGVyIHRoYW4gYnl0ZXMuCisKK0FyZ3VtZW50czoKKyAgY29kZSAgICAgcG9pbnRz
IHRvIHRoZSBzdGFydCBvZiB0aGUgcGF0dGVybiAodGhlIGJyYWNrZXQpCisgIG9wdGlvbnMgIHRo
ZSBjb21waWxpbmcgb3B0aW9ucworCitSZXR1cm5zOiAgIHRoZSBmaXhlZCBsZW5ndGgsIG9yIC0x
IGlmIHRoZXJlIGlzIG5vIGZpeGVkIGxlbmd0aCwKKyAgICAgICAgICAgICBvciAtMiBpZiBcQyB3
YXMgZW5jb3VudGVyZWQKKyovCisKK3N0YXRpYyBpbnQKK2ZpbmRfZml4ZWRsZW5ndGgodXNjaGFy
ICpjb2RlLCBpbnQgb3B0aW9ucykKK3sKK2ludCBsZW5ndGggPSAtMTsKKworcmVnaXN0ZXIgaW50
IGJyYW5jaGxlbmd0aCA9IDA7CityZWdpc3RlciB1c2NoYXIgKmNjID0gY29kZSArIDEgKyBMSU5L
X1NJWkU7CisKKy8qIFNjYW4gYWxvbmcgdGhlIG9wY29kZXMgZm9yIHRoaXMgYnJhbmNoLiBJZiB3
ZSBnZXQgdG8gdGhlIGVuZCBvZiB0aGUKK2JyYW5jaCwgY2hlY2sgdGhlIGxlbmd0aCBhZ2FpbnN0
IHRoYXQgb2YgdGhlIG90aGVyIGJyYW5jaGVzLiAqLworCitmb3IgKDs7KQorICB7CisgIGludCBk
OworICByZWdpc3RlciBpbnQgb3AgPSAqY2M7CisgIGlmIChvcCA+PSBPUF9CUkEpIG9wID0gT1Bf
QlJBOworCisgIHN3aXRjaCAob3ApCisgICAgeworICAgIGNhc2UgT1BfQlJBOgorICAgIGNhc2Ug
T1BfT05DRToKKyAgICBkID0gZmluZF9maXhlZGxlbmd0aChjYywgb3B0aW9ucyk7CisgICAgaWYg
KGQgPCAwKSByZXR1cm4gZDsKKyAgICBicmFuY2hsZW5ndGggKz0gZDsKKyAgICBkbyBjYyArPSBH
RVQoY2MsIDEpOyB3aGlsZSAoKmNjID09IE9QX0FMVCk7CisgICAgY2MgKz0gMSArIExJTktfU0la
RTsKKyAgICBicmVhazsKKworICAgIC8qIFJlYWNoZWQgZW5kIG9mIGEgYnJhbmNoOyBpZiBpdCdz
IGEga2V0IGl0IGlzIHRoZSBlbmQgb2YgYSBuZXN0ZWQKKyAgICBjYWxsLiBJZiBpdCdzIEFMVCBp
dCBpcyBhbiBhbHRlcm5hdGlvbiBpbiBhIG5lc3RlZCBjYWxsLiBJZiBpdCBpcworICAgIEVORCBp
dCdzIHRoZSBlbmQgb2YgdGhlIG91dGVyIGNhbGwuIEFsbCBjYW4gYmUgaGFuZGxlZCBieSB0aGUg
c2FtZSBjb2RlLiAqLworCisgICAgY2FzZSBPUF9BTFQ6CisgICAgY2FzZSBPUF9LRVQ6CisgICAg
Y2FzZSBPUF9LRVRSTUFYOgorICAgIGNhc2UgT1BfS0VUUk1JTjoKKyAgICBjYXNlIE9QX0VORDoK
KyAgICBpZiAobGVuZ3RoIDwgMCkgbGVuZ3RoID0gYnJhbmNobGVuZ3RoOworICAgICAgZWxzZSBp
ZiAobGVuZ3RoICE9IGJyYW5jaGxlbmd0aCkgcmV0dXJuIC0xOworICAgIGlmICgqY2MgIT0gT1Bf
QUxUKSByZXR1cm4gbGVuZ3RoOworICAgIGNjICs9IDEgKyBMSU5LX1NJWkU7CisgICAgYnJhbmNo
bGVuZ3RoID0gMDsKKyAgICBicmVhazsKKworICAgIC8qIFNraXAgb3ZlciBhc3NlcnRpdmUgc3Vi
cGF0dGVybnMgKi8KKworICAgIGNhc2UgT1BfQVNTRVJUOgorICAgIGNhc2UgT1BfQVNTRVJUX05P
VDoKKyAgICBkbyBjYyArPSBHRVQoY2MsIDEpOyB3aGlsZSAoKmNjID09IE9QX0FMVCk7CisgICAg
LyogRmFsbCB0aHJvdWdoICovCisKKyAgICAvKiBTa2lwIG92ZXIgdGhpbmdzIHRoYXQgZG9uJ3Qg
bWF0Y2ggY2hhcnMgKi8KKworICAgIGNhc2UgT1BfQlJBTlVNQkVSOgorICAgIGNhc2UgT1BfQ0lS
QzoKKyAgICBjYXNlIE9QX0RPTEw6CisgICAgY2FzZSBPUF9OT1RfV09SRF9CT1VOREFSWToKKyAg
ICBjYXNlIE9QX1dPUkRfQk9VTkRBUlk6CisgICAgY2MgKz0gX3BjcmVfT1BfbGVuZ3Roc1sqY2Nd
OworICAgIGJyZWFrOworCisgICAgLyogSGFuZGxlIGxpdGVyYWwgY2hhcmFjdGVycyAqLworCisg
ICAgY2FzZSBPUF9DSEFSOgorICAgIGNhc2UgT1BfQ0hBUk5DOgorICAgIGNhc2UgT1BfTk9UOgor
ICAgIGJyYW5jaGxlbmd0aCsrOworICAgIGNjICs9IDI7CisgICAgd2hpbGUgKCgqY2MgJiAweGMw
KSA9PSAweDgwKSBjYysrOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9BU0NJSV9DSEFSOgor
ICAgIGNhc2UgT1BfQVNDSUlfTEVUVEVSX05DOgorICAgIGJyYW5jaGxlbmd0aCsrOworICAgIGNj
ICs9IDI7CisgICAgYnJlYWs7CisKKyAgICAvKiBIYW5kbGUgZXhhY3QgcmVwZXRpdGlvbnMuIFRo
ZSBjb3VudCBpcyBhbHJlYWR5IGluIGNoYXJhY3RlcnMsIGJ1dCB3ZQorICAgIG5lZWQgdG8gc2tp
cCBvdmVyIGEgbXVsdGlieXRlIGNoYXJhY3RlciBpbiBVVEY4IG1vZGUuICAqLworCisgICAgY2Fz
ZSBPUF9FWEFDVDoKKyAgICBicmFuY2hsZW5ndGggKz0gR0VUMihjYywxKTsKKyAgICBjYyArPSA0
OworICAgIHdoaWxlKCgqY2MgJiAweDgwKSA9PSAweDgwKSBjYysrOworICAgIGJyZWFrOworCisg
ICAgY2FzZSBPUF9UWVBFRVhBQ1Q6CisgICAgYnJhbmNobGVuZ3RoICs9IEdFVDIoY2MsMSk7Cisg
ICAgY2MgKz0gNDsKKyAgICBicmVhazsKKworICAgIC8qIEhhbmRsZSBzaW5nbGUtY2hhciBtYXRj
aGVycyAqLworCisgICAgY2FzZSBPUF9OT1RfRElHSVQ6CisgICAgY2FzZSBPUF9ESUdJVDoKKyAg
ICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgorICAgIGNhc2UgT1BfV0hJVEVTUEFDRToKKyAgICBj
YXNlIE9QX05PVF9XT1JEQ0hBUjoKKyAgICBjYXNlIE9QX1dPUkRDSEFSOgorICAgIGNhc2UgT1Bf
QU5ZOgorICAgIGJyYW5jaGxlbmd0aCsrOworICAgIGNjKys7CisgICAgYnJlYWs7CisKKyAgICAv
KiBDaGVjayBhIGNsYXNzIGZvciB2YXJpYWJsZSBxdWFudGlmaWNhdGlvbiAqLworCisgICAgY2Fz
ZSBPUF9YQ0xBU1M6CisgICAgY2MgKz0gR0VUKGNjLCAxKSAtIDMzOworICAgIC8qIEZhbGwgdGhy
b3VnaCAqLworCisgICAgY2FzZSBPUF9DTEFTUzoKKyAgICBjYXNlIE9QX05DTEFTUzoKKyAgICBj
YyArPSAzMzsKKworICAgIHN3aXRjaCAoKmNjKQorICAgICAgeworICAgICAgY2FzZSBPUF9DUlNU
QVI6CisgICAgICBjYXNlIE9QX0NSTUlOU1RBUjoKKyAgICAgIGNhc2UgT1BfQ1JRVUVSWToKKyAg
ICAgIGNhc2UgT1BfQ1JNSU5RVUVSWToKKyAgICAgIHJldHVybiAtMTsKKworICAgICAgY2FzZSBP
UF9DUlJBTkdFOgorICAgICAgY2FzZSBPUF9DUk1JTlJBTkdFOgorICAgICAgaWYgKEdFVDIoY2Ms
MSkgIT0gR0VUMihjYywzKSkgcmV0dXJuIC0xOworICAgICAgYnJhbmNobGVuZ3RoICs9IEdFVDIo
Y2MsMSk7CisgICAgICBjYyArPSA1OworICAgICAgYnJlYWs7CisKKyAgICAgIGRlZmF1bHQ6Cisg
ICAgICBicmFuY2hsZW5ndGgrKzsKKyAgICAgIH0KKyAgICBicmVhazsKKworICAgIC8qIEFueXRo
aW5nIGVsc2UgaXMgdmFyaWFibGUgbGVuZ3RoICovCisKKyAgICBkZWZhdWx0OgorICAgIHJldHVy
biAtMTsKKyAgICB9CisgIH0KKy8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCit9CisKKwor
CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgIFNjYW4gY29tcGlsZWQgYnJhbmNoIGZvciBub24tZW1wdGluZXNzICAgICAgKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVGhpcyBm
dW5jdGlvbiBzY2FucyB0aHJvdWdoIGEgYnJhbmNoIG9mIGEgY29tcGlsZWQgcGF0dGVybiB0byBz
ZWUgd2hldGhlciBpdAorY2FuIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcgb3Igbm90LiBJdCBpcyBj
YWxsZWQgb25seSBmcm9tIGNvdWxkX2JlX2VtcHR5KCkKK2JlbG93LiBOb3RlIHRoYXQgZmlyc3Rf
c2lnbmlmaWNhbnRfY29kZSgpIHNraXBzIG92ZXIgYXNzZXJ0aW9ucy4gSWYgd2UgaGl0IGFuCit1
bmNsb3NlZCBicmFja2V0LCB3ZSByZXR1cm4gImVtcHR5IiAtIHRoaXMgbWVhbnMgd2UndmUgc3Ry
dWNrIGFuIGlubmVyIGJyYWNrZXQKK3dob3NlIGN1cnJlbnQgYnJhbmNoIHdpbGwgYWxyZWFkeSBo
YXZlIGJlZW4gc2Nhbm5lZC4KKworQXJndW1lbnRzOgorICBjb2RlICAgICAgICBwb2ludHMgdG8g
c3RhcnQgb2Ygc2VhcmNoCisgIGVuZGNvZGUgICAgIHBvaW50cyB0byB3aGVyZSB0byBzdG9wCisK
K1JldHVybnM6ICAgICAgVFJVRSBpZiB3aGF0IGlzIG1hdGNoZWQgY291bGQgYmUgZW1wdHkKKyov
CisKK3N0YXRpYyBCT09MCitjb3VsZF9iZV9lbXB0eV9icmFuY2goY29uc3QgdXNjaGFyICpjb2Rl
LCBjb25zdCB1c2NoYXIgKmVuZGNvZGUpCit7CityZWdpc3RlciBpbnQgYzsKK2ZvciAoY29kZSA9
IGZpcnN0X3NpZ25pZmljYW50X2NvZGUoY29kZSArIDEgKyBMSU5LX1NJWkUsIFRSVUUpOworICAg
ICBjb2RlIDwgZW5kY29kZTsKKyAgICAgY29kZSA9IGZpcnN0X3NpZ25pZmljYW50X2NvZGUoY29k
ZSArIF9wY3JlX09QX2xlbmd0aHNbY10sIFRSVUUpKQorICB7CisgIGNvbnN0IHVzY2hhciAqY2Nv
ZGU7CisKKyAgYyA9ICpjb2RlOworCisgIGlmIChjID49IE9QX0JSQSkKKyAgICB7CisgICAgQk9P
TCBlbXB0eV9icmFuY2g7CisgICAgaWYgKEdFVChjb2RlLCAxKSA9PSAwKSByZXR1cm4gVFJVRTsg
ICAgLyogSGl0IHVuY2xvc2VkIGJyYWNrZXQgKi8KKworICAgIC8qIFNjYW4gYSBjbG9zZWQgYnJh
Y2tldCAqLworCisgICAgZW1wdHlfYnJhbmNoID0gRkFMU0U7CisgICAgZG8KKyAgICAgIHsKKyAg
ICAgIGlmICghZW1wdHlfYnJhbmNoICYmIGNvdWxkX2JlX2VtcHR5X2JyYW5jaChjb2RlLCBlbmRj
b2RlKSkKKyAgICAgICAgZW1wdHlfYnJhbmNoID0gVFJVRTsKKyAgICAgIGNvZGUgKz0gR0VUKGNv
ZGUsIDEpOworICAgICAgfQorICAgIHdoaWxlICgqY29kZSA9PSBPUF9BTFQpOworICAgIGlmICgh
ZW1wdHlfYnJhbmNoKSByZXR1cm4gRkFMU0U7ICAgLyogQWxsIGJyYW5jaGVzIGFyZSBub24tZW1w
dHkgKi8KKyAgICBjb2RlICs9IDEgKyBMSU5LX1NJWkU7CisgICAgYyA9ICpjb2RlOworICAgIH0K
KworICBlbHNlIHN3aXRjaCAoYykKKyAgICB7CisgICAgLyogQ2hlY2sgZm9yIHF1YW50aWZpZXJz
IGFmdGVyIGEgY2xhc3MgKi8KKworICAgIGNhc2UgT1BfWENMQVNTOgorICAgIGNjb2RlID0gY29k
ZSArIEdFVChjb2RlLCAxKTsKKyAgICBnb3RvIENIRUNLX0NMQVNTX1JFUEVBVDsKKworICAgIGNh
c2UgT1BfQ0xBU1M6CisgICAgY2FzZSBPUF9OQ0xBU1M6CisgICAgY2NvZGUgPSBjb2RlICsgMzM7
CisKKyAgICBDSEVDS19DTEFTU19SRVBFQVQ6CisKKyAgICBzd2l0Y2ggKCpjY29kZSkKKyAgICAg
IHsKKyAgICAgIGNhc2UgT1BfQ1JTVEFSOiAgICAgICAgICAgIC8qIFRoZXNlIGNvdWxkIGJlIGVt
cHR5OyBjb250aW51ZSAqLworICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6CisgICAgICBjYXNlIE9Q
X0NSUVVFUlk6CisgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6CisgICAgICBicmVhazsKKworICAg
ICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgLyogTm9uLXJlcGVhdCA9PiBjbGFzcyBtdXN0
IG1hdGNoICovCisgICAgICBjYXNlIE9QX0NSUExVUzogICAgICAgICAgICAvKiBUaGVzZSByZXBl
YXRzIGFyZW4ndCBlbXB0eSAqLworICAgICAgY2FzZSBPUF9DUk1JTlBMVVM6CisgICAgICByZXR1
cm4gRkFMU0U7CisKKyAgICAgIGNhc2UgT1BfQ1JSQU5HRToKKyAgICAgIGNhc2UgT1BfQ1JNSU5S
QU5HRToKKyAgICAgIGlmIChHRVQyKGNjb2RlLCAxKSA+IDApIHJldHVybiBGQUxTRTsgIC8qIE1p
bmltdW0gPiAwICovCisgICAgICBicmVhazsKKyAgICAgIH0KKyAgICBicmVhazsKKworICAgIC8q
IE9wY29kZXMgdGhhdCBtdXN0IG1hdGNoIGEgY2hhcmFjdGVyICovCisKKyAgICBjYXNlIE9QX05P
VF9ESUdJVDoKKyAgICBjYXNlIE9QX0RJR0lUOgorICAgIGNhc2UgT1BfTk9UX1dISVRFU1BBQ0U6
CisgICAgY2FzZSBPUF9XSElURVNQQUNFOgorICAgIGNhc2UgT1BfTk9UX1dPUkRDSEFSOgorICAg
IGNhc2UgT1BfV09SRENIQVI6CisgICAgY2FzZSBPUF9BTlk6CisgICAgY2FzZSBPUF9DSEFSOgor
ICAgIGNhc2UgT1BfQ0hBUk5DOgorICAgIGNhc2UgT1BfQVNDSUlfQ0hBUjoKKyAgICBjYXNlIE9Q
X0FTQ0lJX0xFVFRFUl9OQzoKKyAgICBjYXNlIE9QX05PVDoKKyAgICBjYXNlIE9QX1BMVVM6Cisg
ICAgY2FzZSBPUF9NSU5QTFVTOgorICAgIGNhc2UgT1BfRVhBQ1Q6CisgICAgY2FzZSBPUF9OT1RQ
TFVTOgorICAgIGNhc2UgT1BfTk9UTUlOUExVUzoKKyAgICBjYXNlIE9QX05PVEVYQUNUOgorICAg
IGNhc2UgT1BfVFlQRVBMVVM6CisgICAgY2FzZSBPUF9UWVBFTUlOUExVUzoKKyAgICBjYXNlIE9Q
X1RZUEVFWEFDVDoKKyAgICByZXR1cm4gRkFMU0U7CisKKyAgICAvKiBFbmQgb2YgYnJhbmNoICov
CisKKyAgICBjYXNlIE9QX0tFVDoKKyAgICBjYXNlIE9QX0tFVFJNQVg6CisgICAgY2FzZSBPUF9L
RVRSTUlOOgorICAgIGNhc2UgT1BfQUxUOgorICAgIHJldHVybiBUUlVFOworCisgICAgLyogSW4g
VVRGLTggbW9kZSwgU1RBUiwgTUlOU1RBUiwgUVVFUlksIE1JTlFVRVJZLCBVUFRPLCBhbmQgTUlO
VVBUTyAgbWF5IGJlCisgICAgZm9sbG93ZWQgYnkgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyICovCisK
KyAgICBjYXNlIE9QX1NUQVI6CisgICAgY2FzZSBPUF9NSU5TVEFSOgorICAgIGNhc2UgT1BfUVVF
Ulk6CisgICAgY2FzZSBPUF9NSU5RVUVSWToKKyAgICBjYXNlIE9QX1VQVE86CisgICAgY2FzZSBP
UF9NSU5VUFRPOgorICAgIHdoaWxlICgoY29kZVsyXSAmIDB4YzApID09IDB4ODApIGNvZGUrKzsK
KyAgICBicmVhazsKKyAgICB9CisgIH0KKworcmV0dXJuIFRSVUU7Cit9CisKKworCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgIENv
bXBsZXRlIGEgY2FsbG91dCBpdGVtICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIEEgY2FsbG91dCBpdGVtIGNv
bnRhaW5zIHRoZSBsZW5ndGggb2YgdGhlIG5leHQgaXRlbSBpbiB0aGUgcGF0dGVybiwgd2hpY2gK
K3dlIGNhbid0IGZpbGwgaW4gdGlsbCBhZnRlciB3ZSBoYXZlIHJlYWNoZWQgdGhlIHJlbGV2YW50
IHBvaW50LiBUaGlzIGlzIHVzZWQKK2ZvciBib3RoIGF1dG9tYXRpYyBhbmQgbWFudWFsIGNhbGxv
dXRzLgorCitBcmd1bWVudHM6CisgIHByZXZpb3VzX2NhbGxvdXQgICBwb2ludHMgdG8gcHJldmlv
dXMgY2FsbG91dCBpdGVtCisgIHB0ciAgICAgICAgICAgICAgICBjdXJyZW50IHBhdHRlcm4gcG9p
bnRlcgorICBjZCAgICAgICAgICAgICAgICAgcG9pbnRlcnMgdG8gdGFibGVzIGV0YworCitSZXR1
cm5zOiAgICAgICAgICAgICBub3RoaW5nCisqLworCitzdGF0aWMgdm9pZAorY29tcGxldGVfY2Fs
bG91dCh1c2NoYXIgKnByZXZpb3VzX2NhbGxvdXQsIGNvbnN0IHBjcmVfdWNoYXIgKnB0ciwgY29t
cGlsZV9kYXRhICpjZCkKK3sKK2ludCBsZW5ndGggPSBwdHIgLSBjZC0+c3RhcnRfcGF0dGVybiAt
IEdFVChwcmV2aW91c19jYWxsb3V0LCAyKTsKK1BVVChwcmV2aW91c19jYWxsb3V0LCAyICsgTElO
S19TSVpFLCBsZW5ndGgpOworfQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgIEdldCBvdGhlcmNhc2UgcmFuZ2UgICAg
ICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLworCisvKiBUaGlzIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgc3RhcnQgYW5kIGVu
ZCBvZiBhIGNsYXNzIHJhbmdlLCBpbiBVVEYtOCBtb2RlCit3aXRoIFVDUCBzdXBwb3J0LiBJdCBz
ZWFyY2hlcyB1cCB0aGUgY2hhcmFjdGVycywgbG9va2luZyBmb3IgaW50ZXJuYWwgcmFuZ2VzIG9m
CitjaGFyYWN0ZXJzIGluIHRoZSAib3RoZXIiIGNhc2UuIEVhY2ggY2FsbCByZXR1cm5zIHRoZSBu
ZXh0IG9uZSwgdXBkYXRpbmcgdGhlCitzdGFydCBhZGRyZXNzLgorCitBcmd1bWVudHM6CisgIGNw
dHIgICAgICAgIHBvaW50cyB0byBzdGFydGluZyBjaGFyYWN0ZXIgdmFsdWU7IHVwZGF0ZWQKKyAg
ZCAgICAgICAgICAgZW5kIHZhbHVlCisgIG9jcHRyICAgICAgIHdoZXJlIHRvIHB1dCBzdGFydCBv
ZiBvdGhlcmNhc2UgcmFuZ2UKKyAgb2RwdHIgICAgICAgd2hlcmUgdG8gcHV0IGVuZCBvZiBvdGhl
cmNhc2UgcmFuZ2UKKworWWllbGQ6ICAgICAgICBUUlVFIHdoZW4gcmFuZ2UgcmV0dXJuZWQ7IEZB
TFNFIHdoZW4gbm8gbW9yZQorKi8KKworc3RhdGljIEJPT0wKK2dldF9vdGhlcmNhc2VfcmFuZ2Uo
aW50ICpjcHRyLCBpbnQgZCwgaW50ICpvY3B0ciwgaW50ICpvZHB0cikKK3sKK2ludCBjLCBvdGhl
cmNhc2UgPSAwLCBuZXh0OworCitmb3IgKGMgPSAqY3B0cjsgYyA8PSBkOyBjKyspCisgIHsgaWYg
KChvdGhlcmNhc2UgPSBfcGNyZV91Y3Bfb3RoZXJjYXNlKGMpKSA+PSAwKSBicmVhazsgfQorCitp
ZiAoYyA+IGQpIHJldHVybiBGQUxTRTsKKworKm9jcHRyID0gb3RoZXJjYXNlOworbmV4dCA9IG90
aGVyY2FzZSArIDE7CisKK2ZvciAoKytjOyBjIDw9IGQ7IGMrKykKKyAgeworICBpZiAoX3BjcmVf
dWNwX290aGVyY2FzZShjKSAhPSBuZXh0KSBicmVhazsKKyAgbmV4dCsrOworICB9CisKKypvZHB0
ciA9IG5leHQgLSAxOworKmNwdHIgPSBjOworCityZXR1cm4gVFJVRTsKK30KKworCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAg
Q29tcGlsZSBvbmUgYnJhbmNoICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFNjYW4gdGhlIHBhdHRlcm4s
IGNvbXBpbGluZyBpdCBpbnRvIHRoZSBjb2RlIHZlY3Rvci4gSWYgdGhlIG9wdGlvbnMgYXJlCitj
aGFuZ2VkIGR1cmluZyB0aGUgYnJhbmNoLCB0aGUgcG9pbnRlciBpcyB1c2VkIHRvIGNoYW5nZSB0
aGUgZXh0ZXJuYWwgb3B0aW9ucworYml0cy4KKworQXJndW1lbnRzOgorICBvcHRpb25zcHRyICAg
ICBwb2ludGVyIHRvIHRoZSBvcHRpb24gYml0cworICBicmFja2V0cyAgICAgICBwb2ludHMgdG8g
bnVtYmVyIG9mIGV4dHJhY3RpbmcgYnJhY2tldHMgdXNlZAorICBjb2RlcHRyICAgICAgICBwb2lu
dHMgdG8gdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgY29kZSBwb2ludAorICBwdHJwdHIgICAg
ICAgICBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcGF0dGVybiBwb2ludGVyCisgIGVycm9yY29kZXB0
ciAgIHBvaW50cyB0byBlcnJvciBjb2RlIHZhcmlhYmxlCisgIGZpcnN0Ynl0ZXB0ciAgIHNldCB0
byBpbml0aWFsIGxpdGVyYWwgY2hhcmFjdGVyLCBvciA8IDAgKFJFUV9VTlNFVCwgUkVRX05PTkUp
CisgIHJlcWJ5dGVwdHIgICAgIHNldCB0byB0aGUgbGFzdCBsaXRlcmFsIGNoYXJhY3RlciByZXF1
aXJlZCwgZWxzZSA8IDAKKyAgY2QgICAgICAgICAgICAgY29udGFpbnMgcG9pbnRlcnMgdG8gdGFi
bGVzIGV0Yy4KKworUmV0dXJuczogICAgICAgICBUUlVFIG9uIHN1Y2Nlc3MKKyAgICAgICAgICAg
ICAgICAgRkFMU0UsIHdpdGggKmVycm9yY29kZXB0ciBzZXQgbm9uLXplcm8gb24gZXJyb3IKKyov
CisKK3N0YXRpYyBCT09MCitjb21waWxlX2JyYW5jaChpbnQgKm9wdGlvbnNwdHIsIGludCAqYnJh
Y2tldHMsIHVzY2hhciAqKmNvZGVwdHIsCisgIGNvbnN0IHBjcmVfdWNoYXIgKipwdHJwdHIsIGNv
bnN0IHBjcmVfdWNoYXIgKnBhdHRlcm5FbmQsIGludCAqZXJyb3Jjb2RlcHRyLCBpbnQgKmZpcnN0
Ynl0ZXB0ciwKKyAgaW50ICpyZXFieXRlcHRyLCBjb21waWxlX2RhdGEgKmNkKQoreworaW50IHJl
cGVhdF90eXBlLCBvcF90eXBlOworaW50IHJlcGVhdF9taW4gPSAwLCByZXBlYXRfbWF4ID0gMDsg
ICAgICAvKiBUbyBwbGVhc2UgcGlja3kgY29tcGlsZXJzICovCitpbnQgYnJhdmFsdWUgPSAwOwor
aW50IGZpcnN0Ynl0ZSwgcmVxYnl0ZTsKK2ludCB6ZXJvcmVxYnl0ZSwgemVyb2ZpcnN0Ynl0ZTsK
K2ludCByZXFfY2FzZW9wdCwgcmVxdmFyeSwgdGVtcHJlcXZhcnk7CitpbnQgb3B0aW9ucyA9ICpv
cHRpb25zcHRyOworaW50IGFmdGVyX21hbnVhbF9jYWxsb3V0ID0gMDsKK3JlZ2lzdGVyIGludCBj
OworcmVnaXN0ZXIgdXNjaGFyICpjb2RlID0gKmNvZGVwdHI7Cit1c2NoYXIgKnRlbXBjb2RlOwor
Qk9PTCBncm91cHNldGZpcnN0Ynl0ZSA9IEZBTFNFOworY29uc3QgcGNyZV91Y2hhciAqcHRyID0g
KnB0cnB0cjsKK2NvbnN0IHBjcmVfdWNoYXIgKnRlbXBwdHI7Cit1c2NoYXIgKnByZXZpb3VzID0g
TlVMTDsKK3VzY2hhciAqcHJldmlvdXNfY2FsbG91dCA9IE5VTEw7Cit1c2NoYXIgY2xhc3NiaXRz
WzMyXTsKKworQk9PTCBjbGFzc191dGY4OwordXNjaGFyICpjbGFzc191dGY4ZGF0YTsKK3VzY2hh
ciB1dGY4X2NoYXJbNl07CisKKy8qIEluaXRpYWxpemUgbm8gZmlyc3QgYnl0ZSwgbm8gcmVxdWly
ZWQgYnl0ZS4gUkVRX1VOU0VUIG1lYW5zICJubyBjaGFyCittYXRjaGluZyBlbmNvdW50ZXJlZCB5
ZXQiLiBJdCBnZXRzIGNoYW5nZWQgdG8gUkVRX05PTkUgaWYgd2UgaGl0IHNvbWV0aGluZyB0aGF0
CittYXRjaGVzIGEgbm9uLWZpeGVkIGNoYXIgZmlyc3QgY2hhcjsgcmVxYnl0ZSBqdXN0IHJlbWFp
bnMgdW5zZXQgaWYgd2UgbmV2ZXIKK2ZpbmQgb25lLgorCitXaGVuIHdlIGhpdCBhIHJlcGVhdCB3
aG9zZSBtaW5pbXVtIGlzIHplcm8sIHdlIG1heSBoYXZlIHRvIGFkanVzdCB0aGVzZSB2YWx1ZXMK
K3RvIHRha2UgdGhlIHplcm8gcmVwZWF0IGludG8gYWNjb3VudC4gVGhpcyBpcyBpbXBsZW1lbnRl
ZCBieSBzZXR0aW5nIHRoZW0gdG8KK3plcm9maXJzdGJ5dGUgYW5kIHplcm9yZXFieXRlIHdoZW4g
c3VjaCBhIHJlcGVhdCBpcyBlbmNvdW50ZXJlZC4gVGhlIGluZGl2aWR1YWwKK2l0ZW0gdHlwZXMg
dGhhdCBjYW4gYmUgcmVwZWF0ZWQgc2V0IHRoZXNlIGJhY2tvZmYgdmFyaWFibGVzIGFwcHJvcHJp
YXRlbHkuICovCisKK2ZpcnN0Ynl0ZSA9IHJlcWJ5dGUgPSB6ZXJvZmlyc3RieXRlID0gemVyb3Jl
cWJ5dGUgPSBSRVFfVU5TRVQ7CisKKy8qIFRoZSB2YXJpYWJsZSByZXFfY2FzZW9wdCBjb250YWlu
cyBlaXRoZXIgdGhlIFJFUV9DQVNFTEVTUyB2YWx1ZSBvciB6ZXJvLAorYWNjb3JkaW5nIHRvIHRo
ZSBjdXJyZW50IHNldHRpbmcgb2YgdGhlIGNhc2VsZXNzIGZsYWcuIFJFUV9DQVNFTEVTUyBpcyBh
IGJpdAordmFsdWUgPiAyNTUuIEl0IGlzIGFkZGVkIGludG8gdGhlIGZpcnN0Ynl0ZSBvciByZXFi
eXRlIHZhcmlhYmxlcyB0byByZWNvcmQgdGhlCitjYXNlIHN0YXR1cyBvZiB0aGUgdmFsdWUuIFRo
aXMgaXMgdXNlZCBvbmx5IGZvciBBU0NJSSBjaGFyYWN0ZXJzLiAqLworCityZXFfY2FzZW9wdCA9
ICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDApPyBSRVFfQ0FTRUxFU1MgOiAwOworCisv
KiBTd2l0Y2ggb24gbmV4dCBjaGFyYWN0ZXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnJhbmNoICov
CisKK2ZvciAoOzsgcHRyKyspCisgIHsKKyAgQk9PTCBuZWdhdGVfY2xhc3M7CisgIEJPT0wgc2hv
dWxkX2ZsaXBfbmVnYXRpb247IC8qIElmIGEgbmVnYXRpdmUgc3BlY2lhbCBzdWNoIGFzIFxTIGlz
IHVzZWQsIHdlIHNob3VsZCBuZWdhdGUgdGhlIHdob2xlIGNsYXNzIHRvIHByb3Blcmx5IHN1cHBv
cnQgVW5pY29kZS4gKi8KKyAgQk9PTCBwb3NzZXNzaXZlX3F1YW50aWZpZXI7CisgIEJPT0wgaXNf
cXVhbnRpZmllcjsKKyAgaW50IGNsYXNzX2NoYXJjb3VudDsKKyAgaW50IGNsYXNzX2xhc3RjaGFy
OworICBpbnQgbmV3b3B0aW9uczsKKyAgaW50IHNraXBieXRlczsKKyAgaW50IHN1YnJlcWJ5dGU7
CisgIGludCBzdWJmaXJzdGJ5dGU7CisgIGludCBtY2xlbmd0aDsKKyAgdXNjaGFyIG1jYnVmZmVy
WzhdOworCisgIC8qIE5leHQgYnl0ZSBpbiB0aGUgcGF0dGVybiAqLworCisgIGMgPSBwdHIgPCBw
YXR0ZXJuRW5kID8gKnB0ciA6IDA7CisKKyAgLyogRmlsbCBpbiBsZW5ndGggb2YgYSBwcmV2aW91
cyBjYWxsb3V0LCBleGNlcHQgd2hlbiB0aGUgbmV4dCB0aGluZyBpcworICBhIHF1YW50aWZpZXIu
ICovCisKKyAgaXNfcXVhbnRpZmllciA9IGMgPT0gJyonIHx8IGMgPT0gJysnIHx8IGMgPT0gJz8n
IHx8CisgICAgKGMgPT0gJ3snICYmIGlzX2NvdW50ZWRfcmVwZWF0KHB0cisxLCBwYXR0ZXJuRW5k
KSk7CisKKyAgaWYgKCFpc19xdWFudGlmaWVyICYmIHByZXZpb3VzX2NhbGxvdXQgIT0gTlVMTCAm
JgorICAgICAgIGFmdGVyX21hbnVhbF9jYWxsb3V0LS0gPD0gMCkKKyAgICB7CisgICAgY29tcGxl
dGVfY2FsbG91dChwcmV2aW91c19jYWxsb3V0LCBwdHIsIGNkKTsKKyAgICBwcmV2aW91c19jYWxs
b3V0ID0gTlVMTDsKKyAgICB9CisKKyAgc3dpdGNoKGMpCisgICAgeworICAgIC8qIFRoZSBicmFu
Y2ggdGVybWluYXRlcyBhdCBlbmQgb2Ygc3RyaW5nLCB8LCBvciApLiAqLworCisgICAgY2FzZSAw
OgorICAgICAgICBpZiAocHRyIDwgcGF0dGVybkVuZCkKKyAgICAgICAgICAgIGdvdG8gTk9STUFM
X0NIQVI7CisgICAgICAgIC8vIEVuZCBvZiBzdHJpbmc7IGZhbGwgdGhyb3VnaAorICAgIGNhc2Ug
J3wnOgorICAgIGNhc2UgJyknOgorICAgICpmaXJzdGJ5dGVwdHIgPSBmaXJzdGJ5dGU7CisgICAg
KnJlcWJ5dGVwdHIgPSByZXFieXRlOworICAgICpjb2RlcHRyID0gY29kZTsKKyAgICAqcHRycHRy
ID0gcHRyOworICAgIHJldHVybiBUUlVFOworCisgICAgLyogSGFuZGxlIHNpbmdsZS1jaGFyYWN0
ZXIgbWV0YWNoYXJhY3RlcnMuIEluIG11bHRpbGluZSBtb2RlLCBeIGRpc2FibGVzCisgICAgdGhl
IHNldHRpbmcgb2YgYW55IGZvbGxvd2luZyBjaGFyIGFzIGEgZmlyc3QgY2hhcmFjdGVyLiAqLwor
CisgICAgY2FzZSAnXic6CisgICAgaWYgKChvcHRpb25zICYgUENSRV9NVUxUSUxJTkUpICE9IDAp
CisgICAgICB7CisgICAgICBpZiAoZmlyc3RieXRlID09IFJFUV9VTlNFVCkgZmlyc3RieXRlID0g
UkVRX05PTkU7CisgICAgICB9CisgICAgcHJldmlvdXMgPSBOVUxMOworICAgICpjb2RlKysgPSBP
UF9DSVJDOworICAgIGJyZWFrOworCisgICAgY2FzZSAnJCc6CisgICAgcHJldmlvdXMgPSBOVUxM
OworICAgICpjb2RlKysgPSBPUF9ET0xMOworICAgIGJyZWFrOworCisgICAgLyogVGhlcmUgY2Fu
IG5ldmVyIGJlIGEgZmlyc3QgY2hhciBpZiAnLicgaXMgZmlyc3QsIHdoYXRldmVyIGhhcHBlbnMg
YWJvdXQKKyAgICByZXBlYXRzLiBUaGUgdmFsdWUgb2YgcmVxYnl0ZSBkb2Vzbid0IGNoYW5nZSBl
aXRoZXIuICovCisKKyAgICBjYXNlICcuJzoKKyAgICBpZiAoZmlyc3RieXRlID09IFJFUV9VTlNF
VCkgZmlyc3RieXRlID0gUkVRX05PTkU7CisgICAgemVyb2ZpcnN0Ynl0ZSA9IGZpcnN0Ynl0ZTsK
KyAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7CisgICAgcHJldmlvdXMgPSBjb2RlOworICAgICpj
b2RlKysgPSBPUF9BTlk7CisgICAgYnJlYWs7CisKKyAgICAvKiBDaGFyYWN0ZXIgY2xhc3Nlcy4g
SWYgdGhlIGluY2x1ZGVkIGNoYXJhY3RlcnMgYXJlIGFsbCA8IDI1Niwgd2UgYnVpbGQgYQorICAg
IDMyLWJ5dGUgYml0bWFwIG9mIHRoZSBwZXJtaXR0ZWQgY2hhcmFjdGVycywgZXhjZXB0IGluIHRo
ZSBzcGVjaWFsIGNhc2UKKyAgICB3aGVyZSB0aGVyZSBpcyBvbmx5IG9uZSBzdWNoIGNoYXJhY3Rl
ci4gRm9yIG5lZ2F0ZWQgY2xhc3Nlcywgd2UgYnVpbGQgdGhlCisgICAgbWFwIGFzIHVzdWFsLCB0
aGVuIGludmVydCBpdCBhdCB0aGUgZW5kLiBIb3dldmVyLCB3ZSB1c2UgYSBkaWZmZXJlbnQgb3Bj
b2RlCisgICAgc28gdGhhdCBkYXRhIGNoYXJhY3RlcnMgPiAyNTUgY2FuIGJlIGhhbmRsZWQgY29y
cmVjdGx5LgorCisgICAgSWYgdGhlIGNsYXNzIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3V0c2lkZSB0
aGUgMC0yNTUgcmFuZ2UsIGEgZGlmZmVyZW50CisgICAgb3Bjb2RlIGlzIGNvbXBpbGVkLiBJdCBt
YXkgb3B0aW9uYWxseSBoYXZlIGEgYml0IG1hcCBmb3IgY2hhcmFjdGVycyA8IDI1NiwKKyAgICBi
dXQgdGhvc2UgYWJvdmUgYXJlIGFyZSBleHBsaWNpdGx5IGxpc3RlZCBhZnRlcndhcmRzLiBBIGZs
YWcgYnl0ZSB0ZWxscworICAgIHdoZXRoZXIgdGhlIGJpdG1hcCBpcyBwcmVzZW50LCBhbmQgd2hl
dGhlciB0aGlzIGlzIGEgbmVnYXRlZCBjbGFzcyBvciBub3QuCisgICAgKi8KKworICAgIGNhc2Ug
J1snOgorICAgIHByZXZpb3VzID0gY29kZTsKKyAgICBzaG91bGRfZmxpcF9uZWdhdGlvbiA9IEZB
TFNFOworCisgICAgLyogUENSRSBzdXBwb3J0cyBQT1NJWCBjbGFzcyBzdHVmZiBpbnNpZGUgYSBj
bGFzcy4gUGVybCBnaXZlcyBhbiBlcnJvciBpZgorICAgIHRoZXkgYXJlIGVuY291bnRlcmVkIGF0
IHRoZSB0b3AgbGV2ZWwsIHNvIHdlJ2xsIGRvIHRoYXQgdG9vLiAqLworCisgICAgLyogSWYgdGhl
IGZpcnN0IGNoYXJhY3RlciBpcyAnXicsIHNldCB0aGUgbmVnYXRpb24gZmxhZyBhbmQgc2tpcCBp
dC4gKi8KKworICAgIGlmICgoYyA9ICooKytwdHIpKSA9PSAnXicpCisgICAgICB7CisgICAgICBu
ZWdhdGVfY2xhc3MgPSBUUlVFOworICAgICAgYyA9ICooKytwdHIpOworICAgICAgfQorICAgIGVs
c2UKKyAgICAgIHsKKyAgICAgIG5lZ2F0ZV9jbGFzcyA9IEZBTFNFOworICAgICAgfQorCisgICAg
LyogS2VlcCBhIGNvdW50IG9mIGNoYXJzIHdpdGggdmFsdWVzIDwgMjU2IHNvIHRoYXQgd2UgY2Fu
IG9wdGltaXplIHRoZSBjYXNlCisgICAgb2YganVzdCBhIHNpbmdsZSBjaGFyYWN0ZXIgKGFzIGxv
bmcgYXMgaXQncyA8IDI1NikuIEZvciBoaWdoZXIgdmFsdWVkIFVURi04CisgICAgY2hhcmFjdGVy
cywgd2UgZG9uJ3QgeWV0IGRvIGFueSBvcHRpbWl6YXRpb24uICovCisKKyAgICBjbGFzc19jaGFy
Y291bnQgPSAwOworICAgIGNsYXNzX2xhc3RjaGFyID0gLTE7CisKKyAgICBjbGFzc191dGY4ID0g
RkFMU0U7ICAgICAgICAgICAgICAgICAgICAgICAvKiBObyBjaGFycyA+PSAyNTYgKi8KKyAgICBj
bGFzc191dGY4ZGF0YSA9IGNvZGUgKyBMSU5LX1NJWkUgKyAzNDsgICAvKiBGb3IgVVRGLTggaXRl
bXMgKi8KKworICAgIC8qIEluaXRpYWxpemUgdGhlIDMyLWNoYXIgYml0IG1hcCB0byBhbGwgemVy
b3MuIFdlIGhhdmUgdG8gYnVpbGQgdGhlCisgICAgbWFwIGluIGEgdGVtcG9yYXJ5IGJpdCBvZiBz
dG9yZSwgaW4gY2FzZSB0aGUgY2xhc3MgY29udGFpbnMgb25seSAxCisgICAgY2hhcmFjdGVyICg8
IDI1NiksIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSBjb21waWxlZCBjb2RlIGRvZXNuJ3QgdXNl
IHRoZQorICAgIGJpdCBtYXAuICovCisKKyAgICBtZW1zZXQoY2xhc3NiaXRzLCAwLCAzMiAqIHNp
emVvZih1c2NoYXIpKTsKKworICAgIC8qIFByb2Nlc3MgY2hhcmFjdGVycyB1bnRpbCBdIGlzIHJl
YWNoZWQuIEJ5IHdyaXRpbmcgdGhpcyBhcyBhICJkbyIgaXQKKyAgICBtZWFucyB0aGF0IGFuIGlu
aXRpYWwgXSBpcyB0YWtlbiBhcyBhIGRhdGEgY2hhcmFjdGVyLiBUaGUgZmlyc3QgcGFzcworICAg
IHRocm91Z2ggdGhlIHJlZ2V4IGNoZWNrZWQgdGhlIG92ZXJhbGwgc3ludGF4LCBzbyB3ZSBkb24n
dCBuZWVkIHRvIGJlIHZlcnkKKyAgICBzdHJpY3QgaGVyZS4gQXQgdGhlIHN0YXJ0IG9mIHRoZSBs
b29wLCBjIGNvbnRhaW5zIHRoZSBmaXJzdCBieXRlIG9mIHRoZQorICAgIGNoYXJhY3Rlci4gKi8K
KworICAgIGRvCisgICAgICB7CisgICAgICBpZiAoYyA+IDEyNykKKyAgICAgICAgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIEJyYWNlcyBhcmUgcmVxdWlyZWQgYmVjYXVzZSB0aGUgKi8K
KyAgICAgICAgR0VUQ0hBUkxFTihjLCBwdHIsIHB0cik7ICAgIC8qIG1hY3JvIGdlbmVyYXRlcyBt
dWx0aXBsZSBzdGF0ZW1lbnRzICovCisgICAgICAgIH0KKworICAgICAgLyogQmFja3NsYXNoIG1h
eSBpbnRyb2R1Y2UgYSBzaW5nbGUgY2hhcmFjdGVyLCBvciBpdCBtYXkgaW50cm9kdWNlIG9uZQor
ICAgICAgb2YgdGhlIHNwZWNpYWxzLCB3aGljaCBqdXN0IHNldCBhIGZsYWcuIEVzY2FwZWQgaXRl
bXMgYXJlIGNoZWNrZWQgZm9yCisgICAgICB2YWxpZGl0eSBpbiB0aGUgcHJlLWNvbXBpbGluZyBw
YXNzLiBUaGUgc2VxdWVuY2UgXGIgaXMgYSBzcGVjaWFsIGNhc2UuCisgICAgICBJbnNpZGUgYSBj
bGFzcyAoYW5kIG9ubHkgdGhlcmUpIGl0IGlzIHRyZWF0ZWQgYXMgYmFja3NwYWNlLiBFbHNld2hl
cmUKKyAgICAgIGl0IG1hcmtzIGEgd29yZCBib3VuZGFyeS4gT3RoZXIgZXNjYXBlcyBoYXZlIHBy
ZXNldCBtYXBzIHJlYWR5IHRvCisgICAgICBvciBpbnRvIHRoZSBvbmUgd2UgYXJlIGJ1aWxkaW5n
LiBXZSBhc3N1bWUgdGhleSBoYXZlIG1vcmUgdGhhbiBvbmUKKyAgICAgIGNoYXJhY3RlciBpbiB0
aGVtLCBzbyBzZXQgY2xhc3NfY2hhcmNvdW50IGJpZ2dlciB0aGFuIG9uZS4gKi8KKworICAgICAg
aWYgKGMgPT0gJ1xcJykKKyAgICAgICAgeworICAgICAgICBjID0gY2hlY2tfZXNjYXBlKCZwdHIs
IHBhdHRlcm5FbmQsIGVycm9yY29kZXB0ciwgKmJyYWNrZXRzLCBUUlVFKTsKKworICAgICAgICBp
ZiAoLWMgPT0gRVNDX2IpIGMgPSAnXGInOyAgICAgICAvKiBcYiBpcyBiYWNrc2xhc2ggaW4gYSBj
bGFzcyAqLworCisgICAgICAgIGlmIChjIDwgMCkKKyAgICAgICAgICB7CisgICAgICAgICAgcmVn
aXN0ZXIgY29uc3QgdXNjaGFyICpjYml0cyA9IGNkLT5jYml0czsKKyAgICAgICAgICBjbGFzc19j
aGFyY291bnQgKz0gMjsgICAgIC8qIEdyZWF0ZXIgdGhhbiAxIGlzIHdoYXQgbWF0dGVycyAqLwor
ICAgICAgICAgIHN3aXRjaCAoLWMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIEVT
Q19kOgorICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNsYXNzYml0c1tjXSB8
PSBjYml0c1tjK2NiaXRfZGlnaXRdOworICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
ICAgIGNhc2UgRVNDX0Q6CisgICAgICAgICAgICBzaG91bGRfZmxpcF9uZWdhdGlvbiA9IFRSVUU7
CisgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykgY2xhc3NiaXRzW2NdIHw9IH5j
Yml0c1tjK2NiaXRfZGlnaXRdOworICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IGNhc2UgRVNDX3c6CisgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykgY2xhc3Ni
aXRzW2NdIHw9IGNiaXRzW2MrY2JpdF93b3JkXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBjYXNlIEVTQ19XOgorICAgICAgICAgICAgc2hvdWxkX2ZsaXBfbmVnYXRpb24g
PSBUUlVFOworICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNsYXNzYml0c1tj
XSB8PSB+Y2JpdHNbYytjYml0X3dvcmRdOworICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgIGNhc2UgRVNDX3M6CisgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykg
Y2xhc3NiaXRzW2NdIHw9IGNiaXRzW2MrY2JpdF9zcGFjZV07CisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgY2FzZSBFU0NfUzoKKyAgICAgICAgICAgIHNob3VsZF9mbGlwX25l
Z2F0aW9uID0gVFJVRTsKKyAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsgYysrKSBjbGFz
c2JpdHNbY10gfD0gfmNiaXRzW2MrY2JpdF9zcGFjZV07CisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAgICAgLyogVW5yZWNvZ25pemVkIGVzY2FwZXMgYXJlIGZhdWx0ZWQgaWYgUENS
RSBpcyBydW5uaW5nIGluIGl0cworICAgICAgICAgICAgc3RyaWN0IG1vZGUuIEJ5IGRlZmF1bHQs
IGZvciBjb21wYXRpYmlsaXR5IHdpdGggUGVybCwgdGhleSBhcmUKKyAgICAgICAgICAgIHRyZWF0
ZWQgYXMgbGl0ZXJhbHMuICovCisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBj
ID0gKnB0cjsgICAgICAgICAgICAgIC8qIFRoZSBmaW5hbCBjaGFyYWN0ZXIgKi8KKyAgICAgICAg
ICAgIGNsYXNzX2NoYXJjb3VudCAtPSAyOyAgLyogVW5kbyB0aGUgZGVmYXVsdCBjb3VudCBmcm9t
IGFib3ZlICovCisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgIC8qIEZhbGwg
dGhyb3VnaCBpZiB3ZSBoYXZlIGEgc2luZ2xlIGNoYXJhY3RlciAoYyA+PSAwKS4gVGhpcyBtYXkg
YmUKKyAgICAgICAgPiAyNTYgaW4gVVRGLTggbW9kZS4gKi8KKworICAgICAgICB9ICAgLyogRW5k
IG9mIGJhY2tzbGFzaCBoYW5kbGluZyAqLworCisgICAgICAvKiBBIHNpbmdsZSBjaGFyYWN0ZXIg
bWF5IGJlIGZvbGxvd2VkIGJ5ICctJyB0byBmb3JtIGEgcmFuZ2UuIEhvd2V2ZXIsCisgICAgICBQ
ZXJsIGRvZXMgbm90IHBlcm1pdCAnXScgdG8gYmUgdGhlIGVuZCBvZiB0aGUgcmFuZ2UuIEEgJy0n
IGNoYXJhY3RlcgorICAgICAgaGVyZSBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbC4gKi8KKworICAg
ICAgaWYgKHB0clsxXSA9PSAnLScgJiYgcHRyWzJdICE9ICddJykKKyAgICAgICAgeworICAgICAg
ICBpbnQgZDsKKyAgICAgICAgcHRyICs9IDI7CisKKyAgICAgICAgR0VUQ0hBUkxFTihkLCBwdHIs
IHB0cik7CisKKyAgICAgICAgLyogVGhlIHNlY29uZCBwYXJ0IG9mIGEgcmFuZ2UgY2FuIGJlIGEg
c2luZ2xlLWNoYXJhY3RlciBlc2NhcGUsIGJ1dAorICAgICAgICBub3QgYW55IG9mIHRoZSBvdGhl
ciBlc2NhcGVzLiBQZXJsIDUuNiB0cmVhdHMgYSBoeXBoZW4gYXMgYSBsaXRlcmFsCisgICAgICAg
IGluIHN1Y2ggY2lyY3Vtc3RhbmNlcy4gKi8KKworICAgICAgICBpZiAoZCA9PSAnXFwnKQorICAg
ICAgICAgIHsKKyAgICAgICAgICBjb25zdCBwY3JlX3VjaGFyICpvbGRwdHIgPSBwdHI7CisgICAg
ICAgICAgZCA9IGNoZWNrX2VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCBlcnJvcmNvZGVwdHIsICpi
cmFja2V0cywgVFJVRSk7CisKKyAgICAgICAgICAvKiBcYiBpcyBiYWNrc2xhc2g7IFxYIGlzIGxp
dGVyYWwgWDsgYW55IG90aGVyIHNwZWNpYWwgbWVhbnMgdGhlICctJworICAgICAgICAgIHdhcyBs
aXRlcmFsICovCisKKyAgICAgICAgICBpZiAoZCA8IDApCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoZCA9PSAtRVNDX2IpIGQgPSAnXGInOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgIHB0ciA9IG9sZHB0ciAtIDI7CisgICAgICAgICAgICAg
IGdvdG8gTE9ORV9TSU5HTEVfQ0hBUkFDVEVSOyAgLyogQSBmZXcgbGluZXMgYmVsb3cgKi8KKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAvKiBU
aGUgY2hlY2sgdGhhdCB0aGUgdHdvIHZhbHVlcyBhcmUgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgaGFw
cGVucyBpbgorICAgICAgICB0aGUgcHJlLXBhc3MuIE9wdGltaXplIG9uZS1jaGFyYWN0ZXIgcmFu
Z2VzICovCisKKyAgICAgICAgaWYgKGQgPT0gYykgZ290byBMT05FX1NJTkdMRV9DSEFSQUNURVI7
ICAvKiBBIGZldyBsaW5lcyBiZWxvdyAqLworCisgICAgICAgIC8qIEluIFVURi04IG1vZGUsIGlm
IHRoZSB1cHBlciBsaW1pdCBpcyA+IDI1NSwgb3IgPiAxMjcgZm9yIGNhc2VsZXNzCisgICAgICAg
IG1hdGNoaW5nLCB3ZSBoYXZlIHRvIHVzZSBhbiBYQ0xBU1Mgd2l0aCBleHRyYSBkYXRhIGl0ZW1z
LiBDYXNlbGVzcworICAgICAgICBtYXRjaGluZyBmb3IgY2hhcmFjdGVycyA+IDEyNyBpcyBhdmFp
bGFibGUgb25seSBpZiBVQ1Agc3VwcG9ydCBpcworICAgICAgICBhdmFpbGFibGUuICovCisKKyAg
ICAgICAgaWYgKChkID4gMjU1IHx8ICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAgJiYg
ZCA+IDEyNykpKQorICAgICAgICAgIHsKKyAgICAgICAgICBjbGFzc191dGY4ID0gVFJVRTsKKwor
ICAgICAgICAgIC8qIFdpdGggVUNQIHN1cHBvcnQsIHdlIGNhbiBmaW5kIHRoZSBvdGhlciBjYXNl
IGVxdWl2YWxlbnRzIG9mCisgICAgICAgICAgdGhlIHJlbGV2YW50IGNoYXJhY3RlcnMuIFRoZXJl
IG1heSBiZSBzZXZlcmFsIHJhbmdlcy4gT3B0aW1pemUgaG93CisgICAgICAgICAgdGhleSBmaXQg
d2l0aCB0aGUgYmFzaWMgcmFuZ2UuICovCisKKyAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBQQ1JF
X0NBU0VMRVNTKSAhPSAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgaW50IG9jYywgb2Nk
OworICAgICAgICAgICAgaW50IGNjID0gYzsKKyAgICAgICAgICAgIGludCBvcmlnZCA9IGQ7Cisg
ICAgICAgICAgICB3aGlsZSAoZ2V0X290aGVyY2FzZV9yYW5nZSgmY2MsIG9yaWdkLCAmb2NjLCAm
b2NkKSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICBpZiAob2NjID49IGMgJiYgb2Nk
IDw9IGQpIGNvbnRpbnVlOyAgLyogU2tpcCBlbWJlZGRlZCByYW5nZXMgKi8KKworICAgICAgICAg
ICAgICBpZiAob2NjIDwgYyAgJiYgb2NkID49IGMgLSAxKSAgICAgICAgLyogRXh0ZW5kIHRoZSBi
YXNpYyByYW5nZSAqLworICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogaWYgdGhlcmUgaXMgb3ZlcmxhcCwgICAqLworICAgICAgICAgICAgICAgIGMg
PSBvY2M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90aW5nIHRoYXQgaWYgb2NjIDwg
YyAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAg
Lyogd2UgY2FuJ3QgaGF2ZSBvY2QgPiBkICAqLworICAgICAgICAgICAgICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogYmVjYXVzZSBhIHN1YnJhbmdlIGlzICAqLworICAg
ICAgICAgICAgICBpZiAob2NkID4gZCAmJiBvY2MgPD0gZCArIDEpICAgICAgICAgLyogYWx3YXlz
IHNob3J0ZXIgdGhhbiAgICAqLworICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdGhlIGJhc2ljIHJhbmdlLiAgICAgICAqLworICAgICAgICAgICAg
ICAgIGQgPSBvY2Q7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIGlmIChvY2MgPT0gb2NkKQorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9TSU5HTEU7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1JBTkdFOworICAgICAgICAgICAgICAgIGNs
YXNzX3V0ZjhkYXRhICs9IF9wY3JlX29yZDJ1dGY4KG9jYywgY2xhc3NfdXRmOGRhdGEpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgY2xhc3NfdXRmOGRhdGEgKz0gX3BjcmVfb3Jk
MnV0Zjgob2NkLCBjbGFzc191dGY4ZGF0YSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgIC8qIE5vdyByZWNvcmQgdGhlIG9yaWdpbmFsIHJhbmdlLCBwb3NzaWJs
eSBtb2RpZmllZCBmb3IgVUNQIGNhc2VsZXNzCisgICAgICAgICAgb3ZlcmxhcHBpbmcgcmFuZ2Vz
LiAqLworCisgICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfUkFOR0U7CisgICAgICAg
ICAgY2xhc3NfdXRmOGRhdGEgKz0gX3BjcmVfb3JkMnV0ZjgoYywgY2xhc3NfdXRmOGRhdGEpOwor
ICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IF9wY3JlX29yZDJ1dGY4KGQsIGNsYXNzX3V0Zjhk
YXRhKTsKKworICAgICAgICAgIC8qIFdpdGggVUNQIHN1cHBvcnQsIHdlIGFyZSBkb25lLiBXaXRo
b3V0IFVDUCBzdXBwb3J0LCB0aGVyZSBpcyBubworICAgICAgICAgIGNhc2VsZXNzIG1hdGNoaW5n
IGZvciBVVEYtOCBjaGFyYWN0ZXJzID4gMTI3OyB3ZSBjYW4gdXNlIHRoZSBiaXQgbWFwCisgICAg
ICAgICAgZm9yIHRoZSBzbWFsbGVyIG9uZXMuICovCisKKyAgICAgICAgICBjb250aW51ZTsgICAg
LyogV2l0aCBuZXh0IGNoYXJhY3RlciBpbiB0aGUgY2xhc3MgKi8KKyAgICAgICAgICB9CisKKyAg
ICAgICAgLyogV2UgdXNlIHRoZSBiaXQgbWFwIGZvciBhbGwgY2FzZXMgd2hlbiBub3QgaW4gVVRG
LTggbW9kZTsgZWxzZQorICAgICAgICByYW5nZXMgdGhhdCBsaWUgZW50aXJlbHkgd2l0aGluIDAt
MTI3IHdoZW4gdGhlcmUgaXMgVUNQIHN1cHBvcnQ7IGVsc2UKKyAgICAgICAgZm9yIHBhcnRpYWwg
cmFuZ2VzIHdpdGhvdXQgVUNQIHN1cHBvcnQuICovCisKKyAgICAgICAgZm9yICg7IGMgPD0gZDsg
YysrKQorICAgICAgICAgIHsKKyAgICAgICAgICBjbGFzc2JpdHNbYy84XSB8PSAoMSA8PCAoYyY3
KSk7CisgICAgICAgICAgaWYgKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgIGludCB1YyA9IGNkLT5mY2NbY107ICAgICAgICAgICAvKiBm
bGlwIGNhc2UgKi8KKyAgICAgICAgICAgIGNsYXNzYml0c1t1Yy84XSB8PSAoMSA8PCAodWMmNykp
OworICAgICAgICAgICAgfQorICAgICAgICAgIGNsYXNzX2NoYXJjb3VudCsrOyAgICAgICAgICAg
ICAgICAvKiBpbiBjYXNlIGEgb25lLWNoYXIgcmFuZ2UgKi8KKyAgICAgICAgICBjbGFzc19sYXN0
Y2hhciA9IGM7CisgICAgICAgICAgfQorCisgICAgICAgIGNvbnRpbnVlOyAgIC8qIEdvIGdldCB0
aGUgbmV4dCBjaGFyIGluIHRoZSBjbGFzcyAqLworICAgICAgICB9CisKKyAgICAgIC8qIEhhbmRs
ZSBhIGxvbmUgc2luZ2xlIGNoYXJhY3RlciAtIHdlIGNhbiBnZXQgaGVyZSBmb3IgYSBub3JtYWwK
KyAgICAgIG5vbi1lc2NhcGUgY2hhciwgb3IgYWZ0ZXIgXCB0aGF0IGludHJvZHVjZXMgYSBzaW5n
bGUgY2hhcmFjdGVyIG9yIGZvciBhbgorICAgICAgYXBwYXJlbnQgcmFuZ2UgdGhhdCBpc24ndC4g
Ki8KKworICAgICAgTE9ORV9TSU5HTEVfQ0hBUkFDVEVSOgorCisgICAgICAvKiBIYW5kbGUgYSBj
aGFyYWN0ZXIgdGhhdCBjYW5ub3QgZ28gaW4gdGhlIGJpdCBtYXAgKi8KKworICAgICAgaWYgKChj
ID4gMjU1IHx8ICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAgJiYgYyA+IDEyNykpKQor
ICAgICAgICB7CisgICAgICAgIGNsYXNzX3V0ZjggPSBUUlVFOworICAgICAgICAqY2xhc3NfdXRm
OGRhdGErKyA9IFhDTF9TSU5HTEU7CisgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IF9wY3JlX29y
ZDJ1dGY4KGMsIGNsYXNzX3V0ZjhkYXRhKTsKKworICAgICAgICBpZiAoKG9wdGlvbnMgJiBQQ1JF
X0NBU0VMRVNTKSAhPSAwKQorICAgICAgICAgIHsKKyAgICAgICAgICBpbnQgb3RoZXJjYXNlOwor
ICAgICAgICAgIGlmICgob3RoZXJjYXNlID0gX3BjcmVfdWNwX290aGVyY2FzZShjKSkgPj0gMCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1NJTkdM
RTsKKyAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IF9wY3JlX29yZDJ1dGY4KG90aGVyY2Fz
ZSwgY2xhc3NfdXRmOGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAg
ICB9CisgICAgICBlbHNlCisKKyAgICAgIC8qIEhhbmRsZSBhIHNpbmdsZS1ieXRlIGNoYXJhY3Rl
ciAqLworICAgICAgICB7CisgICAgICAgIGNsYXNzYml0c1tjLzhdIHw9ICgxIDw8IChjJjcpKTsK
KyAgICAgICAgaWYgKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCkKKyAgICAgICAgICB7
CisgICAgICAgICAgYyA9IGNkLT5mY2NbY107ICAgLyogZmxpcCBjYXNlICovCisgICAgICAgICAg
Y2xhc3NiaXRzW2MvOF0gfD0gKDEgPDwgKGMmNykpOworICAgICAgICAgIH0KKyAgICAgICAgY2xh
c3NfY2hhcmNvdW50Kys7CisgICAgICAgIGNsYXNzX2xhc3RjaGFyID0gYzsKKyAgICAgICAgfQor
ICAgICAgfQorCisgICAgLyogTG9vcCB1bnRpbCAnXScgcmVhY2hlZDsgdGhlIGNoZWNrIGZvciBl
bmQgb2Ygc3RyaW5nIGhhcHBlbnMgaW5zaWRlIHRoZQorICAgIGxvb3AuIFRoaXMgIndoaWxlIiBp
cyB0aGUgZW5kIG9mIHRoZSAiZG8iIGFib3ZlLiAqLworCisgICAgd2hpbGUgKChjID0gKigrK3B0
cikpICE9ICddJyk7CisKKyAgICAvKiBJZiBjbGFzc19jaGFyY291bnQgaXMgMSwgd2Ugc2F3IHBy
ZWNpc2VseSBvbmUgY2hhcmFjdGVyIHdob3NlIHZhbHVlIGlzCisgICAgbGVzcyB0aGFuIDI1Ni4g
SW4gbm9uLVVURi04IG1vZGUgd2UgY2FuIGFsd2F5cyBvcHRpbWl6ZS4gSW4gVVRGLTggbW9kZSwg
d2UKKyAgICBjYW4gb3B0aW1pemUgdGhlIG5lZ2F0aXZlIGNhc2Ugb25seSBpZiB0aGVyZSB3ZXJl
IG5vIGNoYXJhY3RlcnMgPj0gMTI4CisgICAgYmVjYXVzZSBPUF9OT1QgYW5kIHRoZSByZWxhdGVk
IG9wY29kZXMgbGlrZSBPUF9OT1RTVEFSIG9wZXJhdGUgb24KKyAgICBzaW5nbGUtYnl0ZXMgb25s
eS4gVGhpcyBpcyBhbiBoaXN0b3JpY2FsIGhhbmdvdmVyLiBNYXliZSBvbmUgZGF5IHdlIGNhbgor
ICAgIHRpZHkgdGhlc2Ugb3Bjb2RlcyB0byBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgor
CisgICAgVGhlIG9wdGltaXphdGlvbiB0aHJvd3MgYXdheSB0aGUgYml0IG1hcC4gV2UgdHVybiB0
aGUgaXRlbSBpbnRvIGEKKyAgICAxLWNoYXJhY3RlciBPUF9DSEFSW05DXSBpZiBpdCdzIHBvc2l0
aXZlLCBvciBPUF9OT1QgaWYgaXQncyBuZWdhdGl2ZS4gTm90ZQorICAgIHRoYXQgT1BfTk9UIGRv
ZXMgbm90IHN1cHBvcnQgbXVsdGlieXRlIGNoYXJhY3RlcnMuIEluIHRoZSBwb3NpdGl2ZSBjYXNl
LCBpdAorICAgIGNhbiBjYXVzZSBmaXJzdGJ5dGUgdG8gYmUgc2V0LiBPdGhlcndpc2UsIHRoZXJl
IGNhbiBiZSBubyBmaXJzdCBjaGFyIGlmCisgICAgdGhpcyBpdGVtIGlzIGZpcnN0LCB3aGF0ZXZl
ciByZXBlYXQgY291bnQgbWF5IGZvbGxvdy4gSW4gdGhlIGNhc2Ugb2YKKyAgICByZXFieXRlLCBz
YXZlIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgcmVpbnN0YXRpbmcuICovCisKKyAgICBpZiAoY2xh
c3NfY2hhcmNvdW50ID09IDEgJiYKKyAgICAgICAgICAoIWNsYXNzX3V0ZjggJiYgKCFuZWdhdGVf
Y2xhc3MgfHwgY2xhc3NfbGFzdGNoYXIgPCAxMjgpKSkKKyAgICAgIHsKKyAgICAgIHplcm9yZXFi
eXRlID0gcmVxYnl0ZTsKKworICAgICAgLyogVGhlIE9QX05PVCBvcGNvZGUgd29ya3Mgb24gb25l
LWJ5dGUgY2hhcmFjdGVycyBvbmx5LiAqLworCisgICAgICBpZiAobmVnYXRlX2NsYXNzKQorICAg
ICAgICB7CisgICAgICAgIGlmIChmaXJzdGJ5dGUgPT0gUkVRX1VOU0VUKSBmaXJzdGJ5dGUgPSBS
RVFfTk9ORTsKKyAgICAgICAgemVyb2ZpcnN0Ynl0ZSA9IGZpcnN0Ynl0ZTsKKyAgICAgICAgKmNv
ZGUrKyA9IE9QX05PVDsKKyAgICAgICAgKmNvZGUrKyA9IGNsYXNzX2xhc3RjaGFyOworICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAvKiBGb3IgYSBzaW5nbGUsIHBvc2l0aXZlIGNo
YXJhY3RlciwgZ2V0IHRoZSB2YWx1ZSBpbnRvIGMsIGFuZAorICAgICAgdGhlbiB3ZSBjYW4gaGFu
ZGxlIHRoaXMgd2l0aCB0aGUgbm9ybWFsIG9uZS1jaGFyYWN0ZXIgY29kZS4gKi8KKworICAgICAg
YyA9IGNsYXNzX2xhc3RjaGFyOworICAgICAgZ290byBOT1JNQUxfQ0hBUjsKKyAgICAgIH0gICAg
ICAgLyogRW5kIG9mIDEtY2hhciBvcHRpbWl6YXRpb24gKi8KKworICAgIC8qIFRoZSBnZW5lcmFs
IGNhc2UgLSBub3QgdGhlIG9uZS1jaGFyIG9wdGltaXphdGlvbi4gSWYgdGhpcyBpcyB0aGUgZmly
c3QKKyAgICB0aGluZyBpbiB0aGUgYnJhbmNoLCB0aGVyZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBz
ZXR0aW5nLCB3aGF0ZXZlciB0aGUKKyAgICByZXBlYXQgY291bnQuIEFueSByZXFieXRlIHNldHRp
bmcgbXVzdCByZW1haW4gdW5jaGFuZ2VkIGFmdGVyIGFueSBraW5kIG9mCisgICAgcmVwZWF0LiAq
LworCisgICAgaWYgKGZpcnN0Ynl0ZSA9PSBSRVFfVU5TRVQpIGZpcnN0Ynl0ZSA9IFJFUV9OT05F
OworICAgIHplcm9maXJzdGJ5dGUgPSBmaXJzdGJ5dGU7CisgICAgemVyb3JlcWJ5dGUgPSByZXFi
eXRlOworCisgICAgLyogSWYgdGhlcmUgYXJlIGNoYXJhY3RlcnMgd2l0aCB2YWx1ZXMgPiAyNTUs
IHdlIGhhdmUgdG8gY29tcGlsZSBhbgorICAgIGV4dGVuZGVkIGNsYXNzLCB3aXRoIGl0cyBvd24g
b3Bjb2RlLiBJZiB0aGVyZSBhcmUgbm8gY2hhcmFjdGVycyA8IDI1NiwKKyAgICB3ZSBjYW4gb21p
dCB0aGUgYml0bWFwLiAqLworCisgICAgaWYgKGNsYXNzX3V0ZjggJiYgIXNob3VsZF9mbGlwX25l
Z2F0aW9uKQorICAgICAgeworICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfRU5EOyAgICAv
KiBNYXJrcyB0aGUgZW5kIG9mIGV4dHJhIGRhdGEgKi8KKyAgICAgICpjb2RlKysgPSBPUF9YQ0xB
U1M7CisgICAgICBjb2RlICs9IExJTktfU0laRTsKKyAgICAgICpjb2RlID0gbmVnYXRlX2NsYXNz
PyBYQ0xfTk9UIDogMDsKKworICAgICAgLyogSWYgdGhlIG1hcCBpcyByZXF1aXJlZCwgaW5zdGFs
bCBpdCwgYW5kIG1vdmUgb24gdG8gdGhlIGVuZCBvZgorICAgICAgdGhlIGV4dHJhIGRhdGEgKi8K
KworICAgICAgaWYgKGNsYXNzX2NoYXJjb3VudCA+IDApCisgICAgICAgIHsKKyAgICAgICAgKmNv
ZGUrKyB8PSBYQ0xfTUFQOworICAgICAgICBtZW1jcHkoY29kZSwgY2xhc3NiaXRzLCAzMik7Cisg
ICAgICAgIGNvZGUgPSBjbGFzc191dGY4ZGF0YTsKKyAgICAgICAgfQorCisgICAgICAvKiBJZiB0
aGUgbWFwIGlzIG5vdCByZXF1aXJlZCwgc2xpZGUgZG93biB0aGUgZXh0cmEgZGF0YS4gKi8KKwor
ICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgIGludCBsZW4gPSBjbGFzc191dGY4ZGF0YSAt
IChjb2RlICsgMzMpOworICAgICAgICBtZW1tb3ZlKGNvZGUgKyAxLCBjb2RlICsgMzMsIGxlbik7
CisgICAgICAgIGNvZGUgKz0gbGVuICsgMTsKKyAgICAgICAgfQorCisgICAgICAvKiBOb3cgZmls
bCBpbiB0aGUgY29tcGxldGUgbGVuZ3RoIG9mIHRoZSBpdGVtICovCisKKyAgICAgIFBVVChwcmV2
aW91cywgMSwgY29kZSAtIHByZXZpb3VzKTsKKyAgICAgIGJyZWFrOyAgIC8qIEVuZCBvZiBjbGFz
cyBoYW5kbGluZyAqLworICAgICAgfQorCisgICAgLyogSWYgdGhlcmUgYXJlIG5vIGNoYXJhY3Rl
cnMgPiAyNTUsIG5lZ2F0ZSB0aGUgMzItYnl0ZSBtYXAgaWYgbmVjZXNzYXJ5LAorICAgIGFuZCBj
b3B5IGl0IGludG8gdGhlIGNvZGUgdmVjdG9yLiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0aGluZyBp
biB0aGUgYnJhbmNoLAorICAgIHRoZXJlIGNhbiBiZSBubyBmaXJzdCBjaGFyIHNldHRpbmcsIHdo
YXRldmVyIHRoZSByZXBlYXQgY291bnQuIEFueSByZXFieXRlCisgICAgc2V0dGluZyBtdXN0IHJl
bWFpbiB1bmNoYW5nZWQgYWZ0ZXIgYW55IGtpbmQgb2YgcmVwZWF0LiAqLworCisgICAgKmNvZGUr
KyA9IChuZWdhdGVfY2xhc3MgPT0gc2hvdWxkX2ZsaXBfbmVnYXRpb24pID8gT1BfQ0xBU1MgOiBP
UF9OQ0xBU1M7CisgICAgaWYgKG5lZ2F0ZV9jbGFzcykKKyAgICAgIHsKKyAgICAgIGZvciAoYyA9
IDA7IGMgPCAzMjsgYysrKSBjb2RlW2NdID0gfmNsYXNzYml0c1tjXTsKKyAgICAgIH0KKyAgICBl
bHNlCisgICAgICB7CisgICAgICBtZW1jcHkoY29kZSwgY2xhc3NiaXRzLCAzMik7CisgICAgICB9
CisgICAgY29kZSArPSAzMjsKKyAgICBicmVhazsKKworICAgIC8qIFZhcmlvdXMga2luZHMgb2Yg
cmVwZWF0OyAneycgaXMgbm90IG5lY2Vzc2FyaWx5IGEgcXVhbnRpZmllciwgYnV0IHRoaXMKKyAg
ICBoYXMgYmVlbiB0ZXN0ZWQgYWJvdmUuICovCisKKyAgICBjYXNlICd7JzoKKyAgICBpZiAoIWlz
X3F1YW50aWZpZXIpIGdvdG8gTk9STUFMX0NIQVI7CisgICAgcHRyID0gcmVhZF9yZXBlYXRfY291
bnRzKHB0cisxLCAmcmVwZWF0X21pbiwgJnJlcGVhdF9tYXgsIGVycm9yY29kZXB0cik7CisgICAg
aWYgKCplcnJvcmNvZGVwdHIgIT0gMCkgZ290byBGQUlMRUQ7CisgICAgZ290byBSRVBFQVQ7CisK
KyAgICBjYXNlICcqJzoKKyAgICByZXBlYXRfbWluID0gMDsKKyAgICByZXBlYXRfbWF4ID0gLTE7
CisgICAgZ290byBSRVBFQVQ7CisKKyAgICBjYXNlICcrJzoKKyAgICByZXBlYXRfbWluID0gMTsK
KyAgICByZXBlYXRfbWF4ID0gLTE7CisgICAgZ290byBSRVBFQVQ7CisKKyAgICBjYXNlICc/JzoK
KyAgICByZXBlYXRfbWluID0gMDsKKyAgICByZXBlYXRfbWF4ID0gMTsKKworICAgIFJFUEVBVDoK
KyAgICBpZiAocHJldmlvdXMgPT0gTlVMTCkKKyAgICAgIHsKKyAgICAgICplcnJvcmNvZGVwdHIg
PSBFUlI5OworICAgICAgZ290byBGQUlMRUQ7CisgICAgICB9CisKKyAgICBpZiAocmVwZWF0X21p
biA9PSAwKQorICAgICAgeworICAgICAgZmlyc3RieXRlID0gemVyb2ZpcnN0Ynl0ZTsgICAgLyog
QWRqdXN0IGZvciB6ZXJvIHJlcGVhdCAqLworICAgICAgcmVxYnl0ZSA9IHplcm9yZXFieXRlOyAg
ICAgICAgLyogRGl0dG8gKi8KKyAgICAgIH0KKworICAgIC8qIFJlbWVtYmVyIHdoZXRoZXIgdGhp
cyBpcyBhIHZhcmlhYmxlIGxlbmd0aCByZXBlYXQgKi8KKworICAgIHJlcXZhcnkgPSAocmVwZWF0
X21pbiA9PSByZXBlYXRfbWF4KT8gMCA6IFJFUV9WQVJZOworCisgICAgb3BfdHlwZSA9IDA7ICAg
ICAgICAgICAgICAgICAgICAvKiBEZWZhdWx0IHNpbmdsZS1jaGFyIG9wIGNvZGVzICovCisgICAg
cG9zc2Vzc2l2ZV9xdWFudGlmaWVyID0gRkFMU0U7ICAvKiBEZWZhdWx0IG5vdCBwb3NzZXNzaXZl
IHF1YW50aWZpZXIgKi8KKworICAgIC8qIFNhdmUgc3RhcnQgb2YgcHJldmlvdXMgaXRlbSwgaW4g
Y2FzZSB3ZSBoYXZlIHRvIG1vdmUgaXQgdXAgdG8gbWFrZSBzcGFjZQorICAgIGZvciBhbiBpbnNl
cnRlZCBPUF9PTkNFIGZvciB0aGUgYWRkaXRpb25hbCAnKycgZXh0ZW5zaW9uLiAqLworCisgICAg
dGVtcGNvZGUgPSBwcmV2aW91czsKKworICAgIC8qIElmIHRoZSBuZXh0IGNoYXJhY3RlciBpcyAn
KycsIHdlIGhhdmUgYSBwb3NzZXNzaXZlIHF1YW50aWZpZXIuIFRoaXMKKyAgICBpbXBsaWVzIGdy
ZWVkaW5lc3MsIHdoYXRldmVyIHRoZSBzZXR0aW5nIG9mIHRoZSBQQ1JFX1VOR1JFRURZIG9wdGlv
bi4KKyAgICBJZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgJz8nIHRoaXMgaXMgYSBtaW5pbWl6aW5n
IHJlcGVhdCwgYnkgZGVmYXVsdCwKKyAgICBidXQgaWYgUENSRV9VTkdSRUVEWSBpcyBzZXQsIGl0
IHdvcmtzIHRoZSBvdGhlciB3YXkgcm91bmQuIFdlIGNoYW5nZSB0aGUKKyAgICByZXBlYXQgdHlw
ZSB0byB0aGUgbm9uLWRlZmF1bHQuICovCisKKyAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQg
JiYgcHRyWzFdID09ICcrJykKKyAgICAgIHsKKyAgICAgIHJlcGVhdF90eXBlID0gMDsgICAgICAg
ICAgICAgICAgICAvKiBGb3JjZSBncmVlZHkgKi8KKyAgICAgIHBvc3Nlc3NpdmVfcXVhbnRpZmll
ciA9IFRSVUU7CisgICAgICBwdHIrKzsKKyAgICAgIH0KKyAgICBlbHNlIGlmIChwdHIgKyAxIDwg
cGF0dGVybkVuZCAmJiBwdHJbMV0gPT0gJz8nKQorICAgICAgeworICAgICAgcmVwZWF0X3R5cGUg
PSAxOworICAgICAgcHRyKys7CisgICAgICB9CisgICAgZWxzZSByZXBlYXRfdHlwZSA9IDA7CisK
KyAgICAvKiBJZiBwcmV2aW91cyB3YXMgYSBjaGFyYWN0ZXIgbWF0Y2gsIGFib2xpc2ggdGhlIGl0
ZW0gYW5kIGdlbmVyYXRlIGEKKyAgICByZXBlYXQgaXRlbSBpbnN0ZWFkLiBJZiBhIGNoYXIgaXRl
bSBoYXMgYSBtaW51bXVtIG9mIG1vcmUgdGhhbiBvbmUsIGVuc3VyZQorICAgIHRoYXQgaXQgaXMg
c2V0IGluIHJlcWJ5dGUgLSBpdCBtaWdodCBub3QgYmUgaWYgYSBzZXF1ZW5jZSBzdWNoIGFzIHh7
M30gaXMKKyAgICB0aGUgZmlyc3QgdGhpbmcgaW4gYSBicmFuY2ggYmVjYXVzZSB0aGUgeCB3aWxs
IGhhdmUgZ29uZSBpbnRvIGZpcnN0Ynl0ZQorICAgIGluc3RlYWQuICAqLworCisgICAgaWYgKCpw
cmV2aW91cyA9PSBPUF9DSEFSIHx8ICpwcmV2aW91cyA9PSBPUF9DSEFSTkMpCisgICAgICB7Cisg
ICAgICAvKiBEZWFsIHdpdGggVVRGLTggY2hhcmFjdGVycyB0aGF0IHRha2UgdXAgbW9yZSB0aGFu
IG9uZSBieXRlLiBJdCdzCisgICAgICBlYXNpZXIgdG8gd3JpdGUgdGhpcyBvdXQgc2VwYXJhdGVs
eSB0aGFuIHRyeSB0byBtYWNyaWZ5IGl0LiBVc2UgYyB0bworICAgICAgaG9sZCB0aGUgbGVuZ3Ro
IG9mIHRoZSBjaGFyYWN0ZXIgaW4gYnl0ZXMsIHBsdXMgMHg4MCB0byBmbGFnIHRoYXQgaXQncyBh
CisgICAgICBsZW5ndGggcmF0aGVyIHRoYW4gYSBzbWFsbCBjaGFyYWN0ZXIuICovCisKKyAgICAg
IGlmICgoY29kZVstMV0gJiAweDgwKSAhPSAwKQorICAgICAgICB7CisgICAgICAgIHVzY2hhciAq
bGFzdGNoYXIgPSBjb2RlIC0gMTsKKyAgICAgICAgd2hpbGUoKCpsYXN0Y2hhciAmIDB4YzApID09
IDB4ODApIGxhc3RjaGFyLS07CisgICAgICAgIGMgPSBjb2RlIC0gbGFzdGNoYXI7ICAgICAgICAg
ICAgLyogTGVuZ3RoIG9mIFVURi04IGNoYXJhY3RlciAqLworICAgICAgICBtZW1jcHkodXRmOF9j
aGFyLCBsYXN0Y2hhciwgYyk7IC8qIFNhdmUgdGhlIGNoYXIgKi8KKyAgICAgICAgYyB8PSAweDgw
OyAgICAgICAgICAgICAgICAgICAgICAvKiBGbGFnIGMgYXMgYSBsZW5ndGggKi8KKyAgICAgICAg
fQorICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgIGMgPSBjb2RlWy0xXTsKKyAgICAgICAg
aWYgKHJlcGVhdF9taW4gPiAxKSByZXFieXRlID0gYyB8IHJlcV9jYXNlb3B0IHwgY2QtPnJlcV92
YXJ5b3B0OworICAgICAgICB9CisKKyAgICAgIGdvdG8gT1VUUFVUX1NJTkdMRV9SRVBFQVQ7ICAg
LyogQ29kZSBzaGFyZWQgd2l0aCBzaW5nbGUgY2hhcmFjdGVyIHR5cGVzICovCisgICAgICB9CisK
KyAgICBlbHNlIGlmICgqcHJldmlvdXMgPT0gT1BfQVNDSUlfQ0hBUiB8fCAqcHJldmlvdXMgPT0g
T1BfQVNDSUlfTEVUVEVSX05DKQorICAgICAgeworICAgICAgYyA9IHByZXZpb3VzWzFdOworICAg
ICAgaWYgKHJlcGVhdF9taW4gPiAxKSByZXFieXRlID0gYyB8IHJlcV9jYXNlb3B0IHwgY2QtPnJl
cV92YXJ5b3B0OworICAgICAgZ290byBPVVRQVVRfU0lOR0xFX1JFUEVBVDsKKyAgICAgIH0KKwor
ICAgIC8qIElmIHByZXZpb3VzIHdhcyBhIHNpbmdsZSBuZWdhdGVkIGNoYXJhY3RlciAoW15hXSBv
ciBzaW1pbGFyKSwgd2UgdXNlCisgICAgb25lIG9mIHRoZSBzcGVjaWFsIG9wY29kZXMsIHJlcGxh
Y2luZyBpdC4gVGhlIGNvZGUgaXMgc2hhcmVkIHdpdGggc2luZ2xlLQorICAgIGNoYXJhY3RlciBy
ZXBlYXRzIGJ5IHNldHRpbmcgb3B0X3R5cGUgdG8gYWRkIGEgc3VpdGFibGUgb2Zmc2V0IGludG8K
KyAgICByZXBlYXRfdHlwZS4gT1BfTk9UIGlzIGN1cnJlbnRseSB1c2VkIG9ubHkgZm9yIHNpbmds
ZS1ieXRlIGNoYXJzLiAqLworCisgICAgZWxzZSBpZiAoKnByZXZpb3VzID09IE9QX05PVCkKKyAg
ICAgIHsKKyAgICAgIG9wX3R5cGUgPSBPUF9OT1RTVEFSIC0gT1BfU1RBUjsgIC8qIFVzZSAibm90
IiBvcGNvZGVzICovCisgICAgICBjID0gcHJldmlvdXNbMV07CisgICAgICBnb3RvIE9VVFBVVF9T
SU5HTEVfUkVQRUFUOworICAgICAgfQorCisgICAgLyogSWYgcHJldmlvdXMgd2FzIGEgY2hhcmFj
dGVyIHR5cGUgbWF0Y2ggKFxkIG9yIHNpbWlsYXIpLCBhYm9saXNoIGl0IGFuZAorICAgIGNyZWF0
ZSBhIHN1aXRhYmxlIHJlcGVhdCBpdGVtLiBUaGUgY29kZSBpcyBzaGFyZWQgd2l0aCBzaW5nbGUt
Y2hhcmFjdGVyCisgICAgcmVwZWF0cyBieSBzZXR0aW5nIG9wX3R5cGUgdG8gYWRkIGEgc3VpdGFi
bGUgb2Zmc2V0IGludG8gcmVwZWF0X3R5cGUuICovCisKKyAgICBlbHNlIGlmICgqcHJldmlvdXMg
PD0gT1BfQU5ZKQorICAgICAgeworICAgICAgdXNjaGFyICpvbGRjb2RlOworICAgICAgaW50IHBy
b3BfdHlwZSwgcHJvcF92YWx1ZTsKKyAgICAgIG9wX3R5cGUgPSBPUF9UWVBFU1RBUiAtIE9QX1NU
QVI7ICAvKiBVc2UgdHlwZSBvcGNvZGVzICovCisgICAgICBjID0gKnByZXZpb3VzOworCisgICAg
ICBPVVRQVVRfU0lOR0xFX1JFUEVBVDoKKyAgICAgIHByb3BfdHlwZSA9IHByb3BfdmFsdWUgPSAt
MTsKKworICAgICAgb2xkY29kZSA9IGNvZGU7CisgICAgICBjb2RlID0gcHJldmlvdXM7ICAgICAg
ICAgICAgICAgICAgLyogVXN1YWxseSBvdmVyd3JpdGUgcHJldmlvdXMgaXRlbSAqLworCisgICAg
ICAvKiBJZiB0aGUgbWF4aW11bSBpcyB6ZXJvIHRoZW4gdGhlIG1pbmltdW0gbXVzdCBhbHNvIGJl
IHplcm87IFBlcmwgYWxsb3dzCisgICAgICB0aGlzIGNhc2UsIHNvIHdlIGRvIHRvbyAtIGJ5IHNp
bXBseSBvbWl0dGluZyB0aGUgaXRlbSBhbHRvZ2V0aGVyLiAqLworCisgICAgICBpZiAocmVwZWF0
X21heCA9PSAwKSBnb3RvIEVORF9SRVBFQVQ7CisKKyAgICAgIC8qIENvbWJpbmUgdGhlIG9wX3R5
cGUgd2l0aCB0aGUgcmVwZWF0X3R5cGUgKi8KKworICAgICAgcmVwZWF0X3R5cGUgKz0gb3BfdHlw
ZTsKKworICAgICAgLyogQSBtaW5pbXVtIG9mIHplcm8gaXMgaGFuZGxlZCBlaXRoZXIgYXMgdGhl
IHNwZWNpYWwgY2FzZSAqIG9yID8sIG9yIGFzCisgICAgICBhbiBVUFRPLCB3aXRoIHRoZSBtYXhp
bXVtIGdpdmVuLiAqLworCisgICAgICBpZiAocmVwZWF0X21pbiA9PSAwKQorICAgICAgICB7Cisg
ICAgICAgIGlmIChyZXBlYXRfbWF4ID09IC0xKSAqY29kZSsrID0gT1BfU1RBUiArIHJlcGVhdF90
eXBlOworICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdF9tYXggPT0gMSkgKmNvZGUrKyA9IE9QX1FV
RVJZICsgcmVwZWF0X3R5cGU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAg
KmNvZGUrKyA9IE9QX1VQVE8gKyByZXBlYXRfdHlwZTsKKyAgICAgICAgICBQVVQySU5DKGNvZGUs
IDAsIHJlcGVhdF9tYXgpOworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAvKiBBIHJl
cGVhdCBtaW5pbXVtIG9mIDEgaXMgb3B0aW1pemVkIGludG8gc29tZSBzcGVjaWFsIGNhc2VzLiBJ
ZiB0aGUKKyAgICAgIG1heGltdW0gaXMgdW5saW1pdGVkLCB3ZSB1c2UgT1BfUExVUy4gT3RoZXJ3
aXNlLCB0aGUgb3JpZ2luYWwgaXRlbSBpdAorICAgICAgbGVmdCBpbiBwbGFjZSBhbmQsIGlmIHRo
ZSBtYXhpbXVtIGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZSB1c2UgT1BfVVBUTyB3aXRoCisgICAgICBv
bmUgbGVzcyB0aGFuIHRoZSBtYXhpbXVtLiAqLworCisgICAgICBlbHNlIGlmIChyZXBlYXRfbWlu
ID09IDEpCisgICAgICAgIHsKKyAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0gLTEpCisgICAgICAg
ICAgKmNvZGUrKyA9IE9QX1BMVVMgKyByZXBlYXRfdHlwZTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgIHsKKyAgICAgICAgICBjb2RlID0gb2xkY29kZTsgICAgICAgICAgICAgICAgIC8qIGxlYXZl
IHByZXZpb3VzIGl0ZW0gaW4gcGxhY2UgKi8KKyAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAx
KSBnb3RvIEVORF9SRVBFQVQ7CisgICAgICAgICAgKmNvZGUrKyA9IE9QX1VQVE8gKyByZXBlYXRf
dHlwZTsKKyAgICAgICAgICBQVVQySU5DKGNvZGUsIDAsIHJlcGVhdF9tYXggLSAxKTsKKyAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogVGhlIGNhc2Uge24sbn0gaXMganVzdCBhbiBF
WEFDVCwgd2hpbGUgdGhlIGdlbmVyYWwgY2FzZSB7bixtfSBpcworICAgICAgaGFuZGxlZCBhcyBh
biBFWEFDVCBmb2xsb3dlZCBieSBhbiBVUFRPLiAqLworCisgICAgICBlbHNlCisgICAgICAgIHsK
KyAgICAgICAgKmNvZGUrKyA9IE9QX0VYQUNUICsgb3BfdHlwZTsgIC8qIE5CIEVYQUNUIGRvZXNu
J3QgaGF2ZSByZXBlYXRfdHlwZSAqLworICAgICAgICBQVVQySU5DKGNvZGUsIDAsIHJlcGVhdF9t
aW4pOworCisgICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIGlzIHVubGltaXRlZCwgaW5zZXJ0IGFu
IE9QX1NUQVIuIEJlZm9yZSBkb2luZyBzbywKKyAgICAgICAgd2UgaGF2ZSB0byBpbnNlcnQgdGhl
IGNoYXJhY3RlciBmb3IgdGhlIHByZXZpb3VzIGNvZGUuIEZvciBhIHJlcGVhdGVkCisgICAgICAg
IFVuaWNvZGUgcHJvcGVydHkgbWF0Y2gsIHRoZXJlIGFyZSB0d28gZXh0cmEgYnl0ZXMgdGhhdCBk
ZWZpbmUgdGhlCisgICAgICAgIHJlcXVpcmVkIHByb3BlcnR5LiBJbiBVVEYtOCBtb2RlLCBsb25n
IGNoYXJhY3RlcnMgaGF2ZSB0aGVpciBsZW5ndGggaW4KKyAgICAgICAgYywgd2l0aCB0aGUgMHg4
MCBiaXQgYXMgYSBmbGFnLiAqLworCisgICAgICAgIGlmIChyZXBlYXRfbWF4IDwgMCkKKyAgICAg
ICAgICB7CisgICAgICAgICAgaWYgKGMgPj0gMTI4KQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgbWVtY3B5KGNvZGUsIHV0ZjhfY2hhciwgYyAmIDcpOworICAgICAgICAgICAgY29kZSArPSBj
ICYgNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAqY29kZSsrID0gYzsKKyAgICAgICAgICAgIGlmIChwcm9wX3R5cGUgPj0gMCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAqY29kZSsrID0gcHJvcF90eXBlOworICAgICAg
ICAgICAgICAqY29kZSsrID0gcHJvcF92YWx1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgICpjb2RlKysgPSBPUF9TVEFSICsgcmVwZWF0X3R5cGU7CisgICAgICAg
ICAgfQorCisgICAgICAgIC8qIEVsc2UgaW5zZXJ0IGFuIFVQVE8gaWYgdGhlIG1heCBpcyBncmVh
dGVyIHRoYW4gdGhlIG1pbiwgYWdhaW4KKyAgICAgICAgcHJlY2VkZWQgYnkgdGhlIGNoYXJhY3Rl
ciwgZm9yIHRoZSBwcmV2aW91c2x5IGluc2VydGVkIGNvZGUuICovCisKKyAgICAgICAgZWxzZSBp
ZiAocmVwZWF0X21heCAhPSByZXBlYXRfbWluKQorICAgICAgICAgIHsKKyAgICAgICAgICBpZiAo
YyA+PSAxMjgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBtZW1jcHkoY29kZSwgdXRmOF9j
aGFyLCBjICYgNyk7CisgICAgICAgICAgICBjb2RlICs9IGMgJiA3OworICAgICAgICAgICAgfQor
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAqY29kZSsrID0gYzsKKyAgICAgICAgICBpZiAocHJv
cF90eXBlID49IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAqY29kZSsrID0gcHJvcF90
eXBlOworICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdmFsdWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgcmVwZWF0X21heCAtPSByZXBlYXRfbWluOworICAgICAgICAgICpjb2RlKysgPSBP
UF9VUFRPICsgcmVwZWF0X3R5cGU7CisgICAgICAgICAgUFVUMklOQyhjb2RlLCAwLCByZXBlYXRf
bWF4KTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogVGhlIGNoYXJhY3RlciBv
ciBjaGFyYWN0ZXIgdHlwZSBpdHNlbGYgY29tZXMgbGFzdCBpbiBhbGwgY2FzZXMuICovCisKKyAg
ICAgIGlmIChjID49IDEyOCkKKyAgICAgICAgeworICAgICAgICBtZW1jcHkoY29kZSwgdXRmOF9j
aGFyLCBjICYgNyk7CisgICAgICAgIGNvZGUgKz0gYyAmIDc7CisgICAgICAgIH0KKyAgICAgIGVs
c2UKKyAgICAgICpjb2RlKysgPSBjOworCisgICAgICAvKiBGb3IgYSByZXBlYXRlZCBVbmljb2Rl
IHByb3BlcnR5IG1hdGNoLCB0aGVyZSBhcmUgdHdvIGV4dHJhIGJ5dGVzIHRoYXQKKyAgICAgIGRl
ZmluZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkuICovCisKKyAgICAgIGlmIChwcm9wX3R5cGUgPj0g
MCkKKyAgICAgICAgeworICAgICAgICAqY29kZSsrID0gcHJvcF90eXBlOworICAgICAgICAqY29k
ZSsrID0gcHJvcF92YWx1ZTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgLyogSWYgcHJldmlv
dXMgd2FzIGEgY2hhcmFjdGVyIGNsYXNzIG9yIGEgYmFjayByZWZlcmVuY2UsIHdlIHB1dCB0aGUg
cmVwZWF0CisgICAgc3R1ZmYgYWZ0ZXIgaXQsIGJ1dCBqdXN0IHNraXAgdGhlIGl0ZW0gaWYgdGhl
IHJlcGVhdCB3YXMgezAsMH0uICovCisKKyAgICBlbHNlIGlmICgqcHJldmlvdXMgPT0gT1BfQ0xB
U1MgfHwKKyAgICAgICAgICAgICAqcHJldmlvdXMgPT0gT1BfTkNMQVNTIHx8CisgICAgICAgICAg
ICAgKnByZXZpb3VzID09IE9QX1hDTEFTUyB8fAorICAgICAgICAgICAgICpwcmV2aW91cyA9PSBP
UF9SRUYpCisgICAgICB7CisgICAgICBpZiAocmVwZWF0X21heCA9PSAwKQorICAgICAgICB7Cisg
ICAgICAgIGNvZGUgPSBwcmV2aW91czsKKyAgICAgICAgZ290byBFTkRfUkVQRUFUOworICAgICAg
ICB9CisKKyAgICAgIGlmIChyZXBlYXRfbWluID09IDAgJiYgcmVwZWF0X21heCA9PSAtMSkKKyAg
ICAgICAgKmNvZGUrKyA9IE9QX0NSU1RBUiArIHJlcGVhdF90eXBlOworICAgICAgZWxzZSBpZiAo
cmVwZWF0X21pbiA9PSAxICYmIHJlcGVhdF9tYXggPT0gLTEpCisgICAgICAgICpjb2RlKysgPSBP
UF9DUlBMVVMgKyByZXBlYXRfdHlwZTsKKyAgICAgIGVsc2UgaWYgKHJlcGVhdF9taW4gPT0gMCAm
JiByZXBlYXRfbWF4ID09IDEpCisgICAgICAgICpjb2RlKysgPSBPUF9DUlFVRVJZICsgcmVwZWF0
X3R5cGU7CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgKmNvZGUrKyA9IE9QX0NSUkFO
R0UgKyByZXBlYXRfdHlwZTsKKyAgICAgICAgUFVUMklOQyhjb2RlLCAwLCByZXBlYXRfbWluKTsK
KyAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0gLTEpIHJlcGVhdF9tYXggPSAwOyAgLyogMi1ieXRl
IGVuY29kaW5nIGZvciBtYXggKi8KKyAgICAgICAgUFVUMklOQyhjb2RlLCAwLCByZXBlYXRfbWF4
KTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgLyogSWYgcHJldmlvdXMgd2FzIGEgYnJhY2tl
dCBncm91cCwgd2UgbWF5IGhhdmUgdG8gcmVwbGljYXRlIGl0IGluIGNlcnRhaW4KKyAgICBjYXNl
cy4gKi8KKworICAgIGVsc2UgaWYgKCpwcmV2aW91cyA+PSBPUF9CUkEgfHwgKnByZXZpb3VzID09
IE9QX09OQ0UpCisgICAgICB7CisgICAgICByZWdpc3RlciBpbnQgaTsKKyAgICAgIGludCBrZXRv
ZmZzZXQgPSAwOworICAgICAgaW50IGxlbiA9IGNvZGUgLSBwcmV2aW91czsKKyAgICAgIHVzY2hh
ciAqYnJhbGluayA9IE5VTEw7CisKKyAgICAgIC8qIElmIHRoZSBtYXhpbXVtIHJlcGVhdCBjb3Vu
dCBpcyB1bmxpbWl0ZWQsIGZpbmQgdGhlIGVuZCBvZiB0aGUgYnJhY2tldAorICAgICAgYnkgc2Nh
bm5pbmcgdGhyb3VnaCBmcm9tIHRoZSBzdGFydCwgYW5kIGNvbXB1dGUgdGhlIG9mZnNldCBiYWNr
IHRvIGl0CisgICAgICBmcm9tIHRoZSBjdXJyZW50IGNvZGUgcG9pbnRlci4gVGhlcmUgbWF5IGJl
IGFuIE9QX09QVCBzZXR0aW5nIGZvbGxvd2luZworICAgICAgdGhlIGZpbmFsIEtFVCwgc28gd2Ug
Y2FuJ3QgZmluZCB0aGUgZW5kIGp1c3QgYnkgZ29pbmcgYmFjayBmcm9tIHRoZSBjb2RlCisgICAg
ICBwb2ludGVyLiAqLworCisgICAgICBpZiAocmVwZWF0X21heCA9PSAtMSkKKyAgICAgICAgewor
ICAgICAgICByZWdpc3RlciB1c2NoYXIgKmtldCA9IHByZXZpb3VzOworICAgICAgICBkbyBrZXQg
Kz0gR0VUKGtldCwgMSk7IHdoaWxlICgqa2V0ICE9IE9QX0tFVCk7CisgICAgICAgIGtldG9mZnNl
dCA9IGNvZGUgLSBrZXQ7CisgICAgICAgIH0KKworICAgICAgLyogVGhlIGNhc2Ugb2YgYSB6ZXJv
IG1pbmltdW0gaXMgc3BlY2lhbCBiZWNhdXNlIG9mIHRoZSBuZWVkIHRvIHN0aWNrCisgICAgICBP
UF9CUkFaRVJPIGluIGZyb250IG9mIGl0LCBhbmQgYmVjYXVzZSB0aGUgZ3JvdXAgYXBwZWFycyBv
bmNlIGluIHRoZQorICAgICAgZGF0YSwgd2hlcmVhcyBpbiBvdGhlciBjYXNlcyBpdCBhcHBlYXJz
IHRoZSBtaW5pbXVtIG51bWJlciBvZiB0aW1lcy4gRm9yCisgICAgICB0aGlzIHJlYXNvbiwgaXQg
aXMgc2ltcGxlc3QgdG8gdHJlYXQgdGhpcyBjYXNlIHNlcGFyYXRlbHksIGFzIG90aGVyd2lzZQor
ICAgICAgdGhlIGNvZGUgZ2V0cyBmYXIgdG9vIG1lc3N5LiBUaGVyZSBhcmUgc2V2ZXJhbCBzcGVj
aWFsIHN1YmNhc2VzIHdoZW4gdGhlCisgICAgICBtaW5pbXVtIGlzIHplcm8uICovCisKKyAgICAg
IGlmIChyZXBlYXRfbWluID09IDApCisgICAgICAgIHsKKyAgICAgICAgLyogSWYgdGhlIG1heGlt
dW0gaXMgYWxzbyB6ZXJvLCB3ZSBqdXN0IG9taXQgdGhlIGdyb3VwIGZyb20gdGhlIG91dHB1dAor
ICAgICAgICBhbHRvZ2V0aGVyLiAqLworCisgICAgICAgIGlmIChyZXBlYXRfbWF4ID09IDApCisg
ICAgICAgICAgeworICAgICAgICAgIGNvZGUgPSBwcmV2aW91czsKKyAgICAgICAgICBnb3RvIEVO
RF9SRVBFQVQ7CisgICAgICAgICAgfQorCisgICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIGlzIDEg
b3IgdW5saW1pdGVkLCB3ZSBqdXN0IGhhdmUgdG8gc3RpY2sgaW4gdGhlCisgICAgICAgIEJSQVpF
Uk8gYW5kIGRvIG5vIG1vcmUgYXQgdGhpcyBwb2ludC4gSG93ZXZlciwgd2UgZG8gbmVlZCB0byBh
ZGp1c3QKKyAgICAgICAgYW55IE9QX1JFQ1VSU0UgY2FsbHMgaW5zaWRlIHRoZSBncm91cCB0aGF0
IHJlZmVyIHRvIHRoZSBncm91cCBpdHNlbGYgb3IKKyAgICAgICAgYW55IGludGVybmFsIGdyb3Vw
LCBiZWNhdXNlIHRoZSBvZmZzZXQgaXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHdob2xlCisgICAg
ICAgIHJlZ2V4LiBUZW1wb3JhcmlseSB0ZXJtaW5hdGUgdGhlIHBhdHRlcm4gd2hpbGUgZG9pbmcg
dGhpcy4gKi8KKworICAgICAgICBpZiAocmVwZWF0X21heCA8PSAxKQorICAgICAgICAgIHsKKyAg
ICAgICAgICAqY29kZSA9IE9QX0VORDsKKyAgICAgICAgICBtZW1tb3ZlKHByZXZpb3VzKzEsIHBy
ZXZpb3VzLCBsZW4pOworICAgICAgICAgIGNvZGUrKzsKKyAgICAgICAgICAqcHJldmlvdXMrKyA9
IE9QX0JSQVpFUk8gKyByZXBlYXRfdHlwZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgLyogSWYg
dGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIDEgYW5kIGxpbWl0ZWQsIHdlIGhhdmUgdG8gcmVw
bGljYXRlCisgICAgICAgIGluIGEgbmVzdGVkIGZhc2hpb24sIHN0aWNraW5nIE9QX0JSQVpFUk8g
YmVmb3JlIGVhY2ggc2V0IG9mIGJyYWNrZXRzLgorICAgICAgICBUaGUgZmlyc3Qgb25lIGhhcyB0
byBiZSBoYW5kbGVkIGNhcmVmdWxseSBiZWNhdXNlIGl0J3MgdGhlIG9yaWdpbmFsCisgICAgICAg
IGNvcHksIHdoaWNoIGhhcyB0byBiZSBtb3ZlZCB1cC4gVGhlIHJlbWFpbmRlciBjYW4gYmUgaGFu
ZGxlZCBieSBjb2RlCisgICAgICAgIHRoYXQgaXMgY29tbW9uIHdpdGggdGhlIG5vbi16ZXJvIG1p
bmltdW0gY2FzZSBiZWxvdy4gV2UgaGF2ZSB0bworICAgICAgICBhZGp1c3QgdGhlIHZhbHVlIG9y
IHJlcGVhdF9tYXgsIHNpbmNlIG9uZSBsZXNzIGNvcHkgaXMgcmVxdWlyZWQuIE9uY2UKKyAgICAg
ICAgYWdhaW4sIHdlIG1heSBoYXZlIHRvIGFkanVzdCBhbnkgT1BfUkVDVVJTRSBjYWxscyBpbnNp
ZGUgdGhlIGdyb3VwLiAqLworCisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAg
aW50IG9mZnNldDsKKyAgICAgICAgICAqY29kZSA9IE9QX0VORDsKKyAgICAgICAgICBtZW1tb3Zl
KHByZXZpb3VzICsgMiArIExJTktfU0laRSwgcHJldmlvdXMsIGxlbik7CisgICAgICAgICAgY29k
ZSArPSAyICsgTElOS19TSVpFOworICAgICAgICAgICpwcmV2aW91cysrID0gT1BfQlJBWkVSTyAr
IHJlcGVhdF90eXBlOworICAgICAgICAgICpwcmV2aW91cysrID0gT1BfQlJBOworCisgICAgICAg
ICAgLyogV2UgY2hhaW4gdG9nZXRoZXIgdGhlIGJyYWNrZXQgb2Zmc2V0IGZpZWxkcyB0aGF0IGhh
dmUgdG8gYmUKKyAgICAgICAgICBmaWxsZWQgaW4gbGF0ZXIgd2hlbiB0aGUgZW5kcyBvZiB0aGUg
YnJhY2tldHMgYXJlIHJlYWNoZWQuICovCisKKyAgICAgICAgICBvZmZzZXQgPSAoYnJhbGluayA9
PSBOVUxMKT8gMCA6IHByZXZpb3VzIC0gYnJhbGluazsKKyAgICAgICAgICBicmFsaW5rID0gcHJl
dmlvdXM7CisgICAgICAgICAgUFVUSU5DKHByZXZpb3VzLCAwLCBvZmZzZXQpOworICAgICAgICAg
IH0KKworICAgICAgICByZXBlYXRfbWF4LS07CisgICAgICAgIH0KKworICAgICAgLyogSWYgdGhl
IG1pbmltdW0gaXMgZ3JlYXRlciB0aGFuIHplcm8sIHJlcGxpY2F0ZSB0aGUgZ3JvdXAgYXMgbWFu
eQorICAgICAgdGltZXMgYXMgbmVjZXNzYXJ5LCBhbmQgYWRqdXN0IHRoZSBtYXhpbXVtIHRvIHRo
ZSBudW1iZXIgb2Ygc3Vic2VxdWVudAorICAgICAgY29waWVzIHRoYXQgd2UgbmVlZC4gSWYgd2Ug
c2V0IGEgZmlyc3QgY2hhciBmcm9tIHRoZSBncm91cCwgYW5kIGRpZG4ndAorICAgICAgc2V0IGEg
cmVxdWlyZWQgY2hhciwgY29weSB0aGUgbGF0dGVyIGZyb20gdGhlIGZvcm1lci4gKi8KKworICAg
ICAgZWxzZQorICAgICAgICB7CisgICAgICAgIGlmIChyZXBlYXRfbWluID4gMSkKKyAgICAgICAg
ICB7CisgICAgICAgICAgaWYgKGdyb3Vwc2V0Zmlyc3RieXRlICYmIHJlcWJ5dGUgPCAwKSByZXFi
eXRlID0gZmlyc3RieXRlOworICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCByZXBlYXRfbWluOyBp
KyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICBtZW1jcHkoY29kZSwgcHJldmlvdXMsIGxl
bik7CisgICAgICAgICAgICBjb2RlICs9IGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9
CisgICAgICAgIGlmIChyZXBlYXRfbWF4ID4gMCkgcmVwZWF0X21heCAtPSByZXBlYXRfbWluOwor
ICAgICAgICB9CisKKyAgICAgIC8qIFRoaXMgY29kZSBpcyBjb21tb24gdG8gYm90aCB0aGUgemVy
byBhbmQgbm9uLXplcm8gbWluaW11bSBjYXNlcy4gSWYKKyAgICAgIHRoZSBtYXhpbXVtIGlzIGxp
bWl0ZWQsIGl0IHJlcGxpY2F0ZXMgdGhlIGdyb3VwIGluIGEgbmVzdGVkIGZhc2hpb24sCisgICAg
ICByZW1lbWJlcmluZyB0aGUgYnJhY2tldCBzdGFydHMgb24gYSBzdGFjay4gSW4gdGhlIGNhc2Ug
b2YgYSB6ZXJvIG1pbmltdW0sCisgICAgICB0aGUgZmlyc3Qgb25lIHdhcyBzZXQgdXAgYWJvdmUu
IEluIGFsbCBjYXNlcyB0aGUgcmVwZWF0X21heCBub3cgc3BlY2lmaWVzCisgICAgICB0aGUgbnVt
YmVyIG9mIGFkZGl0aW9uYWwgY29waWVzIG5lZWRlZC4gKi8KKworICAgICAgaWYgKHJlcGVhdF9t
YXggPj0gMCkKKyAgICAgICAgeworICAgICAgICBmb3IgKGkgPSByZXBlYXRfbWF4IC0gMTsgaSA+
PSAwOyBpLS0pCisgICAgICAgICAgeworICAgICAgICAgICpjb2RlKysgPSBPUF9CUkFaRVJPICsg
cmVwZWF0X3R5cGU7CisKKyAgICAgICAgICAvKiBBbGwgYnV0IHRoZSBmaW5hbCBjb3B5IHN0YXJ0
IGEgbmV3IG5lc3RpbmcsIG1haW50YWluaW5nIHRoZQorICAgICAgICAgIGNoYWluIG9mIGJyYWNr
ZXRzIG91dHN0YW5kaW5nLiAqLworCisgICAgICAgICAgaWYgKGkgIT0gMCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgIGludCBvZmZzZXQ7CisgICAgICAgICAgICAqY29kZSsrID0gT1BfQlJB
OworICAgICAgICAgICAgb2Zmc2V0ID0gKGJyYWxpbmsgPT0gTlVMTCk/IDAgOiBjb2RlIC0gYnJh
bGluazsKKyAgICAgICAgICAgIGJyYWxpbmsgPSBjb2RlOworICAgICAgICAgICAgUFVUSU5DKGNv
ZGUsIDAsIG9mZnNldCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBtZW1jcHkoY29kZSwg
cHJldmlvdXMsIGxlbik7CisgICAgICAgICAgY29kZSArPSBsZW47CisgICAgICAgICAgfQorCisg
ICAgICAgIC8qIE5vdyBjaGFpbiB0aHJvdWdoIHRoZSBwZW5kaW5nIGJyYWNrZXRzLCBhbmQgZmls
bCBpbiB0aGVpciBsZW5ndGgKKyAgICAgICAgZmllbGRzICh3aGljaCBhcmUgaG9sZGluZyB0aGUg
Y2hhaW4gbGlua3MgcHJvIHRlbSkuICovCisKKyAgICAgICAgd2hpbGUgKGJyYWxpbmsgIT0gTlVM
TCkKKyAgICAgICAgICB7CisgICAgICAgICAgaW50IG9sZGxpbmtvZmZzZXQ7CisgICAgICAgICAg
aW50IG9mZnNldCA9IGNvZGUgLSBicmFsaW5rICsgMTsKKyAgICAgICAgICB1c2NoYXIgKmJyYSA9
IGNvZGUgLSBvZmZzZXQ7CisgICAgICAgICAgb2xkbGlua29mZnNldCA9IEdFVChicmEsIDEpOwor
ICAgICAgICAgIGJyYWxpbmsgPSAob2xkbGlua29mZnNldCA9PSAwKT8gTlVMTCA6IGJyYWxpbmsg
LSBvbGRsaW5rb2Zmc2V0OworICAgICAgICAgICpjb2RlKysgPSBPUF9LRVQ7CisgICAgICAgICAg
UFVUSU5DKGNvZGUsIDAsIG9mZnNldCk7CisgICAgICAgICAgUFVUKGJyYSwgMSwgb2Zmc2V0KTsK
KyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogSWYgdGhlIG1heGltdW0gaXMgdW5s
aW1pdGVkLCBzZXQgYSByZXBlYXRlciBpbiB0aGUgZmluYWwgY29weS4gV2UKKyAgICAgIGNhbid0
IGp1c3Qgb2Zmc2V0IGJhY2t3YXJkcyBmcm9tIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQsIGJlY2F1
c2Ugd2UKKyAgICAgIGRvbid0IGtub3cgaWYgdGhlcmUncyBiZWVuIGFuIG9wdGlvbnMgcmVzZXR0
aW5nIGFmdGVyIHRoZSBrZXQuIFRoZQorICAgICAgY29ycmVjdCBvZmZzZXQgd2FzIGNvbXB1dGVk
IGFib3ZlLiAqLworCisgICAgICBlbHNlIGNvZGVbLWtldG9mZnNldF0gPSBPUF9LRVRSTUFYICsg
cmVwZWF0X3R5cGU7CisgICAgICB9CisKKyAgICAvKiBFbHNlIHRoZXJlJ3Mgc29tZSBraW5kIG9m
IHNoYW1ibGVzICovCisKKyAgICBlbHNlCisgICAgICB7CisgICAgICAqZXJyb3Jjb2RlcHRyID0g
RVJSMTE7CisgICAgICBnb3RvIEZBSUxFRDsKKyAgICAgIH0KKworICAgIC8qIElmIHRoZSBjaGFy
YWN0ZXIgZm9sbG93aW5nIGEgcmVwZWF0IGlzICcrJywgd2Ugd3JhcCB0aGUgZW50aXJlIHJlcGVh
dGVkCisgICAgaXRlbSBpbnNpZGUgT1BfT05DRSBicmFja2V0cy4gVGhpcyBpcyBqdXN0IHN5bnRh
Y3RpYyBzdWdhciwgdGFrZW4gZnJvbQorICAgIFN1bidzIEphdmEgcGFja2FnZS4gVGhlIHJlcGVh
dGVkIGl0ZW0gc3RhcnRzIGF0IHRlbXBjb2RlLCBub3QgYXQgcHJldmlvdXMsCisgICAgd2hpY2gg
bWlnaHQgYmUgdGhlIGZpcnN0IHBhcnQgb2YgYSBzdHJpbmcgd2hvc2UgKGZvcm1lcikgbGFzdCBj
aGFyIHdlCisgICAgcmVwZWF0ZWQuIEhvd2V2ZXIsIHdlIGRvbid0IHN1cHBvcnQgJysnIGFmdGVy
IGEgZ3JlZWRpbmVzcyAnPycuICovCisKKyAgICBpZiAocG9zc2Vzc2l2ZV9xdWFudGlmaWVyKQor
ICAgICAgeworICAgICAgaW50IGxlbiA9IGNvZGUgLSB0ZW1wY29kZTsKKyAgICAgIG1lbW1vdmUo
dGVtcGNvZGUgKyAxK0xJTktfU0laRSwgdGVtcGNvZGUsIGxlbik7CisgICAgICBjb2RlICs9IDEg
KyBMSU5LX1NJWkU7CisgICAgICBsZW4gKz0gMSArIExJTktfU0laRTsKKyAgICAgIHRlbXBjb2Rl
WzBdID0gT1BfT05DRTsKKyAgICAgICpjb2RlKysgPSBPUF9LRVQ7CisgICAgICBQVVRJTkMoY29k
ZSwgMCwgbGVuKTsKKyAgICAgIFBVVCh0ZW1wY29kZSwgMSwgbGVuKTsKKyAgICAgIH0KKworICAg
IC8qIEluIGFsbCBjYXNlIHdlIG5vIGxvbmdlciBoYXZlIGEgcHJldmlvdXMgaXRlbS4gV2UgYWxz
byBzZXQgdGhlCisgICAgImZvbGxvd3MgdmFyeWluZyBzdHJpbmciIGZsYWcgZm9yIHN1YnNlcXVl
bnRseSBlbmNvdW50ZXJlZCByZXFieXRlcyBpZgorICAgIGl0IGlzbid0IGFscmVhZHkgc2V0IGFu
ZCB3ZSBoYXZlIGp1c3QgcGFzc2VkIGEgdmFyeWluZyBsZW5ndGggaXRlbS4gKi8KKworICAgIEVO
RF9SRVBFQVQ6CisgICAgcHJldmlvdXMgPSBOVUxMOworICAgIGNkLT5yZXFfdmFyeW9wdCB8PSBy
ZXF2YXJ5OworICAgIGJyZWFrOworCisKKyAgICAvKiBTdGFydCBvZiBuZXN0ZWQgYnJhY2tldCBz
dWItZXhwcmVzc2lvbiwgb3IgY29tbWVudCBvciBsb29rYWhlYWQgb3IKKyAgICBsb29rYmVoaW5k
IG9yIG9wdGlvbiBzZXR0aW5nIG9yIGNvbmRpdGlvbi4gRmlyc3QgZGVhbCB3aXRoIHNwZWNpYWwg
dGhpbmdzCisgICAgdGhhdCBjYW4gY29tZSBhZnRlciBhIGJyYWNrZXQ7IGFsbCBhcmUgaW50cm9k
dWNlZCBieSA/LCBhbmQgdGhlIGFwcGVhcmFuY2UKKyAgICBvZiBhbnkgb2YgdGhlbSBtZWFucyB0
aGF0IHRoaXMgaXMgbm90IGEgcmVmZXJlbmNpbmcgZ3JvdXAuIFRoZXkgd2VyZQorICAgIGNoZWNr
ZWQgZm9yIHZhbGlkaXR5IGluIHRoZSBmaXJzdCBwYXNzIG92ZXIgdGhlIHN0cmluZywgc28gd2Ug
ZG9uJ3QgaGF2ZSB0bworICAgIGNoZWNrIGZvciBzeW50YXggZXJyb3JzIGhlcmUuICAqLworCisg
ICAgY2FzZSAnKCc6CisgICAgbmV3b3B0aW9ucyA9IG9wdGlvbnM7CisgICAgc2tpcGJ5dGVzID0g
MDsKKworICAgIGlmICgqKCsrcHRyKSA9PSAnPycpCisgICAgICB7CisgICAgICBzd2l0Y2ggKCoo
KytwdHIpKQorICAgICAgICB7CisgICAgICAgIGNhc2UgJzonOiAgICAgICAgICAgICAgICAgLyog
Tm9uLWV4dHJhY3RpbmcgYnJhY2tldCAqLworICAgICAgICBicmF2YWx1ZSA9IE9QX0JSQTsKKyAg
ICAgICAgcHRyKys7CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgJz0nOiAgICAgICAg
ICAgICAgICAgLyogUG9zaXRpdmUgbG9va2FoZWFkICovCisgICAgICAgIGJyYXZhbHVlID0gT1Bf
QVNTRVJUOworICAgICAgICBwdHIrKzsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAn
ISc6ICAgICAgICAgICAgICAgICAvKiBOZWdhdGl2ZSBsb29rYWhlYWQgKi8KKyAgICAgICAgYnJh
dmFsdWUgPSBPUF9BU1NFUlRfTk9UOworICAgICAgICBwdHIrKzsKKyAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgLyogQ2hhcmFjdGVyIGFmdGVyICg/IG5vdCBzcGVjaWFsbHkgcmVjb2duaXplZCAq
LworCisgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgLyogT3B0aW9uIHNldHRpbmcg
Ki8KKyAgICAgICAgKmVycm9yY29kZXB0ciA9IEVSUjEyOworICAgICAgICBnb3RvIEZBSUxFRDsK
KyAgICAgICAgfQorICAgICAgfQorCisgICAgLyogRWxzZSB3ZSBoYXZlIGEgcmVmZXJlbmNpbmcg
Z3JvdXA7IGFkanVzdCB0aGUgb3Bjb2RlLiBJZiB0aGUgYnJhY2tldAorICAgIG51bWJlciBpcyBn
cmVhdGVyIHRoYW4gRVhUUkFDVF9CQVNJQ19NQVgsIHdlIHNldCB0aGUgb3Bjb2RlIG9uZSBoaWdo
ZXIsIGFuZAorICAgIGFycmFuZ2UgZm9yIHRoZSB0cnVlIG51bWJlciB0byBmb2xsb3cgbGF0ZXIs
IGluIGFuIE9QX0JSQU5VTUJFUiBpdGVtLiAqLworCisgICAgZWxzZQorICAgICAgeworICAgICAg
aWYgKCsrKCpicmFja2V0cykgPiBFWFRSQUNUX0JBU0lDX01BWCkKKyAgICAgICAgeworICAgICAg
ICBicmF2YWx1ZSA9IE9QX0JSQSArIEVYVFJBQ1RfQkFTSUNfTUFYICsgMTsKKyAgICAgICAgY29k
ZVsxK0xJTktfU0laRV0gPSBPUF9CUkFOVU1CRVI7CisgICAgICAgIFBVVDIoY29kZSwgMitMSU5L
X1NJWkUsICpicmFja2V0cyk7CisgICAgICAgIHNraXBieXRlcyA9IDM7CisgICAgICAgIH0KKyAg
ICAgIGVsc2UgYnJhdmFsdWUgPSBPUF9CUkEgKyAqYnJhY2tldHM7CisgICAgICB9CisKKyAgICAv
KiBQcm9jZXNzIG5lc3RlZCBicmFja2V0ZWQgcmUuIEFzc2VydGlvbnMgbWF5IG5vdCBiZSByZXBl
YXRlZCwgYnV0IG90aGVyCisgICAga2luZHMgY2FuIGJlLiBXZSBjb3B5IGNvZGUgaW50byBhIG5v
bi1yZWdpc3RlciB2YXJpYWJsZSBpbiBvcmRlciB0byBiZSBhYmxlCisgICAgdG8gcGFzcyBpdHMg
YWRkcmVzcyBiZWNhdXNlIHNvbWUgY29tcGlsZXJzIGNvbXBsYWluIG90aGVyd2lzZS4gUGFzcyBp
biBhCisgICAgbmV3IHNldHRpbmcgZm9yIHRoZSBpbXMgb3B0aW9ucyBpZiB0aGV5IGhhdmUgY2hh
bmdlZC4gKi8KKworICAgIHByZXZpb3VzID0gKGJyYXZhbHVlID49IE9QX09OQ0UpPyBjb2RlIDog
TlVMTDsKKyAgICAqY29kZSA9IGJyYXZhbHVlOworICAgIHRlbXBjb2RlID0gY29kZTsKKyAgICB0
ZW1wcmVxdmFyeSA9IGNkLT5yZXFfdmFyeW9wdDsgICAgIC8qIFNhdmUgdmFsdWUgYmVmb3JlIGJy
YWNrZXQgKi8KKworICAgIGlmICghY29tcGlsZV9yZWdleCgKKyAgICAgICAgIG5ld29wdGlvbnMs
ICAgICAgICAgICAgICAgICAgIC8qIFRoZSBjb21wbGV0ZSBuZXcgb3B0aW9uIHN0YXRlICovCisg
ICAgICAgICBicmFja2V0cywgICAgICAgICAgICAgICAgICAgICAvKiBFeHRyYWN0aW5nIGJyYWNr
ZXQgY291bnQgKi8KKyAgICAgICAgICZ0ZW1wY29kZSwgICAgICAgICAgICAgICAgICAgIC8qIFdo
ZXJlIHRvIHB1dCBjb2RlICh1cGRhdGVkKSAqLworICAgICAgICAgJnB0ciwgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogSW5wdXQgcG9pbnRlciAodXBkYXRlZCkgKi8KKyAgICAgICAgIHBhdHRl
cm5FbmQsCisgICAgICAgICBlcnJvcmNvZGVwdHIsICAgICAgICAgICAgICAgICAvKiBXaGVyZSB0
byBwdXQgYW4gZXJyb3IgbWVzc2FnZSAqLworICAgICAgICAgc2tpcGJ5dGVzLCAgICAgICAgICAg
ICAgICAgICAgLyogU2tpcCBvdmVyIE9QX0JSQU5VTUJFUiAqLworICAgICAgICAgJnN1YmZpcnN0
Ynl0ZSwgICAgICAgICAgICAgICAgLyogRm9yIHBvc3NpYmxlIGZpcnN0IGNoYXIgKi8KKyAgICAg
ICAgICZzdWJyZXFieXRlLCAgICAgICAgICAgICAgICAgIC8qIEZvciBwb3NzaWJsZSBsYXN0IGNo
YXIgKi8KKyAgICAgICAgIGNkKSkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRhYmxlcyBi
bG9jayAqLworICAgICAgZ290byBGQUlMRUQ7CisKKyAgICAvKiBBdCB0aGUgZW5kIG9mIGNvbXBp
bGluZywgY29kZSBpcyBzdGlsbCBwb2ludGluZyB0byB0aGUgc3RhcnQgb2YgdGhlCisgICAgZ3Jv
dXAsIHdoaWxlIHRlbXBjb2RlIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcG9pbnQgcGFzdCB0aGUgZW5k
IG9mIHRoZSBncm91cAorICAgIGFuZCBhbnkgb3B0aW9uIHJlc2V0dGluZyB0aGF0IG1heSBmb2xs
b3cgaXQuIFRoZSBwYXR0ZXJuIHBvaW50ZXIgKHB0cikKKyAgICBpcyBvbiB0aGUgYnJhY2tldC4g
Ki8KKworICAgIC8qIEhhbmRsZSB1cGRhdGluZyBvZiB0aGUgcmVxdWlyZWQgYW5kIGZpcnN0IGNo
YXJhY3RlcnMuIFVwZGF0ZSBmb3Igbm9ybWFsCisgICAgYnJhY2tldHMgb2YgYWxsIGtpbmRzLCBh
bmQgY29uZGl0aW9ucyB3aXRoIHR3byBicmFuY2hlcyAoc2VlIGNvZGUgYWJvdmUpLgorICAgIElm
IHRoZSBicmFja2V0IGlzIGZvbGxvd2VkIGJ5IGEgcXVhbnRpZmllciB3aXRoIHplcm8gcmVwZWF0
LCB3ZSBoYXZlIHRvCisgICAgYmFjayBvZmYuIEhlbmNlIHRoZSBkZWZpbml0aW9uIG9mIHplcm9y
ZXFieXRlIGFuZCB6ZXJvZmlyc3RieXRlIG91dHNpZGUgdGhlCisgICAgbWFpbiBsb29wIHNvIHRo
YXQgdGhleSBjYW4gYmUgYWNjZXNzZWQgZm9yIHRoZSBiYWNrIG9mZi4gKi8KKworICAgIHplcm9y
ZXFieXRlID0gcmVxYnl0ZTsKKyAgICB6ZXJvZmlyc3RieXRlID0gZmlyc3RieXRlOworICAgIGdy
b3Vwc2V0Zmlyc3RieXRlID0gRkFMU0U7CisKKyAgICBpZiAoYnJhdmFsdWUgPj0gT1BfQlJBIHx8
IGJyYXZhbHVlID09IE9QX09OQ0UpCisgICAgICB7CisgICAgICAvKiBJZiB3ZSBoYXZlIG5vdCB5
ZXQgc2V0IGEgZmlyc3RieXRlIGluIHRoaXMgYnJhbmNoLCB0YWtlIGl0IGZyb20gdGhlCisgICAg
ICBzdWJwYXR0ZXJuLCByZW1lbWJlcmluZyB0aGF0IGl0IHdhcyBzZXQgaGVyZSBzbyB0aGF0IGEg
cmVwZWF0IG9mIG1vcmUKKyAgICAgIHRoYW4gb25lIGNhbiByZXBsaWNhdGUgaXQgYXMgcmVxYnl0
ZSBpZiBuZWNlc3NhcnkuIElmIHRoZSBzdWJwYXR0ZXJuIGhhcworICAgICAgbm8gZmlyc3RieXRl
LCBzZXQgIm5vbmUiIGZvciB0aGUgd2hvbGUgYnJhbmNoLiBJbiBib3RoIGNhc2VzLCBhIHplcm8K
KyAgICAgIHJlcGVhdCBmb3JjZXMgZmlyc3RieXRlIHRvICJub25lIi4gKi8KKworICAgICAgaWYg
KGZpcnN0Ynl0ZSA9PSBSRVFfVU5TRVQpCisgICAgICAgIHsKKyAgICAgICAgaWYgKHN1YmZpcnN0
Ynl0ZSA+PSAwKQorICAgICAgICAgIHsKKyAgICAgICAgICBmaXJzdGJ5dGUgPSBzdWJmaXJzdGJ5
dGU7CisgICAgICAgICAgZ3JvdXBzZXRmaXJzdGJ5dGUgPSBUUlVFOworICAgICAgICAgIH0KKyAg
ICAgICAgZWxzZSBmaXJzdGJ5dGUgPSBSRVFfTk9ORTsKKyAgICAgICAgemVyb2ZpcnN0Ynl0ZSA9
IFJFUV9OT05FOworICAgICAgICB9CisKKyAgICAgIC8qIElmIGZpcnN0Ynl0ZSB3YXMgcHJldmlv
dXNseSBzZXQsIGNvbnZlcnQgdGhlIHN1YnBhdHRlcm4ncyBmaXJzdGJ5dGUKKyAgICAgIGludG8g
cmVxYnl0ZSBpZiB0aGVyZSB3YXNuJ3Qgb25lLCB1c2luZyB0aGUgdmFyeSBmbGFnIHRoYXQgd2Fz
IGluCisgICAgICBleGlzdGVuY2UgYmVmb3JlaGFuZC4gKi8KKworICAgICAgZWxzZSBpZiAoc3Vi
Zmlyc3RieXRlID49IDAgJiYgc3VicmVxYnl0ZSA8IDApCisgICAgICAgIHN1YnJlcWJ5dGUgPSBz
dWJmaXJzdGJ5dGUgfCB0ZW1wcmVxdmFyeTsKKworICAgICAgLyogSWYgdGhlIHN1YnBhdHRlcm4g
c2V0IGEgcmVxdWlyZWQgYnl0ZSAob3Igc2V0IGEgZmlyc3QgYnl0ZSB0aGF0IGlzbid0CisgICAg
ICByZWFsbHkgdGhlIGZpcnN0IGJ5dGUgLSBzZWUgYWJvdmUpLCBzZXQgaXQuICovCisKKyAgICAg
IGlmIChzdWJyZXFieXRlID49IDApIHJlcWJ5dGUgPSBzdWJyZXFieXRlOworICAgICAgfQorCisg
ICAgLyogRm9yIGEgZm9yd2FyZCBhc3NlcnRpb24sIHdlIHRha2UgdGhlIHJlcWJ5dGUsIGlmIHNl
dC4gVGhpcyBjYW4gYmUKKyAgICBoZWxwZnVsIGlmIHRoZSBwYXR0ZXJuIHRoYXQgZm9sbG93cyB0
aGUgYXNzZXJ0aW9uIGRvZXNuJ3Qgc2V0IGEgZGlmZmVyZW50CisgICAgY2hhci4gRm9yIGV4YW1w
bGUsIGl0J3MgdXNlZnVsIGZvciAvKD89YWJjZGUpLisvLiBXZSBjYW4ndCBzZXQgZmlyc3RieXRl
CisgICAgZm9yIGFuIGFzc2VydGlvbiwgaG93ZXZlciBiZWNhdXNlIGl0IGxlYWRzIHRvIGluY29y
cmVjdCBlZmZlY3QgZm9yIHBhdHRlcm5zCisgICAgc3VjaCBhcyAvKD89YSlhLisvIHdoZW4gdGhl
ICJyZWFsIiAiYSIgd291bGQgdGhlbiBiZWNvbWUgYSByZXFieXRlIGluc3RlYWQKKyAgICBvZiBh
IGZpcnN0Ynl0ZS4gVGhpcyBpcyBvdmVyY29tZSBieSBhIHNjYW4gYXQgdGhlIGVuZCBpZiB0aGVy
ZSdzIG5vCisgICAgZmlyc3RieXRlLCBsb29raW5nIGZvciBhbiBhc3NlcnRlZCBmaXJzdCBjaGFy
LiAqLworCisgICAgZWxzZSBpZiAoYnJhdmFsdWUgPT0gT1BfQVNTRVJUICYmIHN1YnJlcWJ5dGUg
Pj0gMCkgcmVxYnl0ZSA9IHN1YnJlcWJ5dGU7CisKKyAgICAvKiBOb3cgdXBkYXRlIHRoZSBtYWlu
IGNvZGUgcG9pbnRlciB0byB0aGUgZW5kIG9mIHRoZSBncm91cC4gKi8KKworICAgIGNvZGUgPSB0
ZW1wY29kZTsKKworICAgIC8qIEVycm9yIGlmIGhpdCBlbmQgb2YgcGF0dGVybiAqLworCisgICAg
aWYgKHB0ciA+PSBwYXR0ZXJuRW5kIHx8ICpwdHIgIT0gJyknKQorICAgICAgeworICAgICAgKmVy
cm9yY29kZXB0ciA9IEVSUjE0OworICAgICAgZ290byBGQUlMRUQ7CisgICAgICB9CisgICAgYnJl
YWs7CisKKyAgICAvKiBDaGVjayBcIGZvciBiZWluZyBhIHJlYWwgbWV0YWNoYXJhY3RlcjsgaWYg
bm90LCBmYWxsIHRocm91Z2ggYW5kIGhhbmRsZQorICAgIGl0IGFzIGEgZGF0YSBjaGFyYWN0ZXIg
YXQgdGhlIHN0YXJ0IG9mIGEgc3RyaW5nLiBFc2NhcGUgaXRlbXMgYXJlIGNoZWNrZWQKKyAgICBm
b3IgdmFsaWRpdHkgaW4gdGhlIHByZS1jb21waWxpbmcgcGFzcy4gKi8KKworICAgIGNhc2UgJ1xc
JzoKKyAgICB0ZW1wcHRyID0gcHRyOworICAgIGMgPSBjaGVja19lc2NhcGUoJnB0ciwgcGF0dGVy
bkVuZCwgZXJyb3Jjb2RlcHRyLCAqYnJhY2tldHMsIEZBTFNFKTsKKworICAgIC8qIEhhbmRsZSBt
ZXRhY2hhcmFjdGVycyBpbnRyb2R1Y2VkIGJ5IFwuIEZvciBvbmVzIGxpa2UgXGQsIHRoZSBFU0Nf
IHZhbHVlcworICAgIGFyZSBhcnJhbmdlZCB0byBiZSB0aGUgbmVnYXRpb24gb2YgdGhlIGNvcnJl
c3BvbmRpbmcgT1BfdmFsdWVzLiBGb3IgdGhlCisgICAgYmFjayByZWZlcmVuY2VzLCB0aGUgdmFs
dWVzIGFyZSBFU0NfUkVGIHBsdXMgdGhlIHJlZmVyZW5jZSBudW1iZXIuIE9ubHkKKyAgICBiYWNr
IHJlZmVyZW5jZXMgYW5kIHRob3NlIHR5cGVzIHRoYXQgY29uc3VtZSBhIGNoYXJhY3RlciBtYXkg
YmUgcmVwZWF0ZWQuCisgICAgV2UgY2FuIHRlc3QgZm9yIHZhbHVlcyBiZXR3ZWVuIEVTQ19iIGFu
ZCBFU0NfdyBmb3IgdGhlIGxhdHRlcjsgdGhpcyBtYXkKKyAgICBoYXZlIHRvIGNoYW5nZSBpZiBh
bnkgbmV3IG9uZXMgYXJlIGV2ZXIgY3JlYXRlZC4gKi8KKworICAgIGlmIChjIDwgMCkKKyAgICAg
IHsKKyAgICAgIC8qIEZvciBtZXRhc2VxdWVuY2VzIHRoYXQgYWN0dWFsbHkgbWF0Y2ggYSBjaGFy
YWN0ZXIsIHdlIGRpc2FibGUgdGhlCisgICAgICBzZXR0aW5nIG9mIGEgZmlyc3QgY2hhcmFjdGVy
IGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gc2V0LiAqLworCisgICAgICBpZiAoZmlyc3RieXRl
ID09IFJFUV9VTlNFVCAmJiAtYyA+IEVTQ19iICYmIC1jIDw9IEVTQ193KQorICAgICAgICBmaXJz
dGJ5dGUgPSBSRVFfTk9ORTsKKworICAgICAgLyogU2V0IHZhbHVlcyB0byByZXNldCB0byBpZiB0
aGlzIGlzIGZvbGxvd2VkIGJ5IGEgemVybyByZXBlYXQuICovCisKKyAgICAgIHplcm9maXJzdGJ5
dGUgPSBmaXJzdGJ5dGU7CisgICAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7CisKKyAgICAgIC8q
IEJhY2sgcmVmZXJlbmNlcyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgKi8KKworICAgICAgaWYgKC1j
ID49IEVTQ19SRUYpCisgICAgICAgIHsKKyAgICAgICAgaW50IG51bWJlciA9IC1jIC0gRVNDX1JF
RjsKKyAgICAgICAgcHJldmlvdXMgPSBjb2RlOworICAgICAgICAqY29kZSsrID0gT1BfUkVGOwor
ICAgICAgICBQVVQySU5DKGNvZGUsIDAsIG51bWJlcik7CisgICAgICAgIH0KKworICAgICAgLyog
Rm9yIHRoZSByZXN0LCB3ZSBjYW4gb2J0YWluIHRoZSBPUCB2YWx1ZSBieSBuZWdhdGluZyB0aGUg
ZXNjYXBlCisgICAgICB2YWx1ZSAqLworCisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAg
cHJldmlvdXMgPSAoLWMgPiBFU0NfYiAmJiAtYyA8PSBFU0Nfdyk/IGNvZGUgOiBOVUxMOworICAg
ICAgICAqY29kZSsrID0gLWM7CisgICAgICAgIH0KKyAgICAgIGNvbnRpbnVlOworICAgICAgfQor
CisgICAgLyogRmFsbCB0aHJvdWdoLiAqLworCisgICAgLyogSGFuZGxlIGEgbGl0ZXJhbCBjaGFy
YWN0ZXIuIEl0IGlzIGd1YXJhbnRlZWQgbm90IHRvIGJlIHdoaXRlc3BhY2Ugb3IgIworICAgIHdo
ZW4gdGhlIGV4dGVuZGVkIGZsYWcgaXMgc2V0LiBJZiB3ZSBhcmUgaW4gVVRGLTggbW9kZSwgaXQg
bWF5IGJlIGEKKyAgICBtdWx0aS1ieXRlIGxpdGVyYWwgY2hhcmFjdGVyLiAqLworCisgICAgZGVm
YXVsdDoKKyAgICBOT1JNQUxfQ0hBUjoKKworICAgIHByZXZpb3VzID0gY29kZTsKKworICAgIGlm
IChjIDwgMTI4KQorICAgICAgeworICAgICAgbWNsZW5ndGggPSAxOworICAgICAgbWNidWZmZXJb
MF0gPSBjOworCisgICAgICBpZiAob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MgJiYgKGMgfCAweDIw
KSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAneicpCisgICAgICAgIHsKKyAgICAgICAgKmNvZGUr
KyA9IE9QX0FTQ0lJX0xFVFRFUl9OQzsKKyAgICAgICAgKmNvZGUrKyA9IGMgfCAweDIwOworICAg
ICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgKmNvZGUrKyA9IE9QX0FTQ0lJ
X0NIQVI7CisgICAgICAgICpjb2RlKysgPSBjOworICAgICAgICB9CisgICAgICB9CisgICAgZWxz
ZQorICAgICAgeworICAgICAgbWNsZW5ndGggPSBfcGNyZV9vcmQydXRmOChjLCBtY2J1ZmZlcik7
CisKKyAgICAgICpjb2RlKysgPSAoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKT8gT1Bf
Q0hBUk5DIDogT1BfQ0hBUjsKKyAgICAgIGZvciAoYyA9IDA7IGMgPCBtY2xlbmd0aDsgYysrKSAq
Y29kZSsrID0gbWNidWZmZXJbY107CisgICAgICB9CisKKyAgICAvKiBTZXQgdGhlIGZpcnN0IGFu
ZCByZXF1aXJlZCBieXRlcyBhcHByb3ByaWF0ZWx5LiBJZiBubyBwcmV2aW91cyBmaXJzdAorICAg
IGJ5dGUsIHNldCBpdCBmcm9tIHRoaXMgY2hhcmFjdGVyLCBidXQgcmV2ZXJ0IHRvIG5vbmUgb24g
YSB6ZXJvIHJlcGVhdC4KKyAgICBPdGhlcndpc2UsIGxlYXZlIHRoZSBmaXJzdGJ5dGUgdmFsdWUg
YWxvbmUsIGFuZCBkb24ndCBjaGFuZ2UgaXQgb24gYSB6ZXJvCisgICAgcmVwZWF0LiAqLworCisg
ICAgaWYgKGZpcnN0Ynl0ZSA9PSBSRVFfVU5TRVQpCisgICAgICB7CisgICAgICB6ZXJvZmlyc3Ri
eXRlID0gUkVRX05PTkU7CisgICAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7CisKKyAgICAgIC8q
IElmIHRoZSBjaGFyYWN0ZXIgaXMgbW9yZSB0aGFuIG9uZSBieXRlIGxvbmcsIHdlIGNhbiBzZXQg
Zmlyc3RieXRlCisgICAgICBvbmx5IGlmIGl0IGlzIG5vdCB0byBiZSBtYXRjaGVkIGNhc2VsZXNz
bHkuICovCisKKyAgICAgIGlmIChtY2xlbmd0aCA9PSAxIHx8IHJlcV9jYXNlb3B0ID09IDApCisg
ICAgICAgIHsKKyAgICAgICAgZmlyc3RieXRlID0gbWNidWZmZXJbMF0gfCByZXFfY2FzZW9wdDsK
KyAgICAgICAgaWYgKG1jbGVuZ3RoICE9IDEpIHJlcWJ5dGUgPSBjb2RlWy0xXSB8IGNkLT5yZXFf
dmFyeW9wdDsKKyAgICAgICAgfQorICAgICAgZWxzZSBmaXJzdGJ5dGUgPSByZXFieXRlID0gUkVR
X05PTkU7CisgICAgICB9CisKKyAgICAvKiBmaXJzdGJ5dGUgd2FzIHByZXZpb3VzbHkgc2V0OyB3
ZSBjYW4gc2V0IHJlcWJ5dGUgb25seSB0aGUgbGVuZ3RoIGlzCisgICAgMSBvciB0aGUgbWF0Y2hp
bmcgaXMgY2FzZWZ1bC4gKi8KKworICAgIGVsc2UKKyAgICAgIHsKKyAgICAgIHplcm9maXJzdGJ5
dGUgPSBmaXJzdGJ5dGU7CisgICAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7CisgICAgICBpZiAo
bWNsZW5ndGggPT0gMSB8fCByZXFfY2FzZW9wdCA9PSAwKQorICAgICAgICByZXFieXRlID0gY29k
ZVstMV0gfCByZXFfY2FzZW9wdCB8IGNkLT5yZXFfdmFyeW9wdDsKKyAgICAgIH0KKworICAgIGJy
ZWFrOyAgICAgICAgICAgIC8qIEVuZCBvZiBsaXRlcmFsIGNoYXJhY3RlciBoYW5kbGluZyAqLwor
ICAgIH0KKyAgfSAgICAgICAgICAgICAgICAgICAvKiBlbmQgb2YgYmlnIGxvb3AgKi8KKworLyog
Q29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgYnkgZmFsbGluZyB0aHJvdWdoLCBvbmx5IGJ5IGEg
Z290byBmb3IgYWxsIHRoZQorZXJyb3Igc3RhdGVzLiBQYXNzIGJhY2sgdGhlIHBvc2l0aW9uIGlu
IHRoZSBwYXR0ZXJuIHNvIHRoYXQgaXQgY2FuIGJlIGRpc3BsYXllZAordG8gdGhlIHVzZXIgZm9y
IGRpYWdub3NpbmcgdGhlIGVycm9yLiAqLworCitGQUlMRUQ6CisqcHRycHRyID0gcHRyOworcmV0
dXJuIEZBTFNFOworfQorCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgICAgQ29tcGlsZSBzZXF1ZW5jZSBvZiBhbHRlcm5hdGl2ZXMg
ICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovCisKKy8qIE9uIGVudHJ5LCBwdHIgaXMgcG9pbnRpbmcgcGFzdCB0aGUgYnJhY2tldCBj
aGFyYWN0ZXIsIGJ1dCBvbiByZXR1cm4KK2l0IHBvaW50cyB0byB0aGUgY2xvc2luZyBicmFja2V0
LCBvciB2ZXJ0aWNhbCBiYXIsIG9yIGVuZCBvZiBzdHJpbmcuCitUaGUgY29kZSB2YXJpYWJsZSBp
cyBwb2ludGluZyBhdCB0aGUgYnl0ZSBpbnRvIHdoaWNoIHRoZSBCUkEgb3BlcmF0b3IgaGFzIGJl
ZW4KK3N0b3JlZC4gSWYgdGhlIGltcyBvcHRpb25zIGFyZSBjaGFuZ2VkIGF0IHRoZSBzdGFydCAo
Zm9yIGEgKD9pbXM6IGdyb3VwKSBvcgorZHVyaW5nIGFueSBicmFuY2gsIHdlIG5lZWQgdG8gaW5z
ZXJ0IGFuIE9QX09QVCBpdGVtIGF0IHRoZSBzdGFydCBvZiBldmVyeQorZm9sbG93aW5nIGJyYW5j
aCB0byBlbnN1cmUgdGhleSBnZXQgc2V0IGNvcnJlY3RseSBhdCBydW4gdGltZSwgYW5kIGFsc28g
cGFzcwordGhlIG5ldyBvcHRpb25zIGludG8gZXZlcnkgc3Vic2VxdWVudCBicmFuY2ggY29tcGls
ZS4KKworQXJndW1lbnQ6CisgIG9wdGlvbnMgICAgICAgIG9wdGlvbiBiaXRzLCBpbmNsdWRpbmcg
YW55IGNoYW5nZXMgZm9yIHRoaXMgc3VicGF0dGVybgorICBicmFja2V0cyAgICAgICAtPiBpbnQg
Y29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGV4dHJhY3RpbmcgYnJhY2tldHMgdXNlZAorICBjb2Rl
cHRyICAgICAgICAtPiB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBjb2RlIHBvaW50ZXIKKyAg
cHRycHRyICAgICAgICAgLT4gdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgcGF0dGVybiBwb2lu
dGVyCisgIGVycm9yY29kZXB0ciAgIC0+IHBvaW50ZXIgdG8gZXJyb3IgY29kZSB2YXJpYWJsZQor
ICBza2lwYnl0ZXMgICAgICBza2lwIHRoaXMgbWFueSBieXRlcyBhdCBzdGFydCAoZm9yIE9QX0JS
QU5VTUJFUikKKyAgZmlyc3RieXRlcHRyICAgcGxhY2UgdG8gcHV0IHRoZSBmaXJzdCByZXF1aXJl
ZCBjaGFyYWN0ZXIsIG9yIGEgbmVnYXRpdmUgbnVtYmVyCisgIHJlcWJ5dGVwdHIgICAgIHBsYWNl
IHRvIHB1dCB0aGUgbGFzdCByZXF1aXJlZCBjaGFyYWN0ZXIsIG9yIGEgbmVnYXRpdmUgbnVtYmVy
CisgIGNkICAgICAgICAgICAgIHBvaW50cyB0byB0aGUgZGF0YSBibG9jayB3aXRoIHRhYmxlcyBw
b2ludGVycyBldGMuCisKK1JldHVybnM6ICAgICAgVFJVRSBvbiBzdWNjZXNzCisqLworCitzdGF0
aWMgQk9PTAorY29tcGlsZV9yZWdleChpbnQgb3B0aW9ucywgaW50ICpicmFja2V0cywgdXNjaGFy
ICoqY29kZXB0ciwKKyAgY29uc3QgcGNyZV91Y2hhciAqKnB0cnB0ciwgY29uc3QgcGNyZV91Y2hh
ciAqcGF0dGVybkVuZCwgaW50ICplcnJvcmNvZGVwdHIsIGludCBza2lwYnl0ZXMsCisgIGludCAq
Zmlyc3RieXRlcHRyLCBpbnQgKnJlcWJ5dGVwdHIsIGNvbXBpbGVfZGF0YSAqY2QpCit7Citjb25z
dCBwY3JlX3VjaGFyICpwdHIgPSAqcHRycHRyOwordXNjaGFyICpjb2RlID0gKmNvZGVwdHI7Cit1
c2NoYXIgKmxhc3RfYnJhbmNoID0gY29kZTsKK3VzY2hhciAqc3RhcnRfYnJhY2tldCA9IGNvZGU7
CitpbnQgZmlyc3RieXRlLCByZXFieXRlOworaW50IGJyYW5jaGZpcnN0Ynl0ZSwgYnJhbmNocmVx
Ynl0ZTsKKworZmlyc3RieXRlID0gcmVxYnl0ZSA9IFJFUV9VTlNFVDsKKworLyogT2Zmc2V0IGlz
IHNldCB6ZXJvIHRvIG1hcmsgdGhhdCB0aGlzIGJyYWNrZXQgaXMgc3RpbGwgb3BlbiAqLworCitQ
VVQoY29kZSwgMSwgMCk7Citjb2RlICs9IDEgKyBMSU5LX1NJWkUgKyBza2lwYnl0ZXM7CisKKy8q
IExvb3AgZm9yIGVhY2ggYWx0ZXJuYXRpdmUgYnJhbmNoICovCisKK2ZvciAoOzspCisgIHsKKyAg
LyogTm93IGNvbXBpbGUgdGhlIGJyYW5jaCAqLworCisgIGlmICghY29tcGlsZV9icmFuY2goJm9w
dGlvbnMsIGJyYWNrZXRzLCAmY29kZSwgJnB0ciwgcGF0dGVybkVuZCwgZXJyb3Jjb2RlcHRyLAor
ICAgICAgICAmYnJhbmNoZmlyc3RieXRlLCAmYnJhbmNocmVxYnl0ZSwgY2QpKQorICAgIHsKKyAg
ICAqcHRycHRyID0gcHRyOworICAgIHJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgLyogSWYgdGhp
cyBpcyB0aGUgZmlyc3QgYnJhbmNoLCB0aGUgZmlyc3RieXRlIGFuZCByZXFieXRlIHZhbHVlcyBm
b3IgdGhlCisgIGJyYW5jaCBiZWNvbWUgdGhlIHZhbHVlcyBmb3IgdGhlIHJlZ2V4LiAqLworCisg
IGlmICgqbGFzdF9icmFuY2ggIT0gT1BfQUxUKQorICAgIHsKKyAgICBmaXJzdGJ5dGUgPSBicmFu
Y2hmaXJzdGJ5dGU7CisgICAgcmVxYnl0ZSA9IGJyYW5jaHJlcWJ5dGU7CisgICAgfQorCisgIC8q
IElmIHRoaXMgaXMgbm90IHRoZSBmaXJzdCBicmFuY2gsIHRoZSBmaXJzdCBjaGFyIGFuZCByZXFi
eXRlIGhhdmUgdG8KKyAgbWF0Y2ggdGhlIHZhbHVlcyBmcm9tIGFsbCB0aGUgcHJldmlvdXMgYnJh
bmNoZXMsIGV4Y2VwdCB0aGF0IGlmIHRoZSBwcmV2aW91cworICB2YWx1ZSBmb3IgcmVxYnl0ZSBk
aWRuJ3QgaGF2ZSBSRVFfVkFSWSBzZXQsIGl0IGNhbiBzdGlsbCBtYXRjaCwgYW5kIHdlIHNldAor
ICBSRVFfVkFSWSBmb3IgdGhlIHJlZ2V4LiAqLworCisgIGVsc2UKKyAgICB7CisgICAgLyogSWYg
d2UgcHJldmlvdXNseSBoYWQgYSBmaXJzdGJ5dGUsIGJ1dCBpdCBkb2Vzbid0IG1hdGNoIHRoZSBu
ZXcgYnJhbmNoLAorICAgIHdlIGhhdmUgdG8gYWJhbmRvbiB0aGUgZmlyc3RieXRlIGZvciB0aGUg
cmVnZXgsIGJ1dCBpZiB0aGVyZSB3YXMgcHJldmlvdXNseQorICAgIG5vIHJlcWJ5dGUsIGl0IHRh
a2VzIG9uIHRoZSB2YWx1ZSBvZiB0aGUgb2xkIGZpcnN0Ynl0ZS4gKi8KKworICAgIGlmIChmaXJz
dGJ5dGUgPj0gMCAmJiBmaXJzdGJ5dGUgIT0gYnJhbmNoZmlyc3RieXRlKQorICAgICAgeworICAg
ICAgaWYgKHJlcWJ5dGUgPCAwKSByZXFieXRlID0gZmlyc3RieXRlOworICAgICAgZmlyc3RieXRl
ID0gUkVRX05PTkU7CisgICAgICB9CisKKyAgICAvKiBJZiB3ZSAobm93IG9yIGZyb20gYmVmb3Jl
KSBoYXZlIG5vIGZpcnN0Ynl0ZSwgYSBmaXJzdGJ5dGUgZnJvbSB0aGUKKyAgICBicmFuY2ggYmVj
b21lcyBhIHJlcWJ5dGUgaWYgdGhlcmUgaXNuJ3QgYSBicmFuY2ggcmVxYnl0ZS4gKi8KKworICAg
IGlmIChmaXJzdGJ5dGUgPCAwICYmIGJyYW5jaGZpcnN0Ynl0ZSA+PSAwICYmIGJyYW5jaHJlcWJ5
dGUgPCAwKQorICAgICAgICBicmFuY2hyZXFieXRlID0gYnJhbmNoZmlyc3RieXRlOworCisgICAg
LyogTm93IGVuc3VyZSB0aGF0IHRoZSByZXFieXRlcyBtYXRjaCAqLworCisgICAgaWYgKChyZXFi
eXRlICYgflJFUV9WQVJZKSAhPSAoYnJhbmNocmVxYnl0ZSAmIH5SRVFfVkFSWSkpCisgICAgICBy
ZXFieXRlID0gUkVRX05PTkU7CisgICAgZWxzZSByZXFieXRlIHw9IGJyYW5jaHJlcWJ5dGU7ICAg
LyogVG8gIm9yIiBSRVFfVkFSWSAqLworICAgIH0KKworICAvKiBSZWFjaGVkIGVuZCBvZiBleHBy
ZXNzaW9uLCBlaXRoZXIgJyknIG9yIGVuZCBvZiBwYXR0ZXJuLiBHbyBiYWNrIHRocm91Z2gKKyAg
dGhlIGFsdGVybmF0aXZlIGJyYW5jaGVzIGFuZCByZXZlcnNlIHRoZSBjaGFpbiBvZiBvZmZzZXRz
LCB3aXRoIHRoZSBmaWVsZCBpbgorICB0aGUgQlJBIGl0ZW0gbm93IGJlY29taW5nIGFuIG9mZnNl
dCB0byB0aGUgZmlyc3QgYWx0ZXJuYXRpdmUuIElmIHRoZXJlIGFyZQorICBubyBhbHRlcm5hdGl2
ZXMsIGl0IHBvaW50cyB0byB0aGUgZW5kIG9mIHRoZSBncm91cC4gVGhlIGxlbmd0aCBpbiB0aGUK
KyAgdGVybWluYXRpbmcga2V0IGlzIGFsd2F5cyB0aGUgbGVuZ3RoIG9mIHRoZSB3aG9sZSBicmFj
a2V0ZWQgaXRlbS4gSWYgYW55IG9mCisgIHRoZSBpbXMgb3B0aW9ucyB3ZXJlIGNoYW5nZWQgaW5z
aWRlIHRoZSBncm91cCwgY29tcGlsZSBhIHJlc2V0dGluZyBvcC1jb2RlCisgIGZvbGxvd2luZywg
ZXhjZXB0IGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgcGF0dGVybi4gUmV0dXJuIGxlYXZpbmcgdGhl
IHBvaW50ZXIKKyAgYXQgdGhlIHRlcm1pbmF0aW5nIGNoYXIuICovCisKKyAgaWYgKHB0ciA+PSBw
YXR0ZXJuRW5kIHx8ICpwdHIgIT0gJ3wnKQorICAgIHsKKyAgICBpbnQgbGVuZ3RoID0gY29kZSAt
IGxhc3RfYnJhbmNoOworICAgIGRvCisgICAgICB7CisgICAgICBpbnQgcHJldl9sZW5ndGggPSBH
RVQobGFzdF9icmFuY2gsIDEpOworICAgICAgUFVUKGxhc3RfYnJhbmNoLCAxLCBsZW5ndGgpOwor
ICAgICAgbGVuZ3RoID0gcHJldl9sZW5ndGg7CisgICAgICBsYXN0X2JyYW5jaCAtPSBsZW5ndGg7
CisgICAgICB9CisgICAgd2hpbGUgKGxlbmd0aCA+IDApOworCisgICAgLyogRmlsbCBpbiB0aGUg
a2V0ICovCisKKyAgICAqY29kZSA9IE9QX0tFVDsKKyAgICBQVVQoY29kZSwgMSwgY29kZSAtIHN0
YXJ0X2JyYWNrZXQpOworICAgIGNvZGUgKz0gMSArIExJTktfU0laRTsKKworICAgIC8qIFNldCB2
YWx1ZXMgdG8gcGFzcyBiYWNrICovCisKKyAgICAqY29kZXB0ciA9IGNvZGU7CisgICAgKnB0cnB0
ciA9IHB0cjsKKyAgICAqZmlyc3RieXRlcHRyID0gZmlyc3RieXRlOworICAgICpyZXFieXRlcHRy
ID0gcmVxYnl0ZTsKKyAgICByZXR1cm4gVFJVRTsKKyAgICB9CisKKyAgLyogQW5vdGhlciBicmFu
Y2ggZm9sbG93czsgaW5zZXJ0IGFuICJvciIgbm9kZS4gSXRzIGxlbmd0aCBmaWVsZCBwb2ludHMg
YmFjaworICB0byB0aGUgcHJldmlvdXMgYnJhbmNoIHdoaWxlIHRoZSBicmFja2V0IHJlbWFpbnMg
b3Blbi4gQXQgdGhlIGVuZCB0aGUgY2hhaW4KKyAgaXMgcmV2ZXJzZWQuIEl0J3MgZG9uZSBsaWtl
IHRoaXMgc28gdGhhdCB0aGUgc3RhcnQgb2YgdGhlIGJyYWNrZXQgaGFzIGEKKyAgemVybyBvZmZz
ZXQgdW50aWwgaXQgaXMgY2xvc2VkLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gZGV0ZWN0IHJlY3Vy
c2lvbi4gKi8KKworICAqY29kZSA9IE9QX0FMVDsKKyAgUFVUKGNvZGUsIDEsIGNvZGUgLSBsYXN0
X2JyYW5jaCk7CisgIGxhc3RfYnJhbmNoID0gY29kZTsKKyAgY29kZSArPSAxICsgTElOS19TSVpF
OworICBwdHIrKzsKKyAgfQorLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KK30KKwor
CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICAgICAgICAgQ2hlY2sgZm9yIGFuY2hvcmVkIGV4cHJlc3Npb24gICAgICAgICAqCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBUcnkg
dG8gZmluZCBvdXQgaWYgdGhpcyBpcyBhbiBhbmNob3JlZCByZWd1bGFyIGV4cHJlc3Npb24uIENv
bnNpZGVyIGVhY2gKK2FsdGVybmF0aXZlIGJyYW5jaC4gSWYgdGhleSBhbGwgc3RhcnQgd2l0aCBP
UF9TT0Qgb3IgT1BfQ0lSQywgb3Igd2l0aCBhIGJyYWNrZXQKK2FsbCBvZiB3aG9zZSBhbHRlcm5h
dGl2ZXMgc3RhcnQgd2l0aCBPUF9TT0Qgb3IgT1BfQ0lSQyAocmVjdXJzZSBhZCBsaWIpLCB0aGVu
CitpdCdzIGFuY2hvcmVkLiBIb3dldmVyLCBpZiB0aGlzIGlzIGEgbXVsdGlsaW5lIHBhdHRlcm4s
IHRoZW4gb25seSBPUF9TT0QKK2NvdW50cywgc2luY2UgT1BfQ0lSQyBjYW4gbWF0Y2ggaW4gdGhl
IG1pZGRsZS4KKworV2UgY2FuIGFsc28gY29uc2lkZXIgYSByZWdleCB0byBiZSBhbmNob3JlZCBp
ZiBPUF9TT00gc3RhcnRzIGFsbCBpdHMgYnJhbmNoZXMuCitUaGlzIGlzIHRoZSBjb2RlIGZvciBc
Rywgd2hpY2ggbWVhbnMgIm1hdGNoIGF0IHN0YXJ0IG9mIG1hdGNoIHBvc2l0aW9uLCB0YWtpbmcK
K2ludG8gYWNjb3VudCB0aGUgbWF0Y2ggb2Zmc2V0Ii4KKworQSBicmFuY2ggaXMgYWxzbyBpbXBs
aWNpdGx5IGFuY2hvcmVkIGlmIGl0IHN0YXJ0cyB3aXRoIC4qIGFuZCBET1RBTEwgaXMgc2V0LAor
YmVjYXVzZSB0aGF0IHdpbGwgdHJ5IHRoZSByZXN0IG9mIHRoZSBwYXR0ZXJuIGF0IGFsbCBwb3Nz
aWJsZSBtYXRjaGluZyBwb2ludHMsCitzbyB0aGVyZSBpcyBubyBwb2ludCB0cnlpbmcgYWdhaW4u
Li4uIGVyIC4uLi4KKworLi4uLiBleGNlcHQgd2hlbiB0aGUgLiogYXBwZWFycyBpbnNpZGUgY2Fw
dHVyaW5nIHBhcmVudGhlc2VzLCBhbmQgdGhlcmUgaXMgYQorc3Vic2VxdWVudCBiYWNrIHJlZmVy
ZW5jZSB0byB0aG9zZSBwYXJlbnRoZXNlcy4gV2UgaGF2ZW4ndCBlbm91Z2ggaW5mb3JtYXRpb24K
K3RvIGNhdGNoIHRoYXQgY2FzZSBwcmVjaXNlbHkuCisKK0F0IGZpcnN0LCB0aGUgYmVzdCB3ZSBj
b3VsZCBkbyB3YXMgdG8gZGV0ZWN0IHdoZW4gLiogd2FzIGluIGNhcHR1cmluZyBicmFja2V0cwor
YW5kIHRoZSBoaWdoZXN0IGJhY2sgcmVmZXJlbmNlIHdhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwg
dG8gdGhhdCBsZXZlbC4KK0hvd2V2ZXIsIGJ5IGtlZXBpbmcgYSBiaXRtYXAgb2YgdGhlIGZpcnN0
IDMxIGJhY2sgcmVmZXJlbmNlcywgd2UgY2FuIGNhdGNoIHNvbWUKK29mIHRoZSBtb3JlIGNvbW1v
biBjYXNlcyBtb3JlIHByZWNpc2VseS4KKworQXJndW1lbnRzOgorICBjb2RlICAgICAgICAgICBw
b2ludHMgdG8gc3RhcnQgb2YgZXhwcmVzc2lvbiAodGhlIGJyYWNrZXQpCisgIG9wdGlvbnMgICAg
ICAgIHBvaW50cyB0byB0aGUgb3B0aW9ucyBzZXR0aW5nCisgIGJyYWNrZXRfbWFwICAgIGEgYml0
bWFwIG9mIHdoaWNoIGJyYWNrZXRzIHdlIGFyZSBpbnNpZGUgd2hpbGUgdGVzdGluZzsgdGhpcwor
ICAgICAgICAgICAgICAgICAgaGFuZGxlcyB1cCB0byBzdWJzdHJpbmcgMzE7IGFmdGVyIHRoYXQg
d2UganVzdCBoYXZlIHRvIHRha2UKKyAgICAgICAgICAgICAgICAgIHRoZSBsZXNzIHByZWNpc2Ug
YXBwcm9hY2gKKyAgYmFja3JlZl9tYXAgICAgdGhlIGJhY2sgcmVmZXJlbmNlIGJpdG1hcAorCitS
ZXR1cm5zOiAgICAgVFJVRSBvciBGQUxTRQorKi8KKworc3RhdGljIEJPT0wKK2lzX2FuY2hvcmVk
KHJlZ2lzdGVyIGNvbnN0IHVzY2hhciAqY29kZSwgaW50ICpvcHRpb25zLCB1bnNpZ25lZCBpbnQg
YnJhY2tldF9tYXAsCisgIHVuc2lnbmVkIGludCBiYWNrcmVmX21hcCkKK3sKK2RvIHsKKyAgIGNv
bnN0IHVzY2hhciAqc2NvZGUgPQorICAgICBmaXJzdF9zaWduaWZpY2FudF9jb2RlKGNvZGUgKyAx
K0xJTktfU0laRSwgRkFMU0UpOworICAgcmVnaXN0ZXIgaW50IG9wID0gKnNjb2RlOworCisgICAv
KiBDYXB0dXJpbmcgYnJhY2tldHMgKi8KKworICAgaWYgKG9wID4gT1BfQlJBKQorICAgICB7Cisg
ICAgIGludCBuZXdfbWFwOworICAgICBvcCAtPSBPUF9CUkE7CisgICAgIGlmIChvcCA+IEVYVFJB
Q1RfQkFTSUNfTUFYKSBvcCA9IEdFVDIoc2NvZGUsIDIrTElOS19TSVpFKTsKKyAgICAgbmV3X21h
cCA9IGJyYWNrZXRfbWFwIHwgKChvcCA8IDMyKT8gKDEgPDwgb3ApIDogMSk7CisgICAgIGlmICgh
aXNfYW5jaG9yZWQoc2NvZGUsIG9wdGlvbnMsIG5ld19tYXAsIGJhY2tyZWZfbWFwKSkgcmV0dXJu
IEZBTFNFOworICAgICB9CisKKyAgIC8qIE90aGVyIGJyYWNrZXRzICovCisKKyAgIGVsc2UgaWYg
KG9wID09IE9QX0JSQSB8fCBvcCA9PSBPUF9BU1NFUlQgfHwgb3AgPT0gT1BfT05DRSkKKyAgICAg
eworICAgICBpZiAoIWlzX2FuY2hvcmVkKHNjb2RlLCBvcHRpb25zLCBicmFja2V0X21hcCwgYmFj
a3JlZl9tYXApKSByZXR1cm4gRkFMU0U7CisgICAgIH0KKworICAgLyogQ2hlY2sgZm9yIGV4cGxp
Y2l0IGFuY2hvcmluZyAqLworCisgICBlbHNlIGlmICgoKCpvcHRpb25zICYgUENSRV9NVUxUSUxJ
TkUpICE9IDAgfHwgb3AgIT0gT1BfQ0lSQykpCisgICAgIHJldHVybiBGQUxTRTsKKyAgIGNvZGUg
Kz0gR0VUKGNvZGUsIDEpOworICAgfQord2hpbGUgKCpjb2RlID09IE9QX0FMVCk7ICAgLyogTG9v
cCBmb3IgZWFjaCBhbHRlcm5hdGl2ZSAqLworcmV0dXJuIFRSVUU7Cit9CisKKworCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgIENo
ZWNrIGZvciBzdGFydGluZyB3aXRoIF4gb3IgLiogICAgICAgICoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRoaXMgaXMgY2FsbGVkIHRv
IGZpbmQgb3V0IGlmIGV2ZXJ5IGJyYW5jaCBzdGFydHMgd2l0aCBeIG9yIC4qIHNvIHRoYXQKKyJm
aXJzdCBjaGFyIiBwcm9jZXNzaW5nIGNhbiBiZSBkb25lIHRvIHNwZWVkIHRoaW5ncyB1cCBpbiBt
dWx0aWxpbmUKK21hdGNoaW5nIGFuZCBmb3Igbm9uLURPVEFMTCBwYXR0ZXJucyB0aGF0IHN0YXJ0
IHdpdGggLiogKHdoaWNoIG11c3Qgc3RhcnQgYXQKK3RoZSBiZWdpbm5pbmcgb3IgYWZ0ZXIgXG4p
LiBBcyBpbiB0aGUgY2FzZSBvZiBpc19hbmNob3JlZCgpIChzZWUgYWJvdmUpLCB3ZQoraGF2ZSB0
byB0YWtlIGFjY291bnQgb2YgYmFjayByZWZlcmVuY2VzIHRvIGNhcHR1cmluZyBicmFja2V0cyB0
aGF0IGNvbnRhaW4gLioKK2JlY2F1c2UgaW4gdGhhdCBjYXNlIHdlIGNhbid0IG1ha2UgdGhlIGFz
c3VtcHRpb24uCisKK0FyZ3VtZW50czoKKyAgY29kZSAgICAgICAgICAgcG9pbnRzIHRvIHN0YXJ0
IG9mIGV4cHJlc3Npb24gKHRoZSBicmFja2V0KQorICBicmFja2V0X21hcCAgICBhIGJpdG1hcCBv
ZiB3aGljaCBicmFja2V0cyB3ZSBhcmUgaW5zaWRlIHdoaWxlIHRlc3Rpbmc7IHRoaXMKKyAgICAg
ICAgICAgICAgICAgIGhhbmRsZXMgdXAgdG8gc3Vic3RyaW5nIDMxOyBhZnRlciB0aGF0IHdlIGp1
c3QgaGF2ZSB0byB0YWtlCisgICAgICAgICAgICAgICAgICB0aGUgbGVzcyBwcmVjaXNlIGFwcHJv
YWNoCisgIGJhY2tyZWZfbWFwICAgIHRoZSBiYWNrIHJlZmVyZW5jZSBiaXRtYXAKKworUmV0dXJu
czogICAgICAgICBUUlVFIG9yIEZBTFNFCisqLworCitzdGF0aWMgQk9PTAoraXNfc3RhcnRsaW5l
KGNvbnN0IHVzY2hhciAqY29kZSwgdW5zaWduZWQgaW50IGJyYWNrZXRfbWFwLAorICB1bnNpZ25l
ZCBpbnQgYmFja3JlZl9tYXApCit7CitkbyB7CisgICBjb25zdCB1c2NoYXIgKnNjb2RlID0gZmly
c3Rfc2lnbmlmaWNhbnRfY29kZShjb2RlICsgMStMSU5LX1NJWkUsIEZBTFNFKTsKKyAgIHJlZ2lz
dGVyIGludCBvcCA9ICpzY29kZTsKKworICAgLyogQ2FwdHVyaW5nIGJyYWNrZXRzICovCisKKyAg
IGlmIChvcCA+IE9QX0JSQSkKKyAgICAgeworICAgICBpbnQgbmV3X21hcDsKKyAgICAgb3AgLT0g
T1BfQlJBOworICAgICBpZiAob3AgPiBFWFRSQUNUX0JBU0lDX01BWCkgb3AgPSBHRVQyKHNjb2Rl
LCAyK0xJTktfU0laRSk7CisgICAgIG5ld19tYXAgPSBicmFja2V0X21hcCB8ICgob3AgPCAzMik/
ICgxIDw8IG9wKSA6IDEpOworICAgICBpZiAoIWlzX3N0YXJ0bGluZShzY29kZSwgbmV3X21hcCwg
YmFja3JlZl9tYXApKSByZXR1cm4gRkFMU0U7CisgICAgIH0KKworICAgLyogT3RoZXIgYnJhY2tl
dHMgKi8KKworICAgZWxzZSBpZiAob3AgPT0gT1BfQlJBIHx8IG9wID09IE9QX0FTU0VSVCB8fCBv
cCA9PSBPUF9PTkNFKQorICAgICB7IGlmICghaXNfc3RhcnRsaW5lKHNjb2RlLCBicmFja2V0X21h
cCwgYmFja3JlZl9tYXApKSByZXR1cm4gRkFMU0U7IH0KKworICAgLyogLiogbWVhbnMgInN0YXJ0
IGF0IHN0YXJ0IG9yIGFmdGVyIFxuIiBpZiBpdCBpc24ndCBpbiBicmFja2V0cyB0aGF0CisgICBt
YXkgYmUgcmVmZXJlbmNlZC4gKi8KKworICAgZWxzZSBpZiAob3AgPT0gT1BfVFlQRVNUQVIgfHwg
b3AgPT0gT1BfVFlQRU1JTlNUQVIpCisgICAgIHsKKyAgICAgaWYgKHNjb2RlWzFdICE9IE9QX0FO
WSB8fCAoYnJhY2tldF9tYXAgJiBiYWNrcmVmX21hcCkgIT0gMCkgcmV0dXJuIEZBTFNFOworICAg
ICB9CisKKyAgIC8qIENoZWNrIGZvciBleHBsaWNpdCBjaXJjdW1mbGV4ICovCisKKyAgIGVsc2Ug
aWYgKG9wICE9IE9QX0NJUkMpIHJldHVybiBGQUxTRTsKKworICAgLyogTW92ZSBvbiB0byB0aGUg
bmV4dCBhbHRlcm5hdGl2ZSAqLworCisgICBjb2RlICs9IEdFVChjb2RlLCAxKTsKKyAgIH0KK3do
aWxlICgqY29kZSA9PSBPUF9BTFQpOyAgLyogTG9vcCBmb3IgZWFjaCBhbHRlcm5hdGl2ZSAqLwor
cmV0dXJuIFRSVUU7Cit9CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgICAgICBDaGVjayBmb3IgYXNzZXJ0ZWQgZml4ZWQgZmlyc3Qg
Y2hhciAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovCisKKy8qIER1cmluZyBjb21waWxhdGlvbiwgdGhlICJmaXJzdCBjaGFyIiBzZXR0aW5n
cyBmcm9tIGZvcndhcmQgYXNzZXJ0aW9ucyBhcmUKK2Rpc2NhcmRlZCwgYmVjYXVzZSB0aGV5IGNh
biBjYXVzZSBjb25mbGljdHMgd2l0aCBhY3R1YWwgbGl0ZXJhbHMgdGhhdCBmb2xsb3cuCitIb3dl
dmVyLCBpZiB3ZSBlbmQgdXAgd2l0aG91dCBhIGZpcnN0IGNoYXIgc2V0dGluZyBmb3IgYW4gdW5h
bmNob3JlZCBwYXR0ZXJuLAoraXQgaXMgd29ydGggc2Nhbm5pbmcgdGhlIHJlZ2V4IHRvIHNlZSBp
ZiB0aGVyZSBpcyBhbiBpbml0aWFsIGFzc2VydGVkIGZpcnN0CitjaGFyLiBJZiBhbGwgYnJhbmNo
ZXMgc3RhcnQgd2l0aCB0aGUgc2FtZSBhc3NlcnRlZCBjaGFyLCBvciB3aXRoIGEgYnJhY2tldCBh
bGwKK29mIHdob3NlIGFsdGVybmF0aXZlcyBzdGFydCB3aXRoIHRoZSBzYW1lIGFzc2VydGVkIGNo
YXIgKHJlY3Vyc2UgYWQgbGliKSwgdGhlbgord2UgcmV0dXJuIHRoYXQgY2hhciwgb3RoZXJ3aXNl
IC0xLgorCitBcmd1bWVudHM6CisgIGNvZGUgICAgICAgcG9pbnRzIHRvIHN0YXJ0IG9mIGV4cHJl
c3Npb24gKHRoZSBicmFja2V0KQorICBvcHRpb25zICAgIHBvaW50ZXIgdG8gdGhlIG9wdGlvbnMg
KHVzZWQgdG8gY2hlY2sgY2FzaW5nIGNoYW5nZXMpCisgIGluYXNzZXJ0ICAgVFJVRSBpZiBpbiBh
biBhc3NlcnRpb24KKworUmV0dXJuczogICAgIC0xIG9yIHRoZSBmaXhlZCBmaXJzdCBjaGFyCisq
LworCitzdGF0aWMgaW50CitmaW5kX2ZpcnN0YXNzZXJ0ZWRjaGFyKGNvbnN0IHVzY2hhciAqY29k
ZSwgaW50ICpvcHRpb25zLCBCT09MIGluYXNzZXJ0KQoreworcmVnaXN0ZXIgaW50IGMgPSAtMTsK
K2RvIHsKKyAgIGludCBkOworICAgY29uc3QgdXNjaGFyICpzY29kZSA9CisgICAgIGZpcnN0X3Np
Z25pZmljYW50X2NvZGUoY29kZSArIDErTElOS19TSVpFLCBUUlVFKTsKKyAgIHJlZ2lzdGVyIGlu
dCBvcCA9ICpzY29kZTsKKworICAgaWYgKG9wID49IE9QX0JSQSkgb3AgPSBPUF9CUkE7CisKKyAg
IHN3aXRjaChvcCkKKyAgICAgeworICAgICBkZWZhdWx0OgorICAgICByZXR1cm4gLTE7CisKKyAg
ICAgY2FzZSBPUF9CUkE6CisgICAgIGNhc2UgT1BfQVNTRVJUOgorICAgICBjYXNlIE9QX09OQ0U6
CisgICAgIGlmICgoZCA9IGZpbmRfZmlyc3Rhc3NlcnRlZGNoYXIoc2NvZGUsIG9wdGlvbnMsIG9w
ID09IE9QX0FTU0VSVCkpIDwgMCkKKyAgICAgICByZXR1cm4gLTE7CisgICAgIGlmIChjIDwgMCkg
YyA9IGQ7IGVsc2UgaWYgKGMgIT0gZCkgcmV0dXJuIC0xOworICAgICBicmVhazsKKworICAgICBj
YXNlIE9QX0VYQUNUOiAgICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgc2NvZGUgKz0gMjsK
KworICAgICBjYXNlIE9QX0NIQVI6CisgICAgIGNhc2UgT1BfQ0hBUk5DOgorICAgICBjYXNlIE9Q
X0FTQ0lJX0NIQVI6CisgICAgIGNhc2UgT1BfQVNDSUlfTEVUVEVSX05DOgorICAgICBjYXNlIE9Q
X1BMVVM6CisgICAgIGNhc2UgT1BfTUlOUExVUzoKKyAgICAgaWYgKCFpbmFzc2VydCkgcmV0dXJu
IC0xOworICAgICBpZiAoYyA8IDApCisgICAgICAgeworICAgICAgIGMgPSBzY29kZVsxXTsKKyAg
ICAgICBpZiAoKCpvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCkgYyB8PSBSRVFfQ0FTRUxF
U1M7CisgICAgICAgfQorICAgICBlbHNlIGlmIChjICE9IHNjb2RlWzFdKSByZXR1cm4gLTE7Cisg
ICAgIGJyZWFrOworICAgICB9CisKKyAgIGNvZGUgKz0gR0VUKGNvZGUsIDEpOworICAgfQord2hp
bGUgKCpjb2RlID09IE9QX0FMVCk7CityZXR1cm4gYzsKK30KKworCisKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICBDb21waWxlIGEg
UmVndWxhciBFeHByZXNzaW9uICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHN0
cmluZyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBibG9jayBvZiBzdG9yZQoraG9sZGluZyBh
IGNvbXBpbGVkIHZlcnNpb24gb2YgdGhlIGV4cHJlc3Npb24uIFRoZSBvcmlnaW5hbCBBUEkgZm9y
IHRoaXMKK2Z1bmN0aW9uIGhhZCBubyBlcnJvciBjb2RlIHJldHVybiB2YXJpYWJsZTsgaXQgaXMg
cmV0YWluZWQgZm9yIGJhY2t3YXJkcworY29tcGF0aWJpbGl0eS4gVGhlIG5ldyBmdW5jdGlvbiBp
cyBnaXZlbiBhIG5ldyBuYW1lLgorCitBcmd1bWVudHM6CisgIHBhdHRlcm4gICAgICAgdGhlIHJl
Z3VsYXIgZXhwcmVzc2lvbgorICBvcHRpb25zICAgICAgIHZhcmlvdXMgb3B0aW9uIGJpdHMKKyAg
ZXJyb3Jjb2RlcHRyICBwb2ludGVyIHRvIGVycm9yIGNvZGUgdmFyaWFibGUgKHBjcmVfY29tcGls
ZTIoKSBvbmx5KQorICAgICAgICAgICAgICAgICAgY2FuIGJlIE5VTEwgaWYgeW91IGRvbid0IHdh
bnQgYSBjb2RlIHZhbHVlCisgIGVycm9ycHRyICAgICAgcG9pbnRlciB0byBwb2ludGVyIHRvIGVy
cm9yIHRleHQKKyAgZXJyb3JvZmZzZXQgICBwdHIgb2Zmc2V0IGluIHBhdHRlcm4gd2hlcmUgZXJy
b3Igd2FzIGRldGVjdGVkCisgIHRhYmxlcyAgICAgICAgcG9pbnRlciB0byBjaGFyYWN0ZXIgdGFi
bGVzIG9yIE5VTEwKKworUmV0dXJuczogICAgICAgIHBvaW50ZXIgdG8gY29tcGlsZWQgZGF0YSBi
bG9jaywgb3IgTlVMTCBvbiBlcnJvciwKKyAgICAgICAgICAgICAgICB3aXRoIGVycm9ycHRyIGFu
ZCBlcnJvcm9mZnNldCBzZXQKKyovCisKK3BjcmUgKgoranNSZWdFeHBDb21waWxlKGNvbnN0IHBj
cmVfY2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgsIGludCBvcHRpb25zLCB1bnNpZ25l
ZCogbnVtU3VicGF0dGVybnMsIGNvbnN0IGNoYXIqKiBlcnJvcnB0cikKK3sKK3JlYWxfcGNyZSAq
cmU7CitpbnQgbGVuZ3RoID0gMSArIExJTktfU0laRTsgICAgICAvKiBGb3IgaW5pdGlhbCBCUkEg
cGx1cyBsZW5ndGggKi8KK2ludCBjLCBmaXJzdGJ5dGUsIHJlcWJ5dGU7CitpbnQgYnJhY291bnQg
PSAwOworaW50IGJyYW5jaF9leHRyYSA9IDA7CitpbnQgYnJhbmNoX25ld2V4dHJhOworaW50IGl0
ZW1fY291bnQgPSAtMTsKK2ludCBuYW1lX2NvdW50ID0gMDsKK2ludCBtYXhfbmFtZV9zaXplID0g
MDsKK2ludCBsYXN0aXRlbWxlbmd0aCA9IDA7CitpbnQgZXJyb3Jjb2RlID0gMDsKK0JPT0wgY2xh
c3NfdXRmODsKK0JPT0wgY2FwdHVyaW5nOwordW5zaWduZWQgaW50IGJyYXN0YWNrcHRyID0gMDsK
K3NpemVfdCBzaXplOwordXNjaGFyICpjb2RlOworY29uc3QgdXNjaGFyICpjb2Rlc3RhcnQ7Citj
b25zdCBwY3JlX3VjaGFyICpwdHI7Citjb25zdCBwY3JlX3VjaGFyICpwYXR0ZXJuRW5kOworY29t
cGlsZV9kYXRhIGNvbXBpbGVfYmxvY2s7CitpbnQgYnJhc3RhY2tbQlJBU1RBQ0tfU0laRV07Cit1
c2NoYXIgYnJhbGVuc3RhY2tbQlJBU1RBQ0tfU0laRV07CisKKy8qIFdlIGNhbid0IHBhc3MgYmFj
ayBhbiBlcnJvciBtZXNzYWdlIGlmIGVycm9ycHRyIGlzIE5VTEw7IEkgZ3Vlc3MgdGhlIGJlc3Qg
d2UKK2NhbiBkbyBpcyBqdXN0IHJldHVybiBOVUxMLCBidXQgd2UgY2FuIHNldCBhIGNvZGUgdmFs
dWUgaWYgdGhlcmUgaXMgYSBjb2RlCitwb2ludGVyLiAqLworCitpZiAoZXJyb3JwdHIgPT0gTlVM
TCkKKyAgeworICByZXR1cm4gTlVMTDsKKyAgfQorCisqZXJyb3JwdHIgPSBOVUxMOworCisvKiBT
ZXQgdXAgcG9pbnRlcnMgdG8gdGhlIGluZGl2aWR1YWwgY2hhcmFjdGVyIHRhYmxlcyAqLworCitj
b21waWxlX2Jsb2NrLmxjYyA9IF9wY3JlX2RlZmF1bHRfdGFibGVzICsgbGNjX29mZnNldDsKK2Nv
bXBpbGVfYmxvY2suZmNjID0gX3BjcmVfZGVmYXVsdF90YWJsZXMgKyBmY2Nfb2Zmc2V0OworY29t
cGlsZV9ibG9jay5jYml0cyA9IF9wY3JlX2RlZmF1bHRfdGFibGVzICsgY2JpdHNfb2Zmc2V0Owor
Y29tcGlsZV9ibG9jay5jdHlwZXMgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGN0eXBlc19vZmZz
ZXQ7CisKKy8qIE1heGltdW0gYmFjayByZWZlcmVuY2UgYW5kIGJhY2tyZWYgYml0bWFwLiBUaGlz
IGlzIHVwZGF0ZWQgZm9yIG51bWVyaWMKK3JlZmVyZW5jZXMgZHVyaW5nIHRoZSBmaXJzdCBwYXNz
LCBidXQgZm9yIG5hbWVkIHJlZmVyZW5jZXMgZHVyaW5nIHRoZSBhY3R1YWwKK2NvbXBpbGUgcGFz
cy4gVGhlIGJpdG1hcCByZWNvcmRzIHVwIHRvIDMxIGJhY2sgcmVmZXJlbmNlcyB0byBoZWxwIGlu
IGRlY2lkaW5nCit3aGV0aGVyICguKikgY2FuIGJlIHRyZWF0ZWQgYXMgYW5jaG9yZWQgb3Igbm90
LiAqLworCitjb21waWxlX2Jsb2NrLnRvcF9iYWNrcmVmID0gMDsKK2NvbXBpbGVfYmxvY2suYmFj
a3JlZl9tYXAgPSAwOworCisvKiBSZWZsZWN0IHBhdHRlcm4gZm9yIGRlYnVnZ2luZyBvdXRwdXQg
Ki8KKworRFBSSU5URigoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIikpOworCisvKiBUaGUgZmlyc3QgdGhpbmcgdG8g
ZG8gaXMgdG8gbWFrZSBhIHBhc3Mgb3ZlciB0aGUgcGF0dGVybiB0byBjb21wdXRlIHRoZQorYW1v
dW50IG9mIHN0b3JlIHJlcXVpcmVkIHRvIGhvbGQgdGhlIGNvbXBpbGVkIGNvZGUuIFRoaXMgZG9l
cyBub3QgaGF2ZSB0byBiZQorcGVyZmVjdCBhcyBsb25nIGFzIGVycm9ycyBhcmUgb3ZlcmVzdGlt
YXRlcy4gQXQgdGhlIHNhbWUgdGltZSB3ZSBjYW4gZGV0ZWN0IGFueQorZmxhZyBzZXR0aW5ncyBy
aWdodCBhdCB0aGUgc3RhcnQsIGFuZCBleHRyYWN0IHRoZW0uIE1ha2UgYW4gYXR0ZW1wdCB0byBj
b3JyZWN0Citmb3IgYW55IGNvdW50ZWQgd2hpdGUgc3BhY2UgaWYgYW4gImV4dGVuZGVkIiBmbGFn
IHNldHRpbmcgYXBwZWFycyBsYXRlIGluIHRoZQorcGF0dGVybi4gV2UgY2FuJ3QgYmUgc28gY2xl
dmVyIGZvciAjLWNvbW1lbnRzLiAqLworCitwdHIgPSAoY29uc3QgcGNyZV91Y2hhciAqKShwYXR0
ZXJuIC0gMSk7CitwYXR0ZXJuRW5kID0gKGNvbnN0IHBjcmVfdWNoYXIgKikocGF0dGVybiArIHBh
dHRlcm5MZW5ndGgpOworCit3aGlsZSAoKytwdHIgPCBwYXR0ZXJuRW5kKQorICB7CisgIGludCBt
aW4gPSAwLCBtYXggPSAwOworICBpbnQgY2xhc3Nfb3B0Y291bnQ7CisgIGludCBicmFja2V0X2xl
bmd0aDsKKyAgaW50IGR1cGxlbmd0aDsKKworICBjID0gKnB0cjsKKyAgCisgIC8qIElmIHdlIGFy
ZSBpbnNpZGUgYSBcUS4uLlxFIHNlcXVlbmNlLCBhbGwgY2hhcnMgYXJlIGxpdGVyYWwgKi8KKwor
ICBpdGVtX2NvdW50Kys7ICAgIC8qIElzIHplcm8gZm9yIHRoZSBmaXJzdCBub24tY29tbWVudCBp
dGVtICovCisKKyAgc3dpdGNoKGMpCisgICAgeworICAgIC8qIEEgYmFja3NsYXNoZWQgaXRlbSBt
YXkgYmUgYW4gZXNjYXBlZCBkYXRhIGNoYXJhY3RlciBvciBpdCBtYXkgYmUgYQorICAgIGNoYXJh
Y3RlciB0eXBlLiAqLworCisgICAgY2FzZSAnXFwnOgorICAgIGMgPSBjaGVja19lc2NhcGUoJnB0
ciwgcGF0dGVybkVuZCwgJmVycm9yY29kZSwgYnJhY291bnQsIEZBTFNFKTsKKyAgICBpZiAoZXJy
b3Jjb2RlICE9IDApIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CisKKyAgICBsYXN0aXRlbWxlbmd0
aCA9IDE7ICAgICAvKiBEZWZhdWx0IGxlbmd0aCBvZiBsYXN0IGl0ZW0gZm9yIHJlcGVhdHMgKi8K
KworICAgIGlmIChjID49IDApICAgICAgICAgICAgIC8qIERhdGEgY2hhcmFjdGVyICovCisgICAg
ICB7CisgICAgICBsZW5ndGggKz0gMjsgICAgICAgICAgLyogRm9yIGEgb25lLWJ5dGUgY2hhcmFj
dGVyICovCisKKyAgICAgIGlmIChjID4gMTI3KQorICAgICAgICB7CisgICAgICAgIGludCBpOwor
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgX3BjcmVfdXRmOF90YWJsZTFfc2l6ZTsgaSsrKQorICAg
ICAgICAgIGlmIChjIDw9IF9wY3JlX3V0ZjhfdGFibGUxW2ldKSBicmVhazsKKyAgICAgICAgbGVu
Z3RoICs9IGk7CisgICAgICAgIGxhc3RpdGVtbGVuZ3RoICs9IGk7CisgICAgICAgIH0KKworICAg
ICAgY29udGludWU7CisgICAgICB9CisKKyAgICAvKiBPdGhlciBlc2NhcGVzIG5lZWQgb25lIGJ5
dGUgKi8KKworICAgIGxlbmd0aCsrOworCisgICAgLyogQSBiYWNrIHJlZmVyZW5jZSBuZWVkcyBh
biBhZGRpdGlvbmFsIDIgYnl0ZXMsIHBsdXMgZWl0aGVyIG9uZSBvciA1CisgICAgYnl0ZXMgZm9y
IGEgcmVwZWF0LiBXZSBhbHNvIG5lZWQgdG8ga2VlcCB0aGUgdmFsdWUgb2YgdGhlIGhpZ2hlc3QK
KyAgICBiYWNrIHJlZmVyZW5jZS4gKi8KKworICAgIGlmIChjIDw9IC1FU0NfUkVGKQorICAgICAg
eworICAgICAgaW50IHJlZm51bSA9IC1jIC0gRVNDX1JFRjsKKyAgICAgIGNvbXBpbGVfYmxvY2su
YmFja3JlZl9tYXAgfD0gKHJlZm51bSA8IDMyKT8gKDEgPDwgcmVmbnVtKSA6IDE7CisgICAgICBp
ZiAocmVmbnVtID4gY29tcGlsZV9ibG9jay50b3BfYmFja3JlZikKKyAgICAgICAgY29tcGlsZV9i
bG9jay50b3BfYmFja3JlZiA9IHJlZm51bTsKKyAgICAgIGxlbmd0aCArPSAyOyAgIC8qIEZvciBz
aW5nbGUgYmFjayByZWZlcmVuY2UgKi8KKyAgICAgIGlmIChwdHJbMV0gPT0gJ3snICYmIGlzX2Nv
dW50ZWRfcmVwZWF0KHB0cisyLCBwYXR0ZXJuRW5kKSkKKyAgICAgICAgeworICAgICAgICBwdHIg
PSByZWFkX3JlcGVhdF9jb3VudHMocHRyKzIsICZtaW4sICZtYXgsICZlcnJvcmNvZGUpOworICAg
ICAgICBpZiAoZXJyb3Jjb2RlICE9IDApIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CisgICAgICAg
IGlmICgobWluID09IDAgJiYgKG1heCA9PSAxIHx8IG1heCA9PSAtMSkpIHx8CisgICAgICAgICAg
KG1pbiA9PSAxICYmIG1heCA9PSAtMSkpCisgICAgICAgICAgICBsZW5ndGgrKzsKKyAgICAgICAg
ZWxzZSBsZW5ndGggKz0gNTsKKyAgICAgICAgaWYgKHB0clsxXSA9PSAnPycpIHB0cisrOworICAg
ICAgICAgICAgcHRyKys7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBjb250aW51ZTsKKworICAg
IGNhc2UgJ14nOiAgICAgLyogU2luZ2xlLWJ5dGUgbWV0YWNoYXJhY3RlcnMgKi8KKyAgICBjYXNl
ICcuJzoKKyAgICBjYXNlICckJzoKKyAgICBsZW5ndGgrKzsKKyAgICBsYXN0aXRlbWxlbmd0aCA9
IDE7CisgICAgY29udGludWU7CisKKyAgICBjYXNlICcqJzogICAgICAgICAgICAvKiBUaGVzZSBy
ZXBlYXRzIHdvbid0IGJlIGFmdGVyIGJyYWNrZXRzOyAqLworICAgIGNhc2UgJysnOiAgICAgICAg
ICAgIC8qIHRob3NlIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHkgKi8KKyAgICBjYXNlICc/JzoKKyAg
ICBsZW5ndGgrKzsKKyAgICBnb3RvIFBPU0VTU0lWRTsgICAgICAvKiBBIGZldyBsaW5lcyBiZWxv
dyAqLworCisgICAgLyogVGhpcyBjb3ZlcnMgdGhlIGNhc2VzIG9mIGJyYWNlZCByZXBlYXRzIGFm
dGVyIGEgc2luZ2xlIGNoYXIsIG1ldGFjaGFyLAorICAgIGNsYXNzLCBvciBiYWNrIHJlZmVyZW5j
ZS4gKi8KKworICAgIGNhc2UgJ3snOgorICAgIGlmICghaXNfY291bnRlZF9yZXBlYXQocHRyKzEs
IHBhdHRlcm5FbmQpKSBnb3RvIE5PUk1BTF9DSEFSOworICAgIHB0ciA9IHJlYWRfcmVwZWF0X2Nv
dW50cyhwdHIrMSwgJm1pbiwgJm1heCwgJmVycm9yY29kZSk7CisgICAgaWYgKGVycm9yY29kZSAh
PSAwKSBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOworCisgICAgLyogVGhlc2Ugc3BlY2lhbCBjYXNl
cyBqdXN0IGluc2VydCBvbmUgZXh0cmEgb3Bjb2RlICovCisKKyAgICBpZiAoKG1pbiA9PSAwICYm
IChtYXggPT0gMSB8fCBtYXggPT0gLTEpKSB8fAorICAgICAgKG1pbiA9PSAxICYmIG1heCA9PSAt
MSkpCisgICAgICAgIGxlbmd0aCsrOworCisgICAgLyogVGhlc2UgY2FzZXMgbWlnaHQgaW5zZXJ0
IGFkZGl0aW9uYWwgY29waWVzIG9mIGEgcHJlY2VkaW5nIGNoYXJhY3Rlci4gKi8KKworICAgIGVs
c2UKKyAgICAgIHsKKyAgICAgIGlmIChtaW4gIT0gMSkKKyAgICAgICAgeworICAgICAgICBsZW5n
dGggLT0gbGFzdGl0ZW1sZW5ndGg7ICAgLyogVW5jb3VudCB0aGUgb3JpZ2luYWwgY2hhciBvciBt
ZXRhY2hhciAqLworICAgICAgICBpZiAobWluID4gMCkgbGVuZ3RoICs9IDMgKyBsYXN0aXRlbWxl
bmd0aDsKKyAgICAgICAgfQorICAgICAgbGVuZ3RoICs9IGxhc3RpdGVtbGVuZ3RoICsgKChtYXgg
PiAwKT8gMyA6IDEpOworICAgICAgfQorCisgICAgaWYgKHB0clsxXSA9PSAnPycpIHB0cisrOyAg
ICAgIC8qIE5lZWRzIG5vIGV4dHJhIGxlbmd0aCAqLworCisgICAgUE9TRVNTSVZFOiAgICAgICAg
ICAgICAgICAgICAgIC8qIFRlc3QgZm9yIHBvc3Nlc3NpdmUgcXVhbnRpZmllciAqLworICAgIGlm
IChwdHJbMV0gPT0gJysnKQorICAgICAgeworICAgICAgcHRyKys7CisgICAgICBsZW5ndGggKz0g
MiArIDIqTElOS19TSVpFOyAgIC8qIEFsbG93IGZvciBhdG9taWMgYnJhY2tldHMgKi8KKyAgICAg
IH0KKyAgICBjb250aW51ZTsKKworICAgIC8qIEFuIGFsdGVybmF0aW9uIGNvbnRhaW5zIGFuIG9m
ZnNldCB0byB0aGUgbmV4dCBicmFuY2ggb3Iga2V0LiBJZiBhbnkgaW1zCisgICAgb3B0aW9ucyBj
aGFuZ2VkIGluIHRoZSBwcmV2aW91cyBicmFuY2goZXMpLCBhbmQvb3IgaWYgd2UgYXJlIGluIGEK
KyAgICBsb29rYmVoaW5kIGFzc2VydGlvbiwgZXh0cmEgc3BhY2Ugd2lsbCBiZSBuZWVkZWQgYXQg
dGhlIHN0YXJ0IG9mIHRoZQorICAgIGJyYW5jaC4gVGhpcyBpcyBoYW5kbGVkIGJ5IGJyYW5jaF9l
eHRyYS4gKi8KKworICAgIGNhc2UgJ3wnOgorICAgIGxlbmd0aCArPSAxICsgTElOS19TSVpFICsg
YnJhbmNoX2V4dHJhOworICAgIGNvbnRpbnVlOworCisgICAgLyogQSBjaGFyYWN0ZXIgY2xhc3Mg
dXNlcyAzMyBjaGFyYWN0ZXJzIHByb3ZpZGVkIHRoYXQgYWxsIHRoZSBjaGFyYWN0ZXIKKyAgICB2
YWx1ZXMgYXJlIGxlc3MgdGhhbiAyNTYuIE90aGVyd2lzZSwgaXQgdXNlcyBhIGJpdCBtYXAgZm9y
IGxvdyB2YWx1ZWQKKyAgICBjaGFyYWN0ZXJzLCBhbmQgaW5kaXZpZHVhbCBpdGVtcyBmb3Igb3Ro
ZXJzLiBEb24ndCB3b3JyeSBhYm91dCBjaGFyYWN0ZXIKKyAgICB0eXBlcyB0aGF0IGFyZW4ndCBh
bGxvd2VkIGluIGNsYXNzZXMgLSB0aGV5J2xsIGdldCBwaWNrZWQgdXAgZHVyaW5nIHRoZQorICAg
IGNvbXBpbGUuIEEgY2hhcmFjdGVyIGNsYXNzIHRoYXQgY29udGFpbnMgb25seSBvbmUgc2luZ2xl
LWJ5dGUgY2hhcmFjdGVyCisgICAgdXNlcyAyIG9yIDMgYnl0ZXMsIGRlcGVuZGluZyBvbiB3aGV0
aGVyIGl0IGlzIG5lZ2F0ZWQgb3Igbm90LiBOb3RpY2UgdGhpcworICAgIHdoZXJlIHdlIGNhbi4g
KEluIFVURi04IG1vZGUgd2UgY2FuIGRvIHRoaXMgb25seSBmb3IgY2hhcnMgPCAxMjguKSAqLwor
CisgICAgY2FzZSAnWyc6CisgICAgaWYgKCooKytwdHIpID09ICdeJykKKyAgICAgIHsKKyAgICAg
IGNsYXNzX29wdGNvdW50ID0gMTA7ICAvKiBHcmVhdGVyIHRoYW4gb25lICovCisgICAgICBwdHIr
KzsKKyAgICAgIH0KKyAgICBlbHNlIGNsYXNzX29wdGNvdW50ID0gMDsKKworICAgIGNsYXNzX3V0
ZjggPSBGQUxTRTsKKworICAgIC8qIFdyaXR0ZW4gYXMgYSAiZG8iIHNvIHRoYXQgYW4gaW5pdGlh
bCAnXScgaXMgdGFrZW4gYXMgZGF0YSAqLworCisgICAgaWYgKCpwdHIgIT0gMCkgZG8KKyAgICAg
IHsKKyAgICAgIC8qIE91dHNpZGUgXFEuLi5cRSwgY2hlY2sgZm9yIGVzY2FwZXMgKi8KKworICAg
ICAgaWYgKCpwdHIgPT0gJ1xcJykKKyAgICAgICAgeworICAgICAgICBjID0gY2hlY2tfZXNjYXBl
KCZwdHIsIHBhdHRlcm5FbmQsICZlcnJvcmNvZGUsIGJyYWNvdW50LCBUUlVFKTsKKyAgICAgICAg
aWYgKGVycm9yY29kZSAhPSAwKSBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOworCisgICAgICAgIC8q
IFxiIGlzIGJhY2tzcGFjZSBpbnNpZGUgYSBjbGFzczsgXFggaXMgbGl0ZXJhbCAqLworCisgICAg
ICAgIGlmICgtYyA9PSBFU0NfYikgYyA9ICdcYic7CisKKyAgICAgICAgLyogSGFuZGxlIGVzY2Fw
ZXMgdGhhdCB0dXJuIGludG8gY2hhcmFjdGVycyAqLworCisgICAgICAgIGlmIChjID49IDApIGdv
dG8gTk9OX1NQRUNJQUxfQ0hBUkFDVEVSOworCisgICAgICAgIC8qIEVzY2FwZXMgdGhhdCBhcmUg
bWV0YS10aGluZ3MuIFRoZSBub3JtYWwgb25lcyBqdXN0IGFmZmVjdCB0aGUKKyAgICAgICAgYml0
IG1hcCwgYnV0IFVuaWNvZGUgcHJvcGVydGllcyByZXF1aXJlIGFuIFhDTEFTUyBleHRlbmRlZCBp
dGVtLiAqLworCisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgY2xhc3Nfb3B0
Y291bnQgPSAxMDsgICAgICAgICAvKiBcZCwgXHMgZXRjOyBtYWtlIHN1cmUgPiAxICovCisgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgIC8qIEFueXRoaW5nIGVsc2UgaW5jcmVtZW50cyB0
aGUgcG9zc2libGUgb3B0aW1pemF0aW9uIGNvdW50LiBXZSBoYXZlIHRvCisgICAgICBkZXRlY3Qg
cmFuZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGV4dHJhIHJh
bmdlcyBmb3IKKyAgICAgIGNhc2VsZXNzIHdpZGUgY2hhcmFjdGVycyB3aGVuIFVDUCBzdXBwb3J0
IGlzIGF2YWlsYWJsZS4gSWYgdGhlcmUgYXJlIHdpZGUKKyAgICAgIGNoYXJhY3RlcnMsIHdlIGFy
ZSBnb2luZyB0byBoYXZlIHRvIHVzZSBhbiBYQ0xBU1MsIGV2ZW4gZm9yIHNpbmdsZQorICAgICAg
Y2hhcmFjdGVycy4gKi8KKworICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgIGludCBkOwor
CisgICAgICAgICAgeworICAgICAgICAgIGludCBleHRyYSA9IDA7CisgICAgICAgICAgR0VUQ0hB
UkxFTkVORChjLCBwdHIsIHBhdHRlcm5FbmQsIGV4dHJhKTsKKyAgICAgICAgICBwdHIgKz0gZXh0
cmE7CisgICAgICAgICAgfQorCisgICAgICAgIC8qIENvbWUgaGVyZSBmcm9tIGhhbmRsaW5nIFwg
YWJvdmUgd2hlbiBpdCBlc2NhcGVzIHRvIGEgY2hhciB2YWx1ZSAqLworCisgICAgICAgIE5PTl9T
UEVDSUFMX0NIQVJBQ1RFUjoKKyAgICAgICAgY2xhc3Nfb3B0Y291bnQrKzsKKworICAgICAgICBk
ID0gLTE7CisgICAgICAgIGlmIChwdHIgKyAxIDwgcGF0dGVybkVuZCAmJiBwdHJbMV0gPT0gJy0n
KQorICAgICAgICAgIHsKKyAgICAgICAgICBwY3JlX3VjaGFyIGNvbnN0ICpoeXB0ciA9IHB0cisr
OworICAgICAgICAgIGlmIChwdHIgKyAxIDwgcGF0dGVybkVuZCAmJiBwdHJbMV0gPT0gJ1xcJykK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHB0cisrOworICAgICAgICAgICAgZCA9IGNoZWNr
X2VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCAmZXJyb3Jjb2RlLCBicmFjb3VudCwgVFJVRSk7Cisg
ICAgICAgICAgICBpZiAoZXJyb3Jjb2RlICE9IDApIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47Cisg
ICAgICAgICAgICBpZiAoLWQgPT0gRVNDX2IpIGQgPSAnXGInOyAgICAgICAgLyogYmFja3NwYWNl
ICovCisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAocHRyICsgMSA8IHBhdHRlcm5F
bmQgJiYgcHRyWzFdICE9ICddJykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHB0cisrOwor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGludCBleHRyYSA9IDA7CisgICAgICAgICAg
ICAgIEdFVENIQVJMRU5FTkQoZCwgcHRyLCBwYXR0ZXJuRW5kLCBleHRyYSk7CisgICAgICAgICAg
ICAgIHB0ciArPSBleHRyYTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgIGlmIChkIDwgMCkgcHRyID0gaHlwdHI7ICAgICAgLyogZ28gYmFjayB0byBoeXBoZW4gYXMg
ZGF0YSAqLworICAgICAgICAgIH0KKworICAgICAgICAvKiBJZiBkID49IDAgd2UgaGF2ZSBhIHJh
bmdlLiBJbiBVVEYtOCBtb2RlLCBpZiB0aGUgZW5kIGlzID4gMjU1LCBvciA+CisgICAgICAgIDEy
NyBmb3IgY2FzZWxlc3MgbWF0Y2hpbmcsIHdlIHdpbGwgbmVlZCB0byB1c2UgYW4gWENMQVNTLiAq
LworCisgICAgICAgIGlmIChkID49IDApCisgICAgICAgICAgeworICAgICAgICAgIGNsYXNzX29w
dGNvdW50ID0gMTA7ICAgICAvKiBFbnN1cmUgPiAxICovCisgICAgICAgICAgaWYgKGQgPCBjKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgZXJyb3Jjb2RlID0gRVJSODsKKyAgICAgICAgICAg
IGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAo
KGQgPiAyNTUgfHwgKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCAmJiBkID4gMTI3KSkp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICB1c2NoYXIgYnVmZmVyWzZdOworICAgICAgICAg
ICAgaWYgKCFjbGFzc191dGY4KSAgICAgICAgIC8qIEFsbG93IGZvciBYQ0xBU1Mgb3ZlcmhlYWQg
Ki8KKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICBjbGFzc191dGY4ID0gVFJVRTsKKyAg
ICAgICAgICAgICAgbGVuZ3RoICs9IExJTktfU0laRSArIDI7CisgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLyogSWYgd2UgaGF2ZSBVQ1Agc3VwcG9ydCwgZmluZCBvdXQgaG93IG1hbnkg
ZXh0cmEgcmFuZ2VzIGFyZQorICAgICAgICAgICAgbmVlZGVkIHRvIG1hcCB0aGUgb3RoZXIgY2Fz
ZSBvZiBjaGFyYWN0ZXJzIHdpdGhpbiB0aGlzIHJhbmdlLiBXZQorICAgICAgICAgICAgaGF2ZSB0
byBtaW1pYyB0aGUgcmFuZ2Ugb3B0aW1pemF0aW9uIGhlcmUsIGJlY2F1c2UgZXh0ZW5kaW5nIHRo
ZQorICAgICAgICAgICAgcmFuZ2UgdXB3YXJkcyBtaWdodCBwdXNoIGQgb3ZlciBhIGJvdW5kYXJ5
IHRoYXQgbWFrZXMgaXMgdXNlCisgICAgICAgICAgICBhbm90aGVyIGJ5dGUgaW4gdGhlIFVURi04
IHJlcHJlc2VudGF0aW9uLiAqLworCisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBQQ1JFX0NB
U0VMRVNTKSAhPSAwKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGludCBvY2MsIG9j
ZDsKKyAgICAgICAgICAgICAgaW50IGNjID0gYzsKKyAgICAgICAgICAgICAgaW50IG9yaWdkID0g
ZDsKKyAgICAgICAgICAgICAgd2hpbGUgKGdldF9vdGhlcmNhc2VfcmFuZ2UoJmNjLCBvcmlnZCwg
Jm9jYywgJm9jZCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChvY2Mg
Pj0gYyAmJiBvY2QgPD0gZCkgY29udGludWU7ICAgLyogU2tpcCBlbWJlZGRlZCAqLworCisgICAg
ICAgICAgICAgICAgaWYgKG9jYyA8IGMgICYmIG9jZCA+PSBjIC0gMSkgIC8qIEV4dGVuZCB0aGUg
YmFzaWMgcmFuZ2UgKi8KKyAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogaWYgdGhlcmUgaXMgb3ZlcmxhcCwgICAqLworICAgICAgICAgICAgICAgICAgYyA9
IG9jYzsgICAgICAgICAgICAgICAgICAgICAvKiBub3RpbmcgdGhhdCBpZiBvY2MgPCBjICovCisg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNhbid0
IGhhdmUgb2NkID4gZCAgKi8KKyAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogYmVjYXVzZSBhIHN1YnJhbmdlIGlzICAqLworICAgICAgICAgICAgICAgIGlm
IChvY2QgPiBkICYmIG9jYyA8PSBkICsgMSkgICAvKiBhbHdheXMgc2hvcnRlciB0aGFuICAgICov
CisgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBi
YXNpYyByYW5nZS4gICAgICAgKi8KKyAgICAgICAgICAgICAgICAgIGQgPSBvY2Q7CisgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIC8qIEFuIGV4dHJhIGl0ZW0gaXMgbmVlZGVkICovCisKKyAgICAgICAgICAgICAgICBsZW5n
dGggKz0gMSArIF9wY3JlX29yZDJ1dGY4KG9jYywgYnVmZmVyKSArCisgICAgICAgICAgICAgICAg
ICAoKG9jYyA9PSBvY2QpPyAwIDogX3BjcmVfb3JkMnV0Zjgob2NkLCBidWZmZXIpKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogVGhlIGxlbmd0
aCBvZiB0aGUgKHBvc3NpYmx5IGV4dGVuZGVkKSByYW5nZSAqLworCisgICAgICAgICAgICBsZW5n
dGggKz0gMSArIF9wY3JlX29yZDJ1dGY4KGMsIGJ1ZmZlcikgKyBfcGNyZV9vcmQydXRmOChkLCBi
dWZmZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgfQorCisgICAgICAgIC8qIFdlIGhh
dmUgYSBzaW5nbGUgY2hhcmFjdGVyLiBUaGVyZSBpcyBub3RoaW5nIHRvIGJlIGRvbmUgdW5sZXNz
IHdlCisgICAgICAgIGFyZSBpbiBVVEYtOCBtb2RlLiBJZiB0aGUgY2hhciBpcyA+IDI1NSwgb3Ig
MTI3IHdoZW4gY2FzZWxlc3MsIHdlIG11c3QKKyAgICAgICAgYWxsb3cgZm9yIGFuIFhDTF9TSU5H
TEUgaXRlbSwgZG91YmxlZCBmb3IgY2FzZWxlc3NuZXNzIGlmIHRoZXJlIGlzIFVDUAorICAgICAg
ICBzdXBwb3J0LiAqLworCisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgaWYg
KChjID4gMjU1IHx8ICgob3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAgJiYgYyA+IDEyNykp
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgdXNjaGFyIGJ1ZmZlcls2XTsKKyAgICAgICAg
ICAgIGNsYXNzX29wdGNvdW50ID0gMTA7ICAgICAvKiBFbnN1cmUgPiAxICovCisgICAgICAgICAg
ICBpZiAoIWNsYXNzX3V0ZjgpICAgICAgICAgLyogQWxsb3cgZm9yIFhDTEFTUyBvdmVyaGVhZCAq
LworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNsYXNzX3V0ZjggPSBUUlVFOworICAg
ICAgICAgICAgICBsZW5ndGggKz0gTElOS19TSVpFICsgMjsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbGVuZ3RoICs9ICgoKG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKT8gMiA6
IDEpICoKKyAgICAgICAgICAgICAgKDEgKyBfcGNyZV9vcmQydXRmOChjLCBidWZmZXIpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB3aGlsZSAo
KytwdHIgPCBwYXR0ZXJuRW5kICYmICpwdHIgIT0gJ10nKTsgLyogQ29uY2x1ZGVzICJkbyIgYWJv
dmUgKi8KKworICAgIGlmIChwdHIgPj0gcGF0dGVybkVuZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIE1pc3NpbmcgdGVybWluYXRpbmcgJ10nICovCisgICAgICB7CisgICAgICBlcnJvcmNv
ZGUgPSBFUlI2OworICAgICAgZ290byBQQ1JFX0VSUk9SX1JFVFVSTjsKKyAgICAgIH0KKworICAg
IC8qIFdlIGNhbiBvcHRpbWl6ZSB3aGVuIHRoZXJlIHdhcyBvbmx5IG9uZSBvcHRpbWl6YWJsZSBj
aGFyYWN0ZXIuIFJlcGVhdHMKKyAgICBmb3IgcG9zaXRpdmUgYW5kIG5lZ2F0ZWQgc2luZ2xlIG9u
ZS1ieXRlIGNoYXJzIGFyZSBoYW5kbGVkIGJ5IHRoZSBnZW5lcmFsCisgICAgY29kZS4gSGVyZSwg
d2UgaGFuZGxlIHJlcGVhdHMgZm9yIHRoZSBjbGFzcyBvcGNvZGVzLiAqLworCisgICAgaWYgKGNs
YXNzX29wdGNvdW50ID09IDEpIGxlbmd0aCArPSAzOyBlbHNlCisgICAgICB7CisgICAgICBsZW5n
dGggKz0gMzM7CisKKyAgICAgIC8qIEEgcmVwZWF0IG5lZWRzIGVpdGhlciAxIG9yIDUgYnl0ZXMu
IElmIGl0IGlzIGEgcG9zc2Vzc2l2ZSBxdWFudGlmaWVyLAorICAgICAgd2UgYWxzbyBuZWVkIGV4
dHJhIGZvciB3cmFwcGluZyB0aGUgd2hvbGUgdGhpbmcgaW4gYSBzdWItcGF0dGVybi4gKi8KKwor
ICAgICAgaWYgKHB0ciArIDEgPCBwYXR0ZXJuRW5kICYmIHB0clsxXSA9PSAneycgJiYgaXNfY291
bnRlZF9yZXBlYXQocHRyKzIsIHBhdHRlcm5FbmQpKQorICAgICAgICB7CisgICAgICAgIHB0ciA9
IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMiwgJm1pbiwgJm1heCwgJmVycm9yY29kZSk7CisgICAg
ICAgIGlmIChlcnJvcmNvZGUgIT0gMCkgZ290byBQQ1JFX0VSUk9SX1JFVFVSTjsKKyAgICAgICAg
aWYgKChtaW4gPT0gMCAmJiAobWF4ID09IDEgfHwgbWF4ID09IC0xKSkgfHwKKyAgICAgICAgICAo
bWluID09IDEgJiYgbWF4ID09IC0xKSkKKyAgICAgICAgICAgIGxlbmd0aCsrOworICAgICAgICBl
bHNlIGxlbmd0aCArPSA1OworICAgICAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQgJiYgcHRy
WzFdID09ICcrJykKKyAgICAgICAgICB7CisgICAgICAgICAgcHRyKys7CisgICAgICAgICAgbGVu
Z3RoICs9IDIgKyAyKkxJTktfU0laRTsKKyAgICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHB0
ciArIDEgPCBwYXR0ZXJuRW5kICYmIHB0clsxXSA9PSAnPycpIHB0cisrOworICAgICAgICB9Cisg
ICAgICB9CisgICAgY29udGludWU7CisKKyAgICAvKiBCcmFja2V0cyBtYXkgYmUgZ2VudWluZSBn
cm91cHMgb3Igc3BlY2lhbCB0aGluZ3MgKi8KKworICAgIGNhc2UgJygnOgorICAgIGJyYW5jaF9u
ZXdleHRyYSA9IDA7CisgICAgYnJhY2tldF9sZW5ndGggPSAxICsgTElOS19TSVpFOworICAgIGNh
cHR1cmluZyA9IEZBTFNFOworCisgICAgLyogSGFuZGxlIHNwZWNpYWwgZm9ybXMgb2YgYnJhY2tl
dCwgd2hpY2ggYWxsIHN0YXJ0ICg/ICovCisKKyAgICBpZiAocHRyICsgMSA8IHBhdHRlcm5FbmQg
JiYgcHRyWzFdID09ICc/JykKKyAgICAgIHsKKyAgICAgIHN3aXRjaCAoYyA9IChwdHIgKyAyIDwg
cGF0dGVybkVuZCA/IHB0clsyXSA6IDApKQorICAgICAgICB7CisgICAgICAgIC8qIE5vbi1yZWZl
cmVuY2luZyBncm91cHMgYW5kIGxvb2thaGVhZHMganVzdCBtb3ZlIHRoZSBwb2ludGVyIG9uLCBh
bmQKKyAgICAgICAgdGhlbiBiZWhhdmUgbGlrZSBhIG5vbi1zcGVjaWFsIGJyYWNrZXQsIGV4Y2Vw
dCB0aGF0IHRoZXkgZG9uJ3QgaW5jcmVtZW50CisgICAgICAgIHRoZSBjb3VudCBvZiBleHRyYWN0
aW5nIGJyYWNrZXRzLiBEaXR0byBmb3IgdGhlICJvbmNlIG9ubHkiIGJyYWNrZXQsCisgICAgICAg
IHdoaWNoIGlzIGluIFBlcmwgZnJvbSB2ZXJzaW9uIDUuMDA1LiAqLworCisgICAgICAgIGNhc2Ug
JzonOgorICAgICAgICBjYXNlICc9JzoKKyAgICAgICAgY2FzZSAnISc6CisgICAgICAgIHB0ciAr
PSAyOworICAgICAgICBicmVhazsKKworICAgICAgICAvKiBFbHNlIGxvb3AgY2hlY2tpbmcgdmFs
aWQgb3B0aW9ucyB1bnRpbCApIGlzIG1ldC4gQW55dGhpbmcgZWxzZSBpcyBhbgorICAgICAgICBl
cnJvci4gSWYgd2UgYXJlIHdpdGhvdXQgYW55IGJyYWNrZXRzLCBpLmUuIGF0IHRvcCBsZXZlbCwg
dGhlIHNldHRpbmdzCisgICAgICAgIGFjdCBhcyBpZiBzcGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMs
IHNvIG1hc3NhZ2UgdGhlIG9wdGlvbnMgaW1tZWRpYXRlbHkuCisgICAgICAgIFRoaXMgaXMgZm9y
IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBQZXJsIDUuMDA0LiAqLworCisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgIGVycm9yY29kZSA9IEVSUjEyOworICAgICAgICBnb3RvIFBDUkVfRVJS
T1JfUkVUVVJOOworICAgICAgICB9CisgICAgICB9CisKKyAgICBlbHNlIGNhcHR1cmluZyA9IDE7
CisKKyAgICAvKiBDYXB0dXJpbmcgYnJhY2tldHMgbXVzdCBiZSBjb3VudGVkIHNvIHdlIGNhbiBw
cm9jZXNzIGVzY2FwZXMgaW4gYQorICAgIFBlcmxpc2ggd2F5LiBJZiB0aGUgbnVtYmVyIGV4Y2Vl
ZHMgRVhUUkFDVF9CQVNJQ19NQVggd2UgYXJlIGdvaW5nIHRvIG5lZWQKKyAgICBhbiBhZGRpdGlv
bmFsIDMgYnl0ZXMgb2YgbWVtb3J5IHBlciBjYXB0dXJpbmcgYnJhY2tldC4gKi8KKworICAgIGlm
IChjYXB0dXJpbmcpCisgICAgICB7CisgICAgICBicmFjb3VudCsrOworICAgICAgaWYgKGJyYWNv
dW50ID4gRVhUUkFDVF9CQVNJQ19NQVgpIGJyYWNrZXRfbGVuZ3RoICs9IDM7CisgICAgICB9CisK
KyAgICAvKiBTYXZlIGxlbmd0aCBmb3IgY29tcHV0aW5nIHdob2xlIGxlbmd0aCBhdCBlbmQgaWYg
dGhlcmUncyBhIHJlcGVhdCB0aGF0CisgICAgcmVxdWlyZXMgZHVwbGljYXRpb24gb2YgdGhlIGdy
b3VwLiBBbHNvIHNhdmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKyAgICBicmFuY2hfZXh0cmEsIGFu
ZCBzdGFydCB0aGUgbmV3IGdyb3VwIHdpdGggdGhlIG5ldyB2YWx1ZS4gSWYgbm9uLXplcm8sIHRo
aXMKKyAgICB3aWxsIGVpdGhlciBiZSAyIGZvciBhICg/aW1zeDogZ3JvdXAsIG9yIDMgZm9yIGEg
bG9va2JlaGluZCBhc3NlcnRpb24uICovCisKKyAgICBpZiAoYnJhc3RhY2twdHIgPj0gc2l6ZW9m
KGJyYXN0YWNrKS9zaXplb2YoaW50KSkKKyAgICAgIHsKKyAgICAgIGVycm9yY29kZSA9IEVSUjE5
OworICAgICAgZ290byBQQ1JFX0VSUk9SX1JFVFVSTjsKKyAgICAgIH0KKworICAgIGJyYWxlbnN0
YWNrW2JyYXN0YWNrcHRyXSA9IGJyYW5jaF9leHRyYTsKKyAgICBicmFuY2hfZXh0cmEgPSBicmFu
Y2hfbmV3ZXh0cmE7CisKKyAgICBicmFzdGFja1ticmFzdGFja3B0cisrXSA9IGxlbmd0aDsKKyAg
ICBsZW5ndGggKz0gYnJhY2tldF9sZW5ndGg7CisgICAgY29udGludWU7CisKKyAgICAvKiBIYW5k
bGUga2V0LiBMb29rIGZvciBzdWJzZXF1ZW50IG1heC9taW47IGZvciBjZXJ0YWluIHNldHMgb2Yg
dmFsdWVzIHdlCisgICAgaGF2ZSB0byByZXBsaWNhdGUgdGhpcyBicmFja2V0IHVwIHRvIHRoYXQg
bWFueSB0aW1lcy4gSWYgYnJhc3RhY2twdHIgaXMKKyAgICAwIHRoaXMgaXMgYW4gdW5tYXRjaGVk
IGJyYWNrZXQgd2hpY2ggd2lsbCBnZW5lcmF0ZSBhbiBlcnJvciwgYnV0IHRha2UgY2FyZQorICAg
IG5vdCB0byB0cnkgdG8gYWNjZXNzIGJyYXN0YWNrWy0xXSB3aGVuIGNvbXB1dGluZyB0aGUgbGVu
Z3RoIGFuZCByZXN0b3JpbmcKKyAgICB0aGUgYnJhbmNoX2V4dHJhIHZhbHVlLiAqLworCisgICAg
Y2FzZSAnKSc6CisgICAgbGVuZ3RoICs9IDEgKyBMSU5LX1NJWkU7CisgICAgaWYgKGJyYXN0YWNr
cHRyID4gMCkKKyAgICAgIHsKKyAgICAgIGR1cGxlbmd0aCA9IGxlbmd0aCAtIGJyYXN0YWNrWy0t
YnJhc3RhY2twdHJdOworICAgICAgYnJhbmNoX2V4dHJhID0gYnJhbGVuc3RhY2tbYnJhc3RhY2tw
dHJdOworICAgICAgfQorICAgIGVsc2UgZHVwbGVuZ3RoID0gMDsKKworICAgIC8qIExlYXZlIHB0
ciBhdCB0aGUgZmluYWwgY2hhcjsgZm9yIHJlYWRfcmVwZWF0X2NvdW50cyB0aGlzIGhhcHBlbnMK
KyAgICBhdXRvbWF0aWNhbGx5OyBmb3IgdGhlIG90aGVycyB3ZSBuZWVkIGFuIGluY3JlbWVudC4g
Ki8KKworICAgIGlmIChwdHIgKyAxIDwgcGF0dGVybkVuZCAmJiAoYyA9IHB0clsxXSkgPT0gJ3sn
ICYmIGlzX2NvdW50ZWRfcmVwZWF0KHB0cisyLCBwYXR0ZXJuRW5kKSkKKyAgICAgIHsKKyAgICAg
IHB0ciA9IHJlYWRfcmVwZWF0X2NvdW50cyhwdHIrMiwgJm1pbiwgJm1heCwgJmVycm9yY29kZSk7
CisgICAgICBpZiAoZXJyb3Jjb2RlICE9IDApIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CisgICAg
ICB9CisgICAgZWxzZSBpZiAoYyA9PSAnKicpIHsgbWluID0gMDsgbWF4ID0gLTE7IHB0cisrOyB9
CisgICAgZWxzZSBpZiAoYyA9PSAnKycpIHsgbWluID0gMTsgbWF4ID0gLTE7IHB0cisrOyB9Cisg
ICAgZWxzZSBpZiAoYyA9PSAnPycpIHsgbWluID0gMDsgbWF4ID0gMTsgIHB0cisrOyB9CisgICAg
ZWxzZSB7IG1pbiA9IDE7IG1heCA9IDE7IH0KKworICAgIC8qIElmIHRoZSBtaW5pbXVtIGlzIHpl
cm8sIHdlIGhhdmUgdG8gYWxsb3cgZm9yIGFuIE9QX0JSQVpFUk8gYmVmb3JlIHRoZQorICAgIGdy
b3VwLCBhbmQgaWYgdGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIHplcm8sIHdlIGhhdmUgdG8g
cmVwbGljYXRlCisgICAgbWF4dmFsLTEgdGltZXM7IGVhY2ggcmVwbGljYXRpb24gYWNxdWlyZXMg
YW4gT1BfQlJBWkVSTyBwbHVzIGEgbmVzdGluZworICAgIGJyYWNrZXQgc2V0LiAqLworCisgICAg
aWYgKG1pbiA9PSAwKQorICAgICAgeworICAgICAgbGVuZ3RoKys7CisgICAgICBpZiAobWF4ID4g
MCkgbGVuZ3RoICs9IChtYXggLSAxKSAqIChkdXBsZW5ndGggKyAzICsgMipMSU5LX1NJWkUpOwor
ICAgICAgfQorCisgICAgLyogV2hlbiB0aGUgbWluaW11bSBpcyBncmVhdGVyIHRoYW4gemVybywg
d2UgaGF2ZSB0byByZXBsaWNhdGUgdXAgdG8KKyAgICBtaW52YWwtMSB0aW1lcywgd2l0aCBubyBh
ZGRpdGlvbnMgcmVxdWlyZWQgaW4gdGhlIGNvcGllcy4gVGhlbiwgaWYgdGhlcmUKKyAgICBpcyBh
IGxpbWl0ZWQgbWF4aW11bSB3ZSBoYXZlIHRvIHJlcGxpY2F0ZSB1cCB0byBtYXh2YWwtMSB0aW1l
cyBhbGxvd2luZworICAgIGZvciBhIEJSQVpFUk8gaXRlbSBiZWZvcmUgZWFjaCBvcHRpb25hbCBj
b3B5IGFuZCBuZXN0aW5nIGJyYWNrZXRzIGZvciBhbGwKKyAgICBidXQgb25lIG9mIHRoZSBvcHRp
b25hbCBjb3BpZXMuICovCisKKyAgICBlbHNlCisgICAgICB7CisgICAgICBsZW5ndGggKz0gKG1p
biAtIDEpICogZHVwbGVuZ3RoOworICAgICAgaWYgKG1heCA+IG1pbikgICAvKiBOZWVkIHRoaXMg
dGVzdCBhcyBtYXg9LTEgbWVhbnMgbm8gbGltaXQgKi8KKyAgICAgICAgbGVuZ3RoICs9IChtYXgg
LSBtaW4pICogKGR1cGxlbmd0aCArIDMgKyAyKkxJTktfU0laRSkKKyAgICAgICAgICAtICgyICsg
MipMSU5LX1NJWkUpOworICAgICAgfQorCisgICAgLyogQWxsb3cgc3BhY2UgZm9yIG9uY2UgYnJh
Y2tldHMgZm9yICJwb3NzZXNzaXZlIHF1YW50aWZpZXIiICovCisKKyAgICBpZiAocHRyICsgMSA8
IHBhdHRlcm5FbmQgJiYgcHRyWzFdID09ICcrJykKKyAgICAgIHsKKyAgICAgIHB0cisrOworICAg
ICAgbGVuZ3RoICs9IDIgKyAyKkxJTktfU0laRTsKKyAgICAgIH0KKyAgICBjb250aW51ZTsKKwor
ICAgIC8qIE5vbi1zcGVjaWFsIGNoYXJhY3Rlci4gSXQgd29uJ3QgYmUgc3BhY2Ugb3IgIyBpbiBl
eHRlbmRlZCBtb2RlLCBzbyBpdCBpcworICAgIGFsd2F5cyBhIGdlbnVpbmUgY2hhcmFjdGVyLiBJ
ZiB3ZSBhcmUgaW4gYSBcUS4uLlxFIHNlcXVlbmNlLCBjaGVjayBmb3IgdGhlCisgICAgZW5kOyBp
ZiBub3QsIHdlIGhhdmUgYSBsaXRlcmFsLiAqLworCisgICAgZGVmYXVsdDoKKyAgICBOT1JNQUxf
Q0hBUjoKKworICAgIGxlbmd0aCArPSAyOyAgICAgICAgICAvKiBGb3IgYSBvbmUtYnl0ZSBjaGFy
YWN0ZXIgKi8KKyAgICBsYXN0aXRlbWxlbmd0aCA9IDE7ICAgLyogRGVmYXVsdCBsZW5ndGggb2Yg
bGFzdCBpdGVtIGZvciByZXBlYXRzICovCisKKyAgICAvKiBJbiBVVEYtOCBtb2RlLCBjaGVjayBm
b3IgYWRkaXRpb25hbCBieXRlcy4gKi8KKworICAgIGlmIChjID4gMTI3KQorICAgICAgeworICAg
ICAgICBpZiAoSVNfTEVBRElOR19TVVJST0dBVEUoYykpCisgICAgICAgICAgeworICAgICAgICAg
IGMgPSBERUNPREVfU1VSUk9HQVRFX1BBSVIoYywgcHRyIDwgcGF0dGVybkVuZCA/ICpwdHIgOiAw
KTsKKyAgICAgICAgICArK3B0cjsKKyAgICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAg
IGludCBpOworICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBfcGNyZV91dGY4X3RhYmxlMV9zaXpl
OyBpKyspCisgICAgICAgICAgICBpZiAoYyA8PSBfcGNyZV91dGY4X3RhYmxlMVtpXSkgYnJlYWs7
CisgICAgICAgICAgbGVuZ3RoICs9IGk7CisgICAgICAgICAgbGFzdGl0ZW1sZW5ndGggKz0gaTsK
KyAgICAgICAgfQorICAgICAgfQorCisgICAgY29udGludWU7CisgICAgfQorICB9CisKK2xlbmd0
aCArPSAyICsgTElOS19TSVpFOyAgICAvKiBGb3IgZmluYWwgS0VUIGFuZCBFTkQgKi8KKworaWYg
KGxlbmd0aCA+IE1BWF9QQVRURVJOX1NJWkUpCisgIHsKKyAgZXJyb3Jjb2RlID0gRVJSMjA7Cisg
IGdvdG8gUENSRV9FQVJMWV9FUlJPUl9SRVRVUk47CisgIH0KKworLyogQ29tcHV0ZSB0aGUgc2l6
ZSBvZiBkYXRhIGJsb2NrIG5lZWRlZCBhbmQgZ2V0IGl0LCBlaXRoZXIgZnJvbSBtYWxsb2Mgb3IK
K2V4dGVybmFsbHkgcHJvdmlkZWQgZnVuY3Rpb24uICovCisKK3NpemUgPSBsZW5ndGggKyBzaXpl
b2YocmVhbF9wY3JlKSArIG5hbWVfY291bnQgKiAobWF4X25hbWVfc2l6ZSArIDMpOworcmUgPSAo
cmVhbF9wY3JlICopKHBjcmVfbWFsbG9jKShzaXplKTsKKworaWYgKHJlID09IE5VTEwpCisgIHsK
KyAgZXJyb3Jjb2RlID0gRVJSMjE7CisgIGdvdG8gUENSRV9FQVJMWV9FUlJPUl9SRVRVUk47Cisg
IH0KKworLyogUHV0IGluIHRoZSBtYWdpYyBudW1iZXIsIGFuZCBzYXZlIHRoZSBzaXplcywgb3B0
aW9ucywgYW5kIGNoYXJhY3RlciB0YWJsZQorcG9pbnRlci4gTlVMTCBpcyB1c2VkIGZvciB0aGUg
ZGVmYXVsdCBjaGFyYWN0ZXIgdGFibGVzLiBUaGUgbnVsbHBhZCBmaWVsZCBpcyBhdAordGhlIGVu
ZDsgaXQncyB0aGVyZSB0byBoZWxwIGluIHRoZSBjYXNlIHdoZW4gYSByZWdleCBjb21waWxlZCBv
biBhIHN5c3RlbSB3aXRoCis0LWJ5dGUgcG9pbnRlcnMgaXMgcnVuIG9uIGFub3RoZXIgd2l0aCA4
LWJ5dGUgcG9pbnRlcnMuICovCisKK3JlLT5zaXplID0gKHBjcmVfdWludDMyKXNpemU7CityZS0+
b3B0aW9ucyA9IG9wdGlvbnM7CisKKy8qIFRoZSBzdGFydGluZyBwb2ludHMgb2YgdGhlIG5hbWUv
bnVtYmVyIHRyYW5zbGF0aW9uIHRhYmxlIGFuZCBvZiB0aGUgY29kZSBhcmUKK3Bhc3NlZCBhcm91
bmQgaW4gdGhlIGNvbXBpbGUgZGF0YSBibG9jay4gKi8KKworY29kZXN0YXJ0ID0gKGNvbnN0IHVz
Y2hhciAqKShyZSArIDEpOworY29tcGlsZV9ibG9jay5zdGFydF9jb2RlID0gY29kZXN0YXJ0Owor
Y29tcGlsZV9ibG9jay5zdGFydF9wYXR0ZXJuID0gKGNvbnN0IHBjcmVfdWNoYXIgKilwYXR0ZXJu
OworY29tcGlsZV9ibG9jay5yZXFfdmFyeW9wdCA9IDA7CisKKy8qIFNldCB1cCBhIHN0YXJ0aW5n
LCBub24tZXh0cmFjdGluZyBicmFja2V0LCB0aGVuIGNvbXBpbGUgdGhlIGV4cHJlc3Npb24uIE9u
CitlcnJvciwgZXJyb3Jjb2RlIHdpbGwgYmUgc2V0IG5vbi16ZXJvLCBzbyB3ZSBkb24ndCBuZWVk
IHRvIGxvb2sgYXQgdGhlIHJlc3VsdAorb2YgdGhlIGZ1bmN0aW9uIGhlcmUuICovCisKK3B0ciA9
IChjb25zdCBwY3JlX3VjaGFyICopcGF0dGVybjsKK2NvZGUgPSAodXNjaGFyICopY29kZXN0YXJ0
OworKmNvZGUgPSBPUF9CUkE7CiticmFjb3VudCA9IDA7Cisodm9pZCljb21waWxlX3JlZ2V4KG9w
dGlvbnMsICZicmFjb3VudCwgJmNvZGUsICZwdHIsCisgIHBhdHRlcm5FbmQsCisgICZlcnJvcmNv
ZGUsIDAsICZmaXJzdGJ5dGUsICZyZXFieXRlLCAmY29tcGlsZV9ibG9jayk7CityZS0+dG9wX2Jy
YWNrZXQgPSBicmFjb3VudDsKK3JlLT50b3BfYmFja3JlZiA9IGNvbXBpbGVfYmxvY2sudG9wX2Jh
Y2tyZWY7CisKKy8qIElmIG5vdCByZWFjaGVkIGVuZCBvZiBwYXR0ZXJuIG9uIHN1Y2Nlc3MsIHRo
ZXJlJ3MgYW4gZXhjZXNzIGJyYWNrZXQuICovCisKK2lmIChlcnJvcmNvZGUgPT0gMCAmJiBwdHIg
PCBwYXR0ZXJuRW5kKSBlcnJvcmNvZGUgPSBFUlIyMjsKKworLyogRmlsbCBpbiB0aGUgdGVybWlu
YXRpbmcgc3RhdGUgYW5kIGNoZWNrIGZvciBkaXNhc3Ryb3VzIG92ZXJmbG93LCBidXQKK2lmIGRl
YnVnZ2luZywgbGVhdmUgdGhlIHRlc3QgdGlsbCBhZnRlciB0aGluZ3MgYXJlIHByaW50ZWQgb3V0
LiAqLworCisqY29kZSsrID0gT1BfRU5EOworCisjaWZuZGVmIERFQlVHCitpZiAoY29kZSAtIGNv
ZGVzdGFydCA+IGxlbmd0aCkgZXJyb3Jjb2RlID0gRVJSMjM7CisjZW5kaWYKKworLyogR2l2ZSBh
biBlcnJvciBpZiB0aGVyZSdzIGJhY2sgcmVmZXJlbmNlIHRvIGEgbm9uLWV4aXN0ZW50IGNhcHR1
cmluZworc3VicGF0dGVybi4gKi8KKworaWYgKHJlLT50b3BfYmFja3JlZiA+IHJlLT50b3BfYnJh
Y2tldCkgZXJyb3Jjb2RlID0gRVJSMTU7CisKKy8qIEZhaWxlZCB0byBjb21waWxlLCBvciBlcnJv
ciB3aGlsZSBwb3N0LXByb2Nlc3NpbmcgKi8KKworaWYgKGVycm9yY29kZSAhPSAwKQorICB7Cisg
IChwY3JlX2ZyZWUpKHJlKTsKKyAgUENSRV9FUlJPUl9SRVRVUk46CisgIFBDUkVfRUFSTFlfRVJS
T1JfUkVUVVJOOgorICAqZXJyb3JwdHIgPSBlcnJvcl90ZXh0c1tlcnJvcmNvZGVdOworICByZXR1
cm4gTlVMTDsKKyAgfQorCisvKiBJZiB0aGUgYW5jaG9yZWQgb3B0aW9uIHdhcyBub3QgcGFzc2Vk
LCBzZXQgdGhlIGZsYWcgaWYgd2UgY2FuIGRldGVybWluZSB0aGF0Cit0aGUgcGF0dGVybiBpcyBh
bmNob3JlZCBieSB2aXJ0dWUgb2YgXiBjaGFyYWN0ZXJzIG9yIFxBIG9yIGFueXRoaW5nIGVsc2Ug
KHN1Y2gKK2FzIHN0YXJ0aW5nIHdpdGggLiogd2hlbiBET1RBTEwgaXMgc2V0KS4KKworT3RoZXJ3
aXNlLCBpZiB3ZSBrbm93IHdoYXQgdGhlIGZpcnN0IGNoYXJhY3RlciBoYXMgdG8gYmUsIHNhdmUg
aXQsIGJlY2F1c2UgdGhhdAorc3BlZWRzIHVwIHVuYW5jaG9yZWQgbWF0Y2hlcyBubyBlbmQuIElm
IG5vdCwgc2VlIGlmIHdlIGNhbiBzZXQgdGhlCitQQ1JFX1NUQVJUTElORSBmbGFnLiBUaGlzIGlz
IGhlbHBmdWwgZm9yIG11bHRpbGluZSBtYXRjaGVzIHdoZW4gYWxsIGJyYW5jaGVzCitzdGFydCB3
aXRoIF4uIGFuZCBhbHNvIHdoZW4gYWxsIGJyYW5jaGVzIHN0YXJ0IHdpdGggLiogZm9yIG5vbi1E
T1RBTEwgbWF0Y2hlcy4KKyovCisKKyAgeworICBpbnQgdGVtcF9vcHRpb25zID0gb3B0aW9uczsK
KyAgaWYgKGlzX2FuY2hvcmVkKGNvZGVzdGFydCwgJnRlbXBfb3B0aW9ucywgMCwgY29tcGlsZV9i
bG9jay5iYWNrcmVmX21hcCkpCisgICAgcmUtPm9wdGlvbnMgfD0gUENSRV9BTkNIT1JFRDsKKyAg
ZWxzZQorICAgIHsKKyAgICBpZiAoZmlyc3RieXRlIDwgMCkKKyAgICAgIGZpcnN0Ynl0ZSA9IGZp
bmRfZmlyc3Rhc3NlcnRlZGNoYXIoY29kZXN0YXJ0LCAmdGVtcF9vcHRpb25zLCBGQUxTRSk7Cisg
ICAgaWYgKGZpcnN0Ynl0ZSA+PSAwKSAgIC8qIFJlbW92ZSBjYXNlbGVzcyBmbGFnIGZvciBub24t
Y2FzZWFibGUgY2hhcnMgKi8KKyAgICAgIHsKKyAgICAgIGludCBjaCA9IGZpcnN0Ynl0ZSAmIDI1
NTsKKyAgICAgIGlmIChjaCA8IDEyNykKKyAgICAgIHsgLyogU3RyYW5nZSBpbmRlbnRhdGlvbiB0
byBhaWQgaW4gbWVyZ2luZy4gKi8KKyAgICAgIHJlLT5maXJzdF9ieXRlID0gKChmaXJzdGJ5dGUg
JiBSRVFfQ0FTRUxFU1MpICE9IDAgJiYKKyAgICAgICAgIGNvbXBpbGVfYmxvY2suZmNjW2NoXSA9
PSBjaCk/IGNoIDogZmlyc3RieXRlOworICAgICAgcmUtPm9wdGlvbnMgfD0gUENSRV9GSVJTVFNF
VDsKKyAgICAgIH0KKyAgICAgIH0KKyAgICBlbHNlIGlmIChpc19zdGFydGxpbmUoY29kZXN0YXJ0
LCAwLCBjb21waWxlX2Jsb2NrLmJhY2tyZWZfbWFwKSkKKyAgICAgIHJlLT5vcHRpb25zIHw9IFBD
UkVfU1RBUlRMSU5FOworICAgIH0KKyAgfQorCisvKiBGb3IgYW4gYW5jaG9yZWQgcGF0dGVybiwg
d2UgdXNlIHRoZSAicmVxdWlyZWQgYnl0ZSIgb25seSBpZiBpdCBmb2xsb3dzIGEKK3ZhcmlhYmxl
IGxlbmd0aCBpdGVtIGluIHRoZSByZWdleC4gUmVtb3ZlIHRoZSBjYXNlbGVzcyBmbGFnIGZvciBu
b24tY2FzZWFibGUKK2J5dGVzLiAqLworCitpZiAocmVxYnl0ZSA+PSAwICYmCisgICAgICgocmUt
Pm9wdGlvbnMgJiBQQ1JFX0FOQ0hPUkVEKSA9PSAwIHx8IChyZXFieXRlICYgUkVRX1ZBUlkpICE9
IDApKQorICB7CisgIGludCBjaCA9IHJlcWJ5dGUgJiAyNTU7CisgIGlmIChjaCA8IDEyNykKKyAg
eyAvKiBTdHJhbmdlIGluZGVudGF0aW9uIHRvIGFpZCBpbiBtZXJnaW5nLiAqLworICByZS0+cmVx
X2J5dGUgPSAoKHJlcWJ5dGUgJiBSRVFfQ0FTRUxFU1MpICE9IDAgJiYKKyAgICAgIGNvbXBpbGVf
YmxvY2suZmNjW2NoXSA9PSBjaCk/IChyZXFieXRlICYgflJFUV9DQVNFTEVTUykgOiByZXFieXRl
OworICByZS0+b3B0aW9ucyB8PSBQQ1JFX1JFUUNIU0VUOworICB9CisgIH0KKworLyogUHJpbnQg
b3V0IHRoZSBjb21waWxlZCBkYXRhIGlmIGRlYnVnZ2luZyBpcyBlbmFibGVkLiBUaGlzIGlzIG5l
dmVyIHRoZQorY2FzZSB3aGVuIGJ1aWxkaW5nIGEgcHJvZHVjdGlvbiBsaWJyYXJ5LiAqLworCisj
aWZkZWYgREVCVUcKKworcHJpbnRmKCJMZW5ndGggPSAlZCB0b3BfYnJhY2tldCA9ICVkIHRvcF9i
YWNrcmVmID0gJWRcbiIsCisgIGxlbmd0aCwgcmUtPnRvcF9icmFja2V0LCByZS0+dG9wX2JhY2ty
ZWYpOworCitpZiAocmUtPm9wdGlvbnMgIT0gMCkKKyAgeworICBwcmludGYoIiVzJXMlc1xuIiwK
KyAgICAoKHJlLT5vcHRpb25zICYgUENSRV9BTkNIT1JFRCkgIT0gMCk/ICJhbmNob3JlZCAiIDog
IiIsCisgICAgKChyZS0+b3B0aW9ucyAmIFBDUkVfQ0FTRUxFU1MpICE9IDApPyAiY2FzZWxlc3Mg
IiA6ICIiLAorICAgICgocmUtPm9wdGlvbnMgJiBQQ1JFX01VTFRJTElORSkgIT0gMCk/ICJtdWx0
aWxpbmUgIiA6ICIiKTsKKyAgfQorCitpZiAoKHJlLT5vcHRpb25zICYgUENSRV9GSVJTVFNFVCkg
IT0gMCkKKyAgeworICBpbnQgY2ggPSByZS0+Zmlyc3RfYnl0ZSAmIDI1NTsKKyAgY29uc3QgY2hh
ciAqY2FzZWxlc3MgPSAoKHJlLT5maXJzdF9ieXRlICYgUkVRX0NBU0VMRVNTKSA9PSAwKT8KKyAg
ICAiIiA6ICIgKGNhc2VsZXNzKSI7CisgIGlmIChpc3ByaW50KGNoKSkgcHJpbnRmKCJGaXJzdCBj
aGFyID0gJWMlc1xuIiwgY2gsIGNhc2VsZXNzKTsKKyAgICBlbHNlIHByaW50ZigiRmlyc3QgY2hh
ciA9IFxceCUwMnglc1xuIiwgY2gsIGNhc2VsZXNzKTsKKyAgfQorCitpZiAoKHJlLT5vcHRpb25z
ICYgUENSRV9SRVFDSFNFVCkgIT0gMCkKKyAgeworICBpbnQgY2ggPSByZS0+cmVxX2J5dGUgJiAy
NTU7CisgIGNvbnN0IGNoYXIgKmNhc2VsZXNzID0gKChyZS0+cmVxX2J5dGUgJiBSRVFfQ0FTRUxF
U1MpID09IDApPworICAgICIiIDogIiAoY2FzZWxlc3MpIjsKKyAgaWYgKGlzcHJpbnQoY2gpKSBw
cmludGYoIlJlcSBjaGFyID0gJWMlc1xuIiwgY2gsIGNhc2VsZXNzKTsKKyAgICBlbHNlIHByaW50
ZigiUmVxIGNoYXIgPSBcXHglMDJ4JXNcbiIsIGNoLCBjYXNlbGVzcyk7CisgIH0KKworcGNyZV9w
cmludGludChyZSwgc3Rkb3V0KTsKKworLyogVGhpcyBjaGVjayBpcyBkb25lIGhlcmUgaW4gdGhl
IGRlYnVnZ2luZyBjYXNlIHNvIHRoYXQgdGhlIGNvZGUgdGhhdAord2FzIGNvbXBpbGVkIGNhbiBi
ZSBzZWVuLiAqLworCitpZiAoY29kZSAtIGNvZGVzdGFydCA+IGxlbmd0aCkKKyAgeworICAocGNy
ZV9mcmVlKShyZSk7CisgICplcnJvcnB0ciA9IGVycm9yX3RleHRzW0VSUjIzXTsKKyAgcmV0dXJu
IE5VTEw7CisgIH0KKyNlbmRpZgorCitpZiAobnVtU3VicGF0dGVybnMpCisgICAgKm51bVN1YnBh
dHRlcm5zID0gcmUtPnRvcF9icmFja2V0OworcmV0dXJuIChwY3JlICopcmU7Cit9CisKK3ZvaWQg
anNSZWdFeHBGcmVlKEpTUmVnRXhwKiByZSkKK3sKKyAgICBwY3JlX2ZyZWUocmUpOworfQorCisv
KiBFbmQgb2YgcGNyZV9jb21waWxlLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNy
ZV9jb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29t
cGlsZS5jcHAJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2Nv
bXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEyIEBACi0vKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0
aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3Mg
dmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQg
b3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUg
YmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFy
IGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdl
IHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2
YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KIAotLyogUENSRSBpcyBhIGxpYnJh
cnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50
YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRo
ZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQ
aGlsaXAgSGF6ZWwKKyAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxp
cCBIYXplbAogICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9m
IENhbWJyaWRnZQotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CkBAIC0zOCwyNiArMzcsMTcgQEAgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KIAotCi0vKiBUaGlzIG1vZHVsZSBjb250YWlucyB0aGUg
ZXh0ZXJuYWwgZnVuY3Rpb24gcGNyZV9jb21waWxlKCksIGFsb25nIHdpdGgKKy8qIFRoaXMgbW9k
dWxlIGNvbnRhaW5zIHRoZSBleHRlcm5hbCBmdW5jdGlvbiBqc1JlZ0V4cEV4ZWN1dGUoKSwgYWxv
bmcgd2l0aAogc3VwcG9ydGluZyBpbnRlcm5hbCBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IHVzZWQg
Ynkgb3RoZXIgbW9kdWxlcy4gKi8KIAotCiAjaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgogCisj
aW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KIAotLyogV0FSTklORzogVGhlc2UgbWFjcm9zIGV2
YWx1YXRlIHRoZWlyIHBhcmFtZXRlcnMgbW9yZSB0aGFuIG9uY2UuICovCi0jZGVmaW5lIERJR0lU
QUIoeCkgKCh4KSA8IDEyOCA/IGRpZ2l0YWJbKHgpXSA6IDApCi0KLQotLyogV2hlbiBERUJVRyBp
cyBkZWZpbmVkLCB3ZSBuZWVkIHRoZSBwY3JlX3ByaW50aW50KCkgZnVuY3Rpb24sIHdoaWNoIGlz
IGFsc28KLXVzZWQgYnkgcGNyZXRlc3QuIERFQlVHIGlzIG5vdCBkZWZpbmVkIHdoZW4gYnVpbGRp
bmcgYSBwcm9kdWN0aW9uIGxpYnJhcnkuICovCi0KLSNpZmRlZiBERUJVRwotI2luY2x1ZGUgInBj
cmVfcHJpbnRpbnQuc3JjIgotI2VuZGlmCi0KK3VzaW5nIG5hbWVzcGFjZSBXVEY7CiAKKy8qIFdB
Uk5JTkc6IFRoaXMgbWFjcm8gZXZhbHVhdGVzIGl0cyBwYXJhbWV0ZXJzIG1vcmUgdGhhbiBvbmNl
LiAqLworI2RlZmluZSBESUdJVEFCKHgpICgoeCkgPCAxMjggPyBkaWdpdGFiWyh4KV0gOiAwKQog
CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAg
ICAgIENvZGUgcGFyYW1ldGVycyBhbmQgc3RhdGljIHRhYmxlcyAgICAgICAgICoKQEAgLTc2LDcg
KzY2LDcgQEAgYXJlIHNpbXBsZSBkYXRhIHZhbHVlczsgbmVnYXRpdmUgdmFsdWVzIAogb24uIFpl
cm8gbWVhbnMgZnVydGhlciBwcm9jZXNzaW5nIGlzIG5lZWRlZCAoZm9yIHRoaW5ncyBsaWtlIFx4
KSwgb3IgdGhlIGVzY2FwZQogaXMgaW52YWxpZC4gKi8KIAotc3RhdGljIGNvbnN0IHNob3J0IGlu
dCBlc2NhcGVzW10gPSB7CitzdGF0aWMgY29uc3Qgc2hvcnQgZXNjYXBlc1tdID0gewogICAgICAw
LCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAs
ICAgLyogMCAtIDcgKi8KICAgICAgMCwgICAgICAwLCAgICAnOicsICAgICc7JywgICAgJzwnLCAg
ICAnPScsICAgICc+JywgICAgJz8nLCAgIC8qIDggLSA/ICovCiAgICAnQCcsICAgICAgMCwgLUVT
Q19CLCAgICAgIDAsIC1FU0NfRCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAvKiBAIC0gRyAq
LwpAQCAtODksNzIgKzc5LDU2IEBAIHN0YXRpYyBjb25zdCBzaG9ydCBpbnQgZXNjYXBlc1tdID0g
ewogICAgICAwLCAgICAgIDAsICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogeCAtIHogKi8KIH07CiAKKy8qIEVycm9yIGNvZGUgbnVtYmVycy4gVGhl
eSBhcmUgZ2l2ZW4gbmFtZXMgc28gdGhhdCB0aGV5IGNhbiBtb3JlIGVhc2lseSBiZQordHJhY2tl
ZC4gKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBFUlIwLCBFUlIxLCBFUlIyLCBFUlIzLCBFUlI0
LCBFUlI1LCBFUlI2LCBFUlI3LCBFUlI4LCBFUlI5LAorICAgIEVSUjEwLCBFUlIxMSwgRVJSMTIs
IEVSUjEzLCBFUlIxNCwgRVJSMTUsIEVSUjE2LCBFUlIxNworfSBFcnJvckNvZGU7CisKKy8qIFRh
YmxlIG9mIHNpemVzIGZvciB0aGUgZml4ZWQtbGVuZ3RoIG9wY29kZXMuIEl0J3MgZGVmaW5lZCBp
biBhIG1hY3JvIHNvIHRoYXQKK3RoZSBkZWZpbml0aW9uIGlzIG5leHQgdG8gdGhlIGRlZmluaXRp
b24gb2YgdGhlIG9wY29kZXMgaW4gcGNyZV9pbnRlcm5hbC5oLiAqLworCitzdGF0aWMgY29uc3Qg
dXNjaGFyIE9QX2xlbmd0aHNbXSA9IHsgT1BfTEVOR1RIUyB9OwogCiAvKiBUaGUgdGV4dHMgb2Yg
Y29tcGlsZS10aW1lIGVycm9yIG1lc3NhZ2VzLiBUaGVzZSBhcmUgImNoYXIgKiIgYmVjYXVzZSB0
aGV5CiBhcmUgcGFzc2VkIHRvIHRoZSBvdXRzaWRlIHdvcmxkLiAqLwogCi1zdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGVycm9yX3RleHRzW10gPSB7Ci0gICJubyBlcnJvciIsCi0gICJcXCBhdCBl
bmQgb2YgcGF0dGVybiIsCi0gICJcXGMgYXQgZW5kIG9mIHBhdHRlcm4iLAotICAidW5yZWNvZ25p
emVkIGNoYXJhY3RlciBmb2xsb3dzIFxcIiwKLSAgIm51bWJlcnMgb3V0IG9mIG9yZGVyIGluIHt9
IHF1YW50aWZpZXIiLAotICAvKiA1ICovCi0gICJudW1iZXIgdG9vIGJpZyBpbiB7fSBxdWFudGlm
aWVyIiwKLSAgIm1pc3NpbmcgdGVybWluYXRpbmcgXSBmb3IgY2hhcmFjdGVyIGNsYXNzIiwKLSAg
ImludmFsaWQgZXNjYXBlIHNlcXVlbmNlIGluIGNoYXJhY3RlciBjbGFzcyIsCi0gICJyYW5nZSBv
dXQgb2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNzIiwKLSAgIm5vdGhpbmcgdG8gcmVwZWF0IiwK
LSAgLyogMTAgKi8KLSAgIm9wZXJhbmQgb2YgdW5saW1pdGVkIHJlcGVhdCBjb3VsZCBtYXRjaCB0
aGUgZW1wdHkgc3RyaW5nIiwKLSAgImludGVybmFsIGVycm9yOiB1bmV4cGVjdGVkIHJlcGVhdCIs
Ci0gICJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/IiwKLSAgIlBPU0lYIG5hbWVkIGNs
YXNzZXMgYXJlIHN1cHBvcnRlZCBvbmx5IHdpdGhpbiBhIGNsYXNzIiwKLSAgIm1pc3NpbmcgKSIs
Ci0gIC8qIDE1ICovCi0gICJyZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IHN1YnBhdHRlcm4iLAot
ICAiZXJyb2Zmc2V0IHBhc3NlZCBhcyBOVUxMIiwKLSAgInVua25vd24gb3B0aW9uIGJpdChzKSBz
ZXQiLAotICAibWlzc2luZyApIGFmdGVyIGNvbW1lbnQiLAotICAicGFyZW50aGVzZXMgbmVzdGVk
IHRvbyBkZWVwbHkiLAotICAvKiAyMCAqLwotICAicmVndWxhciBleHByZXNzaW9uIHRvbyBsYXJn
ZSIsCi0gICJmYWlsZWQgdG8gZ2V0IG1lbW9yeSIsCi0gICJ1bm1hdGNoZWQgcGFyZW50aGVzZXMi
LAotICAiaW50ZXJuYWwgZXJyb3I6IGNvZGUgb3ZlcmZsb3ciLAotICAidW5yZWNvZ25pemVkIGNo
YXJhY3RlciBhZnRlciAoPzwiLAotICAvKiAyNSAqLwotICAibG9va2JlaGluZCBhc3NlcnRpb24g
aXMgbm90IGZpeGVkIGxlbmd0aCIsCi0gICJtYWxmb3JtZWQgbnVtYmVyIGFmdGVyICg/KCIsCi0g
ICJjb25kaXRpb25hbCBncm91cCBjb250YWlucyBtb3JlIHRoYW4gdHdvIGJyYW5jaGVzIiwKLSAg
ImFzc2VydGlvbiBleHBlY3RlZCBhZnRlciAoPygiLAotICAiKD9SIG9yICg/ZGlnaXRzIG11c3Qg
YmUgZm9sbG93ZWQgYnkgKSIsCi0gIC8qIDMwICovCi0gICJ1bmtub3duIFBPU0lYIGNsYXNzIG5h
bWUiLAotICAiUE9TSVggY29sbGF0aW5nIGVsZW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkIiwKLSAg
InRoaXMgdmVyc2lvbiBvZiBQQ1JFIGlzIG5vdCBjb21waWxlZCB3aXRoIFBDUkVfVVRGOCBzdXBw
b3J0IiwKLSAgInNwYXJlIGVycm9yIiwKLSAgImNoYXJhY3RlciB2YWx1ZSBpbiBcXHh7Li4ufSBz
ZXF1ZW5jZSBpcyB0b28gbGFyZ2UiLAotICAvKiAzNSAqLwotICAiaW52YWxpZCBjb25kaXRpb24g
KD8oMCkiLAotICAiXFxDIG5vdCBhbGxvd2VkIGluIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIiwKLSAg
IlBDUkUgZG9lcyBub3Qgc3VwcG9ydCBcXEwsIFxcbCwgXFxOLCBcXFUsIG9yIFxcdSIsCi0gICJu
dW1iZXIgYWZ0ZXIgKD9DIGlzID4gMjU1IiwKLSAgImNsb3NpbmcgKSBmb3IgKD9DIGV4cGVjdGVk
IiwKLSAgLyogNDAgKi8KLSAgInJlY3Vyc2l2ZSBjYWxsIGNvdWxkIGxvb3AgaW5kZWZpbml0ZWx5
IiwKLSAgInVucmVjb2duaXplZCBjaGFyYWN0ZXIgYWZ0ZXIgKD9QIiwKLSAgInN5bnRheCBlcnJv
ciBhZnRlciAoP1AiLAotICAidHdvIG5hbWVkIGdyb3VwcyBoYXZlIHRoZSBzYW1lIG5hbWUiLAot
ICAiaW52YWxpZCBVVEYtMTYgc3RyaW5nIiwKLSAgLyogNDUgKi8KLSAgInN1cHBvcnQgZm9yIFxc
UCwgXFxwLCBhbmQgXFxYIGhhcyBub3QgYmVlbiBjb21waWxlZCIsCi0gICJtYWxmb3JtZWQgXFxQ
IG9yIFxccCBzZXF1ZW5jZSIsCi0gICJ1bmtub3duIHByb3BlcnR5IG5hbWUgYWZ0ZXIgXFxQIG9y
IFxccCIKLX07Ci0KK3N0YXRpYyBjb25zdCBjaGFyKiBlcnJvcl90ZXh0KEVycm9yQ29kZSBjb2Rl
KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyIGVycm9yX3RleHRzW10gPQorICAgICAgLyogMSAq
LworICAgICAgIlxcIGF0IGVuZCBvZiBwYXR0ZXJuXDAiCisgICAgICAiXFxjIGF0IGVuZCBvZiBw
YXR0ZXJuXDAiCisgICAgICAiY2hhcmFjdGVyIHZhbHVlIGluIFxceHsuLi59IHNlcXVlbmNlIGlz
IHRvbyBsYXJnZVwwIgorICAgICAgIm51bWJlcnMgb3V0IG9mIG9yZGVyIGluIHt9IHF1YW50aWZp
ZXJcMCIKKyAgICAgIC8qIDUgKi8KKyAgICAgICJudW1iZXIgdG9vIGJpZyBpbiB7fSBxdWFudGlm
aWVyXDAiCisgICAgICAibWlzc2luZyB0ZXJtaW5hdGluZyBdIGZvciBjaGFyYWN0ZXIgY2xhc3Nc
MCIKKyAgICAgICJpbnRlcm5hbCBlcnJvcjogY29kZSBvdmVyZmxvd1wwIgorICAgICAgInJhbmdl
IG91dCBvZiBvcmRlciBpbiBjaGFyYWN0ZXIgY2xhc3NcMCIKKyAgICAgICJub3RoaW5nIHRvIHJl
cGVhdFwwIgorICAgICAgLyogMTAgKi8KKyAgICAgICJ1bm1hdGNoZWQgcGFyZW50aGVzZXNcMCIK
KyAgICAgICJpbnRlcm5hbCBlcnJvcjogdW5leHBlY3RlZCByZXBlYXRcMCIKKyAgICAgICJ1bnJl
Y29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/XDAiCisgICAgICAiZmFpbGVkIHRvIGdldCBtZW1v
cnlcMCIKKyAgICAgICJtaXNzaW5nIClcMCIKKyAgICAgIC8qIDE1ICovCisgICAgICAicmVmZXJl
bmNlIHRvIG5vbi1leGlzdGVudCBzdWJwYXR0ZXJuXDAiCisgICAgICAicmVndWxhciBleHByZXNz
aW9uIHRvbyBsYXJnZVwwIgorICAgICAgInBhcmVudGhlc2VzIG5lc3RlZCB0b28gZGVlcGx5Igor
ICAgIDsKKworICAgIGludCBpID0gY29kZTsKKyAgICBjb25zdCBjaGFyKiB0ZXh0ID0gZXJyb3Jf
dGV4dHM7CisgICAgd2hpbGUgKGkgPiAxKQorICAgICAgICBpIC09ICEqdGV4dCsrOworICAgIHJl
dHVybiB0ZXh0OworfQogCi0vKiBUYWJsZSB0byBpZGVudGlmeSBkaWdpdHMgYW5kIGhleCBkaWdp
dHMuIFRoaXMgaXMgdXNlZCB3aGVuIGNvbXBpbGluZworLyogVGFibGUgdG8gaGV4IGRpZ2l0cy4g
VGhpcyBpcyB1c2VkIHdoZW4gY29tcGlsaW5nCiBwYXR0ZXJucy4gTm90ZSB0aGF0IHRoZSB0YWJs
ZXMgaW4gY2hhcnRhYmxlcyBhcmUgZGVwZW5kZW50IG9uIHRoZSBsb2NhbGUsIGFuZAogbWF5IG1h
cmsgYXJiaXRyYXJ5IGNoYXJhY3RlcnMgYXMgZGlnaXRzIC0gYnV0IHRoZSBQQ1JFIGNvbXBpbGlu
ZyBjb2RlIGV4cGVjdHMKIHRvIGhhbmRsZSBvbmx5IDAtOSwgYS16LCBhbmQgQS1aIGFzIGRpZ2l0
cyB3aGVuIGNvbXBpbGluZy4gVGhhdCBpcyB3aHkgd2UgaGF2ZQpAQCAtMTYzLDEyICsxMzcsMTEg
QEAgY2hhcmFjdGVyIHZhbHVlIHRlc3RzIChhdCBsZWFzdCBpbiBzb21lIAogYXBwbGljYXRpb25z
IG9uZSB3YW50cyBQQ1JFIHRvIGNvbXBpbGUgZWZmaWNpZW50bHkgYXMgd2VsbCBhcyBtYXRjaAog
ZWZmaWNpZW50bHkuCiAKLUZvciBjb252ZW5pZW5jZSwgd2UgdXNlIHRoZSBzYW1lIGJpdCBkZWZp
bml0aW9ucyBhcyBpbiBjaGFydGFibGVzOgorRm9yIGNvbnZlbmllbmNlLCB3ZSB1c2UgdGhlIHNh
bWUgYml0IGRlZmluaXRpb24gYXMgaW4gY2hhcnRhYmxlczoKIAotICAweDA0ICAgZGVjaW1hbCBk
aWdpdAogICAweDA4ICAgaGV4YWRlY2ltYWwgZGlnaXQKIAotVGhlbiB3ZSBjYW4gdXNlIGN0eXBl
X2RpZ2l0IGFuZCBjdHlwZV94ZGlnaXQgaW4gdGhlIGNvZGUuICovCitUaGVuIHdlIGNhbiB1c2Ug
Y3R5cGVfeGRpZ2l0IGluIHRoZSBjb2RlLiAqLwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh
ciBkaWdpdGFiW10gPQogICB7CkBAIC0yMDUsMTUgKzE3OCwxMiBAQCBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY2hhciBkaWdpdGFiW10gPQogICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsIC8qIDI0MC0yNDcgKi8KICAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAs
MHgwMCwweDAwfTsvKiAyNDgtMjU1ICovCiAKLQogLyogRGVmaW5pdGlvbiB0byBhbGxvdyBtdXR1
YWwgcmVjdXJzaW9uICovCiAKIHN0YXRpYyBCT09MCi0gIGNvbXBpbGVfcmVnZXgoaW50LCBpbnQg
KiwgdXNjaGFyICoqLCBjb25zdCBwY3JlX3VjaGFyICoqLCBjb25zdCBwY3JlX3VjaGFyICosIGlu
dCAqLCBpbnQsCisgIGNvbXBpbGVfcmVnZXgoaW50LCBpbnQgKiwgdXNjaGFyICoqLCBjb25zdCBw
Y3JlX3VjaGFyICoqLCBjb25zdCBwY3JlX3VjaGFyICosIEVycm9yQ29kZSosIGludCwKICAgICBp
bnQgKiwgaW50ICosIGNvbXBpbGVfZGF0YSAqKTsKIAotCi0KIC8qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAgICAgICAgICAgSGFuZGxlIGVzY2Fw
ZXMgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKi8KQEAgLTIzNyw3ICsyMDcsNyBAQCBSZXR1cm5zOiAgICAgICAg
IHplcm8gb3IgcG9zaXRpdmUgPT4gYSBkCiAqLwogCiBzdGF0aWMgaW50Ci1jaGVja19lc2NhcGUo
Y29uc3QgcGNyZV91Y2hhciAqKnB0cnB0ciwgY29uc3QgcGNyZV91Y2hhciAqcGF0dGVybkVuZCwg
aW50ICplcnJvcmNvZGVwdHIsIGludCBicmFjb3VudCwKK2NoZWNrX2VzY2FwZShjb25zdCBwY3Jl
X3VjaGFyICoqcHRycHRyLCBjb25zdCBwY3JlX3VjaGFyICpwYXR0ZXJuRW5kLCBFcnJvckNvZGUq
IGVycm9yY29kZXB0ciwgaW50IGJyYWNvdW50LAogICBCT09MIGlzY2xhc3MpCiB7CiBjb25zdCBw
Y3JlX3VjaGFyICpwdHIgPSAqcHRycHRyICsgMTsKQEAgLTI1MiwxMyArMjIyLDExIEBAIGlmIChw
dHIgPT0gcGF0dGVybkVuZCkgewogCiBjID0gKnB0cjsKIAotaWYgKDApIHsgfSAvKiBNYXRjaGVz
IHdpdGggZWxzZSBiZWxvdzsgdG8gbWFrZSBtZXJnaW5nIGVhc2llci4gKi8KLQogLyogTm9uLWFs
cGhhbWVyaWNzIGFyZSBsaXRlcmFscy4gRm9yIGRpZ2l0cyBvciBsZXR0ZXJzLCBkbyBhbiBpbml0
aWFsIGxvb2t1cCBpbgogYSB0YWJsZS4gQSBub24temVybyByZXN1bHQgaXMgc29tZXRoaW5nIHRo
YXQgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5LgogT3RoZXJ3aXNlIGZ1cnRoZXIgcHJvY2Vz
c2luZyBtYXkgYmUgcmVxdWlyZWQuICovCiAKLWVsc2UgaWYgKGMgPCAnMCcgfHwgYyA+ICd6Jykg
e30gICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3QgYWxwaGFtZXJpYyAqLworaWYgKGMg
PCAnMCcgfHwgYyA+ICd6Jykge30gICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3QgYWxw
aGFtZXJpYyAqLwogZWxzZSBpZiAoKGkgPSBlc2NhcGVzW2MgLSAnMCddKSAhPSAwKSBjID0gaTsK
IAogLyogRXNjYXBlcyB0aGF0IG5lZWQgZnVydGhlciBwcm9jZXNzaW5nLCBvciBhcmUgaWxsZWdh
bC4gKi8KQEAgLTI5MCw3ICsyNTgsNyBAQCBlbHNlCiAgICAgICB7CiAgICAgICBvbGRwdHIgPSBw
dHI7CiAgICAgICBjIC09ICcwJzsKLSAgICAgIHdoaWxlIChwdHIgKyAxIDwgcGF0dGVybkVuZCAm
JiAoRElHSVRBQihwdHJbMV0pICYgY3R5cGVfZGlnaXQpICE9IDApCisgICAgICB3aGlsZSAocHRy
ICsgMSA8IHBhdHRlcm5FbmQgJiYgaXNBU0NJSURpZ2l0KHB0clsxXSkpCiAgICAgICAgIGMgPSBj
ICogMTAgKyAqKCsrcHRyKSAtICcwJzsKICAgICAgIGlmIChjIDwgMTAgfHwgYyA8PSBicmFjb3Vu
dCkKICAgICAgICAgewpAQCAtMzQ0LDEyICszMTIsMTIgQEAgZWxzZQogCiAgICAgICBpZiAocHQg
PCBwYXR0ZXJuRW5kICYmICpwdCA9PSAnfScpCiAgICAgICAgIHsKLSAgICAgICAgaWYgKGMgPCAw
IHx8IGNvdW50ID4gOCkgKmVycm9yY29kZXB0ciA9IEVSUjM0OwotICAgICAgICBlbHNlIGlmIChj
ID49IDB4RDgwMCAmJiBjIDw9IDB4REZGRikgKmVycm9yY29kZXB0ciA9IEVSUjM0OyAvLyBoYWxm
IG9mIHN1cnJvZ2F0ZSBwYWlyCi0gICAgICAgIGVsc2UgaWYgKGMgPj0gMHhGREQwICYmIGMgPD0g
MHhGREVGKSAqZXJyb3Jjb2RlcHRyID0gRVJSMzQ7IC8vID8KLSAgICAgICAgZWxzZSBpZiAoYyA9
PSAweEZGRkUpICplcnJvcmNvZGVwdHIgPSBFUlIzNDsgLy8gbm90IGEgY2hhcmFjdGVyCi0gICAg
ICAgIGVsc2UgaWYgKGMgPT0gMHhGRkZGKSAgKmVycm9yY29kZXB0ciA9IEVSUjM0OyAvLyBub3Qg
YSBjaGFyYWN0ZXIKLSAgICAgICAgZWxzZSBpZiAoYyA+IDB4MTBGRkZGKSAqZXJyb3Jjb2RlcHRy
ID0gRVJSMzQ7IC8vIG91dCBvZiBVbmljb2RlIGNoYXJhY3RlciByYW5nZQorICAgICAgICBpZiAo
YyA8IDAgfHwgY291bnQgPiA4KSAqZXJyb3Jjb2RlcHRyID0gRVJSMzsKKyAgICAgICAgZWxzZSBp
ZiAoYyA+PSAweEQ4MDAgJiYgYyA8PSAweERGRkYpICplcnJvcmNvZGVwdHIgPSBFUlIzOyAvLyBo
YWxmIG9mIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgIGVsc2UgaWYgKGMgPj0gMHhGREQwICYmIGMg
PD0gMHhGREVGKSAqZXJyb3Jjb2RlcHRyID0gRVJSMzsgLy8gPworICAgICAgICBlbHNlIGlmIChj
ID09IDB4RkZGRSkgKmVycm9yY29kZXB0ciA9IEVSUjM7IC8vIG5vdCBhIGNoYXJhY3RlcgorICAg
ICAgICBlbHNlIGlmIChjID09IDB4RkZGRikgICplcnJvcmNvZGVwdHIgPSBFUlIzOyAvLyBub3Qg
YSBjaGFyYWN0ZXIKKyAgICAgICAgZWxzZSBpZiAoYyA+IDB4MTBGRkZGKSAqZXJyb3Jjb2RlcHRy
ID0gRVJSMzsgLy8gb3V0IG9mIFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlCiAgICAgICAgIHB0ciA9
IHB0OwogICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDQwLDEwICs0MDgsMTAgQEAgUmV0
dXJuczogICAgVFJVRSBvciBGQUxTRQogc3RhdGljIEJPT0wKIGlzX2NvdW50ZWRfcmVwZWF0KGNv
bnN0IHBjcmVfdWNoYXIgKnAsIGNvbnN0IHBjcmVfdWNoYXIgKnBhdHRlcm5FbmQpCiB7Ci1pZiAo
cCA+PSBwYXR0ZXJuRW5kIHx8IChESUdJVEFCKCpwKSAmIGN0eXBlX2RpZ2l0KSA9PSAwKQoraWYg
KHAgPj0gcGF0dGVybkVuZCB8fCAhaXNBU0NJSURpZ2l0KCpwKSkKICAgICByZXR1cm4gRkFMU0U7
CiBwKys7Ci13aGlsZSAocCA8IHBhdHRlcm5FbmQgJiYgKERJR0lUQUIoKnApICYgY3R5cGVfZGln
aXQpICE9IDApCit3aGlsZSAocCA8IHBhdHRlcm5FbmQgJiYgaXNBU0NJSURpZ2l0KCpwKSkKICAg
ICBwKys7CiBpZiAocCA8IHBhdHRlcm5FbmQgJiYgKnAgPT0gJ30nKQogICAgIHJldHVybiBUUlVF
OwpAQCAtNDUzLDEwICs0MjEsMTAgQEAgaWYgKHAgPj0gcGF0dGVybkVuZCB8fCAqcCsrICE9ICcs
JykKIGlmIChwIDwgcGF0dGVybkVuZCAmJiAqcCA9PSAnfScpCiAgICAgcmV0dXJuIFRSVUU7CiAK
LWlmIChwID49IHBhdHRlcm5FbmQgfHwgKERJR0lUQUIoKnApICYgY3R5cGVfZGlnaXQpID09IDAp
CitpZiAocCA+PSBwYXR0ZXJuRW5kIHx8ICFpc0FTQ0lJRGlnaXQoKnApKQogICAgIHJldHVybiBG
QUxTRTsKIHArKzsKLXdoaWxlIChwIDwgcGF0dGVybkVuZCAmJiAoRElHSVRBQigqcCkgJiBjdHlw
ZV9kaWdpdCkgIT0gMCkKK3doaWxlIChwIDwgcGF0dGVybkVuZCAmJiBpc0FTQ0lJRGlnaXQoKnAp
KQogICAgIHArKzsKIAogcmV0dXJuIChwIDwgcGF0dGVybkVuZCAmJiAqcCA9PSAnfScpOwpAQCAt
NDg0LDcgKzQ1Miw3IEBAIFJldHVybnM6ICAgICAgICAgcG9pbnRlciB0byAnfScgb24gc3VjY2UK
ICovCiAKIHN0YXRpYyBjb25zdCBwY3JlX3VjaGFyICoKLXJlYWRfcmVwZWF0X2NvdW50cyhjb25z
dCBwY3JlX3VjaGFyICpwLCBpbnQgKm1pbnAsIGludCAqbWF4cCwgaW50ICplcnJvcmNvZGVwdHIp
CityZWFkX3JlcGVhdF9jb3VudHMoY29uc3QgcGNyZV91Y2hhciAqcCwgaW50ICptaW5wLCBpbnQg
Km1heHAsIEVycm9yQ29kZSogZXJyb3Jjb2RlcHRyKQogewogaW50IG1pbiA9IDA7CiBpbnQgbWF4
ID0gLTE7CkBAIC00OTIsNyArNDYwLDcgQEAgaW50IG1heCA9IC0xOwogLyogUmVhZCB0aGUgbWlu
aW11bSB2YWx1ZSBhbmQgZG8gYSBwYXJhbm9pZCBjaGVjazogYSBuZWdhdGl2ZSB2YWx1ZSBpbmRp
Y2F0ZXMKIGFuIGludGVnZXIgb3ZlcmZsb3cuICovCiAKLXdoaWxlICgoRElHSVRBQigqcCkgJiBj
dHlwZV9kaWdpdCkgIT0gMCkgbWluID0gbWluICogMTAgKyAqcCsrIC0gJzAnOword2hpbGUgKGlz
QVNDSUlEaWdpdCgqcCkpIG1pbiA9IG1pbiAqIDEwICsgKnArKyAtICcwJzsKIGlmIChtaW4gPCAw
IHx8IG1pbiA+IDY1NTM1KQogICB7CiAgICplcnJvcmNvZGVwdHIgPSBFUlI1OwpAQCAtNTA3LDcg
KzQ3NSw3IEBAIGlmICgqcCA9PSAnfScpIG1heCA9IG1pbjsgZWxzZQogICBpZiAoKigrK3ApICE9
ICd9JykKICAgICB7CiAgICAgbWF4ID0gMDsKLSAgICB3aGlsZSgoRElHSVRBQigqcCkgJiBjdHlw
ZV9kaWdpdCkgIT0gMCkgbWF4ID0gbWF4ICogMTAgKyAqcCsrIC0gJzAnOworICAgIHdoaWxlIChp
c0FTQ0lJRGlnaXQoKnApKSBtYXggPSBtYXggKiAxMCArICpwKysgLSAnMCc7CiAgICAgaWYgKG1h
eCA8IDAgfHwgbWF4ID4gNjU1MzUpCiAgICAgICB7CiAgICAgICAqZXJyb3Jjb2RlcHRyID0gRVJS
NTsKQEAgLTU1OCw3ICs1MjYsNyBAQCBmb3IgKDs7KQogICAgIGNhc2UgT1BfQVNTRVJUX05PVDoK
ICAgICBpZiAoIXNraXBhc3NlcnQpIHJldHVybiBjb2RlOwogICAgIGRvIGNvZGUgKz0gR0VUKGNv
ZGUsIDEpOyB3aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsKLSAgICBjb2RlICs9IF9wY3JlX09QX2xl
bmd0aHNbKmNvZGVdOworICAgIGNvZGUgKz0gT1BfbGVuZ3Roc1sqY29kZV07CiAgICAgYnJlYWs7
CiAKICAgICBjYXNlIE9QX1dPUkRfQk9VTkRBUlk6CkBAIC01NjcsNyArNTM1LDcgQEAgZm9yICg7
OykKICAgICAvKiBGYWxsIHRocm91Z2ggKi8KIAogICAgIGNhc2UgT1BfQlJBTlVNQkVSOgotICAg
IGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV07CisgICAgY29kZSArPSBPUF9sZW5ndGhz
Wypjb2RlXTsKICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CkBAIC02NTQsNyArNjIyLDcgQEAg
Zm9yICg7OykKICAgICBjYXNlIE9QX0RPTEw6CiAgICAgY2FzZSBPUF9OT1RfV09SRF9CT1VOREFS
WToKICAgICBjYXNlIE9QX1dPUkRfQk9VTkRBUlk6Ci0gICAgY2MgKz0gX3BjcmVfT1BfbGVuZ3Ro
c1sqY2NdOworICAgIGNjICs9IE9QX2xlbmd0aHNbKmNjXTsKICAgICBicmVhazsKIAogICAgIC8q
IEhhbmRsZSBsaXRlcmFsIGNoYXJhY3RlcnMgKi8KQEAgLTc2NSw3ICs3MzMsNyBAQCBjb3VsZF9i
ZV9lbXB0eV9icmFuY2goY29uc3QgdXNjaGFyICpjb2RlCiByZWdpc3RlciBpbnQgYzsKIGZvciAo
Y29kZSA9IGZpcnN0X3NpZ25pZmljYW50X2NvZGUoY29kZSArIDEgKyBMSU5LX1NJWkUsIFRSVUUp
OwogICAgICBjb2RlIDwgZW5kY29kZTsKLSAgICAgY29kZSA9IGZpcnN0X3NpZ25pZmljYW50X2Nv
ZGUoY29kZSArIF9wY3JlX09QX2xlbmd0aHNbY10sIFRSVUUpKQorICAgICBjb2RlID0gZmlyc3Rf
c2lnbmlmaWNhbnRfY29kZShjb2RlICsgT1BfbGVuZ3Roc1tjXSwgVFJVRSkpCiAgIHsKICAgY29u
c3QgdXNjaGFyICpjY29kZTsKIApAQCAtOTU1LDcgKzkyMyw3IEBAIGNoYW5nZWQgZHVyaW5nIHRo
ZSBicmFuY2gsIHRoZSBwb2ludGVyIGkKIGJpdHMuCiAKIEFyZ3VtZW50czoKLSAgb3B0aW9uc3B0
ciAgICAgcG9pbnRlciB0byB0aGUgb3B0aW9uIGJpdHMKKyAgb3B0aW9ucyAgICAgICAgdGhlIG9w
dGlvbiBiaXRzCiAgIGJyYWNrZXRzICAgICAgIHBvaW50cyB0byBudW1iZXIgb2YgZXh0cmFjdGlu
ZyBicmFja2V0cyB1c2VkCiAgIGNvZGVwdHIgICAgICAgIHBvaW50cyB0byB0aGUgcG9pbnRlciB0
byB0aGUgY3VycmVudCBjb2RlIHBvaW50CiAgIHB0cnB0ciAgICAgICAgIHBvaW50cyB0byB0aGUg
Y3VycmVudCBwYXR0ZXJuIHBvaW50ZXIKQEAgLTk2OSw4ICs5MzcsOCBAQCBSZXR1cm5zOiAgICAg
ICAgIFRSVUUgb24gc3VjY2VzcwogKi8KIAogc3RhdGljIEJPT0wKLWNvbXBpbGVfYnJhbmNoKGlu
dCAqb3B0aW9uc3B0ciwgaW50ICpicmFja2V0cywgdXNjaGFyICoqY29kZXB0ciwKLSAgY29uc3Qg
cGNyZV91Y2hhciAqKnB0cnB0ciwgY29uc3QgcGNyZV91Y2hhciAqcGF0dGVybkVuZCwgaW50ICpl
cnJvcmNvZGVwdHIsIGludCAqZmlyc3RieXRlcHRyLAorY29tcGlsZV9icmFuY2goaW50IG9wdGlv
bnMsIGludCAqYnJhY2tldHMsIHVzY2hhciAqKmNvZGVwdHIsCisgIGNvbnN0IHBjcmVfdWNoYXIg
KipwdHJwdHIsIGNvbnN0IHBjcmVfdWNoYXIgKnBhdHRlcm5FbmQsIEVycm9yQ29kZSogZXJyb3Jj
b2RlcHRyLCBpbnQgKmZpcnN0Ynl0ZXB0ciwKICAgaW50ICpyZXFieXRlcHRyLCBjb21waWxlX2Rh
dGEgKmNkKQogewogaW50IHJlcGVhdF90eXBlLCBvcF90eXBlOwpAQCAtOTc5LDcgKzk0Nyw2IEBA
IGludCBicmF2YWx1ZSA9IDA7CiBpbnQgZmlyc3RieXRlLCByZXFieXRlOwogaW50IHplcm9yZXFi
eXRlLCB6ZXJvZmlyc3RieXRlOwogaW50IHJlcV9jYXNlb3B0LCByZXF2YXJ5LCB0ZW1wcmVxdmFy
eTsKLWludCBvcHRpb25zID0gKm9wdGlvbnNwdHI7CiBpbnQgYWZ0ZXJfbWFudWFsX2NhbGxvdXQg
PSAwOwogcmVnaXN0ZXIgaW50IGM7CiByZWdpc3RlciB1c2NoYXIgKmNvZGUgPSAqY29kZXB0cjsK
QEAgLTEwMjQsNyArOTkxLDYgQEAgZm9yICg7OyBwdHIrKykKICAgQk9PTCBpc19xdWFudGlmaWVy
OwogICBpbnQgY2xhc3NfY2hhcmNvdW50OwogICBpbnQgY2xhc3NfbGFzdGNoYXI7Ci0gIGludCBu
ZXdvcHRpb25zOwogICBpbnQgc2tpcGJ5dGVzOwogICBpbnQgc3VicmVxYnl0ZTsKICAgaW50IHN1
YmZpcnN0Ynl0ZTsKQEAgLTE5NTQsNyArMTkyMCw2IEBAIGZvciAoOzsgcHRyKyspCiAgICAgY2hl
Y2sgZm9yIHN5bnRheCBlcnJvcnMgaGVyZS4gICovCiAKICAgICBjYXNlICcoJzoKLSAgICBuZXdv
cHRpb25zID0gb3B0aW9uczsKICAgICBza2lwYnl0ZXMgPSAwOwogCiAgICAgaWYgKCooKytwdHIp
ID09ICc/JykKQEAgLTIwMTEsNyArMTk3Niw3IEBAIGZvciAoOzsgcHRyKyspCiAgICAgdGVtcHJl
cXZhcnkgPSBjZC0+cmVxX3ZhcnlvcHQ7ICAgICAvKiBTYXZlIHZhbHVlIGJlZm9yZSBicmFja2V0
ICovCiAKICAgICBpZiAoIWNvbXBpbGVfcmVnZXgoCi0gICAgICAgICBuZXdvcHRpb25zLCAgICAg
ICAgICAgICAgICAgICAvKiBUaGUgY29tcGxldGUgbmV3IG9wdGlvbiBzdGF0ZSAqLworICAgICAg
ICAgb3B0aW9ucywKICAgICAgICAgIGJyYWNrZXRzLCAgICAgICAgICAgICAgICAgICAgIC8qIEV4
dHJhY3RpbmcgYnJhY2tldCBjb3VudCAqLwogICAgICAgICAgJnRlbXBjb2RlLCAgICAgICAgICAg
ICAgICAgICAgLyogV2hlcmUgdG8gcHV0IGNvZGUgKHVwZGF0ZWQpICovCiAgICAgICAgICAmcHRy
LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnB1dCBwb2ludGVyICh1cGRhdGVkKSAqLwpA
QCAtMjI1Myw3ICsyMjE4LDcgQEAgUmV0dXJuczogICAgICBUUlVFIG9uIHN1Y2Nlc3MKIAogc3Rh
dGljIEJPT0wKIGNvbXBpbGVfcmVnZXgoaW50IG9wdGlvbnMsIGludCAqYnJhY2tldHMsIHVzY2hh
ciAqKmNvZGVwdHIsCi0gIGNvbnN0IHBjcmVfdWNoYXIgKipwdHJwdHIsIGNvbnN0IHBjcmVfdWNo
YXIgKnBhdHRlcm5FbmQsIGludCAqZXJyb3Jjb2RlcHRyLCBpbnQgc2tpcGJ5dGVzLAorICBjb25z
dCBwY3JlX3VjaGFyICoqcHRycHRyLCBjb25zdCBwY3JlX3VjaGFyICpwYXR0ZXJuRW5kLCBFcnJv
ckNvZGUqIGVycm9yY29kZXB0ciwgaW50IHNraXBieXRlcywKICAgaW50ICpmaXJzdGJ5dGVwdHIs
IGludCAqcmVxYnl0ZXB0ciwgY29tcGlsZV9kYXRhICpjZCkKIHsKIGNvbnN0IHBjcmVfdWNoYXIg
KnB0ciA9ICpwdHJwdHI7CkBAIC0yMjc2LDcgKzIyNDEsNyBAQCBmb3IgKDs7KQogICB7CiAgIC8q
IE5vdyBjb21waWxlIHRoZSBicmFuY2ggKi8KIAotICBpZiAoIWNvbXBpbGVfYnJhbmNoKCZvcHRp
b25zLCBicmFja2V0cywgJmNvZGUsICZwdHIsIHBhdHRlcm5FbmQsIGVycm9yY29kZXB0ciwKKyAg
aWYgKCFjb21waWxlX2JyYW5jaChvcHRpb25zLCBicmFja2V0cywgJmNvZGUsICZwdHIsIHBhdHRl
cm5FbmQsIGVycm9yY29kZXB0ciwKICAgICAgICAgJmJyYW5jaGZpcnN0Ynl0ZSwgJmJyYW5jaHJl
cWJ5dGUsIGNkKSkKICAgICB7CiAgICAgKnB0cnB0ciA9IHB0cjsKQEAgLTI0MTQsNyArMjM3OSw3
IEBAIFJldHVybnM6ICAgICBUUlVFIG9yIEZBTFNFCiAqLwogCiBzdGF0aWMgQk9PTAotaXNfYW5j
aG9yZWQocmVnaXN0ZXIgY29uc3QgdXNjaGFyICpjb2RlLCBpbnQgKm9wdGlvbnMsIHVuc2lnbmVk
IGludCBicmFja2V0X21hcCwKK2lzX2FuY2hvcmVkKHJlZ2lzdGVyIGNvbnN0IHVzY2hhciAqY29k
ZSwgaW50IG9wdGlvbnMsIHVuc2lnbmVkIGludCBicmFja2V0X21hcCwKICAgdW5zaWduZWQgaW50
IGJhY2tyZWZfbWFwKQogewogZG8gewpAQCAtMjQ0Miw3ICsyNDA3LDcgQEAgZG8gewogCiAgICAv
KiBDaGVjayBmb3IgZXhwbGljaXQgYW5jaG9yaW5nICovCiAKLSAgIGVsc2UgaWYgKCgoKm9wdGlv
bnMgJiBQQ1JFX01VTFRJTElORSkgIT0gMCB8fCBvcCAhPSBPUF9DSVJDKSkKKyAgIGVsc2UgaWYg
KCgob3B0aW9ucyAmIFBDUkVfTVVMVElMSU5FKSAhPSAwIHx8IG9wICE9IE9QX0NJUkMpKQogICAg
ICByZXR1cm4gRkFMU0U7CiAgICBjb2RlICs9IEdFVChjb2RlLCAxKTsKICAgIH0KQEAgLTI1NDAs
NyArMjUwNSw3IEBAIFJldHVybnM6ICAgICAtMSBvciB0aGUgZml4ZWQgZmlyc3QgY2hhcgogKi8K
IAogc3RhdGljIGludAotZmluZF9maXJzdGFzc2VydGVkY2hhcihjb25zdCB1c2NoYXIgKmNvZGUs
IGludCAqb3B0aW9ucywgQk9PTCBpbmFzc2VydCkKK2ZpbmRfZmlyc3Rhc3NlcnRlZGNoYXIoY29u
c3QgdXNjaGFyICpjb2RlLCBpbnQgb3B0aW9ucywgQk9PTCBpbmFzc2VydCkKIHsKIHJlZ2lzdGVy
IGludCBjID0gLTE7CiBkbyB7CkBAIC0yNTc3LDcgKzI1NDIsNyBAQCBkbyB7CiAgICAgIGlmIChj
IDwgMCkKICAgICAgICB7CiAgICAgICAgYyA9IHNjb2RlWzFdOwotICAgICAgIGlmICgoKm9wdGlv
bnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKSBjIHw9IFJFUV9DQVNFTEVTUzsKKyAgICAgICBpZiAo
KG9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwKSBjIHw9IFJFUV9DQVNFTEVTUzsKICAgICAg
ICB9CiAgICAgIGVsc2UgaWYgKGMgIT0gc2NvZGVbMV0pIHJldHVybiAtMTsKICAgICAgYnJlYWs7
CkBAIC0yNjE0LDcgKzI1NzksOSBAQCBSZXR1cm5zOiAgICAgICAgcG9pbnRlciB0byBjb21waWxl
ZCBkYXRhCiAqLwogCiBwY3JlICoKLWpzUmVnRXhwQ29tcGlsZShjb25zdCBwY3JlX2NoYXIqIHBh
dHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoLCBpbnQgb3B0aW9ucywgdW5zaWduZWQqIG51bVN1YnBh
dHRlcm5zLCBjb25zdCBjaGFyKiogZXJyb3JwdHIpCitqc1JlZ0V4cENvbXBpbGUoY29uc3QgcGNy
ZV9jaGFyKiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCwKKyAgICBKU1JlZ0V4cElnbm9yZUNh
c2VPcHRpb24gaWdub3JlQ2FzZSwgSlNSZWdFeHBNdWx0aWxpbmVPcHRpb24gbXVsdGlsaW5lLAor
ICAgIHVuc2lnbmVkKiBudW1TdWJwYXR0ZXJucywgY29uc3QgY2hhcioqIGVycm9ycHRyKQogewog
cmVhbF9wY3JlICpyZTsKIGludCBsZW5ndGggPSAxICsgTElOS19TSVpFOyAgICAgIC8qIEZvciBp
bml0aWFsIEJSQSBwbHVzIGxlbmd0aCAqLwpAQCAtMjYyNiw3ICsyNTkzLDcgQEAgaW50IGl0ZW1f
Y291bnQgPSAtMTsKIGludCBuYW1lX2NvdW50ID0gMDsKIGludCBtYXhfbmFtZV9zaXplID0gMDsK
IGludCBsYXN0aXRlbWxlbmd0aCA9IDA7Ci1pbnQgZXJyb3Jjb2RlID0gMDsKK0Vycm9yQ29kZSBl
cnJvcmNvZGUgPSBFUlIwOwogQk9PTCBjbGFzc191dGY4OwogQk9PTCBjYXB0dXJpbmc7CiB1bnNp
Z25lZCBpbnQgYnJhc3RhY2twdHIgPSAwOwpAQCAtMjkwOCw3ICsyODc1LDcgQEAgd2hpbGUgKCsr
cHRyIDwgcGF0dGVybkVuZCkKICAgICAgICAgICAgIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICBpZiAoKGQgPiAyNTUgfHwgKChvcHRpb25zICYgUENS
RV9DQVNFTEVTUykgIT0gMCAmJiBkID4gMTI3KSkpCisgICAgICAgICAgaWYgKChkID4gMjU1IHx8
IChpZ25vcmVDYXNlICYmIGQgPiAxMjcpKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIHVz
Y2hhciBidWZmZXJbNl07CiAgICAgICAgICAgICBpZiAoIWNsYXNzX3V0ZjgpICAgICAgICAgLyog
QWxsb3cgZm9yIFhDTEFTUyBvdmVyaGVhZCAqLwpAQCAtMjkyMyw3ICsyODkwLDcgQEAgd2hpbGUg
KCsrcHRyIDwgcGF0dGVybkVuZCkKICAgICAgICAgICAgIHJhbmdlIHVwd2FyZHMgbWlnaHQgcHVz
aCBkIG92ZXIgYSBib3VuZGFyeSB0aGF0IG1ha2VzIGlzIHVzZQogICAgICAgICAgICAgYW5vdGhl
ciBieXRlIGluIHRoZSBVVEYtOCByZXByZXNlbnRhdGlvbi4gKi8KIAotICAgICAgICAgICAgaWYg
KChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCkKKyAgICAgICAgICAgIGlmIChpZ25vcmVD
YXNlKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGludCBvY2MsIG9jZDsKICAgICAg
ICAgICAgICAgaW50IGNjID0gYzsKQEAgLTI5NjQsNyArMjkzMSw3IEBAIHdoaWxlICgrK3B0ciA8
IHBhdHRlcm5FbmQpCiAKICAgICAgICAgZWxzZQogICAgICAgICAgIHsKLSAgICAgICAgICBpZiAo
KGMgPiAyNTUgfHwgKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykgIT0gMCAmJiBjID4gMTI3KSkp
CisgICAgICAgICAgaWYgKChjID4gMjU1IHx8IChpZ25vcmVDYXNlICYmIGMgPiAxMjcpKSkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgIHVzY2hhciBidWZmZXJbNl07CiAgICAgICAgICAgICBj
bGFzc19vcHRjb3VudCA9IDEwOyAgICAgLyogRW5zdXJlID4gMSAqLwpAQCAtMjk3Myw4ICsyOTQw
LDcgQEAgd2hpbGUgKCsrcHRyIDwgcGF0dGVybkVuZCkKICAgICAgICAgICAgICAgY2xhc3NfdXRm
OCA9IFRSVUU7CiAgICAgICAgICAgICAgIGxlbmd0aCArPSBMSU5LX1NJWkUgKyAyOwogICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBsZW5ndGggKz0gKCgob3B0aW9ucyAmIFBDUkVfQ0FTRUxF
U1MpICE9IDApPyAyIDogMSkgKgotICAgICAgICAgICAgICAoMSArIF9wY3JlX29yZDJ1dGY4KGMs
IGJ1ZmZlcikpOworICAgICAgICAgICAgbGVuZ3RoICs9IChpZ25vcmVDYXNlID8gMiA6IDEpICog
KDEgKyBfcGNyZV9vcmQydXRmOChjLCBidWZmZXIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTMwNzAsNyArMzAzNiw3IEBAIHdoaWxlICgrK3B0ciA8IHBhdHRl
cm5FbmQpCiAKICAgICBpZiAoYnJhc3RhY2twdHIgPj0gc2l6ZW9mKGJyYXN0YWNrKS9zaXplb2Yo
aW50KSkKICAgICAgIHsKLSAgICAgIGVycm9yY29kZSA9IEVSUjE5OworICAgICAgZXJyb3Jjb2Rl
ID0gRVJSMTc7CiAgICAgICBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOwogICAgICAgfQogCkBAIC0z
MTgwLDIwICszMTQ2LDIwIEBAIGxlbmd0aCArPSAyICsgTElOS19TSVpFOyAgICAvKiBGb3IgZmlu
YWwKIAogaWYgKGxlbmd0aCA+IE1BWF9QQVRURVJOX1NJWkUpCiAgIHsKLSAgZXJyb3Jjb2RlID0g
RVJSMjA7Ci0gIGdvdG8gUENSRV9FQVJMWV9FUlJPUl9SRVRVUk47CisgIGVycm9yY29kZSA9IEVS
UjE2OworICBnb3RvIFBDUkVfRVJST1JfUkVUVVJOOwogICB9CiAKIC8qIENvbXB1dGUgdGhlIHNp
emUgb2YgZGF0YSBibG9jayBuZWVkZWQgYW5kIGdldCBpdCwgZWl0aGVyIGZyb20gbWFsbG9jIG9y
CiBleHRlcm5hbGx5IHByb3ZpZGVkIGZ1bmN0aW9uLiAqLwogCiBzaXplID0gbGVuZ3RoICsgc2l6
ZW9mKHJlYWxfcGNyZSkgKyBuYW1lX2NvdW50ICogKG1heF9uYW1lX3NpemUgKyAzKTsKLXJlID0g
KHJlYWxfcGNyZSAqKShwY3JlX21hbGxvYykoc2l6ZSk7CityZSA9IChyZWFsX3BjcmUgKilmYXN0
TWFsbG9jKHNpemUpOwogCiBpZiAocmUgPT0gTlVMTCkKICAgewotICBlcnJvcmNvZGUgPSBFUlIy
MTsKLSAgZ290byBQQ1JFX0VBUkxZX0VSUk9SX1JFVFVSTjsKKyAgZXJyb3Jjb2RlID0gRVJSMTM7
CisgIGdvdG8gUENSRV9FUlJPUl9SRVRVUk47CiAgIH0KIAogLyogUHV0IGluIHRoZSBtYWdpYyBu
dW1iZXIsIGFuZCBzYXZlIHRoZSBzaXplcywgb3B0aW9ucywgYW5kIGNoYXJhY3RlciB0YWJsZQpA
QCAtMzIwMiw3ICszMTY4LDcgQEAgdGhlIGVuZDsgaXQncyB0aGVyZSB0byBoZWxwIGluIHRoZSBj
YXNlIAogNC1ieXRlIHBvaW50ZXJzIGlzIHJ1biBvbiBhbm90aGVyIHdpdGggOC1ieXRlIHBvaW50
ZXJzLiAqLwogCiByZS0+c2l6ZSA9IChwY3JlX3VpbnQzMilzaXplOwotcmUtPm9wdGlvbnMgPSBv
cHRpb25zOworcmUtPm9wdGlvbnMgPSAoaWdub3JlQ2FzZSA/IFBDUkVfQ0FTRUxFU1MgOiAwKSB8
IChtdWx0aWxpbmUgPyBQQ1JFX01VTFRJTElORSA6IDApOwogCiAvKiBUaGUgc3RhcnRpbmcgcG9p
bnRzIG9mIHRoZSBuYW1lL251bWJlciB0cmFuc2xhdGlvbiB0YWJsZSBhbmQgb2YgdGhlIGNvZGUg
YXJlCiBwYXNzZWQgYXJvdW5kIGluIHRoZSBjb21waWxlIGRhdGEgYmxvY2suICovCkBAIC0zMjIw
LDcgKzMxODYsNyBAQCBwdHIgPSAoY29uc3QgcGNyZV91Y2hhciAqKXBhdHRlcm47CiBjb2RlID0g
KHVzY2hhciAqKWNvZGVzdGFydDsKICpjb2RlID0gT1BfQlJBOwogYnJhY291bnQgPSAwOwotKHZv
aWQpY29tcGlsZV9yZWdleChvcHRpb25zLCAmYnJhY291bnQsICZjb2RlLCAmcHRyLAorKHZvaWQp
Y29tcGlsZV9yZWdleChyZS0+b3B0aW9ucywgJmJyYWNvdW50LCAmY29kZSwgJnB0ciwKICAgcGF0
dGVybkVuZCwKICAgJmVycm9yY29kZSwgMCwgJmZpcnN0Ynl0ZSwgJnJlcWJ5dGUsICZjb21waWxl
X2Jsb2NrKTsKIHJlLT50b3BfYnJhY2tldCA9IGJyYWNvdW50OwpAQCAtMzIyOCw3ICszMTk0LDcg
QEAgcmUtPnRvcF9iYWNrcmVmID0gY29tcGlsZV9ibG9jay50b3BfYmFjawogCiAvKiBJZiBub3Qg
cmVhY2hlZCBlbmQgb2YgcGF0dGVybiBvbiBzdWNjZXNzLCB0aGVyZSdzIGFuIGV4Y2VzcyBicmFj
a2V0LiAqLwogCi1pZiAoZXJyb3Jjb2RlID09IDAgJiYgcHRyIDwgcGF0dGVybkVuZCkgZXJyb3Jj
b2RlID0gRVJSMjI7CitpZiAoZXJyb3Jjb2RlID09IDAgJiYgcHRyIDwgcGF0dGVybkVuZCkgZXJy
b3Jjb2RlID0gRVJSMTA7CiAKIC8qIEZpbGwgaW4gdGhlIHRlcm1pbmF0aW5nIHN0YXRlIGFuZCBj
aGVjayBmb3IgZGlzYXN0cm91cyBvdmVyZmxvdywgYnV0CiBpZiBkZWJ1Z2dpbmcsIGxlYXZlIHRo
ZSB0ZXN0IHRpbGwgYWZ0ZXIgdGhpbmdzIGFyZSBwcmludGVkIG91dC4gKi8KQEAgLTMyMzYsNyAr
MzIwMiw3IEBAIGlmIGRlYnVnZ2luZywgbGVhdmUgdGhlIHRlc3QgdGlsbCBhZnRlciAKICpjb2Rl
KysgPSBPUF9FTkQ7CiAKICNpZm5kZWYgREVCVUcKLWlmIChjb2RlIC0gY29kZXN0YXJ0ID4gbGVu
Z3RoKSBlcnJvcmNvZGUgPSBFUlIyMzsKK2lmIChjb2RlIC0gY29kZXN0YXJ0ID4gbGVuZ3RoKSBl
cnJvcmNvZGUgPSBFUlI3OwogI2VuZGlmCiAKIC8qIEdpdmUgYW4gZXJyb3IgaWYgdGhlcmUncyBi
YWNrIHJlZmVyZW5jZSB0byBhIG5vbi1leGlzdGVudCBjYXB0dXJpbmcKQEAgLTMyNDYsMTIgKzMy
MTIsMTEgQEAgaWYgKHJlLT50b3BfYmFja3JlZiA+IHJlLT50b3BfYnJhY2tldCkgZQogCiAvKiBG
YWlsZWQgdG8gY29tcGlsZSwgb3IgZXJyb3Igd2hpbGUgcG9zdC1wcm9jZXNzaW5nICovCiAKLWlm
IChlcnJvcmNvZGUgIT0gMCkKK2lmIChlcnJvcmNvZGUgIT0gRVJSMCkKICAgewotICAocGNyZV9m
cmVlKShyZSk7CisgIGZhc3RGcmVlKHJlKTsKICAgUENSRV9FUlJPUl9SRVRVUk46Ci0gIFBDUkVf
RUFSTFlfRVJST1JfUkVUVVJOOgotICAqZXJyb3JwdHIgPSBlcnJvcl90ZXh0c1tlcnJvcmNvZGVd
OworICAqZXJyb3JwdHIgPSBlcnJvcl90ZXh0KGVycm9yY29kZSk7CiAgIHJldHVybiBOVUxMOwog
ICB9CiAKQEAgLTMyNjYsMTMgKzMyMzEsMTIgQEAgc3RhcnQgd2l0aCBeLiBhbmQgYWxzbyB3aGVu
IGFsbCBicmFuY2hlcwogKi8KIAogICB7Ci0gIGludCB0ZW1wX29wdGlvbnMgPSBvcHRpb25zOwot
ICBpZiAoaXNfYW5jaG9yZWQoY29kZXN0YXJ0LCAmdGVtcF9vcHRpb25zLCAwLCBjb21waWxlX2Js
b2NrLmJhY2tyZWZfbWFwKSkKKyAgaWYgKGlzX2FuY2hvcmVkKGNvZGVzdGFydCwgcmUtPm9wdGlv
bnMsIDAsIGNvbXBpbGVfYmxvY2suYmFja3JlZl9tYXApKQogICAgIHJlLT5vcHRpb25zIHw9IFBD
UkVfQU5DSE9SRUQ7CiAgIGVsc2UKICAgICB7CiAgICAgaWYgKGZpcnN0Ynl0ZSA8IDApCi0gICAg
ICBmaXJzdGJ5dGUgPSBmaW5kX2ZpcnN0YXNzZXJ0ZWRjaGFyKGNvZGVzdGFydCwgJnRlbXBfb3B0
aW9ucywgRkFMU0UpOworICAgICAgZmlyc3RieXRlID0gZmluZF9maXJzdGFzc2VydGVkY2hhcihj
b2Rlc3RhcnQsIHJlLT5vcHRpb25zLCBGQUxTRSk7CiAgICAgaWYgKGZpcnN0Ynl0ZSA+PSAwKSAg
IC8qIFJlbW92ZSBjYXNlbGVzcyBmbGFnIGZvciBub24tY2FzZWFibGUgY2hhcnMgKi8KICAgICAg
IHsKICAgICAgIGludCBjaCA9IGZpcnN0Ynl0ZSAmIDI1NTsKQEAgLTMzNDYsOSArMzMxMCwxMCBA
QCB3YXMgY29tcGlsZWQgY2FuIGJlIHNlZW4uICovCiBpZiAoY29kZSAtIGNvZGVzdGFydCA+IGxl
bmd0aCkKICAgewogICAocGNyZV9mcmVlKShyZSk7Ci0gICplcnJvcnB0ciA9IGVycm9yX3RleHRz
W0VSUjIzXTsKKyAgKmVycm9ycHRyID0gZXJyb3JfdGV4dChFUlI3KTsKICAgcmV0dXJuIE5VTEw7
CiAgIH0KKwogI2VuZGlmCiAKIGlmIChudW1TdWJwYXR0ZXJucykKQEAgLTMzNTgsNyArMzMyMyw1
IEBAIHJldHVybiAocGNyZSAqKXJlOwogCiB2b2lkIGpzUmVnRXhwRnJlZShKU1JlZ0V4cCogcmUp
CiB7Ci0gICAgcGNyZV9mcmVlKHJlKTsKKyAgICBmYXN0RnJlZShyZSk7CiB9Ci0KLS8qIEVuZCBv
ZiBwY3JlX2NvbXBpbGUuYyAqLwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jCShyZXZpc2lv
biAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjMyNiArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Np
b25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovCi0KLS8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHJl
Z3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4Ci1hbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9z
ZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgotCi0gICAgICAg
ICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAgICAgICAgIENvcHly
aWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0KLSAgICBDb3B5cmln
aHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1l
dDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
dGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0qLwotCi0KLS8qIFRoaXMgbW9kdWxlIGNvbnRhaW5zIHBjcmVfZXhlYygpLCB0
aGUgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9uIHRoYXQgZG9lcwotcGF0dGVybiBtYXRjaGlu
ZyB1c2luZyBhbiBORkEgYWxnb3JpdGhtLCB0cnlpbmcgdG8gbWltaWMgUGVybCBhcyBjbG9zZWx5
IGFzCi1wb3NzaWJsZS4gVGhlcmUgYXJlIGFsc28gc29tZSBzdGF0aWMgc3VwcG9ydGluZyBmdW5j
dGlvbnMuICovCi0KLQotI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotLyogQXZvaWQgd2Fy
bmluZ3Mgb24gV2luZG93cy4gKi8KLSN1bmRlZiBtaW4KLSN1bmRlZiBtYXgKLQotLyogU3RydWN0
dXJlIGZvciBidWlsZGluZyBhIGNoYWluIG9mIGRhdGEgdGhhdCBhY3R1YWxseSBsaXZlcyBvbiB0
aGUKLXN0YWNrLCBmb3IgaG9sZGluZyB0aGUgdmFsdWVzIG9mIHRoZSBzdWJqZWN0IHBvaW50ZXIg
YXQgdGhlIHN0YXJ0IG9mIGVhY2gKLXN1YnBhdHRlcm4sIHNvIGFzIHRvIGRldGVjdCB3aGVuIGFu
IGVtcHR5IHN0cmluZyBoYXMgYmVlbiBtYXRjaGVkIGJ5IGEKLXN1YnBhdHRlcm4gLSB0byBicmVh
ayBpbmZpbml0ZSBsb29wcy4gV2hlbiBOT19SRUNVUlNFIGlzIHNldCwgdGhlc2UgYmxvY2tzCi1h
cmUgb24gdGhlIGhlYXAsIG5vdCBvbiB0aGUgc3RhY2suICovCi0KLXR5cGVkZWYgc3RydWN0IGVw
dHJibG9jayB7Ci0gIHN0cnVjdCBlcHRyYmxvY2sgKmVwYl9wcmV2OwotICBVU1BUUiBlcGJfc2F2
ZWRfZXB0cjsKLX0gZXB0cmJsb2NrOwotCi0jZGVmaW5lIG1hdGNoX2lzZ3JvdXAgICAgICBUUlVF
ICAgIC8qIFNldCBpZiBzdGFydCBvZiBicmFja2V0ZWQgZ3JvdXAgKi8KLQotLyogTm9uLWVycm9y
IHJldHVybnMgZnJvbSB0aGUgbWF0Y2goKSBmdW5jdGlvbi4gRXJyb3IgcmV0dXJucyBhcmUgZXh0
ZXJuYWxseQotZGVmaW5lZCBQQ1JFX0VSUk9SX3h4eCBjb2Rlcywgd2hpY2ggYXJlIGFsbCBuZWdh
dGl2ZS4gKi8KLQotI2RlZmluZSBNQVRDSF9NQVRDSCAgICAgICAgMQotI2RlZmluZSBNQVRDSF9O
T01BVENIICAgICAgMAotCi0vKiBNaW4gYW5kIG1heCB2YWx1ZXMgZm9yIHRoZSBjb21tb24gcmVw
ZWF0czsgZm9yIHRoZSBtYXhpbWEsIDAgPT4gaW5maW5pdHkgKi8KLQotc3RhdGljIGNvbnN0IGNo
YXIgcmVwX21pbltdID0geyAwLCAwLCAxLCAxLCAwLCAwIH07Ci1zdGF0aWMgY29uc3QgY2hhciBy
ZXBfbWF4W10gPSB7IDAsIDAsIDAsIDAsIDEsIDEgfTsKLQotCi0KLSNpZmRlZiBERUJVRwotLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAg
IERlYnVnZ2luZyBmdW5jdGlvbiB0byBwcmludCBjaGFycyAgICAgICAqCi0qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBQcmludCBhIHNlcXVl
bmNlIG9mIGNoYXJzIGluIHByaW50YWJsZSBmb3JtYXQsIHN0b3BwaW5nIGF0IHRoZSBlbmQgb2Yg
dGhlCi1zdWJqZWN0IGlmIHRoZSByZXF1ZXN0ZWQuCi0KLUFyZ3VtZW50czoKLSAgcCAgICAgICAg
ICAgcG9pbnRzIHRvIGNoYXJhY3RlcnMKLSAgbGVuZ3RoICAgICAgbnVtYmVyIHRvIHByaW50Ci0g
IGlzX3N1YmplY3QgIFRSVUUgaWYgcHJpbnRpbmcgZnJvbSB3aXRoaW4gbWQtPnN0YXJ0X3N1Ympl
Y3QKLSAgbWQgICAgICAgICAgcG9pbnRlciB0byBtYXRjaGluZyBkYXRhIGJsb2NrLCBpZiBpc19z
dWJqZWN0IGlzIFRSVUUKLQotUmV0dXJuczogICAgIG5vdGhpbmcKLSovCi0KLXN0YXRpYyB2b2lk
Ci1wY2hhcnMoY29uc3QgcGNyZV91Y2hhciAqcCwgaW50IGxlbmd0aCwgQk9PTCBpc19zdWJqZWN0
LCBtYXRjaF9kYXRhICptZCkKLXsKLWludCBjOwotaWYgKGlzX3N1YmplY3QgJiYgbGVuZ3RoID4g
bWQtPmVuZF9zdWJqZWN0IC0gcCkgbGVuZ3RoID0gbWQtPmVuZF9zdWJqZWN0IC0gcDsKLXdoaWxl
IChsZW5ndGgtLSA+IDApCi0gIGlmIChpc3ByaW50KGMgPSAqKHArKykpKSBwcmludGYoIiVjIiwg
Yyk7Ci0gIGVsc2UgaWYgKGMgPCAyNTYpIHByaW50ZigiXFx4JTAyeCIsIGMpOwotICBlbHNlIHBy
aW50ZigiXFx4eyV4fSIsIGMpOwotfQotI2VuZGlmCi0KLQotCi0vKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgICBNYXRjaCBhIGJhY2st
cmVmZXJlbmNlICAgICAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKiovCi0KLS8qIElmIGEgYmFjayByZWZlcmVuY2UgaGFzbid0IGJl
ZW4gc2V0LCB0aGUgbGVuZ3RoIHRoYXQgaXMgcGFzc2VkIGlzIGdyZWF0ZXIKLXRoYW4gdGhlIG51
bWJlciBvZiBjaGFyYWN0ZXJzIGxlZnQgaW4gdGhlIHN0cmluZywgc28gdGhlIG1hdGNoIGZhaWxz
LgotCi1Bcmd1bWVudHM6Ci0gIG9mZnNldCAgICAgIGluZGV4IGludG8gdGhlIG9mZnNldCB2ZWN0
b3IKLSAgZXB0ciAgICAgICAgcG9pbnRzIGludG8gdGhlIHN1YmplY3QKLSAgbGVuZ3RoICAgICAg
bGVuZ3RoIHRvIGJlIG1hdGNoZWQKLSAgbWQgICAgICAgICAgcG9pbnRzIHRvIG1hdGNoIGRhdGEg
YmxvY2sKLQotUmV0dXJuczogICAgICBUUlVFIGlmIG1hdGNoZWQKLSovCi0KLXN0YXRpYyBCT09M
Ci1tYXRjaF9yZWYoaW50IG9mZnNldCwgcmVnaXN0ZXIgVVNQVFIgZXB0ciwgaW50IGxlbmd0aCwg
bWF0Y2hfZGF0YSAqbWQpCi17Ci1VU1BUUiBwID0gbWQtPnN0YXJ0X3N1YmplY3QgKyBtZC0+b2Zm
c2V0X3ZlY3RvcltvZmZzZXRdOwotCi0jaWZkZWYgREVCVUcKLWlmIChlcHRyID49IG1kLT5lbmRf
c3ViamVjdCkKLSAgcHJpbnRmKCJtYXRjaGluZyBzdWJqZWN0IDxudWxsPiIpOwotZWxzZQotICB7
Ci0gIHByaW50ZigibWF0Y2hpbmcgc3ViamVjdCAiKTsKLSAgcGNoYXJzKGVwdHIsIGxlbmd0aCwg
VFJVRSwgbWQpOwotICB9Ci1wcmludGYoIiBhZ2FpbnN0IGJhY2tyZWYgIik7Ci1wY2hhcnMocCwg
bGVuZ3RoLCBGQUxTRSwgbWQpOwotcHJpbnRmKCJcbiIpOwotI2VuZGlmCi0KLS8qIEFsd2F5cyBm
YWlsIGlmIG5vdCBlbm91Z2ggY2hhcmFjdGVycyBsZWZ0ICovCi0KLWlmIChsZW5ndGggPiBtZC0+
ZW5kX3N1YmplY3QgLSBlcHRyKSByZXR1cm4gRkFMU0U7Ci0KLS8qIFNlcGFyYXRlIHRoZSBjYXNl
bGVzc3MgY2FzZSBmb3Igc3BlZWQgKi8KLQotaWYgKG1kLT5jYXNlbGVzcykKLSAgewotICB3aGls
ZSAobGVuZ3RoLS0gPiAwKQotICAgIHsKLSAgICBwY3JlX3VjaGFyIGMgPSAqcCsrOwotICAgIGlu
dCBvdGhlcmNhc2UgPSBfcGNyZV91Y3Bfb3RoZXJjYXNlKGMpOwotICAgIHBjcmVfdWNoYXIgZCA9
ICplcHRyKys7Ci0gICAgaWYgKGMgIT0gZCAmJiBvdGhlcmNhc2UgIT0gZCkgcmV0dXJuIEZBTFNF
OwotICAgIH0KLSAgfQotZWxzZQotICB7IHdoaWxlIChsZW5ndGgtLSA+IDApIGlmICgqcCsrICE9
ICplcHRyKyspIHJldHVybiBGQUxTRTsgfQotCi1yZXR1cm4gVFJVRTsKLX0KLQotCi0KLS8qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAgICAgICAgICAgICAgICAgICBS
RUNVUlNJT04gSU4gVEhFIG1hdGNoKCkgRlVOQ1RJT04KLQotVGhlIG1hdGNoKCkgZnVuY3Rpb24g
aXMgaGlnaGx5IHJlY3Vyc2l2ZSwgdGhvdWdoIG5vdCBldmVyeSByZWN1cnNpdmUgY2FsbAotaW5j
cmVhc2VzIHRoZSByZWN1cnNpdmUgZGVwdGguIE5ldmVydGhlbGVzcywgc29tZSByZWd1bGFyIGV4
cHJlc3Npb25zIGNhbiBjYXVzZQotaXQgdG8gcmVjdXJzZSB0byBhIGdyZWF0IGRlcHRoLiBJIHdh
cyB3cml0aW5nIGZvciBVbml4LCBzbyBJIGp1c3QgbGV0IGl0IGNhbGwKLWl0c2VsZiByZWN1cnNp
dmVseS4gVGhpcyB1c2VzIHRoZSBzdGFjayBmb3Igc2F2aW5nIGV2ZXJ5dGhpbmcgdGhhdCBoYXMg
dG8gYmUKLXNhdmVkIGZvciBhIHJlY3Vyc2l2ZSBjYWxsLiBPbiBVbml4LCB0aGUgc3RhY2sgY2Fu
IGJlIGxhcmdlLCBhbmQgdGhpcyB3b3JrcwotZmluZS4KLQotSXQgdHVybnMgb3V0IHRoYXQgb24g
c29tZSBub24tVW5peC1saWtlIHN5c3RlbXMgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGgKLXByb2dy
YW1zIHRoYXQgdXNlIGEgbG90IG9mIHN0YWNrLiAoVGhpcyBkZXNwaXRlIHRoZSBmYWN0IHRoYXQg
ZXZlcnkgbGFzdCBjaGlwCi1oYXMgb29kbGVzIG9mIG1lbW9yeSB0aGVzZSBkYXlzLCBhbmQgdGVj
aG5pcXVlcyBmb3IgZXh0ZW5kaW5nIHRoZSBzdGFjayBoYXZlCi1iZWVuIGtub3duIGZvciBkZWNh
ZGVzLikgU28uLi4uCi0KLVRoZXJlIGlzIGEgZnVkZ2UsIHRyaWdnZXJlZCBieSBkZWZpbmluZyBO
T19SRUNVUlNFLCB3aGljaCBhdm9pZHMgcmVjdXJzaXZlCi1jYWxscyBieSBrZWVwaW5nIGxvY2Fs
IHZhcmlhYmxlcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkIGluIGJsb2NrcyBvZiBtZW1vcnkK
LW9idGFpbmVkIGZyb20gbWFsbG9jKCkgaW5zdGVhZCBpbnN0ZWFkIG9mIG9uIHRoZSBzdGFjay4g
TWFjcm9zIGFyZSB1c2VkIHRvCi1hY2hpZXZlIHRoaXMgc28gdGhhdCB0aGUgYWN0dWFsIGNvZGUg
ZG9lc24ndCBsb29rIHZlcnkgZGlmZmVyZW50IHRvIHdoYXQgaXQKLWFsd2F5cyB1c2VkIHRvLgot
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0KLS8qIFRoZXNlIHZl
cnNpb25zIG9mIHRoZSBtYWNyb3MgdXNlIHRoZSBzdGFjaywgYXMgbm9ybWFsLiBUaGVyZSBhcmUg
ZGVidWdnaW5nCi12ZXJzaW9ucyBhbmQgcHJvZHVjdGlvbiB2ZXJzaW9ucy4gKi8KLQotI2lmbmRl
ZiBfX0dOVUNfXwotCi0vKiBVc2UgbnVtYmVyZWQgbGFiZWxzIGFuZCBzd2l0Y2ggc3RhdGVtZW50
IGF0IHRoZSBib3R0b20gb2YgdGhlIG1hdGNoIGZ1bmN0aW9uLiAqLwotCi0jZGVmaW5lIFJNQVRD
SF9XSEVSRShudW0pIG51bQotI2RlZmluZSBSUkVUVVJOX0xBQkVMIFJSRVRVUk5fU1dJVENICi0K
LSNlbHNlCi0KLS8qIFVzZSBHQ0MncyBjb21wdXRlZCBnb3RvIGV4dGVuc2lvbi4gKi8KLQotLyog
Rm9yIG9uZSB0ZXN0IGNhc2UgdGhpcyBpcyBtb3JlIHRoYW4gNDAlIGZhc3RlciB0aGFuIHRoZSBz
d2l0Y2ggc3RhdGVtZW50LgotV2UgY291bGQgYXZvaWQgdGhlIHVzZSBvZiB0aGUgbnVtIGFyZ3Vt
ZW50IGVudGlyZWx5IGJ5IHVzaW5nIGxvY2FsIGxhYmVscywKLWJ1dCB1c2luZyBpdCBmb3IgdGhl
IEdDQyBjYXNlIGFzIHdlbGwgYXMgdGhlIG5vbi1HQ0MgY2FzZSBhbGxvd3MgdXMgdG8gc2hhcmUK
LWEgYml0IG1vcmUgY29kZSBhbmQgbm90aWNlIGlmIHdlIHVzZSBjb25mbGljdGluZyBudW1iZXJz
LiovCi0KLSNkZWZpbmUgUk1BVENIX1dIRVJFKG51bSkgJiZSUkVUVVJOXyMjbnVtCi0jZGVmaW5l
IFJSRVRVUk5fTEFCRUwgKmZyYW1lLT53aGVyZQotCi0jZW5kaWYKLQotCi0jZGVmaW5lIFJNQVRD
SChudW0sIHJhLCByYiwgcmMpXAotICB7XAotICBpZiAoZnJhbWUgPj0gc3RhY2tmcmFtZXMgJiYg
ZnJhbWUgKyAxIDwgc3RhY2tmcmFtZXNlbmQpXAotICAgIG5ld2ZyYW1lID0gZnJhbWUgKyAxO1wK
LSAgZWxzZVwKLSAgICBuZXdmcmFtZSA9IChwY3JlX21hbGxvYykoc2l6ZW9mKG1hdGNoZnJhbWUp
KTtcCi0gIGZyYW1lLT53aGVyZSA9IFJNQVRDSF9XSEVSRShudW0pO1wKLSAgbmV3ZnJhbWUtPmVw
dHIgPSBmcmFtZS0+ZXB0cjtcCi0gIG5ld2ZyYW1lLT5lY29kZSA9IChyYSk7XAotICBuZXdmcmFt
ZS0+b2Zmc2V0X3RvcCA9IGZyYW1lLT5vZmZzZXRfdG9wO1wKLSAgbmV3ZnJhbWUtPmVwdHJiID0g
KHJiKTtcCi0gIGlzX2dyb3VwX3N0YXJ0ID0gKHJjKTtcCi0gICsrcmRlcHRoO1wKLSAgbmV3ZnJh
bWUtPnByZXZmcmFtZSA9IGZyYW1lO1wKLSAgZnJhbWUgPSBuZXdmcmFtZTtcCi0gIERQUklOVEYo
KCJyZXN0YXJ0aW5nIGZyb20gbGluZSAlZFxuIiwgX19MSU5FX18pKTtcCi0gIGdvdG8gSEVBUF9S
RUNVUlNFO1wKLVJSRVRVUk5fIyNudW06XAotICAtLXJkZXB0aDtcCi0gIERQUklOVEYoKCJkaWQg
YSBnb3RvIGJhY2sgdG8gbGluZSAlZFxuIiwgX19MSU5FX18pKTtcCi0gIH0KLQotI2RlZmluZSBS
UkVUVVJOKHJhKVwKLSAge1wKLSAgbmV3ZnJhbWUgPSBmcmFtZTtcCi0gIGZyYW1lID0gbmV3ZnJh
bWUtPnByZXZmcmFtZTtcCi0gIGlmICghKG5ld2ZyYW1lID49IHN0YWNrZnJhbWVzICYmIG5ld2Zy
YW1lIDwgc3RhY2tmcmFtZXNlbmQpKVwKLSAgICAocGNyZV9mcmVlKShuZXdmcmFtZSk7XAotICBp
ZiAoZnJhbWUgIT0gTlVMTClcCi0gICAge1wKLSAgICBycmMgPSAocmEpO1wKLSAgICBnb3RvIFJS
RVRVUk5fTEFCRUw7XAotICAgIH1cCi0gIHJldHVybiByYTtcCi0gIH0KLQotLyogU3RydWN0dXJl
IGZvciByZW1lbWJlcmluZyB0aGUgbG9jYWwgdmFyaWFibGVzIGluIGEgcHJpdmF0ZSBmcmFtZSAq
LwotCi10eXBlZGVmIHN0cnVjdCBtYXRjaGZyYW1lIHsKLSAgc3RydWN0IG1hdGNoZnJhbWUgKnBy
ZXZmcmFtZTsKLQotICAvKiBGdW5jdGlvbiBhcmd1bWVudHMgdGhhdCBtYXkgY2hhbmdlICovCi0K
LSAgY29uc3QgcGNyZV91Y2hhciAqZXB0cjsKLSAgY29uc3QgdXNjaGFyICplY29kZTsKLSAgaW50
IG9mZnNldF90b3A7Ci0gIGVwdHJibG9jayAqZXB0cmI7Ci0KLSAgLyogRnVuY3Rpb24gbG9jYWwg
dmFyaWFibGVzICovCi0KLSAgY29uc3QgdXNjaGFyICpkYXRhOwotICBjb25zdCB1c2NoYXIgKm5l
eHQ7Ci0gIGNvbnN0IHBjcmVfdWNoYXIgKnBwOwotICBjb25zdCB1c2NoYXIgKnByZXY7Ci0gIGNv
bnN0IHBjcmVfdWNoYXIgKnNhdmVkX2VwdHI7Ci0KLSAgaW50IHJlcGVhdF9vdGhlcmNhc2U7Ci0K
LSAgaW50IGN0eXBlOwotICBpbnQgZmM7Ci0gIGludCBmaTsKLSAgaW50IGxlbmd0aDsKLSAgaW50
IG1heDsKLSAgaW50IG51bWJlcjsKLSAgaW50IG9mZnNldDsKLSAgaW50IHNhdmVfb2Zmc2V0MSwg
c2F2ZV9vZmZzZXQyLCBzYXZlX29mZnNldDM7Ci0KLSAgZXB0cmJsb2NrIG5ld3B0cmI7Ci0KLSAg
LyogV2hlcmUgdG8ganVtcCBiYWNrIHRvICovCi0KLSNpZm5kZWYgX19HTlVDX18KLSAgaW50IHdo
ZXJlOwotI2Vsc2UKLSAgdm9pZCAqd2hlcmU7Ci0jZW5kaWYKLQotfSBtYXRjaGZyYW1lOwotCi0K
LS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotCi0KLS8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICAgTWF0
Y2ggZnJvbSBjdXJyZW50IHBvc2l0aW9uICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogT24gZW50cnkgZWNvZGUgcG9p
bnRzIHRvIHRoZSBmaXJzdCBvcGNvZGUsIGFuZCBlcHRyIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIK
LWluIHRoZSBzdWJqZWN0IHN0cmluZywgd2hpbGUgZXB0cmIgaG9sZHMgdGhlIHZhbHVlIG9mIGVw
dHIgYXQgdGhlIHN0YXJ0IG9mIHRoZQotbGFzdCBicmFja2V0ZWQgZ3JvdXAgLSB1c2VkIGZvciBi
cmVha2luZyBpbmZpbml0ZSBsb29wcyBtYXRjaGluZyB6ZXJvLWxlbmd0aAotc3RyaW5ncy4gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgcmVjdXJzaXZlbHkgaW4gbWFueSBjaXJjdW1zdGFuY2VzLiBX
aGVuZXZlciBpdAotcmV0dXJucyBhIG5lZ2F0aXZlIChlcnJvcikgcmVzcG9uc2UsIHRoZSBvdXRl
ciBpbmNhcm5hdGlvbiBtdXN0IGFsc28gcmV0dXJuIHRoZQotc2FtZSByZXNwb25zZS4KLQotQXJn
dW1lbnRzOgotICAgZXB0ciAgICAgICAgcG9pbnRlciBpbiBzdWJqZWN0Ci0gICBlY29kZSAgICAg
ICBwb3NpdGlvbiBpbiBjb2RlCi0gICBvZmZzZXRfdG9wICBjdXJyZW50IHRvcCBwb2ludGVyCi0g
ICBtZCAgICAgICAgICBwb2ludGVyIHRvICJzdGF0aWMiIGluZm8gZm9yIHRoZSBtYXRjaAotCi1S
ZXR1cm5zOiAgICAgICBNQVRDSF9NQVRDSCBpZiBtYXRjaGVkICAgICAgICAgICAgKSAgdGhlc2Ug
dmFsdWVzIGFyZSA+PSAwCi0gICAgICAgICAgICAgICBNQVRDSF9OT01BVENIIGlmIGZhaWxlZCB0
byBtYXRjaCAgKQotICAgICAgICAgICAgICAgYSBuZWdhdGl2ZSBQQ1JFX0VSUk9SX3h4eCB2YWx1
ZSBpZiBhYm9ydGVkIGJ5IGFuIGVycm9yIGNvbmRpdGlvbgotICAgICAgICAgICAgICAgICAoZS5n
LiBzdG9wcGVkIGJ5IHJlcGVhdGVkIGNhbGwgb3IgcmVjdXJzaW9uIGxpbWl0KQotKi8KLQotc3Rh
dGljIGludAotbWF0Y2goVVNQVFIgZXB0ciwgY29uc3QgdXNjaGFyICplY29kZSwgaW50IG9mZnNl
dF90b3AsIG1hdGNoX2RhdGEgKm1kKQotewotLyogVGhlc2UgdmFyaWFibGVzIGRvIG5vdCBuZWVk
IHRvIGJlIHByZXNlcnZlZCBvdmVyIHJlY3Vyc2lvbiBpbiB0aGlzIGZ1bmN0aW9uLAotc28gdGhl
eSBjYW4gYmUgb3JkaW5hcnkgdmFyaWFibGVzIGluIGFsbCBjYXNlcy4gTWFyayB0aGVtIHdpdGgg
InJlZ2lzdGVyIgotYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGEgbG90IGluIGxvb3BzLiAqLwotCi1y
ZWdpc3RlciBpbnQgIHJyYzsgICAgLyogUmV0dXJucyBmcm9tIHJlY3Vyc2l2ZSBjYWxscyAqLwot
cmVnaXN0ZXIgaW50ICBpOyAgICAgIC8qIFVzZWQgZm9yIGxvb3BzIG5vdCBpbnZvbHZpbmcgY2Fs
bHMgdG8gUk1BVENIKCkgKi8KLXJlZ2lzdGVyIGludCAgYzsgICAgICAvKiBDaGFyYWN0ZXIgdmFs
dWVzIG5vdCBrZXB0IG92ZXIgUk1BVENIKCkgY2FsbHMgKi8KLXVuc2lnbmVkIHJkZXB0aCA9IDA7
Ci0KLUJPT0wgY3VyX2lzX3dvcmQ7Ci1CT09MIHByZXZfaXNfd29yZDsKLUJPT0wgaXNfZ3JvdXBf
c3RhcnQgPSBUUlVFOwotaW50IG1pbjsKLUJPT0wgbWluaW1pemUgPSBGQUxTRTsgLyogSW5pdGlh
bGl6YXRpb24gbm90IHJlYWxseSBuZWVkZWQsIGJ1dCBzb21lIGNvbXBpbGVycyB0aGluayBzby4g
Ki8KLQotLyogV2hlbiByZWN1cnNpb24gaXMgbm90IGJlaW5nIHVzZWQsIGFsbCAibG9jYWwiIHZh
cmlhYmxlcyB0aGF0IGhhdmUgdG8gYmUKLXByZXNlcnZlZCBvdmVyIGNhbGxzIHRvIFJNQVRDSCgp
IGFyZSBwYXJ0IG9mIGEgImZyYW1lIiB3aGljaCBpcyBvYnRhaW5lZCBmcm9tCi1oZWFwIHN0b3Jh
Z2UuIFNldCB1cCB0aGUgdG9wLWxldmVsIGZyYW1lIGhlcmU7IG90aGVycyBhcmUgb2J0YWluZWQg
ZnJvbSB0aGUKLWhlYXAgd2hlbmV2ZXIgUk1BVENIKCkgZG9lcyBhICJyZWN1cnNpb24iLiBTZWUg
dGhlIG1hY3JvIGRlZmluaXRpb25zIGFib3ZlLiAqLwotCi0vKiBUaGUgdmFsdWUgMTYgaGVyZSBp
cyBsYXJnZSBlbm91Z2ggdGhhdCBtb3N0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZG9uJ3QgcmVxdWly
ZQotYW55IGNhbGxzIHRvIHBjcmVfc3RhY2tfbWFsbG9jLCB5ZXQgdGhlIGFtb3VudCBvZiBzdGFj
ayB1c2VkIGZvciB0aGUgYXJyYXkgaXMKLW1vZGVzdCBlbm91Z2ggdGhhdCB3ZSBkb24ndCBydW4g
b3V0IG9mIHN0YWNrLiAqLwotbWF0Y2hmcmFtZSBzdGFja2ZyYW1lc1sxNl07Ci1tYXRjaGZyYW1l
ICpzdGFja2ZyYW1lc2VuZCA9IHN0YWNrZnJhbWVzICsgc2l6ZW9mKHN0YWNrZnJhbWVzKSAvIHNp
emVvZihzdGFja2ZyYW1lc1swXSk7Ci0KLW1hdGNoZnJhbWUgKmZyYW1lID0gc3RhY2tmcmFtZXM7
Ci1tYXRjaGZyYW1lICpuZXdmcmFtZTsKLWZyYW1lLT5wcmV2ZnJhbWUgPSBOVUxMOyAgICAgICAg
ICAgIC8qIE1hcmtzIHRoZSB0b3AgbGV2ZWwgKi8KLQotLyogQ29weSBpbiB0aGUgb3JpZ2luYWwg
YXJndW1lbnQgdmFyaWFibGVzICovCi0KLWZyYW1lLT5lcHRyID0gZXB0cjsKLWZyYW1lLT5lY29k
ZSA9IGVjb2RlOwotZnJhbWUtPm9mZnNldF90b3AgPSBvZmZzZXRfdG9wOwotZnJhbWUtPmVwdHJi
ID0gTlVMTDsKLQotLyogVGhpcyBpcyB3aGVyZSBjb250cm9sIGp1bXBzIGJhY2sgdG8gdG8gZWZm
ZWN0ICJyZWN1cnNpb24iICovCi0KLUhFQVBfUkVDVVJTRToKLQotLyogT0ssIG5vdyB3ZSBjYW4g
Z2V0IG9uIHdpdGggdGhlIHJlYWwgY29kZSBvZiB0aGUgZnVuY3Rpb24uIFJlY3Vyc2l2ZSBjYWxs
cwotYXJlIHNwZWNpZmllZCBieSB0aGUgbWFjcm8gUk1BVENIIGFuZCBSUkVUVVJOIGlzIHVzZWQg
dG8gcmV0dXJuLiBXaGVuCi1OT19SRUNVUlNFIGlzICpub3QqIGRlZmluZWQsIHRoZXNlIGp1c3Qg
dHVybiBpbnRvIGEgcmVjdXJzaXZlIGNhbGwgdG8gbWF0Y2goKQotYW5kIGEgInJldHVybiIsIHJl
c3BlY3RpdmVseSAocG9zc2libHkgd2l0aCBzb21lIGRlYnVnZ2luZyBpZiBERUJVRyBpcwotZGVm
aW5lZCkuIEhvd2V2ZXIsIFJNQVRDSCBpc24ndCBsaWtlIGEgZnVuY3Rpb24gY2FsbCBiZWNhdXNl
IGl0J3MgcXVpdGUgYQotY29tcGxpY2F0ZWQgbWFjcm8uIEl0IGhhcyB0byBiZSB1c2VkIGluIG9u
ZSBwYXJ0aWN1bGFyIHdheS4gVGhpcyBzaG91bGRuJ3QsCi1ob3dldmVyLCBpbXBhY3QgcGVyZm9y
bWFuY2Ugd2hlbiB0cnVlIHJlY3Vyc2lvbiBpcyBiZWluZyB1c2VkLiAqLwotCi0vKiBGaXJzdCBj
aGVjayB0aGF0IHdlIGhhdmVuJ3QgY2FsbGVkIG1hdGNoKCkgdG9vIG1hbnkgdGltZXMsIG9yIHRo
YXQgd2UKLWhhdmVuJ3QgZXhjZWVkZWQgdGhlIHJlY3Vyc2l2ZSBjYWxsIGxpbWl0LiAqLwotCi1p
ZiAobWQtPm1hdGNoX2NhbGxfY291bnQrKyA+PSBNQVRDSF9MSU1JVCkgUlJFVFVSTihKU19SRUdF
WFBfRVJST1JfTUFUQ0hMSU1JVCk7Ci1pZiAocmRlcHRoID49IE1BVENIX0xJTUlUX1JFQ1VSU0lP
TikgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfUkVDVVJTSU9OTElNSVQpOwotCi0vKiBBdCB0aGUg
c3RhcnQgb2YgYSBicmFja2V0ZWQgZ3JvdXAsIGFkZCB0aGUgY3VycmVudCBzdWJqZWN0IHBvaW50
ZXIgdG8gdGhlCi1zdGFjayBvZiBzdWNoIHBvaW50ZXJzLCB0byBiZSByZS1pbnN0YXRlZCBhdCB0
aGUgZW5kIG9mIHRoZSBncm91cCB3aGVuIHdlIGhpdAotdGhlIGNsb3Npbmcga2V0LiBXaGVuIG1h
dGNoKCkgaXMgY2FsbGVkIGluIG90aGVyIGNpcmN1bXN0YW5jZXMsIHdlIGRvbid0IGFkZCB0bwot
dGhpcyBzdGFjay4gKi8KLQotaWYgKGlzX2dyb3VwX3N0YXJ0KQotICB7Ci0gIGZyYW1lLT5uZXdw
dHJiLmVwYl9wcmV2ID0gZnJhbWUtPmVwdHJiOwotICBmcmFtZS0+bmV3cHRyYi5lcGJfc2F2ZWRf
ZXB0ciA9IGZyYW1lLT5lcHRyOwotICBmcmFtZS0+ZXB0cmIgPSAmZnJhbWUtPm5ld3B0cmI7Ci0g
IH0KLQotLyogTm93IHN0YXJ0IHByb2Nlc3NpbmcgdGhlIG9wZXJhdGlvbnMuICovCi0KLWZvciAo
OzspCi0gIHsKLSAgc3dpdGNoICgqZnJhbWUtPmVjb2RlKQotICAgIHsKLSAgICBjYXNlIE9QX0JS
QTogICAgIC8qIE5vbi1jYXB0dXJpbmcgYnJhY2tldDogb3B0aW1pemVkICovCi0gICAgTk9OX0NB
UFRVUklOR19CUkFDS0VUOgotICAgIERQUklOVEYoKCJzdGFydCBicmFja2V0IDBcbiIpKTsKLSAg
ICBkbwotICAgICAgewotICAgICAgUk1BVENIKDIsIGZyYW1lLT5lY29kZSArIDEgKyBMSU5LX1NJ
WkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0gICAgICBpZiAocnJjICE9IE1BVENI
X05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgIGZyYW1lLT5lY29kZSArPSBHRVQoZnJhbWUt
PmVjb2RlLCAxKTsKLSAgICAgIH0KLSAgICB3aGlsZSAoKmZyYW1lLT5lY29kZSA9PSBPUF9BTFQp
OwotICAgIERQUklOVEYoKCJicmFja2V0IDAgZmFpbGVkXG4iKSk7Ci0gICAgUlJFVFVSTihNQVRD
SF9OT01BVENIKTsKLQotICAgIC8qIEVuZCBvZiB0aGUgcGF0dGVybi4gKi8KLQotICAgIGNhc2Ug
T1BfRU5EOgotICAgIG1kLT5lbmRfbWF0Y2hfcHRyID0gZnJhbWUtPmVwdHI7ICAgICAgICAgIC8q
IFJlY29yZCB3aGVyZSB3ZSBlbmRlZCAqLwotICAgIG1kLT5lbmRfb2Zmc2V0X3RvcCA9IGZyYW1l
LT5vZmZzZXRfdG9wOyAgIC8qIGFuZCBob3cgbWFueSBleHRyYWN0cyB3ZXJlIHRha2VuICovCi0g
ICAgUlJFVFVSTihNQVRDSF9NQVRDSCk7Ci0KLSAgICAvKiBBc3NlcnRpb24gYnJhY2tldHMuIENo
ZWNrIHRoZSBhbHRlcm5hdGl2ZSBicmFuY2hlcyBpbiB0dXJuIC0gdGhlCi0gICAgbWF0Y2hpbmcg
d29uJ3QgcGFzcyB0aGUgS0VUIGZvciBhbiBhc3NlcnRpb24uIElmIGFueSBvbmUgYnJhbmNoIG1h
dGNoZXMsCi0gICAgdGhlIGFzc2VydGlvbiBpcyB0cnVlLiBMb29rYmVoaW5kIGFzc2VydGlvbnMg
aGF2ZSBhbiBPUF9SRVZFUlNFIGl0ZW0gYXQgdGhlCi0gICAgc3RhcnQgb2YgZWFjaCBicmFuY2gg
dG8gbW92ZSB0aGUgY3VycmVudCBwb2ludCBiYWNrd2FyZHMsIHNvIHRoZSBjb2RlIGF0Ci0gICAg
dGhpcyBsZXZlbCBpcyBpZGVudGljYWwgdG8gdGhlIGxvb2thaGVhZCBjYXNlLiAqLwotCi0gICAg
Y2FzZSBPUF9BU1NFUlQ6Ci0gICAgZG8KLSAgICAgIHsKLSAgICAgIFJNQVRDSCg2LCBmcmFtZS0+
ZWNvZGUgKyAxICsgTElOS19TSVpFLCBOVUxMLCBtYXRjaF9pc2dyb3VwKTsKLSAgICAgIGlmIChy
cmMgPT0gTUFUQ0hfTUFUQ0gpIGJyZWFrOwotICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENI
KSBSUkVUVVJOKHJyYyk7Ci0gICAgICBmcmFtZS0+ZWNvZGUgKz0gR0VUKGZyYW1lLT5lY29kZSwg
MSk7Ci0gICAgICB9Ci0gICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUgPT0gT1BfQUxUKTsKLSAgICBp
ZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9LRVQpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0KLSAg
ICAvKiBDb250aW51ZSBmcm9tIGFmdGVyIHRoZSBhc3NlcnRpb24sIHVwZGF0aW5nIHRoZSBvZmZz
ZXRzIGhpZ2ggd2F0ZXIKLSAgICBtYXJrLCBzaW5jZSBleHRyYWN0cyBtYXkgaGF2ZSBiZWVuIHRh
a2VuIGR1cmluZyB0aGUgYXNzZXJ0aW9uLiAqLwotCi0gICAgZG8gZnJhbWUtPmVjb2RlICs9IEdF
VChmcmFtZS0+ZWNvZGUsMSk7IHdoaWxlICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7Ci0gICAg
ZnJhbWUtPmVjb2RlICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgZnJhbWUtPm9mZnNldF90b3AgPSBt
ZC0+ZW5kX29mZnNldF90b3A7Ci0gICAgY29udGludWU7Ci0KLSAgICAvKiBOZWdhdGl2ZSBhc3Nl
cnRpb246IGFsbCBicmFuY2hlcyBtdXN0IGZhaWwgdG8gbWF0Y2ggKi8KLQotICAgIGNhc2UgT1Bf
QVNTRVJUX05PVDoKLSAgICBkbwotICAgICAgewotICAgICAgUk1BVENIKDcsIGZyYW1lLT5lY29k
ZSArIDEgKyBMSU5LX1NJWkUsIE5VTEwsIG1hdGNoX2lzZ3JvdXApOwotICAgICAgaWYgKHJyYyA9
PSBNQVRDSF9NQVRDSCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgIGlmIChycmMgIT0g
TUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgZnJhbWUtPmVjb2RlICs9IEdFVChm
cmFtZS0+ZWNvZGUsMSk7Ci0gICAgICB9Ci0gICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUgPT0gT1Bf
QUxUKTsKLQotICAgIGZyYW1lLT5lY29kZSArPSAxICsgTElOS19TSVpFOwotICAgIGNvbnRpbnVl
OwotCi0gICAgLyogIk9uY2UiIGJyYWNrZXRzIGFyZSBsaWtlIGFzc2VydGlvbiBicmFja2V0cyBl
eGNlcHQgdGhhdCBhZnRlciBhIG1hdGNoLAotICAgIHRoZSBwb2ludCBpbiB0aGUgc3ViamVjdCBz
dHJpbmcgaXMgbm90IG1vdmVkIGJhY2suIFRodXMgdGhlcmUgY2FuIG5ldmVyIGJlCi0gICAgYSBt
b3ZlIGJhY2sgaW50byB0aGUgYnJhY2tldHMuIEZyaWVkbCBjYWxscyB0aGVzZSAiYXRvbWljIiBz
dWJwYXR0ZXJucy4KLSAgICBDaGVjayB0aGUgYWx0ZXJuYXRpdmUgYnJhbmNoZXMgaW4gdHVybiAt
IHRoZSBtYXRjaGluZyB3b24ndCBwYXNzIHRoZSBLRVQKLSAgICBmb3IgdGhpcyBraW5kIG9mIHN1
YnBhdHRlcm4uIElmIGFueSBvbmUgYnJhbmNoIG1hdGNoZXMsIHdlIGNhcnJ5IG9uIGFzIGF0Ci0g
ICAgdGhlIGVuZCBvZiBhIG5vcm1hbCBicmFja2V0LCBsZWF2aW5nIHRoZSBzdWJqZWN0IHBvaW50
ZXIuICovCi0KLSAgICBjYXNlIE9QX09OQ0U6Ci0gICAgICB7Ci0gICAgICBmcmFtZS0+cHJldiA9
IGZyYW1lLT5lY29kZTsKLSAgICAgIGZyYW1lLT5zYXZlZF9lcHRyID0gZnJhbWUtPmVwdHI7Ci0K
LSAgICAgIGRvCi0gICAgICAgIHsKLSAgICAgICAgUk1BVENIKDksIGZyYW1lLT5lY29kZSArIDEg
KyBMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0gICAgICAgIGlmIChy
cmMgPT0gTUFUQ0hfTUFUQ0gpIGJyZWFrOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFU
Q0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNv
ZGUsMSk7Ci0gICAgICAgIH0KLSAgICAgIHdoaWxlICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7
Ci0KLSAgICAgIC8qIElmIGhpdCB0aGUgZW5kIG9mIHRoZSBncm91cCAod2hpY2ggY291bGQgYmUg
cmVwZWF0ZWQpLCBmYWlsICovCi0KLSAgICAgIGlmICgqZnJhbWUtPmVjb2RlICE9IE9QX09OQ0Ug
JiYgKmZyYW1lLT5lY29kZSAhPSBPUF9BTFQpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0KLSAg
ICAgIC8qIENvbnRpbnVlIGFzIGZyb20gYWZ0ZXIgdGhlIGFzc2VydGlvbiwgdXBkYXRpbmcgdGhl
IG9mZnNldHMgaGlnaCB3YXRlcgotICAgICAgbWFyaywgc2luY2UgZXh0cmFjdHMgbWF5IGhhdmUg
YmVlbiB0YWtlbi4gKi8KLQotICAgICAgZG8gZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNv
ZGUsMSk7IHdoaWxlICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7Ci0KLSAgICAgIGZyYW1lLT5v
ZmZzZXRfdG9wID0gbWQtPmVuZF9vZmZzZXRfdG9wOwotICAgICAgZnJhbWUtPmVwdHIgPSBtZC0+
ZW5kX21hdGNoX3B0cjsKLQotICAgICAgLyogRm9yIGEgbm9uLXJlcGVhdGluZyBrZXQsIGp1c3Qg
Y29udGludWUgYXQgdGhpcyBsZXZlbC4gVGhpcyBhbHNvCi0gICAgICBoYXBwZW5zIGZvciBhIHJl
cGVhdGluZyBrZXQgaWYgbm8gY2hhcmFjdGVycyB3ZXJlIG1hdGNoZWQgaW4gdGhlIGdyb3VwLgot
ICAgICAgVGhpcyBpcyB0aGUgZm9yY2libGUgYnJlYWtpbmcgb2YgaW5maW5pdGUgbG9vcHMgYXMg
aW1wbGVtZW50ZWQgaW4gUGVybAotICAgICAgNS4wMDUuIElmIHRoZXJlIGlzIGFuIG9wdGlvbnMg
cmVzZXQsIGl0IHdpbGwgZ2V0IG9iZXllZCBpbiB0aGUgbm9ybWFsCi0gICAgICBjb3Vyc2Ugb2Yg
ZXZlbnRzLiAqLwotCi0gICAgICBpZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9LRVQgfHwgZnJhbWUt
PmVwdHIgPT0gZnJhbWUtPnNhdmVkX2VwdHIpCi0gICAgICAgIHsKLSAgICAgICAgZnJhbWUtPmVj
b2RlICs9IDErTElOS19TSVpFOwotICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAv
KiBUaGUgcmVwZWF0aW5nIGtldHMgdHJ5IHRoZSByZXN0IG9mIHRoZSBwYXR0ZXJuIG9yIHJlc3Rh
cnQgZnJvbSB0aGUKLSAgICAgIHByZWNlZGluZyBicmFja2V0LCBpbiB0aGUgYXBwcm9wcmlhdGUg
b3JkZXIuIFdlIG5lZWQgdG8gcmVzZXQgYW55IG9wdGlvbnMKLSAgICAgIHRoYXQgY2hhbmdlZCB3
aXRoaW4gdGhlIGJyYWNrZXQgYmVmb3JlIHJlLXJ1bm5pbmcgaXQsIHNvIGNoZWNrIHRoZSBuZXh0
Ci0gICAgICBvcGNvZGUuICovCi0KLSAgICAgIGlmICgqZnJhbWUtPmVjb2RlID09IE9QX0tFVFJN
SU4pCi0gICAgICAgIHsKLSAgICAgICAgUk1BVENIKDEwLCBmcmFtZS0+ZWNvZGUgKyAxICsgTElO
S19TSVpFLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFU
Q0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgUk1BVENIKDExLCBmcmFtZS0+cHJldiwgZnJhbWUt
PmVwdHJiLCBtYXRjaF9pc2dyb3VwKTsKLSAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENI
KSBSUkVUVVJOKHJyYyk7Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgIC8qIE9QX0tFVFJNQVggKi8K
LSAgICAgICAgewotICAgICAgICBSTUFUQ0goMTIsIGZyYW1lLT5wcmV2LCBmcmFtZS0+ZXB0cmIs
IG1hdGNoX2lzZ3JvdXApOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRV
Uk4ocnJjKTsKLSAgICAgICAgUk1BVENIKDEzLCBmcmFtZS0+ZWNvZGUgKyAxK0xJTktfU0laRSwg
ZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVU
VVJOKHJyYyk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gp
OwotCi0gICAgLyogQW4gYWx0ZXJuYXRpb24gaXMgdGhlIGVuZCBvZiBhIGJyYW5jaDsgc2NhbiBh
bG9uZyB0byBmaW5kIHRoZSBlbmQgb2YgdGhlCi0gICAgYnJhY2tldGVkIGdyb3VwIGFuZCBnbyB0
byB0aGVyZS4gKi8KLQotICAgIGNhc2UgT1BfQUxUOgotICAgIGRvIGZyYW1lLT5lY29kZSArPSBH
RVQoZnJhbWUtPmVjb2RlLDEpOyB3aGlsZSAoKmZyYW1lLT5lY29kZSA9PSBPUF9BTFQpOwotICAg
IGJyZWFrOwotCi0gICAgLyogQlJBWkVSTyBhbmQgQlJBTUlOWkVSTyBvY2N1ciBqdXN0IGJlZm9y
ZSBhIGJyYWNrZXQgZ3JvdXAsIGluZGljYXRpbmcKLSAgICB0aGF0IGl0IG1heSBvY2N1ciB6ZXJv
IHRpbWVzLiBJdCBtYXkgcmVwZWF0IGluZmluaXRlbHksIG9yIG5vdCBhdCBhbGwgLQotICAgIGku
ZS4gaXQgY291bGQgYmUgKCkqIG9yICgpPyBpbiB0aGUgcGF0dGVybi4gQnJhY2tldHMgd2l0aCBm
aXhlZCB1cHBlcgotICAgIHJlcGVhdCBsaW1pdHMgYXJlIGNvbXBpbGVkIGFzIGEgbnVtYmVyIG9m
IGNvcGllcywgd2l0aCB0aGUgb3B0aW9uYWwgb25lcwotICAgIHByZWNlZGVkIGJ5IEJSQVpFUk8g
b3IgQlJBTUlOWkVSTy4gKi8KLQotICAgIGNhc2UgT1BfQlJBWkVSTzoKLSAgICAgIHsKLSAgICAg
IGZyYW1lLT5uZXh0ID0gZnJhbWUtPmVjb2RlKzE7Ci0gICAgICBSTUFUQ0goMTQsIGZyYW1lLT5u
ZXh0LCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXApOwotICAgICAgaWYgKHJyYyAhPSBNQVRD
SF9OT01BVENIKSBSUkVUVVJOKHJyYyk7Ci0gICAgICBkbyBmcmFtZS0+bmV4dCArPSBHRVQoZnJh
bWUtPm5leHQsMSk7IHdoaWxlICgqZnJhbWUtPm5leHQgPT0gT1BfQUxUKTsKLSAgICAgIGZyYW1l
LT5lY29kZSA9IGZyYW1lLT5uZXh0ICsgMStMSU5LX1NJWkU7Ci0gICAgICB9Ci0gICAgYnJlYWs7
Ci0KLSAgICBjYXNlIE9QX0JSQU1JTlpFUk86Ci0gICAgICB7Ci0gICAgICBmcmFtZS0+bmV4dCA9
IGZyYW1lLT5lY29kZSsxOwotICAgICAgZG8gZnJhbWUtPm5leHQgKz0gR0VUKGZyYW1lLT5uZXh0
LDEpOyB3aGlsZSAoKmZyYW1lLT5uZXh0ID09IE9QX0FMVCk7Ci0gICAgICBSTUFUQ0goMTUsIGZy
YW1lLT5uZXh0ICsgMStMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0g
ICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgIGZyYW1l
LT5lY29kZSsrOwotICAgICAgfQotICAgIGJyZWFrOwotCi0gICAgLyogRW5kIG9mIGEgZ3JvdXAs
IHJlcGVhdGVkIG9yIG5vbi1yZXBlYXRpbmcuIElmIHdlIGFyZSBhdCB0aGUgZW5kIG9mCi0gICAg
YW4gYXNzZXJ0aW9uICJncm91cCIsIHN0b3AgbWF0Y2hpbmcgYW5kIHJldHVybiBNQVRDSF9NQVRD
SCwgYnV0IHJlY29yZCB0aGUKLSAgICBjdXJyZW50IGhpZ2ggd2F0ZXIgbWFyayBmb3IgdXNlIGJ5
IHBvc2l0aXZlIGFzc2VydGlvbnMuIERvIHRoaXMgYWxzbwotICAgIGZvciB0aGUgIm9uY2UiIChu
b3QtYmFja3VwIHVwKSBncm91cHMuICovCi0KLSAgICBjYXNlIE9QX0tFVDoKLSAgICBjYXNlIE9Q
X0tFVFJNSU46Ci0gICAgY2FzZSBPUF9LRVRSTUFYOgotICAgICAgewotICAgICAgZnJhbWUtPnBy
ZXYgPSBmcmFtZS0+ZWNvZGUgLSBHRVQoZnJhbWUtPmVjb2RlLCAxKTsKLSAgICAgIGZyYW1lLT5z
YXZlZF9lcHRyID0gZnJhbWUtPmVwdHJiLT5lcGJfc2F2ZWRfZXB0cjsKLQotICAgICAgLyogQmFj
ayB1cCB0aGUgc3RhY2sgb2YgYnJhY2tldCBzdGFydCBwb2ludGVycy4gKi8KLQotICAgICAgZnJh
bWUtPmVwdHJiID0gZnJhbWUtPmVwdHJiLT5lcGJfcHJldjsKLQotICAgICAgaWYgKCpmcmFtZS0+
cHJldiA9PSBPUF9BU1NFUlQgfHwgKmZyYW1lLT5wcmV2ID09IE9QX0FTU0VSVF9OT1QgfHwgKmZy
YW1lLT5wcmV2ID09IE9QX09OQ0UpCi0gICAgICAgIHsKLSAgICAgICAgbWQtPmVuZF9tYXRjaF9w
dHIgPSBmcmFtZS0+ZXB0cjsgICAgICAvKiBGb3IgT05DRSAqLwotICAgICAgICBtZC0+ZW5kX29m
ZnNldF90b3AgPSBmcmFtZS0+b2Zmc2V0X3RvcDsKLSAgICAgICAgUlJFVFVSTihNQVRDSF9NQVRD
SCk7Ci0gICAgICAgIH0KLQotICAgICAgLyogSW4gYWxsIG90aGVyIGNhc2VzIGV4Y2VwdCBhIGNv
bmRpdGlvbmFsIGdyb3VwIHdlIGhhdmUgdG8gY2hlY2sgdGhlCi0gICAgICBncm91cCBudW1iZXIg
YmFjayBhdCB0aGUgc3RhcnQgYW5kIGlmIG5lY2Vzc2FyeSBjb21wbGV0ZSBoYW5kbGluZyBhbgot
ICAgICAgZXh0cmFjdGlvbiBieSBzZXR0aW5nIHRoZSBvZmZzZXRzIGFuZCBidW1waW5nIHRoZSBo
aWdoIHdhdGVyIG1hcmsuICovCi0KLSAgICAgICAgewotICAgICAgICBmcmFtZS0+bnVtYmVyID0g
KmZyYW1lLT5wcmV2IC0gT1BfQlJBOwotCi0gICAgICAgIC8qIEZvciBleHRlbmRlZCBleHRyYWN0
aW9uIGJyYWNrZXRzIChsYXJnZSBudW1iZXIpLCB3ZSBoYXZlIHRvIGZpc2ggb3V0Ci0gICAgICAg
IHRoZSBudW1iZXIgZnJvbSBhIGR1bW15IG9wY29kZSBhdCB0aGUgc3RhcnQuICovCi0KLSAgICAg
ICAgaWYgKGZyYW1lLT5udW1iZXIgPiBFWFRSQUNUX0JBU0lDX01BWCkgZnJhbWUtPm51bWJlciA9
IEdFVDIoZnJhbWUtPnByZXYsIDIrTElOS19TSVpFKTsKLSAgICAgICAgZnJhbWUtPm9mZnNldCA9
IGZyYW1lLT5udW1iZXIgPDwgMTsKLQotI2lmZGVmIERFQlVHCi0gICAgICAgIHByaW50ZigiZW5k
IGJyYWNrZXQgJWQiLCBmcmFtZS0+bnVtYmVyKTsKLSAgICAgICAgcHJpbnRmKCJcbiIpOwotI2Vu
ZGlmCi0KLSAgICAgICAgLyogVGVzdCBmb3IgYSBudW1iZXJlZCBncm91cC4gVGhpcyBpbmNsdWRl
cyBncm91cHMgY2FsbGVkIGFzIGEgcmVzdWx0Ci0gICAgICAgIG9mIHJlY3Vyc2lvbi4gTm90ZSB0
aGF0IHdob2xlLXBhdHRlcm4gcmVjdXJzaW9uIGlzIGNvZGVkIGFzIGEgcmVjdXJzZQotICAgICAg
ICBpbnRvIGdyb3VwIDAsIHNvIGl0IHdvbid0IGJlIHBpY2tlZCB1cCBoZXJlLiBJbnN0ZWFkLCB3
ZSBjYXRjaCBpdCB3aGVuCi0gICAgICAgIHRoZSBPUF9FTkQgaXMgcmVhY2hlZC4gKi8KLQotICAg
ICAgICBpZiAoZnJhbWUtPm51bWJlciA+IDApCi0gICAgICAgICAgewotICAgICAgICAgIGlmIChm
cmFtZS0+b2Zmc2V0ID49IG1kLT5vZmZzZXRfbWF4KSBtZC0+b2Zmc2V0X292ZXJmbG93ID0gVFJV
RTsgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgbWQtPm9mZnNldF92ZWN0b3JbZnJh
bWUtPm9mZnNldF0gPQotICAgICAgICAgICAgICBtZC0+b2Zmc2V0X3ZlY3RvclttZC0+b2Zmc2V0
X2VuZCAtIGZyYW1lLT5udW1iZXJdOwotICAgICAgICAgICAgbWQtPm9mZnNldF92ZWN0b3JbZnJh
bWUtPm9mZnNldCsxXSA9IGZyYW1lLT5lcHRyIC0gbWQtPnN0YXJ0X3N1YmplY3Q7Ci0gICAgICAg
ICAgICBpZiAoZnJhbWUtPm9mZnNldF90b3AgPD0gZnJhbWUtPm9mZnNldCkgZnJhbWUtPm9mZnNl
dF90b3AgPSBmcmFtZS0+b2Zmc2V0ICsgMjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgLyogRm9yIGEgbm9uLXJlcGVhdGluZyBrZXQsIGp1c3QgY29udGlu
dWUgYXQgdGhpcyBsZXZlbC4gVGhpcyBhbHNvCi0gICAgICBoYXBwZW5zIGZvciBhIHJlcGVhdGlu
ZyBrZXQgaWYgbm8gY2hhcmFjdGVycyB3ZXJlIG1hdGNoZWQgaW4gdGhlIGdyb3VwLgotICAgICAg
VGhpcyBpcyB0aGUgZm9yY2libGUgYnJlYWtpbmcgb2YgaW5maW5pdGUgbG9vcHMgYXMgaW1wbGVt
ZW50ZWQgaW4gUGVybAotICAgICAgNS4wMDUuIElmIHRoZXJlIGlzIGFuIG9wdGlvbnMgcmVzZXQs
IGl0IHdpbGwgZ2V0IG9iZXllZCBpbiB0aGUgbm9ybWFsCi0gICAgICBjb3Vyc2Ugb2YgZXZlbnRz
LiAqLwotCi0gICAgICBpZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9LRVQgfHwgZnJhbWUtPmVwdHIg
PT0gZnJhbWUtPnNhdmVkX2VwdHIpCi0gICAgICAgIHsKLSAgICAgICAgZnJhbWUtPmVjb2RlICs9
IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgIC8qIFRo
ZSByZXBlYXRpbmcga2V0cyB0cnkgdGhlIHJlc3Qgb2YgdGhlIHBhdHRlcm4gb3IgcmVzdGFydCBm
cm9tIHRoZQotICAgICAgcHJlY2VkaW5nIGJyYWNrZXQsIGluIHRoZSBhcHByb3ByaWF0ZSBvcmRl
ci4gKi8KLQotICAgICAgaWYgKCpmcmFtZS0+ZWNvZGUgPT0gT1BfS0VUUk1JTikKLSAgICAgICAg
ewotICAgICAgICBSTUFUQ0goMTYsIGZyYW1lLT5lY29kZSArIDErTElOS19TSVpFLCBmcmFtZS0+
ZXB0cmIsIDApOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKLSAgICAgICAgUk1BVENIKDE3LCBmcmFtZS0+cHJldiwgZnJhbWUtPmVwdHJiLCBtYXRjaF9p
c2dyb3VwKTsKLSAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7
Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgIC8qIE9QX0tFVFJNQVggKi8KLSAgICAgICAgewotICAg
ICAgICBSTUFUQ0goMTgsIGZyYW1lLT5wcmV2LCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXAp
OwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAg
ICAgUk1BVENIKDE5LCBmcmFtZS0+ZWNvZGUgKyAxK0xJTktfU0laRSwgZnJhbWUtPmVwdHJiLCAw
KTsKLSAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7Ci0gICAg
ICAgIH0KLSAgICAgIH0KLQotICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0KLSAgICAvKiBT
dGFydCBvZiBzdWJqZWN0IHVubGVzcyBub3Rib2wsIG9yIGFmdGVyIGludGVybmFsIG5ld2xpbmUg
aWYgbXVsdGlsaW5lICovCi0KLSAgICBjYXNlIE9QX0NJUkM6Ci0gICAgaWYgKG1kLT5tdWx0aWxp
bmUpCi0gICAgICB7Ci0gICAgICBpZiAoZnJhbWUtPmVwdHIgIT0gbWQtPnN0YXJ0X3N1YmplY3Qg
JiYgIUlTX05FV0xJTkUoZnJhbWUtPmVwdHJbLTFdKSkKLSAgICAgICAgUlJFVFVSTihNQVRDSF9O
T01BVENIKTsKLSAgICAgIGZyYW1lLT5lY29kZSsrOwotICAgICAgYnJlYWs7Ci0gICAgICB9Ci0g
ICAgaWYgKGZyYW1lLT5lcHRyICE9IG1kLT5zdGFydF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOwotICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJyZWFrOwotCi0gICAgLyogQXNzZXJ0
IGJlZm9yZSBpbnRlcm5hbCBuZXdsaW5lIGlmIG11bHRpbGluZSwgb3IgYmVmb3JlIGEgdGVybWlu
YXRpbmcKLSAgICBuZXdsaW5lIHVubGVzcyBlbmRvbmx5IGlzIHNldCwgZWxzZSBlbmQgb2Ygc3Vi
amVjdCB1bmxlc3Mgbm90ZW9sIGlzIHNldC4gKi8KLQotICAgIGNhc2UgT1BfRE9MTDoKLSAgICBp
ZiAobWQtPm11bHRpbGluZSkKLSAgICAgIHsKLSAgICAgIGlmIChmcmFtZS0+ZXB0ciA8IG1kLT5l
bmRfc3ViamVjdCkKLSAgICAgICAgeyBpZiAoIUlTX05FV0xJTkUoKmZyYW1lLT5lcHRyKSkgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsgfQotICAgICAgZnJhbWUtPmVjb2RlKys7Ci0gICAgICBicmVh
azsKLSAgICAgIH0KLSAgICBlbHNlCi0gICAgICB7Ci0gICAgICBpZiAoZnJhbWUtPmVwdHIgPCBt
ZC0+ZW5kX3N1YmplY3QgLSAxIHx8Ci0gICAgICAgICAoZnJhbWUtPmVwdHIgPT0gbWQtPmVuZF9z
dWJqZWN0IC0gMSAmJiAhSVNfTkVXTElORSgqZnJhbWUtPmVwdHIpKSkKLSAgICAgICAgUlJFVFVS
TihNQVRDSF9OT01BVENIKTsKLSAgICAgIGZyYW1lLT5lY29kZSsrOwotICAgICAgYnJlYWs7Ci0g
ICAgICB9Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBXb3JkIGJvdW5kYXJ5IGFzc2VydGlvbnMgKi8K
LQotICAgIGNhc2UgT1BfTk9UX1dPUkRfQk9VTkRBUlk6Ci0gICAgY2FzZSBPUF9XT1JEX0JPVU5E
QVJZOgotICAgICAgewotICAgICAgLyogRmluZCBvdXQgaWYgdGhlIHByZXZpb3VzIGFuZCBjdXJy
ZW50IGNoYXJhY3RlcnMgYXJlICJ3b3JkIiBjaGFyYWN0ZXJzLgotICAgICAgSXQgdGFrZXMgYSBi
aXQgbW9yZSB3b3JrIGluIFVURi04IG1vZGUuIENoYXJhY3RlcnMgPiAxMjggYXJlIGFzc3VtZWQg
dG8KLSAgICAgIGJlICJub24td29yZCIgY2hhcmFjdGVycy4gKi8KLQotICAgICAgICB7Ci0gICAg
ICAgIGlmIChmcmFtZS0+ZXB0ciA9PSBtZC0+c3RhcnRfc3ViamVjdCkgcHJldl9pc193b3JkID0g
RkFMU0U7IGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgICAgY29uc3QgcGNyZV91Y2hhciAqbGFz
dHB0ciA9IGZyYW1lLT5lcHRyIC0gMTsKLSAgICAgICAgICB3aGlsZShJU01JRENIQVIoKmxhc3Rw
dHIpKSBsYXN0cHRyLS07Ci0gICAgICAgICAgR0VUQ0hBUihjLCBsYXN0cHRyKTsKLSAgICAgICAg
ICBwcmV2X2lzX3dvcmQgPSBjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkg
IT0gMDsKLSAgICAgICAgICB9Ci0gICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1
YmplY3QpIGN1cl9pc193b3JkID0gRkFMU0U7IGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgICAg
R0VUQ0hBUihjLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgY3VyX2lzX3dvcmQgPSBjIDwgMTI4
ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgIT0gMDsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgLyogTm93IHNlZSBpZiB0aGUgc2l0dWF0aW9uIGlzIHdoYXQgd2Ugd2Fu
dCAqLwotCi0gICAgICBpZiAoKCpmcmFtZS0+ZWNvZGUrKyA9PSBPUF9XT1JEX0JPVU5EQVJZKT8K
LSAgICAgICAgICAgY3VyX2lzX3dvcmQgPT0gcHJldl9pc193b3JkIDogY3VyX2lzX3dvcmQgIT0g
cHJldl9pc193b3JkKQotICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgfQot
ICAgIGJyZWFrOwotCi0gICAgLyogTWF0Y2ggYSBzaW5nbGUgY2hhcmFjdGVyIHR5cGU7IGlubGlu
ZSBmb3Igc3BlZWQgKi8KLQotICAgIGNhc2UgT1BfQU5ZOgotICAgIGlmIChmcmFtZS0+ZXB0ciA8
IG1kLT5lbmRfc3ViamVjdCAmJiBJU19ORVdMSU5FKCpmcmFtZS0+ZXB0cikpCi0gICAgICBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOwotICAgIGlmIChmcmFtZS0+ZXB0cisrID49IG1kLT5lbmRfc3Vi
amVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA8
IG1kLT5lbmRfc3ViamVjdCAmJiBJU01JRENIQVIoKmZyYW1lLT5lcHRyKSkgZnJhbWUtPmVwdHIr
KzsKLSAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfTk9UX0RJ
R0lUOgotICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7Ci0gICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlm
ICgKLSAgICAgICBjIDwgMTI4ICYmCi0gICAgICAgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9kaWdp
dCkgIT0gMAotICAgICAgICkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgZnJh
bWUtPmVjb2RlKys7Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9QX0RJR0lUOgotICAgIGlmIChm
cmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0g
ICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlmICgKLSAgICAgICBjID49
IDEyOCB8fAotICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGlnaXQpID09IDAKLSAgICAg
ICApCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgIGZyYW1lLT5lY29kZSsrOwot
ICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUF9OT1RfV0hJVEVTUEFDRToKLSAgICBpZiAoZnJhbWUt
PmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgIEdF
VENIQVJJTkNURVNUKGMsIGZyYW1lLT5lcHRyKTsKLSAgICBpZiAoCi0gICAgICAgYyA8IDEyOCAm
JgotICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2UpICE9IDAKLSAgICAgICApCi0g
ICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJy
ZWFrOwotCi0gICAgY2FzZSBPUF9XSElURVNQQUNFOgotICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBt
ZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgR0VUQ0hBUklOQ1RF
U1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlmICgKLSAgICAgICBjID49IDEyOCB8fAotICAgICAg
IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2UpID09IDAKLSAgICAgICApCi0gICAgICBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOwotICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJyZWFrOwotCi0g
ICAgY2FzZSBPUF9OT1RfV09SRENIQVI6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRf
c3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICBHRVRDSEFSSU5DVEVTVChjLCBm
cmFtZS0+ZXB0cik7Ci0gICAgaWYgKAotICAgICAgIGMgPCAxMjggJiYKLSAgICAgICAobWQtPmN0
eXBlc1tjXSAmIGN0eXBlX3dvcmQpICE9IDAKLSAgICAgICApCi0gICAgICBSUkVUVVJOKE1BVENI
X05PTUFUQ0gpOwotICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBP
UF9XT1JEQ0hBUjoKLSAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOwotICAgIEdFVENIQVJJTkNURVNUKGMsIGZyYW1lLT5lcHRyKTsK
LSAgICBpZiAoCi0gICAgICAgYyA+PSAxMjggfHwKLSAgICAgICAobWQtPmN0eXBlc1tjXSAmIGN0
eXBlX3dvcmQpID09IDAKLSAgICAgICApCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwot
ICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJyZWFrOwotCi0gICAgLyogTWF0Y2ggYSBiYWNrIHJl
ZmVyZW5jZSwgcG9zc2libHkgcmVwZWF0ZWRseS4gTG9vayBwYXN0IHRoZSBlbmQgb2YgdGhlCi0g
ICAgaXRlbSB0byBzZWUgaWYgdGhlcmUgaXMgcmVwZWF0IGluZm9ybWF0aW9uIGZvbGxvd2luZy4g
VGhlIGNvZGUgaXMgc2ltaWxhcgotICAgIHRvIHRoYXQgZm9yIGNoYXJhY3RlciBjbGFzc2VzLCBi
dXQgcmVwZWF0ZWQgZm9yIGVmZmljaWVuY3kuIFRoZW4gb2JleQotICAgIHNpbWlsYXIgY29kZSB0
byBjaGFyYWN0ZXIgdHlwZSByZXBlYXRzIC0gd3JpdHRlbiBvdXQgYWdhaW4gZm9yIHNwZWVkLgot
ICAgIEhvd2V2ZXIsIGlmIHRoZSByZWZlcmVuY2VkIHN0cmluZyBpcyB0aGUgZW1wdHkgc3RyaW5n
LCBhbHdheXMgdHJlYXQKLSAgICBpdCBhcyBtYXRjaGVkLCBhbnkgbnVtYmVyIG9mIHRpbWVzIChv
dGhlcndpc2UgdGhlcmUgY291bGQgYmUgaW5maW5pdGUKLSAgICBsb29wcykuICovCi0KLSAgICBj
YXNlIE9QX1JFRjoKLSAgICAgIHsKLSAgICAgIGZyYW1lLT5vZmZzZXQgPSBHRVQyKGZyYW1lLT5l
Y29kZSwgMSkgPDwgMTsgICAgICAgICAgICAgICAvKiBEb3VibGVkIHJlZiBudW1iZXIgKi8KLSAg
ICAgIGZyYW1lLT5lY29kZSArPSAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IEFkdmFuY2UgcGFzdCBpdGVtICovCi0KLSAgICAgIC8qIElmIHRoZSByZWZlcmVuY2UgaXMgdW5z
ZXQsIHNldCB0aGUgbGVuZ3RoIHRvIGJlIGxvbmdlciB0aGFuIHRoZSBhbW91bnQKLSAgICAgIG9m
IHN1YmplY3QgbGVmdDsgdGhpcyBlbnN1cmVzIHRoYXQgZXZlcnkgYXR0ZW1wdCBhdCBhIG1hdGNo
IGZhaWxzLiBXZQotICAgICAgY2FuJ3QganVzdCBmYWlsIGhlcmUsIGJlY2F1c2Ugb2YgdGhlIHBv
c3NpYmlsaXR5IG9mIHF1YW50aWZpZXJzIHdpdGggemVybwotICAgICAgbWluaW1hLiAqLwotCi0g
ICAgICBmcmFtZS0+bGVuZ3RoID0gKGZyYW1lLT5vZmZzZXQgPj0gZnJhbWUtPm9mZnNldF90b3Ag
fHwgbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldF0gPCAwKT8KLSAgICAgICAgMCA6Ci0g
ICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXQrMV0gLSBtZC0+b2Zmc2V0X3Zl
Y3RvcltmcmFtZS0+b2Zmc2V0XTsKLQotICAgICAgLyogU2V0IHVwIGZvciByZXBldGl0aW9uLCBv
ciBoYW5kbGUgdGhlIG5vbi1yZXBlYXRlZCBjYXNlICovCi0KLSAgICAgIHN3aXRjaCAoKmZyYW1l
LT5lY29kZSkKLSAgICAgICAgewotICAgICAgICBjYXNlIE9QX0NSU1RBUjoKLSAgICAgICAgY2Fz
ZSBPUF9DUk1JTlNUQVI6Ci0gICAgICAgIGNhc2UgT1BfQ1JQTFVTOgotICAgICAgICBjYXNlIE9Q
X0NSTUlOUExVUzoKLSAgICAgICAgY2FzZSBPUF9DUlFVRVJZOgotICAgICAgICBjYXNlIE9QX0NS
TUlOUVVFUlk6Ci0gICAgICAgIGMgPSAqZnJhbWUtPmVjb2RlKysgLSBPUF9DUlNUQVI7Ci0gICAg
ICAgIG1pbmltaXplID0gKGMgJiAxKSAhPSAwOwotICAgICAgICBtaW4gPSByZXBfbWluW2NdOyAg
ICAgICAgICAgICAgICAgLyogUGljayB1cCB2YWx1ZXMgZnJvbSB0YWJsZXM7ICovCi0gICAgICAg
IGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVybyBmb3IgbWF4
ID0+IGluZmluaXR5ICovCi0gICAgICAgIGlmIChmcmFtZS0+bWF4ID09IDApIGZyYW1lLT5tYXgg
PSBJTlRfTUFYOwotICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIE9QX0NSUkFOR0U6Ci0g
ICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToKLSAgICAgICAgbWluaW1pemUgPSAoKmZyYW1lLT5l
Y29kZSA9PSBPUF9DUk1JTlJBTkdFKTsKLSAgICAgICAgbWluID0gR0VUMihmcmFtZS0+ZWNvZGUs
IDEpOwotICAgICAgICBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDMpOwotICAgICAg
ICBpZiAoZnJhbWUtPm1heCA9PSAwKSBmcmFtZS0+bWF4ID0gSU5UX01BWDsKLSAgICAgICAgZnJh
bWUtPmVjb2RlICs9IDU7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAgIGRlZmF1bHQ6ICAgICAg
ICAgICAgICAgLyogTm8gcmVwZWF0IGZvbGxvd3MgKi8KLSAgICAgICAgaWYgKCFtYXRjaF9yZWYo
ZnJhbWUtPm9mZnNldCwgZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5ndGgsIG1kKSkgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKLSAgICAgICAgZnJhbWUtPmVwdHIgKz0gZnJhbWUtPmxlbmd0aDsKLSAg
ICAgICAgY29udGludWU7ICAgICAgICAgICAgICAvKiBXaXRoIHRoZSBtYWluIGxvb3AgKi8KLSAg
ICAgICAgfQotCi0gICAgICAvKiBJZiB0aGUgbGVuZ3RoIG9mIHRoZSByZWZlcmVuY2UgaXMgemVy
bywganVzdCBjb250aW51ZSB3aXRoIHRoZQotICAgICAgbWFpbiBsb29wLiAqLwotCi0gICAgICBp
ZiAoZnJhbWUtPmxlbmd0aCA9PSAwKSBjb250aW51ZTsKLQotICAgICAgLyogRmlyc3QsIGVuc3Vy
ZSB0aGUgbWluaW11bSBudW1iZXIgb2YgbWF0Y2hlcyBhcmUgcHJlc2VudC4gKi8KLQotICAgICAg
Zm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKLSAgICAgICAgewotICAgICAgICBpZiAoIW1hdGNo
X3JlZihmcmFtZS0+b2Zmc2V0LCBmcmFtZS0+ZXB0ciwgZnJhbWUtPmxlbmd0aCwgbWQpKSBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICBmcmFtZS0+ZXB0ciArPSBmcmFtZS0+bGVuZ3Ro
OwotICAgICAgICB9Ci0KLSAgICAgIC8qIElmIG1pbiA9IG1heCwgY29udGludWUgYXQgdGhlIHNh
bWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpb24uCi0gICAgICBUaGV5IGFyZSBub3QgYm90aCBhbGxv
d2VkIHRvIGJlIHplcm8uICovCi0KLSAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGlu
dWU7Ci0KLSAgICAgIC8qIElmIG1pbmltaXppbmcsIGtlZXAgdHJ5aW5nIGFuZCBhZHZhbmNpbmcg
dGhlIHBvaW50ZXIgKi8KLQotICAgICAgaWYgKG1pbmltaXplKQotICAgICAgICB7Ci0gICAgICAg
IGZvciAoZnJhbWUtPmZpID0gbWluOzsgZnJhbWUtPmZpKyspCi0gICAgICAgICAgewotICAgICAg
ICAgIFJNQVRDSCgyMCwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAg
IGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgIGlmIChm
cmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCAhbWF0Y2hfcmVmKGZyYW1lLT5vZmZzZXQsIGZyYW1l
LT5lcHRyLCBmcmFtZS0+bGVuZ3RoLCBtZCkpCi0gICAgICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOwotICAgICAgICAgIGZyYW1lLT5lcHRyICs9IGZyYW1lLT5sZW5ndGg7Ci0gICAgICAg
ICAgfQotICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwotICAgICAgICB9Ci0K
LSAgICAgIC8qIElmIG1heGltaXppbmcsIGZpbmQgdGhlIGxvbmdlc3Qgc3RyaW5nIGFuZCB3b3Jr
IGJhY2t3YXJkcyAqLwotCi0gICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgZnJhbWUtPnBw
ID0gZnJhbWUtPmVwdHI7Ci0gICAgICAgIGZvciAoaSA9IG1pbjsgaSA8IGZyYW1lLT5tYXg7IGkr
KykKLSAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKCFtYXRjaF9yZWYoZnJhbWUtPm9mZnNldCwg
ZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5ndGgsIG1kKSkgYnJlYWs7Ci0gICAgICAgICAgZnJhbWUt
PmVwdHIgKz0gZnJhbWUtPmxlbmd0aDsKLSAgICAgICAgICB9Ci0gICAgICAgIHdoaWxlIChmcmFt
ZS0+ZXB0ciA+PSBmcmFtZS0+cHApCi0gICAgICAgICAgewotICAgICAgICAgIFJNQVRDSCgyMSwg
ZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAgIGlmIChycmMgIT0gTUFU
Q0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgIGZyYW1lLT5lcHRyIC09IGZyYW1l
LT5sZW5ndGg7Ci0gICAgICAgICAgfQotICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwot
ICAgICAgICB9Ci0gICAgICB9Ci0gICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KLQot
Ci0KLSAgICAvKiBNYXRjaCBhIGJpdC1tYXBwZWQgY2hhcmFjdGVyIGNsYXNzLCBwb3NzaWJseSBy
ZXBlYXRlZGx5LiBUaGlzIG9wIGNvZGUgaXMKLSAgICB1c2VkIHdoZW4gYWxsIHRoZSBjaGFyYWN0
ZXJzIGluIHRoZSBjbGFzcyBoYXZlIHZhbHVlcyBpbiB0aGUgcmFuZ2UgMC0yNTUsCi0gICAgYW5k
IGVpdGhlciB0aGUgbWF0Y2hpbmcgaXMgY2FzZWZ1bCwgb3IgdGhlIGNoYXJhY3RlcnMgYXJlIGlu
IHRoZSByYW5nZQotICAgIDAtMTI3IHdoZW4gVVRGLTggcHJvY2Vzc2luZyBpcyBlbmFibGVkLiBU
aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4KLSAgICBPUF9DTEFTUyBhbmQgT1BfTkNMQVNTIG9j
Y3VycyB3aGVuIGEgZGF0YSBjaGFyYWN0ZXIgb3V0c2lkZSB0aGUgcmFuZ2UgaXMKLSAgICBlbmNv
dW50ZXJlZC4KLQotICAgIEZpcnN0LCBsb29rIHBhc3QgdGhlIGVuZCBvZiB0aGUgaXRlbSB0byBz
ZWUgaWYgdGhlcmUgaXMgcmVwZWF0IGluZm9ybWF0aW9uCi0gICAgZm9sbG93aW5nLiBUaGVuIG9i
ZXkgc2ltaWxhciBjb2RlIHRvIGNoYXJhY3RlciB0eXBlIHJlcGVhdHMgLSB3cml0dGVuIG91dAot
ICAgIGFnYWluIGZvciBzcGVlZC4gKi8KLQotICAgIGNhc2UgT1BfTkNMQVNTOgotICAgIGNhc2Ug
T1BfQ0xBU1M6Ci0gICAgICB7Ci0gICAgICBmcmFtZS0+ZGF0YSA9IGZyYW1lLT5lY29kZSArIDE7
ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNoaW5nICovCi0gICAgICBmcmFtZS0+ZWNv
ZGUgKz0gMzM7ICAgICAgICAgICAgICAgICAgICAgLyogQWR2YW5jZSBwYXN0IHRoZSBpdGVtICov
Ci0KLSAgICAgIHN3aXRjaCAoKmZyYW1lLT5lY29kZSkKLSAgICAgICAgewotICAgICAgICBjYXNl
IE9QX0NSU1RBUjoKLSAgICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6Ci0gICAgICAgIGNhc2UgT1Bf
Q1JQTFVTOgotICAgICAgICBjYXNlIE9QX0NSTUlOUExVUzoKLSAgICAgICAgY2FzZSBPUF9DUlFV
RVJZOgotICAgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6Ci0gICAgICAgIGMgPSAqZnJhbWUtPmVj
b2RlKysgLSBPUF9DUlNUQVI7Ci0gICAgICAgIG1pbmltaXplID0gKGMgJiAxKSAhPSAwOwotICAg
ICAgICBtaW4gPSByZXBfbWluW2NdOyAgICAgICAgICAgICAgICAgLyogUGljayB1cCB2YWx1ZXMg
ZnJvbSB0YWJsZXM7ICovCi0gICAgICAgIGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAg
ICAgICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCi0gICAgICAgIGlmIChmcmFt
ZS0+bWF4ID09IDApIGZyYW1lLT5tYXggPSBJTlRfTUFYOwotICAgICAgICBicmVhazsKLQotICAg
ICAgICBjYXNlIE9QX0NSUkFOR0U6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToKLSAgICAg
ICAgbWluaW1pemUgPSAoKmZyYW1lLT5lY29kZSA9PSBPUF9DUk1JTlJBTkdFKTsKLSAgICAgICAg
bWluID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOwotICAgICAgICBmcmFtZS0+bWF4ID0gR0VUMihm
cmFtZS0+ZWNvZGUsIDMpOwotICAgICAgICBpZiAoZnJhbWUtPm1heCA9PSAwKSBmcmFtZS0+bWF4
ID0gSU5UX01BWDsKLSAgICAgICAgZnJhbWUtPmVjb2RlICs9IDU7Ci0gICAgICAgIGJyZWFrOwot
Ci0gICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyogTm8gcmVwZWF0IGZvbGxvd3MgKi8K
LSAgICAgICAgbWluID0gZnJhbWUtPm1heCA9IDE7Ci0gICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0KLSAgICAgIC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1hdGNoZXMg
YXJlIHByZXNlbnQuICovCi0KLSAgICAgICAgewotICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1p
bjsgaSsrKQotICAgICAgICAgIHsKLSAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVu
ZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgIEdFVENIQVJJTkMo
YywgZnJhbWUtPmVwdHIpOwotICAgICAgICAgIGlmIChjID4gMjU1KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKGZyYW1lLT5kYXRhWy0xXSA9PSBPUF9DTEFTUykgUlJFVFVSTihNQVRD
SF9OT01BVENIKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoKGZyYW1lLT5kYXRhW2MvOF0gJiAoMSA8PCAoYyY3KSkpID09IDAp
IFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgIC8qIElmIG1heCA9PSBtaW4gd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhl
IG1haW4gbG9vcCB3aXRob3V0IHRoZQotICAgICAgbmVlZCB0byByZWN1cnNlLiAqLwotCi0gICAg
ICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNvbnRpbnVlOwotCi0gICAgICAvKiBJZiBtaW5pbWl6
aW5nLCBrZWVwIHRlc3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb24gYW5kIGFkdmFuY2lu
ZwotICAgICAgdGhlIHBvaW50ZXIgd2hpbGUgaXQgbWF0Y2hlcyB0aGUgY2xhc3MuICovCi0KLSAg
ICAgIGlmIChtaW5pbWl6ZSkKLSAgICAgICAgewotICAgICAgICAgIHsKLSAgICAgICAgICBmb3Ig
KGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgUk1BVENIKDIyLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAg
ICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgICAgIGlm
IChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1Ympl
Y3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICBHRVRDSEFSSU5DKGMsIGZy
YW1lLT5lcHRyKTsKLSAgICAgICAgICAgIGlmIChjID4gMjU1KQotICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgIGlmIChmcmFtZS0+ZGF0YVstMV0gPT0gT1BfQ0xBU1MpIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICBpZiAoKGZyYW1lLT5kYXRhW2MvOF0gJiAoMSA8PCAoYyY3
KSkpID09IDApIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJl
ICovCi0gICAgICAgIH0KLQotICAgICAgLyogSWYgbWF4aW1pemluZywgZmluZCB0aGUgbG9uZ2Vz
dCBwb3NzaWJsZSBydW4sIHRoZW4gd29yayBiYWNrd2FyZHMuICovCi0KLSAgICAgIGVsc2UKLSAg
ICAgICAgewotICAgICAgICBmcmFtZS0+cHAgPSBmcmFtZS0+ZXB0cjsKLQotICAgICAgICAgIHsK
LSAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICBpbnQgbGVuID0gMTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0
ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOwotICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBm
cmFtZS0+ZXB0ciwgbGVuKTsKLSAgICAgICAgICAgIGlmIChjID4gMjU1KQotICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgIGlmIChmcmFtZS0+ZGF0YVstMV0gPT0gT1BfQ0xBU1MpIGJyZWFr
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgaWYgKChmcmFtZS0+ZGF0YVtjLzhdICYgKDEgPDwgKGMmNykpKSA9PSAwKSBi
cmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJhbWUtPmVwdHIgKz0gbGVuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgIGZvciAoOzspCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICBSTUFUQ0goMjQsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAg
ICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgICAg
aWYgKGZyYW1lLT5lcHRyLS0gPT0gZnJhbWUtPnBwKSBicmVhazsgICAgICAgIC8qIFN0b3AgaWYg
dHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCi0gICAgICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0
cik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhl
cmUgKi8KLQotCi0gICAgLyogTWF0Y2ggYW4gZXh0ZW5kZWQgY2hhcmFjdGVyIGNsYXNzLiBUaGlz
IG9wY29kZSBpcyBlbmNvdW50ZXJlZCBvbmx5Ci0gICAgaW4gVVRGLTggbW9kZSwgYmVjYXVzZSB0
aGF0J3MgdGhlIG9ubHkgdGltZSBpdCBpcyBjb21waWxlZC4gKi8KLQotICAgIGNhc2UgT1BfWENM
QVNTOgotICAgICAgewotICAgICAgZnJhbWUtPmRhdGEgPSBmcmFtZS0+ZWNvZGUgKyAxICsgTElO
S19TSVpFOyAgICAgICAgICAgICAgICAvKiBTYXZlIGZvciBtYXRjaGluZyAqLwotICAgICAgZnJh
bWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsIDEpOyAgICAgICAgICAgICAgICAgICAgICAv
KiBBZHZhbmNlIHBhc3QgdGhlIGl0ZW0gKi8KLQotICAgICAgc3dpdGNoICgqZnJhbWUtPmVjb2Rl
KQotICAgICAgICB7Ci0gICAgICAgIGNhc2UgT1BfQ1JTVEFSOgotICAgICAgICBjYXNlIE9QX0NS
TUlOU1RBUjoKLSAgICAgICAgY2FzZSBPUF9DUlBMVVM6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5Q
TFVTOgotICAgICAgICBjYXNlIE9QX0NSUVVFUlk6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5RVUVS
WToKLSAgICAgICAgYyA9ICpmcmFtZS0+ZWNvZGUrKyAtIE9QX0NSU1RBUjsKLSAgICAgICAgbWlu
aW1pemUgPSAoYyAmIDEpICE9IDA7Ci0gICAgICAgIG1pbiA9IHJlcF9taW5bY107ICAgICAgICAg
ICAgICAgICAvKiBQaWNrIHVwIHZhbHVlcyBmcm9tIHRhYmxlczsgKi8KLSAgICAgICAgZnJhbWUt
Pm1heCA9IHJlcF9tYXhbY107ICAgICAgICAgICAgICAgICAvKiB6ZXJvIGZvciBtYXggPT4gaW5m
aW5pdHkgKi8KLSAgICAgICAgaWYgKGZyYW1lLT5tYXggPT0gMCkgZnJhbWUtPm1heCA9IElOVF9N
QVg7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgT1BfQ1JSQU5HRToKLSAgICAgICAg
Y2FzZSBPUF9DUk1JTlJBTkdFOgotICAgICAgICBtaW5pbWl6ZSA9ICgqZnJhbWUtPmVjb2RlID09
IE9QX0NSTUlOUkFOR0UpOwotICAgICAgICBtaW4gPSBHRVQyKGZyYW1lLT5lY29kZSwgMSk7Ci0g
ICAgICAgIGZyYW1lLT5tYXggPSBHRVQyKGZyYW1lLT5lY29kZSwgMyk7Ci0gICAgICAgIGlmIChm
cmFtZS0+bWF4ID09IDApIGZyYW1lLT5tYXggPSBJTlRfTUFYOwotICAgICAgICBmcmFtZS0+ZWNv
ZGUgKz0gNTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAg
ICAvKiBObyByZXBlYXQgZm9sbG93cyAqLwotICAgICAgICBtaW4gPSBmcmFtZS0+bWF4ID0gMTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgLyogRmlyc3QsIGVuc3VyZSB0aGUg
bWluaW11bSBudW1iZXIgb2YgbWF0Y2hlcyBhcmUgcHJlc2VudC4gKi8KLQotICAgICAgZm9yIChp
ID0gMTsgaSA8PSBtaW47IGkrKykKLSAgICAgICAgewotICAgICAgICBpZiAoZnJhbWUtPmVwdHIg
Pj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICBHRVRD
SEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsKLSAgICAgICAgaWYgKCFfcGNyZV94Y2xhc3MoYywgZnJh
bWUtPmRhdGEpKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICB9Ci0KLSAgICAgIC8q
IElmIG1heCA9PSBtaW4gd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCB3aXRob3V0
IHRoZQotICAgICAgbmVlZCB0byByZWN1cnNlLiAqLwotCi0gICAgICBpZiAobWluID09IGZyYW1l
LT5tYXgpIGNvbnRpbnVlOwotCi0gICAgICAvKiBJZiBtaW5pbWl6aW5nLCBrZWVwIHRlc3Rpbmcg
dGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb24gYW5kIGFkdmFuY2luZwotICAgICAgdGhlIHBvaW50
ZXIgd2hpbGUgaXQgbWF0Y2hlcyB0aGUgY2xhc3MuICovCi0KLSAgICAgIGlmIChtaW5pbWl6ZSkK
LSAgICAgICAgewotICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQot
ICAgICAgICAgIHsKLSAgICAgICAgICBSTUFUQ0goMjYsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVw
dHJiLCAwKTsKLSAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKLSAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwgZnJhbWUtPmVwdHIg
Pj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgIEdF
VENIQVJJTkMoYywgZnJhbWUtPmVwdHIpOwotICAgICAgICAgIGlmICghX3BjcmVfeGNsYXNzKGMs
IGZyYW1lLT5kYXRhKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCi0gICAgICAgIH0KLQotICAgICAgLyog
SWYgbWF4aW1pemluZywgZmluZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBydW4sIHRoZW4gd29yayBi
YWNrd2FyZHMuICovCi0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBmcmFtZS0+cHAg
PSBmcmFtZS0+ZXB0cjsKLSAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsr
KQotICAgICAgICAgIHsKLSAgICAgICAgICBpbnQgbGVuID0gMTsKLSAgICAgICAgICBpZiAoZnJh
bWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKLSAgICAgICAgICBHRVRDSEFSTEVO
KGMsIGZyYW1lLT5lcHRyLCBsZW4pOwotICAgICAgICAgIGlmICghX3BjcmVfeGNsYXNzKGMsIGZy
YW1lLT5kYXRhKSkgYnJlYWs7Ci0gICAgICAgICAgZnJhbWUtPmVwdHIgKz0gbGVuOwotICAgICAg
ICAgIH0KLSAgICAgICAgZm9yKDs7KQotICAgICAgICAgIHsKLSAgICAgICAgICBSTUFUQ0goMjcs
IGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICBpZiAocnJjICE9IE1B
VENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgICBpZiAoZnJhbWUtPmVwdHItLSA9
PSBmcmFtZS0+cHApIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBw
b3MgKi8KLSAgICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0cikKLSAgICAgICAgICB9Ci0gICAg
ICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgIH0KLQotICAgICAgLyogQ29udHJv
bCBuZXZlciBnZXRzIGhlcmUgKi8KLSAgICAgIH0KLQotICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNo
YXJhY3RlciwgY2FzZWZ1bGx5ICovCi0KLSAgICBjYXNlIE9QX0NIQVI6Ci0gICAgICB7Ci0gICAg
ICBmcmFtZS0+bGVuZ3RoID0gMTsKLSAgICAgIGZyYW1lLT5lY29kZSsrOwotICAgICAgR0VUVVRG
OENIQVJMRU4oZnJhbWUtPmZjLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5sZW5ndGgpOwotICAgICAg
ewotICAgICAgICBpbnQgZGM7Ci0gICAgICAgIGZyYW1lLT5lY29kZSArPSBmcmFtZS0+bGVuZ3Ro
OwotICAgICAgICBzd2l0Y2ggKG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyKQotICAgICAg
ICB7Ci0gICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENI
KTsKLSAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBkYyA9ICpmcmFtZS0+ZXB0cisrOwot
ICAgICAgICAgICAgaWYgKElTX0xFQURJTkdfU1VSUk9HQVRFKGRjKSkKLSAgICAgICAgICAgICAg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBHRVRDSEFSSU5DKGRjLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKGZyYW1lLT5mYyAhPSBkYykgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
LSAgICAgfSAgCi0gICAgICB9Ci0gICAgYnJlYWs7Ci0KLSAgICAvKiBNYXRjaCBhIHNpbmdsZSBj
aGFyYWN0ZXIsIGNhc2VsZXNzbHkgKi8KLQotICAgIGNhc2UgT1BfQ0hBUk5DOgotICAgICAgewot
ICAgICAgZnJhbWUtPmxlbmd0aCA9IDE7Ci0gICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICAgIEdF
VFVURjhDSEFSTEVOKGZyYW1lLT5mYywgZnJhbWUtPmVjb2RlLCBmcmFtZS0+bGVuZ3RoKTsKLQot
ICAgICAgaWYgKG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyID09IDApIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7Ci0KLSAgICAgIC8qIElmIHRoZSBwYXR0ZXJuIGNoYXJhY3RlcidzIHZhbHVl
IGlzIDwgMTI4LCB3ZSBoYXZlIG9ubHkgb25lIGJ5dGUsIGFuZAotICAgICAgY2FuIHVzZSB0aGUg
ZmFzdCBsb29rdXAgdGFibGUuICovCi0KLSAgICAgIGlmIChmcmFtZS0+ZmMgPCAxMjgpCi0gICAg
ICAgIHsKLSAgICAgICAgaW50IGRjOwotICAgICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICAgICAg
ZGMgPSAqZnJhbWUtPmVwdHIrKzsKLSAgICAgICAgaWYgKGRjID49IDEyOCB8fCBtZC0+bGNjW2Zy
YW1lLT5mY10gIT0gbWQtPmxjY1tkY10pIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAg
IH0KLQotICAgICAgLyogT3RoZXJ3aXNlIHdlIG11c3QgcGljayB1cCB0aGUgc3ViamVjdCBjaGFy
YWN0ZXIgKi8KLQotICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgIGludCBkYzsKLSAgICAg
ICAgaWYgKG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyID09IDEpIHsKLSAgICAgICAgICBk
YyA9ICpmcmFtZS0+ZXB0cisrOwotICAgICAgICAgIGlmIChJU19MRUFESU5HX1NVUlJPR0FURShk
YykpCi0gICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgR0VUQ0hBUklOQyhkYywgZnJhbWUtPmVwdHIpOwotICAgICAgICBmcmFtZS0+ZWNv
ZGUgKz0gZnJhbWUtPmxlbmd0aDsKLQotICAgICAgICAvKiBJZiB3ZSBoYXZlIFVuaWNvZGUgcHJv
cGVydHkgc3VwcG9ydCwgd2UgY2FuIHVzZSBpdCB0byB0ZXN0IHRoZSBvdGhlcgotICAgICAgICBj
YXNlIG9mIHRoZSBjaGFyYWN0ZXIsIGlmIHRoZXJlIGlzIG9uZS4gKi8KLQotICAgICAgICBpZiAo
ZnJhbWUtPmZjICE9IGRjKQotICAgICAgICAgIHsKLSAgICAgICAgICBpZiAoZGMgIT0gX3BjcmVf
dWNwX290aGVyY2FzZShmcmFtZS0+ZmMpKQotICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBicmVhazsKLQotICAg
IC8qIE1hdGNoIGEgc2luZ2xlIEFTQ0lJIGNoYXJhY3Rlci4gKi8KLQotICAgIGNhc2UgT1BfQVND
SUlfQ0hBUjoKLSAgICBpZiAobWQtPmVuZF9zdWJqZWN0ID09IGZyYW1lLT5lcHRyKQotICAgICAg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICBpZiAoKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5l
Y29kZVsxXSkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgKytmcmFtZS0+ZXB0
cjsKLSAgICBmcmFtZS0+ZWNvZGUgKz0gMjsKLSAgICBicmVhazsKLQotICAgIC8qIE1hdGNoIG9u
ZSBvZiB0d28gY2FzZXMgb2YgYW4gQVNDSUkgY2hhcmFjdGVyLiAqLwotCi0gICAgY2FzZSBPUF9B
U0NJSV9MRVRURVJfTkM6Ci0gICAgaWYgKG1kLT5lbmRfc3ViamVjdCA9PSBmcmFtZS0+ZXB0cikK
LSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgaWYgKCgqZnJhbWUtPmVwdHIgfCAw
eDIwKSAhPSBmcmFtZS0+ZWNvZGVbMV0pCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwot
ICAgICsrZnJhbWUtPmVwdHI7Ci0gICAgZnJhbWUtPmVjb2RlICs9IDI7Ci0gICAgYnJlYWs7Ci0K
LSAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgcmVwZWF0ZWRseTsgZGlmZmVyZW50IG9w
Y29kZXMgc2hhcmUgY29kZS4gKi8KLQotICAgIGNhc2UgT1BfRVhBQ1Q6Ci0gICAgbWluID0gZnJh
bWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKLSAgICBtaW5pbWl6ZSA9IEZBTFNFOwot
ICAgIGZyYW1lLT5lY29kZSArPSAzOwotICAgIGdvdG8gUkVQRUFUQ0hBUjsKLQotICAgIGNhc2Ug
T1BfVVBUTzoKLSAgICBjYXNlIE9QX01JTlVQVE86Ci0gICAgbWluID0gMDsKLSAgICBmcmFtZS0+
bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOwotICAgIG1pbmltaXplID0gKmZyYW1lLT5lY29k
ZSA9PSBPUF9NSU5VUFRPOwotICAgIGZyYW1lLT5lY29kZSArPSAzOwotICAgIGdvdG8gUkVQRUFU
Q0hBUjsKLQotICAgIGNhc2UgT1BfU1RBUjoKLSAgICBjYXNlIE9QX01JTlNUQVI6Ci0gICAgY2Fz
ZSBPUF9QTFVTOgotICAgIGNhc2UgT1BfTUlOUExVUzoKLSAgICBjYXNlIE9QX1FVRVJZOgotICAg
IGNhc2UgT1BfTUlOUVVFUlk6Ci0gICAgYyA9ICpmcmFtZS0+ZWNvZGUrKyAtIE9QX1NUQVI7Ci0g
ICAgbWluaW1pemUgPSAoYyAmIDEpICE9IDA7Ci0gICAgbWluID0gcmVwX21pbltjXTsgICAgICAg
ICAgICAgICAgIC8qIFBpY2sgdXAgdmFsdWVzIGZyb20gdGFibGVzOyAqLwotICAgIGZyYW1lLT5t
YXggPSByZXBfbWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmlu
aXR5ICovCi0gICAgaWYgKGZyYW1lLT5tYXggPT0gMCkgZnJhbWUtPm1heCA9IElOVF9NQVg7Ci0K
LSAgICAvKiBDb21tb24gY29kZSBmb3IgYWxsIHJlcGVhdGVkIHNpbmdsZS1jaGFyYWN0ZXIgbWF0
Y2hlcy4gV2UgY2FuIGdpdmUKLSAgICB1cCBxdWlja2x5IGlmIHRoZXJlIGFyZSBmZXdlciB0aGFu
IHRoZSBtaW5pbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGxlZnQgaW4KLSAgICB0aGUgc3ViamVj
dC4gKi8KLQotICAgIFJFUEVBVENIQVI6Ci0KLSAgICAgIGZyYW1lLT5sZW5ndGggPSAxOwotICAg
ICAgR0VUVVRGOENIQVJMRU4oZnJhbWUtPmZjLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5sZW5ndGgp
OwotICAgICAgewotICAgICAgaWYgKG1pbiAqIChmcmFtZS0+ZmMgPiAweEZGRkYgPyAyIDogMSkg
PiBtZC0+ZW5kX3N1YmplY3QgLSBmcmFtZS0+ZXB0cikgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
LSAgICAgIGZyYW1lLT5lY29kZSArPSBmcmFtZS0+bGVuZ3RoOwotCi0gICAgICBpZiAoZnJhbWUt
PmZjIDw9IDB4RkZGRikKLSAgICAgICAgewotICAgICAgICBpbnQgb3RoZXJjYXNlID0gbWQtPmNh
c2VsZXNzID8gX3BjcmVfdWNwX290aGVyY2FzZShmcmFtZS0+ZmMpIDogLTE7Ci0KLSAgICAgICAg
Zm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKLSAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKCpm
cmFtZS0+ZXB0ciAhPSBmcmFtZS0+ZmMgJiYgKmZyYW1lLT5lcHRyICE9IG90aGVyY2FzZSkgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICArK2ZyYW1lLT5lcHRyOwotICAgICAgICAg
IH0KLQotICAgICAgICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNvbnRpbnVlOwotCi0gICAgICAg
IGlmIChtaW5pbWl6ZSkKLSAgICAgICAgICB7Ci0gICAgICAgICAgZnJhbWUtPnJlcGVhdF9vdGhl
cmNhc2UgPSBvdGhlcmNhc2U7Ci0gICAgICAgICAgZm9yIChmcmFtZS0+ZmkgPSBtaW47OyBmcmFt
ZS0+ZmkrKykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIFJNQVRDSCgyOCwgZnJhbWUtPmVj
b2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01B
VENIKSBSUkVUVVJOKHJyYyk7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5t
YXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFU
Q0gpOwotICAgICAgICAgICAgaWYgKCpmcmFtZS0+ZXB0ciAhPSBmcmFtZS0+ZmMgJiYgKmZyYW1l
LT5lcHRyICE9IGZyYW1lLT5yZXBlYXRfb3RoZXJjYXNlKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gp
OwotICAgICAgICAgICAgKytmcmFtZS0+ZXB0cjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAv
KiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwotICAgICAgICAgIH0KLSAgICAgICAgZWxzZQot
ICAgICAgICAgIHsKLSAgICAgICAgICBmcmFtZS0+cHAgPSBmcmFtZS0+ZXB0cjsKLSAgICAgICAg
ICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKLSAgICAg
ICAgICAgIGlmICgqZnJhbWUtPmVwdHIgIT0gZnJhbWUtPmZjICYmICpmcmFtZS0+ZXB0ciAhPSBv
dGhlcmNhc2UpIGJyZWFrOwotICAgICAgICAgICAgKytmcmFtZS0+ZXB0cjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB3aGlsZSAoZnJhbWUtPmVwdHIgPj0gZnJhbWUtPnBwKQotICAgICAgICAg
ICB7Ci0gICAgICAgICAgIFJNQVRDSCgyOSwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDAp
OwotICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAg
ICAgICAgICAgLS1mcmFtZS0+ZXB0cjsKLSAgICAgICAgICAgfQotICAgICAgICAgIFJSRVRVUk4o
TUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgfQotICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdl
dHMgaGVyZSAqLwotICAgICAgICB9Ci0gICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgLyog
Tm8gY2FzZSBvbiBzdXJyb2dhdGUgcGFpcnMsIHNvIG5vIG5lZWQgdG8gYm90aGVyIHdpdGggIm90
aGVyY2FzZSIuICovCi0KLSAgICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgaW50IG5jOwotICAgICAgICAgIEdFVENIQVIobmMsIGZyYW1lLT5l
cHRyKTsKLSAgICAgICAgICBpZiAobmMgIT0gZnJhbWUtPmZjKSBSUkVUVVJOKE1BVENIX05PTUFU
Q0gpOwotICAgICAgICAgIGZyYW1lLT5lcHRyICs9IDI7Ci0gICAgICAgICAgfQotCi0gICAgICAg
IGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7Ci0KLSAgICAgICAgaWYgKG1pbmltaXpl
KQotICAgICAgICAgIHsKLSAgICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5m
aSsrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgaW50IG5jOwotICAgICAgICAgICAgUk1B
VENIKDMwLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAgICBpZiAo
cnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgICAgIGlmIChmcmFt
ZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICBHRVRDSEFSKG5jLCBmcmFtZS0+ZXB0
cik7Ci0gICAgICAgICAgICBpZiAoKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5mYykgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKLSAgICAgICAgICAgIGZyYW1lLT5lcHRyICs9IDI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KLSAgICAgICAgICB9
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgICAgZnJhbWUtPnBwID0gZnJhbWUt
PmVwdHI7Ci0gICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgaW50IG5jOwotICAgICAgICAgICAgaWYgKGZyYW1lLT5l
cHRyID4gbWQtPmVuZF9zdWJqZWN0IC0gMikgYnJlYWs7Ci0gICAgICAgICAgICBHRVRDSEFSKG5j
LCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgICBpZiAoKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5m
YykgYnJlYWs7Ci0gICAgICAgICAgICBmcmFtZS0+ZXB0ciArPSAyOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA+PSBmcmFtZS0+cHApCi0gICAgICAgICAgIHsK
LSAgICAgICAgICAgUk1BVENIKDMxLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0g
ICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAg
ICAgICBmcmFtZS0+ZXB0ciAtPSAyOwotICAgICAgICAgICB9Ci0gICAgICAgICAgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLyogQ29udHJvbCBuZXZlciBn
ZXRzIGhlcmUgKi8KLSAgICAgICAgfQotICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVy
ZSAqLwotICAgICAgICB9Ci0KLSAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9uZS1ieXRl
IGNoYXJhY3Rlci4gVGhlIGNoYXJhY3RlciB3ZSBhcmUKLSAgICBjaGVja2luZyBjYW4gYmUgbXVs
dGlieXRlLiAqLwotCi0gICAgY2FzZSBPUF9OT1Q6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1k
LT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICBmcmFtZS0+ZWNvZGUr
KzsKLSAgICBHRVRDSEFSSU5DVEVTVChjLCBmcmFtZS0+ZXB0cik7Ci0gICAgaWYgKG1kLT5jYXNl
bGVzcykKLSAgICAgIHsKLSAgICAgIGlmIChjIDwgMTI4KQotICAgICAgICBjID0gbWQtPmxjY1tj
XTsKLSAgICAgIGlmIChtZC0+bGNjWypmcmFtZS0+ZWNvZGUrK10gPT0gYykgUlJFVFVSTihNQVRD
SF9OT01BVENIKTsKLSAgICAgIH0KLSAgICBlbHNlCi0gICAgICB7Ci0gICAgICBpZiAoKmZyYW1l
LT5lY29kZSsrID09IGMpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICB9Ci0gICAgYnJl
YWs7Ci0KLSAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9uZS1ieXRlIGNoYXJhY3RlciBy
ZXBlYXRlZGx5LiBUaGlzIGlzIGFsbW9zdCBhCi0gICAgcmVwZWF0IG9mIHRoZSBjb2RlIGZvciBh
IHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIsIGJ1dCBJIGhhdmVuJ3QgZm91bmQgYQotICAgIG5p
Y2Ugd2F5IG9mIGNvbW1vbmluZyB0aGVzZSB1cCB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhIHRlc3Qg
b2YgdGhlCi0gICAgcG9zaXRpdmUvbmVnYXRpdmUgb3B0aW9uIGZvciBlYWNoIGNoYXJhY3RlciBt
YXRjaC4gTWF5YmUgdGhhdCB3b3VsZG4ndCBhZGQKLSAgICB2ZXJ5IG11Y2ggdG8gdGhlIHRpbWUg
dGFrZW4sIGJ1dCBjaGFyYWN0ZXIgbWF0Y2hpbmcgKmlzKiB3aGF0IHRoaXMgaXMgYWxsCi0gICAg
YWJvdXQuLi4gKi8KLQotICAgIGNhc2UgT1BfTk9URVhBQ1Q6Ci0gICAgbWluID0gZnJhbWUtPm1h
eCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKLSAgICBtaW5pbWl6ZSA9IEZBTFNFOwotICAgIGZy
YW1lLT5lY29kZSArPSAzOwotICAgIGdvdG8gUkVQRUFUTk9UQ0hBUjsKLQotICAgIGNhc2UgT1Bf
Tk9UVVBUTzoKLSAgICBjYXNlIE9QX05PVE1JTlVQVE86Ci0gICAgbWluID0gMDsKLSAgICBmcmFt
ZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOwotICAgIG1pbmltaXplID0gKmZyYW1lLT5l
Y29kZSA9PSBPUF9OT1RNSU5VUFRPOwotICAgIGZyYW1lLT5lY29kZSArPSAzOwotICAgIGdvdG8g
UkVQRUFUTk9UQ0hBUjsKLQotICAgIGNhc2UgT1BfTk9UU1RBUjoKLSAgICBjYXNlIE9QX05PVE1J
TlNUQVI6Ci0gICAgY2FzZSBPUF9OT1RQTFVTOgotICAgIGNhc2UgT1BfTk9UTUlOUExVUzoKLSAg
ICBjYXNlIE9QX05PVFFVRVJZOgotICAgIGNhc2UgT1BfTk9UTUlOUVVFUlk6Ci0gICAgYyA9ICpm
cmFtZS0+ZWNvZGUrKyAtIE9QX05PVFNUQVI7Ci0gICAgbWluaW1pemUgPSAoYyAmIDEpICE9IDA7
Ci0gICAgbWluID0gcmVwX21pbltjXTsgICAgICAgICAgICAgICAgIC8qIFBpY2sgdXAgdmFsdWVz
IGZyb20gdGFibGVzOyAqLwotICAgIGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAgICAg
ICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCi0gICAgaWYgKGZyYW1lLT5tYXgg
PT0gMCkgZnJhbWUtPm1heCA9IElOVF9NQVg7Ci0KLSAgICAvKiBDb21tb24gY29kZSBmb3IgYWxs
IHJlcGVhdGVkIHNpbmdsZS1ieXRlIG1hdGNoZXMuIFdlIGNhbiBnaXZlIHVwIHF1aWNrbHkKLSAg
ICBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgbGVm
dCBpbiB0aGUKLSAgICBzdWJqZWN0LiAqLwotCi0gICAgUkVQRUFUTk9UQ0hBUjoKLSAgICBpZiAo
bWluID4gbWQtPmVuZF9zdWJqZWN0IC0gZnJhbWUtPmVwdHIpIFJSRVRVUk4oTUFUQ0hfTk9NQVRD
SCk7Ci0gICAgZnJhbWUtPmZjID0gKmZyYW1lLT5lY29kZSsrOwotCi0gICAgLyogVGhlIGNvZGUg
aXMgZHVwbGljYXRlZCBmb3IgdGhlIGNhc2VsZXNzIGFuZCBjYXNlZnVsIGNhc2VzLCBmb3Igc3Bl
ZWQsCi0gICAgc2luY2UgbWF0Y2hpbmcgY2hhcmFjdGVycyBpcyBsaWtlbHkgdG8gYmUgcXVpdGUg
Y29tbW9uLiBGaXJzdCwgZW5zdXJlIHRoZQotICAgIG1pbmltdW0gbnVtYmVyIG9mIG1hdGNoZXMg
YXJlIHByZXNlbnQuIElmIG1pbiA9IG1heCwgY29udGludWUgYXQgdGhlIHNhbWUKLSAgICBsZXZl
bCB3aXRob3V0IHJlY3Vyc2luZy4gT3RoZXJ3aXNlLCBpZiBtaW5pbWl6aW5nLCBrZWVwIHRyeWlu
ZyB0aGUgcmVzdCBvZgotICAgIHRoZSBleHByZXNzaW9uIGFuZCBhZHZhbmNpbmcgb25lIG1hdGNo
aW5nIGNoYXJhY3RlciBpZiBmYWlsaW5nLCB1cCB0byB0aGUKLSAgICBtYXhpbXVtLiBBbHRlcm5h
dGl2ZWx5LCBpZiBtYXhpbWl6aW5nLCBmaW5kIHRoZSBtYXhpbXVtIG51bWJlciBvZgotICAgIGNo
YXJhY3RlcnMgYW5kIHdvcmsgYmFja3dhcmRzLiAqLwotCi0gICAgRFBSSU5URigoIm5lZ2F0aXZl
IG1hdGNoaW5nICVjeyVkLCVkfVxuIiwgZnJhbWUtPmZjLCBtaW4sIGZyYW1lLT5tYXgpKTsKLQot
ICAgIGlmIChtZC0+Y2FzZWxlc3MpCi0gICAgICB7Ci0gICAgICBmcmFtZS0+ZmMgPSBtZC0+bGNj
W2ZyYW1lLT5mY107Ci0KLSAgICAgICAgewotICAgICAgICByZWdpc3RlciBpbnQgZDsKLSAgICAg
ICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKLSAgICAgICAgICB7Ci0gICAgICAgICAgR0VU
Q0hBUklOQyhkLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgaWYgKGQgPCAxMjgpIGQgPSBtZC0+
bGNjW2RdOwotICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0gZCkgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgaWYgKG1pbiA9PSBmcmFtZS0+
bWF4KSBjb250aW51ZTsKLQotICAgICAgaWYgKG1pbmltaXplKQotICAgICAgICB7Ci0gICAgICAg
ICAgewotICAgICAgICAgIHJlZ2lzdGVyIGludCBkOwotICAgICAgICAgIGZvciAoZnJhbWUtPmZp
ID0gbWluOzsgZnJhbWUtPmZpKyspCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBSTUFUQ0go
MzgsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICAgIGlmIChycmMg
IT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgICAgR0VUQ0hBUklOQyhk
LCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgICBpZiAoZCA8IDEyOCkgZCA9IG1kLT5sY2NbZF07
Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwgZnJhbWUtPmVwdHIg
Pj0gbWQtPmVuZF9zdWJqZWN0IHx8IGZyYW1lLT5mYyA9PSBkKQotICAgICAgICAgICAgICBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
LyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KLSAgICAgICAgfQotCi0gICAgICAvKiBNYXhp
bWl6ZSBjYXNlICovCi0KLSAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICBmcmFtZS0+cHAg
PSBmcmFtZS0+ZXB0cjsKLQotICAgICAgICAgIHsKLSAgICAgICAgICByZWdpc3RlciBpbnQgZDsK
LSAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICBpbnQgbGVuID0gMTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0
ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOwotICAgICAgICAgICAgR0VUQ0hBUkxFTihkLCBm
cmFtZS0+ZXB0ciwgbGVuKTsKLSAgICAgICAgICAgIGlmIChkIDwgMTI4KSBkID0gbWQtPmxjY1tk
XTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0gZCkgYnJlYWs7Ci0gICAgICAgICAgICBm
cmFtZS0+ZXB0ciArPSBsZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZm9yKDs7KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgUk1BVENIKDQwLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5l
cHRyYiwgMCk7Ci0gICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4o
cnJjKTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ci0tID09IGZyYW1lLT5wcCkgYnJlYWs7
ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAqLwotICAgICAgICAgICAg
QkFDS0NIQVIoZnJhbWUtPmVwdHIpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLQotICAg
ICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICB9Ci0gICAgICAvKiBDb250cm9s
IG5ldmVyIGdldHMgaGVyZSAqLwotICAgICAgfQotCi0gICAgLyogQ2FzZWZ1bCBjb21wYXJpc29u
cyAqLwotCi0gICAgZWxzZQotICAgICAgewotICAgICAgICB7Ci0gICAgICAgIHJlZ2lzdGVyIGlu
dCBkOwotICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQotICAgICAgICAgIHsKLSAg
ICAgICAgICBHRVRDSEFSSU5DKGQsIGZyYW1lLT5lcHRyKTsKLSAgICAgICAgICBpZiAoZnJhbWUt
PmZjID09IGQpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgfQotICAgICAgICB9
Ci0KLSAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7Ci0KLSAgICAgIGlmICht
aW5pbWl6ZSkKLSAgICAgICAgewotICAgICAgICAgIHsKLSAgICAgICAgICByZWdpc3RlciBpbnQg
ZDsKLSAgICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgUk1BVENIKDQyLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRy
YiwgMCk7Ci0gICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKLSAgICAgICAgICAgIEdFVENIQVJJTkMoZCwgZnJhbWUtPmVwdHIpOwotICAgICAgICAgICAg
aWYgKGZyYW1lLT5maSA+PSBmcmFtZS0+bWF4IHx8IGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3Vi
amVjdCB8fCBmcmFtZS0+ZmMgPT0gZCkKLSAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIC8qIENvbnRyb2wgbmV2
ZXIgZ2V0cyBoZXJlICovCi0gICAgICAgIH0KLQotICAgICAgLyogTWF4aW1pemUgY2FzZSAqLwot
Ci0gICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgZnJhbWUtPnBwID0gZnJhbWUtPmVwdHI7
Ci0KLSAgICAgICAgICB7Ci0gICAgICAgICAgcmVnaXN0ZXIgaW50IGQ7Ci0gICAgICAgICAgZm9y
IChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgaW50IGxlbiA9IDE7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9z
dWJqZWN0KSBicmVhazsKLSAgICAgICAgICAgIEdFVENIQVJMRU4oZCwgZnJhbWUtPmVwdHIsIGxl
bik7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmZjID09IGQpIGJyZWFrOwotICAgICAgICAgICAg
ZnJhbWUtPmVwdHIgKz0gbGVuOwotICAgICAgICAgICAgfQotICAgICAgICAgIGZvcig7OykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgIFJNQVRDSCg0NCwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+
ZXB0cmIsIDApOwotICAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJO
KHJyYyk7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHItLSA9PSBmcmFtZS0+cHApIGJyZWFr
OyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBwb3MgKi8KLSAgICAgICAgICAg
IEJBQ0tDSEFSKGZyYW1lLT5lcHRyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0KLSAg
ICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIC8q
IENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCi0KLSAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFy
YWN0ZXIgdHlwZSByZXBlYXRlZGx5OyBzZXZlcmFsIGRpZmZlcmVudCBvcGNvZGVzCi0gICAgc2hh
cmUgY29kZS4gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhlIGNvZGUgZm9yIHNpbmdsZSBjaGFy
YWN0ZXJzLCBidXQgd2UKLSAgICByZXBlYXQgaXQgaW4gdGhlIGludGVyZXN0cyBvZiBlZmZpY2ll
bmN5LiAqLwotCi0gICAgY2FzZSBPUF9UWVBFRVhBQ1Q6Ci0gICAgbWluID0gZnJhbWUtPm1heCA9
IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKLSAgICBtaW5pbWl6ZSA9IFRSVUU7Ci0gICAgZnJhbWUt
PmVjb2RlICs9IDM7Ci0gICAgZ290byBSRVBFQVRUWVBFOwotCi0gICAgY2FzZSBPUF9UWVBFVVBU
TzoKLSAgICBjYXNlIE9QX1RZUEVNSU5VUFRPOgotICAgIG1pbiA9IDA7Ci0gICAgZnJhbWUtPm1h
eCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKLSAgICBtaW5pbWl6ZSA9ICpmcmFtZS0+ZWNvZGUg
PT0gT1BfVFlQRU1JTlVQVE87Ci0gICAgZnJhbWUtPmVjb2RlICs9IDM7Ci0gICAgZ290byBSRVBF
QVRUWVBFOwotCi0gICAgY2FzZSBPUF9UWVBFU1RBUjoKLSAgICBjYXNlIE9QX1RZUEVNSU5TVEFS
OgotICAgIGNhc2UgT1BfVFlQRVBMVVM6Ci0gICAgY2FzZSBPUF9UWVBFTUlOUExVUzoKLSAgICBj
YXNlIE9QX1RZUEVRVUVSWToKLSAgICBjYXNlIE9QX1RZUEVNSU5RVUVSWToKLSAgICBjID0gKmZy
YW1lLT5lY29kZSsrIC0gT1BfVFlQRVNUQVI7Ci0gICAgbWluaW1pemUgPSAoYyAmIDEpICE9IDA7
Ci0gICAgbWluID0gcmVwX21pbltjXTsgICAgICAgICAgICAgICAgIC8qIFBpY2sgdXAgdmFsdWVz
IGZyb20gdGFibGVzOyAqLwotICAgIGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAgICAg
ICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCi0gICAgaWYgKGZyYW1lLT5tYXgg
PT0gMCkgZnJhbWUtPm1heCA9IElOVF9NQVg7Ci0KLSAgICAvKiBDb21tb24gY29kZSBmb3IgYWxs
IHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIgdHlwZSBtYXRjaGVzLiBOb3RlIHRoYXQKLSAgICBp
biBVVEYtOCBtb2RlLCAnLicgbWF0Y2hlcyBhIGNoYXJhY3RlciBvZiBhbnkgbGVuZ3RoLCBidXQg
Zm9yIHRoZSBvdGhlcgotICAgIGNoYXJhY3RlciB0eXBlcywgdGhlIHZhbGlkIGNoYXJhY3RlcnMg
YXJlIGFsbCBvbmUtYnl0ZSBsb25nLiAqLwotCi0gICAgUkVQRUFUVFlQRToKLSAgICBmcmFtZS0+
Y3R5cGUgPSAqZnJhbWUtPmVjb2RlKys7ICAgICAgLyogQ29kZSBmb3IgdGhlIGNoYXJhY3RlciB0
eXBlICovCi0KLSAgICAvKiBGaXJzdCwgZW5zdXJlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtYXRj
aGVzIGFyZSBwcmVzZW50LiBVc2UgaW5saW5lCi0gICAgY29kZSBmb3IgbWF4aW1pemluZyB0aGUg
c3BlZWQsIGFuZCBkbyB0aGUgdHlwZSB0ZXN0IG9uY2UgYXQgdGhlIHN0YXJ0Ci0gICAgKGkuZS4g
a2VlcCBpdCBvdXQgb2YgdGhlIGxvb3ApLiBBbHNvIHdlIGNhbiB0ZXN0IHRoYXQgdGhlcmUgYXJl
IGF0IGxlYXN0Ci0gICAgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIGJlZm9yZSB3ZSBzdGFy
dC4gVGhpcyBpc24ndCBhcyBlZmZlY3RpdmUgaW4KLSAgICBVVEYtOCBtb2RlLCBidXQgaXQgZG9l
cyBubyBoYXJtLiBTZXBhcmF0ZSB0aGUgVVRGLTggY29kZSBjb21wbGV0ZWx5IGFzIHRoYXQKLSAg
ICBpcyB0aWRpZXIuIEFsc28gc2VwYXJhdGUgdGhlIFVDUCBjb2RlLCB3aGljaCBjYW4gYmUgdGhl
IHNhbWUgZm9yIGJvdGggVVRGLTgKLSAgICBhbmQgc2luZ2xlLWJ5dGVzLiAqLwotCi0gICAgaWYg
KG1pbiA+IG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyKSBSUkVUVVJOKE1BVENIX05PTUFU
Q0gpOwotICAgIGlmIChtaW4gPiAwKQotICAgICAgewotICAgICAgc3dpdGNoKGZyYW1lLT5jdHlw
ZSkKLSAgICAgICAgewotICAgICAgICBjYXNlIE9QX0FOWToKLSAgICAgICAgZm9yIChpID0gMTsg
aSA8PSBtaW47IGkrKykKLSAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKGZyYW1lLT5lcHRyID49
IG1kLT5lbmRfc3ViamVjdCB8fCBJU19ORVdMSU5FKCpmcmFtZS0+ZXB0cikpCi0gICAgICAgICAg
ICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgICsrZnJhbWUtPmVwdHI7Ci0gICAg
ICAgICAgd2hpbGUgKGZyYW1lLT5lcHRyIDwgbWQtPmVuZF9zdWJqZWN0ICYmIElTTUlEQ0hBUigq
ZnJhbWUtPmVwdHIpKSBmcmFtZS0+ZXB0cisrOwotICAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6Ci0gICAgICAgIGZvciAoaSA9IDE7IGkgPD0g
bWluOyBpKyspCi0gICAgICAgICAgewotICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+
ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgR0VUQ0hBUklO
QyhjLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgaWYgKGMgPCAxMjggJiYgKG1kLT5jdHlwZXNb
Y10gJiBjdHlwZV9kaWdpdCkgIT0gMCkKLSAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRD
SCk7Ci0gICAgICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIE9QX0RJR0lU
OgotICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQotICAgICAgICAgIHsKLSAgICAg
ICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8Ci0gICAgICAgICAgICAg
KmZyYW1lLT5lcHRyID49IDEyOCB8fCAobWQtPmN0eXBlc1sqZnJhbWUtPmVwdHIrK10gJiBjdHlw
ZV9kaWdpdCkgPT0gMCkKLSAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAg
ICAgICAgLyogTm8gbmVlZCB0byBza2lwIG1vcmUgYnl0ZXMgLSB3ZSBrbm93IGl0J3MgYSAxLWJ5
dGUgY2hhcmFjdGVyICovCi0gICAgICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgICAgICBj
YXNlIE9QX05PVF9XSElURVNQQUNFOgotICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsr
KQotICAgICAgICAgIHsKLSAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJq
ZWN0IHx8Ci0gICAgICAgICAgICAgKCpmcmFtZS0+ZXB0ciA8IDEyOCAmJiAobWQtPmN0eXBlc1sq
ZnJhbWUtPmVwdHJdICYgY3R5cGVfc3BhY2UpICE9IDApKQotICAgICAgICAgICAgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKLSAgICAgICAgICB3aGlsZSAoKytmcmFtZS0+ZXB0ciA8IG1kLT5lbmRf
c3ViamVjdCAmJiBJU01JRENIQVIoKmZyYW1lLT5lcHRyKSk7Ci0gICAgICAgICAgfQotICAgICAg
ICBicmVhazsKLQotICAgICAgICBjYXNlIE9QX1dISVRFU1BBQ0U6Ci0gICAgICAgIGZvciAoaSA9
IDE7IGkgPD0gbWluOyBpKyspCi0gICAgICAgICAgewotICAgICAgICAgIGlmIChmcmFtZS0+ZXB0
ciA+PSBtZC0+ZW5kX3N1YmplY3QgfHwKLSAgICAgICAgICAgICAqZnJhbWUtPmVwdHIgPj0gMTI4
IHx8IChtZC0+Y3R5cGVzWypmcmFtZS0+ZXB0cisrXSAmIGN0eXBlX3NwYWNlKSA9PSAwKQotICAg
ICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICAvKiBObyBuZWVkIHRv
IHNraXAgbW9yZSBieXRlcyAtIHdlIGtub3cgaXQncyBhIDEtYnl0ZSBjaGFyYWN0ZXIgKi8KLSAg
ICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgT1BfTk9UX1dPUkRDSEFS
OgotICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQotICAgICAgICAgIHsKLSAgICAg
ICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8Ci0gICAgICAgICAgICAg
KCpmcmFtZS0+ZXB0ciA8IDEyOCAmJiAobWQtPmN0eXBlc1sqZnJhbWUtPmVwdHJdICYgY3R5cGVf
d29yZCkgIT0gMCkpCi0gICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAg
ICAgIHdoaWxlICgrK2ZyYW1lLT5lcHRyIDwgbWQtPmVuZF9zdWJqZWN0ICYmIElTTUlEQ0hBUigq
ZnJhbWUtPmVwdHIpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNh
c2UgT1BfV09SRENIQVI6Ci0gICAgICAgIGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCi0gICAg
ICAgICAgewotICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QgfHwK
LSAgICAgICAgICAgICAqZnJhbWUtPmVwdHIgPj0gMTI4IHx8IChtZC0+Y3R5cGVzWypmcmFtZS0+
ZXB0cisrXSAmIGN0eXBlX3dvcmQpID09IDApCi0gICAgICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOwotICAgICAgICAgIC8qIE5vIG5lZWQgdG8gc2tpcCBtb3JlIGJ5dGVzIC0gd2Uga25v
dyBpdCdzIGEgMS1ieXRlIGNoYXJhY3RlciAqLwotICAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfSU5U
RVJOQUwpOwotICAgICAgICB9ICAvKiBFbmQgc3dpdGNoKGZyYW1lLT5jdHlwZSkgKi8KLSAgICAg
IH0KLQotICAgIC8qIElmIG1pbiA9IG1heCwgY29udGludWUgYXQgdGhlIHNhbWUgbGV2ZWwgd2l0
aG91dCByZWN1cnNpbmcgKi8KLQotICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7
Ci0KLSAgICAvKiBJZiBtaW5pbWl6aW5nLCB3ZSBoYXZlIHRvIHRlc3QgdGhlIHJlc3Qgb2YgdGhl
IHBhdHRlcm4gYmVmb3JlIGVhY2gKLSAgICBzdWJzZXF1ZW50IG1hdGNoLiAqLwotCi0gICAgaWYg
KG1pbmltaXplKQotICAgICAgewotICAgICAgICB7Ci0gICAgICAgIGZvciAoZnJhbWUtPmZpID0g
bWluOzsgZnJhbWUtPmZpKyspCi0gICAgICAgICAgewotICAgICAgICAgIFJNQVRDSCg0OCwgZnJh
bWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hf
Tk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUt
Pm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9N
QVRDSCk7Ci0KLSAgICAgICAgICBHRVRDSEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsKLSAgICAgICAg
ICBzd2l0Y2goZnJhbWUtPmN0eXBlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgY2FzZSBP
UF9BTlk6Ci0gICAgICAgICAgICBpZiAoSVNfTkVXTElORShjKSkgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIE9QX05PVF9ESUdJ
VDoKLSAgICAgICAgICAgIGlmIChjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGln
aXQpICE9IDApCi0gICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSBPUF9ESUdJVDoKLSAgICAgICAgICAgIGlm
IChjID49IDEyOCB8fCAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX2RpZ2l0KSA9PSAwKQotICAgICAg
ICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAg
ICAgICAgICAgIGNhc2UgT1BfTk9UX1dISVRFU1BBQ0U6Ci0gICAgICAgICAgICBpZiAoYyA8IDEy
OCAmJiAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX3NwYWNlKSAhPSAwKQotICAgICAgICAgICAgICBS
UkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAg
IGNhc2UgT1BfV0hJVEVTUEFDRToKLSAgICAgICAgICAgIGlmICAoYyA+PSAxMjggfHwgKG1kLT5j
dHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgPT0gMCkKLSAgICAgICAgICAgICAgUlJFVFVSTihNQVRD
SF9OT01BVENIKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIE9QX05P
VF9XT1JEQ0hBUjoKLSAgICAgICAgICAgIGlmIChjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYg
Y3R5cGVfd29yZCkgIT0gMCkKLSAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIE9QX1dPUkRDSEFSOgotICAg
ICAgICAgICAgaWYgKGMgPj0gMTI4IHx8IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgPT0g
MCkKLSAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUlJFVFVSTihKU19SRUdF
WFBfRVJST1JfSU5URVJOQUwpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KLSAgICAgIH0KLQotICAgIC8q
IElmIG1heGltaXppbmcgaXQgaXMgd29ydGggdXNpbmcgaW5saW5lIGNvZGUgZm9yIHNwZWVkLCBk
b2luZyB0aGUgdHlwZQotICAgIHRlc3Qgb25jZSBhdCB0aGUgc3RhcnQgKGkuZS4ga2VlcCBpdCBv
dXQgb2YgdGhlIGxvb3ApLiAqLwotCi0gICAgZWxzZQotICAgICAgewotICAgICAgZnJhbWUtPnBw
ID0gZnJhbWUtPmVwdHI7ICAvKiBSZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkICovCi0KLSAgICAg
ICAgewotICAgICAgICBzd2l0Y2goZnJhbWUtPmN0eXBlKQotICAgICAgICAgIHsKLSAgICAgICAg
ICBjYXNlIE9QX0FOWToKLQotICAgICAgICAgIC8qIFNwZWNpYWwgY29kZSBpcyByZXF1aXJlZCBm
b3IgVVRGOCwgYnV0IHdoZW4gdGhlIG1heGltdW0gaXMgdW5saW1pdGVkCi0gICAgICAgICAgd2Ug
ZG9uJ3QgbmVlZCBpdCwgc28gd2UgcmVwZWF0IHRoZSBub24tVVRGOCBjb2RlLiBUaGlzIGlzIHBy
b2JhYmx5Ci0gICAgICAgICAgd29ydGggaXQsIGJlY2F1c2UgLiogaXMgcXVpdGUgYSBjb21tb24g
aWRpb20uICovCi0KLSAgICAgICAgICBpZiAoZnJhbWUtPm1heCA8IElOVF9NQVgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgZm9yIChpID0gbWluOyBpIDwg
ZnJhbWUtPm1heDsgaSsrKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAo
ZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8IElTX05FV0xJTkUoKmZyYW1lLT5lcHRy
KSkgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmVwdHIrKzsKLSAgICAgICAgICAgICAg
ICB3aGlsZSAoZnJhbWUtPmVwdHIgPCBtZC0+ZW5kX3N1YmplY3QgJiYgKCpmcmFtZS0+ZXB0ciAm
IDB4YzApID09IDB4ODApIGZyYW1lLT5lcHRyKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAvKiBIYW5kbGUgdW5saW1pdGVk
IFVURi04IHJlcGVhdCAqLwotCi0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgIGZvciAoaSA9IG1pbjsgaSA8IGZyYW1lLT5tYXg7IGkr
KykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyID49
IG1kLT5lbmRfc3ViamVjdCB8fCBJU19ORVdMSU5FKCpmcmFtZS0+ZXB0cikpIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGZyYW1lLT5lcHRyKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6Ci0gICAgICAgICAgZm9yIChpID0g
bWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgaW50
IGxlbiA9IDE7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0
KSBicmVhazsKLSAgICAgICAgICAgIEdFVENIQVJMRU4oYywgZnJhbWUtPmVwdHIsIGxlbik7Ci0g
ICAgICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX2RpZ2l0KSAh
PSAwKSBicmVhazsKLSAgICAgICAgICAgIGZyYW1lLT5lcHRyKz0gbGVuOwotICAgICAgICAgICAg
fQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgY2FzZSBPUF9ESUdJVDoKLSAgICAgICAg
ICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICBpbnQgbGVuID0gMTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+
ZW5kX3N1YmplY3QpIGJyZWFrOwotICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBmcmFtZS0+ZXB0
ciwgbGVuKTsKLSAgICAgICAgICAgIGlmIChjID49IDEyOCB8fChtZC0+Y3R5cGVzW2NdICYgY3R5
cGVfZGlnaXQpID09IDApIGJyZWFrOwotICAgICAgICAgICAgZnJhbWUtPmVwdHIrPSBsZW47Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlIE9QX05PVF9X
SElURVNQQUNFOgotICAgICAgICAgIGZvciAoaSA9IG1pbjsgaSA8IGZyYW1lLT5tYXg7IGkrKykK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGludCBsZW4gPSAxOwotICAgICAgICAgICAgaWYg
KGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgYnJlYWs7Ci0gICAgICAgICAgICBHRVRD
SEFSTEVOKGMsIGZyYW1lLT5lcHRyLCBsZW4pOwotICAgICAgICAgICAgaWYgKGMgPCAxMjggJiYg
KG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgIT0gMCkgYnJlYWs7Ci0gICAgICAgICAgICBm
cmFtZS0+ZXB0cis9IGxlbjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBicmVhazsKLQotICAg
ICAgICAgIGNhc2UgT1BfV0hJVEVTUEFDRToKLSAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBm
cmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgbGVuID0gMTsK
LSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOwot
ICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBmcmFtZS0+ZXB0ciwgbGVuKTsKLSAgICAgICAgICAg
IGlmIChjID49IDEyOCB8fChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2UpID09IDApIGJyZWFr
OwotICAgICAgICAgICAgZnJhbWUtPmVwdHIrPSBsZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlIE9QX05PVF9XT1JEQ0hBUjoKLSAgICAgICAgICBm
b3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICBpbnQgbGVuID0gMTsKLSAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5k
X3N1YmplY3QpIGJyZWFrOwotICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBmcmFtZS0+ZXB0ciwg
bGVuKTsKLSAgICAgICAgICAgIGlmIChjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVf
d29yZCkgIT0gMCkgYnJlYWs7Ci0gICAgICAgICAgICBmcmFtZS0+ZXB0cis9IGxlbjsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgT1BfV09SRENIQVI6
Ci0gICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgaW50IGxlbiA9IDE7Ci0gICAgICAgICAgICBpZiAoZnJhbWUtPmVw
dHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKLSAgICAgICAgICAgIEdFVENIQVJMRU4oYywg
ZnJhbWUtPmVwdHIsIGxlbik7Ci0gICAgICAgICAgICBpZiAoYyA+PSAxMjggfHwgKG1kLT5jdHlw
ZXNbY10gJiBjdHlwZV93b3JkKSA9PSAwKSBicmVhazsKLSAgICAgICAgICAgIGZyYW1lLT5lcHRy
Kz0gbGVuOwotICAgICAgICAgICAgfQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICBSUkVUVVJOKEpTX1JFR0VYUF9FUlJPUl9JTlRFUk5BTCk7Ci0gICAg
ICAgICAgfQotCi0gICAgICAgIC8qIGZyYW1lLT5lcHRyIGlzIG5vdyBwYXN0IHRoZSBlbmQgb2Yg
dGhlIG1heGltdW0gcnVuICovCi0KLSAgICAgICAgZm9yKDs7KQotICAgICAgICAgIHsKLSAgICAg
ICAgICBSTUFUQ0goNTIsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAg
ICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAgICBpZiAo
ZnJhbWUtPmVwdHItLSA9PSBmcmFtZS0+cHApIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmll
ZCBhdCBvcmlnaW5hbCBwb3MgKi8KLSAgICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0cik7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgIC8qIEdldCBoZXJlIGlmIHdlIGNhbid0IG1h
a2UgaXQgbWF0Y2ggd2l0aCBhbnkgcGVybWl0dGVkIHJlcGV0aXRpb25zICovCi0KLSAgICAgIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICB9Ci0gICAgLyogQ29udHJvbCBuZXZlciBnZXRz
IGhlcmUgKi8KLQotICAgIGRlZmF1bHQ6Ci0gICAgICAvKiBPcGVuaW5nIGNhcHR1cmluZyBicmFj
a2V0LiBJZiB0aGVyZSBpcyBzcGFjZSBpbiB0aGUgb2Zmc2V0IHZlY3Rvciwgc2F2ZQotICAgICAg
dGhlIGN1cnJlbnQgc3ViamVjdCBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBzbG90IGF0IHRoZSB0
b3Agb2YgdGhlIHZlY3Rvci4gV2UKLSAgICAgIG11c3RuJ3QgY2hhbmdlIHRoZSBjdXJyZW50IHZh
bHVlcyBvZiB0aGUgZGF0YSBzbG90LCBiZWNhdXNlIHRoZXkgbWF5IGJlIHNldAotICAgICAgZnJv
bSBhIHByZXZpb3VzIGl0ZXJhdGlvbiBvZiB0aGlzIGdyb3VwLCBhbmQgYmUgcmVmZXJyZWQgdG8g
YnkgYSByZWZlcmVuY2UKLSAgICAgIGluc2lkZSB0aGUgZ3JvdXAuCi0KLSAgICAgIElmIHRoZSBi
cmFja2V0IGZhaWxzIHRvIG1hdGNoLCB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhpcyB2YWx1ZSBhbmQg
YWxzbyB0aGUKLSAgICAgIHZhbHVlcyBvZiB0aGUgZmluYWwgb2Zmc2V0cywgaW4gY2FzZSB0aGV5
IHdlcmUgc2V0IGJ5IGEgcHJldmlvdXMgaXRlcmF0aW9uIG9mCi0gICAgICB0aGUgc2FtZSBicmFj
a2V0LgotCi0gICAgICBJZiB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgaW4gdGhlIG9mZnNldCB2
ZWN0b3IsIHRyZWF0IHRoaXMgYXMgaWYgaXQgd2VyZSBhCi0gICAgICBub24tY2FwdHVyaW5nIGJy
YWNrZXQuIERvbid0IHdvcnJ5IGFib3V0IHNldHRpbmcgdGhlIGZsYWcgZm9yIHRoZSBlcnJvciBj
YXNlCi0gICAgICBoZXJlOyB0aGF0IGlzIGhhbmRsZWQgaW4gdGhlIGNvZGUgZm9yIEtFVC4gKi8K
LQotICAgICAgaWYgKCpmcmFtZS0+ZWNvZGUgPiBPUF9CUkEpCi0gICAgICAgIHsKLSAgICAgICAg
ZnJhbWUtPm51bWJlciA9ICpmcmFtZS0+ZWNvZGUgLSBPUF9CUkE7Ci0KLSAgICAgICAgLyogRm9y
IGV4dGVuZGVkIGV4dHJhY3Rpb24gYnJhY2tldHMgKGxhcmdlIG51bWJlciksIHdlIGhhdmUgdG8g
ZmlzaCBvdXQgdGhlCi0gICAgICAgIG51bWJlciBmcm9tIGEgZHVtbXkgb3Bjb2RlIGF0IHRoZSBz
dGFydC4gKi8KLQotICAgICAgICBpZiAoZnJhbWUtPm51bWJlciA+IEVYVFJBQ1RfQkFTSUNfTUFY
KQotICAgICAgICAgIGZyYW1lLT5udW1iZXIgPSBHRVQyKGZyYW1lLT5lY29kZSwgMitMSU5LX1NJ
WkUpOwotICAgICAgICBmcmFtZS0+b2Zmc2V0ID0gZnJhbWUtPm51bWJlciA8PCAxOwotCi0jaWZk
ZWYgREVCVUcKLSAgICAgICAgcHJpbnRmKCJzdGFydCBicmFja2V0ICVkIHN1YmplY3Q9IiwgZnJh
bWUtPm51bWJlcik7Ci0gICAgICAgIHBjaGFycyhmcmFtZS0+ZXB0ciwgMTYsIFRSVUUsIG1kKTsK
LSAgICAgICAgcHJpbnRmKCJcbiIpOwotI2VuZGlmCi0KLSAgICAgICAgaWYgKGZyYW1lLT5vZmZz
ZXQgPCBtZC0+b2Zmc2V0X21heCkKLSAgICAgICAgICB7Ci0gICAgICAgICAgZnJhbWUtPnNhdmVf
b2Zmc2V0MSA9IG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXRdOwotICAgICAgICAgIGZy
YW1lLT5zYXZlX29mZnNldDIgPSBtZC0+b2Zmc2V0X3ZlY3RvcltmcmFtZS0+b2Zmc2V0KzFdOwot
ICAgICAgICAgIGZyYW1lLT5zYXZlX29mZnNldDMgPSBtZC0+b2Zmc2V0X3ZlY3RvclttZC0+b2Zm
c2V0X2VuZCAtIGZyYW1lLT5udW1iZXJdOwotCi0gICAgICAgICAgRFBSSU5URigoInNhdmluZyAl
ZCAlZCAlZFxuIiwgZnJhbWUtPnNhdmVfb2Zmc2V0MSwgZnJhbWUtPnNhdmVfb2Zmc2V0MiwgZnJh
bWUtPnNhdmVfb2Zmc2V0MykpOwotICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW21kLT5vZmZz
ZXRfZW5kIC0gZnJhbWUtPm51bWJlcl0gPSBmcmFtZS0+ZXB0ciAtIG1kLT5zdGFydF9zdWJqZWN0
OwotCi0gICAgICAgICAgZG8KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIFJNQVRDSCgxLCBm
cmFtZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFLCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXAp
OwotICAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7Ci0g
ICAgICAgICAgICBmcmFtZS0+ZWNvZGUgKz0gR0VUKGZyYW1lLT5lY29kZSwgMSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUgPT0gT1BfQUxUKTsKLQotICAg
ICAgICAgIERQUklOVEYoKCJicmFja2V0ICVkIGZhaWxlZFxuIiwgZnJhbWUtPm51bWJlcikpOwot
Ci0gICAgICAgICAgbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldF0gPSBmcmFtZS0+c2F2
ZV9vZmZzZXQxOwotICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXQrMV0g
PSBmcmFtZS0+c2F2ZV9vZmZzZXQyOwotICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW21kLT5v
ZmZzZXRfZW5kIC0gZnJhbWUtPm51bWJlcl0gPSBmcmFtZS0+c2F2ZV9vZmZzZXQzOwotCi0gICAg
ICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgLyog
SW5zdWZmaWNpZW50IHJvb20gZm9yIHNhdmluZyBjYXB0dXJlZCBjb250ZW50cyAqLwotCi0gICAg
ICAgIGdvdG8gTk9OX0NBUFRVUklOR19CUkFDS0VUOwotICAgICAgICB9Ci0KLSAgICAvKiBUaGVy
ZSdzIGJlZW4gc29tZSBob3JyaWJsZSBkaXNhc3Rlci4gU2luY2UgYWxsIGNvZGVzID4gT1BfQlJB
IGFyZQotICAgIGZvciBjYXB0dXJpbmcgYnJhY2tldHMsIGFuZCB0aGVyZSBzaG91bGRuJ3QgYmUg
YW55IGdhcHMgYmV0d2VlbiAwIGFuZAotICAgIE9QX0JSQSwgYXJyaXZhbCBoZXJlIGNhbiBvbmx5
IG1lYW4gdGhlcmUgaXMgc29tZXRoaW5nIHNlcmlvdXNseSB3cm9uZwotICAgIGluIHRoZSBjb2Rl
IGFib3ZlIG9yIHRoZSBPUF94eHggZGVmaW5pdGlvbnMuICovCi0KLSAgICBEUFJJTlRGKCgiVW5r
bm93biBvcGNvZGUgJWRcbiIsICpmcmFtZS0+ZWNvZGUpKTsKLSAgICBSUkVUVVJOKEpTX1JFR0VY
UF9FUlJPUl9JTlRFUk5BTCk7Ci0gICAgfQotCi0gIC8qIERvIG5vdCBzdGljayBhbnkgY29kZSBp
biBoZXJlIHdpdGhvdXQgbXVjaCB0aG91Z2h0OyBpdCBpcyBhc3N1bWVkCi0gIHRoYXQgImNvbnRp
bnVlIiBpbiB0aGUgY29kZSBhYm92ZSBjb21lcyBvdXQgdG8gaGVyZSB0byByZXBlYXQgdGhlIG1h
aW4KLSAgbG9vcC4gKi8KLQotICB9ICAgICAgICAgICAgIC8qIEVuZCBvZiBtYWluIGxvb3AgKi8K
LS8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0KLSNpZm5kZWYgX19HTlVDX18KLQot
UlJFVFVSTl9TV0lUQ0g6Ci1zd2l0Y2ggKGZyYW1lLT53aGVyZSkKLSAgewotICBjYXNlIDE6IGdv
dG8gUlJFVFVSTl8xOwotICBjYXNlIDI6IGdvdG8gUlJFVFVSTl8yOwotICBjYXNlIDY6IGdvdG8g
UlJFVFVSTl82OwotICBjYXNlIDc6IGdvdG8gUlJFVFVSTl83OwotICBjYXNlIDk6IGdvdG8gUlJF
VFVSTl85OwotICBjYXNlIDEwOiBnb3RvIFJSRVRVUk5fMTA7Ci0gIGNhc2UgMTE6IGdvdG8gUlJF
VFVSTl8xMTsKLSAgY2FzZSAxMjogZ290byBSUkVUVVJOXzEyOwotICBjYXNlIDEzOiBnb3RvIFJS
RVRVUk5fMTM7Ci0gIGNhc2UgMTQ6IGdvdG8gUlJFVFVSTl8xNDsKLSAgY2FzZSAxNTogZ290byBS
UkVUVVJOXzE1OwotICBjYXNlIDE2OiBnb3RvIFJSRVRVUk5fMTY7Ci0gIGNhc2UgMTc6IGdvdG8g
UlJFVFVSTl8xNzsKLSAgY2FzZSAxODogZ290byBSUkVUVVJOXzE4OwotICBjYXNlIDE5OiBnb3Rv
IFJSRVRVUk5fMTk7Ci0gIGNhc2UgMjA6IGdvdG8gUlJFVFVSTl8yMDsKLSAgY2FzZSAyMTogZ290
byBSUkVUVVJOXzIxOwotICBjYXNlIDIyOiBnb3RvIFJSRVRVUk5fMjI7Ci0gIGNhc2UgMjQ6IGdv
dG8gUlJFVFVSTl8yNDsKLSAgY2FzZSAyNjogZ290byBSUkVUVVJOXzI2OwotICBjYXNlIDI3OiBn
b3RvIFJSRVRVUk5fMjc7Ci0gIGNhc2UgMjg6IGdvdG8gUlJFVFVSTl8yODsKLSAgY2FzZSAyOTog
Z290byBSUkVUVVJOXzI5OwotICBjYXNlIDMwOiBnb3RvIFJSRVRVUk5fMzA7Ci0gIGNhc2UgMzE6
IGdvdG8gUlJFVFVSTl8zMTsKLSAgY2FzZSAzODogZ290byBSUkVUVVJOXzM4OwotICBjYXNlIDQw
OiBnb3RvIFJSRVRVUk5fNDA7Ci0gIGNhc2UgNDI6IGdvdG8gUlJFVFVSTl80MjsKLSAgY2FzZSA0
NDogZ290byBSUkVUVVJOXzQ0OwotICBjYXNlIDQ4OiBnb3RvIFJSRVRVUk5fNDg7Ci0gIGNhc2Ug
NTI6IGdvdG8gUlJFVFVSTl81MjsKLSAgfQotCi1hYm9ydCgpOwotcmV0dXJuIDA7Ci0KLSNlbmRp
ZgotCi19Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKLSogICAgICAgICBFeGVjdXRlIGEgUmVndWxhciBFeHByZXNzaW9uICAgICAgICAgICAq
Ci0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0v
KiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgYSBjb21waWxlZCByZSB0byBhIHN1YmplY3Qgc3RyaW5n
IGFuZCBwaWNrcyBvdXQKLXBvcnRpb25zIG9mIHRoZSBzdHJpbmcgaWYgaXQgbWF0Y2hlcy4gVHdv
IGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IgYXJlIHNldCBmb3IKLWVhY2ggc3Vic3RyaW5nOiB0aGUg
b2Zmc2V0cyB0byB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3Vic3RyaW5nLgotCi1Bcmd1bWVu
dHM6Ci0gIGFyZ3VtZW50X3JlICAgICBwb2ludHMgdG8gdGhlIGNvbXBpbGVkIGV4cHJlc3Npb24K
LSAgZXh0cmFfZGF0YSAgICAgIHBvaW50cyB0byBleHRyYSBkYXRhIG9yIGlzIE5VTEwKLSAgc3Vi
amVjdCAgICAgICAgIHBvaW50cyB0byB0aGUgc3ViamVjdCBzdHJpbmcKLSAgbGVuZ3RoICAgICAg
ICAgIGxlbmd0aCBvZiBzdWJqZWN0IHN0cmluZyAobWF5IGNvbnRhaW4gYmluYXJ5IHplcm9zKQot
ICBzdGFydF9vZmZzZXQgICAgd2hlcmUgdG8gc3RhcnQgaW4gdGhlIHN1YmplY3Qgc3RyaW5nCi0g
IG9wdGlvbnMgICAgICAgICBvcHRpb24gYml0cwotICBvZmZzZXRzICAgICAgICAgcG9pbnRzIHRv
IGEgdmVjdG9yIG9mIGludHMgdG8gYmUgZmlsbGVkIGluIHdpdGggb2Zmc2V0cwotICBvZmZzZXRj
b3VudCAgICAgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCi0KLVJldHVybnM6
ICAgICAgICAgID4gMCA9PiBzdWNjZXNzOyB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRz
IGZpbGxlZCBpbgotICAgICAgICAgICAgICAgICAgPSAwID0+IHN1Y2Nlc3MsIGJ1dCBvZmZzZXRz
IGlzIG5vdCBiaWcgZW5vdWdoCi0gICAgICAgICAgICAgICAgICAgLTEgPT4gZmFpbGVkIHRvIG1h
dGNoCi0gICAgICAgICAgICAgICAgIDwgLTEgPT4gc29tZSBraW5kIG9mIHVuZXhwZWN0ZWQgcHJv
YmxlbQotKi8KLQotaW50Ci1qc1JlZ0V4cEV4ZWN1dGUoY29uc3QgcGNyZSAqYXJndW1lbnRfcmUs
Ci0gIGNvbnN0IEpTUmVnRXhwQ2hhciogc3ViamVjdCwgaW50IGxlbmd0aCwgaW50IHN0YXJ0X29m
ZnNldCwgaW50ICpvZmZzZXRzLAotICBpbnQgb2Zmc2V0Y291bnQpCi17Ci1pbnQgcmMsIHJlc2V0
Y291bnQsIG9jb3VudDsKLWludCBmaXJzdF9ieXRlID0gLTE7Ci1pbnQgcmVxX2J5dGUgPSAtMTsK
LWludCByZXFfYnl0ZTIgPSAtMTsKLUJPT0wgdXNpbmdfdGVtcG9yYXJ5X29mZnNldHMgPSBGQUxT
RTsKLUJPT0wgZmlyc3RfYnl0ZV9jYXNlbGVzcyA9IEZBTFNFOwotQk9PTCBzdGFydGxpbmU7Ci1C
T09MIHJlcV9ieXRlX2Nhc2VsZXNzID0gRkFMU0U7Ci1tYXRjaF9kYXRhIG1hdGNoX2Jsb2NrOwot
VVNQVFIgc3RhcnRfbWF0Y2ggPSAoVVNQVFIpc3ViamVjdCArIHN0YXJ0X29mZnNldDsKLVVTUFRS
IGVuZF9zdWJqZWN0OwotVVNQVFIgcmVxX2J5dGVfcHRyID0gc3RhcnRfbWF0Y2ggLSAxOwotY29u
c3QgdXNjaGFyICpzdGFydF9jb2RlOwotCi1jb25zdCByZWFsX3BjcmUgKmV4dGVybmFsX3JlID0g
KGNvbnN0IHJlYWxfcGNyZSAqKWFyZ3VtZW50X3JlOwotY29uc3QgcmVhbF9wY3JlICpyZSA9IGV4
dGVybmFsX3JlOwotCi0vKiBQbGF1c2liaWxpdHkgY2hlY2tzICovCi0KLUFTU0VSVChyZSk7Ci1B
U1NFUlQoc3ViamVjdCk7Ci1BU1NFUlQob2Zmc2V0Y291bnQgPj0gMCk7Ci1BU1NFUlQob2Zmc2V0
cyB8fCBvZmZzZXRjb3VudCA9PSAwKTsKLQotLyogU2V0IHVwIG90aGVyIGRhdGEgKi8KLQotc3Rh
cnRsaW5lID0gKHJlLT5vcHRpb25zICYgUENSRV9TVEFSVExJTkUpICE9IDA7Ci0KLS8qIFRoZSBj
b2RlIHN0YXJ0cyBhZnRlciB0aGUgcmVhbF9wY3JlIGJsb2NrIGFuZCB0aGUgY2FwdHVyZSBuYW1l
IHRhYmxlLiAqLwotCi1zdGFydF9jb2RlID0gKGNvbnN0IHVzY2hhciAqKShleHRlcm5hbF9yZSAr
IDEpOwotCi1tYXRjaF9ibG9jay5zdGFydF9zdWJqZWN0ID0gKFVTUFRSKXN1YmplY3Q7Ci1tYXRj
aF9ibG9jay5lbmRfc3ViamVjdCA9IG1hdGNoX2Jsb2NrLnN0YXJ0X3N1YmplY3QgKyBsZW5ndGg7
Ci1lbmRfc3ViamVjdCA9IG1hdGNoX2Jsb2NrLmVuZF9zdWJqZWN0OwotCi1tYXRjaF9ibG9jay5s
Y2MgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGxjY19vZmZzZXQ7Ci1tYXRjaF9ibG9jay5jdHlw
ZXMgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGN0eXBlc19vZmZzZXQ7Ci0KLW1hdGNoX2Jsb2Nr
Lm11bHRpbGluZSA9IChyZS0+b3B0aW9ucyAmIFBDUkVfTVVMVElMSU5FKSAhPSAwOwotbWF0Y2hf
YmxvY2suY2FzZWxlc3MgPSAocmUtPm9wdGlvbnMgJiBQQ1JFX0NBU0VMRVNTKSAhPSAwOwotCi0v
KiBJZiB0aGUgZXhwcmVzc2lvbiBoYXMgZ290IG1vcmUgYmFjayByZWZlcmVuY2VzIHRoYW4gdGhl
IG9mZnNldHMgc3VwcGxpZWQgY2FuCi1ob2xkLCB3ZSBnZXQgYSB0ZW1wb3JhcnkgY2h1bmsgb2Yg
d29ya2luZyBzdG9yZSB0byB1c2UgZHVyaW5nIHRoZSBtYXRjaGluZy4KLU90aGVyd2lzZSwgd2Ug
Y2FuIHVzZSB0aGUgdmVjdG9yIHN1cHBsaWVkLCByb3VuZGluZyBkb3duIGl0cyBzaXplIHRvIGEg
bXVsdGlwbGUKLW9mIDMuICovCi0KLW9jb3VudCA9IG9mZnNldGNvdW50IC0gKG9mZnNldGNvdW50
ICUgMyk7Ci0KLWlmIChyZS0+dG9wX2JhY2tyZWYgPiAwICYmIHJlLT50b3BfYmFja3JlZiA+PSBv
Y291bnQvMykKLSAgewotICBvY291bnQgPSByZS0+dG9wX2JhY2tyZWYgKiAzICsgMzsKLSAgbWF0
Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciA9IChpbnQgKikocGNyZV9tYWxsb2MpKG9jb3VudCAqIHNp
emVvZihpbnQpKTsKLSAgaWYgKG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IgPT0gTlVMTCkgcmV0
dXJuIEpTX1JFR0VYUF9FUlJPUl9OT01FTU9SWTsKLSAgdXNpbmdfdGVtcG9yYXJ5X29mZnNldHMg
PSBUUlVFOwotICBEUFJJTlRGKCgiR290IG1lbW9yeSB0byBob2xkIGJhY2sgcmVmZXJlbmNlc1xu
IikpOwotICB9Ci1lbHNlIG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IgPSBvZmZzZXRzOwotCi1t
YXRjaF9ibG9jay5vZmZzZXRfZW5kID0gb2NvdW50OwotbWF0Y2hfYmxvY2sub2Zmc2V0X21heCA9
ICgyKm9jb3VudCkvMzsKLW1hdGNoX2Jsb2NrLm9mZnNldF9vdmVyZmxvdyA9IEZBTFNFOwotCi0v
KiBDb21wdXRlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBvZmZzZXRzIHRoYXQgd2UgbmVlZCB0byBy
ZXNldCBlYWNoIHRpbWUuIERvaW5nCi10aGlzIG1ha2VzIGEgaHVnZSBkaWZmZXJlbmNlIHRvIGV4
ZWN1dGlvbiB0aW1lIHdoZW4gdGhlcmUgYXJlbid0IG1hbnkgYnJhY2tldHMKLWluIHRoZSBwYXR0
ZXJuLiAqLwotCi1yZXNldGNvdW50ID0gMiArIHJlLT50b3BfYnJhY2tldCAqIDI7Ci1pZiAocmVz
ZXRjb3VudCA+IG9mZnNldGNvdW50KSByZXNldGNvdW50ID0gb2NvdW50OwotCi0vKiBSZXNldCB0
aGUgd29ya2luZyB2YXJpYWJsZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBleHRyYWN0aW9uLiBUaGVz
ZSBzaG91bGQKLW5ldmVyIGJlIHVzZWQgdW5sZXNzIHByZXZpb3VzbHkgc2V0LCBidXQgdGhleSBn
ZXQgc2F2ZWQgYW5kIHJlc3RvcmVkLCBhbmQgc28gd2UKLWluaXRpYWxpemUgdGhlbSB0byBhdm9p
ZCByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbG9jYXRpb25zLiAqLwotCi1pZiAobWF0Y2hfYmxvY2su
b2Zmc2V0X3ZlY3RvciAhPSBOVUxMKQotICB7Ci0gIHJlZ2lzdGVyIGludCAqaXB0ciA9IG1hdGNo
X2Jsb2NrLm9mZnNldF92ZWN0b3IgKyBvY291bnQ7Ci0gIHJlZ2lzdGVyIGludCAqaWVuZCA9IGlw
dHIgLSByZXNldGNvdW50LzIgKyAxOwotICB3aGlsZSAoLS1pcHRyID49IGllbmQpICppcHRyID0g
LTE7Ci0gIH0KLQotLyogU2V0IHVwIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gbWF0Y2gsIGlmIGF2
YWlsYWJsZS4gVGhlIGZpcnN0X2J5dGUgdmFsdWUgaXMKLW5ldmVyIHNldCBmb3IgYW4gYW5jaG9y
ZWQgcmVndWxhciBleHByZXNzaW9uLCBidXQgdGhlIGFuY2hvcmluZyBtYXkgYmUgZm9yY2VkCi1h
dCBydW4gdGltZSwgc28gd2UgaGF2ZSB0byB0ZXN0IGZvciBhbmNob3JpbmcuIFRoZSBmaXJzdCBj
aGFyIG1heSBiZSB1bnNldCBmb3IKLWFuIHVuYW5jaG9yZWQgcGF0dGVybiwgb2YgY291cnNlLiBJ
ZiB0aGVyZSdzIG5vIGZpcnN0IGNoYXIgYW5kIHRoZSBwYXR0ZXJuIHdhcwotc3R1ZGllZCwgdGhl
cmUgbWF5IGJlIGEgYml0bWFwIG9mIHBvc3NpYmxlIGZpcnN0IGNoYXJhY3RlcnMuICovCi0KLSAg
ewotICBpZiAoKHJlLT5vcHRpb25zICYgUENSRV9GSVJTVFNFVCkgIT0gMCkKLSAgICB7Ci0gICAg
Zmlyc3RfYnl0ZSA9IHJlLT5maXJzdF9ieXRlICYgMjU1OwotICAgIGlmICgoZmlyc3RfYnl0ZV9j
YXNlbGVzcyA9ICgocmUtPmZpcnN0X2J5dGUgJiBSRVFfQ0FTRUxFU1MpICE9IDApKSA9PSBUUlVF
KQotICAgICAgZmlyc3RfYnl0ZSA9IG1hdGNoX2Jsb2NrLmxjY1tmaXJzdF9ieXRlXTsKLSAgICB9
Ci0gIH0KLQotLyogRm9yIGFuY2hvcmVkIG9yIHVuYW5jaG9yZWQgbWF0Y2hlcywgdGhlcmUgbWF5
IGJlIGEgImxhc3Qga25vd24gcmVxdWlyZWQKLWNoYXJhY3RlciIgc2V0LiAqLwotCi1pZiAoKHJl
LT5vcHRpb25zICYgUENSRV9SRVFDSFNFVCkgIT0gMCkKLSAgewotICByZXFfYnl0ZSA9IHJlLT5y
ZXFfYnl0ZSAmIDI1NTsKLSAgcmVxX2J5dGVfY2FzZWxlc3MgPSAocmUtPnJlcV9ieXRlICYgUkVR
X0NBU0VMRVNTKSAhPSAwOwotICByZXFfYnl0ZTIgPSAoX3BjcmVfZGVmYXVsdF90YWJsZXMgKyBm
Y2Nfb2Zmc2V0KVtyZXFfYnl0ZV07ICAvKiBjYXNlIGZsaXBwZWQgKi8KLSAgfQotCi0vKiBMb29w
IGZvciBoYW5kbGluZyB1bmFuY2hvcmVkIHJlcGVhdGVkIG1hdGNoaW5nIGF0dGVtcHRzOyBmb3Ig
YW5jaG9yZWQgcmVnZXhzCi10aGUgbG9vcCBydW5zIGp1c3Qgb25jZS4gKi8KLQotZG8KLSAgewot
ICBVU1BUUiBzYXZlX2VuZF9zdWJqZWN0ID0gZW5kX3N1YmplY3Q7Ci0KLSAgLyogUmVzZXQgdGhl
IG1heGltdW0gbnVtYmVyIG9mIGV4dHJhY3Rpb25zIHdlIG1pZ2h0IHNlZS4gKi8KLQotICBpZiAo
bWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciAhPSBOVUxMKQotICAgIHsKLSAgICByZWdpc3RlciBp
bnQgKmlwdHIgPSBtYXRjaF9ibG9jay5vZmZzZXRfdmVjdG9yOwotICAgIHJlZ2lzdGVyIGludCAq
aWVuZCA9IGlwdHIgKyByZXNldGNvdW50OwotICAgIHdoaWxlIChpcHRyIDwgaWVuZCkgKmlwdHIr
KyA9IC0xOwotICAgIH0KLQotICAvKiBBZHZhbmNlIHRvIGEgdW5pcXVlIGZpcnN0IGNoYXIgaWYg
cG9zc2libGUuIElmIGZpcnN0bGluZSBpcyBUUlVFLCB0aGUKLSAgc3RhcnQgb2YgdGhlIG1hdGNo
IGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBmaXJzdCBsaW5lIG9mIGEgbXVsdGlsaW5lIHN0cmluZy4K
LSAgSW1wbGVtZW50IHRoaXMgYnkgdGVtcG9yYXJpbHkgYWRqdXN0aW5nIGVuZF9zdWJqZWN0IHNv
IHRoYXQgd2Ugc3RvcCBzY2FubmluZwotICBhdCBhIG5ld2xpbmUuIElmIHRoZSBtYXRjaCBmYWls
cyBhdCB0aGUgbmV3bGluZSwgbGF0ZXIgY29kZSBicmVha3MgdGhpcyBsb29wLgotICAqLwotCi0g
IC8qIE5vdyB0ZXN0IGZvciBhIHVuaXF1ZSBmaXJzdCBieXRlICovCi0KLSAgaWYgKGZpcnN0X2J5
dGUgPj0gMCkKLSAgICB7Ci0gICAgcGNyZV91Y2hhciBmaXJzdF9jaGFyID0gZmlyc3RfYnl0ZTsK
LSAgICBpZiAoZmlyc3RfYnl0ZV9jYXNlbGVzcykKLSAgICAgIHdoaWxlIChzdGFydF9tYXRjaCA8
IGVuZF9zdWJqZWN0KQotICAgICAgICB7Ci0gICAgICAgIGludCBzbSA9ICpzdGFydF9tYXRjaDsK
LSAgICAgICAgaWYgKHNtID4gMTI3KQotICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAobWF0
Y2hfYmxvY2subGNjW3NtXSA9PSBmaXJzdF9jaGFyKQotICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBzdGFydF9tYXRjaCsrOwotICAgICAgICB9Ci0gICAgZWxzZQotICAgICAgd2hpbGUgKHN0YXJ0
X21hdGNoIDwgZW5kX3N1YmplY3QgJiYgKnN0YXJ0X21hdGNoICE9IGZpcnN0X2NoYXIpCi0gICAg
ICAgIHN0YXJ0X21hdGNoKys7Ci0gICAgfQotCi0gIC8qIE9yIHRvIGp1c3QgYWZ0ZXIgXG4gZm9y
IGEgbXVsdGlsaW5lIG1hdGNoIGlmIHBvc3NpYmxlICovCi0KLSAgZWxzZSBpZiAoc3RhcnRsaW5l
KQotICAgIHsKLSAgICBpZiAoc3RhcnRfbWF0Y2ggPiBtYXRjaF9ibG9jay5zdGFydF9zdWJqZWN0
ICsgc3RhcnRfb2Zmc2V0KQotICAgICAgewotICAgICAgd2hpbGUgKHN0YXJ0X21hdGNoIDwgZW5k
X3N1YmplY3QgJiYgIUlTX05FV0xJTkUoc3RhcnRfbWF0Y2hbLTFdKSkKLSAgICAgICAgc3RhcnRf
bWF0Y2grKzsKLSAgICAgIH0KLSAgICB9Ci0KLSAgLyogUmVzdG9yZSBmdWRnZWQgZW5kX3N1Ympl
Y3QgKi8KLQotICBlbmRfc3ViamVjdCA9IHNhdmVfZW5kX3N1YmplY3Q7Ci0KLSNpZmRlZiBERUJV
RyAgLyogU2lnaC4gU29tZSBjb21waWxlcnMgbmV2ZXIgbGVhcm4uICovCi0gIHByaW50ZigiPj4+
PiBNYXRjaCBhZ2FpbnN0OiAiKTsKLSAgcGNoYXJzKHN0YXJ0X21hdGNoLCBlbmRfc3ViamVjdCAt
IHN0YXJ0X21hdGNoLCBUUlVFLCAmbWF0Y2hfYmxvY2spOwotICBwcmludGYoIlxuIik7Ci0jZW5k
aWYKLQotICAvKiBJZiByZXFfYnl0ZSBpcyBzZXQsIHdlIGtub3cgdGhhdCB0aGF0IGNoYXJhY3Rl
ciBtdXN0IGFwcGVhciBpbiB0aGUgc3ViamVjdAotICBmb3IgdGhlIG1hdGNoIHRvIHN1Y2NlZWQu
IElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgc2V0LCByZXFfYnl0ZSBtdXN0IGJlCi0gIGxhdGVy
IGluIHRoZSBzdWJqZWN0OyBvdGhlcndpc2UgdGhlIHRlc3Qgc3RhcnRzIGF0IHRoZSBtYXRjaCBw
b2ludC4gVGhpcwotICBvcHRpbWl6YXRpb24gY2FuIHNhdmUgYSBodWdlIGFtb3VudCBvZiBiYWNr
dHJhY2tpbmcgaW4gcGF0dGVybnMgd2l0aCBuZXN0ZWQKLSAgdW5saW1pdGVkIHJlcGVhdHMgdGhh
dCBhcmVuJ3QgZ29pbmcgdG8gbWF0Y2guIFdyaXRpbmcgc2VwYXJhdGUgY29kZSBmb3IKLSAgY2Fz
ZWQvY2FzZWxlc3MgdmVyc2lvbnMgbWFrZXMgaXQgZ28gZmFzdGVyLCBhcyBkb2VzIHVzaW5nIGFu
IGF1dG9pbmNyZW1lbnQKLSAgYW5kIGJhY2tpbmcgb2ZmIG9uIGEgbWF0Y2guCi0KLSAgSE9XRVZF
Ujogd2hlbiB0aGUgc3ViamVjdCBzdHJpbmcgaXMgdmVyeSwgdmVyeSBsb25nLCBzZWFyY2hpbmcg
dG8gaXRzIGVuZCBjYW4KLSAgdGFrZSBhIGxvbmcgdGltZSwgYW5kIGdpdmUgYmFkIHBlcmZvcm1h
bmNlIG9uIHF1aXRlIG9yZGluYXJ5IHBhdHRlcm5zLiBUaGlzCi0gIHNob3dlZCB1cCB3aGVuIHNv
bWVib2R5IHdhcyBtYXRjaGluZyAvXkMvIG9uIGEgMzItbWVnYWJ5dGUgc3RyaW5nLi4uIHNvIHdl
Ci0gIGRvbid0IGRvIHRoaXMgd2hlbiB0aGUgc3RyaW5nIGlzIHN1ZmZpY2llbnRseSBsb25nLgot
Ci0gIEFMU086IHRoaXMgcHJvY2Vzc2luZyBpcyBkaXNhYmxlZCB3aGVuIHBhcnRpYWwgbWF0Y2hp
bmcgaXMgcmVxdWVzdGVkLgotICAqLwotCi0gIGlmIChyZXFfYnl0ZSA+PSAwICYmCi0gICAgICBl
bmRfc3ViamVjdCAtIHN0YXJ0X21hdGNoIDwgUkVRX0JZVEVfTUFYKQotICAgIHsKLSAgICByZWdp
c3RlciBVU1BUUiBwID0gc3RhcnRfbWF0Y2ggKyAoKGZpcnN0X2J5dGUgPj0gMCk/IDEgOiAwKTsK
LQotICAgIC8qIFdlIGRvbid0IG5lZWQgdG8gcmVwZWF0IHRoZSBzZWFyY2ggaWYgd2UgaGF2ZW4n
dCB5ZXQgcmVhY2hlZCB0aGUKLSAgICBwbGFjZSB3ZSBmb3VuZCBpdCBhdCBsYXN0IHRpbWUuICov
Ci0KLSAgICBpZiAocCA+IHJlcV9ieXRlX3B0cikKLSAgICAgIHsKLSAgICAgIGlmIChyZXFfYnl0
ZV9jYXNlbGVzcykKLSAgICAgICAgewotICAgICAgICB3aGlsZSAocCA8IGVuZF9zdWJqZWN0KQot
ICAgICAgICAgIHsKLSAgICAgICAgICByZWdpc3RlciBpbnQgcHAgPSAqcCsrOwotICAgICAgICAg
IGlmIChwcCA9PSByZXFfYnl0ZSB8fCBwcCA9PSByZXFfYnl0ZTIpIHsgcC0tOyBicmVhazsgfQot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgIHdo
aWxlIChwIDwgZW5kX3N1YmplY3QpCi0gICAgICAgICAgewotICAgICAgICAgIGlmICgqcCsrID09
IHJlcV9ieXRlKSB7IHAtLTsgYnJlYWs7IH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgLyogSWYgd2UgY2FuJ3QgZmluZCB0aGUgcmVxdWlyZWQgY2hhcmFjdGVyLCBicmVhayB0aGUg
bWF0Y2hpbmcgbG9vcCAqLwotCi0gICAgICBpZiAocCA+PSBlbmRfc3ViamVjdCkgYnJlYWs7Ci0K
LSAgICAgIC8qIElmIHdlIGhhdmUgZm91bmQgdGhlIHJlcXVpcmVkIGNoYXJhY3Rlciwgc2F2ZSB0
aGUgcG9pbnQgd2hlcmUgd2UKLSAgICAgIGZvdW5kIGl0LCBzbyB0aGF0IHdlIGRvbid0IHNlYXJj
aCBhZ2FpbiBuZXh0IHRpbWUgcm91bmQgdGhlIGxvb3AgaWYKLSAgICAgIHRoZSBzdGFydCBoYXNu
J3QgcGFzc2VkIHRoaXMgY2hhcmFjdGVyIHlldC4gKi8KLQotICAgICAgcmVxX2J5dGVfcHRyID0g
cDsKLSAgICAgIH0KLSAgICB9Ci0KLSAgLyogV2hlbiBhIG1hdGNoIG9jY3Vycywgc3Vic3RyaW5n
cyB3aWxsIGJlIHNldCBmb3IgYWxsIGludGVybmFsIGV4dHJhY3Rpb25zOwotICB3ZSBqdXN0IG5l
ZWQgdG8gc2V0IHVwIHRoZSB3aG9sZSB0aGluZyBhcyBzdWJzdHJpbmcgMCBiZWZvcmUgcmV0dXJu
aW5nLiBJZgotICB0aGVyZSB3ZXJlIHRvbyBtYW55IGV4dHJhY3Rpb25zLCBzZXQgdGhlIHJldHVy
biBjb2RlIHRvIHplcm8uIEluIHRoZSBjYXNlCi0gIHdoZXJlIHdlIGhhZCB0byBnZXQgc29tZSBs
b2NhbCBzdG9yZSB0byBob2xkIG9mZnNldHMgZm9yIGJhY2tyZWZlcmVuY2VzLCBjb3B5Ci0gIHRo
b3NlIGJhY2sgcmVmZXJlbmNlcyB0aGF0IHdlIGNhbi4gSW4gdGhpcyBjYXNlIHRoZXJlIG5lZWQg
bm90IGJlIG92ZXJmbG93Ci0gIGlmIGNlcnRhaW4gcGFydHMgb2YgdGhlIHBhdHRlcm4gd2VyZSBu
b3QgdXNlZC4gKi8KLQotICBtYXRjaF9ibG9jay5zdGFydF9tYXRjaCA9IHN0YXJ0X21hdGNoOwot
ICBtYXRjaF9ibG9jay5tYXRjaF9jYWxsX2NvdW50ID0gMDsKLQotICByYyA9IG1hdGNoKHN0YXJ0
X21hdGNoLCBzdGFydF9jb2RlLCAyLCAmbWF0Y2hfYmxvY2spOwotCi0gIC8qIFdoZW4gdGhlIHJl
c3VsdCBpcyBubyBtYXRjaCwgaWYgdGhlIHN1YmplY3QncyBmaXJzdCBjaGFyYWN0ZXIgd2FzIGEK
LSAgbmV3bGluZSBhbmQgdGhlIFBDUkVfRklSU1RMSU5FIG9wdGlvbiBpcyBzZXQsIGJyZWFrICh3
aGljaCB3aWxsIHJldHVybgotICBQQ1JFX0VSUk9SX05PTUFUQ0gpLiBUaGUgb3B0aW9uIHJlcXVl
c3RzIHRoYXQgYSBtYXRjaCBvY2N1ciBiZWZvcmUgdGhlIGZpcnN0Ci0gIG5ld2xpbmUgaW4gdGhl
IHN1YmplY3QuIE90aGVyd2lzZSwgYWR2YW5jZSB0aGUgcG9pbnRlciB0byB0aGUgbmV4dCBjaGFy
YWN0ZXIKLSAgYW5kIGNvbnRpbnVlIC0gYnV0IHRoZSBjb250aW51YXRpb24gd2lsbCBhY3R1YWxs
eSBoYXBwZW4gb25seSB3aGVuIHRoZQotICBwYXR0ZXJuIGlzIG5vdCBhbmNob3JlZC4gKi8KLQot
ICBpZiAocmMgPT0gTUFUQ0hfTk9NQVRDSCkKLSAgICB7Ci0gICAgc3RhcnRfbWF0Y2grKzsKLSAg
ICAgIHdoaWxlKHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QgJiYgSVNNSURDSEFSKCpzdGFydF9t
YXRjaCkpCi0gICAgICAgIHN0YXJ0X21hdGNoKys7Ci0gICAgY29udGludWU7Ci0gICAgfQotCi0g
IGlmIChyYyAhPSBNQVRDSF9NQVRDSCkKLSAgICB7Ci0gICAgRFBSSU5URigoIj4+Pj4gZXJyb3I6
IHJldHVybmluZyAlZFxuIiwgcmMpKTsKLSAgICByZXR1cm4gcmM7Ci0gICAgfQotCi0gIC8qIFdl
IGhhdmUgYSBtYXRjaCEgQ29weSB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uIGZyb20gdGVtcG9yYXJ5
IHN0b3JlIGlmCi0gIG5lY2Vzc2FyeSAqLwotCi0gIGlmICh1c2luZ190ZW1wb3Jhcnlfb2Zmc2V0
cykKLSAgICB7Ci0gICAgaWYgKG9mZnNldGNvdW50ID49IDQpCi0gICAgICB7Ci0gICAgICBtZW1j
cHkob2Zmc2V0cyArIDIsIG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IgKyAyLAotICAgICAgICAo
b2Zmc2V0Y291bnQgLSAyKSAqIHNpemVvZihpbnQpKTsKLSAgICAgIERQUklOVEYoKCJDb3BpZWQg
b2Zmc2V0cyBmcm9tIHRlbXBvcmFyeSBtZW1vcnlcbiIpKTsKLSAgICAgIH0KLSAgICBpZiAobWF0
Y2hfYmxvY2suZW5kX29mZnNldF90b3AgPiBvZmZzZXRjb3VudCkKLSAgICAgIG1hdGNoX2Jsb2Nr
Lm9mZnNldF9vdmVyZmxvdyA9IFRSVUU7Ci0KLSAgICBEUFJJTlRGKCgiRnJlZWluZyB0ZW1wb3Jh
cnkgbWVtb3J5XG4iKSk7Ci0gICAgKHBjcmVfZnJlZSkobWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3Rv
cik7Ci0gICAgfQotCi0gIHJjID0gbWF0Y2hfYmxvY2sub2Zmc2V0X292ZXJmbG93PyAwIDogbWF0
Y2hfYmxvY2suZW5kX29mZnNldF90b3AvMjsKLQotICBpZiAob2Zmc2V0Y291bnQgPCAyKSByYyA9
IDA7IGVsc2UKLSAgICB7Ci0gICAgb2Zmc2V0c1swXSA9IHN0YXJ0X21hdGNoIC0gbWF0Y2hfYmxv
Y2suc3RhcnRfc3ViamVjdDsKLSAgICBvZmZzZXRzWzFdID0gbWF0Y2hfYmxvY2suZW5kX21hdGNo
X3B0ciAtIG1hdGNoX2Jsb2NrLnN0YXJ0X3N1YmplY3Q7Ci0gICAgfQotCi0gIERQUklOVEYoKCI+
Pj4+IHJldHVybmluZyAlZFxuIiwgcmMpKTsKLSAgcmV0dXJuIHJjOwotICB9Ci0KLS8qIFRoaXMg
IndoaWxlIiBpcyB0aGUgZW5kIG9mIHRoZSAiZG8iIGFib3ZlICovCi0KLXdoaWxlIChzdGFydF9t
YXRjaCA8PSBlbmRfc3ViamVjdCk7Ci0KLWlmICh1c2luZ190ZW1wb3Jhcnlfb2Zmc2V0cykKLSAg
ewotICBEUFJJTlRGKCgiRnJlZWluZyB0ZW1wb3JhcnkgbWVtb3J5XG4iKSk7Ci0gIChwY3JlX2Zy
ZWUpKG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IpOwotICB9Ci0KLSAgRFBSSU5URigoIj4+Pj4g
cmV0dXJuaW5nIFBDUkVfRVJST1JfTk9NQVRDSFxuIikpOwotICByZXR1cm4gSlNfUkVHRVhQX0VS
Uk9SX05PTUFUQ0g7Ci19Ci0KLS8qIEVuZCBvZiBwY3JlX2V4ZWMuYyAqLwpJbmRleDogSmF2YVNj
cmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9leGVjLmNwcAkocmV2aXNpb24gMjc2NDgpCShmcm9tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9leGVjLmM6Mjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhl
Yy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMzI2IEBACisvKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgIFBlcmwtQ29tcGF0aWJs
ZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0
aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4CithbmQgc2Vt
YW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxh
bmd1YWdlLgorCisgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhpbGlwIEhhemVs
CisgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJp
ZGdlCisKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKworICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgICAgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKyAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMi
CitBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCitM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCitDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCitJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKK0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCitQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworCisKKy8qIFRoaXMgbW9kdWxlIGNvbnRh
aW5zIHBjcmVfZXhlYygpLCB0aGUgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9uIHRoYXQgZG9l
cworcGF0dGVybiBtYXRjaGluZyB1c2luZyBhbiBORkEgYWxnb3JpdGhtLCB0cnlpbmcgdG8gbWlt
aWMgUGVybCBhcyBjbG9zZWx5IGFzCitwb3NzaWJsZS4gVGhlcmUgYXJlIGFsc28gc29tZSBzdGF0
aWMgc3VwcG9ydGluZyBmdW5jdGlvbnMuICovCisKKworI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwu
aCIKKworLyogQXZvaWQgd2FybmluZ3Mgb24gV2luZG93cy4gKi8KKyN1bmRlZiBtaW4KKyN1bmRl
ZiBtYXgKKworLyogU3RydWN0dXJlIGZvciBidWlsZGluZyBhIGNoYWluIG9mIGRhdGEgdGhhdCBh
Y3R1YWxseSBsaXZlcyBvbiB0aGUKK3N0YWNrLCBmb3IgaG9sZGluZyB0aGUgdmFsdWVzIG9mIHRo
ZSBzdWJqZWN0IHBvaW50ZXIgYXQgdGhlIHN0YXJ0IG9mIGVhY2gKK3N1YnBhdHRlcm4sIHNvIGFz
IHRvIGRldGVjdCB3aGVuIGFuIGVtcHR5IHN0cmluZyBoYXMgYmVlbiBtYXRjaGVkIGJ5IGEKK3N1
YnBhdHRlcm4gLSB0byBicmVhayBpbmZpbml0ZSBsb29wcy4gV2hlbiBOT19SRUNVUlNFIGlzIHNl
dCwgdGhlc2UgYmxvY2tzCithcmUgb24gdGhlIGhlYXAsIG5vdCBvbiB0aGUgc3RhY2suICovCisK
K3R5cGVkZWYgc3RydWN0IGVwdHJibG9jayB7CisgIHN0cnVjdCBlcHRyYmxvY2sgKmVwYl9wcmV2
OworICBVU1BUUiBlcGJfc2F2ZWRfZXB0cjsKK30gZXB0cmJsb2NrOworCisjZGVmaW5lIG1hdGNo
X2lzZ3JvdXAgICAgICBUUlVFICAgIC8qIFNldCBpZiBzdGFydCBvZiBicmFja2V0ZWQgZ3JvdXAg
Ki8KKworLyogTm9uLWVycm9yIHJldHVybnMgZnJvbSB0aGUgbWF0Y2goKSBmdW5jdGlvbi4gRXJy
b3IgcmV0dXJucyBhcmUgZXh0ZXJuYWxseQorZGVmaW5lZCBQQ1JFX0VSUk9SX3h4eCBjb2Rlcywg
d2hpY2ggYXJlIGFsbCBuZWdhdGl2ZS4gKi8KKworI2RlZmluZSBNQVRDSF9NQVRDSCAgICAgICAg
MQorI2RlZmluZSBNQVRDSF9OT01BVENIICAgICAgMAorCisvKiBNaW4gYW5kIG1heCB2YWx1ZXMg
Zm9yIHRoZSBjb21tb24gcmVwZWF0czsgZm9yIHRoZSBtYXhpbWEsIDAgPT4gaW5maW5pdHkgKi8K
Kworc3RhdGljIGNvbnN0IGNoYXIgcmVwX21pbltdID0geyAwLCAwLCAxLCAxLCAwLCAwIH07Citz
dGF0aWMgY29uc3QgY2hhciByZXBfbWF4W10gPSB7IDAsIDAsIDAsIDAsIDEsIDEgfTsKKworCisK
KyNpZmRlZiBERUJVRworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICAgICAgIERlYnVnZ2luZyBmdW5jdGlvbiB0byBwcmludCBjaGFycyAgICAg
ICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor
CisvKiBQcmludCBhIHNlcXVlbmNlIG9mIGNoYXJzIGluIHByaW50YWJsZSBmb3JtYXQsIHN0b3Bw
aW5nIGF0IHRoZSBlbmQgb2YgdGhlCitzdWJqZWN0IGlmIHRoZSByZXF1ZXN0ZWQuCisKK0FyZ3Vt
ZW50czoKKyAgcCAgICAgICAgICAgcG9pbnRzIHRvIGNoYXJhY3RlcnMKKyAgbGVuZ3RoICAgICAg
bnVtYmVyIHRvIHByaW50CisgIGlzX3N1YmplY3QgIFRSVUUgaWYgcHJpbnRpbmcgZnJvbSB3aXRo
aW4gbWQtPnN0YXJ0X3N1YmplY3QKKyAgbWQgICAgICAgICAgcG9pbnRlciB0byBtYXRjaGluZyBk
YXRhIGJsb2NrLCBpZiBpc19zdWJqZWN0IGlzIFRSVUUKKworUmV0dXJuczogICAgIG5vdGhpbmcK
KyovCisKK3N0YXRpYyB2b2lkCitwY2hhcnMoY29uc3QgcGNyZV91Y2hhciAqcCwgaW50IGxlbmd0
aCwgQk9PTCBpc19zdWJqZWN0LCBtYXRjaF9kYXRhICptZCkKK3sKK2ludCBjOworaWYgKGlzX3N1
YmplY3QgJiYgbGVuZ3RoID4gbWQtPmVuZF9zdWJqZWN0IC0gcCkgbGVuZ3RoID0gbWQtPmVuZF9z
dWJqZWN0IC0gcDsKK3doaWxlIChsZW5ndGgtLSA+IDApCisgIGlmIChpc3ByaW50KGMgPSAqKHAr
KykpKSBwcmludGYoIiVjIiwgYyk7CisgIGVsc2UgaWYgKGMgPCAyNTYpIHByaW50ZigiXFx4JTAy
eCIsIGMpOworICBlbHNlIHByaW50ZigiXFx4eyV4fSIsIGMpOworfQorI2VuZGlmCisKKworCisv
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAg
ICAgICBNYXRjaCBhIGJhY2stcmVmZXJlbmNlICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIElmIGEgYmFjayBy
ZWZlcmVuY2UgaGFzbid0IGJlZW4gc2V0LCB0aGUgbGVuZ3RoIHRoYXQgaXMgcGFzc2VkIGlzIGdy
ZWF0ZXIKK3RoYW4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGxlZnQgaW4gdGhlIHN0cmluZywg
c28gdGhlIG1hdGNoIGZhaWxzLgorCitBcmd1bWVudHM6CisgIG9mZnNldCAgICAgIGluZGV4IGlu
dG8gdGhlIG9mZnNldCB2ZWN0b3IKKyAgZXB0ciAgICAgICAgcG9pbnRzIGludG8gdGhlIHN1Ympl
Y3QKKyAgbGVuZ3RoICAgICAgbGVuZ3RoIHRvIGJlIG1hdGNoZWQKKyAgbWQgICAgICAgICAgcG9p
bnRzIHRvIG1hdGNoIGRhdGEgYmxvY2sKKworUmV0dXJuczogICAgICBUUlVFIGlmIG1hdGNoZWQK
KyovCisKK3N0YXRpYyBCT09MCittYXRjaF9yZWYoaW50IG9mZnNldCwgcmVnaXN0ZXIgVVNQVFIg
ZXB0ciwgaW50IGxlbmd0aCwgbWF0Y2hfZGF0YSAqbWQpCit7CitVU1BUUiBwID0gbWQtPnN0YXJ0
X3N1YmplY3QgKyBtZC0+b2Zmc2V0X3ZlY3RvcltvZmZzZXRdOworCisjaWZkZWYgREVCVUcKK2lm
IChlcHRyID49IG1kLT5lbmRfc3ViamVjdCkKKyAgcHJpbnRmKCJtYXRjaGluZyBzdWJqZWN0IDxu
dWxsPiIpOworZWxzZQorICB7CisgIHByaW50ZigibWF0Y2hpbmcgc3ViamVjdCAiKTsKKyAgcGNo
YXJzKGVwdHIsIGxlbmd0aCwgVFJVRSwgbWQpOworICB9CitwcmludGYoIiBhZ2FpbnN0IGJhY2ty
ZWYgIik7CitwY2hhcnMocCwgbGVuZ3RoLCBGQUxTRSwgbWQpOworcHJpbnRmKCJcbiIpOworI2Vu
ZGlmCisKKy8qIEFsd2F5cyBmYWlsIGlmIG5vdCBlbm91Z2ggY2hhcmFjdGVycyBsZWZ0ICovCisK
K2lmIChsZW5ndGggPiBtZC0+ZW5kX3N1YmplY3QgLSBlcHRyKSByZXR1cm4gRkFMU0U7CisKKy8q
IFNlcGFyYXRlIHRoZSBjYXNlbGVzc3MgY2FzZSBmb3Igc3BlZWQgKi8KKworaWYgKG1kLT5jYXNl
bGVzcykKKyAgeworICB3aGlsZSAobGVuZ3RoLS0gPiAwKQorICAgIHsKKyAgICBwY3JlX3VjaGFy
IGMgPSAqcCsrOworICAgIGludCBvdGhlcmNhc2UgPSBfcGNyZV91Y3Bfb3RoZXJjYXNlKGMpOwor
ICAgIHBjcmVfdWNoYXIgZCA9ICplcHRyKys7CisgICAgaWYgKGMgIT0gZCAmJiBvdGhlcmNhc2Ug
IT0gZCkgcmV0dXJuIEZBTFNFOworICAgIH0KKyAgfQorZWxzZQorICB7IHdoaWxlIChsZW5ndGgt
LSA+IDApIGlmICgqcCsrICE9ICplcHRyKyspIHJldHVybiBGQUxTRTsgfQorCityZXR1cm4gVFJV
RTsKK30KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAg
ICAgICAgICAgICAgICAgICBSRUNVUlNJT04gSU4gVEhFIG1hdGNoKCkgRlVOQ1RJT04KKworVGhl
IG1hdGNoKCkgZnVuY3Rpb24gaXMgaGlnaGx5IHJlY3Vyc2l2ZSwgdGhvdWdoIG5vdCBldmVyeSBy
ZWN1cnNpdmUgY2FsbAoraW5jcmVhc2VzIHRoZSByZWN1cnNpdmUgZGVwdGguIE5ldmVydGhlbGVz
cywgc29tZSByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBjYXVzZQoraXQgdG8gcmVjdXJzZSB0byBh
IGdyZWF0IGRlcHRoLiBJIHdhcyB3cml0aW5nIGZvciBVbml4LCBzbyBJIGp1c3QgbGV0IGl0IGNh
bGwKK2l0c2VsZiByZWN1cnNpdmVseS4gVGhpcyB1c2VzIHRoZSBzdGFjayBmb3Igc2F2aW5nIGV2
ZXJ5dGhpbmcgdGhhdCBoYXMgdG8gYmUKK3NhdmVkIGZvciBhIHJlY3Vyc2l2ZSBjYWxsLiBPbiBV
bml4LCB0aGUgc3RhY2sgY2FuIGJlIGxhcmdlLCBhbmQgdGhpcyB3b3JrcworZmluZS4KKworSXQg
dHVybnMgb3V0IHRoYXQgb24gc29tZSBub24tVW5peC1saWtlIHN5c3RlbXMgdGhlcmUgYXJlIHBy
b2JsZW1zIHdpdGgKK3Byb2dyYW1zIHRoYXQgdXNlIGEgbG90IG9mIHN0YWNrLiAoVGhpcyBkZXNw
aXRlIHRoZSBmYWN0IHRoYXQgZXZlcnkgbGFzdCBjaGlwCitoYXMgb29kbGVzIG9mIG1lbW9yeSB0
aGVzZSBkYXlzLCBhbmQgdGVjaG5pcXVlcyBmb3IgZXh0ZW5kaW5nIHRoZSBzdGFjayBoYXZlCiti
ZWVuIGtub3duIGZvciBkZWNhZGVzLikgU28uLi4uCisKK1RoZXJlIGlzIGEgZnVkZ2UsIHRyaWdn
ZXJlZCBieSBkZWZpbmluZyBOT19SRUNVUlNFLCB3aGljaCBhdm9pZHMgcmVjdXJzaXZlCitjYWxs
cyBieSBrZWVwaW5nIGxvY2FsIHZhcmlhYmxlcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkIGlu
IGJsb2NrcyBvZiBtZW1vcnkKK29idGFpbmVkIGZyb20gbWFsbG9jKCkgaW5zdGVhZCBpbnN0ZWFk
IG9mIG9uIHRoZSBzdGFjay4gTWFjcm9zIGFyZSB1c2VkIHRvCithY2hpZXZlIHRoaXMgc28gdGhh
dCB0aGUgYWN0dWFsIGNvZGUgZG9lc24ndCBsb29rIHZlcnkgZGlmZmVyZW50IHRvIHdoYXQgaXQK
K2Fsd2F5cyB1c2VkIHRvLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
LworCisKKy8qIFRoZXNlIHZlcnNpb25zIG9mIHRoZSBtYWNyb3MgdXNlIHRoZSBzdGFjaywgYXMg
bm9ybWFsLiBUaGVyZSBhcmUgZGVidWdnaW5nCit2ZXJzaW9ucyBhbmQgcHJvZHVjdGlvbiB2ZXJz
aW9ucy4gKi8KKworI2lmbmRlZiBfX0dOVUNfXworCisvKiBVc2UgbnVtYmVyZWQgbGFiZWxzIGFu
ZCBzd2l0Y2ggc3RhdGVtZW50IGF0IHRoZSBib3R0b20gb2YgdGhlIG1hdGNoIGZ1bmN0aW9uLiAq
LworCisjZGVmaW5lIFJNQVRDSF9XSEVSRShudW0pIG51bQorI2RlZmluZSBSUkVUVVJOX0xBQkVM
IFJSRVRVUk5fU1dJVENICisKKyNlbHNlCisKKy8qIFVzZSBHQ0MncyBjb21wdXRlZCBnb3RvIGV4
dGVuc2lvbi4gKi8KKworLyogRm9yIG9uZSB0ZXN0IGNhc2UgdGhpcyBpcyBtb3JlIHRoYW4gNDAl
IGZhc3RlciB0aGFuIHRoZSBzd2l0Y2ggc3RhdGVtZW50LgorV2UgY291bGQgYXZvaWQgdGhlIHVz
ZSBvZiB0aGUgbnVtIGFyZ3VtZW50IGVudGlyZWx5IGJ5IHVzaW5nIGxvY2FsIGxhYmVscywKK2J1
dCB1c2luZyBpdCBmb3IgdGhlIEdDQyBjYXNlIGFzIHdlbGwgYXMgdGhlIG5vbi1HQ0MgY2FzZSBh
bGxvd3MgdXMgdG8gc2hhcmUKK2EgYml0IG1vcmUgY29kZSBhbmQgbm90aWNlIGlmIHdlIHVzZSBj
b25mbGljdGluZyBudW1iZXJzLiovCisKKyNkZWZpbmUgUk1BVENIX1dIRVJFKG51bSkgJiZSUkVU
VVJOXyMjbnVtCisjZGVmaW5lIFJSRVRVUk5fTEFCRUwgKmZyYW1lLT53aGVyZQorCisjZW5kaWYK
KworCisjZGVmaW5lIFJNQVRDSChudW0sIHJhLCByYiwgcmMpXAorICB7XAorICBpZiAoZnJhbWUg
Pj0gc3RhY2tmcmFtZXMgJiYgZnJhbWUgKyAxIDwgc3RhY2tmcmFtZXNlbmQpXAorICAgIG5ld2Zy
YW1lID0gZnJhbWUgKyAxO1wKKyAgZWxzZVwKKyAgICBuZXdmcmFtZSA9IChwY3JlX21hbGxvYyko
c2l6ZW9mKG1hdGNoZnJhbWUpKTtcCisgIGZyYW1lLT53aGVyZSA9IFJNQVRDSF9XSEVSRShudW0p
O1wKKyAgbmV3ZnJhbWUtPmVwdHIgPSBmcmFtZS0+ZXB0cjtcCisgIG5ld2ZyYW1lLT5lY29kZSA9
IChyYSk7XAorICBuZXdmcmFtZS0+b2Zmc2V0X3RvcCA9IGZyYW1lLT5vZmZzZXRfdG9wO1wKKyAg
bmV3ZnJhbWUtPmVwdHJiID0gKHJiKTtcCisgIGlzX2dyb3VwX3N0YXJ0ID0gKHJjKTtcCisgICsr
cmRlcHRoO1wKKyAgbmV3ZnJhbWUtPnByZXZmcmFtZSA9IGZyYW1lO1wKKyAgZnJhbWUgPSBuZXdm
cmFtZTtcCisgIERQUklOVEYoKCJyZXN0YXJ0aW5nIGZyb20gbGluZSAlZFxuIiwgX19MSU5FX18p
KTtcCisgIGdvdG8gSEVBUF9SRUNVUlNFO1wKK1JSRVRVUk5fIyNudW06XAorICAtLXJkZXB0aDtc
CisgIERQUklOVEYoKCJkaWQgYSBnb3RvIGJhY2sgdG8gbGluZSAlZFxuIiwgX19MSU5FX18pKTtc
CisgIH0KKworI2RlZmluZSBSUkVUVVJOKHJhKVwKKyAge1wKKyAgbmV3ZnJhbWUgPSBmcmFtZTtc
CisgIGZyYW1lID0gbmV3ZnJhbWUtPnByZXZmcmFtZTtcCisgIGlmICghKG5ld2ZyYW1lID49IHN0
YWNrZnJhbWVzICYmIG5ld2ZyYW1lIDwgc3RhY2tmcmFtZXNlbmQpKVwKKyAgICAocGNyZV9mcmVl
KShuZXdmcmFtZSk7XAorICBpZiAoZnJhbWUgIT0gTlVMTClcCisgICAge1wKKyAgICBycmMgPSAo
cmEpO1wKKyAgICBnb3RvIFJSRVRVUk5fTEFCRUw7XAorICAgIH1cCisgIHJldHVybiByYTtcCisg
IH0KKworLyogU3RydWN0dXJlIGZvciByZW1lbWJlcmluZyB0aGUgbG9jYWwgdmFyaWFibGVzIGlu
IGEgcHJpdmF0ZSBmcmFtZSAqLworCit0eXBlZGVmIHN0cnVjdCBtYXRjaGZyYW1lIHsKKyAgc3Ry
dWN0IG1hdGNoZnJhbWUgKnByZXZmcmFtZTsKKworICAvKiBGdW5jdGlvbiBhcmd1bWVudHMgdGhh
dCBtYXkgY2hhbmdlICovCisKKyAgY29uc3QgcGNyZV91Y2hhciAqZXB0cjsKKyAgY29uc3QgdXNj
aGFyICplY29kZTsKKyAgaW50IG9mZnNldF90b3A7CisgIGVwdHJibG9jayAqZXB0cmI7CisKKyAg
LyogRnVuY3Rpb24gbG9jYWwgdmFyaWFibGVzICovCisKKyAgY29uc3QgdXNjaGFyICpkYXRhOwor
ICBjb25zdCB1c2NoYXIgKm5leHQ7CisgIGNvbnN0IHBjcmVfdWNoYXIgKnBwOworICBjb25zdCB1
c2NoYXIgKnByZXY7CisgIGNvbnN0IHBjcmVfdWNoYXIgKnNhdmVkX2VwdHI7CisKKyAgaW50IHJl
cGVhdF9vdGhlcmNhc2U7CisKKyAgaW50IGN0eXBlOworICBpbnQgZmM7CisgIGludCBmaTsKKyAg
aW50IGxlbmd0aDsKKyAgaW50IG1heDsKKyAgaW50IG51bWJlcjsKKyAgaW50IG9mZnNldDsKKyAg
aW50IHNhdmVfb2Zmc2V0MSwgc2F2ZV9vZmZzZXQyLCBzYXZlX29mZnNldDM7CisKKyAgZXB0cmJs
b2NrIG5ld3B0cmI7CisKKyAgLyogV2hlcmUgdG8ganVtcCBiYWNrIHRvICovCisKKyNpZm5kZWYg
X19HTlVDX18KKyAgaW50IHdoZXJlOworI2Vsc2UKKyAgdm9pZCAqd2hlcmU7CisjZW5kaWYKKwor
fSBtYXRjaGZyYW1lOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqICAgICAgICAgTWF0Y2ggZnJvbSBjdXJyZW50IHBvc2l0aW9uICAgICAgICAgICAgKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyog
T24gZW50cnkgZWNvZGUgcG9pbnRzIHRvIHRoZSBmaXJzdCBvcGNvZGUsIGFuZCBlcHRyIHRvIHRo
ZSBmaXJzdCBjaGFyYWN0ZXIKK2luIHRoZSBzdWJqZWN0IHN0cmluZywgd2hpbGUgZXB0cmIgaG9s
ZHMgdGhlIHZhbHVlIG9mIGVwdHIgYXQgdGhlIHN0YXJ0IG9mIHRoZQorbGFzdCBicmFja2V0ZWQg
Z3JvdXAgLSB1c2VkIGZvciBicmVha2luZyBpbmZpbml0ZSBsb29wcyBtYXRjaGluZyB6ZXJvLWxl
bmd0aAorc3RyaW5ncy4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgcmVjdXJzaXZlbHkgaW4gbWFu
eSBjaXJjdW1zdGFuY2VzLiBXaGVuZXZlciBpdAorcmV0dXJucyBhIG5lZ2F0aXZlIChlcnJvcikg
cmVzcG9uc2UsIHRoZSBvdXRlciBpbmNhcm5hdGlvbiBtdXN0IGFsc28gcmV0dXJuIHRoZQorc2Ft
ZSByZXNwb25zZS4KKworQXJndW1lbnRzOgorICAgZXB0ciAgICAgICAgcG9pbnRlciBpbiBzdWJq
ZWN0CisgICBlY29kZSAgICAgICBwb3NpdGlvbiBpbiBjb2RlCisgICBvZmZzZXRfdG9wICBjdXJy
ZW50IHRvcCBwb2ludGVyCisgICBtZCAgICAgICAgICBwb2ludGVyIHRvICJzdGF0aWMiIGluZm8g
Zm9yIHRoZSBtYXRjaAorCitSZXR1cm5zOiAgICAgICBNQVRDSF9NQVRDSCBpZiBtYXRjaGVkICAg
ICAgICAgICAgKSAgdGhlc2UgdmFsdWVzIGFyZSA+PSAwCisgICAgICAgICAgICAgICBNQVRDSF9O
T01BVENIIGlmIGZhaWxlZCB0byBtYXRjaCAgKQorICAgICAgICAgICAgICAgYSBuZWdhdGl2ZSBQ
Q1JFX0VSUk9SX3h4eCB2YWx1ZSBpZiBhYm9ydGVkIGJ5IGFuIGVycm9yIGNvbmRpdGlvbgorICAg
ICAgICAgICAgICAgICAoZS5nLiBzdG9wcGVkIGJ5IHJlcGVhdGVkIGNhbGwgb3IgcmVjdXJzaW9u
IGxpbWl0KQorKi8KKworc3RhdGljIGludAorbWF0Y2goVVNQVFIgZXB0ciwgY29uc3QgdXNjaGFy
ICplY29kZSwgaW50IG9mZnNldF90b3AsIG1hdGNoX2RhdGEgKm1kKQoreworLyogVGhlc2UgdmFy
aWFibGVzIGRvIG5vdCBuZWVkIHRvIGJlIHByZXNlcnZlZCBvdmVyIHJlY3Vyc2lvbiBpbiB0aGlz
IGZ1bmN0aW9uLAorc28gdGhleSBjYW4gYmUgb3JkaW5hcnkgdmFyaWFibGVzIGluIGFsbCBjYXNl
cy4gTWFyayB0aGVtIHdpdGggInJlZ2lzdGVyIgorYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGEgbG90
IGluIGxvb3BzLiAqLworCityZWdpc3RlciBpbnQgIHJyYzsgICAgLyogUmV0dXJucyBmcm9tIHJl
Y3Vyc2l2ZSBjYWxscyAqLworcmVnaXN0ZXIgaW50ICBpOyAgICAgIC8qIFVzZWQgZm9yIGxvb3Bz
IG5vdCBpbnZvbHZpbmcgY2FsbHMgdG8gUk1BVENIKCkgKi8KK3JlZ2lzdGVyIGludCAgYzsgICAg
ICAvKiBDaGFyYWN0ZXIgdmFsdWVzIG5vdCBrZXB0IG92ZXIgUk1BVENIKCkgY2FsbHMgKi8KK3Vu
c2lnbmVkIHJkZXB0aCA9IDA7CisKK0JPT0wgY3VyX2lzX3dvcmQ7CitCT09MIHByZXZfaXNfd29y
ZDsKK0JPT0wgaXNfZ3JvdXBfc3RhcnQgPSBUUlVFOworaW50IG1pbjsKK0JPT0wgbWluaW1pemUg
PSBGQUxTRTsgLyogSW5pdGlhbGl6YXRpb24gbm90IHJlYWxseSBuZWVkZWQsIGJ1dCBzb21lIGNv
bXBpbGVycyB0aGluayBzby4gKi8KKworLyogV2hlbiByZWN1cnNpb24gaXMgbm90IGJlaW5nIHVz
ZWQsIGFsbCAibG9jYWwiIHZhcmlhYmxlcyB0aGF0IGhhdmUgdG8gYmUKK3ByZXNlcnZlZCBvdmVy
IGNhbGxzIHRvIFJNQVRDSCgpIGFyZSBwYXJ0IG9mIGEgImZyYW1lIiB3aGljaCBpcyBvYnRhaW5l
ZCBmcm9tCitoZWFwIHN0b3JhZ2UuIFNldCB1cCB0aGUgdG9wLWxldmVsIGZyYW1lIGhlcmU7IG90
aGVycyBhcmUgb2J0YWluZWQgZnJvbSB0aGUKK2hlYXAgd2hlbmV2ZXIgUk1BVENIKCkgZG9lcyBh
ICJyZWN1cnNpb24iLiBTZWUgdGhlIG1hY3JvIGRlZmluaXRpb25zIGFib3ZlLiAqLworCisvKiBU
aGUgdmFsdWUgMTYgaGVyZSBpcyBsYXJnZSBlbm91Z2ggdGhhdCBtb3N0IHJlZ3VsYXIgZXhwcmVz
c2lvbnMgZG9uJ3QgcmVxdWlyZQorYW55IGNhbGxzIHRvIHBjcmVfc3RhY2tfbWFsbG9jLCB5ZXQg
dGhlIGFtb3VudCBvZiBzdGFjayB1c2VkIGZvciB0aGUgYXJyYXkgaXMKK21vZGVzdCBlbm91Z2gg
dGhhdCB3ZSBkb24ndCBydW4gb3V0IG9mIHN0YWNrLiAqLworbWF0Y2hmcmFtZSBzdGFja2ZyYW1l
c1sxNl07CittYXRjaGZyYW1lICpzdGFja2ZyYW1lc2VuZCA9IHN0YWNrZnJhbWVzICsgc2l6ZW9m
KHN0YWNrZnJhbWVzKSAvIHNpemVvZihzdGFja2ZyYW1lc1swXSk7CisKK21hdGNoZnJhbWUgKmZy
YW1lID0gc3RhY2tmcmFtZXM7CittYXRjaGZyYW1lICpuZXdmcmFtZTsKK2ZyYW1lLT5wcmV2ZnJh
bWUgPSBOVUxMOyAgICAgICAgICAgIC8qIE1hcmtzIHRoZSB0b3AgbGV2ZWwgKi8KKworLyogQ29w
eSBpbiB0aGUgb3JpZ2luYWwgYXJndW1lbnQgdmFyaWFibGVzICovCisKK2ZyYW1lLT5lcHRyID0g
ZXB0cjsKK2ZyYW1lLT5lY29kZSA9IGVjb2RlOworZnJhbWUtPm9mZnNldF90b3AgPSBvZmZzZXRf
dG9wOworZnJhbWUtPmVwdHJiID0gTlVMTDsKKworLyogVGhpcyBpcyB3aGVyZSBjb250cm9sIGp1
bXBzIGJhY2sgdG8gdG8gZWZmZWN0ICJyZWN1cnNpb24iICovCisKK0hFQVBfUkVDVVJTRToKKwor
LyogT0ssIG5vdyB3ZSBjYW4gZ2V0IG9uIHdpdGggdGhlIHJlYWwgY29kZSBvZiB0aGUgZnVuY3Rp
b24uIFJlY3Vyc2l2ZSBjYWxscworYXJlIHNwZWNpZmllZCBieSB0aGUgbWFjcm8gUk1BVENIIGFu
ZCBSUkVUVVJOIGlzIHVzZWQgdG8gcmV0dXJuLiBXaGVuCitOT19SRUNVUlNFIGlzICpub3QqIGRl
ZmluZWQsIHRoZXNlIGp1c3QgdHVybiBpbnRvIGEgcmVjdXJzaXZlIGNhbGwgdG8gbWF0Y2goKQor
YW5kIGEgInJldHVybiIsIHJlc3BlY3RpdmVseSAocG9zc2libHkgd2l0aCBzb21lIGRlYnVnZ2lu
ZyBpZiBERUJVRyBpcworZGVmaW5lZCkuIEhvd2V2ZXIsIFJNQVRDSCBpc24ndCBsaWtlIGEgZnVu
Y3Rpb24gY2FsbCBiZWNhdXNlIGl0J3MgcXVpdGUgYQorY29tcGxpY2F0ZWQgbWFjcm8uIEl0IGhh
cyB0byBiZSB1c2VkIGluIG9uZSBwYXJ0aWN1bGFyIHdheS4gVGhpcyBzaG91bGRuJ3QsCitob3dl
dmVyLCBpbXBhY3QgcGVyZm9ybWFuY2Ugd2hlbiB0cnVlIHJlY3Vyc2lvbiBpcyBiZWluZyB1c2Vk
LiAqLworCisvKiBGaXJzdCBjaGVjayB0aGF0IHdlIGhhdmVuJ3QgY2FsbGVkIG1hdGNoKCkgdG9v
IG1hbnkgdGltZXMsIG9yIHRoYXQgd2UKK2hhdmVuJ3QgZXhjZWVkZWQgdGhlIHJlY3Vyc2l2ZSBj
YWxsIGxpbWl0LiAqLworCitpZiAobWQtPm1hdGNoX2NhbGxfY291bnQrKyA+PSBNQVRDSF9MSU1J
VCkgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfTUFUQ0hMSU1JVCk7CitpZiAocmRlcHRoID49IE1B
VENIX0xJTUlUX1JFQ1VSU0lPTikgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfUkVDVVJTSU9OTElN
SVQpOworCisvKiBBdCB0aGUgc3RhcnQgb2YgYSBicmFja2V0ZWQgZ3JvdXAsIGFkZCB0aGUgY3Vy
cmVudCBzdWJqZWN0IHBvaW50ZXIgdG8gdGhlCitzdGFjayBvZiBzdWNoIHBvaW50ZXJzLCB0byBi
ZSByZS1pbnN0YXRlZCBhdCB0aGUgZW5kIG9mIHRoZSBncm91cCB3aGVuIHdlIGhpdAordGhlIGNs
b3Npbmcga2V0LiBXaGVuIG1hdGNoKCkgaXMgY2FsbGVkIGluIG90aGVyIGNpcmN1bXN0YW5jZXMs
IHdlIGRvbid0IGFkZCB0bwordGhpcyBzdGFjay4gKi8KKworaWYgKGlzX2dyb3VwX3N0YXJ0KQor
ICB7CisgIGZyYW1lLT5uZXdwdHJiLmVwYl9wcmV2ID0gZnJhbWUtPmVwdHJiOworICBmcmFtZS0+
bmV3cHRyYi5lcGJfc2F2ZWRfZXB0ciA9IGZyYW1lLT5lcHRyOworICBmcmFtZS0+ZXB0cmIgPSAm
ZnJhbWUtPm5ld3B0cmI7CisgIH0KKworLyogTm93IHN0YXJ0IHByb2Nlc3NpbmcgdGhlIG9wZXJh
dGlvbnMuICovCisKK2ZvciAoOzspCisgIHsKKyAgc3dpdGNoICgqZnJhbWUtPmVjb2RlKQorICAg
IHsKKyAgICBjYXNlIE9QX0JSQTogICAgIC8qIE5vbi1jYXB0dXJpbmcgYnJhY2tldDogb3B0aW1p
emVkICovCisgICAgTk9OX0NBUFRVUklOR19CUkFDS0VUOgorICAgIERQUklOVEYoKCJzdGFydCBi
cmFja2V0IDBcbiIpKTsKKyAgICBkbworICAgICAgeworICAgICAgUk1BVENIKDIsIGZyYW1lLT5l
Y29kZSArIDEgKyBMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7CisgICAg
ICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgIGZyYW1lLT5l
Y29kZSArPSBHRVQoZnJhbWUtPmVjb2RlLCAxKTsKKyAgICAgIH0KKyAgICB3aGlsZSAoKmZyYW1l
LT5lY29kZSA9PSBPUF9BTFQpOworICAgIERQUklOVEYoKCJicmFja2V0IDAgZmFpbGVkXG4iKSk7
CisgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKworICAgIC8qIEVuZCBvZiB0aGUgcGF0dGVy
bi4gKi8KKworICAgIGNhc2UgT1BfRU5EOgorICAgIG1kLT5lbmRfbWF0Y2hfcHRyID0gZnJhbWUt
PmVwdHI7ICAgICAgICAgIC8qIFJlY29yZCB3aGVyZSB3ZSBlbmRlZCAqLworICAgIG1kLT5lbmRf
b2Zmc2V0X3RvcCA9IGZyYW1lLT5vZmZzZXRfdG9wOyAgIC8qIGFuZCBob3cgbWFueSBleHRyYWN0
cyB3ZXJlIHRha2VuICovCisgICAgUlJFVFVSTihNQVRDSF9NQVRDSCk7CisKKyAgICAvKiBBc3Nl
cnRpb24gYnJhY2tldHMuIENoZWNrIHRoZSBhbHRlcm5hdGl2ZSBicmFuY2hlcyBpbiB0dXJuIC0g
dGhlCisgICAgbWF0Y2hpbmcgd29uJ3QgcGFzcyB0aGUgS0VUIGZvciBhbiBhc3NlcnRpb24uIElm
IGFueSBvbmUgYnJhbmNoIG1hdGNoZXMsCisgICAgdGhlIGFzc2VydGlvbiBpcyB0cnVlLiBMb29r
YmVoaW5kIGFzc2VydGlvbnMgaGF2ZSBhbiBPUF9SRVZFUlNFIGl0ZW0gYXQgdGhlCisgICAgc3Rh
cnQgb2YgZWFjaCBicmFuY2ggdG8gbW92ZSB0aGUgY3VycmVudCBwb2ludCBiYWNrd2FyZHMsIHNv
IHRoZSBjb2RlIGF0CisgICAgdGhpcyBsZXZlbCBpcyBpZGVudGljYWwgdG8gdGhlIGxvb2thaGVh
ZCBjYXNlLiAqLworCisgICAgY2FzZSBPUF9BU1NFUlQ6CisgICAgZG8KKyAgICAgIHsKKyAgICAg
IFJNQVRDSCg2LCBmcmFtZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFLCBOVUxMLCBtYXRjaF9pc2dy
b3VwKTsKKyAgICAgIGlmIChycmMgPT0gTUFUQ0hfTUFUQ0gpIGJyZWFrOworICAgICAgaWYgKHJy
YyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICBmcmFtZS0+ZWNvZGUgKz0g
R0VUKGZyYW1lLT5lY29kZSwgMSk7CisgICAgICB9CisgICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUg
PT0gT1BfQUxUKTsKKyAgICBpZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9LRVQpIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7CisKKyAgICAvKiBDb250aW51ZSBmcm9tIGFmdGVyIHRoZSBhc3NlcnRpb24s
IHVwZGF0aW5nIHRoZSBvZmZzZXRzIGhpZ2ggd2F0ZXIKKyAgICBtYXJrLCBzaW5jZSBleHRyYWN0
cyBtYXkgaGF2ZSBiZWVuIHRha2VuIGR1cmluZyB0aGUgYXNzZXJ0aW9uLiAqLworCisgICAgZG8g
ZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsMSk7IHdoaWxlICgqZnJhbWUtPmVjb2Rl
ID09IE9QX0FMVCk7CisgICAgZnJhbWUtPmVjb2RlICs9IDEgKyBMSU5LX1NJWkU7CisgICAgZnJh
bWUtPm9mZnNldF90b3AgPSBtZC0+ZW5kX29mZnNldF90b3A7CisgICAgY29udGludWU7CisKKyAg
ICAvKiBOZWdhdGl2ZSBhc3NlcnRpb246IGFsbCBicmFuY2hlcyBtdXN0IGZhaWwgdG8gbWF0Y2gg
Ki8KKworICAgIGNhc2UgT1BfQVNTRVJUX05PVDoKKyAgICBkbworICAgICAgeworICAgICAgUk1B
VENIKDcsIGZyYW1lLT5lY29kZSArIDEgKyBMSU5LX1NJWkUsIE5VTEwsIG1hdGNoX2lzZ3JvdXAp
OworICAgICAgaWYgKHJyYyA9PSBNQVRDSF9NQVRDSCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
KyAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgZnJh
bWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsMSk7CisgICAgICB9CisgICAgd2hpbGUgKCpm
cmFtZS0+ZWNvZGUgPT0gT1BfQUxUKTsKKworICAgIGZyYW1lLT5lY29kZSArPSAxICsgTElOS19T
SVpFOworICAgIGNvbnRpbnVlOworCisgICAgLyogIk9uY2UiIGJyYWNrZXRzIGFyZSBsaWtlIGFz
c2VydGlvbiBicmFja2V0cyBleGNlcHQgdGhhdCBhZnRlciBhIG1hdGNoLAorICAgIHRoZSBwb2lu
dCBpbiB0aGUgc3ViamVjdCBzdHJpbmcgaXMgbm90IG1vdmVkIGJhY2suIFRodXMgdGhlcmUgY2Fu
IG5ldmVyIGJlCisgICAgYSBtb3ZlIGJhY2sgaW50byB0aGUgYnJhY2tldHMuIEZyaWVkbCBjYWxs
cyB0aGVzZSAiYXRvbWljIiBzdWJwYXR0ZXJucy4KKyAgICBDaGVjayB0aGUgYWx0ZXJuYXRpdmUg
YnJhbmNoZXMgaW4gdHVybiAtIHRoZSBtYXRjaGluZyB3b24ndCBwYXNzIHRoZSBLRVQKKyAgICBm
b3IgdGhpcyBraW5kIG9mIHN1YnBhdHRlcm4uIElmIGFueSBvbmUgYnJhbmNoIG1hdGNoZXMsIHdl
IGNhcnJ5IG9uIGFzIGF0CisgICAgdGhlIGVuZCBvZiBhIG5vcm1hbCBicmFja2V0LCBsZWF2aW5n
IHRoZSBzdWJqZWN0IHBvaW50ZXIuICovCisKKyAgICBjYXNlIE9QX09OQ0U6CisgICAgICB7Cisg
ICAgICBmcmFtZS0+cHJldiA9IGZyYW1lLT5lY29kZTsKKyAgICAgIGZyYW1lLT5zYXZlZF9lcHRy
ID0gZnJhbWUtPmVwdHI7CisKKyAgICAgIGRvCisgICAgICAgIHsKKyAgICAgICAgUk1BVENIKDks
IGZyYW1lLT5lY29kZSArIDEgKyBMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91
cCk7CisgICAgICAgIGlmIChycmMgPT0gTUFUQ0hfTUFUQ0gpIGJyZWFrOworICAgICAgICBpZiAo
cnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgZnJhbWUtPmVjb2Rl
ICs9IEdFVChmcmFtZS0+ZWNvZGUsMSk7CisgICAgICAgIH0KKyAgICAgIHdoaWxlICgqZnJhbWUt
PmVjb2RlID09IE9QX0FMVCk7CisKKyAgICAgIC8qIElmIGhpdCB0aGUgZW5kIG9mIHRoZSBncm91
cCAod2hpY2ggY291bGQgYmUgcmVwZWF0ZWQpLCBmYWlsICovCisKKyAgICAgIGlmICgqZnJhbWUt
PmVjb2RlICE9IE9QX09OQ0UgJiYgKmZyYW1lLT5lY29kZSAhPSBPUF9BTFQpIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7CisKKyAgICAgIC8qIENvbnRpbnVlIGFzIGZyb20gYWZ0ZXIgdGhlIGFzc2Vy
dGlvbiwgdXBkYXRpbmcgdGhlIG9mZnNldHMgaGlnaCB3YXRlcgorICAgICAgbWFyaywgc2luY2Ug
ZXh0cmFjdHMgbWF5IGhhdmUgYmVlbiB0YWtlbi4gKi8KKworICAgICAgZG8gZnJhbWUtPmVjb2Rl
ICs9IEdFVChmcmFtZS0+ZWNvZGUsMSk7IHdoaWxlICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7
CisKKyAgICAgIGZyYW1lLT5vZmZzZXRfdG9wID0gbWQtPmVuZF9vZmZzZXRfdG9wOworICAgICAg
ZnJhbWUtPmVwdHIgPSBtZC0+ZW5kX21hdGNoX3B0cjsKKworICAgICAgLyogRm9yIGEgbm9uLXJl
cGVhdGluZyBrZXQsIGp1c3QgY29udGludWUgYXQgdGhpcyBsZXZlbC4gVGhpcyBhbHNvCisgICAg
ICBoYXBwZW5zIGZvciBhIHJlcGVhdGluZyBrZXQgaWYgbm8gY2hhcmFjdGVycyB3ZXJlIG1hdGNo
ZWQgaW4gdGhlIGdyb3VwLgorICAgICAgVGhpcyBpcyB0aGUgZm9yY2libGUgYnJlYWtpbmcgb2Yg
aW5maW5pdGUgbG9vcHMgYXMgaW1wbGVtZW50ZWQgaW4gUGVybAorICAgICAgNS4wMDUuIElmIHRo
ZXJlIGlzIGFuIG9wdGlvbnMgcmVzZXQsIGl0IHdpbGwgZ2V0IG9iZXllZCBpbiB0aGUgbm9ybWFs
CisgICAgICBjb3Vyc2Ugb2YgZXZlbnRzLiAqLworCisgICAgICBpZiAoKmZyYW1lLT5lY29kZSA9
PSBPUF9LRVQgfHwgZnJhbWUtPmVwdHIgPT0gZnJhbWUtPnNhdmVkX2VwdHIpCisgICAgICAgIHsK
KyAgICAgICAgZnJhbWUtPmVjb2RlICs9IDErTElOS19TSVpFOworICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAvKiBUaGUgcmVwZWF0aW5nIGtldHMgdHJ5IHRoZSByZXN0IG9mIHRo
ZSBwYXR0ZXJuIG9yIHJlc3RhcnQgZnJvbSB0aGUKKyAgICAgIHByZWNlZGluZyBicmFja2V0LCBp
biB0aGUgYXBwcm9wcmlhdGUgb3JkZXIuIFdlIG5lZWQgdG8gcmVzZXQgYW55IG9wdGlvbnMKKyAg
ICAgIHRoYXQgY2hhbmdlZCB3aXRoaW4gdGhlIGJyYWNrZXQgYmVmb3JlIHJlLXJ1bm5pbmcgaXQs
IHNvIGNoZWNrIHRoZSBuZXh0CisgICAgICBvcGNvZGUuICovCisKKyAgICAgIGlmICgqZnJhbWUt
PmVjb2RlID09IE9QX0tFVFJNSU4pCisgICAgICAgIHsKKyAgICAgICAgUk1BVENIKDEwLCBmcmFt
ZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICBpZiAo
cnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgUk1BVENIKDExLCBm
cmFtZS0+cHJldiwgZnJhbWUtPmVwdHJiLCBtYXRjaF9pc2dyb3VwKTsKKyAgICAgICAgaWYgKHJy
YyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgIH0KKyAgICAgIGVsc2Ug
IC8qIE9QX0tFVFJNQVggKi8KKyAgICAgICAgeworICAgICAgICBSTUFUQ0goMTIsIGZyYW1lLT5w
cmV2LCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXApOworICAgICAgICBpZiAocnJjICE9IE1B
VENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgUk1BVENIKDEzLCBmcmFtZS0+ZWNv
ZGUgKyAxK0xJTktfU0laRSwgZnJhbWUtPmVwdHJiLCAwKTsKKyAgICAgICAgaWYgKHJyYyAhPSBN
QVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOworCisgICAgLyogQW4gYWx0ZXJuYXRpb24gaXMgdGhlIGVuZCBv
ZiBhIGJyYW5jaDsgc2NhbiBhbG9uZyB0byBmaW5kIHRoZSBlbmQgb2YgdGhlCisgICAgYnJhY2tl
dGVkIGdyb3VwIGFuZCBnbyB0byB0aGVyZS4gKi8KKworICAgIGNhc2UgT1BfQUxUOgorICAgIGRv
IGZyYW1lLT5lY29kZSArPSBHRVQoZnJhbWUtPmVjb2RlLDEpOyB3aGlsZSAoKmZyYW1lLT5lY29k
ZSA9PSBPUF9BTFQpOworICAgIGJyZWFrOworCisgICAgLyogQlJBWkVSTyBhbmQgQlJBTUlOWkVS
TyBvY2N1ciBqdXN0IGJlZm9yZSBhIGJyYWNrZXQgZ3JvdXAsIGluZGljYXRpbmcKKyAgICB0aGF0
IGl0IG1heSBvY2N1ciB6ZXJvIHRpbWVzLiBJdCBtYXkgcmVwZWF0IGluZmluaXRlbHksIG9yIG5v
dCBhdCBhbGwgLQorICAgIGkuZS4gaXQgY291bGQgYmUgKCkqIG9yICgpPyBpbiB0aGUgcGF0dGVy
bi4gQnJhY2tldHMgd2l0aCBmaXhlZCB1cHBlcgorICAgIHJlcGVhdCBsaW1pdHMgYXJlIGNvbXBp
bGVkIGFzIGEgbnVtYmVyIG9mIGNvcGllcywgd2l0aCB0aGUgb3B0aW9uYWwgb25lcworICAgIHBy
ZWNlZGVkIGJ5IEJSQVpFUk8gb3IgQlJBTUlOWkVSTy4gKi8KKworICAgIGNhc2UgT1BfQlJBWkVS
TzoKKyAgICAgIHsKKyAgICAgIGZyYW1lLT5uZXh0ID0gZnJhbWUtPmVjb2RlKzE7CisgICAgICBS
TUFUQ0goMTQsIGZyYW1lLT5uZXh0LCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXApOworICAg
ICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICBkbyBmcmFt
ZS0+bmV4dCArPSBHRVQoZnJhbWUtPm5leHQsMSk7IHdoaWxlICgqZnJhbWUtPm5leHQgPT0gT1Bf
QUxUKTsKKyAgICAgIGZyYW1lLT5lY29kZSA9IGZyYW1lLT5uZXh0ICsgMStMSU5LX1NJWkU7Cisg
ICAgICB9CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0JSQU1JTlpFUk86CisgICAgICB7Cisg
ICAgICBmcmFtZS0+bmV4dCA9IGZyYW1lLT5lY29kZSsxOworICAgICAgZG8gZnJhbWUtPm5leHQg
Kz0gR0VUKGZyYW1lLT5uZXh0LDEpOyB3aGlsZSAoKmZyYW1lLT5uZXh0ID09IE9QX0FMVCk7Cisg
ICAgICBSTUFUQ0goMTUsIGZyYW1lLT5uZXh0ICsgMStMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwg
bWF0Y2hfaXNncm91cCk7CisgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4o
cnJjKTsKKyAgICAgIGZyYW1lLT5lY29kZSsrOworICAgICAgfQorICAgIGJyZWFrOworCisgICAg
LyogRW5kIG9mIGEgZ3JvdXAsIHJlcGVhdGVkIG9yIG5vbi1yZXBlYXRpbmcuIElmIHdlIGFyZSBh
dCB0aGUgZW5kIG9mCisgICAgYW4gYXNzZXJ0aW9uICJncm91cCIsIHN0b3AgbWF0Y2hpbmcgYW5k
IHJldHVybiBNQVRDSF9NQVRDSCwgYnV0IHJlY29yZCB0aGUKKyAgICBjdXJyZW50IGhpZ2ggd2F0
ZXIgbWFyayBmb3IgdXNlIGJ5IHBvc2l0aXZlIGFzc2VydGlvbnMuIERvIHRoaXMgYWxzbworICAg
IGZvciB0aGUgIm9uY2UiIChub3QtYmFja3VwIHVwKSBncm91cHMuICovCisKKyAgICBjYXNlIE9Q
X0tFVDoKKyAgICBjYXNlIE9QX0tFVFJNSU46CisgICAgY2FzZSBPUF9LRVRSTUFYOgorICAgICAg
eworICAgICAgZnJhbWUtPnByZXYgPSBmcmFtZS0+ZWNvZGUgLSBHRVQoZnJhbWUtPmVjb2RlLCAx
KTsKKyAgICAgIGZyYW1lLT5zYXZlZF9lcHRyID0gZnJhbWUtPmVwdHJiLT5lcGJfc2F2ZWRfZXB0
cjsKKworICAgICAgLyogQmFjayB1cCB0aGUgc3RhY2sgb2YgYnJhY2tldCBzdGFydCBwb2ludGVy
cy4gKi8KKworICAgICAgZnJhbWUtPmVwdHJiID0gZnJhbWUtPmVwdHJiLT5lcGJfcHJldjsKKwor
ICAgICAgaWYgKCpmcmFtZS0+cHJldiA9PSBPUF9BU1NFUlQgfHwgKmZyYW1lLT5wcmV2ID09IE9Q
X0FTU0VSVF9OT1QgfHwgKmZyYW1lLT5wcmV2ID09IE9QX09OQ0UpCisgICAgICAgIHsKKyAgICAg
ICAgbWQtPmVuZF9tYXRjaF9wdHIgPSBmcmFtZS0+ZXB0cjsgICAgICAvKiBGb3IgT05DRSAqLwor
ICAgICAgICBtZC0+ZW5kX29mZnNldF90b3AgPSBmcmFtZS0+b2Zmc2V0X3RvcDsKKyAgICAgICAg
UlJFVFVSTihNQVRDSF9NQVRDSCk7CisgICAgICAgIH0KKworICAgICAgLyogSW4gYWxsIG90aGVy
IGNhc2VzIGV4Y2VwdCBhIGNvbmRpdGlvbmFsIGdyb3VwIHdlIGhhdmUgdG8gY2hlY2sgdGhlCisg
ICAgICBncm91cCBudW1iZXIgYmFjayBhdCB0aGUgc3RhcnQgYW5kIGlmIG5lY2Vzc2FyeSBjb21w
bGV0ZSBoYW5kbGluZyBhbgorICAgICAgZXh0cmFjdGlvbiBieSBzZXR0aW5nIHRoZSBvZmZzZXRz
IGFuZCBidW1waW5nIHRoZSBoaWdoIHdhdGVyIG1hcmsuICovCisKKyAgICAgICAgeworICAgICAg
ICBmcmFtZS0+bnVtYmVyID0gKmZyYW1lLT5wcmV2IC0gT1BfQlJBOworCisgICAgICAgIC8qIEZv
ciBleHRlbmRlZCBleHRyYWN0aW9uIGJyYWNrZXRzIChsYXJnZSBudW1iZXIpLCB3ZSBoYXZlIHRv
IGZpc2ggb3V0CisgICAgICAgIHRoZSBudW1iZXIgZnJvbSBhIGR1bW15IG9wY29kZSBhdCB0aGUg
c3RhcnQuICovCisKKyAgICAgICAgaWYgKGZyYW1lLT5udW1iZXIgPiBFWFRSQUNUX0JBU0lDX01B
WCkgZnJhbWUtPm51bWJlciA9IEdFVDIoZnJhbWUtPnByZXYsIDIrTElOS19TSVpFKTsKKyAgICAg
ICAgZnJhbWUtPm9mZnNldCA9IGZyYW1lLT5udW1iZXIgPDwgMTsKKworI2lmZGVmIERFQlVHCisg
ICAgICAgIHByaW50ZigiZW5kIGJyYWNrZXQgJWQiLCBmcmFtZS0+bnVtYmVyKTsKKyAgICAgICAg
cHJpbnRmKCJcbiIpOworI2VuZGlmCisKKyAgICAgICAgLyogVGVzdCBmb3IgYSBudW1iZXJlZCBn
cm91cC4gVGhpcyBpbmNsdWRlcyBncm91cHMgY2FsbGVkIGFzIGEgcmVzdWx0CisgICAgICAgIG9m
IHJlY3Vyc2lvbi4gTm90ZSB0aGF0IHdob2xlLXBhdHRlcm4gcmVjdXJzaW9uIGlzIGNvZGVkIGFz
IGEgcmVjdXJzZQorICAgICAgICBpbnRvIGdyb3VwIDAsIHNvIGl0IHdvbid0IGJlIHBpY2tlZCB1
cCBoZXJlLiBJbnN0ZWFkLCB3ZSBjYXRjaCBpdCB3aGVuCisgICAgICAgIHRoZSBPUF9FTkQgaXMg
cmVhY2hlZC4gKi8KKworICAgICAgICBpZiAoZnJhbWUtPm51bWJlciA+IDApCisgICAgICAgICAg
eworICAgICAgICAgIGlmIChmcmFtZS0+b2Zmc2V0ID49IG1kLT5vZmZzZXRfbWF4KSBtZC0+b2Zm
c2V0X292ZXJmbG93ID0gVFJVRTsgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgbWQt
Pm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldF0gPQorICAgICAgICAgICAgICBtZC0+b2Zmc2V0
X3ZlY3RvclttZC0+b2Zmc2V0X2VuZCAtIGZyYW1lLT5udW1iZXJdOworICAgICAgICAgICAgbWQt
Pm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldCsxXSA9IGZyYW1lLT5lcHRyIC0gbWQtPnN0YXJ0
X3N1YmplY3Q7CisgICAgICAgICAgICBpZiAoZnJhbWUtPm9mZnNldF90b3AgPD0gZnJhbWUtPm9m
ZnNldCkgZnJhbWUtPm9mZnNldF90b3AgPSBmcmFtZS0+b2Zmc2V0ICsgMjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogRm9yIGEgbm9uLXJlcGVhdGlu
ZyBrZXQsIGp1c3QgY29udGludWUgYXQgdGhpcyBsZXZlbC4gVGhpcyBhbHNvCisgICAgICBoYXBw
ZW5zIGZvciBhIHJlcGVhdGluZyBrZXQgaWYgbm8gY2hhcmFjdGVycyB3ZXJlIG1hdGNoZWQgaW4g
dGhlIGdyb3VwLgorICAgICAgVGhpcyBpcyB0aGUgZm9yY2libGUgYnJlYWtpbmcgb2YgaW5maW5p
dGUgbG9vcHMgYXMgaW1wbGVtZW50ZWQgaW4gUGVybAorICAgICAgNS4wMDUuIElmIHRoZXJlIGlz
IGFuIG9wdGlvbnMgcmVzZXQsIGl0IHdpbGwgZ2V0IG9iZXllZCBpbiB0aGUgbm9ybWFsCisgICAg
ICBjb3Vyc2Ugb2YgZXZlbnRzLiAqLworCisgICAgICBpZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9L
RVQgfHwgZnJhbWUtPmVwdHIgPT0gZnJhbWUtPnNhdmVkX2VwdHIpCisgICAgICAgIHsKKyAgICAg
ICAgZnJhbWUtPmVjb2RlICs9IDEgKyBMSU5LX1NJWkU7CisgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKKyAgICAgIC8qIFRoZSByZXBlYXRpbmcga2V0cyB0cnkgdGhlIHJlc3Qgb2YgdGhlIHBh
dHRlcm4gb3IgcmVzdGFydCBmcm9tIHRoZQorICAgICAgcHJlY2VkaW5nIGJyYWNrZXQsIGluIHRo
ZSBhcHByb3ByaWF0ZSBvcmRlci4gKi8KKworICAgICAgaWYgKCpmcmFtZS0+ZWNvZGUgPT0gT1Bf
S0VUUk1JTikKKyAgICAgICAgeworICAgICAgICBSTUFUQ0goMTYsIGZyYW1lLT5lY29kZSArIDEr
TElOS19TSVpFLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICBpZiAocnJjICE9IE1BVENIX05P
TUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgUk1BVENIKDE3LCBmcmFtZS0+cHJldiwgZnJh
bWUtPmVwdHJiLCBtYXRjaF9pc2dyb3VwKTsKKyAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01B
VENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgIH0KKyAgICAgIGVsc2UgIC8qIE9QX0tFVFJNQVgg
Ki8KKyAgICAgICAgeworICAgICAgICBSTUFUQ0goMTgsIGZyYW1lLT5wcmV2LCBmcmFtZS0+ZXB0
cmIsIG1hdGNoX2lzZ3JvdXApOworICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJS
RVRVUk4ocnJjKTsKKyAgICAgICAgUk1BVENIKDE5LCBmcmFtZS0+ZWNvZGUgKyAxK0xJTktfU0la
RSwgZnJhbWUtPmVwdHJiLCAwKTsKKyAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBS
UkVUVVJOKHJyYyk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgIFJSRVRVUk4oTUFUQ0hfTk9N
QVRDSCk7CisKKyAgICAvKiBTdGFydCBvZiBzdWJqZWN0IHVubGVzcyBub3Rib2wsIG9yIGFmdGVy
IGludGVybmFsIG5ld2xpbmUgaWYgbXVsdGlsaW5lICovCisKKyAgICBjYXNlIE9QX0NJUkM6Cisg
ICAgaWYgKG1kLT5tdWx0aWxpbmUpCisgICAgICB7CisgICAgICBpZiAoZnJhbWUtPmVwdHIgIT0g
bWQtPnN0YXJ0X3N1YmplY3QgJiYgIUlTX05FV0xJTkUoZnJhbWUtPmVwdHJbLTFdKSkKKyAgICAg
ICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgIGZyYW1lLT5lY29kZSsrOworICAgICAg
YnJlYWs7CisgICAgICB9CisgICAgaWYgKGZyYW1lLT5lcHRyICE9IG1kLT5zdGFydF9zdWJqZWN0
KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGZyYW1lLT5lY29kZSsrOworICAgIGJyZWFr
OworCisgICAgLyogQXNzZXJ0IGJlZm9yZSBpbnRlcm5hbCBuZXdsaW5lIGlmIG11bHRpbGluZSwg
b3IgYmVmb3JlIGEgdGVybWluYXRpbmcKKyAgICBuZXdsaW5lIHVubGVzcyBlbmRvbmx5IGlzIHNl
dCwgZWxzZSBlbmQgb2Ygc3ViamVjdCB1bmxlc3Mgbm90ZW9sIGlzIHNldC4gKi8KKworICAgIGNh
c2UgT1BfRE9MTDoKKyAgICBpZiAobWQtPm11bHRpbGluZSkKKyAgICAgIHsKKyAgICAgIGlmIChm
cmFtZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCkKKyAgICAgICAgeyBpZiAoIUlTX05FV0xJTkUo
KmZyYW1lLT5lcHRyKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsgfQorICAgICAgZnJhbWUtPmVj
b2RlKys7CisgICAgICBicmVhazsKKyAgICAgIH0KKyAgICBlbHNlCisgICAgICB7CisgICAgICBp
ZiAoZnJhbWUtPmVwdHIgPCBtZC0+ZW5kX3N1YmplY3QgLSAxIHx8CisgICAgICAgICAoZnJhbWUt
PmVwdHIgPT0gbWQtPmVuZF9zdWJqZWN0IC0gMSAmJiAhSVNfTkVXTElORSgqZnJhbWUtPmVwdHIp
KSkKKyAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgIGZyYW1lLT5lY29kZSsr
OworICAgICAgYnJlYWs7CisgICAgICB9CisgICAgYnJlYWs7CisKKyAgICAvKiBXb3JkIGJvdW5k
YXJ5IGFzc2VydGlvbnMgKi8KKworICAgIGNhc2UgT1BfTk9UX1dPUkRfQk9VTkRBUlk6CisgICAg
Y2FzZSBPUF9XT1JEX0JPVU5EQVJZOgorICAgICAgeworICAgICAgLyogRmluZCBvdXQgaWYgdGhl
IHByZXZpb3VzIGFuZCBjdXJyZW50IGNoYXJhY3RlcnMgYXJlICJ3b3JkIiBjaGFyYWN0ZXJzLgor
ICAgICAgSXQgdGFrZXMgYSBiaXQgbW9yZSB3b3JrIGluIFVURi04IG1vZGUuIENoYXJhY3RlcnMg
PiAxMjggYXJlIGFzc3VtZWQgdG8KKyAgICAgIGJlICJub24td29yZCIgY2hhcmFjdGVycy4gKi8K
KworICAgICAgICB7CisgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA9PSBtZC0+c3RhcnRfc3ViamVj
dCkgcHJldl9pc193b3JkID0gRkFMU0U7IGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgY29u
c3QgcGNyZV91Y2hhciAqbGFzdHB0ciA9IGZyYW1lLT5lcHRyIC0gMTsKKyAgICAgICAgICB3aGls
ZShJU01JRENIQVIoKmxhc3RwdHIpKSBsYXN0cHRyLS07CisgICAgICAgICAgR0VUQ0hBUihjLCBs
YXN0cHRyKTsKKyAgICAgICAgICBwcmV2X2lzX3dvcmQgPSBjIDwgMTI4ICYmIChtZC0+Y3R5cGVz
W2NdICYgY3R5cGVfd29yZCkgIT0gMDsKKyAgICAgICAgICB9CisgICAgICAgIGlmIChmcmFtZS0+
ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGN1cl9pc193b3JkID0gRkFMU0U7IGVsc2UKKyAgICAg
ICAgICB7CisgICAgICAgICAgR0VUQ0hBUihjLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgY3Vy
X2lzX3dvcmQgPSBjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgIT0gMDsK
KyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgLyogTm93IHNlZSBpZiB0aGUgc2l0dWF0
aW9uIGlzIHdoYXQgd2Ugd2FudCAqLworCisgICAgICBpZiAoKCpmcmFtZS0+ZWNvZGUrKyA9PSBP
UF9XT1JEX0JPVU5EQVJZKT8KKyAgICAgICAgICAgY3VyX2lzX3dvcmQgPT0gcHJldl9pc193b3Jk
IDogY3VyX2lzX3dvcmQgIT0gcHJldl9pc193b3JkKQorICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOworICAgICAgfQorICAgIGJyZWFrOworCisgICAgLyogTWF0Y2ggYSBzaW5nbGUgY2hh
cmFjdGVyIHR5cGU7IGlubGluZSBmb3Igc3BlZWQgKi8KKworICAgIGNhc2UgT1BfQU5ZOgorICAg
IGlmIChmcmFtZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAmJiBJU19ORVdMSU5FKCpmcmFtZS0+
ZXB0cikpCisgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGlmIChmcmFtZS0+ZXB0
cisrID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgIHdo
aWxlIChmcmFtZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAmJiBJU01JRENIQVIoKmZyYW1lLT5l
cHRyKSkgZnJhbWUtPmVwdHIrKzsKKyAgICBmcmFtZS0+ZWNvZGUrKzsKKyAgICBicmVhazsKKwor
ICAgIGNhc2UgT1BfTk9UX0RJR0lUOgorICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1
YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJh
bWUtPmVwdHIpOworICAgIGlmICgKKyAgICAgICBjIDwgMTI4ICYmCisgICAgICAgKG1kLT5jdHlw
ZXNbY10gJiBjdHlwZV9kaWdpdCkgIT0gMAorICAgICAgICkKKyAgICAgIFJSRVRVUk4oTUFUQ0hf
Tk9NQVRDSCk7CisgICAgZnJhbWUtPmVjb2RlKys7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9Q
X0RJR0lUOgorICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4o
TUFUQ0hfTk9NQVRDSCk7CisgICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOworICAg
IGlmICgKKyAgICAgICBjID49IDEyOCB8fAorICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVf
ZGlnaXQpID09IDAKKyAgICAgICApCisgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAg
IGZyYW1lLT5lY29kZSsrOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9OT1RfV0hJVEVTUEFD
RToKKyAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENI
X05PTUFUQ0gpOworICAgIEdFVENIQVJJTkNURVNUKGMsIGZyYW1lLT5lcHRyKTsKKyAgICBpZiAo
CisgICAgICAgYyA8IDEyOCAmJgorICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2Up
ICE9IDAKKyAgICAgICApCisgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGZyYW1l
LT5lY29kZSsrOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9XSElURVNQQUNFOgorICAgIGlm
IChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7
CisgICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOworICAgIGlmICgKKyAgICAgICBj
ID49IDEyOCB8fAorICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2UpID09IDAKKyAg
ICAgICApCisgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGZyYW1lLT5lY29kZSsr
OworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9OT1RfV09SRENIQVI6CisgICAgaWYgKGZyYW1l
LT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBH
RVRDSEFSSU5DVEVTVChjLCBmcmFtZS0+ZXB0cik7CisgICAgaWYgKAorICAgICAgIGMgPCAxMjgg
JiYKKyAgICAgICAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX3dvcmQpICE9IDAKKyAgICAgICApCisg
ICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGZyYW1lLT5lY29kZSsrOworICAgIGJy
ZWFrOworCisgICAgY2FzZSBPUF9XT1JEQ0hBUjoKKyAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQt
PmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIEdFVENIQVJJTkNURVNU
KGMsIGZyYW1lLT5lcHRyKTsKKyAgICBpZiAoCisgICAgICAgYyA+PSAxMjggfHwKKyAgICAgICAo
bWQtPmN0eXBlc1tjXSAmIGN0eXBlX3dvcmQpID09IDAKKyAgICAgICApCisgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgIGZyYW1lLT5lY29kZSsrOworICAgIGJyZWFrOworCisgICAg
LyogTWF0Y2ggYSBiYWNrIHJlZmVyZW5jZSwgcG9zc2libHkgcmVwZWF0ZWRseS4gTG9vayBwYXN0
IHRoZSBlbmQgb2YgdGhlCisgICAgaXRlbSB0byBzZWUgaWYgdGhlcmUgaXMgcmVwZWF0IGluZm9y
bWF0aW9uIGZvbGxvd2luZy4gVGhlIGNvZGUgaXMgc2ltaWxhcgorICAgIHRvIHRoYXQgZm9yIGNo
YXJhY3RlciBjbGFzc2VzLCBidXQgcmVwZWF0ZWQgZm9yIGVmZmljaWVuY3kuIFRoZW4gb2JleQor
ICAgIHNpbWlsYXIgY29kZSB0byBjaGFyYWN0ZXIgdHlwZSByZXBlYXRzIC0gd3JpdHRlbiBvdXQg
YWdhaW4gZm9yIHNwZWVkLgorICAgIEhvd2V2ZXIsIGlmIHRoZSByZWZlcmVuY2VkIHN0cmluZyBp
cyB0aGUgZW1wdHkgc3RyaW5nLCBhbHdheXMgdHJlYXQKKyAgICBpdCBhcyBtYXRjaGVkLCBhbnkg
bnVtYmVyIG9mIHRpbWVzIChvdGhlcndpc2UgdGhlcmUgY291bGQgYmUgaW5maW5pdGUKKyAgICBs
b29wcykuICovCisKKyAgICBjYXNlIE9QX1JFRjoKKyAgICAgIHsKKyAgICAgIGZyYW1lLT5vZmZz
ZXQgPSBHRVQyKGZyYW1lLT5lY29kZSwgMSkgPDwgMTsgICAgICAgICAgICAgICAvKiBEb3VibGVk
IHJlZiBudW1iZXIgKi8KKyAgICAgIGZyYW1lLT5lY29kZSArPSAzOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIEFkdmFuY2UgcGFzdCBpdGVtICovCisKKyAgICAgIC8qIElmIHRo
ZSByZWZlcmVuY2UgaXMgdW5zZXQsIHNldCB0aGUgbGVuZ3RoIHRvIGJlIGxvbmdlciB0aGFuIHRo
ZSBhbW91bnQKKyAgICAgIG9mIHN1YmplY3QgbGVmdDsgdGhpcyBlbnN1cmVzIHRoYXQgZXZlcnkg
YXR0ZW1wdCBhdCBhIG1hdGNoIGZhaWxzLiBXZQorICAgICAgY2FuJ3QganVzdCBmYWlsIGhlcmUs
IGJlY2F1c2Ugb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHF1YW50aWZpZXJzIHdpdGggemVybworICAg
ICAgbWluaW1hLiAqLworCisgICAgICBmcmFtZS0+bGVuZ3RoID0gKGZyYW1lLT5vZmZzZXQgPj0g
ZnJhbWUtPm9mZnNldF90b3AgfHwgbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldF0gPCAw
KT8KKyAgICAgICAgMCA6CisgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXQr
MV0gLSBtZC0+b2Zmc2V0X3ZlY3RvcltmcmFtZS0+b2Zmc2V0XTsKKworICAgICAgLyogU2V0IHVw
IGZvciByZXBldGl0aW9uLCBvciBoYW5kbGUgdGhlIG5vbi1yZXBlYXRlZCBjYXNlICovCisKKyAg
ICAgIHN3aXRjaCAoKmZyYW1lLT5lY29kZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIE9QX0NS
U1RBUjoKKyAgICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6CisgICAgICAgIGNhc2UgT1BfQ1JQTFVT
OgorICAgICAgICBjYXNlIE9QX0NSTUlOUExVUzoKKyAgICAgICAgY2FzZSBPUF9DUlFVRVJZOgor
ICAgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6CisgICAgICAgIGMgPSAqZnJhbWUtPmVjb2RlKysg
LSBPUF9DUlNUQVI7CisgICAgICAgIG1pbmltaXplID0gKGMgJiAxKSAhPSAwOworICAgICAgICBt
aW4gPSByZXBfbWluW2NdOyAgICAgICAgICAgICAgICAgLyogUGljayB1cCB2YWx1ZXMgZnJvbSB0
YWJsZXM7ICovCisgICAgICAgIGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAgICAgICAg
ICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCisgICAgICAgIGlmIChmcmFtZS0+bWF4
ID09IDApIGZyYW1lLT5tYXggPSBJTlRfTUFYOworICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIE9QX0NSUkFOR0U6CisgICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToKKyAgICAgICAgbWlu
aW1pemUgPSAoKmZyYW1lLT5lY29kZSA9PSBPUF9DUk1JTlJBTkdFKTsKKyAgICAgICAgbWluID0g
R0VUMihmcmFtZS0+ZWNvZGUsIDEpOworICAgICAgICBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+
ZWNvZGUsIDMpOworICAgICAgICBpZiAoZnJhbWUtPm1heCA9PSAwKSBmcmFtZS0+bWF4ID0gSU5U
X01BWDsKKyAgICAgICAgZnJhbWUtPmVjb2RlICs9IDU7CisgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyogTm8gcmVwZWF0IGZvbGxvd3MgKi8KKyAgICAg
ICAgaWYgKCFtYXRjaF9yZWYoZnJhbWUtPm9mZnNldCwgZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5n
dGgsIG1kKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgZnJhbWUtPmVwdHIgKz0g
ZnJhbWUtPmxlbmd0aDsKKyAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAvKiBXaXRoIHRo
ZSBtYWluIGxvb3AgKi8KKyAgICAgICAgfQorCisgICAgICAvKiBJZiB0aGUgbGVuZ3RoIG9mIHRo
ZSByZWZlcmVuY2UgaXMgemVybywganVzdCBjb250aW51ZSB3aXRoIHRoZQorICAgICAgbWFpbiBs
b29wLiAqLworCisgICAgICBpZiAoZnJhbWUtPmxlbmd0aCA9PSAwKSBjb250aW51ZTsKKworICAg
ICAgLyogRmlyc3QsIGVuc3VyZSB0aGUgbWluaW11bSBudW1iZXIgb2YgbWF0Y2hlcyBhcmUgcHJl
c2VudC4gKi8KKworICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKKyAgICAgICAgewor
ICAgICAgICBpZiAoIW1hdGNoX3JlZihmcmFtZS0+b2Zmc2V0LCBmcmFtZS0+ZXB0ciwgZnJhbWUt
Pmxlbmd0aCwgbWQpKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICBmcmFtZS0+ZXB0
ciArPSBmcmFtZS0+bGVuZ3RoOworICAgICAgICB9CisKKyAgICAgIC8qIElmIG1pbiA9IG1heCwg
Y29udGludWUgYXQgdGhlIHNhbWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpb24uCisgICAgICBUaGV5
IGFyZSBub3QgYm90aCBhbGxvd2VkIHRvIGJlIHplcm8uICovCisKKyAgICAgIGlmIChtaW4gPT0g
ZnJhbWUtPm1heCkgY29udGludWU7CisKKyAgICAgIC8qIElmIG1pbmltaXppbmcsIGtlZXAgdHJ5
aW5nIGFuZCBhZHZhbmNpbmcgdGhlIHBvaW50ZXIgKi8KKworICAgICAgaWYgKG1pbmltaXplKQor
ICAgICAgICB7CisgICAgICAgIGZvciAoZnJhbWUtPmZpID0gbWluOzsgZnJhbWUtPmZpKyspCisg
ICAgICAgICAgeworICAgICAgICAgIFJNQVRDSCgyMCwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0
cmIsIDApOworICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMp
OworICAgICAgICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCAhbWF0Y2hfcmVmKGZy
YW1lLT5vZmZzZXQsIGZyYW1lLT5lcHRyLCBmcmFtZS0+bGVuZ3RoLCBtZCkpCisgICAgICAgICAg
ICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGZyYW1lLT5lcHRyICs9IGZyYW1l
LT5sZW5ndGg7CisgICAgICAgICAgfQorICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVy
ZSAqLworICAgICAgICB9CisKKyAgICAgIC8qIElmIG1heGltaXppbmcsIGZpbmQgdGhlIGxvbmdl
c3Qgc3RyaW5nIGFuZCB3b3JrIGJhY2t3YXJkcyAqLworCisgICAgICBlbHNlCisgICAgICAgIHsK
KyAgICAgICAgZnJhbWUtPnBwID0gZnJhbWUtPmVwdHI7CisgICAgICAgIGZvciAoaSA9IG1pbjsg
aSA8IGZyYW1lLT5tYXg7IGkrKykKKyAgICAgICAgICB7CisgICAgICAgICAgaWYgKCFtYXRjaF9y
ZWYoZnJhbWUtPm9mZnNldCwgZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5ndGgsIG1kKSkgYnJlYWs7
CisgICAgICAgICAgZnJhbWUtPmVwdHIgKz0gZnJhbWUtPmxlbmd0aDsKKyAgICAgICAgICB9Cisg
ICAgICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA+PSBmcmFtZS0+cHApCisgICAgICAgICAgeworICAg
ICAgICAgIFJNQVRDSCgyMSwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAg
ICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgIGZy
YW1lLT5lcHRyIC09IGZyYW1lLT5sZW5ndGg7CisgICAgICAgICAgfQorICAgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgICAgICB9CisgICAgICB9CisgICAgLyogQ29udHJvbCBuZXZl
ciBnZXRzIGhlcmUgKi8KKworCisKKyAgICAvKiBNYXRjaCBhIGJpdC1tYXBwZWQgY2hhcmFjdGVy
IGNsYXNzLCBwb3NzaWJseSByZXBlYXRlZGx5LiBUaGlzIG9wIGNvZGUgaXMKKyAgICB1c2VkIHdo
ZW4gYWxsIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBjbGFzcyBoYXZlIHZhbHVlcyBpbiB0aGUgcmFu
Z2UgMC0yNTUsCisgICAgYW5kIGVpdGhlciB0aGUgbWF0Y2hpbmcgaXMgY2FzZWZ1bCwgb3IgdGhl
IGNoYXJhY3RlcnMgYXJlIGluIHRoZSByYW5nZQorICAgIDAtMTI3IHdoZW4gVVRGLTggcHJvY2Vz
c2luZyBpcyBlbmFibGVkLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgICBPUF9DTEFT
UyBhbmQgT1BfTkNMQVNTIG9jY3VycyB3aGVuIGEgZGF0YSBjaGFyYWN0ZXIgb3V0c2lkZSB0aGUg
cmFuZ2UgaXMKKyAgICBlbmNvdW50ZXJlZC4KKworICAgIEZpcnN0LCBsb29rIHBhc3QgdGhlIGVu
ZCBvZiB0aGUgaXRlbSB0byBzZWUgaWYgdGhlcmUgaXMgcmVwZWF0IGluZm9ybWF0aW9uCisgICAg
Zm9sbG93aW5nLiBUaGVuIG9iZXkgc2ltaWxhciBjb2RlIHRvIGNoYXJhY3RlciB0eXBlIHJlcGVh
dHMgLSB3cml0dGVuIG91dAorICAgIGFnYWluIGZvciBzcGVlZC4gKi8KKworICAgIGNhc2UgT1Bf
TkNMQVNTOgorICAgIGNhc2UgT1BfQ0xBU1M6CisgICAgICB7CisgICAgICBmcmFtZS0+ZGF0YSA9
IGZyYW1lLT5lY29kZSArIDE7ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNoaW5nICov
CisgICAgICBmcmFtZS0+ZWNvZGUgKz0gMzM7ICAgICAgICAgICAgICAgICAgICAgLyogQWR2YW5j
ZSBwYXN0IHRoZSBpdGVtICovCisKKyAgICAgIHN3aXRjaCAoKmZyYW1lLT5lY29kZSkKKyAgICAg
ICAgeworICAgICAgICBjYXNlIE9QX0NSU1RBUjoKKyAgICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6
CisgICAgICAgIGNhc2UgT1BfQ1JQTFVTOgorICAgICAgICBjYXNlIE9QX0NSTUlOUExVUzoKKyAg
ICAgICAgY2FzZSBPUF9DUlFVRVJZOgorICAgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6CisgICAg
ICAgIGMgPSAqZnJhbWUtPmVjb2RlKysgLSBPUF9DUlNUQVI7CisgICAgICAgIG1pbmltaXplID0g
KGMgJiAxKSAhPSAwOworICAgICAgICBtaW4gPSByZXBfbWluW2NdOyAgICAgICAgICAgICAgICAg
LyogUGljayB1cCB2YWx1ZXMgZnJvbSB0YWJsZXM7ICovCisgICAgICAgIGZyYW1lLT5tYXggPSBy
ZXBfbWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICov
CisgICAgICAgIGlmIChmcmFtZS0+bWF4ID09IDApIGZyYW1lLT5tYXggPSBJTlRfTUFYOworICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIE9QX0NSUkFOR0U6CisgICAgICAgIGNhc2UgT1Bf
Q1JNSU5SQU5HRToKKyAgICAgICAgbWluaW1pemUgPSAoKmZyYW1lLT5lY29kZSA9PSBPUF9DUk1J
TlJBTkdFKTsKKyAgICAgICAgbWluID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOworICAgICAgICBm
cmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDMpOworICAgICAgICBpZiAoZnJhbWUtPm1h
eCA9PSAwKSBmcmFtZS0+bWF4ID0gSU5UX01BWDsKKyAgICAgICAgZnJhbWUtPmVjb2RlICs9IDU7
CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyogTm8g
cmVwZWF0IGZvbGxvd3MgKi8KKyAgICAgICAgbWluID0gZnJhbWUtPm1heCA9IDE7CisgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgIC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmltdW0g
bnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuICovCisKKyAgICAgICAgeworICAgICAgICBm
b3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQorICAgICAgICAgIHsKKyAgICAgICAgICBpZiAoZnJh
bWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAg
ICAgICAgIEdFVENIQVJJTkMoYywgZnJhbWUtPmVwdHIpOworICAgICAgICAgIGlmIChjID4gMjU1
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgaWYgKGZyYW1lLT5kYXRhWy0xXSA9PSBPUF9D
TEFTUykgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBl
bHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoKGZyYW1lLT5kYXRhW2MvOF0gJiAo
MSA8PCAoYyY3KSkpID09IDApIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgIC8qIElmIG1heCA9PSBtaW4gd2UgY2Fu
IGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCB3aXRob3V0IHRoZQorICAgICAgbmVlZCB0byBy
ZWN1cnNlLiAqLworCisgICAgICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNvbnRpbnVlOworCisg
ICAgICAvKiBJZiBtaW5pbWl6aW5nLCBrZWVwIHRlc3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGV4cHJl
c3Npb24gYW5kIGFkdmFuY2luZworICAgICAgdGhlIHBvaW50ZXIgd2hpbGUgaXQgbWF0Y2hlcyB0
aGUgY2xhc3MuICovCisKKyAgICAgIGlmIChtaW5pbWl6ZSkKKyAgICAgICAgeworICAgICAgICAg
IHsKKyAgICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgUk1BVENIKDIyLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRy
YiwgMCk7CisgICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0
ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAg
ICBHRVRDSEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsKKyAgICAgICAgICAgIGlmIChjID4gMjU1KQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZGF0YVstMV0gPT0gT1Bf
Q0xBU1MpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICBpZiAoKGZyYW1lLT5kYXRh
W2MvOF0gJiAoMSA8PCAoYyY3KSkpID09IDApIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIC8qIENvbnRy
b2wgbmV2ZXIgZ2V0cyBoZXJlICovCisgICAgICAgIH0KKworICAgICAgLyogSWYgbWF4aW1pemlu
ZywgZmluZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBydW4sIHRoZW4gd29yayBiYWNrd2FyZHMuICov
CisKKyAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICBmcmFtZS0+cHAgPSBmcmFtZS0+ZXB0
cjsKKworICAgICAgICAgIHsKKyAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4
OyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICBpbnQgbGVuID0gMTsKKyAgICAgICAg
ICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOworICAgICAgICAg
ICAgR0VUQ0hBUkxFTihjLCBmcmFtZS0+ZXB0ciwgbGVuKTsKKyAgICAgICAgICAgIGlmIChjID4g
MjU1KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZGF0YVstMV0g
PT0gT1BfQ0xBU1MpIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKChmcmFtZS0+ZGF0YVtjLzhdICYgKDEg
PDwgKGMmNykpKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZnJh
bWUtPmVwdHIgKz0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgIGZvciAoOzspCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICBSTUFUQ0goMjQsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVw
dHJiLCAwKTsKKyAgICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihy
cmMpOworICAgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyLS0gPT0gZnJhbWUtPnBwKSBicmVhazsg
ICAgICAgIC8qIFN0b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCisgICAgICAgICAgICBC
QUNLQ0hBUihmcmFtZS0+ZXB0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg
ICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICB9CisgICAgICB9CisgICAgLyogQ29u
dHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KKworCisgICAgLyogTWF0Y2ggYW4gZXh0ZW5kZWQgY2hh
cmFjdGVyIGNsYXNzLiBUaGlzIG9wY29kZSBpcyBlbmNvdW50ZXJlZCBvbmx5CisgICAgaW4gVVRG
LTggbW9kZSwgYmVjYXVzZSB0aGF0J3MgdGhlIG9ubHkgdGltZSBpdCBpcyBjb21waWxlZC4gKi8K
KworICAgIGNhc2UgT1BfWENMQVNTOgorICAgICAgeworICAgICAgZnJhbWUtPmRhdGEgPSBmcmFt
ZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFOyAgICAgICAgICAgICAgICAvKiBTYXZlIGZvciBtYXRj
aGluZyAqLworICAgICAgZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsIDEpOyAgICAg
ICAgICAgICAgICAgICAgICAvKiBBZHZhbmNlIHBhc3QgdGhlIGl0ZW0gKi8KKworICAgICAgc3dp
dGNoICgqZnJhbWUtPmVjb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgT1BfQ1JTVEFSOgor
ICAgICAgICBjYXNlIE9QX0NSTUlOU1RBUjoKKyAgICAgICAgY2FzZSBPUF9DUlBMVVM6CisgICAg
ICAgIGNhc2UgT1BfQ1JNSU5QTFVTOgorICAgICAgICBjYXNlIE9QX0NSUVVFUlk6CisgICAgICAg
IGNhc2UgT1BfQ1JNSU5RVUVSWToKKyAgICAgICAgYyA9ICpmcmFtZS0+ZWNvZGUrKyAtIE9QX0NS
U1RBUjsKKyAgICAgICAgbWluaW1pemUgPSAoYyAmIDEpICE9IDA7CisgICAgICAgIG1pbiA9IHJl
cF9taW5bY107ICAgICAgICAgICAgICAgICAvKiBQaWNrIHVwIHZhbHVlcyBmcm9tIHRhYmxlczsg
Ki8KKyAgICAgICAgZnJhbWUtPm1heCA9IHJlcF9tYXhbY107ICAgICAgICAgICAgICAgICAvKiB6
ZXJvIGZvciBtYXggPT4gaW5maW5pdHkgKi8KKyAgICAgICAgaWYgKGZyYW1lLT5tYXggPT0gMCkg
ZnJhbWUtPm1heCA9IElOVF9NQVg7CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgT1Bf
Q1JSQU5HRToKKyAgICAgICAgY2FzZSBPUF9DUk1JTlJBTkdFOgorICAgICAgICBtaW5pbWl6ZSA9
ICgqZnJhbWUtPmVjb2RlID09IE9QX0NSTUlOUkFOR0UpOworICAgICAgICBtaW4gPSBHRVQyKGZy
YW1lLT5lY29kZSwgMSk7CisgICAgICAgIGZyYW1lLT5tYXggPSBHRVQyKGZyYW1lLT5lY29kZSwg
Myk7CisgICAgICAgIGlmIChmcmFtZS0+bWF4ID09IDApIGZyYW1lLT5tYXggPSBJTlRfTUFYOwor
ICAgICAgICBmcmFtZS0+ZWNvZGUgKz0gNTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVm
YXVsdDogICAgICAgICAgICAgICAvKiBObyByZXBlYXQgZm9sbG93cyAqLworICAgICAgICBtaW4g
PSBmcmFtZS0+bWF4ID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgLyog
Rmlyc3QsIGVuc3VyZSB0aGUgbWluaW11bSBudW1iZXIgb2YgbWF0Y2hlcyBhcmUgcHJlc2VudC4g
Ki8KKworICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKKyAgICAgICAgeworICAgICAg
ICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFU
Q0gpOworICAgICAgICBHRVRDSEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsKKyAgICAgICAgaWYgKCFf
cGNyZV94Y2xhc3MoYywgZnJhbWUtPmRhdGEpKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAg
ICAgICB9CisKKyAgICAgIC8qIElmIG1heCA9PSBtaW4gd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhl
IG1haW4gbG9vcCB3aXRob3V0IHRoZQorICAgICAgbmVlZCB0byByZWN1cnNlLiAqLworCisgICAg
ICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNvbnRpbnVlOworCisgICAgICAvKiBJZiBtaW5pbWl6
aW5nLCBrZWVwIHRlc3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb24gYW5kIGFkdmFuY2lu
ZworICAgICAgdGhlIHBvaW50ZXIgd2hpbGUgaXQgbWF0Y2hlcyB0aGUgY2xhc3MuICovCisKKyAg
ICAgIGlmIChtaW5pbWl6ZSkKKyAgICAgICAgeworICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1p
bjs7IGZyYW1lLT5maSsrKQorICAgICAgICAgIHsKKyAgICAgICAgICBSTUFUQ0goMjYsIGZyYW1l
LT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKKyAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05P
TUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5t
YXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFU
Q0gpOworICAgICAgICAgIEdFVENIQVJJTkMoYywgZnJhbWUtPmVwdHIpOworICAgICAgICAgIGlm
ICghX3BjcmVfeGNsYXNzKGMsIGZyYW1lLT5kYXRhKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
KyAgICAgICAgICB9CisgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCisgICAg
ICAgIH0KKworICAgICAgLyogSWYgbWF4aW1pemluZywgZmluZCB0aGUgbG9uZ2VzdCBwb3NzaWJs
ZSBydW4sIHRoZW4gd29yayBiYWNrd2FyZHMuICovCisKKyAgICAgIGVsc2UKKyAgICAgICAgewor
ICAgICAgICBmcmFtZS0+cHAgPSBmcmFtZS0+ZXB0cjsKKyAgICAgICAgZm9yIChpID0gbWluOyBp
IDwgZnJhbWUtPm1heDsgaSsrKQorICAgICAgICAgIHsKKyAgICAgICAgICBpbnQgbGVuID0gMTsK
KyAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKKyAg
ICAgICAgICBHRVRDSEFSTEVOKGMsIGZyYW1lLT5lcHRyLCBsZW4pOworICAgICAgICAgIGlmICgh
X3BjcmVfeGNsYXNzKGMsIGZyYW1lLT5kYXRhKSkgYnJlYWs7CisgICAgICAgICAgZnJhbWUtPmVw
dHIgKz0gbGVuOworICAgICAgICAgIH0KKyAgICAgICAgZm9yKDs7KQorICAgICAgICAgIHsKKyAg
ICAgICAgICBSTUFUQ0goMjcsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKKyAgICAg
ICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICBp
ZiAoZnJhbWUtPmVwdHItLSA9PSBmcmFtZS0+cHApIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0
cmllZCBhdCBvcmlnaW5hbCBwb3MgKi8KKyAgICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0cikK
KyAgICAgICAgICB9CisgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgIH0K
KworICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KKyAgICAgIH0KKworICAgIC8q
IE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciwgY2FzZWZ1bGx5ICovCisKKyAgICBjYXNlIE9QX0NI
QVI6CisgICAgICB7CisgICAgICBmcmFtZS0+bGVuZ3RoID0gMTsKKyAgICAgIGZyYW1lLT5lY29k
ZSsrOworICAgICAgR0VUVVRGOENIQVJMRU4oZnJhbWUtPmZjLCBmcmFtZS0+ZWNvZGUsIGZyYW1l
LT5sZW5ndGgpOworICAgICAgeworICAgICAgICBpbnQgZGM7CisgICAgICAgIGZyYW1lLT5lY29k
ZSArPSBmcmFtZS0+bGVuZ3RoOworICAgICAgICBzd2l0Y2ggKG1kLT5lbmRfc3ViamVjdCAtIGZy
YW1lLT5lcHRyKQorICAgICAgICB7CisgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBkYyA9
ICpmcmFtZS0+ZXB0cisrOworICAgICAgICAgICAgaWYgKElTX0xFQURJTkdfU1VSUk9HQVRFKGRj
KSkKKyAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBHRVRDSEFSSU5DKGRjLCBmcmFt
ZS0+ZXB0cik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZyYW1lLT5mYyAhPSBkYykgUlJFVFVS
TihNQVRDSF9OT01BVENIKTsKKyAgICAgfSAgCisgICAgICB9CisgICAgYnJlYWs7CisKKyAgICAv
KiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGNhc2VsZXNzbHkgKi8KKworICAgIGNhc2UgT1Bf
Q0hBUk5DOgorICAgICAgeworICAgICAgZnJhbWUtPmxlbmd0aCA9IDE7CisgICAgICBmcmFtZS0+
ZWNvZGUrKzsKKyAgICAgIEdFVFVURjhDSEFSTEVOKGZyYW1lLT5mYywgZnJhbWUtPmVjb2RlLCBm
cmFtZS0+bGVuZ3RoKTsKKworICAgICAgaWYgKG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRy
ID09IDApIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisKKyAgICAgIC8qIElmIHRoZSBwYXR0ZXJu
IGNoYXJhY3RlcidzIHZhbHVlIGlzIDwgMTI4LCB3ZSBoYXZlIG9ubHkgb25lIGJ5dGUsIGFuZAor
ICAgICAgY2FuIHVzZSB0aGUgZmFzdCBsb29rdXAgdGFibGUuICovCisKKyAgICAgIGlmIChmcmFt
ZS0+ZmMgPCAxMjgpCisgICAgICAgIHsKKyAgICAgICAgaW50IGRjOworICAgICAgICBmcmFtZS0+
ZWNvZGUrKzsKKyAgICAgICAgZGMgPSAqZnJhbWUtPmVwdHIrKzsKKyAgICAgICAgaWYgKGRjID49
IDEyOCB8fCBtZC0+bGNjW2ZyYW1lLT5mY10gIT0gbWQtPmxjY1tkY10pIFJSRVRVUk4oTUFUQ0hf
Tk9NQVRDSCk7CisgICAgICAgIH0KKworICAgICAgLyogT3RoZXJ3aXNlIHdlIG11c3QgcGljayB1
cCB0aGUgc3ViamVjdCBjaGFyYWN0ZXIgKi8KKworICAgICAgZWxzZQorICAgICAgICB7CisgICAg
ICAgIGludCBkYzsKKyAgICAgICAgaWYgKG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyID09
IDEpIHsKKyAgICAgICAgICBkYyA9ICpmcmFtZS0+ZXB0cisrOworICAgICAgICAgIGlmIChJU19M
RUFESU5HX1NVUlJPR0FURShkYykpCisgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgR0VUQ0hBUklOQyhkYywgZnJhbWUtPmVwdHIpOwor
ICAgICAgICBmcmFtZS0+ZWNvZGUgKz0gZnJhbWUtPmxlbmd0aDsKKworICAgICAgICAvKiBJZiB3
ZSBoYXZlIFVuaWNvZGUgcHJvcGVydHkgc3VwcG9ydCwgd2UgY2FuIHVzZSBpdCB0byB0ZXN0IHRo
ZSBvdGhlcgorICAgICAgICBjYXNlIG9mIHRoZSBjaGFyYWN0ZXIsIGlmIHRoZXJlIGlzIG9uZS4g
Ki8KKworICAgICAgICBpZiAoZnJhbWUtPmZjICE9IGRjKQorICAgICAgICAgIHsKKyAgICAgICAg
ICBpZiAoZGMgIT0gX3BjcmVfdWNwX290aGVyY2FzZShmcmFtZS0+ZmMpKQorICAgICAgICAgICAg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0K
KyAgICBicmVhazsKKworICAgIC8qIE1hdGNoIGEgc2luZ2xlIEFTQ0lJIGNoYXJhY3Rlci4gKi8K
KworICAgIGNhc2UgT1BfQVNDSUlfQ0hBUjoKKyAgICBpZiAobWQtPmVuZF9zdWJqZWN0ID09IGZy
YW1lLT5lcHRyKQorICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBpZiAoKmZyYW1l
LT5lcHRyICE9IGZyYW1lLT5lY29kZVsxXSkKKyAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7
CisgICAgKytmcmFtZS0+ZXB0cjsKKyAgICBmcmFtZS0+ZWNvZGUgKz0gMjsKKyAgICBicmVhazsK
KworICAgIC8qIE1hdGNoIG9uZSBvZiB0d28gY2FzZXMgb2YgYW4gQVNDSUkgY2hhcmFjdGVyLiAq
LworCisgICAgY2FzZSBPUF9BU0NJSV9MRVRURVJfTkM6CisgICAgaWYgKG1kLT5lbmRfc3ViamVj
dCA9PSBmcmFtZS0+ZXB0cikKKyAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYg
KCgqZnJhbWUtPmVwdHIgfCAweDIwKSAhPSBmcmFtZS0+ZWNvZGVbMV0pCisgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgICsrZnJhbWUtPmVwdHI7CisgICAgZnJhbWUtPmVjb2RlICs9
IDI7CisgICAgYnJlYWs7CisKKyAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgcmVwZWF0
ZWRseTsgZGlmZmVyZW50IG9wY29kZXMgc2hhcmUgY29kZS4gKi8KKworICAgIGNhc2UgT1BfRVhB
Q1Q6CisgICAgbWluID0gZnJhbWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKKyAgICBt
aW5pbWl6ZSA9IEZBTFNFOworICAgIGZyYW1lLT5lY29kZSArPSAzOworICAgIGdvdG8gUkVQRUFU
Q0hBUjsKKworICAgIGNhc2UgT1BfVVBUTzoKKyAgICBjYXNlIE9QX01JTlVQVE86CisgICAgbWlu
ID0gMDsKKyAgICBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOworICAgIG1pbmlt
aXplID0gKmZyYW1lLT5lY29kZSA9PSBPUF9NSU5VUFRPOworICAgIGZyYW1lLT5lY29kZSArPSAz
OworICAgIGdvdG8gUkVQRUFUQ0hBUjsKKworICAgIGNhc2UgT1BfU1RBUjoKKyAgICBjYXNlIE9Q
X01JTlNUQVI6CisgICAgY2FzZSBPUF9QTFVTOgorICAgIGNhc2UgT1BfTUlOUExVUzoKKyAgICBj
YXNlIE9QX1FVRVJZOgorICAgIGNhc2UgT1BfTUlOUVVFUlk6CisgICAgYyA9ICpmcmFtZS0+ZWNv
ZGUrKyAtIE9QX1NUQVI7CisgICAgbWluaW1pemUgPSAoYyAmIDEpICE9IDA7CisgICAgbWluID0g
cmVwX21pbltjXTsgICAgICAgICAgICAgICAgIC8qIFBpY2sgdXAgdmFsdWVzIGZyb20gdGFibGVz
OyAqLworICAgIGZyYW1lLT5tYXggPSByZXBfbWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVy
byBmb3IgbWF4ID0+IGluZmluaXR5ICovCisgICAgaWYgKGZyYW1lLT5tYXggPT0gMCkgZnJhbWUt
Pm1heCA9IElOVF9NQVg7CisKKyAgICAvKiBDb21tb24gY29kZSBmb3IgYWxsIHJlcGVhdGVkIHNp
bmdsZS1jaGFyYWN0ZXIgbWF0Y2hlcy4gV2UgY2FuIGdpdmUKKyAgICB1cCBxdWlja2x5IGlmIHRo
ZXJlIGFyZSBmZXdlciB0aGFuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGxlZnQg
aW4KKyAgICB0aGUgc3ViamVjdC4gKi8KKworICAgIFJFUEVBVENIQVI6CisKKyAgICAgIGZyYW1l
LT5sZW5ndGggPSAxOworICAgICAgR0VUVVRGOENIQVJMRU4oZnJhbWUtPmZjLCBmcmFtZS0+ZWNv
ZGUsIGZyYW1lLT5sZW5ndGgpOworICAgICAgeworICAgICAgaWYgKG1pbiAqIChmcmFtZS0+ZmMg
PiAweEZGRkYgPyAyIDogMSkgPiBtZC0+ZW5kX3N1YmplY3QgLSBmcmFtZS0+ZXB0cikgUlJFVFVS
TihNQVRDSF9OT01BVENIKTsKKyAgICAgIGZyYW1lLT5lY29kZSArPSBmcmFtZS0+bGVuZ3RoOwor
CisgICAgICBpZiAoZnJhbWUtPmZjIDw9IDB4RkZGRikKKyAgICAgICAgeworICAgICAgICBpbnQg
b3RoZXJjYXNlID0gbWQtPmNhc2VsZXNzID8gX3BjcmVfdWNwX290aGVyY2FzZShmcmFtZS0+ZmMp
IDogLTE7CisKKyAgICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKKyAgICAgICAgICB7
CisgICAgICAgICAgaWYgKCpmcmFtZS0+ZXB0ciAhPSBmcmFtZS0+ZmMgJiYgKmZyYW1lLT5lcHRy
ICE9IG90aGVyY2FzZSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICArK2ZyYW1l
LT5lcHRyOworICAgICAgICAgIH0KKworICAgICAgICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNv
bnRpbnVlOworCisgICAgICAgIGlmIChtaW5pbWl6ZSkKKyAgICAgICAgICB7CisgICAgICAgICAg
ZnJhbWUtPnJlcGVhdF9vdGhlcmNhc2UgPSBvdGhlcmNhc2U7CisgICAgICAgICAgZm9yIChmcmFt
ZS0+ZmkgPSBtaW47OyBmcmFtZS0+ZmkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIFJN
QVRDSCgyOCwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICAgICAgaWYg
KHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgICAgICBpZiAoZnJh
bWUtPmZpID49IGZyYW1lLT5tYXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBS
UkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgaWYgKCpmcmFtZS0+ZXB0ciAhPSBm
cmFtZS0+ZmMgJiYgKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5yZXBlYXRfb3RoZXJjYXNlKSBSUkVU
VVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgKytmcmFtZS0+ZXB0cjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLworICAgICAgICAg
IH0KKyAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyAgICAgICAgICBmcmFtZS0+cHAgPSBmcmFt
ZS0+ZXB0cjsKKyAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJq
ZWN0KSBicmVhazsKKyAgICAgICAgICAgIGlmICgqZnJhbWUtPmVwdHIgIT0gZnJhbWUtPmZjICYm
ICpmcmFtZS0+ZXB0ciAhPSBvdGhlcmNhc2UpIGJyZWFrOworICAgICAgICAgICAgKytmcmFtZS0+
ZXB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB3aGlsZSAoZnJhbWUtPmVwdHIgPj0gZnJh
bWUtPnBwKQorICAgICAgICAgICB7CisgICAgICAgICAgIFJNQVRDSCgyOSwgZnJhbWUtPmVjb2Rl
LCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gp
IFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgLS1mcmFtZS0+ZXB0cjsKKyAgICAgICAgICAgfQor
ICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgfQorICAgICAgICAv
KiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLworICAgICAgICB9CisgICAgICBlbHNlCisgICAg
ICAgIHsKKyAgICAgICAgLyogTm8gY2FzZSBvbiBzdXJyb2dhdGUgcGFpcnMsIHNvIG5vIG5lZWQg
dG8gYm90aGVyIHdpdGggIm90aGVyY2FzZSIuICovCisKKyAgICAgICAgZm9yIChpID0gMTsgaSA8
PSBtaW47IGkrKykKKyAgICAgICAgICB7CisgICAgICAgICAgaW50IG5jOworICAgICAgICAgIEdF
VENIQVIobmMsIGZyYW1lLT5lcHRyKTsKKyAgICAgICAgICBpZiAobmMgIT0gZnJhbWUtPmZjKSBS
UkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGZyYW1lLT5lcHRyICs9IDI7CisgICAg
ICAgICAgfQorCisgICAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7CisKKyAg
ICAgICAgaWYgKG1pbmltaXplKQorICAgICAgICAgIHsKKyAgICAgICAgICBmb3IgKGZyYW1lLT5m
aSA9IG1pbjs7IGZyYW1lLT5maSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgaW50IG5j
OworICAgICAgICAgICAgUk1BVENIKDMwLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7
CisgICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAg
ICAgICAgICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBt
ZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBHRVRD
SEFSKG5jLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgICBpZiAoKmZyYW1lLT5lcHRyICE9IGZy
YW1lLT5mYykgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGZyYW1lLT5lcHRy
ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhl
cmUgKi8KKyAgICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAg
ZnJhbWUtPnBwID0gZnJhbWUtPmVwdHI7CisgICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJh
bWUtPm1heDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgaW50IG5jOworICAgICAg
ICAgICAgaWYgKGZyYW1lLT5lcHRyID4gbWQtPmVuZF9zdWJqZWN0IC0gMikgYnJlYWs7CisgICAg
ICAgICAgICBHRVRDSEFSKG5jLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgICBpZiAoKmZyYW1l
LT5lcHRyICE9IGZyYW1lLT5mYykgYnJlYWs7CisgICAgICAgICAgICBmcmFtZS0+ZXB0ciArPSAy
OworICAgICAgICAgICAgfQorICAgICAgICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA+PSBmcmFtZS0+
cHApCisgICAgICAgICAgIHsKKyAgICAgICAgICAgUk1BVENIKDMxLCBmcmFtZS0+ZWNvZGUsIGZy
YW1lLT5lcHRyYiwgMCk7CisgICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJF
VFVSTihycmMpOworICAgICAgICAgICBmcmFtZS0+ZXB0ciAtPSAyOworICAgICAgICAgICB9Cisg
ICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
LyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KKyAgICAgICAgfQorICAgICAgICAvKiBDb250
cm9sIG5ldmVyIGdldHMgaGVyZSAqLworICAgICAgICB9CisKKyAgICAvKiBNYXRjaCBhIG5lZ2F0
ZWQgc2luZ2xlIG9uZS1ieXRlIGNoYXJhY3Rlci4gVGhlIGNoYXJhY3RlciB3ZSBhcmUKKyAgICBj
aGVja2luZyBjYW4gYmUgbXVsdGlieXRlLiAqLworCisgICAgY2FzZSBPUF9OT1Q6CisgICAgaWYg
KGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsK
KyAgICBmcmFtZS0+ZWNvZGUrKzsKKyAgICBHRVRDSEFSSU5DVEVTVChjLCBmcmFtZS0+ZXB0cik7
CisgICAgaWYgKG1kLT5jYXNlbGVzcykKKyAgICAgIHsKKyAgICAgIGlmIChjIDwgMTI4KQorICAg
ICAgICBjID0gbWQtPmxjY1tjXTsKKyAgICAgIGlmIChtZC0+bGNjWypmcmFtZS0+ZWNvZGUrK10g
PT0gYykgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgIH0KKyAgICBlbHNlCisgICAgICB7
CisgICAgICBpZiAoKmZyYW1lLT5lY29kZSsrID09IGMpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7
CisgICAgICB9CisgICAgYnJlYWs7CisKKyAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9u
ZS1ieXRlIGNoYXJhY3RlciByZXBlYXRlZGx5LiBUaGlzIGlzIGFsbW9zdCBhCisgICAgcmVwZWF0
IG9mIHRoZSBjb2RlIGZvciBhIHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIsIGJ1dCBJIGhhdmVu
J3QgZm91bmQgYQorICAgIG5pY2Ugd2F5IG9mIGNvbW1vbmluZyB0aGVzZSB1cCB0aGF0IGRvZXNu
J3QgcmVxdWlyZSBhIHRlc3Qgb2YgdGhlCisgICAgcG9zaXRpdmUvbmVnYXRpdmUgb3B0aW9uIGZv
ciBlYWNoIGNoYXJhY3RlciBtYXRjaC4gTWF5YmUgdGhhdCB3b3VsZG4ndCBhZGQKKyAgICB2ZXJ5
IG11Y2ggdG8gdGhlIHRpbWUgdGFrZW4sIGJ1dCBjaGFyYWN0ZXIgbWF0Y2hpbmcgKmlzKiB3aGF0
IHRoaXMgaXMgYWxsCisgICAgYWJvdXQuLi4gKi8KKworICAgIGNhc2UgT1BfTk9URVhBQ1Q6Cisg
ICAgbWluID0gZnJhbWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKKyAgICBtaW5pbWl6
ZSA9IEZBTFNFOworICAgIGZyYW1lLT5lY29kZSArPSAzOworICAgIGdvdG8gUkVQRUFUTk9UQ0hB
UjsKKworICAgIGNhc2UgT1BfTk9UVVBUTzoKKyAgICBjYXNlIE9QX05PVE1JTlVQVE86CisgICAg
bWluID0gMDsKKyAgICBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOworICAgIG1p
bmltaXplID0gKmZyYW1lLT5lY29kZSA9PSBPUF9OT1RNSU5VUFRPOworICAgIGZyYW1lLT5lY29k
ZSArPSAzOworICAgIGdvdG8gUkVQRUFUTk9UQ0hBUjsKKworICAgIGNhc2UgT1BfTk9UU1RBUjoK
KyAgICBjYXNlIE9QX05PVE1JTlNUQVI6CisgICAgY2FzZSBPUF9OT1RQTFVTOgorICAgIGNhc2Ug
T1BfTk9UTUlOUExVUzoKKyAgICBjYXNlIE9QX05PVFFVRVJZOgorICAgIGNhc2UgT1BfTk9UTUlO
UVVFUlk6CisgICAgYyA9ICpmcmFtZS0+ZWNvZGUrKyAtIE9QX05PVFNUQVI7CisgICAgbWluaW1p
emUgPSAoYyAmIDEpICE9IDA7CisgICAgbWluID0gcmVwX21pbltjXTsgICAgICAgICAgICAgICAg
IC8qIFBpY2sgdXAgdmFsdWVzIGZyb20gdGFibGVzOyAqLworICAgIGZyYW1lLT5tYXggPSByZXBf
bWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCisg
ICAgaWYgKGZyYW1lLT5tYXggPT0gMCkgZnJhbWUtPm1heCA9IElOVF9NQVg7CisKKyAgICAvKiBD
b21tb24gY29kZSBmb3IgYWxsIHJlcGVhdGVkIHNpbmdsZS1ieXRlIG1hdGNoZXMuIFdlIGNhbiBn
aXZlIHVwIHF1aWNrbHkKKyAgICBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB0aGUgbWluaW11bSBu
dW1iZXIgb2YgYnl0ZXMgbGVmdCBpbiB0aGUKKyAgICBzdWJqZWN0LiAqLworCisgICAgUkVQRUFU
Tk9UQ0hBUjoKKyAgICBpZiAobWluID4gbWQtPmVuZF9zdWJqZWN0IC0gZnJhbWUtPmVwdHIpIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgZnJhbWUtPmZjID0gKmZyYW1lLT5lY29kZSsrOwor
CisgICAgLyogVGhlIGNvZGUgaXMgZHVwbGljYXRlZCBmb3IgdGhlIGNhc2VsZXNzIGFuZCBjYXNl
ZnVsIGNhc2VzLCBmb3Igc3BlZWQsCisgICAgc2luY2UgbWF0Y2hpbmcgY2hhcmFjdGVycyBpcyBs
aWtlbHkgdG8gYmUgcXVpdGUgY29tbW9uLiBGaXJzdCwgZW5zdXJlIHRoZQorICAgIG1pbmltdW0g
bnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuIElmIG1pbiA9IG1heCwgY29udGludWUgYXQg
dGhlIHNhbWUKKyAgICBsZXZlbCB3aXRob3V0IHJlY3Vyc2luZy4gT3RoZXJ3aXNlLCBpZiBtaW5p
bWl6aW5nLCBrZWVwIHRyeWluZyB0aGUgcmVzdCBvZgorICAgIHRoZSBleHByZXNzaW9uIGFuZCBh
ZHZhbmNpbmcgb25lIG1hdGNoaW5nIGNoYXJhY3RlciBpZiBmYWlsaW5nLCB1cCB0byB0aGUKKyAg
ICBtYXhpbXVtLiBBbHRlcm5hdGl2ZWx5LCBpZiBtYXhpbWl6aW5nLCBmaW5kIHRoZSBtYXhpbXVt
IG51bWJlciBvZgorICAgIGNoYXJhY3RlcnMgYW5kIHdvcmsgYmFja3dhcmRzLiAqLworCisgICAg
RFBSSU5URigoIm5lZ2F0aXZlIG1hdGNoaW5nICVjeyVkLCVkfVxuIiwgZnJhbWUtPmZjLCBtaW4s
IGZyYW1lLT5tYXgpKTsKKworICAgIGlmIChtZC0+Y2FzZWxlc3MpCisgICAgICB7CisgICAgICBm
cmFtZS0+ZmMgPSBtZC0+bGNjW2ZyYW1lLT5mY107CisKKyAgICAgICAgeworICAgICAgICByZWdp
c3RlciBpbnQgZDsKKyAgICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKKyAgICAgICAg
ICB7CisgICAgICAgICAgR0VUQ0hBUklOQyhkLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgaWYg
KGQgPCAxMjgpIGQgPSBtZC0+bGNjW2RdOworICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0gZCkg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
aWYgKG1pbiA9PSBmcmFtZS0+bWF4KSBjb250aW51ZTsKKworICAgICAgaWYgKG1pbmltaXplKQor
ICAgICAgICB7CisgICAgICAgICAgeworICAgICAgICAgIHJlZ2lzdGVyIGludCBkOworICAgICAg
ICAgIGZvciAoZnJhbWUtPmZpID0gbWluOzsgZnJhbWUtPmZpKyspCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICBSTUFUQ0goMzgsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKKyAg
ICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAg
ICAgICAgR0VUQ0hBUklOQyhkLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgICBpZiAoZCA8IDEy
OCkgZCA9IG1kLT5sY2NbZF07CisgICAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5t
YXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8IGZyYW1lLT5mYyA9PSBkKQor
ICAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KKyAgICAgICAg
fQorCisgICAgICAvKiBNYXhpbWl6ZSBjYXNlICovCisKKyAgICAgIGVsc2UKKyAgICAgICAgewor
ICAgICAgICBmcmFtZS0+cHAgPSBmcmFtZS0+ZXB0cjsKKworICAgICAgICAgIHsKKyAgICAgICAg
ICByZWdpc3RlciBpbnQgZDsKKyAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4
OyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICBpbnQgbGVuID0gMTsKKyAgICAgICAg
ICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOworICAgICAgICAg
ICAgR0VUQ0hBUkxFTihkLCBmcmFtZS0+ZXB0ciwgbGVuKTsKKyAgICAgICAgICAgIGlmIChkIDwg
MTI4KSBkID0gbWQtPmxjY1tkXTsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0gZCkgYnJl
YWs7CisgICAgICAgICAgICBmcmFtZS0+ZXB0ciArPSBsZW47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgZm9yKDs7KQorICAgICAgICAgICAgeworICAgICAgICAgICAgUk1BVENIKDQwLCBmcmFt
ZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7CisgICAgICAgICAgICBpZiAocnJjICE9IE1BVENI
X05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ci0tID09
IGZyYW1lLT5wcCkgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBv
cyAqLworICAgICAgICAgICAgQkFDS0NIQVIoZnJhbWUtPmVwdHIpOworICAgICAgICAgICAgfQor
ICAgICAgICAgIH0KKworICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICB9
CisgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLworICAgICAgfQorCisgICAgLyog
Q2FzZWZ1bCBjb21wYXJpc29ucyAqLworCisgICAgZWxzZQorICAgICAgeworICAgICAgICB7Cisg
ICAgICAgIHJlZ2lzdGVyIGludCBkOworICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsr
KQorICAgICAgICAgIHsKKyAgICAgICAgICBHRVRDSEFSSU5DKGQsIGZyYW1lLT5lcHRyKTsKKyAg
ICAgICAgICBpZiAoZnJhbWUtPmZjID09IGQpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGlu
dWU7CisKKyAgICAgIGlmIChtaW5pbWl6ZSkKKyAgICAgICAgeworICAgICAgICAgIHsKKyAgICAg
ICAgICByZWdpc3RlciBpbnQgZDsKKyAgICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZy
YW1lLT5maSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgUk1BVENIKDQyLCBmcmFtZS0+
ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7CisgICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05P
TUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgIEdFVENIQVJJTkMoZCwgZnJhbWUtPmVw
dHIpOworICAgICAgICAgICAgaWYgKGZyYW1lLT5maSA+PSBmcmFtZS0+bWF4IHx8IGZyYW1lLT5l
cHRyID49IG1kLT5lbmRfc3ViamVjdCB8fCBmcmFtZS0+ZmMgPT0gZCkKKyAgICAgICAgICAgICAg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCisgICAgICAgIH0KKworICAgICAgLyog
TWF4aW1pemUgY2FzZSAqLworCisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZnJhbWUt
PnBwID0gZnJhbWUtPmVwdHI7CisKKyAgICAgICAgICB7CisgICAgICAgICAgcmVnaXN0ZXIgaW50
IGQ7CisgICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgaW50IGxlbiA9IDE7CisgICAgICAgICAgICBpZiAoZnJhbWUt
PmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKKyAgICAgICAgICAgIEdFVENIQVJMRU4o
ZCwgZnJhbWUtPmVwdHIsIGxlbik7CisgICAgICAgICAgICBpZiAoZnJhbWUtPmZjID09IGQpIGJy
ZWFrOworICAgICAgICAgICAgZnJhbWUtPmVwdHIgKz0gbGVuOworICAgICAgICAgICAgfQorICAg
ICAgICAgIGZvcig7OykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIFJNQVRDSCg0NCwgZnJh
bWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRD
SF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHItLSA9
PSBmcmFtZS0+cHApIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBw
b3MgKi8KKyAgICAgICAgICAgIEJBQ0tDSEFSKGZyYW1lLT5lcHRyKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICB9CisKKyAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAg
fQorICAgICAgfQorICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCisKKyAgICAvKiBN
YXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgdHlwZSByZXBlYXRlZGx5OyBzZXZlcmFsIGRpZmZlcmVu
dCBvcGNvZGVzCisgICAgc2hhcmUgY29kZS4gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhlIGNv
ZGUgZm9yIHNpbmdsZSBjaGFyYWN0ZXJzLCBidXQgd2UKKyAgICByZXBlYXQgaXQgaW4gdGhlIGlu
dGVyZXN0cyBvZiBlZmZpY2llbmN5LiAqLworCisgICAgY2FzZSBPUF9UWVBFRVhBQ1Q6CisgICAg
bWluID0gZnJhbWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKKyAgICBtaW5pbWl6ZSA9
IFRSVUU7CisgICAgZnJhbWUtPmVjb2RlICs9IDM7CisgICAgZ290byBSRVBFQVRUWVBFOworCisg
ICAgY2FzZSBPUF9UWVBFVVBUTzoKKyAgICBjYXNlIE9QX1RZUEVNSU5VUFRPOgorICAgIG1pbiA9
IDA7CisgICAgZnJhbWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKKyAgICBtaW5pbWl6
ZSA9ICpmcmFtZS0+ZWNvZGUgPT0gT1BfVFlQRU1JTlVQVE87CisgICAgZnJhbWUtPmVjb2RlICs9
IDM7CisgICAgZ290byBSRVBFQVRUWVBFOworCisgICAgY2FzZSBPUF9UWVBFU1RBUjoKKyAgICBj
YXNlIE9QX1RZUEVNSU5TVEFSOgorICAgIGNhc2UgT1BfVFlQRVBMVVM6CisgICAgY2FzZSBPUF9U
WVBFTUlOUExVUzoKKyAgICBjYXNlIE9QX1RZUEVRVUVSWToKKyAgICBjYXNlIE9QX1RZUEVNSU5R
VUVSWToKKyAgICBjID0gKmZyYW1lLT5lY29kZSsrIC0gT1BfVFlQRVNUQVI7CisgICAgbWluaW1p
emUgPSAoYyAmIDEpICE9IDA7CisgICAgbWluID0gcmVwX21pbltjXTsgICAgICAgICAgICAgICAg
IC8qIFBpY2sgdXAgdmFsdWVzIGZyb20gdGFibGVzOyAqLworICAgIGZyYW1lLT5tYXggPSByZXBf
bWF4W2NdOyAgICAgICAgICAgICAgICAgLyogemVybyBmb3IgbWF4ID0+IGluZmluaXR5ICovCisg
ICAgaWYgKGZyYW1lLT5tYXggPT0gMCkgZnJhbWUtPm1heCA9IElOVF9NQVg7CisKKyAgICAvKiBD
b21tb24gY29kZSBmb3IgYWxsIHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIgdHlwZSBtYXRjaGVz
LiBOb3RlIHRoYXQKKyAgICBpbiBVVEYtOCBtb2RlLCAnLicgbWF0Y2hlcyBhIGNoYXJhY3RlciBv
ZiBhbnkgbGVuZ3RoLCBidXQgZm9yIHRoZSBvdGhlcgorICAgIGNoYXJhY3RlciB0eXBlcywgdGhl
IHZhbGlkIGNoYXJhY3RlcnMgYXJlIGFsbCBvbmUtYnl0ZSBsb25nLiAqLworCisgICAgUkVQRUFU
VFlQRToKKyAgICBmcmFtZS0+Y3R5cGUgPSAqZnJhbWUtPmVjb2RlKys7ICAgICAgLyogQ29kZSBm
b3IgdGhlIGNoYXJhY3RlciB0eXBlICovCisKKyAgICAvKiBGaXJzdCwgZW5zdXJlIHRoZSBtaW5p
bXVtIG51bWJlciBvZiBtYXRjaGVzIGFyZSBwcmVzZW50LiBVc2UgaW5saW5lCisgICAgY29kZSBm
b3IgbWF4aW1pemluZyB0aGUgc3BlZWQsIGFuZCBkbyB0aGUgdHlwZSB0ZXN0IG9uY2UgYXQgdGhl
IHN0YXJ0CisgICAgKGkuZS4ga2VlcCBpdCBvdXQgb2YgdGhlIGxvb3ApLiBBbHNvIHdlIGNhbiB0
ZXN0IHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0CisgICAgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5
dGVzIGJlZm9yZSB3ZSBzdGFydC4gVGhpcyBpc24ndCBhcyBlZmZlY3RpdmUgaW4KKyAgICBVVEYt
OCBtb2RlLCBidXQgaXQgZG9lcyBubyBoYXJtLiBTZXBhcmF0ZSB0aGUgVVRGLTggY29kZSBjb21w
bGV0ZWx5IGFzIHRoYXQKKyAgICBpcyB0aWRpZXIuIEFsc28gc2VwYXJhdGUgdGhlIFVDUCBjb2Rl
LCB3aGljaCBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggVVRGLTgKKyAgICBhbmQgc2luZ2xlLWJ5
dGVzLiAqLworCisgICAgaWYgKG1pbiA+IG1kLT5lbmRfc3ViamVjdCAtIGZyYW1lLT5lcHRyKSBS
UkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGlmIChtaW4gPiAwKQorICAgICAgeworICAgICAg
c3dpdGNoKGZyYW1lLT5jdHlwZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIE9QX0FOWToKKyAg
ICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKKyAgICAgICAgICB7CisgICAgICAgICAg
aWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCB8fCBJU19ORVdMSU5FKCpmcmFtZS0+
ZXB0cikpCisgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICsr
ZnJhbWUtPmVwdHI7CisgICAgICAgICAgd2hpbGUgKGZyYW1lLT5lcHRyIDwgbWQtPmVuZF9zdWJq
ZWN0ICYmIElTTUlEQ0hBUigqZnJhbWUtPmVwdHIpKSBmcmFtZS0+ZXB0cisrOworICAgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6CisgICAgICAg
IGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgIGlmIChm
cmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Cisg
ICAgICAgICAgR0VUQ0hBUklOQyhjLCBmcmFtZS0+ZXB0cik7CisgICAgICAgICAgaWYgKGMgPCAx
MjggJiYgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9kaWdpdCkgIT0gMCkKKyAgICAgICAgICAgIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAg
ICAgICBjYXNlIE9QX0RJR0lUOgorICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQor
ICAgICAgICAgIHsKKyAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0
IHx8CisgICAgICAgICAgICAgKmZyYW1lLT5lcHRyID49IDEyOCB8fCAobWQtPmN0eXBlc1sqZnJh
bWUtPmVwdHIrK10gJiBjdHlwZV9kaWdpdCkgPT0gMCkKKyAgICAgICAgICAgIFJSRVRVUk4oTUFU
Q0hfTk9NQVRDSCk7CisgICAgICAgICAgLyogTm8gbmVlZCB0byBza2lwIG1vcmUgYnl0ZXMgLSB3
ZSBrbm93IGl0J3MgYSAxLWJ5dGUgY2hhcmFjdGVyICovCisgICAgICAgICAgfQorICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgorICAgICAgICBmb3IgKGkg
PSAxOyBpIDw9IG1pbjsgaSsrKQorICAgICAgICAgIHsKKyAgICAgICAgICBpZiAoZnJhbWUtPmVw
dHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8CisgICAgICAgICAgICAgKCpmcmFtZS0+ZXB0ciA8IDEy
OCAmJiAobWQtPmN0eXBlc1sqZnJhbWUtPmVwdHJdICYgY3R5cGVfc3BhY2UpICE9IDApKQorICAg
ICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICB3aGlsZSAoKytmcmFt
ZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAmJiBJU01JRENIQVIoKmZyYW1lLT5lcHRyKSk7Cisg
ICAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE9QX1dISVRFU1BBQ0U6
CisgICAgICAgIGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCisgICAgICAgICAgeworICAgICAg
ICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QgfHwKKyAgICAgICAgICAgICAq
ZnJhbWUtPmVwdHIgPj0gMTI4IHx8IChtZC0+Y3R5cGVzWypmcmFtZS0+ZXB0cisrXSAmIGN0eXBl
X3NwYWNlKSA9PSAwKQorICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAg
ICAgICAvKiBObyBuZWVkIHRvIHNraXAgbW9yZSBieXRlcyAtIHdlIGtub3cgaXQncyBhIDEtYnl0
ZSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGNh
c2UgT1BfTk9UX1dPUkRDSEFSOgorICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQor
ICAgICAgICAgIHsKKyAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0
IHx8CisgICAgICAgICAgICAgKCpmcmFtZS0+ZXB0ciA8IDEyOCAmJiAobWQtPmN0eXBlc1sqZnJh
bWUtPmVwdHJdICYgY3R5cGVfd29yZCkgIT0gMCkpCisgICAgICAgICAgICBSUkVUVVJOKE1BVENI
X05PTUFUQ0gpOworICAgICAgICAgIHdoaWxlICgrK2ZyYW1lLT5lcHRyIDwgbWQtPmVuZF9zdWJq
ZWN0ICYmIElTTUlEQ0hBUigqZnJhbWUtPmVwdHIpKTsKKyAgICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGNhc2UgT1BfV09SRENIQVI6CisgICAgICAgIGZvciAoaSA9IDE7IGkg
PD0gbWluOyBpKyspCisgICAgICAgICAgeworICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBt
ZC0+ZW5kX3N1YmplY3QgfHwKKyAgICAgICAgICAgICAqZnJhbWUtPmVwdHIgPj0gMTI4IHx8ICht
ZC0+Y3R5cGVzWypmcmFtZS0+ZXB0cisrXSAmIGN0eXBlX3dvcmQpID09IDApCisgICAgICAgICAg
ICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIC8qIE5vIG5lZWQgdG8gc2tpcCBt
b3JlIGJ5dGVzIC0gd2Uga25vdyBpdCdzIGEgMS1ieXRlIGNoYXJhY3RlciAqLworICAgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgUlJFVFVSTihK
U19SRUdFWFBfRVJST1JfSU5URVJOQUwpOworICAgICAgICB9ICAvKiBFbmQgc3dpdGNoKGZyYW1l
LT5jdHlwZSkgKi8KKyAgICAgIH0KKworICAgIC8qIElmIG1pbiA9IG1heCwgY29udGludWUgYXQg
dGhlIHNhbWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpbmcgKi8KKworICAgIGlmIChtaW4gPT0gZnJh
bWUtPm1heCkgY29udGludWU7CisKKyAgICAvKiBJZiBtaW5pbWl6aW5nLCB3ZSBoYXZlIHRvIHRl
c3QgdGhlIHJlc3Qgb2YgdGhlIHBhdHRlcm4gYmVmb3JlIGVhY2gKKyAgICBzdWJzZXF1ZW50IG1h
dGNoLiAqLworCisgICAgaWYgKG1pbmltaXplKQorICAgICAgeworICAgICAgICB7CisgICAgICAg
IGZvciAoZnJhbWUtPmZpID0gbWluOzsgZnJhbWUtPmZpKyspCisgICAgICAgICAgeworICAgICAg
ICAgIFJNQVRDSCg0OCwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOworICAgICAgICAg
IGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgIGlmIChm
cmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3Qp
IFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisKKyAgICAgICAgICBHRVRDSEFSSU5DKGMsIGZyYW1l
LT5lcHRyKTsKKyAgICAgICAgICBzd2l0Y2goZnJhbWUtPmN0eXBlKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgY2FzZSBPUF9BTlk6CisgICAgICAgICAgICBpZiAoSVNfTkVXTElORShjKSkg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICBjYXNlIE9QX05PVF9ESUdJVDoKKyAgICAgICAgICAgIGlmIChjIDwgMTI4ICYmIChtZC0+Y3R5
cGVzW2NdICYgY3R5cGVfZGlnaXQpICE9IDApCisgICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hf
Tk9NQVRDSCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBPUF9ESUdJ
VDoKKyAgICAgICAgICAgIGlmIChjID49IDEyOCB8fCAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX2Rp
Z2l0KSA9PSAwKQorICAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT1BfTk9UX1dISVRFU1BBQ0U6CisgICAg
ICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQtPmN0eXBlc1tjXSAmIGN0eXBlX3NwYWNlKSAhPSAw
KQorICAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIGNhc2UgT1BfV0hJVEVTUEFDRToKKyAgICAgICAgICAgIGlmICAo
YyA+PSAxMjggfHwgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgPT0gMCkKKyAgICAgICAg
ICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBjYXNlIE9QX05PVF9XT1JEQ0hBUjoKKyAgICAgICAgICAgIGlmIChjIDwgMTI4ICYm
IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgIT0gMCkKKyAgICAgICAgICAgICAgUlJFVFVS
TihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNl
IE9QX1dPUkRDSEFSOgorICAgICAgICAgICAgaWYgKGMgPj0gMTI4IHx8IChtZC0+Y3R5cGVzW2Nd
ICYgY3R5cGVfd29yZCkgPT0gMCkKKyAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENI
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfSU5URVJOQUwpOworICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8K
KyAgICAgIH0KKworICAgIC8qIElmIG1heGltaXppbmcgaXQgaXMgd29ydGggdXNpbmcgaW5saW5l
IGNvZGUgZm9yIHNwZWVkLCBkb2luZyB0aGUgdHlwZQorICAgIHRlc3Qgb25jZSBhdCB0aGUgc3Rh
cnQgKGkuZS4ga2VlcCBpdCBvdXQgb2YgdGhlIGxvb3ApLiAqLworCisgICAgZWxzZQorICAgICAg
eworICAgICAgZnJhbWUtPnBwID0gZnJhbWUtPmVwdHI7ICAvKiBSZW1lbWJlciB3aGVyZSB3ZSBz
dGFydGVkICovCisKKyAgICAgICAgeworICAgICAgICBzd2l0Y2goZnJhbWUtPmN0eXBlKQorICAg
ICAgICAgIHsKKyAgICAgICAgICBjYXNlIE9QX0FOWToKKworICAgICAgICAgIC8qIFNwZWNpYWwg
Y29kZSBpcyByZXF1aXJlZCBmb3IgVVRGOCwgYnV0IHdoZW4gdGhlIG1heGltdW0gaXMgdW5saW1p
dGVkCisgICAgICAgICAgd2UgZG9uJ3QgbmVlZCBpdCwgc28gd2UgcmVwZWF0IHRoZSBub24tVVRG
OCBjb2RlLiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAgICAgd29ydGggaXQsIGJlY2F1c2UgLiog
aXMgcXVpdGUgYSBjb21tb24gaWRpb20uICovCisKKyAgICAgICAgICBpZiAoZnJhbWUtPm1heCA8
IElOVF9NQVgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
Zm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8IElTX05F
V0xJTkUoKmZyYW1lLT5lcHRyKSkgYnJlYWs7CisgICAgICAgICAgICAgICAgZnJhbWUtPmVwdHIr
KzsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZnJhbWUtPmVwdHIgPCBtZC0+ZW5kX3N1YmplY3Qg
JiYgKCpmcmFtZS0+ZXB0ciAmIDB4YzApID09IDB4ODApIGZyYW1lLT5lcHRyKys7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAv
KiBIYW5kbGUgdW5saW1pdGVkIFVURi04IHJlcGVhdCAqLworCisgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGZvciAoaSA9IG1pbjsg
aSA8IGZyYW1lLT5tYXg7IGkrKykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
aWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCB8fCBJU19ORVdMSU5FKCpmcmFtZS0+
ZXB0cikpIGJyZWFrOworICAgICAgICAgICAgICAgIGZyYW1lLT5lcHRyKys7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6Cisg
ICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1heDsgaSsrKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgaW50IGxlbiA9IDE7CisgICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIg
Pj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKKyAgICAgICAgICAgIEdFVENIQVJMRU4oYywgZnJh
bWUtPmVwdHIsIGxlbik7CisgICAgICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQtPmN0eXBlc1tj
XSAmIGN0eXBlX2RpZ2l0KSAhPSAwKSBicmVhazsKKyAgICAgICAgICAgIGZyYW1lLT5lcHRyKz0g
bGVuOworICAgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBP
UF9ESUdJVDoKKyAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBpbnQgbGVuID0gMTsKKyAgICAgICAgICAgIGlmIChm
cmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOworICAgICAgICAgICAgR0VUQ0hB
UkxFTihjLCBmcmFtZS0+ZXB0ciwgbGVuKTsKKyAgICAgICAgICAgIGlmIChjID49IDEyOCB8fCht
ZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGlnaXQpID09IDApIGJyZWFrOworICAgICAgICAgICAgZnJh
bWUtPmVwdHIrPSBsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgorICAgICAgICAgIGZvciAoaSA9IG1pbjsgaSA8
IGZyYW1lLT5tYXg7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGludCBsZW4gPSAx
OworICAgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgYnJlYWs7
CisgICAgICAgICAgICBHRVRDSEFSTEVOKGMsIGZyYW1lLT5lcHRyLCBsZW4pOworICAgICAgICAg
ICAgaWYgKGMgPCAxMjggJiYgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgIT0gMCkgYnJl
YWs7CisgICAgICAgICAgICBmcmFtZS0+ZXB0cis9IGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgT1BfV0hJVEVTUEFDRToKKyAgICAgICAgICBm
b3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICBpbnQgbGVuID0gMTsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5k
X3N1YmplY3QpIGJyZWFrOworICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBmcmFtZS0+ZXB0ciwg
bGVuKTsKKyAgICAgICAgICAgIGlmIChjID49IDEyOCB8fChtZC0+Y3R5cGVzW2NdICYgY3R5cGVf
c3BhY2UpID09IDApIGJyZWFrOworICAgICAgICAgICAgZnJhbWUtPmVwdHIrPSBsZW47CisgICAg
ICAgICAgICB9CisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlIE9QX05PVF9XT1JE
Q0hBUjoKKyAgICAgICAgICBmb3IgKGkgPSBtaW47IGkgPCBmcmFtZS0+bWF4OyBpKyspCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICBpbnQgbGVuID0gMTsKKyAgICAgICAgICAgIGlmIChmcmFt
ZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOworICAgICAgICAgICAgR0VUQ0hBUkxF
TihjLCBmcmFtZS0+ZXB0ciwgbGVuKTsKKyAgICAgICAgICAgIGlmIChjIDwgMTI4ICYmIChtZC0+
Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgIT0gMCkgYnJlYWs7CisgICAgICAgICAgICBmcmFtZS0+
ZXB0cis9IGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKworICAgICAgICAg
IGNhc2UgT1BfV09SRENIQVI6CisgICAgICAgICAgZm9yIChpID0gbWluOyBpIDwgZnJhbWUtPm1h
eDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgaW50IGxlbiA9IDE7CisgICAgICAg
ICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKKyAgICAgICAg
ICAgIEdFVENIQVJMRU4oYywgZnJhbWUtPmVwdHIsIGxlbik7CisgICAgICAgICAgICBpZiAoYyA+
PSAxMjggfHwgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV93b3JkKSA9PSAwKSBicmVhazsKKyAgICAg
ICAgICAgIGZyYW1lLT5lcHRyKz0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBSUkVUVVJOKEpTX1JFR0VYUF9FUlJP
Ul9JTlRFUk5BTCk7CisgICAgICAgICAgfQorCisgICAgICAgIC8qIGZyYW1lLT5lcHRyIGlzIG5v
dyBwYXN0IHRoZSBlbmQgb2YgdGhlIG1heGltdW0gcnVuICovCisKKyAgICAgICAgZm9yKDs7KQor
ICAgICAgICAgIHsKKyAgICAgICAgICBSTUFUQ0goNTIsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVw
dHJiLCAwKTsKKyAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKKyAgICAgICAgICBpZiAoZnJhbWUtPmVwdHItLSA9PSBmcmFtZS0+cHApIGJyZWFrOyAgICAg
ICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBwb3MgKi8KKyAgICAgICAgICBCQUNLQ0hB
UihmcmFtZS0+ZXB0cik7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgIC8qIEdldCBo
ZXJlIGlmIHdlIGNhbid0IG1ha2UgaXQgbWF0Y2ggd2l0aCBhbnkgcGVybWl0dGVkIHJlcGV0aXRp
b25zICovCisKKyAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICB9CisgICAgLyog
Q29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KKworICAgIGRlZmF1bHQ6CisgICAgICAvKiBPcGVu
aW5nIGNhcHR1cmluZyBicmFja2V0LiBJZiB0aGVyZSBpcyBzcGFjZSBpbiB0aGUgb2Zmc2V0IHZl
Y3Rvciwgc2F2ZQorICAgICAgdGhlIGN1cnJlbnQgc3ViamVjdCBwb3NpdGlvbiBpbiB0aGUgd29y
a2luZyBzbG90IGF0IHRoZSB0b3Agb2YgdGhlIHZlY3Rvci4gV2UKKyAgICAgIG11c3RuJ3QgY2hh
bmdlIHRoZSBjdXJyZW50IHZhbHVlcyBvZiB0aGUgZGF0YSBzbG90LCBiZWNhdXNlIHRoZXkgbWF5
IGJlIHNldAorICAgICAgZnJvbSBhIHByZXZpb3VzIGl0ZXJhdGlvbiBvZiB0aGlzIGdyb3VwLCBh
bmQgYmUgcmVmZXJyZWQgdG8gYnkgYSByZWZlcmVuY2UKKyAgICAgIGluc2lkZSB0aGUgZ3JvdXAu
CisKKyAgICAgIElmIHRoZSBicmFja2V0IGZhaWxzIHRvIG1hdGNoLCB3ZSBuZWVkIHRvIHJlc3Rv
cmUgdGhpcyB2YWx1ZSBhbmQgYWxzbyB0aGUKKyAgICAgIHZhbHVlcyBvZiB0aGUgZmluYWwgb2Zm
c2V0cywgaW4gY2FzZSB0aGV5IHdlcmUgc2V0IGJ5IGEgcHJldmlvdXMgaXRlcmF0aW9uIG9mCisg
ICAgICB0aGUgc2FtZSBicmFja2V0LgorCisgICAgICBJZiB0aGVyZSBpc24ndCBlbm91Z2ggc3Bh
Y2UgaW4gdGhlIG9mZnNldCB2ZWN0b3IsIHRyZWF0IHRoaXMgYXMgaWYgaXQgd2VyZSBhCisgICAg
ICBub24tY2FwdHVyaW5nIGJyYWNrZXQuIERvbid0IHdvcnJ5IGFib3V0IHNldHRpbmcgdGhlIGZs
YWcgZm9yIHRoZSBlcnJvciBjYXNlCisgICAgICBoZXJlOyB0aGF0IGlzIGhhbmRsZWQgaW4gdGhl
IGNvZGUgZm9yIEtFVC4gKi8KKworICAgICAgaWYgKCpmcmFtZS0+ZWNvZGUgPiBPUF9CUkEpCisg
ICAgICAgIHsKKyAgICAgICAgZnJhbWUtPm51bWJlciA9ICpmcmFtZS0+ZWNvZGUgLSBPUF9CUkE7
CisKKyAgICAgICAgLyogRm9yIGV4dGVuZGVkIGV4dHJhY3Rpb24gYnJhY2tldHMgKGxhcmdlIG51
bWJlciksIHdlIGhhdmUgdG8gZmlzaCBvdXQgdGhlCisgICAgICAgIG51bWJlciBmcm9tIGEgZHVt
bXkgb3Bjb2RlIGF0IHRoZSBzdGFydC4gKi8KKworICAgICAgICBpZiAoZnJhbWUtPm51bWJlciA+
IEVYVFJBQ1RfQkFTSUNfTUFYKQorICAgICAgICAgIGZyYW1lLT5udW1iZXIgPSBHRVQyKGZyYW1l
LT5lY29kZSwgMitMSU5LX1NJWkUpOworICAgICAgICBmcmFtZS0+b2Zmc2V0ID0gZnJhbWUtPm51
bWJlciA8PCAxOworCisjaWZkZWYgREVCVUcKKyAgICAgICAgcHJpbnRmKCJzdGFydCBicmFja2V0
ICVkIHN1YmplY3Q9IiwgZnJhbWUtPm51bWJlcik7CisgICAgICAgIHBjaGFycyhmcmFtZS0+ZXB0
ciwgMTYsIFRSVUUsIG1kKTsKKyAgICAgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisKKyAgICAg
ICAgaWYgKGZyYW1lLT5vZmZzZXQgPCBtZC0+b2Zmc2V0X21heCkKKyAgICAgICAgICB7CisgICAg
ICAgICAgZnJhbWUtPnNhdmVfb2Zmc2V0MSA9IG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZz
ZXRdOworICAgICAgICAgIGZyYW1lLT5zYXZlX29mZnNldDIgPSBtZC0+b2Zmc2V0X3ZlY3Rvcltm
cmFtZS0+b2Zmc2V0KzFdOworICAgICAgICAgIGZyYW1lLT5zYXZlX29mZnNldDMgPSBtZC0+b2Zm
c2V0X3ZlY3RvclttZC0+b2Zmc2V0X2VuZCAtIGZyYW1lLT5udW1iZXJdOworCisgICAgICAgICAg
RFBSSU5URigoInNhdmluZyAlZCAlZCAlZFxuIiwgZnJhbWUtPnNhdmVfb2Zmc2V0MSwgZnJhbWUt
PnNhdmVfb2Zmc2V0MiwgZnJhbWUtPnNhdmVfb2Zmc2V0MykpOworICAgICAgICAgIG1kLT5vZmZz
ZXRfdmVjdG9yW21kLT5vZmZzZXRfZW5kIC0gZnJhbWUtPm51bWJlcl0gPSBmcmFtZS0+ZXB0ciAt
IG1kLT5zdGFydF9zdWJqZWN0OworCisgICAgICAgICAgZG8KKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgIFJNQVRDSCgxLCBmcmFtZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFLCBmcmFtZS0+ZXB0
cmIsIG1hdGNoX2lzZ3JvdXApOworICAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENI
KSBSUkVUVVJOKHJyYyk7CisgICAgICAgICAgICBmcmFtZS0+ZWNvZGUgKz0gR0VUKGZyYW1lLT5l
Y29kZSwgMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUg
PT0gT1BfQUxUKTsKKworICAgICAgICAgIERQUklOVEYoKCJicmFja2V0ICVkIGZhaWxlZFxuIiwg
ZnJhbWUtPm51bWJlcikpOworCisgICAgICAgICAgbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9m
ZnNldF0gPSBmcmFtZS0+c2F2ZV9vZmZzZXQxOworICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9y
W2ZyYW1lLT5vZmZzZXQrMV0gPSBmcmFtZS0+c2F2ZV9vZmZzZXQyOworICAgICAgICAgIG1kLT5v
ZmZzZXRfdmVjdG9yW21kLT5vZmZzZXRfZW5kIC0gZnJhbWUtPm51bWJlcl0gPSBmcmFtZS0+c2F2
ZV9vZmZzZXQzOworCisgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAg
ICB9CisKKyAgICAgICAgLyogSW5zdWZmaWNpZW50IHJvb20gZm9yIHNhdmluZyBjYXB0dXJlZCBj
b250ZW50cyAqLworCisgICAgICAgIGdvdG8gTk9OX0NBUFRVUklOR19CUkFDS0VUOworICAgICAg
ICB9CisKKyAgICAvKiBUaGVyZSdzIGJlZW4gc29tZSBob3JyaWJsZSBkaXNhc3Rlci4gU2luY2Ug
YWxsIGNvZGVzID4gT1BfQlJBIGFyZQorICAgIGZvciBjYXB0dXJpbmcgYnJhY2tldHMsIGFuZCB0
aGVyZSBzaG91bGRuJ3QgYmUgYW55IGdhcHMgYmV0d2VlbiAwIGFuZAorICAgIE9QX0JSQSwgYXJy
aXZhbCBoZXJlIGNhbiBvbmx5IG1lYW4gdGhlcmUgaXMgc29tZXRoaW5nIHNlcmlvdXNseSB3cm9u
ZworICAgIGluIHRoZSBjb2RlIGFib3ZlIG9yIHRoZSBPUF94eHggZGVmaW5pdGlvbnMuICovCisK
KyAgICBEUFJJTlRGKCgiVW5rbm93biBvcGNvZGUgJWRcbiIsICpmcmFtZS0+ZWNvZGUpKTsKKyAg
ICBSUkVUVVJOKEpTX1JFR0VYUF9FUlJPUl9JTlRFUk5BTCk7CisgICAgfQorCisgIC8qIERvIG5v
dCBzdGljayBhbnkgY29kZSBpbiBoZXJlIHdpdGhvdXQgbXVjaCB0aG91Z2h0OyBpdCBpcyBhc3N1
bWVkCisgIHRoYXQgImNvbnRpbnVlIiBpbiB0aGUgY29kZSBhYm92ZSBjb21lcyBvdXQgdG8gaGVy
ZSB0byByZXBlYXQgdGhlIG1haW4KKyAgbG9vcC4gKi8KKworICB9ICAgICAgICAgICAgIC8qIEVu
ZCBvZiBtYWluIGxvb3AgKi8KKy8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCisKKyNp
Zm5kZWYgX19HTlVDX18KKworUlJFVFVSTl9TV0lUQ0g6Citzd2l0Y2ggKGZyYW1lLT53aGVyZSkK
KyAgeworICBjYXNlIDE6IGdvdG8gUlJFVFVSTl8xOworICBjYXNlIDI6IGdvdG8gUlJFVFVSTl8y
OworICBjYXNlIDY6IGdvdG8gUlJFVFVSTl82OworICBjYXNlIDc6IGdvdG8gUlJFVFVSTl83Owor
ICBjYXNlIDk6IGdvdG8gUlJFVFVSTl85OworICBjYXNlIDEwOiBnb3RvIFJSRVRVUk5fMTA7Cisg
IGNhc2UgMTE6IGdvdG8gUlJFVFVSTl8xMTsKKyAgY2FzZSAxMjogZ290byBSUkVUVVJOXzEyOwor
ICBjYXNlIDEzOiBnb3RvIFJSRVRVUk5fMTM7CisgIGNhc2UgMTQ6IGdvdG8gUlJFVFVSTl8xNDsK
KyAgY2FzZSAxNTogZ290byBSUkVUVVJOXzE1OworICBjYXNlIDE2OiBnb3RvIFJSRVRVUk5fMTY7
CisgIGNhc2UgMTc6IGdvdG8gUlJFVFVSTl8xNzsKKyAgY2FzZSAxODogZ290byBSUkVUVVJOXzE4
OworICBjYXNlIDE5OiBnb3RvIFJSRVRVUk5fMTk7CisgIGNhc2UgMjA6IGdvdG8gUlJFVFVSTl8y
MDsKKyAgY2FzZSAyMTogZ290byBSUkVUVVJOXzIxOworICBjYXNlIDIyOiBnb3RvIFJSRVRVUk5f
MjI7CisgIGNhc2UgMjQ6IGdvdG8gUlJFVFVSTl8yNDsKKyAgY2FzZSAyNjogZ290byBSUkVUVVJO
XzI2OworICBjYXNlIDI3OiBnb3RvIFJSRVRVUk5fMjc7CisgIGNhc2UgMjg6IGdvdG8gUlJFVFVS
Tl8yODsKKyAgY2FzZSAyOTogZ290byBSUkVUVVJOXzI5OworICBjYXNlIDMwOiBnb3RvIFJSRVRV
Uk5fMzA7CisgIGNhc2UgMzE6IGdvdG8gUlJFVFVSTl8zMTsKKyAgY2FzZSAzODogZ290byBSUkVU
VVJOXzM4OworICBjYXNlIDQwOiBnb3RvIFJSRVRVUk5fNDA7CisgIGNhc2UgNDI6IGdvdG8gUlJF
VFVSTl80MjsKKyAgY2FzZSA0NDogZ290byBSUkVUVVJOXzQ0OworICBjYXNlIDQ4OiBnb3RvIFJS
RVRVUk5fNDg7CisgIGNhc2UgNTI6IGdvdG8gUlJFVFVSTl81MjsKKyAgfQorCithYm9ydCgpOwor
cmV0dXJuIDA7CisKKyNlbmRpZgorCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICBFeGVjdXRlIGEgUmVndWxhciBFeHBy
ZXNzaW9uICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqLworCisvKiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgYSBjb21waWxlZCByZSB0
byBhIHN1YmplY3Qgc3RyaW5nIGFuZCBwaWNrcyBvdXQKK3BvcnRpb25zIG9mIHRoZSBzdHJpbmcg
aWYgaXQgbWF0Y2hlcy4gVHdvIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IgYXJlIHNldCBmb3IKK2Vh
Y2ggc3Vic3RyaW5nOiB0aGUgb2Zmc2V0cyB0byB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3Vi
c3RyaW5nLgorCitBcmd1bWVudHM6CisgIGFyZ3VtZW50X3JlICAgICBwb2ludHMgdG8gdGhlIGNv
bXBpbGVkIGV4cHJlc3Npb24KKyAgZXh0cmFfZGF0YSAgICAgIHBvaW50cyB0byBleHRyYSBkYXRh
IG9yIGlzIE5VTEwKKyAgc3ViamVjdCAgICAgICAgIHBvaW50cyB0byB0aGUgc3ViamVjdCBzdHJp
bmcKKyAgbGVuZ3RoICAgICAgICAgIGxlbmd0aCBvZiBzdWJqZWN0IHN0cmluZyAobWF5IGNvbnRh
aW4gYmluYXJ5IHplcm9zKQorICBzdGFydF9vZmZzZXQgICAgd2hlcmUgdG8gc3RhcnQgaW4gdGhl
IHN1YmplY3Qgc3RyaW5nCisgIG9wdGlvbnMgICAgICAgICBvcHRpb24gYml0cworICBvZmZzZXRz
ICAgICAgICAgcG9pbnRzIHRvIGEgdmVjdG9yIG9mIGludHMgdG8gYmUgZmlsbGVkIGluIHdpdGgg
b2Zmc2V0cworICBvZmZzZXRjb3VudCAgICAgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUg
dmVjdG9yCisKK1JldHVybnM6ICAgICAgICAgID4gMCA9PiBzdWNjZXNzOyB2YWx1ZSBpcyB0aGUg
bnVtYmVyIG9mIGVsZW1lbnRzIGZpbGxlZCBpbgorICAgICAgICAgICAgICAgICAgPSAwID0+IHN1
Y2Nlc3MsIGJ1dCBvZmZzZXRzIGlzIG5vdCBiaWcgZW5vdWdoCisgICAgICAgICAgICAgICAgICAg
LTEgPT4gZmFpbGVkIHRvIG1hdGNoCisgICAgICAgICAgICAgICAgIDwgLTEgPT4gc29tZSBraW5k
IG9mIHVuZXhwZWN0ZWQgcHJvYmxlbQorKi8KKworaW50Citqc1JlZ0V4cEV4ZWN1dGUoY29uc3Qg
cGNyZSAqYXJndW1lbnRfcmUsCisgIGNvbnN0IEpTUmVnRXhwQ2hhciogc3ViamVjdCwgaW50IGxl
bmd0aCwgaW50IHN0YXJ0X29mZnNldCwgaW50ICpvZmZzZXRzLAorICBpbnQgb2Zmc2V0Y291bnQp
Cit7CitpbnQgcmMsIHJlc2V0Y291bnQsIG9jb3VudDsKK2ludCBmaXJzdF9ieXRlID0gLTE7Citp
bnQgcmVxX2J5dGUgPSAtMTsKK2ludCByZXFfYnl0ZTIgPSAtMTsKK0JPT0wgdXNpbmdfdGVtcG9y
YXJ5X29mZnNldHMgPSBGQUxTRTsKK0JPT0wgZmlyc3RfYnl0ZV9jYXNlbGVzcyA9IEZBTFNFOwor
Qk9PTCBzdGFydGxpbmU7CitCT09MIHJlcV9ieXRlX2Nhc2VsZXNzID0gRkFMU0U7CittYXRjaF9k
YXRhIG1hdGNoX2Jsb2NrOworVVNQVFIgc3RhcnRfbWF0Y2ggPSAoVVNQVFIpc3ViamVjdCArIHN0
YXJ0X29mZnNldDsKK1VTUFRSIGVuZF9zdWJqZWN0OworVVNQVFIgcmVxX2J5dGVfcHRyID0gc3Rh
cnRfbWF0Y2ggLSAxOworY29uc3QgdXNjaGFyICpzdGFydF9jb2RlOworCitjb25zdCByZWFsX3Bj
cmUgKmV4dGVybmFsX3JlID0gKGNvbnN0IHJlYWxfcGNyZSAqKWFyZ3VtZW50X3JlOworY29uc3Qg
cmVhbF9wY3JlICpyZSA9IGV4dGVybmFsX3JlOworCisvKiBQbGF1c2liaWxpdHkgY2hlY2tzICov
CisKK0FTU0VSVChyZSk7CitBU1NFUlQoc3ViamVjdCk7CitBU1NFUlQob2Zmc2V0Y291bnQgPj0g
MCk7CitBU1NFUlQob2Zmc2V0cyB8fCBvZmZzZXRjb3VudCA9PSAwKTsKKworLyogU2V0IHVwIG90
aGVyIGRhdGEgKi8KKworc3RhcnRsaW5lID0gKHJlLT5vcHRpb25zICYgUENSRV9TVEFSVExJTkUp
ICE9IDA7CisKKy8qIFRoZSBjb2RlIHN0YXJ0cyBhZnRlciB0aGUgcmVhbF9wY3JlIGJsb2NrIGFu
ZCB0aGUgY2FwdHVyZSBuYW1lIHRhYmxlLiAqLworCitzdGFydF9jb2RlID0gKGNvbnN0IHVzY2hh
ciAqKShleHRlcm5hbF9yZSArIDEpOworCittYXRjaF9ibG9jay5zdGFydF9zdWJqZWN0ID0gKFVT
UFRSKXN1YmplY3Q7CittYXRjaF9ibG9jay5lbmRfc3ViamVjdCA9IG1hdGNoX2Jsb2NrLnN0YXJ0
X3N1YmplY3QgKyBsZW5ndGg7CitlbmRfc3ViamVjdCA9IG1hdGNoX2Jsb2NrLmVuZF9zdWJqZWN0
OworCittYXRjaF9ibG9jay5sY2MgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGxjY19vZmZzZXQ7
CittYXRjaF9ibG9jay5jdHlwZXMgPSBfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGN0eXBlc19vZmZz
ZXQ7CisKK21hdGNoX2Jsb2NrLm11bHRpbGluZSA9IChyZS0+b3B0aW9ucyAmIFBDUkVfTVVMVElM
SU5FKSAhPSAwOworbWF0Y2hfYmxvY2suY2FzZWxlc3MgPSAocmUtPm9wdGlvbnMgJiBQQ1JFX0NB
U0VMRVNTKSAhPSAwOworCisvKiBJZiB0aGUgZXhwcmVzc2lvbiBoYXMgZ290IG1vcmUgYmFjayBy
ZWZlcmVuY2VzIHRoYW4gdGhlIG9mZnNldHMgc3VwcGxpZWQgY2FuCitob2xkLCB3ZSBnZXQgYSB0
ZW1wb3JhcnkgY2h1bmsgb2Ygd29ya2luZyBzdG9yZSB0byB1c2UgZHVyaW5nIHRoZSBtYXRjaGlu
Zy4KK090aGVyd2lzZSwgd2UgY2FuIHVzZSB0aGUgdmVjdG9yIHN1cHBsaWVkLCByb3VuZGluZyBk
b3duIGl0cyBzaXplIHRvIGEgbXVsdGlwbGUKK29mIDMuICovCisKK29jb3VudCA9IG9mZnNldGNv
dW50IC0gKG9mZnNldGNvdW50ICUgMyk7CisKK2lmIChyZS0+dG9wX2JhY2tyZWYgPiAwICYmIHJl
LT50b3BfYmFja3JlZiA+PSBvY291bnQvMykKKyAgeworICBvY291bnQgPSByZS0+dG9wX2JhY2ty
ZWYgKiAzICsgMzsKKyAgbWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciA9IChpbnQgKikocGNyZV9t
YWxsb2MpKG9jb3VudCAqIHNpemVvZihpbnQpKTsKKyAgaWYgKG1hdGNoX2Jsb2NrLm9mZnNldF92
ZWN0b3IgPT0gTlVMTCkgcmV0dXJuIEpTX1JFR0VYUF9FUlJPUl9OT01FTU9SWTsKKyAgdXNpbmdf
dGVtcG9yYXJ5X29mZnNldHMgPSBUUlVFOworICBEUFJJTlRGKCgiR290IG1lbW9yeSB0byBob2xk
IGJhY2sgcmVmZXJlbmNlc1xuIikpOworICB9CitlbHNlIG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0
b3IgPSBvZmZzZXRzOworCittYXRjaF9ibG9jay5vZmZzZXRfZW5kID0gb2NvdW50OworbWF0Y2hf
YmxvY2sub2Zmc2V0X21heCA9ICgyKm9jb3VudCkvMzsKK21hdGNoX2Jsb2NrLm9mZnNldF9vdmVy
ZmxvdyA9IEZBTFNFOworCisvKiBDb21wdXRlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBvZmZzZXRz
IHRoYXQgd2UgbmVlZCB0byByZXNldCBlYWNoIHRpbWUuIERvaW5nCit0aGlzIG1ha2VzIGEgaHVn
ZSBkaWZmZXJlbmNlIHRvIGV4ZWN1dGlvbiB0aW1lIHdoZW4gdGhlcmUgYXJlbid0IG1hbnkgYnJh
Y2tldHMKK2luIHRoZSBwYXR0ZXJuLiAqLworCityZXNldGNvdW50ID0gMiArIHJlLT50b3BfYnJh
Y2tldCAqIDI7CitpZiAocmVzZXRjb3VudCA+IG9mZnNldGNvdW50KSByZXNldGNvdW50ID0gb2Nv
dW50OworCisvKiBSZXNldCB0aGUgd29ya2luZyB2YXJpYWJsZSBhc3NvY2lhdGVkIHdpdGggZWFj
aCBleHRyYWN0aW9uLiBUaGVzZSBzaG91bGQKK25ldmVyIGJlIHVzZWQgdW5sZXNzIHByZXZpb3Vz
bHkgc2V0LCBidXQgdGhleSBnZXQgc2F2ZWQgYW5kIHJlc3RvcmVkLCBhbmQgc28gd2UKK2luaXRp
YWxpemUgdGhlbSB0byBhdm9pZCByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbG9jYXRpb25zLiAqLwor
CitpZiAobWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciAhPSBOVUxMKQorICB7CisgIHJlZ2lzdGVy
IGludCAqaXB0ciA9IG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IgKyBvY291bnQ7CisgIHJlZ2lz
dGVyIGludCAqaWVuZCA9IGlwdHIgLSByZXNldGNvdW50LzIgKyAxOworICB3aGlsZSAoLS1pcHRy
ID49IGllbmQpICppcHRyID0gLTE7CisgIH0KKworLyogU2V0IHVwIHRoZSBmaXJzdCBjaGFyYWN0
ZXIgdG8gbWF0Y2gsIGlmIGF2YWlsYWJsZS4gVGhlIGZpcnN0X2J5dGUgdmFsdWUgaXMKK25ldmVy
IHNldCBmb3IgYW4gYW5jaG9yZWQgcmVndWxhciBleHByZXNzaW9uLCBidXQgdGhlIGFuY2hvcmlu
ZyBtYXkgYmUgZm9yY2VkCithdCBydW4gdGltZSwgc28gd2UgaGF2ZSB0byB0ZXN0IGZvciBhbmNo
b3JpbmcuIFRoZSBmaXJzdCBjaGFyIG1heSBiZSB1bnNldCBmb3IKK2FuIHVuYW5jaG9yZWQgcGF0
dGVybiwgb2YgY291cnNlLiBJZiB0aGVyZSdzIG5vIGZpcnN0IGNoYXIgYW5kIHRoZSBwYXR0ZXJu
IHdhcworc3R1ZGllZCwgdGhlcmUgbWF5IGJlIGEgYml0bWFwIG9mIHBvc3NpYmxlIGZpcnN0IGNo
YXJhY3RlcnMuICovCisKKyAgeworICBpZiAoKHJlLT5vcHRpb25zICYgUENSRV9GSVJTVFNFVCkg
IT0gMCkKKyAgICB7CisgICAgZmlyc3RfYnl0ZSA9IHJlLT5maXJzdF9ieXRlICYgMjU1OworICAg
IGlmICgoZmlyc3RfYnl0ZV9jYXNlbGVzcyA9ICgocmUtPmZpcnN0X2J5dGUgJiBSRVFfQ0FTRUxF
U1MpICE9IDApKSA9PSBUUlVFKQorICAgICAgZmlyc3RfYnl0ZSA9IG1hdGNoX2Jsb2NrLmxjY1tm
aXJzdF9ieXRlXTsKKyAgICB9CisgIH0KKworLyogRm9yIGFuY2hvcmVkIG9yIHVuYW5jaG9yZWQg
bWF0Y2hlcywgdGhlcmUgbWF5IGJlIGEgImxhc3Qga25vd24gcmVxdWlyZWQKK2NoYXJhY3RlciIg
c2V0LiAqLworCitpZiAoKHJlLT5vcHRpb25zICYgUENSRV9SRVFDSFNFVCkgIT0gMCkKKyAgewor
ICByZXFfYnl0ZSA9IHJlLT5yZXFfYnl0ZSAmIDI1NTsKKyAgcmVxX2J5dGVfY2FzZWxlc3MgPSAo
cmUtPnJlcV9ieXRlICYgUkVRX0NBU0VMRVNTKSAhPSAwOworICByZXFfYnl0ZTIgPSAoX3BjcmVf
ZGVmYXVsdF90YWJsZXMgKyBmY2Nfb2Zmc2V0KVtyZXFfYnl0ZV07ICAvKiBjYXNlIGZsaXBwZWQg
Ki8KKyAgfQorCisvKiBMb29wIGZvciBoYW5kbGluZyB1bmFuY2hvcmVkIHJlcGVhdGVkIG1hdGNo
aW5nIGF0dGVtcHRzOyBmb3IgYW5jaG9yZWQgcmVnZXhzCit0aGUgbG9vcCBydW5zIGp1c3Qgb25j
ZS4gKi8KKworZG8KKyAgeworICBVU1BUUiBzYXZlX2VuZF9zdWJqZWN0ID0gZW5kX3N1YmplY3Q7
CisKKyAgLyogUmVzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV4dHJhY3Rpb25zIHdlIG1pZ2h0
IHNlZS4gKi8KKworICBpZiAobWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciAhPSBOVUxMKQorICAg
IHsKKyAgICByZWdpc3RlciBpbnQgKmlwdHIgPSBtYXRjaF9ibG9jay5vZmZzZXRfdmVjdG9yOwor
ICAgIHJlZ2lzdGVyIGludCAqaWVuZCA9IGlwdHIgKyByZXNldGNvdW50OworICAgIHdoaWxlIChp
cHRyIDwgaWVuZCkgKmlwdHIrKyA9IC0xOworICAgIH0KKworICAvKiBBZHZhbmNlIHRvIGEgdW5p
cXVlIGZpcnN0IGNoYXIgaWYgcG9zc2libGUuIElmIGZpcnN0bGluZSBpcyBUUlVFLCB0aGUKKyAg
c3RhcnQgb2YgdGhlIG1hdGNoIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBmaXJzdCBsaW5lIG9mIGEg
bXVsdGlsaW5lIHN0cmluZy4KKyAgSW1wbGVtZW50IHRoaXMgYnkgdGVtcG9yYXJpbHkgYWRqdXN0
aW5nIGVuZF9zdWJqZWN0IHNvIHRoYXQgd2Ugc3RvcCBzY2FubmluZworICBhdCBhIG5ld2xpbmUu
IElmIHRoZSBtYXRjaCBmYWlscyBhdCB0aGUgbmV3bGluZSwgbGF0ZXIgY29kZSBicmVha3MgdGhp
cyBsb29wLgorICAqLworCisgIC8qIE5vdyB0ZXN0IGZvciBhIHVuaXF1ZSBmaXJzdCBieXRlICov
CisKKyAgaWYgKGZpcnN0X2J5dGUgPj0gMCkKKyAgICB7CisgICAgcGNyZV91Y2hhciBmaXJzdF9j
aGFyID0gZmlyc3RfYnl0ZTsKKyAgICBpZiAoZmlyc3RfYnl0ZV9jYXNlbGVzcykKKyAgICAgIHdo
aWxlIChzdGFydF9tYXRjaCA8IGVuZF9zdWJqZWN0KQorICAgICAgICB7CisgICAgICAgIGludCBz
bSA9ICpzdGFydF9tYXRjaDsKKyAgICAgICAgaWYgKHNtID4gMTI3KQorICAgICAgICAgIGJyZWFr
OworICAgICAgICBpZiAobWF0Y2hfYmxvY2subGNjW3NtXSA9PSBmaXJzdF9jaGFyKQorICAgICAg
ICAgIGJyZWFrOworICAgICAgICBzdGFydF9tYXRjaCsrOworICAgICAgICB9CisgICAgZWxzZQor
ICAgICAgd2hpbGUgKHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QgJiYgKnN0YXJ0X21hdGNoICE9
IGZpcnN0X2NoYXIpCisgICAgICAgIHN0YXJ0X21hdGNoKys7CisgICAgfQorCisgIC8qIE9yIHRv
IGp1c3QgYWZ0ZXIgXG4gZm9yIGEgbXVsdGlsaW5lIG1hdGNoIGlmIHBvc3NpYmxlICovCisKKyAg
ZWxzZSBpZiAoc3RhcnRsaW5lKQorICAgIHsKKyAgICBpZiAoc3RhcnRfbWF0Y2ggPiBtYXRjaF9i
bG9jay5zdGFydF9zdWJqZWN0ICsgc3RhcnRfb2Zmc2V0KQorICAgICAgeworICAgICAgd2hpbGUg
KHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QgJiYgIUlTX05FV0xJTkUoc3RhcnRfbWF0Y2hbLTFd
KSkKKyAgICAgICAgc3RhcnRfbWF0Y2grKzsKKyAgICAgIH0KKyAgICB9CisKKyAgLyogUmVzdG9y
ZSBmdWRnZWQgZW5kX3N1YmplY3QgKi8KKworICBlbmRfc3ViamVjdCA9IHNhdmVfZW5kX3N1Ympl
Y3Q7CisKKyNpZmRlZiBERUJVRyAgLyogU2lnaC4gU29tZSBjb21waWxlcnMgbmV2ZXIgbGVhcm4u
ICovCisgIHByaW50ZigiPj4+PiBNYXRjaCBhZ2FpbnN0OiAiKTsKKyAgcGNoYXJzKHN0YXJ0X21h
dGNoLCBlbmRfc3ViamVjdCAtIHN0YXJ0X21hdGNoLCBUUlVFLCAmbWF0Y2hfYmxvY2spOworICBw
cmludGYoIlxuIik7CisjZW5kaWYKKworICAvKiBJZiByZXFfYnl0ZSBpcyBzZXQsIHdlIGtub3cg
dGhhdCB0aGF0IGNoYXJhY3RlciBtdXN0IGFwcGVhciBpbiB0aGUgc3ViamVjdAorICBmb3IgdGhl
IG1hdGNoIHRvIHN1Y2NlZWQuIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgc2V0LCByZXFfYnl0
ZSBtdXN0IGJlCisgIGxhdGVyIGluIHRoZSBzdWJqZWN0OyBvdGhlcndpc2UgdGhlIHRlc3Qgc3Rh
cnRzIGF0IHRoZSBtYXRjaCBwb2ludC4gVGhpcworICBvcHRpbWl6YXRpb24gY2FuIHNhdmUgYSBo
dWdlIGFtb3VudCBvZiBiYWNrdHJhY2tpbmcgaW4gcGF0dGVybnMgd2l0aCBuZXN0ZWQKKyAgdW5s
aW1pdGVkIHJlcGVhdHMgdGhhdCBhcmVuJ3QgZ29pbmcgdG8gbWF0Y2guIFdyaXRpbmcgc2VwYXJh
dGUgY29kZSBmb3IKKyAgY2FzZWQvY2FzZWxlc3MgdmVyc2lvbnMgbWFrZXMgaXQgZ28gZmFzdGVy
LCBhcyBkb2VzIHVzaW5nIGFuIGF1dG9pbmNyZW1lbnQKKyAgYW5kIGJhY2tpbmcgb2ZmIG9uIGEg
bWF0Y2guCisKKyAgSE9XRVZFUjogd2hlbiB0aGUgc3ViamVjdCBzdHJpbmcgaXMgdmVyeSwgdmVy
eSBsb25nLCBzZWFyY2hpbmcgdG8gaXRzIGVuZCBjYW4KKyAgdGFrZSBhIGxvbmcgdGltZSwgYW5k
IGdpdmUgYmFkIHBlcmZvcm1hbmNlIG9uIHF1aXRlIG9yZGluYXJ5IHBhdHRlcm5zLiBUaGlzCisg
IHNob3dlZCB1cCB3aGVuIHNvbWVib2R5IHdhcyBtYXRjaGluZyAvXkMvIG9uIGEgMzItbWVnYWJ5
dGUgc3RyaW5nLi4uIHNvIHdlCisgIGRvbid0IGRvIHRoaXMgd2hlbiB0aGUgc3RyaW5nIGlzIHN1
ZmZpY2llbnRseSBsb25nLgorCisgIEFMU086IHRoaXMgcHJvY2Vzc2luZyBpcyBkaXNhYmxlZCB3
aGVuIHBhcnRpYWwgbWF0Y2hpbmcgaXMgcmVxdWVzdGVkLgorICAqLworCisgIGlmIChyZXFfYnl0
ZSA+PSAwICYmCisgICAgICBlbmRfc3ViamVjdCAtIHN0YXJ0X21hdGNoIDwgUkVRX0JZVEVfTUFY
KQorICAgIHsKKyAgICByZWdpc3RlciBVU1BUUiBwID0gc3RhcnRfbWF0Y2ggKyAoKGZpcnN0X2J5
dGUgPj0gMCk/IDEgOiAwKTsKKworICAgIC8qIFdlIGRvbid0IG5lZWQgdG8gcmVwZWF0IHRoZSBz
ZWFyY2ggaWYgd2UgaGF2ZW4ndCB5ZXQgcmVhY2hlZCB0aGUKKyAgICBwbGFjZSB3ZSBmb3VuZCBp
dCBhdCBsYXN0IHRpbWUuICovCisKKyAgICBpZiAocCA+IHJlcV9ieXRlX3B0cikKKyAgICAgIHsK
KyAgICAgIGlmIChyZXFfYnl0ZV9jYXNlbGVzcykKKyAgICAgICAgeworICAgICAgICB3aGlsZSAo
cCA8IGVuZF9zdWJqZWN0KQorICAgICAgICAgIHsKKyAgICAgICAgICByZWdpc3RlciBpbnQgcHAg
PSAqcCsrOworICAgICAgICAgIGlmIChwcCA9PSByZXFfYnl0ZSB8fCBwcCA9PSByZXFfYnl0ZTIp
IHsgcC0tOyBicmVhazsgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgZWxzZQorICAg
ICAgICB7CisgICAgICAgIHdoaWxlIChwIDwgZW5kX3N1YmplY3QpCisgICAgICAgICAgeworICAg
ICAgICAgIGlmICgqcCsrID09IHJlcV9ieXRlKSB7IHAtLTsgYnJlYWs7IH0KKyAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgLyogSWYgd2UgY2FuJ3QgZmluZCB0aGUgcmVxdWlyZWQgY2hh
cmFjdGVyLCBicmVhayB0aGUgbWF0Y2hpbmcgbG9vcCAqLworCisgICAgICBpZiAocCA+PSBlbmRf
c3ViamVjdCkgYnJlYWs7CisKKyAgICAgIC8qIElmIHdlIGhhdmUgZm91bmQgdGhlIHJlcXVpcmVk
IGNoYXJhY3Rlciwgc2F2ZSB0aGUgcG9pbnQgd2hlcmUgd2UKKyAgICAgIGZvdW5kIGl0LCBzbyB0
aGF0IHdlIGRvbid0IHNlYXJjaCBhZ2FpbiBuZXh0IHRpbWUgcm91bmQgdGhlIGxvb3AgaWYKKyAg
ICAgIHRoZSBzdGFydCBoYXNuJ3QgcGFzc2VkIHRoaXMgY2hhcmFjdGVyIHlldC4gKi8KKworICAg
ICAgcmVxX2J5dGVfcHRyID0gcDsKKyAgICAgIH0KKyAgICB9CisKKyAgLyogV2hlbiBhIG1hdGNo
IG9jY3Vycywgc3Vic3RyaW5ncyB3aWxsIGJlIHNldCBmb3IgYWxsIGludGVybmFsIGV4dHJhY3Rp
b25zOworICB3ZSBqdXN0IG5lZWQgdG8gc2V0IHVwIHRoZSB3aG9sZSB0aGluZyBhcyBzdWJzdHJp
bmcgMCBiZWZvcmUgcmV0dXJuaW5nLiBJZgorICB0aGVyZSB3ZXJlIHRvbyBtYW55IGV4dHJhY3Rp
b25zLCBzZXQgdGhlIHJldHVybiBjb2RlIHRvIHplcm8uIEluIHRoZSBjYXNlCisgIHdoZXJlIHdl
IGhhZCB0byBnZXQgc29tZSBsb2NhbCBzdG9yZSB0byBob2xkIG9mZnNldHMgZm9yIGJhY2tyZWZl
cmVuY2VzLCBjb3B5CisgIHRob3NlIGJhY2sgcmVmZXJlbmNlcyB0aGF0IHdlIGNhbi4gSW4gdGhp
cyBjYXNlIHRoZXJlIG5lZWQgbm90IGJlIG92ZXJmbG93CisgIGlmIGNlcnRhaW4gcGFydHMgb2Yg
dGhlIHBhdHRlcm4gd2VyZSBub3QgdXNlZC4gKi8KKworICBtYXRjaF9ibG9jay5zdGFydF9tYXRj
aCA9IHN0YXJ0X21hdGNoOworICBtYXRjaF9ibG9jay5tYXRjaF9jYWxsX2NvdW50ID0gMDsKKwor
ICByYyA9IG1hdGNoKHN0YXJ0X21hdGNoLCBzdGFydF9jb2RlLCAyLCAmbWF0Y2hfYmxvY2spOwor
CisgIC8qIFdoZW4gdGhlIHJlc3VsdCBpcyBubyBtYXRjaCwgaWYgdGhlIHN1YmplY3QncyBmaXJz
dCBjaGFyYWN0ZXIgd2FzIGEKKyAgbmV3bGluZSBhbmQgdGhlIFBDUkVfRklSU1RMSU5FIG9wdGlv
biBpcyBzZXQsIGJyZWFrICh3aGljaCB3aWxsIHJldHVybgorICBQQ1JFX0VSUk9SX05PTUFUQ0gp
LiBUaGUgb3B0aW9uIHJlcXVlc3RzIHRoYXQgYSBtYXRjaCBvY2N1ciBiZWZvcmUgdGhlIGZpcnN0
CisgIG5ld2xpbmUgaW4gdGhlIHN1YmplY3QuIE90aGVyd2lzZSwgYWR2YW5jZSB0aGUgcG9pbnRl
ciB0byB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAgYW5kIGNvbnRpbnVlIC0gYnV0IHRoZSBjb250aW51
YXRpb24gd2lsbCBhY3R1YWxseSBoYXBwZW4gb25seSB3aGVuIHRoZQorICBwYXR0ZXJuIGlzIG5v
dCBhbmNob3JlZC4gKi8KKworICBpZiAocmMgPT0gTUFUQ0hfTk9NQVRDSCkKKyAgICB7CisgICAg
c3RhcnRfbWF0Y2grKzsKKyAgICAgIHdoaWxlKHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QgJiYg
SVNNSURDSEFSKCpzdGFydF9tYXRjaCkpCisgICAgICAgIHN0YXJ0X21hdGNoKys7CisgICAgY29u
dGludWU7CisgICAgfQorCisgIGlmIChyYyAhPSBNQVRDSF9NQVRDSCkKKyAgICB7CisgICAgRFBS
SU5URigoIj4+Pj4gZXJyb3I6IHJldHVybmluZyAlZFxuIiwgcmMpKTsKKyAgICByZXR1cm4gcmM7
CisgICAgfQorCisgIC8qIFdlIGhhdmUgYSBtYXRjaCEgQ29weSB0aGUgb2Zmc2V0IGluZm9ybWF0
aW9uIGZyb20gdGVtcG9yYXJ5IHN0b3JlIGlmCisgIG5lY2Vzc2FyeSAqLworCisgIGlmICh1c2lu
Z190ZW1wb3Jhcnlfb2Zmc2V0cykKKyAgICB7CisgICAgaWYgKG9mZnNldGNvdW50ID49IDQpCisg
ICAgICB7CisgICAgICBtZW1jcHkob2Zmc2V0cyArIDIsIG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0
b3IgKyAyLAorICAgICAgICAob2Zmc2V0Y291bnQgLSAyKSAqIHNpemVvZihpbnQpKTsKKyAgICAg
IERQUklOVEYoKCJDb3BpZWQgb2Zmc2V0cyBmcm9tIHRlbXBvcmFyeSBtZW1vcnlcbiIpKTsKKyAg
ICAgIH0KKyAgICBpZiAobWF0Y2hfYmxvY2suZW5kX29mZnNldF90b3AgPiBvZmZzZXRjb3VudCkK
KyAgICAgIG1hdGNoX2Jsb2NrLm9mZnNldF9vdmVyZmxvdyA9IFRSVUU7CisKKyAgICBEUFJJTlRG
KCgiRnJlZWluZyB0ZW1wb3JhcnkgbWVtb3J5XG4iKSk7CisgICAgKHBjcmVfZnJlZSkobWF0Y2hf
YmxvY2sub2Zmc2V0X3ZlY3Rvcik7CisgICAgfQorCisgIHJjID0gbWF0Y2hfYmxvY2sub2Zmc2V0
X292ZXJmbG93PyAwIDogbWF0Y2hfYmxvY2suZW5kX29mZnNldF90b3AvMjsKKworICBpZiAob2Zm
c2V0Y291bnQgPCAyKSByYyA9IDA7IGVsc2UKKyAgICB7CisgICAgb2Zmc2V0c1swXSA9IHN0YXJ0
X21hdGNoIC0gbWF0Y2hfYmxvY2suc3RhcnRfc3ViamVjdDsKKyAgICBvZmZzZXRzWzFdID0gbWF0
Y2hfYmxvY2suZW5kX21hdGNoX3B0ciAtIG1hdGNoX2Jsb2NrLnN0YXJ0X3N1YmplY3Q7CisgICAg
fQorCisgIERQUklOVEYoKCI+Pj4+IHJldHVybmluZyAlZFxuIiwgcmMpKTsKKyAgcmV0dXJuIHJj
OworICB9CisKKy8qIFRoaXMgIndoaWxlIiBpcyB0aGUgZW5kIG9mIHRoZSAiZG8iIGFib3ZlICov
CisKK3doaWxlIChzdGFydF9tYXRjaCA8PSBlbmRfc3ViamVjdCk7CisKK2lmICh1c2luZ190ZW1w
b3Jhcnlfb2Zmc2V0cykKKyAgeworICBEUFJJTlRGKCgiRnJlZWluZyB0ZW1wb3JhcnkgbWVtb3J5
XG4iKSk7CisgIChwY3JlX2ZyZWUpKG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IpOworICB9CisK
KyAgRFBSSU5URigoIj4+Pj4gcmV0dXJuaW5nIFBDUkVfRVJST1JfTk9NQVRDSFxuIikpOworICBy
ZXR1cm4gSlNfUkVHRVhQX0VSUk9SX05PTUFUQ0g7Cit9CisKKy8qIEVuZCBvZiBwY3JlX2V4ZWMu
YyAqLwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNwcAkocmV2aXNpb24gMjc2NDgpCisr
KyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTMgKzEsMTEgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCi0qICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAg
KgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQot
LyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHBy
ZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3Np
YmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisvKiBUaGlzIGlzIEphdmFTY3Jp
cHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkK
K3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQ
Q1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRo
ZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0
IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCituZWVk
ZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KIAotICAgICAgICAg
ICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorICAgICAgICAgICAgICAgICBP
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCiAgICAgICAgICAgIENvcHlyaWdodCAo
YykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0KICAgICBDb3B5cmlnaHQgKEMp
IDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzksMTMgKzM3LDIxIEBAIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiAKKy8qIFRoaXMgbW9kdWxl
IGNvbnRhaW5zIGpzUmVnRXhwRXhlY3V0ZSgpLCB0aGUgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0
aW9uCit0aGF0IGRvZXMgcGF0dGVybiBtYXRjaGluZyB1c2luZyBhbiBORkEgYWxnb3JpdGhtLCBm
b2xsb3dpbmcgdGhlIHJ1bGVzIGZyb20KK3RoZSBKYXZhU2NyaXB0IHNwZWNpZmljYXRpb24uIFRo
ZXJlIGFyZSBhbHNvIHNvbWUgc3VwcG9ydGluZyBmdW5jdGlvbnMuICovCiAKLS8qIFRoaXMgbW9k
dWxlIGNvbnRhaW5zIHBjcmVfZXhlYygpLCB0aGUgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9u
IHRoYXQgZG9lcwotcGF0dGVybiBtYXRjaGluZyB1c2luZyBhbiBORkEgYWxnb3JpdGhtLCB0cnlp
bmcgdG8gbWltaWMgUGVybCBhcyBjbG9zZWx5IGFzCi1wb3NzaWJsZS4gVGhlcmUgYXJlIGFsc28g
c29tZSBzdGF0aWMgc3VwcG9ydGluZyBmdW5jdGlvbnMuICovCisjaW5jbHVkZSAicGNyZV9pbnRl
cm5hbC5oIgogCisjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKLSNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCit1c2luZyBuYW1lc3BhY2UgV1RG
OworCisjaWZkZWYgX19HTlVDX18KKyNkZWZpbmUgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENI
X1JFQ1VSU0lPTgorLy8jZGVmaW5lIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9PUENPREVf
TE9PUAorI2VuZGlmCiAKIC8qIEF2b2lkIHdhcm5pbmdzIG9uIFdpbmRvd3MuICovCiAjdW5kZWYg
bWluCkBAIC02Miw2ICs2OCw2NiBAQCB0eXBlZGVmIHN0cnVjdCBlcHRyYmxvY2sgewogICBVU1BU
UiBlcGJfc2F2ZWRfZXB0cjsKIH0gZXB0cmJsb2NrOwogCisvKiBTdHJ1Y3R1cmUgZm9yIHJlbWVt
YmVyaW5nIHRoZSBsb2NhbCB2YXJpYWJsZXMgaW4gYSBwcml2YXRlIGZyYW1lICovCisKK3R5cGVk
ZWYgc3RydWN0IG1hdGNoZnJhbWUgeworICAvKiBXaGVyZSB0byBqdW1wIGJhY2sgdG8gKi8KKyNp
Zm5kZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENIX1JFQ1VSU0lPTgorICBpbnQgd2hlcmU7
CisjZWxzZQorICB2b2lkICp3aGVyZTsKKyNlbmRpZgorCisgIHN0cnVjdCBtYXRjaGZyYW1lICpw
cmV2ZnJhbWU7CisKKyAgLyogRnVuY3Rpb24gYXJndW1lbnRzIHRoYXQgbWF5IGNoYW5nZSAqLwor
CisgIGNvbnN0IHBjcmVfdWNoYXIgKmVwdHI7CisgIGNvbnN0IHVzY2hhciAqZWNvZGU7CisgIGlu
dCBvZmZzZXRfdG9wOworICBlcHRyYmxvY2sgKmVwdHJiOworCisgIC8qIEZ1bmN0aW9uIGxvY2Fs
IHZhcmlhYmxlcyAqLworCisgIGNvbnN0IHVzY2hhciAqZGF0YTsKKyAgY29uc3QgdXNjaGFyICpu
ZXh0OworICBjb25zdCBwY3JlX3VjaGFyICpwcDsKKyAgY29uc3QgdXNjaGFyICpwcmV2OworICBj
b25zdCBwY3JlX3VjaGFyICpzYXZlZF9lcHRyOworCisgIGludCByZXBlYXRfb3RoZXJjYXNlOwor
CisgIGludCBjdHlwZTsKKyAgaW50IGZjOworICBpbnQgZmk7CisgIGludCBsZW5ndGg7CisgIGlu
dCBtYXg7CisgIGludCBudW1iZXI7CisgIGludCBvZmZzZXQ7CisgIGludCBzYXZlX29mZnNldDEs
IHNhdmVfb2Zmc2V0Miwgc2F2ZV9vZmZzZXQzOworCisgIGVwdHJibG9jayBuZXdwdHJiOworfSBt
YXRjaGZyYW1lOworCisvKiBTdHJ1Y3R1cmUgZm9yIHBhc3NpbmcgInN0YXRpYyIgaW5mb3JtYXRp
b24gYXJvdW5kIGJldHdlZW4gdGhlIGZ1bmN0aW9ucworZG9pbmcgdHJhZGl0aW9uYWwgTkZBIG1h
dGNoaW5nLCBzbyB0aGF0IHRoZXkgYXJlIHRocmVhZC1zYWZlLiAqLworCit0eXBlZGVmIHN0cnVj
dCBtYXRjaF9kYXRhIHsKKyAgdW5zaWduZWQgbG9uZyBpbnQgbWF0Y2hfY2FsbF9jb3VudDsgICAg
ICAvKiBBcyBpdCBzYXlzICovCisgIGludCAgICpvZmZzZXRfdmVjdG9yOyAgICAgICAgIC8qIE9m
ZnNldCB2ZWN0b3IgKi8KKyAgaW50ICAgIG9mZnNldF9lbmQ7ICAgICAgICAgICAgLyogT25lIHBh
c3QgdGhlIGVuZCAqLworICBpbnQgICAgb2Zmc2V0X21heDsgICAgICAgICAgICAvKiBUaGUgbWF4
aW11bSB1c2FibGUgZm9yIHJldHVybiBkYXRhICovCisgIGNvbnN0IHVzY2hhciAqbGNjOyAgICAg
ICAgICAgIC8qIFBvaW50cyB0byBsb3dlciBjYXNpbmcgdGFibGUgKi8KKyAgY29uc3QgdXNjaGFy
ICpjdHlwZXM7ICAgICAgICAgLyogUG9pbnRzIHRvIHRhYmxlIG9mIHR5cGUgbWFwcyAqLworICBC
T09MICAgb2Zmc2V0X292ZXJmbG93OyAgICAgICAvKiBTZXQgaWYgdG9vIG1hbnkgZXh0cmFjdGlv
bnMgKi8KKyAgVVNQVFIgIHN0YXJ0X3N1YmplY3Q7ICAgICAgICAgLyogU3RhcnQgb2YgdGhlIHN1
YmplY3Qgc3RyaW5nICovCisgIFVTUFRSICBlbmRfc3ViamVjdDsgICAgICAgICAgIC8qIEVuZCBv
ZiB0aGUgc3ViamVjdCBzdHJpbmcgKi8KKyAgVVNQVFIgIGVuZF9tYXRjaF9wdHI7ICAgICAgICAg
LyogU3ViamVjdCBwb3NpdGlvbiBhdCBlbmQgbWF0Y2ggKi8KKyAgaW50ICAgIGVuZF9vZmZzZXRf
dG9wOyAgICAgICAgLyogSGlnaHdhdGVyIG1hcmsgYXQgZW5kIG9mIG1hdGNoICovCisgIEJPT0wg
ICBtdWx0aWxpbmU7CisgIEJPT0wgICBjYXNlbGVzczsKK30gbWF0Y2hfZGF0YTsKKwogI2RlZmlu
ZSBtYXRjaF9pc2dyb3VwICAgICAgVFJVRSAgICAvKiBTZXQgaWYgc3RhcnQgb2YgYnJhY2tldGVk
IGdyb3VwICovCiAKIC8qIE5vbi1lcnJvciByZXR1cm5zIGZyb20gdGhlIG1hdGNoKCkgZnVuY3Rp
b24uIEVycm9yIHJldHVybnMgYXJlIGV4dGVybmFsbHkKQEAgLTE3MCwzMSArMjM2LDE3IEBAIHJl
dHVybiBUUlVFOwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgICAgICAgICAgICAgIFJFQ1VS
U0lPTiBJTiBUSEUgbWF0Y2goKSBGVU5DVElPTgogCi1UaGUgbWF0Y2goKSBmdW5jdGlvbiBpcyBo
aWdobHkgcmVjdXJzaXZlLCB0aG91Z2ggbm90IGV2ZXJ5IHJlY3Vyc2l2ZSBjYWxsCi1pbmNyZWFz
ZXMgdGhlIHJlY3Vyc2l2ZSBkZXB0aC4gTmV2ZXJ0aGVsZXNzLCBzb21lIHJlZ3VsYXIgZXhwcmVz
c2lvbnMgY2FuIGNhdXNlCi1pdCB0byByZWN1cnNlIHRvIGEgZ3JlYXQgZGVwdGguIEkgd2FzIHdy
aXRpbmcgZm9yIFVuaXgsIHNvIEkganVzdCBsZXQgaXQgY2FsbAotaXRzZWxmIHJlY3Vyc2l2ZWx5
LiBUaGlzIHVzZXMgdGhlIHN0YWNrIGZvciBzYXZpbmcgZXZlcnl0aGluZyB0aGF0IGhhcyB0byBi
ZQotc2F2ZWQgZm9yIGEgcmVjdXJzaXZlIGNhbGwuIE9uIFVuaXgsIHRoZSBzdGFjayBjYW4gYmUg
bGFyZ2UsIGFuZCB0aGlzIHdvcmtzCi1maW5lLgotCi1JdCB0dXJucyBvdXQgdGhhdCBvbiBzb21l
IG5vbi1Vbml4LWxpa2Ugc3lzdGVtcyB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aAotcHJvZ3JhbXMg
dGhhdCB1c2UgYSBsb3Qgb2Ygc3RhY2suIChUaGlzIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBldmVy
eSBsYXN0IGNoaXAKLWhhcyBvb2RsZXMgb2YgbWVtb3J5IHRoZXNlIGRheXMsIGFuZCB0ZWNobmlx
dWVzIGZvciBleHRlbmRpbmcgdGhlIHN0YWNrIGhhdmUKLWJlZW4ga25vd24gZm9yIGRlY2FkZXMu
KSBTby4uLi4KLQotVGhlcmUgaXMgYSBmdWRnZSwgdHJpZ2dlcmVkIGJ5IGRlZmluaW5nIE5PX1JF
Q1VSU0UsIHdoaWNoIGF2b2lkcyByZWN1cnNpdmUKLWNhbGxzIGJ5IGtlZXBpbmcgbG9jYWwgdmFy
aWFibGVzIHRoYXQgbmVlZCB0byBiZSBwcmVzZXJ2ZWQgaW4gYmxvY2tzIG9mIG1lbW9yeQotb2J0
YWluZWQgZnJvbSBtYWxsb2MoKSBpbnN0ZWFkIGluc3RlYWQgb2Ygb24gdGhlIHN0YWNrLiBNYWNy
b3MgYXJlIHVzZWQgdG8KLWFjaGlldmUgdGhpcyBzbyB0aGF0IHRoZSBhY3R1YWwgY29kZSBkb2Vz
bid0IGxvb2sgdmVyeSBkaWZmZXJlbnQgdG8gd2hhdCBpdAotYWx3YXlzIHVzZWQgdG8uCitUaGUg
b3JpZ2luYWwgbWF0Y2goKSBmdW5jdGlvbiB3YXMgaGlnaGx5IHJlY3Vyc2l2ZS4gVGhlIGN1cnJl
bnQgdmVyc2lvbgorc3RpbGwgaGFzIHRoZSByZW1uYW50cyBvZiB0aGUgb3JpZ2luYWwgaW4gdGhh
dCByZWN1cnNpdmUgcHJvY2Vzc2luZyBvZiB0aGUKK3JlZ3VsYXIgZXhwcmVzc2lvbiBpcyB0cmln
Z2VyZWQgYnkgaW52b2tpbmcgYSBtYWNybyBuYW1lZCBSTUFUQ0guIFRoaXMgaXMKK25vIGxvbmdl
ciByZWFsbHkgbXVjaCBsaWtlIGEgcmVjdXJzaXZlIGNhbGwgdG8gbWF0Y2goKSBpdHNlbGYuCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLQogLyogVGhlc2UgdmVy
c2lvbnMgb2YgdGhlIG1hY3JvcyB1c2UgdGhlIHN0YWNrLCBhcyBub3JtYWwuIFRoZXJlIGFyZSBk
ZWJ1Z2dpbmcKIHZlcnNpb25zIGFuZCBwcm9kdWN0aW9uIHZlcnNpb25zLiAqLwogCi0jaWZuZGVm
IF9fR05VQ19fCisjaWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9SRUNVUlNJT04K
IAogLyogVXNlIG51bWJlcmVkIGxhYmVscyBhbmQgc3dpdGNoIHN0YXRlbWVudCBhdCB0aGUgYm90
dG9tIG9mIHRoZSBtYXRjaCBmdW5jdGlvbi4gKi8KIApAQCAtMjE1LDE0ICsyNjcsMTIgQEAgYSBi
aXQgbW9yZSBjb2RlIGFuZCBub3RpY2UgaWYgd2UgdXNlIGNvbgogCiAjZW5kaWYKIAotCiAjZGVm
aW5lIFJNQVRDSChudW0sIHJhLCByYiwgcmMpXAogICB7XAogICBpZiAoZnJhbWUgPj0gc3RhY2tm
cmFtZXMgJiYgZnJhbWUgKyAxIDwgc3RhY2tmcmFtZXNlbmQpXAogICAgIG5ld2ZyYW1lID0gZnJh
bWUgKyAxO1wKICAgZWxzZVwKLSAgICBuZXdmcmFtZSA9IChwY3JlX21hbGxvYykoc2l6ZW9mKG1h
dGNoZnJhbWUpKTtcCi0gIGZyYW1lLT53aGVyZSA9IFJNQVRDSF9XSEVSRShudW0pO1wKKyAgICBu
ZXdmcmFtZSA9IG5ldyBtYXRjaGZyYW1lO1wKICAgbmV3ZnJhbWUtPmVwdHIgPSBmcmFtZS0+ZXB0
cjtcCiAgIG5ld2ZyYW1lLT5lY29kZSA9IChyYSk7XAogICBuZXdmcmFtZS0+b2Zmc2V0X3RvcCA9
IGZyYW1lLT5vZmZzZXRfdG9wO1wKQEAgLTIzMSw3NSArMjgxLDMxIEBAIGEgYml0IG1vcmUgY29k
ZSBhbmQgbm90aWNlIGlmIHdlIHVzZSBjb24KICAgKytyZGVwdGg7XAogICBuZXdmcmFtZS0+cHJl
dmZyYW1lID0gZnJhbWU7XAogICBmcmFtZSA9IG5ld2ZyYW1lO1wKKyAgZnJhbWUtPndoZXJlID0g
Uk1BVENIX1dIRVJFKG51bSk7XAogICBEUFJJTlRGKCgicmVzdGFydGluZyBmcm9tIGxpbmUgJWRc
biIsIF9fTElORV9fKSk7XAotICBnb3RvIEhFQVBfUkVDVVJTRTtcCisgIGdvdG8gUkVDVVJTRTtc
CiBSUkVUVVJOXyMjbnVtOlwKKyAgbmV3ZnJhbWUgPSBmcmFtZTtcCisgIGZyYW1lID0gZnJhbWUt
PnByZXZmcmFtZTtcCisgIGlmICghKG5ld2ZyYW1lID49IHN0YWNrZnJhbWVzICYmIG5ld2ZyYW1l
IDwgc3RhY2tmcmFtZXNlbmQpKVwKKyAgICBkZWxldGUgbmV3ZnJhbWU7XAogICAtLXJkZXB0aDtc
CiAgIERQUklOVEYoKCJkaWQgYSBnb3RvIGJhY2sgdG8gbGluZSAlZFxuIiwgX19MSU5FX18pKTtc
CiAgIH0KKyAKKyNkZWZpbmUgUlJFVFVSTiBnb3RvIFJSRVRVUk5fTEFCRUwKIAotI2RlZmluZSBS
UkVUVVJOKHJhKVwKKyNkZWZpbmUgUlJFVFVSTl9OT19NQVRDSCBcCiAgIHtcCi0gIG5ld2ZyYW1l
ID0gZnJhbWU7XAotICBmcmFtZSA9IG5ld2ZyYW1lLT5wcmV2ZnJhbWU7XAotICBpZiAoIShuZXdm
cmFtZSA+PSBzdGFja2ZyYW1lcyAmJiBuZXdmcmFtZSA8IHN0YWNrZnJhbWVzZW5kKSlcCi0gICAg
KHBjcmVfZnJlZSkobmV3ZnJhbWUpO1wKLSAgaWYgKGZyYW1lICE9IE5VTEwpXAotICAgIHtcCi0g
ICAgcnJjID0gKHJhKTtcCi0gICAgZ290byBSUkVUVVJOX0xBQkVMO1wKLSAgICB9XAotICByZXR1
cm4gcmE7XAorICAgIGlzX21hdGNoID0gRkFMU0U7XAorICAgIFJSRVRVUk47XAogICB9CiAKLS8q
IFN0cnVjdHVyZSBmb3IgcmVtZW1iZXJpbmcgdGhlIGxvY2FsIHZhcmlhYmxlcyBpbiBhIHByaXZh
dGUgZnJhbWUgKi8KLQotdHlwZWRlZiBzdHJ1Y3QgbWF0Y2hmcmFtZSB7Ci0gIHN0cnVjdCBtYXRj
aGZyYW1lICpwcmV2ZnJhbWU7Ci0KLSAgLyogRnVuY3Rpb24gYXJndW1lbnRzIHRoYXQgbWF5IGNo
YW5nZSAqLwotCi0gIGNvbnN0IHBjcmVfdWNoYXIgKmVwdHI7Ci0gIGNvbnN0IHVzY2hhciAqZWNv
ZGU7Ci0gIGludCBvZmZzZXRfdG9wOwotICBlcHRyYmxvY2sgKmVwdHJiOwotCi0gIC8qIEZ1bmN0
aW9uIGxvY2FsIHZhcmlhYmxlcyAqLwotCi0gIGNvbnN0IHVzY2hhciAqZGF0YTsKLSAgY29uc3Qg
dXNjaGFyICpuZXh0OwotICBjb25zdCBwY3JlX3VjaGFyICpwcDsKLSAgY29uc3QgdXNjaGFyICpw
cmV2OwotICBjb25zdCBwY3JlX3VjaGFyICpzYXZlZF9lcHRyOwotCi0gIGludCByZXBlYXRfb3Ro
ZXJjYXNlOwotCi0gIGludCBjdHlwZTsKLSAgaW50IGZjOwotICBpbnQgZmk7Ci0gIGludCBsZW5n
dGg7Ci0gIGludCBtYXg7Ci0gIGludCBudW1iZXI7Ci0gIGludCBvZmZzZXQ7Ci0gIGludCBzYXZl
X29mZnNldDEsIHNhdmVfb2Zmc2V0Miwgc2F2ZV9vZmZzZXQzOwotCi0gIGVwdHJibG9jayBuZXdw
dHJiOwotCi0gIC8qIFdoZXJlIHRvIGp1bXAgYmFjayB0byAqLwotCi0jaWZuZGVmIF9fR05VQ19f
Ci0gIGludCB3aGVyZTsKLSNlbHNlCi0gIHZvaWQgKndoZXJlOwotI2VuZGlmCi0KLX0gbWF0Y2hm
cmFtZTsKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLQor
I2RlZmluZSBSUkVUVVJOX0VSUk9SKGVycm9yKSBcCisgIHsgXAorICAgIGkgPSAoZXJyb3IpOyBc
CisgICAgZ290byBSRVRVUk5fRVJST1I7IFwKKyAgfQogCiAvKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgIE1hdGNoIGZyb20gY3VycmVu
dCBwb3NpdGlvbiAgICAgICAgICAgICoKQEAgLTMyNCwxNiArMzMwLDEyIEBAIFJldHVybnM6ICAg
ICAgIE1BVENIX01BVENIIGlmIG1hdGNoZWQgICAKICAgICAgICAgICAgICAgICAgKGUuZy4gc3Rv
cHBlZCBieSByZXBlYXRlZCBjYWxsIG9yIHJlY3Vyc2lvbiBsaW1pdCkKICovCiAKLXN0YXRpYyBp
bnQKLW1hdGNoKFVTUFRSIGVwdHIsIGNvbnN0IHVzY2hhciAqZWNvZGUsIGludCBvZmZzZXRfdG9w
LCBtYXRjaF9kYXRhICptZCkKK3N0YXRpYyBpbnQgbWF0Y2goVVNQVFIgZXB0ciwgY29uc3QgdXNj
aGFyICplY29kZSwgaW50IG9mZnNldF90b3AsIG1hdGNoX2RhdGEgKm1kKQogewotLyogVGhlc2Ug
dmFyaWFibGVzIGRvIG5vdCBuZWVkIHRvIGJlIHByZXNlcnZlZCBvdmVyIHJlY3Vyc2lvbiBpbiB0
aGlzIGZ1bmN0aW9uLAotc28gdGhleSBjYW4gYmUgb3JkaW5hcnkgdmFyaWFibGVzIGluIGFsbCBj
YXNlcy4gTWFyayB0aGVtIHdpdGggInJlZ2lzdGVyIgotYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGEg
bG90IGluIGxvb3BzLiAqLwotCi1yZWdpc3RlciBpbnQgIHJyYzsgICAgLyogUmV0dXJucyBmcm9t
IHJlY3Vyc2l2ZSBjYWxscyAqLwotcmVnaXN0ZXIgaW50ICBpOyAgICAgIC8qIFVzZWQgZm9yIGxv
b3BzIG5vdCBpbnZvbHZpbmcgY2FsbHMgdG8gUk1BVENIKCkgKi8KLXJlZ2lzdGVyIGludCAgYzsg
ICAgICAvKiBDaGFyYWN0ZXIgdmFsdWVzIG5vdCBrZXB0IG92ZXIgUk1BVENIKCkgY2FsbHMgKi8K
K3JlZ2lzdGVyIGludCBpc19tYXRjaCA9IEZBTFNFOworcmVnaXN0ZXIgaW50IGk7CityZWdpc3Rl
ciBpbnQgYzsKKwogdW5zaWduZWQgcmRlcHRoID0gMDsKIAogQk9PTCBjdXJfaXNfd29yZDsKQEAg
LTM0MiwxMSArMzQ0LDYgQEAgQk9PTCBpc19ncm91cF9zdGFydCA9IFRSVUU7CiBpbnQgbWluOwog
Qk9PTCBtaW5pbWl6ZSA9IEZBTFNFOyAvKiBJbml0aWFsaXphdGlvbiBub3QgcmVhbGx5IG5lZWRl
ZCwgYnV0IHNvbWUgY29tcGlsZXJzIHRoaW5rIHNvLiAqLwogCi0vKiBXaGVuIHJlY3Vyc2lvbiBp
cyBub3QgYmVpbmcgdXNlZCwgYWxsICJsb2NhbCIgdmFyaWFibGVzIHRoYXQgaGF2ZSB0byBiZQot
cHJlc2VydmVkIG92ZXIgY2FsbHMgdG8gUk1BVENIKCkgYXJlIHBhcnQgb2YgYSAiZnJhbWUiIHdo
aWNoIGlzIG9idGFpbmVkIGZyb20KLWhlYXAgc3RvcmFnZS4gU2V0IHVwIHRoZSB0b3AtbGV2ZWwg
ZnJhbWUgaGVyZTsgb3RoZXJzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQotaGVhcCB3aGVuZXZlciBS
TUFUQ0goKSBkb2VzIGEgInJlY3Vyc2lvbiIuIFNlZSB0aGUgbWFjcm8gZGVmaW5pdGlvbnMgYWJv
dmUuICovCi0KIC8qIFRoZSB2YWx1ZSAxNiBoZXJlIGlzIGxhcmdlIGVub3VnaCB0aGF0IG1vc3Qg
cmVndWxhciBleHByZXNzaW9ucyBkb24ndCByZXF1aXJlCiBhbnkgY2FsbHMgdG8gcGNyZV9zdGFj
a19tYWxsb2MsIHlldCB0aGUgYW1vdW50IG9mIHN0YWNrIHVzZWQgZm9yIHRoZSBhcnJheSBpcwog
bW9kZXN0IGVub3VnaCB0aGF0IHdlIGRvbid0IHJ1biBvdXQgb2Ygc3RhY2suICovCkBAIC0zNTUs
OSArMzUyLDI2IEBAIG1hdGNoZnJhbWUgKnN0YWNrZnJhbWVzZW5kID0gc3RhY2tmcmFtZXMKIAog
bWF0Y2hmcmFtZSAqZnJhbWUgPSBzdGFja2ZyYW1lczsKIG1hdGNoZnJhbWUgKm5ld2ZyYW1lOwot
ZnJhbWUtPnByZXZmcmFtZSA9IE5VTEw7ICAgICAgICAgICAgLyogTWFya3MgdGhlIHRvcCBsZXZl
bCAqLwogCi0vKiBDb3B5IGluIHRoZSBvcmlnaW5hbCBhcmd1bWVudCB2YXJpYWJsZXMgKi8KKy8q
IFRoZSBvcGNvZGUganVtcCB0YWJsZS4gKi8KKyNpZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1Jf
TUFUQ0hfT1BDT0RFX0xPT1AKKyNkZWZpbmUgRU1JVF9KVU1QX1RBQkxFX0VOVFJZKG9wY29kZSkg
JiZMQUJFTF9PUF8jI29wY29kZSwKK3N0YXRpYyB2b2lkKiBvcGNvZGVfanVtcF90YWJsZVsyNTZd
ID0geyBGT1JfRUFDSF9PUENPREUoRU1JVF9KVU1QX1RBQkxFX0VOVFJZKSB9OworI3VuZGVmIEVN
SVRfSlVNUF9UQUJMRV9FTlRSWQorI2VuZGlmCisKKy8qIE9uZS10aW1lIHNldHVwIG9mIHRoZSBv
cGNvZGUganVtcCB0YWJsZS4gKi8KKyNpZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1JfTUFUQ0hf
T1BDT0RFX0xPT1AKK2kgPSAyNTU7Cit3aGlsZSAoIW9wY29kZV9qdW1wX3RhYmxlW2ldKQorICBv
cGNvZGVfanVtcF90YWJsZVtpLS1dID0gJiZDQVBUVVJJTkdfQlJBQ0tFVDsKKyNlbmRpZgorCisj
aWZkZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENIX1JFQ1VSU0lPTgorZnJhbWUtPndoZXJl
ID0gJiZSRVRVUk47CisjZWxzZQorZnJhbWUtPndoZXJlID0gMDsKKyNlbmRpZgogCiBmcmFtZS0+
ZXB0ciA9IGVwdHI7CiBmcmFtZS0+ZWNvZGUgPSBlY29kZTsKQEAgLTM2Niw3ICszODAsNyBAQCBm
cmFtZS0+ZXB0cmIgPSBOVUxMOwogCiAvKiBUaGlzIGlzIHdoZXJlIGNvbnRyb2wganVtcHMgYmFj
ayB0byB0byBlZmZlY3QgInJlY3Vyc2lvbiIgKi8KIAotSEVBUF9SRUNVUlNFOgorUkVDVVJTRToK
IAogLyogT0ssIG5vdyB3ZSBjYW4gZ2V0IG9uIHdpdGggdGhlIHJlYWwgY29kZSBvZiB0aGUgZnVu
Y3Rpb24uIFJlY3Vyc2l2ZSBjYWxscwogYXJlIHNwZWNpZmllZCBieSB0aGUgbWFjcm8gUk1BVENI
IGFuZCBSUkVUVVJOIGlzIHVzZWQgdG8gcmV0dXJuLiBXaGVuCkBAIC0zNzksOCArMzkzLDggQEAg
aG93ZXZlciwgaW1wYWN0IHBlcmZvcm1hbmNlIHdoZW4gdHJ1ZSByZQogLyogRmlyc3QgY2hlY2sg
dGhhdCB3ZSBoYXZlbid0IGNhbGxlZCBtYXRjaCgpIHRvbyBtYW55IHRpbWVzLCBvciB0aGF0IHdl
CiBoYXZlbid0IGV4Y2VlZGVkIHRoZSByZWN1cnNpdmUgY2FsbCBsaW1pdC4gKi8KIAotaWYgKG1k
LT5tYXRjaF9jYWxsX2NvdW50KysgPj0gTUFUQ0hfTElNSVQpIFJSRVRVUk4oSlNfUkVHRVhQX0VS
Uk9SX01BVENITElNSVQpOwotaWYgKHJkZXB0aCA+PSBNQVRDSF9MSU1JVF9SRUNVUlNJT04pIFJS
RVRVUk4oSlNfUkVHRVhQX0VSUk9SX1JFQ1VSU0lPTkxJTUlUKTsKK2lmIChtZC0+bWF0Y2hfY2Fs
bF9jb3VudCsrID49IE1BVENIX0xJTUlUKSBSUkVUVVJOX0VSUk9SKEpTUmVnRXhwRXJyb3JNYXRj
aExpbWl0KTsKK2lmIChyZGVwdGggPj0gTUFUQ0hfTElNSVRfUkVDVVJTSU9OKSBSUkVUVVJOX0VS
Uk9SKEpTUmVnRXhwRXJyb3JSZWN1cnNpb25MaW1pdCk7CiAKIC8qIEF0IHRoZSBzdGFydCBvZiBh
IGJyYWNrZXRlZCBncm91cCwgYWRkIHRoZSBjdXJyZW50IHN1YmplY3QgcG9pbnRlciB0byB0aGUK
IHN0YWNrIG9mIHN1Y2ggcG9pbnRlcnMsIHRvIGJlIHJlLWluc3RhdGVkIGF0IHRoZSBlbmQgb2Yg
dGhlIGdyb3VwIHdoZW4gd2UgaGl0CkBAIC0zOTYsMjkgKzQxMCw0NyBAQCBpZiAoaXNfZ3JvdXBf
c3RhcnQpCiAKIC8qIE5vdyBzdGFydCBwcm9jZXNzaW5nIHRoZSBvcGVyYXRpb25zLiAqLwogCisj
aWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9PUENPREVfTE9PUAogZm9yICg7OykK
KyNlbmRpZgogICB7CisKKyNpZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1JfTUFUQ0hfT1BDT0RF
X0xPT1AKKyAgI2RlZmluZSBCRUdJTl9PUENPREUob3Bjb2RlKSBMQUJFTF9PUF8jI29wY29kZQor
ICAjZGVmaW5lIE5FWFRfT1BDT0RFIGdvdG8gKm9wY29kZV9qdW1wX3RhYmxlWypmcmFtZS0+ZWNv
ZGVdCisjZWxzZQorICAjZGVmaW5lIEJFR0lOX09QQ09ERShvcGNvZGUpIGNhc2UgT1BfIyNvcGNv
ZGUKKyAgI2RlZmluZSBORVhUX09QQ09ERSBjb250aW51ZQorI2VuZGlmCisKKyNpZmRlZiBVU0Vf
Q09NUFVURURfR09UT19GT1JfTUFUQ0hfT1BDT0RFX0xPT1AKKyAgTkVYVF9PUENPREU7CisjZWxz
ZQogICBzd2l0Y2ggKCpmcmFtZS0+ZWNvZGUpCisjZW5kaWYKICAgICB7Ci0gICAgY2FzZSBPUF9C
UkE6ICAgICAvKiBOb24tY2FwdHVyaW5nIGJyYWNrZXQ6IG9wdGltaXplZCAqLworICAgIC8qIE5v
bi1jYXB0dXJpbmcgYnJhY2tldDogb3B0aW1pemVkICovCisKKyAgICBCRUdJTl9PUENPREUoQlJB
KToKICAgICBOT05fQ0FQVFVSSU5HX0JSQUNLRVQ6CiAgICAgRFBSSU5URigoInN0YXJ0IGJyYWNr
ZXQgMFxuIikpOwogICAgIGRvCiAgICAgICB7CiAgICAgICBSTUFUQ0goMiwgZnJhbWUtPmVjb2Rl
ICsgMSArIExJTktfU0laRSwgZnJhbWUtPmVwdHJiLCBtYXRjaF9pc2dyb3VwKTsKLSAgICAgIGlm
IChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgaWYgKGlzX21hdGNo
KSBSUkVUVVJOOwogICAgICAgZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsIDEpOwog
ICAgICAgfQogICAgIHdoaWxlICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7CiAgICAgRFBSSU5U
RigoImJyYWNrZXQgMCBmYWlsZWRcbiIpKTsKLSAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwor
ICAgIFJSRVRVUk47CiAKICAgICAvKiBFbmQgb2YgdGhlIHBhdHRlcm4uICovCiAKLSAgICBjYXNl
IE9QX0VORDoKKyAgICBCRUdJTl9PUENPREUoRU5EKToKICAgICBtZC0+ZW5kX21hdGNoX3B0ciA9
IGZyYW1lLT5lcHRyOyAgICAgICAgICAvKiBSZWNvcmQgd2hlcmUgd2UgZW5kZWQgKi8KICAgICBt
ZC0+ZW5kX29mZnNldF90b3AgPSBmcmFtZS0+b2Zmc2V0X3RvcDsgICAvKiBhbmQgaG93IG1hbnkg
ZXh0cmFjdHMgd2VyZSB0YWtlbiAqLwotICAgIFJSRVRVUk4oTUFUQ0hfTUFUQ0gpOworICAgIGlz
X21hdGNoID0gVFJVRTsKKyAgICBSUkVUVVJOOwogCiAgICAgLyogQXNzZXJ0aW9uIGJyYWNrZXRz
LiBDaGVjayB0aGUgYWx0ZXJuYXRpdmUgYnJhbmNoZXMgaW4gdHVybiAtIHRoZQogICAgIG1hdGNo
aW5nIHdvbid0IHBhc3MgdGhlIEtFVCBmb3IgYW4gYXNzZXJ0aW9uLiBJZiBhbnkgb25lIGJyYW5j
aCBtYXRjaGVzLApAQCAtNDI2LDE2ICs0NTgsMTUgQEAgZm9yICg7OykKICAgICBzdGFydCBvZiBl
YWNoIGJyYW5jaCB0byBtb3ZlIHRoZSBjdXJyZW50IHBvaW50IGJhY2t3YXJkcywgc28gdGhlIGNv
ZGUgYXQKICAgICB0aGlzIGxldmVsIGlzIGlkZW50aWNhbCB0byB0aGUgbG9va2FoZWFkIGNhc2Uu
ICovCiAKLSAgICBjYXNlIE9QX0FTU0VSVDoKKyAgICBCRUdJTl9PUENPREUoQVNTRVJUKToKICAg
ICBkbwogICAgICAgewogICAgICAgUk1BVENIKDYsIGZyYW1lLT5lY29kZSArIDEgKyBMSU5LX1NJ
WkUsIE5VTEwsIG1hdGNoX2lzZ3JvdXApOwotICAgICAgaWYgKHJyYyA9PSBNQVRDSF9NQVRDSCkg
YnJlYWs7Ci0gICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAg
ICAgIGlmIChpc19tYXRjaCkgYnJlYWs7CiAgICAgICBmcmFtZS0+ZWNvZGUgKz0gR0VUKGZyYW1l
LT5lY29kZSwgMSk7CiAgICAgICB9CiAgICAgd2hpbGUgKCpmcmFtZS0+ZWNvZGUgPT0gT1BfQUxU
KTsKLSAgICBpZiAoKmZyYW1lLT5lY29kZSA9PSBPUF9LRVQpIFJSRVRVUk4oTUFUQ0hfTk9NQVRD
SCk7CisgICAgaWYgKCpmcmFtZS0+ZWNvZGUgPT0gT1BfS0VUKSBSUkVUVVJOX05PX01BVENIOwog
CiAgICAgLyogQ29udGludWUgZnJvbSBhZnRlciB0aGUgYXNzZXJ0aW9uLCB1cGRhdGluZyB0aGUg
b2Zmc2V0cyBoaWdoIHdhdGVyCiAgICAgbWFyaywgc2luY2UgZXh0cmFjdHMgbWF5IGhhdmUgYmVl
biB0YWtlbiBkdXJpbmcgdGhlIGFzc2VydGlvbi4gKi8KQEAgLTQ0MywyMiArNDc0LDIxIEBAIGZv
ciAoOzspCiAgICAgZG8gZnJhbWUtPmVjb2RlICs9IEdFVChmcmFtZS0+ZWNvZGUsMSk7IHdoaWxl
ICgqZnJhbWUtPmVjb2RlID09IE9QX0FMVCk7CiAgICAgZnJhbWUtPmVjb2RlICs9IDEgKyBMSU5L
X1NJWkU7CiAgICAgZnJhbWUtPm9mZnNldF90b3AgPSBtZC0+ZW5kX29mZnNldF90b3A7Ci0gICAg
Y29udGludWU7CisgICAgTkVYVF9PUENPREU7CiAKICAgICAvKiBOZWdhdGl2ZSBhc3NlcnRpb246
IGFsbCBicmFuY2hlcyBtdXN0IGZhaWwgdG8gbWF0Y2ggKi8KIAotICAgIGNhc2UgT1BfQVNTRVJU
X05PVDoKKyAgICBCRUdJTl9PUENPREUoQVNTRVJUX05PVCk6CiAgICAgZG8KICAgICAgIHsKICAg
ICAgIFJNQVRDSCg3LCBmcmFtZS0+ZWNvZGUgKyAxICsgTElOS19TSVpFLCBOVUxMLCBtYXRjaF9p
c2dyb3VwKTsKLSAgICAgIGlmIChycmMgPT0gTUFUQ0hfTUFUQ0gpIFJSRVRVUk4oTUFUQ0hfTk9N
QVRDSCk7Ci0gICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAg
ICAgIGlmIChpc19tYXRjaCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICAgIGZyYW1lLT5lY29kZSAr
PSBHRVQoZnJhbWUtPmVjb2RlLDEpOwogICAgICAgfQogICAgIHdoaWxlICgqZnJhbWUtPmVjb2Rl
ID09IE9QX0FMVCk7CiAKICAgICBmcmFtZS0+ZWNvZGUgKz0gMSArIExJTktfU0laRTsKLSAgICBj
b250aW51ZTsKKyAgICBORVhUX09QQ09ERTsKIAogICAgIC8qICJPbmNlIiBicmFja2V0cyBhcmUg
bGlrZSBhc3NlcnRpb24gYnJhY2tldHMgZXhjZXB0IHRoYXQgYWZ0ZXIgYSBtYXRjaCwKICAgICB0
aGUgcG9pbnQgaW4gdGhlIHN1YmplY3Qgc3RyaW5nIGlzIG5vdCBtb3ZlZCBiYWNrLiBUaHVzIHRo
ZXJlIGNhbiBuZXZlciBiZQpAQCAtNDY3LDcgKzQ5Nyw3IEBAIGZvciAoOzspCiAgICAgZm9yIHRo
aXMga2luZCBvZiBzdWJwYXR0ZXJuLiBJZiBhbnkgb25lIGJyYW5jaCBtYXRjaGVzLCB3ZSBjYXJy
eSBvbiBhcyBhdAogICAgIHRoZSBlbmQgb2YgYSBub3JtYWwgYnJhY2tldCwgbGVhdmluZyB0aGUg
c3ViamVjdCBwb2ludGVyLiAqLwogCi0gICAgY2FzZSBPUF9PTkNFOgorICAgIEJFR0lOX09QQ09E
RShPTkNFKToKICAgICAgIHsKICAgICAgIGZyYW1lLT5wcmV2ID0gZnJhbWUtPmVjb2RlOwogICAg
ICAgZnJhbWUtPnNhdmVkX2VwdHIgPSBmcmFtZS0+ZXB0cjsKQEAgLTQ3NSwxNSArNTA1LDE0IEBA
IGZvciAoOzspCiAgICAgICBkbwogICAgICAgICB7CiAgICAgICAgIFJNQVRDSCg5LCBmcmFtZS0+
ZWNvZGUgKyAxICsgTElOS19TSVpFLCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXApOwotICAg
ICAgICBpZiAocnJjID09IE1BVENIX01BVENIKSBicmVhazsKLSAgICAgICAgaWYgKHJyYyAhPSBN
QVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgIGlmIChpc19tYXRjaCkgYnJlYWs7
CiAgICAgICAgIGZyYW1lLT5lY29kZSArPSBHRVQoZnJhbWUtPmVjb2RlLDEpOwogICAgICAgICB9
CiAgICAgICB3aGlsZSAoKmZyYW1lLT5lY29kZSA9PSBPUF9BTFQpOwogCiAgICAgICAvKiBJZiBo
aXQgdGhlIGVuZCBvZiB0aGUgZ3JvdXAgKHdoaWNoIGNvdWxkIGJlIHJlcGVhdGVkKSwgZmFpbCAq
LwogCi0gICAgICBpZiAoKmZyYW1lLT5lY29kZSAhPSBPUF9PTkNFICYmICpmcmFtZS0+ZWNvZGUg
IT0gT1BfQUxUKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgaWYgKCpmcmFtZS0+ZWNv
ZGUgIT0gT1BfT05DRSAmJiAqZnJhbWUtPmVjb2RlICE9IE9QX0FMVCkgUlJFVFVSTjsKIAogICAg
ICAgLyogQ29udGludWUgYXMgZnJvbSBhZnRlciB0aGUgYXNzZXJ0aW9uLCB1cGRhdGluZyB0aGUg
b2Zmc2V0cyBoaWdoIHdhdGVyCiAgICAgICBtYXJrLCBzaW5jZSBleHRyYWN0cyBtYXkgaGF2ZSBi
ZWVuIHRha2VuLiAqLwpAQCAtNTAyLDcgKzUzMSw3IEBAIGZvciAoOzspCiAgICAgICBpZiAoKmZy
YW1lLT5lY29kZSA9PSBPUF9LRVQgfHwgZnJhbWUtPmVwdHIgPT0gZnJhbWUtPnNhdmVkX2VwdHIp
CiAgICAgICAgIHsKICAgICAgICAgZnJhbWUtPmVjb2RlICs9IDErTElOS19TSVpFOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgTkVYVF9PUENPREU7CiAgICAgICAgIH0KIAogICAgICAgLyogVGhl
IHJlcGVhdGluZyBrZXRzIHRyeSB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBvciByZXN0YXJ0IGZy
b20gdGhlCkBAIC01MTMsMjYgKzU0MiwyNiBAQCBmb3IgKDs7KQogICAgICAgaWYgKCpmcmFtZS0+
ZWNvZGUgPT0gT1BfS0VUUk1JTikKICAgICAgICAgewogICAgICAgICBSTUFUQ0goMTAsIGZyYW1l
LT5lY29kZSArIDEgKyBMSU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgIGlmIChy
cmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICBpZiAoaXNfbWF0Y2gp
IFJSRVRVUk47CiAgICAgICAgIFJNQVRDSCgxMSwgZnJhbWUtPnByZXYsIGZyYW1lLT5lcHRyYiwg
bWF0Y2hfaXNncm91cCk7Ci0gICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVS
TihycmMpOworICAgICAgICBpZiAoaXNfbWF0Y2gpIFJSRVRVUk47CiAgICAgICAgIH0KICAgICAg
IGVsc2UgIC8qIE9QX0tFVFJNQVggKi8KICAgICAgICAgewogICAgICAgICBSTUFUQ0goMTIsIGZy
YW1lLT5wcmV2LCBmcmFtZS0+ZXB0cmIsIG1hdGNoX2lzZ3JvdXApOwotICAgICAgICBpZiAocnJj
ICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgaWYgKGlzX21hdGNoKSBS
UkVUVVJOOwogICAgICAgICBSTUFUQ0goMTMsIGZyYW1lLT5lY29kZSArIDErTElOS19TSVpFLCBm
cmFtZS0+ZXB0cmIsIDApOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRV
Uk4ocnJjKTsKKyAgICAgICAgaWYgKGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAgICB9CiAgICAg
ICB9Ci0gICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBSUkVUVVJOOwogCiAgICAgLyog
QW4gYWx0ZXJuYXRpb24gaXMgdGhlIGVuZCBvZiBhIGJyYW5jaDsgc2NhbiBhbG9uZyB0byBmaW5k
IHRoZSBlbmQgb2YgdGhlCiAgICAgYnJhY2tldGVkIGdyb3VwIGFuZCBnbyB0byB0aGVyZS4gKi8K
IAotICAgIGNhc2UgT1BfQUxUOgorICAgIEJFR0lOX09QQ09ERShBTFQpOgogICAgIGRvIGZyYW1l
LT5lY29kZSArPSBHRVQoZnJhbWUtPmVjb2RlLDEpOyB3aGlsZSAoKmZyYW1lLT5lY29kZSA9PSBP
UF9BTFQpOwotICAgIGJyZWFrOworICAgIE5FWFRfT1BDT0RFOwogCiAgICAgLyogQlJBWkVSTyBh
bmQgQlJBTUlOWkVSTyBvY2N1ciBqdXN0IGJlZm9yZSBhIGJyYWNrZXQgZ3JvdXAsIGluZGljYXRp
bmcKICAgICB0aGF0IGl0IG1heSBvY2N1ciB6ZXJvIHRpbWVzLiBJdCBtYXkgcmVwZWF0IGluZmlu
aXRlbHksIG9yIG5vdCBhdCBhbGwgLQpAQCAtNTQwLDM0ICs1NjksMzQgQEAgZm9yICg7OykKICAg
ICByZXBlYXQgbGltaXRzIGFyZSBjb21waWxlZCBhcyBhIG51bWJlciBvZiBjb3BpZXMsIHdpdGgg
dGhlIG9wdGlvbmFsIG9uZXMKICAgICBwcmVjZWRlZCBieSBCUkFaRVJPIG9yIEJSQU1JTlpFUk8u
ICovCiAKLSAgICBjYXNlIE9QX0JSQVpFUk86CisgICAgQkVHSU5fT1BDT0RFKEJSQVpFUk8pOgog
ICAgICAgewogICAgICAgZnJhbWUtPm5leHQgPSBmcmFtZS0+ZWNvZGUrMTsKICAgICAgIFJNQVRD
SCgxNCwgZnJhbWUtPm5leHQsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0gICAgICBp
ZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgIGlmIChpc19tYXRj
aCkgUlJFVFVSTjsKICAgICAgIGRvIGZyYW1lLT5uZXh0ICs9IEdFVChmcmFtZS0+bmV4dCwxKTsg
d2hpbGUgKCpmcmFtZS0+bmV4dCA9PSBPUF9BTFQpOwogICAgICAgZnJhbWUtPmVjb2RlID0gZnJh
bWUtPm5leHQgKyAxK0xJTktfU0laRTsKICAgICAgIH0KLSAgICBicmVhazsKKyAgICBORVhUX09Q
Q09ERTsKIAotICAgIGNhc2UgT1BfQlJBTUlOWkVSTzoKKyAgICBCRUdJTl9PUENPREUoQlJBTUlO
WkVSTyk6CiAgICAgICB7CiAgICAgICBmcmFtZS0+bmV4dCA9IGZyYW1lLT5lY29kZSsxOwogICAg
ICAgZG8gZnJhbWUtPm5leHQgKz0gR0VUKGZyYW1lLT5uZXh0LDEpOyB3aGlsZSAoKmZyYW1lLT5u
ZXh0ID09IE9QX0FMVCk7CiAgICAgICBSTUFUQ0goMTUsIGZyYW1lLT5uZXh0ICsgMStMSU5LX1NJ
WkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0gICAgICBpZiAocnJjICE9IE1BVENI
X05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgIGlmIChpc19tYXRjaCkgUlJFVFVSTjsKICAg
ICAgIGZyYW1lLT5lY29kZSsrOwogICAgICAgfQotICAgIGJyZWFrOworICAgIE5FWFRfT1BDT0RF
OwogCiAgICAgLyogRW5kIG9mIGEgZ3JvdXAsIHJlcGVhdGVkIG9yIG5vbi1yZXBlYXRpbmcuIElm
IHdlIGFyZSBhdCB0aGUgZW5kIG9mCiAgICAgYW4gYXNzZXJ0aW9uICJncm91cCIsIHN0b3AgbWF0
Y2hpbmcgYW5kIHJldHVybiBNQVRDSF9NQVRDSCwgYnV0IHJlY29yZCB0aGUKICAgICBjdXJyZW50
IGhpZ2ggd2F0ZXIgbWFyayBmb3IgdXNlIGJ5IHBvc2l0aXZlIGFzc2VydGlvbnMuIERvIHRoaXMg
YWxzbwogICAgIGZvciB0aGUgIm9uY2UiIChub3QtYmFja3VwIHVwKSBncm91cHMuICovCiAKLSAg
ICBjYXNlIE9QX0tFVDoKLSAgICBjYXNlIE9QX0tFVFJNSU46Ci0gICAgY2FzZSBPUF9LRVRSTUFY
OgorICAgIEJFR0lOX09QQ09ERShLRVQpOgorICAgIEJFR0lOX09QQ09ERShLRVRSTUlOKToKKyAg
ICBCRUdJTl9PUENPREUoS0VUUk1BWCk6CiAgICAgICB7CiAgICAgICBmcmFtZS0+cHJldiA9IGZy
YW1lLT5lY29kZSAtIEdFVChmcmFtZS0+ZWNvZGUsIDEpOwogICAgICAgZnJhbWUtPnNhdmVkX2Vw
dHIgPSBmcmFtZS0+ZXB0cmItPmVwYl9zYXZlZF9lcHRyOwpAQCAtNTgwLDcgKzYwOSw4IEBAIGZv
ciAoOzspCiAgICAgICAgIHsKICAgICAgICAgbWQtPmVuZF9tYXRjaF9wdHIgPSBmcmFtZS0+ZXB0
cjsgICAgICAvKiBGb3IgT05DRSAqLwogICAgICAgICBtZC0+ZW5kX29mZnNldF90b3AgPSBmcmFt
ZS0+b2Zmc2V0X3RvcDsKLSAgICAgICAgUlJFVFVSTihNQVRDSF9NQVRDSCk7CisgICAgICAgIGlz
X21hdGNoID0gVFJVRTsKKyAgICAgICAgUlJFVFVSTjsKICAgICAgICAgfQogCiAgICAgICAvKiBJ
biBhbGwgb3RoZXIgY2FzZXMgZXhjZXB0IGEgY29uZGl0aW9uYWwgZ3JvdXAgd2UgaGF2ZSB0byBj
aGVjayB0aGUKQEAgLTYyNyw3ICs2NTcsNyBAQCBmb3IgKDs7KQogICAgICAgaWYgKCpmcmFtZS0+
ZWNvZGUgPT0gT1BfS0VUIHx8IGZyYW1lLT5lcHRyID09IGZyYW1lLT5zYXZlZF9lcHRyKQogICAg
ICAgICB7CiAgICAgICAgIGZyYW1lLT5lY29kZSArPSAxICsgTElOS19TSVpFOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgTkVYVF9PUENPREU7CiAgICAgICAgIH0KIAogICAgICAgLyogVGhlIHJl
cGVhdGluZyBrZXRzIHRyeSB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBvciByZXN0YXJ0IGZyb20g
dGhlCkBAIC02MzYsNjAgKzY2Niw1NyBAQCBmb3IgKDs7KQogICAgICAgaWYgKCpmcmFtZS0+ZWNv
ZGUgPT0gT1BfS0VUUk1JTikKICAgICAgICAgewogICAgICAgICBSTUFUQ0goMTYsIGZyYW1lLT5l
Y29kZSArIDErTElOS19TSVpFLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICBpZiAocnJjICE9
IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgaWYgKGlzX21hdGNoKSBSUkVU
VVJOOwogICAgICAgICBSTUFUQ0goMTcsIGZyYW1lLT5wcmV2LCBmcmFtZS0+ZXB0cmIsIG1hdGNo
X2lzZ3JvdXApOwotICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKKyAgICAgICAgaWYgKGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAgICB9CiAgICAgICBlbHNl
ICAvKiBPUF9LRVRSTUFYICovCiAgICAgICAgIHsKICAgICAgICAgUk1BVENIKDE4LCBmcmFtZS0+
cHJldiwgZnJhbWUtPmVwdHJiLCBtYXRjaF9pc2dyb3VwKTsKLSAgICAgICAgaWYgKHJyYyAhPSBN
QVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgIGlmIChpc19tYXRjaCkgUlJFVFVS
TjsKICAgICAgICAgUk1BVENIKDE5LCBmcmFtZS0+ZWNvZGUgKyAxK0xJTktfU0laRSwgZnJhbWUt
PmVwdHJiLCAwKTsKLSAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJy
Yyk7CisgICAgICAgIGlmIChpc19tYXRjaCkgUlJFVFVSTjsKICAgICAgICAgfQogICAgICAgfQot
Ci0gICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBSUkVUVVJOOwogCiAgICAgLyogU3Rh
cnQgb2Ygc3ViamVjdCB1bmxlc3Mgbm90Ym9sLCBvciBhZnRlciBpbnRlcm5hbCBuZXdsaW5lIGlm
IG11bHRpbGluZSAqLwogCi0gICAgY2FzZSBPUF9DSVJDOgorICAgIEJFR0lOX09QQ09ERShDSVJD
KToKICAgICBpZiAobWQtPm11bHRpbGluZSkKICAgICAgIHsKICAgICAgIGlmIChmcmFtZS0+ZXB0
ciAhPSBtZC0+c3RhcnRfc3ViamVjdCAmJiAhSVNfTkVXTElORShmcmFtZS0+ZXB0clstMV0pKQot
ICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICBSUkVUVVJOX05PX01BVENI
OwogICAgICAgZnJhbWUtPmVjb2RlKys7Ci0gICAgICBicmVhazsKKyAgICAgIE5FWFRfT1BDT0RF
OwogICAgICAgfQotICAgIGlmIChmcmFtZS0+ZXB0ciAhPSBtZC0+c3RhcnRfc3ViamVjdCkgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBpZiAoZnJhbWUtPmVwdHIgIT0gbWQtPnN0YXJ0X3N1
YmplY3QpIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgZnJhbWUtPmVjb2RlKys7Ci0gICAgYnJlYWs7
CisgICAgTkVYVF9PUENPREU7CiAKICAgICAvKiBBc3NlcnQgYmVmb3JlIGludGVybmFsIG5ld2xp
bmUgaWYgbXVsdGlsaW5lLCBvciBiZWZvcmUgYSB0ZXJtaW5hdGluZwogICAgIG5ld2xpbmUgdW5s
ZXNzIGVuZG9ubHkgaXMgc2V0LCBlbHNlIGVuZCBvZiBzdWJqZWN0IHVubGVzcyBub3Rlb2wgaXMg
c2V0LiAqLwogCi0gICAgY2FzZSBPUF9ET0xMOgorICAgIEJFR0lOX09QQ09ERShET0xMKToKICAg
ICBpZiAobWQtPm11bHRpbGluZSkKICAgICAgIHsKICAgICAgIGlmIChmcmFtZS0+ZXB0ciA8IG1k
LT5lbmRfc3ViamVjdCkKLSAgICAgICAgeyBpZiAoIUlTX05FV0xJTkUoKmZyYW1lLT5lcHRyKSkg
UlJFVFVSTihNQVRDSF9OT01BVENIKTsgfQorICAgICAgICB7IGlmICghSVNfTkVXTElORSgqZnJh
bWUtPmVwdHIpKSBSUkVUVVJOX05PX01BVENIOyB9CiAgICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAg
ICAgIGJyZWFrOwogICAgICAgfQogICAgIGVsc2UKICAgICAgIHsKICAgICAgIGlmIChmcmFtZS0+
ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAtIDEgfHwKICAgICAgICAgIChmcmFtZS0+ZXB0ciA9PSBt
ZC0+ZW5kX3N1YmplY3QgLSAxICYmICFJU19ORVdMSU5FKCpmcmFtZS0+ZXB0cikpKQotICAgICAg
ICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAg
ICAgZnJhbWUtPmVjb2RlKys7Ci0gICAgICBicmVhazsKICAgICAgIH0KLSAgICBicmVhazsKKyAg
ICBORVhUX09QQ09ERTsKIAogICAgIC8qIFdvcmQgYm91bmRhcnkgYXNzZXJ0aW9ucyAqLwogCi0g
ICAgY2FzZSBPUF9OT1RfV09SRF9CT1VOREFSWToKLSAgICBjYXNlIE9QX1dPUkRfQk9VTkRBUlk6
CisgICAgQkVHSU5fT1BDT0RFKE5PVF9XT1JEX0JPVU5EQVJZKToKKyAgICBCRUdJTl9PUENPREUo
V09SRF9CT1VOREFSWSk6CiAgICAgICB7CiAgICAgICAvKiBGaW5kIG91dCBpZiB0aGUgcHJldmlv
dXMgYW5kIGN1cnJlbnQgY2hhcmFjdGVycyBhcmUgIndvcmQiIGNoYXJhY3RlcnMuCiAgICAgICBJ
dCB0YWtlcyBhIGJpdCBtb3JlIHdvcmsgaW4gVVRGLTggbW9kZS4gQ2hhcmFjdGVycyA+IDEyOCBh
cmUgYXNzdW1lZCB0bwpAQCAtNzE0LDg1ICs3NDEsNjcgQEAgZm9yICg7OykKIAogICAgICAgaWYg
KCgqZnJhbWUtPmVjb2RlKysgPT0gT1BfV09SRF9CT1VOREFSWSk/CiAgICAgICAgICAgIGN1cl9p
c193b3JkID09IHByZXZfaXNfd29yZCA6IGN1cl9pc193b3JkICE9IHByZXZfaXNfd29yZCkKLSAg
ICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsK
ICAgICAgIH0KLSAgICBicmVhazsKKyAgICBORVhUX09QQ09ERTsKIAogICAgIC8qIE1hdGNoIGEg
c2luZ2xlIGNoYXJhY3RlciB0eXBlOyBpbmxpbmUgZm9yIHNwZWVkICovCiAKLSAgICBjYXNlIE9Q
X0FOWToKKyAgICBCRUdJTl9PUENPREUoQU5ZKToKICAgICBpZiAoZnJhbWUtPmVwdHIgPCBtZC0+
ZW5kX3N1YmplY3QgJiYgSVNfTkVXTElORSgqZnJhbWUtPmVwdHIpKQotICAgICAgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKLSAgICBpZiAoZnJhbWUtPmVwdHIrKyA+PSBtZC0+ZW5kX3N1YmplY3Qp
IFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICBSUkVUVVJOX05PX01BVENIOworICAgIGlm
IChmcmFtZS0+ZXB0cisrID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTl9OT19NQVRDSDsKICAg
ICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAmJiBJU01JRENIQVIoKmZy
YW1lLT5lcHRyKSkgZnJhbWUtPmVwdHIrKzsKICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICBicmVh
azsKKyAgICBORVhUX09QQ09ERTsKIAotICAgIGNhc2UgT1BfTk9UX0RJR0lUOgotICAgIGlmIChm
cmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Cisg
ICAgQkVHSU5fT1BDT0RFKE5PVF9ESUdJVCk6CisgICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5l
bmRfc3ViamVjdCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICBHRVRDSEFSSU5DVEVTVChjLCBmcmFt
ZS0+ZXB0cik7Ci0gICAgaWYgKAotICAgICAgIGMgPCAxMjggJiYKLSAgICAgICAobWQtPmN0eXBl
c1tjXSAmIGN0eXBlX2RpZ2l0KSAhPSAwCi0gICAgICAgKQotICAgICAgUlJFVFVSTihNQVRDSF9O
T01BVENIKTsKKyAgICBpZiAoaXNBU0NJSURpZ2l0KGMpKQorICAgICAgUlJFVFVSTl9OT19NQVRD
SDsKICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICBicmVhazsKKyAgICBORVhUX09QQ09ERTsKIAot
ICAgIGNhc2UgT1BfRElHSVQ6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVj
dCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBCRUdJTl9PUENPREUoRElHSVQpOgorICAg
IGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk5fTk9fTUFUQ0g7CiAg
ICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlmICgKLSAgICAgICBjID49
IDEyOCB8fAotICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGlnaXQpID09IDAKLSAgICAg
ICApCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgIGlmICghaXNBU0NJSURpZ2l0
KGMpKQorICAgICAgUlJFVFVSTl9OT19NQVRDSDsKICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICBi
cmVhazsKKyAgICBORVhUX09QQ09ERTsKIAotICAgIGNhc2UgT1BfTk9UX1dISVRFU1BBQ0U6Ci0g
ICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKKyAgICBCRUdJTl9PUENPREUoTk9UX1dISVRFU1BBQ0UpOgorICAgIGlmIChmcmFtZS0+
ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgR0VUQ0hBUklO
Q1RFU1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlmICgKLSAgICAgICBjIDwgMTI4ICYmCi0gICAg
ICAgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgIT0gMAotICAgICAgICkKLSAgICAgIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYgKGMgPCAxMjggJiYgKG1kLT5jdHlwZXNbY10g
JiBjdHlwZV9zcGFjZSkgIT0gMCkKKyAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgZnJhbWUt
PmVjb2RlKys7Ci0gICAgYnJlYWs7CisgICAgTkVYVF9PUENPREU7CiAKLSAgICBjYXNlIE9QX1dI
SVRFU1BBQ0U6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVS
TihNQVRDSF9OT01BVENIKTsKKyAgICBCRUdJTl9PUENPREUoV0hJVEVTUEFDRSk6CisgICAgaWYg
KGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICBH
RVRDSEFSSU5DVEVTVChjLCBmcmFtZS0+ZXB0cik7Ci0gICAgaWYgKAotICAgICAgIGMgPj0gMTI4
IHx8Ci0gICAgICAgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgPT0gMAotICAgICAgICkK
LSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYgKGMgPj0gMTI4IHx8IChtZC0+
Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2UpID09IDApCisgICAgICBSUkVUVVJOX05PX01BVENIOwog
ICAgIGZyYW1lLT5lY29kZSsrOwotICAgIGJyZWFrOworICAgIE5FWFRfT1BDT0RFOwogCi0gICAg
Y2FzZSBPUF9OT1RfV09SRENIQVI6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3Vi
amVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBCRUdJTl9PUENPREUoTk9UX1dPUkRD
SEFSKToKKyAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOX05P
X01BVENIOwogICAgIEdFVENIQVJJTkNURVNUKGMsIGZyYW1lLT5lcHRyKTsKLSAgICBpZiAoCi0g
ICAgICAgYyA8IDEyOCAmJgotICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgIT0g
MAotICAgICAgICkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYgKGMgPCAx
MjggJiYgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV93b3JkKSAhPSAwKQorICAgICAgUlJFVFVSTl9O
T19NQVRDSDsKICAgICBmcmFtZS0+ZWNvZGUrKzsKLSAgICBicmVhazsKKyAgICBORVhUX09QQ09E
RTsKIAotICAgIGNhc2UgT1BfV09SRENIQVI6Ci0gICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5l
bmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBCRUdJTl9PUENPREUoV09S
RENIQVIpOgorICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk5f
Tk9fTUFUQ0g7CiAgICAgR0VUQ0hBUklOQ1RFU1QoYywgZnJhbWUtPmVwdHIpOwotICAgIGlmICgK
LSAgICAgICBjID49IDEyOCB8fAotICAgICAgIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkg
PT0gMAotICAgICAgICkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYgKGMg
Pj0gMTI4IHx8IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfd29yZCkgPT0gMCkKKyAgICAgIFJSRVRV
Uk5fTk9fTUFUQ0g7CiAgICAgZnJhbWUtPmVjb2RlKys7Ci0gICAgYnJlYWs7CisgICAgTkVYVF9P
UENPREU7CiAKICAgICAvKiBNYXRjaCBhIGJhY2sgcmVmZXJlbmNlLCBwb3NzaWJseSByZXBlYXRl
ZGx5LiBMb29rIHBhc3QgdGhlIGVuZCBvZiB0aGUKICAgICBpdGVtIHRvIHNlZSBpZiB0aGVyZSBp
cyByZXBlYXQgaW5mb3JtYXRpb24gZm9sbG93aW5nLiBUaGUgY29kZSBpcyBzaW1pbGFyCkBAIC04
MDIsNyArODExLDcgQEAgZm9yICg7OykKICAgICBpdCBhcyBtYXRjaGVkLCBhbnkgbnVtYmVyIG9m
IHRpbWVzIChvdGhlcndpc2UgdGhlcmUgY291bGQgYmUgaW5maW5pdGUKICAgICBsb29wcykuICov
CiAKLSAgICBjYXNlIE9QX1JFRjoKKyAgICBCRUdJTl9PUENPREUoUkVGKToKICAgICAgIHsKICAg
ICAgIGZyYW1lLT5vZmZzZXQgPSBHRVQyKGZyYW1lLT5lY29kZSwgMSkgPDwgMTsgICAgICAgICAg
ICAgICAvKiBEb3VibGVkIHJlZiBudW1iZXIgKi8KICAgICAgIGZyYW1lLT5lY29kZSArPSAzOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFkdmFuY2UgcGFzdCBpdGVtICovCkBA
IC04NDMsMjggKzg1MiwzMCBAQCBmb3IgKDs7KQogICAgICAgICBicmVhazsKIAogICAgICAgICBk
ZWZhdWx0OiAgICAgICAgICAgICAgIC8qIE5vIHJlcGVhdCBmb2xsb3dzICovCi0gICAgICAgIGlm
ICghbWF0Y2hfcmVmKGZyYW1lLT5vZmZzZXQsIGZyYW1lLT5lcHRyLCBmcmFtZS0+bGVuZ3RoLCBt
ZCkpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgIGlmICghbWF0Y2hfcmVmKGZyYW1l
LT5vZmZzZXQsIGZyYW1lLT5lcHRyLCBmcmFtZS0+bGVuZ3RoLCBtZCkpIFJSRVRVUk5fTk9fTUFU
Q0g7CiAgICAgICAgIGZyYW1lLT5lcHRyICs9IGZyYW1lLT5sZW5ndGg7Ci0gICAgICAgIGNvbnRp
bnVlOyAgICAgICAgICAgICAgLyogV2l0aCB0aGUgbWFpbiBsb29wICovCisgICAgICAgIE5FWFRf
T1BDT0RFOwogICAgICAgICB9CiAKICAgICAgIC8qIElmIHRoZSBsZW5ndGggb2YgdGhlIHJlZmVy
ZW5jZSBpcyB6ZXJvLCBqdXN0IGNvbnRpbnVlIHdpdGggdGhlCiAgICAgICBtYWluIGxvb3AuICov
CiAKLSAgICAgIGlmIChmcmFtZS0+bGVuZ3RoID09IDApIGNvbnRpbnVlOworICAgICAgaWYgKGZy
YW1lLT5sZW5ndGggPT0gMCkKKyAgICAgICAgTkVYVF9PUENPREU7CiAKICAgICAgIC8qIEZpcnN0
LCBlbnN1cmUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuICovCiAK
ICAgICAgIGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCiAgICAgICAgIHsKLSAgICAgICAgaWYg
KCFtYXRjaF9yZWYoZnJhbWUtPm9mZnNldCwgZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5ndGgsIG1k
KSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgaWYgKCFtYXRjaF9yZWYoZnJhbWUt
Pm9mZnNldCwgZnJhbWUtPmVwdHIsIGZyYW1lLT5sZW5ndGgsIG1kKSkgUlJFVFVSTl9OT19NQVRD
SDsKICAgICAgICAgZnJhbWUtPmVwdHIgKz0gZnJhbWUtPmxlbmd0aDsKICAgICAgICAgfQogCiAg
ICAgICAvKiBJZiBtaW4gPSBtYXgsIGNvbnRpbnVlIGF0IHRoZSBzYW1lIGxldmVsIHdpdGhvdXQg
cmVjdXJzaW9uLgogICAgICAgVGhleSBhcmUgbm90IGJvdGggYWxsb3dlZCB0byBiZSB6ZXJvLiAq
LwogCi0gICAgICBpZiAobWluID09IGZyYW1lLT5tYXgpIGNvbnRpbnVlOworICAgICAgaWYgKG1p
biA9PSBmcmFtZS0+bWF4KQorICAgICAgICBORVhUX09QQ09ERTsKIAogICAgICAgLyogSWYgbWlu
aW1pemluZywga2VlcCB0cnlpbmcgYW5kIGFkdmFuY2luZyB0aGUgcG9pbnRlciAqLwogCkBAIC04
NzMsOSArODg0LDkgQEAgZm9yICg7OykKICAgICAgICAgZm9yIChmcmFtZS0+ZmkgPSBtaW47OyBm
cmFtZS0+ZmkrKykKICAgICAgICAgICB7CiAgICAgICAgICAgUk1BVENIKDIwLCBmcmFtZS0+ZWNv
ZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENI
KSBSUkVUVVJOKHJyYyk7CisgICAgICAgICAgaWYgKGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAg
ICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCAhbWF0Y2hfcmVmKGZyYW1lLT5vZmZz
ZXQsIGZyYW1lLT5lcHRyLCBmcmFtZS0+bGVuZ3RoLCBtZCkpCi0gICAgICAgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgUlJFVFVSTjsKICAgICAgICAgICBmcmFtZS0+
ZXB0ciArPSBmcmFtZS0+bGVuZ3RoOwogICAgICAgICAgIH0KICAgICAgICAgLyogQ29udHJvbCBu
ZXZlciBnZXRzIGhlcmUgKi8KQEAgLTg5NCwxNiArOTA1LDE0IEBAIGZvciAoOzspCiAgICAgICAg
IHdoaWxlIChmcmFtZS0+ZXB0ciA+PSBmcmFtZS0+cHApCiAgICAgICAgICAgewogICAgICAgICAg
IFJNQVRDSCgyMSwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAgIGlm
IChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgIGlmIChpc19t
YXRjaCkgUlJFVFVSTjsKICAgICAgICAgICBmcmFtZS0+ZXB0ciAtPSBmcmFtZS0+bGVuZ3RoOwog
ICAgICAgICAgIH0KLSAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgUlJF
VFVSTl9OT19NQVRDSDsKICAgICAgICAgfQogICAgICAgfQogICAgIC8qIENvbnRyb2wgbmV2ZXIg
Z2V0cyBoZXJlICovCiAKLQotCiAgICAgLyogTWF0Y2ggYSBiaXQtbWFwcGVkIGNoYXJhY3RlciBj
bGFzcywgcG9zc2libHkgcmVwZWF0ZWRseS4gVGhpcyBvcCBjb2RlIGlzCiAgICAgdXNlZCB3aGVu
IGFsbCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgY2xhc3MgaGF2ZSB2YWx1ZXMgaW4gdGhlIHJhbmdl
IDAtMjU1LAogICAgIGFuZCBlaXRoZXIgdGhlIG1hdGNoaW5nIGlzIGNhc2VmdWwsIG9yIHRoZSBj
aGFyYWN0ZXJzIGFyZSBpbiB0aGUgcmFuZ2UKQEAgLTkxNSw4ICs5MjQsOCBAQCBmb3IgKDs7KQog
ICAgIGZvbGxvd2luZy4gVGhlbiBvYmV5IHNpbWlsYXIgY29kZSB0byBjaGFyYWN0ZXIgdHlwZSBy
ZXBlYXRzIC0gd3JpdHRlbiBvdXQKICAgICBhZ2FpbiBmb3Igc3BlZWQuICovCiAKLSAgICBjYXNl
IE9QX05DTEFTUzoKLSAgICBjYXNlIE9QX0NMQVNTOgorICAgIEJFR0lOX09QQ09ERShOQ0xBU1Mp
OgorICAgIEJFR0lOX09QQ09ERShDTEFTUyk6CiAgICAgICB7CiAgICAgICBmcmFtZS0+ZGF0YSA9
IGZyYW1lLT5lY29kZSArIDE7ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNoaW5nICov
CiAgICAgICBmcmFtZS0+ZWNvZGUgKz0gMzM7ICAgICAgICAgICAgICAgICAgICAgLyogQWR2YW5j
ZSBwYXN0IHRoZSBpdGVtICovCkBAIC05NTUsMTUgKzk2NCwxNSBAQCBmb3IgKDs7KQogICAgICAg
ICB7CiAgICAgICAgIGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCiAgICAgICAgICAgewotICAg
ICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hf
Tk9NQVRDSCk7CisgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkg
UlJFVFVSTl9OT19NQVRDSDsKICAgICAgICAgICBHRVRDSEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsK
ICAgICAgICAgICBpZiAoYyA+IDI1NSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChm
cmFtZS0+ZGF0YVstMV0gPT0gT1BfQ0xBU1MpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAg
ICAgICAgICBpZiAoZnJhbWUtPmRhdGFbLTFdID09IE9QX0NMQVNTKSBSUkVUVVJOX05PX01BVENI
OwogICAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgIGlmICgoZnJhbWUtPmRhdGFbYy84XSAmICgxIDw8IChjJjcpKSkgPT0gMCkgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgIGlmICgoZnJhbWUtPmRhdGFbYy84XSAmICgxIDw8
IChjJjcpKSkgPT0gMCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTk3MSw0MCArOTgwLDM3IEBAIGZvciAoOzspCiAgICAgICAvKiBJ
ZiBtYXggPT0gbWluIHdlIGNhbiBjb250aW51ZSB3aXRoIHRoZSBtYWluIGxvb3Agd2l0aG91dCB0
aGUKICAgICAgIG5lZWQgdG8gcmVjdXJzZS4gKi8KIAotICAgICAgaWYgKG1pbiA9PSBmcmFtZS0+
bWF4KSBjb250aW51ZTsKKyAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkKKyAgICAgICAgTkVY
VF9PUENPREU7ICAgICAgCiAKICAgICAgIC8qIElmIG1pbmltaXppbmcsIGtlZXAgdGVzdGluZyB0
aGUgcmVzdCBvZiB0aGUgZXhwcmVzc2lvbiBhbmQgYWR2YW5jaW5nCiAgICAgICB0aGUgcG9pbnRl
ciB3aGlsZSBpdCBtYXRjaGVzIHRoZSBjbGFzcy4gKi8KLQogICAgICAgaWYgKG1pbmltaXplKQog
ICAgICAgICB7CiAgICAgICAgICAgewogICAgICAgICAgIGZvciAoZnJhbWUtPmZpID0gbWluOzsg
ZnJhbWUtPmZpKyspCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBSTUFUQ0goMjIsIGZyYW1l
LT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hf
Tk9NQVRDSCkgUlJFVFVSTihycmMpOwotICAgICAgICAgICAgaWYgKGZyYW1lLT5maSA+PSBmcmFt
ZS0+bWF4IHx8IGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9O
T01BVENIKTsKKyAgICAgICAgICAgIGlmIChpc19tYXRjaCkgUlJFVFVSTjsKKyAgICAgICAgICAg
IGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1
YmplY3QpIFJSRVRVUk47CiAgICAgICAgICAgICBHRVRDSEFSSU5DKGMsIGZyYW1lLT5lcHRyKTsK
ICAgICAgICAgICAgIGlmIChjID4gMjU1KQogICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
IGlmIChmcmFtZS0+ZGF0YVstMV0gPT0gT1BfQ0xBU1MpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7
CisgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZGF0YVstMV0gPT0gT1BfQ0xBU1MpIFJSRVRVUk47
CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICBpZiAoKGZyYW1lLT5kYXRhW2MvOF0gJiAoMSA8PCAoYyY3KSkpID09IDApIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICAgIGlmICgoZnJhbWUtPmRhdGFbYy84
XSAmICgxIDw8IChjJjcpKSkgPT0gMCkgUlJFVFVSTjsKICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUg
Ki8KICAgICAgICAgfQotCiAgICAgICAvKiBJZiBtYXhpbWl6aW5nLCBmaW5kIHRoZSBsb25nZXN0
IHBvc3NpYmxlIHJ1biwgdGhlbiB3b3JrIGJhY2t3YXJkcy4gKi8KLQogICAgICAgZWxzZQogICAg
ICAgICB7CiAgICAgICAgIGZyYW1lLT5wcCA9IGZyYW1lLT5lcHRyOwogCi0gICAgICAgICAgewog
ICAgICAgICAgIGZvciAoaSA9IG1pbjsgaSA8IGZyYW1lLT5tYXg7IGkrKykKICAgICAgICAgICAg
IHsKICAgICAgICAgICAgIGludCBsZW4gPSAxOwpAQCAtMTAyMywyMSArMTAyOSwyMCBAQCBmb3Ig
KDs7KQogICAgICAgICAgIGZvciAoOzspCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBSTUFU
Q0goMjQsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICAgIGlmIChy
cmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgICAgaWYgKGlzX21h
dGNoKSBSUkVUVVJOOwogICAgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyLS0gPT0gZnJhbWUtPnBw
KSBicmVhazsgICAgICAgIC8qIFN0b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCiAgICAg
ICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0cik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
fQotICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworCisgICAgICAgIFJSRVRVUk47CiAg
ICAgICAgIH0KICAgICAgIH0KICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwogCi0K
ICAgICAvKiBNYXRjaCBhbiBleHRlbmRlZCBjaGFyYWN0ZXIgY2xhc3MuIFRoaXMgb3Bjb2RlIGlz
IGVuY291bnRlcmVkIG9ubHkKICAgICBpbiBVVEYtOCBtb2RlLCBiZWNhdXNlIHRoYXQncyB0aGUg
b25seSB0aW1lIGl0IGlzIGNvbXBpbGVkLiAqLwogCi0gICAgY2FzZSBPUF9YQ0xBU1M6CisgICAg
QkVHSU5fT1BDT0RFKFhDTEFTUyk6CiAgICAgICB7CiAgICAgICBmcmFtZS0+ZGF0YSA9IGZyYW1l
LT5lY29kZSArIDEgKyBMSU5LX1NJWkU7ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNo
aW5nICovCiAgICAgICBmcmFtZS0+ZWNvZGUgKz0gR0VUKGZyYW1lLT5lY29kZSwgMSk7ICAgICAg
ICAgICAgICAgICAgICAgIC8qIEFkdmFuY2UgcGFzdCB0aGUgaXRlbSAqLwpAQCAtMTA2OCwyMiAr
MTA3MywyMiBAQCBmb3IgKDs7KQogCiAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyog
Tm8gcmVwZWF0IGZvbGxvd3MgKi8KICAgICAgICAgbWluID0gZnJhbWUtPm1heCA9IDE7Ci0gICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgIC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmlt
dW0gbnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuICovCiAKICAgICAgIGZvciAoaSA9IDE7
IGkgPD0gbWluOyBpKyspCiAgICAgICAgIHsKLSAgICAgICAgaWYgKGZyYW1lLT5lcHRyID49IG1k
LT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgaWYgKGZyYW1l
LT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICAgICAgR0VU
Q0hBUklOQyhjLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgIGlmICghX3BjcmVfeGNsYXNzKGMsIGZy
YW1lLT5kYXRhKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgaWYgKCFfcGNyZV94
Y2xhc3MoYywgZnJhbWUtPmRhdGEpKSBSUkVUVVJOX05PX01BVENIOwogICAgICAgICB9CiAKICAg
ICAgIC8qIElmIG1heCA9PSBtaW4gd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCB3
aXRob3V0IHRoZQogICAgICAgbmVlZCB0byByZWN1cnNlLiAqLwogCi0gICAgICBpZiAobWluID09
IGZyYW1lLT5tYXgpIGNvbnRpbnVlOworICAgICAgaWYgKG1pbiA9PSBmcmFtZS0+bWF4KQorICAg
ICAgICBORVhUX09QQ09ERTsKIAogICAgICAgLyogSWYgbWluaW1pemluZywga2VlcCB0ZXN0aW5n
IHRoZSByZXN0IG9mIHRoZSBleHByZXNzaW9uIGFuZCBhZHZhbmNpbmcKICAgICAgIHRoZSBwb2lu
dGVyIHdoaWxlIGl0IG1hdGNoZXMgdGhlIGNsYXNzLiAqLwpAQCAtMTA5MywxMCArMTA5OCwxMCBA
QCBmb3IgKDs7KQogICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQog
ICAgICAgICAgIHsKICAgICAgICAgICBSTUFUQ0goMjYsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVw
dHJiLCAwKTsKLSAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJj
KTsKLSAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwgZnJhbWUtPmVwdHIg
Pj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGlm
IChpc19tYXRjaCkgUlJFVFVSTjsKKyAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5t
YXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOOwogICAgICAgICAg
IEdFVENIQVJJTkMoYywgZnJhbWUtPmVwdHIpOwotICAgICAgICAgIGlmICghX3BjcmVfeGNsYXNz
KGMsIGZyYW1lLT5kYXRhKSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBpZiAo
IV9wY3JlX3hjbGFzcyhjLCBmcmFtZS0+ZGF0YSkpIFJSRVRVUk47CiAgICAgICAgICAgfQogICAg
ICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwogICAgICAgICB9CkBAIC0xMTE3LDEx
ICsxMTIyLDExIEBAIGZvciAoOzspCiAgICAgICAgIGZvcig7OykKICAgICAgICAgICB7CiAgICAg
ICAgICAgUk1BVENIKDI3LCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAg
ICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CisgICAgICAgICAgaWYg
KGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ci0tID09IGZyYW1l
LT5wcCkgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAqLwog
ICAgICAgICAgIEJBQ0tDSEFSKGZyYW1lLT5lcHRyKQogICAgICAgICAgIH0KLSAgICAgICAgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgUlJFVFVSTjsKICAgICAgICAgfQogCiAgICAg
ICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwpAQCAtMTEyOSw3ICsxMTM0LDcgQEAgZm9y
ICg7OykKIAogICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciwgY2FzZWZ1bGx5ICovCiAK
LSAgICBjYXNlIE9QX0NIQVI6CisgICAgQkVHSU5fT1BDT0RFKENIQVIpOgogICAgICAgewogICAg
ICAgZnJhbWUtPmxlbmd0aCA9IDE7CiAgICAgICBmcmFtZS0+ZWNvZGUrKzsKQEAgLTExNDAsNTAg
KzExNDUsMzYgQEAgZm9yICg7OykKICAgICAgICAgc3dpdGNoIChtZC0+ZW5kX3N1YmplY3QgLSBm
cmFtZS0+ZXB0cikKICAgICAgICAgewogICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAg
ICAgICAgIGNhc2UgMToKICAgICAgICAgICAgIGRjID0gKmZyYW1lLT5lcHRyKys7CiAgICAgICAg
ICAgICBpZiAoSVNfTEVBRElOR19TVVJST0dBVEUoZGMpKQotICAgICAgICAgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEdFVENIQVJJTkMo
ZGMsIGZyYW1lLT5lcHRyKTsKICAgICAgICAgfQotICAgICAgICBpZiAoZnJhbWUtPmZjICE9IGRj
KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwotICAgICB9ICAKKyAgICAgICAgaWYgKGZyYW1lLT5m
YyAhPSBkYykgUlJFVFVSTl9OT19NQVRDSDsKICAgICAgIH0KLSAgICBicmVhazsKKyAgICAgIH0K
KyAgICBORVhUX09QQ09ERTsKIAogICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciwgY2Fz
ZWxlc3NseSAqLwogCi0gICAgY2FzZSBPUF9DSEFSTkM6CisgICAgQkVHSU5fT1BDT0RFKENIQVJO
Qyk6CiAgICAgICB7CiAgICAgICBmcmFtZS0+bGVuZ3RoID0gMTsKICAgICAgIGZyYW1lLT5lY29k
ZSsrOwogICAgICAgR0VUVVRGOENIQVJMRU4oZnJhbWUtPmZjLCBmcmFtZS0+ZWNvZGUsIGZyYW1l
LT5sZW5ndGgpOwogCi0gICAgICBpZiAobWQtPmVuZF9zdWJqZWN0IC0gZnJhbWUtPmVwdHIgPT0g
MCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKLQotICAgICAgLyogSWYgdGhlIHBhdHRlcm4gY2hh
cmFjdGVyJ3MgdmFsdWUgaXMgPCAxMjgsIHdlIGhhdmUgb25seSBvbmUgYnl0ZSwgYW5kCi0gICAg
ICBjYW4gdXNlIHRoZSBmYXN0IGxvb2t1cCB0YWJsZS4gKi8KKyAgICAgIGlmIChtZC0+ZW5kX3N1
YmplY3QgLSBmcmFtZS0+ZXB0ciA9PSAwKSBSUkVUVVJOX05PX01BVENIOwogCi0gICAgICBpZiAo
ZnJhbWUtPmZjIDwgMTI4KQotICAgICAgICB7Ci0gICAgICAgIGludCBkYzsKLSAgICAgICAgZnJh
bWUtPmVjb2RlKys7Ci0gICAgICAgIGRjID0gKmZyYW1lLT5lcHRyKys7Ci0gICAgICAgIGlmIChk
YyA+PSAxMjggfHwgbWQtPmxjY1tmcmFtZS0+ZmNdICE9IG1kLT5sY2NbZGNdKSBSUkVUVVJOKE1B
VENIX05PTUFUQ0gpOwotICAgICAgICB9Ci0KLSAgICAgIC8qIE90aGVyd2lzZSB3ZSBtdXN0IHBp
Y2sgdXAgdGhlIHN1YmplY3QgY2hhcmFjdGVyICovCi0KLSAgICAgIGVsc2UKICAgICAgICAgewog
ICAgICAgICBpbnQgZGM7CiAgICAgICAgIGlmIChtZC0+ZW5kX3N1YmplY3QgLSBmcmFtZS0+ZXB0
ciA9PSAxKSB7CiAgICAgICAgICAgZGMgPSAqZnJhbWUtPmVwdHIrKzsKICAgICAgICAgICBpZiAo
SVNfTEVBRElOR19TVVJST0dBVEUoZGMpKQotICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKKyAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICBHRVRDSEFSSU5DKGRjLCBmcmFtZS0+ZXB0cik7CiAgICAgICAgIGZyYW1lLT5lY29kZSAr
PSBmcmFtZS0+bGVuZ3RoOwpAQCAtMTE5NCw1NiArMTE4NSw1NiBAQCBmb3IgKDs7KQogICAgICAg
ICBpZiAoZnJhbWUtPmZjICE9IGRjKQogICAgICAgICAgIHsKICAgICAgICAgICBpZiAoZGMgIT0g
X3BjcmVfdWNwX290aGVyY2FzZShmcmFtZS0+ZmMpKQotICAgICAgICAgICAgUlJFVFVSTihNQVRD
SF9OT01BVENIKTsKKyAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICB9Ci0gICAgYnJlYWs7CisgICAgTkVYVF9PUENPREU7CiAKICAgICAv
KiBNYXRjaCBhIHNpbmdsZSBBU0NJSSBjaGFyYWN0ZXIuICovCiAKLSAgICBjYXNlIE9QX0FTQ0lJ
X0NIQVI6CisgICAgQkVHSU5fT1BDT0RFKEFTQ0lJX0NIQVIpOgogICAgIGlmIChtZC0+ZW5kX3N1
YmplY3QgPT0gZnJhbWUtPmVwdHIpCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAg
ICAgUlJFVFVSTl9OT19NQVRDSDsKICAgICBpZiAoKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5lY29k
ZVsxXSkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICBSUkVUVVJOX05PX01B
VENIOwogICAgICsrZnJhbWUtPmVwdHI7CiAgICAgZnJhbWUtPmVjb2RlICs9IDI7Ci0gICAgYnJl
YWs7CisgICAgTkVYVF9PUENPREU7CiAKICAgICAvKiBNYXRjaCBvbmUgb2YgdHdvIGNhc2VzIG9m
IGFuIEFTQ0lJIGNoYXJhY3Rlci4gKi8KIAotICAgIGNhc2UgT1BfQVNDSUlfTEVUVEVSX05DOgor
ICAgIEJFR0lOX09QQ09ERShBU0NJSV9MRVRURVJfTkMpOgogICAgIGlmIChtZC0+ZW5kX3N1Ympl
Y3QgPT0gZnJhbWUtPmVwdHIpCi0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAg
UlJFVFVSTl9OT19NQVRDSDsKICAgICBpZiAoKCpmcmFtZS0+ZXB0ciB8IDB4MjApICE9IGZyYW1l
LT5lY29kZVsxXSkKLSAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICBSUkVUVVJO
X05PX01BVENIOwogICAgICsrZnJhbWUtPmVwdHI7CiAgICAgZnJhbWUtPmVjb2RlICs9IDI7Ci0g
ICAgYnJlYWs7CisgICAgTkVYVF9PUENPREU7CiAKICAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFy
YWN0ZXIgcmVwZWF0ZWRseTsgZGlmZmVyZW50IG9wY29kZXMgc2hhcmUgY29kZS4gKi8KIAotICAg
IGNhc2UgT1BfRVhBQ1Q6CisgICAgQkVHSU5fT1BDT0RFKEVYQUNUKToKICAgICBtaW4gPSBmcmFt
ZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOwogICAgIG1pbmltaXplID0gRkFMU0U7CiAg
ICAgZnJhbWUtPmVjb2RlICs9IDM7CiAgICAgZ290byBSRVBFQVRDSEFSOwogCi0gICAgY2FzZSBP
UF9VUFRPOgotICAgIGNhc2UgT1BfTUlOVVBUTzoKKyAgICBCRUdJTl9PUENPREUoVVBUTyk6Cisg
ICAgQkVHSU5fT1BDT0RFKE1JTlVQVE8pOgogICAgIG1pbiA9IDA7CiAgICAgZnJhbWUtPm1heCA9
IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKICAgICBtaW5pbWl6ZSA9ICpmcmFtZS0+ZWNvZGUgPT0g
T1BfTUlOVVBUTzsKICAgICBmcmFtZS0+ZWNvZGUgKz0gMzsKICAgICBnb3RvIFJFUEVBVENIQVI7
CiAKLSAgICBjYXNlIE9QX1NUQVI6Ci0gICAgY2FzZSBPUF9NSU5TVEFSOgotICAgIGNhc2UgT1Bf
UExVUzoKLSAgICBjYXNlIE9QX01JTlBMVVM6Ci0gICAgY2FzZSBPUF9RVUVSWToKLSAgICBjYXNl
IE9QX01JTlFVRVJZOgorICAgIEJFR0lOX09QQ09ERShTVEFSKToKKyAgICBCRUdJTl9PUENPREUo
TUlOU1RBUik6CisgICAgQkVHSU5fT1BDT0RFKFBMVVMpOgorICAgIEJFR0lOX09QQ09ERShNSU5Q
TFVTKToKKyAgICBCRUdJTl9PUENPREUoUVVFUlkpOgorICAgIEJFR0lOX09QQ09ERShNSU5RVUVS
WSk6CiAgICAgYyA9ICpmcmFtZS0+ZWNvZGUrKyAtIE9QX1NUQVI7CiAgICAgbWluaW1pemUgPSAo
YyAmIDEpICE9IDA7CiAgICAgbWluID0gcmVwX21pbltjXTsgICAgICAgICAgICAgICAgIC8qIFBp
Y2sgdXAgdmFsdWVzIGZyb20gdGFibGVzOyAqLwpAQCAtMTI1OSw3ICsxMjUwLDcgQEAgZm9yICg7
OykKICAgICAgIGZyYW1lLT5sZW5ndGggPSAxOwogICAgICAgR0VUVVRGOENIQVJMRU4oZnJhbWUt
PmZjLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5sZW5ndGgpOwogICAgICAgewotICAgICAgaWYgKG1p
biAqIChmcmFtZS0+ZmMgPiAweEZGRkYgPyAyIDogMSkgPiBtZC0+ZW5kX3N1YmplY3QgLSBmcmFt
ZS0+ZXB0cikgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgIGlmIChtaW4gKiAoZnJhbWUt
PmZjID4gMHhGRkZGID8gMiA6IDEpID4gbWQtPmVuZF9zdWJqZWN0IC0gZnJhbWUtPmVwdHIpIFJS
RVRVUk5fTk9fTUFUQ0g7CiAgICAgICBmcmFtZS0+ZWNvZGUgKz0gZnJhbWUtPmxlbmd0aDsKIAog
ICAgICAgaWYgKGZyYW1lLT5mYyA8PSAweEZGRkYpCkBAIC0xMjY4LDExICsxMjU5LDEyIEBAIGZv
ciAoOzspCiAKICAgICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKICAgICAgICAgICB7
Ci0gICAgICAgICAgaWYgKCpmcmFtZS0+ZXB0ciAhPSBmcmFtZS0+ZmMgJiYgKmZyYW1lLT5lcHRy
ICE9IG90aGVyY2FzZSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBpZiAoKmZy
YW1lLT5lcHRyICE9IGZyYW1lLT5mYyAmJiAqZnJhbWUtPmVwdHIgIT0gb3RoZXJjYXNlKSBSUkVU
VVJOX05PX01BVENIOwogICAgICAgICAgICsrZnJhbWUtPmVwdHI7CiAgICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7CisgICAgICAgIGlmIChtaW4g
PT0gZnJhbWUtPm1heCkKKyAgICAgICAgICBORVhUX09QQ09ERTsKIAogICAgICAgICBpZiAobWlu
aW1pemUpCiAgICAgICAgICAgewpAQCAtMTI4MCw5ICsxMjcyLDkgQEAgZm9yICg7OykKICAgICAg
ICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZyYW1lLT5maSsrKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgUk1BVENIKDI4LCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0g
ICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAg
ICAgICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+
ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7Ci0gICAgICAgICAgICBpZiAoKmZy
YW1lLT5lcHRyICE9IGZyYW1lLT5mYyAmJiAqZnJhbWUtPmVwdHIgIT0gZnJhbWUtPnJlcGVhdF9v
dGhlcmNhc2UpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBpZiAoaXNfbWF0
Y2gpIFJSRVRVUk47CisgICAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwg
ZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOOworICAgICAgICAgICAgaWYg
KCpmcmFtZS0+ZXB0ciAhPSBmcmFtZS0+ZmMgJiYgKmZyYW1lLT5lcHRyICE9IGZyYW1lLT5yZXBl
YXRfb3RoZXJjYXNlKSBSUkVUVVJOOwogICAgICAgICAgICAgKytmcmFtZS0+ZXB0cjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwpAQCAtMTI5
OSwxMCArMTI5MSwxMCBAQCBmb3IgKDs7KQogICAgICAgICAgIHdoaWxlIChmcmFtZS0+ZXB0ciA+
PSBmcmFtZS0+cHApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgUk1BVENIKDI5LCBmcmFtZS0+
ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9N
QVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgICBpZiAoaXNfbWF0Y2gpIFJSRVRVUk47CiAg
ICAgICAgICAgIC0tZnJhbWUtPmVwdHI7CiAgICAgICAgICAgIH0KLSAgICAgICAgICBSUkVUVVJO
KE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICAgICAg
fQogICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwogICAgICAgICB9CkBAIC0x
MzE0LDExICsxMzA2LDEyIEBAIGZvciAoOzspCiAgICAgICAgICAgewogICAgICAgICAgIGludCBu
YzsKICAgICAgICAgICBHRVRDSEFSKG5jLCBmcmFtZS0+ZXB0cik7Ci0gICAgICAgICAgaWYgKG5j
ICE9IGZyYW1lLT5mYykgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBpZiAobmMg
IT0gZnJhbWUtPmZjKSBSUkVUVVJOX05PX01BVENIOwogICAgICAgICAgIGZyYW1lLT5lcHRyICs9
IDI7CiAgICAgICAgICAgfQogCi0gICAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGlu
dWU7CisgICAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1heCkKKyAgICAgICAgICBORVhUX09QQ09E
RTsKIAogICAgICAgICBpZiAobWluaW1pemUpCiAgICAgICAgICAgewpAQCAtMTMyNiwxMCArMTMx
OSwxMCBAQCBmb3IgKDs7KQogICAgICAgICAgICAgewogICAgICAgICAgICAgaW50IG5jOwogICAg
ICAgICAgICAgUk1BVENIKDMwLCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAg
ICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKLSAgICAgICAg
ICAgIGlmIChmcmFtZS0+ZmkgPj0gZnJhbWUtPm1heCB8fCBmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5k
X3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBpZiAoaXNfbWF0
Y2gpIFJSRVRVUk47CisgICAgICAgICAgICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwg
ZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOOwogICAgICAgICAgICAgR0VU
Q0hBUihuYywgZnJhbWUtPmVwdHIpOwotICAgICAgICAgICAgaWYgKCpmcmFtZS0+ZXB0ciAhPSBm
cmFtZS0+ZmMpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBpZiAoKmZyYW1l
LT5lcHRyICE9IGZyYW1lLT5mYykgUlJFVFVSTjsKICAgICAgICAgICAgIGZyYW1lLT5lcHRyICs9
IDI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUg
Ki8KQEAgLTEzNDgsMTAgKzEzNDEsMTAgQEAgZm9yICg7OykKICAgICAgICAgICB3aGlsZSAoZnJh
bWUtPmVwdHIgPj0gZnJhbWUtPnBwKQogICAgICAgICAgICB7CiAgICAgICAgICAgIFJNQVRDSCgz
MSwgZnJhbWUtPmVjb2RlLCBmcmFtZS0+ZXB0cmIsIDApOwotICAgICAgICAgICBpZiAocnJjICE9
IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgaWYgKGlzX21hdGNoKSBS
UkVUVVJOOwogICAgICAgICAgICBmcmFtZS0+ZXB0ciAtPSAyOwogICAgICAgICAgICB9Ci0gICAg
ICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBSUkVUVVJOX05PX01BVENI
OwogICAgICAgICAgIH0KICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwog
ICAgICAgICB9CkBAIC0xMzYxLDIxICsxMzU0LDIxIEBAIGZvciAoOzspCiAgICAgLyogTWF0Y2gg
YSBuZWdhdGVkIHNpbmdsZSBvbmUtYnl0ZSBjaGFyYWN0ZXIuIFRoZSBjaGFyYWN0ZXIgd2UgYXJl
CiAgICAgY2hlY2tpbmcgY2FuIGJlIG11bHRpYnl0ZS4gKi8KIAotICAgIGNhc2UgT1BfTk9UOgot
ICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIFJSRVRVUk4oTUFUQ0hfTk9N
QVRDSCk7CisgICAgQkVHSU5fT1BDT0RFKE5PVCk6CisgICAgaWYgKGZyYW1lLT5lcHRyID49IG1k
LT5lbmRfc3ViamVjdCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICBmcmFtZS0+ZWNvZGUrKzsKICAg
ICBHRVRDSEFSSU5DVEVTVChjLCBmcmFtZS0+ZXB0cik7CiAgICAgaWYgKG1kLT5jYXNlbGVzcykK
ICAgICAgIHsKICAgICAgIGlmIChjIDwgMTI4KQogICAgICAgICBjID0gbWQtPmxjY1tjXTsKLSAg
ICAgIGlmIChtZC0+bGNjWypmcmFtZS0+ZWNvZGUrK10gPT0gYykgUlJFVFVSTihNQVRDSF9OT01B
VENIKTsKKyAgICAgIGlmIChtZC0+bGNjWypmcmFtZS0+ZWNvZGUrK10gPT0gYykgUlJFVFVSTl9O
T19NQVRDSDsKICAgICAgIH0KICAgICBlbHNlCiAgICAgICB7Ci0gICAgICBpZiAoKmZyYW1lLT5l
Y29kZSsrID09IGMpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICBpZiAoKmZyYW1lLT5l
Y29kZSsrID09IGMpIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICB9Ci0gICAgYnJlYWs7CisgICAg
TkVYVF9PUENPREU7CiAKICAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9uZS1ieXRlIGNo
YXJhY3RlciByZXBlYXRlZGx5LiBUaGlzIGlzIGFsbW9zdCBhCiAgICAgcmVwZWF0IG9mIHRoZSBj
b2RlIGZvciBhIHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIsIGJ1dCBJIGhhdmVuJ3QgZm91bmQg
YQpAQCAtMTM4NCwyNiArMTM3NywyNiBAQCBmb3IgKDs7KQogICAgIHZlcnkgbXVjaCB0byB0aGUg
dGltZSB0YWtlbiwgYnV0IGNoYXJhY3RlciBtYXRjaGluZyAqaXMqIHdoYXQgdGhpcyBpcyBhbGwK
ICAgICBhYm91dC4uLiAqLwogCi0gICAgY2FzZSBPUF9OT1RFWEFDVDoKKyAgICBCRUdJTl9PUENP
REUoTk9URVhBQ1QpOgogICAgIG1pbiA9IGZyYW1lLT5tYXggPSBHRVQyKGZyYW1lLT5lY29kZSwg
MSk7CiAgICAgbWluaW1pemUgPSBGQUxTRTsKICAgICBmcmFtZS0+ZWNvZGUgKz0gMzsKICAgICBn
b3RvIFJFUEVBVE5PVENIQVI7CiAKLSAgICBjYXNlIE9QX05PVFVQVE86Ci0gICAgY2FzZSBPUF9O
T1RNSU5VUFRPOgorICAgIEJFR0lOX09QQ09ERShOT1RVUFRPKToKKyAgICBCRUdJTl9PUENPREUo
Tk9UTUlOVVBUTyk6CiAgICAgbWluID0gMDsKICAgICBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+
ZWNvZGUsIDEpOwogICAgIG1pbmltaXplID0gKmZyYW1lLT5lY29kZSA9PSBPUF9OT1RNSU5VUFRP
OwogICAgIGZyYW1lLT5lY29kZSArPSAzOwogICAgIGdvdG8gUkVQRUFUTk9UQ0hBUjsKIAotICAg
IGNhc2UgT1BfTk9UU1RBUjoKLSAgICBjYXNlIE9QX05PVE1JTlNUQVI6Ci0gICAgY2FzZSBPUF9O
T1RQTFVTOgotICAgIGNhc2UgT1BfTk9UTUlOUExVUzoKLSAgICBjYXNlIE9QX05PVFFVRVJZOgot
ICAgIGNhc2UgT1BfTk9UTUlOUVVFUlk6CisgICAgQkVHSU5fT1BDT0RFKE5PVFNUQVIpOgorICAg
IEJFR0lOX09QQ09ERShOT1RNSU5TVEFSKToKKyAgICBCRUdJTl9PUENPREUoTk9UUExVUyk6Cisg
ICAgQkVHSU5fT1BDT0RFKE5PVE1JTlBMVVMpOgorICAgIEJFR0lOX09QQ09ERShOT1RRVUVSWSk6
CisgICAgQkVHSU5fT1BDT0RFKE5PVE1JTlFVRVJZKToKICAgICBjID0gKmZyYW1lLT5lY29kZSsr
IC0gT1BfTk9UU1RBUjsKICAgICBtaW5pbWl6ZSA9IChjICYgMSkgIT0gMDsKICAgICBtaW4gPSBy
ZXBfbWluW2NdOyAgICAgICAgICAgICAgICAgLyogUGljayB1cCB2YWx1ZXMgZnJvbSB0YWJsZXM7
ICovCkBAIC0xNDE1LDcgKzE0MDgsNyBAQCBmb3IgKDs7KQogICAgIHN1YmplY3QuICovCiAKICAg
ICBSRVBFQVROT1RDSEFSOgotICAgIGlmIChtaW4gPiBtZC0+ZW5kX3N1YmplY3QgLSBmcmFtZS0+
ZXB0cikgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICBpZiAobWluID4gbWQtPmVuZF9zdWJq
ZWN0IC0gZnJhbWUtPmVwdHIpIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgZnJhbWUtPmZjID0gKmZy
YW1lLT5lY29kZSsrOwogCiAgICAgLyogVGhlIGNvZGUgaXMgZHVwbGljYXRlZCBmb3IgdGhlIGNh
c2VsZXNzIGFuZCBjYXNlZnVsIGNhc2VzLCBmb3Igc3BlZWQsCkBAIC0xNDMwLDcgKzE0MjMsOCBA
QCBmb3IgKDs7KQogCiAgICAgaWYgKG1kLT5jYXNlbGVzcykKICAgICAgIHsKLSAgICAgIGZyYW1l
LT5mYyA9IG1kLT5sY2NbZnJhbWUtPmZjXTsKKyAgICAgIGlmIChmcmFtZS0+ZmMgPCAxMjgpCisg
ICAgICAgIGZyYW1lLT5mYyA9IG1kLT5sY2NbZnJhbWUtPmZjXTsKIAogICAgICAgICB7CiAgICAg
ICAgIHJlZ2lzdGVyIGludCBkOwpAQCAtMTQzOCwxMSArMTQzMiwxMiBAQCBmb3IgKDs7KQogICAg
ICAgICAgIHsKICAgICAgICAgICBHRVRDSEFSSU5DKGQsIGZyYW1lLT5lcHRyKTsKICAgICAgICAg
ICBpZiAoZCA8IDEyOCkgZCA9IG1kLT5sY2NbZF07Ci0gICAgICAgICAgaWYgKGZyYW1lLT5mYyA9
PSBkKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0g
ZCkgUlJFVFVSTl9OT19NQVRDSDsKICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgaWYg
KG1pbiA9PSBmcmFtZS0+bWF4KSBjb250aW51ZTsKKyAgICAgIGlmIChtaW4gPT0gZnJhbWUtPm1h
eCkKKyAgICAgICAgTkVYVF9PUENPREU7ICAgICAgCiAKICAgICAgIGlmIChtaW5pbWl6ZSkKICAg
ICAgICAgewpAQCAtMTQ1MSwxMSArMTQ0NiwxMSBAQCBmb3IgKDs7KQogICAgICAgICAgIGZvciAo
ZnJhbWUtPmZpID0gbWluOzsgZnJhbWUtPmZpKyspCiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICBSTUFUQ0goMzgsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICAg
IGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAgICAgaWYg
KGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAgICAgICAgR0VUQ0hBUklOQyhkLCBmcmFtZS0+ZXB0
cik7CiAgICAgICAgICAgICBpZiAoZCA8IDEyOCkgZCA9IG1kLT5sY2NbZF07CiAgICAgICAgICAg
ICBpZiAoZnJhbWUtPmZpID49IGZyYW1lLT5tYXggfHwgZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9z
dWJqZWN0IHx8IGZyYW1lLT5mYyA9PSBkKQotICAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOworICAgICAgICAgICAgICBSUkVUVVJOOwogICAgICAgICAgICAgfQogICAgICAgICAg
IH0KICAgICAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUgKi8KQEAgLTE0ODEsMTMgKzE0
NzYsMTMgQEAgZm9yICg7OykKICAgICAgICAgICBmb3IoOzspCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICBSTUFUQ0goNDAsIGZyYW1lLT5lY29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAg
ICAgICAgIGlmIChycmMgIT0gTUFUQ0hfTk9NQVRDSCkgUlJFVFVSTihycmMpOworICAgICAgICAg
ICAgaWYgKGlzX21hdGNoKSBSUkVUVVJOOwogICAgICAgICAgICAgaWYgKGZyYW1lLT5lcHRyLS0g
PT0gZnJhbWUtPnBwKSBicmVhazsgICAgICAgIC8qIFN0b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwg
cG9zICovCiAgICAgICAgICAgICBCQUNLQ0hBUihmcmFtZS0+ZXB0cik7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgfQogCi0gICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAg
IFJSRVRVUk47CiAgICAgICAgIH0KICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICov
CiAgICAgICB9CkBAIC0xNTAxLDExICsxNDk2LDEyIEBAIGZvciAoOzspCiAgICAgICAgIGZvciAo
aSA9IDE7IGkgPD0gbWluOyBpKyspCiAgICAgICAgICAgewogICAgICAgICAgIEdFVENIQVJJTkMo
ZCwgZnJhbWUtPmVwdHIpOwotICAgICAgICAgIGlmIChmcmFtZS0+ZmMgPT0gZCkgUlJFVFVSTihN
QVRDSF9OT01BVENIKTsKKyAgICAgICAgICBpZiAoZnJhbWUtPmZjID09IGQpIFJSRVRVUk5fTk9f
TUFUQ0g7CiAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgIGlmIChtaW4gPT0gZnJhbWUt
Pm1heCkgY29udGludWU7CisgICAgICBpZiAobWluID09IGZyYW1lLT5tYXgpCisgICAgICAgIE5F
WFRfT1BDT0RFOwogCiAgICAgICBpZiAobWluaW1pemUpCiAgICAgICAgIHsKQEAgLTE1MTQsMTAg
KzE1MTAsMTAgQEAgZm9yICg7OykKICAgICAgICAgICBmb3IgKGZyYW1lLT5maSA9IG1pbjs7IGZy
YW1lLT5maSsrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgUk1BVENIKDQyLCBmcmFtZS0+
ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05P
TUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgIGlmIChpc19tYXRjaCkgUlJFVFVSTjsK
ICAgICAgICAgICAgIEdFVENIQVJJTkMoZCwgZnJhbWUtPmVwdHIpOwogICAgICAgICAgICAgaWYg
KGZyYW1lLT5maSA+PSBmcmFtZS0+bWF4IHx8IGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVj
dCB8fCBmcmFtZS0+ZmMgPT0gZCkKLSAgICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENI
KTsKKyAgICAgICAgICAgICAgUlJFVFVSTjsKICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAg
ICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgZ2V0cyBoZXJlICovCkBAIC0xNTQyLDEzICsxNTM4LDEz
IEBAIGZvciAoOzspCiAgICAgICAgICAgZm9yKDs7KQogICAgICAgICAgICAgewogICAgICAgICAg
ICAgUk1BVENIKDQ0LCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAgICAg
ICBpZiAocnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgIGlm
IChpc19tYXRjaCkgUlJFVFVSTjsKICAgICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ci0tID09IGZy
YW1lLT5wcCkgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAq
LwogICAgICAgICAgICAgQkFDS0NIQVIoZnJhbWUtPmVwdHIpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgIH0KIAotICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICBSUkVU
VVJOOwogICAgICAgICB9CiAgICAgICB9CiAgICAgLyogQ29udHJvbCBuZXZlciBnZXRzIGhlcmUg
Ki8KQEAgLTE1NTcsMjYgKzE1NTMsMjYgQEAgZm9yICg7OykKICAgICBzaGFyZSBjb2RlLiBUaGlz
IGlzIHZlcnkgc2ltaWxhciB0byB0aGUgY29kZSBmb3Igc2luZ2xlIGNoYXJhY3RlcnMsIGJ1dCB3
ZQogICAgIHJlcGVhdCBpdCBpbiB0aGUgaW50ZXJlc3RzIG9mIGVmZmljaWVuY3kuICovCiAKLSAg
ICBjYXNlIE9QX1RZUEVFWEFDVDoKKyAgICBCRUdJTl9PUENPREUoVFlQRUVYQUNUKToKICAgICBt
aW4gPSBmcmFtZS0+bWF4ID0gR0VUMihmcmFtZS0+ZWNvZGUsIDEpOwogICAgIG1pbmltaXplID0g
VFJVRTsKICAgICBmcmFtZS0+ZWNvZGUgKz0gMzsKICAgICBnb3RvIFJFUEVBVFRZUEU7CiAKLSAg
ICBjYXNlIE9QX1RZUEVVUFRPOgotICAgIGNhc2UgT1BfVFlQRU1JTlVQVE86CisgICAgQkVHSU5f
T1BDT0RFKFRZUEVVUFRPKToKKyAgICBCRUdJTl9PUENPREUoVFlQRU1JTlVQVE8pOgogICAgIG1p
biA9IDA7CiAgICAgZnJhbWUtPm1heCA9IEdFVDIoZnJhbWUtPmVjb2RlLCAxKTsKICAgICBtaW5p
bWl6ZSA9ICpmcmFtZS0+ZWNvZGUgPT0gT1BfVFlQRU1JTlVQVE87CiAgICAgZnJhbWUtPmVjb2Rl
ICs9IDM7CiAgICAgZ290byBSRVBFQVRUWVBFOwogCi0gICAgY2FzZSBPUF9UWVBFU1RBUjoKLSAg
ICBjYXNlIE9QX1RZUEVNSU5TVEFSOgotICAgIGNhc2UgT1BfVFlQRVBMVVM6Ci0gICAgY2FzZSBP
UF9UWVBFTUlOUExVUzoKLSAgICBjYXNlIE9QX1RZUEVRVUVSWToKLSAgICBjYXNlIE9QX1RZUEVN
SU5RVUVSWToKKyAgICBCRUdJTl9PUENPREUoVFlQRVNUQVIpOgorICAgIEJFR0lOX09QQ09ERShU
WVBFTUlOU1RBUik6CisgICAgQkVHSU5fT1BDT0RFKFRZUEVQTFVTKToKKyAgICBCRUdJTl9PUENP
REUoVFlQRU1JTlBMVVMpOgorICAgIEJFR0lOX09QQ09ERShUWVBFUVVFUlkpOgorICAgIEJFR0lO
X09QQ09ERShUWVBFTUlOUVVFUlkpOgogICAgIGMgPSAqZnJhbWUtPmVjb2RlKysgLSBPUF9UWVBF
U1RBUjsKICAgICBtaW5pbWl6ZSA9IChjICYgMSkgIT0gMDsKICAgICBtaW4gPSByZXBfbWluW2Nd
OyAgICAgICAgICAgICAgICAgLyogUGljayB1cCB2YWx1ZXMgZnJvbSB0YWJsZXM7ICovCkBAIC0x
NTk4LDcgKzE1OTQsNyBAQCBmb3IgKDs7KQogICAgIGlzIHRpZGllci4gQWxzbyBzZXBhcmF0ZSB0
aGUgVUNQIGNvZGUsIHdoaWNoIGNhbiBiZSB0aGUgc2FtZSBmb3IgYm90aCBVVEYtOAogICAgIGFu
ZCBzaW5nbGUtYnl0ZXMuICovCiAKLSAgICBpZiAobWluID4gbWQtPmVuZF9zdWJqZWN0IC0gZnJh
bWUtPmVwdHIpIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgaWYgKG1pbiA+IG1kLT5lbmRf
c3ViamVjdCAtIGZyYW1lLT5lcHRyKSBSUkVUVVJOX05PX01BVENIOwogICAgIGlmIChtaW4gPiAw
KQogICAgICAgewogICAgICAgc3dpdGNoKGZyYW1lLT5jdHlwZSkKQEAgLTE2MDcsNyArMTYwMyw3
IEBAIGZvciAoOzspCiAgICAgICAgIGZvciAoaSA9IDE7IGkgPD0gbWluOyBpKyspCiAgICAgICAg
ICAgewogICAgICAgICAgIGlmIChmcmFtZS0+ZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QgfHwgSVNf
TkVXTElORSgqZnJhbWUtPmVwdHIpKQotICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENI
KTsKKyAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICAgICAgKytmcmFtZS0+ZXB0
cjsKICAgICAgICAgICB3aGlsZSAoZnJhbWUtPmVwdHIgPCBtZC0+ZW5kX3N1YmplY3QgJiYgSVNN
SURDSEFSKCpmcmFtZS0+ZXB0cikpIGZyYW1lLT5lcHRyKys7CiAgICAgICAgICAgfQpAQCAtMTYx
NiwxOSArMTYxMiwxOCBAQCBmb3IgKDs7KQogICAgICAgICBjYXNlIE9QX05PVF9ESUdJVDoKICAg
ICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKICAgICAgICAgICB7Ci0gICAgICAgICAg
aWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENI
KTsKKyAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJO
X05PX01BVENIOwogICAgICAgICAgIEdFVENIQVJJTkMoYywgZnJhbWUtPmVwdHIpOwotICAgICAg
ICAgIGlmIChjIDwgMTI4ICYmIChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGlnaXQpICE9IDApCi0g
ICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGlmIChpc0FTQ0lJ
RGlnaXQoYykpCisgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBPUF9ESUdJVDoKICAgICAgICAgZm9yIChpID0g
MTsgaSA8PSBtaW47IGkrKykKICAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKGZyYW1lLT5lcHRy
ID49IG1kLT5lbmRfc3ViamVjdCB8fAotICAgICAgICAgICAgICpmcmFtZS0+ZXB0ciA+PSAxMjgg
fHwgKG1kLT5jdHlwZXNbKmZyYW1lLT5lcHRyKytdICYgY3R5cGVfZGlnaXQpID09IDApCi0gICAg
ICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIGlmIChmcmFtZS0+ZXB0
ciA+PSBtZC0+ZW5kX3N1YmplY3QgfHwgIWlzQVNDSUlEaWdpdCgqZnJhbWUtPmVwdHIrKykpCisg
ICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAgICAgICAgIC8qIE5vIG5lZWQgdG8gc2tp
cCBtb3JlIGJ5dGVzIC0gd2Uga25vdyBpdCdzIGEgMS1ieXRlIGNoYXJhY3RlciAqLwogICAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0xNjM4LDcgKzE2MzMsNyBAQCBmb3IgKDs7KQogICAg
ICAgICAgIHsKICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8
CiAgICAgICAgICAgICAgKCpmcmFtZS0+ZXB0ciA8IDEyOCAmJiAobWQtPmN0eXBlc1sqZnJhbWUt
PmVwdHJdICYgY3R5cGVfc3BhY2UpICE9IDApKQotICAgICAgICAgICAgUlJFVFVSTihNQVRDSF9O
T01BVENIKTsKKyAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7CiAgICAgICAgICAgd2hpbGUg
KCsrZnJhbWUtPmVwdHIgPCBtZC0+ZW5kX3N1YmplY3QgJiYgSVNNSURDSEFSKCpmcmFtZS0+ZXB0
cikpOwogICAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0xNjQ4LDcgKzE2NDMsNyBAQCBm
b3IgKDs7KQogICAgICAgICAgIHsKICAgICAgICAgICBpZiAoZnJhbWUtPmVwdHIgPj0gbWQtPmVu
ZF9zdWJqZWN0IHx8CiAgICAgICAgICAgICAgKmZyYW1lLT5lcHRyID49IDEyOCB8fCAobWQtPmN0
eXBlc1sqZnJhbWUtPmVwdHIrK10gJiBjdHlwZV9zcGFjZSkgPT0gMCkKLSAgICAgICAgICAgIFJS
RVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAg
ICAgICAgIC8qIE5vIG5lZWQgdG8gc2tpcCBtb3JlIGJ5dGVzIC0gd2Uga25vdyBpdCdzIGEgMS1i
eXRlIGNoYXJhY3RlciAqLwogICAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0xNjU4LDcg
KzE2NTMsNyBAQCBmb3IgKDs7KQogICAgICAgICAgIHsKICAgICAgICAgICBpZiAoZnJhbWUtPmVw
dHIgPj0gbWQtPmVuZF9zdWJqZWN0IHx8CiAgICAgICAgICAgICAgKCpmcmFtZS0+ZXB0ciA8IDEy
OCAmJiAobWQtPmN0eXBlc1sqZnJhbWUtPmVwdHJdICYgY3R5cGVfd29yZCkgIT0gMCkpCi0gICAg
ICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgUlJFVFVSTl9OT19N
QVRDSDsKICAgICAgICAgICB3aGlsZSAoKytmcmFtZS0+ZXB0ciA8IG1kLT5lbmRfc3ViamVjdCAm
JiBJU01JRENIQVIoKmZyYW1lLT5lcHRyKSk7CiAgICAgICAgICAgfQogICAgICAgICBicmVhazsK
QEAgLTE2NjgsMTkgKzE2NjMsMjEgQEAgZm9yICg7OykKICAgICAgICAgICB7CiAgICAgICAgICAg
aWYgKGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVjdCB8fAogICAgICAgICAgICAgICpmcmFt
ZS0+ZXB0ciA+PSAxMjggfHwgKG1kLT5jdHlwZXNbKmZyYW1lLT5lcHRyKytdICYgY3R5cGVfd29y
ZCkgPT0gMCkKLSAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwogICAgICAgICAgIC8qIE5vIG5lZWQgdG8gc2tpcCBtb3JlIGJ5
dGVzIC0gd2Uga25vdyBpdCdzIGEgMS1ieXRlIGNoYXJhY3RlciAqLwogICAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgUlJFVFVSTihKU19SRUdF
WFBfRVJST1JfSU5URVJOQUwpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgUlJFVFVSTl9FUlJPUihKU1JlZ0V4cEVycm9ySW50ZXJuYWwpOwogICAgICAgICB9ICAvKiBF
bmQgc3dpdGNoKGZyYW1lLT5jdHlwZSkgKi8KICAgICAgIH0KIAogICAgIC8qIElmIG1pbiA9IG1h
eCwgY29udGludWUgYXQgdGhlIHNhbWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpbmcgKi8KIAotICAg
IGlmIChtaW4gPT0gZnJhbWUtPm1heCkgY29udGludWU7CisgICAgaWYgKG1pbiA9PSBmcmFtZS0+
bWF4KQorICAgICAgTkVYVF9PUENPREU7ICAgIAogCiAgICAgLyogSWYgbWluaW1pemluZywgd2Ug
aGF2ZSB0byB0ZXN0IHRoZSByZXN0IG9mIHRoZSBwYXR0ZXJuIGJlZm9yZSBlYWNoCiAgICAgc3Vi
c2VxdWVudCBtYXRjaC4gKi8KQEAgLTE2OTEsNDggKzE2ODgsNDkgQEAgZm9yICg7OykKICAgICAg
ICAgZm9yIChmcmFtZS0+ZmkgPSBtaW47OyBmcmFtZS0+ZmkrKykKICAgICAgICAgICB7CiAgICAg
ICAgICAgUk1BVENIKDQ4LCBmcmFtZS0+ZWNvZGUsIGZyYW1lLT5lcHRyYiwgMCk7Ci0gICAgICAg
ICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7Ci0gICAgICAgICAgaWYg
KGZyYW1lLT5maSA+PSBmcmFtZS0+bWF4IHx8IGZyYW1lLT5lcHRyID49IG1kLT5lbmRfc3ViamVj
dCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICBpZiAoaXNfbWF0Y2gpIFJSRVRV
Uk47CisgICAgICAgICAgaWYgKGZyYW1lLT5maSA+PSBmcmFtZS0+bWF4IHx8IGZyYW1lLT5lcHRy
ID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTjsKIAogICAgICAgICAgIEdFVENIQVJJTkMoYywg
ZnJhbWUtPmVwdHIpOwogICAgICAgICAgIHN3aXRjaChmcmFtZS0+Y3R5cGUpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICBjYXNlIE9QX0FOWToKLSAgICAgICAgICAgIGlmIChJU19ORVdMSU5F
KGMpKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgICAgaWYgKElTX05FV0xJTkUo
YykpIFJSRVRVUk47CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBPUF9O
T1RfRElHSVQ6Ci0gICAgICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQtPmN0eXBlc1tjXSAmIGN0
eXBlX2RpZ2l0KSAhPSAwKQotICAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwor
ICAgICAgICAgICAgaWYgKGlzQVNDSUlEaWdpdChjKSkKKyAgICAgICAgICAgICAgUlJFVFVSTjsK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE9QX0RJR0lUOgotICAgICAg
ICAgICAgaWYgKGMgPj0gMTI4IHx8IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfZGlnaXQpID09IDAp
Ci0gICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAgICBpZiAo
IWlzQVNDSUlEaWdpdChjKSkKKyAgICAgICAgICAgICAgUlJFVFVSTjsKICAgICAgICAgICAgIGJy
ZWFrOwogCiAgICAgICAgICAgICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgogICAgICAgICAgICAg
aWYgKGMgPCAxMjggJiYgKG1kLT5jdHlwZXNbY10gJiBjdHlwZV9zcGFjZSkgIT0gMCkKLSAgICAg
ICAgICAgICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKKyAgICAgICAgICAgICAgUlJFVFVSTjsK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE9QX1dISVRFU1BBQ0U6CiAg
ICAgICAgICAgICBpZiAgKGMgPj0gMTI4IHx8IChtZC0+Y3R5cGVzW2NdICYgY3R5cGVfc3BhY2Up
ID09IDApCi0gICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CisgICAgICAgICAg
ICAgIFJSRVRVUk47CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBPUF9O
T1RfV09SRENIQVI6CiAgICAgICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQtPmN0eXBlc1tjXSAm
IGN0eXBlX3dvcmQpICE9IDApCi0gICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7
CisgICAgICAgICAgICAgIFJSRVRVUk47CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgY2FzZSBPUF9XT1JEQ0hBUjoKICAgICAgICAgICAgIGlmIChjID49IDEyOCB8fCAobWQtPmN0
eXBlc1tjXSAmIGN0eXBlX3dvcmQpID09IDApCi0gICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hf
Tk9NQVRDSCk7CisgICAgICAgICAgICAgIFJSRVRVUk47CiAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJSRVRVUk4oSlNfUkVHRVhQX0VSUk9S
X0lOVEVSTkFMKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgUlJFVFVSTl9FUlJPUihKU1JlZ0V4cEVycm9ySW50ZXJuYWwpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTc0Niw3ICsxNzQ0LDYgQEAgZm9yICg7OykKICAg
ICAgIHsKICAgICAgIGZyYW1lLT5wcCA9IGZyYW1lLT5lcHRyOyAgLyogUmVtZW1iZXIgd2hlcmUg
d2Ugc3RhcnRlZCAqLwogCi0gICAgICAgIHsKICAgICAgICAgc3dpdGNoKGZyYW1lLT5jdHlwZSkK
ICAgICAgICAgICB7CiAgICAgICAgICAgY2FzZSBPUF9BTlk6CkBAIC0xNzg4LDcgKzE3ODUsNyBA
QCBmb3IgKDs7KQogICAgICAgICAgICAgaW50IGxlbiA9IDE7CiAgICAgICAgICAgICBpZiAoZnJh
bWUtPmVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKICAgICAgICAgICAgIEdFVENIQVJM
RU4oYywgZnJhbWUtPmVwdHIsIGxlbik7Ci0gICAgICAgICAgICBpZiAoYyA8IDEyOCAmJiAobWQt
PmN0eXBlc1tjXSAmIGN0eXBlX2RpZ2l0KSAhPSAwKSBicmVhazsKKyAgICAgICAgICAgIGlmIChp
c0FTQ0lJRGlnaXQoYykpIGJyZWFrOwogICAgICAgICAgICAgZnJhbWUtPmVwdHIrPSBsZW47CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgYnJlYWs7CkBAIC0xNzk5LDcgKzE3OTYsNyBAQCBmb3Ig
KDs7KQogICAgICAgICAgICAgaW50IGxlbiA9IDE7CiAgICAgICAgICAgICBpZiAoZnJhbWUtPmVw
dHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKICAgICAgICAgICAgIEdFVENIQVJMRU4oYywg
ZnJhbWUtPmVwdHIsIGxlbik7Ci0gICAgICAgICAgICBpZiAoYyA+PSAxMjggfHwobWQtPmN0eXBl
c1tjXSAmIGN0eXBlX2RpZ2l0KSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIGlmICghaXNBU0NJ
SURpZ2l0KGMpKSBicmVhazsKICAgICAgICAgICAgIGZyYW1lLT5lcHRyKz0gbGVuOwogICAgICAg
ICAgICAgfQogICAgICAgICAgIGJyZWFrOwpAQCAtMTg0OSw3ICsxODQ2LDggQEAgZm9yICg7OykK
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgUlJFVFVS
TihKU19SRUdFWFBfRVJST1JfSU5URVJOQUwpOworICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgIFJSRVRVUk5fRVJST1IoSlNSZWdFeHBFcnJvckludGVybmFsKTsKICAg
ICAgICAgICB9CiAKICAgICAgICAgLyogZnJhbWUtPmVwdHIgaXMgbm93IHBhc3QgdGhlIGVuZCBv
ZiB0aGUgbWF4aW11bSBydW4gKi8KQEAgLTE4NTcsMTkgKzE4NTUsMzQgQEAgZm9yICg7OykKICAg
ICAgICAgZm9yKDs7KQogICAgICAgICAgIHsKICAgICAgICAgICBSTUFUQ0goNTIsIGZyYW1lLT5l
Y29kZSwgZnJhbWUtPmVwdHJiLCAwKTsKLSAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05PTUFU
Q0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICBpZiAoaXNfbWF0Y2gpIFJSRVRVUk47CiAgICAg
ICAgICAgaWYgKGZyYW1lLT5lcHRyLS0gPT0gZnJhbWUtPnBwKSBicmVhazsgICAgICAgIC8qIFN0
b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCiAgICAgICAgICAgQkFDS0NIQVIoZnJhbWUt
PmVwdHIpOwogICAgICAgICAgIH0KLSAgICAgICAgfQogCiAgICAgICAvKiBHZXQgaGVyZSBpZiB3
ZSBjYW4ndCBtYWtlIGl0IG1hdGNoIHdpdGggYW55IHBlcm1pdHRlZCByZXBldGl0aW9ucyAqLwog
Ci0gICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgUlJFVFVSTjsKICAgICAgIH0K
ICAgICAvKiBDb250cm9sIG5ldmVyIGdldHMgaGVyZSAqLwogCisgICAgQkVHSU5fT1BDT0RFKEJS
QU5VTUJFUik6CisgICAgQkVHSU5fT1BDT0RFKENSTUlOUExVUyk6CisgICAgQkVHSU5fT1BDT0RF
KENSTUlOUVVFUlkpOgorICAgIEJFR0lOX09QQ09ERShDUk1JTlJBTkdFKToKKyAgICBCRUdJTl9P
UENPREUoQ1JNSU5TVEFSKToKKyAgICBCRUdJTl9PUENPREUoQ1JQTFVTKToKKyAgICBCRUdJTl9P
UENPREUoQ1JRVUVSWSk6CisgICAgQkVHSU5fT1BDT0RFKENSUkFOR0UpOgorICAgIEJFR0lOX09Q
Q09ERShDUlNUQVIpOgorICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICBSUkVUVVJO
X0VSUk9SKEpTUmVnRXhwRXJyb3JJbnRlcm5hbCk7CisKKyNpZmRlZiBVU0VfQ09NUFVURURfR09U
T19GT1JfTUFUQ0hfT1BDT0RFX0xPT1AKKyAgICBDQVBUVVJJTkdfQlJBQ0tFVDoKKyNlbHNlCiAg
ICAgZGVmYXVsdDoKKyNlbmRpZgogICAgICAgLyogT3BlbmluZyBjYXB0dXJpbmcgYnJhY2tldC4g
SWYgdGhlcmUgaXMgc3BhY2UgaW4gdGhlIG9mZnNldCB2ZWN0b3IsIHNhdmUKICAgICAgIHRoZSBj
dXJyZW50IHN1YmplY3QgcG9zaXRpb24gaW4gdGhlIHdvcmtpbmcgc2xvdCBhdCB0aGUgdG9wIG9m
IHRoZSB2ZWN0b3IuIFdlCiAgICAgICBtdXN0bid0IGNoYW5nZSB0aGUgY3VycmVudCB2YWx1ZXMg
b2YgdGhlIGRhdGEgc2xvdCwgYmVjYXVzZSB0aGV5IG1heSBiZSBzZXQKQEAgLTE4ODQsOCArMTg5
Nyw4IEBAIGZvciAoOzspCiAgICAgICBub24tY2FwdHVyaW5nIGJyYWNrZXQuIERvbid0IHdvcnJ5
IGFib3V0IHNldHRpbmcgdGhlIGZsYWcgZm9yIHRoZSBlcnJvciBjYXNlCiAgICAgICBoZXJlOyB0
aGF0IGlzIGhhbmRsZWQgaW4gdGhlIGNvZGUgZm9yIEtFVC4gKi8KIAotICAgICAgaWYgKCpmcmFt
ZS0+ZWNvZGUgPiBPUF9CUkEpCi0gICAgICAgIHsKKyAgICAgIEFTU0VSVCgqZnJhbWUtPmVjb2Rl
ID4gT1BfQlJBKTsKKwogICAgICAgICBmcmFtZS0+bnVtYmVyID0gKmZyYW1lLT5lY29kZSAtIE9Q
X0JSQTsKIAogICAgICAgICAvKiBGb3IgZXh0ZW5kZWQgZXh0cmFjdGlvbiBicmFja2V0cyAobGFy
Z2UgbnVtYmVyKSwgd2UgaGF2ZSB0byBmaXNoIG91dCB0aGUKQEAgLTE5MDQsNyArMTkxNyw3IEBA
IGZvciAoOzspCiAgICAgICAgIGlmIChmcmFtZS0+b2Zmc2V0IDwgbWQtPm9mZnNldF9tYXgpCiAg
ICAgICAgICAgewogICAgICAgICAgIGZyYW1lLT5zYXZlX29mZnNldDEgPSBtZC0+b2Zmc2V0X3Zl
Y3RvcltmcmFtZS0+b2Zmc2V0XTsKLSAgICAgICAgICBmcmFtZS0+c2F2ZV9vZmZzZXQyID0gbWQt
Pm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldCsxXTsKKyAgICAgICAgICBmcmFtZS0+c2F2ZV9v
ZmZzZXQyID0gbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldCArIDFdOwogICAgICAgICAg
IGZyYW1lLT5zYXZlX29mZnNldDMgPSBtZC0+b2Zmc2V0X3ZlY3RvclttZC0+b2Zmc2V0X2VuZCAt
IGZyYW1lLT5udW1iZXJdOwogCiAgICAgICAgICAgRFBSSU5URigoInNhdmluZyAlZCAlZCAlZFxu
IiwgZnJhbWUtPnNhdmVfb2Zmc2V0MSwgZnJhbWUtPnNhdmVfb2Zmc2V0MiwgZnJhbWUtPnNhdmVf
b2Zmc2V0MykpOwpAQCAtMTkxMyw3ICsxOTI2LDcgQEAgZm9yICg7OykKICAgICAgICAgICBkbwog
ICAgICAgICAgICAgewogICAgICAgICAgICAgUk1BVENIKDEsIGZyYW1lLT5lY29kZSArIDEgKyBM
SU5LX1NJWkUsIGZyYW1lLT5lcHRyYiwgbWF0Y2hfaXNncm91cCk7Ci0gICAgICAgICAgICBpZiAo
cnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKKyAgICAgICAgICAgIGlmIChpc19t
YXRjaCkgUlJFVFVSTjsKICAgICAgICAgICAgIGZyYW1lLT5lY29kZSArPSBHRVQoZnJhbWUtPmVj
b2RlLCAxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICB3aGlsZSAoKmZyYW1lLT5lY29kZSA9
PSBPUF9BTFQpOwpAQCAtMTkyMSwzOCArMTkzNCwzMSBAQCBmb3IgKDs7KQogICAgICAgICAgIERQ
UklOVEYoKCJicmFja2V0ICVkIGZhaWxlZFxuIiwgZnJhbWUtPm51bWJlcikpOwogCiAgICAgICAg
ICAgbWQtPm9mZnNldF92ZWN0b3JbZnJhbWUtPm9mZnNldF0gPSBmcmFtZS0+c2F2ZV9vZmZzZXQx
OwotICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXQrMV0gPSBmcmFtZS0+
c2F2ZV9vZmZzZXQyOworICAgICAgICAgIG1kLT5vZmZzZXRfdmVjdG9yW2ZyYW1lLT5vZmZzZXQg
KyAxXSA9IGZyYW1lLT5zYXZlX29mZnNldDI7CiAgICAgICAgICAgbWQtPm9mZnNldF92ZWN0b3Jb
bWQtPm9mZnNldF9lbmQgLSBmcmFtZS0+bnVtYmVyXSA9IGZyYW1lLT5zYXZlX29mZnNldDM7CiAK
LSAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOworICAgICAgICAgIFJSRVRVUk47CiAg
ICAgICAgICAgfQogCiAgICAgICAgIC8qIEluc3VmZmljaWVudCByb29tIGZvciBzYXZpbmcgY2Fw
dHVyZWQgY29udGVudHMgKi8KIAogICAgICAgICBnb3RvIE5PTl9DQVBUVVJJTkdfQlJBQ0tFVDsK
LSAgICAgICAgfQotCi0gICAgLyogVGhlcmUncyBiZWVuIHNvbWUgaG9ycmlibGUgZGlzYXN0ZXIu
IFNpbmNlIGFsbCBjb2RlcyA+IE9QX0JSQSBhcmUKLSAgICBmb3IgY2FwdHVyaW5nIGJyYWNrZXRz
LCBhbmQgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBnYXBzIGJldHdlZW4gMCBhbmQKLSAgICBPUF9C
UkEsIGFycml2YWwgaGVyZSBjYW4gb25seSBtZWFuIHRoZXJlIGlzIHNvbWV0aGluZyBzZXJpb3Vz
bHkgd3JvbmcKLSAgICBpbiB0aGUgY29kZSBhYm92ZSBvciB0aGUgT1BfeHh4IGRlZmluaXRpb25z
LiAqLwotCi0gICAgRFBSSU5URigoIlVua25vd24gb3Bjb2RlICVkXG4iLCAqZnJhbWUtPmVjb2Rl
KSk7Ci0gICAgUlJFVFVSTihKU19SRUdFWFBfRVJST1JfSU5URVJOQUwpOwogICAgIH0KIAogICAv
KiBEbyBub3Qgc3RpY2sgYW55IGNvZGUgaW4gaGVyZSB3aXRob3V0IG11Y2ggdGhvdWdodDsgaXQg
aXMgYXNzdW1lZAogICB0aGF0ICJjb250aW51ZSIgaW4gdGhlIGNvZGUgYWJvdmUgY29tZXMgb3V0
IHRvIGhlcmUgdG8gcmVwZWF0IHRoZSBtYWluCiAgIGxvb3AuICovCiAKLSAgfSAgICAgICAgICAg
ICAvKiBFbmQgb2YgbWFpbiBsb29wICovCisgIH0gLyogRW5kIG9mIG1haW4gbG9vcCAqLworCiAv
KiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwogCi0jaWZuZGVmIF9fR05VQ19fCisjaWZu
ZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9SRUNVUlNJT04KIAogUlJFVFVSTl9TV0lU
Q0g6CiBzd2l0Y2ggKGZyYW1lLT53aGVyZSkKICAgeworICBjYXNlIDA6IGdvdG8gUkVUVVJOOwog
ICBjYXNlIDE6IGdvdG8gUlJFVFVSTl8xOwogICBjYXNlIDI6IGdvdG8gUlJFVFVSTl8yOwogICBj
YXNlIDY6IGdvdG8gUlJFVFVSTl82OwpAQCAtMTk4NywxMCArMTk5MywyMCBAQCBzd2l0Y2ggKGZy
YW1lLT53aGVyZSkKICAgfQogCiBhYm9ydCgpOwotcmV0dXJuIDA7CitSUkVUVVJOX0VSUk9SKEpT
UmVnRXhwRXJyb3JJbnRlcm5hbCk7CiAKICNlbmRpZgogCitSRVRVUk46CisgICAgcmV0dXJuIGlz
X21hdGNoID8gTUFUQ0hfTUFUQ0ggOiBNQVRDSF9OT01BVENIOworCitSRVRVUk5fRVJST1I6Cisg
ICAgd2hpbGUgKCEoZnJhbWUgPj0gc3RhY2tmcmFtZXMgJiYgZnJhbWUgPCBzdGFja2ZyYW1lc2Vu
ZCkpIHsKKyAgICAgICAgbmV3ZnJhbWUgPSBmcmFtZS0+cHJldmZyYW1lOworICAgICAgICBkZWxl
dGUgZnJhbWU7CisgICAgICAgIGZyYW1lID0gbmV3ZnJhbWU7CisgICAgfQorICAgIHJldHVybiBp
OwogfQogCiAKQEAgLTIwMjAsNyArMjAzNiw3IEBAIFJldHVybnM6ICAgICAgICAgID4gMCA9PiBz
dWNjZXNzOyB2YWx1ZSAKIAogaW50CiBqc1JlZ0V4cEV4ZWN1dGUoY29uc3QgcGNyZSAqYXJndW1l
bnRfcmUsCi0gIGNvbnN0IEpTUmVnRXhwQ2hhciogc3ViamVjdCwgaW50IGxlbmd0aCwgaW50IHN0
YXJ0X29mZnNldCwgaW50ICpvZmZzZXRzLAorICBjb25zdCBVQ2hhciogc3ViamVjdCwgaW50IGxl
bmd0aCwgaW50IHN0YXJ0X29mZnNldCwgaW50ICpvZmZzZXRzLAogICBpbnQgb2Zmc2V0Y291bnQp
CiB7CiBpbnQgcmMsIHJlc2V0Y291bnQsIG9jb3VudDsKQEAgLTIwNzUsOCArMjA5MSw4IEBAIG9j
b3VudCA9IG9mZnNldGNvdW50IC0gKG9mZnNldGNvdW50ICUgMykKIGlmIChyZS0+dG9wX2JhY2ty
ZWYgPiAwICYmIHJlLT50b3BfYmFja3JlZiA+PSBvY291bnQvMykKICAgewogICBvY291bnQgPSBy
ZS0+dG9wX2JhY2tyZWYgKiAzICsgMzsKLSAgbWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciA9IChp
bnQgKikocGNyZV9tYWxsb2MpKG9jb3VudCAqIHNpemVvZihpbnQpKTsKLSAgaWYgKG1hdGNoX2Js
b2NrLm9mZnNldF92ZWN0b3IgPT0gTlVMTCkgcmV0dXJuIEpTX1JFR0VYUF9FUlJPUl9OT01FTU9S
WTsKKyAgbWF0Y2hfYmxvY2sub2Zmc2V0X3ZlY3RvciA9IG5ldyBpbnRbb2NvdW50XTsKKyAgaWYg
KG1hdGNoX2Jsb2NrLm9mZnNldF92ZWN0b3IgPT0gTlVMTCkgcmV0dXJuIEpTUmVnRXhwRXJyb3JO
b01lbW9yeTsKICAgdXNpbmdfdGVtcG9yYXJ5X29mZnNldHMgPSBUUlVFOwogICBEUFJJTlRGKCgi
R290IG1lbW9yeSB0byBob2xkIGJhY2sgcmVmZXJlbmNlc1xuIikpOwogICB9CkBAIC0yMTEwLDE0
ICsyMTI2LDEyIEBAIGF0IHJ1biB0aW1lLCBzbyB3ZSBoYXZlIHRvIHRlc3QgZm9yIGFuY2gKIGFu
IHVuYW5jaG9yZWQgcGF0dGVybiwgb2YgY291cnNlLiBJZiB0aGVyZSdzIG5vIGZpcnN0IGNoYXIg
YW5kIHRoZSBwYXR0ZXJuIHdhcwogc3R1ZGllZCwgdGhlcmUgbWF5IGJlIGEgYml0bWFwIG9mIHBv
c3NpYmxlIGZpcnN0IGNoYXJhY3RlcnMuICovCiAKLSAgewogICBpZiAoKHJlLT5vcHRpb25zICYg
UENSRV9GSVJTVFNFVCkgIT0gMCkKICAgICB7CiAgICAgZmlyc3RfYnl0ZSA9IHJlLT5maXJzdF9i
eXRlICYgMjU1OwogICAgIGlmICgoZmlyc3RfYnl0ZV9jYXNlbGVzcyA9ICgocmUtPmZpcnN0X2J5
dGUgJiBSRVFfQ0FTRUxFU1MpICE9IDApKSA9PSBUUlVFKQogICAgICAgZmlyc3RfYnl0ZSA9IG1h
dGNoX2Jsb2NrLmxjY1tmaXJzdF9ieXRlXTsKICAgICB9Ci0gIH0KIAogLyogRm9yIGFuY2hvcmVk
IG9yIHVuYW5jaG9yZWQgbWF0Y2hlcywgdGhlcmUgbWF5IGJlIGEgImxhc3Qga25vd24gcmVxdWly
ZWQKIGNoYXJhY3RlciIgc2V0LiAqLwpAQCAtMjI1Myw3ICsyMjY3LDYgQEAgZG8KICAgdGhvc2Ug
YmFjayByZWZlcmVuY2VzIHRoYXQgd2UgY2FuLiBJbiB0aGlzIGNhc2UgdGhlcmUgbmVlZCBub3Qg
YmUgb3ZlcmZsb3cKICAgaWYgY2VydGFpbiBwYXJ0cyBvZiB0aGUgcGF0dGVybiB3ZXJlIG5vdCB1
c2VkLiAqLwogCi0gIG1hdGNoX2Jsb2NrLnN0YXJ0X21hdGNoID0gc3RhcnRfbWF0Y2g7CiAgIG1h
dGNoX2Jsb2NrLm1hdGNoX2NhbGxfY291bnQgPSAwOwogCiAgIHJjID0gbWF0Y2goc3RhcnRfbWF0
Y2gsIHN0YXJ0X2NvZGUsIDIsICZtYXRjaF9ibG9jayk7CkBAIC0yMjk0LDcgKzIzMDcsNyBAQCBk
bwogICAgICAgbWF0Y2hfYmxvY2sub2Zmc2V0X292ZXJmbG93ID0gVFJVRTsKIAogICAgIERQUklO
VEYoKCJGcmVlaW5nIHRlbXBvcmFyeSBtZW1vcnlcbiIpKTsKLSAgICAocGNyZV9mcmVlKShtYXRj
aF9ibG9jay5vZmZzZXRfdmVjdG9yKTsKKyAgICBkZWxldGUgW10gbWF0Y2hfYmxvY2sub2Zmc2V0
X3ZlY3RvcjsKICAgICB9CiAKICAgcmMgPSBtYXRjaF9ibG9jay5vZmZzZXRfb3ZlcmZsb3c/IDAg
OiBtYXRjaF9ibG9jay5lbmRfb2Zmc2V0X3RvcC8yOwpAQCAtMjMxNiwxMSArMjMyOSw5IEBAIHdo
aWxlIChzdGFydF9tYXRjaCA8PSBlbmRfc3ViamVjdCk7CiBpZiAodXNpbmdfdGVtcG9yYXJ5X29m
ZnNldHMpCiAgIHsKICAgRFBSSU5URigoIkZyZWVpbmcgdGVtcG9yYXJ5IG1lbW9yeVxuIikpOwot
ICAocGNyZV9mcmVlKShtYXRjaF9ibG9jay5vZmZzZXRfdmVjdG9yKTsKKyAgZGVsZXRlIFtdIG1h
dGNoX2Jsb2NrLm9mZnNldF92ZWN0b3I7CiAgIH0KIAogICBEUFJJTlRGKCgiPj4+PiByZXR1cm5p
bmcgUENSRV9FUlJPUl9OT01BVENIXG4iKSk7Ci0gIHJldHVybiBKU19SRUdFWFBfRVJST1JfTk9N
QVRDSDsKKyAgcmV0dXJuIEpTUmVnRXhwRXJyb3JOb01hdGNoOwogfQotCi0vKiBFbmQgb2YgcGNy
ZV9leGVjLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCShyZXZpc2lv
biAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDE0ICsxLDEyIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJl
c3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisvKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENS
RSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQ
Q1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhp
cyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVy
ZXMKK3JlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFu
ZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRo
ZSByZXN0IG9mIFdlYktpdC4KIAotCi0vKiBQQ1JFIGlzIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMg
dG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25zIHdob3NlIHN5bnRheAotYW5kIHNlbWFudGlj
cyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFn
ZS4KLQotICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorICAg
ICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCiAgICAgICAg
ICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAg
ICAgICAgIENvcHlyaWdodCAoYykgMjAwNCwgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLgorICAg
IENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTUzLDIw
ICs1MSw0MyBAQCBmdW5jdGlvbnMgd2hvc2UgbmFtZXMgYWxsIGJlZ2luIHdpdGggIl9wCiAjcHJh
Z21hIHdhcm5pbmcoZGlzYWJsZTogNDI0NCkKICNlbmRpZgogCi0jZGVmaW5lIF9wY3JlX09QX2xl
bmd0aHMga2pzX3BjcmVfT1BfbGVuZ3RocworLyogVGhlIHZhbHVlIG9mIExJTktfU0laRSBkZXRl
cm1pbmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdXNlZCB0byBzdG9yZSBsaW5rcyBhcworb2Zmc2V0
cyB3aXRoaW4gdGhlIGNvbXBpbGVkIHJlZ2V4LiBUaGUgZGVmYXVsdCBpcyAyLCB3aGljaCBhbGxv
d3MgZm9yIGNvbXBpbGVkCitwYXR0ZXJucyB1cCB0byA2NEsgbG9uZy4gVGhpcyBjb3ZlcnMgdGhl
IHZhc3QgbWFqb3JpdHkgb2YgY2FzZXMuIEhvd2V2ZXIsIFBDUkUKK2NhbiBhbHNvIGJlIGNvbXBp
bGVkIHRvIHVzZSAzIG9yIDQgYnl0ZXMgaW5zdGVhZC4gVGhpcyBhbGxvd3MgZm9yIGxvbmdlcgor
cGF0dGVybnMgaW4gZXh0cmVtZSBjYXNlcy4gT24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQsICJj
b25maWd1cmUiIGNhbiBiZSB1c2VkCit0byBvdmVycmlkZSB0aGlzIGRlZmF1bHQuICovCisKKyNk
ZWZpbmUgTElOS19TSVpFICAgMgorCisvKiBUaGUgdmFsdWUgb2YgTUFUQ0hfTElNSVQgZGV0ZXJt
aW5lcyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgdGltZXMgdGhlIGludGVybmFsCittYXRjaCgpIGZ1
bmN0aW9uIGNhbiBiZSBjYWxsZWQgZHVyaW5nIGEgc2luZ2xlIGV4ZWN1dGlvbiBvZiBwY3JlX2V4
ZWMoKS4gVGhlcmUKK2lzIGEgcnVudGltZSBpbnRlcmZhY2UgZm9yIHNldHRpbmcgYSBkaWZmZXJl
bnQgbGltaXQuIFRoZSBsaW1pdCBleGlzdHMgaW4gb3JkZXIKK3RvIGNhdGNoIHJ1bmF3YXkgcmVn
dWxhciBleHByZXNzaW9ucyB0aGF0IHRha2UgZm9yIGV2ZXIgdG8gZGV0ZXJtaW5lIHRoYXQgdGhl
eQorZG8gbm90IG1hdGNoLiBUaGUgZGVmYXVsdCBpcyBzZXQgdmVyeSBsYXJnZSBzbyB0aGF0IGl0
IGRvZXMgbm90IGFjY2lkZW50YWxseQorY2F0Y2ggbGVnaXRpbWF0ZSBjYXNlcy4gT24gc3lzdGVt
cyB0aGF0IHN1cHBvcnQgaXQsICJjb25maWd1cmUiIGNhbiBiZSB1c2VkIHRvCitvdmVycmlkZSB0
aGlzIGRlZmF1bHQgZGVmYXVsdC4gKi8KKworI2RlZmluZSBNQVRDSF9MSU1JVCAxMDAwMDAwMAor
CisvKiBUaGUgYWJvdmUgbGltaXQgYXBwbGllcyB0byBhbGwgY2FsbHMgb2YgbWF0Y2goKSwgd2hl
dGhlciBvciBub3QgdGhleQoraW5jcmVhc2UgdGhlIHJlY3Vyc2lvbiBkZXB0aC4gSW4gc29tZSBl
bnZpcm9ubWVudHMgaXQgaXMgZGVzaXJhYmxlIHRvIGxpbWl0IHRoZQorZGVwdGggb2YgcmVjdXJz
aXZlIGNhbGxzIG9mIG1hdGNoKCkgbW9yZSBzdHJpY3RseSwgaW4gb3JkZXIgdG8gcmVzdHJpY3Qg
dGhlCittYXhpbXVtIGFtb3VudCBvZiBzdGFjayAob3IgaGVhcCwgaWYgTk9fUkVDVVJTRSBpcyBk
ZWZpbmVkKSB0aGF0IGlzIHVzZWQuIFRoZQordmFsdWUgb2YgTUFUQ0hfTElNSVRfUkVDVVJTSU9O
IGFwcGxpZXMgb25seSB0byByZWN1cnNpdmUgY2FsbHMgb2YgbWF0Y2goKS4gVG8KK2hhdmUgYW55
IHVzZWZ1bCBlZmZlY3QsIGl0IG11c3QgYmUgbGVzcyB0aGFuIHRoZSB2YWx1ZSBvZiBNQVRDSF9M
SU1JVC4gVGhlcmUgaXMKK2EgcnVudGltZSBtZXRob2QgZm9yIHNldHRpbmcgYSBkaWZmZXJlbnQg
bGltaXQuIE9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGl0LAorImNvbmZpZ3VyZSIgY2FuIGJlIHVz
ZWQgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGRlZmF1bHQuICovCisKKyNkZWZpbmUgTUFUQ0hf
TElNSVRfUkVDVVJTSU9OIE1BVENIX0xJTUlUCisKICNkZWZpbmUgX3BjcmVfZGVmYXVsdF90YWJs
ZXMga2pzX3BjcmVfZGVmYXVsdF90YWJsZXMKICNkZWZpbmUgX3BjcmVfb3JkMnV0Zjgga2pzX3Bj
cmVfb3JkMnV0ZjgKLSNkZWZpbmUgX3BjcmVfcHJpbnRpbnQga2pzX3BjcmVfcHJpbnRpbnQKLSNk
ZWZpbmUgX3BjcmVfdHJ5X2ZsaXBwZWQga2pzX3BjcmVfdHJ5X2ZsaXBwZWQKLSNkZWZpbmUgX3Bj
cmVfdWNwX2ZpbmRjaGFyIGtqc19wY3JlX3VjcF9maW5kY2hhcgogI2RlZmluZSBfcGNyZV91dGY4
X3RhYmxlMSBranNfcGNyZV91dGY4X3RhYmxlMQogI2RlZmluZSBfcGNyZV91dGY4X3RhYmxlMV9z
aXplICBranNfcGNyZV91dGY4X3RhYmxlMV9zaXplCiAjZGVmaW5lIF9wY3JlX3V0ZjhfdGFibGUy
IGtqc19wY3JlX3V0ZjhfdGFibGUyCiAjZGVmaW5lIF9wY3JlX3V0ZjhfdGFibGUzIGtqc19wY3Jl
X3V0ZjhfdGFibGUzCiAjZGVmaW5lIF9wY3JlX3V0ZjhfdGFibGU0IGtqc19wY3JlX3V0ZjhfdGFi
bGU0Ci0jZGVmaW5lIF9wY3JlX3V0dCBranNfcGNyZV91dHQKLSNkZWZpbmUgX3BjcmVfdXR0X3Np
emUga2pzX3BjcmVfdXR0X3NpemUKLSNkZWZpbmUgX3BjcmVfdmFsaWRfdXRmOCBranNfcGNyZV92
YWxpZF91dGY4CiAjZGVmaW5lIF9wY3JlX3hjbGFzcyBranNfcGNyZV94Y2xhc3MKIAogLyogRGVm
aW5lIERFQlVHIHRvIGdldCBkZWJ1Z2dpbmcgb3V0cHV0IG9uIHN0ZG91dC4gKi8KQEAgLTg2LDEx
ICsxMDcsNiBAQCBhbGwsIGl0IGhhZCBvbmx5IGJlZW4gYWJvdXQgMTAgeWVhcnMgdGhlCiAjZGVm
aW5lIERQUklOVEYocCkgLypub3RoaW5nKi8KICNlbmRpZgogCi0KLS8qIEdldCB0aGUgZGVmaW5p
dGlvbnMgcHJvdmlkZWQgYnkgcnVubmluZyAiY29uZmlndXJlIiAqLwotCi0jaW5jbHVkZSAicGNy
ZS1jb25maWcuaCIKLQogLyogU3RhbmRhcmQgQyBoZWFkZXJzIHBsdXMgdGhlIGV4dGVybmFsIGlu
dGVyZmFjZSBkZWZpbml0aW9uLiBUaGUgb25seSB0aW1lCiBzZXRqbXAgYW5kIHN0ZGFyZyBhcmUg
dXNlZCBpcyB3aGVuIE5PX1JFQ1VSU0UgaXMgc2V0LiAqLwogCkBAIC0xMTQsMTkgKzEzMCw5IEBA
IHR5cGVkZWYgdW5zaWduZWQgY2hhciB1c2NoYXI7CiAKIHR5cGVkZWYgSlNSZWdFeHAgcGNyZTsK
IAotdHlwZWRlZiBKU1JlZ0V4cENoYXIgcGNyZV9jaGFyOwotdHlwZWRlZiBKU1JlZ0V4cENoYXIg
cGNyZV91Y2hhcjsKLXR5cGVkZWYgY29uc3QgSlNSZWdFeHBDaGFyKiBVU1BUUjsKLQotLyogVGVt
cG9yYXJ5IGZhc3RNYWxsb2MvZmFzdEZyZWUgdW50aWwgd2UgcG9ydCB0byBDKysuICovCi0jaWZk
ZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi1leHRlcm4gdm9pZCogKCpwY3Jl
X21hbGxvYykoc2l6ZV90KTsKLWV4dGVybiB2b2lkICgqcGNyZV9mcmVlKSh2b2lkKik7Ci0jaWZk
ZWYgX19jcGx1c3BsdXMKLX0gLyogZXh0ZXJuICJDIiAqLwotI2VuZGlmCit0eXBlZGVmIFVDaGFy
IHBjcmVfY2hhcjsKK3R5cGVkZWYgVUNoYXIgcGNyZV91Y2hhcjsKK3R5cGVkZWYgY29uc3QgVUNo
YXIqIFVTUFRSOwogCiAvKiBQQ1JFIGtlZXBzIG9mZnNldHMgaW4gaXRzIGNvbXBpbGVkIGNvZGUg
YXMgMi1ieXRlIHF1YW50aXRpZXMgKGFsd2F5cyBzdG9yZWQKIGluIGJpZy1lbmRpYW4gb3JkZXIp
IGJ5IGRlZmF1bHQuIFRoZXNlIGFyZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gbGluayBmcm9tIHRo
ZQpAQCAtMjg2LDMxICsyOTIsMTQgQEAgaWYgKChjICYgMHhjMCkgPT0gMHhjMCkgXAogCiAjZGVm
aW5lIElTTUlEQ0hBUihjKSBJU19UUkFJTElOR19TVVJST0dBVEUoYykKIAotLyogSWYgdGhlIHBv
aW50ZXIgaXMgbm90IGF0IHRoZSBzdGFydCBvZiBhIGNoYXJhY3RlciwgbW92ZSBpdCBiYWNrIHVu
dGlsCi1pdCBpcy4gQ2FsbGVkIG9ubHkgaW4gVVRGLTggbW9kZS4gKi8KLQogI2RlZmluZSBCQUNL
Q0hBUihlcHRyKSB3aGlsZShJU01JRENIQVIoKmVwdHIpKSBlcHRyLS07CiAKLQotLyogSW4gY2Fz
ZSB0aGVyZSBpcyBubyBkZWZpbml0aW9uIG9mIG9mZnNldG9mKCkgcHJvdmlkZWQgLSB0aG91Z2gg
YW55IHByb3BlcgotU3RhbmRhcmQgQyBzeXN0ZW0gc2hvdWxkIGhhdmUgb25lLiAqLwotCi0jaWZu
ZGVmIG9mZnNldG9mCi0jZGVmaW5lIG9mZnNldG9mKHBfdHlwZSxmaWVsZCkgKChzaXplX3QpJigo
KHBfdHlwZSAqKTApLT5maWVsZCkpCi0jZW5kaWYKLQotCi0vKiBQcml2YXRlIG9wdGlvbnMgZmxh
Z3Mgc3RhcnQgYXQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZW5kIG9mIHRoZSBmb3VyIGJ5dGVzLAot
YnV0IHNraXAgdGhlIHRvcCBiaXQgc28gd2UgY2FuIHVzZSBpbnRzIGZvciBjb252ZW5pZW5jZSB3
aXRob3V0IGdldHRpbmcgdGFuZ2xlZAotd2l0aCBuZWdhdGl2ZSB2YWx1ZXMuIFRoZSBwdWJsaWMg
b3B0aW9ucyBkZWZpbmVkIGluIHBjcmUuaCBzdGFydCBhdCB0aGUgbGVhc3QKLXNpZ25pZmljYW50
IGVuZC4gTWFrZSBzdXJlIHRoZXkgZG9uJ3Qgb3ZlcmxhcCEgKi8KLQogI2RlZmluZSBQQ1JFX0ZJ
UlNUU0VUICAgICAgMHg0MDAwMDAwMCAgLyogZmlyc3RfYnl0ZSBpcyBzZXQgKi8KICNkZWZpbmUg
UENSRV9SRVFDSFNFVCAgICAgIDB4MjAwMDAwMDAgIC8qIHJlcV9ieXRlIGlzIHNldCAqLwogI2Rl
ZmluZSBQQ1JFX1NUQVJUTElORSAgICAgMHgxMDAwMDAwMCAgLyogc3RhcnQgYWZ0ZXIgXG4gZm9y
IG11bHRpbGluZSAqLwogI2RlZmluZSBQQ1JFX0FOQ0hPUkVEICAgICAgMHgwMjAwMDAwMCAgLyog
Y2FuJ3QgdXNlIHBhcnRpYWwgd2l0aCB0aGlzIHJlZ2V4ICovCi0jZGVmaW5lIFBDUkVfQ0FTRUxF
U1MgICAgICBKU19SRUdFWFBfQ0FTRUxFU1MKLSNkZWZpbmUgUENSRV9NVUxUSUxJTkUgICAgIEpT
X1JFR0VYUF9NVUxUSUxJTkUKKyNkZWZpbmUgUENSRV9DQVNFTEVTUyAgICAgIDB4MDAwMDAwMDEK
KyNkZWZpbmUgUENSRV9NVUxUSUxJTkUgICAgIDB4MDAwMDAwMDIKIAogLyogTmVnYXRpdmUgdmFs
dWVzIGZvciB0aGUgZmlyc3RjaGFyIGFuZCByZXFjaGFyIHZhcmlhYmxlcyAqLwogCkBAIC0zNjQs
MTA0ICszNTMsOTAgQEAgT1BfRU9EIG11c3QgY29ycmVzcG9uZCBpbiBvcmRlciB0byB0aGUgbAog
Tm90ZSB0aGF0IHdoZW5ldmVyIHRoaXMgbGlzdCBpcyB1cGRhdGVkLCB0aGUgdHdvIG1hY3JvIGRl
ZmluaXRpb25zIHRoYXQgZm9sbG93CiBtdXN0IGFsc28gYmUgdXBkYXRlZCB0byBtYXRjaC4gKi8K
IAotZW51bSB7Ci0gIE9QX0VORCwgICAgICAgICAgICAgICAgICAgLyogRW5kIG9mIHBhdHRlcm4g
Ki8KKyNkZWZpbmUgRk9SX0VBQ0hfT1BDT0RFKG1hY3JvKSBcCisgICAgbWFjcm8oRU5EKSBcCisg
ICAgXAorICAgIG1hY3JvKE5PVF9XT1JEX0JPVU5EQVJZKSBcCisgICAgbWFjcm8oV09SRF9CT1VO
REFSWSkgXAorICAgIG1hY3JvKE5PVF9ESUdJVCkgXAorICAgIG1hY3JvKERJR0lUKSBcCisgICAg
bWFjcm8oTk9UX1dISVRFU1BBQ0UpIFwKKyAgICBtYWNybyhXSElURVNQQUNFKSBcCisgICAgbWFj
cm8oTk9UX1dPUkRDSEFSKSBcCisgICAgbWFjcm8oV09SRENIQVIpIFwKKyAgICBcCisgICAgbWFj
cm8oQU5ZKSBcCisgICAgXAorICAgIG1hY3JvKENJUkMpIFwKKyAgICBtYWNybyhET0xMKSBcCisg
ICAgbWFjcm8oQ0hBUikgXAorICAgIG1hY3JvKENIQVJOQykgXAorICAgIG1hY3JvKEFTQ0lJX0NI
QVIpIFwKKyAgICBtYWNybyhBU0NJSV9MRVRURVJfTkMpIFwKKyAgICBtYWNybyhOT1QpIFwKKyAg
ICBcCisgICAgbWFjcm8oU1RBUikgXAorICAgIG1hY3JvKE1JTlNUQVIpIFwKKyAgICBtYWNybyhQ
TFVTKSBcCisgICAgbWFjcm8oTUlOUExVUykgXAorICAgIG1hY3JvKFFVRVJZKSBcCisgICAgbWFj
cm8oTUlOUVVFUlkpIFwKKyAgICBtYWNybyhVUFRPKSBcCisgICAgbWFjcm8oTUlOVVBUTykgXAor
ICAgIG1hY3JvKEVYQUNUKSBcCisgICAgXAorICAgIG1hY3JvKE5PVFNUQVIpIFwKKyAgICBtYWNy
byhOT1RNSU5TVEFSKSBcCisgICAgbWFjcm8oTk9UUExVUykgXAorICAgIG1hY3JvKE5PVE1JTlBM
VVMpIFwKKyAgICBtYWNybyhOT1RRVUVSWSkgXAorICAgIG1hY3JvKE5PVE1JTlFVRVJZKSBcCisg
ICAgbWFjcm8oTk9UVVBUTykgXAorICAgIG1hY3JvKE5PVE1JTlVQVE8pIFwKKyAgICBtYWNybyhO
T1RFWEFDVCkgXAorICAgIFwKKyAgICBtYWNybyhUWVBFU1RBUikgXAorICAgIG1hY3JvKFRZUEVN
SU5TVEFSKSBcCisgICAgbWFjcm8oVFlQRVBMVVMpIFwKKyAgICBtYWNybyhUWVBFTUlOUExVUykg
XAorICAgIG1hY3JvKFRZUEVRVUVSWSkgXAorICAgIG1hY3JvKFRZUEVNSU5RVUVSWSkgXAorICAg
IG1hY3JvKFRZUEVVUFRPKSBcCisgICAgbWFjcm8oVFlQRU1JTlVQVE8pIFwKKyAgICBtYWNybyhU
WVBFRVhBQ1QpIFwKKyAgICBcCisgICAgbWFjcm8oQ1JTVEFSKSBcCisgICAgbWFjcm8oQ1JNSU5T
VEFSKSBcCisgICAgbWFjcm8oQ1JQTFVTKSBcCisgICAgbWFjcm8oQ1JNSU5QTFVTKSBcCisgICAg
bWFjcm8oQ1JRVUVSWSkgXAorICAgIG1hY3JvKENSTUlOUVVFUlkpIFwKKyAgICBtYWNybyhDUlJB
TkdFKSBcCisgICAgbWFjcm8oQ1JNSU5SQU5HRSkgXAorICAgIFwKKyAgICBtYWNybyhDTEFTUykg
XAorICAgIG1hY3JvKE5DTEFTUykgXAorICAgIG1hY3JvKFhDTEFTUykgXAorICAgIFwKKyAgICBt
YWNybyhSRUYpIFwKKyAgICBcCisgICAgbWFjcm8oQUxUKSBcCisgICAgbWFjcm8oS0VUKSBcCisg
ICAgbWFjcm8oS0VUUk1BWCkgXAorICAgIG1hY3JvKEtFVFJNSU4pIFwKKyAgICBcCisgICAgbWFj
cm8oQVNTRVJUKSBcCisgICAgbWFjcm8oQVNTRVJUX05PVCkgXAorICAgIFwKKyAgICBtYWNybyhP
TkNFKSBcCisgICAgXAorICAgIG1hY3JvKEJSQVpFUk8pIFwKKyAgICBtYWNybyhCUkFNSU5aRVJP
KSBcCisgICAgbWFjcm8oQlJBTlVNQkVSKSBcCisgICAgbWFjcm8oQlJBKQogCi0gIC8qIFZhbHVl
cyBjb3JyZXNwb25kaW5nIHRvIGJhY2tzbGFzaGVkIG1ldGFjaGFyYWN0ZXJzICovCi0KLSAgT1Bf
Tk9UX1dPUkRfQk9VTkRBUlksICAgICAvKiBcQiAqLwotICBPUF9XT1JEX0JPVU5EQVJZLCAgICAg
ICAgIC8qIFxiICovCi0gIE9QX05PVF9ESUdJVCwgICAgICAgICAgICAgLyogXEQgKi8KLSAgT1Bf
RElHSVQsICAgICAgICAgICAgICAgICAvKiBcZCAqLwotICBPUF9OT1RfV0hJVEVTUEFDRSwgICAg
ICAgIC8qIFxTICovCi0gIE9QX1dISVRFU1BBQ0UsICAgICAgICAgICAgLyogXHMgKi8KLSAgT1Bf
Tk9UX1dPUkRDSEFSLCAgICAgICAgICAvKiBcVyAqLwotICBPUF9XT1JEQ0hBUiwgICAgICAgICAg
ICAgIC8qIFx3ICovCi0KLSAgT1BfQU5ZLCAgICAgICAgICAgICAgICAgICAvKiAuIC0tIE1hdGNo
IGFueSBjaGFyYWN0ZXIgKi8KLQotICBPUF9DSVJDLCAgICAgICAgICAgICAgICAgIC8qIF4gKi8K
LSAgT1BfRE9MTCwgICAgICAgICAgICAgICAgICAvKiAkICovCi0gIE9QX0NIQVIsICAgICAgICAg
ICAgICAgICAgLyogTWF0Y2ggb25lIGNoYXJhY3RlciwgY2FzZWZ1bGx5ICovCi0gIE9QX0NIQVJO
QywgICAgICAgICAgICAgICAgLyogTWF0Y2ggb25lIGNoYXJhY3RlciwgY2FzZWxlc3NseSAqLwot
ICBPUF9BU0NJSV9DSEFSLCAgICAgICAgICAgIC8qIE1hdGNoIG9uZSBBU0NJSSAoMC0xMjcpIGNo
YXJhY3Rlci4gKi8KLSAgT1BfQVNDSUlfTEVUVEVSX05DLCAgICAgICAvKiBNYXRjaCBvbmUgQVND
SUkgbGV0dGVyLCBjYXNlbGVzc2x5LiAqLwotICBPUF9OT1QsICAgICAgICAgICAgICAgICAgIC8q
IE1hdGNoIGFueXRoaW5nIGJ1dCB0aGUgZm9sbG93aW5nIGNoYXIgKi8KLQotICBPUF9TVEFSLCAg
ICAgICAgICAgICAgICAgIC8qIFRoZSBtYXhpbWl6aW5nIGFuZCBtaW5pbWl6aW5nIHZlcnNpb25z
IG9mICovCi0gIE9QX01JTlNUQVIsICAgICAgICAgICAgICAgLyogYWxsIHRoZXNlIG9wY29kZXMg
bXVzdCBjb21lIGluIHBhaXJzLCB3aXRoICovCi0gIE9QX1BMVVMsICAgICAgICAgICAgICAgICAg
LyogdGhlIG1pbmltaXppbmcgb25lIHNlY29uZC4gKi8KLSAgT1BfTUlOUExVUywgICAgICAgICAg
ICAgICAvKiBUaGlzIGZpcnN0IHNldCBhcHBsaWVzIHRvIHNpbmdsZSBjaGFyYWN0ZXJzICovCi0g
IE9QX1FVRVJZLAotICBPUF9NSU5RVUVSWSwKLSAgT1BfVVBUTywgICAgICAgICAgICAgICAgICAv
KiBGcm9tIDAgdG8gbiBtYXRjaGVzICovCi0gIE9QX01JTlVQVE8sCi0gIE9QX0VYQUNULCAgICAg
ICAgICAgICAgICAgLyogRXhhY3RseSBuIG1hdGNoZXMgKi8KLQotICBPUF9OT1RTVEFSLCAgICAg
ICAgICAgICAgIC8qIFRoaXMgc2V0IGFwcGxpZXMgdG8gIm5vdCIgc2luZ2xlIGNoYXJhY3RlcnMg
Ki8KLSAgT1BfTk9UTUlOU1RBUiwKLSAgT1BfTk9UUExVUywKLSAgT1BfTk9UTUlOUExVUywKLSAg
T1BfTk9UUVVFUlksCi0gIE9QX05PVE1JTlFVRVJZLAotICBPUF9OT1RVUFRPLAotICBPUF9OT1RN
SU5VUFRPLAotICBPUF9OT1RFWEFDVCwKLQotICBPUF9UWVBFU1RBUiwgICAgICAgICAgICAgIC8q
IFRoaXMgc2V0IGFwcGxpZXMgdG8gY2hhcmFjdGVyIHR5cGVzIHN1Y2ggYXMgXGQgKi8KLSAgT1Bf
VFlQRU1JTlNUQVIsCi0gIE9QX1RZUEVQTFVTLAotICBPUF9UWVBFTUlOUExVUywKLSAgT1BfVFlQ
RVFVRVJZLAotICBPUF9UWVBFTUlOUVVFUlksCi0gIE9QX1RZUEVVUFRPLAotICBPUF9UWVBFTUlO
VVBUTywKLSAgT1BfVFlQRUVYQUNULAotCi0gIE9QX0NSU1RBUiwgICAgICAgICAgICAgICAgLyog
VGhlc2UgYXJlIGZvciBjaGFyYWN0ZXIgY2xhc3NlcyBhbmQgYmFjayByZWZzICovCi0gIE9QX0NS
TUlOU1RBUiwKLSAgT1BfQ1JQTFVTLAotICBPUF9DUk1JTlBMVVMsCi0gIE9QX0NSUVVFUlksCi0g
IE9QX0NSTUlOUVVFUlksCi0gIE9QX0NSUkFOR0UsICAgICAgICAgICAgICAgLyogVGhlc2UgYXJl
IGRpZmZlcmVudCB0byB0aGUgdGhyZWUgc2V0cyBhYm92ZS4gKi8KLSAgT1BfQ1JNSU5SQU5HRSwK
LQotICBPUF9DTEFTUywgICAgICAgICAgICAgICAgIC8qIE1hdGNoIGEgY2hhcmFjdGVyIGNsYXNz
LCBjaGFycyA8IDI1NiBvbmx5ICovCi0gIE9QX05DTEFTUywgICAgICAgICAgICAgICAgLyogU2Ft
ZSwgYnV0IHRoZSBiaXRtYXAgd2FzIGNyZWF0ZWQgZnJvbSBhIG5lZ2F0aXZlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3MgLSB0aGUgZGlmZmVyZW5jZSBpcyByZWxldmFudCB3
aGVuIGEgVVRGLTgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgPiAy
NTUgaXMgZW5jb3VudGVyZWQuICovCi0KLSAgT1BfWENMQVNTLCAgICAgICAgICAgICAgICAvKiBF
eHRlbmRlZCBjbGFzcyBmb3IgaGFuZGxpbmcgVVRGLTggY2hhcnMgd2l0aGluIHRoZQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzLiBUaGlzIGRvZXMgYm90aCBwb3NpdGl2ZSBh
bmQgbmVnYXRpdmUuICovCi0KLSAgT1BfUkVGLCAgICAgICAgICAgICAgICAgICAvKiBNYXRjaCBh
IGJhY2sgcmVmZXJlbmNlICovCi0KLSAgT1BfQUxULCAgICAgICAgICAgICAgICAgICAvKiBTdGFy
dCBvZiBhbHRlcm5hdGlvbiAqLwotICBPUF9LRVQsICAgICAgICAgICAgICAgICAgIC8qIEVuZCBv
ZiBncm91cCB0aGF0IGRvZXNuJ3QgaGF2ZSBhbiB1bmJvdW5kZWQgcmVwZWF0ICovCi0gIE9QX0tF
VFJNQVgsICAgICAgICAgICAgICAgLyogVGhlc2UgdHdvIG11c3QgcmVtYWluIHRvZ2V0aGVyIGFu
ZCBpbiB0aGlzICovCi0gIE9QX0tFVFJNSU4sICAgICAgICAgICAgICAgLyogb3JkZXIuIFRoZXkg
YXJlIGZvciBncm91cHMgdGhlIHJlcGVhdCBmb3IgZXZlci4gKi8KLQotICAvKiBUaGUgYXNzZXJ0
aW9ucyBtdXN0IGNvbWUgYmVmb3JlIE9OQ0UgYW5kIENPTkQgKi8KLQotICBPUF9BU1NFUlQsICAg
ICAgICAgICAgICAgIC8qIFBvc2l0aXZlIGxvb2thaGVhZCAqLwotICBPUF9BU1NFUlRfTk9ULCAg
ICAgICAgICAgIC8qIE5lZ2F0aXZlIGxvb2thaGVhZCAqLwotCi0gIC8qIE9OQ0UgYW5kIENPTkQg
bXVzdCBjb21lIGFmdGVyIHRoZSBhc3NlcnRpb25zLCB3aXRoIE9OQ0UgZmlyc3QsIGFzIHRoZXJl
J3MKLSAgYSB0ZXN0IGZvciA+PSBPTkNFIGZvciBhIHN1YnBhdHRlcm4gdGhhdCBpc24ndCBhbiBh
c3NlcnRpb24uICovCi0KLSAgT1BfT05DRSwgICAgICAgICAgICAgICAgICAvKiBPbmNlIG1hdGNo
ZWQsIGRvbid0IGJhY2sgdXAgaW50byB0aGUgc3VicGF0dGVybiAqLwotCi0gIE9QX0JSQVpFUk8s
ICAgICAgICAgICAgICAgLyogVGhlc2UgdHdvIG11c3QgcmVtYWluIHRvZ2V0aGVyIGFuZCBpbiB0
aGlzICovCi0gIE9QX0JSQU1JTlpFUk8sICAgICAgICAgICAgLyogb3JkZXIuICovCi0KLSAgT1Bf
QlJBTlVNQkVSLCAgICAgICAgICAgICAvKiBVc2VkIGZvciBleHRyYWN0aW5nIGJyYWNrZXRzIHdo
b3NlIG51bWJlciBpcyBncmVhdGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhh
biBjYW4gZml0IGludG8gYW4gb3Bjb2RlLiAqLwotCi0gIE9QX0JSQSAgICAgICAgICAgICAgICAg
ICAgLyogVGhpcyBhbmQgZ3JlYXRlciB2YWx1ZXMgYXJlIHVzZWQgZm9yIGJyYWNrZXRzIHRoYXQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYWN0IHN1YnN0cmluZ3MgdXAgdG8g
RVhUUkFDVF9CQVNJQ19NQVguIEFmdGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhhdCwgdXNlIGlzIG1hZGUgb2YgT1BfQlJBTlVNQkVSLiAqLwotfTsKKyNkZWZpbmUgT1BDT0RF
X0VOVU1fVkFMVUUob3Bjb2RlKSBPUF8jI29wY29kZSwKK2VudW0geyBGT1JfRUFDSF9PUENPREUo
T1BDT0RFX0VOVU1fVkFMVUUpIH07CiAKIC8qIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HOiBUaGVy
ZSBpcyBhbiBpbXBsaWNpdCBhc3N1bXB0aW9uIGluIHBjcmUuYyBhbmQKIHN0dWR5LmMgdGhhdCBh
bGwgb3Bjb2RlcyBhcmUgbGVzcyB0aGFuIDEyOCBpbiB2YWx1ZS4gVGhpcyBtYWtlcyBoYW5kbGlu
ZyBVVEYtOApAQCAtNDc1LDcgKzQ1MCw2IEBAIG9wY29kZXMuICovCiAKICNkZWZpbmUgRVhUUkFD
VF9CQVNJQ19NQVggIDEwMAogCi0KIC8qIFRoaXMgbWFjcm8gZGVmaW5lcyB0aGUgbGVuZ3RoIG9m
IGZpeGVkIGxlbmd0aCBvcGVyYXRpb25zIGluIHRoZSBjb21waWxlZAogcmVnZXguIFRoZSBsZW5n
dGhzIGFyZSB1c2VkIHdoZW4gc2VhcmNoaW5nIGZvciBzcGVjaWZpYyB0aGluZ3MsIGFuZCBhbHNv
IGluIHRoZQogZGVidWdnaW5nIHByaW50aW5nIG9mIGEgY29tcGlsZWQgcmVnZXguIFdlIHVzZSBh
IG1hY3JvIHNvIHRoYXQgaXQgY2FuIGJlCkBAIC01MjEsMTUgKzQ5NSw2IEBAIGluIFVURi04IG1v
ZGUuIFRoZSBjb2RlIHRoYXQgdXNlcyB0aGlzIHQKICAgMStMSU5LX1NJWkUgICAgICAgICAgICAg
ICAgICAgIC8qIEJSQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovIFwKIAog
Ci0vKiBFcnJvciBjb2RlIG51bWJlcnMuIFRoZXkgYXJlIGdpdmVuIG5hbWVzIHNvIHRoYXQgdGhl
eSBjYW4gbW9yZSBlYXNpbHkgYmUKLXRyYWNrZWQuICovCi0KLWVudW0geyBFUlIwLCAgRVJSMSwg
IEVSUjIsICBFUlIzLCAgRVJSNCwgIEVSUjUsICBFUlI2LCAgRVJSNywgIEVSUjgsICBFUlI5LAot
ICAgICAgIEVSUjEwLCBFUlIxMSwgRVJSMTIsIEVSUjEzLCBFUlIxNCwgRVJSMTUsIEVSUjE2LCBF
UlIxNywgRVJSMTgsIEVSUjE5LAotICAgICAgIEVSUjIwLCBFUlIyMSwgRVJSMjIsIEVSUjIzLCBF
UlIyNCwgRVJSMjUsIEVSUjI2LCBFUlIyNywgRVJSMjgsIEVSUjI5LAotICAgICAgIEVSUjMwLCBF
UlIzMSwgRVJSMzIsIEVSUjMzLCBFUlIzNCwgRVJSMzUsIEVSUjM2LCBFUlIzNywgRVJSMzgsIEVS
UjM5LAotICAgICAgIEVSUjQwLCBFUlI0MSwgRVJSNDIsIEVSUjQzLCBFUlI0NCwgRVJSNDUsIEVS
UjQ2LCBFUlI0NyB9OwotCiAvKiBUaGUgcmVhbCBmb3JtYXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBw
Y3JlIGJsb2NrOyB0aGUgaW5kZXggb2YgbmFtZXMgYW5kIHRoZQogY29kZSB2ZWN0b3IgcnVuIG9u
IGFzIGxvbmcgYXMgbmVjZXNzYXJ5IGFmdGVyIHRoZSBlbmQuIFdlIHN0b3JlIGFuIGV4cGxpY2l0
CiBvZmZzZXQgdG8gdGhlIG5hbWUgdGFibGUgc28gdGhhdCBpZiBhIHJlZ2V4IGlzIGNvbXBpbGVk
IG9uIG9uZSBob3N0LCBzYXZlZCwgYW5kCkBAIC01NzIsNDAgKzUzNyw5IEBAIHR5cGVkZWYgc3Ry
dWN0IGNvbXBpbGVfZGF0YSB7CiAgIGludCAgcmVxX3ZhcnlvcHQ7ICAgICAgICAgICAgIC8qICJB
ZnRlciB2YXJpYWJsZSBpdGVtIiBmbGFnIGZvciByZXFieXRlICovCiB9IGNvbXBpbGVfZGF0YTsK
IAotLyogV2hlbiBjb21waWxpbmcgaW4gYSBtb2RlIHRoYXQgZG9lc24ndCB1c2UgcmVjdXJzaXZl
IGNhbGxzIHRvIG1hdGNoKCksCi1hIHN0cnVjdHVyZSBpcyB1c2VkIHRvIHJlbWVtYmVyIGxvY2Fs
IHZhcmlhYmxlcyBvbiB0aGUgaGVhcC4gSXQgaXMgZGVmaW5lZCBpbgotcGNyZS5jLCBjbG9zZSB0
byB0aGUgbWF0Y2goKSBmdW5jdGlvbiwgc28gdGhhdCBpdCBpcyBlYXN5IHRvIGtlZXAgaXQgaW4g
c3RlcAotd2l0aCBhbnkgY2hhbmdlcyBvZiBsb2NhbCB2YXJpYWJsZS4gSG93ZXZlciwgdGhlIHBv
aW50ZXIgdG8gdGhlIGN1cnJlbnQgZnJhbWUKLW11c3QgYmUgc2F2ZWQgaW4gc29tZSAic3RhdGlj
IiBwbGFjZSBvdmVyIGEgbG9uZ2ptcCgpLiBXZSBkZWNsYXJlIHRoZQotc3RydWN0dXJlIGhlcmUg
c28gdGhhdCB3ZSBjYW4gcHV0IGEgcG9pbnRlciBpbiB0aGUgbWF0Y2hfZGF0YSBzdHJ1Y3R1cmUu
Ci1OT1RFOiBUaGlzIGlzbid0IHVzZWQgZm9yIGEgIm5vcm1hbCIgY29tcGlsYXRpb24gb2YgcGNy
ZS4gKi8KLQotc3RydWN0IGhlYXBmcmFtZTsKLQotLyogU3RydWN0dXJlIGZvciBwYXNzaW5nICJz
dGF0aWMiIGluZm9ybWF0aW9uIGFyb3VuZCBiZXR3ZWVuIHRoZSBmdW5jdGlvbnMKLWRvaW5nIHRy
YWRpdGlvbmFsIE5GQSBtYXRjaGluZywgc28gdGhhdCB0aGV5IGFyZSB0aHJlYWQtc2FmZS4gKi8K
LQotdHlwZWRlZiBzdHJ1Y3QgbWF0Y2hfZGF0YSB7Ci0gIHVuc2lnbmVkIGxvbmcgaW50IG1hdGNo
X2NhbGxfY291bnQ7ICAgICAgLyogQXMgaXQgc2F5cyAqLwotICBpbnQgICAqb2Zmc2V0X3ZlY3Rv
cjsgICAgICAgICAvKiBPZmZzZXQgdmVjdG9yICovCi0gIGludCAgICBvZmZzZXRfZW5kOyAgICAg
ICAgICAgIC8qIE9uZSBwYXN0IHRoZSBlbmQgKi8KLSAgaW50ICAgIG9mZnNldF9tYXg7ICAgICAg
ICAgICAgLyogVGhlIG1heGltdW0gdXNhYmxlIGZvciByZXR1cm4gZGF0YSAqLwotICBjb25zdCB1
c2NoYXIgKmxjYzsgICAgICAgICAgICAvKiBQb2ludHMgdG8gbG93ZXIgY2FzaW5nIHRhYmxlICov
Ci0gIGNvbnN0IHVzY2hhciAqY3R5cGVzOyAgICAgICAgIC8qIFBvaW50cyB0byB0YWJsZSBvZiB0
eXBlIG1hcHMgKi8KLSAgQk9PTCAgIG9mZnNldF9vdmVyZmxvdzsgICAgICAgLyogU2V0IGlmIHRv
byBtYW55IGV4dHJhY3Rpb25zICovCi0gIFVTUFRSICBzdGFydF9zdWJqZWN0OyAgICAgICAgIC8q
IFN0YXJ0IG9mIHRoZSBzdWJqZWN0IHN0cmluZyAqLwotICBVU1BUUiAgZW5kX3N1YmplY3Q7ICAg
ICAgICAgICAvKiBFbmQgb2YgdGhlIHN1YmplY3Qgc3RyaW5nICovCi0gIFVTUFRSICBzdGFydF9t
YXRjaDsgICAgICAgICAgIC8qIFN0YXJ0IG9mIHRoaXMgbWF0Y2ggYXR0ZW1wdCAqLwotICBVU1BU
UiAgZW5kX21hdGNoX3B0cjsgICAgICAgICAvKiBTdWJqZWN0IHBvc2l0aW9uIGF0IGVuZCBtYXRj
aCAqLwotICBpbnQgICAgZW5kX29mZnNldF90b3A7ICAgICAgICAvKiBIaWdod2F0ZXIgbWFyayBh
dCBlbmQgb2YgbWF0Y2ggKi8KLSAgQk9PTCAgIG11bHRpbGluZTsKLSAgQk9PTCAgIGNhc2VsZXNz
OwotfSBtYXRjaF9kYXRhOwotCiAvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIGVudHJpZXMgaW4gdGhl
IHBjcmVfY3R5cGVzIHRhYmxlLiAqLwogCiAjZGVmaW5lIGN0eXBlX3NwYWNlICAgMHgwMQotI2Rl
ZmluZSBjdHlwZV9kaWdpdCAgIDB4MDQKICNkZWZpbmUgY3R5cGVfeGRpZ2l0ICAweDA4CiAjZGVm
aW5lIGN0eXBlX3dvcmQgICAgMHgxMCAgIC8qIGFscGhhbWVyaWMgb3IgJ18nICovCiAKQEAgLTY1
MCw4ICs1ODQsNiBAQCBleHRlcm4gY29uc3QgaW50ICAgIF9wY3JlX3V0ZjhfdGFibGUxX3NpCiAK
IGV4dGVybiBjb25zdCB1c2NoYXIgX3BjcmVfZGVmYXVsdF90YWJsZXNbXTsKIAotZXh0ZXJuIGNv
bnN0IHVzY2hhciBfcGNyZV9PUF9sZW5ndGhzW107Ci0KIAogLyogSW50ZXJuYWwgc2hhcmVkIGZ1
bmN0aW9ucy4gVGhlc2UgYXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VkIGJ5IG1vcmUgdGhhbgog
b25lIG9mIHRoZSBleHBvcnRlZCBwdWJsaWMgZnVuY3Rpb25zLiBUaGV5IGhhdmUgdG8gYmUgImV4
dGVybmFsIiBpbiB0aGUgQwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX21ha2V0YWJs
ZXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfbWFrZXRhYmxlcy5j
CShyZXZpc2lvbiAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9tYWtldGFibGVz
LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTE0ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgUGVybC1Db21wYXRpYmxlIFJl
Z3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKi8KLQotLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25z
IHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRp
Y3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3Vh
Z2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLSAg
ICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UK
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0K
LSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBV
bml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotKi8KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgotKiAgICAgICAgICAgQ3JlYXRlIFBDUkUgY2hhcmFjdGVyIHRhYmxlcyAgICAgICAg
ICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0K
LS8qIFRoaXMgZnVuY3Rpb24gYnVpbGRzIGEgc2V0IG9mIGNoYXJhY3RlciB0YWJsZXMgZm9yIHVz
ZSBieSBQQ1JFIGFuZCByZXR1cm5zCi1hIHBvaW50ZXIgdG8gdGhlbS4gVGhleSBhcmUgYnVpbGQg
dXNpbmcgdGhlIGN0eXBlIGZ1bmN0aW9ucywgYW5kIGNvbnNlcXVlbnRseQotdGhlaXIgY29udGVu
dHMgd2lsbCBkZXBlbmQgdXBvbiB0aGUgY3VycmVudCBsb2NhbGUgc2V0dGluZy4gV2hlbiBjb21w
aWxlZCBhcwotcGFydCBvZiB0aGUgbGlicmFyeSwgdGhlIHN0b3JlIGlzIG9idGFpbmVkIHZpYSBw
Y3JlX21hbGxvYygpLCBidXQgd2hlbiBjb21waWxlZAotaW5zaWRlIGRmdGFibGVzLCB1c2UgbWFs
bG9jKCkuCi0KLUFyZ3VtZW50czogICBub25lCi1SZXR1cm5zOiAgICAgcG9pbnRlciB0byB0aGUg
Y29udGlndW91cyBibG9jayBvZiBkYXRhCi0qLwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh
ciAqCi1wY3JlX21ha2V0YWJsZXModm9pZCkKLXsKLXVuc2lnbmVkIGNoYXIgKnlpZWxkLCAqcDsK
LWludCBpOwotCi0jaWZuZGVmIERGVEFCTEVTCi15aWVsZCA9ICh1bnNpZ25lZCBjaGFyKikocGNy
ZV9tYWxsb2MpKHRhYmxlc19sZW5ndGgpOwotI2Vsc2UKLXlpZWxkID0gKHVuc2lnbmVkIGNoYXIq
KW1hbGxvYyh0YWJsZXNfbGVuZ3RoKTsKLSNlbmRpZgotCi1pZiAoeWllbGQgPT0gTlVMTCkgcmV0
dXJuIE5VTEw7Ci1wID0geWllbGQ7Ci0KLS8qIEZpcnN0IGNvbWVzIHRoZSBsb3dlciBjYXNpbmcg
dGFibGUgKi8KLQotZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSAqcCsrID0gdG9sb3dlcihpKTsK
LQotLyogTmV4dCB0aGUgY2FzZS1mbGlwcGluZyB0YWJsZSAqLwotCi1mb3IgKGkgPSAwOyBpIDwg
MjU2OyBpKyspICpwKysgPSBpc2xvd2VyKGkpPyB0b3VwcGVyKGkpIDogdG9sb3dlcihpKTsKLQot
LyogVGhlbiB0aGUgY2hhcmFjdGVyIGNsYXNzIHRhYmxlcy4gRG9uJ3QgdHJ5IHRvIGJlIGNsZXZl
ciBhbmQgc2F2ZSBlZmZvcnQgb24KLWV4Y2x1c2l2ZSBvbmVzIC0gaW4gc29tZSBsb2NhbGVzIHRo
aW5ncyBtYXkgYmUgZGlmZmVyZW50LiBOb3RlIHRoYXQgdGhlIHRhYmxlCi1mb3IgInNwYWNlIiBp
bmNsdWRlcyBldmVyeXRoaW5nICJpc3NwYWNlIiBnaXZlcywgaW5jbHVkaW5nIFZUIGluIHRoZSBk
ZWZhdWx0Ci1sb2NhbGUuIFRoaXMgbWFrZXMgaXQgd29yayBmb3IgdGhlIFBPU0lYIGNsYXNzIFs6
c3BhY2U6XS4gTm90ZSBhbHNvIHRoYXQgaXQgaXMKLXBvc3NpYmxlIGZvciBhIGNoYXJhY3RlciB0
byBiZSBhbG51bSBvciBhbHBoYSB3aXRob3V0IGJlaW5nIGxvd2VyIG9yIHVwcGVyLAotc3VjaCBh
cyAibWFsZSBhbmQgZmVtYWxlIG9yZGluYWxzIiAoXHhBQSBhbmQgXHhCQSkgaW4gdGhlIGZyX0ZS
IGxvY2FsZSAoYXQKLWxlYXN0IHVuZGVyIERlYmlhbiBMaW51eCdzIGxvY2FsZXMgYXMgb2YgMTIv
MjAwNSkuIFNvIHdlIG11c3QgdGVzdCBmb3IgYWxudW0KLXNwZWNpYWxseS4gKi8KLQotbWVtc2V0
KHAsIDAsIGNiaXRfbGVuZ3RoKTsKLWZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBp
ZiAoaXNkaWdpdChpKSkgcFtjYml0X2RpZ2l0ICArIGkvOF0gfD0gMSA8PCAoaSY3KTsKLSAgaWYg
KGlzYWxudW0oaSkpIHBbY2JpdF93b3JkICAgKyBpLzhdIHw9IDEgPDwgKGkmNyk7Ci0gIGlmIChp
ID09ICdfJykgICBwW2NiaXRfd29yZCAgICsgaS84XSB8PSAxIDw8IChpJjcpOwotICBpZiAoaXNz
cGFjZShpKSkgcFtjYml0X3NwYWNlICArIGkvOF0gfD0gMSA8PCAoaSY3KTsKLSAgfQotcCArPSBj
Yml0X2xlbmd0aDsKLQotLyogRmluYWxseSwgdGhlIGNoYXJhY3RlciB0eXBlIHRhYmxlLiBJbiB0
aGlzLCB3ZSBleGNsdWRlIFZUIGZyb20gdGhlIHdoaXRlCi1zcGFjZSBjaGFycywgYmVjYXVzZSBQ
ZXJsIGRvZXNuJ3QgcmVjb2duaXplIGl0IGFzIHN1Y2ggZm9yIFxzIGFuZCBmb3IgY29tbWVudHMK
LXdpdGhpbiByZWdleGVzLiAqLwotCi1mb3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCi0gIHsKLSAg
aW50IHggPSAwOwotICBpZiAoaXNzcGFjZShpKSkgeCArPSBjdHlwZV9zcGFjZTsKLSAgaWYgKGlz
ZGlnaXQoaSkpIHggKz0gY3R5cGVfZGlnaXQ7Ci0gIGlmIChpc3hkaWdpdChpKSkgeCArPSBjdHlw
ZV94ZGlnaXQ7Ci0gIGlmIChpc2FsbnVtKGkpIHx8IGkgPT0gJ18nKSB4ICs9IGN0eXBlX3dvcmQ7
Ci0gICpwKysgPSB4OwotICB9Ci0KLXJldHVybiB5aWVsZDsKLX0KLQotLyogRW5kIG9mIHBjcmVf
bWFrZXRhYmxlcy5jICovCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfbWFrZXRhYmxl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX21ha2V0YWJsZXMu
Y3BwCShyZXZpc2lvbiAyNzY0OCkJKGZyb20gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX21ha2V0
YWJsZXMuYzoyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9tYWtldGFibGVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExNCBAQAorLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICBQZXJsLUNvbXBhdGlibGUgUmVn
dWxhciBFeHByZXNzaW9ucyAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworCisvKiBQQ1JFIGlzIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMg
dG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25zIHdob3NlIHN5bnRheAorYW5kIHNlbWFudGlj
cyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFn
ZS4KKworICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorICAg
ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKwor
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVu
aXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCitBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCitJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRQorQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCitMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCitJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKK0FSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFCitQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgICAgICAgICBDcmVhdGUgUENSRSBjaGFyYWN0ZXIgdGFibGVzICAgICAgICAg
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor
LyogVGhpcyBmdW5jdGlvbiBidWlsZHMgYSBzZXQgb2YgY2hhcmFjdGVyIHRhYmxlcyBmb3IgdXNl
IGJ5IFBDUkUgYW5kIHJldHVybnMKK2EgcG9pbnRlciB0byB0aGVtLiBUaGV5IGFyZSBidWlsZCB1
c2luZyB0aGUgY3R5cGUgZnVuY3Rpb25zLCBhbmQgY29uc2VxdWVudGx5Cit0aGVpciBjb250ZW50
cyB3aWxsIGRlcGVuZCB1cG9uIHRoZSBjdXJyZW50IGxvY2FsZSBzZXR0aW5nLiBXaGVuIGNvbXBp
bGVkIGFzCitwYXJ0IG9mIHRoZSBsaWJyYXJ5LCB0aGUgc3RvcmUgaXMgb2J0YWluZWQgdmlhIHBj
cmVfbWFsbG9jKCksIGJ1dCB3aGVuIGNvbXBpbGVkCitpbnNpZGUgZGZ0YWJsZXMsIHVzZSBtYWxs
b2MoKS4KKworQXJndW1lbnRzOiAgIG5vbmUKK1JldHVybnM6ICAgICBwb2ludGVyIHRvIHRoZSBj
b250aWd1b3VzIGJsb2NrIG9mIGRhdGEKKyovCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy
ICoKK3BjcmVfbWFrZXRhYmxlcyh2b2lkKQorewordW5zaWduZWQgY2hhciAqeWllbGQsICpwOwor
aW50IGk7CisKKyNpZm5kZWYgREZUQUJMRVMKK3lpZWxkID0gKHVuc2lnbmVkIGNoYXIqKShwY3Jl
X21hbGxvYykodGFibGVzX2xlbmd0aCk7CisjZWxzZQoreWllbGQgPSAodW5zaWduZWQgY2hhciop
bWFsbG9jKHRhYmxlc19sZW5ndGgpOworI2VuZGlmCisKK2lmICh5aWVsZCA9PSBOVUxMKSByZXR1
cm4gTlVMTDsKK3AgPSB5aWVsZDsKKworLyogRmlyc3QgY29tZXMgdGhlIGxvd2VyIGNhc2luZyB0
YWJsZSAqLworCitmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspICpwKysgPSB0b2xvd2VyKGkpOwor
CisvKiBOZXh0IHRoZSBjYXNlLWZsaXBwaW5nIHRhYmxlICovCisKK2ZvciAoaSA9IDA7IGkgPCAy
NTY7IGkrKykgKnArKyA9IGlzbG93ZXIoaSk/IHRvdXBwZXIoaSkgOiB0b2xvd2VyKGkpOworCisv
KiBUaGVuIHRoZSBjaGFyYWN0ZXIgY2xhc3MgdGFibGVzLiBEb24ndCB0cnkgdG8gYmUgY2xldmVy
IGFuZCBzYXZlIGVmZm9ydCBvbgorZXhjbHVzaXZlIG9uZXMgLSBpbiBzb21lIGxvY2FsZXMgdGhp
bmdzIG1heSBiZSBkaWZmZXJlbnQuIE5vdGUgdGhhdCB0aGUgdGFibGUKK2ZvciAic3BhY2UiIGlu
Y2x1ZGVzIGV2ZXJ5dGhpbmcgImlzc3BhY2UiIGdpdmVzLCBpbmNsdWRpbmcgVlQgaW4gdGhlIGRl
ZmF1bHQKK2xvY2FsZS4gVGhpcyBtYWtlcyBpdCB3b3JrIGZvciB0aGUgUE9TSVggY2xhc3MgWzpz
cGFjZTpdLiBOb3RlIGFsc28gdGhhdCBpdCBpcworcG9zc2libGUgZm9yIGEgY2hhcmFjdGVyIHRv
IGJlIGFsbnVtIG9yIGFscGhhIHdpdGhvdXQgYmVpbmcgbG93ZXIgb3IgdXBwZXIsCitzdWNoIGFz
ICJtYWxlIGFuZCBmZW1hbGUgb3JkaW5hbHMiIChceEFBIGFuZCBceEJBKSBpbiB0aGUgZnJfRlIg
bG9jYWxlIChhdAorbGVhc3QgdW5kZXIgRGViaWFuIExpbnV4J3MgbG9jYWxlcyBhcyBvZiAxMi8y
MDA1KS4gU28gd2UgbXVzdCB0ZXN0IGZvciBhbG51bQorc3BlY2lhbGx5LiAqLworCittZW1zZXQo
cCwgMCwgY2JpdF9sZW5ndGgpOworZm9yIChpID0gMDsgaSA8IDEyODsgaSsrKQorICB7CisgIGlm
IChpc2RpZ2l0KGkpKSBwW2NiaXRfZGlnaXQgICsgaS84XSB8PSAxIDw8IChpJjcpOworICBpZiAo
aXNhbG51bShpKSkgcFtjYml0X3dvcmQgICArIGkvOF0gfD0gMSA8PCAoaSY3KTsKKyAgaWYgKGkg
PT0gJ18nKSAgIHBbY2JpdF93b3JkICAgKyBpLzhdIHw9IDEgPDwgKGkmNyk7CisgIGlmIChpc3Nw
YWNlKGkpKSBwW2NiaXRfc3BhY2UgICsgaS84XSB8PSAxIDw8IChpJjcpOworICB9CitwICs9IGNi
aXRfbGVuZ3RoOworCisvKiBGaW5hbGx5LCB0aGUgY2hhcmFjdGVyIHR5cGUgdGFibGUuIEluIHRo
aXMsIHdlIGV4Y2x1ZGUgVlQgZnJvbSB0aGUgd2hpdGUKK3NwYWNlIGNoYXJzLCBiZWNhdXNlIFBl
cmwgZG9lc24ndCByZWNvZ25pemUgaXQgYXMgc3VjaCBmb3IgXHMgYW5kIGZvciBjb21tZW50cwor
d2l0aGluIHJlZ2V4ZXMuICovCisKK2ZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKKyAgeworICBp
bnQgeCA9IDA7CisgIGlmIChpc3NwYWNlKGkpKSB4ICs9IGN0eXBlX3NwYWNlOworICBpZiAoaXNk
aWdpdChpKSkgeCArPSBjdHlwZV9kaWdpdDsKKyAgaWYgKGlzeGRpZ2l0KGkpKSB4ICs9IGN0eXBl
X3hkaWdpdDsKKyAgaWYgKGlzYWxudW0oaSkgfHwgaSA9PSAnXycpIHggKz0gY3R5cGVfd29yZDsK
KyAgKnArKyA9IHg7CisgIH0KKworcmV0dXJuIHlpZWxkOworfQorCisvKiBFbmQgb2YgcGNyZV9t
YWtldGFibGVzLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9tYWtldGFibGVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfbWFrZXRhYmxlcy5j
cHAJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX21ha2V0YWJs
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACi0vKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJs
ZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0
aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4Ci1hbmQgc2Vt
YW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxh
bmd1YWdlLgorLyogVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUg
bGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5CitzdGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENS
RSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KK3JlbW92ZWQuIFRoaXMg
bGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVz
CityZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQg
aGFzIG9ubHkgdGhlIGZ1bmN0aW9ucworbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUg
cmVzdCBvZiBXZWJLaXQuCiAKLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGls
aXAgSGF6ZWwKKyAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBI
YXplbAogICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENh
bWJyaWRnZQorICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTU4LDExICs1OCw3IEBAIHBjcmVfbWFrZXRhYmxlcyh2b2lkKQogdW5zaWduZWQgY2hh
ciAqeWllbGQsICpwOwogaW50IGk7CiAKLSNpZm5kZWYgREZUQUJMRVMKLXlpZWxkID0gKHVuc2ln
bmVkIGNoYXIqKShwY3JlX21hbGxvYykodGFibGVzX2xlbmd0aCk7Ci0jZWxzZQogeWllbGQgPSAo
dW5zaWduZWQgY2hhciopbWFsbG9jKHRhYmxlc19sZW5ndGgpOwotI2VuZGlmCiAKIGlmICh5aWVs
ZCA9PSBOVUxMKSByZXR1cm4gTlVMTDsKIHAgPSB5aWVsZDsKQEAgLTg1LDEyICs4MSwxMyBAQCBs
ZWFzdCB1bmRlciBEZWJpYW4gTGludXgncyBsb2NhbGVzIGFzIG9mCiBzcGVjaWFsbHkuICovCiAK
IG1lbXNldChwLCAwLCBjYml0X2xlbmd0aCk7Citmb3IgKGkgPSAnMCc7IGkgPD0gJzknOyBpKysp
CisgIHBbY2JpdF9kaWdpdCArIGkgLyA4XSB8PSAxIDw8IChpICYgNyk7CitwW2NiaXRfd29yZCAr
ICdfJyAvIDhdIHw9IDEgPDwgKCdfJyAmIDcpOwogZm9yIChpID0gMDsgaSA8IDEyODsgaSsrKQog
ICB7Ci0gIGlmIChpc2RpZ2l0KGkpKSBwW2NiaXRfZGlnaXQgICsgaS84XSB8PSAxIDw8IChpJjcp
OwotICBpZiAoaXNhbG51bShpKSkgcFtjYml0X3dvcmQgICArIGkvOF0gfD0gMSA8PCAoaSY3KTsK
LSAgaWYgKGkgPT0gJ18nKSAgIHBbY2JpdF93b3JkICAgKyBpLzhdIHw9IDEgPDwgKGkmNyk7Ci0g
IGlmIChpc3NwYWNlKGkpKSBwW2NiaXRfc3BhY2UgICsgaS84XSB8PSAxIDw8IChpJjcpOworICBp
ZiAoaXNhbG51bShpKSkgcFtjYml0X3dvcmQgKyBpLzhdIHw9IDEgPDwgKGkgJiA3KTsKKyAgaWYg
KGlzc3BhY2UoaSkpIHBbY2JpdF9zcGFjZSArIGkvOF0gfD0gMSA8PCAoaSAmIDcpOwogICB9CiBw
ICs9IGNiaXRfbGVuZ3RoOwogCkBAIC0xMDIsNyArOTksNiBAQCBmb3IgKGkgPSAwOyBpIDwgMTI4
OyBpKyspCiAgIHsKICAgaW50IHggPSAwOwogICBpZiAoaXNzcGFjZShpKSkgeCArPSBjdHlwZV9z
cGFjZTsKLSAgaWYgKGlzZGlnaXQoaSkpIHggKz0gY3R5cGVfZGlnaXQ7CiAgIGlmIChpc3hkaWdp
dChpKSkgeCArPSBjdHlwZV94ZGlnaXQ7CiAgIGlmIChpc2FsbnVtKGkpIHx8IGkgPT0gJ18nKSB4
ICs9IGN0eXBlX3dvcmQ7CiAgICpwKysgPSB4OwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX29yZDJ1dGY4LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX29y
ZDJ1dGY4LmMJKHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX29y
ZDJ1dGY4LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNzggKzAsMCBAQAotLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICBQZXJsLUNvbXBhdGli
bGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBQQ1JFIGlzIGEgbGlicmFyeSBvZiBmdW5j
dGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25zIHdob3NlIHN5bnRheAotYW5kIHNl
bWFudGljcyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBs
YW5ndWFnZS4KLQotICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXpl
bAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJy
aWRnZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1l
dDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
dGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0qLwotCi0KLS8qIFRoaXMgZmlsZSBjb250YWlucyBhIHByaXZhdGUgUENSRSBm
dW5jdGlvbiB0aGF0IGNvbnZlcnRzIGFuIG9yZGluYWwKLWNoYXJhY3RlciB2YWx1ZSBpbnRvIGEg
VVRGOCBzdHJpbmcuICovCi0KLQotI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotCi0vKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICBD
b252ZXJ0IGNoYXJhY3RlciB2YWx1ZSB0byBVVEYtOCAgICAgICAgICoKLSoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFRoaXMgZnVuY3Rpb24g
dGFrZXMgYW4gaW50ZWdlciB2YWx1ZSBpbiB0aGUgcmFuZ2UgMCAtIDB4N2ZmZmZmZmYKLWFuZCBl
bmNvZGVzIGl0IGFzIGEgVVRGLTggY2hhcmFjdGVyIGluIDAgdG8gNiBieXRlcy4KLQotQXJndW1l
bnRzOgotICBjdmFsdWUgICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUKLSAgYnVmZmVyICAgICBwb2lu
dGVyIHRvIGJ1ZmZlciBmb3IgcmVzdWx0IC0gYXQgbGVhc3QgNiBieXRlcyBsb25nCi0KLVJldHVy
bnM6ICAgICBudW1iZXIgb2YgY2hhcmFjdGVycyBwbGFjZWQgaW4gdGhlIGJ1ZmZlcgotKi8KLQot
aW50Ci1fcGNyZV9vcmQydXRmOChpbnQgY3ZhbHVlLCB1c2NoYXIgKmJ1ZmZlcikKLXsKLXJlZ2lz
dGVyIGludCBpLCBqOwotZm9yIChpID0gMDsgaSA8IF9wY3JlX3V0ZjhfdGFibGUxX3NpemU7IGkr
KykKLSAgaWYgKGN2YWx1ZSA8PSBfcGNyZV91dGY4X3RhYmxlMVtpXSkgYnJlYWs7Ci1idWZmZXIg
Kz0gaTsKLWZvciAoaiA9IGk7IGogPiAwOyBqLS0pCi0gewotICpidWZmZXItLSA9IDB4ODAgfCAo
Y3ZhbHVlICYgMHgzZik7Ci0gY3ZhbHVlID4+PSA2OwotIH0KLSpidWZmZXIgPSBfcGNyZV91dGY4
X3RhYmxlMltpXSB8IGN2YWx1ZTsKLXJldHVybiBpICsgMTsKLX0KLQotLyogRW5kIG9mIHBjcmVf
b3JkMnV0ZjguYyAqLwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX29yZDJ1dGY4LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfb3JkMnV0ZjguY3BwCShy
ZXZpc2lvbiAyNzY0OCkJKGZyb20gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX29yZDJ1dGY4LmM6
Mjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfb3JkMnV0ZjguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVz
c2lvbnMgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8KKworLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQg
cmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBzZW1hbnRpY3MgYXJlIGFzIGNs
b3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisKKyAgICAg
ICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgQ29w
eXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSwKKyAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9m
IENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAg
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQor
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKwor
CisvKiBUaGlzIGZpbGUgY29udGFpbnMgYSBwcml2YXRlIFBDUkUgZnVuY3Rpb24gdGhhdCBjb252
ZXJ0cyBhbiBvcmRpbmFsCitjaGFyYWN0ZXIgdmFsdWUgaW50byBhIFVURjggc3RyaW5nLiAqLwor
CisKKyNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCisKKworLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgQ29udmVydCBjaGFyYWN0ZXIg
dmFsdWUgdG8gVVRGLTggICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworCisvKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGFuIGludGVnZXIg
dmFsdWUgaW4gdGhlIHJhbmdlIDAgLSAweDdmZmZmZmZmCithbmQgZW5jb2RlcyBpdCBhcyBhIFVU
Ri04IGNoYXJhY3RlciBpbiAwIHRvIDYgYnl0ZXMuCisKK0FyZ3VtZW50czoKKyAgY3ZhbHVlICAg
ICB0aGUgY2hhcmFjdGVyIHZhbHVlCisgIGJ1ZmZlciAgICAgcG9pbnRlciB0byBidWZmZXIgZm9y
IHJlc3VsdCAtIGF0IGxlYXN0IDYgYnl0ZXMgbG9uZworCitSZXR1cm5zOiAgICAgbnVtYmVyIG9m
IGNoYXJhY3RlcnMgcGxhY2VkIGluIHRoZSBidWZmZXIKKyovCisKK2ludAorX3BjcmVfb3JkMnV0
ZjgoaW50IGN2YWx1ZSwgdXNjaGFyICpidWZmZXIpCit7CityZWdpc3RlciBpbnQgaSwgajsKK2Zv
ciAoaSA9IDA7IGkgPCBfcGNyZV91dGY4X3RhYmxlMV9zaXplOyBpKyspCisgIGlmIChjdmFsdWUg
PD0gX3BjcmVfdXRmOF90YWJsZTFbaV0pIGJyZWFrOworYnVmZmVyICs9IGk7Citmb3IgKGogPSBp
OyBqID4gMDsgai0tKQorIHsKKyAqYnVmZmVyLS0gPSAweDgwIHwgKGN2YWx1ZSAmIDB4M2YpOwor
IGN2YWx1ZSA+Pj0gNjsKKyB9CisqYnVmZmVyID0gX3BjcmVfdXRmOF90YWJsZTJbaV0gfCBjdmFs
dWU7CityZXR1cm4gaSArIDE7Cit9CisKKy8qIEVuZCBvZiBwY3JlX29yZDJ1dGY4LmMgKi8KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9vcmQydXRmOC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX29yZDJ1dGY4LmNwcAkocmV2aXNpb24gMjc2NDgpCisr
KyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfb3JkMnV0ZjguY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEyICsxLDEyIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAg
ICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
CisvKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5
LiBXaGlsZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55
IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5
IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVp
cmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25s
eSB0aGUgZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9m
IFdlYktpdC4KIAotLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQg
cmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNs
b3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAg
ICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgICAg
ICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAogICAgICAgICAgICBDb3B5cmln
aHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorICAgIENvcHlyaWdodCAo
QykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTc0LDUgKzc0LDMgQEAgZm9y
IChqID0gaTsgaiA+IDA7IGotLSkKICpidWZmZXIgPSBfcGNyZV91dGY4X3RhYmxlMltpXSB8IGN2
YWx1ZTsKIHJldHVybiBpICsgMTsKIH0KLQotLyogRW5kIG9mIHBjcmVfb3JkMnV0ZjguYyAqLwpJ
bmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV90YWJsZXMuYwkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZh
U2NyaXB0Q29yZS9wY3JlL3BjcmVfdGFibGVzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsODcgKzAs
MCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
LSogICAgICBQZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqCi0qKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBQQ1JF
IGlzIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25z
IHdob3NlIHN5bnRheAotYW5kIHNlbWFudGljcyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8g
dGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFnZS4KLQotICAgICAgICAgICAgICAgICAgICAgICBX
cml0dGVuIGJ5IFBoaWxpcCBIYXplbAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAw
NiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMg
SVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
Ci1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0KLS8qIFRoaXMgbW9kdWxlIGNv
bnRhaW5zIHNvbWUgZml4ZWQgdGFibGVzIHRoYXQgYXJlIHVzZWQgYnkgbW9yZSB0aGFuIG9uZSBv
ZiB0aGUKLVBDUkUgY29kZSBtb2R1bGVzLiBUaGUgdGFibGVzIGFyZSBhbHNvICNpbmNsdWRlZCBi
eSB0aGUgcGNyZXRlc3QgcHJvZ3JhbSwgd2hpY2gKLXVzZXMgbWFjcm9zIHRvIGNoYW5nZSB0aGVp
ciBuYW1lcyBmcm9tIF9wY3JlX3h4eCB0byB4eHh4LCB0aGVyZWJ5IGF2b2lkaW5nIG5hbWUKLWNs
YXNoZXMgd2l0aCB0aGUgbGlicmFyeS4gKi8KLQotCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5o
IgotCi0KLS8qIFRhYmxlIG9mIHNpemVzIGZvciB0aGUgZml4ZWQtbGVuZ3RoIG9wY29kZXMuIEl0
J3MgZGVmaW5lZCBpbiBhIG1hY3JvIHNvIHRoYXQKLXRoZSBkZWZpbml0aW9uIGlzIG5leHQgdG8g
dGhlIGRlZmluaXRpb24gb2YgdGhlIG9wY29kZXMgaW4gcGNyZV9pbnRlcm5hbC5oLiAqLwotCi1j
b25zdCB1c2NoYXIgX3BjcmVfT1BfbGVuZ3Roc1tdID0geyBPUF9MRU5HVEhTIH07Ci0KLQotCi0v
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAg
ICAgICAgVGFibGVzIGZvciBVVEYtOCBzdXBwb3J0ICAgICAgICAgICAgICoKLSoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIFRoZXNlIGFyZSB0
aGUgYnJlYWtwb2ludHMgZm9yIGRpZmZlcmVudCBudW1iZXJzIG9mIGJ5dGVzIGluIGEgVVRGLTgK
LWNoYXJhY3Rlci4gKi8KLQotY29uc3QgaW50IF9wY3JlX3V0ZjhfdGFibGUxW10gPQotICB7IDB4
N2YsIDB4N2ZmLCAweGZmZmYsIDB4MWZmZmZmLCAweDNmZmZmZmYsIDB4N2ZmZmZmZmZ9OwotCi1j
b25zdCBpbnQgX3BjcmVfdXRmOF90YWJsZTFfc2l6ZSA9IHNpemVvZihfcGNyZV91dGY4X3RhYmxl
MSkvc2l6ZW9mKGludCk7Ci0KLS8qIFRoZXNlIGFyZSB0aGUgaW5kaWNhdG9yIGJpdHMgYW5kIHRo
ZSBtYXNrIGZvciB0aGUgZGF0YSBiaXRzIHRvIHNldCBpbiB0aGUKLWZpcnN0IGJ5dGUgb2YgYSBj
aGFyYWN0ZXIsIGluZGV4ZWQgYnkgdGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIGJ5dGVzLiAqLwot
Ci1jb25zdCBpbnQgX3BjcmVfdXRmOF90YWJsZTJbXSA9IHsgMCwgICAgMHhjMCwgMHhlMCwgMHhm
MCwgMHhmOCwgMHhmY307Ci1jb25zdCBpbnQgX3BjcmVfdXRmOF90YWJsZTNbXSA9IHsgMHhmZiwg
MHgxZiwgMHgwZiwgMHgwNywgMHgwMywgMHgwMX07Ci0KLS8qIFRhYmxlIG9mIHRoZSBudW1iZXIg
b2YgZXh0cmEgY2hhcmFjdGVycywgaW5kZXhlZCBieSB0aGUgZmlyc3QgY2hhcmFjdGVyCi1tYXNr
ZWQgd2l0aCAweDNmLiBUaGUgaGlnaGVzdCBudW1iZXIgZm9yIGEgdmFsaWQgVVRGLTggY2hhcmFj
dGVyIGlzIGluIGZhY3QKLTB4M2QuICovCi0KLWNvbnN0IHVzY2hhciBfcGNyZV91dGY4X3RhYmxl
NFtdID0gewotICAxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLAotICAxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLAotICAyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LAotICAzLDMsMywzLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1IH07Ci0KLSNpbmNsdWRlICJjaGFy
dGFibGVzLmMiCi0KLS8qIEVuZCBvZiBwY3JlX3RhYmxlcy5jICovCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfdGFibGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfdGFibGVzLmNwcAkocmV2aXNpb24gMjc2NDgpCShmcm9tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV90YWJsZXMuYzoyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV90
YWJsZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODcgQEAKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgUGVybC1Db21wYXRp
YmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVu
Y3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBz
ZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUg
bGFuZ3VhZ2UuCisKKyAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6
ZWwKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1i
cmlkZ2UKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorKi8KKworCisvKiBUaGlzIG1vZHVsZSBjb250YWlucyBzb21lIGZpeGVkIHRh
YmxlcyB0aGF0IGFyZSB1c2VkIGJ5IG1vcmUgdGhhbiBvbmUgb2YgdGhlCitQQ1JFIGNvZGUgbW9k
dWxlcy4gVGhlIHRhYmxlcyBhcmUgYWxzbyAjaW5jbHVkZWQgYnkgdGhlIHBjcmV0ZXN0IHByb2dy
YW0sIHdoaWNoCit1c2VzIG1hY3JvcyB0byBjaGFuZ2UgdGhlaXIgbmFtZXMgZnJvbSBfcGNyZV94
eHggdG8geHh4eCwgdGhlcmVieSBhdm9pZGluZyBuYW1lCitjbGFzaGVzIHdpdGggdGhlIGxpYnJh
cnkuICovCisKKworI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKKworCisvKiBUYWJsZSBvZiBz
aXplcyBmb3IgdGhlIGZpeGVkLWxlbmd0aCBvcGNvZGVzLiBJdCdzIGRlZmluZWQgaW4gYSBtYWNy
byBzbyB0aGF0Cit0aGUgZGVmaW5pdGlvbiBpcyBuZXh0IHRvIHRoZSBkZWZpbml0aW9uIG9mIHRo
ZSBvcGNvZGVzIGluIHBjcmVfaW50ZXJuYWwuaC4gKi8KKworY29uc3QgdXNjaGFyIF9wY3JlX09Q
X2xlbmd0aHNbXSA9IHsgT1BfTEVOR1RIUyB9OworCisKKworLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgIFRhYmxlcyBmb3IgVVRG
LTggc3VwcG9ydCAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworCisvKiBUaGVzZSBhcmUgdGhlIGJyZWFrcG9pbnRzIGZvciBk
aWZmZXJlbnQgbnVtYmVycyBvZiBieXRlcyBpbiBhIFVURi04CitjaGFyYWN0ZXIuICovCisKK2Nv
bnN0IGludCBfcGNyZV91dGY4X3RhYmxlMVtdID0KKyAgeyAweDdmLCAweDdmZiwgMHhmZmZmLCAw
eDFmZmZmZiwgMHgzZmZmZmZmLCAweDdmZmZmZmZmfTsKKworY29uc3QgaW50IF9wY3JlX3V0Zjhf
dGFibGUxX3NpemUgPSBzaXplb2YoX3BjcmVfdXRmOF90YWJsZTEpL3NpemVvZihpbnQpOworCisv
KiBUaGVzZSBhcmUgdGhlIGluZGljYXRvciBiaXRzIGFuZCB0aGUgbWFzayBmb3IgdGhlIGRhdGEg
Yml0cyB0byBzZXQgaW4gdGhlCitmaXJzdCBieXRlIG9mIGEgY2hhcmFjdGVyLCBpbmRleGVkIGJ5
IHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBieXRlcy4gKi8KKworY29uc3QgaW50IF9wY3JlX3V0
ZjhfdGFibGUyW10gPSB7IDAsICAgIDB4YzAsIDB4ZTAsIDB4ZjAsIDB4ZjgsIDB4ZmN9OworY29u
c3QgaW50IF9wY3JlX3V0ZjhfdGFibGUzW10gPSB7IDB4ZmYsIDB4MWYsIDB4MGYsIDB4MDcsIDB4
MDMsIDB4MDF9OworCisvKiBUYWJsZSBvZiB0aGUgbnVtYmVyIG9mIGV4dHJhIGNoYXJhY3RlcnMs
IGluZGV4ZWQgYnkgdGhlIGZpcnN0IGNoYXJhY3RlcgorbWFza2VkIHdpdGggMHgzZi4gVGhlIGhp
Z2hlc3QgbnVtYmVyIGZvciBhIHZhbGlkIFVURi04IGNoYXJhY3RlciBpcyBpbiBmYWN0CisweDNk
LiAqLworCitjb25zdCB1c2NoYXIgX3BjcmVfdXRmOF90YWJsZTRbXSA9IHsKKyAgMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwKKyAgMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwKKyAgMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwKKyAgMywzLDMsMywzLDMsMywz
LDQsNCw0LDQsNSw1LDUsNSB9OworCisjaW5jbHVkZSAiY2hhcnRhYmxlcy5jIgorCisvKiBFbmQg
b2YgcGNyZV90YWJsZXMuYyAqLwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jcHAJ
KHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzEsMTIgQEAKLS8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3Vs
YXIgRXhwcmVzc2lvbnMgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8KLQotLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRv
IHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3Mg
YXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2Uu
CisvKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5
LiBXaGlsZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55
IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5
IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVp
cmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25s
eSB0aGUgZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9m
IFdlYktpdC4KIAotICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXpl
bAorICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCiAg
ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl
CisgICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MzcsMjMgKzM3LDExIEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICovCiAKLQogLyogVGhpcyBtb2R1bGUgY29udGFpbnMgc29tZSBmaXhlZCB0YWJs
ZXMgdGhhdCBhcmUgdXNlZCBieSBtb3JlIHRoYW4gb25lIG9mIHRoZQotUENSRSBjb2RlIG1vZHVs
ZXMuIFRoZSB0YWJsZXMgYXJlIGFsc28gI2luY2x1ZGVkIGJ5IHRoZSBwY3JldGVzdCBwcm9ncmFt
LCB3aGljaAotdXNlcyBtYWNyb3MgdG8gY2hhbmdlIHRoZWlyIG5hbWVzIGZyb20gX3BjcmVfeHh4
IHRvIHh4eHgsIHRoZXJlYnkgYXZvaWRpbmcgbmFtZQotY2xhc2hlcyB3aXRoIHRoZSBsaWJyYXJ5
LiAqLwotCitQQ1JFIGNvZGUgbW9kdWxlcy4gKi8KIAogI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwu
aCIKIAotCi0vKiBUYWJsZSBvZiBzaXplcyBmb3IgdGhlIGZpeGVkLWxlbmd0aCBvcGNvZGVzLiBJ
dCdzIGRlZmluZWQgaW4gYSBtYWNybyBzbyB0aGF0Ci10aGUgZGVmaW5pdGlvbiBpcyBuZXh0IHRv
IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBvcGNvZGVzIGluIHBjcmVfaW50ZXJuYWwuaC4gKi8KLQot
Y29uc3QgdXNjaGFyIF9wY3JlX09QX2xlbmd0aHNbXSA9IHsgT1BfTEVOR1RIUyB9OwotCi0KLQog
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICAg
ICAgICAgIFRhYmxlcyBmb3IgVVRGLTggc3VwcG9ydCAgICAgICAgICAgICAqCiAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtODMsNSArNzEsMyBA
QCBjb25zdCB1c2NoYXIgX3BjcmVfdXRmOF90YWJsZTRbXSA9IHsKICAgMywzLDMsMywzLDMsMywz
LDQsNCw0LDQsNSw1LDUsNSB9OwogCiAjaW5jbHVkZSAiY2hhcnRhYmxlcy5jIgotCi0vKiBFbmQg
b2YgcGNyZV90YWJsZXMuYyAqLwpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9z
ZWFyY2hmdW5jcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bf
c2VhcmNoZnVuY3MuYwkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3Bj
cmVfdWNwX3NlYXJjaGZ1bmNzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAxICswLDAgQEAKLS8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAg
UGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogUENSRSBpcyBhIGxp
YnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBz
eW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9m
IHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBi
eSBQaGlsaXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVy
c2l0eSBvZiBDYW1icmlkZ2UKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8KLQotCi0vKiBUaGlzIG1vZHVsZSBjb250YWlucyBj
b2RlIGZvciBzZWFyY2hpbmcgdGhlIHRhYmxlIG9mIFVuaWNvZGUgY2hhcmFjdGVyCi1wcm9wZXJ0
aWVzLiAqLwotCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgotCi0jaW5jbHVkZSAidWNwaW50
ZXJuYWwuaCIgICAgICAgLyogSW50ZXJuYWwgdGFibGUgZGV0YWlscyAqLwotI2luY2x1ZGUgInVj
cHRhYmxlLmMiICAgICAgICAgIC8qIFRoZSB0YWJsZSBpdHNlbGYgKi8KLQotCi0vKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICBTZWFyY2gg
dGFibGUgYW5kIHJldHVybiBvdGhlciBjYXNlICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIElmIHRoZSBnaXZlbiBjaGFyYWN0
ZXIgaXMgYSBsZXR0ZXIsIGFuZCB0aGVyZSBpcyBhbm90aGVyIGNhc2UgZm9yIHRoZQotbGV0dGVy
LCByZXR1cm4gdGhlIG90aGVyIGNhc2UuIE90aGVyd2lzZSwgcmV0dXJuIC0xLgotCi1Bcmd1bWVu
dHM6Ci0gIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUKLQotUmV0dXJuczogICAgICB0
aGUgb3RoZXIgY2FzZSBvciAtMSBpZiBub25lCi0qLwotCi1pbnQKLV9wY3JlX3VjcF9vdGhlcmNh
c2UoY29uc3QgaW50IGMpCi17Ci1pbnQgYm90ID0gMDsKLWludCB0b3AgPSBzaXplb2YodWNwX3Rh
YmxlKS9zaXplb2YoY25vZGUpOwotaW50IG1pZCwgb2Zmc2V0OwotCi0vKiBUaGUgdGFibGUgaXMg
c2VhcmNoZWQgdXNpbmcgYSBiaW5hcnkgY2hvcC4gWW91IG1pZ2h0IHRoaW5rIHRoYXQgdXNpbmcK
LWludGVybWVkaWF0ZSB2YXJpYWJsZXMgdG8gaG9sZCBzb21lIG9mIHRoZSBjb21tb24gZXhwcmVz
c2lvbnMgd291bGQgc3BlZWQKLXRoaW5ncyB1cCwgYnV0IHRlc3RzIHdpdGggZ2NjIDMuNC40IG9u
IExpbnV4IHNob3dlZCB0aGF0LCBvbiB0aGUgY29udHJhcnksIGl0Ci1tYWtlcyB0aGluZ3MgYSBs
b3Qgc2xvd2VyLiAqLwotCi1mb3IgKDs7KQotICB7Ci0gIGlmICh0b3AgPD0gYm90KSByZXR1cm4g
LTE7Ci0gIG1pZCA9IChib3QgKyB0b3ApID4+IDE7Ci0gIGlmIChjID09ICh1Y3BfdGFibGVbbWlk
XS5mMCAmIGYwX2NoYXJtYXNrKSkgYnJlYWs7Ci0gIGlmIChjIDwgKHVjcF90YWJsZVttaWRdLmYw
ICYgZjBfY2hhcm1hc2spKSB0b3AgPSBtaWQ7Ci0gIGVsc2UKLSAgICB7Ci0gICAgaWYgKCh1Y3Bf
dGFibGVbbWlkXS5mMCAmIGYwX3JhbmdlZmxhZykgIT0gMCAmJgotICAgICAgICBjIDw9ICh1Y3Bf
dGFibGVbbWlkXS5mMCAmIGYwX2NoYXJtYXNrKSArCi0gICAgICAgICAgICAgKHVjcF90YWJsZVtt
aWRdLmYxICYgZjFfcmFuZ2VtYXNrKSkgYnJlYWs7Ci0gICAgYm90ID0gbWlkICsgMTsKLSAgICB9
Ci0gIH0KLQotLyogRm91bmQgYW4gZW50cnkgaW4gdGhlIHRhYmxlLiBSZXR1cm4gLTEgZm9yIGEg
cmFuZ2UgZW50cnkuIE90aGVyd2lzZSByZXR1cm4KLXRoZSBvdGhlciBjYXNlIGlmIHRoZXJlIGlz
IG9uZSwgZWxzZSAtMS4gKi8KLQotaWYgKCh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX3JhbmdlZmxh
ZykgIT0gMCkgcmV0dXJuIC0xOwotCi1vZmZzZXQgPSB1Y3BfdGFibGVbbWlkXS5mMSAmIGYxX2Nh
c2VtYXNrOwotaWYgKChvZmZzZXQgJiBmMV9jYXNlbmVnKSAhPSAwKSBvZmZzZXQgfD0gZjFfY2Fz
ZW5lZzsKLXJldHVybiAob2Zmc2V0ID09IDApPyAtMSA6IGMgKyBvZmZzZXQ7Ci19Ci0KLQotLyog
RW5kIG9mIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3Bj
cmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCShyZXZpc2lvbiAyNzY0OCkJKGZyb20gSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jOjI3NjQ4KQorKysgSmF2YVNj
cmlwdENvcmUvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAg
ICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
KworLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBl
eHByZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBv
c3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisKKyAgICAgICAgICAgICAg
ICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgQ29weXJpZ2h0IChj
KSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRn
ZSBub3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAgIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKworCisvKiBUaGlz
IG1vZHVsZSBjb250YWlucyBjb2RlIGZvciBzZWFyY2hpbmcgdGhlIHRhYmxlIG9mIFVuaWNvZGUg
Y2hhcmFjdGVyCitwcm9wZXJ0aWVzLiAqLworCisjaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgor
CisjaW5jbHVkZSAidWNwaW50ZXJuYWwuaCIgICAgICAgLyogSW50ZXJuYWwgdGFibGUgZGV0YWls
cyAqLworI2luY2x1ZGUgInVjcHRhYmxlLmMiICAgICAgICAgIC8qIFRoZSB0YWJsZSBpdHNlbGYg
Ki8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgICAgICBTZWFyY2ggdGFibGUgYW5kIHJldHVybiBvdGhlciBjYXNlICAgICAgICoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIElm
IHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSBsZXR0ZXIsIGFuZCB0aGVyZSBpcyBhbm90aGVyIGNh
c2UgZm9yIHRoZQorbGV0dGVyLCByZXR1cm4gdGhlIG90aGVyIGNhc2UuIE90aGVyd2lzZSwgcmV0
dXJuIC0xLgorCitBcmd1bWVudHM6CisgIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUK
KworUmV0dXJuczogICAgICB0aGUgb3RoZXIgY2FzZSBvciAtMSBpZiBub25lCisqLworCitpbnQK
K19wY3JlX3VjcF9vdGhlcmNhc2UoY29uc3QgaW50IGMpCit7CitpbnQgYm90ID0gMDsKK2ludCB0
b3AgPSBzaXplb2YodWNwX3RhYmxlKS9zaXplb2YoY25vZGUpOworaW50IG1pZCwgb2Zmc2V0Owor
CisvKiBUaGUgdGFibGUgaXMgc2VhcmNoZWQgdXNpbmcgYSBiaW5hcnkgY2hvcC4gWW91IG1pZ2h0
IHRoaW5rIHRoYXQgdXNpbmcKK2ludGVybWVkaWF0ZSB2YXJpYWJsZXMgdG8gaG9sZCBzb21lIG9m
IHRoZSBjb21tb24gZXhwcmVzc2lvbnMgd291bGQgc3BlZWQKK3RoaW5ncyB1cCwgYnV0IHRlc3Rz
IHdpdGggZ2NjIDMuNC40IG9uIExpbnV4IHNob3dlZCB0aGF0LCBvbiB0aGUgY29udHJhcnksIGl0
CittYWtlcyB0aGluZ3MgYSBsb3Qgc2xvd2VyLiAqLworCitmb3IgKDs7KQorICB7CisgIGlmICh0
b3AgPD0gYm90KSByZXR1cm4gLTE7CisgIG1pZCA9IChib3QgKyB0b3ApID4+IDE7CisgIGlmIChj
ID09ICh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX2NoYXJtYXNrKSkgYnJlYWs7CisgIGlmIChjIDwg
KHVjcF90YWJsZVttaWRdLmYwICYgZjBfY2hhcm1hc2spKSB0b3AgPSBtaWQ7CisgIGVsc2UKKyAg
ICB7CisgICAgaWYgKCh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX3JhbmdlZmxhZykgIT0gMCAmJgor
ICAgICAgICBjIDw9ICh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX2NoYXJtYXNrKSArCisgICAgICAg
ICAgICAgKHVjcF90YWJsZVttaWRdLmYxICYgZjFfcmFuZ2VtYXNrKSkgYnJlYWs7CisgICAgYm90
ID0gbWlkICsgMTsKKyAgICB9CisgIH0KKworLyogRm91bmQgYW4gZW50cnkgaW4gdGhlIHRhYmxl
LiBSZXR1cm4gLTEgZm9yIGEgcmFuZ2UgZW50cnkuIE90aGVyd2lzZSByZXR1cm4KK3RoZSBvdGhl
ciBjYXNlIGlmIHRoZXJlIGlzIG9uZSwgZWxzZSAtMS4gKi8KKworaWYgKCh1Y3BfdGFibGVbbWlk
XS5mMCAmIGYwX3JhbmdlZmxhZykgIT0gMCkgcmV0dXJuIC0xOworCitvZmZzZXQgPSB1Y3BfdGFi
bGVbbWlkXS5mMSAmIGYxX2Nhc2VtYXNrOworaWYgKChvZmZzZXQgJiBmMV9jYXNlbmVnKSAhPSAw
KSBvZmZzZXQgfD0gZjFfY2FzZW5lZzsKK3JldHVybiAob2Zmc2V0ID09IDApPyAtMSA6IGMgKyBv
ZmZzZXQ7Cit9CisKKworLyogRW5kIG9mIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmMgKi8KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCShyZXZpc2lv
biAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACi0vKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1
bGFyIEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiovCi0KLS8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0
byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4Ci1hbmQgc2VtYW50aWNz
IGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdl
LgorLyogVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUgbGlicmFy
eS4gV2hpbGUgdGhpcyBsaWJyYXJ5CitzdGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFu
eSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KK3JlbW92ZWQuIFRoaXMgbGlicmFy
eSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzCityZXF1
aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9u
bHkgdGhlIGZ1bmN0aW9ucworbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBv
ZiBXZWJLaXQuCiAKLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6
ZWwKKyAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAog
ICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRn
ZQorICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTQ0LDggKzQ0LDcgQEAgcHJvcGVydGllcy4gKi8KICNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgi
CiAKICNpbmNsdWRlICJ1Y3BpbnRlcm5hbC5oIiAgICAgICAvKiBJbnRlcm5hbCB0YWJsZSBkZXRh
aWxzICovCi0jaW5jbHVkZSAidWNwdGFibGUuYyIgICAgICAgICAgLyogVGhlIHRhYmxlIGl0c2Vs
ZiAqLwotCisjaW5jbHVkZSAidWNwdGFibGUuY3BwIiAgICAgICAgLyogVGhlIHRhYmxlIGl0c2Vs
ZiAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKiAgICAgICBTZWFyY2ggdGFibGUgYW5kIHJldHVybiBvdGhlciBjYXNlICAgICAgICoKQEAg
LTk2LDYgKzk1LDMgQEAgb2Zmc2V0ID0gdWNwX3RhYmxlW21pZF0uZjEgJiBmMV9jYXNlbWFzawog
aWYgKChvZmZzZXQgJiBmMV9jYXNlbmVnKSAhPSAwKSBvZmZzZXQgfD0gZjFfY2FzZW5lZzsKIHJl
dHVybiAob2Zmc2V0ID09IDApPyAtMSA6IGMgKyBvZmZzZXQ7CiB9Ci0KLQotLyogRW5kIG9mIHBj
cmVfdWNwX3NlYXJjaGZ1bmNzLmMgKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV94
Y2xhc3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfeGNsYXNzLmMJ
KHJldmlzaW9uIDI3NjQ4KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3hjbGFzcy5jCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDEwNCArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFy
IEV4cHJlc3Npb25zICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCi0KLS8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0byBz
dXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4Ci1hbmQgc2VtYW50aWNzIGFy
ZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgot
Ci0gICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAgICAg
ICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVy
c2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LSovCi0KLQotLyogVGhpcyBtb2R1bGUgY29udGFpbnMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhh
dCBpcyB1c2VkIHRvIG1hdGNoIGFuIGV4dGVuZGVkCi1jbGFzcyAob25lIHRoYXQgY29udGFpbnMg
Y2hhcmFjdGVycyB3aG9zZSB2YWx1ZXMgYXJlID4gMjU1KS4gSXQgaXMgdXNlZCBieSBib3RoCi1w
Y3JlX2V4ZWMoKSBhbmQgcGNyZV9kZWZfZXhlYygpLiAqLwotCi0KLSNpbmNsdWRlICJwY3JlX2lu
dGVybmFsLmgiCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogICAgICAgTWF0Y2ggY2hhcmFjdGVyIGFnYWluc3QgYW4gWENMQVNTICAgICAg
ICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwot
Ci0vKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYXRjaCBhIGNoYXJhY3RlciBhZ2FpbnN0
IGFuIGV4dGVuZGVkIGNsYXNzIHRoYXQKLW1pZ2h0IGNvbnRhaW4gdmFsdWVzID4gMjU1LgotCi1B
cmd1bWVudHM6Ci0gIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIKLSAgZGF0YSAgICAgICAgcG9p
bnRzIHRvIHRoZSBmbGFnIGJ5dGUgb2YgdGhlIFhDTEFTUyBkYXRhCi0KLVJldHVybnM6ICAgICAg
VFJVRSBpZiBjaGFyYWN0ZXIgbWF0Y2hlcywgZWxzZSBGQUxTRQotKi8KLQotQk9PTAotX3BjcmVf
eGNsYXNzKGludCBjLCBjb25zdCB1c2NoYXIgKmRhdGEpCi17Ci1pbnQgdDsKLUJPT0wgbmVnYXRl
ZCA9ICgqZGF0YSAmIFhDTF9OT1QpICE9IDA7Ci0KLS8qIENoYXJhY3RlciB2YWx1ZXMgPCAyNTYg
YXJlIG1hdGNoZWQgYWdhaW5zdCBhIGJpdG1hcCwgaWYgb25lIGlzIHByZXNlbnQuIElmCi1ub3Qs
IHdlIHN0aWxsIGNhcnJ5IG9uLCBiZWNhdXNlIHRoZXJlIG1heSBiZSByYW5nZXMgdGhhdCBzdGFy
dCBiZWxvdyAyNTYgaW4gdGhlCi1hZGRpdGlvbmFsIGRhdGEuICovCi0KLWlmIChjIDwgMjU2KQot
ICB7Ci0gIGlmICgoKmRhdGEgJiBYQ0xfTUFQKSAhPSAwICYmIChkYXRhWzEgKyBjLzhdICYgKDEg
PDwgKGMmNykpKSAhPSAwKQotICAgIHJldHVybiAhbmVnYXRlZDsgICAvKiBjaGFyIGZvdW5kICov
Ci0gIH0KLQotLyogRmlyc3Qgc2tpcCB0aGUgYml0IG1hcCBpZiBwcmVzZW50LiBUaGVuIG1hdGNo
IGFnYWluc3QgdGhlIGxpc3Qgb2YgVW5pY29kZQotcHJvcGVydGllcyBvciBsYXJnZSBjaGFycyBv
ciByYW5nZXMgdGhhdCBlbmQgd2l0aCBhIGxhcmdlIGNoYXIuIFdlIHdvbid0IGV2ZXIKLWVuY291
bnRlciBYQ0xfUFJPUCBvciBYQ0xfTk9UUFJPUCB3aGVuIFVDUCBzdXBwb3J0IGlzIG5vdCBjb21w
aWxlZC4gKi8KLQotaWYgKCgqZGF0YSsrICYgWENMX01BUCkgIT0gMCkgZGF0YSArPSAzMjsKLQot
d2hpbGUgKCh0ID0gKmRhdGErKykgIT0gWENMX0VORCkKLSAgewotICBpbnQgeCwgeTsKLSAgaWYg
KHQgPT0gWENMX1NJTkdMRSkKLSAgICB7Ci0gICAgR0VUVVRGOENIQVJJTkMoeCwgZGF0YSk7Ci0g
ICAgaWYgKGMgPT0geCkgcmV0dXJuICFuZWdhdGVkOwotICAgIH0KLSAgZWxzZSBpZiAodCA9PSBY
Q0xfUkFOR0UpCi0gICAgewotICAgIEdFVFVURjhDSEFSSU5DKHgsIGRhdGEpOwotICAgIEdFVFVU
RjhDSEFSSU5DKHksIGRhdGEpOwotICAgIGlmIChjID49IHggJiYgYyA8PSB5KSByZXR1cm4gIW5l
Z2F0ZWQ7Ci0gICAgfQotICB9Ci0KLXJldHVybiBuZWdhdGVkOyAgIC8qIGNoYXIgZGlkIG5vdCBt
YXRjaCAqLwotfQotCi0vKiBFbmQgb2YgcGNyZV94Y2xhc3MuYyAqLwpJbmRleDogSmF2YVNjcmlw
dENvcmUvcGNyZS9wY3JlX3hjbGFzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlX3hjbGFzcy5jcHAJKHJldmlzaW9uIDI3NjQ4KQkoZnJvbSBKYXZhU2NyaXB0Q29y
ZS9wY3JlL3BjcmVfeGNsYXNzLmM6Mjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVf
eGNsYXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBAQAorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICBQZXJsLUNvbXBh
dGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBQQ1JFIGlzIGEgbGlicmFyeSBvZiBm
dW5jdGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25zIHdob3NlIHN5bnRheAorYW5k
IHNlbWFudGljcyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwg
NSBsYW5ndWFnZS4KKworICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBI
YXplbAorICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENh
bWJyaWRnZQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKKworICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKyAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgICAg
ICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCitBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCitMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCitJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
K0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFCitQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisqLworCisKKy8qIFRoaXMgbW9kdWxlIGNvbnRhaW5zIGFuIGludGVybmFs
IGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBtYXRjaCBhbiBleHRlbmRlZAorY2xhc3MgKG9uZSB0
aGF0IGNvbnRhaW5zIGNoYXJhY3RlcnMgd2hvc2UgdmFsdWVzIGFyZSA+IDI1NSkuIEl0IGlzIHVz
ZWQgYnkgYm90aAorcGNyZV9leGVjKCkgYW5kIHBjcmVfZGVmX2V4ZWMoKS4gKi8KKworCisjaW5j
bHVkZSAicGNyZV9pbnRlcm5hbC5oIgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgICAgIE1hdGNoIGNoYXJhY3RlciBhZ2FpbnN0IGFu
IFhDTEFTUyAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKi8KKworLyogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWF0Y2ggYSBjaGFy
YWN0ZXIgYWdhaW5zdCBhbiBleHRlbmRlZCBjbGFzcyB0aGF0CittaWdodCBjb250YWluIHZhbHVl
cyA+IDI1NS4KKworQXJndW1lbnRzOgorICBjICAgICAgICAgICB0aGUgY2hhcmFjdGVyCisgIGRh
dGEgICAgICAgIHBvaW50cyB0byB0aGUgZmxhZyBieXRlIG9mIHRoZSBYQ0xBU1MgZGF0YQorCitS
ZXR1cm5zOiAgICAgIFRSVUUgaWYgY2hhcmFjdGVyIG1hdGNoZXMsIGVsc2UgRkFMU0UKKyovCisK
K0JPT0wKK19wY3JlX3hjbGFzcyhpbnQgYywgY29uc3QgdXNjaGFyICpkYXRhKQoreworaW50IHQ7
CitCT09MIG5lZ2F0ZWQgPSAoKmRhdGEgJiBYQ0xfTk9UKSAhPSAwOworCisvKiBDaGFyYWN0ZXIg
dmFsdWVzIDwgMjU2IGFyZSBtYXRjaGVkIGFnYWluc3QgYSBiaXRtYXAsIGlmIG9uZSBpcyBwcmVz
ZW50LiBJZgorbm90LCB3ZSBzdGlsbCBjYXJyeSBvbiwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgcmFu
Z2VzIHRoYXQgc3RhcnQgYmVsb3cgMjU2IGluIHRoZQorYWRkaXRpb25hbCBkYXRhLiAqLworCitp
ZiAoYyA8IDI1NikKKyAgeworICBpZiAoKCpkYXRhICYgWENMX01BUCkgIT0gMCAmJiAoZGF0YVsx
ICsgYy84XSAmICgxIDw8IChjJjcpKSkgIT0gMCkKKyAgICByZXR1cm4gIW5lZ2F0ZWQ7ICAgLyog
Y2hhciBmb3VuZCAqLworICB9CisKKy8qIEZpcnN0IHNraXAgdGhlIGJpdCBtYXAgaWYgcHJlc2Vu
dC4gVGhlbiBtYXRjaCBhZ2FpbnN0IHRoZSBsaXN0IG9mIFVuaWNvZGUKK3Byb3BlcnRpZXMgb3Ig
bGFyZ2UgY2hhcnMgb3IgcmFuZ2VzIHRoYXQgZW5kIHdpdGggYSBsYXJnZSBjaGFyLiBXZSB3b24n
dCBldmVyCitlbmNvdW50ZXIgWENMX1BST1Agb3IgWENMX05PVFBST1Agd2hlbiBVQ1Agc3VwcG9y
dCBpcyBub3QgY29tcGlsZWQuICovCisKK2lmICgoKmRhdGErKyAmIFhDTF9NQVApICE9IDApIGRh
dGEgKz0gMzI7CisKK3doaWxlICgodCA9ICpkYXRhKyspICE9IFhDTF9FTkQpCisgIHsKKyAgaW50
IHgsIHk7CisgIGlmICh0ID09IFhDTF9TSU5HTEUpCisgICAgeworICAgIEdFVFVURjhDSEFSSU5D
KHgsIGRhdGEpOworICAgIGlmIChjID09IHgpIHJldHVybiAhbmVnYXRlZDsKKyAgICB9CisgIGVs
c2UgaWYgKHQgPT0gWENMX1JBTkdFKQorICAgIHsKKyAgICBHRVRVVEY4Q0hBUklOQyh4LCBkYXRh
KTsKKyAgICBHRVRVVEY4Q0hBUklOQyh5LCBkYXRhKTsKKyAgICBpZiAoYyA+PSB4ICYmIGMgPD0g
eSkgcmV0dXJuICFuZWdhdGVkOworICAgIH0KKyAgfQorCityZXR1cm4gbmVnYXRlZDsgICAvKiBj
aGFyIGRpZCBub3QgbWF0Y2ggKi8KK30KKworLyogRW5kIG9mIHBjcmVfeGNsYXNzLmMgKi8KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV94Y2xhc3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV94Y2xhc3MuY3BwCShyZXZpc2lvbiAyNzY0OCkKKysrIEph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV94Y2xhc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEy
ICsxLDEyIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICoK
LSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBU
aGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGls
ZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRo
ZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBz
dXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKK3JlcXVpcmVkIGJ5
IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUg
ZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktp
dC4KIAotLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxh
ciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFz
IHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAg
ICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgICAgICAgT3Jp
Z2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAogICAgICAgICAgICBDb3B5cmlnaHQgKGMp
IDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorICAgIENvcHlyaWdodCAoQykgMjAw
MiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM3LDE1ICszNywxMSBAQCBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwogCi0KIC8qIFRo
aXMgbW9kdWxlIGNvbnRhaW5zIGFuIGludGVybmFsIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBt
YXRjaCBhbiBleHRlbmRlZAotY2xhc3MgKG9uZSB0aGF0IGNvbnRhaW5zIGNoYXJhY3RlcnMgd2hv
c2UgdmFsdWVzIGFyZSA+IDI1NSkuIEl0IGlzIHVzZWQgYnkgYm90aAotcGNyZV9leGVjKCkgYW5k
IHBjcmVfZGVmX2V4ZWMoKS4gKi8KLQorY2xhc3MgKG9uZSB0aGF0IGNvbnRhaW5zIGNoYXJhY3Rl
cnMgd2hvc2UgdmFsdWVzIGFyZSA+IDI1NSkuICovCiAKICNpbmNsdWRlICJwY3JlX2ludGVybmFs
LmgiCiAKLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKICogICAgICAgTWF0Y2ggY2hhcmFjdGVyIGFnYWluc3QgYW4gWENMQVNTICAgICAgICAqCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMTAw
LDUgKzk2LDMgQEAgd2hpbGUgKCh0ID0gKmRhdGErKykgIT0gWENMX0VORCkKIAogcmV0dXJuIG5l
Z2F0ZWQ7ICAgLyogY2hhciBkaWQgbm90IG1hdGNoICovCiB9Ci0KLS8qIEVuZCBvZiBwY3JlX3hj
bGFzcy5jICovCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3VjcGludGVybmFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS91Y3BpbnRlcm5hbC5oCShyZXZpc2lvbiAyNzY0
OCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvdWNwaW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDQyIEBACisvKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0
aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKK3N0YXJ0ZWQgb3V0IGFzIGEgY29w
eSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgorcmVtb3Zl
ZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24g
ZmVhdHVyZXMKK3JlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRp
b24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCituZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUg
YW5kIHRoZSByZXN0IG9mIFdlYktpdC4KKworICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdy
aXR0ZW4gYnkgUGhpbGlwIEhhemVsCisgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2
IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAy
MDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKKyAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh
bWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAgIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisK
K1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UK
K0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKwogLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICAgICAg
ICAgIFVuaWNvZGUgUHJvcGVydHkgVGFibGUgaGFuZGxlciAgICAgICAqCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpJbmRleDogSmF2YVNjcmlwdENv
cmUvcGNyZS91Y3B0YWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvdWNw
dGFibGUuYwkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3VjcHRhYmxl
LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMjk2OCArMCwwIEBACi0vKiBUaGlzIHNvdXJjZSBtb2R1
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgVW5pY29kZQotcHJvcGVydHkg
dGFibGUuIFNlZSB1Y3BpbnRlcm5hbC5oIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBsYXlvdXQu
ICovCi0KLXN0YXRpYyBjb25zdCBjbm9kZSB1Y3BfdGFibGVbXSA9IHsKLSAgeyAweDA5ODAwMDAw
LCAweDAwMDAwMDFmIH0sCi0gIHsgMHgwOTAwMDAyMCwgMHg3NDAwMDAwMCB9LAotICB7IDB4MDk4
MDAwMjEsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5MDAwMDI0LCAweDVjMDAwMDAwIH0sCi0gIHsg
MHgwOTgwMDAyNSwgMHg1NDAwMDAwMiB9LAotICB7IDB4MDkwMDAwMjgsIDB4NTgwMDAwMDAgfSwK
LSAgeyAweDA5MDAwMDI5LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDAyYSwgMHg1NDAwMDAw
MCB9LAotICB7IDB4MDkwMDAwMmIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDJjLCAweDU0
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDAyZCwgMHg0NDAwMDAwMCB9LAotICB7IDB4MDk4MDAwMmUs
IDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5ODAwMDMwLCAweDM0MDAwMDA5IH0sCi0gIHsgMHgwOTgw
MDAzYSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDk4MDAwM2MsIDB4NjQwMDAwMDIgfSwKLSAgeyAw
eDA5ODAwMDNmLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDA0MSwgMHgyNDAwMDAyMCB9LAot
ICB7IDB4MjEwMDAwNDIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDQzLCAweDI0MDAwMDIw
IH0sCi0gIHsgMHgyMTAwMDA0NCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNDUsIDB4MjQw
MDAwMjAgfSwKLSAgeyAweDIxMDAwMDQ2LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0Nywg
MHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNDgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAw
MDQ5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0YSwgMHgyNDAwMDAyMCB9LAotICB7IDB4
MjEwMDAwNGIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDRjLCAweDI0MDAwMDIwIH0sCi0g
IHsgMHgyMTAwMDA0ZCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNGUsIDB4MjQwMDAwMjAg
fSwKLSAgeyAweDIxMDAwMDRmLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1MCwgMHgyNDAw
MDAyMCB9LAotICB7IDB4MjEwMDAwNTEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDUyLCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1MywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAw
NTQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDU1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgy
MTAwMDA1NiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNTcsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDIxMDAwMDU4LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1OSwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MjEwMDAwNWEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDA5MDAwMDViLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMDA1YywgMHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMDAwNWQsIDB4
NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDVlLCAweDYwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMDA1
ZiwgMHg0MDAwMDAwMCB9LAotICB7IDB4MDkwMDAwNjAsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDIx
MDAwMDYxLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2MiwgMHgxNDAwZmZlMCB9LAotICB7
IDB4MjEwMDAwNjMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDY0LCAweDE0MDBmZmUwIH0s
Ci0gIHsgMHgyMTAwMDA2NSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNjYsIDB4MTQwMGZm
ZTAgfSwKLSAgeyAweDIxMDAwMDY3LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2OCwgMHgx
NDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNjksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDZh
LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2YiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEw
MDAwNmMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDZkLCAweDE0MDBmZmUwIH0sCi0gIHsg
MHgyMTAwMDA2ZSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNmYsIDB4MTQwMGZmZTAgfSwK
LSAgeyAweDIxMDAwMDcwLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3MSwgMHgxNDAwZmZl
MCB9LAotICB7IDB4MjEwMDAwNzIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDczLCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3NCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzUs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDc2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAw
MDA3NywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzgsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDIxMDAwMDc5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3YSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MDkwMDAwN2IsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDdjLCAweDY0MDAwMDAw
IH0sCi0gIHsgMHgwOTAwMDA3ZCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwN2UsIDB4NjQw
MDAwMDAgfSwKLSAgeyAweDA5ODAwMDdmLCAweDAwMDAwMDIwIH0sCi0gIHsgMHgwOTAwMDBhMCwg
MHg3NDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYTEsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5ODAw
MGEyLCAweDVjMDAwMDAzIH0sCi0gIHsgMHgwOTgwMDBhNiwgMHg2ODAwMDAwMSB9LAotICB7IDB4
MDkwMDAwYTgsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGE5LCAweDY4MDAwMDAwIH0sCi0g
IHsgMHgyMTAwMDBhYSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYWIsIDB4NTAwMDAwMDAg
fSwKLSAgeyAweDA5MDAwMGFjLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBhZCwgMHgwNDAw
MDAwMCB9LAotICB7IDB4MDkwMDAwYWUsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGFmLCAw
eDYwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBiMCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDAw
YjEsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAwMGIyLCAweDNjMDAwMDAxIH0sCi0gIHsgMHgw
OTAwMDBiNCwgMHg2MDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYjUsIDB4MTQwMDAyZTcgfSwKLSAg
eyAweDA5MDAwMGI2LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBiNywgMHg1NDAwMDAwMCB9
LAotICB7IDB4MDkwMDAwYjgsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGI5LCAweDNjMDAw
MDAwIH0sCi0gIHsgMHgyMTAwMDBiYSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYmIsIDB4
NGMwMDAwMDAgfSwKLSAgeyAweDA5ODAwMGJjLCAweDNjMDAwMDAyIH0sCi0gIHsgMHgwOTAwMDBi
ZiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MjEwMDAwYzAsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIx
MDAwMGMxLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjMiwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MjEwMDAwYzMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGM0LCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgyMTAwMDBjNSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzYsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDAwMGM3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjOCwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGNh
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjYiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MDAwY2MsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGNkLCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgyMTAwMDBjZSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwY2YsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDIxMDAwMGQwLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkMSwgMHgyNDAwMDAy
MCB9LAotICB7IDB4MjEwMDAwZDIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGQzLCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkNCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZDUs
IDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGQ2LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwOTAw
MDBkNywgMHg2NDAwMDAwMCB9LAotICB7IDB4MjEwMDAwZDgsIDB4MjQwMDAwMjAgfSwKLSAgeyAw
eDIxMDAwMGQ5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkYSwgMHgyNDAwMDAyMCB9LAot
ICB7IDB4MjEwMDAwZGIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGRjLCAweDI0MDAwMDIw
IH0sCi0gIHsgMHgyMTAwMDBkZCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZGUsIDB4MjQw
MDAwMjAgfSwKLSAgeyAweDIxMDAwMGRmLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDBlMCwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZTEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAw
MGUyLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlMywgMHgxNDAwZmZlMCB9LAotICB7IDB4
MjEwMDAwZTQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGU1LCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwMDBlNiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZTcsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDAwMGU4LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlOSwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMDAwZWEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGViLCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlYywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAw
ZWQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGVlLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgy
MTAwMDBlZiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjAsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDIxMDAwMGYxLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmMiwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MjEwMDAwZjMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGY0LCAweDE0MDBm
ZmUwIH0sCi0gIHsgMHgyMTAwMDBmNSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjYsIDB4
MTQwMGZmZTAgfSwKLSAgeyAweDA5MDAwMGY3LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDBm
OCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIx
MDAwMGZhLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmYiwgMHgxNDAwZmZlMCB9LAotICB7
IDB4MjEwMDAwZmMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGZkLCAweDE0MDBmZmUwIH0s
Ci0gIHsgMHgyMTAwMDBmZSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZmYsIDB4MTQwMDAw
NzkgfSwKLSAgeyAweDIxMDAwMTAwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEwMSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTAz
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxMDUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTA2LCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDEwNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMDgsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMTA5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwYSwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxMGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTBjLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEwZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMGUs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTBmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDExMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMTEyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExMywgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAxMTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTE1LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMDExNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMTcsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMTE4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExOSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MTFiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDExYywgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAxMWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTFlLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDExZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMjAsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMTIxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEyMiwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAxMjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTI0LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEyNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
MjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTI3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDEyOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMjksIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMTJhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEyYiwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAxMmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTJkLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDEyZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMmYsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTMwLCAweDI0MDBmZjM5IH0sCi0gIHsgMHgyMTAwMDEz
MSwgMHgxNDAwZmYxOCB9LAotICB7IDB4MjEwMDAxMzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMTMzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEzNCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAxMzUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTM2LCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMDEzNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMzgsIDB4MTQwMDAw
MDAgfSwKLSAgeyAweDIxMDAwMTM5LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEzYSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxM2IsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTNj
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEzZCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxM2UsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTNmLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDE0MCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNDEsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMTQyLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0MywgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxNDQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTQ1LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE0NiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNDcs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTQ4LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDE0OSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAxNGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMTRiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0YywgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAxNGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTRlLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDE0ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNTAsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMTUxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE1Miwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MTU0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDAxNTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTU3LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDE1OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNTksIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAwMTVhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1YiwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDAxNWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTVkLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE1ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAx
NWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTYwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDE2MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNjIsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAwMTYzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2NCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAxNjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTY2LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDE2NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNjgsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2
YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMTZjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE2ZCwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxNmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTZmLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDE3MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNzEsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMTcyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3MywgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTc1
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE3NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxNzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTc4LCAweDI0MDBmZjg3IH0sCi0gIHsg
MHgyMTAwMDE3OSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxN2EsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMTdiLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3YywgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxN2QsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTdlLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE3ZiwgMHgxNDAwZmVkNCB9LAotICB7IDB4MjEwMDAxODAs
IDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMTgxLCAweDI0MDAwMGQyIH0sCi0gIHsgMHgyMTAw
MDE4MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxODMsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMTg0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE4NSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAxODYsIDB4MjQwMDAwY2UgfSwKLSAgeyAweDIxMDAwMTg3LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDE4OCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxODksIDB4MjQw
MDAwY2QgfSwKLSAgeyAweDIxMDAwMThhLCAweDI0MDAwMGNkIH0sCi0gIHsgMHgyMTAwMDE4Yiwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxOGMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MThkLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDE4ZSwgMHgyNDAwMDA0ZiB9LAotICB7IDB4
MjEwMDAxOGYsIDB4MjQwMDAwY2EgfSwKLSAgeyAweDIxMDAwMTkwLCAweDI0MDAwMGNiIH0sCi0g
IHsgMHgyMTAwMDE5MSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxOTIsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAwMTkzLCAweDI0MDAwMGNkIH0sCi0gIHsgMHgyMTAwMDE5NCwgMHgyNDAw
MDBjZiB9LAotICB7IDB4MjEwMDAxOTUsIDB4MTQwMDAwNjEgfSwKLSAgeyAweDIxMDAwMTk2LCAw
eDI0MDAwMGQzIH0sCi0gIHsgMHgyMTAwMDE5NywgMHgyNDAwMDBkMSB9LAotICB7IDB4MjEwMDAx
OTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTk5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDE5YSwgMHgxNDAwMDBhMyB9LAotICB7IDB4MjEwMDAxOWIsIDB4MTQwMDAwMDAgfSwKLSAg
eyAweDIxMDAwMTljLCAweDI0MDAwMGQzIH0sCi0gIHsgMHgyMTAwMDE5ZCwgMHgyNDAwMDBkNSB9
LAotICB7IDB4MjEwMDAxOWUsIDB4MTQwMDAwODIgfSwKLSAgeyAweDIxMDAwMTlmLCAweDI0MDAw
MGQ2IH0sCi0gIHsgMHgyMTAwMDFhMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYTEsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWEyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFh
MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMWE1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFhNiwgMHgyNDAwMDBkYSB9LAotICB7
IDB4MjEwMDAxYTcsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWE4LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDFhOSwgMHgyNDAwMDBkYSB9LAotICB7IDB4MjE4MDAxYWEsIDB4MTQwMDAw
MDEgfSwKLSAgeyAweDIxMDAwMWFjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFhZCwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYWUsIDB4MjQwMDAwZGEgfSwKLSAgeyAweDIxMDAwMWFm
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFiMCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDAxYjEsIDB4MjQwMDAwZDkgfSwKLSAgeyAweDIxMDAwMWIyLCAweDI0MDAwMGQ5IH0sCi0gIHsg
MHgyMTAwMDFiMywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYjQsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMWI1LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFiNiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxYjcsIDB4MjQwMDAwZGIgfSwKLSAgeyAweDIxMDAwMWI4LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFiOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYmEs
IDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMWJiLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyMTAw
MDFiYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMWJlLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDFiZiwgMHgxNDAwMDAzOCB9LAot
ICB7IDB4MjE4MDAxYzAsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDIxMDAwMWM0LCAweDI0MDAwMDAy
IH0sCi0gIHsgMHgyMTAwMDFjNSwgMHgyMDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYzYsIDB4MTQw
MGZmZmUgfSwKLSAgeyAweDIxMDAwMWM3LCAweDI0MDAwMDAyIH0sCi0gIHsgMHgyMTAwMDFjOCwg
MHgyMDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYzksIDB4MTQwMGZmZmUgfSwKLSAgeyAweDIxMDAw
MWNhLCAweDI0MDAwMDAyIH0sCi0gIHsgMHgyMTAwMDFjYiwgMHgyMDAwZmZmZiB9LAotICB7IDB4
MjEwMDAxY2MsIDB4MTQwMGZmZmUgfSwKLSAgeyAweDIxMDAwMWNkLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDFjZSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxY2YsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMWQwLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFkMSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAxZDIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWQzLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFkNCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
ZDUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWQ2LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDFkNywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZDgsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMWQ5LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFkYSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAxZGIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWRjLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDFkZCwgMHgxNDAwZmZiMSB9LAotICB7IDB4MjEwMDAxZGUsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWRmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFl
MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMWUyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlMywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxZTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWU1LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDFlNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZTcsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMWU4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlOSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWVi
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFlYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxZWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWVlLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDFlZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZjAsIDB4MTQwMDAwMDAgfSwK
LSAgeyAweDIxMDAwMWYxLCAweDI0MDAwMDAyIH0sCi0gIHsgMHgyMTAwMDFmMiwgMHgyMDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxZjMsIDB4MTQwMGZmZmUgfSwKLSAgeyAweDIxMDAwMWY0LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFmNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZjYs
IDB4MjQwMGZmOWYgfSwKLSAgeyAweDIxMDAwMWY3LCAweDI0MDBmZmM4IH0sCi0gIHsgMHgyMTAw
MDFmOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZjksIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMWZhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFmYiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAxZmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWZkLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMDFmZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZmYsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMjAwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIwMSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MjAzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAyMDUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjA2LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDIwNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMDgsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMjA5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwYSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAyMGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjBjLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIwZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAy
MGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjBmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDIxMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMTEsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMjEyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIxMywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAyMTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjE1LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDIxNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMTcsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjE4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIx
OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMjFiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIxYywgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAyMWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjFlLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMDIxZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMjAsIDB4MjQwMGZm
N2UgfSwKLSAgeyAweDIxMDAwMjIxLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDIyMiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjI0
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDAyMjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjI3LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDIyOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMjksIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMjJhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyYiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAyMmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjJkLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIyZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMmYs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjMwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MDIzMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMjMzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTgwMDIzNCwgMHgxNDAwMDAwNSB9LAot
ICB7IDB4MjEwMDAyM2EsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjNiLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDIzYywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyM2QsIDB4MjQw
MGZmNWQgfSwKLSAgeyAweDIxMDAwMjNlLCAweDI0MDAwMDAwIH0sCi0gIHsgMHgyMTgwMDIzZiwg
MHgxNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyNDEsIDB4MjQwMDAwNTMgfSwKLSAgeyAweDIxODAw
MjUwLCAweDE0MDAwMDAyIH0sCi0gIHsgMHgyMTAwMDI1MywgMHgxNDAwZmYyZSB9LAotICB7IDB4
MjEwMDAyNTQsIDB4MTQwMGZmMzIgfSwKLSAgeyAweDIxMDAwMjU1LCAweDE0MDAwMDAwIH0sCi0g
IHsgMHgyMTAwMDI1NiwgMHgxNDAwZmYzMyB9LAotICB7IDB4MjEwMDAyNTcsIDB4MTQwMGZmMzMg
fSwKLSAgeyAweDIxMDAwMjU4LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDI1OSwgMHgxNDAw
ZmYzNiB9LAotICB7IDB4MjEwMDAyNWEsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjViLCAw
eDE0MDBmZjM1IH0sCi0gIHsgMHgyMTgwMDI1YywgMHgxNDAwMDAwMyB9LAotICB7IDB4MjEwMDAy
NjAsIDB4MTQwMGZmMzMgfSwKLSAgeyAweDIxODAwMjYxLCAweDE0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDI2MywgMHgxNDAwZmYzMSB9LAotICB7IDB4MjE4MDAyNjQsIDB4MTQwMDAwMDMgfSwKLSAg
eyAweDIxMDAwMjY4LCAweDE0MDBmZjJmIH0sCi0gIHsgMHgyMTAwMDI2OSwgMHgxNDAwZmYyZCB9
LAotICB7IDB4MjE4MDAyNmEsIDB4MTQwMDAwMDQgfSwKLSAgeyAweDIxMDAwMjZmLCAweDE0MDBm
ZjJkIH0sCi0gIHsgMHgyMTgwMDI3MCwgMHgxNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyNzIsIDB4
MTQwMGZmMmIgfSwKLSAgeyAweDIxODAwMjczLCAweDE0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDI3
NSwgMHgxNDAwZmYyYSB9LAotICB7IDB4MjE4MDAyNzYsIDB4MTQwMDAwMDkgfSwKLSAgeyAweDIx
MDAwMjgwLCAweDE0MDBmZjI2IH0sCi0gIHsgMHgyMTgwMDI4MSwgMHgxNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAyODMsIDB4MTQwMGZmMjYgfSwKLSAgeyAweDIxODAwMjg0LCAweDE0MDAwMDAzIH0s
Ci0gIHsgMHgyMTAwMDI4OCwgMHgxNDAwZmYyNiB9LAotICB7IDB4MjEwMDAyODksIDB4MTQwMDAw
MDAgfSwKLSAgeyAweDIxMDAwMjhhLCAweDE0MDBmZjI3IH0sCi0gIHsgMHgyMTAwMDI4YiwgMHgx
NDAwZmYyNyB9LAotICB7IDB4MjE4MDAyOGMsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDIxMDAwMjky
LCAweDE0MDBmZjI1IH0sCi0gIHsgMHgyMTAwMDI5MywgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEw
MDAyOTQsIDB4MTQwMGZmYWQgfSwKLSAgeyAweDIxODAwMjk1LCAweDE0MDAwMDFhIH0sCi0gIHsg
MHgyMTgwMDJiMCwgMHgxODAwMDAxMSB9LAotICB7IDB4MDk4MDAyYzIsIDB4NjAwMDAwMDMgfSwK
LSAgeyAweDA5ODAwMmM2LCAweDE4MDAwMDBiIH0sCi0gIHsgMHgwOTgwMDJkMiwgMHg2MDAwMDAw
ZCB9LAotICB7IDB4MjE4MDAyZTAsIDB4MTgwMDAwMDQgfSwKLSAgeyAweDA5ODAwMmU1LCAweDYw
MDAwMDA4IH0sCi0gIHsgMHgwOTAwMDJlZSwgMHgxODAwMDAwMCB9LAotICB7IDB4MDk4MDAyZWYs
IDB4NjAwMDAwMTAgfSwKLSAgeyAweDFiODAwMzAwLCAweDMwMDAwMDQ0IH0sCi0gIHsgMHgxYjAw
MDM0NSwgMHgzMDAwMDA1NCB9LAotICB7IDB4MWI4MDAzNDYsIDB4MzAwMDAwMjkgfSwKLSAgeyAw
eDEzODAwMzc0LCAweDYwMDAwMDAxIH0sCi0gIHsgMHgxMzAwMDM3YSwgMHgxODAwMDAwMCB9LAot
ICB7IDB4MDkwMDAzN2UsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDEzODAwMzg0LCAweDYwMDAwMDAx
IH0sCi0gIHsgMHgxMzAwMDM4NiwgMHgyNDAwMDAyNiB9LAotICB7IDB4MDkwMDAzODcsIDB4NTQw
MDAwMDAgfSwKLSAgeyAweDEzMDAwMzg4LCAweDI0MDAwMDI1IH0sCi0gIHsgMHgxMzAwMDM4OSwg
MHgyNDAwMDAyNSB9LAotICB7IDB4MTMwMDAzOGEsIDB4MjQwMDAwMjUgfSwKLSAgeyAweDEzMDAw
MzhjLCAweDI0MDAwMDQwIH0sCi0gIHsgMHgxMzAwMDM4ZSwgMHgyNDAwMDAzZiB9LAotICB7IDB4
MTMwMDAzOGYsIDB4MjQwMDAwM2YgfSwKLSAgeyAweDEzMDAwMzkwLCAweDE0MDAwMDAwIH0sCi0g
IHsgMHgxMzAwMDM5MSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOTIsIDB4MjQwMDAwMjAg
fSwKLSAgeyAweDEzMDAwMzkzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5NCwgMHgyNDAw
MDAyMCB9LAotICB7IDB4MTMwMDAzOTUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzk2LCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5NywgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAz
OTgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzk5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgx
MzAwMDM5YSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOWIsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDEzMDAwMzljLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5ZCwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MTMwMDAzOWUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzlmLCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgxMzAwMDNhMCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTEsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2EzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNh
NCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEz
MDAwM2E2LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNhNywgMHgyNDAwMDAyMCB9LAotICB7
IDB4MTMwMDAzYTgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2E5LCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgxMzAwMDNhYSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYWIsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDEzMDAwM2FjLCAweDE0MDBmZmRhIH0sCi0gIHsgMHgxMzAwMDNhZCwgMHgx
NDAwZmZkYiB9LAotICB7IDB4MTMwMDAzYWUsIDB4MTQwMGZmZGIgfSwKLSAgeyAweDEzMDAwM2Fm
LCAweDE0MDBmZmRiIH0sCi0gIHsgMHgxMzAwMDNiMCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMw
MDAzYjEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2IyLCAweDE0MDBmZmUwIH0sCi0gIHsg
MHgxMzAwMDNiMywgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYjQsIDB4MTQwMGZmZTAgfSwK
LSAgeyAweDEzMDAwM2I1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiNiwgMHgxNDAwZmZl
MCB9LAotICB7IDB4MTMwMDAzYjcsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2I4LCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiOSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYmEs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2JiLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAw
MDNiYywgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYmQsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDEzMDAwM2JlLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiZiwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MTMwMDAzYzAsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2MxLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgxMzAwMDNjMiwgMHgxNDAwZmZlMSB9LAotICB7IDB4MTMwMDAzYzMsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDEzMDAwM2M0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjNSwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYzYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAw
M2M3LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjOCwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MTMwMDAzYzksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2NhLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgxMzAwMDNjYiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzY2MsIDB4MTQwMGZmYzAg
fSwKLSAgeyAweDEzMDAwM2NkLCAweDE0MDBmZmMxIH0sCi0gIHsgMHgxMzAwMDNjZSwgMHgxNDAw
ZmZjMSB9LAotICB7IDB4MTMwMDAzZDAsIDB4MTQwMGZmYzIgfSwKLSAgeyAweDEzMDAwM2QxLCAw
eDE0MDBmZmM3IH0sCi0gIHsgMHgxMzgwMDNkMiwgMHgyNDAwMDAwMiB9LAotICB7IDB4MTMwMDAz
ZDUsIDB4MTQwMGZmZDEgfSwKLSAgeyAweDEzMDAwM2Q2LCAweDE0MDBmZmNhIH0sCi0gIHsgMHgx
MzAwMDNkNywgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDAzZDgsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDEzMDAwM2Q5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNkYSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MTMwMDAzZGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2RjLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgxMzAwMDNkZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZGUsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDEzMDAwM2RmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNl
MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MTMwMDAzZTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBh
MDAwM2UyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlMywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGEwMDAzZTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2U1LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYTAwMDNlNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDAzZTcsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBhMDAwM2U4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlOSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGEwMDAzZWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2Vi
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMDNlYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEw
MDAzZWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAwM2VlLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYTAwMDNlZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZjAsIDB4MTQwMGZmYWEgfSwK
LSAgeyAweDEzMDAwM2YxLCAweDE0MDBmZmIwIH0sCi0gIHsgMHgxMzAwMDNmMiwgMHgxNDAwMDAw
NyB9LAotICB7IDB4MTMwMDAzZjMsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAwM2Y0LCAweDI0
MDBmZmM0IH0sCi0gIHsgMHgxMzAwMDNmNSwgMHgxNDAwZmZhMCB9LAotICB7IDB4MTMwMDAzZjYs
IDB4NjQwMDAwMDAgfSwKLSAgeyAweDEzMDAwM2Y3LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgxMzAw
MDNmOCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZjksIDB4MjQwMGZmZjkgfSwKLSAgeyAw
eDEzMDAwM2ZhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgxMzAwMDNmYiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MTMwMDAzZmMsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzODAwM2ZkLCAweDI0MDAwMDAy
IH0sCi0gIHsgMHgwYzAwMDQwMCwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MDEsIDB4MjQw
MDAwNTAgfSwKLSAgeyAweDBjMDAwNDAyLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwMywg
MHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MDQsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAw
NDA1LCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwNiwgMHgyNDAwMDA1MCB9LAotICB7IDB4
MGMwMDA0MDcsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDA4LCAweDI0MDAwMDUwIH0sCi0g
IHsgMHgwYzAwMDQwOSwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MGEsIDB4MjQwMDAwNTAg
fSwKLSAgeyAweDBjMDAwNDBiLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwYywgMHgyNDAw
MDA1MCB9LAotICB7IDB4MGMwMDA0MGQsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDBlLCAw
eDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwZiwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0
MTAsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDExLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgw
YzAwMDQxMiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MTMsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDBjMDAwNDE0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxNSwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MGMwMDA0MTYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDE3LCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgwYzAwMDQxOCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MTksIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDFhLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQx
YiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MWMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBj
MDAwNDFkLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxZSwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MGMwMDA0MWYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDIwLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgwYzAwMDQyMSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjIsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDBjMDAwNDIzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyNCwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDI2
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyNywgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMw
MDA0MjgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDI5LCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgwYzAwMDQyYSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MmIsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDBjMDAwNDJjLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyZCwgMHgyNDAwMDAy
MCB9LAotICB7IDB4MGMwMDA0MmUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDJmLCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQzMCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzEs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDMyLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAw
MDQzMywgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzQsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDBjMDAwNDM1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzNiwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MGMwMDA0MzcsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDM4LCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgwYzAwMDQzOSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0M2EsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDBjMDAwNDNiLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzYywg
MHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0M2QsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAw
NDNlLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzZiwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MGMwMDA0NDAsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQxLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgwYzAwMDQ0MiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NDMsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDBjMDAwNDQ0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0NSwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MGMwMDA0NDYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQ3LCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0OCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0
NDksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDRhLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgw
YzAwMDQ0YiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NGMsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDBjMDAwNDRkLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0ZSwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MGMwMDA0NGYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDUwLCAweDE0MDBm
ZmIwIH0sCi0gIHsgMHgwYzAwMDQ1MSwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTIsIDB4
MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDUzLCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1
NCwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTUsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBj
MDAwNDU2LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1NywgMHgxNDAwZmZiMCB9LAotICB7
IDB4MGMwMDA0NTgsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDU5LCAweDE0MDBmZmIwIH0s
Ci0gIHsgMHgwYzAwMDQ1YSwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NWIsIDB4MTQwMGZm
YjAgfSwKLSAgeyAweDBjMDAwNDVjLCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1ZCwgMHgx
NDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NWUsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDVm
LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ2MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0NjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDYyLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDQ2MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NjQsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNDY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ2NiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0NjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDY4LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ2OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NmEs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDZiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDQ2YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNDZlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ2ZiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0NzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDcxLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDQ3MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NzMsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNDc0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ3NSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NDc3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ3OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0NzksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDdhLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDQ3YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0N2MsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNDdkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ3ZSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0N2YsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDgwLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ4MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0
ODIsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDBjODAwNDgzLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgw
YzgwMDQ4OCwgMHgyYzAwMDAwMSB9LAotICB7IDB4MGMwMDA0OGEsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNDhiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ4YywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGMwMDA0OGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDhlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDQ4ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OTAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDkxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ5
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBj
MDAwNDk0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5NSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGMwMDA0OTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDk3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYzAwMDQ5OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OTksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBjMDAwNDlhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5YiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDlk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ5ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0OWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGEwLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDRhMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YTIsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNGEzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhNCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0YTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGE2LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRhNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YTgs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGE5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDRhYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YWIsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNGFjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRhZCwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0YWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGFmLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDRiMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YjEsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNGIyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRiMywg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YjQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NGI1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRiNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0YjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGI4LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDRiOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YmEsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNGJiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRiYywgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0YmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGJlLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRiZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0
YzAsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDBjMDAwNGMxLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDRjMiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YzMsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNGM0LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRjNSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGMwMDA0YzYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGM3LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDRjOCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YzksIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGNhLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRj
YiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0Y2MsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBj
MDAwNGNkLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRjZSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGMwMDA0ZDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGQxLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYzAwMDRkMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZDMsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBjMDAwNGQ0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRkNSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGQ3
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRkOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0ZDksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGRhLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDRkYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZGMsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNGRkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRkZSwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0ZGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGUwLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZTIs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGUzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDRlNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNGU2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlNywgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0ZTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGU5LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDRlYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZWIsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNGVjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlZCwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NGVmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRmMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0ZjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGYyLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDRmMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZjQsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNGY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRmNiwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0ZjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGY4LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRmOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA1
MDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTAxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgw
YzAwMDUwMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MDMsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDBjMDAwNTA0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUwNSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MGMwMDA1MDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTA3LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYzAwMDUwOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MDksIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNTBhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUw
YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA1MGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBj
MDAwNTBkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDUwZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGMwMDA1MGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDAxMDAwNTMxLCAweDI0MDAwMDMwIH0s
Ci0gIHsgMHgwMTAwMDUzMiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1MzMsIDB4MjQwMDAw
MzAgfSwKLSAgeyAweDAxMDAwNTM0LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzNSwgMHgy
NDAwMDAzMCB9LAotICB7IDB4MDEwMDA1MzYsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTM3
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzOCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEw
MDA1MzksIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTNhLCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgwMTAwMDUzYiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1M2MsIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDAxMDAwNTNkLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzZSwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MDEwMDA1M2YsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQwLCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0MSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDIs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQzLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAw
MDU0NCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDUsIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDAxMDAwNTQ2LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0NywgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MDEwMDA1NDgsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQ5LCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgwMTAwMDU0YSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NGIsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDAxMDAwNTRjLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0ZCwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NGUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAw
NTRmLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU1MCwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MDEwMDA1NTEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTUyLCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgwMTAwMDU1MywgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NTQsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDAxMDAwNTU1LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU1NiwgMHgyNDAw
MDAzMCB9LAotICB7IDB4MDEwMDA1NTksIDB4MTgwMDAwMDAgfSwKLSAgeyAweDAxODAwNTVhLCAw
eDU0MDAwMDA1IH0sCi0gIHsgMHgwMTAwMDU2MSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1
NjIsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTYzLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgw
MTAwMDU2NCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NjUsIDB4MTQwMGZmZDAgfSwKLSAg
eyAweDAxMDAwNTY2LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2NywgMHgxNDAwZmZkMCB9
LAotICB7IDB4MDEwMDA1NjgsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTY5LCAweDE0MDBm
ZmQwIH0sCi0gIHsgMHgwMTAwMDU2YSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NmIsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTZjLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2
ZCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NmUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAx
MDAwNTZmLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3MCwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MDEwMDA1NzEsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTcyLCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgwMTAwMDU3MywgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzQsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDAxMDAwNTc1LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3NiwgMHgx
NDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzcsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTc4
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3OSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEw
MDA1N2EsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTdiLCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgwMTAwMDU3YywgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1N2QsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDAxMDAwNTdlLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3ZiwgMHgxNDAwZmZk
MCB9LAotICB7IDB4MDEwMDA1ODAsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTgxLCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU4MiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1ODMs
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTg0LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAw
MDU4NSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1ODYsIDB4MTQwMGZmZDAgfSwKLSAgeyAw
eDAxMDAwNTg3LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDU4OSwgMHg1NDAwMDAwMCB9LAot
ICB7IDB4MDEwMDA1OGEsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDE5ODAwNTkxLCAweDMwMDAwMDI4
IH0sCi0gIHsgMHgxOTgwMDViYiwgMHgzMDAwMDAwMiB9LAotICB7IDB4MTkwMDA1YmUsIDB4NTQw
MDAwMDAgfSwKLSAgeyAweDE5MDAwNWJmLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxOTAwMDVjMCwg
MHg1NDAwMDAwMCB9LAotICB7IDB4MTk4MDA1YzEsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE5MDAw
NWMzLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgxOTgwMDVjNCwgMHgzMDAwMDAwMSB9LAotICB7IDB4
MTkwMDA1YzYsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDE5MDAwNWM3LCAweDMwMDAwMDAwIH0sCi0g
IHsgMHgxOTgwMDVkMCwgMHgxYzAwMDAxYSB9LAotICB7IDB4MTk4MDA1ZjAsIDB4MWMwMDAwMDIg
fSwKLSAgeyAweDE5ODAwNWYzLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwOTgwMDYwMCwgMHgwNDAw
MDAwMyB9LAotICB7IDB4MDAwMDA2MGIsIDB4NWMwMDAwMDAgfSwKLSAgeyAweDA5ODAwNjBjLCAw
eDU0MDAwMDAxIH0sCi0gIHsgMHgwMDgwMDYwZSwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDA4MDA2
MTAsIDB4MzAwMDAwMDUgfSwKLSAgeyAweDA5MDAwNjFiLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgw
MDgwMDYxZSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDA4MDA2MjEsIDB4MWMwMDAwMTkgfSwKLSAg
eyAweDA5MDAwNjQwLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwMDgwMDY0MSwgMHgxYzAwMDAwOSB9
LAotICB7IDB4MWI4MDA2NGIsIDB4MzAwMDAwMTMgfSwKLSAgeyAweDA5ODAwNjYwLCAweDM0MDAw
MDA5IH0sCi0gIHsgMHgwMDgwMDY2YSwgMHg1NDAwMDAwMyB9LAotICB7IDB4MDA4MDA2NmUsIDB4
MWMwMDAwMDEgfSwKLSAgeyAweDFiMDAwNjcwLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgwMDgwMDY3
MSwgMHgxYzAwMDA2MiB9LAotICB7IDB4MDAwMDA2ZDQsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDAw
MDAwNmQ1LCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwMDgwMDZkNiwgMHgzMDAwMDAwNiB9LAotICB7
IDB4MDkwMDA2ZGQsIDB4MDQwMDAwMDAgfSwKLSAgeyAweDAwMDAwNmRlLCAweDJjMDAwMDAwIH0s
Ci0gIHsgMHgwMDgwMDZkZiwgMHgzMDAwMDAwNSB9LAotICB7IDB4MDA4MDA2ZTUsIDB4MTgwMDAw
MDEgfSwKLSAgeyAweDAwODAwNmU3LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgwMDAwMDZlOSwgMHg2
ODAwMDAwMCB9LAotICB7IDB4MDA4MDA2ZWEsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDAwODAwNmVl
LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgwMDgwMDZmMCwgMHgzNDAwMDAwOSB9LAotICB7IDB4MDA4
MDA2ZmEsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDAwODAwNmZkLCAweDY4MDAwMDAxIH0sCi0gIHsg
MHgwMDAwMDZmZiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MzE4MDA3MDAsIDB4NTQwMDAwMGQgfSwK
LSAgeyAweDMxMDAwNzBmLCAweDA0MDAwMDAwIH0sCi0gIHsgMHgzMTAwMDcxMCwgMHgxYzAwMDAw
MCB9LAotICB7IDB4MzEwMDA3MTEsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDMxODAwNzEyLCAweDFj
MDAwMDFkIH0sCi0gIHsgMHgzMTgwMDczMCwgMHgzMDAwMDAxYSB9LAotICB7IDB4MzE4MDA3NGQs
IDB4MWMwMDAwMjAgfSwKLSAgeyAweDM3ODAwNzgwLCAweDFjMDAwMDI1IH0sCi0gIHsgMHgzNzgw
MDdhNiwgMHgzMDAwMDAwYSB9LAotICB7IDB4MzcwMDA3YjEsIDB4MWMwMDAwMDAgfSwKLSAgeyAw
eDBlODAwOTAxLCAweDMwMDAwMDAxIH0sCi0gIHsgMHgwZTAwMDkwMywgMHgyODAwMDAwMCB9LAot
ICB7IDB4MGU4MDA5MDQsIDB4MWMwMDAwMzUgfSwKLSAgeyAweDBlMDAwOTNjLCAweDMwMDAwMDAw
IH0sCi0gIHsgMHgwZTAwMDkzZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MGU4MDA5M2UsIDB4Mjgw
MDAwMDIgfSwKLSAgeyAweDBlODAwOTQxLCAweDMwMDAwMDA3IH0sCi0gIHsgMHgwZTgwMDk0OSwg
MHgyODAwMDAwMyB9LAotICB7IDB4MGUwMDA5NGQsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDBlMDAw
OTUwLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwZTgwMDk1MSwgMHgzMDAwMDAwMyB9LAotICB7IDB4
MGU4MDA5NTgsIDB4MWMwMDAwMDkgfSwKLSAgeyAweDBlODAwOTYyLCAweDMwMDAwMDAxIH0sCi0g
IHsgMHgwOTgwMDk2NCwgMHg1NDAwMDAwMSB9LAotICB7IDB4MGU4MDA5NjYsIDB4MzQwMDAwMDkg
fSwKLSAgeyAweDA5MDAwOTcwLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwZTAwMDk3ZCwgMHgxYzAw
MDAwMCB9LAotICB7IDB4MDIwMDA5ODEsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDAyODAwOTgyLCAw
eDI4MDAwMDAxIH0sCi0gIHsgMHgwMjgwMDk4NSwgMHgxYzAwMDAwNyB9LAotICB7IDB4MDI4MDA5
OGYsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDAyODAwOTkzLCAweDFjMDAwMDE1IH0sCi0gIHsgMHgw
MjgwMDlhYSwgMHgxYzAwMDAwNiB9LAotICB7IDB4MDIwMDA5YjIsIDB4MWMwMDAwMDAgfSwKLSAg
eyAweDAyODAwOWI2LCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwMjAwMDliYywgMHgzMDAwMDAwMCB9
LAotICB7IDB4MDIwMDA5YmQsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDAyODAwOWJlLCAweDI4MDAw
MDAyIH0sCi0gIHsgMHgwMjgwMDljMSwgMHgzMDAwMDAwMyB9LAotICB7IDB4MDI4MDA5YzcsIDB4
MjgwMDAwMDEgfSwKLSAgeyAweDAyODAwOWNiLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgwMjAwMDlj
ZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MDIwMDA5Y2UsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDAy
MDAwOWQ3LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgwMjgwMDlkYywgMHgxYzAwMDAwMSB9LAotICB7
IDB4MDI4MDA5ZGYsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDAyODAwOWUyLCAweDMwMDAwMDAxIH0s
Ci0gIHsgMHgwMjgwMDllNiwgMHgzNDAwMDAwOSB9LAotICB7IDB4MDI4MDA5ZjAsIDB4MWMwMDAw
MDEgfSwKLSAgeyAweDAyODAwOWYyLCAweDVjMDAwMDAxIH0sCi0gIHsgMHgwMjgwMDlmNCwgMHgz
YzAwMDAwNSB9LAotICB7IDB4MDIwMDA5ZmEsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDE1ODAwYTAx
LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxNTAwMGEwMywgMHgyODAwMDAwMCB9LAotICB7IDB4MTU4
MDBhMDUsIDB4MWMwMDAwMDUgfSwKLSAgeyAweDE1ODAwYTBmLCAweDFjMDAwMDAxIH0sCi0gIHsg
MHgxNTgwMGExMywgMHgxYzAwMDAxNSB9LAotICB7IDB4MTU4MDBhMmEsIDB4MWMwMDAwMDYgfSwK
LSAgeyAweDE1ODAwYTMyLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgxNTgwMGEzNSwgMHgxYzAwMDAw
MSB9LAotICB7IDB4MTU4MDBhMzgsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDE1MDAwYTNjLCAweDMw
MDAwMDAwIH0sCi0gIHsgMHgxNTgwMGEzZSwgMHgyODAwMDAwMiB9LAotICB7IDB4MTU4MDBhNDEs
IDB4MzAwMDAwMDEgfSwKLSAgeyAweDE1ODAwYTQ3LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxNTgw
MGE0YiwgMHgzMDAwMDAwMiB9LAotICB7IDB4MTU4MDBhNTksIDB4MWMwMDAwMDMgfSwKLSAgeyAw
eDE1MDAwYTVlLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxNTgwMGE2NiwgMHgzNDAwMDAwOSB9LAot
ICB7IDB4MTU4MDBhNzAsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE1ODAwYTcyLCAweDFjMDAwMDAy
IH0sCi0gIHsgMHgxNDgwMGE4MSwgMHgzMDAwMDAwMSB9LAotICB7IDB4MTQwMDBhODMsIDB4Mjgw
MDAwMDAgfSwKLSAgeyAweDE0ODAwYTg1LCAweDFjMDAwMDA4IH0sCi0gIHsgMHgxNDgwMGE4Ziwg
MHgxYzAwMDAwMiB9LAotICB7IDB4MTQ4MDBhOTMsIDB4MWMwMDAwMTUgfSwKLSAgeyAweDE0ODAw
YWFhLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgxNDgwMGFiMiwgMHgxYzAwMDAwMSB9LAotICB7IDB4
MTQ4MDBhYjUsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDE0MDAwYWJjLCAweDMwMDAwMDAwIH0sCi0g
IHsgMHgxNDAwMGFiZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MTQ4MDBhYmUsIDB4MjgwMDAwMDIg
fSwKLSAgeyAweDE0ODAwYWMxLCAweDMwMDAwMDA0IH0sCi0gIHsgMHgxNDgwMGFjNywgMHgzMDAw
MDAwMSB9LAotICB7IDB4MTQwMDBhYzksIDB4MjgwMDAwMDAgfSwKLSAgeyAweDE0ODAwYWNiLCAw
eDI4MDAwMDAxIH0sCi0gIHsgMHgxNDAwMGFjZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MTQwMDBh
ZDAsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDE0ODAwYWUwLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgx
NDgwMGFlMiwgMHgzMDAwMDAwMSB9LAotICB7IDB4MTQ4MDBhZTYsIDB4MzQwMDAwMDkgfSwKLSAg
eyAweDE0MDAwYWYxLCAweDVjMDAwMDAwIH0sCi0gIHsgMHgyYjAwMGIwMSwgMHgzMDAwMDAwMCB9
LAotICB7IDB4MmI4MDBiMDIsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDJiODAwYjA1LCAweDFjMDAw
MDA3IH0sCi0gIHsgMHgyYjgwMGIwZiwgMHgxYzAwMDAwMSB9LAotICB7IDB4MmI4MDBiMTMsIDB4
MWMwMDAwMTUgfSwKLSAgeyAweDJiODAwYjJhLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgyYjgwMGIz
MiwgMHgxYzAwMDAwMSB9LAotICB7IDB4MmI4MDBiMzUsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDJi
MDAwYjNjLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyYjAwMGIzZCwgMHgxYzAwMDAwMCB9LAotICB7
IDB4MmIwMDBiM2UsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDJiMDAwYjNmLCAweDMwMDAwMDAwIH0s
Ci0gIHsgMHgyYjAwMGI0MCwgMHgyODAwMDAwMCB9LAotICB7IDB4MmI4MDBiNDEsIDB4MzAwMDAw
MDIgfSwKLSAgeyAweDJiODAwYjQ3LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgyYjgwMGI0YiwgMHgy
ODAwMDAwMSB9LAotICB7IDB4MmIwMDBiNGQsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDJiMDAwYjU2
LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyYjAwMGI1NywgMHgyODAwMDAwMCB9LAotICB7IDB4MmI4
MDBiNWMsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDJiODAwYjVmLCAweDFjMDAwMDAyIH0sCi0gIHsg
MHgyYjgwMGI2NiwgMHgzNDAwMDAwOSB9LAotICB7IDB4MmIwMDBiNzAsIDB4NjgwMDAwMDAgfSwK
LSAgeyAweDJiMDAwYjcxLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgzNTAwMGI4MiwgMHgzMDAwMDAw
MCB9LAotICB7IDB4MzUwMDBiODMsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDM1ODAwYjg1LCAweDFj
MDAwMDA1IH0sCi0gIHsgMHgzNTgwMGI4ZSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MzU4MDBiOTIs
IDB4MWMwMDAwMDMgfSwKLSAgeyAweDM1ODAwYjk5LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzNTAw
MGI5YywgMHgxYzAwMDAwMCB9LAotICB7IDB4MzU4MDBiOWUsIDB4MWMwMDAwMDEgfSwKLSAgeyAw
eDM1ODAwYmEzLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzNTgwMGJhOCwgMHgxYzAwMDAwMiB9LAot
ICB7IDB4MzU4MDBiYWUsIDB4MWMwMDAwMGIgfSwKLSAgeyAweDM1ODAwYmJlLCAweDI4MDAwMDAx
IH0sCi0gIHsgMHgzNTAwMGJjMCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MzU4MDBiYzEsIDB4Mjgw
MDAwMDEgfSwKLSAgeyAweDM1ODAwYmM2LCAweDI4MDAwMDAyIH0sCi0gIHsgMHgzNTgwMGJjYSwg
MHgyODAwMDAwMiB9LAotICB7IDB4MzUwMDBiY2QsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDM1MDAw
YmQ3LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgzNTgwMGJlNiwgMHgzNDAwMDAwOSB9LAotICB7IDB4
MzU4MDBiZjAsIDB4M2MwMDAwMDIgfSwKLSAgeyAweDM1ODAwYmYzLCAweDY4MDAwMDA1IH0sCi0g
IHsgMHgzNTAwMGJmOSwgMHg1YzAwMDAwMCB9LAotICB7IDB4MzUwMDBiZmEsIDB4NjgwMDAwMDAg
fSwKLSAgeyAweDM2ODAwYzAxLCAweDI4MDAwMDAyIH0sCi0gIHsgMHgzNjgwMGMwNSwgMHgxYzAw
MDAwNyB9LAotICB7IDB4MzY4MDBjMGUsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDM2ODAwYzEyLCAw
eDFjMDAwMDE2IH0sCi0gIHsgMHgzNjgwMGMyYSwgMHgxYzAwMDAwOSB9LAotICB7IDB4MzY4MDBj
MzUsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDM2ODAwYzNlLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgz
NjgwMGM0MSwgMHgyODAwMDAwMyB9LAotICB7IDB4MzY4MDBjNDYsIDB4MzAwMDAwMDIgfSwKLSAg
eyAweDM2ODAwYzRhLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgzNjgwMGM1NSwgMHgzMDAwMDAwMSB9
LAotICB7IDB4MzY4MDBjNjAsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDM2ODAwYzY2LCAweDM0MDAw
MDA5IH0sCi0gIHsgMHgxYzgwMGM4MiwgMHgyODAwMDAwMSB9LAotICB7IDB4MWM4MDBjODUsIDB4
MWMwMDAwMDcgfSwKLSAgeyAweDFjODAwYzhlLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgxYzgwMGM5
MiwgMHgxYzAwMDAxNiB9LAotICB7IDB4MWM4MDBjYWEsIDB4MWMwMDAwMDkgfSwKLSAgeyAweDFj
ODAwY2I1LCAweDFjMDAwMDA0IH0sCi0gIHsgMHgxYzAwMGNiYywgMHgzMDAwMDAwMCB9LAotICB7
IDB4MWMwMDBjYmQsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDFjMDAwY2JlLCAweDI4MDAwMDAwIH0s
Ci0gIHsgMHgxYzAwMGNiZiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MWM4MDBjYzAsIDB4MjgwMDAw
MDQgfSwKLSAgeyAweDFjMDAwY2M2LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxYzgwMGNjNywgMHgy
ODAwMDAwMSB9LAotICB7IDB4MWM4MDBjY2EsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDFjODAwY2Nj
LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxYzgwMGNkNSwgMHgyODAwMDAwMSB9LAotICB7IDB4MWMw
MDBjZGUsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDFjODAwY2UwLCAweDFjMDAwMDAxIH0sCi0gIHsg
MHgxYzgwMGNlNiwgMHgzNDAwMDAwOSB9LAotICB7IDB4MjQ4MDBkMDIsIDB4MjgwMDAwMDEgfSwK
LSAgeyAweDI0ODAwZDA1LCAweDFjMDAwMDA3IH0sCi0gIHsgMHgyNDgwMGQwZSwgMHgxYzAwMDAw
MiB9LAotICB7IDB4MjQ4MDBkMTIsIDB4MWMwMDAwMTYgfSwKLSAgeyAweDI0ODAwZDJhLCAweDFj
MDAwMDBmIH0sCi0gIHsgMHgyNDgwMGQzZSwgMHgyODAwMDAwMiB9LAotICB7IDB4MjQ4MDBkNDEs
IDB4MzAwMDAwMDIgfSwKLSAgeyAweDI0ODAwZDQ2LCAweDI4MDAwMDAyIH0sCi0gIHsgMHgyNDgw
MGQ0YSwgMHgyODAwMDAwMiB9LAotICB7IDB4MjQwMDBkNGQsIDB4MzAwMDAwMDAgfSwKLSAgeyAw
eDI0MDAwZDU3LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgyNDgwMGQ2MCwgMHgxYzAwMDAwMSB9LAot
ICB7IDB4MjQ4MDBkNjYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDJmODAwZDgyLCAweDI4MDAwMDAx
IH0sCi0gIHsgMHgyZjgwMGQ4NSwgMHgxYzAwMDAxMSB9LAotICB7IDB4MmY4MDBkOWEsIDB4MWMw
MDAwMTcgfSwKLSAgeyAweDJmODAwZGIzLCAweDFjMDAwMDA4IH0sCi0gIHsgMHgyZjAwMGRiZCwg
MHgxYzAwMDAwMCB9LAotICB7IDB4MmY4MDBkYzAsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDJmMDAw
ZGNhLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyZjgwMGRjZiwgMHgyODAwMDAwMiB9LAotICB7IDB4
MmY4MDBkZDIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDJmMDAwZGQ2LCAweDMwMDAwMDAwIH0sCi0g
IHsgMHgyZjgwMGRkOCwgMHgyODAwMDAwNyB9LAotICB7IDB4MmY4MDBkZjIsIDB4MjgwMDAwMDEg
fSwKLSAgeyAweDJmMDAwZGY0LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgzODgwMGUwMSwgMHgxYzAw
MDAyZiB9LAotICB7IDB4MzgwMDBlMzEsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDM4ODAwZTMyLCAw
eDFjMDAwMDAxIH0sCi0gIHsgMHgzODgwMGUzNCwgMHgzMDAwMDAwNiB9LAotICB7IDB4MDkwMDBl
M2YsIDB4NWMwMDAwMDAgfSwKLSAgeyAweDM4ODAwZTQwLCAweDFjMDAwMDA1IH0sCi0gIHsgMHgz
ODAwMGU0NiwgMHgxODAwMDAwMCB9LAotICB7IDB4Mzg4MDBlNDcsIDB4MzAwMDAwMDcgfSwKLSAg
eyAweDM4MDAwZTRmLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgzODgwMGU1MCwgMHgzNDAwMDAwOSB9
LAotICB7IDB4Mzg4MDBlNWEsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDIwODAwZTgxLCAweDFjMDAw
MDAxIH0sCi0gIHsgMHgyMDAwMGU4NCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MjA4MDBlODcsIDB4
MWMwMDAwMDEgfSwKLSAgeyAweDIwMDAwZThhLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyMDAwMGU4
ZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MjA4MDBlOTQsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDIw
ODAwZTk5LCAweDFjMDAwMDA2IH0sCi0gIHsgMHgyMDgwMGVhMSwgMHgxYzAwMDAwMiB9LAotICB7
IDB4MjAwMDBlYTUsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIwMDAwZWE3LCAweDFjMDAwMDAwIH0s
Ci0gIHsgMHgyMDgwMGVhYSwgMHgxYzAwMDAwMSB9LAotICB7IDB4MjA4MDBlYWQsIDB4MWMwMDAw
MDMgfSwKLSAgeyAweDIwMDAwZWIxLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyMDgwMGViMiwgMHgx
YzAwMDAwMSB9LAotICB7IDB4MjA4MDBlYjQsIDB4MzAwMDAwMDUgfSwKLSAgeyAweDIwODAwZWJi
LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgyMDAwMGViZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MjA4
MDBlYzAsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDIwMDAwZWM2LCAweDE4MDAwMDAwIH0sCi0gIHsg
MHgyMDgwMGVjOCwgMHgzMDAwMDAwNSB9LAotICB7IDB4MjA4MDBlZDAsIDB4MzQwMDAwMDkgfSwK
LSAgeyAweDIwODAwZWRjLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzOTAwMGYwMCwgMHgxYzAwMDAw
MCB9LAotICB7IDB4Mzk4MDBmMDEsIDB4NjgwMDAwMDIgfSwKLSAgeyAweDM5ODAwZjA0LCAweDU0
MDAwMDBlIH0sCi0gIHsgMHgzOTgwMGYxMywgMHg2ODAwMDAwNCB9LAotICB7IDB4Mzk4MDBmMTgs
IDB4MzAwMDAwMDEgfSwKLSAgeyAweDM5ODAwZjFhLCAweDY4MDAwMDA1IH0sCi0gIHsgMHgzOTgw
MGYyMCwgMHgzNDAwMDAwOSB9LAotICB7IDB4Mzk4MDBmMmEsIDB4M2MwMDAwMDkgfSwKLSAgeyAw
eDM5MDAwZjM0LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzNSwgMHgzMDAwMDAwMCB9LAot
ICB7IDB4MzkwMDBmMzYsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDM5MDAwZjM3LCAweDMwMDAwMDAw
IH0sCi0gIHsgMHgzOTAwMGYzOCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmMzksIDB4MzAw
MDAwMDAgfSwKLSAgeyAweDM5MDAwZjNhLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzYiwg
MHg0ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmM2MsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDM5MDAw
ZjNkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgzOTgwMGYzZSwgMHgyODAwMDAwMSB9LAotICB7IDB4
Mzk4MDBmNDAsIDB4MWMwMDAwMDcgfSwKLSAgeyAweDM5ODAwZjQ5LCAweDFjMDAwMDIxIH0sCi0g
IHsgMHgzOTgwMGY3MSwgMHgzMDAwMDAwZCB9LAotICB7IDB4MzkwMDBmN2YsIDB4MjgwMDAwMDAg
fSwKLSAgeyAweDM5ODAwZjgwLCAweDMwMDAwMDA0IH0sCi0gIHsgMHgzOTAwMGY4NSwgMHg1NDAw
MDAwMCB9LAotICB7IDB4Mzk4MDBmODYsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDM5ODAwZjg4LCAw
eDFjMDAwMDAzIH0sCi0gIHsgMHgzOTgwMGY5MCwgMHgzMDAwMDAwNyB9LAotICB7IDB4Mzk4MDBm
OTksIDB4MzAwMDAwMjMgfSwKLSAgeyAweDM5ODAwZmJlLCAweDY4MDAwMDA3IH0sCi0gIHsgMHgz
OTAwMGZjNiwgMHgzMDAwMDAwMCB9LAotICB7IDB4Mzk4MDBmYzcsIDB4NjgwMDAwMDUgfSwKLSAg
eyAweDM5MDAwZmNmLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgzOTgwMGZkMCwgMHg1NDAwMDAwMSB9
LAotICB7IDB4MjY4MDEwMDAsIDB4MWMwMDAwMjEgfSwKLSAgeyAweDI2ODAxMDIzLCAweDFjMDAw
MDA0IH0sCi0gIHsgMHgyNjgwMTAyOSwgMHgxYzAwMDAwMSB9LAotICB7IDB4MjYwMDEwMmMsIDB4
MjgwMDAwMDAgfSwKLSAgeyAweDI2ODAxMDJkLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgyNjAwMTAz
MSwgMHgyODAwMDAwMCB9LAotICB7IDB4MjYwMDEwMzIsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDI2
ODAxMDM2LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgyNjAwMTAzOCwgMHgyODAwMDAwMCB9LAotICB7
IDB4MjYwMDEwMzksIDB4MzAwMDAwMDAgfSwKLSAgeyAweDI2ODAxMDQwLCAweDM0MDAwMDA5IH0s
Ci0gIHsgMHgyNjgwMTA0YSwgMHg1NDAwMDAwNSB9LAotICB7IDB4MjY4MDEwNTAsIDB4MWMwMDAw
MDUgfSwKLSAgeyAweDI2ODAxMDU2LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgyNjgwMTA1OCwgMHgz
MDAwMDAwMSB9LAotICB7IDB4MTAwMDEwYTAsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGEx
LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhMiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAw
MDEwYTMsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGE0LCAweDI0MDAxYzYwIH0sCi0gIHsg
MHgxMDAwMTBhNSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYTYsIDB4MjQwMDFjNjAgfSwK
LSAgeyAweDEwMDAxMGE3LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhOCwgMHgyNDAwMWM2
MCB9LAotICB7IDB4MTAwMDEwYTksIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGFhLCAweDI0
MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhYiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYWMs
IDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGFkLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAw
MTBhZSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYWYsIDB4MjQwMDFjNjAgfSwKLSAgeyAw
eDEwMDAxMGIwLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiMSwgMHgyNDAwMWM2MCB9LAot
ICB7IDB4MTAwMDEwYjIsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGIzLCAweDI0MDAxYzYw
IH0sCi0gIHsgMHgxMDAwMTBiNCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjUsIDB4MjQw
MDFjNjAgfSwKLSAgeyAweDEwMDAxMGI2LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiNywg
MHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjgsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAx
MGI5LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiYSwgMHgyNDAwMWM2MCB9LAotICB7IDB4
MTAwMDEwYmIsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGJjLCAweDI0MDAxYzYwIH0sCi0g
IHsgMHgxMDAwMTBiZCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYmUsIDB4MjQwMDFjNjAg
fSwKLSAgeyAweDEwMDAxMGJmLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBjMCwgMHgyNDAw
MWM2MCB9LAotICB7IDB4MTAwMDEwYzEsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGMyLCAw
eDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBjMywgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEw
YzQsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGM1LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgx
MDgwMTBkMCwgMHgxYzAwMDAyYSB9LAotICB7IDB4MDkwMDEwZmIsIDB4NTQwMDAwMDAgfSwKLSAg
eyAweDEwMDAxMGZjLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgxNzgwMTEwMCwgMHgxYzAwMDA1OSB9
LAotICB7IDB4MTc4MDExNWYsIDB4MWMwMDAwNDMgfSwKLSAgeyAweDE3ODAxMWE4LCAweDFjMDAw
MDUxIH0sCi0gIHsgMHgwZjgwMTIwMCwgMHgxYzAwMDA0OCB9LAotICB7IDB4MGY4MDEyNGEsIDB4
MWMwMDAwMDMgfSwKLSAgeyAweDBmODAxMjUwLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwZjAwMTI1
OCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MGY4MDEyNWEsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDBm
ODAxMjYwLCAweDFjMDAwMDI4IH0sCi0gIHsgMHgwZjgwMTI4YSwgMHgxYzAwMDAwMyB9LAotICB7
IDB4MGY4MDEyOTAsIDB4MWMwMDAwMjAgfSwKLSAgeyAweDBmODAxMmIyLCAweDFjMDAwMDAzIH0s
Ci0gIHsgMHgwZjgwMTJiOCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGYwMDEyYzAsIDB4MWMwMDAw
MDAgfSwKLSAgeyAweDBmODAxMmMyLCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwZjgwMTJjOCwgMHgx
YzAwMDAwZSB9LAotICB7IDB4MGY4MDEyZDgsIDB4MWMwMDAwMzggfSwKLSAgeyAweDBmODAxMzEy
LCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwZjgwMTMxOCwgMHgxYzAwMDA0MiB9LAotICB7IDB4MGYw
MDEzNWYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDBmMDAxMzYwLCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgwZjgwMTM2MSwgMHg1NDAwMDAwNyB9LAotICB7IDB4MGY4MDEzNjksIDB4M2MwMDAwMTMgfSwK
LSAgeyAweDBmODAxMzgwLCAweDFjMDAwMDBmIH0sCi0gIHsgMHgwZjgwMTM5MCwgMHg2ODAwMDAw
OSB9LAotICB7IDB4MDg4MDEzYTAsIDB4MWMwMDAwNTQgfSwKLSAgeyAweDA3ODAxNDAxLCAweDFj
MDAwMjZiIH0sCi0gIHsgMHgwNzgwMTY2ZCwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDc4MDE2NmYs
IDB4MWMwMDAwMDcgfSwKLSAgeyAweDI4MDAxNjgwLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgyODgw
MTY4MSwgMHgxYzAwMDAxOSB9LAotICB7IDB4MjgwMDE2OWIsIDB4NTgwMDAwMDAgfSwKLSAgeyAw
eDI4MDAxNjljLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgyZDgwMTZhMCwgMHgxYzAwMDA0YSB9LAot
ICB7IDB4MDk4MDE2ZWIsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDJkODAxNmVlLCAweDM4MDAwMDAy
IH0sCi0gIHsgMHgzMjgwMTcwMCwgMHgxYzAwMDAwYyB9LAotICB7IDB4MzI4MDE3MGUsIDB4MWMw
MDAwMDMgfSwKLSAgeyAweDMyODAxNzEyLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgxODgwMTcyMCwg
MHgxYzAwMDAxMSB9LAotICB7IDB4MTg4MDE3MzIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDA5ODAx
NzM1LCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwNjgwMTc0MCwgMHgxYzAwMDAxMSB9LAotICB7IDB4
MDY4MDE3NTIsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDMzODAxNzYwLCAweDFjMDAwMDBjIH0sCi0g
IHsgMHgzMzgwMTc2ZSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MzM4MDE3NzIsIDB4MzAwMDAwMDEg
fSwKLSAgeyAweDFmODAxNzgwLCAweDFjMDAwMDMzIH0sCi0gIHsgMHgxZjgwMTdiNCwgMHgwNDAw
MDAwMSB9LAotICB7IDB4MWYwMDE3YjYsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDFmODAxN2I3LCAw
eDMwMDAwMDA2IH0sCi0gIHsgMHgxZjgwMTdiZSwgMHgyODAwMDAwNyB9LAotICB7IDB4MWYwMDE3
YzYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFmODAxN2M3LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgx
ZjgwMTdjOSwgMHgzMDAwMDAwYSB9LAotICB7IDB4MWY4MDE3ZDQsIDB4NTQwMDAwMDIgfSwKLSAg
eyAweDFmMDAxN2Q3LCAweDE4MDAwMDAwIH0sCi0gIHsgMHgxZjgwMTdkOCwgMHg1NDAwMDAwMiB9
LAotICB7IDB4MWYwMDE3ZGIsIDB4NWMwMDAwMDAgfSwKLSAgeyAweDFmMDAxN2RjLCAweDFjMDAw
MDAwIH0sCi0gIHsgMHgxZjAwMTdkZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MWY4MDE3ZTAsIDB4
MzQwMDAwMDkgfSwKLSAgeyAweDFmODAxN2YwLCAweDNjMDAwMDA5IH0sCi0gIHsgMHgyNTgwMTgw
MCwgMHg1NDAwMDAwNSB9LAotICB7IDB4MjUwMDE4MDYsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDI1
ODAxODA3LCAweDU0MDAwMDAzIH0sCi0gIHsgMHgyNTgwMTgwYiwgMHgzMDAwMDAwMiB9LAotICB7
IDB4MjUwMDE4MGUsIDB4NzQwMDAwMDAgfSwKLSAgeyAweDI1ODAxODEwLCAweDM0MDAwMDA5IH0s
Ci0gIHsgMHgyNTgwMTgyMCwgMHgxYzAwMDAyMiB9LAotICB7IDB4MjUwMDE4NDMsIDB4MTgwMDAw
MDAgfSwKLSAgeyAweDI1ODAxODQ0LCAweDFjMDAwMDMzIH0sCi0gIHsgMHgyNTgwMTg4MCwgMHgx
YzAwMDAyOCB9LAotICB7IDB4MjUwMDE4YTksIDB4MzAwMDAwMDAgfSwKLSAgeyAweDIyODAxOTAw
LCAweDFjMDAwMDFjIH0sCi0gIHsgMHgyMjgwMTkyMCwgMHgzMDAwMDAwMiB9LAotICB7IDB4MjI4
MDE5MjMsIDB4MjgwMDAwMDMgfSwKLSAgeyAweDIyODAxOTI3LCAweDMwMDAwMDAxIH0sCi0gIHsg
MHgyMjgwMTkyOSwgMHgyODAwMDAwMiB9LAotICB7IDB4MjI4MDE5MzAsIDB4MjgwMDAwMDEgfSwK
LSAgeyAweDIyMDAxOTMyLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyMjgwMTkzMywgMHgyODAwMDAw
NSB9LAotICB7IDB4MjI4MDE5MzksIDB4MzAwMDAwMDIgfSwKLSAgeyAweDIyMDAxOTQwLCAweDY4
MDAwMDAwIH0sCi0gIHsgMHgyMjgwMTk0NCwgMHg1NDAwMDAwMSB9LAotICB7IDB4MjI4MDE5NDYs
IDB4MzQwMDAwMDkgfSwKLSAgeyAweDM0ODAxOTUwLCAweDFjMDAwMDFkIH0sCi0gIHsgMHgzNDgw
MTk3MCwgMHgxYzAwMDAwNCB9LAotICB7IDB4Mjc4MDE5ODAsIDB4MWMwMDAwMjkgfSwKLSAgeyAw
eDI3ODAxOWIwLCAweDI4MDAwMDEwIH0sCi0gIHsgMHgyNzgwMTljMSwgMHgxYzAwMDAwNiB9LAot
ICB7IDB4Mjc4MDE5YzgsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDI3ODAxOWQwLCAweDM0MDAwMDA5
IH0sCi0gIHsgMHgyNzgwMTlkZSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MWY4MDE5ZTAsIDB4Njgw
MDAwMWYgfSwKLSAgeyAweDA1ODAxYTAwLCAweDFjMDAwMDE2IH0sCi0gIHsgMHgwNTgwMWExNywg
MHgzMDAwMDAwMSB9LAotICB7IDB4MDU4MDFhMTksIDB4MjgwMDAwMDIgfSwKLSAgeyAweDA1ODAx
YTFlLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgyMTgwMWQwMCwgMHgxNDAwMDAyYiB9LAotICB7IDB4
MjE4MDFkMmMsIDB4MTgwMDAwMzUgfSwKLSAgeyAweDIxODAxZDYyLCAweDE0MDAwMDE1IH0sCi0g
IHsgMHgwYzAwMWQ3OCwgMHgxODAwMDAwMCB9LAotICB7IDB4MjE4MDFkNzksIDB4MTQwMDAwMjEg
fSwKLSAgeyAweDIxODAxZDliLCAweDE4MDAwMDI0IH0sCi0gIHsgMHgxYjgwMWRjMCwgMHgzMDAw
MDAwMyB9LAotICB7IDB4MjEwMDFlMDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTAxLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUwMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
MDMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTA0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWUwNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMDYsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZTA3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUwOCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlMDksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTBhLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWUwYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMGMsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTBkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUw
ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZTEwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxMSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlMTIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTEzLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWUxNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMTUsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZTE2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxNywgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTE5
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUxYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlMWIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTFjLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWUxZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMWUsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZTFmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUyMCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlMjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTIyLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMjQs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTI1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MWUyNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZTI4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyOSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlMmEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTJiLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWUyYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMmQsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZTJlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyZiwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZTMxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlMzMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTM0LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWUzNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMzYsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZTM3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzOCwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlMzksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTNhLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUzYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
M2MsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTNkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWUzZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlM2YsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZTQwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0MSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlNDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTQzLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWU0NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNDUsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTQ2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0
NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNDgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZTQ5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU0YSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlNGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTRjLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWU0ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNGUsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZTRmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU1MCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTUy
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlNTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTU1LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWU1NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNTcsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZTU4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1OSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlNWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTViLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU1YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNWQs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTVlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWU1ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZTYxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2MiwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDFlNjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTY0LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWU2NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNjYsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZTY3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2OCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZTZhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU2YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlNmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTZkLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWU2ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNmYsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZTcwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU3MSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlNzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTczLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU3NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
NzUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTc2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWU3NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNzgsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZTc5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU3YSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlN2IsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTdjLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWU3ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlN2UsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTdmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU4
MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlODEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZTgyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4MywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlODQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTg1LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWU4NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlODcsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZTg4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4OSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlOGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZThi
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU4YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlOGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZThlLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWU4ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlOTAsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZTkxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU5MiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlOTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTk0LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU5NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjE4MDFlOTYs
IDB4MTQwMDAwMDQgfSwKLSAgeyAweDIxMDAxZTliLCAweDE0MDBmZmM1IH0sCi0gIHsgMHgyMTAw
MWVhMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZWEyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhMywgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlYTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWE1LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWVhNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYTcsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZWE4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhOSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZWFiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVhYywgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlYWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWFlLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWVhZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYjAsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZWIxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWViMiwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlYjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWI0LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWViNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
YjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWI3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWViOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYjksIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZWJhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWViYiwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlYmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWJkLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWViZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYmYsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWMwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVj
MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZWMzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjNCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlYzUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWM2LCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWVjNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYzgsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZWM5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjYSwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlY2IsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWNj
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVjZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlY2UsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWNmLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWVkMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZDEsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZWQyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVkMywgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlZDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWQ1LCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVkNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZDcs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWQ4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWVkOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZWRiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVkYywgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDFlZGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWRlLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWVkZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZTAsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZWUxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVlMiwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZWU0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlZTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWU3LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWVlOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZTksIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZWVhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlYiwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlZWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWVkLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVlZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
ZWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWYwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWVmMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZjIsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZWYzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVmNCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlZjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWY2LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWVmNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZjgsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMWYw
MCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMDEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEz
MDAxZjAyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYwMywgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmMDQsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjA1LCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWYwNiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMDcsIDB4MTQwMDAw
MDggfSwKLSAgeyAweDEzMDAxZjA4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYwOSwgMHgy
NDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMGEsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjBi
LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYwYywgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmMGQsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjBlLCAweDI0MDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWYwZiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMTAsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjExLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYxMiwgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmMTMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjE0LCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYxNSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMTgs
IDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjE5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAw
MWYxYSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMWIsIDB4MjQwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZjFjLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYxZCwgMHgyNDAwZmZmOCB9LAot
ICB7IDB4MTMwMDFmMjAsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjIxLCAweDE0MDAwMDA4
IH0sCi0gIHsgMHgxMzAwMWYyMiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjMsIDB4MTQw
MDAwMDggfSwKLSAgeyAweDEzMDAxZjI0LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYyNSwg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjYsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZjI3LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYyOCwgMHgyNDAwZmZmOCB9LAotICB7IDB4
MTMwMDFmMjksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjJhLCAweDI0MDBmZmY4IH0sCi0g
IHsgMHgxMzAwMWYyYiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMmMsIDB4MjQwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZjJkLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYyZSwgMHgyNDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmMmYsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjMwLCAw
eDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYzMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFm
MzIsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjMzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgx
MzAwMWYzNCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMzUsIDB4MTQwMDAwMDggfSwKLSAg
eyAweDEzMDAxZjM2LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYzNywgMHgxNDAwMDAwOCB9
LAotICB7IDB4MTMwMDFmMzgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjM5LCAweDI0MDBm
ZmY4IH0sCi0gIHsgMHgxMzAwMWYzYSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmM2IsIDB4
MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjNjLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYz
ZCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmM2UsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEz
MDAxZjNmLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY0MCwgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmNDEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjQyLCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWY0MywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNDQsIDB4MTQwMDAw
MDggfSwKLSAgeyAweDEzMDAxZjQ1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY0OCwgMHgy
NDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNDksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjRh
LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY0YiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmNGMsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjRkLCAweDI0MDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWY1MCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmNTEsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjUyLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWY1MywgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmNTQsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZjU1LCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY1NiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmNTcs
IDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjU5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAw
MWY1YiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNWQsIDB4MjQwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZjVmLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2MCwgMHgxNDAwMDAwOCB9LAot
ICB7IDB4MTMwMDFmNjEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjYyLCAweDE0MDAwMDA4
IH0sCi0gIHsgMHgxMzAwMWY2MywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNjQsIDB4MTQw
MDAwMDggfSwKLSAgeyAweDEzMDAxZjY1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY2Niwg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNjcsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZjY4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2OSwgMHgyNDAwZmZmOCB9LAotICB7IDB4
MTMwMDFmNmEsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjZiLCAweDI0MDBmZmY4IH0sCi0g
IHsgMHgxMzAwMWY2YywgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNmQsIDB4MjQwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZjZlLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2ZiwgMHgyNDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmNzAsIDB4MTQwMDAwNGEgfSwKLSAgeyAweDEzMDAxZjcxLCAw
eDE0MDAwMDRhIH0sCi0gIHsgMHgxMzAwMWY3MiwgMHgxNDAwMDA1NiB9LAotICB7IDB4MTMwMDFm
NzMsIDB4MTQwMDAwNTYgfSwKLSAgeyAweDEzMDAxZjc0LCAweDE0MDAwMDU2IH0sCi0gIHsgMHgx
MzAwMWY3NSwgMHgxNDAwMDA1NiB9LAotICB7IDB4MTMwMDFmNzYsIDB4MTQwMDAwNjQgfSwKLSAg
eyAweDEzMDAxZjc3LCAweDE0MDAwMDY0IH0sCi0gIHsgMHgxMzAwMWY3OCwgMHgxNDAwMDA4MCB9
LAotICB7IDB4MTMwMDFmNzksIDB4MTQwMDAwODAgfSwKLSAgeyAweDEzMDAxZjdhLCAweDE0MDAw
MDcwIH0sCi0gIHsgMHgxMzAwMWY3YiwgMHgxNDAwMDA3MCB9LAotICB7IDB4MTMwMDFmN2MsIDB4
MTQwMDAwN2UgfSwKLSAgeyAweDEzMDAxZjdkLCAweDE0MDAwMDdlIH0sCi0gIHsgMHgxMzAwMWY4
MCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmODEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEz
MDAxZjgyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY4MywgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmODQsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjg1LCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWY4NiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmODcsIDB4MTQwMDAw
MDggfSwKLSAgeyAweDEzMDAxZjg4LCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY4OSwgMHgy
MDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOGEsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjhi
LCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY4YywgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmOGQsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjhlLCAweDIwMDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWY4ZiwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOTAsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjkxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY5MiwgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmOTMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjk0LCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY5NSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmOTYs
IDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjk3LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAw
MWY5OCwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOTksIDB4MjAwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZjlhLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY5YiwgMHgyMDAwZmZmOCB9LAot
ICB7IDB4MTMwMDFmOWMsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjlkLCAweDIwMDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWY5ZSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOWYsIDB4MjAw
MGZmZjggfSwKLSAgeyAweDEzMDAxZmEwLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhMSwg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYTIsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZmEzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhNCwgMHgxNDAwMDAwOCB9LAotICB7IDB4
MTMwMDFmYTUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmE2LCAweDE0MDAwMDA4IH0sCi0g
IHsgMHgxMzAwMWZhNywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYTgsIDB4MjAwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZmE5LCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZhYSwgMHgyMDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmYWIsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZmFjLCAw
eDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZhZCwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFm
YWUsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZmFmLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgx
MzAwMWZiMCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYjEsIDB4MTQwMDAwMDggfSwKLSAg
eyAweDEzMDAxZmIyLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWZiMywgMHgxNDAwMDAwOSB9
LAotICB7IDB4MTMwMDFmYjQsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzODAxZmI2LCAweDE0MDAw
MDAxIH0sCi0gIHsgMHgxMzAwMWZiOCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmYjksIDB4
MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZmJhLCAweDI0MDBmZmI2IH0sCi0gIHsgMHgxMzAwMWZi
YiwgMHgyNDAwZmZiNiB9LAotICB7IDB4MTMwMDFmYmMsIDB4MjAwMGZmZjcgfSwKLSAgeyAweDEz
MDAxZmJkLCAweDYwMDAwMDAwIH0sCi0gIHsgMHgxMzAwMWZiZSwgMHgxNDAwZTNkYiB9LAotICB7
IDB4MTM4MDFmYmYsIDB4NjAwMDAwMDIgfSwKLSAgeyAweDEzMDAxZmMyLCAweDE0MDAwMDAwIH0s
Ci0gIHsgMHgxMzAwMWZjMywgMHgxNDAwMDAwOSB9LAotICB7IDB4MTMwMDFmYzQsIDB4MTQwMDAw
MDAgfSwKLSAgeyAweDEzODAxZmM2LCAweDE0MDAwMDAxIH0sCi0gIHsgMHgxMzAwMWZjOCwgMHgy
NDAwZmZhYSB9LAotICB7IDB4MTMwMDFmYzksIDB4MjQwMGZmYWEgfSwKLSAgeyAweDEzMDAxZmNh
LCAweDI0MDBmZmFhIH0sCi0gIHsgMHgxMzAwMWZjYiwgMHgyNDAwZmZhYSB9LAotICB7IDB4MTMw
MDFmY2MsIDB4MjAwMGZmZjcgfSwKLSAgeyAweDEzODAxZmNkLCAweDYwMDAwMDAyIH0sCi0gIHsg
MHgxMzAwMWZkMCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmZDEsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzODAxZmQyLCAweDE0MDAwMDAxIH0sCi0gIHsgMHgxMzgwMWZkNiwgMHgxNDAwMDAw
MSB9LAotICB7IDB4MTMwMDFmZDgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZmQ5LCAweDI0
MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZkYSwgMHgyNDAwZmY5YyB9LAotICB7IDB4MTMwMDFmZGIs
IDB4MjQwMGZmOWMgfSwKLSAgeyAweDEzODAxZmRkLCAweDYwMDAwMDAyIH0sCi0gIHsgMHgxMzAw
MWZlMCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmZTEsIDB4MTQwMDAwMDggfSwKLSAgeyAw
eDEzODAxZmUyLCAweDE0MDAwMDAyIH0sCi0gIHsgMHgxMzAwMWZlNSwgMHgxNDAwMDAwNyB9LAot
ICB7IDB4MTM4MDFmZTYsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDEzMDAxZmU4LCAweDI0MDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWZlOSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmZWEsIDB4MjQw
MGZmOTAgfSwKLSAgeyAweDEzMDAxZmViLCAweDI0MDBmZjkwIH0sCi0gIHsgMHgxMzAwMWZlYywg
MHgyNDAwZmZmOSB9LAotICB7IDB4MTM4MDFmZWQsIDB4NjAwMDAwMDIgfSwKLSAgeyAweDEzMDAx
ZmYyLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWZmMywgMHgxNDAwMDAwOSB9LAotICB7IDB4
MTMwMDFmZjQsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzODAxZmY2LCAweDE0MDAwMDAxIH0sCi0g
IHsgMHgxMzAwMWZmOCwgMHgyNDAwZmY4MCB9LAotICB7IDB4MTMwMDFmZjksIDB4MjQwMGZmODAg
fSwKLSAgeyAweDEzMDAxZmZhLCAweDI0MDBmZjgyIH0sCi0gIHsgMHgxMzAwMWZmYiwgMHgyNDAw
ZmY4MiB9LAotICB7IDB4MTMwMDFmZmMsIDB4MjAwMGZmZjcgfSwKLSAgeyAweDEzODAxZmZkLCAw
eDYwMDAwMDAxIH0sCi0gIHsgMHgwOTgwMjAwMCwgMHg3NDAwMDAwYSB9LAotICB7IDB4MDk4MDIw
MGIsIDB4MDQwMDAwMDQgfSwKLSAgeyAweDA5ODAyMDEwLCAweDQ0MDAwMDA1IH0sCi0gIHsgMHgw
OTgwMjAxNiwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDkwMDIwMTgsIDB4NTAwMDAwMDAgfSwKLSAg
eyAweDA5MDAyMDE5LCAweDRjMDAwMDAwIH0sCi0gIHsgMHgwOTAwMjAxYSwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDk4MDIwMWIsIDB4NTAwMDAwMDEgfSwKLSAgeyAweDA5MDAyMDFkLCAweDRjMDAw
MDAwIH0sCi0gIHsgMHgwOTAwMjAxZSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDIwMWYsIDB4
NTAwMDAwMDAgfSwKLSAgeyAweDA5ODAyMDIwLCAweDU0MDAwMDA3IH0sCi0gIHsgMHgwOTAwMjAy
OCwgMHg2YzAwMDAwMCB9LAotICB7IDB4MDkwMDIwMjksIDB4NzAwMDAwMDAgfSwKLSAgeyAweDA5
ODAyMDJhLCAweDA0MDAwMDA0IH0sCi0gIHsgMHgwOTAwMjAyZiwgMHg3NDAwMDAwMCB9LAotICB7
IDB4MDk4MDIwMzAsIDB4NTQwMDAwMDggfSwKLSAgeyAweDA5MDAyMDM5LCAweDUwMDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjAzYSwgMHg0YzAwMDAwMCB9LAotICB7IDB4MDk4MDIwM2IsIDB4NTQwMDAw
MDMgfSwKLSAgeyAweDA5ODAyMDNmLCAweDQwMDAwMDAxIH0sCi0gIHsgMHgwOTgwMjA0MSwgMHg1
NDAwMDAwMiB9LAotICB7IDB4MDkwMDIwNDQsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDQ1
LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjA0NiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4
MDIwNDcsIDB4NTQwMDAwMGEgfSwKLSAgeyAweDA5MDAyMDUyLCAweDY0MDAwMDAwIH0sCi0gIHsg
MHgwOTAwMjA1MywgMHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMDIwNTQsIDB4NDAwMDAwMDAgfSwK
LSAgeyAweDA5ODAyMDU1LCAweDU0MDAwMDA5IH0sCi0gIHsgMHgwOTAwMjA1ZiwgMHg3NDAwMDAw
MCB9LAotICB7IDB4MDk4MDIwNjAsIDB4MDQwMDAwMDMgfSwKLSAgeyAweDA5ODAyMDZhLCAweDA0
MDAwMDA1IH0sCi0gIHsgMHgwOTAwMjA3MCwgMHgzYzAwMDAwMCB9LAotICB7IDB4MjEwMDIwNzEs
IDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMDc0LCAweDNjMDAwMDA1IH0sCi0gIHsgMHgwOTgw
MjA3YSwgMHg2NDAwMDAwMiB9LAotICB7IDB4MDkwMDIwN2QsIDB4NTgwMDAwMDAgfSwKLSAgeyAw
eDA5MDAyMDdlLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgyMTAwMjA3ZiwgMHgxNDAwMDAwMCB9LAot
ICB7IDB4MDk4MDIwODAsIDB4M2MwMDAwMDkgfSwKLSAgeyAweDA5ODAyMDhhLCAweDY0MDAwMDAy
IH0sCi0gIHsgMHgwOTAwMjA4ZCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDIwOGUsIDB4NDgw
MDAwMDAgfSwKLSAgeyAweDIxODAyMDkwLCAweDE4MDAwMDA0IH0sCi0gIHsgMHgwOTgwMjBhMCwg
MHg1YzAwMDAxNSB9LAotICB7IDB4MWI4MDIwZDAsIDB4MzAwMDAwMGMgfSwKLSAgeyAweDFiODAy
MGRkLCAweDJjMDAwMDAzIH0sCi0gIHsgMHgxYjAwMjBlMSwgMHgzMDAwMDAwMCB9LAotICB7IDB4
MWI4MDIwZTIsIDB4MmMwMDAwMDIgfSwKLSAgeyAweDFiODAyMGU1LCAweDMwMDAwMDA2IH0sCi0g
IHsgMHgwOTgwMjEwMCwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDkwMDIxMDIsIDB4MjQwMDAwMDAg
fSwKLSAgeyAweDA5ODAyMTAzLCAweDY4MDAwMDAzIH0sCi0gIHsgMHgwOTAwMjEwNywgMHgyNDAw
MDAwMCB9LAotICB7IDB4MDk4MDIxMDgsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAyMTBhLCAw
eDE0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjEwYiwgMHgyNDAwMDAwMiB9LAotICB7IDB4MDk4MDIx
MGUsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDA5ODAyMTEwLCAweDI0MDAwMDAyIH0sCi0gIHsgMHgw
OTAwMjExMywgMHgxNDAwMDAwMCB9LAotICB7IDB4MDkwMDIxMTQsIDB4NjgwMDAwMDAgfSwKLSAg
eyAweDA5MDAyMTE1LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjExNiwgMHg2ODAwMDAwMiB9
LAotICB7IDB4MDk4MDIxMTksIDB4MjQwMDAwMDQgfSwKLSAgeyAweDA5ODAyMTFlLCAweDY4MDAw
MDA1IH0sCi0gIHsgMHgwOTAwMjEyNCwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDkwMDIxMjUsIDB4
NjgwMDAwMDAgfSwKLSAgeyAweDEzMDAyMTI2LCAweDI0MDBlMmEzIH0sCi0gIHsgMHgwOTAwMjEy
NywgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDIxMjgsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5
MDAyMTI5LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgyMTAwMjEyYSwgMHgyNDAwZGY0MSB9LAotICB7
IDB4MjEwMDIxMmIsIDB4MjQwMGRmYmEgfSwKLSAgeyAweDA5ODAyMTJjLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwOTAwMjEyZSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDIxMmYsIDB4MTQwMDAw
MDAgfSwKLSAgeyAweDA5ODAyMTMwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwOTAwMjEzMiwgMHg2
ODAwMDAwMCB9LAotICB7IDB4MDkwMDIxMzMsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTM0
LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjEzNSwgMHgxYzAwMDAwMyB9LAotICB7IDB4MDkw
MDIxMzksIDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMTNhLCAweDY4MDAwMDAxIH0sCi0gIHsg
MHgwOTgwMjEzYywgMHgxNDAwMDAwMSB9LAotICB7IDB4MDk4MDIxM2UsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDA5ODAyMTQwLCAweDY0MDAwMDA0IH0sCi0gIHsgMHgwOTAwMjE0NSwgMHgyNDAwMDAw
MCB9LAotICB7IDB4MDk4MDIxNDYsIDB4MTQwMDAwMDMgfSwKLSAgeyAweDA5MDAyMTRhLCAweDY4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjE0YiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMDIxNGMs
IDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5ODAyMTUzLCAweDNjMDAwMDBjIH0sCi0gIHsgMHgwOTAw
MjE2MCwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjEsIDB4MzgwMDAwMTAgfSwKLSAgeyAw
eDA5MDAyMTYyLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2MywgMHgzODAwMDAxMCB9LAot
ICB7IDB4MDkwMDIxNjQsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTY1LCAweDM4MDAwMDEw
IH0sCi0gIHsgMHgwOTAwMjE2NiwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjcsIDB4Mzgw
MDAwMTAgfSwKLSAgeyAweDA5MDAyMTY4LCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2OSwg
MHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNmEsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAy
MTZiLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2YywgMHgzODAwMDAxMCB9LAotICB7IDB4
MDkwMDIxNmQsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTZlLCAweDM4MDAwMDEwIH0sCi0g
IHsgMHgwOTAwMjE2ZiwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNzAsIDB4MzgwMGZmZjAg
fSwKLSAgeyAweDA5MDAyMTcxLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3MiwgMHgzODAw
ZmZmMCB9LAotICB7IDB4MDkwMDIxNzMsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTc0LCAw
eDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3NSwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIx
NzYsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTc3LCAweDM4MDBmZmYwIH0sCi0gIHsgMHgw
OTAwMjE3OCwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxNzksIDB4MzgwMGZmZjAgfSwKLSAg
eyAweDA5MDAyMTdhLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3YiwgMHgzODAwZmZmMCB9
LAotICB7IDB4MDkwMDIxN2MsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTdkLCAweDM4MDBm
ZmYwIH0sCi0gIHsgMHgwOTAwMjE3ZSwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxN2YsIDB4
MzgwMGZmZjAgfSwKLSAgeyAweDA5ODAyMTgwLCAweDM4MDAwMDAzIH0sCi0gIHsgMHgwOTgwMjE5
MCwgMHg2NDAwMDAwNCB9LAotICB7IDB4MDk4MDIxOTUsIDB4NjgwMDAwMDQgfSwKLSAgeyAweDA5
ODAyMTlhLCAweDY0MDAwMDAxIH0sCi0gIHsgMHgwOTgwMjE5YywgMHg2ODAwMDAwMyB9LAotICB7
IDB4MDkwMDIxYTAsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMWExLCAweDY4MDAwMDAxIH0s
Ci0gIHsgMHgwOTAwMjFhMywgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxYTQsIDB4NjgwMDAw
MDEgfSwKLSAgeyAweDA5MDAyMWE2LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjFhNywgMHg2
ODAwMDAwNiB9LAotICB7IDB4MDkwMDIxYWUsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMWFm
LCAweDY4MDAwMDFlIH0sCi0gIHsgMHgwOTgwMjFjZSwgMHg2NDAwMDAwMSB9LAotICB7IDB4MDk4
MDIxZDAsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAyMWQyLCAweDY0MDAwMDAwIH0sCi0gIHsg
MHgwOTAwMjFkMywgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDIxZDQsIDB4NjQwMDAwMDAgfSwK
LSAgeyAweDA5ODAyMWQ1LCAweDY4MDAwMDFlIH0sCi0gIHsgMHgwOTgwMjFmNCwgMHg2NDAwMDEw
YiB9LAotICB7IDB4MDk4MDIzMDAsIDB4NjgwMDAwMDcgfSwKLSAgeyAweDA5ODAyMzA4LCAweDY0
MDAwMDAzIH0sCi0gIHsgMHgwOTgwMjMwYywgMHg2ODAwMDAxMyB9LAotICB7IDB4MDk4MDIzMjAs
IDB4NjQwMDAwMDEgfSwKLSAgeyAweDA5ODAyMzIyLCAweDY4MDAwMDA2IH0sCi0gIHsgMHgwOTAw
MjMyOSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDIzMmEsIDB4NDgwMDAwMDAgfSwKLSAgeyAw
eDA5ODAyMzJiLCAweDY4MDAwMDUwIH0sCi0gIHsgMHgwOTAwMjM3YywgMHg2NDAwMDAwMCB9LAot
ICB7IDB4MDk4MDIzN2QsIDB4NjgwMDAwMWQgfSwKLSAgeyAweDA5ODAyMzliLCAweDY0MDAwMDE4
IH0sCi0gIHsgMHgwOTAwMjNiNCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDIzYjUsIDB4NDgw
MDAwMDAgfSwKLSAgeyAweDA5MDAyM2I2LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjNiNywg
MHg2ODAwMDAyNCB9LAotICB7IDB4MDk4MDI0MDAsIDB4NjgwMDAwMjYgfSwKLSAgeyAweDA5ODAy
NDQwLCAweDY4MDAwMDBhIH0sCi0gIHsgMHgwOTgwMjQ2MCwgMHgzYzAwMDAzYiB9LAotICB7IDB4
MDk4MDI0OWMsIDB4NjgwMDAwMTkgfSwKLSAgeyAweDA5MDAyNGI2LCAweDY4MDAwMDFhIH0sCi0g
IHsgMHgwOTAwMjRiNywgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YjgsIDB4NjgwMDAwMWEg
fSwKLSAgeyAweDA5MDAyNGI5LCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiYSwgMHg2ODAw
MDAxYSB9LAotICB7IDB4MDkwMDI0YmIsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGJjLCAw
eDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiZCwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0
YmUsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGJmLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgw
OTAwMjRjMCwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzEsIDB4NjgwMDAwMWEgfSwKLSAg
eyAweDA5MDAyNGMyLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjMywgMHg2ODAwMDAxYSB9
LAotICB7IDB4MDkwMDI0YzQsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGM1LCAweDY4MDAw
MDFhIH0sCi0gIHsgMHgwOTAwMjRjNiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzcsIDB4
NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGM4LCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRj
OSwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0Y2EsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5
MDAyNGNiLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjYywgMHg2ODAwMDAxYSB9LAotICB7
IDB4MDkwMDI0Y2QsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGNlLCAweDY4MDAwMDFhIH0s
Ci0gIHsgMHgwOTAwMjRjZiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0ZDAsIDB4NjgwMGZm
ZTYgfSwKLSAgeyAweDA5MDAyNGQxLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkMiwgMHg2
ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZDMsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQ0
LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkNSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkw
MDI0ZDYsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQ3LCAweDY4MDBmZmU2IH0sCi0gIHsg
MHgwOTAwMjRkOCwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZDksIDB4NjgwMGZmZTYgfSwK
LSAgeyAweDA5MDAyNGRhLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkYiwgMHg2ODAwZmZl
NiB9LAotICB7IDB4MDkwMDI0ZGMsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGRkLCAweDY4
MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkZSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZGYs
IDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGUwLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAw
MjRlMSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTIsIDB4NjgwMGZmZTYgfSwKLSAgeyAw
eDA5MDAyNGUzLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRlNCwgMHg2ODAwZmZlNiB9LAot
ICB7IDB4MDkwMDI0ZTUsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGU2LCAweDY4MDBmZmU2
IH0sCi0gIHsgMHgwOTAwMjRlNywgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTgsIDB4Njgw
MGZmZTYgfSwKLSAgeyAweDA5MDAyNGU5LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTgwMjRlYSwg
MHgzYzAwMDAxNSB9LAotICB7IDB4MDk4MDI1MDAsIDB4NjgwMDAwYjYgfSwKLSAgeyAweDA5MDAy
NWI3LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjViOCwgMHg2ODAwMDAwOCB9LAotICB7IDB4
MDkwMDI1YzEsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyNWMyLCAweDY4MDAwMDM1IH0sCi0g
IHsgMHgwOTgwMjVmOCwgMHg2NDAwMDAwNyB9LAotICB7IDB4MDk4MDI2MDAsIDB4NjgwMDAwNmUg
fSwKLSAgeyAweDA5MDAyNjZmLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjY3MCwgMHg2ODAw
MDAyYyB9LAotICB7IDB4MDk4MDI2YTAsIDB4NjgwMDAwMTEgfSwKLSAgeyAweDA5ODAyNzAxLCAw
eDY4MDAwMDAzIH0sCi0gIHsgMHgwOTgwMjcwNiwgMHg2ODAwMDAwMyB9LAotICB7IDB4MDk4MDI3
MGMsIDB4NjgwMDAwMWIgfSwKLSAgeyAweDA5ODAyNzI5LCAweDY4MDAwMDIyIH0sCi0gIHsgMHgw
OTAwMjc0ZCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3NGYsIDB4NjgwMDAwMDMgfSwKLSAg
eyAweDA5MDAyNzU2LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjc1OCwgMHg2ODAwMDAwNiB9
LAotICB7IDB4MDk4MDI3NjEsIDB4NjgwMDAwMDYgfSwKLSAgeyAweDA5MDAyNzY4LCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMjc2OSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NmEsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzZiLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc2
YywgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NmQsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5
MDAyNzZlLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc2ZiwgMHg0ODAwMDAwMCB9LAotICB7
IDB4MDkwMDI3NzAsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzcxLCAweDQ4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjc3MiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NzMsIDB4NDgwMDAw
MDAgfSwKLSAgeyAweDA5MDAyNzc0LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc3NSwgMHg0
ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3NzYsIDB4M2MwMDAwMWQgfSwKLSAgeyAweDA5MDAyNzk0
LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjc5OCwgMHg2ODAwMDAxNyB9LAotICB7IDB4MDk4
MDI3YjEsIDB4NjgwMDAwMGQgfSwKLSAgeyAweDA5ODAyN2MwLCAweDY0MDAwMDA0IH0sCi0gIHsg
MHgwOTAwMjdjNSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3YzYsIDB4NDgwMDAwMDAgfSwK
LSAgeyAweDA5ODAyN2QwLCAweDY0MDAwMDE1IH0sCi0gIHsgMHgwOTAwMjdlNiwgMHg1ODAwMDAw
MCB9LAotICB7IDB4MDkwMDI3ZTcsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyN2U4LCAweDU4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjdlOSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3ZWEs
IDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyN2ViLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgw
MjdmMCwgMHg2NDAwMDAwZiB9LAotICB7IDB4MDQ4MDI4MDAsIDB4NjgwMDAwZmYgfSwKLSAgeyAw
eDA5ODAyOTAwLCAweDY0MDAwMDgyIH0sCi0gIHsgMHgwOTAwMjk4MywgMHg1ODAwMDAwMCB9LAot
ICB7IDB4MDkwMDI5ODQsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTg1LCAweDU4MDAwMDAw
IH0sCi0gIHsgMHgwOTAwMjk4NiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5ODcsIDB4NTgw
MDAwMDAgfSwKLSAgeyAweDA5MDAyOTg4LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4OSwg
MHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OGEsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAy
OThiLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4YywgMHg0ODAwMDAwMCB9LAotICB7IDB4
MDkwMDI5OGQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOThlLCAweDQ4MDAwMDAwIH0sCi0g
IHsgMHgwOTAwMjk4ZiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OTAsIDB4NDgwMDAwMDAg
fSwKLSAgeyAweDA5MDAyOTkxLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5MiwgMHg0ODAw
MDAwMCB9LAotICB7IDB4MDkwMDI5OTMsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTk0LCAw
eDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5NSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5
OTYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTk3LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMjk5OCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDI5OTksIDB4NjQwMDAwM2UgfSwKLSAg
eyAweDA5MDAyOWQ4LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjlkOSwgMHg0ODAwMDAwMCB9
LAotICB7IDB4MDkwMDI5ZGEsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOWRiLCAweDQ4MDAw
MDAwIH0sCi0gIHsgMHgwOTgwMjlkYywgMHg2NDAwMDAxZiB9LAotICB7IDB4MDkwMDI5ZmMsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOWZkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjlm
ZSwgMHg2NDAwMDEwMSB9LAotICB7IDB4MDk4MDJiMDAsIDB4NjgwMDAwMTMgfSwKLSAgeyAweDEx
MDAyYzAwLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwMSwgMHgyNDAwMDAzMCB9LAotICB7
IDB4MTEwMDJjMDIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzAzLCAweDI0MDAwMDMwIH0s
Ci0gIHsgMHgxMTAwMmMwNCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDUsIDB4MjQwMDAw
MzAgfSwKLSAgeyAweDExMDAyYzA2LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwNywgMHgy
NDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDgsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzA5
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwYSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEw
MDJjMGIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzBjLCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgxMTAwMmMwZCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMGUsIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDExMDAyYzBmLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxMCwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MTEwMDJjMTEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzEyLCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxMywgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTQs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzE1LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAw
MmMxNiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTcsIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDExMDAyYzE4LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxOSwgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MTEwMDJjMWEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzFiLCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgxMTAwMmMxYywgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMWQsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDExMDAyYzFlLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxZiwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMjAsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAy
YzIxLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyMiwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MTEwMDJjMjMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzI0LCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgxMTAwMmMyNSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMjYsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDExMDAyYzI3LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyOCwgMHgyNDAw
MDAzMCB9LAotICB7IDB4MTEwMDJjMjksIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzJhLCAw
eDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyYiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJj
MmMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzJkLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgx
MTAwMmMyZSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMzAsIDB4MTQwMGZmZDAgfSwKLSAg
eyAweDExMDAyYzMxLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzMiwgMHgxNDAwZmZkMCB9
LAotICB7IDB4MTEwMDJjMzMsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzM0LCAweDE0MDBm
ZmQwIH0sCi0gIHsgMHgxMTAwMmMzNSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzYsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzM3LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMz
OCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzksIDB4MTQwMGZmZDAgfSwKLSAgeyAweDEx
MDAyYzNhLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzYiwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MTEwMDJjM2MsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzNkLCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgxMTAwMmMzZSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjM2YsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDExMDAyYzQwLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0MSwgMHgx
NDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDIsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQz
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0NCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEw
MDJjNDUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQ2LCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgxMTAwMmM0NywgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDgsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDExMDAyYzQ5LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0YSwgMHgxNDAwZmZk
MCB9LAotICB7IDB4MTEwMDJjNGIsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzRjLCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0ZCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNGUs
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzRmLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAw
MmM1MCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTEsIDB4MTQwMGZmZDAgfSwKLSAgeyAw
eDExMDAyYzUyLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1MywgMHgxNDAwZmZkMCB9LAot
ICB7IDB4MTEwMDJjNTQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzU1LCAweDE0MDBmZmQw
IH0sCi0gIHsgMHgxMTAwMmM1NiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTcsIDB4MTQw
MGZmZDAgfSwKLSAgeyAweDExMDAyYzU4LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1OSwg
MHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNWEsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAy
YzViLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1YywgMHgxNDAwZmZkMCB9LAotICB7IDB4
MTEwMDJjNWQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzVlLCAweDE0MDBmZmQwIH0sCi0g
IHsgMHgwYTAwMmM4MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjODEsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBhMDAyYzgyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM4MywgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGEwMDJjODQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzg1LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM4NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJj
ODcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzg4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YTAwMmM4OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOGEsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBhMDAyYzhiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM4YywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGEwMDJjOGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzhlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYTAwMmM4ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOTAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzkxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM5
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBh
MDAyYzk0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5NSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGEwMDJjOTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzk3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYTAwMmM5OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOTksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBhMDAyYzlhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5YiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzlk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM5ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEw
MDJjOWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2EwLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYTAwMmNhMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYTIsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBhMDAyY2EzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhNCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGEwMDJjYTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2E2LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNhNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYTgs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2E5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAw
MmNhYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYWIsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBhMDAyY2FjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNhZCwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGEwMDJjYWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2FmLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYTAwMmNiMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYjEsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBhMDAyY2IyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNiMywg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYjQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAy
Y2I1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNiNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGEwMDJjYjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2I4LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYTAwMmNiOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYmEsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBhMDAyY2JiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNiYywgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGEwMDJjYmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2JlLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNiZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJj
YzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2MxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgw
YTAwMmNjMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYzMsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDBhMDAyY2M0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNjNSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MGEwMDJjYzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2M3LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYTAwMmNjOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYzksIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2NhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNj
YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjY2MsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBh
MDAyY2NkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNjZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGEwMDJjY2YsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2QwLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwYTAwMmNkMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZDIsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBhMDAyY2QzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNkNCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZDUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2Q2
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNkNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEw
MDJjZDgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2Q5LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYTAwMmNkYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZGIsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBhMDAyY2RjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNkZCwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGEwMDJjZGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2RmLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNlMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZTEs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2UyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAw
MmNlMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZTQsIDB4MTQwMDAwMDAgfSwKLSAgeyAw
eDBhODAyY2U1LCAweDY4MDAwMDA1IH0sCi0gIHsgMHgwYTgwMmNmOSwgMHg1NDAwMDAwMyB9LAot
ICB7IDB4MGEwMDJjZmQsIDB4M2MwMDAwMDAgfSwKLSAgeyAweDBhODAyY2ZlLCAweDU0MDAwMDAx
IH0sCi0gIHsgMHgxMDAwMmQwMCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMDEsIDB4MTQw
MGUzYTAgfSwKLSAgeyAweDEwMDAyZDAyLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwMywg
MHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMDQsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAy
ZDA1LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwNiwgMHgxNDAwZTNhMCB9LAotICB7IDB4
MTAwMDJkMDcsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDA4LCAweDE0MDBlM2EwIH0sCi0g
IHsgMHgxMDAwMmQwOSwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMGEsIDB4MTQwMGUzYTAg
fSwKLSAgeyAweDEwMDAyZDBiLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwYywgMHgxNDAw
ZTNhMCB9LAotICB7IDB4MTAwMDJkMGQsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDBlLCAw
eDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwZiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJk
MTAsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDExLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgx
MDAwMmQxMiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMTMsIDB4MTQwMGUzYTAgfSwKLSAg
eyAweDEwMDAyZDE0LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxNSwgMHgxNDAwZTNhMCB9
LAotICB7IDB4MTAwMDJkMTYsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDE3LCAweDE0MDBl
M2EwIH0sCi0gIHsgMHgxMDAwMmQxOCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMTksIDB4
MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDFhLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQx
YiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMWMsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEw
MDAyZDFkLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxZSwgMHgxNDAwZTNhMCB9LAotICB7
IDB4MTAwMDJkMWYsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDIwLCAweDE0MDBlM2EwIH0s
Ci0gIHsgMHgxMDAwMmQyMSwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMjIsIDB4MTQwMGUz
YTAgfSwKLSAgeyAweDEwMDAyZDIzLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQyNCwgMHgx
NDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMjUsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDNhODAyZDMw
LCAweDFjMDAwMDM1IH0sCi0gIHsgMHgzYTAwMmQ2ZiwgMHgxODAwMDAwMCB9LAotICB7IDB4MGY4
MDJkODAsIDB4MWMwMDAwMTYgfSwKLSAgeyAweDBmODAyZGEwLCAweDFjMDAwMDA2IH0sCi0gIHsg
MHgwZjgwMmRhOCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGY4MDJkYjAsIDB4MWMwMDAwMDYgfSwK
LSAgeyAweDBmODAyZGI4LCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwZjgwMmRjMCwgMHgxYzAwMDAw
NiB9LAotICB7IDB4MGY4MDJkYzgsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmODAyZGQwLCAweDFj
MDAwMDA2IH0sCi0gIHsgMHgwZjgwMmRkOCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MDk4MDJlMDAs
IDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5MDAyZTAyLCAweDUwMDAwMDAwIH0sCi0gIHsgMHgwOTAw
MmUwMywgMHg0YzAwMDAwMCB9LAotICB7IDB4MDkwMDJlMDQsIDB4NTAwMDAwMDAgfSwKLSAgeyAw
eDA5MDAyZTA1LCAweDRjMDAwMDAwIH0sCi0gIHsgMHgwOTgwMmUwNiwgMHg1NDAwMDAwMiB9LAot
ICB7IDB4MDkwMDJlMDksIDB4NTAwMDAwMDAgfSwKLSAgeyAweDA5MDAyZTBhLCAweDRjMDAwMDAw
IH0sCi0gIHsgMHgwOTAwMmUwYiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMGMsIDB4NTAw
MDAwMDAgfSwKLSAgeyAweDA5MDAyZTBkLCAweDRjMDAwMDAwIH0sCi0gIHsgMHgwOTgwMmUwZSwg
MHg1NDAwMDAwOCB9LAotICB7IDB4MDkwMDJlMTcsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDA5MDAy
ZTFjLCAweDUwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMmUxZCwgMHg0YzAwMDAwMCB9LAotICB7IDB4
MTY4MDJlODAsIDB4NjgwMDAwMTkgfSwKLSAgeyAweDE2ODAyZTliLCAweDY4MDAwMDU4IH0sCi0g
IHsgMHgxNjgwMmYwMCwgMHg2ODAwMDBkNSB9LAotICB7IDB4MDk4MDJmZjAsIDB4NjgwMDAwMGIg
fSwKLSAgeyAweDA5MDAzMDAwLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzAwMSwgMHg1NDAw
MDAwMiB9LAotICB7IDB4MDkwMDMwMDQsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDE2MDAzMDA1LCAw
eDE4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAwNiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MTYwMDMw
MDcsIDB4MzgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDA4LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMzAwOSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMGEsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5MDAzMDBiLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAwYywgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMDMwMGQsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDBlLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMzAwZiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMTAsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDExLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzAx
MiwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDkwMDMwMTQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDAzMDE1LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxNiwgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMDMwMTcsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDE4LCAweDU4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMzAxOSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMWEsIDB4NTgwMDAw
MDAgfSwKLSAgeyAweDA5MDAzMDFiLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxYywgMHg0
NDAwMDAwMCB9LAotICB7IDB4MDkwMDMwMWQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5ODAzMDFl
LCAweDQ4MDAwMDAxIH0sCi0gIHsgMHgwOTAwMzAyMCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MTY4
MDMwMjEsIDB4MzgwMDAwMDggfSwKLSAgeyAweDFiODAzMDJhLCAweDMwMDAwMDA1IH0sCi0gIHsg
MHgwOTAwMzAzMCwgMHg0NDAwMDAwMCB9LAotICB7IDB4MDk4MDMwMzEsIDB4MTgwMDAwMDQgfSwK
LSAgeyAweDA5ODAzMDM2LCAweDY4MDAwMDAxIH0sCi0gIHsgMHgxNjgwMzAzOCwgMHgzODAwMDAw
MiB9LAotICB7IDB4MTYwMDMwM2IsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDNjLCAweDFj
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAzZCwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDk4MDMwM2Us
IDB4NjgwMDAwMDEgfSwKLSAgeyAweDFhODAzMDQxLCAweDFjMDAwMDU1IH0sCi0gIHsgMHgxYjgw
MzA5OSwgMHgzMDAwMDAwMSB9LAotICB7IDB4MDk4MDMwOWIsIDB4NjAwMDAwMDEgfSwKLSAgeyAw
eDFhODAzMDlkLCAweDE4MDAwMDAxIH0sCi0gIHsgMHgxYTAwMzA5ZiwgMHgxYzAwMDAwMCB9LAot
ICB7IDB4MDkwMDMwYTAsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDFkODAzMGExLCAweDFjMDAwMDU5
IH0sCi0gIHsgMHgwOTAwMzBmYiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDk4MDMwZmMsIDB4MTgw
MDAwMDIgfSwKLSAgeyAweDFkMDAzMGZmLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwMzgwMzEwNSwg
MHgxYzAwMDAyNyB9LAotICB7IDB4MTc4MDMxMzEsIDB4MWMwMDAwNWQgfSwKLSAgeyAweDA5ODAz
MTkwLCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwOTgwMzE5MiwgMHgzYzAwMDAwMyB9LAotICB7IDB4
MDk4MDMxOTYsIDB4NjgwMDAwMDkgfSwKLSAgeyAweDAzODAzMWEwLCAweDFjMDAwMDE3IH0sCi0g
IHsgMHgwOTgwMzFjMCwgMHg2ODAwMDAwZiB9LAotICB7IDB4MWQ4MDMxZjAsIDB4MWMwMDAwMGYg
fSwKLSAgeyAweDE3ODAzMjAwLCAweDY4MDAwMDFlIH0sCi0gIHsgMHgwOTgwMzIyMCwgMHgzYzAw
MDAwOSB9LAotICB7IDB4MDk4MDMyMmEsIDB4NjgwMDAwMTkgfSwKLSAgeyAweDA5MDAzMjUwLCAw
eDY4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzI1MSwgMHgzYzAwMDAwZSB9LAotICB7IDB4MTc4MDMy
NjAsIDB4NjgwMDAwMWYgfSwKLSAgeyAweDA5ODAzMjgwLCAweDNjMDAwMDA5IH0sCi0gIHsgMHgw
OTgwMzI4YSwgMHg2ODAwMDAyNiB9LAotICB7IDB4MDk4MDMyYjEsIDB4M2MwMDAwMGUgfSwKLSAg
eyAweDA5ODAzMmMwLCAweDY4MDAwMDNlIH0sCi0gIHsgMHgwOTgwMzMwMCwgMHg2ODAwMDBmZiB9
LAotICB7IDB4MTY4MDM0MDAsIDB4MWMwMDE5YjUgfSwKLSAgeyAweDA5ODA0ZGMwLCAweDY4MDAw
MDNmIH0sCi0gIHsgMHgxNjgwNGUwMCwgMHgxYzAwNTFiYiB9LAotICB7IDB4M2M4MGEwMDAsIDB4
MWMwMDAwMTQgfSwKLSAgeyAweDNjMDBhMDE1LCAweDE4MDAwMDAwIH0sCi0gIHsgMHgzYzgwYTAx
NiwgMHgxYzAwMDQ3NiB9LAotICB7IDB4M2M4MGE0OTAsIDB4NjgwMDAwMzYgfSwKLSAgeyAweDA5
ODBhNzAwLCAweDYwMDAwMDE2IH0sCi0gIHsgMHgzMDgwYTgwMCwgMHgxYzAwMDAwMSB9LAotICB7
IDB4MzAwMGE4MDIsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDMwODBhODAzLCAweDFjMDAwMDAyIH0s
Ci0gIHsgMHgzMDAwYTgwNiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MzA4MGE4MDcsIDB4MWMwMDAw
MDMgfSwKLSAgeyAweDMwMDBhODBiLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzMDgwYTgwYywgMHgx
YzAwMDAxNiB9LAotICB7IDB4MzA4MGE4MjMsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDMwODBhODI1
LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgzMDAwYTgyNywgMHgyODAwMDAwMCB9LAotICB7IDB4MzA4
MGE4MjgsIDB4NjgwMDAwMDMgfSwKLSAgeyAweDE3ODBhYzAwLCAweDFjMDAyYmEzIH0sCi0gIHsg
MHgwOTgwZDgwMCwgMHgxMDAwMDM3ZiB9LAotICB7IDB4MDk4MGRiODAsIDB4MTAwMDAwN2YgfSwK
LSAgeyAweDA5ODBkYzAwLCAweDEwMDAwM2ZmIH0sCi0gIHsgMHgwOTgwZTAwMCwgMHgwYzAwMThm
ZiB9LAotICB7IDB4MTY4MGY5MDAsIDB4MWMwMDAxMmQgfSwKLSAgeyAweDE2ODBmYTMwLCAweDFj
MDAwMDNhIH0sCi0gIHsgMHgxNjgwZmE3MCwgMHgxYzAwMDA2OSB9LAotICB7IDB4MjE4MGZiMDAs
IDB4MTQwMDAwMDYgfSwKLSAgeyAweDAxODBmYjEzLCAweDE0MDAwMDA0IH0sCi0gIHsgMHgxOTAw
ZmIxZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MTkwMGZiMWUsIDB4MzAwMDAwMDAgfSwKLSAgeyAw
eDE5ODBmYjFmLCAweDFjMDAwMDA5IH0sCi0gIHsgMHgxOTAwZmIyOSwgMHg2NDAwMDAwMCB9LAot
ICB7IDB4MTk4MGZiMmEsIDB4MWMwMDAwMGMgfSwKLSAgeyAweDE5ODBmYjM4LCAweDFjMDAwMDA0
IH0sCi0gIHsgMHgxOTAwZmIzZSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MTk4MGZiNDAsIDB4MWMw
MDAwMDEgfSwKLSAgeyAweDE5ODBmYjQzLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgxOTgwZmI0Niwg
MHgxYzAwMDA2YiB9LAotICB7IDB4MDA4MGZiZDMsIDB4MWMwMDAxNmEgfSwKLSAgeyAweDA5MDBm
ZDNlLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmQzZiwgMHg0ODAwMDAwMCB9LAotICB7IDB4
MDA4MGZkNTAsIDB4MWMwMDAwM2YgfSwKLSAgeyAweDAwODBmZDkyLCAweDFjMDAwMDM1IH0sCi0g
IHsgMHgwMDgwZmRmMCwgMHgxYzAwMDAwYiB9LAotICB7IDB4MDAwMGZkZmMsIDB4NWMwMDAwMDAg
fSwKLSAgeyAweDA5MDBmZGZkLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgxYjgwZmUwMCwgMHgzMDAw
MDAwZiB9LAotICB7IDB4MDk4MGZlMTAsIDB4NTQwMDAwMDYgfSwKLSAgeyAweDA5MDBmZTE3LCAw
eDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUxOCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZl
MTksIDB4NTQwMDAwMDAgfSwKLSAgeyAweDFiODBmZTIwLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgw
OTAwZmUzMCwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDk4MGZlMzEsIDB4NDQwMDAwMDEgfSwKLSAg
eyAweDA5ODBmZTMzLCAweDQwMDAwMDAxIH0sCi0gIHsgMHgwOTAwZmUzNSwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMGZlMzYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTM3LCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwZmUzOCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlMzksIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTNhLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUz
YiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlM2MsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5
MDBmZTNkLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUzZSwgMHg0ODAwMDAwMCB9LAotICB7
IDB4MDkwMGZlM2YsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTQwLCAweDQ4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwZmU0MSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNDIsIDB4NDgwMDAw
MDAgfSwKLSAgeyAweDA5MDBmZTQzLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU0NCwgMHg0
ODAwMDAwMCB9LAotICB7IDB4MDk4MGZlNDUsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5MDBmZTQ3
LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU0OCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4
MGZlNDksIDB4NTQwMDAwMDMgfSwKLSAgeyAweDA5ODBmZTRkLCAweDQwMDAwMDAyIH0sCi0gIHsg
MHgwOTgwZmU1MCwgMHg1NDAwMDAwMiB9LAotICB7IDB4MDk4MGZlNTQsIDB4NTQwMDAwMDMgfSwK
LSAgeyAweDA5MDBmZTU4LCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU1OSwgMHg1ODAwMDAw
MCB9LAotICB7IDB4MDkwMGZlNWEsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTViLCAweDU4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU1YywgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNWQs
IDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTVlLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgw
ZmU1ZiwgMHg1NDAwMDAwMiB9LAotICB7IDB4MDkwMGZlNjIsIDB4NjQwMDAwMDAgfSwKLSAgeyAw
eDA5MDBmZTYzLCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgwOTgwZmU2NCwgMHg2NDAwMDAwMiB9LAot
ICB7IDB4MDkwMGZlNjgsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTY5LCAweDVjMDAwMDAw
IH0sCi0gIHsgMHgwOTgwZmU2YSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDA4MGZlNzAsIDB4MWMw
MDAwMDQgfSwKLSAgeyAweDAwODBmZTc2LCAweDFjMDAwMDg2IH0sCi0gIHsgMHgwOTAwZmVmZiwg
MHgwNDAwMDAwMCB9LAotICB7IDB4MDk4MGZmMDEsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5MDBm
ZjA0LCAweDVjMDAwMDAwIH0sCi0gIHsgMHgwOTgwZmYwNSwgMHg1NDAwMDAwMiB9LAotICB7IDB4
MDkwMGZmMDgsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjA5LCAweDQ4MDAwMDAwIH0sCi0g
IHsgMHgwOTAwZmYwYSwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMGZmMGIsIDB4NjQwMDAwMDAg
fSwKLSAgeyAweDA5MDBmZjBjLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYwZCwgMHg0NDAw
MDAwMCB9LAotICB7IDB4MDk4MGZmMGUsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5ODBmZjEwLCAw
eDM0MDAwMDA5IH0sCi0gIHsgMHgwOTgwZmYxYSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDk4MGZm
MWMsIDB4NjQwMDAwMDIgfSwKLSAgeyAweDA5ODBmZjFmLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwZmYyMSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMjIsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDIxMDBmZjIzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyNCwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MjEwMGZmMjUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjI2LCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgyMTAwZmYyNywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMjgsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjI5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYy
YSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMmIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIx
MDBmZjJjLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyZCwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MjEwMGZmMmUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjJmLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgyMTAwZmYzMCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMzEsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDBmZjMyLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzMywgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMzQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjM1
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzNiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MGZmMzcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjM4LCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgyMTAwZmYzOSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmM2EsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDA5MDBmZjNiLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYzYywgMHg1NDAwMDAw
MCB9LAotICB7IDB4MDkwMGZmM2QsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjNlLCAweDYw
MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYzZiwgMHg0MDAwMDAwMCB9LAotICB7IDB4MDkwMGZmNDAs
IDB4NjAwMDAwMDAgfSwKLSAgeyAweDIxMDBmZjQxLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAw
ZmY0MiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDMsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDIxMDBmZjQ0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0NSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MjEwMGZmNDYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjQ3LCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgyMTAwZmY0OCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDksIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDIxMDBmZjRhLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0Yiwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNGMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBm
ZjRkLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0ZSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MjEwMGZmNGYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjUwLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwZmY1MSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNTIsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDBmZjUzLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1NCwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMGZmNTUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjU2LCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1NywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZm
NTgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjU5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgy
MTAwZmY1YSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MDkwMGZmNWIsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5MDBmZjVjLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY1ZCwgMHg0ODAwMDAwMCB9
LAotICB7IDB4MDkwMGZmNWUsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjVmLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwZmY2MCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZmNjEsIDB4
NTQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjYyLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY2
MywgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MGZmNjQsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDFk
ODBmZjY2LCAweDFjMDAwMDA5IH0sCi0gIHsgMHgwOTAwZmY3MCwgMHgxODAwMDAwMCB9LAotICB7
IDB4MWQ4MGZmNzEsIDB4MWMwMDAwMmMgfSwKLSAgeyAweDA5ODBmZjllLCAweDE4MDAwMDAxIH0s
Ci0gIHsgMHgxNzgwZmZhMCwgMHgxYzAwMDAxZSB9LAotICB7IDB4MTc4MGZmYzIsIDB4MWMwMDAw
MDUgfSwKLSAgeyAweDE3ODBmZmNhLCAweDFjMDAwMDA1IH0sCi0gIHsgMHgxNzgwZmZkMiwgMHgx
YzAwMDAwNSB9LAotICB7IDB4MTc4MGZmZGEsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDA5ODBmZmUw
LCAweDVjMDAwMDAxIH0sCi0gIHsgMHgwOTAwZmZlMiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkw
MGZmZTMsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDA5MDBmZmU0LCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgwOTgwZmZlNSwgMHg1YzAwMDAwMSB9LAotICB7IDB4MDkwMGZmZTgsIDB4NjgwMDAwMDAgfSwK
LSAgeyAweDA5ODBmZmU5LCAweDY0MDAwMDAzIH0sCi0gIHsgMHgwOTgwZmZlZCwgMHg2ODAwMDAw
MSB9LAotICB7IDB4MDk4MGZmZjksIDB4MDQwMDAwMDIgfSwKLSAgeyAweDA5ODBmZmZjLCAweDY4
MDAwMDAxIH0sCi0gIHsgMHgyMzgxMDAwMCwgMHgxYzAwMDAwYiB9LAotICB7IDB4MjM4MTAwMGQs
IDB4MWMwMDAwMTkgfSwKLSAgeyAweDIzODEwMDI4LCAweDFjMDAwMDEyIH0sCi0gIHsgMHgyMzgx
MDAzYywgMHgxYzAwMDAwMSB9LAotICB7IDB4MjM4MTAwM2YsIDB4MWMwMDAwMGUgfSwKLSAgeyAw
eDIzODEwMDUwLCAweDFjMDAwMDBkIH0sCi0gIHsgMHgyMzgxMDA4MCwgMHgxYzAwMDA3YSB9LAot
ICB7IDB4MDk4MTAxMDAsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5MDEwMTAyLCAweDY4MDAwMDAw
IH0sCi0gIHsgMHgwOTgxMDEwNywgMHgzYzAwMDAyYyB9LAotICB7IDB4MDk4MTAxMzcsIDB4Njgw
MDAwMDggfSwKLSAgeyAweDEzODEwMTQwLCAweDM4MDAwMDM0IH0sCi0gIHsgMHgxMzgxMDE3NSwg
MHgzYzAwMDAwMyB9LAotICB7IDB4MTM4MTAxNzksIDB4NjgwMDAwMTAgfSwKLSAgeyAweDEzMDEw
MThhLCAweDNjMDAwMDAwIH0sCi0gIHsgMHgyOTgxMDMwMCwgMHgxYzAwMDAxZSB9LAotICB7IDB4
Mjk4MTAzMjAsIDB4M2MwMDAwMDMgfSwKLSAgeyAweDEyODEwMzMwLCAweDFjMDAwMDE5IH0sCi0g
IHsgMHgxMjAxMDM0YSwgMHgzODAwMDAwMCB9LAotICB7IDB4M2I4MTAzODAsIDB4MWMwMDAwMWQg
fSwKLSAgeyAweDNiMDEwMzlmLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgyYTgxMDNhMCwgMHgxYzAw
MDAyMyB9LAotICB7IDB4MmE4MTAzYzgsIDB4MWMwMDAwMDcgfSwKLSAgeyAweDJhMDEwM2QwLCAw
eDY4MDAwMDAwIH0sCi0gIHsgMHgyYTgxMDNkMSwgMHgzODAwMDAwNCB9LAotICB7IDB4MGQwMTA0
MDAsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDAxLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgw
ZDAxMDQwMiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MDMsIDB4MjQwMDAwMjggfSwKLSAg
eyAweDBkMDEwNDA0LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwNSwgMHgyNDAwMDAyOCB9
LAotICB7IDB4MGQwMTA0MDYsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDA3LCAweDI0MDAw
MDI4IH0sCi0gIHsgMHgwZDAxMDQwOCwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MDksIDB4
MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDBhLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQw
YiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MGMsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBk
MDEwNDBkLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwZSwgMHgyNDAwMDAyOCB9LAotICB7
IDB4MGQwMTA0MGYsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDEwLCAweDI0MDAwMDI4IH0s
Ci0gIHsgMHgwZDAxMDQxMSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTIsIDB4MjQwMDAw
MjggfSwKLSAgeyAweDBkMDEwNDEzLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxNCwgMHgy
NDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTUsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDE2
LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxNywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQw
MTA0MTgsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDE5LCAweDI0MDAwMDI4IH0sCi0gIHsg
MHgwZDAxMDQxYSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MWIsIDB4MjQwMDAwMjggfSwK
LSAgeyAweDBkMDEwNDFjLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxZCwgMHgyNDAwMDAy
OCB9LAotICB7IDB4MGQwMTA0MWUsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDFmLCAweDI0
MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyMCwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjEs
IDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDIyLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAx
MDQyMywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjQsIDB4MjQwMDAwMjggfSwKLSAgeyAw
eDBkMDEwNDI1LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyNiwgMHgyNDAwMDAyOCB9LAot
ICB7IDB4MGQwMTA0MjcsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDI4LCAweDE0MDBmZmQ4
IH0sCi0gIHsgMHgwZDAxMDQyOSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MmEsIDB4MTQw
MGZmZDggfSwKLSAgeyAweDBkMDEwNDJiLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQyYywg
MHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MmQsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEw
NDJlLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQyZiwgMHgxNDAwZmZkOCB9LAotICB7IDB4
MGQwMTA0MzAsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDMxLCAweDE0MDBmZmQ4IH0sCi0g
IHsgMHgwZDAxMDQzMiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MzMsIDB4MTQwMGZmZDgg
fSwKLSAgeyAweDBkMDEwNDM0LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzNSwgMHgxNDAw
ZmZkOCB9LAotICB7IDB4MGQwMTA0MzYsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDM3LCAw
eDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzOCwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0
MzksIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDNhLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgw
ZDAxMDQzYiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0M2MsIDB4MTQwMGZmZDggfSwKLSAg
eyAweDBkMDEwNDNkLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzZSwgMHgxNDAwZmZkOCB9
LAotICB7IDB4MGQwMTA0M2YsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQwLCAweDE0MDBm
ZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0MSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDIsIDB4
MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQzLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0
NCwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDUsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBk
MDEwNDQ2LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0NywgMHgxNDAwZmZkOCB9LAotICB7
IDB4MGQwMTA0NDgsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQ5LCAweDE0MDBmZmQ4IH0s
Ci0gIHsgMHgwZDAxMDQ0YSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NGIsIDB4MTQwMGZm
ZDggfSwKLSAgeyAweDBkMDEwNDRjLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0ZCwgMHgx
NDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NGUsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDRm
LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgyZTgxMDQ1MCwgMHgxYzAwMDA0ZCB9LAotICB7IDB4MmM4
MTA0YTAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDBiODEwODAwLCAweDFjMDAwMDA1IH0sCi0gIHsg
MHgwYjAxMDgwOCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MGI4MTA4MGEsIDB4MWMwMDAwMmIgfSwK
LSAgeyAweDBiODEwODM3LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgwYjAxMDgzYywgMHgxYzAwMDAw
MCB9LAotICB7IDB4MGIwMTA4M2YsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDFlMDEwYTAwLCAweDFj
MDAwMDAwIH0sCi0gIHsgMHgxZTgxMGEwMSwgMHgzMDAwMDAwMiB9LAotICB7IDB4MWU4MTBhMDUs
IDB4MzAwMDAwMDEgfSwKLSAgeyAweDFlODEwYTBjLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgxZTgx
MGExMCwgMHgxYzAwMDAwMyB9LAotICB7IDB4MWU4MTBhMTUsIDB4MWMwMDAwMDIgfSwKLSAgeyAw
eDFlODEwYTE5LCAweDFjMDAwMDFhIH0sCi0gIHsgMHgxZTgxMGEzOCwgMHgzMDAwMDAwMiB9LAot
ICB7IDB4MWUwMTBhM2YsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFlODEwYTQwLCAweDNjMDAwMDA3
IH0sCi0gIHsgMHgxZTgxMGE1MCwgMHg1NDAwMDAwOCB9LAotICB7IDB4MDk4MWQwMDAsIDB4Njgw
MDAwZjUgfSwKLSAgeyAweDA5ODFkMTAwLCAweDY4MDAwMDI2IH0sCi0gIHsgMHgwOTgxZDEyYSwg
MHg2ODAwMDAzYSB9LAotICB7IDB4MDk4MWQxNjUsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDFiODFk
MTY3LCAweDMwMDAwMDAyIH0sCi0gIHsgMHgwOTgxZDE2YSwgMHg2ODAwMDAwMiB9LAotICB7IDB4
MDk4MWQxNmQsIDB4MjgwMDAwMDUgfSwKLSAgeyAweDA5ODFkMTczLCAweDA0MDAwMDA3IH0sCi0g
IHsgMHgxYjgxZDE3YiwgMHgzMDAwMDAwNyB9LAotICB7IDB4MDk4MWQxODMsIDB4NjgwMDAwMDEg
fSwKLSAgeyAweDFiODFkMTg1LCAweDMwMDAwMDA2IH0sCi0gIHsgMHgwOTgxZDE4YywgMHg2ODAw
MDAxZCB9LAotICB7IDB4MWI4MWQxYWEsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDA5ODFkMWFlLCAw
eDY4MDAwMDJmIH0sCi0gIHsgMHgxMzgxZDIwMCwgMHg2ODAwMDA0MSB9LAotICB7IDB4MTM4MWQy
NDIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDEzMDFkMjQ1LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgw
OTgxZDMwMCwgMHg2ODAwMDA1NiB9LAotICB7IDB4MDk4MWQ0MDAsIDB4MjQwMDAwMTkgfSwKLSAg
eyAweDA5ODFkNDFhLCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDQzNCwgMHgyNDAwMDAxOSB9
LAotICB7IDB4MDk4MWQ0NGUsIDB4MTQwMDAwMDYgfSwKLSAgeyAweDA5ODFkNDU2LCAweDE0MDAw
MDExIH0sCi0gIHsgMHgwOTgxZDQ2OCwgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ0ODIsIDB4
MTQwMDAwMTkgfSwKLSAgeyAweDA5MDFkNDljLCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDQ5
ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MDkwMWQ0YTIsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5
ODFkNGE1LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwOTgxZDRhOSwgMHgyNDAwMDAwMyB9LAotICB7
IDB4MDk4MWQ0YWUsIDB4MjQwMDAwMDcgfSwKLSAgeyAweDA5ODFkNGI2LCAweDE0MDAwMDAzIH0s
Ci0gIHsgMHgwOTAxZDRiYiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MDk4MWQ0YmQsIDB4MTQwMDAw
MDYgfSwKLSAgeyAweDA5ODFkNGM1LCAweDE0MDAwMDBhIH0sCi0gIHsgMHgwOTgxZDRkMCwgMHgy
NDAwMDAxOSB9LAotICB7IDB4MDk4MWQ0ZWEsIDB4MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNTA0
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwOTgxZDUwNywgMHgyNDAwMDAwMyB9LAotICB7IDB4MDk4
MWQ1MGQsIDB4MjQwMDAwMDcgfSwKLSAgeyAweDA5ODFkNTE2LCAweDI0MDAwMDA2IH0sCi0gIHsg
MHgwOTgxZDUxZSwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1MzgsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDA5ODFkNTNiLCAweDI0MDAwMDAzIH0sCi0gIHsgMHgwOTgxZDU0MCwgMHgyNDAwMDAw
NCB9LAotICB7IDB4MDkwMWQ1NDYsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNTRhLCAweDI0
MDAwMDA2IH0sCi0gIHsgMHgwOTgxZDU1MiwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1NmMs
IDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNTg2LCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgx
ZDVhMCwgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1YmEsIDB4MTQwMDAwMTkgfSwKLSAgeyAw
eDA5ODFkNWQ0LCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDVlZSwgMHgxNDAwMDAxOSB9LAot
ICB7IDB4MDk4MWQ2MDgsIDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNjIyLCAweDE0MDAwMDE5
IH0sCi0gIHsgMHgwOTgxZDYzYywgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ2NTYsIDB4MTQw
MDAwMTkgfSwKLSAgeyAweDA5ODFkNjcwLCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDY4YSwg
MHgxNDAwMDAxYiB9LAotICB7IDB4MDk4MWQ2YTgsIDB4MjQwMDAwMTggfSwKLSAgeyAweDA5MDFk
NmMxLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDZjMiwgMHgxNDAwMDAxOCB9LAotICB7IDB4
MDkwMWQ2ZGIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNmRjLCAweDE0MDAwMDA1IH0sCi0g
IHsgMHgwOTgxZDZlMiwgMHgyNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ2ZmIsIDB4NjQwMDAwMDAg
fSwKLSAgeyAweDA5ODFkNmZjLCAweDE0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDcxNSwgMHg2NDAw
MDAwMCB9LAotICB7IDB4MDk4MWQ3MTYsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDA5ODFkNzFjLCAw
eDI0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDczNSwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ3
MzYsIDB4MTQwMDAwMTggfSwKLSAgeyAweDA5MDFkNzRmLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgw
OTgxZDc1MCwgMHgxNDAwMDAwNSB9LAotICB7IDB4MDk4MWQ3NTYsIDB4MjQwMDAwMTggfSwKLSAg
eyAweDA5MDFkNzZmLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDc3MCwgMHgxNDAwMDAxOCB9
LAotICB7IDB4MDkwMWQ3ODksIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNzhhLCAweDE0MDAw
MDA1IH0sCi0gIHsgMHgwOTgxZDc5MCwgMHgyNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ3YTksIDB4
NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkN2FhLCAweDE0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDdj
MywgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ3YzQsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDA5
ODFkN2NlLCAweDM0MDAwMDMxIH0sCi0gIHsgMHgxNjgyMDAwMCwgMHgxYzAwYTZkNiB9LAotICB7
IDB4MTY4MmY4MDAsIDB4MWMwMDAyMWQgfSwKLSAgeyAweDA5MGUwMDAxLCAweDA0MDAwMDAwIH0s
Ci0gIHsgMHgwOThlMDAyMCwgMHgwNDAwMDA1ZiB9LAotICB7IDB4MWI4ZTAxMDAsIDB4MzAwMDAw
ZWYgfSwKLSAgeyAweDA5OGYwMDAwLCAweDBjMDBmZmZkIH0sCi0gIHsgMHgwOTkwMDAwMCwgMHgw
YzAwZmZmZCB9LAotfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvdWNwdGFibGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvdWNwdGFibGUuY3BwCShyZXZpc2lvbiAy
NzY0OCkJKGZyb20gSmF2YVNjcmlwdENvcmUvcGNyZS91Y3B0YWJsZS5jOjI3NjQ4KQorKysgSmF2
YVNjcmlwdENvcmUvcGNyZS91Y3B0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
OTY4IEBACisvKiBUaGlzIHNvdXJjZSBtb2R1bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
ZnJvbSB0aGUgVW5pY29kZQorcHJvcGVydHkgdGFibGUuIFNlZSB1Y3BpbnRlcm5hbC5oIGZvciBh
IGRlc2NyaXB0aW9uIG9mIHRoZSBsYXlvdXQuICovCisKK3N0YXRpYyBjb25zdCBjbm9kZSB1Y3Bf
dGFibGVbXSA9IHsKKyAgeyAweDA5ODAwMDAwLCAweDAwMDAwMDFmIH0sCisgIHsgMHgwOTAwMDAy
MCwgMHg3NDAwMDAwMCB9LAorICB7IDB4MDk4MDAwMjEsIDB4NTQwMDAwMDIgfSwKKyAgeyAweDA5
MDAwMDI0LCAweDVjMDAwMDAwIH0sCisgIHsgMHgwOTgwMDAyNSwgMHg1NDAwMDAwMiB9LAorICB7
IDB4MDkwMDAwMjgsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAwMDI5LCAweDQ4MDAwMDAwIH0s
CisgIHsgMHgwOTAwMDAyYSwgMHg1NDAwMDAwMCB9LAorICB7IDB4MDkwMDAwMmIsIDB4NjQwMDAw
MDAgfSwKKyAgeyAweDA5MDAwMDJjLCAweDU0MDAwMDAwIH0sCisgIHsgMHgwOTAwMDAyZCwgMHg0
NDAwMDAwMCB9LAorICB7IDB4MDk4MDAwMmUsIDB4NTQwMDAwMDEgfSwKKyAgeyAweDA5ODAwMDMw
LCAweDM0MDAwMDA5IH0sCisgIHsgMHgwOTgwMDAzYSwgMHg1NDAwMDAwMSB9LAorICB7IDB4MDk4
MDAwM2MsIDB4NjQwMDAwMDIgfSwKKyAgeyAweDA5ODAwMDNmLCAweDU0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMDA0MSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNDIsIDB4MjQwMDAwMjAgfSwK
KyAgeyAweDIxMDAwMDQzLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDA0NCwgMHgyNDAwMDAy
MCB9LAorICB7IDB4MjEwMDAwNDUsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMDQ2LCAweDI0
MDAwMDIwIH0sCisgIHsgMHgyMTAwMDA0NywgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNDgs
IDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMDQ5LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAw
MDA0YSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNGIsIDB4MjQwMDAwMjAgfSwKKyAgeyAw
eDIxMDAwMDRjLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDA0ZCwgMHgyNDAwMDAyMCB9LAor
ICB7IDB4MjEwMDAwNGUsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMDRmLCAweDI0MDAwMDIw
IH0sCisgIHsgMHgyMTAwMDA1MCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNTEsIDB4MjQw
MDAwMjAgfSwKKyAgeyAweDIxMDAwMDUyLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDA1Mywg
MHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNTQsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAw
MDU1LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDA1NiwgMHgyNDAwMDAyMCB9LAorICB7IDB4
MjEwMDAwNTcsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMDU4LCAweDI0MDAwMDIwIH0sCisg
IHsgMHgyMTAwMDA1OSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwNWEsIDB4MjQwMDAwMjAg
fSwKKyAgeyAweDA5MDAwMDViLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMDA1YywgMHg1NDAw
MDAwMCB9LAorICB7IDB4MDkwMDAwNWQsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAwMDVlLCAw
eDYwMDAwMDAwIH0sCisgIHsgMHgwOTAwMDA1ZiwgMHg0MDAwMDAwMCB9LAorICB7IDB4MDkwMDAw
NjAsIDB4NjAwMDAwMDAgfSwKKyAgeyAweDIxMDAwMDYxLCAweDE0MDBmZmUwIH0sCisgIHsgMHgy
MTAwMDA2MiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwNjMsIDB4MTQwMGZmZTAgfSwKKyAg
eyAweDIxMDAwMDY0LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDA2NSwgMHgxNDAwZmZlMCB9
LAorICB7IDB4MjEwMDAwNjYsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMDY3LCAweDE0MDBm
ZmUwIH0sCisgIHsgMHgyMTAwMDA2OCwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwNjksIDB4
MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMDZhLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDA2
YiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwNmMsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIx
MDAwMDZkLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDA2ZSwgMHgxNDAwZmZlMCB9LAorICB7
IDB4MjEwMDAwNmYsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMDcwLCAweDE0MDBmZmUwIH0s
CisgIHsgMHgyMTAwMDA3MSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwNzIsIDB4MTQwMGZm
ZTAgfSwKKyAgeyAweDIxMDAwMDczLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDA3NCwgMHgx
NDAwZmZlMCB9LAorICB7IDB4MjEwMDAwNzUsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMDc2
LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDA3NywgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEw
MDAwNzgsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMDc5LCAweDE0MDBmZmUwIH0sCisgIHsg
MHgyMTAwMDA3YSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MDkwMDAwN2IsIDB4NTgwMDAwMDAgfSwK
KyAgeyAweDA5MDAwMDdjLCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTAwMDA3ZCwgMHg0ODAwMDAw
MCB9LAorICB7IDB4MDkwMDAwN2UsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5ODAwMDdmLCAweDAw
MDAwMDIwIH0sCisgIHsgMHgwOTAwMDBhMCwgMHg3NDAwMDAwMCB9LAorICB7IDB4MDkwMDAwYTEs
IDB4NTQwMDAwMDAgfSwKKyAgeyAweDA5ODAwMGEyLCAweDVjMDAwMDAzIH0sCisgIHsgMHgwOTgw
MDBhNiwgMHg2ODAwMDAwMSB9LAorICB7IDB4MDkwMDAwYTgsIDB4NjAwMDAwMDAgfSwKKyAgeyAw
eDA5MDAwMGE5LCAweDY4MDAwMDAwIH0sCisgIHsgMHgyMTAwMDBhYSwgMHgxNDAwMDAwMCB9LAor
ICB7IDB4MDkwMDAwYWIsIDB4NTAwMDAwMDAgfSwKKyAgeyAweDA5MDAwMGFjLCAweDY0MDAwMDAw
IH0sCisgIHsgMHgwOTAwMDBhZCwgMHgwNDAwMDAwMCB9LAorICB7IDB4MDkwMDAwYWUsIDB4Njgw
MDAwMDAgfSwKKyAgeyAweDA5MDAwMGFmLCAweDYwMDAwMDAwIH0sCisgIHsgMHgwOTAwMDBiMCwg
MHg2ODAwMDAwMCB9LAorICB7IDB4MDkwMDAwYjEsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5ODAw
MGIyLCAweDNjMDAwMDAxIH0sCisgIHsgMHgwOTAwMDBiNCwgMHg2MDAwMDAwMCB9LAorICB7IDB4
MDkwMDAwYjUsIDB4MTQwMDAyZTcgfSwKKyAgeyAweDA5MDAwMGI2LCAweDY4MDAwMDAwIH0sCisg
IHsgMHgwOTAwMDBiNywgMHg1NDAwMDAwMCB9LAorICB7IDB4MDkwMDAwYjgsIDB4NjAwMDAwMDAg
fSwKKyAgeyAweDA5MDAwMGI5LCAweDNjMDAwMDAwIH0sCisgIHsgMHgyMTAwMDBiYSwgMHgxNDAw
MDAwMCB9LAorICB7IDB4MDkwMDAwYmIsIDB4NGMwMDAwMDAgfSwKKyAgeyAweDA5ODAwMGJjLCAw
eDNjMDAwMDAyIH0sCisgIHsgMHgwOTAwMDBiZiwgMHg1NDAwMDAwMCB9LAorICB7IDB4MjEwMDAw
YzAsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGMxLCAweDI0MDAwMDIwIH0sCisgIHsgMHgy
MTAwMDBjMiwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwYzMsIDB4MjQwMDAwMjAgfSwKKyAg
eyAweDIxMDAwMGM0LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDBjNSwgMHgyNDAwMDAyMCB9
LAorICB7IDB4MjEwMDAwYzYsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGM3LCAweDI0MDAw
MDIwIH0sCisgIHsgMHgyMTAwMDBjOCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwYzksIDB4
MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGNhLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDBj
YiwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwY2MsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIx
MDAwMGNkLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDBjZSwgMHgyNDAwMDAyMCB9LAorICB7
IDB4MjEwMDAwY2YsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGQwLCAweDI0MDAwMDIwIH0s
CisgIHsgMHgyMTAwMDBkMSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwZDIsIDB4MjQwMDAw
MjAgfSwKKyAgeyAweDIxMDAwMGQzLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDBkNCwgMHgy
NDAwMDAyMCB9LAorICB7IDB4MjEwMDAwZDUsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGQ2
LCAweDI0MDAwMDIwIH0sCisgIHsgMHgwOTAwMDBkNywgMHg2NDAwMDAwMCB9LAorICB7IDB4MjEw
MDAwZDgsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGQ5LCAweDI0MDAwMDIwIH0sCisgIHsg
MHgyMTAwMDBkYSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMDAwZGIsIDB4MjQwMDAwMjAgfSwK
KyAgeyAweDIxMDAwMGRjLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwMDBkZCwgMHgyNDAwMDAy
MCB9LAorICB7IDB4MjEwMDAwZGUsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDAwMGRmLCAweDE0
MDAwMDAwIH0sCisgIHsgMHgyMTAwMDBlMCwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZTEs
IDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMGUyLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAw
MDBlMywgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZTQsIDB4MTQwMGZmZTAgfSwKKyAgeyAw
eDIxMDAwMGU1LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDBlNiwgMHgxNDAwZmZlMCB9LAor
ICB7IDB4MjEwMDAwZTcsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMGU4LCAweDE0MDBmZmUw
IH0sCisgIHsgMHgyMTAwMDBlOSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZWEsIDB4MTQw
MGZmZTAgfSwKKyAgeyAweDIxMDAwMGViLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDBlYywg
MHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZWQsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAw
MGVlLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDBlZiwgMHgxNDAwZmZlMCB9LAorICB7IDB4
MjEwMDAwZjAsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMGYxLCAweDE0MDBmZmUwIH0sCisg
IHsgMHgyMTAwMDBmMiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZjMsIDB4MTQwMGZmZTAg
fSwKKyAgeyAweDIxMDAwMGY0LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDBmNSwgMHgxNDAw
ZmZlMCB9LAorICB7IDB4MjEwMDAwZjYsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDA5MDAwMGY3LCAw
eDY0MDAwMDAwIH0sCisgIHsgMHgyMTAwMDBmOCwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAw
ZjksIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDAwMGZhLCAweDE0MDBmZmUwIH0sCisgIHsgMHgy
MTAwMDBmYiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMDAwZmMsIDB4MTQwMGZmZTAgfSwKKyAg
eyAweDIxMDAwMGZkLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwMDBmZSwgMHgxNDAwZmZlMCB9
LAorICB7IDB4MjEwMDAwZmYsIDB4MTQwMDAwNzkgfSwKKyAgeyAweDIxMDAwMTAwLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMDEwMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMDIsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTAzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDEw
NCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxMDUsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAwMTA2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDEwNywgMHgxNDAwZmZmZiB9LAorICB7
IDB4MjEwMDAxMDgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTA5LCAweDE0MDBmZmZmIH0s
CisgIHsgMHgyMTAwMDEwYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxMGIsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDIxMDAwMTBjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDEwZCwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMGUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTBm
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDExMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDAxMTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTEyLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMDExMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMTQsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDIxMDAwMTE1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDExNiwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MjEwMDAxMTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTE4LCAweDI0
MDAwMDAxIH0sCisgIHsgMHgyMTAwMDExOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMWEs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTFiLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAw
MDExYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxMWQsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDIxMDAwMTFlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDExZiwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MjEwMDAxMjAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTIxLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgyMTAwMDEyMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxMjMsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDIxMDAwMTI0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDEyNSwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMjYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAw
MTI3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDEyOCwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MjEwMDAxMjksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTJhLCAweDI0MDAwMDAxIH0sCisg
IHsgMHgyMTAwMDEyYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxMmMsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDIxMDAwMTJkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDEyZSwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MjEwMDAxMmYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTMwLCAw
eDI0MDBmZjM5IH0sCisgIHsgMHgyMTAwMDEzMSwgMHgxNDAwZmYxOCB9LAorICB7IDB4MjEwMDAx
MzIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTMzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgy
MTAwMDEzNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxMzUsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDIxMDAwMTM2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDEzNywgMHgxNDAwZmZmZiB9
LAorICB7IDB4MjEwMDAxMzgsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMTM5LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMDEzYSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxM2IsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTNjLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDEz
ZCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxM2UsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAwMTNmLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE0MCwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MjEwMDAxNDEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTQyLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgyMTAwMDE0MywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNDQsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDIxMDAwMTQ1LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE0NiwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjEwMDAxNDcsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTQ4
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE0OSwgMHgxNDAwMDAwMCB9LAorICB7IDB4MjEw
MDAxNGEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTRiLCAweDE0MDBmZmZmIH0sCisgIHsg
MHgyMTAwMDE0YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNGQsIDB4MTQwMGZmZmYgfSwK
KyAgeyAweDIxMDAwMTRlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE0ZiwgMHgxNDAwZmZm
ZiB9LAorICB7IDB4MjEwMDAxNTAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTUxLCAweDE0
MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE1MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNTMs
IDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTU0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAw
MDE1NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxNTYsIDB4MjQwMDAwMDEgfSwKKyAgeyAw
eDIxMDAwMTU3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE1OCwgMHgyNDAwMDAwMSB9LAor
ICB7IDB4MjEwMDAxNTksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTVhLCAweDI0MDAwMDAx
IH0sCisgIHsgMHgyMTAwMDE1YiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxNWMsIDB4MjQw
MDAwMDEgfSwKKyAgeyAweDIxMDAwMTVkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE1ZSwg
MHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNWYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAw
MTYwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE2MSwgMHgxNDAwZmZmZiB9LAorICB7IDB4
MjEwMDAxNjIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTYzLCAweDE0MDBmZmZmIH0sCisg
IHsgMHgyMTAwMDE2NCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNjUsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDIxMDAwMTY2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE2NywgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MjEwMDAxNjgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTY5LCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE2YSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAx
NmIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTZjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgy
MTAwMDE2ZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxNmUsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDIxMDAwMTZmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE3MCwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MjEwMDAxNzEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTcyLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMDE3MywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxNzQsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMTc1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE3
NiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxNzcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAwMTc4LCAweDI0MDBmZjg3IH0sCisgIHsgMHgyMTAwMDE3OSwgMHgyNDAwMDAwMSB9LAorICB7
IDB4MjEwMDAxN2EsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTdiLCAweDI0MDAwMDAxIH0s
CisgIHsgMHgyMTAwMDE3YywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxN2QsIDB4MjQwMDAw
MDEgfSwKKyAgeyAweDIxMDAwMTdlLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE3ZiwgMHgx
NDAwZmVkNCB9LAorICB7IDB4MjEwMDAxODAsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMTgx
LCAweDI0MDAwMGQyIH0sCisgIHsgMHgyMTAwMDE4MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDAxODMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTg0LCAweDI0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMDE4NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxODYsIDB4MjQwMDAwY2UgfSwK
KyAgeyAweDIxMDAwMTg3LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDE4OCwgMHgxNDAwZmZm
ZiB9LAorICB7IDB4MjEwMDAxODksIDB4MjQwMDAwY2QgfSwKKyAgeyAweDIxMDAwMThhLCAweDI0
MDAwMGNkIH0sCisgIHsgMHgyMTAwMDE4YiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxOGMs
IDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMThkLCAweDE0MDAwMDAwIH0sCisgIHsgMHgyMTAw
MDE4ZSwgMHgyNDAwMDA0ZiB9LAorICB7IDB4MjEwMDAxOGYsIDB4MjQwMDAwY2EgfSwKKyAgeyAw
eDIxMDAwMTkwLCAweDI0MDAwMGNiIH0sCisgIHsgMHgyMTAwMDE5MSwgMHgyNDAwMDAwMSB9LAor
ICB7IDB4MjEwMDAxOTIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMTkzLCAweDI0MDAwMGNk
IH0sCisgIHsgMHgyMTAwMDE5NCwgMHgyNDAwMDBjZiB9LAorICB7IDB4MjEwMDAxOTUsIDB4MTQw
MDAwNjEgfSwKKyAgeyAweDIxMDAwMTk2LCAweDI0MDAwMGQzIH0sCisgIHsgMHgyMTAwMDE5Nywg
MHgyNDAwMDBkMSB9LAorICB7IDB4MjEwMDAxOTgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAw
MTk5LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDE5YSwgMHgxNDAwMDBhMyB9LAorICB7IDB4
MjEwMDAxOWIsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMTljLCAweDI0MDAwMGQzIH0sCisg
IHsgMHgyMTAwMDE5ZCwgMHgyNDAwMDBkNSB9LAorICB7IDB4MjEwMDAxOWUsIDB4MTQwMDAwODIg
fSwKKyAgeyAweDIxMDAwMTlmLCAweDI0MDAwMGQ2IH0sCisgIHsgMHgyMTAwMDFhMCwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MjEwMDAxYTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWEyLCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFhMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAx
YTQsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMWE1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgy
MTAwMDFhNiwgMHgyNDAwMDBkYSB9LAorICB7IDB4MjEwMDAxYTcsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDIxMDAwMWE4LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFhOSwgMHgyNDAwMDBkYSB9
LAorICB7IDB4MjE4MDAxYWEsIDB4MTQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMWFjLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMDFhZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxYWUsIDB4
MjQwMDAwZGEgfSwKKyAgeyAweDIxMDAwMWFmLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFi
MCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxYjEsIDB4MjQwMDAwZDkgfSwKKyAgeyAweDIx
MDAwMWIyLCAweDI0MDAwMGQ5IH0sCisgIHsgMHgyMTAwMDFiMywgMHgyNDAwMDAwMSB9LAorICB7
IDB4MjEwMDAxYjQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWI1LCAweDI0MDAwMDAxIH0s
CisgIHsgMHgyMTAwMDFiNiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxYjcsIDB4MjQwMDAw
ZGIgfSwKKyAgeyAweDIxMDAwMWI4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFiOSwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjEwMDAxYmEsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMWJi
LCAweDFjMDAwMDAwIH0sCisgIHsgMHgyMTAwMDFiYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDAxYmQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWJlLCAweDE0MDAwMDAwIH0sCisgIHsg
MHgyMTAwMDFiZiwgMHgxNDAwMDAzOCB9LAorICB7IDB4MjE4MDAxYzAsIDB4MWMwMDAwMDMgfSwK
KyAgeyAweDIxMDAwMWM0LCAweDI0MDAwMDAyIH0sCisgIHsgMHgyMTAwMDFjNSwgMHgyMDAwZmZm
ZiB9LAorICB7IDB4MjEwMDAxYzYsIDB4MTQwMGZmZmUgfSwKKyAgeyAweDIxMDAwMWM3LCAweDI0
MDAwMDAyIH0sCisgIHsgMHgyMTAwMDFjOCwgMHgyMDAwZmZmZiB9LAorICB7IDB4MjEwMDAxYzks
IDB4MTQwMGZmZmUgfSwKKyAgeyAweDIxMDAwMWNhLCAweDI0MDAwMDAyIH0sCisgIHsgMHgyMTAw
MDFjYiwgMHgyMDAwZmZmZiB9LAorICB7IDB4MjEwMDAxY2MsIDB4MTQwMGZmZmUgfSwKKyAgeyAw
eDIxMDAwMWNkLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFjZSwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MjEwMDAxY2YsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMWQwLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgyMTAwMDFkMSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxZDIsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDIxMDAwMWQzLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFkNCwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZDUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAw
MWQ2LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFkNywgMHgyNDAwMDAwMSB9LAorICB7IDB4
MjEwMDAxZDgsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWQ5LCAweDI0MDAwMDAxIH0sCisg
IHsgMHgyMTAwMDFkYSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZGIsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDIxMDAwMWRjLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFkZCwgMHgxNDAw
ZmZiMSB9LAorICB7IDB4MjEwMDAxZGUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMWRmLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFlMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAx
ZTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWUyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgy
MTAwMDFlMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZTQsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDIxMDAwMWU1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFlNiwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MjEwMDAxZTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWU4LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMDFlOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZWEsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMWViLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFl
YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAxZWQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAwMWVlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFlZiwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MjEwMDAxZjAsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMWYxLCAweDI0MDAwMDAyIH0s
CisgIHsgMHgyMTAwMDFmMiwgMHgyMDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZjMsIDB4MTQwMGZm
ZmUgfSwKKyAgeyAweDIxMDAwMWY0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDFmNSwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZjYsIDB4MjQwMGZmOWYgfSwKKyAgeyAweDIxMDAwMWY3
LCAweDI0MDBmZmM4IH0sCisgIHsgMHgyMTAwMDFmOCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDAxZjksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMWZhLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMDFmYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAxZmMsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDIxMDAwMWZkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDFmZSwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MjEwMDAxZmYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjAwLCAweDI0
MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIwMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAyMDIs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMjAzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAw
MDIwNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyMDUsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDIxMDAwMjA2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIwNywgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MjEwMDAyMDgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMjA5LCAweDE0MDBmZmZm
IH0sCisgIHsgMHgyMTAwMDIwYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyMGIsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDIxMDAwMjBjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIwZCwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAyMGUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAw
MjBmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDIxMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MjEwMDAyMTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjEyLCAweDI0MDAwMDAxIH0sCisg
IHsgMHgyMTAwMDIxMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAyMTQsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDIxMDAwMjE1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDIxNiwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MjEwMDAyMTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjE4LCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIxOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAy
MWEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMjFiLCAweDE0MDBmZmZmIH0sCisgIHsgMHgy
MTAwMDIxYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyMWQsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDIxMDAwMjFlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIxZiwgMHgxNDAwZmZmZiB9
LAorICB7IDB4MjEwMDAyMjAsIDB4MjQwMGZmN2UgfSwKKyAgeyAweDIxMDAwMjIxLCAweDE0MDAw
MDAwIH0sCisgIHsgMHgyMTAwMDIyMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyMjMsIDB4
MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjI0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIy
NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAyMjYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIx
MDAwMjI3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDIyOCwgMHgyNDAwMDAwMSB9LAorICB7
IDB4MjEwMDAyMjksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjJhLCAweDI0MDAwMDAxIH0s
CisgIHsgMHgyMTAwMDIyYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDAyMmMsIDB4MjQwMDAw
MDEgfSwKKyAgeyAweDIxMDAwMjJkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMDIyZSwgMHgy
NDAwMDAwMSB9LAorICB7IDB4MjEwMDAyMmYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAwMjMw
LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIzMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEw
MDAyMzIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAwMjMzLCAweDE0MDBmZmZmIH0sCisgIHsg
MHgyMTgwMDIzNCwgMHgxNDAwMDAwNSB9LAorICB7IDB4MjEwMDAyM2EsIDB4MjQwMDAwMDAgfSwK
KyAgeyAweDIxMDAwMjNiLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDIzYywgMHgxNDAwZmZm
ZiB9LAorICB7IDB4MjEwMDAyM2QsIDB4MjQwMGZmNWQgfSwKKyAgeyAweDIxMDAwMjNlLCAweDI0
MDAwMDAwIH0sCisgIHsgMHgyMTgwMDIzZiwgMHgxNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyNDEs
IDB4MjQwMDAwNTMgfSwKKyAgeyAweDIxODAwMjUwLCAweDE0MDAwMDAyIH0sCisgIHsgMHgyMTAw
MDI1MywgMHgxNDAwZmYyZSB9LAorICB7IDB4MjEwMDAyNTQsIDB4MTQwMGZmMzIgfSwKKyAgeyAw
eDIxMDAwMjU1LCAweDE0MDAwMDAwIH0sCisgIHsgMHgyMTAwMDI1NiwgMHgxNDAwZmYzMyB9LAor
ICB7IDB4MjEwMDAyNTcsIDB4MTQwMGZmMzMgfSwKKyAgeyAweDIxMDAwMjU4LCAweDE0MDAwMDAw
IH0sCisgIHsgMHgyMTAwMDI1OSwgMHgxNDAwZmYzNiB9LAorICB7IDB4MjEwMDAyNWEsIDB4MTQw
MDAwMDAgfSwKKyAgeyAweDIxMDAwMjViLCAweDE0MDBmZjM1IH0sCisgIHsgMHgyMTgwMDI1Yywg
MHgxNDAwMDAwMyB9LAorICB7IDB4MjEwMDAyNjAsIDB4MTQwMGZmMzMgfSwKKyAgeyAweDIxODAw
MjYxLCAweDE0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDI2MywgMHgxNDAwZmYzMSB9LAorICB7IDB4
MjE4MDAyNjQsIDB4MTQwMDAwMDMgfSwKKyAgeyAweDIxMDAwMjY4LCAweDE0MDBmZjJmIH0sCisg
IHsgMHgyMTAwMDI2OSwgMHgxNDAwZmYyZCB9LAorICB7IDB4MjE4MDAyNmEsIDB4MTQwMDAwMDQg
fSwKKyAgeyAweDIxMDAwMjZmLCAweDE0MDBmZjJkIH0sCisgIHsgMHgyMTgwMDI3MCwgMHgxNDAw
MDAwMSB9LAorICB7IDB4MjEwMDAyNzIsIDB4MTQwMGZmMmIgfSwKKyAgeyAweDIxODAwMjczLCAw
eDE0MDAwMDAxIH0sCisgIHsgMHgyMTAwMDI3NSwgMHgxNDAwZmYyYSB9LAorICB7IDB4MjE4MDAy
NzYsIDB4MTQwMDAwMDkgfSwKKyAgeyAweDIxMDAwMjgwLCAweDE0MDBmZjI2IH0sCisgIHsgMHgy
MTgwMDI4MSwgMHgxNDAwMDAwMSB9LAorICB7IDB4MjEwMDAyODMsIDB4MTQwMGZmMjYgfSwKKyAg
eyAweDIxODAwMjg0LCAweDE0MDAwMDAzIH0sCisgIHsgMHgyMTAwMDI4OCwgMHgxNDAwZmYyNiB9
LAorICB7IDB4MjEwMDAyODksIDB4MTQwMDAwMDAgfSwKKyAgeyAweDIxMDAwMjhhLCAweDE0MDBm
ZjI3IH0sCisgIHsgMHgyMTAwMDI4YiwgMHgxNDAwZmYyNyB9LAorICB7IDB4MjE4MDAyOGMsIDB4
MTQwMDAwMDUgfSwKKyAgeyAweDIxMDAwMjkyLCAweDE0MDBmZjI1IH0sCisgIHsgMHgyMTAwMDI5
MywgMHgxNDAwMDAwMCB9LAorICB7IDB4MjEwMDAyOTQsIDB4MTQwMGZmYWQgfSwKKyAgeyAweDIx
ODAwMjk1LCAweDE0MDAwMDFhIH0sCisgIHsgMHgyMTgwMDJiMCwgMHgxODAwMDAxMSB9LAorICB7
IDB4MDk4MDAyYzIsIDB4NjAwMDAwMDMgfSwKKyAgeyAweDA5ODAwMmM2LCAweDE4MDAwMDBiIH0s
CisgIHsgMHgwOTgwMDJkMiwgMHg2MDAwMDAwZCB9LAorICB7IDB4MjE4MDAyZTAsIDB4MTgwMDAw
MDQgfSwKKyAgeyAweDA5ODAwMmU1LCAweDYwMDAwMDA4IH0sCisgIHsgMHgwOTAwMDJlZSwgMHgx
ODAwMDAwMCB9LAorICB7IDB4MDk4MDAyZWYsIDB4NjAwMDAwMTAgfSwKKyAgeyAweDFiODAwMzAw
LCAweDMwMDAwMDQ0IH0sCisgIHsgMHgxYjAwMDM0NSwgMHgzMDAwMDA1NCB9LAorICB7IDB4MWI4
MDAzNDYsIDB4MzAwMDAwMjkgfSwKKyAgeyAweDEzODAwMzc0LCAweDYwMDAwMDAxIH0sCisgIHsg
MHgxMzAwMDM3YSwgMHgxODAwMDAwMCB9LAorICB7IDB4MDkwMDAzN2UsIDB4NTQwMDAwMDAgfSwK
KyAgeyAweDEzODAwMzg0LCAweDYwMDAwMDAxIH0sCisgIHsgMHgxMzAwMDM4NiwgMHgyNDAwMDAy
NiB9LAorICB7IDB4MDkwMDAzODcsIDB4NTQwMDAwMDAgfSwKKyAgeyAweDEzMDAwMzg4LCAweDI0
MDAwMDI1IH0sCisgIHsgMHgxMzAwMDM4OSwgMHgyNDAwMDAyNSB9LAorICB7IDB4MTMwMDAzOGEs
IDB4MjQwMDAwMjUgfSwKKyAgeyAweDEzMDAwMzhjLCAweDI0MDAwMDQwIH0sCisgIHsgMHgxMzAw
MDM4ZSwgMHgyNDAwMDAzZiB9LAorICB7IDB4MTMwMDAzOGYsIDB4MjQwMDAwM2YgfSwKKyAgeyAw
eDEzMDAwMzkwLCAweDE0MDAwMDAwIH0sCisgIHsgMHgxMzAwMDM5MSwgMHgyNDAwMDAyMCB9LAor
ICB7IDB4MTMwMDAzOTIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAwMzkzLCAweDI0MDAwMDIw
IH0sCisgIHsgMHgxMzAwMDM5NCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MTMwMDAzOTUsIDB4MjQw
MDAwMjAgfSwKKyAgeyAweDEzMDAwMzk2LCAweDI0MDAwMDIwIH0sCisgIHsgMHgxMzAwMDM5Nywg
MHgyNDAwMDAyMCB9LAorICB7IDB4MTMwMDAzOTgsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAw
Mzk5LCAweDI0MDAwMDIwIH0sCisgIHsgMHgxMzAwMDM5YSwgMHgyNDAwMDAyMCB9LAorICB7IDB4
MTMwMDAzOWIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAwMzljLCAweDI0MDAwMDIwIH0sCisg
IHsgMHgxMzAwMDM5ZCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MTMwMDAzOWUsIDB4MjQwMDAwMjAg
fSwKKyAgeyAweDEzMDAwMzlmLCAweDI0MDAwMDIwIH0sCisgIHsgMHgxMzAwMDNhMCwgMHgyNDAw
MDAyMCB9LAorICB7IDB4MTMwMDAzYTEsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAwM2EzLCAw
eDI0MDAwMDIwIH0sCisgIHsgMHgxMzAwMDNhNCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MTMwMDAz
YTUsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAwM2E2LCAweDI0MDAwMDIwIH0sCisgIHsgMHgx
MzAwMDNhNywgMHgyNDAwMDAyMCB9LAorICB7IDB4MTMwMDAzYTgsIDB4MjQwMDAwMjAgfSwKKyAg
eyAweDEzMDAwM2E5LCAweDI0MDAwMDIwIH0sCisgIHsgMHgxMzAwMDNhYSwgMHgyNDAwMDAyMCB9
LAorICB7IDB4MTMwMDAzYWIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDEzMDAwM2FjLCAweDE0MDBm
ZmRhIH0sCisgIHsgMHgxMzAwMDNhZCwgMHgxNDAwZmZkYiB9LAorICB7IDB4MTMwMDAzYWUsIDB4
MTQwMGZmZGIgfSwKKyAgeyAweDEzMDAwM2FmLCAweDE0MDBmZmRiIH0sCisgIHsgMHgxMzAwMDNi
MCwgMHgxNDAwMDAwMCB9LAorICB7IDB4MTMwMDAzYjEsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDEz
MDAwM2IyLCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNiMywgMHgxNDAwZmZlMCB9LAorICB7
IDB4MTMwMDAzYjQsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDEzMDAwM2I1LCAweDE0MDBmZmUwIH0s
CisgIHsgMHgxMzAwMDNiNiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MTMwMDAzYjcsIDB4MTQwMGZm
ZTAgfSwKKyAgeyAweDEzMDAwM2I4LCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNiOSwgMHgx
NDAwZmZlMCB9LAorICB7IDB4MTMwMDAzYmEsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDEzMDAwM2Ji
LCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNiYywgMHgxNDAwZmZlMCB9LAorICB7IDB4MTMw
MDAzYmQsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDEzMDAwM2JlLCAweDE0MDBmZmUwIH0sCisgIHsg
MHgxMzAwMDNiZiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MTMwMDAzYzAsIDB4MTQwMGZmZTAgfSwK
KyAgeyAweDEzMDAwM2MxLCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNjMiwgMHgxNDAwZmZl
MSB9LAorICB7IDB4MTMwMDAzYzMsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDEzMDAwM2M0LCAweDE0
MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNjNSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MTMwMDAzYzYs
IDB4MTQwMGZmZTAgfSwKKyAgeyAweDEzMDAwM2M3LCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAw
MDNjOCwgMHgxNDAwZmZlMCB9LAorICB7IDB4MTMwMDAzYzksIDB4MTQwMGZmZTAgfSwKKyAgeyAw
eDEzMDAwM2NhLCAweDE0MDBmZmUwIH0sCisgIHsgMHgxMzAwMDNjYiwgMHgxNDAwZmZlMCB9LAor
ICB7IDB4MTMwMDAzY2MsIDB4MTQwMGZmYzAgfSwKKyAgeyAweDEzMDAwM2NkLCAweDE0MDBmZmMx
IH0sCisgIHsgMHgxMzAwMDNjZSwgMHgxNDAwZmZjMSB9LAorICB7IDB4MTMwMDAzZDAsIDB4MTQw
MGZmYzIgfSwKKyAgeyAweDEzMDAwM2QxLCAweDE0MDBmZmM3IH0sCisgIHsgMHgxMzgwMDNkMiwg
MHgyNDAwMDAwMiB9LAorICB7IDB4MTMwMDAzZDUsIDB4MTQwMGZmZDEgfSwKKyAgeyAweDEzMDAw
M2Q2LCAweDE0MDBmZmNhIH0sCisgIHsgMHgxMzAwMDNkNywgMHgxNDAwMDAwMCB9LAorICB7IDB4
MTMwMDAzZDgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDEzMDAwM2Q5LCAweDE0MDBmZmZmIH0sCisg
IHsgMHgxMzAwMDNkYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MTMwMDAzZGIsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDEzMDAwM2RjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgxMzAwMDNkZCwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MTMwMDAzZGUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDEzMDAwM2RmLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgxMzAwMDNlMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MTMwMDAz
ZTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAwM2UyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgw
YTAwMDNlMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDAzZTQsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDBhMDAwM2U1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMDNlNiwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MGEwMDAzZTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAwM2U4LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgwYTAwMDNlOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDAzZWEsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAwM2ViLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMDNl
YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDAzZWQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBh
MDAwM2VlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMDNlZiwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MTMwMDAzZjAsIDB4MTQwMGZmYWEgfSwKKyAgeyAweDEzMDAwM2YxLCAweDE0MDBmZmIwIH0s
CisgIHsgMHgxMzAwMDNmMiwgMHgxNDAwMDAwNyB9LAorICB7IDB4MTMwMDAzZjMsIDB4MTQwMDAw
MDAgfSwKKyAgeyAweDEzMDAwM2Y0LCAweDI0MDBmZmM0IH0sCisgIHsgMHgxMzAwMDNmNSwgMHgx
NDAwZmZhMCB9LAorICB7IDB4MTMwMDAzZjYsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDEzMDAwM2Y3
LCAweDI0MDAwMDAxIH0sCisgIHsgMHgxMzAwMDNmOCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MTMw
MDAzZjksIDB4MjQwMGZmZjkgfSwKKyAgeyAweDEzMDAwM2ZhLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgxMzAwMDNmYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MTMwMDAzZmMsIDB4MTQwMDAwMDAgfSwK
KyAgeyAweDEzODAwM2ZkLCAweDI0MDAwMDAyIH0sCisgIHsgMHgwYzAwMDQwMCwgMHgyNDAwMDA1
MCB9LAorICB7IDB4MGMwMDA0MDEsIDB4MjQwMDAwNTAgfSwKKyAgeyAweDBjMDAwNDAyLCAweDI0
MDAwMDUwIH0sCisgIHsgMHgwYzAwMDQwMywgMHgyNDAwMDA1MCB9LAorICB7IDB4MGMwMDA0MDQs
IDB4MjQwMDAwNTAgfSwKKyAgeyAweDBjMDAwNDA1LCAweDI0MDAwMDUwIH0sCisgIHsgMHgwYzAw
MDQwNiwgMHgyNDAwMDA1MCB9LAorICB7IDB4MGMwMDA0MDcsIDB4MjQwMDAwNTAgfSwKKyAgeyAw
eDBjMDAwNDA4LCAweDI0MDAwMDUwIH0sCisgIHsgMHgwYzAwMDQwOSwgMHgyNDAwMDA1MCB9LAor
ICB7IDB4MGMwMDA0MGEsIDB4MjQwMDAwNTAgfSwKKyAgeyAweDBjMDAwNDBiLCAweDI0MDAwMDUw
IH0sCisgIHsgMHgwYzAwMDQwYywgMHgyNDAwMDA1MCB9LAorICB7IDB4MGMwMDA0MGQsIDB4MjQw
MDAwNTAgfSwKKyAgeyAweDBjMDAwNDBlLCAweDI0MDAwMDUwIH0sCisgIHsgMHgwYzAwMDQwZiwg
MHgyNDAwMDA1MCB9LAorICB7IDB4MGMwMDA0MTAsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAw
NDExLCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQxMiwgMHgyNDAwMDAyMCB9LAorICB7IDB4
MGMwMDA0MTMsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDE0LCAweDI0MDAwMDIwIH0sCisg
IHsgMHgwYzAwMDQxNSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0MTYsIDB4MjQwMDAwMjAg
fSwKKyAgeyAweDBjMDAwNDE3LCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQxOCwgMHgyNDAw
MDAyMCB9LAorICB7IDB4MGMwMDA0MTksIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDFhLCAw
eDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQxYiwgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0
MWMsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDFkLCAweDI0MDAwMDIwIH0sCisgIHsgMHgw
YzAwMDQxZSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0MWYsIDB4MjQwMDAwMjAgfSwKKyAg
eyAweDBjMDAwNDIwLCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQyMSwgMHgyNDAwMDAyMCB9
LAorICB7IDB4MGMwMDA0MjIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDIzLCAweDI0MDAw
MDIwIH0sCisgIHsgMHgwYzAwMDQyNCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0MjUsIDB4
MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDI2LCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQy
NywgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0MjgsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBj
MDAwNDI5LCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQyYSwgMHgyNDAwMDAyMCB9LAorICB7
IDB4MGMwMDA0MmIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDBjMDAwNDJjLCAweDI0MDAwMDIwIH0s
CisgIHsgMHgwYzAwMDQyZCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MGMwMDA0MmUsIDB4MjQwMDAw
MjAgfSwKKyAgeyAweDBjMDAwNDJmLCAweDI0MDAwMDIwIH0sCisgIHsgMHgwYzAwMDQzMCwgMHgx
NDAwZmZlMCB9LAorICB7IDB4MGMwMDA0MzEsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDMy
LCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQzMywgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMw
MDA0MzQsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDM1LCAweDE0MDBmZmUwIH0sCisgIHsg
MHgwYzAwMDQzNiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0MzcsIDB4MTQwMGZmZTAgfSwK
KyAgeyAweDBjMDAwNDM4LCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQzOSwgMHgxNDAwZmZl
MCB9LAorICB7IDB4MGMwMDA0M2EsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDNiLCAweDE0
MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQzYywgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0M2Qs
IDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDNlLCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAw
MDQzZiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0NDAsIDB4MTQwMGZmZTAgfSwKKyAgeyAw
eDBjMDAwNDQxLCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQ0MiwgMHgxNDAwZmZlMCB9LAor
ICB7IDB4MGMwMDA0NDMsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDQ0LCAweDE0MDBmZmUw
IH0sCisgIHsgMHgwYzAwMDQ0NSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0NDYsIDB4MTQw
MGZmZTAgfSwKKyAgeyAweDBjMDAwNDQ3LCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQ0OCwg
MHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0NDksIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAw
NDRhLCAweDE0MDBmZmUwIH0sCisgIHsgMHgwYzAwMDQ0YiwgMHgxNDAwZmZlMCB9LAorICB7IDB4
MGMwMDA0NGMsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDBjMDAwNDRkLCAweDE0MDBmZmUwIH0sCisg
IHsgMHgwYzAwMDQ0ZSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MGMwMDA0NGYsIDB4MTQwMGZmZTAg
fSwKKyAgeyAweDBjMDAwNDUwLCAweDE0MDBmZmIwIH0sCisgIHsgMHgwYzAwMDQ1MSwgMHgxNDAw
ZmZiMCB9LAorICB7IDB4MGMwMDA0NTIsIDB4MTQwMGZmYjAgfSwKKyAgeyAweDBjMDAwNDUzLCAw
eDE0MDBmZmIwIH0sCisgIHsgMHgwYzAwMDQ1NCwgMHgxNDAwZmZiMCB9LAorICB7IDB4MGMwMDA0
NTUsIDB4MTQwMGZmYjAgfSwKKyAgeyAweDBjMDAwNDU2LCAweDE0MDBmZmIwIH0sCisgIHsgMHgw
YzAwMDQ1NywgMHgxNDAwZmZiMCB9LAorICB7IDB4MGMwMDA0NTgsIDB4MTQwMGZmYjAgfSwKKyAg
eyAweDBjMDAwNDU5LCAweDE0MDBmZmIwIH0sCisgIHsgMHgwYzAwMDQ1YSwgMHgxNDAwZmZiMCB9
LAorICB7IDB4MGMwMDA0NWIsIDB4MTQwMGZmYjAgfSwKKyAgeyAweDBjMDAwNDVjLCAweDE0MDBm
ZmIwIH0sCisgIHsgMHgwYzAwMDQ1ZCwgMHgxNDAwZmZiMCB9LAorICB7IDB4MGMwMDA0NWUsIDB4
MTQwMGZmYjAgfSwKKyAgeyAweDBjMDAwNDVmLCAweDE0MDBmZmIwIH0sCisgIHsgMHgwYzAwMDQ2
MCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0NjEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBj
MDAwNDYyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ2MywgMHgxNDAwZmZmZiB9LAorICB7
IDB4MGMwMDA0NjQsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDY1LCAweDE0MDBmZmZmIH0s
CisgIHsgMHgwYzAwMDQ2NiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0NjcsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDBjMDAwNDY4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ2OSwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MGMwMDA0NmEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDZi
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDQ2YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMw
MDA0NmQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNDZlLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgwYzAwMDQ2ZiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0NzAsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDBjMDAwNDcxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDQ3MiwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MGMwMDA0NzMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNDc0LCAweDI0
MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ3NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0NzYs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDc3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAw
MDQ3OCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0NzksIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDBjMDAwNDdhLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ3YiwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MGMwMDA0N2MsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDdkLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgwYzAwMDQ3ZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0N2YsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDBjMDAwNDgwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ4MSwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ODIsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDBjODAw
NDgzLCAweDMwMDAwMDAzIH0sCisgIHsgMHgwYzgwMDQ4OCwgMHgyYzAwMDAwMSB9LAorICB7IDB4
MGMwMDA0OGEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDhiLCAweDE0MDBmZmZmIH0sCisg
IHsgMHgwYzAwMDQ4YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0OGQsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDBjMDAwNDhlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDQ4ZiwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MGMwMDA0OTAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDkxLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDQ5MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0
OTMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNDk0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgw
YzAwMDQ5NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0OTYsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDBjMDAwNDk3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDQ5OCwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MGMwMDA0OTksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNDlhLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgwYzAwMDQ5YiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0OWMsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNDlkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDQ5
ZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0OWYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBj
MDAwNGEwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRhMSwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MGMwMDA0YTIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGEzLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgwYzAwMDRhNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0YTUsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDBjMDAwNGE2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRhNywgMHgx
NDAwZmZmZiB9LAorICB7IDB4MGMwMDA0YTgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGE5
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRhYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMw
MDA0YWIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGFjLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgwYzAwMDRhZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0YWUsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDBjMDAwNGFmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRiMCwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MGMwMDA0YjEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGIyLCAweDI0
MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRiMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0YjQs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGI1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAw
MDRiNiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0YjcsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDBjMDAwNGI4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRiOSwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MGMwMDA0YmEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGJiLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgwYzAwMDRiYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0YmQsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDBjMDAwNGJlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRiZiwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0YzAsIDB4MjQwMDAwMDAgfSwKKyAgeyAweDBjMDAw
NGMxLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRjMiwgMHgxNDAwZmZmZiB9LAorICB7IDB4
MGMwMDA0YzMsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGM0LCAweDE0MDBmZmZmIH0sCisg
IHsgMHgwYzAwMDRjNSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0YzYsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDBjMDAwNGM3LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRjOCwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MGMwMDA0YzksIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGNhLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRjYiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0
Y2MsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGNkLCAweDI0MDAwMDAxIH0sCisgIHsgMHgw
YzAwMDRjZSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ZDAsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDBjMDAwNGQxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRkMiwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MGMwMDA0ZDMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGQ0LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgwYzAwMDRkNSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ZDYsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGQ3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRk
OCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0ZDksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBj
MDAwNGRhLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRkYiwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MGMwMDA0ZGMsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGRkLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgwYzAwMDRkZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0ZGYsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDBjMDAwNGUwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRlMSwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ZTIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGUz
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRlNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMw
MDA0ZTUsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGU2LCAweDI0MDAwMDAxIH0sCisgIHsg
MHgwYzAwMDRlNywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ZTgsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDBjMDAwNGU5LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDRlYSwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MGMwMDA0ZWIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNGVjLCAweDI0
MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRlZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA0ZWUs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGVmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAw
MDRmMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0ZjEsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDBjMDAwNGYyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRmMywgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MGMwMDA0ZjQsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNGY1LCAweDE0MDBmZmZm
IH0sCisgIHsgMHgwYzAwMDRmNiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA0ZjcsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDBjMDAwNGY4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDRmOSwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA1MDAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAw
NTAxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDUwMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MGMwMDA1MDMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNTA0LCAweDI0MDAwMDAxIH0sCisg
IHsgMHgwYzAwMDUwNSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA1MDYsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDBjMDAwNTA3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYzAwMDUwOCwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MGMwMDA1MDksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBjMDAwNTBhLCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgwYzAwMDUwYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGMwMDA1
MGMsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBjMDAwNTBkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgw
YzAwMDUwZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGMwMDA1MGYsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDAxMDAwNTMxLCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDUzMiwgMHgyNDAwMDAzMCB9
LAorICB7IDB4MDEwMDA1MzMsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTM0LCAweDI0MDAw
MDMwIH0sCisgIHsgMHgwMTAwMDUzNSwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1MzYsIDB4
MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTM3LCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDUz
OCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1MzksIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAx
MDAwNTNhLCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDUzYiwgMHgyNDAwMDAzMCB9LAorICB7
IDB4MDEwMDA1M2MsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTNkLCAweDI0MDAwMDMwIH0s
CisgIHsgMHgwMTAwMDUzZSwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1M2YsIDB4MjQwMDAw
MzAgfSwKKyAgeyAweDAxMDAwNTQwLCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDU0MSwgMHgy
NDAwMDAzMCB9LAorICB7IDB4MDEwMDA1NDIsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTQz
LCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDU0NCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEw
MDA1NDUsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTQ2LCAweDI0MDAwMDMwIH0sCisgIHsg
MHgwMTAwMDU0NywgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1NDgsIDB4MjQwMDAwMzAgfSwK
KyAgeyAweDAxMDAwNTQ5LCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDU0YSwgMHgyNDAwMDAz
MCB9LAorICB7IDB4MDEwMDA1NGIsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTRjLCAweDI0
MDAwMDMwIH0sCisgIHsgMHgwMTAwMDU0ZCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1NGUs
IDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTRmLCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAw
MDU1MCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1NTEsIDB4MjQwMDAwMzAgfSwKKyAgeyAw
eDAxMDAwNTUyLCAweDI0MDAwMDMwIH0sCisgIHsgMHgwMTAwMDU1MywgMHgyNDAwMDAzMCB9LAor
ICB7IDB4MDEwMDA1NTQsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDAxMDAwNTU1LCAweDI0MDAwMDMw
IH0sCisgIHsgMHgwMTAwMDU1NiwgMHgyNDAwMDAzMCB9LAorICB7IDB4MDEwMDA1NTksIDB4MTgw
MDAwMDAgfSwKKyAgeyAweDAxODAwNTVhLCAweDU0MDAwMDA1IH0sCisgIHsgMHgwMTAwMDU2MSwg
MHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1NjIsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAw
NTYzLCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU2NCwgMHgxNDAwZmZkMCB9LAorICB7IDB4
MDEwMDA1NjUsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTY2LCAweDE0MDBmZmQwIH0sCisg
IHsgMHgwMTAwMDU2NywgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1NjgsIDB4MTQwMGZmZDAg
fSwKKyAgeyAweDAxMDAwNTY5LCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU2YSwgMHgxNDAw
ZmZkMCB9LAorICB7IDB4MDEwMDA1NmIsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTZjLCAw
eDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU2ZCwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1
NmUsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTZmLCAweDE0MDBmZmQwIH0sCisgIHsgMHgw
MTAwMDU3MCwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1NzEsIDB4MTQwMGZmZDAgfSwKKyAg
eyAweDAxMDAwNTcyLCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU3MywgMHgxNDAwZmZkMCB9
LAorICB7IDB4MDEwMDA1NzQsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTc1LCAweDE0MDBm
ZmQwIH0sCisgIHsgMHgwMTAwMDU3NiwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1NzcsIDB4
MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTc4LCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU3
OSwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1N2EsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAx
MDAwNTdiLCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU3YywgMHgxNDAwZmZkMCB9LAorICB7
IDB4MDEwMDA1N2QsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTdlLCAweDE0MDBmZmQwIH0s
CisgIHsgMHgwMTAwMDU3ZiwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEwMDA1ODAsIDB4MTQwMGZm
ZDAgfSwKKyAgeyAweDAxMDAwNTgxLCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU4MiwgMHgx
NDAwZmZkMCB9LAorICB7IDB4MDEwMDA1ODMsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTg0
LCAweDE0MDBmZmQwIH0sCisgIHsgMHgwMTAwMDU4NSwgMHgxNDAwZmZkMCB9LAorICB7IDB4MDEw
MDA1ODYsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDAxMDAwNTg3LCAweDE0MDAwMDAwIH0sCisgIHsg
MHgwOTAwMDU4OSwgMHg1NDAwMDAwMCB9LAorICB7IDB4MDEwMDA1OGEsIDB4NDQwMDAwMDAgfSwK
KyAgeyAweDE5ODAwNTkxLCAweDMwMDAwMDI4IH0sCisgIHsgMHgxOTgwMDViYiwgMHgzMDAwMDAw
MiB9LAorICB7IDB4MTkwMDA1YmUsIDB4NTQwMDAwMDAgfSwKKyAgeyAweDE5MDAwNWJmLCAweDMw
MDAwMDAwIH0sCisgIHsgMHgxOTAwMDVjMCwgMHg1NDAwMDAwMCB9LAorICB7IDB4MTk4MDA1YzEs
IDB4MzAwMDAwMDEgfSwKKyAgeyAweDE5MDAwNWMzLCAweDU0MDAwMDAwIH0sCisgIHsgMHgxOTgw
MDVjNCwgMHgzMDAwMDAwMSB9LAorICB7IDB4MTkwMDA1YzYsIDB4NTQwMDAwMDAgfSwKKyAgeyAw
eDE5MDAwNWM3LCAweDMwMDAwMDAwIH0sCisgIHsgMHgxOTgwMDVkMCwgMHgxYzAwMDAxYSB9LAor
ICB7IDB4MTk4MDA1ZjAsIDB4MWMwMDAwMDIgfSwKKyAgeyAweDE5ODAwNWYzLCAweDU0MDAwMDAx
IH0sCisgIHsgMHgwOTgwMDYwMCwgMHgwNDAwMDAwMyB9LAorICB7IDB4MDAwMDA2MGIsIDB4NWMw
MDAwMDAgfSwKKyAgeyAweDA5ODAwNjBjLCAweDU0MDAwMDAxIH0sCisgIHsgMHgwMDgwMDYwZSwg
MHg2ODAwMDAwMSB9LAorICB7IDB4MDA4MDA2MTAsIDB4MzAwMDAwMDUgfSwKKyAgeyAweDA5MDAw
NjFiLCAweDU0MDAwMDAwIH0sCisgIHsgMHgwMDgwMDYxZSwgMHg1NDAwMDAwMSB9LAorICB7IDB4
MDA4MDA2MjEsIDB4MWMwMDAwMTkgfSwKKyAgeyAweDA5MDAwNjQwLCAweDE4MDAwMDAwIH0sCisg
IHsgMHgwMDgwMDY0MSwgMHgxYzAwMDAwOSB9LAorICB7IDB4MWI4MDA2NGIsIDB4MzAwMDAwMTMg
fSwKKyAgeyAweDA5ODAwNjYwLCAweDM0MDAwMDA5IH0sCisgIHsgMHgwMDgwMDY2YSwgMHg1NDAw
MDAwMyB9LAorICB7IDB4MDA4MDA2NmUsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDFiMDAwNjcwLCAw
eDMwMDAwMDAwIH0sCisgIHsgMHgwMDgwMDY3MSwgMHgxYzAwMDA2MiB9LAorICB7IDB4MDAwMDA2
ZDQsIDB4NTQwMDAwMDAgfSwKKyAgeyAweDAwMDAwNmQ1LCAweDFjMDAwMDAwIH0sCisgIHsgMHgw
MDgwMDZkNiwgMHgzMDAwMDAwNiB9LAorICB7IDB4MDkwMDA2ZGQsIDB4MDQwMDAwMDAgfSwKKyAg
eyAweDAwMDAwNmRlLCAweDJjMDAwMDAwIH0sCisgIHsgMHgwMDgwMDZkZiwgMHgzMDAwMDAwNSB9
LAorICB7IDB4MDA4MDA2ZTUsIDB4MTgwMDAwMDEgfSwKKyAgeyAweDAwODAwNmU3LCAweDMwMDAw
MDAxIH0sCisgIHsgMHgwMDAwMDZlOSwgMHg2ODAwMDAwMCB9LAorICB7IDB4MDA4MDA2ZWEsIDB4
MzAwMDAwMDMgfSwKKyAgeyAweDAwODAwNmVlLCAweDFjMDAwMDAxIH0sCisgIHsgMHgwMDgwMDZm
MCwgMHgzNDAwMDAwOSB9LAorICB7IDB4MDA4MDA2ZmEsIDB4MWMwMDAwMDIgfSwKKyAgeyAweDAw
ODAwNmZkLCAweDY4MDAwMDAxIH0sCisgIHsgMHgwMDAwMDZmZiwgMHgxYzAwMDAwMCB9LAorICB7
IDB4MzE4MDA3MDAsIDB4NTQwMDAwMGQgfSwKKyAgeyAweDMxMDAwNzBmLCAweDA0MDAwMDAwIH0s
CisgIHsgMHgzMTAwMDcxMCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MzEwMDA3MTEsIDB4MzAwMDAw
MDAgfSwKKyAgeyAweDMxODAwNzEyLCAweDFjMDAwMDFkIH0sCisgIHsgMHgzMTgwMDczMCwgMHgz
MDAwMDAxYSB9LAorICB7IDB4MzE4MDA3NGQsIDB4MWMwMDAwMjAgfSwKKyAgeyAweDM3ODAwNzgw
LCAweDFjMDAwMDI1IH0sCisgIHsgMHgzNzgwMDdhNiwgMHgzMDAwMDAwYSB9LAorICB7IDB4Mzcw
MDA3YjEsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDBlODAwOTAxLCAweDMwMDAwMDAxIH0sCisgIHsg
MHgwZTAwMDkwMywgMHgyODAwMDAwMCB9LAorICB7IDB4MGU4MDA5MDQsIDB4MWMwMDAwMzUgfSwK
KyAgeyAweDBlMDAwOTNjLCAweDMwMDAwMDAwIH0sCisgIHsgMHgwZTAwMDkzZCwgMHgxYzAwMDAw
MCB9LAorICB7IDB4MGU4MDA5M2UsIDB4MjgwMDAwMDIgfSwKKyAgeyAweDBlODAwOTQxLCAweDMw
MDAwMDA3IH0sCisgIHsgMHgwZTgwMDk0OSwgMHgyODAwMDAwMyB9LAorICB7IDB4MGUwMDA5NGQs
IDB4MzAwMDAwMDAgfSwKKyAgeyAweDBlMDAwOTUwLCAweDFjMDAwMDAwIH0sCisgIHsgMHgwZTgw
MDk1MSwgMHgzMDAwMDAwMyB9LAorICB7IDB4MGU4MDA5NTgsIDB4MWMwMDAwMDkgfSwKKyAgeyAw
eDBlODAwOTYyLCAweDMwMDAwMDAxIH0sCisgIHsgMHgwOTgwMDk2NCwgMHg1NDAwMDAwMSB9LAor
ICB7IDB4MGU4MDA5NjYsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDA5MDAwOTcwLCAweDU0MDAwMDAw
IH0sCisgIHsgMHgwZTAwMDk3ZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MDIwMDA5ODEsIDB4MzAw
MDAwMDAgfSwKKyAgeyAweDAyODAwOTgyLCAweDI4MDAwMDAxIH0sCisgIHsgMHgwMjgwMDk4NSwg
MHgxYzAwMDAwNyB9LAorICB7IDB4MDI4MDA5OGYsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDAyODAw
OTkzLCAweDFjMDAwMDE1IH0sCisgIHsgMHgwMjgwMDlhYSwgMHgxYzAwMDAwNiB9LAorICB7IDB4
MDIwMDA5YjIsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDAyODAwOWI2LCAweDFjMDAwMDAzIH0sCisg
IHsgMHgwMjAwMDliYywgMHgzMDAwMDAwMCB9LAorICB7IDB4MDIwMDA5YmQsIDB4MWMwMDAwMDAg
fSwKKyAgeyAweDAyODAwOWJlLCAweDI4MDAwMDAyIH0sCisgIHsgMHgwMjgwMDljMSwgMHgzMDAw
MDAwMyB9LAorICB7IDB4MDI4MDA5YzcsIDB4MjgwMDAwMDEgfSwKKyAgeyAweDAyODAwOWNiLCAw
eDI4MDAwMDAxIH0sCisgIHsgMHgwMjAwMDljZCwgMHgzMDAwMDAwMCB9LAorICB7IDB4MDIwMDA5
Y2UsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDAyMDAwOWQ3LCAweDI4MDAwMDAwIH0sCisgIHsgMHgw
MjgwMDlkYywgMHgxYzAwMDAwMSB9LAorICB7IDB4MDI4MDA5ZGYsIDB4MWMwMDAwMDIgfSwKKyAg
eyAweDAyODAwOWUyLCAweDMwMDAwMDAxIH0sCisgIHsgMHgwMjgwMDllNiwgMHgzNDAwMDAwOSB9
LAorICB7IDB4MDI4MDA5ZjAsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDAyODAwOWYyLCAweDVjMDAw
MDAxIH0sCisgIHsgMHgwMjgwMDlmNCwgMHgzYzAwMDAwNSB9LAorICB7IDB4MDIwMDA5ZmEsIDB4
NjgwMDAwMDAgfSwKKyAgeyAweDE1ODAwYTAxLCAweDMwMDAwMDAxIH0sCisgIHsgMHgxNTAwMGEw
MywgMHgyODAwMDAwMCB9LAorICB7IDB4MTU4MDBhMDUsIDB4MWMwMDAwMDUgfSwKKyAgeyAweDE1
ODAwYTBmLCAweDFjMDAwMDAxIH0sCisgIHsgMHgxNTgwMGExMywgMHgxYzAwMDAxNSB9LAorICB7
IDB4MTU4MDBhMmEsIDB4MWMwMDAwMDYgfSwKKyAgeyAweDE1ODAwYTMyLCAweDFjMDAwMDAxIH0s
CisgIHsgMHgxNTgwMGEzNSwgMHgxYzAwMDAwMSB9LAorICB7IDB4MTU4MDBhMzgsIDB4MWMwMDAw
MDEgfSwKKyAgeyAweDE1MDAwYTNjLCAweDMwMDAwMDAwIH0sCisgIHsgMHgxNTgwMGEzZSwgMHgy
ODAwMDAwMiB9LAorICB7IDB4MTU4MDBhNDEsIDB4MzAwMDAwMDEgfSwKKyAgeyAweDE1ODAwYTQ3
LCAweDMwMDAwMDAxIH0sCisgIHsgMHgxNTgwMGE0YiwgMHgzMDAwMDAwMiB9LAorICB7IDB4MTU4
MDBhNTksIDB4MWMwMDAwMDMgfSwKKyAgeyAweDE1MDAwYTVlLCAweDFjMDAwMDAwIH0sCisgIHsg
MHgxNTgwMGE2NiwgMHgzNDAwMDAwOSB9LAorICB7IDB4MTU4MDBhNzAsIDB4MzAwMDAwMDEgfSwK
KyAgeyAweDE1ODAwYTcyLCAweDFjMDAwMDAyIH0sCisgIHsgMHgxNDgwMGE4MSwgMHgzMDAwMDAw
MSB9LAorICB7IDB4MTQwMDBhODMsIDB4MjgwMDAwMDAgfSwKKyAgeyAweDE0ODAwYTg1LCAweDFj
MDAwMDA4IH0sCisgIHsgMHgxNDgwMGE4ZiwgMHgxYzAwMDAwMiB9LAorICB7IDB4MTQ4MDBhOTMs
IDB4MWMwMDAwMTUgfSwKKyAgeyAweDE0ODAwYWFhLCAweDFjMDAwMDA2IH0sCisgIHsgMHgxNDgw
MGFiMiwgMHgxYzAwMDAwMSB9LAorICB7IDB4MTQ4MDBhYjUsIDB4MWMwMDAwMDQgfSwKKyAgeyAw
eDE0MDAwYWJjLCAweDMwMDAwMDAwIH0sCisgIHsgMHgxNDAwMGFiZCwgMHgxYzAwMDAwMCB9LAor
ICB7IDB4MTQ4MDBhYmUsIDB4MjgwMDAwMDIgfSwKKyAgeyAweDE0ODAwYWMxLCAweDMwMDAwMDA0
IH0sCisgIHsgMHgxNDgwMGFjNywgMHgzMDAwMDAwMSB9LAorICB7IDB4MTQwMDBhYzksIDB4Mjgw
MDAwMDAgfSwKKyAgeyAweDE0ODAwYWNiLCAweDI4MDAwMDAxIH0sCisgIHsgMHgxNDAwMGFjZCwg
MHgzMDAwMDAwMCB9LAorICB7IDB4MTQwMDBhZDAsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDE0ODAw
YWUwLCAweDFjMDAwMDAxIH0sCisgIHsgMHgxNDgwMGFlMiwgMHgzMDAwMDAwMSB9LAorICB7IDB4
MTQ4MDBhZTYsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDE0MDAwYWYxLCAweDVjMDAwMDAwIH0sCisg
IHsgMHgyYjAwMGIwMSwgMHgzMDAwMDAwMCB9LAorICB7IDB4MmI4MDBiMDIsIDB4MjgwMDAwMDEg
fSwKKyAgeyAweDJiODAwYjA1LCAweDFjMDAwMDA3IH0sCisgIHsgMHgyYjgwMGIwZiwgMHgxYzAw
MDAwMSB9LAorICB7IDB4MmI4MDBiMTMsIDB4MWMwMDAwMTUgfSwKKyAgeyAweDJiODAwYjJhLCAw
eDFjMDAwMDA2IH0sCisgIHsgMHgyYjgwMGIzMiwgMHgxYzAwMDAwMSB9LAorICB7IDB4MmI4MDBi
MzUsIDB4MWMwMDAwMDQgfSwKKyAgeyAweDJiMDAwYjNjLCAweDMwMDAwMDAwIH0sCisgIHsgMHgy
YjAwMGIzZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MmIwMDBiM2UsIDB4MjgwMDAwMDAgfSwKKyAg
eyAweDJiMDAwYjNmLCAweDMwMDAwMDAwIH0sCisgIHsgMHgyYjAwMGI0MCwgMHgyODAwMDAwMCB9
LAorICB7IDB4MmI4MDBiNDEsIDB4MzAwMDAwMDIgfSwKKyAgeyAweDJiODAwYjQ3LCAweDI4MDAw
MDAxIH0sCisgIHsgMHgyYjgwMGI0YiwgMHgyODAwMDAwMSB9LAorICB7IDB4MmIwMDBiNGQsIDB4
MzAwMDAwMDAgfSwKKyAgeyAweDJiMDAwYjU2LCAweDMwMDAwMDAwIH0sCisgIHsgMHgyYjAwMGI1
NywgMHgyODAwMDAwMCB9LAorICB7IDB4MmI4MDBiNWMsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDJi
ODAwYjVmLCAweDFjMDAwMDAyIH0sCisgIHsgMHgyYjgwMGI2NiwgMHgzNDAwMDAwOSB9LAorICB7
IDB4MmIwMDBiNzAsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDJiMDAwYjcxLCAweDFjMDAwMDAwIH0s
CisgIHsgMHgzNTAwMGI4MiwgMHgzMDAwMDAwMCB9LAorICB7IDB4MzUwMDBiODMsIDB4MWMwMDAw
MDAgfSwKKyAgeyAweDM1ODAwYjg1LCAweDFjMDAwMDA1IH0sCisgIHsgMHgzNTgwMGI4ZSwgMHgx
YzAwMDAwMiB9LAorICB7IDB4MzU4MDBiOTIsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDM1ODAwYjk5
LCAweDFjMDAwMDAxIH0sCisgIHsgMHgzNTAwMGI5YywgMHgxYzAwMDAwMCB9LAorICB7IDB4MzU4
MDBiOWUsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDM1ODAwYmEzLCAweDFjMDAwMDAxIH0sCisgIHsg
MHgzNTgwMGJhOCwgMHgxYzAwMDAwMiB9LAorICB7IDB4MzU4MDBiYWUsIDB4MWMwMDAwMGIgfSwK
KyAgeyAweDM1ODAwYmJlLCAweDI4MDAwMDAxIH0sCisgIHsgMHgzNTAwMGJjMCwgMHgzMDAwMDAw
MCB9LAorICB7IDB4MzU4MDBiYzEsIDB4MjgwMDAwMDEgfSwKKyAgeyAweDM1ODAwYmM2LCAweDI4
MDAwMDAyIH0sCisgIHsgMHgzNTgwMGJjYSwgMHgyODAwMDAwMiB9LAorICB7IDB4MzUwMDBiY2Qs
IDB4MzAwMDAwMDAgfSwKKyAgeyAweDM1MDAwYmQ3LCAweDI4MDAwMDAwIH0sCisgIHsgMHgzNTgw
MGJlNiwgMHgzNDAwMDAwOSB9LAorICB7IDB4MzU4MDBiZjAsIDB4M2MwMDAwMDIgfSwKKyAgeyAw
eDM1ODAwYmYzLCAweDY4MDAwMDA1IH0sCisgIHsgMHgzNTAwMGJmOSwgMHg1YzAwMDAwMCB9LAor
ICB7IDB4MzUwMDBiZmEsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDM2ODAwYzAxLCAweDI4MDAwMDAy
IH0sCisgIHsgMHgzNjgwMGMwNSwgMHgxYzAwMDAwNyB9LAorICB7IDB4MzY4MDBjMGUsIDB4MWMw
MDAwMDIgfSwKKyAgeyAweDM2ODAwYzEyLCAweDFjMDAwMDE2IH0sCisgIHsgMHgzNjgwMGMyYSwg
MHgxYzAwMDAwOSB9LAorICB7IDB4MzY4MDBjMzUsIDB4MWMwMDAwMDQgfSwKKyAgeyAweDM2ODAw
YzNlLCAweDMwMDAwMDAyIH0sCisgIHsgMHgzNjgwMGM0MSwgMHgyODAwMDAwMyB9LAorICB7IDB4
MzY4MDBjNDYsIDB4MzAwMDAwMDIgfSwKKyAgeyAweDM2ODAwYzRhLCAweDMwMDAwMDAzIH0sCisg
IHsgMHgzNjgwMGM1NSwgMHgzMDAwMDAwMSB9LAorICB7IDB4MzY4MDBjNjAsIDB4MWMwMDAwMDEg
fSwKKyAgeyAweDM2ODAwYzY2LCAweDM0MDAwMDA5IH0sCisgIHsgMHgxYzgwMGM4MiwgMHgyODAw
MDAwMSB9LAorICB7IDB4MWM4MDBjODUsIDB4MWMwMDAwMDcgfSwKKyAgeyAweDFjODAwYzhlLCAw
eDFjMDAwMDAyIH0sCisgIHsgMHgxYzgwMGM5MiwgMHgxYzAwMDAxNiB9LAorICB7IDB4MWM4MDBj
YWEsIDB4MWMwMDAwMDkgfSwKKyAgeyAweDFjODAwY2I1LCAweDFjMDAwMDA0IH0sCisgIHsgMHgx
YzAwMGNiYywgMHgzMDAwMDAwMCB9LAorICB7IDB4MWMwMDBjYmQsIDB4MWMwMDAwMDAgfSwKKyAg
eyAweDFjMDAwY2JlLCAweDI4MDAwMDAwIH0sCisgIHsgMHgxYzAwMGNiZiwgMHgzMDAwMDAwMCB9
LAorICB7IDB4MWM4MDBjYzAsIDB4MjgwMDAwMDQgfSwKKyAgeyAweDFjMDAwY2M2LCAweDMwMDAw
MDAwIH0sCisgIHsgMHgxYzgwMGNjNywgMHgyODAwMDAwMSB9LAorICB7IDB4MWM4MDBjY2EsIDB4
MjgwMDAwMDEgfSwKKyAgeyAweDFjODAwY2NjLCAweDMwMDAwMDAxIH0sCisgIHsgMHgxYzgwMGNk
NSwgMHgyODAwMDAwMSB9LAorICB7IDB4MWMwMDBjZGUsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDFj
ODAwY2UwLCAweDFjMDAwMDAxIH0sCisgIHsgMHgxYzgwMGNlNiwgMHgzNDAwMDAwOSB9LAorICB7
IDB4MjQ4MDBkMDIsIDB4MjgwMDAwMDEgfSwKKyAgeyAweDI0ODAwZDA1LCAweDFjMDAwMDA3IH0s
CisgIHsgMHgyNDgwMGQwZSwgMHgxYzAwMDAwMiB9LAorICB7IDB4MjQ4MDBkMTIsIDB4MWMwMDAw
MTYgfSwKKyAgeyAweDI0ODAwZDJhLCAweDFjMDAwMDBmIH0sCisgIHsgMHgyNDgwMGQzZSwgMHgy
ODAwMDAwMiB9LAorICB7IDB4MjQ4MDBkNDEsIDB4MzAwMDAwMDIgfSwKKyAgeyAweDI0ODAwZDQ2
LCAweDI4MDAwMDAyIH0sCisgIHsgMHgyNDgwMGQ0YSwgMHgyODAwMDAwMiB9LAorICB7IDB4MjQw
MDBkNGQsIDB4MzAwMDAwMDAgfSwKKyAgeyAweDI0MDAwZDU3LCAweDI4MDAwMDAwIH0sCisgIHsg
MHgyNDgwMGQ2MCwgMHgxYzAwMDAwMSB9LAorICB7IDB4MjQ4MDBkNjYsIDB4MzQwMDAwMDkgfSwK
KyAgeyAweDJmODAwZDgyLCAweDI4MDAwMDAxIH0sCisgIHsgMHgyZjgwMGQ4NSwgMHgxYzAwMDAx
MSB9LAorICB7IDB4MmY4MDBkOWEsIDB4MWMwMDAwMTcgfSwKKyAgeyAweDJmODAwZGIzLCAweDFj
MDAwMDA4IH0sCisgIHsgMHgyZjAwMGRiZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MmY4MDBkYzAs
IDB4MWMwMDAwMDYgfSwKKyAgeyAweDJmMDAwZGNhLCAweDMwMDAwMDAwIH0sCisgIHsgMHgyZjgw
MGRjZiwgMHgyODAwMDAwMiB9LAorICB7IDB4MmY4MDBkZDIsIDB4MzAwMDAwMDIgfSwKKyAgeyAw
eDJmMDAwZGQ2LCAweDMwMDAwMDAwIH0sCisgIHsgMHgyZjgwMGRkOCwgMHgyODAwMDAwNyB9LAor
ICB7IDB4MmY4MDBkZjIsIDB4MjgwMDAwMDEgfSwKKyAgeyAweDJmMDAwZGY0LCAweDU0MDAwMDAw
IH0sCisgIHsgMHgzODgwMGUwMSwgMHgxYzAwMDAyZiB9LAorICB7IDB4MzgwMDBlMzEsIDB4MzAw
MDAwMDAgfSwKKyAgeyAweDM4ODAwZTMyLCAweDFjMDAwMDAxIH0sCisgIHsgMHgzODgwMGUzNCwg
MHgzMDAwMDAwNiB9LAorICB7IDB4MDkwMDBlM2YsIDB4NWMwMDAwMDAgfSwKKyAgeyAweDM4ODAw
ZTQwLCAweDFjMDAwMDA1IH0sCisgIHsgMHgzODAwMGU0NiwgMHgxODAwMDAwMCB9LAorICB7IDB4
Mzg4MDBlNDcsIDB4MzAwMDAwMDcgfSwKKyAgeyAweDM4MDAwZTRmLCAweDU0MDAwMDAwIH0sCisg
IHsgMHgzODgwMGU1MCwgMHgzNDAwMDAwOSB9LAorICB7IDB4Mzg4MDBlNWEsIDB4NTQwMDAwMDEg
fSwKKyAgeyAweDIwODAwZTgxLCAweDFjMDAwMDAxIH0sCisgIHsgMHgyMDAwMGU4NCwgMHgxYzAw
MDAwMCB9LAorICB7IDB4MjA4MDBlODcsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDIwMDAwZThhLCAw
eDFjMDAwMDAwIH0sCisgIHsgMHgyMDAwMGU4ZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MjA4MDBl
OTQsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDIwODAwZTk5LCAweDFjMDAwMDA2IH0sCisgIHsgMHgy
MDgwMGVhMSwgMHgxYzAwMDAwMiB9LAorICB7IDB4MjAwMDBlYTUsIDB4MWMwMDAwMDAgfSwKKyAg
eyAweDIwMDAwZWE3LCAweDFjMDAwMDAwIH0sCisgIHsgMHgyMDgwMGVhYSwgMHgxYzAwMDAwMSB9
LAorICB7IDB4MjA4MDBlYWQsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDIwMDAwZWIxLCAweDMwMDAw
MDAwIH0sCisgIHsgMHgyMDgwMGViMiwgMHgxYzAwMDAwMSB9LAorICB7IDB4MjA4MDBlYjQsIDB4
MzAwMDAwMDUgfSwKKyAgeyAweDIwODAwZWJiLCAweDMwMDAwMDAxIH0sCisgIHsgMHgyMDAwMGVi
ZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MjA4MDBlYzAsIDB4MWMwMDAwMDQgfSwKKyAgeyAweDIw
MDAwZWM2LCAweDE4MDAwMDAwIH0sCisgIHsgMHgyMDgwMGVjOCwgMHgzMDAwMDAwNSB9LAorICB7
IDB4MjA4MDBlZDAsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDIwODAwZWRjLCAweDFjMDAwMDAxIH0s
CisgIHsgMHgzOTAwMGYwMCwgMHgxYzAwMDAwMCB9LAorICB7IDB4Mzk4MDBmMDEsIDB4NjgwMDAw
MDIgfSwKKyAgeyAweDM5ODAwZjA0LCAweDU0MDAwMDBlIH0sCisgIHsgMHgzOTgwMGYxMywgMHg2
ODAwMDAwNCB9LAorICB7IDB4Mzk4MDBmMTgsIDB4MzAwMDAwMDEgfSwKKyAgeyAweDM5ODAwZjFh
LCAweDY4MDAwMDA1IH0sCisgIHsgMHgzOTgwMGYyMCwgMHgzNDAwMDAwOSB9LAorICB7IDB4Mzk4
MDBmMmEsIDB4M2MwMDAwMDkgfSwKKyAgeyAweDM5MDAwZjM0LCAweDY4MDAwMDAwIH0sCisgIHsg
MHgzOTAwMGYzNSwgMHgzMDAwMDAwMCB9LAorICB7IDB4MzkwMDBmMzYsIDB4NjgwMDAwMDAgfSwK
KyAgeyAweDM5MDAwZjM3LCAweDMwMDAwMDAwIH0sCisgIHsgMHgzOTAwMGYzOCwgMHg2ODAwMDAw
MCB9LAorICB7IDB4MzkwMDBmMzksIDB4MzAwMDAwMDAgfSwKKyAgeyAweDM5MDAwZjNhLCAweDU4
MDAwMDAwIH0sCisgIHsgMHgzOTAwMGYzYiwgMHg0ODAwMDAwMCB9LAorICB7IDB4MzkwMDBmM2Ms
IDB4NTgwMDAwMDAgfSwKKyAgeyAweDM5MDAwZjNkLCAweDQ4MDAwMDAwIH0sCisgIHsgMHgzOTgw
MGYzZSwgMHgyODAwMDAwMSB9LAorICB7IDB4Mzk4MDBmNDAsIDB4MWMwMDAwMDcgfSwKKyAgeyAw
eDM5ODAwZjQ5LCAweDFjMDAwMDIxIH0sCisgIHsgMHgzOTgwMGY3MSwgMHgzMDAwMDAwZCB9LAor
ICB7IDB4MzkwMDBmN2YsIDB4MjgwMDAwMDAgfSwKKyAgeyAweDM5ODAwZjgwLCAweDMwMDAwMDA0
IH0sCisgIHsgMHgzOTAwMGY4NSwgMHg1NDAwMDAwMCB9LAorICB7IDB4Mzk4MDBmODYsIDB4MzAw
MDAwMDEgfSwKKyAgeyAweDM5ODAwZjg4LCAweDFjMDAwMDAzIH0sCisgIHsgMHgzOTgwMGY5MCwg
MHgzMDAwMDAwNyB9LAorICB7IDB4Mzk4MDBmOTksIDB4MzAwMDAwMjMgfSwKKyAgeyAweDM5ODAw
ZmJlLCAweDY4MDAwMDA3IH0sCisgIHsgMHgzOTAwMGZjNiwgMHgzMDAwMDAwMCB9LAorICB7IDB4
Mzk4MDBmYzcsIDB4NjgwMDAwMDUgfSwKKyAgeyAweDM5MDAwZmNmLCAweDY4MDAwMDAwIH0sCisg
IHsgMHgzOTgwMGZkMCwgMHg1NDAwMDAwMSB9LAorICB7IDB4MjY4MDEwMDAsIDB4MWMwMDAwMjEg
fSwKKyAgeyAweDI2ODAxMDIzLCAweDFjMDAwMDA0IH0sCisgIHsgMHgyNjgwMTAyOSwgMHgxYzAw
MDAwMSB9LAorICB7IDB4MjYwMDEwMmMsIDB4MjgwMDAwMDAgfSwKKyAgeyAweDI2ODAxMDJkLCAw
eDMwMDAwMDAzIH0sCisgIHsgMHgyNjAwMTAzMSwgMHgyODAwMDAwMCB9LAorICB7IDB4MjYwMDEw
MzIsIDB4MzAwMDAwMDAgfSwKKyAgeyAweDI2ODAxMDM2LCAweDMwMDAwMDAxIH0sCisgIHsgMHgy
NjAwMTAzOCwgMHgyODAwMDAwMCB9LAorICB7IDB4MjYwMDEwMzksIDB4MzAwMDAwMDAgfSwKKyAg
eyAweDI2ODAxMDQwLCAweDM0MDAwMDA5IH0sCisgIHsgMHgyNjgwMTA0YSwgMHg1NDAwMDAwNSB9
LAorICB7IDB4MjY4MDEwNTAsIDB4MWMwMDAwMDUgfSwKKyAgeyAweDI2ODAxMDU2LCAweDI4MDAw
MDAxIH0sCisgIHsgMHgyNjgwMTA1OCwgMHgzMDAwMDAwMSB9LAorICB7IDB4MTAwMDEwYTAsIDB4
MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGExLCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBh
MiwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYTMsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEw
MDAxMGE0LCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBhNSwgMHgyNDAwMWM2MCB9LAorICB7
IDB4MTAwMDEwYTYsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGE3LCAweDI0MDAxYzYwIH0s
CisgIHsgMHgxMDAwMTBhOCwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYTksIDB4MjQwMDFj
NjAgfSwKKyAgeyAweDEwMDAxMGFhLCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBhYiwgMHgy
NDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYWMsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGFk
LCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBhZSwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAw
MDEwYWYsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGIwLCAweDI0MDAxYzYwIH0sCisgIHsg
MHgxMDAwMTBiMSwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYjIsIDB4MjQwMDFjNjAgfSwK
KyAgeyAweDEwMDAxMGIzLCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBiNCwgMHgyNDAwMWM2
MCB9LAorICB7IDB4MTAwMDEwYjUsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGI2LCAweDI0
MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBiNywgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYjgs
IDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGI5LCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAw
MTBiYSwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYmIsIDB4MjQwMDFjNjAgfSwKKyAgeyAw
eDEwMDAxMGJjLCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBiZCwgMHgyNDAwMWM2MCB9LAor
ICB7IDB4MTAwMDEwYmUsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAxMGJmLCAweDI0MDAxYzYw
IH0sCisgIHsgMHgxMDAwMTBjMCwgMHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYzEsIDB4MjQw
MDFjNjAgfSwKKyAgeyAweDEwMDAxMGMyLCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDAwMTBjMywg
MHgyNDAwMWM2MCB9LAorICB7IDB4MTAwMDEwYzQsIDB4MjQwMDFjNjAgfSwKKyAgeyAweDEwMDAx
MGM1LCAweDI0MDAxYzYwIH0sCisgIHsgMHgxMDgwMTBkMCwgMHgxYzAwMDAyYSB9LAorICB7IDB4
MDkwMDEwZmIsIDB4NTQwMDAwMDAgfSwKKyAgeyAweDEwMDAxMGZjLCAweDE4MDAwMDAwIH0sCisg
IHsgMHgxNzgwMTEwMCwgMHgxYzAwMDA1OSB9LAorICB7IDB4MTc4MDExNWYsIDB4MWMwMDAwNDMg
fSwKKyAgeyAweDE3ODAxMWE4LCAweDFjMDAwMDUxIH0sCisgIHsgMHgwZjgwMTIwMCwgMHgxYzAw
MDA0OCB9LAorICB7IDB4MGY4MDEyNGEsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDBmODAxMjUwLCAw
eDFjMDAwMDA2IH0sCisgIHsgMHgwZjAwMTI1OCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MGY4MDEy
NWEsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDBmODAxMjYwLCAweDFjMDAwMDI4IH0sCisgIHsgMHgw
ZjgwMTI4YSwgMHgxYzAwMDAwMyB9LAorICB7IDB4MGY4MDEyOTAsIDB4MWMwMDAwMjAgfSwKKyAg
eyAweDBmODAxMmIyLCAweDFjMDAwMDAzIH0sCisgIHsgMHgwZjgwMTJiOCwgMHgxYzAwMDAwNiB9
LAorICB7IDB4MGYwMDEyYzAsIDB4MWMwMDAwMDAgfSwKKyAgeyAweDBmODAxMmMyLCAweDFjMDAw
MDAzIH0sCisgIHsgMHgwZjgwMTJjOCwgMHgxYzAwMDAwZSB9LAorICB7IDB4MGY4MDEyZDgsIDB4
MWMwMDAwMzggfSwKKyAgeyAweDBmODAxMzEyLCAweDFjMDAwMDAzIH0sCisgIHsgMHgwZjgwMTMx
OCwgMHgxYzAwMDA0MiB9LAorICB7IDB4MGYwMDEzNWYsIDB4MzAwMDAwMDAgfSwKKyAgeyAweDBm
MDAxMzYwLCAweDY4MDAwMDAwIH0sCisgIHsgMHgwZjgwMTM2MSwgMHg1NDAwMDAwNyB9LAorICB7
IDB4MGY4MDEzNjksIDB4M2MwMDAwMTMgfSwKKyAgeyAweDBmODAxMzgwLCAweDFjMDAwMDBmIH0s
CisgIHsgMHgwZjgwMTM5MCwgMHg2ODAwMDAwOSB9LAorICB7IDB4MDg4MDEzYTAsIDB4MWMwMDAw
NTQgfSwKKyAgeyAweDA3ODAxNDAxLCAweDFjMDAwMjZiIH0sCisgIHsgMHgwNzgwMTY2ZCwgMHg1
NDAwMDAwMSB9LAorICB7IDB4MDc4MDE2NmYsIDB4MWMwMDAwMDcgfSwKKyAgeyAweDI4MDAxNjgw
LCAweDc0MDAwMDAwIH0sCisgIHsgMHgyODgwMTY4MSwgMHgxYzAwMDAxOSB9LAorICB7IDB4Mjgw
MDE2OWIsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDI4MDAxNjljLCAweDQ4MDAwMDAwIH0sCisgIHsg
MHgyZDgwMTZhMCwgMHgxYzAwMDA0YSB9LAorICB7IDB4MDk4MDE2ZWIsIDB4NTQwMDAwMDIgfSwK
KyAgeyAweDJkODAxNmVlLCAweDM4MDAwMDAyIH0sCisgIHsgMHgzMjgwMTcwMCwgMHgxYzAwMDAw
YyB9LAorICB7IDB4MzI4MDE3MGUsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDMyODAxNzEyLCAweDMw
MDAwMDAyIH0sCisgIHsgMHgxODgwMTcyMCwgMHgxYzAwMDAxMSB9LAorICB7IDB4MTg4MDE3MzIs
IDB4MzAwMDAwMDIgfSwKKyAgeyAweDA5ODAxNzM1LCAweDU0MDAwMDAxIH0sCisgIHsgMHgwNjgw
MTc0MCwgMHgxYzAwMDAxMSB9LAorICB7IDB4MDY4MDE3NTIsIDB4MzAwMDAwMDEgfSwKKyAgeyAw
eDMzODAxNzYwLCAweDFjMDAwMDBjIH0sCisgIHsgMHgzMzgwMTc2ZSwgMHgxYzAwMDAwMiB9LAor
ICB7IDB4MzM4MDE3NzIsIDB4MzAwMDAwMDEgfSwKKyAgeyAweDFmODAxNzgwLCAweDFjMDAwMDMz
IH0sCisgIHsgMHgxZjgwMTdiNCwgMHgwNDAwMDAwMSB9LAorICB7IDB4MWYwMDE3YjYsIDB4Mjgw
MDAwMDAgfSwKKyAgeyAweDFmODAxN2I3LCAweDMwMDAwMDA2IH0sCisgIHsgMHgxZjgwMTdiZSwg
MHgyODAwMDAwNyB9LAorICB7IDB4MWYwMDE3YzYsIDB4MzAwMDAwMDAgfSwKKyAgeyAweDFmODAx
N2M3LCAweDI4MDAwMDAxIH0sCisgIHsgMHgxZjgwMTdjOSwgMHgzMDAwMDAwYSB9LAorICB7IDB4
MWY4MDE3ZDQsIDB4NTQwMDAwMDIgfSwKKyAgeyAweDFmMDAxN2Q3LCAweDE4MDAwMDAwIH0sCisg
IHsgMHgxZjgwMTdkOCwgMHg1NDAwMDAwMiB9LAorICB7IDB4MWYwMDE3ZGIsIDB4NWMwMDAwMDAg
fSwKKyAgeyAweDFmMDAxN2RjLCAweDFjMDAwMDAwIH0sCisgIHsgMHgxZjAwMTdkZCwgMHgzMDAw
MDAwMCB9LAorICB7IDB4MWY4MDE3ZTAsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDFmODAxN2YwLCAw
eDNjMDAwMDA5IH0sCisgIHsgMHgyNTgwMTgwMCwgMHg1NDAwMDAwNSB9LAorICB7IDB4MjUwMDE4
MDYsIDB4NDQwMDAwMDAgfSwKKyAgeyAweDI1ODAxODA3LCAweDU0MDAwMDAzIH0sCisgIHsgMHgy
NTgwMTgwYiwgMHgzMDAwMDAwMiB9LAorICB7IDB4MjUwMDE4MGUsIDB4NzQwMDAwMDAgfSwKKyAg
eyAweDI1ODAxODEwLCAweDM0MDAwMDA5IH0sCisgIHsgMHgyNTgwMTgyMCwgMHgxYzAwMDAyMiB9
LAorICB7IDB4MjUwMDE4NDMsIDB4MTgwMDAwMDAgfSwKKyAgeyAweDI1ODAxODQ0LCAweDFjMDAw
MDMzIH0sCisgIHsgMHgyNTgwMTg4MCwgMHgxYzAwMDAyOCB9LAorICB7IDB4MjUwMDE4YTksIDB4
MzAwMDAwMDAgfSwKKyAgeyAweDIyODAxOTAwLCAweDFjMDAwMDFjIH0sCisgIHsgMHgyMjgwMTky
MCwgMHgzMDAwMDAwMiB9LAorICB7IDB4MjI4MDE5MjMsIDB4MjgwMDAwMDMgfSwKKyAgeyAweDIy
ODAxOTI3LCAweDMwMDAwMDAxIH0sCisgIHsgMHgyMjgwMTkyOSwgMHgyODAwMDAwMiB9LAorICB7
IDB4MjI4MDE5MzAsIDB4MjgwMDAwMDEgfSwKKyAgeyAweDIyMDAxOTMyLCAweDMwMDAwMDAwIH0s
CisgIHsgMHgyMjgwMTkzMywgMHgyODAwMDAwNSB9LAorICB7IDB4MjI4MDE5MzksIDB4MzAwMDAw
MDIgfSwKKyAgeyAweDIyMDAxOTQwLCAweDY4MDAwMDAwIH0sCisgIHsgMHgyMjgwMTk0NCwgMHg1
NDAwMDAwMSB9LAorICB7IDB4MjI4MDE5NDYsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDM0ODAxOTUw
LCAweDFjMDAwMDFkIH0sCisgIHsgMHgzNDgwMTk3MCwgMHgxYzAwMDAwNCB9LAorICB7IDB4Mjc4
MDE5ODAsIDB4MWMwMDAwMjkgfSwKKyAgeyAweDI3ODAxOWIwLCAweDI4MDAwMDEwIH0sCisgIHsg
MHgyNzgwMTljMSwgMHgxYzAwMDAwNiB9LAorICB7IDB4Mjc4MDE5YzgsIDB4MjgwMDAwMDEgfSwK
KyAgeyAweDI3ODAxOWQwLCAweDM0MDAwMDA5IH0sCisgIHsgMHgyNzgwMTlkZSwgMHg1NDAwMDAw
MSB9LAorICB7IDB4MWY4MDE5ZTAsIDB4NjgwMDAwMWYgfSwKKyAgeyAweDA1ODAxYTAwLCAweDFj
MDAwMDE2IH0sCisgIHsgMHgwNTgwMWExNywgMHgzMDAwMDAwMSB9LAorICB7IDB4MDU4MDFhMTks
IDB4MjgwMDAwMDIgfSwKKyAgeyAweDA1ODAxYTFlLCAweDU0MDAwMDAxIH0sCisgIHsgMHgyMTgw
MWQwMCwgMHgxNDAwMDAyYiB9LAorICB7IDB4MjE4MDFkMmMsIDB4MTgwMDAwMzUgfSwKKyAgeyAw
eDIxODAxZDYyLCAweDE0MDAwMDE1IH0sCisgIHsgMHgwYzAwMWQ3OCwgMHgxODAwMDAwMCB9LAor
ICB7IDB4MjE4MDFkNzksIDB4MTQwMDAwMjEgfSwKKyAgeyAweDIxODAxZDliLCAweDE4MDAwMDI0
IH0sCisgIHsgMHgxYjgwMWRjMCwgMHgzMDAwMDAwMyB9LAorICB7IDB4MjEwMDFlMDAsIDB4MjQw
MDAwMDEgfSwKKyAgeyAweDIxMDAxZTAxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUwMiwg
MHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMDMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAx
ZTA0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUwNSwgMHgxNDAwZmZmZiB9LAorICB7IDB4
MjEwMDFlMDYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTA3LCAweDE0MDBmZmZmIH0sCisg
IHsgMHgyMTAwMWUwOCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMDksIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDIxMDAxZTBhLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUwYiwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MjEwMDFlMGMsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTBkLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUwZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFl
MGYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTEwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgy
MTAwMWUxMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlMTIsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDIxMDAxZTEzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUxNCwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MjEwMDFlMTUsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTE2LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMWUxNywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlMTgsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTE5LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUx
YSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMWIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAxZTFjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUxZCwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MjEwMDFlMWUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTFmLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgyMTAwMWUyMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMjEsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDIxMDAxZTIyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUyMywgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjEwMDFlMjQsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTI1
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUyNiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDFlMjcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTI4LCAweDI0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMWUyOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlMmEsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDIxMDAxZTJiLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUyYywgMHgyNDAwMDAw
MSB9LAorICB7IDB4MjEwMDFlMmQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTJlLCAweDI0
MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUyZiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlMzAs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTMxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAw
MWUzMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMzMsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDIxMDAxZTM0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUzNSwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MjEwMDFlMzYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTM3LCAweDE0MDBmZmZm
IH0sCisgIHsgMHgyMTAwMWUzOCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlMzksIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDIxMDAxZTNhLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWUzYiwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlM2MsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAx
ZTNkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWUzZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MjEwMDFlM2YsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTQwLCAweDI0MDAwMDAxIH0sCisg
IHsgMHgyMTAwMWU0MSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlNDIsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDIxMDAxZTQzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU0NCwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MjEwMDFlNDUsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTQ2LCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU0NywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFl
NDgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTQ5LCAweDE0MDBmZmZmIH0sCisgIHsgMHgy
MTAwMWU0YSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNGIsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDIxMDAxZTRjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU0ZCwgMHgxNDAwZmZmZiB9
LAorICB7IDB4MjEwMDFlNGUsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTRmLCAweDE0MDBm
ZmZmIH0sCisgIHsgMHgyMTAwMWU1MCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNTEsIDB4
MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTUyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU1
MywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlNTQsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIx
MDAxZTU1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU1NiwgMHgyNDAwMDAwMSB9LAorICB7
IDB4MjEwMDFlNTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTU4LCAweDI0MDAwMDAxIH0s
CisgIHsgMHgyMTAwMWU1OSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlNWEsIDB4MjQwMDAw
MDEgfSwKKyAgeyAweDIxMDAxZTViLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU1YywgMHgy
NDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNWQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTVl
LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU1ZiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEw
MDFlNjAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTYxLCAweDE0MDBmZmZmIH0sCisgIHsg
MHgyMTAwMWU2MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNjMsIDB4MTQwMGZmZmYgfSwK
KyAgeyAweDIxMDAxZTY0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU2NSwgMHgxNDAwZmZm
ZiB9LAorICB7IDB4MjEwMDFlNjYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTY3LCAweDE0
MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU2OCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNjks
IDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTZhLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAw
MWU2YiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlNmMsIDB4MjQwMDAwMDEgfSwKKyAgeyAw
eDIxMDAxZTZkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU2ZSwgMHgyNDAwMDAwMSB9LAor
ICB7IDB4MjEwMDFlNmYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTcwLCAweDI0MDAwMDAx
IH0sCisgIHsgMHgyMTAwMWU3MSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlNzIsIDB4MjQw
MDAwMDEgfSwKKyAgeyAweDIxMDAxZTczLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU3NCwg
MHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlNzUsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAx
ZTc2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU3NywgMHgxNDAwZmZmZiB9LAorICB7IDB4
MjEwMDFlNzgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTc5LCAweDE0MDBmZmZmIH0sCisg
IHsgMHgyMTAwMWU3YSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlN2IsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDIxMDAxZTdjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU3ZCwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MjEwMDFlN2UsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTdmLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU4MCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFl
ODEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTgyLCAweDI0MDAwMDAxIH0sCisgIHsgMHgy
MTAwMWU4MywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlODQsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDIxMDAxZTg1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU4NiwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MjEwMDFlODcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZTg4LCAweDI0MDAw
MDAxIH0sCisgIHsgMHgyMTAwMWU4OSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlOGEsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZThiLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWU4
YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlOGQsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIx
MDAxZThlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU4ZiwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MjEwMDFlOTAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZTkxLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgyMTAwMWU5MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlOTMsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDIxMDAxZTk0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWU5NSwgMHgx
NDAwZmZmZiB9LAorICB7IDB4MjE4MDFlOTYsIDB4MTQwMDAwMDQgfSwKKyAgeyAweDIxMDAxZTli
LCAweDE0MDBmZmM1IH0sCisgIHsgMHgyMTAwMWVhMCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEw
MDFlYTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWEyLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgyMTAwMWVhMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlYTQsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDIxMDAxZWE1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVhNiwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MjEwMDFlYTcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWE4LCAweDI0
MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVhOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlYWEs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWFiLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAw
MWVhYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlYWQsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDIxMDAxZWFlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVhZiwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MjEwMDFlYjAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWIxLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgyMTAwMWViMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlYjMsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDIxMDAxZWI0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWViNSwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlYjYsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAx
ZWI3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWViOCwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MjEwMDFlYjksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWJhLCAweDI0MDAwMDAxIH0sCisg
IHsgMHgyMTAwMWViYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlYmMsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDIxMDAxZWJkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWViZSwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MjEwMDFlYmYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWMwLCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVjMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFl
YzIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWMzLCAweDE0MDBmZmZmIH0sCisgIHsgMHgy
MTAwMWVjNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlYzUsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDIxMDAxZWM2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVjNywgMHgxNDAwZmZmZiB9
LAorICB7IDB4MjEwMDFlYzgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWM5LCAweDE0MDBm
ZmZmIH0sCisgIHsgMHgyMTAwMWVjYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlY2IsIDB4
MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWNjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVj
ZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlY2UsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIx
MDAxZWNmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVkMCwgMHgyNDAwMDAwMSB9LAorICB7
IDB4MjEwMDFlZDEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWQyLCAweDI0MDAwMDAxIH0s
CisgIHsgMHgyMTAwMWVkMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlZDQsIDB4MjQwMDAw
MDEgfSwKKyAgeyAweDIxMDAxZWQ1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVkNiwgMHgy
NDAwMDAwMSB9LAorICB7IDB4MjEwMDFlZDcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWQ4
LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVkOSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEw
MDFlZGEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWRiLCAweDE0MDBmZmZmIH0sCisgIHsg
MHgyMTAwMWVkYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlZGQsIDB4MTQwMGZmZmYgfSwK
KyAgeyAweDIxMDAxZWRlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVkZiwgMHgxNDAwZmZm
ZiB9LAorICB7IDB4MjEwMDFlZTAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWUxLCAweDE0
MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVlMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlZTMs
IDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWU0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAw
MWVlNSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlZTYsIDB4MjQwMDAwMDEgfSwKKyAgeyAw
eDIxMDAxZWU3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVlOCwgMHgyNDAwMDAwMSB9LAor
ICB7IDB4MjEwMDFlZTksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAxZWVhLCAweDI0MDAwMDAx
IH0sCisgIHsgMHgyMTAwMWVlYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MjEwMDFlZWMsIDB4MjQw
MDAwMDEgfSwKKyAgeyAweDIxMDAxZWVkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgyMTAwMWVlZSwg
MHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlZWYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDIxMDAx
ZWYwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVmMSwgMHgxNDAwZmZmZiB9LAorICB7IDB4
MjEwMDFlZjIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWYzLCAweDE0MDBmZmZmIH0sCisg
IHsgMHgyMTAwMWVmNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MjEwMDFlZjUsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDIxMDAxZWY2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgyMTAwMWVmNywgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MjEwMDFlZjgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDIxMDAxZWY5LCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgxMzAwMWYwMCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFm
MDEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjAyLCAweDE0MDAwMDA4IH0sCisgIHsgMHgx
MzAwMWYwMywgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMDQsIDB4MTQwMDAwMDggfSwKKyAg
eyAweDEzMDAxZjA1LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYwNiwgMHgxNDAwMDAwOCB9
LAorICB7IDB4MTMwMDFmMDcsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjA4LCAweDI0MDBm
ZmY4IH0sCisgIHsgMHgxMzAwMWYwOSwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmMGEsIDB4
MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjBiLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYw
YywgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmMGQsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEz
MDAxZjBlLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYwZiwgMHgyNDAwZmZmOCB9LAorICB7
IDB4MTMwMDFmMTAsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjExLCAweDE0MDAwMDA4IH0s
CisgIHsgMHgxMzAwMWYxMiwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMTMsIDB4MTQwMDAw
MDggfSwKKyAgeyAweDEzMDAxZjE0LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYxNSwgMHgx
NDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMTgsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjE5
LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYxYSwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMw
MDFmMWIsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjFjLCAweDI0MDBmZmY4IH0sCisgIHsg
MHgxMzAwMWYxZCwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmMjAsIDB4MTQwMDAwMDggfSwK
KyAgeyAweDEzMDAxZjIxLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYyMiwgMHgxNDAwMDAw
OCB9LAorICB7IDB4MTMwMDFmMjMsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjI0LCAweDE0
MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYyNSwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMjYs
IDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjI3LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAw
MWYyOCwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmMjksIDB4MjQwMGZmZjggfSwKKyAgeyAw
eDEzMDAxZjJhLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYyYiwgMHgyNDAwZmZmOCB9LAor
ICB7IDB4MTMwMDFmMmMsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjJkLCAweDI0MDBmZmY4
IH0sCisgIHsgMHgxMzAwMWYyZSwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmMmYsIDB4MjQw
MGZmZjggfSwKKyAgeyAweDEzMDAxZjMwLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYzMSwg
MHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMzIsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAx
ZjMzLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWYzNCwgMHgxNDAwMDAwOCB9LAorICB7IDB4
MTMwMDFmMzUsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjM2LCAweDE0MDAwMDA4IH0sCisg
IHsgMHgxMzAwMWYzNywgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmMzgsIDB4MjQwMGZmZjgg
fSwKKyAgeyAweDEzMDAxZjM5LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYzYSwgMHgyNDAw
ZmZmOCB9LAorICB7IDB4MTMwMDFmM2IsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjNjLCAw
eDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWYzZCwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFm
M2UsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjNmLCAweDI0MDBmZmY4IH0sCisgIHsgMHgx
MzAwMWY0MCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmNDEsIDB4MTQwMDAwMDggfSwKKyAg
eyAweDEzMDAxZjQyLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY0MywgMHgxNDAwMDAwOCB9
LAorICB7IDB4MTMwMDFmNDQsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjQ1LCAweDE0MDAw
MDA4IH0sCisgIHsgMHgxMzAwMWY0OCwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmNDksIDB4
MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjRhLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWY0
YiwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmNGMsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEz
MDAxZjRkLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWY1MCwgMHgxNDAwMDAwMCB9LAorICB7
IDB4MTMwMDFmNTEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjUyLCAweDE0MDAwMDAwIH0s
CisgIHsgMHgxMzAwMWY1MywgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmNTQsIDB4MTQwMDAw
MDAgfSwKKyAgeyAweDEzMDAxZjU1LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY1NiwgMHgx
NDAwMDAwMCB9LAorICB7IDB4MTMwMDFmNTcsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjU5
LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWY1YiwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMw
MDFmNWQsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjVmLCAweDI0MDBmZmY4IH0sCisgIHsg
MHgxMzAwMWY2MCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmNjEsIDB4MTQwMDAwMDggfSwK
KyAgeyAweDEzMDAxZjYyLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY2MywgMHgxNDAwMDAw
OCB9LAorICB7IDB4MTMwMDFmNjQsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjY1LCAweDE0
MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY2NiwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmNjcs
IDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjY4LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAw
MWY2OSwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmNmEsIDB4MjQwMGZmZjggfSwKKyAgeyAw
eDEzMDAxZjZiLCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWY2YywgMHgyNDAwZmZmOCB9LAor
ICB7IDB4MTMwMDFmNmQsIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZjZlLCAweDI0MDBmZmY4
IH0sCisgIHsgMHgxMzAwMWY2ZiwgMHgyNDAwZmZmOCB9LAorICB7IDB4MTMwMDFmNzAsIDB4MTQw
MDAwNGEgfSwKKyAgeyAweDEzMDAxZjcxLCAweDE0MDAwMDRhIH0sCisgIHsgMHgxMzAwMWY3Miwg
MHgxNDAwMDA1NiB9LAorICB7IDB4MTMwMDFmNzMsIDB4MTQwMDAwNTYgfSwKKyAgeyAweDEzMDAx
Zjc0LCAweDE0MDAwMDU2IH0sCisgIHsgMHgxMzAwMWY3NSwgMHgxNDAwMDA1NiB9LAorICB7IDB4
MTMwMDFmNzYsIDB4MTQwMDAwNjQgfSwKKyAgeyAweDEzMDAxZjc3LCAweDE0MDAwMDY0IH0sCisg
IHsgMHgxMzAwMWY3OCwgMHgxNDAwMDA4MCB9LAorICB7IDB4MTMwMDFmNzksIDB4MTQwMDAwODAg
fSwKKyAgeyAweDEzMDAxZjdhLCAweDE0MDAwMDcwIH0sCisgIHsgMHgxMzAwMWY3YiwgMHgxNDAw
MDA3MCB9LAorICB7IDB4MTMwMDFmN2MsIDB4MTQwMDAwN2UgfSwKKyAgeyAweDEzMDAxZjdkLCAw
eDE0MDAwMDdlIH0sCisgIHsgMHgxMzAwMWY4MCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFm
ODEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjgyLCAweDE0MDAwMDA4IH0sCisgIHsgMHgx
MzAwMWY4MywgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmODQsIDB4MTQwMDAwMDggfSwKKyAg
eyAweDEzMDAxZjg1LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY4NiwgMHgxNDAwMDAwOCB9
LAorICB7IDB4MTMwMDFmODcsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjg4LCAweDIwMDBm
ZmY4IH0sCisgIHsgMHgxMzAwMWY4OSwgMHgyMDAwZmZmOCB9LAorICB7IDB4MTMwMDFmOGEsIDB4
MjAwMGZmZjggfSwKKyAgeyAweDEzMDAxZjhiLCAweDIwMDBmZmY4IH0sCisgIHsgMHgxMzAwMWY4
YywgMHgyMDAwZmZmOCB9LAorICB7IDB4MTMwMDFmOGQsIDB4MjAwMGZmZjggfSwKKyAgeyAweDEz
MDAxZjhlLCAweDIwMDBmZmY4IH0sCisgIHsgMHgxMzAwMWY4ZiwgMHgyMDAwZmZmOCB9LAorICB7
IDB4MTMwMDFmOTAsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjkxLCAweDE0MDAwMDA4IH0s
CisgIHsgMHgxMzAwMWY5MiwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmOTMsIDB4MTQwMDAw
MDggfSwKKyAgeyAweDEzMDAxZjk0LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY5NSwgMHgx
NDAwMDAwOCB9LAorICB7IDB4MTMwMDFmOTYsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZjk3
LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWY5OCwgMHgyMDAwZmZmOCB9LAorICB7IDB4MTMw
MDFmOTksIDB4MjAwMGZmZjggfSwKKyAgeyAweDEzMDAxZjlhLCAweDIwMDBmZmY4IH0sCisgIHsg
MHgxMzAwMWY5YiwgMHgyMDAwZmZmOCB9LAorICB7IDB4MTMwMDFmOWMsIDB4MjAwMGZmZjggfSwK
KyAgeyAweDEzMDAxZjlkLCAweDIwMDBmZmY4IH0sCisgIHsgMHgxMzAwMWY5ZSwgMHgyMDAwZmZm
OCB9LAorICB7IDB4MTMwMDFmOWYsIDB4MjAwMGZmZjggfSwKKyAgeyAweDEzMDAxZmEwLCAweDE0
MDAwMDA4IH0sCisgIHsgMHgxMzAwMWZhMSwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmYTIs
IDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZmEzLCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAw
MWZhNCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMwMDFmYTUsIDB4MTQwMDAwMDggfSwKKyAgeyAw
eDEzMDAxZmE2LCAweDE0MDAwMDA4IH0sCisgIHsgMHgxMzAwMWZhNywgMHgxNDAwMDAwOCB9LAor
ICB7IDB4MTMwMDFmYTgsIDB4MjAwMGZmZjggfSwKKyAgeyAweDEzMDAxZmE5LCAweDIwMDBmZmY4
IH0sCisgIHsgMHgxMzAwMWZhYSwgMHgyMDAwZmZmOCB9LAorICB7IDB4MTMwMDFmYWIsIDB4MjAw
MGZmZjggfSwKKyAgeyAweDEzMDAxZmFjLCAweDIwMDBmZmY4IH0sCisgIHsgMHgxMzAwMWZhZCwg
MHgyMDAwZmZmOCB9LAorICB7IDB4MTMwMDFmYWUsIDB4MjAwMGZmZjggfSwKKyAgeyAweDEzMDAx
ZmFmLCAweDIwMDBmZmY4IH0sCisgIHsgMHgxMzAwMWZiMCwgMHgxNDAwMDAwOCB9LAorICB7IDB4
MTMwMDFmYjEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzMDAxZmIyLCAweDE0MDAwMDAwIH0sCisg
IHsgMHgxMzAwMWZiMywgMHgxNDAwMDAwOSB9LAorICB7IDB4MTMwMDFmYjQsIDB4MTQwMDAwMDAg
fSwKKyAgeyAweDEzODAxZmI2LCAweDE0MDAwMDAxIH0sCisgIHsgMHgxMzAwMWZiOCwgMHgyNDAw
ZmZmOCB9LAorICB7IDB4MTMwMDFmYjksIDB4MjQwMGZmZjggfSwKKyAgeyAweDEzMDAxZmJhLCAw
eDI0MDBmZmI2IH0sCisgIHsgMHgxMzAwMWZiYiwgMHgyNDAwZmZiNiB9LAorICB7IDB4MTMwMDFm
YmMsIDB4MjAwMGZmZjcgfSwKKyAgeyAweDEzMDAxZmJkLCAweDYwMDAwMDAwIH0sCisgIHsgMHgx
MzAwMWZiZSwgMHgxNDAwZTNkYiB9LAorICB7IDB4MTM4MDFmYmYsIDB4NjAwMDAwMDIgfSwKKyAg
eyAweDEzMDAxZmMyLCAweDE0MDAwMDAwIH0sCisgIHsgMHgxMzAwMWZjMywgMHgxNDAwMDAwOSB9
LAorICB7IDB4MTMwMDFmYzQsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDEzODAxZmM2LCAweDE0MDAw
MDAxIH0sCisgIHsgMHgxMzAwMWZjOCwgMHgyNDAwZmZhYSB9LAorICB7IDB4MTMwMDFmYzksIDB4
MjQwMGZmYWEgfSwKKyAgeyAweDEzMDAxZmNhLCAweDI0MDBmZmFhIH0sCisgIHsgMHgxMzAwMWZj
YiwgMHgyNDAwZmZhYSB9LAorICB7IDB4MTMwMDFmY2MsIDB4MjAwMGZmZjcgfSwKKyAgeyAweDEz
ODAxZmNkLCAweDYwMDAwMDAyIH0sCisgIHsgMHgxMzAwMWZkMCwgMHgxNDAwMDAwOCB9LAorICB7
IDB4MTMwMDFmZDEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzODAxZmQyLCAweDE0MDAwMDAxIH0s
CisgIHsgMHgxMzgwMWZkNiwgMHgxNDAwMDAwMSB9LAorICB7IDB4MTMwMDFmZDgsIDB4MjQwMGZm
ZjggfSwKKyAgeyAweDEzMDAxZmQ5LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWZkYSwgMHgy
NDAwZmY5YyB9LAorICB7IDB4MTMwMDFmZGIsIDB4MjQwMGZmOWMgfSwKKyAgeyAweDEzODAxZmRk
LCAweDYwMDAwMDAyIH0sCisgIHsgMHgxMzAwMWZlMCwgMHgxNDAwMDAwOCB9LAorICB7IDB4MTMw
MDFmZTEsIDB4MTQwMDAwMDggfSwKKyAgeyAweDEzODAxZmUyLCAweDE0MDAwMDAyIH0sCisgIHsg
MHgxMzAwMWZlNSwgMHgxNDAwMDAwNyB9LAorICB7IDB4MTM4MDFmZTYsIDB4MTQwMDAwMDEgfSwK
KyAgeyAweDEzMDAxZmU4LCAweDI0MDBmZmY4IH0sCisgIHsgMHgxMzAwMWZlOSwgMHgyNDAwZmZm
OCB9LAorICB7IDB4MTMwMDFmZWEsIDB4MjQwMGZmOTAgfSwKKyAgeyAweDEzMDAxZmViLCAweDI0
MDBmZjkwIH0sCisgIHsgMHgxMzAwMWZlYywgMHgyNDAwZmZmOSB9LAorICB7IDB4MTM4MDFmZWQs
IDB4NjAwMDAwMDIgfSwKKyAgeyAweDEzMDAxZmYyLCAweDE0MDAwMDAwIH0sCisgIHsgMHgxMzAw
MWZmMywgMHgxNDAwMDAwOSB9LAorICB7IDB4MTMwMDFmZjQsIDB4MTQwMDAwMDAgfSwKKyAgeyAw
eDEzODAxZmY2LCAweDE0MDAwMDAxIH0sCisgIHsgMHgxMzAwMWZmOCwgMHgyNDAwZmY4MCB9LAor
ICB7IDB4MTMwMDFmZjksIDB4MjQwMGZmODAgfSwKKyAgeyAweDEzMDAxZmZhLCAweDI0MDBmZjgy
IH0sCisgIHsgMHgxMzAwMWZmYiwgMHgyNDAwZmY4MiB9LAorICB7IDB4MTMwMDFmZmMsIDB4MjAw
MGZmZjcgfSwKKyAgeyAweDEzODAxZmZkLCAweDYwMDAwMDAxIH0sCisgIHsgMHgwOTgwMjAwMCwg
MHg3NDAwMDAwYSB9LAorICB7IDB4MDk4MDIwMGIsIDB4MDQwMDAwMDQgfSwKKyAgeyAweDA5ODAy
MDEwLCAweDQ0MDAwMDA1IH0sCisgIHsgMHgwOTgwMjAxNiwgMHg1NDAwMDAwMSB9LAorICB7IDB4
MDkwMDIwMTgsIDB4NTAwMDAwMDAgfSwKKyAgeyAweDA5MDAyMDE5LCAweDRjMDAwMDAwIH0sCisg
IHsgMHgwOTAwMjAxYSwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDk4MDIwMWIsIDB4NTAwMDAwMDEg
fSwKKyAgeyAweDA5MDAyMDFkLCAweDRjMDAwMDAwIH0sCisgIHsgMHgwOTAwMjAxZSwgMHg1ODAw
MDAwMCB9LAorICB7IDB4MDkwMDIwMWYsIDB4NTAwMDAwMDAgfSwKKyAgeyAweDA5ODAyMDIwLCAw
eDU0MDAwMDA3IH0sCisgIHsgMHgwOTAwMjAyOCwgMHg2YzAwMDAwMCB9LAorICB7IDB4MDkwMDIw
MjksIDB4NzAwMDAwMDAgfSwKKyAgeyAweDA5ODAyMDJhLCAweDA0MDAwMDA0IH0sCisgIHsgMHgw
OTAwMjAyZiwgMHg3NDAwMDAwMCB9LAorICB7IDB4MDk4MDIwMzAsIDB4NTQwMDAwMDggfSwKKyAg
eyAweDA5MDAyMDM5LCAweDUwMDAwMDAwIH0sCisgIHsgMHgwOTAwMjAzYSwgMHg0YzAwMDAwMCB9
LAorICB7IDB4MDk4MDIwM2IsIDB4NTQwMDAwMDMgfSwKKyAgeyAweDA5ODAyMDNmLCAweDQwMDAw
MDAxIH0sCisgIHsgMHgwOTgwMjA0MSwgMHg1NDAwMDAwMiB9LAorICB7IDB4MDkwMDIwNDQsIDB4
NjQwMDAwMDAgfSwKKyAgeyAweDA5MDAyMDQ1LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjA0
NiwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDk4MDIwNDcsIDB4NTQwMDAwMGEgfSwKKyAgeyAweDA5
MDAyMDUyLCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTAwMjA1MywgMHg1NDAwMDAwMCB9LAorICB7
IDB4MDkwMDIwNTQsIDB4NDAwMDAwMDAgfSwKKyAgeyAweDA5ODAyMDU1LCAweDU0MDAwMDA5IH0s
CisgIHsgMHgwOTAwMjA1ZiwgMHg3NDAwMDAwMCB9LAorICB7IDB4MDk4MDIwNjAsIDB4MDQwMDAw
MDMgfSwKKyAgeyAweDA5ODAyMDZhLCAweDA0MDAwMDA1IH0sCisgIHsgMHgwOTAwMjA3MCwgMHgz
YzAwMDAwMCB9LAorICB7IDB4MjEwMDIwNzEsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDA5ODAyMDc0
LCAweDNjMDAwMDA1IH0sCisgIHsgMHgwOTgwMjA3YSwgMHg2NDAwMDAwMiB9LAorICB7IDB4MDkw
MDIwN2QsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAyMDdlLCAweDQ4MDAwMDAwIH0sCisgIHsg
MHgyMTAwMjA3ZiwgMHgxNDAwMDAwMCB9LAorICB7IDB4MDk4MDIwODAsIDB4M2MwMDAwMDkgfSwK
KyAgeyAweDA5ODAyMDhhLCAweDY0MDAwMDAyIH0sCisgIHsgMHgwOTAwMjA4ZCwgMHg1ODAwMDAw
MCB9LAorICB7IDB4MDkwMDIwOGUsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDIxODAyMDkwLCAweDE4
MDAwMDA0IH0sCisgIHsgMHgwOTgwMjBhMCwgMHg1YzAwMDAxNSB9LAorICB7IDB4MWI4MDIwZDAs
IDB4MzAwMDAwMGMgfSwKKyAgeyAweDFiODAyMGRkLCAweDJjMDAwMDAzIH0sCisgIHsgMHgxYjAw
MjBlMSwgMHgzMDAwMDAwMCB9LAorICB7IDB4MWI4MDIwZTIsIDB4MmMwMDAwMDIgfSwKKyAgeyAw
eDFiODAyMGU1LCAweDMwMDAwMDA2IH0sCisgIHsgMHgwOTgwMjEwMCwgMHg2ODAwMDAwMSB9LAor
ICB7IDB4MDkwMDIxMDIsIDB4MjQwMDAwMDAgfSwKKyAgeyAweDA5ODAyMTAzLCAweDY4MDAwMDAz
IH0sCisgIHsgMHgwOTAwMjEwNywgMHgyNDAwMDAwMCB9LAorICB7IDB4MDk4MDIxMDgsIDB4Njgw
MDAwMDEgfSwKKyAgeyAweDA5MDAyMTBhLCAweDE0MDAwMDAwIH0sCisgIHsgMHgwOTgwMjEwYiwg
MHgyNDAwMDAwMiB9LAorICB7IDB4MDk4MDIxMGUsIDB4MTQwMDAwMDEgfSwKKyAgeyAweDA5ODAy
MTEwLCAweDI0MDAwMDAyIH0sCisgIHsgMHgwOTAwMjExMywgMHgxNDAwMDAwMCB9LAorICB7IDB4
MDkwMDIxMTQsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDA5MDAyMTE1LCAweDI0MDAwMDAwIH0sCisg
IHsgMHgwOTgwMjExNiwgMHg2ODAwMDAwMiB9LAorICB7IDB4MDk4MDIxMTksIDB4MjQwMDAwMDQg
fSwKKyAgeyAweDA5ODAyMTFlLCAweDY4MDAwMDA1IH0sCisgIHsgMHgwOTAwMjEyNCwgMHgyNDAw
MDAwMCB9LAorICB7IDB4MDkwMDIxMjUsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDEzMDAyMTI2LCAw
eDI0MDBlMmEzIH0sCisgIHsgMHgwOTAwMjEyNywgMHg2ODAwMDAwMCB9LAorICB7IDB4MDkwMDIx
MjgsIDB4MjQwMDAwMDAgfSwKKyAgeyAweDA5MDAyMTI5LCAweDY4MDAwMDAwIH0sCisgIHsgMHgy
MTAwMjEyYSwgMHgyNDAwZGY0MSB9LAorICB7IDB4MjEwMDIxMmIsIDB4MjQwMGRmYmEgfSwKKyAg
eyAweDA5ODAyMTJjLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwOTAwMjEyZSwgMHg2ODAwMDAwMCB9
LAorICB7IDB4MDkwMDIxMmYsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDA5ODAyMTMwLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgwOTAwMjEzMiwgMHg2ODAwMDAwMCB9LAorICB7IDB4MDkwMDIxMzMsIDB4
MjQwMDAwMDAgfSwKKyAgeyAweDA5MDAyMTM0LCAweDE0MDAwMDAwIH0sCisgIHsgMHgwOTgwMjEz
NSwgMHgxYzAwMDAwMyB9LAorICB7IDB4MDkwMDIxMzksIDB4MTQwMDAwMDAgfSwKKyAgeyAweDA5
ODAyMTNhLCAweDY4MDAwMDAxIH0sCisgIHsgMHgwOTgwMjEzYywgMHgxNDAwMDAwMSB9LAorICB7
IDB4MDk4MDIxM2UsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDA5ODAyMTQwLCAweDY0MDAwMDA0IH0s
CisgIHsgMHgwOTAwMjE0NSwgMHgyNDAwMDAwMCB9LAorICB7IDB4MDk4MDIxNDYsIDB4MTQwMDAw
MDMgfSwKKyAgeyAweDA5MDAyMTRhLCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjE0YiwgMHg2
NDAwMDAwMCB9LAorICB7IDB4MDkwMDIxNGMsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDA5ODAyMTUz
LCAweDNjMDAwMDBjIH0sCisgIHsgMHgwOTAwMjE2MCwgMHgzODAwMDAxMCB9LAorICB7IDB4MDkw
MDIxNjEsIDB4MzgwMDAwMTAgfSwKKyAgeyAweDA5MDAyMTYyLCAweDM4MDAwMDEwIH0sCisgIHsg
MHgwOTAwMjE2MywgMHgzODAwMDAxMCB9LAorICB7IDB4MDkwMDIxNjQsIDB4MzgwMDAwMTAgfSwK
KyAgeyAweDA5MDAyMTY1LCAweDM4MDAwMDEwIH0sCisgIHsgMHgwOTAwMjE2NiwgMHgzODAwMDAx
MCB9LAorICB7IDB4MDkwMDIxNjcsIDB4MzgwMDAwMTAgfSwKKyAgeyAweDA5MDAyMTY4LCAweDM4
MDAwMDEwIH0sCisgIHsgMHgwOTAwMjE2OSwgMHgzODAwMDAxMCB9LAorICB7IDB4MDkwMDIxNmEs
IDB4MzgwMDAwMTAgfSwKKyAgeyAweDA5MDAyMTZiLCAweDM4MDAwMDEwIH0sCisgIHsgMHgwOTAw
MjE2YywgMHgzODAwMDAxMCB9LAorICB7IDB4MDkwMDIxNmQsIDB4MzgwMDAwMTAgfSwKKyAgeyAw
eDA5MDAyMTZlLCAweDM4MDAwMDEwIH0sCisgIHsgMHgwOTAwMjE2ZiwgMHgzODAwMDAxMCB9LAor
ICB7IDB4MDkwMDIxNzAsIDB4MzgwMGZmZjAgfSwKKyAgeyAweDA5MDAyMTcxLCAweDM4MDBmZmYw
IH0sCisgIHsgMHgwOTAwMjE3MiwgMHgzODAwZmZmMCB9LAorICB7IDB4MDkwMDIxNzMsIDB4Mzgw
MGZmZjAgfSwKKyAgeyAweDA5MDAyMTc0LCAweDM4MDBmZmYwIH0sCisgIHsgMHgwOTAwMjE3NSwg
MHgzODAwZmZmMCB9LAorICB7IDB4MDkwMDIxNzYsIDB4MzgwMGZmZjAgfSwKKyAgeyAweDA5MDAy
MTc3LCAweDM4MDBmZmYwIH0sCisgIHsgMHgwOTAwMjE3OCwgMHgzODAwZmZmMCB9LAorICB7IDB4
MDkwMDIxNzksIDB4MzgwMGZmZjAgfSwKKyAgeyAweDA5MDAyMTdhLCAweDM4MDBmZmYwIH0sCisg
IHsgMHgwOTAwMjE3YiwgMHgzODAwZmZmMCB9LAorICB7IDB4MDkwMDIxN2MsIDB4MzgwMGZmZjAg
fSwKKyAgeyAweDA5MDAyMTdkLCAweDM4MDBmZmYwIH0sCisgIHsgMHgwOTAwMjE3ZSwgMHgzODAw
ZmZmMCB9LAorICB7IDB4MDkwMDIxN2YsIDB4MzgwMGZmZjAgfSwKKyAgeyAweDA5ODAyMTgwLCAw
eDM4MDAwMDAzIH0sCisgIHsgMHgwOTgwMjE5MCwgMHg2NDAwMDAwNCB9LAorICB7IDB4MDk4MDIx
OTUsIDB4NjgwMDAwMDQgfSwKKyAgeyAweDA5ODAyMTlhLCAweDY0MDAwMDAxIH0sCisgIHsgMHgw
OTgwMjE5YywgMHg2ODAwMDAwMyB9LAorICB7IDB4MDkwMDIxYTAsIDB4NjQwMDAwMDAgfSwKKyAg
eyAweDA5ODAyMWExLCAweDY4MDAwMDAxIH0sCisgIHsgMHgwOTAwMjFhMywgMHg2NDAwMDAwMCB9
LAorICB7IDB4MDk4MDIxYTQsIDB4NjgwMDAwMDEgfSwKKyAgeyAweDA5MDAyMWE2LCAweDY0MDAw
MDAwIH0sCisgIHsgMHgwOTgwMjFhNywgMHg2ODAwMDAwNiB9LAorICB7IDB4MDkwMDIxYWUsIDB4
NjQwMDAwMDAgfSwKKyAgeyAweDA5ODAyMWFmLCAweDY4MDAwMDFlIH0sCisgIHsgMHgwOTgwMjFj
ZSwgMHg2NDAwMDAwMSB9LAorICB7IDB4MDk4MDIxZDAsIDB4NjgwMDAwMDEgfSwKKyAgeyAweDA5
MDAyMWQyLCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTAwMjFkMywgMHg2ODAwMDAwMCB9LAorICB7
IDB4MDkwMDIxZDQsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5ODAyMWQ1LCAweDY4MDAwMDFlIH0s
CisgIHsgMHgwOTgwMjFmNCwgMHg2NDAwMDEwYiB9LAorICB7IDB4MDk4MDIzMDAsIDB4NjgwMDAw
MDcgfSwKKyAgeyAweDA5ODAyMzA4LCAweDY0MDAwMDAzIH0sCisgIHsgMHgwOTgwMjMwYywgMHg2
ODAwMDAxMyB9LAorICB7IDB4MDk4MDIzMjAsIDB4NjQwMDAwMDEgfSwKKyAgeyAweDA5ODAyMzIy
LCAweDY4MDAwMDA2IH0sCisgIHsgMHgwOTAwMjMyOSwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkw
MDIzMmEsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5ODAyMzJiLCAweDY4MDAwMDUwIH0sCisgIHsg
MHgwOTAwMjM3YywgMHg2NDAwMDAwMCB9LAorICB7IDB4MDk4MDIzN2QsIDB4NjgwMDAwMWQgfSwK
KyAgeyAweDA5ODAyMzliLCAweDY0MDAwMDE4IH0sCisgIHsgMHgwOTAwMjNiNCwgMHg1ODAwMDAw
MCB9LAorICB7IDB4MDkwMDIzYjUsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAyM2I2LCAweDU0
MDAwMDAwIH0sCisgIHsgMHgwOTgwMjNiNywgMHg2ODAwMDAyNCB9LAorICB7IDB4MDk4MDI0MDAs
IDB4NjgwMDAwMjYgfSwKKyAgeyAweDA5ODAyNDQwLCAweDY4MDAwMDBhIH0sCisgIHsgMHgwOTgw
MjQ2MCwgMHgzYzAwMDAzYiB9LAorICB7IDB4MDk4MDI0OWMsIDB4NjgwMDAwMTkgfSwKKyAgeyAw
eDA5MDAyNGI2LCAweDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRiNywgMHg2ODAwMDAxYSB9LAor
ICB7IDB4MDkwMDI0YjgsIDB4NjgwMDAwMWEgfSwKKyAgeyAweDA5MDAyNGI5LCAweDY4MDAwMDFh
IH0sCisgIHsgMHgwOTAwMjRiYSwgMHg2ODAwMDAxYSB9LAorICB7IDB4MDkwMDI0YmIsIDB4Njgw
MDAwMWEgfSwKKyAgeyAweDA5MDAyNGJjLCAweDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRiZCwg
MHg2ODAwMDAxYSB9LAorICB7IDB4MDkwMDI0YmUsIDB4NjgwMDAwMWEgfSwKKyAgeyAweDA5MDAy
NGJmLCAweDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRjMCwgMHg2ODAwMDAxYSB9LAorICB7IDB4
MDkwMDI0YzEsIDB4NjgwMDAwMWEgfSwKKyAgeyAweDA5MDAyNGMyLCAweDY4MDAwMDFhIH0sCisg
IHsgMHgwOTAwMjRjMywgMHg2ODAwMDAxYSB9LAorICB7IDB4MDkwMDI0YzQsIDB4NjgwMDAwMWEg
fSwKKyAgeyAweDA5MDAyNGM1LCAweDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRjNiwgMHg2ODAw
MDAxYSB9LAorICB7IDB4MDkwMDI0YzcsIDB4NjgwMDAwMWEgfSwKKyAgeyAweDA5MDAyNGM4LCAw
eDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRjOSwgMHg2ODAwMDAxYSB9LAorICB7IDB4MDkwMDI0
Y2EsIDB4NjgwMDAwMWEgfSwKKyAgeyAweDA5MDAyNGNiLCAweDY4MDAwMDFhIH0sCisgIHsgMHgw
OTAwMjRjYywgMHg2ODAwMDAxYSB9LAorICB7IDB4MDkwMDI0Y2QsIDB4NjgwMDAwMWEgfSwKKyAg
eyAweDA5MDAyNGNlLCAweDY4MDAwMDFhIH0sCisgIHsgMHgwOTAwMjRjZiwgMHg2ODAwMDAxYSB9
LAorICB7IDB4MDkwMDI0ZDAsIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGQxLCAweDY4MDBm
ZmU2IH0sCisgIHsgMHgwOTAwMjRkMiwgMHg2ODAwZmZlNiB9LAorICB7IDB4MDkwMDI0ZDMsIDB4
NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGQ0LCAweDY4MDBmZmU2IH0sCisgIHsgMHgwOTAwMjRk
NSwgMHg2ODAwZmZlNiB9LAorICB7IDB4MDkwMDI0ZDYsIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5
MDAyNGQ3LCAweDY4MDBmZmU2IH0sCisgIHsgMHgwOTAwMjRkOCwgMHg2ODAwZmZlNiB9LAorICB7
IDB4MDkwMDI0ZDksIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGRhLCAweDY4MDBmZmU2IH0s
CisgIHsgMHgwOTAwMjRkYiwgMHg2ODAwZmZlNiB9LAorICB7IDB4MDkwMDI0ZGMsIDB4NjgwMGZm
ZTYgfSwKKyAgeyAweDA5MDAyNGRkLCAweDY4MDBmZmU2IH0sCisgIHsgMHgwOTAwMjRkZSwgMHg2
ODAwZmZlNiB9LAorICB7IDB4MDkwMDI0ZGYsIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGUw
LCAweDY4MDBmZmU2IH0sCisgIHsgMHgwOTAwMjRlMSwgMHg2ODAwZmZlNiB9LAorICB7IDB4MDkw
MDI0ZTIsIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGUzLCAweDY4MDBmZmU2IH0sCisgIHsg
MHgwOTAwMjRlNCwgMHg2ODAwZmZlNiB9LAorICB7IDB4MDkwMDI0ZTUsIDB4NjgwMGZmZTYgfSwK
KyAgeyAweDA5MDAyNGU2LCAweDY4MDBmZmU2IH0sCisgIHsgMHgwOTAwMjRlNywgMHg2ODAwZmZl
NiB9LAorICB7IDB4MDkwMDI0ZTgsIDB4NjgwMGZmZTYgfSwKKyAgeyAweDA5MDAyNGU5LCAweDY4
MDBmZmU2IH0sCisgIHsgMHgwOTgwMjRlYSwgMHgzYzAwMDAxNSB9LAorICB7IDB4MDk4MDI1MDAs
IDB4NjgwMDAwYjYgfSwKKyAgeyAweDA5MDAyNWI3LCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTgw
MjViOCwgMHg2ODAwMDAwOCB9LAorICB7IDB4MDkwMDI1YzEsIDB4NjQwMDAwMDAgfSwKKyAgeyAw
eDA5ODAyNWMyLCAweDY4MDAwMDM1IH0sCisgIHsgMHgwOTgwMjVmOCwgMHg2NDAwMDAwNyB9LAor
ICB7IDB4MDk4MDI2MDAsIDB4NjgwMDAwNmUgfSwKKyAgeyAweDA5MDAyNjZmLCAweDY0MDAwMDAw
IH0sCisgIHsgMHgwOTgwMjY3MCwgMHg2ODAwMDAyYyB9LAorICB7IDB4MDk4MDI2YTAsIDB4Njgw
MDAwMTEgfSwKKyAgeyAweDA5ODAyNzAxLCAweDY4MDAwMDAzIH0sCisgIHsgMHgwOTgwMjcwNiwg
MHg2ODAwMDAwMyB9LAorICB7IDB4MDk4MDI3MGMsIDB4NjgwMDAwMWIgfSwKKyAgeyAweDA5ODAy
NzI5LCAweDY4MDAwMDIyIH0sCisgIHsgMHgwOTAwMjc0ZCwgMHg2ODAwMDAwMCB9LAorICB7IDB4
MDk4MDI3NGYsIDB4NjgwMDAwMDMgfSwKKyAgeyAweDA5MDAyNzU2LCAweDY4MDAwMDAwIH0sCisg
IHsgMHgwOTgwMjc1OCwgMHg2ODAwMDAwNiB9LAorICB7IDB4MDk4MDI3NjEsIDB4NjgwMDAwMDYg
fSwKKyAgeyAweDA5MDAyNzY4LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjc2OSwgMHg0ODAw
MDAwMCB9LAorICB7IDB4MDkwMDI3NmEsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAyNzZiLCAw
eDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjc2YywgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDI3
NmQsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAyNzZlLCAweDU4MDAwMDAwIH0sCisgIHsgMHgw
OTAwMjc2ZiwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMDI3NzAsIDB4NTgwMDAwMDAgfSwKKyAg
eyAweDA5MDAyNzcxLCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjc3MiwgMHg1ODAwMDAwMCB9
LAorICB7IDB4MDkwMDI3NzMsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAyNzc0LCAweDU4MDAw
MDAwIH0sCisgIHsgMHgwOTAwMjc3NSwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDk4MDI3NzYsIDB4
M2MwMDAwMWQgfSwKKyAgeyAweDA5MDAyNzk0LCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTgwMjc5
OCwgMHg2ODAwMDAxNyB9LAorICB7IDB4MDk4MDI3YjEsIDB4NjgwMDAwMGQgfSwKKyAgeyAweDA5
ODAyN2MwLCAweDY0MDAwMDA0IH0sCisgIHsgMHgwOTAwMjdjNSwgMHg1ODAwMDAwMCB9LAorICB7
IDB4MDkwMDI3YzYsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5ODAyN2QwLCAweDY0MDAwMDE1IH0s
CisgIHsgMHgwOTAwMjdlNiwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDI3ZTcsIDB4NDgwMDAw
MDAgfSwKKyAgeyAweDA5MDAyN2U4LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjdlOSwgMHg0
ODAwMDAwMCB9LAorICB7IDB4MDkwMDI3ZWEsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAyN2Vi
LCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTgwMjdmMCwgMHg2NDAwMDAwZiB9LAorICB7IDB4MDQ4
MDI4MDAsIDB4NjgwMDAwZmYgfSwKKyAgeyAweDA5ODAyOTAwLCAweDY0MDAwMDgyIH0sCisgIHsg
MHgwOTAwMjk4MywgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5ODQsIDB4NDgwMDAwMDAgfSwK
KyAgeyAweDA5MDAyOTg1LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjk4NiwgMHg0ODAwMDAw
MCB9LAorICB7IDB4MDkwMDI5ODcsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAyOTg4LCAweDQ4
MDAwMDAwIH0sCisgIHsgMHgwOTAwMjk4OSwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5OGEs
IDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAyOThiLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAw
Mjk4YywgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5OGQsIDB4NTgwMDAwMDAgfSwKKyAgeyAw
eDA5MDAyOThlLCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjk4ZiwgMHg1ODAwMDAwMCB9LAor
ICB7IDB4MDkwMDI5OTAsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAyOTkxLCAweDU4MDAwMDAw
IH0sCisgIHsgMHgwOTAwMjk5MiwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5OTMsIDB4NTgw
MDAwMDAgfSwKKyAgeyAweDA5MDAyOTk0LCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjk5NSwg
MHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5OTYsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDAy
OTk3LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMjk5OCwgMHg0ODAwMDAwMCB9LAorICB7IDB4
MDk4MDI5OTksIDB4NjQwMDAwM2UgfSwKKyAgeyAweDA5MDAyOWQ4LCAweDU4MDAwMDAwIH0sCisg
IHsgMHgwOTAwMjlkOSwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMDI5ZGEsIDB4NTgwMDAwMDAg
fSwKKyAgeyAweDA5MDAyOWRiLCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTgwMjlkYywgMHg2NDAw
MDAxZiB9LAorICB7IDB4MDkwMDI5ZmMsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAyOWZkLCAw
eDQ4MDAwMDAwIH0sCisgIHsgMHgwOTgwMjlmZSwgMHg2NDAwMDEwMSB9LAorICB7IDB4MDk4MDJi
MDAsIDB4NjgwMDAwMTMgfSwKKyAgeyAweDExMDAyYzAwLCAweDI0MDAwMDMwIH0sCisgIHsgMHgx
MTAwMmMwMSwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMDIsIDB4MjQwMDAwMzAgfSwKKyAg
eyAweDExMDAyYzAzLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMwNCwgMHgyNDAwMDAzMCB9
LAorICB7IDB4MTEwMDJjMDUsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzA2LCAweDI0MDAw
MDMwIH0sCisgIHsgMHgxMTAwMmMwNywgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMDgsIDB4
MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzA5LCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMw
YSwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMGIsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDEx
MDAyYzBjLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMwZCwgMHgyNDAwMDAzMCB9LAorICB7
IDB4MTEwMDJjMGUsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzBmLCAweDI0MDAwMDMwIH0s
CisgIHsgMHgxMTAwMmMxMCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMTEsIDB4MjQwMDAw
MzAgfSwKKyAgeyAweDExMDAyYzEyLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMxMywgMHgy
NDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMTQsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzE1
LCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMxNiwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEw
MDJjMTcsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzE4LCAweDI0MDAwMDMwIH0sCisgIHsg
MHgxMTAwMmMxOSwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMWEsIDB4MjQwMDAwMzAgfSwK
KyAgeyAweDExMDAyYzFiLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMxYywgMHgyNDAwMDAz
MCB9LAorICB7IDB4MTEwMDJjMWQsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzFlLCAweDI0
MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMxZiwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMjAs
IDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzIxLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAw
MmMyMiwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMjMsIDB4MjQwMDAwMzAgfSwKKyAgeyAw
eDExMDAyYzI0LCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMyNSwgMHgyNDAwMDAzMCB9LAor
ICB7IDB4MTEwMDJjMjYsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAyYzI3LCAweDI0MDAwMDMw
IH0sCisgIHsgMHgxMTAwMmMyOCwgMHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMjksIDB4MjQw
MDAwMzAgfSwKKyAgeyAweDExMDAyYzJhLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMyYiwg
MHgyNDAwMDAzMCB9LAorICB7IDB4MTEwMDJjMmMsIDB4MjQwMDAwMzAgfSwKKyAgeyAweDExMDAy
YzJkLCAweDI0MDAwMDMwIH0sCisgIHsgMHgxMTAwMmMyZSwgMHgyNDAwMDAzMCB9LAorICB7IDB4
MTEwMDJjMzAsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzMxLCAweDE0MDBmZmQwIH0sCisg
IHsgMHgxMTAwMmMzMiwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjMzMsIDB4MTQwMGZmZDAg
fSwKKyAgeyAweDExMDAyYzM0LCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmMzNSwgMHgxNDAw
ZmZkMCB9LAorICB7IDB4MTEwMDJjMzYsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzM3LCAw
eDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmMzOCwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJj
MzksIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzNhLCAweDE0MDBmZmQwIH0sCisgIHsgMHgx
MTAwMmMzYiwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjM2MsIDB4MTQwMGZmZDAgfSwKKyAg
eyAweDExMDAyYzNkLCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmMzZSwgMHgxNDAwZmZkMCB9
LAorICB7IDB4MTEwMDJjM2YsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzQwLCAweDE0MDBm
ZmQwIH0sCisgIHsgMHgxMTAwMmM0MSwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNDIsIDB4
MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzQzLCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM0
NCwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNDUsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDEx
MDAyYzQ2LCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM0NywgMHgxNDAwZmZkMCB9LAorICB7
IDB4MTEwMDJjNDgsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzQ5LCAweDE0MDBmZmQwIH0s
CisgIHsgMHgxMTAwMmM0YSwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNGIsIDB4MTQwMGZm
ZDAgfSwKKyAgeyAweDExMDAyYzRjLCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM0ZCwgMHgx
NDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNGUsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzRm
LCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM1MCwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEw
MDJjNTEsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzUyLCAweDE0MDBmZmQwIH0sCisgIHsg
MHgxMTAwMmM1MywgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNTQsIDB4MTQwMGZmZDAgfSwK
KyAgeyAweDExMDAyYzU1LCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM1NiwgMHgxNDAwZmZk
MCB9LAorICB7IDB4MTEwMDJjNTcsIDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzU4LCAweDE0
MDBmZmQwIH0sCisgIHsgMHgxMTAwMmM1OSwgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNWEs
IDB4MTQwMGZmZDAgfSwKKyAgeyAweDExMDAyYzViLCAweDE0MDBmZmQwIH0sCisgIHsgMHgxMTAw
MmM1YywgMHgxNDAwZmZkMCB9LAorICB7IDB4MTEwMDJjNWQsIDB4MTQwMGZmZDAgfSwKKyAgeyAw
eDExMDAyYzVlLCAweDE0MDBmZmQwIH0sCisgIHsgMHgwYTAwMmM4MCwgMHgyNDAwMDAwMSB9LAor
ICB7IDB4MGEwMDJjODEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyYzgyLCAweDI0MDAwMDAx
IH0sCisgIHsgMHgwYTAwMmM4MywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjODQsIDB4MjQw
MDAwMDEgfSwKKyAgeyAweDBhMDAyYzg1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmM4Niwg
MHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjODcsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAy
Yzg4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmM4OSwgMHgxNDAwZmZmZiB9LAorICB7IDB4
MGEwMDJjOGEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyYzhiLCAweDE0MDBmZmZmIH0sCisg
IHsgMHgwYTAwMmM4YywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjOGQsIDB4MTQwMGZmZmYg
fSwKKyAgeyAweDBhMDAyYzhlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmM4ZiwgMHgxNDAw
ZmZmZiB9LAorICB7IDB4MGEwMDJjOTAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyYzkxLCAw
eDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmM5MiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJj
OTMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyYzk0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgw
YTAwMmM5NSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjOTYsIDB4MjQwMDAwMDEgfSwKKyAg
eyAweDBhMDAyYzk3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmM5OCwgMHgyNDAwMDAwMSB9
LAorICB7IDB4MGEwMDJjOTksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyYzlhLCAweDI0MDAw
MDAxIH0sCisgIHsgMHgwYTAwMmM5YiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjOWMsIDB4
MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyYzlkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmM5
ZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjOWYsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBh
MDAyY2EwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNhMSwgMHgxNDAwZmZmZiB9LAorICB7
IDB4MGEwMDJjYTIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2EzLCAweDE0MDBmZmZmIH0s
CisgIHsgMHgwYTAwMmNhNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjYTUsIDB4MTQwMGZm
ZmYgfSwKKyAgeyAweDBhMDAyY2E2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNhNywgMHgx
NDAwZmZmZiB9LAorICB7IDB4MGEwMDJjYTgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2E5
LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNhYSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEw
MDJjYWIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2FjLCAweDI0MDAwMDAxIH0sCisgIHsg
MHgwYTAwMmNhZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjYWUsIDB4MjQwMDAwMDEgfSwK
KyAgeyAweDBhMDAyY2FmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNiMCwgMHgyNDAwMDAw
MSB9LAorICB7IDB4MGEwMDJjYjEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2IyLCAweDI0
MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNiMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjYjQs
IDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2I1LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAw
MmNiNiwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjYjcsIDB4MTQwMGZmZmYgfSwKKyAgeyAw
eDBhMDAyY2I4LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNiOSwgMHgxNDAwZmZmZiB9LAor
ICB7IDB4MGEwMDJjYmEsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2JiLCAweDE0MDBmZmZm
IH0sCisgIHsgMHgwYTAwMmNiYywgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjYmQsIDB4MTQw
MGZmZmYgfSwKKyAgeyAweDBhMDAyY2JlLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNiZiwg
MHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjYzAsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAy
Y2MxLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNjMiwgMHgyNDAwMDAwMSB9LAorICB7IDB4
MGEwMDJjYzMsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2M0LCAweDI0MDAwMDAxIH0sCisg
IHsgMHgwYTAwMmNjNSwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjYzYsIDB4MjQwMDAwMDEg
fSwKKyAgeyAweDBhMDAyY2M3LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNjOCwgMHgyNDAw
MDAwMSB9LAorICB7IDB4MGEwMDJjYzksIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2NhLCAw
eDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNjYiwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJj
Y2MsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2NkLCAweDE0MDBmZmZmIH0sCisgIHsgMHgw
YTAwMmNjZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjY2YsIDB4MTQwMGZmZmYgfSwKKyAg
eyAweDBhMDAyY2QwLCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNkMSwgMHgxNDAwZmZmZiB9
LAorICB7IDB4MGEwMDJjZDIsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBhMDAyY2QzLCAweDE0MDBm
ZmZmIH0sCisgIHsgMHgwYTAwMmNkNCwgMHgyNDAwMDAwMSB9LAorICB7IDB4MGEwMDJjZDUsIDB4
MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2Q2LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNk
NywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjZDgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDBh
MDAyY2Q5LCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNkYSwgMHgyNDAwMDAwMSB9LAorICB7
IDB4MGEwMDJjZGIsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2RjLCAweDI0MDAwMDAxIH0s
CisgIHsgMHgwYTAwMmNkZCwgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEwMDJjZGUsIDB4MjQwMDAw
MDEgfSwKKyAgeyAweDBhMDAyY2RmLCAweDE0MDBmZmZmIH0sCisgIHsgMHgwYTAwMmNlMCwgMHgy
NDAwMDAwMSB9LAorICB7IDB4MGEwMDJjZTEsIDB4MTQwMGZmZmYgfSwKKyAgeyAweDBhMDAyY2Uy
LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwYTAwMmNlMywgMHgxNDAwZmZmZiB9LAorICB7IDB4MGEw
MDJjZTQsIDB4MTQwMDAwMDAgfSwKKyAgeyAweDBhODAyY2U1LCAweDY4MDAwMDA1IH0sCisgIHsg
MHgwYTgwMmNmOSwgMHg1NDAwMDAwMyB9LAorICB7IDB4MGEwMDJjZmQsIDB4M2MwMDAwMDAgfSwK
KyAgeyAweDBhODAyY2ZlLCAweDU0MDAwMDAxIH0sCisgIHsgMHgxMDAwMmQwMCwgMHgxNDAwZTNh
MCB9LAorICB7IDB4MTAwMDJkMDEsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDAyLCAweDE0
MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQwMywgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMDQs
IDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDA1LCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAw
MmQwNiwgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMDcsIDB4MTQwMGUzYTAgfSwKKyAgeyAw
eDEwMDAyZDA4LCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQwOSwgMHgxNDAwZTNhMCB9LAor
ICB7IDB4MTAwMDJkMGEsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDBiLCAweDE0MDBlM2Ew
IH0sCisgIHsgMHgxMDAwMmQwYywgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMGQsIDB4MTQw
MGUzYTAgfSwKKyAgeyAweDEwMDAyZDBlLCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQwZiwg
MHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMTAsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAy
ZDExLCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQxMiwgMHgxNDAwZTNhMCB9LAorICB7IDB4
MTAwMDJkMTMsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDE0LCAweDE0MDBlM2EwIH0sCisg
IHsgMHgxMDAwMmQxNSwgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMTYsIDB4MTQwMGUzYTAg
fSwKKyAgeyAweDEwMDAyZDE3LCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQxOCwgMHgxNDAw
ZTNhMCB9LAorICB7IDB4MTAwMDJkMTksIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDFhLCAw
eDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQxYiwgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJk
MWMsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDFkLCAweDE0MDBlM2EwIH0sCisgIHsgMHgx
MDAwMmQxZSwgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMWYsIDB4MTQwMGUzYTAgfSwKKyAg
eyAweDEwMDAyZDIwLCAweDE0MDBlM2EwIH0sCisgIHsgMHgxMDAwMmQyMSwgMHgxNDAwZTNhMCB9
LAorICB7IDB4MTAwMDJkMjIsIDB4MTQwMGUzYTAgfSwKKyAgeyAweDEwMDAyZDIzLCAweDE0MDBl
M2EwIH0sCisgIHsgMHgxMDAwMmQyNCwgMHgxNDAwZTNhMCB9LAorICB7IDB4MTAwMDJkMjUsIDB4
MTQwMGUzYTAgfSwKKyAgeyAweDNhODAyZDMwLCAweDFjMDAwMDM1IH0sCisgIHsgMHgzYTAwMmQ2
ZiwgMHgxODAwMDAwMCB9LAorICB7IDB4MGY4MDJkODAsIDB4MWMwMDAwMTYgfSwKKyAgeyAweDBm
ODAyZGEwLCAweDFjMDAwMDA2IH0sCisgIHsgMHgwZjgwMmRhOCwgMHgxYzAwMDAwNiB9LAorICB7
IDB4MGY4MDJkYjAsIDB4MWMwMDAwMDYgfSwKKyAgeyAweDBmODAyZGI4LCAweDFjMDAwMDA2IH0s
CisgIHsgMHgwZjgwMmRjMCwgMHgxYzAwMDAwNiB9LAorICB7IDB4MGY4MDJkYzgsIDB4MWMwMDAw
MDYgfSwKKyAgeyAweDBmODAyZGQwLCAweDFjMDAwMDA2IH0sCisgIHsgMHgwZjgwMmRkOCwgMHgx
YzAwMDAwNiB9LAorICB7IDB4MDk4MDJlMDAsIDB4NTQwMDAwMDEgfSwKKyAgeyAweDA5MDAyZTAy
LCAweDUwMDAwMDAwIH0sCisgIHsgMHgwOTAwMmUwMywgMHg0YzAwMDAwMCB9LAorICB7IDB4MDkw
MDJlMDQsIDB4NTAwMDAwMDAgfSwKKyAgeyAweDA5MDAyZTA1LCAweDRjMDAwMDAwIH0sCisgIHsg
MHgwOTgwMmUwNiwgMHg1NDAwMDAwMiB9LAorICB7IDB4MDkwMDJlMDksIDB4NTAwMDAwMDAgfSwK
KyAgeyAweDA5MDAyZTBhLCAweDRjMDAwMDAwIH0sCisgIHsgMHgwOTAwMmUwYiwgMHg1NDAwMDAw
MCB9LAorICB7IDB4MDkwMDJlMGMsIDB4NTAwMDAwMDAgfSwKKyAgeyAweDA5MDAyZTBkLCAweDRj
MDAwMDAwIH0sCisgIHsgMHgwOTgwMmUwZSwgMHg1NDAwMDAwOCB9LAorICB7IDB4MDkwMDJlMTcs
IDB4NDQwMDAwMDAgfSwKKyAgeyAweDA5MDAyZTFjLCAweDUwMDAwMDAwIH0sCisgIHsgMHgwOTAw
MmUxZCwgMHg0YzAwMDAwMCB9LAorICB7IDB4MTY4MDJlODAsIDB4NjgwMDAwMTkgfSwKKyAgeyAw
eDE2ODAyZTliLCAweDY4MDAwMDU4IH0sCisgIHsgMHgxNjgwMmYwMCwgMHg2ODAwMDBkNSB9LAor
ICB7IDB4MDk4MDJmZjAsIDB4NjgwMDAwMGIgfSwKKyAgeyAweDA5MDAzMDAwLCAweDc0MDAwMDAw
IH0sCisgIHsgMHgwOTgwMzAwMSwgMHg1NDAwMDAwMiB9LAorICB7IDB4MDkwMDMwMDQsIDB4Njgw
MDAwMDAgfSwKKyAgeyAweDE2MDAzMDA1LCAweDE4MDAwMDAwIH0sCisgIHsgMHgwOTAwMzAwNiwg
MHgxYzAwMDAwMCB9LAorICB7IDB4MTYwMDMwMDcsIDB4MzgwMDAwMDAgfSwKKyAgeyAweDA5MDAz
MDA4LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMzAwOSwgMHg0ODAwMDAwMCB9LAorICB7IDB4
MDkwMDMwMGEsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAzMDBiLCAweDQ4MDAwMDAwIH0sCisg
IHsgMHgwOTAwMzAwYywgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDMwMGQsIDB4NDgwMDAwMDAg
fSwKKyAgeyAweDA5MDAzMDBlLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMzAwZiwgMHg0ODAw
MDAwMCB9LAorICB7IDB4MDkwMDMwMTAsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAzMDExLCAw
eDQ4MDAwMDAwIH0sCisgIHsgMHgwOTgwMzAxMiwgMHg2ODAwMDAwMSB9LAorICB7IDB4MDkwMDMw
MTQsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAzMDE1LCAweDQ4MDAwMDAwIH0sCisgIHsgMHgw
OTAwMzAxNiwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMDMwMTcsIDB4NDgwMDAwMDAgfSwKKyAg
eyAweDA5MDAzMDE4LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwMzAxOSwgMHg0ODAwMDAwMCB9
LAorICB7IDB4MDkwMDMwMWEsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDAzMDFiLCAweDQ4MDAw
MDAwIH0sCisgIHsgMHgwOTAwMzAxYywgMHg0NDAwMDAwMCB9LAorICB7IDB4MDkwMDMwMWQsIDB4
NTgwMDAwMDAgfSwKKyAgeyAweDA5ODAzMDFlLCAweDQ4MDAwMDAxIH0sCisgIHsgMHgwOTAwMzAy
MCwgMHg2ODAwMDAwMCB9LAorICB7IDB4MTY4MDMwMjEsIDB4MzgwMDAwMDggfSwKKyAgeyAweDFi
ODAzMDJhLCAweDMwMDAwMDA1IH0sCisgIHsgMHgwOTAwMzAzMCwgMHg0NDAwMDAwMCB9LAorICB7
IDB4MDk4MDMwMzEsIDB4MTgwMDAwMDQgfSwKKyAgeyAweDA5ODAzMDM2LCAweDY4MDAwMDAxIH0s
CisgIHsgMHgxNjgwMzAzOCwgMHgzODAwMDAwMiB9LAorICB7IDB4MTYwMDMwM2IsIDB4MTgwMDAw
MDAgfSwKKyAgeyAweDA5MDAzMDNjLCAweDFjMDAwMDAwIH0sCisgIHsgMHgwOTAwMzAzZCwgMHg1
NDAwMDAwMCB9LAorICB7IDB4MDk4MDMwM2UsIDB4NjgwMDAwMDEgfSwKKyAgeyAweDFhODAzMDQx
LCAweDFjMDAwMDU1IH0sCisgIHsgMHgxYjgwMzA5OSwgMHgzMDAwMDAwMSB9LAorICB7IDB4MDk4
MDMwOWIsIDB4NjAwMDAwMDEgfSwKKyAgeyAweDFhODAzMDlkLCAweDE4MDAwMDAxIH0sCisgIHsg
MHgxYTAwMzA5ZiwgMHgxYzAwMDAwMCB9LAorICB7IDB4MDkwMDMwYTAsIDB4NDQwMDAwMDAgfSwK
KyAgeyAweDFkODAzMGExLCAweDFjMDAwMDU5IH0sCisgIHsgMHgwOTAwMzBmYiwgMHg1NDAwMDAw
MCB9LAorICB7IDB4MDk4MDMwZmMsIDB4MTgwMDAwMDIgfSwKKyAgeyAweDFkMDAzMGZmLCAweDFj
MDAwMDAwIH0sCisgIHsgMHgwMzgwMzEwNSwgMHgxYzAwMDAyNyB9LAorICB7IDB4MTc4MDMxMzEs
IDB4MWMwMDAwNWQgfSwKKyAgeyAweDA5ODAzMTkwLCAweDY4MDAwMDAxIH0sCisgIHsgMHgwOTgw
MzE5MiwgMHgzYzAwMDAwMyB9LAorICB7IDB4MDk4MDMxOTYsIDB4NjgwMDAwMDkgfSwKKyAgeyAw
eDAzODAzMWEwLCAweDFjMDAwMDE3IH0sCisgIHsgMHgwOTgwMzFjMCwgMHg2ODAwMDAwZiB9LAor
ICB7IDB4MWQ4MDMxZjAsIDB4MWMwMDAwMGYgfSwKKyAgeyAweDE3ODAzMjAwLCAweDY4MDAwMDFl
IH0sCisgIHsgMHgwOTgwMzIyMCwgMHgzYzAwMDAwOSB9LAorICB7IDB4MDk4MDMyMmEsIDB4Njgw
MDAwMTkgfSwKKyAgeyAweDA5MDAzMjUwLCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTgwMzI1MSwg
MHgzYzAwMDAwZSB9LAorICB7IDB4MTc4MDMyNjAsIDB4NjgwMDAwMWYgfSwKKyAgeyAweDA5ODAz
MjgwLCAweDNjMDAwMDA5IH0sCisgIHsgMHgwOTgwMzI4YSwgMHg2ODAwMDAyNiB9LAorICB7IDB4
MDk4MDMyYjEsIDB4M2MwMDAwMGUgfSwKKyAgeyAweDA5ODAzMmMwLCAweDY4MDAwMDNlIH0sCisg
IHsgMHgwOTgwMzMwMCwgMHg2ODAwMDBmZiB9LAorICB7IDB4MTY4MDM0MDAsIDB4MWMwMDE5YjUg
fSwKKyAgeyAweDA5ODA0ZGMwLCAweDY4MDAwMDNmIH0sCisgIHsgMHgxNjgwNGUwMCwgMHgxYzAw
NTFiYiB9LAorICB7IDB4M2M4MGEwMDAsIDB4MWMwMDAwMTQgfSwKKyAgeyAweDNjMDBhMDE1LCAw
eDE4MDAwMDAwIH0sCisgIHsgMHgzYzgwYTAxNiwgMHgxYzAwMDQ3NiB9LAorICB7IDB4M2M4MGE0
OTAsIDB4NjgwMDAwMzYgfSwKKyAgeyAweDA5ODBhNzAwLCAweDYwMDAwMDE2IH0sCisgIHsgMHgz
MDgwYTgwMCwgMHgxYzAwMDAwMSB9LAorICB7IDB4MzAwMGE4MDIsIDB4MjgwMDAwMDAgfSwKKyAg
eyAweDMwODBhODAzLCAweDFjMDAwMDAyIH0sCisgIHsgMHgzMDAwYTgwNiwgMHgzMDAwMDAwMCB9
LAorICB7IDB4MzA4MGE4MDcsIDB4MWMwMDAwMDMgfSwKKyAgeyAweDMwMDBhODBiLCAweDMwMDAw
MDAwIH0sCisgIHsgMHgzMDgwYTgwYywgMHgxYzAwMDAxNiB9LAorICB7IDB4MzA4MGE4MjMsIDB4
MjgwMDAwMDEgfSwKKyAgeyAweDMwODBhODI1LCAweDMwMDAwMDAxIH0sCisgIHsgMHgzMDAwYTgy
NywgMHgyODAwMDAwMCB9LAorICB7IDB4MzA4MGE4MjgsIDB4NjgwMDAwMDMgfSwKKyAgeyAweDE3
ODBhYzAwLCAweDFjMDAyYmEzIH0sCisgIHsgMHgwOTgwZDgwMCwgMHgxMDAwMDM3ZiB9LAorICB7
IDB4MDk4MGRiODAsIDB4MTAwMDAwN2YgfSwKKyAgeyAweDA5ODBkYzAwLCAweDEwMDAwM2ZmIH0s
CisgIHsgMHgwOTgwZTAwMCwgMHgwYzAwMThmZiB9LAorICB7IDB4MTY4MGY5MDAsIDB4MWMwMDAx
MmQgfSwKKyAgeyAweDE2ODBmYTMwLCAweDFjMDAwMDNhIH0sCisgIHsgMHgxNjgwZmE3MCwgMHgx
YzAwMDA2OSB9LAorICB7IDB4MjE4MGZiMDAsIDB4MTQwMDAwMDYgfSwKKyAgeyAweDAxODBmYjEz
LCAweDE0MDAwMDA0IH0sCisgIHsgMHgxOTAwZmIxZCwgMHgxYzAwMDAwMCB9LAorICB7IDB4MTkw
MGZiMWUsIDB4MzAwMDAwMDAgfSwKKyAgeyAweDE5ODBmYjFmLCAweDFjMDAwMDA5IH0sCisgIHsg
MHgxOTAwZmIyOSwgMHg2NDAwMDAwMCB9LAorICB7IDB4MTk4MGZiMmEsIDB4MWMwMDAwMGMgfSwK
KyAgeyAweDE5ODBmYjM4LCAweDFjMDAwMDA0IH0sCisgIHsgMHgxOTAwZmIzZSwgMHgxYzAwMDAw
MCB9LAorICB7IDB4MTk4MGZiNDAsIDB4MWMwMDAwMDEgfSwKKyAgeyAweDE5ODBmYjQzLCAweDFj
MDAwMDAxIH0sCisgIHsgMHgxOTgwZmI0NiwgMHgxYzAwMDA2YiB9LAorICB7IDB4MDA4MGZiZDMs
IDB4MWMwMDAxNmEgfSwKKyAgeyAweDA5MDBmZDNlLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAw
ZmQzZiwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDA4MGZkNTAsIDB4MWMwMDAwM2YgfSwKKyAgeyAw
eDAwODBmZDkyLCAweDFjMDAwMDM1IH0sCisgIHsgMHgwMDgwZmRmMCwgMHgxYzAwMDAwYiB9LAor
ICB7IDB4MDAwMGZkZmMsIDB4NWMwMDAwMDAgfSwKKyAgeyAweDA5MDBmZGZkLCAweDY4MDAwMDAw
IH0sCisgIHsgMHgxYjgwZmUwMCwgMHgzMDAwMDAwZiB9LAorICB7IDB4MDk4MGZlMTAsIDB4NTQw
MDAwMDYgfSwKKyAgeyAweDA5MDBmZTE3LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmUxOCwg
MHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMGZlMTksIDB4NTQwMDAwMDAgfSwKKyAgeyAweDFiODBm
ZTIwLCAweDMwMDAwMDAzIH0sCisgIHsgMHgwOTAwZmUzMCwgMHg1NDAwMDAwMCB9LAorICB7IDB4
MDk4MGZlMzEsIDB4NDQwMDAwMDEgfSwKKyAgeyAweDA5ODBmZTMzLCAweDQwMDAwMDAxIH0sCisg
IHsgMHgwOTAwZmUzNSwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMGZlMzYsIDB4NDgwMDAwMDAg
fSwKKyAgeyAweDA5MDBmZTM3LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmUzOCwgMHg0ODAw
MDAwMCB9LAorICB7IDB4MDkwMGZlMzksIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDBmZTNhLCAw
eDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmUzYiwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMGZl
M2MsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDBmZTNkLCAweDU4MDAwMDAwIH0sCisgIHsgMHgw
OTAwZmUzZSwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMGZlM2YsIDB4NTgwMDAwMDAgfSwKKyAg
eyAweDA5MDBmZTQwLCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmU0MSwgMHg1ODAwMDAwMCB9
LAorICB7IDB4MDkwMGZlNDIsIDB4NDgwMDAwMDAgfSwKKyAgeyAweDA5MDBmZTQzLCAweDU4MDAw
MDAwIH0sCisgIHsgMHgwOTAwZmU0NCwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDk4MGZlNDUsIDB4
NTQwMDAwMDEgfSwKKyAgeyAweDA5MDBmZTQ3LCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmU0
OCwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDk4MGZlNDksIDB4NTQwMDAwMDMgfSwKKyAgeyAweDA5
ODBmZTRkLCAweDQwMDAwMDAyIH0sCisgIHsgMHgwOTgwZmU1MCwgMHg1NDAwMDAwMiB9LAorICB7
IDB4MDk4MGZlNTQsIDB4NTQwMDAwMDMgfSwKKyAgeyAweDA5MDBmZTU4LCAweDQ0MDAwMDAwIH0s
CisgIHsgMHgwOTAwZmU1OSwgMHg1ODAwMDAwMCB9LAorICB7IDB4MDkwMGZlNWEsIDB4NDgwMDAw
MDAgfSwKKyAgeyAweDA5MDBmZTViLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmU1YywgMHg0
ODAwMDAwMCB9LAorICB7IDB4MDkwMGZlNWQsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDBmZTVl
LCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTgwZmU1ZiwgMHg1NDAwMDAwMiB9LAorICB7IDB4MDkw
MGZlNjIsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5MDBmZTYzLCAweDQ0MDAwMDAwIH0sCisgIHsg
MHgwOTgwZmU2NCwgMHg2NDAwMDAwMiB9LAorICB7IDB4MDkwMGZlNjgsIDB4NTQwMDAwMDAgfSwK
KyAgeyAweDA5MDBmZTY5LCAweDVjMDAwMDAwIH0sCisgIHsgMHgwOTgwZmU2YSwgMHg1NDAwMDAw
MSB9LAorICB7IDB4MDA4MGZlNzAsIDB4MWMwMDAwMDQgfSwKKyAgeyAweDAwODBmZTc2LCAweDFj
MDAwMDg2IH0sCisgIHsgMHgwOTAwZmVmZiwgMHgwNDAwMDAwMCB9LAorICB7IDB4MDk4MGZmMDEs
IDB4NTQwMDAwMDIgfSwKKyAgeyAweDA5MDBmZjA0LCAweDVjMDAwMDAwIH0sCisgIHsgMHgwOTgw
ZmYwNSwgMHg1NDAwMDAwMiB9LAorICB7IDB4MDkwMGZmMDgsIDB4NTgwMDAwMDAgfSwKKyAgeyAw
eDA5MDBmZjA5LCAweDQ4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmYwYSwgMHg1NDAwMDAwMCB9LAor
ICB7IDB4MDkwMGZmMGIsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5MDBmZjBjLCAweDU0MDAwMDAw
IH0sCisgIHsgMHgwOTAwZmYwZCwgMHg0NDAwMDAwMCB9LAorICB7IDB4MDk4MGZmMGUsIDB4NTQw
MDAwMDEgfSwKKyAgeyAweDA5ODBmZjEwLCAweDM0MDAwMDA5IH0sCisgIHsgMHgwOTgwZmYxYSwg
MHg1NDAwMDAwMSB9LAorICB7IDB4MDk4MGZmMWMsIDB4NjQwMDAwMDIgfSwKKyAgeyAweDA5ODBm
ZjFmLCAweDU0MDAwMDAxIH0sCisgIHsgMHgyMTAwZmYyMSwgMHgyNDAwMDAyMCB9LAorICB7IDB4
MjEwMGZmMjIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDBmZjIzLCAweDI0MDAwMDIwIH0sCisg
IHsgMHgyMTAwZmYyNCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMGZmMjUsIDB4MjQwMDAwMjAg
fSwKKyAgeyAweDIxMDBmZjI2LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwZmYyNywgMHgyNDAw
MDAyMCB9LAorICB7IDB4MjEwMGZmMjgsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDBmZjI5LCAw
eDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwZmYyYSwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMGZm
MmIsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDBmZjJjLCAweDI0MDAwMDIwIH0sCisgIHsgMHgy
MTAwZmYyZCwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMGZmMmUsIDB4MjQwMDAwMjAgfSwKKyAg
eyAweDIxMDBmZjJmLCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwZmYzMCwgMHgyNDAwMDAyMCB9
LAorICB7IDB4MjEwMGZmMzEsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIxMDBmZjMyLCAweDI0MDAw
MDIwIH0sCisgIHsgMHgyMTAwZmYzMywgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMGZmMzQsIDB4
MjQwMDAwMjAgfSwKKyAgeyAweDIxMDBmZjM1LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwZmYz
NiwgMHgyNDAwMDAyMCB9LAorICB7IDB4MjEwMGZmMzcsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDIx
MDBmZjM4LCAweDI0MDAwMDIwIH0sCisgIHsgMHgyMTAwZmYzOSwgMHgyNDAwMDAyMCB9LAorICB7
IDB4MjEwMGZmM2EsIDB4MjQwMDAwMjAgfSwKKyAgeyAweDA5MDBmZjNiLCAweDU4MDAwMDAwIH0s
CisgIHsgMHgwOTAwZmYzYywgMHg1NDAwMDAwMCB9LAorICB7IDB4MDkwMGZmM2QsIDB4NDgwMDAw
MDAgfSwKKyAgeyAweDA5MDBmZjNlLCAweDYwMDAwMDAwIH0sCisgIHsgMHgwOTAwZmYzZiwgMHg0
MDAwMDAwMCB9LAorICB7IDB4MDkwMGZmNDAsIDB4NjAwMDAwMDAgfSwKKyAgeyAweDIxMDBmZjQx
LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY0MiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEw
MGZmNDMsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDBmZjQ0LCAweDE0MDBmZmUwIH0sCisgIHsg
MHgyMTAwZmY0NSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMGZmNDYsIDB4MTQwMGZmZTAgfSwK
KyAgeyAweDIxMDBmZjQ3LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY0OCwgMHgxNDAwZmZl
MCB9LAorICB7IDB4MjEwMGZmNDksIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDBmZjRhLCAweDE0
MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY0YiwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMGZmNGMs
IDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDBmZjRkLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAw
ZmY0ZSwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMGZmNGYsIDB4MTQwMGZmZTAgfSwKKyAgeyAw
eDIxMDBmZjUwLCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY1MSwgMHgxNDAwZmZlMCB9LAor
ICB7IDB4MjEwMGZmNTIsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDBmZjUzLCAweDE0MDBmZmUw
IH0sCisgIHsgMHgyMTAwZmY1NCwgMHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMGZmNTUsIDB4MTQw
MGZmZTAgfSwKKyAgeyAweDIxMDBmZjU2LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY1Nywg
MHgxNDAwZmZlMCB9LAorICB7IDB4MjEwMGZmNTgsIDB4MTQwMGZmZTAgfSwKKyAgeyAweDIxMDBm
ZjU5LCAweDE0MDBmZmUwIH0sCisgIHsgMHgyMTAwZmY1YSwgMHgxNDAwZmZlMCB9LAorICB7IDB4
MDkwMGZmNWIsIDB4NTgwMDAwMDAgfSwKKyAgeyAweDA5MDBmZjVjLCAweDY0MDAwMDAwIH0sCisg
IHsgMHgwOTAwZmY1ZCwgMHg0ODAwMDAwMCB9LAorICB7IDB4MDkwMGZmNWUsIDB4NjQwMDAwMDAg
fSwKKyAgeyAweDA5MDBmZjVmLCAweDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmY2MCwgMHg0ODAw
MDAwMCB9LAorICB7IDB4MDkwMGZmNjEsIDB4NTQwMDAwMDAgfSwKKyAgeyAweDA5MDBmZjYyLCAw
eDU4MDAwMDAwIH0sCisgIHsgMHgwOTAwZmY2MywgMHg0ODAwMDAwMCB9LAorICB7IDB4MDk4MGZm
NjQsIDB4NTQwMDAwMDEgfSwKKyAgeyAweDFkODBmZjY2LCAweDFjMDAwMDA5IH0sCisgIHsgMHgw
OTAwZmY3MCwgMHgxODAwMDAwMCB9LAorICB7IDB4MWQ4MGZmNzEsIDB4MWMwMDAwMmMgfSwKKyAg
eyAweDA5ODBmZjllLCAweDE4MDAwMDAxIH0sCisgIHsgMHgxNzgwZmZhMCwgMHgxYzAwMDAxZSB9
LAorICB7IDB4MTc4MGZmYzIsIDB4MWMwMDAwMDUgfSwKKyAgeyAweDE3ODBmZmNhLCAweDFjMDAw
MDA1IH0sCisgIHsgMHgxNzgwZmZkMiwgMHgxYzAwMDAwNSB9LAorICB7IDB4MTc4MGZmZGEsIDB4
MWMwMDAwMDIgfSwKKyAgeyAweDA5ODBmZmUwLCAweDVjMDAwMDAxIH0sCisgIHsgMHgwOTAwZmZl
MiwgMHg2NDAwMDAwMCB9LAorICB7IDB4MDkwMGZmZTMsIDB4NjAwMDAwMDAgfSwKKyAgeyAweDA5
MDBmZmU0LCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTgwZmZlNSwgMHg1YzAwMDAwMSB9LAorICB7
IDB4MDkwMGZmZTgsIDB4NjgwMDAwMDAgfSwKKyAgeyAweDA5ODBmZmU5LCAweDY0MDAwMDAzIH0s
CisgIHsgMHgwOTgwZmZlZCwgMHg2ODAwMDAwMSB9LAorICB7IDB4MDk4MGZmZjksIDB4MDQwMDAw
MDIgfSwKKyAgeyAweDA5ODBmZmZjLCAweDY4MDAwMDAxIH0sCisgIHsgMHgyMzgxMDAwMCwgMHgx
YzAwMDAwYiB9LAorICB7IDB4MjM4MTAwMGQsIDB4MWMwMDAwMTkgfSwKKyAgeyAweDIzODEwMDI4
LCAweDFjMDAwMDEyIH0sCisgIHsgMHgyMzgxMDAzYywgMHgxYzAwMDAwMSB9LAorICB7IDB4MjM4
MTAwM2YsIDB4MWMwMDAwMGUgfSwKKyAgeyAweDIzODEwMDUwLCAweDFjMDAwMDBkIH0sCisgIHsg
MHgyMzgxMDA4MCwgMHgxYzAwMDA3YSB9LAorICB7IDB4MDk4MTAxMDAsIDB4NTQwMDAwMDEgfSwK
KyAgeyAweDA5MDEwMTAyLCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTgxMDEwNywgMHgzYzAwMDAy
YyB9LAorICB7IDB4MDk4MTAxMzcsIDB4NjgwMDAwMDggfSwKKyAgeyAweDEzODEwMTQwLCAweDM4
MDAwMDM0IH0sCisgIHsgMHgxMzgxMDE3NSwgMHgzYzAwMDAwMyB9LAorICB7IDB4MTM4MTAxNzks
IDB4NjgwMDAwMTAgfSwKKyAgeyAweDEzMDEwMThhLCAweDNjMDAwMDAwIH0sCisgIHsgMHgyOTgx
MDMwMCwgMHgxYzAwMDAxZSB9LAorICB7IDB4Mjk4MTAzMjAsIDB4M2MwMDAwMDMgfSwKKyAgeyAw
eDEyODEwMzMwLCAweDFjMDAwMDE5IH0sCisgIHsgMHgxMjAxMDM0YSwgMHgzODAwMDAwMCB9LAor
ICB7IDB4M2I4MTAzODAsIDB4MWMwMDAwMWQgfSwKKyAgeyAweDNiMDEwMzlmLCAweDU0MDAwMDAw
IH0sCisgIHsgMHgyYTgxMDNhMCwgMHgxYzAwMDAyMyB9LAorICB7IDB4MmE4MTAzYzgsIDB4MWMw
MDAwMDcgfSwKKyAgeyAweDJhMDEwM2QwLCAweDY4MDAwMDAwIH0sCisgIHsgMHgyYTgxMDNkMSwg
MHgzODAwMDAwNCB9LAorICB7IDB4MGQwMTA0MDAsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEw
NDAxLCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQwMiwgMHgyNDAwMDAyOCB9LAorICB7IDB4
MGQwMTA0MDMsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDA0LCAweDI0MDAwMDI4IH0sCisg
IHsgMHgwZDAxMDQwNSwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MDYsIDB4MjQwMDAwMjgg
fSwKKyAgeyAweDBkMDEwNDA3LCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQwOCwgMHgyNDAw
MDAyOCB9LAorICB7IDB4MGQwMTA0MDksIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDBhLCAw
eDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQwYiwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0
MGMsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDBkLCAweDI0MDAwMDI4IH0sCisgIHsgMHgw
ZDAxMDQwZSwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MGYsIDB4MjQwMDAwMjggfSwKKyAg
eyAweDBkMDEwNDEwLCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQxMSwgMHgyNDAwMDAyOCB9
LAorICB7IDB4MGQwMTA0MTIsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDEzLCAweDI0MDAw
MDI4IH0sCisgIHsgMHgwZDAxMDQxNCwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MTUsIDB4
MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDE2LCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQx
NywgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MTgsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBk
MDEwNDE5LCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQxYSwgMHgyNDAwMDAyOCB9LAorICB7
IDB4MGQwMTA0MWIsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDFjLCAweDI0MDAwMDI4IH0s
CisgIHsgMHgwZDAxMDQxZCwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MWUsIDB4MjQwMDAw
MjggfSwKKyAgeyAweDBkMDEwNDFmLCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQyMCwgMHgy
NDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MjEsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDIy
LCAweDI0MDAwMDI4IH0sCisgIHsgMHgwZDAxMDQyMywgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQw
MTA0MjQsIDB4MjQwMDAwMjggfSwKKyAgeyAweDBkMDEwNDI1LCAweDI0MDAwMDI4IH0sCisgIHsg
MHgwZDAxMDQyNiwgMHgyNDAwMDAyOCB9LAorICB7IDB4MGQwMTA0MjcsIDB4MjQwMDAwMjggfSwK
KyAgeyAweDBkMDEwNDI4LCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQyOSwgMHgxNDAwZmZk
OCB9LAorICB7IDB4MGQwMTA0MmEsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDJiLCAweDE0
MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQyYywgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0MmQs
IDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDJlLCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAx
MDQyZiwgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0MzAsIDB4MTQwMGZmZDggfSwKKyAgeyAw
eDBkMDEwNDMxLCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQzMiwgMHgxNDAwZmZkOCB9LAor
ICB7IDB4MGQwMTA0MzMsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDM0LCAweDE0MDBmZmQ4
IH0sCisgIHsgMHgwZDAxMDQzNSwgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0MzYsIDB4MTQw
MGZmZDggfSwKKyAgeyAweDBkMDEwNDM3LCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQzOCwg
MHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0MzksIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEw
NDNhLCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQzYiwgMHgxNDAwZmZkOCB9LAorICB7IDB4
MGQwMTA0M2MsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDNkLCAweDE0MDBmZmQ4IH0sCisg
IHsgMHgwZDAxMDQzZSwgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0M2YsIDB4MTQwMGZmZDgg
fSwKKyAgeyAweDBkMDEwNDQwLCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQ0MSwgMHgxNDAw
ZmZkOCB9LAorICB7IDB4MGQwMTA0NDIsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDQzLCAw
eDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQ0NCwgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0
NDUsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDQ2LCAweDE0MDBmZmQ4IH0sCisgIHsgMHgw
ZDAxMDQ0NywgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0NDgsIDB4MTQwMGZmZDggfSwKKyAg
eyAweDBkMDEwNDQ5LCAweDE0MDBmZmQ4IH0sCisgIHsgMHgwZDAxMDQ0YSwgMHgxNDAwZmZkOCB9
LAorICB7IDB4MGQwMTA0NGIsIDB4MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDRjLCAweDE0MDBm
ZmQ4IH0sCisgIHsgMHgwZDAxMDQ0ZCwgMHgxNDAwZmZkOCB9LAorICB7IDB4MGQwMTA0NGUsIDB4
MTQwMGZmZDggfSwKKyAgeyAweDBkMDEwNDRmLCAweDE0MDBmZmQ4IH0sCisgIHsgMHgyZTgxMDQ1
MCwgMHgxYzAwMDA0ZCB9LAorICB7IDB4MmM4MTA0YTAsIDB4MzQwMDAwMDkgfSwKKyAgeyAweDBi
ODEwODAwLCAweDFjMDAwMDA1IH0sCisgIHsgMHgwYjAxMDgwOCwgMHgxYzAwMDAwMCB9LAorICB7
IDB4MGI4MTA4MGEsIDB4MWMwMDAwMmIgfSwKKyAgeyAweDBiODEwODM3LCAweDFjMDAwMDAxIH0s
CisgIHsgMHgwYjAxMDgzYywgMHgxYzAwMDAwMCB9LAorICB7IDB4MGIwMTA4M2YsIDB4MWMwMDAw
MDAgfSwKKyAgeyAweDFlMDEwYTAwLCAweDFjMDAwMDAwIH0sCisgIHsgMHgxZTgxMGEwMSwgMHgz
MDAwMDAwMiB9LAorICB7IDB4MWU4MTBhMDUsIDB4MzAwMDAwMDEgfSwKKyAgeyAweDFlODEwYTBj
LCAweDMwMDAwMDAzIH0sCisgIHsgMHgxZTgxMGExMCwgMHgxYzAwMDAwMyB9LAorICB7IDB4MWU4
MTBhMTUsIDB4MWMwMDAwMDIgfSwKKyAgeyAweDFlODEwYTE5LCAweDFjMDAwMDFhIH0sCisgIHsg
MHgxZTgxMGEzOCwgMHgzMDAwMDAwMiB9LAorICB7IDB4MWUwMTBhM2YsIDB4MzAwMDAwMDAgfSwK
KyAgeyAweDFlODEwYTQwLCAweDNjMDAwMDA3IH0sCisgIHsgMHgxZTgxMGE1MCwgMHg1NDAwMDAw
OCB9LAorICB7IDB4MDk4MWQwMDAsIDB4NjgwMDAwZjUgfSwKKyAgeyAweDA5ODFkMTAwLCAweDY4
MDAwMDI2IH0sCisgIHsgMHgwOTgxZDEyYSwgMHg2ODAwMDAzYSB9LAorICB7IDB4MDk4MWQxNjUs
IDB4MjgwMDAwMDEgfSwKKyAgeyAweDFiODFkMTY3LCAweDMwMDAwMDAyIH0sCisgIHsgMHgwOTgx
ZDE2YSwgMHg2ODAwMDAwMiB9LAorICB7IDB4MDk4MWQxNmQsIDB4MjgwMDAwMDUgfSwKKyAgeyAw
eDA5ODFkMTczLCAweDA0MDAwMDA3IH0sCisgIHsgMHgxYjgxZDE3YiwgMHgzMDAwMDAwNyB9LAor
ICB7IDB4MDk4MWQxODMsIDB4NjgwMDAwMDEgfSwKKyAgeyAweDFiODFkMTg1LCAweDMwMDAwMDA2
IH0sCisgIHsgMHgwOTgxZDE4YywgMHg2ODAwMDAxZCB9LAorICB7IDB4MWI4MWQxYWEsIDB4MzAw
MDAwMDMgfSwKKyAgeyAweDA5ODFkMWFlLCAweDY4MDAwMDJmIH0sCisgIHsgMHgxMzgxZDIwMCwg
MHg2ODAwMDA0MSB9LAorICB7IDB4MTM4MWQyNDIsIDB4MzAwMDAwMDIgfSwKKyAgeyAweDEzMDFk
MjQ1LCAweDY4MDAwMDAwIH0sCisgIHsgMHgwOTgxZDMwMCwgMHg2ODAwMDA1NiB9LAorICB7IDB4
MDk4MWQ0MDAsIDB4MjQwMDAwMTkgfSwKKyAgeyAweDA5ODFkNDFhLCAweDE0MDAwMDE5IH0sCisg
IHsgMHgwOTgxZDQzNCwgMHgyNDAwMDAxOSB9LAorICB7IDB4MDk4MWQ0NGUsIDB4MTQwMDAwMDYg
fSwKKyAgeyAweDA5ODFkNDU2LCAweDE0MDAwMDExIH0sCisgIHsgMHgwOTgxZDQ2OCwgMHgyNDAw
MDAxOSB9LAorICB7IDB4MDk4MWQ0ODIsIDB4MTQwMDAwMTkgfSwKKyAgeyAweDA5MDFkNDljLCAw
eDI0MDAwMDAwIH0sCisgIHsgMHgwOTgxZDQ5ZSwgMHgyNDAwMDAwMSB9LAorICB7IDB4MDkwMWQ0
YTIsIDB4MjQwMDAwMDAgfSwKKyAgeyAweDA5ODFkNGE1LCAweDI0MDAwMDAxIH0sCisgIHsgMHgw
OTgxZDRhOSwgMHgyNDAwMDAwMyB9LAorICB7IDB4MDk4MWQ0YWUsIDB4MjQwMDAwMDcgfSwKKyAg
eyAweDA5ODFkNGI2LCAweDE0MDAwMDAzIH0sCisgIHsgMHgwOTAxZDRiYiwgMHgxNDAwMDAwMCB9
LAorICB7IDB4MDk4MWQ0YmQsIDB4MTQwMDAwMDYgfSwKKyAgeyAweDA5ODFkNGM1LCAweDE0MDAw
MDBhIH0sCisgIHsgMHgwOTgxZDRkMCwgMHgyNDAwMDAxOSB9LAorICB7IDB4MDk4MWQ0ZWEsIDB4
MTQwMDAwMTkgfSwKKyAgeyAweDA5ODFkNTA0LCAweDI0MDAwMDAxIH0sCisgIHsgMHgwOTgxZDUw
NywgMHgyNDAwMDAwMyB9LAorICB7IDB4MDk4MWQ1MGQsIDB4MjQwMDAwMDcgfSwKKyAgeyAweDA5
ODFkNTE2LCAweDI0MDAwMDA2IH0sCisgIHsgMHgwOTgxZDUxZSwgMHgxNDAwMDAxOSB9LAorICB7
IDB4MDk4MWQ1MzgsIDB4MjQwMDAwMDEgfSwKKyAgeyAweDA5ODFkNTNiLCAweDI0MDAwMDAzIH0s
CisgIHsgMHgwOTgxZDU0MCwgMHgyNDAwMDAwNCB9LAorICB7IDB4MDkwMWQ1NDYsIDB4MjQwMDAw
MDAgfSwKKyAgeyAweDA5ODFkNTRhLCAweDI0MDAwMDA2IH0sCisgIHsgMHgwOTgxZDU1MiwgMHgx
NDAwMDAxOSB9LAorICB7IDB4MDk4MWQ1NmMsIDB4MjQwMDAwMTkgfSwKKyAgeyAweDA5ODFkNTg2
LCAweDE0MDAwMDE5IH0sCisgIHsgMHgwOTgxZDVhMCwgMHgyNDAwMDAxOSB9LAorICB7IDB4MDk4
MWQ1YmEsIDB4MTQwMDAwMTkgfSwKKyAgeyAweDA5ODFkNWQ0LCAweDI0MDAwMDE5IH0sCisgIHsg
MHgwOTgxZDVlZSwgMHgxNDAwMDAxOSB9LAorICB7IDB4MDk4MWQ2MDgsIDB4MjQwMDAwMTkgfSwK
KyAgeyAweDA5ODFkNjIyLCAweDE0MDAwMDE5IH0sCisgIHsgMHgwOTgxZDYzYywgMHgyNDAwMDAx
OSB9LAorICB7IDB4MDk4MWQ2NTYsIDB4MTQwMDAwMTkgfSwKKyAgeyAweDA5ODFkNjcwLCAweDI0
MDAwMDE5IH0sCisgIHsgMHgwOTgxZDY4YSwgMHgxNDAwMDAxYiB9LAorICB7IDB4MDk4MWQ2YTgs
IDB4MjQwMDAwMTggfSwKKyAgeyAweDA5MDFkNmMxLCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTgx
ZDZjMiwgMHgxNDAwMDAxOCB9LAorICB7IDB4MDkwMWQ2ZGIsIDB4NjQwMDAwMDAgfSwKKyAgeyAw
eDA5ODFkNmRjLCAweDE0MDAwMDA1IH0sCisgIHsgMHgwOTgxZDZlMiwgMHgyNDAwMDAxOCB9LAor
ICB7IDB4MDkwMWQ2ZmIsIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5ODFkNmZjLCAweDE0MDAwMDE4
IH0sCisgIHsgMHgwOTAxZDcxNSwgMHg2NDAwMDAwMCB9LAorICB7IDB4MDk4MWQ3MTYsIDB4MTQw
MDAwMDUgfSwKKyAgeyAweDA5ODFkNzFjLCAweDI0MDAwMDE4IH0sCisgIHsgMHgwOTAxZDczNSwg
MHg2NDAwMDAwMCB9LAorICB7IDB4MDk4MWQ3MzYsIDB4MTQwMDAwMTggfSwKKyAgeyAweDA5MDFk
NzRmLCAweDY0MDAwMDAwIH0sCisgIHsgMHgwOTgxZDc1MCwgMHgxNDAwMDAwNSB9LAorICB7IDB4
MDk4MWQ3NTYsIDB4MjQwMDAwMTggfSwKKyAgeyAweDA5MDFkNzZmLCAweDY0MDAwMDAwIH0sCisg
IHsgMHgwOTgxZDc3MCwgMHgxNDAwMDAxOCB9LAorICB7IDB4MDkwMWQ3ODksIDB4NjQwMDAwMDAg
fSwKKyAgeyAweDA5ODFkNzhhLCAweDE0MDAwMDA1IH0sCisgIHsgMHgwOTgxZDc5MCwgMHgyNDAw
MDAxOCB9LAorICB7IDB4MDkwMWQ3YTksIDB4NjQwMDAwMDAgfSwKKyAgeyAweDA5ODFkN2FhLCAw
eDE0MDAwMDE4IH0sCisgIHsgMHgwOTAxZDdjMywgMHg2NDAwMDAwMCB9LAorICB7IDB4MDk4MWQ3
YzQsIDB4MTQwMDAwMDUgfSwKKyAgeyAweDA5ODFkN2NlLCAweDM0MDAwMDMxIH0sCisgIHsgMHgx
NjgyMDAwMCwgMHgxYzAwYTZkNiB9LAorICB7IDB4MTY4MmY4MDAsIDB4MWMwMDAyMWQgfSwKKyAg
eyAweDA5MGUwMDAxLCAweDA0MDAwMDAwIH0sCisgIHsgMHgwOThlMDAyMCwgMHgwNDAwMDA1ZiB9
LAorICB7IDB4MWI4ZTAxMDAsIDB4MzAwMDAwZWYgfSwKKyAgeyAweDA5OGYwMDAwLCAweDBjMDBm
ZmZkIH0sCisgIHsgMHgwOTkwMDAwMCwgMHgwYzAwZmZmZCB9LAorfTsKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3d0Zi9BU0NJSUNUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3Rm
L0FTQ0lJQ1R5cGUuaAkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvQVND
SUlDVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMSArNTUsMTIgQEAgbmFtZXNwYWNlIFdU
RiB7CiAgICAgaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyh3Y2hhcl90IGMpIHsgcmV0
dXJuIGMgPj0gJzAnICYmIGMgPD0gJzknIHx8IChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgy
MCkgPD0gJ3onOyB9CiAjZW5kaWYKIAotICAgIGlubGluZSBib29sIGlzQVNDSUlEaWdpdChjaGFy
IGMpIHsgcmV0dXJuIGMgPj0gJzAnICYmIGMgPD0gJzknOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNB
U0NJSURpZ2l0KHVuc2lnbmVkIHNob3J0IGMpIHsgcmV0dXJuIGMgPj0gJzAnICYmIGMgPD0gJzkn
OyB9CisgICAgaW5saW5lIGJvb2wgaXNBU0NJSURpZ2l0KGNoYXIgYykgeyByZXR1cm4gKGMgPj0g
JzAnKSAmIChjIDw9ICc5Jyk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJRGlnaXQodW5zaWdu
ZWQgc2hvcnQgYykgeyByZXR1cm4gKGMgPj0gJzAnKSAmIChjIDw9ICc5Jyk7IH0KICNpZiAhQ09N
UElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCkKLSAgICBpbmxp
bmUgYm9vbCBpc0FTQ0lJRGlnaXQod2NoYXJfdCBjKSB7IHJldHVybiBjID49ICcwJyAmJiBjIDw9
ICc5JzsgfQorICAgIGlubGluZSBib29sIGlzQVNDSUlEaWdpdCh3Y2hhcl90IGMpIHsgcmV0dXJu
IChjID49ICcwJykgJiAoYyA8PSAnOScpOyB9CiAjZW5kaWYKKyAgICBpbmxpbmUgYm9vbCBpc0FT
Q0lJRGlnaXQoaW50IGMpIHsgcmV0dXJuIChjID49ICcwJykgJiAoYyA8PSAnOScpOyB9CiAKICAg
ICBpbmxpbmUgYm9vbCBpc0FTQ0lJSGV4RGlnaXQoY2hhciBjKSB7IHJldHVybiBjID49ICcwJyAm
JiBjIDw9ICc5JyB8fCAoYyB8IDB4MjApID49ICdhJyAmJiAoYyB8IDB4MjApIDw9ICdmJzsgfQog
ICAgIGlubGluZSBib29sIGlzQVNDSUlIZXhEaWdpdCh1bnNpZ25lZCBzaG9ydCBjKSB7IHJldHVy
biBjID49ICcwJyAmJiBjIDw9ICc5JyB8fCAoYyB8IDB4MjApID49ICdhJyAmJiAoYyB8IDB4MjAp
IDw9ICdmJzsgfQpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2NQQ1JFLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvY1BDUkUuY3BwCShyZXZp
c2lvbiAyNzY0OCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jUENSRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotLy8gLSotIG1vZGU6IGMrKzsgYy1iYXNpYy1v
ZmZzZXQ6IDQgLSotCi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiRmFzdE1hbGxvYy5oIgot
I2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotdm9pZCogKCpwY3JlX21hbGxvYykoc2l6ZV90
KSA9IGZhc3RNYWxsb2M7Ci12b2lkICgqcGNyZV9mcmVlKSh2b2lkKikgPSBmYXN0RnJlZTsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAkocmV2aXNp
b24gMjc2NDgpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMTEgKzIwNyw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgcmV0dXJuICEhdV9pc2xvd2VyKGMpOwogICAgIH0KIAotICAgIGlubGluZSBib29sIGlzVXBw
ZXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiAhIXVfaXNVVXBwZXJjYXNlKGMpOwot
ICAgICAgfQotCiAgICAgaW5saW5lIGludCBkaWdpdFZhbHVlKFVDaGFyMzIgYykKICAgICB7CiAg
ICAgICByZXR1cm4gdV9jaGFyRGlnaXRWYWx1ZShjKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0
Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
d3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQuaAkocmV2aXNpb24gMjc2NDgpCisrKyBKYXZhU2Ny
aXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NDMsMTEgKzM0Myw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgcmV0dXJuIFFDaGFyOjpjYXRl
Z29yeShjKSA9PSBRQ2hhcjo6TGV0dGVyX0xvd2VyY2FzZTsKICAgICB9CiAKLSAgICBpbmxpbmUg
Ym9vbCBpc1VwcGVyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gUUNoYXI6OmNhdGVn
b3J5KGMpID09IFFDaGFyOjpMZXR0ZXJfVXBwZXJjYXNlOwotICAgIH0KLQogICAgIGlubGluZSBp
bnQgZGlnaXRWYWx1ZShVQ2hhcjMyIGMpCiAgICAgewogICAgICAgcmV0dXJuIFFDaGFyOjpkaWdp
dFZhbHVlKGMpOwpAQCAtNDc5LDExICs0NzQsNiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgIHJl
dHVybiAoYyAmIDB4ZmZmZjAwMDApID09IDAgJiYgUUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLmNh
dGVnb3J5KCkgPT0gUUNoYXI6OkxldHRlcl9Mb3dlcmNhc2U7CiAgICAgfQogCi0gICAgaW5saW5l
IGJvb2wgaXNVcHBlcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChjICYgMHhmZmZm
MDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuY2F0ZWdvcnkoKSA9PSBRQ2hh
cjo6TGV0dGVyX1VwcGVyY2FzZTsKLSAgICB9Ci0KICAgICBpbmxpbmUgaW50IGRpZ2l0VmFsdWUo
VUNoYXIzMiBjKQogICAgIHsKICAgICAgIGlmIChjID4gMHhmZmZmKQpJbmRleDogV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjQ4
KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAwNy0xMS0wOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSB1cGRhdGVkIGZvciBKU1JlZ0V4
cCBmdW5jdGlvbiBjaGFuZ2VzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SZWd1bGFyRXhwcmVzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZTo6Y29t
cGlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWd1bGFyRXhwcmVzc2lvbjo6bWF0Y2gpOgorCiAy
MDA3LTExLTA5ICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5uQGtkZS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgbm9ib2R5LCBidWlsZC9saW5rIGZpeCBmb3IgUXQvV2luZG93cy4KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vUmVndWxhckV4cHJlc3Npb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vUmVndWxhckV4cHJlc3Npb24uY3BwCShyZXZpc2lvbiAyNzYwOCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vUmVndWxhckV4cHJlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDIsNyArMTAyLDkgQEAgdm9pZCBSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZTo6Y29tcGls
ZQogICAgIC8vIG9uIHRoZSByZWdleCBzeW50YXggKHNlZSBGcmFtZU1hYy5tbSBmb3IgYSBjb3Vw
bGUgZXhhbXBsZXMpLgogICAgIAogICAgIGNvbnN0IGNoYXIqIGVycm9yTWVzc2FnZTsKLSAgICBy
ZWdleCA9IGpzUmVnRXhwQ29tcGlsZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQxNl90ICo+
KHAudW5pY29kZSgpKSwgcC5sZW5ndGgoKSwgY2FzZVNlbnNpdGl2ZSA/IDAgOiBKU19SRUdFWFBf
Q0FTRUxFU1MsIDAsICZlcnJvck1lc3NhZ2UpOworICAgIHJlZ2V4ID0ganNSZWdFeHBDb21waWxl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihwLnVuaWNvZGUoKSksIHAubGVuZ3RoKCks
CisgICAgICAgIGNhc2VTZW5zaXRpdmUgPyBKU1JlZ0V4cERvTm90SWdub3JlQ2FzZSA6IEpTUmVn
RXhwSWdub3JlQ2FzZSwgSlNSZWdFeHBTaW5nbGVMaW5lLAorICAgICAgICAwLCAmZXJyb3JNZXNz
YWdlKTsKICAgICBpZiAoIXJlZ2V4KQogICAgICAgICBMT0dfRVJST1IoIlJlZ3VsYXJFeHByZXNz
aW9uOiBwY3JlX2NvbXBpbGUgZmFpbGVkIHdpdGggJyVzJyIsIGVycm9yTWVzc2FnZSk7CiB9CkBA
IC0xNTQsOSArMTU2LDkgQEAgaW50IFJlZ3VsYXJFeHByZXNzaW9uOjptYXRjaChjb25zdCBEZXBy
ZQogewogICAgIGQtPmxhc3RNYXRjaFN0cmluZyA9IHN0cjsKICAgICAvLyBGaXJzdCAyIG9mZnNl
dHMgYXJlIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0czsgM3JkIGVudHJ5IGlzIHVzZWQgaW50ZXJuYWxs
eSBieSBwY3JlCi0gICAgZC0+bGFzdE1hdGNoQ291bnQgPSBqc1JlZ0V4cEV4ZWN1dGUoZC0+cmVn
ZXgsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSlNSZWdFeHBDaGFyKj4oZC0+bGFzdE1hdGNoU3Ry
aW5nLnVuaWNvZGUoKSksIGQtPmxhc3RNYXRjaFN0cmluZy5sZW5ndGgoKSwgc3RhcnRGcm9tLCBk
LT5sYXN0TWF0Y2hPZmZzZXRzLCBtYXhPZmZzZXRzKTsKKyAgICBkLT5sYXN0TWF0Y2hDb3VudCA9
IGpzUmVnRXhwRXhlY3V0ZShkLT5yZWdleCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+
KGQtPmxhc3RNYXRjaFN0cmluZy51bmljb2RlKCkpLCBkLT5sYXN0TWF0Y2hTdHJpbmcubGVuZ3Ro
KCksIHN0YXJ0RnJvbSwgZC0+bGFzdE1hdGNoT2Zmc2V0cywgbWF4T2Zmc2V0cyk7CiAgICAgaWYg
KGQtPmxhc3RNYXRjaENvdW50IDwgMCkgewotICAgICAgICBpZiAoZC0+bGFzdE1hdGNoQ291bnQg
IT0gSlNfUkVHRVhQX0VSUk9SX05PTUFUQ0gpCisgICAgICAgIGlmIChkLT5sYXN0TWF0Y2hDb3Vu
dCAhPSBKU1JlZ0V4cEVycm9yTm9NYXRjaCkKICAgICAgICAgICAgIExPR19FUlJPUigiUmVndWxh
ckV4cHJlc3Npb246IHBjcmVfZXhlYygpIGZhaWxlZCB3aXRoIHJlc3VsdCAlZCIsIGQtPmxhc3RN
YXRjaENvdW50KTsKICAgICAgICAgZC0+bGFzdE1hdGNoUG9zID0gLTE7CiAgICAgICAgIGQtPmxh
c3RNYXRjaExlbmd0aCA9IC0xOwo=
</data>
<flag name="review"
          id="7300"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>