<?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>74464</bug_id>
          
          <creation_ts>2011-12-13 16:57:52 -0800</creation_ts>
          <short_desc>Share blend progress code</short_desc>
          <delta_ts>2011-12-14 08:44:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>520489</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-13 16:57:52 -0800</bug_when>
    <thetext>Share blend progress code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520490</commentid>
    <comment_count>1</comment_count>
      <attachid>119110</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-13 17:01:45 -0800</bug_when>
    <thetext>Created attachment 119110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520507</commentid>
    <comment_count>2</comment_count>
      <attachid>119110</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-13 17:11:14 -0800</bug_when>
    <thetext>Comment on attachment 119110
Patch

Attachment 119110 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10876032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520510</commentid>
    <comment_count>3</comment_count>
      <attachid>119116</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-13 17:16:03 -0800</bug_when>
    <thetext>Created attachment 119116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520584</commentid>
    <comment_count>4</comment_count>
      <attachid>119116</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 18:34:13 -0800</bug_when>
    <thetext>Comment on attachment 119116
Patch

Attachment 119116 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10875046

New failing tests:
fast/gradients/css3-radial-gradients.html
fast/gradients/css3-repeating-radial-gradients.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520592</commentid>
    <comment_count>5</comment_count>
      <attachid>119116</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-13 18:48:40 -0800</bug_when>
    <thetext>Comment on attachment 119116
Patch

Attachment 119116 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10871059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520626</commentid>
    <comment_count>6</comment_count>
      <attachid>119116</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-12-13 20:19:19 -0800</bug_when>
    <thetext>Comment on attachment 119116
Patch

Looks good other than the failures. I can&apos;t see where radial gradient is failing.

GLSL uses the term &quot;mix&quot; where we use &quot;blend&quot; - I don&apos;t suppose it is worth the effort to change, and blend makes more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520671</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-13 21:38:14 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 119116 [details])
&gt; Attachment 119116 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10875046
&gt; 
&gt; New failing tests:
&gt; fast/gradients/css3-radial-gradients.html
&gt; fast/gradients/css3-repeating-radial-gradients.html

Why don&apos;t these test failures show up in the output: http://queues.webkit.org/results/10875046 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520674</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-13 21:54:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/102740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520731</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-13 23:47:13 -0800</bug_when>
    <thetext>This patch broke Windows builds:
http://build.webkit.org/builders/Chromium%20Win%20Release/builds/36788/steps/compile-webkit/logs/stdio
http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/24728/steps/compile-webkit/logs/stdio

lround isn&apos;t available on Visual Studio although it&apos;s part of ANSI C.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520940</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-12-14 08:32:27 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; This patch broke Windows builds:
&gt; http://build.webkit.org/builders/Chromium%20Win%20Release/builds/36788/steps/compile-webkit/logs/stdio
&gt; http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/24728/steps/compile-webkit/logs/stdio
&gt; 
&gt; lround isn&apos;t available on Visual Studio although it&apos;s part of ANSI C.

Weird. lround was already being used - this patch just moved it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520951</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-12-14 08:42:41 -0800</bug_when>
    <thetext>Seems that the build error was fixed by
http://trac.webkit.org/changeset/102745</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520952</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-14 08:44:30 -0800</bug_when>
    <thetext>Ah, I was just about to make the same change. Thanks morrita!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119110</attachid>
            <date>2011-12-13 17:01:45 -0800</date>
            <delta_ts>2011-12-13 17:15:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74464-20111213170144.patch</filename>
            <type>text/plain</type>
            <size>31929</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzMmI1ZWMyOTUzM2U3
