<?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>230508</bug_id>
          
          <creation_ts>2021-09-20 14:01:28 -0700</creation_ts>
          <short_desc>Rename {checked,dynamic}_ns_cast&lt;&gt; to {checked,dynamic}_objc_cast&lt;&gt;</short_desc>
          <delta_ts>2021-09-21 15:13:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230467</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>139893</dependson>
    
    <dependson>139915</dependson>
    
    <dependson>230227</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795272</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-20 14:01:28 -0700</bug_when>
    <thetext>Rename {checked,dynamic}_ns_cast&lt;&gt; to {checked,dynamic}_objc_cast&lt;&gt;.

In Bug 230406, Darin writes:
&gt; Did you see my comment about dynamic_objc_cast? I think I prefer that name to dynamic_ns_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795275</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-20 14:01:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/83323145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795287</commentid>
    <comment_count>2</comment_count>
      <attachid>438729</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-20 14:29:51 -0700</bug_when>
    <thetext>Created attachment 438729
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795288</commentid>
    <comment_count>3</comment_count>
      <attachid>438730</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-20 14:31:58 -0700</bug_when>
    <thetext>Created attachment 438730
Patch v1 (showing changes in renamed files)

This is the same as &quot;Patch v1&quot; (Attachment #438729), but only shows changes in renamed files.

Much easier to review, but I&apos;m not sure if EWS will handle it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795292</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-20 14:35:45 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; Created attachment 438730 [details]
&gt; Patch v1 (showing changes in renamed files)
&gt; 
&gt; This is the same as &quot;Patch v1&quot; (Attachment #438729 [details]), but only
&gt; shows changes in renamed files.
&gt; 
&gt; Much easier to review, but I&apos;m not sure if EWS will handle it.

Hmmm...I guess svn-apply-patch will handle this just fine.  We should probably change svn-create-patch to use the pure git patch for renamed files to make them easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795557</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-09-21 08:18:44 -0700</bug_when>
    <thetext>Review ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795784</commentid>
    <comment_count>6</comment_count>
      <attachid>438730</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-09-21 14:36:57 -0700</bug_when>
    <thetext>Comment on attachment 438730
Patch v1 (showing changes in renamed files)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795803</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 15:13:31 -0700</bug_when>
    <thetext>Committed r282844 (241975@main): &lt;https://commits.webkit.org/241975@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438730.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438729</attachid>
            <date>2021-09-20 14:29:51 -0700</date>
            <delta_ts>2021-09-20 14:34:01 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-230508-20210920142950.patch</filename>
            <type>text/plain</type>
            <size>45630</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3Zjg5M2Y5N2IyMmI2NmQzOTU1MTgy
YWFmYWJlNjBiYjI1YWMxMTcuLmU5Y2EyMjJiYTZiMGNiMmRjM2YxNmZmMDVkY2ZlNTQwZTQ4Yjc0
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDktMjAgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUge2NoZWNrZWQsZHluYW1pY31fbnNfY2Fz
dDw+IHRvIHtjaGVja2VkLGR5bmFtaWN9X29iamNfY2FzdDw+CisgICAgICAgIDxodHRwczovL3dl
YmtpdC5vcmcvYi8yMzA1MDg+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzMyMzE0NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgLSBVcGRhdGUgZm9yIHJlbmFtZSBvZiBUeXBlQ2FzdHNOUy5oIHRvIFR5cGVDYXN0
c0NvY29hLmguCisKKyAgICAgICAgKiB3dGYvUmV0YWluUHRyLmg6CisgICAgICAgIChXVEY6OmR5
bmFtaWNfb2JqY19jYXN0KToKKyAgICAgICAgLSBNb3ZlIGR5bmFtaWNfbnNfY2FzdDw+IGZyb20g
VHlwZUNhc3RzTlMuaCB0byBoZXJlLgorICAgICAgICAtIFJlbW92ZSBgdXNpbmdgIHN0YXRlbWVu
dHMgdG8gbGltaXQgT2JqZWN0aXZlLUMgdHlwZXMgd2l0aG91dAorICAgICAgICAgIGFzdGVyaXNr
cyB0byBtYXRjaCBSZXRhaW5QdHI8Pi4KKyAgICAgICAgKiB3dGYvY29jb2EvVHlwZUNhc3RzQ29j
b2EuaDogUmVuYW1lIGZyb20gVHlwZUNhc3RzTlMuaC4KKyAgICAgICAgKFdURjo6Y2hlY2tlZF9v
YmpjX2Nhc3QpOgorICAgICAgICAoV1RGOjpkeW5hbWljX29iamNfY2FzdCk6CisgICAgICAgIC0g
RG8gdGhlIHJlbmFtZS4KKyAgICAgICAgLSBSZW1vdmUgInVzaW5nIFdURjo6ZHluYW1pY19uc19j
YXN0OyIgaW5zdGVhZCBvZiByZW5hbWluZyBpdAorICAgICAgICAgIHNpbmNlIHRoaXMgaXMgYWxy
ZWFkeSBpbiBSZXRhaW5QdHIuaC4KKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJlZigqdGhpcykgLyBtYWtlUmVm
UHRyKHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRkMjc5YmQ5Yzc4MTE0YmFiMDRjOTliNjdiMjE4Y2I4
ZGRjYzU2Zi4uY2E2YWIyYWVkNjVlMTlkZGQ0Y2NlNTE1MGJlNTNiNDI3MjY3ZmEwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA5LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHtjaGVja2VkLGR5bmFtaWN9X25zX2Nhc3Q8
PiB0byB7Y2hlY2tlZCxkeW5hbWljfV9vYmpjX2Nhc3Q8PgorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjMwNTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzMjMxNDU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW06CisgICAg
ICAgIC0gQWxzbyBmaXggKlNvZnRMaW5rLmggaGVhZGVyIG9yZGVyLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbToKKyAgICAgICAgLSBJbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2Nv
YS5oPiBmb3IgZnV0dXJlIG1vdmUgb2YKKyAgICAgICAgICBXVEY6OmR5bmFtaWNfb2JqY19jYXN0
PD4gZnJvbSBSZXRhaW5QdHIuaCB0byB0aGF0IGhlYWRlci4KKwogMjAyMS0wOS0yMCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgb3ZlcnJpZGVzIG9m
IERpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpDYXB0dXJlcjo6Z2VuZXJhdGVGcmFtZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRkYmY5NWEwYWE3OGY3ZjM2NmJlZTA1YzZjMWZiYjIwNDAzMDVlNmIuLjY0YTFiMDYz
YTk3ZjZlNGQzN2I3OTg0NGU4OWQ1Zjk1NTlhN2ZiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMjEtMDktMjAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUge2NoZWNrZWQsZHluYW1pY31fbnNfY2FzdDw+IHRvIHtjaGVja2VkLGR5bmFt
aWN9X29iamNfY2FzdDw+CisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMzA1MDg+Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzMyMzE0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpleHRyYWN0V2ViUHJvY2Vzc1Bvb2wpOgorICAg
ICAgICAtIFVwZGF0ZSBmb3IgcmVuYW1lLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FyZ3Vt
ZW50Q29kZXJzQ29jb2EubW06CisgICAgICAgICogU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW06
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbToK
KyAgICAgICAgLSBBbHNvIGZpeCAqU29mdExpbmsuaCBoZWFkZXIgb3JkZXIuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAtIEltcG9ydCA8d3RmL2NvY29h
L1R5cGVDYXN0c0NvY29hLmg+IGZvciBmdXR1cmUgbW92ZSBvZgorICAgICAgICAgIFdURjo6ZHlu
YW1pY19vYmpjX2Nhc3Q8PiBmcm9tIFJldGFpblB0ci5oIHRvIHRoYXQgaGVhZGVyLgorCiAyMDIx
LTA5LTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAg
ICAgIFVzZSBPYmplY3RJZGVudGlmaWVyIGZvciBXZWJVUkxTY2hlbWVIYW5kbGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDA3OTliNWZhZDg2YzdiNTA0YzFlNzNkZTkwMTY4MGYy
Zjc0ODk5Ni4uMWYyOWEyMGY0NzgwMzYyOTFhYjNlNmRiYmY5ZmE0ZWEyZmIyYTRkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5LTIwICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHtjaGVja2Vk
LGR5bmFtaWN9X25zX2Nhc3Q8PiB0byB7Y2hlY2tlZCxkeW5hbWljfV9vYmpjX2Nhc3Q8PgorICAg
ICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjMwNTA4PgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODMzMjMxNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIC0gSW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3Rz
Q29jb2EuaD4gZm9yIGZ1dHVyZSBtb3ZlIG9mCisgICAgICAgICAgV1RGOjpkeW5hbWljX29iamNf
Y2FzdDw+IGZyb20gUmV0YWluUHRyLmggdG8gdGhhdCBoZWFkZXIuCisKIDIwMjEtMDktMjAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VS
ZWYoKnRoaXMpIC8gbWFrZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYWZjZjNmMWNmMDMxNmU4YzVlNmE2ZDhhNjM3NGM0ZjFjNjA2MTY5
Zi4uYTJjYThjMWU1MGY4Y2NiNjU4YTkzMzM2N2E5NDFlMDdhYmM1ZmU5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zOTEsNyArMzkxLDcgQEAKIAkJNDQy
N0M1QTkyMUY2RDZDMzAwQTYxMkE0IC8qIEFTQ0lJQ1R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQVNDSUlDVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0MzA5RDQwMjZFRkMxNEEwMDQwMkE2NyAvKiBOU09iakNSdW50aW1lU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5TT2JqQ1J1bnRpbWVTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQ2ODU2NzIyNTA5NEZFODAwOENDQTA1IC8qIFRocmVhZFNhbml0aXplclN1cHBv
cnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkU2FuaXRpemVyU3Vw
cG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NENERTREMjI2RUU2Q0RBMDA5
RjZBQ0IgLyogVHlwZUNhc3RzTlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwZUNhc3RzTlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRDREU0RDIyNkVF
NkNEQTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFR5cGVDYXN0c0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2MjA5QTI3MjY2RDU0M0EwMDdGOEY0QSAvKiBDYW5jZWxsYWJsZVRhc2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FuY2VsbGFibGVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
QkE5RUFCMUY0Q0Q2MUUwMDlBMkJCQyAvKiBDb21wbGV0aW9uSGFuZGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NkJFQjZFOTIyRkZEREQ1MDAyNjk4NjcgLyogUmVmQ291bnRlZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZDb3VudGVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE2MTgsNyArMTYxOCw3IEBACiAJCQkJQTMwRDQxMkMxRjBERTBCQTAwQjcx
OTU0IC8qIFNvZnRMaW5raW5nLmggKi8sCiAJCQkJQkMzRkVCNUUyNjdGQ0Q0NjAwNTQwMDZBIC8q
IFNwYW5Db2NvYS5oICovLAogCQkJCUVCNjFFREM2MjQwOUNDQzAwMDFFRkUzNiAvKiBTeXN0ZW1U
cmFjaW5nQ29jb2EuY3BwICovLAotCQkJCTQ0Q0RFNEQyMjZFRTZDREEwMDlGNkFDQiAvKiBUeXBl
Q2FzdHNOUy5oICovLAorCQkJCTQ0Q0RFNEQyMjZFRTZDREEwMDlGNkFDQiAvKiBUeXBlQ2FzdHND
b2NvYS5oICovLAogCQkJCTVDQzBFRTg2MjE2MkJDMjIwMEExQTg0MiAvKiBVUkxDb2NvYS5tbSAq
LywKIAkJCQk5MzI0MTY1NzI0M0JDMkU1MDAzMkZBQUUgLyogVmVjdG9yQ29jb2EuaCAqLywKIAkJ
CQlFNEEwQUQzQzFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBkMzM5ZjhjNjg2ZTA5ODY4NjQ5M2RlMTg0YjU1MDRi
MmU0YjMzZTU0Li43M2Q2MTkwMjU1OGE2MDExZDk1ZWY4YTNkNWUyMDY1MmFiMzVhYzg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMjAsNyArMjAsNyBAQCBsaXN0KEFQUEVORCBXVEZf
UFVCTElDX0hFQURFUlMKICAgICBjb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5o
CiAgICAgY29jb2EvU29mdExpbmtpbmcuaAogICAgIGNvY29hL1NwYW5Db2NvYS5oCi0gICAgY29j
b2EvVHlwZUNhc3RzTlMuaAorICAgIGNvY29hL1R5cGVDYXN0c0NvY29hLmgKICAgICBjb2NvYS9W
ZWN0b3JDb2NvYS5oCiAKICAgICBkYXJ3aW4vV2Vha0xpbmtpbmcuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUmV0YWluUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAppbmRl
eCBiNzJhN2VhNWQ1YTc3YjFlMWU1NTM4ZjkzYjdkNWM2YzdiZWI4ZDA5Li41YTg1NmJmODAwZjAx
N2VjNmFkNDQ1Y2JlMzgyNDM4ZjVjZWMwZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9S
ZXRhaW5QdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaApAQCAtMzc2LDEyICsz
NzYsMTMgQEAgaW5saW5lIENGSGFzaENvZGUgc2FmZUNGSGFzaChDRlR5cGVSZWYgYSkKIH0KIAog
I2lmZGVmIF9fT0JKQ19fCisvLyBGSVhNRTogTW92ZSB0byBUeXBlQ2FzdHNDb2NvYS5oIG9uY2Ug
YWxsIGNsaWVudHMgaW5jbHVkZSB0aGF0IGhlYWRlci4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQq
IGR5bmFtaWNfb2JqY19jYXN0KGlkIG9iamVjdCkKIHsKLSAgICBpZiAoW29iamVjdCBpc0tpbmRP
ZkNsYXNzOltUIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiAoVCAqKW9iamVjdDsKKyAgICBpZiAo
IVtvYmplY3QgaXNLaW5kT2ZDbGFzczpbVCBjbGFzc11dKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KG9i
amVjdCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvVHlw
ZUNhc3RzQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWU0MzliZDczNGFkMDkwMDc2YWY4MDE1MGEzMWRiZDRmOTZjYjdmOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmgKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNl
IFdURiB7CisKKy8vIFVzZSBjaGVja2VkX29iamNfY2FzdDw+IGluc3RlYWQgb2YgZHluYW1pY19v
YmpjX2Nhc3Q8PiB3aGVuIGEgc3BlY2lmaWMgTlMgdHlwZSBpcyByZXF1aXJlZC4KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4gVCogY2hlY2tlZF9vYmpjX2Nhc3QoaWQgb2JqZWN0KQoreworICAgIHVz
aW5nIFZhbHVlVHlwZSA9IHN0ZDo6cmVtb3ZlX3BvaW50ZXJfdDxUPjsKKyAgICB1c2luZyBQdHJU
eXBlID0gVmFsdWVUeXBlKjsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oW29i
amVjdCBpc0tpbmRPZkNsYXNzOltWYWx1ZVR5cGUgY2xhc3NdXSk7CisKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxQdHJUeXBlPihvYmplY3QpOworfQorCisvLyBVc2UgZHluYW1pY19vYmpj
X2Nhc3Q8PiBpbnN0ZWFkIG9mIGNoZWNrZWRfb2JqY19jYXN0PD4gd2hlbiBhY3RpdmVseSBjaGVj
a2luZyBOUyB0eXBlcywKKy8vIHNpbWlsYXIgdG8gZHluYW1pY19jYXN0PD4gaW4gQysrLiBCZSBz
dXJlIHRvIGluY2x1ZGUgYSBuaWwgY2hlY2suCisKKy8vIFNlZSBSZXRhaW5QdHIuaCBmb3I6IHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IFQqIGR5bmFtaWNfb2JqY19jYXN0KGlkIG9iamVjdCkuCisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IFJldGFpblB0cjxUPiBkeW5hbWljX29iamNf
Y2FzdChSZXRhaW5QdHI8VT4mJiBvYmplY3QpCit7CisgICAgaWYgKCFbb2JqZWN0IGlzS2luZE9m
Q2xhc3M6W1QgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
V1RGTW92ZShvYmplY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpj
aGVja2VkX29iamNfY2FzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1R5cGVD
YXN0c05TLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9UeXBlQ2FzdHNOUy5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMDg2MDlhNDg1ZGNiMDZmODNhODY4OGIyOWFmZTEzYzQ2MmM4
YTdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL1R5cGVDYXN0c05TLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotLy8gVXNlIGNoZWNrZWRfbnNfY2FzdDw+IGluc3RlYWQgb2YgZHluYW1pY19uc19jYXN0PD4g
d2hlbiBhIHNwZWNpZmljIE5TIHR5cGUgaXMgcmVxdWlyZWQuCi0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IFQqIGNoZWNrZWRfbnNfY2FzdChpZCBvYmplY3QpCi17Ci0gICAgdXNpbmcgVmFsdWVUeXBl
ID0gc3RkOjpyZW1vdmVfcG9pbnRlcl90PFQ+OwotICAgIHVzaW5nIFB0clR5cGUgPSBWYWx1ZVR5
cGUqOwotCi0gICAgaWYgKCFvYmplY3QpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
UkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihbb2JqZWN0IGlzS2luZE9m
Q2xhc3M6W1ZhbHVlVHlwZSBjbGFzc11dKTsKLQotICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFB0clR5cGU+KG9iamVjdCk7Ci19Ci0KLS8vIFVzZSBkeW5hbWljX25zX2Nhc3Q8PiBpbnN0ZWFk
IG9mIGNoZWNrZWRfbnNfY2FzdDw+IHdoZW4gYWN0aXZlbHkgY2hlY2tpbmcgTlMgdHlwZXMsCi0v
LyBzaW1pbGFyIHRvIGR5bmFtaWNfY2FzdDw+IGluIEMrKy4gQmUgc3VyZSB0byBpbmNsdWRlIGEg
bmlsIGNoZWNrLgotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUKiBkeW5hbWljX25zX2Nhc3QoaWQg
b2JqZWN0KQotewotICAgIHVzaW5nIFZhbHVlVHlwZSA9IHN0ZDo6cmVtb3ZlX3BvaW50ZXJfdDxU
PjsKLSAgICB1c2luZyBQdHJUeXBlID0gVmFsdWVUeXBlKjsKLQotICAgIGlmICghW29iamVjdCBp
c0tpbmRPZkNsYXNzOltWYWx1ZVR5cGUgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdHJUeXBlPihvYmplY3QpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBSZXRhaW5QdHI8VD4gZHluYW1pY19uc19j
YXN0KFJldGFpblB0cjxVPiYmIG9iamVjdCkKLXsKLSAgICBpZiAoIVtvYmplY3QgaXNLaW5kT2ZD
bGFzczpbVCBjbGFzc11dKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBX
VEZNb3ZlKG9iamVjdCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OmNo
ZWNrZWRfbnNfY2FzdDsKLXVzaW5nIFdURjo6ZHluYW1pY19uc19jYXN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1
cmF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFs
bG1lbnRDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3ZTUzZDJkOTg2MTcwOTllNzJjNGE0MDZhNTQ4
OGJhMGM3OTVjY2YuLjAxYmMxMDlmMTI0NzI0ZGI0NThjM2RmMDE0NTdmNjZlNTZhNTE0YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxt
ZW50Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNp
bXBvcnQgIkFwcGxlUGF5SW5zdGFsbG1lbnRJdGVtVHlwZS5oIgogI2ltcG9ydCAiQXBwbGVQYXlJ
bnN0YWxsbWVudFJldGFpbENoYW5uZWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbk9yLmgiCisjaW1w
b3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0
b3JDb2NvYS5oPgogCiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXJj
aGFudFNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tCmluZGV4IGI3MWY4NDgxZmMyOTZkODZj
NzQwYTM5OWM5ODJmMzU5NjU5ZTMzOTEuLmJjZmY4ODhlMTI1ZjUyMjlmMmQ0NGM1MDZlNTYzYjI0
MmJjOTZjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tCkBAIC0y
OSw2ICsyOSw4IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNPTk9iamVjdC5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+
CisKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCBhMThiN2M5NzkxNmQzZDhh
NDUyNzNiYWUwODRlNzhlN2M3ZTEwNjQ3Li4wNGE4NWI5NjgzOGM0NzI1MDM1NmE2ZWNhY2M5YzAz
MjUzOTZmNTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtMjcsNiArMjcsNyBA
QAogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKIAogI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2Eu
aD4KIAogQGltcGxlbWVudGF0aW9uIENBTGF5ZXIgKFdlYkNvcmVDQUxheWVyRXh0cmFzKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQmxvY2tsaXN0VXBkYXRlci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tCmluZGV4
IDI1ZmQxOGIwZGM5YWFkZTMwZDg3ZjM2NTViNTM2M2QwZmRiNmM1ZjguLjMwOGRmNWZlMDkwM2Rh
N2Q2ZTFlMDE5ZDRmMDAzODI5ZWM1NGE4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJX
ZWJHTEJsb2NrbGlzdC5oIgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHN5cy90aW1l
Lmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNh
c3RzQ29jb2EuaD4KIAogLy8gVGhlIHRpbWUgYWZ0ZXIgd2hpY2ggd2UnbGwgY2hlY2sgdGhlIGJs
b2NrbGlzdCBkYXRhLgogc3RhdGljIHRpbWVfdCBibG9ja2xpc3ROZXh0Q2hlY2tUaW1lOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IGIwNDMwN2VmZjZj
OTIwOGQyMDNhNjUxMGI2NWU4N2NlYTE3YzdmZGQuLjkzZTViNDJkNDM4NTMxYjZlNWQwYTE5MDJk
OTRlOWYxYzRkMjk2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0KQEAgLTgzLDggKzgzLDggQEAKICNpbXBvcnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpDUnVudGlt
ZUV4dHJhcy5oPgotI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4
dHJhcy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CiAKICNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKICNpbmNsdWRlICJIVE1MRGF0YUxpc3RFbGVtZW50LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpp
bmRleCA4YmMwNWU1OWNiNDhmOTlkNmMwZjliN2RjNGExZWU1MjkwOGM0ZmNjLi5iYTQ5OTA5MTJi
YjQ0MDJjNDRiNTYwZDM0NTVmOTE0YTg4MzE0ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL0FyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNp
bXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvY2YvQ0ZVUkxFeHRyYXMuaD4KICNp
bXBvcnQgPHd0Zi9jb2NvYS9OU1VSTEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVD
YXN0c0NvY29hLmg+CiAKICNpZiBVU0UoQVBQS0lUKQogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1h
Yy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFw
aC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KaW5kZXgg
MDBmZmZlMjBiOGFmNjYyMTRmMjM0NmM3MjFiY2UyZGFiM2Q4ZTA4My4uZjlhOTA1OTE5MmZlZDhh
Y2JhY2U0NmZjMjQzMWUxZDg3ZDE0ODU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
T2JqQ09iamVjdEdyYXBoLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1R5cGVSZWZXcmFwcGVyLmgiCiAj
aW1wb3J0IDx3dGYvRW51bVRyYWl0cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0Nv
Y29hLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAwODBlYWIx
MTA3NTQ1ZDRjOTk0MTFlMjkyOTQ0YzBhMjVjODViOTRiLi5hODRhYjJjN2QxMzliZjZmMGM2OWE0
YjE2NWY0ZmYyMDc5ZmI0MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTM4LDcgKzM4LDcgQEAKICNp
bXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0
Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgotI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCA8VUlLaXRTUEkuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5tbQppbmRleCAxNGU5YzhhYjViYmZjYmZmYTA0ZGRiODVjYmIyNzE5NTIwYzA1ZWFl
Li5hOThkOGVjYzA3MjkzYmZjMzFhYjhiYmU2OTFlZjIyZDBjY2JhN2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFQZXJtaXNzaW9uVXRpbGl0
aWVzLm1tCkBAIC0yNywxOSArMjcsMjEgQEAKICNpbXBvcnQgIk1lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5oIgogCiAjaW1wb3J0ICJTYW5kYm94VXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUQ0NTb2Z0
TGluay5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VQ
cm94eS5oIgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDxw
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHBhbC9jb2NvYS9TcGVl
Y2hTb2Z0TGluay5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJM
SGVscGVycy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CiAjaW1wb3J0
IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5k
Ym94U1BJLmg+CiAKKyNpbXBvcnQgIlRDQ1NvZnRMaW5rLmgiCisjaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9TcGVlY2hTb2Z0TGlu
ay5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBjaGVja1NhbmRib3hSZXF1aXJlbWVu
dEZvclR5cGUoTWVkaWFQZXJtaXNzaW9uVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZTE3ZGZlZWE3
NzU4NWY1NTZlZDc5YjJlOGUyYTQxMTdiM2EzYWYzNS4uMmU4ZTRlN2RkYTQ4OGNhODEyMDk3ZjVi
NmJkZDBlOGYwNmY2YjU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC03Miw3ICs3Miw3IEBACiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNp
bXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgotI2ltcG9y
dCA8d3RmL2NvY29hL1R5cGVDYXN0c05TLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3Rz
Q29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvTlNPYmpDUnVudGltZVNQSS5oPgogI2lt
cG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oPgpAQCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6OnBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIFJlZlB0cjxX
ZWJQcm9jZXNzUG9vbD4gZXh0cmFjdFdlYlByb2Nlc3NQb29sKHZvaWQqIG9ic2VydmVyKQogewot
ICAgIFJldGFpblB0ciBzdHJvbmdPYnNlcnZlciB7IGR5bmFtaWNfbnNfY2FzdDxXS1Byb2Nlc3NQ
b29sV2Vha09ic2VydmVyPihyZWludGVycHJldF9jYXN0PGlkPihvYnNlcnZlcikpIH07CisgICAg
UmV0YWluUHRyIHN0cm9uZ09ic2VydmVyIHsgZHluYW1pY19vYmpjX2Nhc3Q8V0tQcm9jZXNzUG9v
bFdlYWtPYnNlcnZlcj4ocmVpbnRlcnByZXRfY2FzdDxpZD4ob2JzZXJ2ZXIpKSB9OwogICAgIGlm
ICghc3Ryb25nT2JzZXJ2ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBb
c3Ryb25nT2JzZXJ2ZXIgcG9vbF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDgyMDI3NDdlOWY3NDRiYmQ3YjNk
YjQ1ZDBhMzUzMzBjZTBlN2M5MWMuLjgyOTI4YjFiNWQyYjYyZDJhZTRkMjdmNmYzZWMzMWZiZTU3
YWUzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCkBAIC00NCw2ICs0NCw3IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0Vu
dGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1Nh
bmRib3hTUEkuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNzc4MmM1YzY5ZTI1M2M4ZWE1N2MwZTY5
MmZlOWRkZjk4Y2E5OWE0My4uNzNlMDE1NDliYWUwNTkwMTZmMjY1MmVjMGQyNTM0ODgyMTZmMDE5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xNDUsMTEgKzE0NSwxMSBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNF
eGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KLSNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3Bl
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VS
TEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0u
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KaW5kZXggNDI2MzVlYjNmZTcxOTdiYjQwNGQ3YTg5ODg1YjEwZDkwZDBiZjgwOC4uODVl
NjdiODMxZWFhZmJkNzEwODNmNDlhZGE3ZTJiMTNhNWRlNjM2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMDUsNiArMTA1
LDcgQEAKICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNpbXBvcnQgPHd0Zi9j
b2NvYS9OU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KICNp
bXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbQppbmRleCBkMGE5NWViNzRjNThiZmEwOTFjMTFkNDA5OTEzZjhm
N2YzNDI1ZWIzLi43MjExZGJmNTUxNGUxOTlhZTEyYjBmNjJhNzhlMjJjOWM2MjE5MjAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQubW0KQEAgLTU5LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZVBhc3Rl
Ym9hcmRDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFzdGVib2FyZFdyaXRlci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0
c0NvY29hLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAyMzA5MjI2MGY2YmMxNTA3
ODM0YWVkNmQ4NTBjY2JkMmFiZGJiNDg3Li5jZWM5YjhlMzE4NTk4YWVlZWI4NDExNzA2ODExYmMz
MTJjYzFjZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KQEAgLTE1Miw2ICsxNTIsNyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPgogI2ltcG9ydCA8d3RmL2NvY29h
L1ZlY3RvckNvY29hLmg+CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzIwODEyN2QwNDBiOTdhOWJmMGQ1ODFh
YTllYTY0NWQzZjE1NjdkOS4uZWE0MDBkNDY0ODBhNzlkMjg3NWEyOTUxZTNlYzViM2YzM2QyMWJl
MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDIxLTA5LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHtjaGVja2VkLGR5bmFtaWN9X25zX2Nhc3Q8PiB0byB7Y2hl
Y2tlZCxkeW5hbWljfV9vYmpjX2Nhc3Q8PgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjMwNTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzMjMxNDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBVcGRhdGUgZm9y
IHJlbmFtZSBvZiBUeXBlQ2FzdHNOUy5oIHRvIFR5cGVDYXN0c0NvY29hLmguCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVHlwZUNhc3RzQ29jb2EubW06IFJlbmFtZSBm
cm9tIFR5cGVDYXN0c05TLm1tLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgIC0gVXBkYXRlIGZvciByZW5hbWUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgLSBJbXBvcnQg
PHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPiBmb3IgZnV0dXJlIG1vdmUgb2YKKyAgICAgICAg
ICBXVEY6OmR5bmFtaWNfb2JqY19jYXN0PD4gZnJvbSBSZXRhaW5QdHIuaCB0byB0aGF0IGhlYWRl
ci4KKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFN0b3AgdXNpbmcgbWFrZVJlZigqdGhpcykgLyBtYWtlUmVmUHRyKHRoaXMpCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGM4ZjY4MjI4OWFhODFmNjk5NjcyN2FhMGQ1OTIyODlhZTA0ZGVh
YWUuLmQ3ODk4ZGQyNzk5NWE0OGJjMmY2MWYwNTQxNmMxMDBjZWViZTNhYjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yNjcsNyArMjY3LDcgQEAKIAkJNDQ4RDdFNDcxRUE2QzU1NTAwRUND
NzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52
aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJNDRBQzhCQzYyMUQwMjQ1QTAwQ0FG
QjM0IC8qIFJldGFpblB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLzsg
fTsKIAkJNDRDMkZCRTIyNUU3NTkyQzAwQUJDNzJGIC8qIFdLQXBwSGlnaGxpZ2h0cy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0QzJGQkUxMjVFNzU5
MkMwMEFCQzcyRiAvKiBXS0FwcEhpZ2hsaWdodHMubW0gKi87IH07Ci0JCTQ0Q0RFNEQ0MjZFRTZF
NEEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNOUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNO
Uy5tbSAqLzsgfTsKKwkJNDRDREU0RDQyNkVFNkU0QTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRDREU0
RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovOyB9OwogCQk0NENGMzFG
RDI0OTk0MUU4MDA5Q0I2Q0IgLyogQ29udGV4dE1lbnVBY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRDRjMxRkIyNDk5M0Y2NjAwOUNCNkNC
IC8qIENvbnRleHRNZW51QWN0aW9uLmNwcCAqLzsgfTsKIAkJNDYxMkMyQjkyMTBBNkFDRTAwQjc4
OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRo
ZW5SZWxvYWQubW0gKi87IH07CiAJCTQ2MjhDOEU5MjM2N0FCRDEwMEIwNzNGMCAvKiBXS1NlY3Vy
aXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAqLzsg
fTsKQEAgLTIxMDAsNyArMjEwMCw3IEBACiAJCTQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBF
bnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRDMkZCRTEyNUU3NTkyQzAwQUJDNzJG
IC8qIFdLQXBwSGlnaGxpZ2h0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLQXBwSGlnaGxpZ2h0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c05TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVHlwZUNhc3RzTlMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFR5cGVDYXN0c0Nv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NENGMzFGQjI0OTkzRjY2MDA5
Q0I2Q0IgLyogQ29udGV4dE1lbnVBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ29udGV4dE1lbnVBY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjEyQzJCODIxMEE2QUJGMDBCNzg4QTYgLyogTG9hZEZpbGVUaGVuUmVsb2FkLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEZpbGVUaGVuUmVs
b2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjI4QzhFODIzNjdBQkJDMDBC
MDczRjAgLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ5ODUsNyArNDk4NSw3IEBACiAJCQkJQkMzRkVCNjMyNjdGQ0Y3NDAwNTQwMDZBIC8q
IFNwYW5Db2NvYS5tbSAqLywKIAkJCQkxQzQ2MTZBNjI2QkIxNzJGMDBGOEM5RjYgLyogVGV4dFN0
cmVhbUNvY29hLmNwcCAqLywKIAkJCQkxQzQ2MTY5RTI2QkE1MTA3MDBGOEM5RjYgLyogVGV4dFN0
cmVhbUNvY29hLm1tICovLAotCQkJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2Fz
dHNOUy5tbSAqLywKKwkJCQk0NENERTREMzI2RUU2RTQxMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29j
b2EubW0gKi8sCiAJCQkJRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5tbSAq
LywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CkBAIC01MzU5LDcgKzUzNTksNyBAQAogCQkJCUUz
OEEwRDM1MUZENTBDQzMwMEU5OEM4QiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTMxMUJENUUxRUE5NDkwRTAwNTI1MjgxIC8qIFRocmVhZE1lc3NhZ2VzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMkMyMEI4MURDRDU0NTAwMDU0MkQ5RSAvKiBUaW1lLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTQ0Q0RFNEQ0MjZFRTZFNEEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNOUy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTQ0Q0RFNEQ0MjZFRTZFNEEwMDlGNkFDQiAvKiBUeXBlQ2FzdHND
b2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUzMjRBNkYwMjA0MUM4MjAwMEE3NjU5MyAvKiBV
bmlxdWVBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFM0ExRTc4MjIxQjI1QjdBMDA4QzYw
MDcgLyogVVJMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzQzIxQTdDMjFCMjVDQTIwMDNCMzFB
MyAvKiBVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c0NvY29hLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVHlwZUNhc3RzQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAx
OGJhYjUxZWQ5MWEyYzk3ZGNkYzNhNTljYWNiNzIzYWM4OGQ2ZAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c0NvY29hLm1tCkBA
IC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CisKKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KKworQGludGVyZmFjZSBNeU9iamVjdFN1YnR5cGUgOiBOU09iamVjdAorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gTXlPYmplY3RTdWJ0eXBlCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKwordXNpbmcgbmFtZXNwYWNlIFdURjsKKworVEVTVChUeXBlQ2FzdHNDb2NvYSwg
Y2hlY2tlZF9vYmpjX2Nhc3QpCit7CisgICAgRVhQRUNUX0VRKG5pbCwgY2hlY2tlZF9vYmpjX2Nh
c3Q8TlNTdHJpbmc+KG5pbCkpOworCisgICAgeworICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0
TlMocmVpbnRlcnByZXRfY2FzdDxpZD4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6
QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCks
IGNoZWNrZWRfb2JqY19jYXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKG9iamVjdC5nZXQoKSwgY2hlY2tlZF9vYmpjX2Nhc3Q8TlNPYmplY3Q+KG9iamVjdC5n
ZXQoKSkpOworICAgIH0KKworICAgIHsKKyAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJl
aW50ZXJwcmV0X2Nhc3Q8TlNPYmplY3QgKj4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3Jt
YXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0
KCksIGNoZWNrZWRfb2JqY19jYXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKKyAgICB9CisK
KyAgICB7CisgICAgICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBp
bml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pOworICAgICAgICBFWFBFQ1RfRVEo
b2JqZWN0LmdldCgpLCBjaGVja2VkX29iamNfY2FzdDxOU09iamVjdD4ob2JqZWN0LmdldCgpKSk7
CisgICAgfQorfQorCitURVNUKFR5cGVDYXN0c0NvY29hLCBkeW5hbWljX29iamNfY2FzdCkKK3sK
KyAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX29iamNfY2FzdDxOU1N0cmluZz4obmlsKSk7CisK
KyAgICB7CisgICAgICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PGlk
PihbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0p
KTsKKyAgICAgICAgRVhQRUNUX0VRKG9iamVjdC5nZXQoKSwgZHluYW1pY19vYmpjX2Nhc3Q8TlNT
dHJpbmc+KG9iamVjdC5nZXQoKSkpOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LmdldCgpLCBk
eW5hbWljX29iamNfY2FzdDxOU09iamVjdD4ob2JqZWN0LmdldCgpKSk7CisgICAgICAgIEVYUEVD
VF9FUShuaWwsIGR5bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+KG9iamVjdC5nZXQoKSkpOworICAg
IH0KKworICAgIHsKKyAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nh
c3Q8TlNPYmplY3QgKj4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJI
ZWxsbyB3b3JsZCJdKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGR5bmFtaWNf
b2JqY19jYXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKG5p
bCwgZHluYW1pY19vYmpjX2Nhc3Q8TlNBcnJheT4ob2JqZWN0LmdldCgpKSk7CisgICAgfQorCisg
ICAgeworICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5p
dFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKTsKKyAgICAgICAgRVhQRUNUX0VRKG9i
amVjdC5nZXQoKSwgZHluYW1pY19vYmpjX2Nhc3Q8TlNPYmplY3Q+KG9iamVjdC5nZXQoKSkpOwor
ICAgICAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX29iamNfY2FzdDxOU0FycmF5PihvYmplY3Qu
Z2V0KCkpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhy
ZWludGVycHJldF9jYXN0PGlkPihbW05TT2JqZWN0IGFsbG9jXSBpbml0XSkpOworICAgICAgICBF
WFBFQ1RfRVEob2JqZWN0LmdldCgpLCBkeW5hbWljX29iamNfY2FzdDxOU09iamVjdD4ob2JqZWN0
LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFtaWNfb2JqY19jYXN0PE15T2Jq
ZWN0U3VidHlwZT4ob2JqZWN0LmdldCgpKSk7CisgICAgfQorCisgICAgeworICAgICAgICBhdXRv
IG9iamVjdCA9IGFkb3B0TlMoW1tOU09iamVjdCBhbGxvY10gaW5pdF0pOworICAgICAgICBFWFBF
Q1RfRVEobmlsLCBkeW5hbWljX29iamNfY2FzdDxNeU9iamVjdFN1YnR5cGU+KG9iamVjdC5nZXQo
KSkpOworICAgIH0KK30KKworVEVTVChUeXBlQ2FzdHNDb2NvYSwgZHluYW1pY19uc19jYXN0X1Jl
dGFpblB0cikKK3sKKyAgICB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gb2JqZWN0Owor
ICAgICAgICBhdXRvIG9iamVjdENhc3QgPSBkeW5hbWljX29iamNfY2FzdDxOU1N0cmluZz4oV1RG
TW92ZShvYmplY3QpKTsKKyAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0LmdldCgpKTsKKyAg
ICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0Q2FzdC5nZXQoKSk7CisgICAgfQorCisgICAgewor
ICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxpZD4oW1tOU1N0
cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7CisgICAg
ICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKKyAgICAgICAgYXV0byBvYmplY3RDYXN0
ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNTdHJpbmc+KFdURk1vdmUob2JqZWN0KSk7CisgICAgICAg
IEVYUEVDVF9FUShuaWwsIG9iamVjdC5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3RQ
dHIsIG9iamVjdENhc3QuZ2V0KCkpOworICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBB
UkMuCisgICAgICAgIEVYUEVDVF9FUSgxVSwgW29iamVjdENhc3QgcmV0YWluQ291bnRdKTsKKwor
ICAgICAgICBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcg
YWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOworICAgICAgICBv
YmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5h
bWljX29iamNfY2FzdDxOU09iamVjdD4oV1RGTW92ZShvYmplY3QpKTsKKyAgICAgICAgRVhQRUNU
X0VRKG5pbCwgb2JqZWN0LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG9iamVjdFB0ciwgb2Jq
ZWN0Q2FzdDIuZ2V0KCkpOworICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBBUkMuCisg
ICAgICAgIEVYUEVDVF9FUSgxVSwgW29iamVjdENhc3QyIHJldGFpbkNvdW50XSk7CisKKyAgICAg
ICAgb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PGlkPihbW05TU3RyaW5nIGFsbG9j
XSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pKTsKKyAgICAgICAgb2JqZWN0
UHRyID0gb2JqZWN0LmdldCgpOworICAgICAgICBhdXRvIG9iamVjdENhc3QzID0gZHluYW1pY19v
YmpjX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsKKyAgICAgICAgRVhQRUNUX0VRKG9i
amVjdFB0ciwgb2JqZWN0LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0Q2Fz
dDMuZ2V0KCkpOworICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBBUkMuCisgICAgICAg
IEVYUEVDVF9FUSgxVSwgW29iamVjdCByZXRhaW5Db3VudF0pOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8TlNPYmplY3QgKj4o
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7
CisgICAgICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKKyAgICAgICAgYXV0byBvYmpl
Y3RDYXN0ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNTdHJpbmc+KFdURk1vdmUob2JqZWN0KSk7Cisg
ICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdC5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShv
YmplY3RQdHIsIG9iamVjdENhc3QuZ2V0KCkpOworICAgICAgICBvYmplY3RQdHIgPSBuaWw7Cisg
ICAgICAgIEVYUEVDVF9FUSgxVSwgW29iamVjdENhc3QgcmV0YWluQ291bnRdKTsKKworICAgICAg
ICBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8TlNPYmplY3QgKj4oW1tOU1N0cmlu
ZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7CisgICAgICAg
IG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKKyAgICAgICAgYXV0byBvYmplY3RDYXN0MiA9IGR5
bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+KFdURk1vdmUob2JqZWN0KSk7CisgICAgICAgIEVYUEVD
VF9FUShvYmplY3RQdHIsIG9iamVjdC5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShuaWwsIG9i
amVjdENhc3QyLmdldCgpKTsKKyAgICAgICAgb2JqZWN0UHRyID0gbmlsOworICAgICAgICBFWFBF
Q1RfRVEoMVUsIFtvYmplY3QgcmV0YWluQ291bnRdKTsKKyAgICB9CisKKyAgICB7CisgICAgICAg
IGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpA
IiVzIiwgIkhlbGxvIHdvcmxkIl0pOworICAgICAgICBpZCBvYmplY3RQdHIgPSBvYmplY3QuZ2V0
KCk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TT2JqZWN0
PihXVEZNb3ZlKG9iamVjdCkpOworICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkp
OworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKKyAgICAg
ICAgb2JqZWN0UHRyID0gbmlsOworICAgICAgICBFWFBFQ1RfRVEoMVUsIFtvYmplY3RDYXN0IHJl
dGFpbkNvdW50XSk7CisKKyAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9j
XSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pOworICAgICAgICBvYmplY3RQ
dHIgPSBvYmplY3QuZ2V0KCk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX29i
amNfY2FzdDxOU0FycmF5PihXVEZNb3ZlKG9iamVjdCkpOworICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0UHRyLCBvYmplY3QuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3RDYXN0
Mi5nZXQoKSk7CisgICAgICAgIG9iamVjdFB0ciA9IG5pbDsKKyAgICAgICAgRVhQRUNUX0VRKDFV
LCBbb2JqZWN0IHJldGFpbkNvdW50XSk7CisgICAgfQorCisgICAgeworICAgICAgICBhdXRvIG9i
amVjdCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxpZD4oW1tOU09iamVjdCBhbGxvY10gaW5p
dF0pKTsKKyAgICAgICAgaWQgb2JqZWN0UHRyID0gb2JqZWN0LmdldCgpOworICAgICAgICBhdXRv
IG9iamVjdENhc3QgPSBkeW5hbWljX29iamNfY2FzdDxOU09iamVjdD4oV1RGTW92ZShvYmplY3Qp
KTsKKyAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0LmdldCgpKTsKKyAgICAgICAgRVhQRUNU
X0VRKG9iamVjdFB0ciwgb2JqZWN0Q2FzdC5nZXQoKSk7CisgICAgICAgIG9iamVjdFB0ciA9IG5p
bDsgLy8gRm9yIEFSQy4KKyAgICAgICAgRVhQRUNUX0VRKDFVLCBbb2JqZWN0Q2FzdCByZXRhaW5D
b3VudF0pOworCisgICAgICAgIG9iamVjdCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxpZD4o
W1tOU09iamVjdCBhbGxvY10gaW5pdF0pKTsKKyAgICAgICAgb2JqZWN0UHRyID0gb2JqZWN0Lmdl
dCgpOworICAgICAgICBhdXRvIG9iamVjdENhc3QyID0gZHluYW1pY19vYmpjX2Nhc3Q8TXlPYmpl
Y3RTdWJ0eXBlPihXVEZNb3ZlKG9iamVjdCkpOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRy
LCBvYmplY3QuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3RDYXN0Mi5nZXQo
KSk7CisgICAgICAgIG9iamVjdFB0ciA9IG5pbDsgLy8gRm9yIEFSQy4KKyAgICAgICAgRVhQRUNU
X0VRKDFVLCBbb2JqZWN0IHJldGFpbkNvdW50XSk7CisgICAgfQorCisgICAgeworICAgICAgICBh
dXRvIG9iamVjdCA9IGFkb3B0TlMoW1tOU09iamVjdCBhbGxvY10gaW5pdF0pOworICAgICAgICBp
ZCBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5
bmFtaWNfb2JqY19jYXN0PE15T2JqZWN0U3VidHlwZT4oV1RGTW92ZShvYmplY3QpKTsKKyAgICAg
ICAgRVhQRUNUX0VRKG9iamVjdFB0ciwgb2JqZWN0LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VR
KG5pbCwgb2JqZWN0Q2FzdC5nZXQoKSk7CisgICAgICAgIG9iamVjdFB0ciA9IG5pbDsgLy8gRm9y
IEFSQy4KKyAgICAgICAgRVhQRUNUX0VRKDFVLCBbb2JqZWN0IHJldGFpbkNvdW50XSk7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9UeXBlQ2FzdHNOUy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c05TLm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYzkyM2M1MWNiOTk3YjAzMDgxZjMwMjUzNDUwYmMxNGI5MTcyZmJiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c05TLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsMTk2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0
IDx3dGYvY29jb2EvVHlwZUNhc3RzTlMuaD4KLQotI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5o
PgotCi1AaW50ZXJmYWNlIE15T2JqZWN0U3VidHlwZSA6IE5TT2JqZWN0Ci1AZW5kCi0KLUBpbXBs
ZW1lbnRhdGlvbiBNeU9iamVjdFN1YnR5cGUKLUBlbmQKLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewotCi11c2luZyBuYW1lc3BhY2UgV1RGOwotCi1URVNUKFR5cGVDYXN0c05TLCBjaGVja2Vk
X25zX2Nhc3QpCi17Ci0gICAgRVhQRUNUX0VRKG5pbCwgY2hlY2tlZF9uc19jYXN0PE5TU3RyaW5n
PihuaWwpKTsKLQotICAgIHsKLSAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJw
cmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVs
bG8gd29ybGQiXSkpOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LmdldCgpLCBjaGVja2VkX25z
X2Nhc3Q8TlNTdHJpbmc+KG9iamVjdC5nZXQoKSkpOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0
LmdldCgpLCBjaGVja2VkX25zX2Nhc3Q8TlNPYmplY3Q+KG9iamVjdC5nZXQoKSkpOwotICAgIH0K
LQotICAgIHsKLSAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8
TlNPYmplY3QgKj4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxs
byB3b3JsZCJdKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGNoZWNrZWRfbnNf
Y2FzdDxOU1N0cmluZz4ob2JqZWN0LmdldCgpKSk7Ci0gICAgfQotCi0gICAgewotICAgICAgICBh
dXRvIG9iamVjdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIl
cyIsICJIZWxsbyB3b3JsZCJdKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdC5nZXQoKSwgY2hl
Y2tlZF9uc19jYXN0PE5TT2JqZWN0PihvYmplY3QuZ2V0KCkpKTsKLSAgICB9Ci19Ci0KLVRFU1Qo
VHlwZUNhc3RzTlMsIGR5bmFtaWNfbnNfY2FzdCkKLXsKLSAgICBFWFBFQ1RfRVEobmlsLCBkeW5h
bWljX25zX2Nhc3Q8TlNTdHJpbmc+KG5pbCkpOwotCi0gICAgewotICAgICAgICBhdXRvIG9iamVj
dCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxpZD4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdp
dGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmpl
Y3QuZ2V0KCksIGR5bmFtaWNfbnNfY2FzdDxOU1N0cmluZz4ob2JqZWN0LmdldCgpKSk7Ci0gICAg
ICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGR5bmFtaWNfbnNfY2FzdDxOU09iamVjdD4ob2Jq
ZWN0LmdldCgpKSk7Ci0gICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFtaWNfbnNfY2FzdDxOU0Fy
cmF5PihvYmplY3QuZ2V0KCkpKTsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIGF1dG8gb2JqZWN0
ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PE5TT2JqZWN0ICo+KFtbTlNTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwotICAgICAgICBFWFBFQ1Rf
RVEob2JqZWN0LmdldCgpLCBkeW5hbWljX25zX2Nhc3Q8TlNTdHJpbmc+KG9iamVjdC5nZXQoKSkp
OwotICAgICAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX25zX2Nhc3Q8TlNBcnJheT4ob2JqZWN0
LmdldCgpKSk7Ci0gICAgfQotCi0gICAgewotICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMo
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKTsK
LSAgICAgICAgRVhQRUNUX0VRKG9iamVjdC5nZXQoKSwgZHluYW1pY19uc19jYXN0PE5TT2JqZWN0
PihvYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgZHluYW1pY19uc19jYXN0
PE5TQXJyYXk+KG9iamVjdC5nZXQoKSkpOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgYXV0byBv
YmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNPYmplY3QgYWxsb2NdIGlu
aXRdKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGR5bmFtaWNfbnNfY2FzdDxO
U09iamVjdD4ob2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFtaWNf
bnNfY2FzdDxNeU9iamVjdFN1YnR5cGU+KG9iamVjdC5nZXQoKSkpOwotICAgIH0KLQotICAgIHsK
LSAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKFtbTlNPYmplY3QgYWxsb2NdIGluaXRdKTsK
LSAgICAgICAgRVhQRUNUX0VRKG5pbCwgZHluYW1pY19uc19jYXN0PE15T2JqZWN0U3VidHlwZT4o
b2JqZWN0LmdldCgpKSk7Ci0gICAgfQotfQotCi1URVNUKFR5cGVDYXN0c05TLCBkeW5hbWljX25z
X2Nhc3RfUmV0YWluUHRyKQotewotICAgIHsKLSAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBv
YmplY3Q7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfbnNfY2FzdDxOU1N0cmlu
Zz4oV1RGTW92ZShvYmplY3QpKTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0LmdldCgp
KTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0Q2FzdC5nZXQoKSk7Ci0gICAgfQotCi0g
ICAgewotICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxpZD4o
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7
Ci0gICAgICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKLSAgICAgICAgYXV0byBvYmpl
Y3RDYXN0ID0gZHluYW1pY19uc19jYXN0PE5TU3RyaW5nPihXVEZNb3ZlKG9iamVjdCkpOwotICAg
ICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwotICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKLSAgICAgICAgb2JqZWN0UHRyID0gbmlsOyAvLyBG
b3IgQVJDLgotICAgICAgICBFWFBFQ1RfRVEoMVUsIFtvYmplY3RDYXN0IHJldGFpbkNvdW50XSk7
Ci0KLSAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PGlkPihbW05TU3Ry
aW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pKTsKLSAgICAg
ICAgb2JqZWN0UHRyID0gb2JqZWN0LmdldCgpOwotICAgICAgICBhdXRvIG9iamVjdENhc3QyID0g
ZHluYW1pY19uc19jYXN0PE5TT2JqZWN0PihXVEZNb3ZlKG9iamVjdCkpOwotICAgICAgICBFWFBF
Q1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBv
YmplY3RDYXN0Mi5nZXQoKSk7Ci0gICAgICAgIG9iamVjdFB0ciA9IG5pbDsgLy8gRm9yIEFSQy4K
LSAgICAgICAgRVhQRUNUX0VRKDFVLCBbb2JqZWN0Q2FzdDIgcmV0YWluQ291bnRdKTsKLQotICAg
ICAgICBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcgYWxs
b2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwotICAgICAgICBvYmpl
Y3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdDMgPSBkeW5hbWlj
X25zX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsKLSAgICAgICAgRVhQRUNUX0VRKG9i
amVjdFB0ciwgb2JqZWN0LmdldCgpKTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0Q2Fz
dDMuZ2V0KCkpOwotICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBBUkMuCi0gICAgICAg
IEVYUEVDVF9FUSgxVSwgW29iamVjdCByZXRhaW5Db3VudF0pOwotICAgIH0KLQotICAgIHsKLSAg
ICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8TlNPYmplY3QgKj4o
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7
Ci0gICAgICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKLSAgICAgICAgYXV0byBvYmpl
Y3RDYXN0ID0gZHluYW1pY19uc19jYXN0PE5TU3RyaW5nPihXVEZNb3ZlKG9iamVjdCkpOwotICAg
ICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwotICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKLSAgICAgICAgb2JqZWN0UHRyID0gbmlsOwotICAg
ICAgICBFWFBFQ1RfRVEoMVUsIFtvYmplY3RDYXN0IHJldGFpbkNvdW50XSk7Ci0KLSAgICAgICAg
b2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PE5TT2JqZWN0ICo+KFtbTlNTdHJpbmcg
YWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwotICAgICAgICBv
YmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5h
bWljX25zX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsKLSAgICAgICAgRVhQRUNUX0VR
KG9iamVjdFB0ciwgb2JqZWN0LmdldCgpKTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0
Q2FzdDIuZ2V0KCkpOwotICAgICAgICBvYmplY3RQdHIgPSBuaWw7Ci0gICAgICAgIEVYUEVDVF9F
USgxVSwgW29iamVjdCByZXRhaW5Db3VudF0pOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgYXV0
byBvYmplY3QgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMi
LCAiSGVsbG8gd29ybGQiXSk7Ci0gICAgICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsK
LSAgICAgICAgYXV0byBvYmplY3RDYXN0ID0gZHluYW1pY19uc19jYXN0PE5TT2JqZWN0PihXVEZN
b3ZlKG9iamVjdCkpOwotICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwotICAg
ICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKLSAgICAgICAgb2Jq
ZWN0UHRyID0gbmlsOwotICAgICAgICBFWFBFQ1RfRVEoMVUsIFtvYmplY3RDYXN0IHJldGFpbkNv
dW50XSk7Ci0KLSAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0
V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pOwotICAgICAgICBvYmplY3RQdHIgPSBv
YmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX25zX2Nhc3Q8
TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdFB0ciwg
b2JqZWN0LmdldCgpKTsKLSAgICAgICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0Q2FzdDIuZ2V0KCkp
OwotICAgICAgICBvYmplY3RQdHIgPSBuaWw7Ci0gICAgICAgIEVYUEVDVF9FUSgxVSwgW29iamVj
dCByZXRhaW5Db3VudF0pOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgYXV0byBvYmplY3QgPSBh
ZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNPYmplY3QgYWxsb2NdIGluaXRdKSk7Ci0g
ICAgICAgIGlkIG9iamVjdFB0ciA9IG9iamVjdC5nZXQoKTsKLSAgICAgICAgYXV0byBvYmplY3RD
YXN0ID0gZHluYW1pY19uc19jYXN0PE5TT2JqZWN0PihXVEZNb3ZlKG9iamVjdCkpOwotICAgICAg
ICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0
UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKLSAgICAgICAgb2JqZWN0UHRyID0gbmlsOyAvLyBGb3Ig
QVJDLgotICAgICAgICBFWFBFQ1RfRVEoMVUsIFtvYmplY3RDYXN0IHJldGFpbkNvdW50XSk7Ci0K
LSAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PGlkPihbW05TT2JqZWN0
IGFsbG9jXSBpbml0XSkpOwotICAgICAgICBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAg
ICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX25zX2Nhc3Q8TXlPYmplY3RTdWJ0eXBlPihX
VEZNb3ZlKG9iamVjdCkpOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBvYmplY3QuZ2V0
KCkpOwotICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3RDYXN0Mi5nZXQoKSk7Ci0gICAgICAg
IG9iamVjdFB0ciA9IG5pbDsgLy8gRm9yIEFSQy4KLSAgICAgICAgRVhQRUNUX0VRKDFVLCBbb2Jq
ZWN0IHJldGFpbkNvdW50XSk7Ci0gICAgfQotCi0gICAgewotICAgICAgICBhdXRvIG9iamVjdCA9
IGFkb3B0TlMoW1tOU09iamVjdCBhbGxvY10gaW5pdF0pOwotICAgICAgICBpZCBvYmplY3RQdHIg
PSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfbnNfY2Fz
dDxNeU9iamVjdFN1YnR5cGU+KFdURk1vdmUob2JqZWN0KSk7Ci0gICAgICAgIEVYUEVDVF9FUShv
YmplY3RQdHIsIG9iamVjdC5nZXQoKSk7Ci0gICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdENh
c3QuZ2V0KCkpOwotICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBBUkMuCi0gICAgICAg
IEVYUEVDVF9FUSgxVSwgW29iamVjdCByZXRhaW5Db3VudF0pOwotICAgIH0KLX0KLQotfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KaW5kZXggOTJk
Y2IxOTdiYjZiZmEzMDExMTY4MjkyNDNiMzY4NWFiMjY2ZGFiNy4uZTFjNjZkYjM3OTJiNTEyMmJm
MmI1MTViOGY4ZjIzNThkM2YyNDIwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCkBAIC0z
MCw3ICszMCw3IEBACiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KIAog
VEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzU2hvdWxkUmV0dXJuU3RyaW5nKQogewpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmlu
ZGV4IGNiYWU5NTFiNGNhMWEyNzBjZWI3ZjZlZjkwMDRjYzQ0MWE2OGViNTAuLjI1OWVmMGJhNWY1
ZTBkODcwY2VlZjU5MTU1NmFiMjVlMmQzZmM5OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcu
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHND
b2NvYS5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJ
S2l0LCBVSVBoeXNpY2FsS2V5Ym9hcmRFdmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438730</attachid>
            <date>2021-09-20 14:31:58 -0700</date>
            <delta_ts>2021-09-21 15:13:33 -0700</delta_ts>
            <desc>Patch v1 (showing changes in renamed files)</desc>
            <filename>0001-Rename-checked-dynamic-_ns_cast-to-checked-dynamic-_.patch</filename>
            <type>text/plain</type>
            <size>37556</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">RnJvbSAzMDBmZWI0NGJiZTk3OTA5MDBkMzRkMTI5YmM1N2FiYmY1NDhjNmQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBLaWx6ZXIgPGRka2lsemVyQGFwcGxlLmNvbT4KRGF0
ZTogTW9uLCAyMCBTZXAgMjAyMSAxMzo1ODo0MSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbmFt
ZSB7Y2hlY2tlZCxkeW5hbWljfV9uc19jYXN0PD4gdG8KIHtjaGVja2VkLGR5bmFtaWN9X29iamNf
Y2FzdDw+IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMzA1MDg+CiA8cmRhcjovL3Byb2JsZW0vODMz
MjMxNDU+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKKiBN
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CiogTW9k
dWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW06Ci0gQWxz
byBmaXggKlNvZnRMaW5rLmggaGVhZGVyIG9yZGVyLgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgoqIHBsYXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVy
Lm1tOgoqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKLSBJbXBvcnQgPHd0Zi9jb2NvYS9U
eXBlQ2FzdHNDb2NvYS5oPiBmb3IgZnV0dXJlIG1vdmUgb2YKICBXVEY6OmR5bmFtaWNfb2JqY19j
YXN0PD4gZnJvbSBSZXRhaW5QdHIuaCB0byB0aGF0IGhlYWRlci4KClNvdXJjZS9XZWJLaXQ6Cgoq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgooV2ViS2l0OjpleHRyYWN0
V2ViUHJvY2Vzc1Bvb2wpOgotIFVwZGF0ZSBmb3IgcmVuYW1lLgoKKiBTaGFyZWQvQ29jb2EvQXJn
dW1lbnRDb2RlcnNDb2NvYS5tbToKKiBTaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbToKKiBV
SVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbToKKiBVSVByb2Nlc3MvQ29j
b2EvTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tOgotIEFsc28gZml4ICpTb2Z0TGluay5oIGhl
YWRlciBvcmRlci4KKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06Ciog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CiogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06Ci0gSW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29j
b2EuaD4gZm9yIGZ1dHVyZSBtb3ZlIG9mCiAgV1RGOjpkeW5hbWljX29iamNfY2FzdDw+IGZyb20g
UmV0YWluUHRyLmggdG8gdGhhdCBoZWFkZXIuCgpTb3VyY2UvV2ViS2l0TGVnYWN5L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
OgotIEltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+IGZvciBmdXR1cmUgbW92ZSBv
ZgogIFdURjo6ZHluYW1pY19vYmpjX2Nhc3Q8PiBmcm9tIFJldGFpblB0ci5oIHRvIHRoYXQgaGVh
ZGVyLgoKU291cmNlL1dURjoKCiogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ciogd3Rm
L1BsYXRmb3JtTWFjLmNtYWtlOgotIFVwZGF0ZSBmb3IgcmVuYW1lIG9mIFR5cGVDYXN0c05TLmgg
dG8gVHlwZUNhc3RzQ29jb2EuaC4KCiogd3RmL1JldGFpblB0ci5oOgooV1RGOjpkeW5hbWljX29i
amNfY2FzdCk6Ci0gTW92ZSBkeW5hbWljX25zX2Nhc3Q8PiBmcm9tIFR5cGVDYXN0c05TLmggdG8g
aGVyZS4KLSBSZW1vdmUgYHVzaW5nYCBzdGF0ZW1lbnRzIHRvIGxpbWl0IE9iamVjdGl2ZS1DIHR5
cGVzIHdpdGhvdXQKICBhc3Rlcmlza3MgdG8gbWF0Y2ggUmV0YWluUHRyPD4uCiogd3RmL2NvY29h
L1R5cGVDYXN0c0NvY29hLmg6IFJlbmFtZSBmcm9tIFR5cGVDYXN0c05TLmguCihXVEY6OmNoZWNr
ZWRfb2JqY19jYXN0KToKKFdURjo6ZHluYW1pY19vYmpjX2Nhc3QpOgotIERvIHRoZSByZW5hbWUu
Ci0gUmVtb3ZlICJ1c2luZyBXVEY6OmR5bmFtaWNfbnNfY2FzdDsiIGluc3RlYWQgb2YgcmVuYW1p
bmcgaXQKICBzaW5jZSB0aGlzIGlzIGFscmVhZHkgaW4gUmV0YWluUHRyLmguCgpUb29sczoKCiog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0g
VXBkYXRlIGZvciByZW5hbWUgb2YgVHlwZUNhc3RzTlMuaCB0byBUeXBlQ2FzdHNDb2NvYS5oLgoq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c0NvY29hLm1tOiBSZW5hbWUg
ZnJvbSBUeXBlQ2FzdHNOUy5tbS4KKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgotIFVwZGF0ZSBmb3Ig
cmVuYW1lLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENv
bnRlbnRzLm1tOgoqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bToKLSBJbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPiBmb3IgZnV0dXJlIG1vdmUg
b2YKICBXVEY6OmR5bmFtaWNfb2JqY19jYXN0PD4gZnJvbSBSZXRhaW5QdHIuaCB0byB0aGF0IGhl
YWRlci4KLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAyNCArKysrKysrCiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAg
ICAgfCAgNCArLQogU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMuY21ha2UgICAgICAgICAgICAg
IHwgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oICAgICAgICAgICAgICAgICAgICB8
ICA3ICsrLQogLi4uL2NvY29hL3tUeXBlQ2FzdHNOUy5oID0+IFR5cGVDYXN0c0NvY29hLmh9IHwg
MjIgKystLS0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
IHwgMTcgKysrKysKIC4uLi9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tICAgICAg
ICB8ICAxICsKIC4uLi9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0gICAgICB8
ICAyICsKIC4uLi9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSAgICB8ICAx
ICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tICB8ICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gICAgfCAgMiArLQog
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwgMjMgKysrKysr
KwogLi4uL1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tICAgICAgIHwgIDEgKwog
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbSAgIHwgIDEgKwogLi4u
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIHwgIDIgKy0KIC4uLi9D
b2NvYS9NZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMubW0gICAgICAgICB8ICA4ICsrLQogLi4uL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tICAgIHwgIDQgKy0KIC4uLi9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gICB8ICAxICsKIC4uLi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSB8ICAyICstCiAuLi4vV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAxMyArKysrCiAuLi4vbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQubW0gICAgICAgfCAgMSArCiAuLi4vV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tICAgfCAgMSArCiBUb29scy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICA4ICstLQogLi4uL3tUeXBlQ2FzdHNOUy5tbSA9
PiBUeXBlQ2FzdHNDb2NvYS5tbX0gICAgIHwgNjIgKysrKysrKysrLS0tLS0tLS0tLQogLi4uL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIHwgIDIgKy0KIC4uLi9pb3Mv
VUlTY3JpcHRDb250cm9sbGVySU9TLm1tICAgICAgICAgICAgICB8ICAxICsKIDI4IGZpbGVzIGNo
YW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkKIHJlbmFtZSBTb3VyY2Uv
V1RGL3d0Zi9jb2NvYS97VHlwZUNhc3RzTlMuaCA9PiBUeXBlQ2FzdHNDb2NvYS5ofSAoNzUlKQog
cmVuYW1lIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL3tUeXBlQ2FzdHNOUy5t
bSA9PiBUeXBlQ2FzdHNDb2NvYS5tbX0gKDcyJSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3Zjg5M2Y5N2IyMi4uZTljYTIy
MmJhNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA5LTIwICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHtjaGVja2VkLGR5bmFtaWN9X25z
X2Nhc3Q8PiB0byB7Y2hlY2tlZCxkeW5hbWljfV9vYmpjX2Nhc3Q8PgorICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMjMwNTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzMjMxNDU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1NYWMuY21h
a2U6CisgICAgICAgIC0gVXBkYXRlIGZvciByZW5hbWUgb2YgVHlwZUNhc3RzTlMuaCB0byBUeXBl
Q2FzdHNDb2NvYS5oLgorCisgICAgICAgICogd3RmL1JldGFpblB0ci5oOgorICAgICAgICAoV1RG
OjpkeW5hbWljX29iamNfY2FzdCk6CisgICAgICAgIC0gTW92ZSBkeW5hbWljX25zX2Nhc3Q8PiBm
cm9tIFR5cGVDYXN0c05TLmggdG8gaGVyZS4KKyAgICAgICAgLSBSZW1vdmUgYHVzaW5nYCBzdGF0
ZW1lbnRzIHRvIGxpbWl0IE9iamVjdGl2ZS1DIHR5cGVzIHdpdGhvdXQKKyAgICAgICAgICBhc3Rl
cmlza3MgdG8gbWF0Y2ggUmV0YWluUHRyPD4uCisgICAgICAgICogd3RmL2NvY29hL1R5cGVDYXN0
c0NvY29hLmg6IFJlbmFtZSBmcm9tIFR5cGVDYXN0c05TLmguCisgICAgICAgIChXVEY6OmNoZWNr
ZWRfb2JqY19jYXN0KToKKyAgICAgICAgKFdURjo6ZHluYW1pY19vYmpjX2Nhc3QpOgorICAgICAg
ICAtIERvIHRoZSByZW5hbWUuCisgICAgICAgIC0gUmVtb3ZlICJ1c2luZyBXVEY6OmR5bmFtaWNf
bnNfY2FzdDsiIGluc3RlYWQgb2YgcmVuYW1pbmcgaXQKKyAgICAgICAgICBzaW5jZSB0aGlzIGlz
IGFscmVhZHkgaW4gUmV0YWluUHRyLmguCisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFr
ZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYWZjZjNmMWNmMDMxLi5hMmNhOGMxZTUwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzkxLDcgKzM5MSw3IEBACiAJCTQ0MjdDNUE5MjFGNkQ2QzMw
MEE2MTJBNCAvKiBBU0NJSUNUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFTQ0lJQ1R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDMw
OUQ0MDI2RUZDMTRBMDA0MDJBNjcgLyogTlNPYmpDUnVudGltZVNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU09iakNSdW50aW1lU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0Njg1
NjcyMjUwOTRGRTgwMDhDQ0EwNSAvKiBUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhbml0aXplclN1cHBvcnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRDREU0RDIyNkVFNkNEQTAwOUY2QUNCIC8qIFR5cGVD
YXN0c05TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVDYXN0c05TLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0Q0RFNEQyMjZFRTZDREEwMDlGNkFDQiAv
KiBUeXBlQ2FzdHNDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBl
Q2FzdHNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjIwOUEyNzI2NkQ1
NDNBMDA3RjhGNEEgLyogQ2FuY2VsbGFibGVUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbmNlbGxh
YmxlVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJBOUVBQjFGNENENjFF
MDA5QTJCQkMgLyogQ29tcGxldGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29tcGxldGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZCRUI2RTkyMkZGRERENTAwMjY5ODY3IC8qIFJlZkNvdW50ZWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVmQ291bnRlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjE4LDcgKzE2MTgsNyBAQAogCQkJCUEzMEQ0MTJDMUYwREUwQkEwMEI3MTk1NCAvKiBTb2Z0TGlu
a2luZy5oICovLAogCQkJCUJDM0ZFQjVFMjY3RkNENDYwMDU0MDA2QSAvKiBTcGFuQ29jb2EuaCAq
LywKIAkJCQlFQjYxRURDNjI0MDlDQ0MwMDAxRUZFMzYgLyogU3lzdGVtVHJhY2luZ0NvY29hLmNw
cCAqLywKLQkJCQk0NENERTREMjI2RUU2Q0RBMDA5RjZBQ0IgLyogVHlwZUNhc3RzTlMuaCAqLywK
KwkJCQk0NENERTREMjI2RUU2Q0RBMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29jb2EuaCAqLywKIAkJ
CQk1Q0MwRUU4NjIxNjJCQzIyMDBBMUE4NDIgLyogVVJMQ29jb2EubW0gKi8sCiAJCQkJOTMyNDE2
NTcyNDNCQzJFNTAwMzJGQUFFIC8qIFZlY3RvckNvY29hLmggKi8sCiAJCQkJRTRBMEFEM0MxQTk2
MjUzQzAwNTM2REY2IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMu
Y21ha2UKaW5kZXggZDMzOWY4YzY4NmUwLi43M2Q2MTkwMjU1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
TWFjLmNtYWtlCkBAIC0yMCw3ICsyMCw3IEBAIGxpc3QoQVBQRU5EIFdURl9QVUJMSUNfSEVBREVS
UwogICAgIGNvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKICAgICBjb2NvYS9T
b2Z0TGlua2luZy5oCiAgICAgY29jb2EvU3BhbkNvY29hLmgKLSAgICBjb2NvYS9UeXBlQ2FzdHNO
Uy5oCisgICAgY29jb2EvVHlwZUNhc3RzQ29jb2EuaAogICAgIGNvY29hL1ZlY3RvckNvY29hLmgK
IAogICAgIGRhcndpbi9XZWFrTGlua2luZy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9S
ZXRhaW5QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCmluZGV4IGI3MmE3ZWE1ZDVh
Ny4uNWE4NTZiZjgwMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaApAQCAtMzc2LDEyICszNzYsMTMgQEAgaW5s
aW5lIENGSGFzaENvZGUgc2FmZUNGSGFzaChDRlR5cGVSZWYgYSkKIH0KIAogI2lmZGVmIF9fT0JK
Q19fCisvLyBGSVhNRTogTW92ZSB0byBUeXBlQ2FzdHNDb2NvYS5oIG9uY2UgYWxsIGNsaWVudHMg
aW5jbHVkZSB0aGF0IGhlYWRlci4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQqIGR5bmFtaWNfb2Jq
Y19jYXN0KGlkIG9iamVjdCkKIHsKLSAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltUIGNs
YXNzXV0pCi0gICAgICAgIHJldHVybiAoVCAqKW9iamVjdDsKKyAgICBpZiAoIVtvYmplY3QgaXNL
aW5kT2ZDbGFzczpbVCBjbGFzc11dKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJl
dHVybiBuaWw7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KG9iamVjdCk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvVHlwZUNhc3RzTlMuaCBi
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmgKc2ltaWxhcml0eSBpbmRleCA3
NSUKcmVuYW1lIGZyb20gU291cmNlL1dURi93dGYvY29jb2EvVHlwZUNhc3RzTlMuaApyZW5hbWUg
dG8gU291cmNlL1dURi93dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaAppbmRleCAzMDg2MDlhNDg1
ZGMuLmFlNDM5YmQ3MzRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvVHlwZUNh
c3RzTlMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oCkBAIC0z
MCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBVc2UgY2hlY2tlZF9uc19jYXN0
PD4gaW5zdGVhZCBvZiBkeW5hbWljX25zX2Nhc3Q8PiB3aGVuIGEgc3BlY2lmaWMgTlMgdHlwZSBp
cyByZXF1aXJlZC4KKy8vIFVzZSBjaGVja2VkX29iamNfY2FzdDw+IGluc3RlYWQgb2YgZHluYW1p
Y19vYmpjX2Nhc3Q8PiB3aGVuIGEgc3BlY2lmaWMgTlMgdHlwZSBpcyByZXF1aXJlZC4KIAotdGVt
cGxhdGU8dHlwZW5hbWUgVD4gVCogY2hlY2tlZF9uc19jYXN0KGlkIG9iamVjdCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IFQqIGNoZWNrZWRfb2JqY19jYXN0KGlkIG9iamVjdCkKIHsKICAgICB1c2lu
ZyBWYWx1ZVR5cGUgPSBzdGQ6OnJlbW92ZV9wb2ludGVyX3Q8VD47CiAgICAgdXNpbmcgUHRyVHlw
ZSA9IFZhbHVlVHlwZSo7CkBAIC00NSwyMSArNDUsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
VCogY2hlY2tlZF9uc19jYXN0KGlkIG9iamVjdCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxQdHJUeXBlPihvYmplY3QpOwogfQogCi0vLyBVc2UgZHluYW1pY19uc19jYXN0PD4gaW5zdGVh
ZCBvZiBjaGVja2VkX25zX2Nhc3Q8PiB3aGVuIGFjdGl2ZWx5IGNoZWNraW5nIE5TIHR5cGVzLAor
Ly8gVXNlIGR5bmFtaWNfb2JqY19jYXN0PD4gaW5zdGVhZCBvZiBjaGVja2VkX29iamNfY2FzdDw+
IHdoZW4gYWN0aXZlbHkgY2hlY2tpbmcgTlMgdHlwZXMsCiAvLyBzaW1pbGFyIHRvIGR5bmFtaWNf
Y2FzdDw+IGluIEMrKy4gQmUgc3VyZSB0byBpbmNsdWRlIGEgbmlsIGNoZWNrLgogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBUKiBkeW5hbWljX25zX2Nhc3QoaWQgb2JqZWN0KQotewotICAgIHVzaW5n
IFZhbHVlVHlwZSA9IHN0ZDo6cmVtb3ZlX3BvaW50ZXJfdDxUPjsKLSAgICB1c2luZyBQdHJUeXBl
ID0gVmFsdWVUeXBlKjsKLQotICAgIGlmICghW29iamVjdCBpc0tpbmRPZkNsYXNzOltWYWx1ZVR5
cGUgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxQdHJUeXBlPihvYmplY3QpOwotfQorLy8gU2VlIFJldGFpblB0ci5oIGZvcjog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gVCogZHluYW1pY19vYmpjX2Nhc3QoaWQgb2JqZWN0KS4KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gUmV0YWluUHRyPFQ+IGR5bmFtaWNfbnNf
Y2FzdChSZXRhaW5QdHI8VT4mJiBvYmplY3QpCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBSZXRhaW5QdHI8VD4gZHluYW1pY19vYmpjX2Nhc3QoUmV0YWluUHRyPFU+JiYgb2JqZWN0
KQogewogICAgIGlmICghW29iamVjdCBpc0tpbmRPZkNsYXNzOltUIGNsYXNzXV0pCiAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtNjksNSArNjAsNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBSZXRhaW5QdHI8VD4gZHluYW1pY19uc19jYXN0KFJldGFpblB0cjxVPiYmIG9i
agogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNpbmcgV1RGOjpjaGVja2VkX25zX2Nhc3Q7Ci11
c2luZyBXVEY6OmR5bmFtaWNfbnNfY2FzdDsKK3VzaW5nIFdURjo6Y2hlY2tlZF9vYmpjX2Nhc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNWRkMjc5YmQ5Yzc4Li5jYTZhYjJhZWQ2NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAyMS0wOS0yMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbmFtZSB7Y2hlY2tlZCxkeW5hbWljfV9uc19jYXN0PD4gdG8ge2No
ZWNrZWQsZHluYW1pY31fb2JqY19jYXN0PD4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzIzMDUwOD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzIzMTQ1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9Q
YXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvY29jb2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAtIEFs
c28gZml4ICpTb2Z0TGluay5oIGhlYWRlciBvcmRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvQmxvY2tsaXN0VXBkYXRlci5tbToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW06CisgICAgICAgIC0gSW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4gZm9y
IGZ1dHVyZSBtb3ZlIG9mCisgICAgICAgICAgV1RGOjpkeW5hbWljX29iamNfY2FzdDw+IGZyb20g
UmV0YWluUHRyLmggdG8gdGhhdCBoZWFkZXIuCisKIDIwMjEtMDktMjAgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIG92ZXJyaWRlcyBvZiBEaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYzo6Q2FwdHVyZXI6OmdlbmVyYXRlRnJhbWUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1
cmF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFs
bG1lbnRDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3ZTUzZDJkOTg2MS4uMDFiYzEwOWYxMjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxs
bWVudENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCkBAIC0zMiw2ICszMiw3IEBACiAj
aW1wb3J0ICJBcHBsZVBheUluc3RhbGxtZW50SXRlbVR5cGUuaCIKICNpbXBvcnQgIkFwcGxlUGF5
SW5zdGFsbG1lbnRSZXRhaWxDaGFubmVsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25Pci5oIgorI2lt
cG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVj
dG9yQ29jb2EuaD4KIAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWVy
Y2hhbnRTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2Nv
Y29hL1BheW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbQppbmRleCBiNzFmODQ4MWZjMjkuLmJj
ZmY4ODhlMTI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9j
b2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0KQEAg
LTI5LDYgKzI5LDggQEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiAjaW1wb3J0IDxKYXZhU2Ny
aXB0Q29yZS9KU09OT2JqZWN0Lmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2Eu
aD4KKwogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4IGExOGI3Yzk3OTE2ZC4u
MDRhODViOTY4MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtMjcsNiArMjcs
NyBAQAogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCIKIAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29j
b2EuaD4KIAogQGltcGxlbWVudGF0aW9uIENBTGF5ZXIgKFdlYkNvcmVDQUxheWVyRXh0cmFzKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQmxvY2tsaXN0VXBkYXRl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9CbG9ja2xpc3RVcGRhdGVyLm1tCmlu
ZGV4IDI1ZmQxOGIwZGM5YS4uMzA4ZGY1ZmUwOTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQmxvY2tsaXN0VXBkYXRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQmxvY2tsaXN0VXBkYXRlci5tbQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9y
dCAiV2ViR0xCbG9ja2xpc3QuaCIKICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0IDxzeXMv
dGltZS5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5
cGVDYXN0c0NvY29hLmg+CiAKIC8vIFRoZSB0aW1lIGFmdGVyIHdoaWNoIHdlJ2xsIGNoZWNrIHRo
ZSBibG9ja2xpc3QgZGF0YS4KIHN0YXRpYyB0aW1lX3QgYmxvY2tsaXN0TmV4dENoZWNrVGltZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBiMDQzMDdl
ZmY2YzkuLjkzZTViNDJkNDM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbQpAQCAtODMsOCArODMsOCBAQAogI2ltcG9ydCA8cGFsL3NwaS9pb3MvVUlLaXRT
UEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL09iakNS
dW50aW1lRXh0cmFzLmg+Ci0jaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KIAogI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGRiZjk1YTBhYTc4Li42NGExYjA2M2E5N2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMjEtMDktMjAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW5hbWUge2NoZWNrZWQsZHluYW1pY31fbnNfY2FzdDw+IHRvIHtjaGVj
a2VkLGR5bmFtaWN9X29iamNfY2FzdDw+CisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8y
MzA1MDg+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzMyMzE0NT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpleHRyYWN0V2ViUHJvY2Vzc1Bv
b2wpOgorICAgICAgICAtIFVwZGF0ZSBmb3IgcmVuYW1lLgorCisgICAgICAgICogU2hhcmVkL0Nv
Y29hL0FyZ3VtZW50Q29kZXJzQ29jb2EubW06CisgICAgICAgICogU2hhcmVkL21hYy9PYmpDT2Jq
ZWN0R3JhcGgubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRT
dHJpbmcubW06CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5tbToKKyAgICAgICAgLSBBbHNvIGZpeCAqU29mdExpbmsuaCBoZWFkZXIgb3JkZXIuCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAtIEltcG9ydCA8
d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+IGZvciBmdXR1cmUgbW92ZSBvZgorICAgICAgICAg
IFdURjo6ZHluYW1pY19vYmpjX2Nhc3Q8PiBmcm9tIFJldGFpblB0ci5oIHRvIHRoYXQgaGVhZGVy
LgorCiAyMDIxLTA5LTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3Jn
PgogCiAgICAgICAgIFVzZSBPYmplY3RJZGVudGlmaWVyIGZvciBXZWJVUkxTY2hlbWVIYW5kbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQppbmRleCA4YmMwNWU1OWNiNDguLmJhNDk5MDkxMmJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL2NmL0NGVVJMRXh0cmFzLmg+
CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9U
eXBlQ2FzdHNDb2NvYS5oPgogCiAjaWYgVVNFKEFQUEtJVCkKICNpbXBvcnQgPFdlYkNvcmUvQ29s
b3JNYWMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0
R3JhcGgubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCmlu
ZGV4IDAwZmZmZTIwYjhhZi4uZjlhOTA1OTE5MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9PYmpDT2JqZWN0R3JhcGgubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIldLQnJv
d3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVHlwZVJlZldyYXBwZXIu
aCIKICNpbXBvcnQgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNh
c3RzQ29jb2EuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCmluZGV4IDA4
MGVhYjExMDc1NC4uYTg0YWIyYzdkMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTM4LDcgKzM4LDcg
QEAKICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBv
cnQgPHd0Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgot
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0Nv
Y29hLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCA8VUlLaXRTUEkuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lv
blV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlz
c2lvblV0aWxpdGllcy5tbQppbmRleCAxNGU5YzhhYjViYmYuLmE5OGQ4ZWNjMDcyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFQZXJtaXNzaW9uVXRpbGl0
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lv
blV0aWxpdGllcy5tbQpAQCAtMjcsMTkgKzI3LDIxIEBACiAjaW1wb3J0ICJNZWRpYVBlcm1pc3Np
b25VdGlsaXRpZXMuaCIKIAogI2ltcG9ydCAiU2FuZGJveFV0aWxpdGllcy5oIgotI2ltcG9ydCAi
VENDU29mdExpbmsuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbXBvcnQgPG11dGV4PgotI2lt
cG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29j
b2EvU3BlZWNoU29mdExpbmsuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8
d3RmL1VSTEhlbHBlcnMuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPgog
I2ltcG9ydCA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3
aW4vU2FuZGJveFNQSS5oPgogCisjaW1wb3J0ICJUQ0NTb2Z0TGluay5oIgorI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvU3BlZWNo
U29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgY2hlY2tTYW5kYm94UmVx
dWlyZW1lbnRGb3JUeXBlKE1lZGlhUGVybWlzc2lvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IGUx
N2RmZWVhNzc1OC4uMmU4ZTRlN2RkYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTcyLDcgKzcyLDcgQEAKICNp
bXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50
cy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+
Ci0jaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzTlMuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9U
eXBlQ2FzdHNDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9OU09iakNSdW50aW1lU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYv
c3BpL2Rhcndpbi9keWxkU1BJLmg+CkBAIC02MzcsNyArNjM3LDcgQEAgYm9vbCBXZWJQcm9jZXNz
UG9vbDo6cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpIGNvbnN0CiAKIHN0YXRpYyBpbmxpbmUg
UmVmUHRyPFdlYlByb2Nlc3NQb29sPiBleHRyYWN0V2ViUHJvY2Vzc1Bvb2wodm9pZCogb2JzZXJ2
ZXIpCiB7Ci0gICAgUmV0YWluUHRyIHN0cm9uZ09ic2VydmVyIHsgZHluYW1pY19uc19jYXN0PFdL
UHJvY2Vzc1Bvb2xXZWFrT2JzZXJ2ZXI+KHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KG9ic2VydmVyKSkg
fTsKKyAgICBSZXRhaW5QdHIgc3Ryb25nT2JzZXJ2ZXIgeyBkeW5hbWljX29iamNfY2FzdDxXS1By
b2Nlc3NQb29sV2Vha09ic2VydmVyPihyZWludGVycHJldF9jYXN0PGlkPihvYnNlcnZlcikpIH07
CiAgICAgaWYgKCFzdHJvbmdPYnNlcnZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
cmV0dXJuIFtzdHJvbmdPYnNlcnZlciBwb29sXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggODIwMjc0N2U5Zjc0
Li44MjkyOGIxYjVkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC00NCw2ICs0NCw3IEBACiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8d3Rm
L2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29h
Lmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkv
ZGFyd2luL1NhbmRib3hTUEkuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNzc4MmM1YzY5ZTI1Li43
M2UwMTU0OWJhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTQ1LDExICsxNDUsMTEgQEAKICNpbXBv
cnQgPHBhbC9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+Ci0jaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9T
ZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYv
Y29jb2EvTlNVUkxFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5o
PgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCmluZGV4IDQyNjM1ZWIzZmU3MS4uODVlNjdiODMxZWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAg
LTEwNSw2ICsxMDUsNyBAQAogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogI2lt
cG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHND
b2NvYS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAKICNpZiBFTkFCTEUo
UkVNT1RFX0lOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBkMDc5OWI1
ZmFkODYuLjFmMjlhMjBmNDc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTA5LTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIHtjaGVja2VkLGR5bmFtaWN9X25zX2Nhc3Q8PiB0byB7Y2hlY2tl
ZCxkeW5hbWljfV9vYmpjX2Nhc3Q8PgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjMw
NTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMzMjMxNDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIC0g
SW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4gZm9yIGZ1dHVyZSBtb3ZlIG9mCisg
ICAgICAgICAgV1RGOjpkeW5hbWljX29iamNfY2FzdDw+IGZyb20gUmV0YWluUHRyLmggdG8gdGhh
dCBoZWFkZXIuCisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFrZVJlZlB0cih0aGlzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQubW0KaW5kZXggZDBhOTVlYjc0YzU4Li43MjExZGJmNTUxNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlUGFzdGVib2FyZENv
bnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QYXN0ZWJvYXJkV3JpdGVyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2Eu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDIzMDkyMjYwZjZiYy4uY2VjOWI4ZTMx
ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KQEAgLTE1Miw2ICsxNTIsNyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQg
PHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKyNpbXBv
cnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3Rv
ckNvY29hLmg+CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzIwODEyN2QwNDBiLi5lYTQwMGQ0NjQ4MGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMS0wOS0yMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSB7Y2hlY2tlZCxkeW5hbWljfV9uc19jYXN0PD4gdG8ge2NoZWNrZWQs
ZHluYW1pY31fb2JqY19jYXN0PD4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIzMDUw
OD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzIzMTQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIC0gVXBkYXRlIGZvciByZW5h
bWUgb2YgVHlwZUNhc3RzTlMuaCB0byBUeXBlQ2FzdHNDb2NvYS5oLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c0NvY29hLm1tOiBSZW5hbWUgZnJvbSBU
eXBlQ2FzdHNOUy5tbS4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAt
IFVwZGF0ZSBmb3IgcmVuYW1lLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIC0gSW1wb3J0IDx3dGYv
Y29jb2EvVHlwZUNhc3RzQ29jb2EuaD4gZm9yIGZ1dHVyZSBtb3ZlIG9mCisgICAgICAgICAgV1RG
OjpkeW5hbWljX29iamNfY2FzdDw+IGZyb20gUmV0YWluUHRyLmggdG8gdGhhdCBoZWFkZXIuCisK
IDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBT
dG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFrZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBjOGY2ODIyODlhYTguLmQ3ODk4ZGQyNzk5NSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQk0NDhEN0U0NzFFQTZDNTU1MDBFQ0M3NTYg
LyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9u
bWVudFV0aWxpdGllc1Rlc3QuY3BwICovOyB9OwogCQk0NEFDOEJDNjIxRDAyNDVBMDBDQUZCMzQg
LyogUmV0YWluUHRyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDI5QjE2MTQ4NkFENjQwMDgxN0RBOSAvKiBSZXRhaW5QdHIuY3BwICovOyB9Owog
CQk0NEMyRkJFMjI1RTc1OTJDMDBBQkM3MkYgLyogV0tBcHBIaWdobGlnaHRzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRDMkZCRTEyNUU3NTkyQzAw
QUJDNzJGIC8qIFdLQXBwSGlnaGxpZ2h0cy5tbSAqLzsgfTsKLQkJNDRDREU0RDQyNkVFNkU0QTAw
OUY2QUNCIC8qIFR5cGVDYXN0c05TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c05TLm1t
ICovOyB9OworCQk0NENERTRENDI2RUU2RTRBMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NENERTREMzI2
RUU2RTQxMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29jb2EubW0gKi87IH07CiAJCTQ0Q0YzMUZEMjQ5
OTQxRTgwMDlDQjZDQiAvKiBDb250ZXh0TWVudUFjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NENGMzFGQjI0OTkzRjY2MDA5Q0I2Q0IgLyog
Q29udGV4dE1lbnVBY3Rpb24uY3BwICovOyB9OwogCQk0NjEyQzJCOTIxMEE2QUNFMDBCNzg4QTYg
LyogTG9hZEZpbGVUaGVuUmVsb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYxMkMyQjgyMTBBNkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJl
bG9hZC5tbSAqLzsgfTsKIAkJNDYyOEM4RTkyMzY3QUJEMTAwQjA3M0YwIC8qIFdLU2VjdXJpdHlP
cmlnaW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYyOEM4RTgyMzY3QUJCQzAwQjA3M0YwIC8qIFdLU2VjdXJpdHlPcmlnaW4uY3BwICovOyB9OwpA
QCAtMjEwMCw3ICsyMTAwLDcgQEAKIAkJNDQ4RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmly
b25tZW50VXRpbGl0aWVzVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEMyRkJFMTI1RTc1OTJDMDBBQkM3MkYgLyog
V0tBcHBIaWdobGlnaHRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tBcHBIaWdobGlnaHRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NENE
RTREMzI2RUU2RTQxMDA5RjZBQ0IgLyogVHlwZUNhc3RzTlMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUeXBlQ2FzdHNOUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVHlwZUNhc3RzQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZD
QiAvKiBDb250ZXh0TWVudUFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb250ZXh0TWVudUFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkRmlsZVRoZW5SZWxvYWQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MjhDOEU4MjM2N0FCQkMwMEIwNzNG
MCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDk4NSw3ICs0OTg1LDcgQEAKIAkJCQlCQzNGRUI2MzI2N0ZDRjc0MDA1NDAwNkEgLyogU3Bh
bkNvY29hLm1tICovLAogCQkJCTFDNDYxNkE2MjZCQjE3MkYwMEY4QzlGNiAvKiBUZXh0U3RyZWFt
Q29jb2EuY3BwICovLAogCQkJCTFDNDYxNjlFMjZCQTUxMDcwMEY4QzlGNiAvKiBUZXh0U3RyZWFt
Q29jb2EubW0gKi8sCi0JCQkJNDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c05T
Lm1tICovLAorCQkJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNDb2NvYS5t
bSAqLywKIAkJCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tICovLAog
CQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTUzNTksNyArNTM1OSw3IEBACiAJCQkJRTM4QTBE
MzUxRkQ1MENDMzAwRTk4QzhCIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MzExQkQ1RTFFQTk0OTBFMDA1MjUyODEgLyogVGhyZWFkTWVzc2FnZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEYyQzIwQjgxRENENTQ1MDAwNTQyRDlFIC8qIFRpbWUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDRDREU0RDQyNkVFNkU0QTAwOUY2QUNCIC8qIFR5cGVDYXN0c05TLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDRDREU0RDQyNkVFNkU0QTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29h
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTMyNEE2RjAyMDQxQzgyMDAwQTc2NTkzIC8qIFVuaXF1
ZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzQTFFNzgyMjFCMjVCN0EwMDhDNjAwNyAv
KiBVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTNDMjFBN0MyMUIyNUNBMjAwM0IzMUEzIC8q
IFVSTEV4dHJhcy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvY29jb2EvVHlwZUNhc3RzTlMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5tbQpzaW1pbGFyaXR5IGluZGV4IDcyJQpy
ZW5hbWUgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9UeXBlQ2FzdHNO
Uy5tbQpyZW5hbWUgdG8gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVHlwZUNh
c3RzQ29jb2EubW0KaW5kZXggZGM5MjNjNTFjYjk5Li5iMDE4YmFiNTFlZDkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c05TLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1R5cGVDYXN0c0NvY29hLm1tCkBA
IC0yMyw3ICsyMyw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0IDx3dGYv
Y29jb2EvVHlwZUNhc3RzTlMuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5o
PgogCiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM3LDY3ICszNyw2NyBAQCBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKLVRFU1Qo
VHlwZUNhc3RzTlMsIGNoZWNrZWRfbnNfY2FzdCkKK1RFU1QoVHlwZUNhc3RzQ29jb2EsIGNoZWNr
ZWRfb2JqY19jYXN0KQogewotICAgIEVYUEVDVF9FUShuaWwsIGNoZWNrZWRfbnNfY2FzdDxOU1N0
cmluZz4obmlsKSk7CisgICAgRVhQRUNUX0VRKG5pbCwgY2hlY2tlZF9vYmpjX2Nhc3Q8TlNTdHJp
bmc+KG5pbCkpOwogCiAgICAgewogICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMocmVpbnRl
cnByZXRfY2FzdDxpZD4oW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJI
ZWxsbyB3b3JsZCJdKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGNoZWNrZWRf
bnNfY2FzdDxOU1N0cmluZz4ob2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmpl
Y3QuZ2V0KCksIGNoZWNrZWRfbnNfY2FzdDxOU09iamVjdD4ob2JqZWN0LmdldCgpKSk7CisgICAg
ICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGNoZWNrZWRfb2JqY19jYXN0PE5TU3RyaW5nPihv
YmplY3QuZ2V0KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKG9iamVjdC5nZXQoKSwgY2hlY2tlZF9v
YmpjX2Nhc3Q8TlNPYmplY3Q+KG9iamVjdC5nZXQoKSkpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8TlNPYmplY3QgKj4oW1tO
U1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKSk7Ci0g
ICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGNoZWNrZWRfbnNfY2FzdDxOU1N0cmluZz4o
b2JqZWN0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGNoZWNrZWRf
b2JqY19jYXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1h
dDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pOwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LmdldCgp
LCBjaGVja2VkX25zX2Nhc3Q8TlNPYmplY3Q+KG9iamVjdC5nZXQoKSkpOworICAgICAgICBFWFBF
Q1RfRVEob2JqZWN0LmdldCgpLCBjaGVja2VkX29iamNfY2FzdDxOU09iamVjdD4ob2JqZWN0Lmdl
dCgpKSk7CiAgICAgfQogfQogCi1URVNUKFR5cGVDYXN0c05TLCBkeW5hbWljX25zX2Nhc3QpCitU
RVNUKFR5cGVDYXN0c0NvY29hLCBkeW5hbWljX29iamNfY2FzdCkKIHsKLSAgICBFWFBFQ1RfRVEo
bmlsLCBkeW5hbWljX25zX2Nhc3Q8TlNTdHJpbmc+KG5pbCkpOworICAgIEVYUEVDVF9FUShuaWws
IGR5bmFtaWNfb2JqY19jYXN0PE5TU3RyaW5nPihuaWwpKTsKIAogICAgIHsKICAgICAgICAgYXV0
byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwotICAgICAgICBFWFBFQ1Rf
RVEob2JqZWN0LmdldCgpLCBkeW5hbWljX25zX2Nhc3Q8TlNTdHJpbmc+KG9iamVjdC5nZXQoKSkp
OwotICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LmdldCgpLCBkeW5hbWljX25zX2Nhc3Q8TlNPYmpl
Y3Q+KG9iamVjdC5nZXQoKSkpOwotICAgICAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX25zX2Nh
c3Q8TlNBcnJheT4ob2JqZWN0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0
KCksIGR5bmFtaWNfb2JqY19jYXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAg
RVhQRUNUX0VRKG9iamVjdC5nZXQoKSwgZHluYW1pY19vYmpjX2Nhc3Q8TlNPYmplY3Q+KG9iamVj
dC5nZXQoKSkpOworICAgICAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX29iamNfY2FzdDxOU0Fy
cmF5PihvYmplY3QuZ2V0KCkpKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIGF1dG8gb2JqZWN0
ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PE5TT2JqZWN0ICo+KFtbTlNTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwotICAgICAgICBFWFBFQ1Rf
RVEob2JqZWN0LmdldCgpLCBkeW5hbWljX25zX2Nhc3Q8TlNTdHJpbmc+KG9iamVjdC5nZXQoKSkp
OwotICAgICAgICBFWFBFQ1RfRVEobmlsLCBkeW5hbWljX25zX2Nhc3Q8TlNBcnJheT4ob2JqZWN0
LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGR5bmFtaWNfb2JqY19j
YXN0PE5TU3RyaW5nPihvYmplY3QuZ2V0KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKG5pbCwgZHlu
YW1pY19vYmpjX2Nhc3Q8TlNBcnJheT4ob2JqZWN0LmdldCgpKSk7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhG
b3JtYXQ6QCIlcyIsICJIZWxsbyB3b3JsZCJdKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdC5n
ZXQoKSwgZHluYW1pY19uc19jYXN0PE5TT2JqZWN0PihvYmplY3QuZ2V0KCkpKTsKLSAgICAgICAg
RVhQRUNUX0VRKG5pbCwgZHluYW1pY19uc19jYXN0PE5TQXJyYXk+KG9iamVjdC5nZXQoKSkpOwor
ICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LmdldCgpLCBkeW5hbWljX29iamNfY2FzdDxOU09iamVj
dD4ob2JqZWN0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFtaWNfb2JqY19j
YXN0PE5TQXJyYXk+KG9iamVjdC5nZXQoKSkpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgYXV0
byBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNPYmplY3QgYWxsb2Nd
IGluaXRdKSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QuZ2V0KCksIGR5bmFtaWNfbnNfY2Fz
dDxOU09iamVjdD4ob2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFt
aWNfbnNfY2FzdDxNeU9iamVjdFN1YnR5cGU+KG9iamVjdC5nZXQoKSkpOworICAgICAgICBFWFBF
Q1RfRVEob2JqZWN0LmdldCgpLCBkeW5hbWljX29iamNfY2FzdDxOU09iamVjdD4ob2JqZWN0Lmdl
dCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShuaWwsIGR5bmFtaWNfb2JqY19jYXN0PE15T2JqZWN0
U3VidHlwZT4ob2JqZWN0LmdldCgpKSk7CiAgICAgfQogCiAgICAgewogICAgICAgICBhdXRvIG9i
amVjdCA9IGFkb3B0TlMoW1tOU09iamVjdCBhbGxvY10gaW5pdF0pOwotICAgICAgICBFWFBFQ1Rf
RVEobmlsLCBkeW5hbWljX25zX2Nhc3Q8TXlPYmplY3RTdWJ0eXBlPihvYmplY3QuZ2V0KCkpKTsK
KyAgICAgICAgRVhQRUNUX0VRKG5pbCwgZHluYW1pY19vYmpjX2Nhc3Q8TXlPYmplY3RTdWJ0eXBl
PihvYmplY3QuZ2V0KCkpKTsKICAgICB9CiB9CiAKLVRFU1QoVHlwZUNhc3RzTlMsIGR5bmFtaWNf
bnNfY2FzdF9SZXRhaW5QdHIpCitURVNUKFR5cGVDYXN0c0NvY29hLCBkeW5hbWljX25zX2Nhc3Rf
UmV0YWluUHRyKQogewogICAgIHsKICAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBvYmplY3Q7
Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfbnNfY2FzdDxOU1N0cmluZz4oV1RG
TW92ZShvYmplY3QpKTsKKyAgICAgICAgYXV0byBvYmplY3RDYXN0ID0gZHluYW1pY19vYmpjX2Nh
c3Q8TlNTdHJpbmc+KFdURk1vdmUob2JqZWN0KSk7CiAgICAgICAgIEVYUEVDVF9FUShuaWwsIG9i
amVjdC5nZXQoKSk7CiAgICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdENhc3QuZ2V0KCkpOwog
ICAgIH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBURVNUKFR5cGVDYXN0c05TLCBkeW5hbWljX25zX2Nh
c3RfUmV0YWluUHRyKQogICAgIHsKICAgICAgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKHJlaW50
ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAi
SGVsbG8gd29ybGQiXSkpOwogICAgICAgICBpZCBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0g
ICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfbnNfY2FzdDxOU1N0cmluZz4oV1RGTW92
ZShvYmplY3QpKTsKKyAgICAgICAgYXV0byBvYmplY3RDYXN0ID0gZHluYW1pY19vYmpjX2Nhc3Q8
TlNTdHJpbmc+KFdURk1vdmUob2JqZWN0KSk7CiAgICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVj
dC5nZXQoKSk7CiAgICAgICAgIEVYUEVDVF9FUShvYmplY3RQdHIsIG9iamVjdENhc3QuZ2V0KCkp
OwogICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZvciBBUkMuCkBAIC0xMTMsNyArMTEzLDcg
QEAgVEVTVChUeXBlQ2FzdHNOUywgZHluYW1pY19uc19jYXN0X1JldGFpblB0cikKIAogICAgICAg
ICBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KFtbTlNTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29ybGQiXSkpOwogICAgICAgICBvYmplY3RQ
dHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX25z
X2Nhc3Q8TlNPYmplY3Q+KFdURk1vdmUob2JqZWN0KSk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2Fz
dDIgPSBkeW5hbWljX29iamNfY2FzdDxOU09iamVjdD4oV1RGTW92ZShvYmplY3QpKTsKICAgICAg
ICAgRVhQRUNUX0VRKG5pbCwgb2JqZWN0LmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKG9iamVj
dFB0ciwgb2JqZWN0Q2FzdDIuZ2V0KCkpOwogICAgICAgICBvYmplY3RQdHIgPSBuaWw7IC8vIEZv
ciBBUkMuCkBAIC0xMjEsNyArMTIxLDcgQEAgVEVTVChUeXBlQ2FzdHNOUywgZHluYW1pY19uc19j
YXN0X1JldGFpblB0cikKIAogICAgICAgICBvYmplY3QgPSBhZG9wdE5TKHJlaW50ZXJwcmV0X2Nh
c3Q8aWQ+KFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8gd29y
bGQiXSkpOwogICAgICAgICBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8g
b2JqZWN0Q2FzdDMgPSBkeW5hbWljX25zX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsK
KyAgICAgICAgYXV0byBvYmplY3RDYXN0MyA9IGR5bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+KFdU
Rk1vdmUob2JqZWN0KSk7CiAgICAgICAgIEVYUEVDVF9FUShvYmplY3RQdHIsIG9iamVjdC5nZXQo
KSk7CiAgICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdENhc3QzLmdldCgpKTsKICAgICAgICAg
b2JqZWN0UHRyID0gbmlsOyAvLyBGb3IgQVJDLgpAQCAtMTMxLDcgKzEzMSw3IEBAIFRFU1QoVHlw
ZUNhc3RzTlMsIGR5bmFtaWNfbnNfY2FzdF9SZXRhaW5QdHIpCiAgICAgewogICAgICAgICBhdXRv
IG9iamVjdCA9IGFkb3B0TlMocmVpbnRlcnByZXRfY2FzdDxOU09iamVjdCAqPihbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pKTsKICAgICAgICAg
aWQgb2JqZWN0UHRyID0gb2JqZWN0LmdldCgpOwotICAgICAgICBhdXRvIG9iamVjdENhc3QgPSBk
eW5hbWljX25zX2Nhc3Q8TlNTdHJpbmc+KFdURk1vdmUob2JqZWN0KSk7CisgICAgICAgIGF1dG8g
b2JqZWN0Q2FzdCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TU3RyaW5nPihXVEZNb3ZlKG9iamVjdCkp
OwogICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwogICAgICAgICBFWFBFQ1Rf
RVEob2JqZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKICAgICAgICAgb2JqZWN0UHRyID0gbmls
OwpAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1QoVHlwZUNhc3RzTlMsIGR5bmFtaWNfbnNfY2FzdF9S
ZXRhaW5QdHIpCiAKICAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJldF9jYXN0PE5T
T2JqZWN0ICo+KFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJXMiLCAiSGVsbG8g
d29ybGQiXSkpOwogICAgICAgICBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1
dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX25zX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3Qp
KTsKKyAgICAgICAgYXV0byBvYmplY3RDYXN0MiA9IGR5bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+
KFdURk1vdmUob2JqZWN0KSk7CiAgICAgICAgIEVYUEVDVF9FUShvYmplY3RQdHIsIG9iamVjdC5n
ZXQoKSk7CiAgICAgICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdENhc3QyLmdldCgpKTsKICAgICAg
ICAgb2JqZWN0UHRyID0gbmlsOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIFRFU1QoVHlwZUNhc3RzTlMs
IGR5bmFtaWNfbnNfY2FzdF9SZXRhaW5QdHIpCiAgICAgewogICAgICAgICBhdXRvIG9iamVjdCA9
IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlcyIsICJIZWxsbyB3
b3JsZCJdKTsKICAgICAgICAgaWQgb2JqZWN0UHRyID0gb2JqZWN0LmdldCgpOwotICAgICAgICBh
dXRvIG9iamVjdENhc3QgPSBkeW5hbWljX25zX2Nhc3Q8TlNPYmplY3Q+KFdURk1vdmUob2JqZWN0
KSk7CisgICAgICAgIGF1dG8gb2JqZWN0Q2FzdCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TT2JqZWN0
PihXVEZNb3ZlKG9iamVjdCkpOwogICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkp
OwogICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKICAgICAg
ICAgb2JqZWN0UHRyID0gbmlsOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIFRFU1QoVHlwZUNhc3RzTlMs
IGR5bmFtaWNfbnNfY2FzdF9SZXRhaW5QdHIpCiAKICAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhb
W05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVzIiwgIkhlbGxvIHdvcmxkIl0pOwog
ICAgICAgICBvYmplY3RQdHIgPSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2Fz
dDIgPSBkeW5hbWljX25zX2Nhc3Q8TlNBcnJheT4oV1RGTW92ZShvYmplY3QpKTsKKyAgICAgICAg
YXV0byBvYmplY3RDYXN0MiA9IGR5bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+KFdURk1vdmUob2Jq
ZWN0KSk7CiAgICAgICAgIEVYUEVDVF9FUShvYmplY3RQdHIsIG9iamVjdC5nZXQoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUShuaWwsIG9iamVjdENhc3QyLmdldCgpKTsKICAgICAgICAgb2JqZWN0UHRy
ID0gbmlsOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoVHlwZUNhc3RzTlMsIGR5bmFtaWNfbnNf
Y2FzdF9SZXRhaW5QdHIpCiAgICAgewogICAgICAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMocmVp
bnRlcnByZXRfY2FzdDxpZD4oW1tOU09iamVjdCBhbGxvY10gaW5pdF0pKTsKICAgICAgICAgaWQg
b2JqZWN0UHRyID0gb2JqZWN0LmdldCgpOwotICAgICAgICBhdXRvIG9iamVjdENhc3QgPSBkeW5h
bWljX25zX2Nhc3Q8TlNPYmplY3Q+KFdURk1vdmUob2JqZWN0KSk7CisgICAgICAgIGF1dG8gb2Jq
ZWN0Q2FzdCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TT2JqZWN0PihXVEZNb3ZlKG9iamVjdCkpOwog
ICAgICAgICBFWFBFQ1RfRVEobmlsLCBvYmplY3QuZ2V0KCkpOwogICAgICAgICBFWFBFQ1RfRVEo
b2JqZWN0UHRyLCBvYmplY3RDYXN0LmdldCgpKTsKICAgICAgICAgb2JqZWN0UHRyID0gbmlsOyAv
LyBGb3IgQVJDLgpAQCAtMTc1LDcgKzE3NSw3IEBAIFRFU1QoVHlwZUNhc3RzTlMsIGR5bmFtaWNf
bnNfY2FzdF9SZXRhaW5QdHIpCiAKICAgICAgICAgb2JqZWN0ID0gYWRvcHROUyhyZWludGVycHJl
dF9jYXN0PGlkPihbW05TT2JqZWN0IGFsbG9jXSBpbml0XSkpOwogICAgICAgICBvYmplY3RQdHIg
PSBvYmplY3QuZ2V0KCk7Ci0gICAgICAgIGF1dG8gb2JqZWN0Q2FzdDIgPSBkeW5hbWljX25zX2Nh
c3Q8TXlPYmplY3RTdWJ0eXBlPihXVEZNb3ZlKG9iamVjdCkpOworICAgICAgICBhdXRvIG9iamVj
dENhc3QyID0gZHluYW1pY19vYmpjX2Nhc3Q8TXlPYmplY3RTdWJ0eXBlPihXVEZNb3ZlKG9iamVj
dCkpOwogICAgICAgICBFWFBFQ1RfRVEob2JqZWN0UHRyLCBvYmplY3QuZ2V0KCkpOwogICAgICAg
ICBFWFBFQ1RfRVEobmlsLCBvYmplY3RDYXN0Mi5nZXQoKSk7CiAgICAgICAgIG9iamVjdFB0ciA9
IG5pbDsgLy8gRm9yIEFSQy4KQEAgLTE4NSw3ICsxODUsNyBAQCBURVNUKFR5cGVDYXN0c05TLCBk
eW5hbWljX25zX2Nhc3RfUmV0YWluUHRyKQogICAgIHsKICAgICAgICAgYXV0byBvYmplY3QgPSBh
ZG9wdE5TKFtbTlNPYmplY3QgYWxsb2NdIGluaXRdKTsKICAgICAgICAgaWQgb2JqZWN0UHRyID0g
b2JqZWN0LmdldCgpOwotICAgICAgICBhdXRvIG9iamVjdENhc3QgPSBkeW5hbWljX25zX2Nhc3Q8
TXlPYmplY3RTdWJ0eXBlPihXVEZNb3ZlKG9iamVjdCkpOworICAgICAgICBhdXRvIG9iamVjdENh
c3QgPSBkeW5hbWljX29iamNfY2FzdDxNeU9iamVjdFN1YnR5cGU+KFdURk1vdmUob2JqZWN0KSk7
CiAgICAgICAgIEVYUEVDVF9FUShvYmplY3RQdHIsIG9iamVjdC5nZXQoKSk7CiAgICAgICAgIEVY
UEVDVF9FUShuaWwsIG9iamVjdENhc3QuZ2V0KCkpOwogICAgICAgICBvYmplY3RQdHIgPSBuaWw7
IC8vIEZvciBBUkMuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA5MmRjYjE5N2JiNmIu
LmUxYzY2ZGIzNzkyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCkBAIC0zMCw3ICszMCw3
IEBACiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KIAogVEVTVChXS1dl
YlZpZXcsIEdldENvbnRlbnRzU2hvdWxkUmV0dXJuU3RyaW5nKQogewpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IGNiYWU5
NTFiNGNhMS4uMjU5ZWYwYmE1ZjVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0
IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1w
b3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4K
IAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlQ
aHlzaWNhbEtleWJvYXJkRXZlbnQpCi0tIAoyLjMwLjEgKEFwcGxlIEdpdC0xMzApCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>