NzI5NDc4NTU2NWY3MjJkMzlmYTI2YzQ1Zi4uNTFkODNiNmY0ZDQzMmYwOTIzMmI0ZDY3Y2Q3NmJj
YTBjNzU3NmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDExLTEyLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIGJsZW5k
IHByb2dyZXNzIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBMb3RzIG9mIHBsYWNlcyBpbiB0aGUgY29kZSBoYWQgY29waWVzIG9mIHRo
ZSBhbmltYXRpb24gaW50ZXJwb2xhdGlvbgorICAgICAgICBsb2dpYyAiZnJvbSArICh0byAtIGZy
b20pICogcHJvZ3Jlc3MiLCBpbiB2YXJpb3VzIGZvcm1zLgorICAgICAgICAKKyAgICAgICAgQ29h
bGVzY2UgYWxsIHRoZXNlIGludG8gY2FsbHMgdG8gYSBmZXcgbmV3IGlubGluZSBmdW5jdGlvbnMg
aW4gYSBuZXcKKyAgICAgICAgQW5pbWF0aW9uVXRpbGl0aWVzLmggaGVhZGVyLiBDb2xvciBhbmQg
TGVuZ3RoIGdldCB0aGVpciBvd24gYmxlbmQgZnVjdGlvbnMKKyAgICAgICAgaW4gdGhlaXIgcmVz
cGVjdGl2ZSBoZWFkZXJzLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgICogcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOgorICAg
ICAgICAqIHBsYXRmb3JtL0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpibGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblV0aWxpdGllcy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5k
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRp
b246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxl
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxlVHJhbnNmb3Jt
T3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNrZXdUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBzdmcvU1ZH
TGVuZ3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmJsZW5kKToKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aEJsZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGbG9hdFBv
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkRGlt
ZW5zb25hbEZsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFy
Y1RvU2VnbWVudCk6CisKIDIwMTEtMTItMTMgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGluZy9tYXNrcyBsYXlvdXQg
dGVzdHMgZmFpbCB3aXRoIGFjY2VsZXJhdGVkIGRyYXdpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDk4MTM3MDY0MWQ4ZTYyYmNiOTJiYjRiNzIxMDkwNTZlODlhMTgwZWUuLjM4
NGZhYmFmODlhYjhhZGZmZGJhN2VjODczODI1ZWE0YTI2NWM0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMjQ2MCw2ICsyNDYwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblV0aWxpdGllcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQXJlbmEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BcmVu
YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGM2NTk4NDdiYjg4MDk4NjA1ODhlMTgyNDVkZjkwNGFkOTU1
MzZiODkuLjE0ZWRlODMyNGJjNjE4ZmY4MGEzNTRiNmM5N2IwZTQ2M2EyYTI1YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtMjA1MCw2ICsyMDUwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Xb3JrZXJO
YXZpZ2F0b3IuaCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIFwKICAgICBw
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5oIFwKKyAgICBwbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uVXRpbGl0aWVzLmggXAogICAgIHBsYXRmb3JtL0FyZW5hLmggXAogICAgIHBs
YXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKICAgICBwbGF0Zm9ybS9DbG9jay5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBlNjU4ZThiNjRiNDQyMWE3NzQ2NGY2NzkxZTRhOWY5NzNmMDlkNTE4Li5l
MWE5MGZlZWY1NDk3YmMyNTgyNWExMjA5MTgxNjgwMjQ1YTRhZGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC03MzAsNiArNzMwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9XaW5kb3dzS2V5Ym9h
cmRDb2Rlcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRpZXMuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2NmL0JpbmFyeVByb3BlcnR5TGlzdC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jZi9TY2hlZHVsZVBhaXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDE4OTdhNGZkODE0YjQxNWIzNTI4NWM0ZjcxOTVmZjU3MGEw
MmY4NGIuLmVhMjEwZDNhZTE4OTVkMjVjNTVjOTY3YzdmMzM0NGY4NGZlNmM5NzEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMjM4NSw2ICsz
MjM4NSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cYW5pbWF0aW9uXEFuaW1hdGlvblV0aWxpdGllcy5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
YW5pbWF0aW9uXFRpbWluZ0Z1bmN0aW9uLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDk2
NWI2NmQxNzI1MzBkMTE3ZWMzNTM5MjM5MGUwYzFiYTI4MjhlOS4uM2VkNTQ3YjNiN2NiN2MwMDQ4
MDY4ZjhlZWRiMWJjMTMyNTAwNGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQzLDYgKzI0Myw3IEBACiAJCTBGNTgwRDAw
MEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBDRkMwRjEyREU5QjAwNTFENjg5
IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgKi87IH07CiAJCTBGNTgwRkEzMTQ5NjkzOTEwMEZC
NUJEOCAvKiBXZWJUaWxlQ2FjaGVMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQTExNDk2OTM5MTAwRkI1QkQ4IC8qIFdlYlRpbGVDYWNo
ZUxheWVyLmggKi87IH07CiAJCTBGNTgwRkE0MTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJUaWxlQ2Fj
aGVMYXllci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTgwRkEyMTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJUaWxlQ2FjaGVMYXllci5tbSAqLzsgfTsK
KwkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQUUxNDk4MDBE
NDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMwMiAvKiBS
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjVCN0E1MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwICovOyB9OwogCQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUI3QTUzMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNkVDRDQ1
MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEg
LyogQ1NTUHJvcGVydHlMb25naGFuZC5oICovOyB9OwpAQCAtNzMyNiw2ICs3MzI3LDcgQEAKIAkJ
MEY1ODBDRkMwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXllckJhY2tpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4MEZBMTE0OTY5MzkxMDBGQjVCRDggLyog
V2ViVGlsZUNhY2hlTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
VGlsZUNhY2hlTGF5ZXIuaDsgcGF0aCA9IGNhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2Vi
VGlsZUNhY2hlTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXZWJUaWxlQ2FjaGVMYXllci5tbTsgcGF0aCA9IGNhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4
IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBBbmltYXRpb25VdGlsaXRpZXMuaDsgcGF0aCA9IGFuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2
MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNkVDRDQzMEYyNTJGMzcwMEJE
RTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1Byb3BlcnR5TG9uZ2hhbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1MTMwLDYgKzE1MTMyLDcgQEAKIAkJCQk0OUU5MTJBNjBFRkFDOTA2MDA5RDBDQUYgLyog
QW5pbWF0aW9uLmggKi8sCiAJCQkJNDlFOTEyQTcwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlv
bkxpc3QuY3BwICovLAogCQkJCTQ5RTkxMkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25M
aXN0LmggKi8sCisJCQkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxp
dGllcy5oICovLAogCQkJCTQ5RTkxMkE5MEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlv
bi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBhbmltYXRpb247CkBAIC0yNDgyMyw2ICsyNDgyNiw3
IEBACiAJCQkJRjM1QUU1QUMxNDkyNUY1QjAwNEQ1Nzc2IC8qIERPTVdyYXBwZXJWaXNpdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyNkMxN0EzRTE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3Rl
bUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQTMxNDk2OTM5MTAwRkI1QkQ4IC8qIFdl
YlRpbGVDYWNoZUxheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBG
QjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBiNTViNDc1MWZjMTdmZDlmNWFiZmE2NjA5
NDY0ZWRmOTU1NTFmMWEyLi41NmJkN2YxMWQ2MWY4N2NmN2Q2MWE0ZDVmOGI3NDIxMDM3NGEyNjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC05MywyMCArOTMs
NiBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6OnNvcnRTdG9wc0lmTmVlZGVkKCkKICAgICB9CiB9
CiAKLXN0YXRpYyBpbmxpbmUgaW50IGJsZW5kKGludCBmcm9tLCBpbnQgdG8sIGZsb2F0IHByb2dy
ZXNzKQotewotICAgIHJldHVybiBpbnQoZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3MpOwot
fQotCi1zdGF0aWMgaW5saW5lIENvbG9yIGJsZW5kKGNvbnN0IENvbG9yJiBmcm9tLCBjb25zdCBD
b2xvciYgdG8sIGZsb2F0IHByb2dyZXNzKQotewotICAgIC8vIEZJWE1FOiB3aGVuIHdlIGludGVy
cG9sYXRlIGdyYWRpZW50cyB1c2luZyBwcmVtdWx0aXBsaWVkIGNvbG9ycywgdGhpcyBzaG91bGQg
YWxzbyBkbyBwcmVtdWx0aXBsaWNhdGlvbi4KLSAgICByZXR1cm4gQ29sb3IoYmxlbmQoZnJvbS5y
ZWQoKSwgdG8ucmVkKCksIHByb2dyZXNzKSwKLSAgICAgICAgYmxlbmQoZnJvbS5ncmVlbigpLCB0
by5ncmVlbigpLCBwcm9ncmVzcyksCi0gICAgICAgIGJsZW5kKGZyb20uYmx1ZSgpLCB0by5ibHVl
KCksIHByb2dyZXNzKSwKLSAgICAgICAgYmxlbmQoZnJvbS5hbHBoYSgpLCB0by5hbHBoYSgpLCBw
cm9ncmVzcykpOwotfQotCiBzdHJ1Y3QgR3JhZGllbnRTdG9wIHsKICAgICBDb2xvciBjb2xvcjsK
ICAgICBmbG9hdCBvZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwCmluZGV4IGM1NTIzODE0MDA2NzAzZmI4ZmM3NGU0YjdhZDMwMzllYmE5
YWQ2ZTcuLjIyYTgwNjY3MGI0OGIzZmNhMzJiNjhlNzFiZDA1ZWM4ZmY4OWUyZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC04MSwx
MiArODEsMTIgQEAgc3RhdGljIGlubGluZSBkb3VibGUgc29sdmVTdGVwc0Z1bmN0aW9uKGludCBu
dW1TdGVwcywgYm9vbCBzdGVwQXRTdGFydCwgZG91YmxlIHQKIAogc3RhdGljIGlubGluZSBpbnQg
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBpbnQgZnJvbSwgaW50IHRvLCBkb3VibGUg
cHJvZ3Jlc3MpCiB7ICAKLSAgICByZXR1cm4gbHJvdW5kKGZyb20gKyAodG8gLSBmcm9tKSAqIHBy
b2dyZXNzKTsKKyAgICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIHByb2dyZXNzKTsKIH0KIAogc3Rh
dGljIGlubGluZSBkb3VibGUgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBkb3VibGUg
ZnJvbSwgZG91YmxlIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7ICAKLSAgICByZXR1cm4gZnJvbSAr
ICh0byAtIGZyb20pICogcHJvZ3Jlc3M7CisgICAgcmV0dXJuIGJsZW5kKGZyb20sIHRvLCBwcm9n
cmVzcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBmbG9hdCBmcm9tLCBmbG9hdCB0bywgZG91YmxlIHByb2dyZXNzKQpAQCAtOTQsMjMg
Kzk0LDkgQEAgc3RhdGljIGlubGluZSBmbG9hdCBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIGZsb2F0IGZyb20sIGZsb2F0IHRvLCBkb3VibGUKICAgICByZXR1cm4gbmFycm93UHJlY2lz
aW9uVG9GbG9hdChmcm9tICsgKHRvIC0gZnJvbSkgKiBwcm9ncmVzcyk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IENv
bG9yJiBmcm9tLCBjb25zdCBDb2xvciYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxp
bmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBjb25zdCBDb2xvciYgZnJv
bSwgY29uc3QgQ29sb3ImIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7Ci0gICAgLy8gV2UgbmVlZCB0
byBwcmVzZXJ2ZSB0aGUgc3RhdGUgb2YgdGhlIHZhbGlkIGZsYWcgYXQgdGhlIGVuZCBvZiB0aGUg
YW5pbWF0aW9uCi0gICAgaWYgKHByb2dyZXNzID09IDEgJiYgIXRvLmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuIENvbG9yKCk7Ci0KLSAgICAvLyBDb250cmFyeSB0byB0aGUgbmFtZSwgUkdCQTMy
IGFjdHVhbGx5IHN0b3JlcyBBUkdCLCBzbyB3ZSBjYW4gaW5pdGlhbGl6ZSBDb2xvciBkaXJlY3Rs
eSBmcm9tIHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkuCi0gICAgLy8gQWxzbywgcHJlbXVs
dGlwbGllZEFSR0JGcm9tQ29sb3IoKSBiYWlscyBvbiB6ZXJvIGFscGhhLCBzbyBzcGVjaWFsLWNh
c2UgdGhhdC4KLSAgICBDb2xvciBwcmVtdWx0RnJvbSA9IGZyb20uYWxwaGEoKSA/IHByZW11bHRp
cGxpZWRBUkdCRnJvbUNvbG9yKGZyb20pIDogMDsKLSAgICBDb2xvciBwcmVtdWx0VG8gPSB0by5h
bHBoYSgpID8gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IodG8pIDogMDsKLQotICAgIENvbG9y
IHByZW11bHRCbGVuZGVkKGJsZW5kRnVuYyhhbmltLCBwcmVtdWx0RnJvbS5yZWQoKSwgcHJlbXVs
dFRvLnJlZCgpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBw
cmVtdWx0RnJvbS5ncmVlbigpLCBwcmVtdWx0VG8uZ3JlZW4oKSwgcHJvZ3Jlc3MpLAotICAgICAg
ICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgcHJlbXVsdEZyb20uYmx1ZSgpLCBwcmVtdWx0VG8u
Ymx1ZSgpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBwcmVt
dWx0RnJvbS5hbHBoYSgpLCBwcmVtdWx0VG8uYWxwaGEoKSwgcHJvZ3Jlc3MpKTsKLQotICAgIHJl
dHVybiBDb2xvcihjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQihwcmVtdWx0QmxlbmRlZC5yZ2Io
KSkpOworICAgIHJldHVybiBibGVuZChmcm9tLCB0bywgcHJvZ3Jlc3MpOwogfQogCiBzdGF0aWMg
aW5saW5lIExlbmd0aCBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIGNvbnN0IExlbmd0
aCYgZnJvbSwgY29uc3QgTGVuZ3RoJiB0bywgZG91YmxlIHByb2dyZXNzKQpAQCAtMTQ3LDEzICsx
MzMsMTMgQEAgc3RhdGljIGlubGluZSBQYXNzT3duUHRyPFNoYWRvd0RhdGE+IGJsZW5kRnVuYyhj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdAogICAgIGlmIChmcm9tLT5zdHlsZSgpICE9
IHRvLT5zdHlsZSgpKQogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoKnRv
KSk7CiAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoYmxlbmRGdW5jKGFuaW0s
IGZyb20tPngoKSwgdG8tPngoKSwgcHJvZ3Jlc3MpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJvbS0+eSgpLCB0by0+eSgpLCBwcm9ncmVzcyks
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJv
bS0+Ymx1cigpLCB0by0+Ymx1cigpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLT5zcHJlYWQoKSwgdG8tPnNwcmVhZCgp
LCBwcm9ncmVzcyksCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKGJsZW5kKGZy
b20tPngoKSwgdG8tPngoKSwgcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBibGVuZChmcm9tLT55KCksIHRvLT55KCksIHByb2dyZXNzKSwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJsZW5kKGZyb20tPmJsdXIoKSwgdG8tPmJsdXIoKSwg
cHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9t
LT5zcHJlYWQoKSwgdG8tPnNwcmVhZCgpLCBwcm9ncmVzcyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLT5zdHlsZSgpLCB0by0+c3R5bGUo
KSwgcHJvZ3Jlc3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tLT5p
c1dlYmtpdEJveFNoYWRvdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
bGVuZEZ1bmMoYW5pbSwgZnJvbS0+Y29sb3IoKSwgdG8tPmNvbG9yKCksIHByb2dyZXNzKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9tLT5jb2xvcigpLCB0
by0+Y29sb3IoKSwgcHJvZ3Jlc3MpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgVHJhbnNmb3JtT3Bl
cmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdG8sIGRvdWJs
ZSBwcm9ncmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKaW5kZXggMTE5ZTgyMzc2NWU0MDc0
M2M2OTU2NWI4MThhZGMwOTczMDA4ZTMzYy4uNTNiMDI2MGMyMDdiMDc4Mjg5NWVmMzc3Yzg0Y2Y2
MTY0NzU3NDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpZm5kZWYgTGVuZ3RoX2gKICNkZWZpbmUgTGVuZ3RoX2gKIAorI2luY2x1ZGUgIkFuaW1hdGlv
blV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L0Zhc3RBbGxvY0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMjAxLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW50cmluc2ljT3JBdXRvKCkgY29uc3QgeyByZXR1
cm4gdHlwZSgpID09IEF1dG8gfHwgdHlwZSgpID09IE1pbkludHJpbnNpYyB8fCB0eXBlKCkgPT0g
SW50cmluc2ljOyB9CiAgICAgYm9vbCBpc1NwZWNpZmllZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUo
KSA9PSBGaXhlZCB8fCB0eXBlKCkgPT0gUGVyY2VudDsgfQogCi0gICAgTGVuZ3RoIGJsZW5kKGNv
bnN0IExlbmd0aCYgZnJvbSwgZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0CisgICAgTGVuZ3RoIGJsZW5k
KGNvbnN0IExlbmd0aCYgZnJvbSwgZG91YmxlIHByb2dyZXNzKSBjb25zdAogICAgIHsKICAgICAg
ICAgLy8gQmxlbmQgdHdvIGxlbmd0aHMgdG8gcHJvZHVjZSBhIG5ldyBsZW5ndGggdGhhdCBpcyBp
biBiZXR3ZWVuIHRoZW0uICBVc2VkIGZvciBhbmltYXRpb24uCiAgICAgICAgIGlmICghZnJvbS5p
c1plcm8oKSAmJiAhaXNaZXJvKCkgJiYgZnJvbS50eXBlKCkgIT0gdHlwZSgpKQpAQCAtMjE3LDEy
ICsyMTgsMTIgQEAgcHVibGljOgogICAgICAgICBpZiAocmVzdWx0VHlwZSA9PSBQZXJjZW50KSB7
CiAgICAgICAgICAgICBmbG9hdCBmcm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJv
bS5wZXJjZW50KCk7CiAgICAgICAgICAgICBmbG9hdCB0b1BlcmNlbnQgPSBpc1plcm8oKSA/IDAg
OiBwZXJjZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gTGVuZ3RoKGZyb21QZXJjZW50ICsgKHRv
UGVyY2VudCAtIGZyb21QZXJjZW50KSAqIHByb2dyZXNzLCBQZXJjZW50KTsKKyAgICAgICAgICAg
IHJldHVybiBMZW5ndGgoV2ViQ29yZTo6YmxlbmQoZnJvbVBlcmNlbnQsIHRvUGVyY2VudCwgcHJv
Z3Jlc3MpLCBQZXJjZW50KTsKICAgICAgICAgfSAKLSAgICAgICAgICAgIAorCiAgICAgICAgIGZs
b2F0IGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJvbS52YWx1ZSgpOwogICAgICAg
ICBmbG9hdCB0b1ZhbHVlID0gaXNaZXJvKCkgPyAwIDogdmFsdWUoKTsKLSAgICAgICAgcmV0dXJu
IExlbmd0aChmcm9tVmFsdWUgKyAodG9WYWx1ZSAtIGZyb21WYWx1ZSkgKiBwcm9ncmVzcywgcmVz
dWx0VHlwZSk7CisgICAgICAgIHJldHVybiBMZW5ndGgoV2ViQ29yZTo6YmxlbmQoZnJvbVZhbHVl
LCB0b1ZhbHVlLCBwcm9ncmVzcyksIHJlc3VsdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGls
aXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OTFkYjZlNTAyMTAwMDdlYjk3NjMxY2FhZTAxNzVkOTQzODMz
N2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvblV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBBbmltYXRpb25VdGlsaXRpZXNfaAorI2RlZmluZSBBbmltYXRpb25VdGlsaXRpZXNfaAorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBpbnQgYmxlbmQoaW50IGZyb20sIGludCB0bywg
ZG91YmxlIHByb2dyZXNzKQoreyAgCisgICAgcmV0dXJuIGxyb3VuZChmcm9tICsgKHRvIC0gZnJv
bSkgKiBwcm9ncmVzcyk7Cit9CisKK2lubGluZSBkb3VibGUgYmxlbmQoZG91YmxlIGZyb20sIGRv
dWJsZSB0bywgZG91YmxlIHByb2dyZXNzKQoreyAgCisgICAgcmV0dXJuIGZyb20gKyAodG8gLSBm
cm9tKSAqIHByb2dyZXNzOworfQorCitpbmxpbmUgZmxvYXQgYmxlbmQoZmxvYXQgZnJvbSwgZmxv
YXQgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3sgIAorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9h
dD4oZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBBbmltYXRpb25VdGlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKaW5kZXggNzQ4MTc0NDBkN2MyYjAyMzE5OGFiZGJjNGU3
ZTAyYjJlOGMwODg5ZC4uMjM1ZjY3MWM0M2RhNmM1Y2JhMzcwMjdkMWU4YTk3ZjNhMjViOTIxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjaWZuZGVmIENvbG9yX2gKICNkZWZpbmUgQ29sb3JfaAogCisjaW5jbHVkZSAiQW5pbWF0
aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAgLTE3
Miw2ICsxNzMsMzIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2xvciYgYSwgY29u
c3QgQ29sb3ImIGIpCiBDb2xvciBjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQih1bnNpZ25lZCk7
CiB1bnNpZ25lZCBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihjb25zdCBDb2xvciYpOwogCitp
bmxpbmUgQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENvbG9yJiB0bywgZG91
YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCA9IHRydWUpCit7CisgICAgLy8g
V2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgc3RhdGUgb2YgdGhlIHZhbGlkIGZsYWcgYXQgdGhlIGVu
ZCBvZiB0aGUgYW5pbWF0aW9uCisgICAgaWYgKHByb2dyZXNzID09IDEgJiYgIXRvLmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgaWYgKGJsZW5kUHJlbXVsdGlw
bGllZCkgeworICAgICAgICAvLyBDb250cmFyeSB0byB0aGUgbmFtZSwgUkdCQTMyIGFjdHVhbGx5
IHN0b3JlcyBBUkdCLCBzbyB3ZSBjYW4gaW5pdGlhbGl6ZSBDb2xvciBkaXJlY3RseSBmcm9tIHBy
ZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkuCisgICAgICAgIC8vIEFsc28sIHByZW11bHRpcGxp
ZWRBUkdCRnJvbUNvbG9yKCkgYmFpbHMgb24gemVybyBhbHBoYSwgc28gc3BlY2lhbC1jYXNlIHRo
YXQuCisgICAgICAgIENvbG9yIHByZW11bHRGcm9tID0gZnJvbS5hbHBoYSgpID8gcHJlbXVsdGlw
bGllZEFSR0JGcm9tQ29sb3IoZnJvbSkgOiAwOworICAgICAgICBDb2xvciBwcmVtdWx0VG8gPSB0
by5hbHBoYSgpID8gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IodG8pIDogMDsKKworICAgICAg
ICBDb2xvciBwcmVtdWx0QmxlbmRlZChibGVuZChwcmVtdWx0RnJvbS5yZWQoKSwgcHJlbXVsdFRv
LnJlZCgpLCBwcm9ncmVzcyksCisgICAgICAgICAgICAgICAgICAgICBibGVuZChwcmVtdWx0RnJv
bS5ncmVlbigpLCBwcmVtdWx0VG8uZ3JlZW4oKSwgcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAg
ICAgICAgYmxlbmQocHJlbXVsdEZyb20uYmx1ZSgpLCBwcmVtdWx0VG8uYmx1ZSgpLCBwcm9ncmVz
cyksCisgICAgICAgICAgICAgICAgICAgICBibGVuZChwcmVtdWx0RnJvbS5hbHBoYSgpLCBwcmVt
dWx0VG8uYWxwaGEoKSwgcHJvZ3Jlc3MpKTsKKworICAgICAgICByZXR1cm4gQ29sb3IoY29sb3JG
cm9tUHJlbXVsdGlwbGllZEFSR0IocHJlbXVsdEJsZW5kZWQucmdiKCkpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gQ29sb3IoYmxlbmQoZnJvbS5yZWQoKSwgdG8ucmVkKCksIHByb2dyZXNzKSwKKyAg
ICAgICAgICAgICAgICAgYmxlbmQoZnJvbS5ncmVlbigpLCB0by5ncmVlbigpLCBwcm9ncmVzcyks
CisgICAgICAgICAgICAgICAgIGJsZW5kKGZyb20uYmx1ZSgpLCB0by5ibHVlKCksIHByb2dyZXNz
KSwKKyAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbS5hbHBoYSgpLCB0by5hbHBoYSgpLCBwcm9n
cmVzcykpOworfQorCiAjaWYgVVNFKENHKQogQ0dDb2xvclJlZiBjYWNoZWRDR0NvbG9yKGNvbnN0
IENvbG9yJiwgQ29sb3JTcGFjZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJz
cGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggMThiZmUzN2Q0OGI0ODhiZTgyYzk0
NWQ2ZjYyMjBhOTVjZmY1NzBhZS4uNmFiNjA1ZDllMGVkZWQxMTM1MTA3ZjQ4OTI5ZWUxYzIzNTUw
Njc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJh
dGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogCisjaW5jbHVkZSAiQW5pbWF0aW9u
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTM5LDcgKzQwLDcgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+
IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2YKICAgICAK
ICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KSB7CiAgICAgICAgIGRvdWJsZSBwID0gbV9wLmNhbGNG
bG9hdFZhbHVlKDEpOwotICAgICAgICBwID0gcCArICgxLiAtIHApICogcHJvZ3Jlc3M7IC8vIEZJ
WE1FOiB0aGlzIHNlZW1zIHdyb25nLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTI3MDAKKyAgICAgICAgcCA9IFdlYkNvcmU6OmJsZW5kKHAsIDEuMCwgcHJvZ3Jlc3Mp
OyAvLyBGSVhNRTogdGhpcyBzZWVtcyB3cm9uZy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUyNzAwCiAgICAgICAgIHJldHVybiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9w
ZXJhdGlvbjo6Y3JlYXRlKExlbmd0aChjbGFtcFRvUG9zaXRpdmVJbnRlZ2VyKHApLCBGaXhlZCkp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9u
LmNwcAppbmRleCA5MTlkMTc0ZjljM2EwNTMxZmViZDM0MWUzOWVlMmJlZmQ4NWU0YWI4Li44YzRm
YWQ2ZDk5ZWVjOWU2MzA2ZGU0ZDgyYTNiZGJmYTljNmY0NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAKKyNp
bmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtNDcsNyArNDgsNyBAQCBQYXNzUmVmUHRyPFRy
YW5zZm9ybU9wZXJhdGlvbj4gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBU
cmFuc2Zvcm1PcAogICAgICAgICByZXR1cm4gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVh
dGUoZnJvbU9wID8gZnJvbU9wLT5tX3ggOiBtX3gsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbU9wID8gZnJvbU9wLT5tX3kgOiBtX3ksIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbU9wID8gZnJv
bU9wLT5tX3ogOiBtX3osIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnJvbUFuZ2xlICsgKG1fYW5nbGUgLSBmcm9tQW5nbGUpICogcHJvZ3Jlc3MsIG1f
dHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJDb3JlOjpibGVuZChmcm9tQW5nbGUsIG1fYW5nbGUsIHByb2dyZXNzKSwgbV90eXBlKTsKICAg
ICB9CiAKICAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIHRvT3AgPSB0aGlzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA0NWQxMTlj
YmM3ODU1NDMyNGY2ZDNkODE3MTA3ZTgwNjhlMDZjZGI2Li5lODgwNmYyMDMwOGY3ZjM4MDdkZTI3
MWE0NzQ4OWI5MzE4YTE0ZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3Bl
cmF0aW9uLmNwcApAQCAtMjIsNiArMjIsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAKKyNpbmNsdWRlICJBbmltYXRpb25VdGls
aXRpZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFRyYW5zZm9ybU9w
ZXJhdGlvbj4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiogZnJvbSwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9JZGVudGl0eSkKQEAg
LTMwLDE3ICszMiwxNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wZQogICAgICAgICByZXR1cm4g
dGhpczsKICAgICAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQotICAgICAgICByZXR1cm4gU2Nh
bGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3ggKyAoMS4gLSBtX3gpICogcHJvZ3Jlc3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1feSArICgx
LiAtIG1feSkgKiBwcm9ncmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV96ICsgKDEuIC0gbV96KSAqIHByb2dyZXNzLCBtX3R5cGUpOworICAgICAg
ICByZXR1cm4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShXZWJDb3JlOjpibGVuZCht
X3gsIDEuMCwgcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJDb3JlOjpibGVuZChtX3ksIDEuMCwgcHJvZ3Jlc3MpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZChtX3os
IDEuMCwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwogICAgIAogICAgIGNvbnN0IFNjYWxlVHJhbnNmb3Jt
T3BlcmF0aW9uKiBmcm9tT3AgPSBzdGF0aWNfY2FzdDxjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJh
dGlvbio+KGZyb20pOwotICAgIGRvdWJsZSBmcm9tWCA9IGZyb21PcCA/IGZyb21PcC0+bV94IDog
MS47Ci0gICAgZG91YmxlIGZyb21ZID0gZnJvbU9wID8gZnJvbU9wLT5tX3kgOiAxLjsKLSAgICBk
b3VibGUgZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1feiA6IDEuOwotICAgIHJldHVybiBTY2Fs
ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKGZyb21YICsgKG1feCAtIGZyb21YKSAqIHByb2dy
ZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21ZICsg
KG1feSAtIGZyb21ZKSAqIHByb2dyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZyb21aICsgKG1feiAtIGZyb21aKSAqIHByb2dyZXNzLCBtX3R5cGUpOwor
ICAgIGRvdWJsZSBmcm9tWCA9IGZyb21PcCA/IGZyb21PcC0+bV94IDogMS4wOworICAgIGRvdWJs
ZSBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+bV95IDogMS4wOworICAgIGRvdWJsZSBmcm9tWiA9
IGZyb21PcCA/IGZyb21PcC0+bV96IDogMS4wOworICAgIHJldHVybiBTY2FsZVRyYW5zZm9ybU9w
ZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKGZyb21YLCBtX3gsIHByb2dyZXNzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZChm
cm9tWSwgbV95LCBwcm9ncmVzcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViQ29yZTo6YmxlbmQoZnJvbVosIG1feiwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3Jt
T3BlcmF0aW9uLmNwcAppbmRleCAyYTQzMGU5N2I3NGJmMGQ0YjJjNWI5OTIxOWJmZGMwMmQ1YmMx
MGQ5Li5kOTJkODk1Y2ViNjg3NjBmZmY3NDBjMTc0NmI2ZGMzNTQyZjJhN2YyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTIyLDYgKzIyLDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTa2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAK
KyNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6
YmxlbmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJv
b2wgYmxlbmRUb0lkZW50aXR5KQpAQCAtMzAsMTIgKzMyLDEyIEBAIFBhc3NSZWZQdHI8VHJhbnNm
b3JtT3BlcmF0aW9uPiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2Zv
cm1PcGVyCiAgICAgICAgIHJldHVybiB0aGlzOwogICAgIAogICAgIGlmIChibGVuZFRvSWRlbnRp
dHkpCi0gICAgICAgIHJldHVybiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV9hbmds
ZVggLSBtX2FuZ2xlWCAqIHByb2dyZXNzLCBtX2FuZ2xlWSAtIG1fYW5nbGVZICogcHJvZ3Jlc3Ms
IG1fdHlwZSk7CisgICAgICAgIHJldHVybiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUo
V2ViQ29yZTo6YmxlbmQobV9hbmdsZVgsIDAuMCwgcHJvZ3Jlc3MpLCBXZWJDb3JlOjpibGVuZCht
X2FuZ2xlWSwgMC4wLCBwcm9ncmVzcyksIG1fdHlwZSk7CiAgICAgCiAgICAgY29uc3QgU2tld1Ry
YW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gc3RhdGljX2Nhc3Q8Y29uc3QgU2tld1RyYW5zZm9y
bU9wZXJhdGlvbio+KGZyb20pOwogICAgIGRvdWJsZSBmcm9tQW5nbGVYID0gZnJvbU9wID8gZnJv
bU9wLT5tX2FuZ2xlWCA6IDA7CiAgICAgZG91YmxlIGZyb21BbmdsZVkgPSBmcm9tT3AgPyBmcm9t
T3AtPm1fYW5nbGVZIDogMDsKLSAgICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3Jl
YXRlKGZyb21BbmdsZVggKyAobV9hbmdsZVggLSBmcm9tQW5nbGVYKSAqIHByb2dyZXNzLCBmcm9t
QW5nbGVZICsgKG1fYW5nbGVZIC0gZnJvbUFuZ2xlWSkgKiBwcm9ncmVzcywgbV90eXBlKTsKKyAg
ICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKGZy
b21BbmdsZVgsIG1fYW5nbGVYLCBwcm9ncmVzcyksIFdlYkNvcmU6OmJsZW5kKGZyb21BbmdsZVks
IG1fYW5nbGVZLCBwcm9ncmVzcyksIG1fdHlwZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApp
bmRleCBiMWVhOTliMWVlMWRhMTRiNjdkYmEzNWFjMzRjZGE2ZmVmMzU4YjI3Li44MWMzMGFlODVj
N2EwOTYyOTQ3MzE2N2MzYjE0ZGM4NTAwNmRlMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0zMSwxNSArMzEsMTUgQEAgUGFzc1Jl
ZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Ymxl
bmQoY29uc3QgVHJhbnNmb3IKICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgCiAgICAgaWYgKGJs
ZW5kVG9JZGVudGl0eSkKLSAgICAgICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bjo6Y3JlYXRlKExlbmd0aChtX3gudHlwZSgpKS5ibGVuZChtX3gsIG5hcnJvd1ByZWNpc2lvblRv
RmxvYXQocHJvZ3Jlc3MpKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMZW5ndGgobV95LnR5cGUoKSkuYmxlbmQobV95LCBuYXJyb3dQcmVjaXNp
b25Ub0Zsb2F0KHByb2dyZXNzKSksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTGVuZ3RoKG1fei50eXBlKCkpLmJsZW5kKG1feiwgbmFycm93UHJl
Y2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCBtX3R5cGUpOworICAgICAgICByZXR1cm4gVHJhbnNs
YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKG1feC50eXBlKCkpLmJsZW5kKG1f
eCwgcHJvZ3Jlc3MpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExlbmd0aChtX3kudHlwZSgpKS5ibGVuZChtX3ksIHByb2dyZXNzKSwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgobV96
LnR5cGUoKSkuYmxlbmQobV96LCBwcm9ncmVzcyksIG1fdHlwZSk7CiAKICAgICBjb25zdCBUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+KGZyb20pOwogICAgIExlbmd0aCBmcm9tWCA9IGZyb21P
cCA/IGZyb21PcC0+bV94IDogTGVuZ3RoKG1feC50eXBlKCkpOwogICAgIExlbmd0aCBmcm9tWSA9
IGZyb21PcCA/IGZyb21PcC0+bV95IDogTGVuZ3RoKG1feS50eXBlKCkpOwogICAgIExlbmd0aCBm
cm9tWiA9IGZyb21PcCA/IGZyb21PcC0+bV96IDogTGVuZ3RoKG1fei50eXBlKCkpOwotICAgIHJl
dHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3guYmxlbmQoZnJvbVgs
IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKSwgbV95LmJsZW5kKGZyb21ZLCBuYXJy
b3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIG1fei5ibGVuZChmcm9tWiwgbmFycm93UHJl
Y2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCBtX3R5cGUpOworICAgIHJldHVybiBUcmFuc2xhdGVU
cmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3guYmxlbmQoZnJvbVgsIHByb2dyZXNzKSwgbV95
LmJsZW5kKGZyb21ZLCBwcm9ncmVzcyksIG1fei5ibGVuZChmcm9tWiwgcHJvZ3Jlc3MpLCBtX3R5
cGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKaW5k
ZXggN2U2ZjNkMDg4OTY5NjlmNGM1MmJiMjIxODc1MWVhYzhhNWJlNWFjYy4uYTI0ZWEwNTNhNTNi
YTkwY2NmNjdkZDBkMGZjZjRmMzhkZjcwOGQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaApAQCAt
MjIsNiArMjIsNyBAQAogI2RlZmluZSBTVkdMZW5ndGhfaAogCiAjaWYgRU5BQkxFKFNWRykKKyNp
bmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhDb250ZXh0
LmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2luZ0Vycm9yLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlU
cmFpdHMuaCIKQEAgLTExOCw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChmcm9tVHlw
ZSA9PSBMZW5ndGhUeXBlUGVyY2VudGFnZSB8fCB0b1R5cGUgPT0gTGVuZ3RoVHlwZVBlcmNlbnRh
Z2UpIHsKICAgICAgICAgICAgIGZsb2F0IGZyb21QZXJjZW50ID0gZnJvbS52YWx1ZUFzUGVyY2Vu
dGFnZSgpICogMTAwOwogICAgICAgICAgICAgZmxvYXQgdG9QZXJjZW50ID0gdmFsdWVBc1BlcmNl
bnRhZ2UoKSAqIDEwMDsKLSAgICAgICAgICAgIGxlbmd0aC5uZXdWYWx1ZVNwZWNpZmllZFVuaXRz
KExlbmd0aFR5cGVQZXJjZW50YWdlLCBmcm9tUGVyY2VudCArICh0b1BlcmNlbnQgLSBmcm9tUGVy
Y2VudCkgKiBwcm9ncmVzcywgZWMpOworICAgICAgICAgICAgbGVuZ3RoLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoTGVuZ3RoVHlwZVBlcmNlbnRhZ2UsIFdlYkNvcmU6OmJsZW5kKGZyb21QZXJjZW50
LCB0b1BlcmNlbnQsIHByb2dyZXNzKSwgZWMpOwogICAgICAgICAgICAgaWYgKGVjKQogICAgICAg
ICAgICAgICAgIHJldHVybiBTVkdMZW5ndGgoKTsKICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7
CkBAIC0xMjgsOSArMTI5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgZmxvYXQgZnJvbVZhbHVl
ID0gZnJvbS52YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICAgICAgICAgIGZsb2F0IHRvVmFs
dWUgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICAgICAgICAgIGlmIChpc1plcm8oKSkK
LSAgICAgICAgICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhmcm9tVHlwZSwg
ZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBmcm9tVmFsdWUpICogcHJvZ3Jlc3MsIGVjKTsKKyAgICAg
ICAgICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhmcm9tVHlwZSwgV2ViQ29y
ZTo6YmxlbmQoZnJvbVZhbHVlLCB0b1ZhbHVlLCBwcm9ncmVzcyksIGVjKTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh0b1R5
cGUsIGZyb21WYWx1ZSArICh0b1ZhbHVlIC0gZnJvbVZhbHVlKSAqIHByb2dyZXNzLCBlYyk7Cisg
ICAgICAgICAgICAgICAgbGVuZ3RoLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModG9UeXBlLCBXZWJD
b3JlOjpibGVuZChmcm9tVmFsdWUsIHRvVmFsdWUsIHByb2dyZXNzKSwgZWMpOwogICAgICAgICAg
ICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBTVkdMZW5ndGgoKTsKICAgICAgICAg
ICAgIHJldHVybiBsZW5ndGg7CkBAIC0xNDksNyArMTUwLDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIFNWR0xlbmd0aCgpOwogCiAgICAgICAgIGZsb2F0IHRvVmFsdWUgPSB2YWx1ZUlu
U3BlY2lmaWVkVW5pdHMoKTsKLSAgICAgICAgbGVuZ3RoLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMo
dG9UeXBlLCBmcm9tVmFsdWUgKyAodG9WYWx1ZSAtIGZyb21WYWx1ZSkgKiBwcm9ncmVzcywgZWMp
OworICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh0b1R5cGUsIFdlYkNvcmU6
OmJsZW5kKGZyb21WYWx1ZSwgdG9WYWx1ZSwgcHJvZ3Jlc3MpLCBlYyk7CiAKICAgICAgICAgaWYg
KGVjKQogICAgICAgICAgICAgcmV0dXJuIFNWR0xlbmd0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoQmxlbmRlci5jcHAKaW5kZXggNmRlNzgzZDZhMzIxY2ZmOWNmYWFmYzdhYmYwOTRhZmZiZmUx
N2NmMi4uYzk5MWQ2YjJmYmRlMWZhMDczYjgwMGVlNzYwZDg2M2IwNzAxMzYzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaWYgRU5BQkxF
KFNWRykKICNpbmNsdWRlICJTVkdQYXRoQmxlbmRlci5oIgogCisjaW5jbHVkZSAiQW5pbWF0aW9u
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zNywzMCArMzgsMjUgQEAgU1ZHUGF0aEJsZW5kZXI6OlNWR1BhdGhCbGVuZGVyKCkK
IC8vIEhlbHBlciBmdW5jdGlvbnMKIHN0YXRpYyBpbmxpbmUgRmxvYXRQb2ludCBibGVuZEZsb2F0
UG9pbnQoY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYiwgZmxvYXQgcHJv
Z3Jlc3MpCiB7Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoKGIueCgpIC0gYS54KCkpICogcHJvZ3Jl
c3MgKyBhLngoKSwgKGIueSgpIC0gYS55KCkpICogcHJvZ3Jlc3MgKyBhLnkoKSk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgZmxvYXQgYmxlbmRBbmltYXRlZEZsb2F0KGZsb2F0IGZyb20sIGZsb2F0IHRv
LCBmbG9hdCBwcm9ncmVzcykKLXsKLSAgICByZXR1cm4gKHRvIC0gZnJvbSkgKiBwcm9ncmVzcyAr
IGZyb207CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYmxlbmQoYS54KCksIGIueCgpLCBwcm9ncmVz
cyksIGJsZW5kKGEueSgpLCBiLnkoKSwgcHJvZ3Jlc3MpKTsKIH0KIAogZmxvYXQgU1ZHUGF0aEJs
ZW5kZXI6OmJsZW5kQW5pbWF0ZWREaW1lbnNvbmFsRmxvYXQoZmxvYXQgZnJvbSwgZmxvYXQgdG8s
IEZsb2F0QmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKICAgICBpZiAobV9mcm9tTW9kZSA9PSBtX3Rv
TW9kZSkKLSAgICAgICAgcmV0dXJuIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tLCB0bywgbV9wcm9n
cmVzcyk7CisgICAgICAgIHJldHVybiBibGVuZChmcm9tLCB0bywgbV9wcm9ncmVzcyk7CiAgICAg
CiAgICAgZmxvYXQgZnJvbVZhbHVlID0gYmxlbmRNb2RlID09IEJsZW5kSG9yaXpvbnRhbCA/IG1f
ZnJvbUN1cnJlbnRQb2ludC54KCkgOiBtX2Zyb21DdXJyZW50UG9pbnQueSgpOwogICAgIGZsb2F0
IHRvVmFsdWUgPSBibGVuZE1vZGUgPT0gQmxlbmRIb3Jpem9udGFsID8gbV90b0N1cnJlbnRQb2lu
dC54KCkgOiBtX3RvQ3VycmVudFBvaW50LnkoKTsKIAogICAgIC8vIFRyYW5zZm9ybSB0b1kgdG8g
dGhlIGNvb3JkaW5hdGUgbW9kZSBvZiBmcm9tWQotICAgIGZsb2F0IGFuaW1WYWx1ZSA9IGJsZW5k
QW5pbWF0ZWRGbG9hdChmcm9tLCBtX2Zyb21Nb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0
byArIHRvVmFsdWUgOiB0byAtIHRvVmFsdWUsIG1fcHJvZ3Jlc3MpOworICAgIGZsb2F0IGFuaW1W
YWx1ZSA9IGJsZW5kKGZyb20sIG1fZnJvbU1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHRv
ICsgdG9WYWx1ZSA6IHRvIC0gdG9WYWx1ZSwgbV9wcm9ncmVzcyk7CiAgICAgCiAgICAgaWYgKG1f
aXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uKQogICAgICAgICByZXR1cm4gYW5pbVZhbHVlOwogICAg
IAogICAgIC8vIFRyYW5zZm9ybSB0aGUgYW5pbWF0ZWQgcG9pbnQgdG8gdGhlIGNvb3JkaW5hdGUg
bW9kZSwgbmVlZGVkIGZvciB0aGUgY3VycmVudCBwcm9ncmVzcy4KLSAgICBmbG9hdCBjdXJyZW50
VmFsdWUgPSBibGVuZEFuaW1hdGVkRmxvYXQoZnJvbVZhbHVlLCB0b1ZhbHVlLCBtX3Byb2dyZXNz
KTsKKyAgICBmbG9hdCBjdXJyZW50VmFsdWUgPSBibGVuZChmcm9tVmFsdWUsIHRvVmFsdWUsIG1f
cHJvZ3Jlc3MpOwogICAgIHJldHVybiBtX3RvTW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8g
YW5pbVZhbHVlICsgY3VycmVudFZhbHVlIDogYW5pbVZhbHVlIC0gY3VycmVudFZhbHVlOwogfQog
CkBAIC0yMzUsOSArMjMxLDkgQEAgYm9vbCBTVkdQYXRoQmxlbmRlcjo6YmxlbmRBcmNUb1NlZ21l
bnQoKQogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VBcmNUb1NlZ21lbnQodG9SeCwgdG9S
eSwgdG9BbmdsZSwgdG9MYXJnZUFyYywgdG9Td2VlcCwgdG9UYXJnZXRQb2ludCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIG1fY29uc3VtZXItPmFyY1RvKGJsZW5kQW5pbWF0ZWRGbG9h
dChmcm9tUngsIHRvUngsIG1fcHJvZ3Jlc3MpLAotICAgICAgICAgICAgICAgICAgICAgIGJsZW5k
QW5pbWF0ZWRGbG9hdChmcm9tUnksIHRvUnksIG1fcHJvZ3Jlc3MpLAotICAgICAgICAgICAgICAg
ICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tQW5nbGUsIHRvQW5nbGUsIG1fcHJvZ3Jlc3Mp
LAorICAgIG1fY29uc3VtZXItPmFyY1RvKGJsZW5kKGZyb21SeCwgdG9SeCwgbV9wcm9ncmVzcyks
CisgICAgICAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbVJ5LCB0b1J5LCBtX3Byb2dyZXNzKSwK
KyAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9tQW5nbGUsIHRvQW5nbGUsIG1fcHJvZ3Jl
c3MpLAogICAgICAgICAgICAgICAgICAgICAgIG1faXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uID8g
ZnJvbUxhcmdlQXJjIDogdG9MYXJnZUFyYywKICAgICAgICAgICAgICAgICAgICAgICBtX2lzSW5G
aXJzdEhhbGZPZkFuaW1hdGlvbiA/IGZyb21Td2VlcCA6IHRvU3dlZXAsCiAgICAgICAgICAgICAg
ICAgICAgICAgYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJvbVRhcmdldFBvaW50LCB0b1Rhcmdl
dFBvaW50KSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119116</attachid>
            <date>2011-12-13 17:16:03 -0800</date>
            <delta_ts>2011-12-13 20:19:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74464-20111213171602.patch</filename>
            <type>text/plain</type>
            <size>31950</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzMmI1ZWMyOTUzM2U3
NzI5NDc4NTU2NWY3MjJkMzlmYTI2YzQ1Zi4uNTFkODNiNmY0ZDQzMmYwOTIzMmI0ZDY3Y2Q3NmJj
YTBjNzU3NmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDExLTEyLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIGJsZW5k
IHByb2dyZXNzIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0NDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBMb3RzIG9mIHBsYWNlcyBpbiB0aGUgY29kZSBoYWQgY29waWVzIG9mIHRo
ZSBhbmltYXRpb24gaW50ZXJwb2xhdGlvbgorICAgICAgICBsb2dpYyAiZnJvbSArICh0byAtIGZy
b20pICogcHJvZ3Jlc3MiLCBpbiB2YXJpb3VzIGZvcm1zLgorICAgICAgICAKKyAgICAgICAgQ29h
bGVzY2UgYWxsIHRoZXNlIGludG8gY2FsbHMgdG8gYSBmZXcgbmV3IGlubGluZSBmdW5jdGlvbnMg
aW4gYSBuZXcKKyAgICAgICAgQW5pbWF0aW9uVXRpbGl0aWVzLmggaGVhZGVyLiBDb2xvciBhbmQg
TGVuZ3RoIGdldCB0aGVpciBvd24gYmxlbmQgZnVjdGlvbnMKKyAgICAgICAgaW4gdGhlaXIgcmVz
cGVjdGl2ZSBoZWFkZXJzLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgICogcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOgorICAg
ICAgICAqIHBsYXRmb3JtL0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpibGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblV0aWxpdGllcy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5k
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRp
b246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxl
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxlVHJhbnNmb3Jt
T3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNrZXdUcmFu
c2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBzdmcvU1ZH
TGVuZ3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmJsZW5kKToKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aEJsZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGbG9hdFBv
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFuaW1hdGVkRGlt
ZW5zb25hbEZsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjpibGVuZEFy
Y1RvU2VnbWVudCk6CisKIDIwMTEtMTItMTMgIEFsb2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGluZy9tYXNrcyBsYXlvdXQg
dGVzdHMgZmFpbCB3aXRoIGFjY2VsZXJhdGVkIGRyYXdpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDk4MTM3MDY0MWQ4ZTYyYmNiOTJiYjRiNzIxMDkwNTZlODlhMTgwZWUuLjM4
NGZhYmFmODlhYjhhZGZmZGJhN2VjODczODI1ZWE0YTI2NWM0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMjQ2MCw2ICsyNDYwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblV0aWxpdGllcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQXJlbmEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BcmVu
YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGM2NTk4NDdiYjg4MDk4NjA1ODhlMTgyNDVkZjkwNGFkOTU1
MzZiODkuLjE0ZWRlODMyNGJjNjE4ZmY4MGEzNTRiNmM5N2IwZTQ2M2EyYTI1YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtMjA1MCw2ICsyMDUwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Xb3JrZXJO
YXZpZ2F0b3IuaCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIFwKICAgICBw
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5oIFwKKyAgICBwbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uVXRpbGl0aWVzLmggXAogICAgIHBsYXRmb3JtL0FyZW5hLmggXAogICAgIHBs
YXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIFwKICAgICBwbGF0Zm9ybS9DbG9jay5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBlNjU4ZThiNjRiNDQyMWE3NzQ2NGY2NzkxZTRhOWY5NzNmMDlkNTE4Li5l
MWE5MGZlZWY1NDk3YmMyNTgyNWExMjA5MTgxNjgwMjQ1YTRhZGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC03MzAsNiArNzMwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9XaW5kb3dzS2V5Ym9h
cmRDb2Rlcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRpZXMuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2NmL0JpbmFyeVByb3BlcnR5TGlzdC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jZi9TY2hlZHVsZVBhaXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDE4OTdhNGZkODE0YjQxNWIzNTI4NWM0ZjcxOTVmZjU3MGEw
MmY4NGIuLmVhMjEwZDNhZTE4OTVkMjVjNTVjOTY3YzdmMzM0NGY4NGZlNmM5NzEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMjM4NSw2ICsz
MjM4NSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cYW5pbWF0aW9uXEFuaW1hdGlvblV0aWxpdGllcy5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
YW5pbWF0aW9uXFRpbWluZ0Z1bmN0aW9uLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDk2
NWI2NmQxNzI1MzBkMTE3ZWMzNTM5MjM5MGUwYzFiYTI4MjhlOS4uM2VkNTQ3YjNiN2NiN2MwMDQ4
MDY4ZjhlZWRiMWJjMTMyNTAwNGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQzLDYgKzI0Myw3IEBACiAJCTBGNTgwRDAw
MEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBDRkMwRjEyREU5QjAwNTFENjg5
IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgKi87IH07CiAJCTBGNTgwRkEzMTQ5NjkzOTEwMEZC
NUJEOCAvKiBXZWJUaWxlQ2FjaGVMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQTExNDk2OTM5MTAwRkI1QkQ4IC8qIFdlYlRpbGVDYWNo
ZUxheWVyLmggKi87IH07CiAJCTBGNTgwRkE0MTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJUaWxlQ2Fj
aGVMYXllci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTgwRkEyMTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJUaWxlQ2FjaGVMYXllci5tbSAqLzsgfTsK
KwkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQUUxNDk4MDBE
NDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMwMiAvKiBS
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjVCN0E1MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwICovOyB9OwogCQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUI3QTUzMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNkVDRDQ1
MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEg
LyogQ1NTUHJvcGVydHlMb25naGFuZC5oICovOyB9OwpAQCAtNzMyNiw2ICs3MzI3LDcgQEAKIAkJ
MEY1ODBDRkMwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXllckJhY2tpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4MEZBMTE0OTY5MzkxMDBGQjVCRDggLyog
V2ViVGlsZUNhY2hlTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
VGlsZUNhY2hlTGF5ZXIuaDsgcGF0aCA9IGNhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2Vi
VGlsZUNhY2hlTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXZWJUaWxlQ2FjaGVMYXllci5tbTsgcGF0aCA9IGNhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4
IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBBbmltYXRpb25VdGlsaXRpZXMuaDsgcGF0aCA9IGFuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2
MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNkVDRDQzMEYyNTJGMzcwMEJE
RTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1Byb3BlcnR5TG9uZ2hhbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1MTMwLDYgKzE1MTMyLDcgQEAKIAkJCQk0OUU5MTJBNjBFRkFDOTA2MDA5RDBDQUYgLyog
QW5pbWF0aW9uLmggKi8sCiAJCQkJNDlFOTEyQTcwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlv
bkxpc3QuY3BwICovLAogCQkJCTQ5RTkxMkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25M
aXN0LmggKi8sCisJCQkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxp
dGllcy5oICovLAogCQkJCTQ5RTkxMkE5MEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlv
bi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBhbmltYXRpb247CkBAIC0yNDgyMyw2ICsyNDgyNiw3
IEBACiAJCQkJRjM1QUU1QUMxNDkyNUY1QjAwNEQ1Nzc2IC8qIERPTVdyYXBwZXJWaXNpdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyNkMxN0EzRTE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3Rl
bUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQTMxNDk2OTM5MTAwRkI1QkQ4IC8qIFdl
YlRpbGVDYWNoZUxheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBG
QjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBiNTViNDc1MWZjMTdmZDlmNWFiZmE2NjA5
NDY0ZWRmOTU1NTFmMWEyLi41NmJkN2YxMWQ2MWY4N2NmN2Q2MWE0ZDVmOGI3NDIxMDM3NGEyNjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC05MywyMCArOTMs
NiBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6OnNvcnRTdG9wc0lmTmVlZGVkKCkKICAgICB9CiB9
CiAKLXN0YXRpYyBpbmxpbmUgaW50IGJsZW5kKGludCBmcm9tLCBpbnQgdG8sIGZsb2F0IHByb2dy
ZXNzKQotewotICAgIHJldHVybiBpbnQoZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3MpOwot
fQotCi1zdGF0aWMgaW5saW5lIENvbG9yIGJsZW5kKGNvbnN0IENvbG9yJiBmcm9tLCBjb25zdCBD
b2xvciYgdG8sIGZsb2F0IHByb2dyZXNzKQotewotICAgIC8vIEZJWE1FOiB3aGVuIHdlIGludGVy
cG9sYXRlIGdyYWRpZW50cyB1c2luZyBwcmVtdWx0aXBsaWVkIGNvbG9ycywgdGhpcyBzaG91bGQg
YWxzbyBkbyBwcmVtdWx0aXBsaWNhdGlvbi4KLSAgICByZXR1cm4gQ29sb3IoYmxlbmQoZnJvbS5y
ZWQoKSwgdG8ucmVkKCksIHByb2dyZXNzKSwKLSAgICAgICAgYmxlbmQoZnJvbS5ncmVlbigpLCB0
by5ncmVlbigpLCBwcm9ncmVzcyksCi0gICAgICAgIGJsZW5kKGZyb20uYmx1ZSgpLCB0by5ibHVl
KCksIHByb2dyZXNzKSwKLSAgICAgICAgYmxlbmQoZnJvbS5hbHBoYSgpLCB0by5hbHBoYSgpLCBw
cm9ncmVzcykpOwotfQotCiBzdHJ1Y3QgR3JhZGllbnRTdG9wIHsKICAgICBDb2xvciBjb2xvcjsK
ICAgICBmbG9hdCBvZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwCmluZGV4IGM1NTIzODE0MDA2NzAzZmI4ZmM3NGU0YjdhZDMwMzllYmE5
YWQ2ZTcuLjIyYTgwNjY3MGI0OGIzZmNhMzJiNjhlNzFiZDA1ZWM4ZmY4OWUyZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC04MSwx
MiArODEsMTIgQEAgc3RhdGljIGlubGluZSBkb3VibGUgc29sdmVTdGVwc0Z1bmN0aW9uKGludCBu
dW1TdGVwcywgYm9vbCBzdGVwQXRTdGFydCwgZG91YmxlIHQKIAogc3RhdGljIGlubGluZSBpbnQg
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBpbnQgZnJvbSwgaW50IHRvLCBkb3VibGUg
cHJvZ3Jlc3MpCiB7ICAKLSAgICByZXR1cm4gbHJvdW5kKGZyb20gKyAodG8gLSBmcm9tKSAqIHBy
b2dyZXNzKTsKKyAgICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIHByb2dyZXNzKTsKIH0KIAogc3Rh
dGljIGlubGluZSBkb3VibGUgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBkb3VibGUg
ZnJvbSwgZG91YmxlIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7ICAKLSAgICByZXR1cm4gZnJvbSAr
ICh0byAtIGZyb20pICogcHJvZ3Jlc3M7CisgICAgcmV0dXJuIGJsZW5kKGZyb20sIHRvLCBwcm9n
cmVzcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBmbG9hdCBmcm9tLCBmbG9hdCB0bywgZG91YmxlIHByb2dyZXNzKQpAQCAtOTQsMjMg
Kzk0LDkgQEAgc3RhdGljIGlubGluZSBmbG9hdCBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIGZsb2F0IGZyb20sIGZsb2F0IHRvLCBkb3VibGUKICAgICByZXR1cm4gbmFycm93UHJlY2lz
aW9uVG9GbG9hdChmcm9tICsgKHRvIC0gZnJvbSkgKiBwcm9ncmVzcyk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IENv
bG9yJiBmcm9tLCBjb25zdCBDb2xvciYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxp
bmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBjb25zdCBDb2xvciYgZnJv
bSwgY29uc3QgQ29sb3ImIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7Ci0gICAgLy8gV2UgbmVlZCB0
byBwcmVzZXJ2ZSB0aGUgc3RhdGUgb2YgdGhlIHZhbGlkIGZsYWcgYXQgdGhlIGVuZCBvZiB0aGUg
YW5pbWF0aW9uCi0gICAgaWYgKHByb2dyZXNzID09IDEgJiYgIXRvLmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuIENvbG9yKCk7Ci0KLSAgICAvLyBDb250cmFyeSB0byB0aGUgbmFtZSwgUkdCQTMy
IGFjdHVhbGx5IHN0b3JlcyBBUkdCLCBzbyB3ZSBjYW4gaW5pdGlhbGl6ZSBDb2xvciBkaXJlY3Rs
eSBmcm9tIHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkuCi0gICAgLy8gQWxzbywgcHJlbXVs
dGlwbGllZEFSR0JGcm9tQ29sb3IoKSBiYWlscyBvbiB6ZXJvIGFscGhhLCBzbyBzcGVjaWFsLWNh
c2UgdGhhdC4KLSAgICBDb2xvciBwcmVtdWx0RnJvbSA9IGZyb20uYWxwaGEoKSA/IHByZW11bHRp
cGxpZWRBUkdCRnJvbUNvbG9yKGZyb20pIDogMDsKLSAgICBDb2xvciBwcmVtdWx0VG8gPSB0by5h
bHBoYSgpID8gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IodG8pIDogMDsKLQotICAgIENvbG9y
IHByZW11bHRCbGVuZGVkKGJsZW5kRnVuYyhhbmltLCBwcmVtdWx0RnJvbS5yZWQoKSwgcHJlbXVs
dFRvLnJlZCgpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBw
cmVtdWx0RnJvbS5ncmVlbigpLCBwcmVtdWx0VG8uZ3JlZW4oKSwgcHJvZ3Jlc3MpLAotICAgICAg
ICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgcHJlbXVsdEZyb20uYmx1ZSgpLCBwcmVtdWx0VG8u
Ymx1ZSgpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBwcmVt
dWx0RnJvbS5hbHBoYSgpLCBwcmVtdWx0VG8uYWxwaGEoKSwgcHJvZ3Jlc3MpKTsKLQotICAgIHJl
dHVybiBDb2xvcihjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQihwcmVtdWx0QmxlbmRlZC5yZ2Io
KSkpOworICAgIHJldHVybiBibGVuZChmcm9tLCB0bywgcHJvZ3Jlc3MpOwogfQogCiBzdGF0aWMg
aW5saW5lIExlbmd0aCBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIGNvbnN0IExlbmd0
aCYgZnJvbSwgY29uc3QgTGVuZ3RoJiB0bywgZG91YmxlIHByb2dyZXNzKQpAQCAtMTQ3LDEzICsx
MzMsMTMgQEAgc3RhdGljIGlubGluZSBQYXNzT3duUHRyPFNoYWRvd0RhdGE+IGJsZW5kRnVuYyhj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdAogICAgIGlmIChmcm9tLT5zdHlsZSgpICE9
IHRvLT5zdHlsZSgpKQogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoKnRv
KSk7CiAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoYmxlbmRGdW5jKGFuaW0s
IGZyb20tPngoKSwgdG8tPngoKSwgcHJvZ3Jlc3MpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJvbS0+eSgpLCB0by0+eSgpLCBwcm9ncmVzcyks
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJv
bS0+Ymx1cigpLCB0by0+Ymx1cigpLCBwcm9ncmVzcyksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLT5zcHJlYWQoKSwgdG8tPnNwcmVhZCgp
LCBwcm9ncmVzcyksCisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKGJsZW5kKGZy
b20tPngoKSwgdG8tPngoKSwgcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBibGVuZChmcm9tLT55KCksIHRvLT55KCksIHByb2dyZXNzKSwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJsZW5kKGZyb20tPmJsdXIoKSwgdG8tPmJsdXIoKSwg
cHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9t
LT5zcHJlYWQoKSwgdG8tPnNwcmVhZCgpLCBwcm9ncmVzcyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLT5zdHlsZSgpLCB0by0+c3R5bGUo
KSwgcHJvZ3Jlc3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tLT5p
c1dlYmtpdEJveFNoYWRvdygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
bGVuZEZ1bmMoYW5pbSwgZnJvbS0+Y29sb3IoKSwgdG8tPmNvbG9yKCksIHByb2dyZXNzKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9tLT5jb2xvcigpLCB0
by0+Y29sb3IoKSwgcHJvZ3Jlc3MpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgVHJhbnNmb3JtT3Bl
cmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdG8sIGRvdWJs
ZSBwcm9ncmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKaW5kZXggMTE5ZTgyMzc2NWU0MDc0
M2M2OTU2NWI4MThhZGMwOTczMDA4ZTMzYy4uNTNiMDI2MGMyMDdiMDc4Mjg5NWVmMzc3Yzg0Y2Y2
MTY0NzU3NDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpZm5kZWYgTGVuZ3RoX2gKICNkZWZpbmUgTGVuZ3RoX2gKIAorI2luY2x1ZGUgIkFuaW1hdGlv
blV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L0Zhc3RBbGxvY0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMjAxLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW50cmluc2ljT3JBdXRvKCkgY29uc3QgeyByZXR1
cm4gdHlwZSgpID09IEF1dG8gfHwgdHlwZSgpID09IE1pbkludHJpbnNpYyB8fCB0eXBlKCkgPT0g
SW50cmluc2ljOyB9CiAgICAgYm9vbCBpc1NwZWNpZmllZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUo
KSA9PSBGaXhlZCB8fCB0eXBlKCkgPT0gUGVyY2VudDsgfQogCi0gICAgTGVuZ3RoIGJsZW5kKGNv
bnN0IExlbmd0aCYgZnJvbSwgZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0CisgICAgTGVuZ3RoIGJsZW5k
KGNvbnN0IExlbmd0aCYgZnJvbSwgZG91YmxlIHByb2dyZXNzKSBjb25zdAogICAgIHsKICAgICAg
ICAgLy8gQmxlbmQgdHdvIGxlbmd0aHMgdG8gcHJvZHVjZSBhIG5ldyBsZW5ndGggdGhhdCBpcyBp
biBiZXR3ZWVuIHRoZW0uICBVc2VkIGZvciBhbmltYXRpb24uCiAgICAgICAgIGlmICghZnJvbS5p
c1plcm8oKSAmJiAhaXNaZXJvKCkgJiYgZnJvbS50eXBlKCkgIT0gdHlwZSgpKQpAQCAtMjE3LDEy
ICsyMTgsMTIgQEAgcHVibGljOgogICAgICAgICBpZiAocmVzdWx0VHlwZSA9PSBQZXJjZW50KSB7
CiAgICAgICAgICAgICBmbG9hdCBmcm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJv
bS5wZXJjZW50KCk7CiAgICAgICAgICAgICBmbG9hdCB0b1BlcmNlbnQgPSBpc1plcm8oKSA/IDAg
OiBwZXJjZW50KCk7Ci0gICAgICAgICAgICByZXR1cm4gTGVuZ3RoKGZyb21QZXJjZW50ICsgKHRv
UGVyY2VudCAtIGZyb21QZXJjZW50KSAqIHByb2dyZXNzLCBQZXJjZW50KTsKKyAgICAgICAgICAg
IHJldHVybiBMZW5ndGgoV2ViQ29yZTo6YmxlbmQoZnJvbVBlcmNlbnQsIHRvUGVyY2VudCwgcHJv
Z3Jlc3MpLCBQZXJjZW50KTsKICAgICAgICAgfSAKLSAgICAgICAgICAgIAorCiAgICAgICAgIGZs
b2F0IGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJvbS52YWx1ZSgpOwogICAgICAg
ICBmbG9hdCB0b1ZhbHVlID0gaXNaZXJvKCkgPyAwIDogdmFsdWUoKTsKLSAgICAgICAgcmV0dXJu
IExlbmd0aChmcm9tVmFsdWUgKyAodG9WYWx1ZSAtIGZyb21WYWx1ZSkgKiBwcm9ncmVzcywgcmVz
dWx0VHlwZSk7CisgICAgICAgIHJldHVybiBMZW5ndGgoV2ViQ29yZTo6YmxlbmQoZnJvbVZhbHVl
LCB0b1ZhbHVlLCBwcm9ncmVzcyksIHJlc3VsdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25VdGls
aXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNmQwMzAyNDBiMzg4OTU5NTM2MTJiOGVmZDVlNTE1MDcyNWRm
Zjg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvblV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBBbmltYXRpb25VdGlsaXRpZXNfaAorI2RlZmluZSBBbmltYXRpb25VdGlsaXRpZXNfaAorCisj
aW5jbHVkZSA8bWF0aC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBpbnQgYmxl
bmQoaW50IGZyb20sIGludCB0bywgZG91YmxlIHByb2dyZXNzKQoreyAgCisgICAgcmV0dXJuIGxy
b3VuZChmcm9tICsgKHRvIC0gZnJvbSkgKiBwcm9ncmVzcyk7Cit9CisKK2lubGluZSBkb3VibGUg
YmxlbmQoZG91YmxlIGZyb20sIGRvdWJsZSB0bywgZG91YmxlIHByb2dyZXNzKQoreyAgCisgICAg
cmV0dXJuIGZyb20gKyAodG8gLSBmcm9tKSAqIHByb2dyZXNzOworfQorCitpbmxpbmUgZmxvYXQg
YmxlbmQoZmxvYXQgZnJvbSwgZmxvYXQgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3sgIAorICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3MpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBBbmltYXRpb25VdGlsaXRp
ZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKaW5kZXggNzQ4MTc0
NDBkN2MyYjAyMzE5OGFiZGJjNGU3ZTAyYjJlOGMwODg5ZC4uMjM1ZjY3MWM0M2RhNmM1Y2JhMzcw
MjdkMWU4YTk3ZjNhMjViOTIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIENvbG9yX2gKICNkZWZpbmUgQ29sb3Jf
aAogCisjaW5jbHVkZSAiQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RB
bGxvY0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi91bmlj
b2RlL1VuaWNvZGUuaD4KQEAgLTE3Miw2ICsxNzMsMzIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBDb2xvciYgYSwgY29uc3QgQ29sb3ImIGIpCiBDb2xvciBjb2xvckZyb21QcmVtdWx0
aXBsaWVkQVJHQih1bnNpZ25lZCk7CiB1bnNpZ25lZCBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xv
cihjb25zdCBDb2xvciYpOwogCitpbmxpbmUgQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20s
IGNvbnN0IENvbG9yJiB0bywgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGll
ZCA9IHRydWUpCit7CisgICAgLy8gV2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgc3RhdGUgb2YgdGhl
IHZhbGlkIGZsYWcgYXQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uCisgICAgaWYgKHByb2dyZXNz
ID09IDEgJiYgIXRvLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisg
ICAgaWYgKGJsZW5kUHJlbXVsdGlwbGllZCkgeworICAgICAgICAvLyBDb250cmFyeSB0byB0aGUg
bmFtZSwgUkdCQTMyIGFjdHVhbGx5IHN0b3JlcyBBUkdCLCBzbyB3ZSBjYW4gaW5pdGlhbGl6ZSBD
b2xvciBkaXJlY3RseSBmcm9tIHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkuCisgICAgICAg
IC8vIEFsc28sIHByZW11bHRpcGxpZWRBUkdCRnJvbUNvbG9yKCkgYmFpbHMgb24gemVybyBhbHBo
YSwgc28gc3BlY2lhbC1jYXNlIHRoYXQuCisgICAgICAgIENvbG9yIHByZW11bHRGcm9tID0gZnJv
bS5hbHBoYSgpID8gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IoZnJvbSkgOiAwOworICAgICAg
ICBDb2xvciBwcmVtdWx0VG8gPSB0by5hbHBoYSgpID8gcHJlbXVsdGlwbGllZEFSR0JGcm9tQ29s
b3IodG8pIDogMDsKKworICAgICAgICBDb2xvciBwcmVtdWx0QmxlbmRlZChibGVuZChwcmVtdWx0
RnJvbS5yZWQoKSwgcHJlbXVsdFRvLnJlZCgpLCBwcm9ncmVzcyksCisgICAgICAgICAgICAgICAg
ICAgICBibGVuZChwcmVtdWx0RnJvbS5ncmVlbigpLCBwcmVtdWx0VG8uZ3JlZW4oKSwgcHJvZ3Jl
c3MpLAorICAgICAgICAgICAgICAgICAgICAgYmxlbmQocHJlbXVsdEZyb20uYmx1ZSgpLCBwcmVt
dWx0VG8uYmx1ZSgpLCBwcm9ncmVzcyksCisgICAgICAgICAgICAgICAgICAgICBibGVuZChwcmVt
dWx0RnJvbS5hbHBoYSgpLCBwcmVtdWx0VG8uYWxwaGEoKSwgcHJvZ3Jlc3MpKTsKKworICAgICAg
ICByZXR1cm4gQ29sb3IoY29sb3JGcm9tUHJlbXVsdGlwbGllZEFSR0IocHJlbXVsdEJsZW5kZWQu
cmdiKCkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gQ29sb3IoYmxlbmQoZnJvbS5yZWQoKSwgdG8u
cmVkKCksIHByb2dyZXNzKSwKKyAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbS5ncmVlbigpLCB0
by5ncmVlbigpLCBwcm9ncmVzcyksCisgICAgICAgICAgICAgICAgIGJsZW5kKGZyb20uYmx1ZSgp
LCB0by5ibHVlKCksIHByb2dyZXNzKSwKKyAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbS5hbHBo
YSgpLCB0by5hbHBoYSgpLCBwcm9ncmVzcykpOworfQorCiAjaWYgVVNFKENHKQogQ0dDb2xvclJl
ZiBjYWNoZWRDR0NvbG9yKGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3Bl
Y3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXgg
MThiZmUzN2Q0OGI0ODhiZTgyYzk0NWQ2ZjYyMjBhOTVjZmY1NzBhZS4uNmFiNjA1ZDllMGVkZWQx
MTM1MTA3ZjQ4OTI5ZWUxYzIzNTUwNjc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJz
cGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgog
CisjaW5jbHVkZSAiQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTM5LDcgKzQwLDcgQEAgUGFzc1JlZlB0
cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVu
ZChjb25zdCBUcmFuc2YKICAgICAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KSB7CiAgICAgICAg
IGRvdWJsZSBwID0gbV9wLmNhbGNGbG9hdFZhbHVlKDEpOwotICAgICAgICBwID0gcCArICgxLiAt
IHApICogcHJvZ3Jlc3M7IC8vIEZJWE1FOiB0aGlzIHNlZW1zIHdyb25nLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI3MDAKKyAgICAgICAgcCA9IFdlYkNvcmU6OmJs
ZW5kKHAsIDEuMCwgcHJvZ3Jlc3MpOyAvLyBGSVhNRTogdGhpcyBzZWVtcyB3cm9uZy4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyNzAwCiAgICAgICAgIHJldHVybiBQ
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aChjbGFtcFRvUG9zaXRp
dmVJbnRlZ2VyKHApLCBGaXhlZCkpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA5MTlkMTc0ZjljM2EwNTMxZmViZDM0MWUz
OWVlMmJlZmQ4NWU0YWI4Li44YzRmYWQ2ZDk5ZWVjOWU2MzA2ZGU0ZDgyYTNiZGJmYTljNmY0NTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0y
Miw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNm
b3JtT3BlcmF0aW9uLmgiCiAKKyNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNs
dWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtNDcsNyAr
NDgsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gUm90YXRlVHJhbnNmb3JtT3Bl
cmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm1PcAogICAgICAgICByZXR1cm4gUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoZnJvbU9wID8gZnJvbU9wLT5tX3ggOiBtX3gsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbU9wID8gZnJv
bU9wLT5tX3kgOiBtX3ksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnJvbU9wID8gZnJvbU9wLT5tX3ogOiBtX3osIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUFuZ2xlICsgKG1fYW5nbGUgLSBmcm9t
QW5nbGUpICogcHJvZ3Jlc3MsIG1fdHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZChmcm9tQW5nbGUsIG1fYW5nbGUsIHBy
b2dyZXNzKSwgbV90eXBlKTsKICAgICB9CiAKICAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVy
YXRpb24qIHRvT3AgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAppbmRleCA0NWQxMTljYmM3ODU1NDMyNGY2ZDNkODE3MTA3ZTgwNjhlMDZjZGI2Li5l
ODgwNmYyMDMwOGY3ZjM4MDdkZTI3MWE0NzQ4OWI5MzE4YTE0ZTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3Bl
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMjIsNiArMjIsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAKKyNp
bmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQ
YXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmJs
ZW5kKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbSwgZG91YmxlIHByb2dyZXNzLCBib29s
IGJsZW5kVG9JZGVudGl0eSkKQEAgLTMwLDE3ICszMiwxNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9y
bU9wZXJhdGlvbj4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9y
bU9wZQogICAgICAgICByZXR1cm4gdGhpczsKICAgICAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5
KQotICAgICAgICByZXR1cm4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3ggKyAo
MS4gLSBtX3gpICogcHJvZ3Jlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1feSArICgxLiAtIG1feSkgKiBwcm9ncmVzcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV96ICsgKDEuIC0gbV96KSAqIHByb2dy
ZXNzLCBtX3R5cGUpOworICAgICAgICByZXR1cm4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmNy
ZWF0ZShXZWJDb3JlOjpibGVuZChtX3gsIDEuMCwgcHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZChtX3ksIDEuMCwg
cHJvZ3Jlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJDb3JlOjpibGVuZChtX3osIDEuMCwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwogICAgIAogICAg
IGNvbnN0IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBzdGF0aWNfY2FzdDxjb25z
dCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbio+KGZyb20pOwotICAgIGRvdWJsZSBmcm9tWCA9IGZy
b21PcCA/IGZyb21PcC0+bV94IDogMS47Ci0gICAgZG91YmxlIGZyb21ZID0gZnJvbU9wID8gZnJv
bU9wLT5tX3kgOiAxLjsKLSAgICBkb3VibGUgZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1feiA6
IDEuOwotICAgIHJldHVybiBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKGZyb21YICsg
KG1feCAtIGZyb21YKSAqIHByb2dyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZyb21ZICsgKG1feSAtIGZyb21ZKSAqIHByb2dyZXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21aICsgKG1feiAtIGZyb21aKSAq
IHByb2dyZXNzLCBtX3R5cGUpOworICAgIGRvdWJsZSBmcm9tWCA9IGZyb21PcCA/IGZyb21PcC0+
bV94IDogMS4wOworICAgIGRvdWJsZSBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+bV95IDogMS4w
OworICAgIGRvdWJsZSBmcm9tWiA9IGZyb21PcCA/IGZyb21PcC0+bV96IDogMS4wOworICAgIHJl
dHVybiBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKGZyb21Y
LCBtX3gsIHByb2dyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJDb3JlOjpibGVuZChmcm9tWSwgbV95LCBwcm9ncmVzcyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6YmxlbmQoZnJvbVosIG1feiwg
cHJvZ3Jlc3MpLCBtX3R5cGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCAyYTQzMGU5N2I3NGJmMGQ0
YjJjNWI5OTIxOWJmZGMwMmQ1YmMxMGQ5Li5kOTJkODk1Y2ViNjg3NjBmZmY3NDBjMTc0NmI2ZGMz
NTQyZjJhN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAK
QEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTa2V3VHJh
bnNmb3JtT3BlcmF0aW9uLmgiCiAKKyNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2tl
d1RyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9t
LCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb0lkZW50aXR5KQpAQCAtMzAsMTIgKzMyLDEy
IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9u
OjpibGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyCiAgICAgICAgIHJldHVybiB0aGlzOwogICAgIAog
ICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHJldHVybiBTa2V3VHJhbnNmb3JtT3Bl
cmF0aW9uOjpjcmVhdGUobV9hbmdsZVggLSBtX2FuZ2xlWCAqIHByb2dyZXNzLCBtX2FuZ2xlWSAt
IG1fYW5nbGVZICogcHJvZ3Jlc3MsIG1fdHlwZSk7CisgICAgICAgIHJldHVybiBTa2V3VHJhbnNm
b3JtT3BlcmF0aW9uOjpjcmVhdGUoV2ViQ29yZTo6YmxlbmQobV9hbmdsZVgsIDAuMCwgcHJvZ3Jl
c3MpLCBXZWJDb3JlOjpibGVuZChtX2FuZ2xlWSwgMC4wLCBwcm9ncmVzcyksIG1fdHlwZSk7CiAg
ICAgCiAgICAgY29uc3QgU2tld1RyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gc3RhdGljX2Nh
c3Q8Y29uc3QgU2tld1RyYW5zZm9ybU9wZXJhdGlvbio+KGZyb20pOwogICAgIGRvdWJsZSBmcm9t
QW5nbGVYID0gZnJvbU9wID8gZnJvbU9wLT5tX2FuZ2xlWCA6IDA7CiAgICAgZG91YmxlIGZyb21B
bmdsZVkgPSBmcm9tT3AgPyBmcm9tT3AtPm1fYW5nbGVZIDogMDsKLSAgICByZXR1cm4gU2tld1Ry
YW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKGZyb21BbmdsZVggKyAobV9hbmdsZVggLSBmcm9tQW5n
bGVYKSAqIHByb2dyZXNzLCBmcm9tQW5nbGVZICsgKG1fYW5nbGVZIC0gZnJvbUFuZ2xlWSkgKiBw
cm9ncmVzcywgbV90eXBlKTsKKyAgICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3Jl
YXRlKFdlYkNvcmU6OmJsZW5kKGZyb21BbmdsZVgsIG1fYW5nbGVYLCBwcm9ncmVzcyksIFdlYkNv
cmU6OmJsZW5kKGZyb21BbmdsZVksIG1fYW5nbGVZLCBwcm9ncmVzcyksIG1fdHlwZSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCBiMWVhOTliMWVlMWRhMTRiNjdkYmEzNWFjMzRjZGE2
ZmVmMzU4YjI3Li44MWMzMGFlODVjN2EwOTYyOTQ3MzE2N2MzYjE0ZGM4NTAwNmRlMWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0z
MSwxNSArMzEsMTUgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3IKICAgICAgICAgcmV0dXJuIHRo
aXM7CiAgICAgCiAgICAgaWYgKGJsZW5kVG9JZGVudGl0eSkKLSAgICAgICAgcmV0dXJuIFRyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aChtX3gudHlwZSgpKS5ibGVuZCht
X3gsIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgobV95LnR5cGUoKSkuYmxl
bmQobV95LCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoKG1fei50eXBlKCkp
LmJsZW5kKG1feiwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCBtX3R5cGUpOwor
ICAgICAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3Ro
KG1feC50eXBlKCkpLmJsZW5kKG1feCwgcHJvZ3Jlc3MpLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3kudHlwZSgpKS5ibGVuZCht
X3ksIHByb2dyZXNzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMZW5ndGgobV96LnR5cGUoKSkuYmxlbmQobV96LCBwcm9ncmVzcyksIG1fdHlw
ZSk7CiAKICAgICBjb25zdCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IHN0
YXRpY19jYXN0PGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+KGZyb20pOwogICAg
IExlbmd0aCBmcm9tWCA9IGZyb21PcCA/IGZyb21PcC0+bV94IDogTGVuZ3RoKG1feC50eXBlKCkp
OwogICAgIExlbmd0aCBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+bV95IDogTGVuZ3RoKG1feS50
eXBlKCkpOwogICAgIExlbmd0aCBmcm9tWiA9IGZyb21PcCA/IGZyb21PcC0+bV96IDogTGVuZ3Ro
KG1fei50eXBlKCkpOwotICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNy
ZWF0ZShtX3guYmxlbmQoZnJvbVgsIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKSwg
bV95LmJsZW5kKGZyb21ZLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIG1fei5i
bGVuZChmcm9tWiwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCBtX3R5cGUpOwor
ICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3guYmxlbmQo
ZnJvbVgsIHByb2dyZXNzKSwgbV95LmJsZW5kKGZyb21ZLCBwcm9ncmVzcyksIG1fei5ibGVuZChm
cm9tWiwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmgKaW5kZXggN2U2ZjNkMDg4OTY5NjlmNGM1MmJiMjIxODc1MWVhYzhh
NWJlNWFjYy4uYTI0ZWEwNTNhNTNiYTkwY2NmNjdkZDBkMGZjZjRmMzhkZjcwOGQwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGguaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBTVkdMZW5ndGhfaAog
CiAjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJTVkdMZW5ndGhDb250ZXh0LmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2luZ0Vycm9yLmgiCiAj
aW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKQEAgLTExOCw3ICsxMTksNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmIChmcm9tVHlwZSA9PSBMZW5ndGhUeXBlUGVyY2VudGFnZSB8fCB0b1R5cGUg
PT0gTGVuZ3RoVHlwZVBlcmNlbnRhZ2UpIHsKICAgICAgICAgICAgIGZsb2F0IGZyb21QZXJjZW50
ID0gZnJvbS52YWx1ZUFzUGVyY2VudGFnZSgpICogMTAwOwogICAgICAgICAgICAgZmxvYXQgdG9Q
ZXJjZW50ID0gdmFsdWVBc1BlcmNlbnRhZ2UoKSAqIDEwMDsKLSAgICAgICAgICAgIGxlbmd0aC5u
ZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVQZXJjZW50YWdlLCBmcm9tUGVyY2VudCAr
ICh0b1BlcmNlbnQgLSBmcm9tUGVyY2VudCkgKiBwcm9ncmVzcywgZWMpOworICAgICAgICAgICAg
bGVuZ3RoLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZVBlcmNlbnRhZ2UsIFdlYkNv
cmU6OmJsZW5kKGZyb21QZXJjZW50LCB0b1BlcmNlbnQsIHByb2dyZXNzKSwgZWMpOwogICAgICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBTVkdMZW5ndGgoKTsKICAgICAg
ICAgICAgIHJldHVybiBsZW5ndGg7CkBAIC0xMjgsOSArMTI5LDkgQEAgcHVibGljOgogICAgICAg
ICAgICAgZmxvYXQgZnJvbVZhbHVlID0gZnJvbS52YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAg
ICAgICAgICAgIGZsb2F0IHRvVmFsdWUgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICAg
ICAgICAgIGlmIChpc1plcm8oKSkKLSAgICAgICAgICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVj
aWZpZWRVbml0cyhmcm9tVHlwZSwgZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBmcm9tVmFsdWUpICog
cHJvZ3Jlc3MsIGVjKTsKKyAgICAgICAgICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRV
bml0cyhmcm9tVHlwZSwgV2ViQ29yZTo6YmxlbmQoZnJvbVZhbHVlLCB0b1ZhbHVlLCBwcm9ncmVz
cyksIGVjKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsZW5ndGgubmV3VmFs
dWVTcGVjaWZpZWRVbml0cyh0b1R5cGUsIGZyb21WYWx1ZSArICh0b1ZhbHVlIC0gZnJvbVZhbHVl
KSAqIHByb2dyZXNzLCBlYyk7CisgICAgICAgICAgICAgICAgbGVuZ3RoLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHModG9UeXBlLCBXZWJDb3JlOjpibGVuZChmcm9tVmFsdWUsIHRvVmFsdWUsIHByb2dy
ZXNzKSwgZWMpOwogICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBT
VkdMZW5ndGgoKTsKICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CkBAIC0xNDksNyArMTUwLDcg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIFNWR0xlbmd0aCgpOwogCiAgICAgICAgIGZs
b2F0IHRvVmFsdWUgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKLSAgICAgICAgbGVuZ3RoLm5l
d1ZhbHVlU3BlY2lmaWVkVW5pdHModG9UeXBlLCBmcm9tVmFsdWUgKyAodG9WYWx1ZSAtIGZyb21W
YWx1ZSkgKiBwcm9ncmVzcywgZWMpOworICAgICAgICBsZW5ndGgubmV3VmFsdWVTcGVjaWZpZWRV
bml0cyh0b1R5cGUsIFdlYkNvcmU6OmJsZW5kKGZyb21WYWx1ZSwgdG9WYWx1ZSwgcHJvZ3Jlc3Mp
LCBlYyk7CiAKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIFNWR0xlbmd0aCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAKaW5kZXggNmRlNzgzZDZhMzIxY2Zm
OWNmYWFmYzdhYmYwOTRhZmZiZmUxN2NmMi4uYzk5MWQ2YjJmYmRlMWZhMDczYjgwMGVlNzYwZDg2
M2IwNzAxMzYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCkBAIC0yMiw2
ICsyMiw3IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdQYXRoQmxlbmRlci5oIgog
CisjaW5jbHVkZSAiQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNywzMCArMzgsMjUgQEAgU1ZHUGF0aEJsZW5k
ZXI6OlNWR1BhdGhCbGVuZGVyKCkKIC8vIEhlbHBlciBmdW5jdGlvbnMKIHN0YXRpYyBpbmxpbmUg
RmxvYXRQb2ludCBibGVuZEZsb2F0UG9pbnQoY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3QgRmxv
YXRQb2ludCYgYiwgZmxvYXQgcHJvZ3Jlc3MpCiB7Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoKGIu
eCgpIC0gYS54KCkpICogcHJvZ3Jlc3MgKyBhLngoKSwgKGIueSgpIC0gYS55KCkpICogcHJvZ3Jl
c3MgKyBhLnkoKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZmxvYXQgYmxlbmRBbmltYXRlZEZsb2F0
KGZsb2F0IGZyb20sIGZsb2F0IHRvLCBmbG9hdCBwcm9ncmVzcykKLXsKLSAgICByZXR1cm4gKHRv
IC0gZnJvbSkgKiBwcm9ncmVzcyArIGZyb207CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYmxlbmQo
YS54KCksIGIueCgpLCBwcm9ncmVzcyksIGJsZW5kKGEueSgpLCBiLnkoKSwgcHJvZ3Jlc3MpKTsK
IH0KIAogZmxvYXQgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQW5pbWF0ZWREaW1lbnNvbmFsRmxvYXQo
ZmxvYXQgZnJvbSwgZmxvYXQgdG8sIEZsb2F0QmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKICAgICBp
ZiAobV9mcm9tTW9kZSA9PSBtX3RvTW9kZSkKLSAgICAgICAgcmV0dXJuIGJsZW5kQW5pbWF0ZWRG
bG9hdChmcm9tLCB0bywgbV9wcm9ncmVzcyk7CisgICAgICAgIHJldHVybiBibGVuZChmcm9tLCB0
bywgbV9wcm9ncmVzcyk7CiAgICAgCiAgICAgZmxvYXQgZnJvbVZhbHVlID0gYmxlbmRNb2RlID09
IEJsZW5kSG9yaXpvbnRhbCA/IG1fZnJvbUN1cnJlbnRQb2ludC54KCkgOiBtX2Zyb21DdXJyZW50
UG9pbnQueSgpOwogICAgIGZsb2F0IHRvVmFsdWUgPSBibGVuZE1vZGUgPT0gQmxlbmRIb3Jpem9u
dGFsID8gbV90b0N1cnJlbnRQb2ludC54KCkgOiBtX3RvQ3VycmVudFBvaW50LnkoKTsKIAogICAg
IC8vIFRyYW5zZm9ybSB0b1kgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSBvZiBmcm9tWQotICAgIGZs
b2F0IGFuaW1WYWx1ZSA9IGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tLCBtX2Zyb21Nb2RlID09IEFi
c29sdXRlQ29vcmRpbmF0ZXMgPyB0byArIHRvVmFsdWUgOiB0byAtIHRvVmFsdWUsIG1fcHJvZ3Jl
c3MpOworICAgIGZsb2F0IGFuaW1WYWx1ZSA9IGJsZW5kKGZyb20sIG1fZnJvbU1vZGUgPT0gQWJz
b2x1dGVDb29yZGluYXRlcyA/IHRvICsgdG9WYWx1ZSA6IHRvIC0gdG9WYWx1ZSwgbV9wcm9ncmVz
cyk7CiAgICAgCiAgICAgaWYgKG1faXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uKQogICAgICAgICBy
ZXR1cm4gYW5pbVZhbHVlOwogICAgIAogICAgIC8vIFRyYW5zZm9ybSB0aGUgYW5pbWF0ZWQgcG9p
bnQgdG8gdGhlIGNvb3JkaW5hdGUgbW9kZSwgbmVlZGVkIGZvciB0aGUgY3VycmVudCBwcm9ncmVz
cy4KLSAgICBmbG9hdCBjdXJyZW50VmFsdWUgPSBibGVuZEFuaW1hdGVkRmxvYXQoZnJvbVZhbHVl
LCB0b1ZhbHVlLCBtX3Byb2dyZXNzKTsKKyAgICBmbG9hdCBjdXJyZW50VmFsdWUgPSBibGVuZChm
cm9tVmFsdWUsIHRvVmFsdWUsIG1fcHJvZ3Jlc3MpOwogICAgIHJldHVybiBtX3RvTW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzID8gYW5pbVZhbHVlICsgY3VycmVudFZhbHVlIDogYW5pbVZhbHVl
IC0gY3VycmVudFZhbHVlOwogfQogCkBAIC0yMzUsOSArMjMxLDkgQEAgYm9vbCBTVkdQYXRoQmxl
bmRlcjo6YmxlbmRBcmNUb1NlZ21lbnQoKQogICAgICAgICB8fCAhbV90b1NvdXJjZS0+cGFyc2VB
cmNUb1NlZ21lbnQodG9SeCwgdG9SeSwgdG9BbmdsZSwgdG9MYXJnZUFyYywgdG9Td2VlcCwgdG9U
YXJnZXRQb2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fY29uc3VtZXItPmFy
Y1RvKGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tUngsIHRvUngsIG1fcHJvZ3Jlc3MpLAotICAgICAg
ICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tUnksIHRvUnksIG1fcHJvZ3Jl
c3MpLAotICAgICAgICAgICAgICAgICAgICAgIGJsZW5kQW5pbWF0ZWRGbG9hdChmcm9tQW5nbGUs
IHRvQW5nbGUsIG1fcHJvZ3Jlc3MpLAorICAgIG1fY29uc3VtZXItPmFyY1RvKGJsZW5kKGZyb21S
eCwgdG9SeCwgbV9wcm9ncmVzcyksCisgICAgICAgICAgICAgICAgICAgICAgYmxlbmQoZnJvbVJ5
LCB0b1J5LCBtX3Byb2dyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICBibGVuZChmcm9tQW5n
bGUsIHRvQW5nbGUsIG1fcHJvZ3Jlc3MpLAogICAgICAgICAgICAgICAgICAgICAgIG1faXNJbkZp
cnN0SGFsZk9mQW5pbWF0aW9uID8gZnJvbUxhcmdlQXJjIDogdG9MYXJnZUFyYywKICAgICAgICAg
ICAgICAgICAgICAgICBtX2lzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IGZyb21Td2VlcCA6IHRv
U3dlZXAsCiAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoZnJv
bVRhcmdldFBvaW50LCB0b1RhcmdldFBvaW50KSwK
</data>
<flag name="review"
          id="119022"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="119040"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>