<?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>146653</bug_id>
          
          <creation_ts>2015-07-06 15:10:15 -0700</creation_ts>
          <short_desc>Revert use of  SVG &lt;mask&gt; elements for -webkit-mask-image (r176798, r177494, r186180)</short_desc>
          <delta_ts>2015-07-06 19:52:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>InRadar</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>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1107237</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 15:10:15 -0700</bug_when>
    <thetext>Need to revert these changes, because of the number of regressions: bug 141857, bug 146509, bug 146561.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107245</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 15:23:09 -0700</bug_when>
    <thetext>rdar://problem/21435233</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107305</commentid>
    <comment_count>2</comment_count>
      <attachid>256262</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 17:52:03 -0700</bug_when>
    <thetext>Created attachment 256262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107307</commentid>
    <comment_count>3</comment_count>
      <attachid>256263</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 17:54:23 -0700</bug_when>
    <thetext>Created attachment 256263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107311</commentid>
    <comment_count>4</comment_count>
      <attachid>256266</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 17:56:31 -0700</bug_when>
    <thetext>Created attachment 256266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107312</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 17:56:56 -0700</bug_when>
    <thetext>Patches are interdependent, so patches 2 and 3 won&apos;t apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107315</commentid>
    <comment_count>6</comment_count>
      <attachid>256262</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-06 17:58:03 -0700</bug_when>
    <thetext>Comment on attachment 256262
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=256262&amp;action=review

&gt; Source/WebCore/platform/graphics/MaskImageOperation.cpp:222
&gt; -
&gt; +    

:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107316</commentid>
    <comment_count>7</comment_count>
      <attachid>256263</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-06 18:01:54 -0700</bug_when>
    <thetext>Comment on attachment 256263
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=256263&amp;action=review

&gt; Source/WebCore/css/CSSValue.h:174
&gt;          SVGColorClass,
&gt;          SVGPaintClass,
&gt; -        WebKitCSSResourceClass,
&gt;  

Not sure this one is needed, but it doesn&apos;t matter.

&gt; Source/WebCore/css/CSSValue.h:192
&gt;  #endif
&gt; +        WebKitCSSResourceClass
&gt;  

See above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107317</commentid>
    <comment_count>8</comment_count>
      <attachid>256266</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-06 18:04:34 -0700</bug_when>
    <thetext>Comment on attachment 256266
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=256266&amp;action=review

&gt; Source/WebCore/css/CSSValue.h:-192
&gt; -        WebKitCSSResourceClass
&gt; -

Oh, you got rid of it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107324</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-06 18:17:56 -0700</bug_when>
    <thetext>https://trac.webkit.org/r186390
https://trac.webkit.org/r186391
https://trac.webkit.org/r186392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107346</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-06 19:45:35 -0700</bug_when>
    <thetext>This caused http/tests/misc/mask-image-accept.html to start failing:
https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r186390%20(52826)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107347</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-06 19:48:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; This caused http/tests/misc/mask-image-accept.html to start failing:
&gt; https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/
&gt; r186390%20(52826)/results.html

Looks like only the Windows bot is having trouble with this though. The test in question is using -webkit-mask-image but not SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107348</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-06 19:52:19 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; This caused http/tests/misc/mask-image-accept.html to start failing:
&gt; &gt; https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/
&gt; &gt; r186390%20(52826)/results.html
&gt; 
&gt; Looks like only the Windows bot is having trouble with this though. The test
&gt; in question is using -webkit-mask-image but not SVG.

Ah, never mind, the issue was that the bot had processed r186390 but not r186391 and r186392 yet. The test is now passing again on the Windows bot.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256262</attachid>
            <date>2015-07-06 17:52:03 -0700</date>
            <delta_ts>2015-07-06 17:58:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146653-20150706175105.patch</filename>
            <type>text/plain</type>
            <size>7097</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTczZGJmZTU1YTNlMTdi
NWYzOTY3NWY5ZGUxOWQxZWNkZTJhYjA0Mi4uZGVlMGYzNjMxYzE3ZDI5NTI1NGRhOWZiZmY2NjNk
N2MyMWYxOWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA3LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmVydCB1c2Ug
b2YgU1ZHIDxtYXNrPiBlbGVtZW50cyBmb3IgLXdlYmtpdC1tYXNrLWltYWdlIChyMTc2Nzk4LCBy
MTc3NDk0LCByMTg2MTgwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ2NjUzCisgICAgICAgIAorICAgICAgICBGaXhlcyByZGFyOi8vcHJvYmxlbS8y
MTQzNTIzMy4KKworICAgICAgICBUaGlzIHBhdGNoIHJldmVydHMgcjE4NjE4MCwgYnV0IGtlZXBz
IHRoZSBsYXlvdXQgdGVzdC4KKworICAgICAgICBUaGlzIGZlYXR1cmUgY2F1c2VkIGEgbnVtYmVy
IG9mIHJlZ3Jlc3Npb25zIChidWdzIDE0MTg1NywgMTQ2NTA5LCAxNDY1NjEpLCBhZGRlZCBuZXcg
bGF5ZXJpbmcgdmlvbGF0aW9ucywgYW5kCisgICAgICAgIHdhcyBub3QgYmVpbmcgbWFpbnRhaW5l
ZCwgc28gcmV2ZXJ0IGl0LgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjphY2NlcHRPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFjY2VwdE92ZXJyaWRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OmxvYWQpOiBEZWxldGVkLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OnNldEFjY2VwdHNBbnlJbWFn
ZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01hc2tJbWFnZU9w
ZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXNrSW1hZ2VPcGVyYXRpb246OmVuc3Vy
ZUNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hc2tJbWFn
ZU9wZXJhdGlvbjo6bm90aWZ5RmluaXNoZWQpOgorCiAyMDE1LTA3LTA2ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkICJtX2lzUHJpdmF0
ZSIgZmxhZyBvbiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBhZDE3MzczYmEw
MWE0ZTNmMDFhMTBiODQyMTNmMjlkNzgzZGI4MzA1Li42YzMwZDc0NWJjMDBkNTYzYzhkNTVkZTFh
YjA5ZjFmODE4NjE3OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU2NSw5ICs1NjUsNiBAQCBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZQogICAgICAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3Qu
cHJpb3JpdHkoKSk7CiAKICAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxs
TmVlZHNMb2FkKCkpICYmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlciA9PSByZXF1ZXN0
LmRlZmVyKCkpIHsKLSAgICAgICAgaWYgKHJlcXVlc3QuYWNjZXB0T3ZlcnJpZGUoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlLT5zZXRBY2NlcHQocmVxdWVzdC5hY2NlcHRPdmVycmlkZSgpLnZhbHVl
KCkpOwotCiAgICAgICAgIHJlc291cmNlLT5sb2FkKCp0aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7
CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBk
byBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDZmNDZiNjdjYTM1YTEwYTQy
MWU4YzZhMGM2YTU3N2JiYmMxMmY3NjcuLjQxZGNkZGNhNDE4ZDY2YzNjNGQyYjhmYzhmNGI1YzFj
MTY4Y2U4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTUzLDE0ICs1MywxMiBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25z
OyB9CiAgICAgdm9pZCBzZXRPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0
aW9ucykgeyBtX29wdGlvbnMgPSBvcHRpb25zOyB9CiAgICAgY29uc3QgT3B0aW9uYWw8UmVzb3Vy
Y2VMb2FkUHJpb3JpdHk+JiBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0K
LSAgICBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiBhY2NlcHRPdmVycmlkZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWNjZXB0T3ZlcnJpZGU7IH0KICAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJl
dHVybiBtX2ZvclByZWxvYWQ7IH0KICAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVs
b2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KICAgICBEZWZlck9wdGlvbiBkZWZl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KICAgICB2b2lkIHNldERlZmVyKERlZmVyT3B0
aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQogICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBh
c3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSk7Ci0gICAgdm9pZCBzZXRBY2NlcHRPdmVycmlkZShjb25zdCBTdHJpbmcmIGFj
Y2VwdCkgeyBtX2FjY2VwdE92ZXJyaWRlID0gYWNjZXB0OyB9CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEluaXRpYXRvcihEb2N1
bWVudExvYWRlciYpOwpAQCAtNzEsNyArNjksNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2No
YXJzZXQ7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKICAgICBPcHRpb25h
bDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gbV9wcmlvcml0eTsKLSAgICBPcHRpb25hbDxTdHJpbmc+
IG1fYWNjZXB0T3ZlcnJpZGU7CiAgICAgYm9vbCBtX2ZvclByZWxvYWQ7CiAgICAgRGVmZXJPcHRp
b24gbV9kZWZlcjsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVm
ZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dFJlZmVyZW5jZS5jcHAKaW5kZXggNjgxYjlmYWYwNzhlMjJjYjA1NGZmY2Q2NTk4YzdkNzNhMGI0
ZDJiZS4uYzYyN2Y0ZWZjMWNiMDFlNDdhMmY2NGQ1OGY1OWYwNmU3MzQxNzY0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRS
ZWZlcmVuY2UuY3BwCkBAIC02MCw4ICs2MCw2IEBAIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZl
cmVuY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKIAogICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIuZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7Ci0gICAgaWYgKG1fYWNjZXB0c0FueUltYWdl
VHlwZSkKLSAgICAgICAgcmVxdWVzdC5zZXRBY2NlcHRPdmVycmlkZSgiaW1hZ2UvKiIpOwogICAg
IG1fZG9jdW1lbnQgPSBsb2FkZXIucmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIGlm
IChtX2RvY3VtZW50KSB7CiAgICAgICAgIG1fZG9jdW1lbnQtPnNldENhblJldXNlKG1fY2FuUmV1
c2VSZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oCmluZGV4IGYxYzU0ZjQyNjEzM2Q1MThiODhiNTdh
Njk0YmYwNGY1Y2Y2N2VkN2UuLjVlMDMyYWQ3YThhNjg3NGQ2YjY3ODc3YjRkNDZhZWJlMTYzNDMz
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudFJlZmVyZW5jZS5oCkBAIC00Myw3ICs0Myw2IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwogICAgIGJvb2wgbG9hZFJlcXVlc3RlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9hZFJlcXVlc3RlZDsgfQotICAgIHZvaWQgc2V0QWNjZXB0c0Fu
eUltYWdlVHlwZSgpIHsgbV9hY2NlcHRzQW55SW1hZ2VUeXBlID0gdHJ1ZTsgfQogCiAgICAgQ2Fj
aGVkU1ZHRG9jdW1lbnQqIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudC5nZXQoKTsgfQog
CkBAIC01Myw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xvYWRSZXF1ZXN0ZWQ7CiAg
ICAgQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQqIG1fYWRkaXRpb25hbERvY3VtZW50Q2xpZW50Owog
ICAgIGJvb2wgbV9jYW5SZXVzZVJlc291cmNlOwotICAgIGJvb2wgbV9hY2NlcHRzQW55SW1hZ2VU
eXBlIHsgZmFsc2UgfTsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcAppbmRleCBlOGY3MjMwYmI1MGNl
NTM2OTFiN2EyNjIwMDVjNjhjODdjMjFlYWE4Li40NjE0MmUzNmE0OWM1NmYwNmQ5YjJlM2RjZTU0
ZWJlNDI3ZDA2ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NYXNrSW1hZ2VPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01hc2tJbWFnZU9wZXJhdGlvbi5jcHAKQEAgLTE5MywxMiArMTkzLDggQEAgQ2FjaGVk
U1ZHRG9jdW1lbnRSZWZlcmVuY2UqIE1hc2tJbWFnZU9wZXJhdGlvbjo6ZW5zdXJlQ2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UKICAgICBpZiAoaW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBpZiAoIW1fY2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCkpIHsKKyAg
ICBpZiAoIW1fY2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCkpCiAgICAgICAgIG1fY2Fj
aGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZFNWR0RvY3Vt
ZW50UmVmZXJlbmNlPihtX3VybCwgdGhpcywgZmFsc2UpOwotICAgICAgICAvLyBGSVhNRTogRm9y
IHNvbWUgc3RyYW5nZSByZWFzb24gd2UgbG9hZCBhbGwgbWFzayByZXNvdXJjZXMgdXNpbmcgQ2Fj
aGVkU1ZHRG9jdW1lbnQuCi0gICAgICAgIC8vICAgICAgICBUaGlzIHJlcXVpcmVzIG92ZXJyaWRp
bmcgU1ZHIG1pbWUgdHlwZSBpbiBBY2NlcHQgaGVhZGVyIG9yIHNlcnZlciBtYXkgcmVqZWN0IHRo
ZSByZXF1ZXN0LgotICAgICAgICBtX2NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLT5zZXRBY2Nl
cHRzQW55SW1hZ2VUeXBlKCk7Ci0gICAgfQogICAgIHJldHVybiBtX2NhY2hlZFNWR0RvY3VtZW50
UmVmZXJlbmNlLmdldCgpOwogfQogCkBAIC0yMjMsMTAgKzIxOSw5IEBAIHZvaWQgTWFza0ltYWdl
T3BlcmF0aW9uOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICAvLyBJZiBubyB2YWxpZCBt
YXNrIHdhcyBmb3VuZCwgdGhpcyBpcyBub3QgYSB2YWxpZCBTVkcgZG9jdW1lbnQgb3IgaXQgc3Bl
Y2lmaWVkIGFuIGludmFsaWQgZnJhZ21lbnQgaWRlbnRpZmllci4KICAgICAvLyBGYWxsYmFjayB0
byB0aGUgbm9ybWFsIHdheSBvZiBsb2FkaW5nIHRoZSBkb2N1bWVudCBpbiBhbiBJbWFnZSBvYmpl
Y3QuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgc2lsbHkuCiAgICAgaWYgKCF2YWxpZE1hc2tGb3Vu
ZCkgewogICAgICAgICAvLyBHZXQgdGhlIHJlc291cmNlIGxvYWRlciwgYWNxdWlyZSB0aGUgcmVz
b3VyY2UgYnVmZmVyIGFuZCBsb2FkIGl0IGludG8gYW4gaW1hZ2UuCiAgICAgICAgIEFTU0VSVChj
YWNoZWRTVkdEb2N1bWVudC0+bG9hZGVyKCkpOwo=
</data>
<flag name="review"
          id="281334"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256263</attachid>
            <date>2015-07-06 17:54:23 -0700</date>
            <delta_ts>2015-07-06 18:01:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146653-20150706175325.patch</filename>
            <type>text/plain</type>
            <size>90137</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVlMGYzNjMxYzE3ZDI5
NTI1NGRhOWZiZmY2NjNkN2MyMWYxOWIxYS4uMWE5ZTgzMTk2MmM3ODYyZmI2NzMzMmM5NThlYzdm
N2JlNTkxN2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDY4IEBACiAKICAgICAgICAgUmV2ZXJ0
IHVzZSBvZiBTVkcgPG1hc2s+IGVsZW1lbnRzIGZvciAtd2Via2l0LW1hc2staW1hZ2UgKHIxNzY3
OTgsIHIxNzc0OTQsIHIxODYxODApCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDY2NTMKKworICAgICAgICBGaXhlcyByZGFyOi8vcHJvYmxlbS8yMTQz
NTIzMy4KKworICAgICAgICByMTc3NDk0IGNhdXNlZCBhIG51bWJlciBvZiByZWdyZXNzaW9ucyAo
YnVncyAxNDE4NTcsIDE0NjUwOSwgMTQ2NTYxKSwgYWRkZWQgbmV3IGxheWVyaW5nIHZpb2xhdGlv
bnMsIGFuZAorICAgICAgICB3YXMgbm90IGJlaW5nIG1haW50YWluZWQsIHNvIHJldmVydCBpdC4K
KworICAgICAgICBUaGlzIHBhdGNoIHJldmVydHMgcjE3NzQ5NC4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxQcm9wZXJ0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlTWFza0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBj
c3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0TWFz
a0ltYWdlT3BlcmF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdTVkdEb2N1
bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFn
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YWRqdXN0U3R5bGVGb3JNYXNr
SW1hZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5
TWF0Y2hlZFByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
Lmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojpjb250YWluc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVy
dHlBbmltYXRpb25XcmFwcGVyTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNYXNrSW1hZ2VQcm9wZXJ0eVdyYXBwZXI6Ok1hc2tJ
bWFnZVByb3BlcnR5V3JhcHBlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNYXNrSW1h
Z2VQcm9wZXJ0eVdyYXBwZXI6OmVxdWFscyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29udGFpbnNTVkdE
b2N1bWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hc2tJbWFnZU9wZXJhdGlvbjo6fk1hc2tJbWFnZU9w
ZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNYXNrSW1hZ2VPcGVyYXRpb246
Om9wZXJhdG9yPT0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01hc2tJ
bWFnZU9wZXJhdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXNrQ2xpcFJlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6
dXBkYXRlRmlsbEltYWdlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojp+UmVu
ZGVyRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyTWFza0ltYWdlSW5mby5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVy
OjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmltYWdlT3JNYXNrSW1hZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0TWFza0ltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKworMjAxNS0wNy0wNiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZlcnQgdXNlIG9mIFNWRyA8
bWFzaz4gZWxlbWVudHMgZm9yIC13ZWJraXQtbWFzay1pbWFnZSAocjE3Njc5OCwgcjE3NzQ5NCwg
cjE4NjE4MCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NjY1MwogICAgICAgICAKICAgICAgICAgRml4ZXMgcmRhcjovL3Byb2JsZW0vMjE0MzUyMzMu
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmNDE4YzY1NTY0ZTMzNDA4OWU5Yjk5MWNjNzNmM2E0ZmNmNDAwYTIwLi5hODYzMDM4
NzQ0NTljNWE3NWE3Y2Q5YTk3ODU5YjRkZjc2MDA1YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzI1LDcgKzIzMjUsNiBA
QAogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5jcHAgKi87IH07CiAJCTZDNkNDQUIwMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NS
ZXNvdXJjZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZDNkNDQUFFMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVl
LmNwcCAqLzsgfTsKIAkJNkM2Q0NBQjExOURDNDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291
cmNlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZDNkNDQUFGMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmggKi87
IH07Ci0JCTZDQkZFNEE0MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUlu
Zm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkNC
RkU0QTIxOUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0ltYWdlSW5mby5jcHAgKi87
IH07CiAJCTZDQkZFNEE1MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUlu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDQkZF
NEEzMTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8uaCAqLzsgfTsK
IAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM3MEE4MTQxNzcwN0M0
OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFMEU1NjlCMTgzQkZGRTYwMEUwRThENSAvKiBG
bG9hdFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNw
cCAqLzsgfTsKQEAgLTk2MDQsNyArOTYwMyw2IEBACiAJCTZDNkNDQUFFMTlEQzQyQjkwMDQzRDVE
QiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYktpdENTU1Jlc291cmNlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2QzZDQ0FBRjE5REM0MkI5MDA0M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3Vy
Y2VWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NSZXNv
dXJjZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNzBBODE0MTc3MDdD
NDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTZDQkZFNEEyMTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUlu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTGF5ZXJN
YXNrSW1hZ2VJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkNCRkU0QTMx
OUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0ltYWdlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0
Um91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxv
YXRSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMEU1NjlB
MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyODcwLDcgKzIyODY4LDYgQEAKIAkJCQkwRjU4MENGOTBGMTJERTlCMDA1MUQ2
ODkgLyogUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggKi8sCiAJCQkJNTBEMTBEOTcxNTQ1RjU3NjAw
OTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5jcHAgKi8sCiAJCQkJNTBEMTBEOTgxNTQ1
RjU3NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5oICovLAotCQkJCTZDQkZFNEEy
MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8uY3BwICovLAogCQkJ
CTZDQkZFNEEzMTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8uaCAq
LywKIAkJCQkzQzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5jcHAgKi8sCiAJCQkJM0MyNDRGRTRBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QuaCAqLywKQEAgLTI5Nzk4LDcgKzI5Nzk1LDYgQEAKIAkJCQkwRjU4MEQwMDBGMTJE
RTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNTgwQ0ZFMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTBEMTBEOTkxNTQ1RjU3NjAwOTZEMjg4IC8qIFJlbmRlckxheWVy
RmlsdGVySW5mby5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2Q0JGRTRBNDE5RUJGMkQ0MDBDQTJG
OUQgLyogUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTND
MjQ0RkVCQTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMzNGQjFCMEYzMEVFODUwMDJDREQ3QyAvKiBSZW5kZXJMaW5lQm94
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg2MzA5N0Q5MzAyMDA5NEM5RTQgLyog
UmVuZGVyTGluZUJyZWFrLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2Zjk2NDk3ZGYyYzA3
MzBlNGIzYzRjZjRiZWZhN2EyMmUzNWY3MWI3Li41MzMzMmJlNTc4OTI5ODhmZTFiZmJlYWI4OTI2
YThjYjI4NTk2ODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTkwNiw4ICsxOTA2LDkgQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnQKIAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgogICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUNvbG9yVmFsdWUobV9hbGxvd1Zp
c2l0ZWRTdHlsZT8gc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvcikucmdiKCkgOiBzdHlsZS0+YmFja2dyb3VuZENvbG9yKCkucmdiKCkpOwotICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlOiB7Ci0gICAgICAgICAgICBjb25z
dCBGaWxsTGF5ZXIqIGxheWVycyA9IHN0eWxlLT5iYWNrZ3JvdW5kTGF5ZXJzKCk7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2U6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrSW1hZ2U6IHsKKyAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJz
ID0gcHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZSA/IHN0eWxlLT5tYXNr
TGF5ZXJzKCkgOiBzdHlsZS0+YmFja2dyb3VuZExheWVycygpOwogICAgICAgICAgICAgaWYgKCFs
YXllcnMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogCkBAIC0xOTI3LDI3ICsxOTI4LDYgQEAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBsaXN0
LnJlbGVhc2UoKTsKICAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a0ltYWdlOiB7Ci0gICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9IHN0eWxlLT5t
YXNrTGF5ZXJzKCk7Ci0gICAgICAgICAgICBpZiAoIWxheWVycykKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7
Ci0KLSAgICAgICAgICAgIGlmICghbGF5ZXJzLT5uZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAobGF5ZXJzLT5tYXNrSW1hZ2UoKS5nZXQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGxheWVycy0+bWFza0ltYWdlKCktPmNzc1ZhbHVlKCk7Ci0KLSAgICAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICBmb3IgKGNv
bnN0IEZpbGxMYXllciogY3VyckxheWVyID0gbGF5ZXJzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9
IGN1cnJMYXllci0+bmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJMYXllci0+bWFz
a0ltYWdlKCkuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZCgqY3Vyckxh
eWVyLT5tYXNrSW1hZ2UoKS0+Y3NzVmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRp
ZmllclZhbHVlKENTU1ZhbHVlTm9uZSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0
dXJuIGxpc3QucmVsZWFzZSgpOwotICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kU2l6ZToKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRT
aXplOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1NpemU6IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKaW5kZXggOWNjMzA4YjRmODNhMDkwOWZkMzNhZDMxMDZmOGY5NmNkNGU1
MDdhMS4uYTIyNDhjYTlhNmFhNGIyZmNiOGNkNmU4M2E1OGZkZWIxOTIwMzFhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTkwLDcgKzkwLDYgQEAKICNpbmNsdWRlICJUZXh0RW5jb2Rp
bmcuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktp
dENTU1JlZ2lvblJ1bGUuaCIKLSNpbmNsdWRlICJXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Yml0c2V0PgpAQCAtNDcwNCwxMSArNDcwMyw4IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Q1NTUHJvcGVydHlJRCYgcHJvcElkMSwKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dy
b3VuZEltYWdlOgotICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VGaWxsSW1hZ2UoKm1fdmFs
dWVMaXN0LCBjdXJyVmFsdWUpKQotICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3Qt
Pm5leHQoKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZToKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBh
cnNlTWFza0ltYWdlKCptX3ZhbHVlTGlzdCwgY3VyclZhbHVlKSkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHBhcnNlRmlsbEltYWdlKCptX3ZhbHVlTGlzdCwgY3VyclZhbHVlKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5k
Q2xpcDoKQEAgLTk5MTEsMzAgKzk5MDcsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWx0ZXIo
Q1NTUGFyc2VyVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIHJlcwogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VNYXNrSW1hZ2UoQ1NTUGFy
c2VyVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIG91dFZhbHVlKQotewot
ICAgIG91dFZhbHVlID0gbnVsbHB0cjsKLSAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSB2YWx1
ZUxpc3QuY3VycmVudCgpOwotICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7Ci0g
ICAgICAgIG91dFZhbHVlID0gV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZTo6Y3JlYXRlKGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKLSAgICAgICAgcmV0
dXJuIG91dFZhbHVlLmdldCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzb3Vy
Y2VWYWx1ZTsKLSAgICBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19V
UkkpIHsKLSAgICAgICAgaWYgKHByb3RvY29sSXModmFsdWUtPnN0cmluZywgImRhdGEiKSkKLSAg
ICAgICAgICAgIHBhcnNlRmlsbEltYWdlKHZhbHVlTGlzdCwgcmVzb3VyY2VWYWx1ZSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJlc291cmNlVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKGNvbXBsZXRlVVJMKHZhbHVlLT5zdHJpbmcpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1VSSSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIHBhcnNlRmlsbEltYWdlKHZhbHVlTGlzdCwgcmVz
b3VyY2VWYWx1ZSk7Ci0KLSAgICBpZiAocmVzb3VyY2VWYWx1ZSkKLSAgICAgICAgb3V0VmFsdWUg
PSBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlOjpjcmVhdGUocmVzb3VyY2VWYWx1ZSk7Ci0KLSAgICBy
ZXR1cm4gb3V0VmFsdWUuZ2V0KCk7Ci19Ci0KICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiBzdGF0
aWMgYm9vbCB2YWxpZEZsb3dOYW1lKGNvbnN0IFN0cmluZyYgZmxvd05hbWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmgKaW5kZXggZjc5MjNjNWNjM2UyNjRmYjQ3YjU1YTI0MGMwZjBlNDI4MmVkMDBj
MS4uNGU1MzAwOGZlNGNhM2ZiYzFlOTNmODgwZGIzNWY4NjIxYzc1MDFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaApAQCAtMTU3LDggKzE1Nyw2IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8U291cmNl
U2l6ZT4gcGFyc2VTaXplc0F0dHJpYnV0ZShTdHJpbmdWaWV3KTsKICAgICBTb3VyY2VTaXplIHNv
dXJjZVNpemUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnlFeHA+JiYsIENTU1BhcnNlclZhbHVl
Jik7CiAKLSAgICAvLyBGSVhNRTogTWF5YmUgdGhlc2UgdHdvIG1ldGhvZHMgY291bGQgYmUgY29t
YmluZWQgaW50byBvbmUuCi0gICAgYm9vbCBwYXJzZU1hc2tJbWFnZShDU1NQYXJzZXJWYWx1ZUxp
c3QmLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAgICAgYm9vbCBwYXJzZUZpbGxJbWFnZShDU1NQYXJz
ZXJWYWx1ZUxpc3QmLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CiAKICAgICBlbnVtIEZpbGxQb3NpdGlv
bkZsYWcgeyBJbnZhbGlkRmlsbFBvc2l0aW9uID0gMCwgQW1iaWd1b3VzRmlsbFBvc2l0aW9uID0g
MSwgWEZpbGxQb3NpdGlvbiA9IDIsIFlGaWxsUG9zaXRpb24gPSA0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGVmOTQzNjQ1ZWZjZjliNGZjNDAzZTA4YWQ4M2Ez
MDllN2Q1YWFjYTIuLjMzNzk3YjUyYTdlYTczODRkMDMyYjI2MWI0NGQwMWI3OWIyMDJmNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC01MzgsNyArNTM4LDcgQEAg
anVzdGlmeS1pdGVtcyBbSW5pdGlhbD1pbml0aWFsU2VsZkFsaWdubWVudCwgQ29udmVydGVyPVNl
bGZPckRlZmF1bHRBbGlnbm1lbnREYXQKIC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utd2lkdGggW0N1
c3RvbT1BbGxdCiAtd2Via2l0LW1hc2stY2xpcCBbRmlsbExheWVyUHJvcGVydHksIE5hbWVGb3JN
ZXRob2RzPUNsaXBdCiAtd2Via2l0LW1hc2stY29tcG9zaXRlIFtGaWxsTGF5ZXJQcm9wZXJ0eSwg
TmFtZUZvck1ldGhvZHM9Q29tcG9zaXRlXQotLXdlYmtpdC1tYXNrLWltYWdlIFtDdXN0b209SW5p
dGlhbHxJbmhlcml0LCBDb252ZXJ0ZXI9TWFza0ltYWdlT3BlcmF0aW9uc10KKy13ZWJraXQtbWFz
ay1pbWFnZSBbRmlsbExheWVyUHJvcGVydHksIE5hbWVGb3JNZXRob2RzPUltYWdlXQogLXdlYmtp
dC1tYXNrLW9yaWdpbiBbRmlsbExheWVyUHJvcGVydHksIE5hbWVGb3JNZXRob2RzPU9yaWdpbl0K
IC13ZWJraXQtbWFzay1wb3NpdGlvbiBbTG9uZ2hhbmRzPS13ZWJraXQtbWFzay1wb3NpdGlvbi14
fC13ZWJraXQtbWFzay1wb3NpdGlvbi15XQogLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXggW0ZpbGxM
YXllclByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1YUG9zaXRpb25dCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5o
CmluZGV4IDU5ZWExYzk1OTc4N2EyMzE3YmIwMWViNjM1OTEwNDU1YzIzNjg5MzYuLmI5NTY4NzZm
MGFjMWZiMTFiNWYzZDI0ZTIyZDIwYTk4MDUxMTk0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBA
IC0xNzEsNyArMTcxLDYgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAgICAgIFNWR0NvbG9yQ2xh
c3MsCiAgICAgICAgIFNWR1BhaW50Q2xhc3MsCi0gICAgICAgIFdlYktpdENTU1Jlc291cmNlQ2xh
c3MsCiAKICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKICAgICAgICAgQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbENsYXNzLApAQCAtMTg5LDYgKzE4OCw3IEBAIHByb3RlY3RlZDoKICNp
ZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICBHcmlkTGluZU5hbWVzQ2xhc3MsCiAj
ZW5kaWYKKyAgICAgICAgV2ViS2l0Q1NTUmVzb3VyY2VDbGFzcwogCiAgICAgICAgIC8vIERvIG5v
dCBhcHBlbmQgbm9uLWxpc3QgY2xhc3MgdHlwZXMgaGVyZS4KICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDQxN2E0MDFmMjU1MzZmZjI5ZWZl
MDM1M2RjY2VlMjljMmI1YzlmNzIuLjdhNmJlYWY1ZDA3YWU1NzU5ZDcwZjkxZDIxNTQ5NTJjYmFk
MzI5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAg
LTEwNCw3ICsxMDQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9wdGlvbmFsPGZsb2F0PiBjb252
ZXJ0UGVyc3BlY3RpdmUoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7CiAgICAgc3RhdGljIE9w
dGlvbmFsPExlbmd0aD4gY29udmVydE1hcnF1ZWVJbmNyZW1lbnQoU3R5bGVSZXNvbHZlciYsIENT
U1ZhbHVlJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPEZpbHRlck9wZXJhdGlvbnM+IGNvbnZlcnRG
aWx0ZXJPcGVyYXRpb25zKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwotICAgIHN0YXRpYyBW
ZWN0b3I8UmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4+IGNvbnZlcnRNYXNrSW1hZ2VPcGVyYXRp
b25zKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBz
dGF0aWMgYm9vbCBjb252ZXJ0VG91Y2hDYWxsb3V0KFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYp
OwogI2VuZGlmCkBAIC0xMDEzLDU3ICsxMDEyLDYgQEAgc3RhdGljIGlubGluZSBXZWJLaXRDU1NS
ZXNvdXJjZVZhbHVlKiBtYXNrSW1hZ2VWYWx1ZUZyb21JdGVyYXRvcihDU1NWYWx1ZUxpc3QmIG0K
ICAgICByZXR1cm4gJmRvd25jYXN0PFdlYktpdENTU1Jlc291cmNlVmFsdWU+KGl0LT5nZXQoKSk7
CiB9CiAKLWlubGluZSBWZWN0b3I8UmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4+IFN0eWxlQnVp
bGRlckNvbnZlcnRlcjo6Y29udmVydE1hc2tJbWFnZU9wZXJhdGlvbnMoU3R5bGVSZXNvbHZlciYg
c3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUmIHZhbHVlKQotewotICAgIFZlY3RvcjxSZWZQdHI8TWFz
a0ltYWdlT3BlcmF0aW9uPj4gb3BlcmF0aW9uczsKLSAgICBSZWZQdHI8V2ViS2l0Q1NTUmVzb3Vy
Y2VWYWx1ZT4gbWFza0ltYWdlVmFsdWU7Ci0gICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbWFza0lt
YWdlc0xpc3Q7Ci0gICAgQ1NTVmFsdWVMaXN0OjppdGVyYXRvciBsaXN0SXRlcmF0b3I7Ci0gICAg
aWYgKGlzPFdlYktpdENTU1Jlc291cmNlVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgbWFza0ltYWdl
VmFsdWUgPSAmZG93bmNhc3Q8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4odmFsdWUpOwotICAgIGVs
c2UgaWYgKGlzPENTU1ZhbHVlTGlzdD4odmFsdWUpKSB7Ci0gICAgICAgIG1hc2tJbWFnZXNMaXN0
ID0gJmRvd25jYXN0PENTU1ZhbHVlTGlzdD4odmFsdWUpOwotICAgICAgICBsaXN0SXRlcmF0b3Ig
PSBtYXNrSW1hZ2VzTGlzdC0+YmVnaW4oKTsKLSAgICAgICAgbWFza0ltYWdlVmFsdWUgPSBtYXNr
SW1hZ2VWYWx1ZUZyb21JdGVyYXRvcigqbWFza0ltYWdlc0xpc3QsIGxpc3RJdGVyYXRvcik7Ci0g
ICAgfQotCi0gICAgd2hpbGUgKG1hc2tJbWFnZVZhbHVlLmdldCgpKSB7Ci0gICAgICAgIFJlZlB0
cjxDU1NWYWx1ZT4gbWFza0lubmVyVmFsdWUgPSBtYXNrSW1hZ2VWYWx1ZS0+aW5uZXJWYWx1ZSgp
OwotCi0gICAgICAgIFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+IG5ld01hc2tJbWFnZTsKLSAg
ICAgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPihtYXNrSW5uZXJWYWx1ZS5nZXQoKSkpIHsK
LSAgICAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSBk
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4obWFza0lubmVyVmFsdWUuZ2V0KCkpOwotICAgICAg
ICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZhbHVlSUQoKSAmJiBwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgICAgICBuZXdNYXNrSW1h
Z2UgPSBNYXNrSW1hZ2VPcGVyYXRpb246OmNyZWF0ZSgpOwotICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgU3RyaW5nIGNzc1VybCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdW
YWx1ZSgpOwotICAgICAgICAgICAgICAgIFVSTCB1cmwgPSBzdHlsZVJlc29sdmVyLmRvY3VtZW50
KCkuY29tcGxldGVVUkwoY3NzVXJsKTsKLQotICAgICAgICAgICAgICAgIGJvb2wgaXNFeHRlcm5h
bERvY3VtZW50ID0gU1ZHVVJJUmVmZXJlbmNlOjppc0V4dGVybmFsVVJJUmVmZXJlbmNlKGNzc1Vy
bCwgc3R5bGVSZXNvbHZlci5kb2N1bWVudCgpKTsKLSAgICAgICAgICAgICAgICBuZXdNYXNrSW1h
Z2UgPSBNYXNrSW1hZ2VPcGVyYXRpb246OmNyZWF0ZShtYXNrSW1hZ2VWYWx1ZSwgY3NzVXJsLCB1
cmwuZnJhZ21lbnRJZGVudGlmaWVyKCksIGlzRXh0ZXJuYWxEb2N1bWVudCwgJnN0eWxlUmVzb2x2
ZXIuZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNFeHRlcm5hbERvY3VtZW50KQotICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVy
LnN0YXRlKCkubWFza0ltYWdlc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzKCkuYXBwZW5kKG5ld01h
c2tJbWFnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAoUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlID0gc3R5bGVSZXNvbHZlci5zdHlsZUltYWdlKENT
U1Byb3BlcnR5V2Via2l0TWFza0ltYWdlLCAqbWFza0lubmVyVmFsdWUpKQotICAgICAgICAgICAg
ICAgIG5ld01hc2tJbWFnZSA9IE1hc2tJbWFnZU9wZXJhdGlvbjo6Y3JlYXRlKGltYWdlKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIElmIHdlIGRpZG4ndCBnZXQgYSB2YWxpZCB2YWx1ZSwgdXNl
IE5vbmUgc28gd2Uga2VlcCB0aGUgY29ycmVjdCBudW1iZXIgYW5kIG9yZGVyIG9mIG1hc2tzLgot
ICAgICAgICBpZiAoIW5ld01hc2tJbWFnZSkKLSAgICAgICAgICAgIG5ld01hc2tJbWFnZSA9IE1h
c2tJbWFnZU9wZXJhdGlvbjo6Y3JlYXRlKCk7Ci0KLSAgICAgICAgb3BlcmF0aW9ucy5hcHBlbmQo
bmV3TWFza0ltYWdlKTsKLQotICAgICAgICBpZiAobWFza0ltYWdlc0xpc3QpCi0gICAgICAgICAg
ICBtYXNrSW1hZ2VWYWx1ZSA9IG1hc2tJbWFnZVZhbHVlRnJvbUl0ZXJhdG9yKCptYXNrSW1hZ2Vz
TGlzdCwgKytsaXN0SXRlcmF0b3IpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtYXNrSW1h
Z2VWYWx1ZSA9IG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIG9wZXJhdGlvbnM7Ci19Ci0K
IGlubGluZSBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gU3R5bGVCdWlsZGVyQ29udmVydGVy
Ojpjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5ncyhTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmIHZh
bHVlKQogewogICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNjJiZGFlYTBjZjc0YWQ0MWI3Zjg1ZTI4OWU3
ZmU3NTg3OWRkNmJjZC4uNmIxNTNkZTQxZDZkNGE0YThmM2Y2NzI0YzBlYTc3MTJiMzQxNTE4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTE1OSw2MyArMTE1OSw2IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0U3R5bGVGb3JJbnRlckNoYXJhY3RlclJ1YnkoKQog
ICAgICAgICBzdHlsZS0+c2V0V3JpdGluZ01vZGUoTGVmdFRvUmlnaHRXcml0aW5nTW9kZSk7CiB9
CiAKLXZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0U3R5bGVGb3JNYXNrSW1hZ2VzKCkKLXsKLSAg
ICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIHNhbWUgbWFzayBpbWFnZSBvYmplY3RzIGxvYWRl
ZCBvbiB0aGUgb2xkIHN0eWxlLAotICAgIC8vIHVzZSB0aGUgb2xkIG9uZXMgaW5zdGVhZCBvZiBs
b2FkaW5nIG5ldyBvbmVzLgotICAgIFJlbmRlclN0eWxlKiBuZXdTdHlsZSA9IG1fc3RhdGUuc3R5
bGUoKTsKLSAgICBSZW5kZXJTdHlsZSogb2xkU3R5bGUgPSAobV9zdGF0ZS5lbGVtZW50KCkgPyBt
X3N0YXRlLmVsZW1lbnQoKS0+cmVuZGVyU3R5bGUoKSA6IG51bGxwdHIpOwotCi0gICAgaWYgKG5l
d1N0eWxlICYmIG9sZFN0eWxlKSB7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8TWFza0ltYWdlT3Bl
cmF0aW9uPj4gcmVtb3ZlZEV4dGVybmFsUmVzb3VyY2VzOwotICAgICAgICAKLSAgICAgICAgLy8g
R2V0IGFsbCBtYXNrIG9iamVjdHMgZnJvbSB0aGUgb2xkIHN0eWxlIGluIGEgdmVjdG9yCi0gICAg
ICAgIC8vIHNvIHdlIGNhbiByZW1vdmUgdGhlbSBhcyB3ZSBtYXRjaCB0aGVtLCBtYWtpbmcgdGhl
IGZvbGxvd2luZyBzdGVwcyBmYXN0ZXIuCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8TWFza0ltYWdl
T3BlcmF0aW9uPj4gb2xkU3R5bGVNYXNrSW1hZ2VzOwotICAgICAgICBjb25zdCBGaWxsTGF5ZXIq
IG9sZE1hc2tMYXllciA9IG9sZFN0eWxlLT5tYXNrTGF5ZXJzKCk7Ci0gICAgICAgIHdoaWxlIChv
bGRNYXNrTGF5ZXIpIHsKLSAgICAgICAgICAgIFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+IG9s
ZE1hc2tJbWFnZSA9IG9sZE1hc2tMYXllci0+bWFza0ltYWdlKCk7Ci0gICAgICAgICAgICBpZiAo
b2xkTWFza0ltYWdlLmdldCgpKQotICAgICAgICAgICAgICAgIG9sZFN0eWxlTWFza0ltYWdlcy5h
cHBlbmQob2xkTWFza0ltYWdlKTsKLQotICAgICAgICAgICAgb2xkTWFza0xheWVyID0gb2xkTWFz
a0xheWVyLT5uZXh0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAob2xkU3R5bGVNYXNrSW1h
Z2VzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBUcnkgdG8g
bWF0Y2ggdGhlIG5ldyBtYXNrIG9iamVjdHMgdGhyb3VnaCB0aGUgbGlzdCBmcm9tIHRoZSBvbGQg
c3R5bGUuCi0gICAgICAgIC8vIFRoaXMgc2hvdWxkIHdvcmsgcGVyZmVjdGx5IGFuZCBvcHRpbWFs
IHdoZW4gdGhlIGxpc3Qgb2YgbWFza3MgcmVtYWluZWQKLSAgICAgICAgLy8gdGhlIHNhbWUgYW5k
IGFsc28gd29yayBjb3JyZWN0bHkgKGJ1dCBzbG93ZXIpIHdoZW4gdGhleSB3ZXJlIHJlb3JkZXJl
ZC4KLSAgICAgICAgRmlsbExheWVyKiBuZXdNYXNrTGF5ZXIgPSAmbmV3U3R5bGUtPmVuc3VyZU1h
c2tMYXllcnMoKTsKLSAgICAgICAgaW50IGNvdW50T2xkU3R5bGVNYXNrSW1hZ2VzID0gb2xkU3R5
bGVNYXNrSW1hZ2VzLnNpemUoKTsKLSAgICAgICAgd2hpbGUgKG5ld01hc2tMYXllciAmJiBjb3Vu
dE9sZFN0eWxlTWFza0ltYWdlcykgewotICAgICAgICAgICAgUmVmUHRyPE1hc2tJbWFnZU9wZXJh
dGlvbj4gbmV3TWFza0ltYWdlID0gbmV3TWFza0xheWVyLT5tYXNrSW1hZ2UoKTsKLSAgICAgICAg
ICAgIGlmIChuZXdNYXNrSW1hZ2UuZ2V0KCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGNvdW50T2xkU3R5bGVNYXNrSW1hZ2VzOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gb2xkTWFza0ltYWdlID0gb2xkU3R5bGVN
YXNrSW1hZ2VzW2ldOwotICAgICAgICAgICAgICAgICAgICBpZiAoKm9sZE1hc2tJbWFnZSA9PSAq
bmV3TWFza0ltYWdlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdNYXNrTGF5ZXItPnNl
dE1hc2tJbWFnZShvbGRNYXNrSW1hZ2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5l
d01hc2tJbWFnZS0+aXNFeHRlcm5hbERvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVtb3ZlZEV4dGVybmFsUmVzb3VyY2VzLmFwcGVuZChuZXdNYXNrSW1hZ2UpOwotCi0g
ICAgICAgICAgICAgICAgICAgICAgICBvbGRTdHlsZU1hc2tJbWFnZXMucmVtb3ZlKGkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgY291bnRPbGRTdHlsZU1hc2tJbWFnZXMtLTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBuZXdNYXNrTGF5ZXIgPSBuZXdN
YXNrTGF5ZXItPm5leHQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8TWFz
a0ltYWdlT3BlcmF0aW9uPj4mIHBlbmRpbmdSZXNvdXJjZXMgPSBtX3N0YXRlLm1hc2tJbWFnZXNX
aXRoUGVuZGluZ1NWR0RvY3VtZW50cygpOwotICAgICAgICBwZW5kaW5nUmVzb3VyY2VzLnJlbW92
ZUFsbE1hdGNoaW5nKFsmcmVtb3ZlZEV4dGVybmFsUmVzb3VyY2VzXSAoY29uc3QgUmVmUHRyPE1h
c2tJbWFnZU9wZXJhdGlvbj4mIHJlc291cmNlKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVtb3Zl
ZEV4dGVybmFsUmVzb3VyY2VzLmNvbnRhaW5zKHJlc291cmNlKTsKLSAgICAgICAgfSk7Ci0gICAg
fQotfQotCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlLCBFbGVtZW50ICplKQogewog
ICAgIC8vIENhY2hlIG91ciBvcmlnaW5hbCBkaXNwbGF5LgpAQCAtMTgxMSw4ICsxNzU0LDYgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVz
dWx0JiBtYXRjaFJlc3VsdCwgY29uc3QKICAgICAvLyBUaGVyZSBhcmUgc29tZSBDU1MgcHJvcGVy
dGllcyB0aGF0IGFmZmVjdCB0aGUgc2FtZSBSZW5kZXJTdHlsZSB2YWx1ZXMsCiAgICAgLy8gc28g
dG8gcHJlc2VydmUgYmVoYXZpb3IsIHdlIHF1ZXVlIHRoZW0gdXAgZHVyaW5nIGNhc2NhZGUgYW5k
IGZsdXNoIGhlcmUuCiAgICAgY2FzY2FkZS5hcHBseURlZmVycmVkUHJvcGVydGllcygqdGhpcyk7
Ci0gICAgCi0gICAgYWRqdXN0U3R5bGVGb3JNYXNrSW1hZ2VzKCk7CiAKICAgICAvLyBTdGFydCBs
b2FkaW5nIHJlc291cmNlcyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCiAgICAgbG9hZFBlbmRp
bmdSZXNvdXJjZXMoKTsKQEAgLTIyNDAsMzAgKzIxODEsMTUgQEAgdm9pZCBTdHlsZVJlc29sdmVy
Ojpsb2FkUGVuZGluZ1NWR0RvY3VtZW50cygpCiAgICAgLy8gc3R5bGUgaXMgTlVMTC4gV2UgZG9u
J3Qga25vdyBleGFjdGx5IHdoeSB0aGlzIGhhcHBlbnMuIE91ciBndWVzcyBpcwogICAgIC8vIHJl
ZW50ZXJpbmcgc3R5bGVGb3JFbGVtZW50KCkuCiAgICAgQVNTRVJUKHN0YXRlLnN0eWxlKCkpOwot
ICAgIGlmICghc3RhdGUuc3R5bGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGJvb2wg
aGFzRmlsdGVycyA9IChzdGF0ZS5zdHlsZSgpLT5oYXNGaWx0ZXIoKSAmJiAhc3RhdGUuZmlsdGVy
c1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzKCkuaXNFbXB0eSgpKTsKLSAgICBib29sIGhhc01hc2tz
ID0gKHN0YXRlLnN0eWxlKCktPmhhc01hc2soKSAmJiAhc3RhdGUubWFza0ltYWdlc1dpdGhQZW5k
aW5nU1ZHRG9jdW1lbnRzKCkuaXNFbXB0eSgpKTsKLSAgICAKLSAgICBpZiAoIWhhc0ZpbHRlcnMg
JiYgIWhhc01hc2tzKQorICAgIGlmICghc3RhdGUuc3R5bGUoKSB8fCAhc3RhdGUuc3R5bGUoKS0+
aGFzRmlsdGVyKCkgfHwgc3RhdGUuZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzKCkuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2Fj
aGVkUmVzb3VyY2VMb2FkZXIgPSBzdGF0ZS5kb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVy
KCk7CiAgICAgCi0gICAgaWYgKGhhc0ZpbHRlcnMpIHsKLSAgICAgICAgZm9yIChhdXRvJiBmaWx0
ZXJPcGVyYXRpb24gOiBzdGF0ZS5maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKSkKLSAg
ICAgICAgICAgIGZpbHRlck9wZXJhdGlvbi0+Z2V0T3JDcmVhdGVDYWNoZWRTVkdEb2N1bWVudFJl
ZmVyZW5jZSgpLT5sb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKLQotICAgICAgICBzdGF0ZS5m
aWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKS5jbGVhcigpOwotICAgIH0KLSAgICAKLSAg
ICBpZiAoaGFzTWFza3MpIHsKLSAgICAgICAgZm9yIChhdXRvJiBtYXNrSW1hZ2VPcGVyYXRpb24g
OiBzdGF0ZS5tYXNrSW1hZ2VzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKSkKLSAgICAgICAgICAg
IG1hc2tJbWFnZU9wZXJhdGlvbi0+ZW5zdXJlQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UoKS0+
bG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgZm9yIChhdXRvJiBmaWx0ZXJPcGVyYXRp
b24gOiBzdGF0ZS5maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKSkKKyAgICAgICAgZmls
dGVyT3BlcmF0aW9uLT5nZXRPckNyZWF0ZUNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKCktPmxv
YWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwogCi0gICAgICAgIHN0YXRlLm1hc2tJbWFnZXNXaXRo
UGVuZGluZ1NWR0RvY3VtZW50cygpLmNsZWFyKCk7Ci0gICAgfQorICAgIHN0YXRlLmZpbHRlcnNX
aXRoUGVuZGluZ1NWR0RvY3VtZW50cygpLmNsZWFyKCk7CiB9CiAKIGJvb2wgU3R5bGVSZXNvbHZl
cjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSYgaW5WYWx1ZSwgRmlsdGVyT3BlcmF0
aW9ucyYgb3V0T3BlcmF0aW9ucykKQEAgLTI1MjMsMTAgKzI0NDksOSBAQCB2b2lkIFN0eWxlUmVz
b2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TWFza0ltYWdlOiB7CiAgICAgICAgICAgICBmb3IgKEZpbGxMYXllciogbWFz
a0xheWVyID0gJm1fc3RhdGUuc3R5bGUoKS0+ZW5zdXJlTWFza0xheWVycygpOyBtYXNrTGF5ZXI7
IG1hc2tMYXllciA9IG1hc2tMYXllci0+bmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRy
PE1hc2tJbWFnZU9wZXJhdGlvbj4gbWFza0ltYWdlID0gbWFza0xheWVyLT5tYXNrSW1hZ2UoKTsK
LSAgICAgICAgICAgICAgICBhdXRvKiBzdHlsZUltYWdlID0gbWFza0ltYWdlLmdldCgpID8gbWFz
a0ltYWdlLT5pbWFnZSgpIDogbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBhdXRvKiBzdHlsZUlt
YWdlID0gbWFza0xheWVyLT5pbWFnZSgpOwogICAgICAgICAgICAgICAgIGlmIChpczxTdHlsZVBl
bmRpbmdJbWFnZT4oc3R5bGVJbWFnZSkpCi0gICAgICAgICAgICAgICAgICAgIG1hc2tJbWFnZS0+
c2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZShkb3duY2FzdDxTdHlsZVBlbmRpbmdJbWFnZT4oKnN0
eWxlSW1hZ2UpKSk7CisgICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UobG9h
ZFBlbmRpbmdJbWFnZShkb3duY2FzdDxTdHlsZVBlbmRpbmdJbWFnZT4oKnN0eWxlSW1hZ2UpKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKaW5kZXggYmY4M2U0NTZmM2E3ZGYzZDI1MWJlYjZmZTY2YTdhMTM2
YTVkODI0NS4uMGMzM2ZjZTg2YjVlNDYxODQzNzhhYTc2Yjg4NzA0NGZmNzEyODQ2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zMDIsNyArMzAyLDYgQEAgcHJpdmF0ZToKICNl
bmRpZgogICAgIAogICAgIHZvaWQgYWRqdXN0U3R5bGVGb3JJbnRlckNoYXJhY3RlclJ1YnkoKTsK
LSAgICB2b2lkIGFkanVzdFN0eWxlRm9yTWFza0ltYWdlcygpOwogICAgIAogICAgIGJvb2wgZmFz
dFJlamVjdFNlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAppbmRleCBiYWNjM2Y4ZjA3NjM4NTIwZGFhNjg2NmM2YTlmMTI3NTExNjEyMTgx
Li41ZmQxNTU5YWQ4NzkxZGEyZWY4NDE5OTNjZTNjYTI1YTI2NTUxMTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC00NTA4LDYgKzQ1MDgsMTQgQEAgYm9vbCBGcmFtZVZpZXc6Omlz
RmxpcHBlZERvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpOwogfQogCitib29sIEZyYW1lVmlldzo6Y29udGFp
bnNTVkdEb2N1bWVudCgpIGNvbnN0Cit7CisgICAgaWYgKGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZyYW1lKCkuZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgpOworICAgIAor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBGcmFtZVZpZXc6Om5vdGlmeVdpZGdldHNJbkFs
bEZyYW1lcyhXaWRnZXROb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGZvciAoYXV0
byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
MmFlMTY3NGQwZTkzYjdlYjk0MmMzODJkYTlkNjc4MjIwOTlkMzJhZS4uYWE5ZGZkNThkMWM5Mjcx
ZjBlYjc1NTg1NjUyZTA4YmQ2NGQ5M2Q0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01
NjEsNiArNTYxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBib29sIGlzVmVydGljYWxE
b2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc0ZsaXBwZWREb2N1
bWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjb250YWluc1NWR0RvY3Vt
ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRnJhbWVWaWV3
KEZyYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggMTkyYmNlZjMwZTAxNTZjNTUxYjU5ZmQyZWVkZWU0
MWQ5MmY2ODE5ZC4uMWI5ZDQyMzE3ZDVhYzlmMmI4MzM5MzRkZGZkZDI4NzFkYWRiNGViMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIkNsaXBQYXRoT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSWRlbnRpdHlUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKLSNpbmNsdWRlICJNYXNrSW1hZ2VPcGVyYXRpb24uaCIKICNpbmNs
dWRlICJNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIk1hdHJpeFRyYW5z
Zm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgpAQCAtMzQ4LDE5ICszNDcs
NiBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSQogICAgIHJldHVybiB0bzsKIH0KIAotc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+IGZyb20s
IGNvbnN0IFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCi17
Ci0gICAgaWYgKCFmcm9tLmdldCgpIHx8ICF0by5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHRvOwot
Ci0gICAgLy8gT25seSBhbmltYXRlcyBiZXR3ZWVuIG1hc2tzIHVzaW5nIGltYWdlcyAoUE5HLCBl
bnRpcmUgU1ZHLCBnZW5lcmF0ZWQgaW1hZ2UpLgotICAgIC8vIEl0IGRvZXMgbm90IGFuaW1hdGUg
YmV0d2VlbiA8bWFzaz4gZWxlbWVudHMgKGZpbGUuc3ZnI2lkZW50aWZpZXIpLgotICAgIGlmIChm
cm9tLT5pbWFnZSgpICYmIHRvLT5pbWFnZSgpKQotICAgICAgICByZXR1cm4gTWFza0ltYWdlT3Bl
cmF0aW9uOjpjcmVhdGUoYmxlbmRGdW5jKGFuaW0sIGZyb20tPmltYWdlKCksIHRvLT5pbWFnZSgp
LCBwcm9ncmVzcykpOwotCi0gICAgcmV0dXJuIHRvOwotfQotCiBzdGF0aWMgaW5saW5lIE5pbmVQ
aWVjZUltYWdlIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBOaW5l
UGllY2VJbWFnZSYgZnJvbSwgY29uc3QgTmluZVBpZWNlSW1hZ2UmIHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7CiAgICAgaWYgKCFmcm9tLmhhc0ltYWdlKCkgfHwgIXRvLmhhc0ltYWdlKCkpCkBAIC01
MjcsMzEgKzUxMyw2IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi1jbGFzcyBNYXNrSW1hZ2VQcm9w
ZXJ0eVdyYXBwZXIgOiBwdWJsaWMgUHJvcGVydHlXcmFwcGVyPGNvbnN0IFJlZlB0cjxNYXNrSW1h
Z2VPcGVyYXRpb24+PiB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0g
ICAgTWFza0ltYWdlUHJvcGVydHlXcmFwcGVyKCkKLSAgICAgICAgOiBQcm9wZXJ0eVdyYXBwZXI8
Y29uc3QgUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4+KENTU1Byb3BlcnR5V2Via2l0TWFza0lt
YWdlLCAmUmVuZGVyU3R5bGU6Om1hc2tJbWFnZSwgJlJlbmRlclN0eWxlOjpzZXRNYXNrSW1hZ2Up
Ci0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRl
clN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKLSAgICB7Ci0gICAgICAgIC8v
IElmIHRoZSBzdHlsZSBwb2ludGVycyBhcmUgdGhlIHNhbWUsIGRvbid0IGJvdGhlciBkb2luZyB0
aGUgdGVzdC4KLSAgICAgICAgLy8gSWYgZWl0aGVyIGlzIG51bGwsIHJldHVybiBmYWxzZS4gSWYg
Ym90aCBhcmUgbnVsbCwgcmV0dXJuIHRydWUuCi0gICAgICAgIGlmIChhID09IGIpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKCFhIHx8ICFiKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgY29uc3QgUmVmUHRyPE1hc2tJbWFnZU9wZXJh
dGlvbj4gbWFza0ltYWdlQSA9IChhLT4qbV9nZXR0ZXIpKCk7Ci0gICAgICAgIGNvbnN0IFJlZlB0
cjxNYXNrSW1hZ2VPcGVyYXRpb24+IG1hc2tJbWFnZUIgPSAoYi0+Km1fZ2V0dGVyKSgpOwotICAg
ICAgICBTdHlsZUltYWdlKiBzdHlsZUltYWdlQSA9IChtYXNrSW1hZ2VBID8gbWFza0ltYWdlQS0+
aW1hZ2UoKSA6IG51bGxwdHIpOwotICAgICAgICBTdHlsZUltYWdlKiBzdHlsZUltYWdlQiA9ICht
YXNrSW1hZ2VCID8gbWFza0ltYWdlQi0+aW1hZ2UoKSA6IG51bGxwdHIpOwotICAgICAgICByZXR1
cm4gU3R5bGVJbWFnZTo6aW1hZ2VzRXF1aXZhbGVudChzdHlsZUltYWdlQSwgc3R5bGVJbWFnZUIp
OwotICAgIH0KLX07Ci0KIGNsYXNzIFByb3BlcnR5V3JhcHBlckNvbG9yIDogcHVibGljIFByb3Bl
cnR5V3JhcHBlckdldHRlcjxDb2xvcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpAQCAtMTIzOSw3ICsxMjAwLDcgQEAgQ1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVy
TWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXAoKQogCiAgICAgICAgIG5ldyBGaWxs
TGF5ZXJzUHJvcGVydHlXcmFwcGVyKENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCAmUmVuZGVy
U3R5bGU6OmJhY2tncm91bmRMYXllcnMsICZSZW5kZXJTdHlsZTo6ZW5zdXJlQmFja2dyb3VuZExh
eWVycyksCiAgICAgICAgIG5ldyBTdHlsZUltYWdlUHJvcGVydHlXcmFwcGVyKENTU1Byb3BlcnR5
TGlzdFN0eWxlSW1hZ2UsICZSZW5kZXJTdHlsZTo6bGlzdFN0eWxlSW1hZ2UsICZSZW5kZXJTdHls
ZTo6c2V0TGlzdFN0eWxlSW1hZ2UpLAotICAgICAgICBuZXcgTWFza0ltYWdlUHJvcGVydHlXcmFw
cGVyKCksCisgICAgICAgIG5ldyBTdHlsZUltYWdlUHJvcGVydHlXcmFwcGVyKENTU1Byb3BlcnR5
V2Via2l0TWFza0ltYWdlLCAmUmVuZGVyU3R5bGU6Om1hc2tJbWFnZSwgJlJlbmRlclN0eWxlOjpz
ZXRNYXNrSW1hZ2UpLAogCiAgICAgICAgIG5ldyBTdHlsZUltYWdlUHJvcGVydHlXcmFwcGVyKENT
U1Byb3BlcnR5Qm9yZGVySW1hZ2VTb3VyY2UsICZSZW5kZXJTdHlsZTo6Ym9yZGVySW1hZ2VTb3Vy
Y2UsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVySW1hZ2VTb3VyY2UpLAogICAgICAgICBuZXcgTGVu
Z3RoUHJvcGVydHlXcmFwcGVyPExlbmd0aEJveD4oQ1NTUHJvcGVydHlCb3JkZXJJbWFnZVNsaWNl
LCAmUmVuZGVyU3R5bGU6OmJvcmRlckltYWdlU2xpY2VzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRl
ckltYWdlU2xpY2VzKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBkMmQ3
MzMwNTVhMDZmYzY4NGFmNTAwZmQ3NmQ5YjgwZjUxMmJhNjhkLi42ZThkZjcyZjU3M2M1M2RhZGFl
MTYwYzY2ZWFjOWFhZjU1NjU0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CkBAIC00MDgsNiArNDA4LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFN1YmNsYXNzZWQgYnkgRnJh
bWVWaWV3IHRvIGNoZWNrIHRoZSB3cml0aW5nLW1vZGUgb2YgdGhlIGRvY3VtZW50LgogICAgIHZp
cnR1YWwgYm9vbCBpc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRmxpcHBlZERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNTVkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICAvLyBDYWxsZWQgdG8gdXBkYXRlIHRoZSBzY3JvbGxiYXJzIHRvIGFj
Y3VyYXRlbHkgcmVmbGVjdCB0aGUgc3RhdGUgb2YgdGhlIHZpZXcuCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2lyZWRPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01hc2tJbWFnZU9wZXJhdGlvbi5jcHAKaW5k
ZXggNDYxNDJlMzZhNDljNTZmMDZkOWIyZTNkY2U1NGViZTQyN2QwNmZkNi4uNmMyODNmNGM0NmZj
OGQ5NjY2NDQ4OTgxMmNmNDBhY2MzODVmNDBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uY3BwCkBAIC04MiwxNSAr
ODIsNiBAQCBNYXNrSW1hZ2VPcGVyYXRpb246Ok1hc2tJbWFnZU9wZXJhdGlvbigpCiAKIE1hc2tJ
bWFnZU9wZXJhdGlvbjo6fk1hc2tJbWFnZU9wZXJhdGlvbigpCiB7Ci0gICAgc2V0UmVuZGVyTGF5
ZXJJbWFnZUNsaWVudChudWxscHRyKTsKLX0KLQotYm9vbCBNYXNrSW1hZ2VPcGVyYXRpb246Om9w
ZXJhdG9yPT0oY29uc3QgTWFza0ltYWdlT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKLXsKLSAgICBp
ZiAobV91cmwubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAobV91cmwgPT0gb3RoZXIubV91cmwg
JiYgbV9mcmFnbWVudCA9PSBvdGhlci5tX2ZyYWdtZW50ICYmIG1faXNFeHRlcm5hbERvY3VtZW50
ID09IG90aGVyLm1faXNFeHRlcm5hbERvY3VtZW50KTsKLQotICAgIHJldHVybiBtX3N0eWxlSW1h
Z2UuZ2V0KCkgPT0gb3RoZXIubV9zdHlsZUltYWdlLmdldCgpOwogfQogCiBib29sIE1hc2tJbWFn
ZU9wZXJhdGlvbjo6aXNDU1NWYWx1ZU5vbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uaAppbmRleCBiMGMxYTQ2
YjA4ZGEzMWY2ZGM5NjlhMjAwYzU2NDhlYjUzYzViZmU1Li4zYzdmMjQ1NDFlNDZiNjFmYmM2ZjQ3
Nzc5M2RlNzdmNGYxNTNhNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uaApAQCAtNTUsMTMgKzU1LDkgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCk7CiAKICAgICB2aXJ0dWFsIH5N
YXNrSW1hZ2VPcGVyYXRpb24oKTsKLSAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWFz
a0ltYWdlT3BlcmF0aW9uJikgY29uc3Q7Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBNYXNrSW1hZ2VPcGVyYXRpb24mIG90aGVyKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShv
dGhlcik7IH0KIAogICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KICAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVu
dDsgfQotICAgIGJvb2wgaXNFeHRlcm5hbERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc0V4
dGVybmFsRG9jdW1lbnQ7IH0KICAgICBTdHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3R5bGVJbWFnZS5nZXQoKTsgfQogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHls
ZUltYWdlPik7CiAgICAgdm9pZCBzZXRSZW5kZXJMYXllckltYWdlQ2xpZW50KENhY2hlZEltYWdl
Q2xpZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDYxNzFk
YjVlMGE4YTkyMjU3Y2JlMmQzMDdkNmY3NmRhMzY5YWRiMjQuLjA3OGY5MDNlZTI2NjRiNmVkNjgx
M2MwNGVkNjdjNGI5NjBlNjYzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCkBAIC0xNTczLDcgKzE1NzMsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6bWFza0NsaXBS
ZWN0KGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICBMYXlvdXRSZWN0IHJlc3Vs
dDsKICAgICBMYXlvdXRSZWN0IGJvcmRlckJveCA9IGJvcmRlckJveFJlY3QoKTsKICAgICBmb3Ig
KGNvbnN0IEZpbGxMYXllciogbWFza0xheWVyID0gc3R5bGUoKS5tYXNrTGF5ZXJzKCk7IG1hc2tM
YXllcjsgbWFza0xheWVyID0gbWFza0xheWVyLT5uZXh0KCkpIHsKLSAgICAgICAgaWYgKG1hc2tM
YXllci0+bWFza0ltYWdlKCkpIHsKKyAgICAgICAgaWYgKG1hc2tMYXllci0+aW1hZ2UoKSkgewog
ICAgICAgICAgICAgLy8gTWFza3Mgc2hvdWxkIG5ldmVyIGhhdmUgZml4ZWQgYXR0YWNobWVudCwg
c28gaXQncyBPSyBmb3IgcGFpbnRDb250YWluZXIgdG8gYmUgbnVsbC4KICAgICAgICAgICAgIEJh
Y2tncm91bmRJbWFnZUdlb21ldHJ5IGdlb21ldHJ5ID0gY2FsY3VsYXRlQmFja2dyb3VuZEltYWdl
R2VvbWV0cnkobnVsbHB0ciwgKm1hc2tMYXllciwgcGFpbnRPZmZzZXQsIGJvcmRlckJveCk7CiAg
ICAgICAgICAgICByZXN1bHQudW5pdGUoZ2VvbWV0cnkuZGVzdFJlY3QoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA4NDk5
N2ZkYjI0OGVhMjc0ZGZjYThiNTNjOThiYTAyZmQyNjFmNGQ1Li4wYzM3MTJlZjllOWU0M2U2YjU1
ZGNmOTYzYmEyZjc1ZDc1ZDhhYWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJS
ZW5kZXJCb3hNb2RlbE9iamVjdC5oIgogCiAjaW5jbHVkZSAiQm9yZGVyRWRnZS5oIgotI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKQEAgLTQ5LDE2ICs0NywxMyBAQAogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyUmVnaW9uLmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZS5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlUm93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTVkdJbWFnZUZvckNvbnRhaW5lci5o
IgogI2luY2x1ZGUgIlNjcm9sbGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3Rh
dGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNjg0LDcgKzY3OSw3
IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZFJl
Y3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3QsIGRldmljZVNjYWxlRmFjdG9yKTsKIAog
ICAgIC8vIEZhc3QgcGF0aCBmb3IgZHJhd2luZyBzaW1wbGUgY29sb3IgYmFja2dyb3VuZHMuCi0g
ICAgaWYgKCFpc1Jvb3QgJiYgIWNsaXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcgJiYgIXNob3VsZFBh
aW50QmFja2dyb3VuZEltYWdlICYmIGlzQm9yZGVyRmlsbCAmJiAhYmdMYXllci0+aGFzTWFza0lt
YWdlKCkgJiYgIWJnTGF5ZXItPm5leHQoKSkgeworICAgIGlmICghaXNSb290ICYmICFjbGlwcGVk
V2l0aExvY2FsU2Nyb2xsaW5nICYmICFzaG91bGRQYWludEJhY2tncm91bmRJbWFnZSAmJiBpc0Jv
cmRlckZpbGwgJiYgIWJnTGF5ZXItPm5leHQoKSkgewogICAgICAgICBpZiAoIWNvbG9yVmlzaWJs
ZSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtODQ0LDI1ICs4MzksMTggQEAgdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY28KICAgICB9CiAKICAgICAvLyBubyBwcm9ncmVzc2l2ZSBsb2FkaW5nIG9m
IHRoZSBiYWNrZ3JvdW5kIGltYWdlCi0gICAgaWYgKCFiYXNlQmdDb2xvck9ubHkgJiYgKHNob3Vs
ZFBhaW50QmFja2dyb3VuZEltYWdlIHx8IGJnTGF5ZXItPmhhc01hc2tJbWFnZSgpKSkgeworICAg
IGlmICghYmFzZUJnQ29sb3JPbmx5ICYmIHNob3VsZFBhaW50QmFja2dyb3VuZEltYWdlKSB7CiAg
ICAgICAgIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IGdlb21ldHJ5ID0gY2FsY3VsYXRlQmFja2dy
b3VuZEltYWdlR2VvbWV0cnkocGFpbnRJbmZvLnBhaW50Q29udGFpbmVyLCAqYmdMYXllciwgcmVj
dC5sb2NhdGlvbigpLCBzY3JvbGxlZFBhaW50UmVjdCwgYmFja2dyb3VuZE9iamVjdCk7CiAgICAg
ICAgIGdlb21ldHJ5LmNsaXAoTGF5b3V0UmVjdChwaXhlbFNuYXBwZWRSZWN0KSk7Ci0KICAgICAg
ICAgaWYgKCFnZW9tZXRyeS5kZXN0UmVjdCgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYm9v
bCBkaWRQYWludEN1c3RvbU1hc2sgPSBmYWxzZTsKICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJh
dG9yIGNvbXBvc2l0ZU9wID0gb3AgPT0gQ29tcG9zaXRlU291cmNlT3ZlciA/IGJnTGF5ZXItPmNv
bXBvc2l0ZSgpIDogb3A7CiAgICAgICAgICAgICBhdXRvIGNsaWVudEZvckJhY2tncm91bmRJbWFn
ZSA9IGJhY2tncm91bmRPYmplY3QgPyBiYWNrZ3JvdW5kT2JqZWN0IDogdGhpczsKLSAgICAgICAg
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSAoYmdJbWFnZSA/IGJnSW1hZ2UtPmltYWdlKGNsaWVu
dEZvckJhY2tncm91bmRJbWFnZSwgZ2VvbWV0cnkudGlsZVNpemUoKSkgOiBudWxscHRyKTsKLSAg
ICAgICAgICAgIGlmICghaW1hZ2UuZ2V0KCkgJiYgYmdMYXllci0+aGFzTWFza0ltYWdlKCkpCi0g
ICAgICAgICAgICAgICAgZGlkUGFpbnRDdXN0b21NYXNrID0gYmdMYXllci0+bWFza0ltYWdlKCkt
PmRyYXdNYXNrKCp0aGlzLCBnZW9tZXRyeSwgY29udGV4dCwgY29tcG9zaXRlT3ApOwotCi0gICAg
ICAgICAgICBpZiAoIWRpZFBhaW50Q3VzdG9tTWFzayAmJiBzaG91bGRQYWludEJhY2tncm91bmRJ
bWFnZSkgewotICAgICAgICAgICAgICAgIGNvbnRleHQtPnNldERyYXdMdW1pbmFuY2VNYXNrKGJn
TGF5ZXItPm1hc2tTb3VyY2VUeXBlKCkgPT0gTWFza0x1bWluYW5jZSk7Ci0gICAgICAgICAgICAg
ICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNv
bnRleHQsIGltYWdlLmdldCgpLCBiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKTsKLSAgICAg
ICAgICAgICAgICBpZiAoaW1hZ2UuZ2V0KCkpCi0gICAgICAgICAgICAgICAgICAgIGltYWdlLT5z
ZXRTcGFjZVNpemUoZ2VvbWV0cnkuc3BhY2VTaXplKCkpOwotICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgZ2Vv
bWV0cnkuZGVzdFJlY3QoKSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkp
LCBnZW9tZXRyeS50aWxlU2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwg
YmdMYXllci0+YmxlbmRNb2RlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VM
b3dRdWFsaXR5U2NhbGluZykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgUmVmUHRyPElt
YWdlPiBpbWFnZSA9IGJnSW1hZ2UtPmltYWdlKGNsaWVudEZvckJhY2tncm91bmRJbWFnZSwgZ2Vv
bWV0cnkudGlsZVNpemUoKSk7CisgICAgICAgICAgICBjb250ZXh0LT5zZXREcmF3THVtaW5hbmNl
TWFzayhiZ0xheWVyLT5tYXNrU291cmNlVHlwZSgpID09IE1hc2tMdW1pbmFuY2UpOworICAgICAg
ICAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5
KGNvbnRleHQsIGltYWdlLmdldCgpLCBiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKTsKKyAg
ICAgICAgICAgIGlmIChpbWFnZS5nZXQoKSkKKyAgICAgICAgICAgICAgICBpbWFnZS0+c2V0U3Bh
Y2VTaXplKGdlb21ldHJ5LnNwYWNlU2l6ZSgpKTsKKyAgICAgICAgICAgIGNvbnRleHQtPmRyYXdU
aWxlZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgZ2VvbWV0cnkuZGVz
dFJlY3QoKSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBnZW9tZXRy
eS50aWxlU2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwgYmdMYXllci0+
YmxlbmRNb2RlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VMb3dRdWFsaXR5
U2NhbGluZykpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKaW5kZXggZDU5Nzc4NzUxYzM3YjY0NzQ0NTFiYjNmYjY1NTE5Mjc0
ODQxZmNlNy4uMTMyY2RkZTI2NWZlNjIwODlkMjMwOWQ5ODdkNzYwZmNjYThiZjE1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMTIzLDggKzEyMyw2
IEBAIFJlbmRlckVsZW1lbnQ6On5SZW5kZXJFbGVtZW50KCkKICAgICAgICAgZm9yIChjb25zdCBG
aWxsTGF5ZXIqIG1hc2tMYXllciA9IG1fc3R5bGUtPm1hc2tMYXllcnMoKTsgbWFza0xheWVyOyBt
YXNrTGF5ZXIgPSBtYXNrTGF5ZXItPm5leHQoKSkgewogICAgICAgICAgICAgaWYgKFN0eWxlSW1h
Z2UqIG1hc2tJbWFnZSA9IG1hc2tMYXllci0+aW1hZ2UoKSkKICAgICAgICAgICAgICAgICBtYXNr
SW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1hc2tMYXll
ci0+bWFza0ltYWdlKCkuZ2V0KCkpCi0gICAgICAgICAgICAgICAgbWFza0xheWVyLT5tYXNrSW1h
Z2UoKS0+cmVtb3ZlUmVuZGVyZXJJbWFnZUNsaWVudCh0aGlzKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChTdHlsZUltYWdlKiBib3JkZXJJbWFnZSA9IG1fc3R5bGUtPmJvcmRlckltYWdlKCku
aW1hZ2UoKSkKQEAgLTMzMiwxNyArMzMwLDEzIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6dXBkYXRl
RmlsbEltYWdlcyhjb25zdCBGaWxsTGF5ZXIqIG9sZExheWVycywgY29uc3QgRmlsbExheWVyCiAg
ICAgCiAgICAgLy8gR28gdGhyb3VnaCB0aGUgbmV3IGxheWVycyBhbmQgYWRkQ2xpZW50cyBmaXJz
dCwgdG8gYXZvaWQgcmVtb3ZpbmcgYWxsIGNsaWVudHMgb2YgYW4gaW1hZ2UuCiAgICAgZm9yIChj
b25zdCBGaWxsTGF5ZXIqIGN1cnJOZXcgPSBuZXdMYXllcnM7IGN1cnJOZXc7IGN1cnJOZXcgPSBj
dXJyTmV3LT5uZXh0KCkpIHsKLSAgICAgICAgaWYgKFN0eWxlSW1hZ2UqIGltYWdlID0gY3Vyck5l
dy0+aW1hZ2UoKSkKLSAgICAgICAgICAgIGltYWdlLT5hZGRDbGllbnQodGhpcyk7Ci0gICAgICAg
IGVsc2UgaWYgKGN1cnJOZXctPm1hc2tJbWFnZSgpLmdldCgpKQotICAgICAgICAgICAgY3Vyck5l
dy0+bWFza0ltYWdlKCktPmFkZFJlbmRlcmVySW1hZ2VDbGllbnQodGhpcyk7CisgICAgICAgIGlm
IChjdXJyTmV3LT5pbWFnZSgpKQorICAgICAgICAgICAgY3Vyck5ldy0+aW1hZ2UoKS0+YWRkQ2xp
ZW50KHRoaXMpOwogICAgIH0KIAogICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBjdXJyT2xkID0g
b2xkTGF5ZXJzOyBjdXJyT2xkOyBjdXJyT2xkID0gY3Vyck9sZC0+bmV4dCgpKSB7Ci0gICAgICAg
IGlmIChTdHlsZUltYWdlKiBpbWFnZSA9IGN1cnJPbGQtPmltYWdlKCkpCi0gICAgICAgICAgICBp
bWFnZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwotICAgICAgICBlbHNlIGlmIChjdXJyT2xkLT5tYXNr
SW1hZ2UoKS5nZXQoKSkKLSAgICAgICAgICAgIGN1cnJPbGQtPm1hc2tJbWFnZSgpLT5yZW1vdmVS
ZW5kZXJlckltYWdlQ2xpZW50KHRoaXMpOworICAgICAgICBpZiAoY3Vyck9sZC0+aW1hZ2UoKSkK
KyAgICAgICAgICAgIGN1cnJPbGQtPmltYWdlKCktPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDU0YzEw
ZmNmZjdiMTM3MDVjNzFkYzJhZGVhZDMwYzdjOTIwOWU3NDYuLmUxZWUwMGM1NWE2NzBlNWU1ZTdj
NGIxOWMwNDZiY2RmNzMyMDRiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMzcwLDcgKzM3MCw2IEBAIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQog
ICAgICAgICByZW1vdmVSZWZsZWN0aW9uKCk7CiAKICAgICBGaWx0ZXJJbmZvOjpyZW1vdmUoKnRo
aXMpOwotICAgIE1hc2tJbWFnZUluZm86OnJlbW92ZSgqdGhpcyk7CiAKICAgICAvLyBDaGlsZCBs
YXllcnMgd2lsbCBiZSBkZWxldGVkIGJ5IHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVuZGVyIG9iamVj
dHMsIHNvCiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkZWxldGUgdGhlbSBvdXJzZWx2ZXMuCkBA
IC02NzEzLDcgKzY3MTIsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIHVwZGF0ZUJs
ZW5kTW9kZSgpOwogI2VuZGlmCiAgICAgdXBkYXRlT3JSZW1vdmVGaWx0ZXJDbGllbnRzKCk7Ci0g
ICAgdXBkYXRlT3JSZW1vdmVNYXNrSW1hZ2VDbGllbnRzKCk7CiAKICAgICB1cGRhdGVOZWVkc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKTsKIApAQCAtNjg2OCwxNCArNjg2Niw2IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZU9yUmVtb3ZlRmlsdGVyQ2xpZW50cygpCiAgICAgICAgIGZpbHRlckluZm8t
PnJlbW92ZVJlZmVyZW5jZUZpbHRlckNsaWVudHMoKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlT3JSZW1vdmVNYXNrSW1hZ2VDbGllbnRzKCkKLXsKLSAgICBpZiAocmVuZGVyZXIoKS5z
dHlsZSgpLm1hc2tJbWFnZSgpLmdldCgpKQotICAgICAgICBNYXNrSW1hZ2VJbmZvOjpnZXQoKnRo
aXMpLnVwZGF0ZU1hc2tJbWFnZUNsaWVudHMoKTsKLSAgICBlbHNlIGlmIChNYXNrSW1hZ2VJbmZv
KiBtYXNrSW1hZ2VJbmZvID0gTWFza0ltYWdlSW5mbzo6Z2V0SWZFeGlzdHMoKnRoaXMpKQotICAg
ICAgICBtYXNrSW1hZ2VJbmZvLT5yZW1vdmVNYXNrSW1hZ2VDbGllbnRzKCk7Ci19Ci0KIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0UmVuZGVyZXIoKQogewogICAg
IC8vIEZpbHRlckVmZmVjdFJlbmRlcmVyIGlzIG9ubHkgdXNlZCB0byByZW5kZXIgdGhlIGZpbHRl
cnMgaW4gc29mdHdhcmUgbW9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
aW5kZXggZjUyMTE4YTgzY2Y0YWYxZDFiYmJiYmJmNGI4ODJmMmUwZDU4MzlmNC4uODUzYTgxYzI5
ZjU2MmFjNzlmMTcyZjIwYTdlNjUzYTg4MGRhNmJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKQEAgLTkyMCw3ICs5MjAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1
cGRhdGVPclJlbW92ZUZpbHRlckNsaWVudHMoKTsKICAgICB2b2lkIHVwZGF0ZU9yUmVtb3ZlRmls
dGVyRWZmZWN0UmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0ZU9yUmVtb3ZlTWFza0ltYWdlQ2xp
ZW50cygpOwogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICB2b2lkIHVwZGF0ZUFu
Y2VzdG9yQ2hhaW5IYXNCbGVuZGluZ0Rlc2NlbmRhbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1hc2tJbWFnZUluZm8uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYjEwMmFjOTNhMThjNmY5MGQ2YjE2MmY4ODg3ZDVlMDg0NmRl
MWYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1hc2tJbWFnZUluZm8uY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUg
U3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YK
LSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJlbmRlckxheWVyTWFza0ltYWdlSW5mby5oIgotCi0jaW5jbHVkZSAiQ2FjaGVk
U1ZHRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJTVkdNYXNrRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRl
ckxheWVyOjpNYXNrSW1hZ2VJbmZvOjpTVkdEb2N1bWVudENsaWVudCA6IHB1YmxpYyBDYWNoZWRT
VkdEb2N1bWVudENsaWVudCB7Ci1wdWJsaWM6Ci0gICAgU1ZHRG9jdW1lbnRDbGllbnQoUmVuZGVy
TGF5ZXImIGxheWVyKQotICAgICAgICA6IG1fbGF5ZXIobGF5ZXIpCi0gICAgewotICAgIH0KLQot
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgbV9sYXllci5yZW5kZXJlcigpLnJlcGFpbnQoKTsK
LSAgICB9Ci0KLSAgICBSZW5kZXJMYXllciYgbV9sYXllcjsKLX07Ci0KLWNsYXNzIFJlbmRlckxh
eWVyOjpNYXNrSW1hZ2VJbmZvOjpJbWFnZUNsaWVudCA6IHB1YmxpYyBDYWNoZWRJbWFnZUNsaWVu
dCB7Ci1wdWJsaWM6Ci0gICAgSW1hZ2VDbGllbnQoUmVuZGVyTGF5ZXImIGxheWVyKQotICAgICAg
ICA6IG1fbGF5ZXIobGF5ZXIpCi0gICAgewotICAgIH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCopIG92ZXJyaWRl
Ci0gICAgewotICAgICAgICBtX2xheWVyLnJlbmRlcmVyKCkucmVwYWludCgpOwotICAgIH0KLQot
ICAgIFJlbmRlckxheWVyJiBtX2xheWVyOwotfTsKLQotSGFzaE1hcDxjb25zdCBSZW5kZXJMYXll
ciosIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJMYXllcjo6TWFza0ltYWdlSW5mbz4+JiBSZW5kZXJM
YXllcjo6TWFza0ltYWdlSW5mbzo6bGF5ZXJUb01hc2tNYXAoKQotewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgc3RkOjp1bmlxdWVfcHRyPE1h
c2tJbWFnZUluZm8+Pj4gbGF5ZXJUb01hc2tNYXA7Ci0gICAgcmV0dXJuIGxheWVyVG9NYXNrTWFw
OwotfQotCi1SZW5kZXJMYXllcjo6TWFza0ltYWdlSW5mbyogUmVuZGVyTGF5ZXI6Ok1hc2tJbWFn
ZUluZm86OmdldElmRXhpc3RzKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikKLXsKLSAgICBBU1NF
UlQobGF5ZXIubV9oYXNNYXNrSW1hZ2VJbmZvID09IGxheWVyVG9NYXNrTWFwKCkuY29udGFpbnMo
JmxheWVyKSk7Ci0gICAgcmV0dXJuIGxheWVyLm1faGFzTWFza0ltYWdlSW5mbyA/IGxheWVyVG9N
YXNrTWFwKCkuZ2V0KCZsYXllcikgOiBudWxscHRyOwotfQotCi1SZW5kZXJMYXllcjo6TWFza0lt
YWdlSW5mbyYgUmVuZGVyTGF5ZXI6Ok1hc2tJbWFnZUluZm86OmdldChSZW5kZXJMYXllciYgbGF5
ZXIpCi17Ci0gICAgQVNTRVJUKGxheWVyLm1faGFzTWFza0ltYWdlSW5mbyA9PSBsYXllclRvTWFz
a01hcCgpLmNvbnRhaW5zKCZsYXllcikpOwotCi0gICAgYXV0byYgaW5mbyA9IGxheWVyVG9NYXNr
TWFwKCkuYWRkKCZsYXllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwotICAgIGlmICghaW5m
bykgewotICAgICAgICBpbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxNYXNrSW1hZ2VJbmZvPihsYXll
cik7Ci0gICAgICAgIGxheWVyLm1faGFzTWFza0ltYWdlSW5mbyA9IHRydWU7Ci0gICAgfQotICAg
IHJldHVybiAqaW5mbzsKLX0KLQotdm9pZCBSZW5kZXJMYXllcjo6TWFza0ltYWdlSW5mbzo6cmVt
b3ZlKFJlbmRlckxheWVyJiBsYXllcikKLXsKLSAgICBBU1NFUlQobGF5ZXIubV9oYXNNYXNrSW1h
Z2VJbmZvID09IGxheWVyVG9NYXNrTWFwKCkuY29udGFpbnMoJmxheWVyKSk7Ci0KLSAgICBpZiAo
bGF5ZXJUb01hc2tNYXAoKS5yZW1vdmUoJmxheWVyKSkKLSAgICAgICAgbGF5ZXIubV9oYXNNYXNr
SW1hZ2VJbmZvID0gZmFsc2U7Ci19Ci0KLVJlbmRlckxheWVyOjpNYXNrSW1hZ2VJbmZvOjpNYXNr
SW1hZ2VJbmZvKFJlbmRlckxheWVyJiBsYXllcikKLSAgICA6IG1fbGF5ZXIobGF5ZXIpCi0gICAg
LCBtX3N2Z0RvY3VtZW50Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8U1ZHRG9jdW1lbnRDbGllbnQ+
KGxheWVyKSkKLSAgICAsIG1faW1hZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxJbWFnZUNsaWVu
dD4obGF5ZXIpKQotewotfQotCi1SZW5kZXJMYXllcjo6TWFza0ltYWdlSW5mbzo6fk1hc2tJbWFn
ZUluZm8oKQotewotICAgIHJlbW92ZU1hc2tJbWFnZUNsaWVudHMoKTsKLX0KLQotdm9pZCBSZW5k
ZXJMYXllcjo6TWFza0ltYWdlSW5mbzo6dXBkYXRlTWFza0ltYWdlQ2xpZW50cygpCi17Ci0gICAg
cmVtb3ZlTWFza0ltYWdlQ2xpZW50cygpOwotICAgIAotICAgIGZvciAoYXV0byogbWFza0xheWVy
ID0gbV9sYXllci5yZW5kZXJlcigpLnN0eWxlKCkubWFza0xheWVycygpOyBtYXNrTGF5ZXI7IG1h
c2tMYXllciA9IG1hc2tMYXllci0+bmV4dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxNYXNrSW1hZ2VP
cGVyYXRpb24+IG1hc2tJbWFnZSA9IG1hc2tMYXllci0+bWFza0ltYWdlKCk7Ci0gICAgICAgIG1h
c2tJbWFnZS0+c2V0UmVuZGVyTGF5ZXJJbWFnZUNsaWVudChtX2ltYWdlQ2xpZW50LmdldCgpKTsK
LSAgICAgICAgbV9tYXNrSW1hZ2VPcGVyYXRpb25zLmFwcGVuZChtYXNrSW1hZ2UpOwotCi0gICAg
ICAgIENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKiBkb2N1bWVudFJlZmVyZW5jZSA9IG1hc2tJ
bWFnZS0+Y2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UoKTsKLSAgICAgICAgQ2FjaGVkU1ZHRG9j
dW1lbnQqIGNhY2hlZFNWR0RvY3VtZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UgPyBkb2N1bWVudFJl
ZmVyZW5jZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7Ci0gICAgICAgIAotICAgICAgICBpZiAoY2Fj
aGVkU1ZHRG9jdW1lbnQpIHsKLSAgICAgICAgICAgIC8vIFJlZmVyZW5jZSBpcyBleHRlcm5hbDsg
d2FpdCBmb3Igbm90aWZ5RmluaXNoZWQgYW5kIHRoZW4gcmVwYWludC4KLSAgICAgICAgICAgIGNh
Y2hlZFNWR0RvY3VtZW50LT5hZGRDbGllbnQobV9zdmdEb2N1bWVudENsaWVudC5nZXQoKSk7Ci0g
ICAgICAgICAgICBtX2V4dGVybmFsU1ZHUmVmZXJlbmNlcy5hcHBlbmQoY2FjaGVkU1ZHRG9jdW1l
bnQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gUmVmZXJlbmNlIGlzIGludGVy
bmFsOyBhZGQgbGF5ZXIgYXMgYSBjbGllbnQgc28gd2UgY2FuIHRyaWdnZXIgbWFzayByZXBhaW50
IG9uIFNWRyBhdHRyaWJ1dGUgY2hhbmdlLgotICAgICAgICAgICAgRWxlbWVudCogbWFza2VyID0g
bV9sYXllci5yZW5kZXJlcigpLmRvY3VtZW50KCkuZ2V0RWxlbWVudEJ5SWQobWFza0ltYWdlLT5m
cmFnbWVudCgpKTsKLSAgICAgICAgICAgIGlmIChpczxTVkdNYXNrRWxlbWVudD4obWFza2VyKSkg
ewotICAgICAgICAgICAgICAgIGRvd25jYXN0PFNWR01hc2tFbGVtZW50PigqbWFza2VyKS5hZGRD
bGllbnRSZW5kZXJMYXllcigmbV9sYXllcik7Ci0gICAgICAgICAgICAgICAgbV9pbnRlcm5hbFNW
R1JlZmVyZW5jZXMuYXBwZW5kKG1hc2tlcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXI6Ok1hc2tJbWFnZUluZm86OnJlbW92ZU1hc2tJbWFn
ZUNsaWVudHMoKQotewotICAgIGZvciAoYXV0byYgbWFza0ltYWdlIDogbV9tYXNrSW1hZ2VPcGVy
YXRpb25zKQotICAgICAgICBtYXNrSW1hZ2UtPnNldFJlbmRlckxheWVySW1hZ2VDbGllbnQobnVs
bHB0cik7Ci0gICAgbV9tYXNrSW1hZ2VPcGVyYXRpb25zLmNsZWFyKCk7Ci0KLSAgICBmb3IgKGF1
dG8mIGV4dGVybmFsU1ZHUmVmZXJlbmNlIDogbV9leHRlcm5hbFNWR1JlZmVyZW5jZXMpCi0gICAg
ICAgIGV4dGVybmFsU1ZHUmVmZXJlbmNlLT5yZW1vdmVDbGllbnQobV9zdmdEb2N1bWVudENsaWVu
dC5nZXQoKSk7Ci0gICAgbV9leHRlcm5hbFNWR1JlZmVyZW5jZXMuY2xlYXIoKTsKLSAgICAKLSAg
ICBmb3IgKGF1dG8mIGludGVybmFsU1ZHUmVmZXJlbmNlIDogbV9pbnRlcm5hbFNWR1JlZmVyZW5j
ZXMpCi0gICAgICAgIGRvd25jYXN0PFNWR01hc2tFbGVtZW50PihpbnRlcm5hbFNWR1JlZmVyZW5j
ZS5nZXQoKSktPnJlbW92ZUNsaWVudFJlbmRlckxheWVyKCZtX2xheWVyKTsKLSAgICBtX2ludGVy
bmFsU1ZHUmVmZXJlbmNlcy5jbGVhcigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggMDMwOTg2M2Rh
ZTYwZTc4ZTc2OTRiMTY5ZTY2YmJjZTVmMTljYzgwNC4uYzVlMTA2ZDg3NTVlNDY5OWY1MTNiNDhk
NDYxZTZlZmFhOTljYmFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaApAQCAtNjgsOCArNjgsOSBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRmlsbExheWVy
KEVGaWxsTGF5ZXJUeXBlKTsKICAgICB+RmlsbExheWVyKCk7CiAKLSAgICBTdHlsZUltYWdlKiBp
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIGhhc01hc2tJbWFnZSgpID8gbWFza0ltYWdlKCktPmltYWdl
KCkgOiBtX2ltYWdlLmdldCgpOyB9CiAgICAgY29uc3QgUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlv
bj4mIG1hc2tJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza0ltYWdlT3BlcmF0aW9uOyB9Cisg
ICAgU3R5bGVJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9Cisg
ICAgU3R5bGVJbWFnZSogaW1hZ2VPck1hc2tJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGhhc01hc2tJ
bWFnZSgpID8gbWFza0ltYWdlKCktPmltYWdlKCkgOiBpbWFnZSgpOyB9CiAgICAgY29uc3QgTGVu
Z3RoJiB4UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3hQb3NpdGlvbjsgfQogICAgIGNvbnN0
IExlbmd0aCYgeVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV95UG9zaXRpb247IH0KICAgICBC
YWNrZ3JvdW5kRWRnZU9yaWdpbiBiYWNrZ3JvdW5kWE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEJhY2tncm91bmRFZGdlT3JpZ2luPihtX2JhY2tncm91bmRYT3JpZ2luKTsgfQpA
QCAtMTgxLDggKzE4Miw2IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsbExh
eWVyPiBtX25leHQ7CiAKLSAgICAvLyBGSVhNRTogQSBGaWxsTGF5ZXIgd2lsbCBhbHdheXMgaGF2
ZSBhdCBsZWFzdCBvbmUgb2YgdGhlc2UgcG9pbnRlcnMgbnVsbC4KLSAgICAvLyBNYXliZSB3ZSBj
b3VsZCBncm91cCB0aGVtIHRvZ2V0aGVyIHNvbWVob3cgYW5kIGRlY3JlYXNlIHRoZSBzaXplIG9m
IEZpbGxMYXllci4KICAgICBSZWZQdHI8TWFza0ltYWdlT3BlcmF0aW9uPiBtX21hc2tJbWFnZU9w
ZXJhdGlvbjsKICAgICBSZWZQdHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNDdmZWU4OTUxY2M4
NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMS4uY2MwNmE0OTQ3YmY1ZDI2NWMxNTg5MmQzYzFi
ODFkNDMzMmM4NTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC04OTUsMjggKzg5NSw2IEBAIGJvb2wgUmVuZGVyU3R5bGU6OmRpZmZS
ZXF1aXJlc0xheWVyUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wgaXNDb21w
CiAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0gICAgCi12b2lkIFJlbmRlclN0eWxlOjpzZXRNYXNr
SW1hZ2UoY29uc3QgVmVjdG9yPFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+PiYgb3BzKQotewot
ICAgIEZpbGxMYXllciogY3VyTGF5ZXIgPSAmcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fbWFzazsKLSAgICB3aGlsZSAoY3VyTGF5ZXIpIHsKLSAgICAgICAgY3VyTGF5ZXItPnNldE1h
c2tJbWFnZShudWxscHRyKTsKLSAgICAgICAgY3VyTGF5ZXIgPSBjdXJMYXllci0+bmV4dCgpOwot
ICAgIH0KLQotICAgIGN1ckxheWVyID0gJnJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5t
X21hc2s7Ci0gICAgRmlsbExheWVyKiBwcmV2TGF5ZXIgPSBudWxscHRyOwotICAgIGZvciAoYXV0
byYgbWFza0ltYWdlIDogb3BzKSB7Ci0gICAgICAgIGlmICghY3VyTGF5ZXIpIHsKLSAgICAgICAg
ICAgIHByZXZMYXllci0+c2V0TmV4dChzdGQ6Om1ha2VfdW5pcXVlPEZpbGxMYXllcj4oTWFza0Zp
bGxMYXllcikpOwotICAgICAgICAgICAgY3VyTGF5ZXIgPSBwcmV2TGF5ZXItPm5leHQoKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGN1ckxheWVyLT5zZXRNYXNrSW1hZ2UobWFza0ltYWdlKTsKLSAg
ICAgICAgcHJldkxheWVyID0gY3VyTGF5ZXI7Ci0gICAgICAgIGN1ckxheWVyID0gY3VyTGF5ZXIt
Pm5leHQoKTsKLSAgICB9Ci19CiAKIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXAoTGVuZ3RoIHRv
cCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggYTM2OWYzMDg0ZmVh
OWU0Zjk5Yjg5ZDk2NmRjMDQxYTFiOGJmYWVmZS4uY2NjNTMyMjBlNTAzNzhkMDBlMmFhZTQ0MTE3
N2EyYzNlYzk5YmY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKQEAgLTEwNyw3ICsxMDcsNiBAQCBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwogY2xh
c3MgRm9udENhc2NhZGU7CiBjbGFzcyBGb250TWV0cmljczsKIGNsYXNzIEludFJlY3Q7Ci1jbGFz
cyBNYXNrSW1hZ2VPcGVyYXRpb247CiBjbGFzcyBQYWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNs
YXNzIFN0eWxlSW1hZ2U7CkBAIC04MDksNiArODA4LDcgQEAgcHVibGljOgogICAgIEZpbGxMYXll
ciYgZW5zdXJlQmFja2dyb3VuZExheWVycygpIHsgcmV0dXJuIG1fYmFja2dyb3VuZC5hY2Nlc3Mo
KS0+bV9iYWNrZ3JvdW5kOyB9CiAgICAgY29uc3QgRmlsbExheWVyKiBiYWNrZ3JvdW5kTGF5ZXJz
KCkgY29uc3QgeyByZXR1cm4gJihtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKSk7IH0KIAorICAg
IFN0eWxlSW1hZ2UqIG1hc2tJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX21hc2suaW1hZ2UoKTsgfQogICAgIEVGaWxsUmVwZWF0IG1hc2tSZXBlYXRYKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxSZXBlYXQ+KHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX21hc2sucmVwZWF0WCgpKTsgfQogICAgIEVGaWxsUmVwZWF0IG1hc2tSZXBlYXRZKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxSZXBlYXQ+KHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX21hc2sucmVwZWF0WSgpKTsgfQogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1hc2tDb21wb3Np
dGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb21wb3NpdGVPcGVyYXRvcj4ocmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fbWFzay5jb21wb3NpdGUoKSk7IH0KQEAgLTEwNDksNyArMTA0OSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJ
bmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHNldFBhZ2VTY2FsZVRyYW5z
Zm9ybShmbG9hdCk7CiAKLSAgICBib29sIGhhc01hc2soKSBjb25zdCB7IHJldHVybiByYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9tYXNrLmhhc05vbkVtcHR5TWFza0ltYWdlKCkgfHwgcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fbWFzay5oYXNJbWFnZSgpIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X21hc2tCb3hJbWFnZS5oYXNJbWFnZSgpOyB9CisgICAgYm9vbCBoYXNNYXNrKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5oYXNJbWFnZSgpIHx8IHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX21hc2tCb3hJbWFnZS5oYXNJbWFnZSgpOyB9CiAKICAgICBUZXh0Q29t
YmluZSB0ZXh0Q29tYmluZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRDb21iaW5l
PihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90ZXh0Q29tYmluZSk7IH0KICAgICBib29sIGhhc1Rl
eHRDb21iaW5lKCkgY29uc3QgeyByZXR1cm4gdGV4dENvbWJpbmUoKSAhPSBUZXh0Q29tYmluZU5v
bmU7IH0KQEAgLTExNTUsOSArMTE1NSw2IEBAIHB1YmxpYzoKICAgICBGaWx0ZXJPcGVyYXRpb25z
JiBtdXRhYmxlRmlsdGVyKCkgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZmlsdGVyLmFjY2VzcygpLT5tX29wZXJhdGlvbnM7IH0KICAgICBjb25zdCBGaWx0ZXJPcGVy
YXRpb25zJiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9m
aWx0ZXItPm1fb3BlcmF0aW9uczsgfQogICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1
cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVyYXRpb25zLm9wZXJhdGlv
bnMoKS5pc0VtcHR5KCk7IH0KLSAgICAKLSAgICBSZWZQdHI8TWFza0ltYWdlT3BlcmF0aW9uPiYg
bXV0YWJsZU1hc2tJbWFnZSgpIHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5tX21hc2subV9tYXNrSW1hZ2VPcGVyYXRpb247IH0KLSAgICBjb25zdCBSZWZQdHI8TWFza0lt
YWdlT3BlcmF0aW9uPiBtYXNrSW1hZ2UoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9tYXNrLm1hc2tJbWFnZSgpOyB9CiAKICNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8y
KQogICAgIEZpbHRlck9wZXJhdGlvbnMmIG11dGFibGVCYWNrZHJvcEZpbHRlcigpIHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2JhY2tkcm9wRmlsdGVyLmFjY2Vzcygp
LT5tX29wZXJhdGlvbnM7IH0KQEAgLTE0MTMsNiArMTQxMCw4IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIHZvaWQgc2V0TWFza0ltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
dikgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrLnNldEltYWdlKHYpOyB9
CisKICAgICB2b2lkIHNldE1hc2tCb3hJbWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgYikgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2tCb3hJbWFnZSwgYik7IH0KICAgICB2
b2lkIHNldE1hc2tCb3hJbWFnZVNvdXJjZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IHYpIHsgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFza0JveEltYWdlLnNldEltYWdlKHYpOyB9
CiAgICAgdm9pZCBzZXRNYXNrWFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9uLCBXVEY6Om1vdmUobGVuZ3RoKSk7
IH0KQEAgLTE2MTgsOSArMTYxNyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhY2tkcm9wRmls
dGVyKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG9wcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0
ZWREYXRhLmFjY2VzcygpLT5tX2JhY2tkcm9wRmlsdGVyLCBtX29wZXJhdGlvbnMsIG9wcyk7IH0K
ICNlbmRpZgogCi0gICAgdm9pZCBzZXRNYXNrSW1hZ2UoY29uc3QgVmVjdG9yPFJlZlB0cjxNYXNr
SW1hZ2VPcGVyYXRpb24+PiYpOwotICAgIHZvaWQgc2V0TWFza0ltYWdlKGNvbnN0IFJlZlB0cjxN
YXNrSW1hZ2VPcGVyYXRpb24+IG1hc2tJbWFnZSkgeyBWZWN0b3I8UmVmUHRyPE1hc2tJbWFnZU9w
ZXJhdGlvbj4+IHZlY3RNYXNrOyB2ZWN0TWFzay5hcHBlbmQobWFza0ltYWdlKTsgc2V0TWFza0lt
YWdlKHZlY3RNYXNrKTsgfQotCiAgICAgdm9pZCBzZXRUYWJTaXplKHVuc2lnbmVkIHNpemUpIHsg
U0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90YWJTaXplLCBzaXplKTsgfQogCiAgICAgLy8g
RW5kIENTUzMgU2V0dGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2NjQ0MjBkOTY4YWQyNmRiNDljYThmMzlhYjIxMTA5
MDU2NTczMjQuLjA2Y2YwZjQwNGI2ZTI3Yzc3MWNkN2MzZjIzNTY3NzUyOGJjYTI3ODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1NSBAQAorMjAxNS0wNy0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZlcnQgdXNlIG9mIFNWRyA8bWFzaz4gZWxlbWVudHMg
Zm9yIC13ZWJraXQtbWFzay1pbWFnZSAocjE3Njc5OCwgcjE3NzQ5NCwgcjE4NjE4MCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY1MworICAgICAg
ICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMg
cmRhcjovL3Byb2JsZW0vMjE0MzUyMzMuCisKKyAgICAgICAgcjE3NzQ5NCBjYXVzZWQgYSBudW1i
ZXIgb2YgcmVncmVzc2lvbnMgKGJ1Z3MgMTQxODU3LCAxNDY1MDksIDE0NjU2MSksIGFkZGVkIG5l
dyBsYXllcmluZyB2aW9sYXRpb25zLCBhbmQKKyAgICAgICAgd2FzIG5vdCBiZWluZyBtYWludGFp
bmVkLCBzbyByZXZlcnQgaXQuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZlcnRzIHIxNzc0OTQu
CisKKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1iYXNlNjQtZXhwZWN0ZWQuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1iYXNlNjQuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1tdWx0aXBsZS12YWx1ZXMtZXhwZWN0ZWQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1tdWx0aXBsZS12YWx1ZXMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3BhY2Ut
cGFkZGluZy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXJlcGVh
dC1zcGFjZS1wYWRkaW5nLmh0bWw6CisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2stc3ZnLWNs
aXBwZWQtZnJhZ21lbnRJZC1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMv
bWFza2luZy9tYXNrLXN2Zy1jbGlwcGVkLWZyYWdtZW50SWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjc3MzL21hc2tpbmcvbWFzay1zdmctZnJhZ21lbnRJZC1leHBlY3RlZC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1mcmFnbWVudElkLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2stc3ZnLWlubGluZS1mcmFnbWVudElk
LWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2stc3Zn
LWlubGluZS1mcmFnbWVudElkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5n
L21hc2stc3ZnLWlubGluZS1pbnZhbGlkLWZyYWdtZW50SWQtZXhwZWN0ZWQuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1zdmctaW5saW5lLWludmFsaWQtZnJhZ21l
bnRJZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1pbnZh
bGlkLWZyYWdtZW50SWQtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL21h
c2tpbmcvbWFzay1zdmctaW52YWxpZC1mcmFnbWVudElkLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogY3NzMy9tYXNraW5nL21hc2stc3ZnLW5vLWZyYWdtZW50SWQtZXhwZWN0ZWQuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1zdmctbm8tZnJhZ21lbnRJZC10aWxl
ZC1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2
Zy1uby1mcmFnbWVudElkLXRpbGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNr
aW5nL21hc2stc3ZnLW5vLWZyYWdtZW50SWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3Mz
L21hc2tpbmcvbWFzay1zdmctc2NyaXB0LWVudGlyZS1zdmctdG8tbWFzay1leHBlY3RlZC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtZW50aXJl
LXN2Zy10by1tYXNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2st
c3ZnLXNjcmlwdC1tYXNrLXRvLWVudGlyZS1zdmctZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2stdG8tZW50aXJlLXN2Zy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtbWFz
ay10by1ub25lLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5n
L21hc2stc3ZnLXNjcmlwdC1tYXNrLXRvLW5vbmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
c3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2stdG8tcG5nLWV4cGVjdGVkLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1tYXNrLXRvLXBu
Zy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQt
bm9uZS10by1tYXNrLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNr
aW5nL21hc2stc3ZnLXNjcmlwdC1ub25lLXRvLW1hc2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW5vbmUtdG8tcG5nLWV4cGVjdGVkLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1ub25lLXRv
LXBuZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1zY3Jp
cHQtcG5nLXRvLW1hc2stZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL21h
c2tpbmcvbWFzay1zdmctc2NyaXB0LXBuZy10by1tYXNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1wbmctdG8tbm9uZS1leHBlY3RlZC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtcG5nLXRv
LW5vbmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL21hc2tpbmcvcmVzb3VyY2VzL21h
c2tzLnN2ZzogUmVtb3ZlZC4KKwogMjAxNS0wNy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5m
YWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFByb21pc2UtcmV0dXJuaW5nIGZ1bmN0aW9u
cyBzaG91bGQgcmVqZWN0IHByb21pc2VzIGlmIHRoZSBjYWxsZWUgaXMgbm90IG9mIHRoZSBleHBl
Y3RlZCB0eXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1tdWx0
aXBsZS12YWx1ZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNr
LW11bHRpcGxlLXZhbHVlcy1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3YTFiNjJiMDdlZDVjZWQzMWQwZjNiZDVlMjE5NDFlZjEzNjM5YjU4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFz
a2luZy9tYXNrLW11bHRpcGxlLXZhbHVlcy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci0gICAgPGhl
YWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1h
cmdpbjogMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI2JhY2sgewotICAgICAgICAg
ICAgICAgIHdpZHRoOiA1MDBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwMHB4OwotICAg
ICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgLmZyb250IHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogMzAw
cHg7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Ci0gICAgICAgICAg
ICAgICAgYm9yZGVyOiA1MHB4IHNvbGlkIGJsdWU7Ci0gICAgICAgICAgICAgICAgcGFkZGluZzog
NTBweDsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7Ci0g
ICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLW9yaWdpbjogY29udGVudC1ib3g7Ci0gICAgICAg
ICAgICAgICAgLXdlYmtpdC1tYXNrLWNsaXA6IGJvcmRlci1ib3g7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAjZnJvbnQxIHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6
IHVybCgncmVzb3VyY2VzL2NpcmNsZS5wbmcnKTsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1h
c2stc2l6ZTogMTUwcHggMTIwcHg7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0
aW9uOiAtMTIwcHggLTExMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI2Zyb250MiB7
Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9tYXNr
cy5zdmcjbG93ZXJIYWxmJyk7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6IDMw
MHB4IDI0MHB4OwotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogNTBweCAw
cHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjZnJvbnQzIHsKLSAgICAgICAgICAgICAg
ICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgncmVzb3VyY2VzL21hc2tzLnN2ZyN1cHBlckhhbGYn
KTsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stc2l6ZTogMzAwcHggMjQwcHg7Ci0gICAg
ICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiA1MHB4IDBweDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICNmcm9udDQgewotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvbWFza3Muc3ZnI2ludmFsaWRJZCcpOwotICAgICAgICAgICAg
ICAgIC13ZWJraXQtbWFzay1zaXplOiAyMjVweCAxODBweDsKLSAgICAgICAgICAgICAgICAtd2Vi
a2l0LW1hc2stcG9zaXRpb246IDE2MHB4IDIyMHB4OwotICAgICAgICAgICAgfQotICAgICAgICA8
L3N0eWxlPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5Njgy
PC9hPiAtIFRoaXMgdGVzdCB1c2VzIG11bHRpcGxlIG1hc2tzIGZyb20gbXVsdGlwbGUgcmVzb3Vy
Y2VzLjwvcD4KLSAgICAgICAgPGRpdiBpZD0iYmFjayI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz
PSJmcm9udCIgaWQ9ImZyb250MSI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJmcm9u
dCIgaWQ9ImZyb250MiI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJmcm9udCIgaWQ9
ImZyb250MyI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJmcm9udCIgaWQ9ImZyb250
NCI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stbXVsdGlwbGUtdmFsdWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1tdWx0aXBsZS12YWx1ZXMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQyZDY3NTBmYzBmNDA2ZjZlNTE0ZTMyMjJjZmI0
NWIyODRiNDk2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1tdWx0aXBsZS12YWx1ZXMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0i
ZW4iPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBwIHsKLSAgICAg
ICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNiYWNr
IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0
OiA1MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICNmcm9udCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDMw
MHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7Ci0gICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmxhY2s7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiA1MHB4IHNvbGlk
IGJsdWU7Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogNTBweDsKLSAgICAgICAgICAgICAgICAt
d2Via2l0LW1hc2staW1hZ2U6IHVybCgncmVzb3VyY2VzL2NpcmNsZS5wbmcnKSwgdXJsKCdyZXNv
dXJjZXMvbWFza3Muc3ZnI2xvd2VySGFsZicpLCB1cmwoJ3Jlc291cmNlcy9tYXNrcy5zdmcjdXBw
ZXJIYWxmJyksIHVybCgncmVzb3VyY2VzL21hc2tzLnN2ZyNpbnZhbGlkSWQnKTsKLSAgICAgICAg
ICAgICAgICAtd2Via2l0LW1hc2stc2l6ZTogMTUwcHggMTIwcHgsIDMwMHB4IDI0MHB4LCAzMDBw
eCAyNDBweCwgMjI1cHggMTgwcHg7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0
aW9uOiAtMTIwcHggLTExMHB4LCA1MHB4IDBweCwgNTBweCAwcHgsIDE2MHB4IDIyMHB4OwotICAg
ICAgICAgICAgICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDsKLSAgICAgICAgICAg
ICAgICAtd2Via2l0LW1hc2stb3JpZ2luOiBjb250ZW50LWJveDsKLSAgICAgICAgICAgICAgICAt
d2Via2l0LW1hc2stY2xpcDogYm9yZGVyLWJveDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgPC9z
dHlsZT4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4Mjwv
YT4gLSBUaGlzIHRlc3QgdXNlcyBtdWx0aXBsZSBtYXNrcyBmcm9tIG11bHRpcGxlIHJlc291cmNl
cy48L3A+Ci0gICAgICAgIDxkaXYgaWQ9ImJhY2siPgotICAgICAgICAgICAgPGRpdiBpZD0iZnJv
bnQiPjwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXJlcGVhdC1zcGFjZS1wYWRkaW5n
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3Bh
Y2UtcGFkZGluZy1leHBlY3RlZC5odG1sCmluZGV4IDNjY2UxMzgyZDMyYjJiYmFmMGQ5YjdhNjEx
YTUzNzM5MGI4NjJjOTguLjJiZTk4MzZlY2U4NDE5OGM0MTJiYTAyYmZkMTc0ZTlkNTIwNmI2NjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXJlcGVhdC1zcGFjZS1w
YWRkaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2st
cmVwZWF0LXNwYWNlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMjYsNyArMjYsNyBAQAogICAg
ICAgICAgICAgZnVuY3Rpb24gYWRkTWFza3MoKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIg
eCA9IDA7IHggPCB3aWR0aDsgeCArPSBzaXplWCArIHNwYWNlWCkgewogICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgeSArPSBzaXplWSArIHNwYWNlWSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgdXJscy5wdXNoKCJ1cmwocmVzb3VyY2VzL2NpcmNsZS5z
dmcpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB1cmxzLnB1c2goInVybChyZXNvdXJjZXMv
Y2lyY2xlLnBuZykiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUucHVzaChzaXplWCAr
ICJweCAiICsgc2l6ZVkgKyAicHgiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9u
LnB1c2goeCArICJweCAiICsgeSArICJweCIpOwogICAgICAgICAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3BhY2UtcGFkZGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stcmVwZWF0LXNwYWNlLXBhZGRp
bmcuaHRtbAppbmRleCBlMWM0ODBhODY5ZDc0M2Q5M2Q4NmMyNTllMWNiMTdhMDhmODI3MjhlLi5l
MWM2ZDNiYWM4OWRmYTM0MjUwNDMyMWM1YTA0ODdmMmViY2FlYmMxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3BhY2UtcGFkZGluZy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXJlcGVhdC1zcGFjZS1wYWRkaW5nLmh0bWwK
QEAgLTEzLDcgKzEzLDcgQEAKICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CiAgICAgICAgICAgICAgICAgYm9yZGVyOiA1MHB4IHNvbGlkIGJsdWU7CiAgICAgICAgICAgICAg
ICAgcGFkZGluZzogNTBweDsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVy
bCgicmVzb3VyY2VzL2NpcmNsZS5zdmciKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2st
aW1hZ2U6IHVybCgicmVzb3VyY2VzL2NpcmNsZS5wbmciKTsKICAgICAgICAgICAgICAgICAtd2Vi
a2l0LW1hc2stc2l6ZTogMTAwcHg7CiAgICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXJlcGVh
dDogc3BhY2U7CiAgICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLW9yaWdpbjogcGFkZGluZy1i
b3g7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctY2xpcHBl
ZC1mcmFnbWVudElkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFz
ay1zdmctY2xpcHBlZC1mcmFnbWVudElkLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM3ZDliODMwMmZiMmQ1NTE3YjI4N2Q1YmQwNDA0OTEyZThjYzIyZDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
Y3NzMy9tYXNraW5nL21hc2stc3ZnLWNsaXBwZWQtZnJhZ21lbnRJZC1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5n
PSJlbiI+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAg
ICAgICAgICAgICAgIG1hcmdpbjogMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI2Jh
Y2sgewotICAgICAgICAgICAgICAgIHdpZHRoOiAzMjBweDsKLSAgICAgICAgICAgICAgICBoZWln
aHQ6IDQyMHB4OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotICAg
ICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAjYmxhY2tTVkcgewotICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAg
ICAgICAgICAgICBsZWZ0OiA2MHB4OwotICAgICAgICAgICAgICAgIHRvcDogLTM1cHg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAjYmx1ZVNWRyB7Ci0gICAgICAgICAgICAgICAgcG9zaXRp
b246IHJlbGF0aXZlOwotICAgICAgICAgICAgICAgIGxlZnQ6IDcwcHg7Ci0gICAgICAgICAgICAg
ICAgdG9wOiAtNDc0cHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9o
ZWFkPgotCi0gICAgPGJvZHk+Ci0gICAgICAgIAotICAgICAgICA8cD48YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAt
IFRoaXMgdGVzdCB1c2VkIGEgJmx0O21hc2smZ3Q7IGVsZW1lbnQgYW5kIHBhaW50cyBpdCBhdCB0
aGUgc2lkZSBvZiB0aGUgbWFza2VkIGVsZW1lbnQsIGNhdXNpbmcgaXQgdG8gYmUgY2xpcHBlZC48
L3A+Ci0gICAgICAgIDxkaXYgaWQ9ImJhY2siPgotICAgICAgICAgICAgPHN2ZyBpZD0iYmxhY2tT
VkciIHdpZHRoPSIzMjBweCIgaGVpZ2h0PSI0MjBweCI+Ci0gICAgICAgICAgICAgICAgPHBhdGgg
ZmlsbD0iYmxhY2siIGQ9Ik04MCwyMCBMMjgwLDIwIEwyODAsMzgwIEwyNDAsMzgwIEwyNDAsNjAg
TDgwLDYwIEw4MCwyMCIvPgotICAgICAgICAgICAgPC9zdmc+Ci0gICAgICAgICAgICA8c3ZnIGlk
PSJibHVlU1ZHIiB3aWR0aD0iMzIwcHgiIGhlaWdodD0iNDIwcHgiPgotICAgICAgICAgICAgICAg
IDxwYXRoIGZpbGw9ImJsdWUiIGQ9Ik03MCwyMCBMMjgwLDIwIEwyODAsMzk1IEwyNDAsMzk1IEwy
NDAsNjAgTDcwLDYwIEw3MCwyMCIvPgotICAgICAgICAgICAgPC9zdmc+Ci0gICAgICAgIDwvZGl2
PgotICAgIDwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9t
YXNraW5nL21hc2stc3ZnLWNsaXBwZWQtZnJhZ21lbnRJZC5odG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9tYXNraW5nL21hc2stc3ZnLWNsaXBwZWQtZnJhZ21lbnRJZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYWIwOTQxM2E0NzAyNWIxMTYzZDE1YWY0OTkwNmYwNzNhYTQ5ODIx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1jbGlwcGVkLWZyYWdtZW50SWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0iZW4i
PgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBwIHsKLSAgICAgICAg
ICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNiYWNrIHsK
LSAgICAgICAgICAgICAgICB3aWR0aDogMzIwcHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiA0
MjBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICNmcm9udCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4
OwotICAgICAgICAgICAgICAgIGhlaWdodDogNDAwcHg7Ci0gICAgICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJs
dWU7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9t
YXNrcy5zdmcjdXBwZXJIYWxmJyk7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6
IDMyMHB4IDQyMHB4OwotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogNTBw
eCAtNDVweDsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7
Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLW9yaWdpbjogY29udGVudC1ib3g7Ci0gICAg
ICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWNsaXA6IGJvcmRlci1ib3g7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci0gICAgICAgIDxw
PjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2ODIi
PkJ1ZyAxMjk2ODI8L2E+IC0gVGhpcyB0ZXN0IHVzZWQgYSAmbHQ7bWFzayZndDsgZWxlbWVudCBh
bmQgcGFpbnRzIGl0IGF0IHRoZSBzaWRlIG9mIHRoZSBtYXNrZWQgZWxlbWVudCwgY2F1c2luZyBp
dCB0byBiZSBjbGlwcGVkLjwvcD4KLSAgICAgICAgPGRpdiBpZD0iYmFjayI+Ci0gICAgICAgICAg
ICA8ZGl2IGlkPSJmcm9udCI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvYm9keT4KLTwv
aHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWZy
YWdtZW50SWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2
Zy1mcmFnbWVudElkLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVhMTcwY2Q0NzM5MTkwYTVjNmRiNzg5NjdlM2IxMWY5YzI1YjcxMjguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5n
L21hc2stc3ZnLWZyYWdtZW50SWQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxz
dHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OwotICAg
ICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAg
ICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIGdy
ZWVuIGludmVydGVkLUwgc2hhcGUgYW5kIG5vIHJlZC48L3A+Ci0gICAgICAgIDxwPlRoaXMgdGVz
dCByZWZlcmVuY2VzIGEgJmx0O21hc2smZ3Q7IGVsZW1lbnQgZnJvbSBhbiBleHRlcm5hbCBTVkc8
L3A+Ci0gICAgICAgIDxzdmcgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQwMHB4Ij4KLSAgICAgICAg
ICAgIDxwYXRoIGZpbGw9ImdyZWVuIiBkPSJNODAsMjAgTDI4MCwyMCBMMjgwLDM4MCBMMjQwLDM4
MCBMMjQwLDYwIEw4MCw2MCBMODAsMjAiLz4KLSAgICAgICAgPC9zdmc+Ci0gICAgPC9ib2R5Pgot
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1mcmFnbWVudElkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL21hc2tpbmcvbWFzay1zdmctZnJhZ21lbnRJZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMGZkNzBlMjk3YmMzOGMyOTE5M2NlYTlhMmIwZjdjODI2MmNmNmEwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Nz
czMvbWFza2luZy9tYXNrLXN2Zy1mcmFnbWVudElkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8
c3R5bGU+Ci0gICAgICAgICAgICBwIHsKLSAgICAgICAgICAgICAgICBtYXJnaW46IDBweDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICNtYXNrZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAg
ICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAgICAgICAgICAgICAgICAtd2Via2l0
LW1hc2staW1hZ2U6dXJsKCdyZXNvdXJjZXMvbWFza3Muc3ZnI3VwcGVySGFsZicpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgI3JlZFN2ZyB7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4K
LQotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgc2VlIGEgZ3JlZW4gaW52ZXJ0ZWQtTCBzaGFwZSBhbmQgbm8gcmVkLjwvcD4KLSAg
ICAgICAgPHA+VGhpcyB0ZXN0IHJlZmVyZW5jZXMgYSAmbHQ7bWFzayZndDsgZWxlbWVudCBmcm9t
IGFuIGV4dGVybmFsIFNWRzwvcD4KLSAgICAgICAgPHN2ZyBpZD0icmVkU3ZnIiB3aWR0aD0iMzAw
cHgiIGhlaWdodD0iNDAwcHgiPgotICAgICAgICAgICAgPHBhdGggZmlsbD0icmVkIiBkPSJNODAs
MjAgTDI4MCwyMCBMMjgwLDM4MCBMMjQwLDM4MCBMMjQwLDYwIEw4MCw2MCBMODAsMjAiLz4KLSAg
ICAgICAgPC9zdmc+Ci0gICAgICAgIDxkaXYgaWQ9Im1hc2tlZEVsZW1lbnQiPjwvZGl2PgotICAg
IDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctaW5saW5lLWZyYWdtZW50SWQtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1pbmxpbmUtZnJh
Z21lbnRJZC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Mjc4
NWE3ZGJjZmFkNzQ0ZWEzY2RkMmQ1ZTZkNWU0Mzg5MWIwYmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNr
LXN2Zy1pbmxpbmUtZnJhZ21lbnRJZC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAg
PHN0eWxlPgotICAgICAgICAgICAgcCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5Pgot
ICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEg
Z3JlZW4gTCBzaGFwZSBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHJlZmVy
ZW5jZXMgYSAmbHQ7bWFzayZndDsgZWxlbWVudCBkZWZpbmVkIGluIHRoZSBtYWluIEhUTUwgZG9j
dW1lbnQ8L3A+Ci0gICAgICAgIDxzdmcgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQwMHB4Ij4KLSAg
ICAgICAgICAgIDxwYXRoIGZpbGw9ImdyZWVuIiBkPSJNMjAsMjAgTDYwLDIwIEw2MCwzNDAgTDIy
MCwzNDAgTDIyMCwzODAgTDIwLDM4MCBMMjAsMjAiLz4KLSAgICAgICAgPC9zdmc+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1pbmxpbmUtZnJhZ21lbnRJZC5odG1sIGIv
TGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWlubGluZS1mcmFnbWVudElkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNTQxN2IyMTUwYjM1ZTZiMGEzYjNlNzA5
NTM1ODVkOGZjMDBmYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWlubGluZS1mcmFnbWVudElk
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBwIHsKLSAgICAg
ICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNtYXNr
ZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICAg
ICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6dXJsKCcjbG93ZXJIYWxmJyk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjcmVkU3ZnIHsKLSAgICAgICAgICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAg
PC9oZWFkPgotCi0gICAgPGJvZHk+Ci0gICAgICAgIDxwPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2ODIiPkJ1ZyAxMjk2ODI8L2E+IC0gT24gc3Vj
Y2VzcywgeW91IHNob3VsZCBzZWUgYSBncmVlbiBMIHNoYXBlIGFuZCBubyByZWQuPC9wPgotICAg
ICAgICA8cD5UaGlzIHRlc3QgcmVmZXJlbmNlcyBhICZsdDttYXNrJmd0OyBlbGVtZW50IGRlZmlu
ZWQgaW4gdGhlIG1haW4gSFRNTCBkb2N1bWVudDwvcD4KLSAgICAgICAgPHN2ZyBpZD0icmVkU3Zn
IiB3aWR0aD0iMzAwcHgiIGhlaWdodD0iNDAwcHgiPgotICAgICAgICAgICAgPHBhdGggZmlsbD0i
cmVkIiBkPSJNMjAsMjAgTDYwLDIwIEw2MCwzNDAgTDIyMCwzNDAgTDIyMCwzODAgTDIwLDM4MCBM
MjAsMjAiLz4KLSAgICAgICAgICAgIDxtYXNrIGlkPSJsb3dlckhhbGYiIG1hc2tVbml0cz0ib2Jq
ZWN0Qm91bmRpbmdCb3giPgotICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9
Ik0yMCwyMCBMNjAsMjAgTDYwLDM0MCBMMjIwLDM0MCBMMjIwLDM4MCBMMjAsMzgwIEwyMCwyMCIv
PgotICAgICAgICAgICAgPC9tYXNrPgotICAgICAgICA8L3N2Zz4KLSAgICAgICAgPGRpdiBpZD0i
bWFza2VkRWxlbWVudCI+PC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNr
LXN2Zy1pbmxpbmUtaW52YWxpZC1mcmFnbWVudElkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL21hc2tpbmcvbWFzay1zdmctaW5saW5lLWludmFsaWQtZnJhZ21lbnRJZC1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzM3OGVlMTBjOGFiMGJmYTFj
MWVlM2JiN2U3OTVmNzczNzNhNDlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1pbmxpbmUtaW52
YWxpZC1mcmFnbWVudElkLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+
Ci0gICAgICAgICAgICBwIHsKLSAgICAgICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICNlbGVtZW50VG9Ob3RCZUNvdmVyZWQgewotICAgICAgICAgICAg
ICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAgICAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjIyRkY7Ci0gICAgICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7Ci0gICAgICAgICAg
ICAgICAgdG9wOiA1MHB4OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwv
aGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNz
LCB5b3Ugc2hvdWxkIHNlZSBhIGJsdWUgcmVjdGFuZ2xlIGFuZCBubyByZWQuPC9wPgotICAgICAg
ICA8cD5UaGlzIHRlc3QgcmVmZXJlbmNlcyBhbiBpbnZhbGlkIGZyYWdtZW50IGlkZW50aWZpZXIu
PC9wPgotICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9Ob3RCZUNvdmVyZWQiPjwvZGl2PgotICAg
IDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctaW5saW5lLWludmFsaWQtZnJhZ21l
bnRJZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWlubGluZS1pbnZh
bGlkLWZyYWdtZW50SWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlM2Mw
NjdiMDZkYmUwMjM1NTRhZjEzM2Q5ZWJmYTlhY2Q0OTM0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1z
dmctaW5saW5lLWludmFsaWQtZnJhZ21lbnRJZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0
eWxlPgotICAgICAgICAgICAgcCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAjbWFza2VkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAg
d2lkdGg6IDMwMHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogNDAwcHg7Ci0gICAgICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFz
ay1pbWFnZTp1cmwoJyNpbnZhbGlkSWQnKTsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgICAgICAgICAgICAgbGVmdDogMTBweDsKLSAgICAgICAgICAgICAgICB0b3A6
IDUwcHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjZWxlbWVudFRvTm90QmVDb3ZlcmVk
IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0
OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMkZGOwotICAg
ICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgICAgICBsZWZ0OiAx
MHB4OwotICAgICAgICAgICAgICAgIHRvcDogNTBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
PC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4
MjwvYT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIGJsdWUgcmVjdGFuZ2xlIGFuZCBu
byByZWQuPC9wPgotICAgICAgICA8cD5UaGlzIHRlc3QgcmVmZXJlbmNlcyBhbiBpbnZhbGlkIGZy
YWdtZW50IGlkZW50aWZpZXIuPC9wPgotICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9Ob3RCZUNv
dmVyZWQiPjwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJtYXNrZWRFbGVtZW50Ij48L2Rpdj4KLSAg
ICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWludmFsaWQtZnJhZ21lbnRJZC1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLWludmFsaWQt
ZnJhZ21lbnRJZC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NzNhYjdlZTEwOWZkNzdkZDUyODk0YzhlNDc5Zjk3YjgxM2RkN2U4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9t
YXNrLXN2Zy1pbnZhbGlkLWZyYWdtZW50SWQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAg
ICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4
OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLQotICAgIDxi
b2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQg
c2VlIDQgZ3JlZW4gcmVjdGFuZ2xlcyBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0
ZXN0IHJlZmVyZW5jZXMgYW4gaW52YWxpZCBmcmFnbWVudCBpZGVudGlmaWVyIGZyb20gYW4gZXh0
ZXJuYWwgU1ZHPC9wPgotICAgICAgICA8c3ZnIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSI0MDBweCI+
Ci0gICAgICAgICAgICA8cmVjdCB4PSI1cHgiIHk9IjQ1cHgiIHdpZHRoPSIxNDBweCIgaGVpZ2h0
PSIxNDBweCIgZmlsbD0iZ3JlZW4iLz4KLSAgICAgICAgICAgIDxyZWN0IHg9IjE1NXB4IiB5PSI0
NXB4IiB3aWR0aD0iMTQwcHgiIGhlaWdodD0iMTQwcHgiIGZpbGw9ImdyZWVuIi8+Ci0gICAgICAg
ICAgICA8cmVjdCB4PSIxNTVweCIgeT0iMjE1cHgiIHdpZHRoPSIxNDBweCIgaGVpZ2h0PSIxNDBw
eCIgZmlsbD0iZ3JlZW4iLz4KLSAgICAgICAgICAgIDxyZWN0IHg9IjVweCIgeT0iMjE1cHgiIHdp
ZHRoPSIxNDBweCIgaGVpZ2h0PSIxNDBweCIgZmlsbD0iZ3JlZW4iLz4KLSAgICAgICAgPC9zdmc+
Ci0gICAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1pbnZhbGlkLWZyYWdtZW50
SWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1pbnZhbGlkLWZyYWdt
ZW50SWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIzNTRlYTIyN2E2ZDQ3
ZWI5NGE2NmU3ZWYyYzU1OTIzMjQ4NjE5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctaW52YWxp
ZC1mcmFnbWVudElkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAg
ICBwIHsKLSAgICAgICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICNtYXNrZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0g
ICAgICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6dXJsKCdy
ZXNvdXJjZXMvbWFza3Muc3ZnI2ludmFsaWRJZCcpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgI3JlZFN2ZyB7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAg
ICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotICAg
ICAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDQgZ3Jl
ZW4gcmVjdGFuZ2xlcyBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHJlZmVy
ZW5jZXMgYW4gaW52YWxpZCBmcmFnbWVudCBpZGVudGlmaWVyIGZyb20gYW4gZXh0ZXJuYWwgU1ZH
PC9wPgotICAgICAgICA8c3ZnIGlkPSJyZWRTdmciIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSI0MDBw
eCI+Ci0gICAgICAgICAgICA8cmVjdCB4PSI1cHgiIHk9IjQ1cHgiIHdpZHRoPSIxNDBweCIgaGVp
Z2h0PSIxNDBweCIgZmlsbD0icmVkIi8+Ci0gICAgICAgICAgICA8cmVjdCB4PSIxNTVweCIgeT0i
NDVweCIgd2lkdGg9IjE0MHB4IiBoZWlnaHQ9IjE0MHB4IiBmaWxsPSJyZWQiLz4KLSAgICAgICAg
ICAgIDxyZWN0IHg9IjE1NXB4IiB5PSIyMTVweCIgd2lkdGg9IjE0MHB4IiBoZWlnaHQ9IjE0MHB4
IiBmaWxsPSJyZWQiLz4KLSAgICAgICAgICAgIDxyZWN0IHg9IjVweCIgeT0iMjE1cHgiIHdpZHRo
PSIxNDBweCIgaGVpZ2h0PSIxNDBweCIgZmlsbD0icmVkIi8+Ci0gICAgICAgIDwvc3ZnPgotICAg
ICAgICA8ZGl2IGlkPSJtYXNrZWRFbGVtZW50Ij48L2Rpdj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1lbnRpcmUtc3ZnLXRvLW1hc2stZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtZW50aXJlLXN2Zy10
by1tYXNrLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMjRl
ZTkyOTNjMTIwN2IwYjI0NzI1MDE2YWUzZGEyMjFiNDg4YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2st
c3ZnLXNjcmlwdC1lbnRpcmUtc3ZnLXRvLW1hc2stZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0g
ICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1hcmdpbjog
MHB4OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8
Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxk
IHNlZSBhIGJsdWUgaW52ZXJ0ZWQtTCBzaGFwZSBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+
VGhpcyB0ZXN0IHNldHMgdGhlIG1hc2staW1hZ2UgdmlhIENTUyB0byB0aGUgZW50aXJlIFNWRyBh
bmQgdGhlbiBjaGFuZ2VzIGl0IHRvIGEgJmx0O21hc2smZ3Q7IGVsZW1lbnQgZnJvbSB0aGUgU1ZH
IHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxzdmcgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQw
MHB4Ij4KLSAgICAgICAgICAgIDxwYXRoIGZpbGw9ImJsdWUiIGQ9Ik04MCwyMCBMMjgwLDIwIEwy
ODAsMzgwIEwyNDAsMzgwIEwyNDAsNjAgTDgwLDYwIEw4MCwyMCIvPgotICAgICAgICA8L3N2Zz4K
LSAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1lbnRpcmUtc3Zn
LXRvLW1hc2suaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQt
ZW50aXJlLXN2Zy10by1tYXNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUy
MWZkNjBmYzg3MDhkYmE2YzRhYzNlYzkxNmRlMjg5ZWRkMzQ4NmQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21h
c2stc3ZnLXNjcmlwdC1lbnRpcmUtc3ZnLXRvLW1hc2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAg
IDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4Owot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgI21hc2tlZEVsZW1lbnQgewotICAgICAgICAgICAg
ICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAgICAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotICAgICAgICAgICAgICAgIC13ZWJr
aXQtbWFzay1pbWFnZTp1cmwoJ3Jlc291cmNlcy9tYXNrcy5zdmcnKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICNyZWRTdmcgewotICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8
Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxk
IHNlZSBhIGJsdWUgaW52ZXJ0ZWQtTCBzaGFwZSBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+
VGhpcyB0ZXN0IHNldHMgdGhlIG1hc2staW1hZ2UgdmlhIENTUyB0byB0aGUgZW50aXJlIFNWRyBh
bmQgdGhlbiBjaGFuZ2VzIGl0IHRvIGEgJmx0O21hc2smZ3Q7IGVsZW1lbnQgZnJvbSB0aGUgU1ZH
IHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxzdmcgaWQ9InJlZFN2ZyIgd2lkdGg9IjMwMHB4
IiBoZWlnaHQ9IjQwMHB4Ij4KLSAgICAgICAgICAgIDxwYXRoIGZpbGw9InJlZCIgZD0iTTgwLDIw
IEwyODAsMjAgTDI4MCwzODAgTDI0MCwzODAgTDI0MCw2MCBMODAsNjAgTDgwLDIwIi8+Ci0gICAg
ICAgIDwvc3ZnPgotICAgICAgICA8ZGl2IGlkPSJtYXNrZWRFbGVtZW50Ij48L2Rpdj4KLQotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICAgICAgdmFyIG1hc2tlZEVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibWFza2VkRWxlbWVudCIpOwotICAgICAgICAgICAgbWFza2VkRWxlbWVu
dC5zdHlsZS5jc3NUZXh0ICs9ICItd2Via2l0LW1hc2staW1hZ2U6dXJsKCdyZXNvdXJjZXMvbWFz
a3Muc3ZnI3VwcGVySGFsZicpO2JhY2tncm91bmQtY29sb3I6IGJsdWUiOwotICAgICAgICA8L3Nj
cmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1tYXNr
LXRvLWVudGlyZS1zdmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9t
YXNrLXN2Zy1zY3JpcHQtbWFzay10by1lbnRpcmUtc3ZnLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYmRiZDA5NWJkMWU2OTdlMzRkZGI3MDk5NDQzYTlkMGZj
OGFkNGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1tYXNrLXRvLWVudGlyZS1zdmct
ZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAg
ewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgI21hc2tlZEVsZW1lbnQgewotICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOnVybCgncmVzb3Vy
Y2VzL21hc2tzLnN2ZycpOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwv
aGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNz
LCB5b3Ugc2hvdWxkIHNlZSBmb3VyIGJsdWUgc3F1YXJlcyBhbmQgbm8gcmVkLjwvcD4KLSAgICAg
ICAgPHA+VGhpcyB0ZXN0IHNldHMgdGhlIG1hc2staW1hZ2UgdmlhIENTUyB0byBhICZsdDttYXNr
Jmd0OyBlbGVtZW50IGZyb20gYW4gU1ZHIGZpbGUgYW5kIHRoZW4gY2hhbmdlcyBpdCB0byB0aGUg
ZW50aXJlIFNWRyBmaWxlIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9Im1hc2tl
ZEVsZW1lbnQiPjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmct
c2NyaXB0LW1hc2stdG8tZW50aXJlLXN2Zy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5n
L21hc2stc3ZnLXNjcmlwdC1tYXNrLXRvLWVudGlyZS1zdmcuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTA4NzJlNjdlYWY2YzQ0NmVlMmU5OTQzNzY4OTBjZmIwYTFhYzk2ZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2stdG8tZW50aXJlLXN2Zy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAg
ICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgcCB7Ci0gICAgICAgICAgICAg
ICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjbWFza2VkRWxlbWVu
dCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICAgICAgICAgIGhlaWdo
dDogNDAwcHg7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAg
ICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOnVybCgncmVzb3VyY2VzL21hc2tzLnN2ZyNs
b3dlckhhbGYnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWRTdmcgewotICAgICAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgPC9z
dHlsZT4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4Mjwv
YT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBmb3VyIGJsdWUgc3F1YXJlcyBhbmQgbm8g
cmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHNldHMgdGhlIG1hc2staW1hZ2UgdmlhIENT
UyB0byBhICZsdDttYXNrJmd0OyBlbGVtZW50IGZyb20gYW4gU1ZHIGZpbGUgYW5kIHRoZW4gY2hh
bmdlcyBpdCB0byB0aGUgZW50aXJlIFNWRyBmaWxlIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAg
IDxzdmcgaWQ9InJlZFN2ZyIgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQwMHB4Ij4KLSAgICAgICAg
ICAgIDxyZWN0IHg9IjVweCIgeT0iNDVweCIgd2lkdGg9IjE0MHB4IiBoZWlnaHQ9IjE0MHB4IiBm
aWxsPSJyZWQiLz4KLSAgICAgICAgICAgIDxyZWN0IHg9IjE1NXB4IiB5PSI0NXB4IiB3aWR0aD0i
MTQwcHgiIGhlaWdodD0iMTQwcHgiIGZpbGw9InJlZCIvPgotICAgICAgICAgICAgPHJlY3QgeD0i
MTU1cHgiIHk9IjIxNXB4IiB3aWR0aD0iMTQwcHgiIGhlaWdodD0iMTQwcHgiIGZpbGw9InJlZCIv
PgotICAgICAgICAgICAgPHJlY3QgeD0iNXB4IiB5PSIyMTVweCIgd2lkdGg9IjE0MHB4IiBoZWln
aHQ9IjE0MHB4IiBmaWxsPSJyZWQiLz4KLSAgICAgICAgPC9zdmc+Ci0gICAgICAgIDxkaXYgaWQ9
Im1hc2tlZEVsZW1lbnQiPjwvZGl2PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICB2
YXIgbWFza2VkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYXNrZWRFbGVtZW50
Iik7Ci0gICAgICAgICAgICBtYXNrZWRFbGVtZW50LnN0eWxlLmNzc1RleHQgKz0gIi13ZWJraXQt
bWFzay1pbWFnZTp1cmwoJ3Jlc291cmNlcy9tYXNrcy5zdmcnKTtiYWNrZ3JvdW5kLWNvbG9yOmJs
dWUiOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21h
c2stc3ZnLXNjcmlwdC1tYXNrLXRvLW5vbmUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtbWFzay10by1ub25lLWV4cGVjdGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmYzQ5ZDg0OTE3MzllZDYxMTlhOGU5MjMxYmVh
YmE0MDZlODM4MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1tYXNrLXRvLW5vbmUt
ZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAg
ewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgI21hc2tlZEVsZW1lbnQgewotICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKLSAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgot
ICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9uIHN1Y2Nlc3MsIHlvdSBz
aG91bGQgc2VlIGEgYmx1ZSByZWN0YW5nbGUgYW5kIG5vIHJlZC48L3A+Ci0gICAgICAgIDxwPlRo
aXMgdGVzdCBzZXRzIHRoZSBtYXNrLWltYWdlIHZpYSBDU1MgdG8gYSAmbHQ7bWFzayZndDsgZWxl
bWVudCBmcm9tIGFuIGV4dGVybmFsIFNWRyBmaWxlIGFuZCB0aGVuIGNoYW5nZXMgaXQgdG8gJ25v
bmUnIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9Im1hc2tlZEVsZW1lbnQiPjwv
ZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2st
dG8tbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1t
YXNrLXRvLW5vbmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2QxYzFiYzRk
NTliOGNjNmZjYjU2ZTg0YWNlNzE3NTgzMjE2ZTdjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmct
c2NyaXB0LW1hc2stdG8tbm9uZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAg
ICAgICAgICAgcCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAjbWFza2VkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDQw
MHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogNDAwcHg7Ci0gICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdl
OnVybCgncmVzb3VyY2VzL21hc2tzLnN2ZyNsb3dlckhhbGYnKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICNyZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogNDAwcHg7Ci0g
ICAgICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAg
ICAgICAgICAgIHotaW5kZXg6IC0xOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgot
ICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgYmx1ZSByZWN0YW5nbGUgYW5kIG5vIHJlZC48L3A+
Ci0gICAgICAgIDxwPlRoaXMgdGVzdCBzZXRzIHRoZSBtYXNrLWltYWdlIHZpYSBDU1MgdG8gYSAm
bHQ7bWFzayZndDsgZWxlbWVudCBmcm9tIGFuIGV4dGVybmFsIFNWRyBmaWxlIGFuZCB0aGVuIGNo
YW5nZXMgaXQgdG8gJ25vbmUnIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9InJl
ZEVsZW1lbnQiPjwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJtYXNrZWRFbGVtZW50Ij48L2Rpdj4K
LSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHZhciBtYXNrZWRFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm1hc2tlZEVsZW1lbnQiKTsKLSAgICAgICAgICAgIG1hc2tlZEVs
ZW1lbnQuc3R5bGUuY3NzVGV4dCArPSAiLXdlYmtpdC1tYXNrLWltYWdlOm5vbmU7YmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZSI7Ci0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2stdG8tcG5nLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1hc2stdG8tcG5nLWV4cGVjdGVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyZjUyNmE5MzljZjU0NDAwNzNi
ZWFkYjUyMjQzNjdiOTExZmRhMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1tYXNr
LXRvLXBuZy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAg
ICAgICAgcCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAjbWFza2VkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDM2MHB4
OwotICAgICAgICAgICAgICAgIGhlaWdodDogMjg4cHg7Ci0gICAgICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6dXJs
KCdyZXNvdXJjZXMvY2lyY2xlLnBuZycpOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxl
PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBP
biBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIGJsdWUgY2lyY2xlIGFuZCBubyByZWQuPC9wPgot
ICAgICAgICA8cD5UaGlzIHRlc3Qgc2V0cyB0aGUgbWFzay1pbWFnZSB2aWEgQ1NTIHRvIGEgJmx0
O21hc2smZ3Q7IGVsZW1lbnQgZnJvbSBhbiBTVkcgZmlsZSBhbmQgdGhlbiBjaGFuZ2VzIGl0IHRv
IGEgUE5HIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9Im1hc2tlZEVsZW1lbnQi
PjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW1h
c2stdG8tcG5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0
LW1hc2stdG8tcG5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NmI5NDNj
MTY5NjZlYjg3MTg0MGRkMWY3Y2ViYTY5ZjgxNDRlNDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3Zn
LXNjcmlwdC1tYXNrLXRvLXBuZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAg
ICAgICAgICAgcCB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAjbWFza2VkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDM2
MHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogMjg4cHg7Ci0gICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOwotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1pbWFnZTp1
cmwoJ3Jlc291cmNlcy9tYXNrcy5zdmcjbG93ZXJIYWxmJyk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAjcmVkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgICAgICAgICAgICAgIHdpZHRoOiAzNjBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6
IDI4OHB4OwotICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKLSAgICAgICAg
ICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSwgMC45NSk7Ci0gICAgICAgICAg
ICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9jaXJjbGUucG5nJyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+
Ci0gICAgICAgIDxwPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjk2ODIiPkJ1ZyAxMjk2ODI8L2E+IC0gT24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUg
YSBibHVlIGNpcmNsZSBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0ZXN0IHNldHMg
dGhlIG1hc2staW1hZ2UgdmlhIENTUyB0byBhICZsdDttYXNrJmd0OyBlbGVtZW50IGZyb20gYW4g
U1ZHIGZpbGUgYW5kIHRoZW4gY2hhbmdlcyBpdCB0byBhIFBORyB2aWEgYSBzY3JpcHQuPC9wPgot
ICAgICAgICA8ZGl2IGlkPSJyZWRFbGVtZW50Ij48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0ibWFz
a2VkRWxlbWVudCI+PC9kaXY+Ci0KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIHZhciBt
YXNrZWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hc2tlZEVsZW1lbnQiKTsK
LSAgICAgICAgICAgIG1hc2tlZEVsZW1lbnQuc3R5bGUuY3NzVGV4dCArPSAiLXdlYmtpdC1tYXNr
LWltYWdlOnVybCgncmVzb3VyY2VzL2NpcmNsZS5wbmcnKTtiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
IjsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNr
LXN2Zy1zY3JpcHQtbm9uZS10by1tYXNrLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW5vbmUtdG8tbWFzay1leHBlY3RlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjkzYWRhZjk1MjA5MzMzZTBhNDE0MGY4NzY1MzI5
ZTFmNDNjZDA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtbm9uZS10by1tYXNrLWV4
cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBwIHsK
LSAgICAgICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICNtYXNrZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogNDAwcHg7Ci0gICAgICAg
ICAgICAgICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOwotICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1pbWFnZTp1cmwoJ3Jlc291cmNl
cy9tYXNrcy5zdmcjdXBwZXJIYWxmJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+
Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgYmx1ZSBpbnZlcnRlZC1MIHNoYXBlIGFuZCBubyBy
ZWQuPC9wPgotICAgICAgICA8cD5UaGlzIHRlc3Qgc2V0cyB0aGUgbWFzay1pbWFnZSB2YWx1ZSB0
byBhICZsdDttYXNrJmd0OyBlbGVtZW50IGZyb20gYW4gZXh0ZXJuYWwgU1ZHIHZpYSBhIHNjcmlw
dC48L3A+Ci0gICAgICAgIDxkaXYgaWQ9Im1hc2tlZEVsZW1lbnQiPjwvZGl2PgotICAgIDwvYm9k
eT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW5vbmUtdG8tbWFzay5odG1sIGIv
TGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1ub25lLXRvLW1hc2suaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk3MWM5MWFkMDJmMzFmZDQxNjU5MTJh
NTlmYmU1Yzk4Y2U4MDZjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LW5vbmUtdG8t
bWFzay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgcCB7Ci0g
ICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAj
bWFza2VkRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwotICAgICAgICAg
ICAgICAgIGhlaWdodDogNDAwcHg7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI3JlZFN2ZyB7Ci0gICAgICAgICAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgot
ICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9hPiAtIE9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgYmx1ZSBpbnZlcnRlZC1MIHNoYXBlIGFuZCBubyBy
ZWQuPC9wPgotICAgICAgICA8cD5UaGlzIHRlc3Qgc2V0cyB0aGUgbWFzay1pbWFnZSB2YWx1ZSB0
byBhICZsdDttYXNrJmd0OyBlbGVtZW50IGZyb20gYW4gZXh0ZXJuYWwgU1ZHIHZpYSBhIHNjcmlw
dC48L3A+Ci0gICAgICAgIDxzdmcgaWQ9InJlZFN2ZyIgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQw
MHB4Ij4KLSAgICAgICAgICAgIDxwYXRoIGZpbGw9InJlZCIgZD0iTTgwLDIwIEwyODAsMjAgTDI4
MCwzODAgTDI0MCwzODAgTDI0MCw2MCBMODAsNjAgTDgwLDIwIi8+Ci0gICAgICAgIDwvc3ZnPgot
ICAgICAgICA8ZGl2IGlkPSJtYXNrZWRFbGVtZW50Ij48L2Rpdj4KLQotICAgICAgICA8c2NyaXB0
PgotICAgICAgICAgICAgdmFyIG1hc2tlZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibWFza2VkRWxlbWVudCIpOwotICAgICAgICAgICAgbWFza2VkRWxlbWVudC5zdHlsZS5jc3NU
ZXh0ICs9ICItd2Via2l0LW1hc2staW1hZ2U6dXJsKCdyZXNvdXJjZXMvbWFza3Muc3ZnI3VwcGVy
SGFsZicpO2JhY2tncm91bmQtY29sb3I6IGJsdWUiOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1wbmctdG8tbWFzay1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL21hc2stc3ZnLXNjcmlwdC1wbmct
dG8tbWFzay1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmY0
Y2U4ZjAwNjhlZjY0YTBkMzZiYmUzZDk1OTU3MGExMzM4ZTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNr
LXN2Zy1zY3JpcHQtcG5nLXRvLW1hc2stZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAg
IDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4Owot
ICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4K
LSAgICAgICAgPHA+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTY4MiI+QnVnIDEyOTY4MjwvYT4gLSBPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBh
IGJsdWUgaW52ZXJ0ZWQtTCBzaGFwZSBhbmQgbm8gcmVkLjwvcD4KLSAgICAgICAgPHA+VGhpcyB0
ZXN0IHNldHMgdGhlIG1hc2staW1hZ2UgdmlhIENTUyB0byBhIFBORyBhbmQgdGhlbiBjaGFuZ2Vz
IGl0IHRvIGEgJmx0O21hc2smZ3Q7IGVsZW1lbnQgZnJvbSBhbiBTVkcgZmlsZSB2aWEgYSBzY3Jp
cHQuPC9wPgotICAgICAgICA8c3ZnIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSI0MDBweCI+Ci0gICAg
ICAgICAgICA8cGF0aCBmaWxsPSJibHVlIiBkPSJNODAsMjAgTDI4MCwyMCBMMjgwLDM4MCBMMjQw
LDM4MCBMMjQwLDYwIEw4MCw2MCBMODAsMjAiLz4KLSAgICAgICAgPC9zdmc+Ci0gICAgPC9ib2R5
PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtcG5nLXRvLW1hc2suaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvbWFza2luZy9tYXNrLXN2Zy1zY3JpcHQtcG5nLXRvLW1hc2suaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDNkZDMyZmVkYzhlMDg0MzhjNjI2MThlYzdi
YjNjYzNmNzk2MGM1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvbWFzay1zdmctc2NyaXB0LXBuZy10by1tYXNr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBwIHsKLSAgICAg
ICAgICAgICAgICBtYXJnaW46IDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNtYXNr
ZWRFbGVtZW50IHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgICAgICAg
ICAgaGVpZ2h0OiA0MDBweDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKLSAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6dXJsKCdyZXNvdXJjZXMvY2ly
Y2xlLnBuZycpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI3JlZFN2ZyB7Ci0gICAgICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0
eWxlPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotICAgICAgICA8cD48YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjgyIj5CdWcgMTI5NjgyPC9h
PiAtIE9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgYmx1ZSBpbnZlcnRlZC1MIHNoYXBlIGFu
ZCBubyByZWQuPC9wPgotICAgICAgICA8cD5UaGlzIHRlc3Qgc2V0cyB0aGUgbWFzay1pbWFnZSB2
aWEgQ1NTIHRvIGEgUE5HIGFuZCB0aGVuIGNoYW5nZXMgaXQgdG8gYSAmbHQ7bWFzayZndDsgZWxl
bWVudCBmcm9tIGFuIFNWRyBmaWxlIHZpYSBhIHNjcmlwdC48L3A+Ci0gICAgICAgIDxzdmcgaWQ9
InJlZFN2ZyIgd2lkdGg9IjMwMHB4IiBoZWlnaHQ9IjQwMHB4Ij4KLSAgICAgICAgICAgIDxwYXRo
IGZpbGw9InJlZCIgZD0iTTgwLDIwIEwyODAsMjAgTDI4MCwzODAgTDI0MCwzODAgTDI0MCw2MCBM
ODAsNjAgTDgwLDIwIi8+Ci0gICAgICAgIDwvc3ZnPgotICAgICAgICA8ZGl2IGlkPSJtYXNrZWRF
bGVtZW50Ij48L2Rpdj4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgdmFyIG1hc2tl
ZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFza2VkRWxlbWVudCIpOwotICAg
ICAgICAgICAgbWFza2VkRWxlbWVudC5zdHlsZS5jc3NUZXh0ICs9ICItd2Via2l0LW1hc2staW1h
Z2U6dXJsKCdyZXNvdXJjZXMvbWFza3Muc3ZnI3VwcGVySGFsZicpO2JhY2tncm91bmQtY29sb3I6
IGJsdWUiOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="281335"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256266</attachid>
            <date>2015-07-06 17:56:31 -0700</date>
            <delta_ts>2015-07-06 18:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146653-20150706175533.patch</filename>
            <type>text/plain</type>
            <size>78816</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE5ZTgzMTk2MmM3ODYy
ZmI2NzMzMmM5NThlYzdmN2JlNTkxN2RmZC4uN2MzY2YxOWY4YzgyZWI3N2Y3NTRjYzAyMzM1YWEx
NDdjODViNjViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkxIEBACiAyMDE1LTA3LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJldmVydCB1c2Ug
b2YgIFNWRyA8bWFzaz4gZWxlbWVudHMgZm9yIC13ZWJraXQtbWFzay1pbWFnZSAocjE3Njc5OCwg
cjE3NzQ5NCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NjY1MworCisgICAgICAgIEZpeGVzIHJkYXI6Ly9wcm9ibGVtLzIxNDM1MjMzLgorCisgICAg
ICAgIHIxNzc0OTQgY2F1c2VkIGEgbnVtYmVyIG9mIHJlZ3Jlc3Npb25zIChidWdzIDE0MTg1Nywg
MTQ2NTA5LCAxNDY1NjEpLCBhZGRlZCBuZXcgbGF5ZXJpbmcgdmlvbGF0aW9ucywgYW5kCisgICAg
ICAgIHdhcyBub3QgYmVpbmcgbWFpbnRhaW5lZCwgc28gcmV2ZXJ0IGl0LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmV2ZXJ0cyByMTc2Nzk4LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1Zh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNXZWJLaXRDU1NSZXNvdXJjZVZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjptYXNrSW1hZ2VWYWx1ZUZyb21JdGVyYXRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
ZXNvbHZlcjo6U3RhdGU6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3RhdGU6Om1hc2tJbWFn
ZXNXaXRoUGVuZGluZ1NWR0RvY3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1dlYktp
dENTU1Jlc291cmNlVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NS
ZXNvdXJjZVZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjphZGRDYWNoZWRSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50OjpmaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdE
b2N1bWVudCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3Vt
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpDYWNo
ZWRTVkdEb2N1bWVudFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZTo6fkNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnRhaW5zU1ZHRG9j
dW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICog
cGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNyZWF0ZVBhZ2VGcm9tQnVm
ZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpjb250YWluc1NW
R0RvY3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NYXNrSW1h
Z2VPcGVyYXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01h
c2tJbWFnZU9wZXJhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckZpbHRlckluZm8uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
YXNrSW1hZ2VJbmZvLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Om9wZXJhdG9yPT0pOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpjdWxsRW1wdHlMYXllcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6bGF5ZXJJbWFnZXNJZGVudGljYWwpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVy
OjpGaWxsTGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpvcGVy
YXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpoYXNOb25FbXB0
eU1hc2tJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmltYWdl
c0FyZUxvYWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXll
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjptYXNrSW1hZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppbWFnZU9yTWFza0ltYWdlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0TWFza0ltYWdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xlYXJNYXNrSW1hZ2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpoYXNNYXNrSW1hZ2UpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5U1ZHTWFzayk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6ZHJhd01hc2tG
b3JSZW5kZXJlcik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjphZGRDbGllbnRSZW5kZXJMYXllcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVudDo6cmVtb3ZlQ2xpZW50UmVu
ZGVyTGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgor
CisyMDE1LTA3LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAg
ICAgICAgIFJldmVydCB1c2Ugb2YgU1ZHIDxtYXNrPiBlbGVtZW50cyBmb3IgLXdlYmtpdC1tYXNr
LWltYWdlIChyMTc2Nzk4LCByMTc3NDk0LCByMTg2MTgwKQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjUzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNmQxOTJjNGE3NTE1M2Y2YWE1Mzk4OTRjNWQxMjYyYjEyYjFjNjFmNS4uY2UyYTZkMDlhNjFh
MGIzNTkzZWQwODRmZjRmNDE2MjBlMzViYWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEz
NTMsNyArMTM1Myw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvV2ViS2l0Q1NTRmls
dGVyVmFsdWUuY3BwCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAKICAgICBjc3MvV2ViS2l0
Q1NTUmVnaW9uUnVsZS5jcHAKLSAgICBjc3MvV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAKICAg
ICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwCiAgICAgY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5jcHAKIApAQCAtMjE2Myw3ICsyMTYyLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmNwcAotICAgIHBs
YXRmb3JtL2dyYXBoaWNzL01hc2tJbWFnZU9wZXJhdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2Vu
ZXJhdGVkSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKQEAgLTIzNzMs
NyArMjM3MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCiAg
ICAgcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAKLSAgICByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKICAgICByZW5k
ZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYTU4NzU2OTQyNjgxZGI2NmU2YTE3OGEwY2FlODE5
OGZkMTQwYjRhZC4uMTZjZTFlYzMwMjY0NTM1YzEzZmRjOGJkNDc3Njk0OWEyYjY5NzZlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC04
NjIsNyArODYyLDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3Nc
V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxEZXJpdmVkU291cmNlcy5jcHAiPgogICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj40
ODE5OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4K
ICAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPjQ4MTk7JShEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgpAQCAtNzU4Myw3ICs3NTgyLDYgQEAKICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xNYXNrSW1hZ2VPcGVyYXRpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbmdsXEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVuZ2xcRXh0
ZW5zaW9uczNET3BlbkdMRVMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3Ncb3BlbmdsXEdMUGxhdGZvcm1Db250ZXh0LmNwcCIgLz4KQEAgLTgxMDIs
NyArODEwMCw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXFJlbmRlckxheWVyTWFza0ltYWdlSW5mby5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVDYWNoZWRJbWFnZVNldC5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpA
QCAtMTkyNTIsNyArMTkyNDksNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ltYWdlU2V0VmFsdWUuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NSZXNvdXJjZVZhbHVl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xiaW5k
aW5nc1xTY3JpcHRGdW5jdGlvbkNhbGwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXGJpbmRpbmdzXFNjcmlwdE9iamVjdC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcYmluZGluZ3NcU2NyaXB0VmFsdWUu
aCIgLz4KQEAgLTE5ODEzLDcgKzE5ODA5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXGdyYXBoaWNzXGdzdHJlYW1lclxWaWRlb1NpbmtHU3RyZWFtZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGdzdHJlYW1lclxWaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZ3N0cmVhbWVyXFdlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oIiAv
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTWFza0ltYWdl
T3BlcmF0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xNZWRpYVBsYXllclByaXZhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXGdyYXBoaWNzXG9wZW5nbFxFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW5nbFxFeHRl
bnNpb25zM0RPcGVuR0xFUy5oIiAvPgpAQCAtMTk5NDcsNyArMTk5NDIsNiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFdlYkNvcmVCdW5kbGVXaW4uaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxXZWJDb3JlSW5zdGFuY2VIYW5k
bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xIaXRUZXN0TG9j
YXRpb24uaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJM
YXllck1hc2tJbWFnZUluZm8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxTdHlsZUNhY2hlZEltYWdlU2V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxXZWJDb3JlUHJlZml4LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVx3aW5cV2ViQ29yZVRleHRSZW5kZXJlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDY2
NDBmMzc0NmQzMmQ0YjdlMzkyMWY5ZGM1MjRhNWZlMTE3NjFiZWEuLmMwMWY5Y2RkNzIxNDE4NjI2
MmU2YjMyZDJhOTE0NTk3MWM2YjVjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTcxMDUsMTUgKzcxMDUs
NiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1x3aW5cRWRpdG9yV2luLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXE1hc2tJbWFnZU9wZXJh
dGlvbi5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
ckxheWVyTWFza0ltYWdlSW5mby5jcHAiPgotICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRl
cj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJL
aXRDU1NSZXNvdXJjZVZhbHVlLmNwcCI+Ci0gICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNc
SlNFWFRzUkdCLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkBAIC0xNDU0MywxNSArMTQ1MzQsNiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9uXE1lZGlhVGltZUFWRm91
bmRhdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9u
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xNYXNrSW1hZ2VPcGVyYXRpb24uaCI+Ci0gICAgICA8RmlsdGVyPnBs
YXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvLmgiPgotICAg
ICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmgiPgotICAgICAg
PEZpbHRlcj5jc3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJl
KVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VYVHNSR0IuaCI+CiAgICAgICA8Rmls
dGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTg2MzAz
ODc0NDU5YzVhNzVhN2NkOWE5Nzg1OWI0ZGY3NjAwNWFlYi4uYjkyNDgyYWFlODUyYWEyMmNkYjYw
MDE1NzlhNDA4ODRjOTE4MGRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMxOSwxMyArMjMxOSw4IEBACiAJCTZCMzQ4MDk0
MEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5h
dGl2ZUltYWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5j
cHAgKi87IH07CiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
LmggKi87IH07Ci0JCTZDNTY4Q0IwMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM1
NjhDQUUxOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5jcHAgKi87IH07Ci0J
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNTY4Q0FGMTlEQUZFQTAw
MDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07Ci0JCTZDNkNDQUIwMTlEQzQyQjkwMDQzRDVE
QiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNkNDQUFFMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRD
U1NSZXNvdXJjZVZhbHVlLmNwcCAqLzsgfTsKLQkJNkM2Q0NBQjExOURDNDJCOTAwNDNENURCIC8q
IFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZDNkNDQUFGMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNv
dXJjZVZhbHVlLmggKi87IH07Ci0JCTZDQkZFNEE1MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJM
YXllck1hc2tJbWFnZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZDQkZFNEEzMTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFn
ZUluZm8uaCAqLzsgfTsKIAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJz
ZXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFMEU1NjlCMTgzQkZG
RTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9h
dFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJNkUwRTU2OUMxODNCRkZFNjAwRTBFOEQ1IC8qIEZs
b2F0Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk1OTYsMTQg
Kzk1OTEsOSBAQAogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QzU2
OENBRTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hc2tJbWFnZU9wZXJhdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNTY4Q0FGMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNr
SW1hZ2VPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFza0lt
YWdlT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODkzQTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkM2Q0NBQUUxOURDNDJCOTAwNDNE
NURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTZDNkNDQUFGMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNv
dXJjZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1Jl
c291cmNlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM3MEE4MTQxNzcw
N0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNkNCRkU0QTMxOUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0ltYWdl
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJMYXllck1hc2tJ
bWFnZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUwRTU2OTkxODNCRkZF
NjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmxvYXRSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdy
YXBoaWNzQ29udGV4dDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dDNELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
OTg1LDggKzIwOTc1LDYgQEAKIAkJCQkxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
UmVjdC5jcHAgKi8sCiAJCQkJMTQxREMwNEQxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3Qu
aCAqLywKIAkJCQkxNDFEQzA0RTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0U2l6ZS5oICovLAot
CQkJCTZDNTY4Q0FFMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uY3BwICov
LAotCQkJCTZDNTY4Q0FGMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCAq
LywKIAkJCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovLAogCQkJCTA3OTIxNjUzMUFBNTYwQUEwMEEzQzA0OSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0
Q2xpZW50LmggKi8sCiAJCQkJMDdGODc2ODMxQUQ0QTk0NTAwOTA1ODQ5IC8qIE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0LmggKi8sCkBAIC0yMjg2OCw3ICsyMjg1Niw2IEBACiAJCQkJMEY1ODBD
RjkwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQ29tcG9zaXRvci5oICovLAogCQkJCTUw
RDEwRDk3MTU0NUY1NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXllckZpbHRlckluZm8uY3BwICovLAog
CQkJCTUwRDEwRDk4MTU0NUY1NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXllckZpbHRlckluZm8uaCAq
LywKLQkJCQk2Q0JGRTRBMzE5RUJGMkQ0MDBDQTJGOUQgLyogUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJ
bmZvLmggKi8sCiAJCQkJM0MyNDRGRTVBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwICovLAogCQkJCTNDMjQ0RkU0QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJM
YXllck1vZGVsT2JqZWN0LmggKi8sCiAJCQkJQkMzM0ZCMUEwRjMwRUU4NTAwMkNERDdDIC8qIFJl
bmRlckxpbmVCb3hMaXN0LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDllYjE5
YWIyODBjMjVmMGNmMGVmM2I3NWMwZTAxNjMyMDY1NzZmNjcuLjQ1NWU3ODFhNmJiYjAzY2NlODA0
MzVmZjgxOTcxODFlMTUwZjVlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNTcsNyAr
NTcsNiBAQAogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHUGFpbnQuaCIKICNp
bmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgotI2luY2x1ZGUgIldlYktpdENTU1Jlc291
cmNlVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogCiAjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKQEAgLTMyOSw4ICszMjgsNiBAQCBTdHJpbmcgQ1NTVmFs
dWU6OmNzc1RleHQoKSBjb25zdAogICAgIGNhc2UgQW5pbWF0aW9uVHJpZ2dlclNjcm9sbENsYXNz
OgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
PigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogI2VuZGlmCi0gICAgY2FzZSBXZWJLaXRDU1NSZXNv
dXJjZUNsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1
ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIENTU0NvbnRlbnREaXN0cmlidXRp
b25DbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0NvbnRlbnREaXN0cmlidXRpb25W
YWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICB9CkBAIC00NTMsOSArNDUwLDYgQEAg
dm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NBbmlt
YXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47CiAjZW5kaWYK
LSAgICBjYXNlIFdlYktpdENTU1Jlc291cmNlQ2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2Fz
dDxXZWJLaXRDU1NSZXNvdXJjZVZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ1NTQ29udGVudERpc3RyaWJ1dGlvbkNsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8
Q1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaAppbmRleCBiOTU2ODc2ZjBhYzFmYjExYjVmM2QyNGUyMmQyMGE5ODA1MTE5
NDBmLi41NmZkMjg3Y2UwMDRkNmI3MzliOTBlYTY4ODFhNjY0NTFjMDU4NGE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWUuaApAQCAtMTA2LDcgKzEwNiw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzU1ZHQ29s
b3IoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBTVkdDb2xvckNsYXNzIHx8IG1fY2xh
c3NUeXBlID09IFNWR1BhaW50Q2xhc3M7IH0KICAgICBib29sIGlzU1ZHUGFpbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzVHlwZSA9PSBTVkdQYWludENsYXNzOyB9CiAgICAgYm9vbCBpc1VuaWNv
ZGVSYW5nZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gVW5pY29kZVJhbmdl
Q2xhc3M7IH0KLSAgICBib29sIGlzV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xhc3NUeXBlID09IFdlYktpdENTU1Jlc291cmNlQ2xhc3M7IH0KIAogI2lmIEVOQUJM
RShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQogICAgIGJvb2wgaXNBbmltYXRpb25UcmlnZ2VyU2Ny
b2xsVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBBbmltYXRpb25UcmlnZ2Vy
U2Nyb2xsQ2xhc3M7IH0KQEAgLTE4OCw4ICsxODcsNiBAQCBwcm90ZWN0ZWQ6CiAjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKICAgICAgICAgR3JpZExpbmVOYW1lc0NsYXNzLAogI2VuZGlmCi0g
ICAgICAgIFdlYktpdENTU1Jlc291cmNlQ2xhc3MKLQogICAgICAgICAvLyBEbyBub3QgYXBwZW5k
IG5vbi1saXN0IGNsYXNzIHR5cGVzIGhlcmUuCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDdhNmJlYWY1ZDA3YWU1NzU5ZDcwZjkxZDIx
NTQ5NTJjYmFkMzI5YjcuLjRmZTMwYjczOGUzMWJmMDkyZmM3N2JiNzVmZTAwMzNjMjUzYjVjNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTQ5LDcg
KzQ5LDYgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtRnVuY3Rpb25zLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDA0LDE0ICsxMDAzLDYgQEAgaW5saW5lIE9wdGlv
bmFsPEZpbHRlck9wZXJhdGlvbnM+IFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydEZpbHRl
ck9wZXJhdGlvbnMKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotc3RhdGljIGlubGluZSBXZWJL
aXRDU1NSZXNvdXJjZVZhbHVlKiBtYXNrSW1hZ2VWYWx1ZUZyb21JdGVyYXRvcihDU1NWYWx1ZUxp
c3QmIG1hc2tJbWFnZXNMaXN0LCBDU1NWYWx1ZUxpc3Q6Oml0ZXJhdG9yIGl0KQotewotICAgIC8v
IE1heSBhbHNvIGJlIGEgQ1NTSW5pdGlhbFZhbHVlLgotICAgIGlmIChpdCA9PSBtYXNrSW1hZ2Vz
TGlzdC5lbmQoKSB8fCAhaXM8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4oaXQtPmdldCgpKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZkb3duY2FzdDxXZWJLaXRDU1NSZXNv
dXJjZVZhbHVlPihpdC0+Z2V0KCkpOwotfQotCiBpbmxpbmUgUmVmUHRyPEZvbnRGZWF0dXJlU2V0
dGluZ3M+IFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydEZvbnRGZWF0dXJlU2V0dGluZ3Mo
U3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJiB2YWx1ZSkKIHsKICAgICBpZiAoaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IDZiMTUzZGU0MWQ2ZDRhNGE4ZjNmNjcyNGMwZWE3NzEyYjM0MTUxODMuLjZmM2NhZGE4ZTE4N2Nh
NzFkOGRlOGEzMTI1ZTdkMTk2M2U0MmM0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTEzMyw3ICsxMzMsNiBAQAogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1Jl
Z2lvblJ1bGUuaCIKLSNpbmNsdWRlICJXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5
TmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpAQCAtMjM5LDcgKzIzOCw2IEBAIGlubGlu
ZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpjbGVhcigpCiAgICAgbV9yZWdpb25Gb3JTdHls
aW5nID0gbnVsbHB0cjsKICAgICBtX3BlbmRpbmdJbWFnZVByb3BlcnRpZXMuY2xlYXIoKTsKICAg
ICBtX2ZpbHRlcnNXaXRoUGVuZGluZ1NWR0RvY3VtZW50cy5jbGVhcigpOwotICAgIG1fbWFza0lt
YWdlc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzLmNsZWFyKCk7CiAgICAgbV9jc3NUb0xlbmd0aENv
bnZlcnNpb25EYXRhID0gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAwYzMzZmNlODZiNWU0NjE4NDM3OGFhNzZiODg3MDQ0
ZmY3MTI4NDY4Li5hZGQ1NDI1ZDdmZGI1OGQxMTllOTg0NjJiOGUwNjM3YTlmZGNlZjkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJE
b2N1bWVudFJ1bGVTZXRzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oIgog
I2luY2x1ZGUgIkxpbmtIYXNoLmgiCi0jaW5jbHVkZSAiTWFza0ltYWdlT3BlcmF0aW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5j
bHVkZSAiUnVsZUZlYXR1cmUuaCIKQEAgLTM4MSw3ICszODAsNiBAQCBwdWJsaWM6CiAgICAgICAg
IFBlbmRpbmdJbWFnZVByb3BlcnR5TWFwJiBwZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzKCkgeyByZXR1
cm4gbV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzOyB9CiAKICAgICAgICAgVmVjdG9yPFJlZlB0cjxS
ZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24+PiYgZmlsdGVyc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRz
KCkgeyByZXR1cm4gbV9maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHM7IH0KLSAgICAgICAg
VmVjdG9yPFJlZlB0cjxNYXNrSW1hZ2VPcGVyYXRpb24+PiYgbWFza0ltYWdlc1dpdGhQZW5kaW5n
U1ZHRG9jdW1lbnRzKCkgeyByZXR1cm4gbV9tYXNrSW1hZ2VzV2l0aFBlbmRpbmdTVkdEb2N1bWVu
dHM7IH0KIAogICAgICAgICB2b2lkIHNldEZvbnREaXJ0eShib29sIGlzRGlydHkpIHsgbV9mb250
RGlydHkgPSBpc0RpcnR5OyB9CiAgICAgICAgIGJvb2wgZm9udERpcnR5KCkgY29uc3QgeyByZXR1
cm4gbV9mb250RGlydHk7IH0KQEAgLTQyOCw3ICs0MjYsNiBAQCBwdWJsaWM6CiAgICAgICAgIFBl
bmRpbmdJbWFnZVByb3BlcnR5TWFwIG1fcGVuZGluZ0ltYWdlUHJvcGVydGllczsKIAogICAgICAg
ICBWZWN0b3I8UmVmUHRyPFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbj4+IG1fZmlsdGVyc1dpdGhQ
ZW5kaW5nU1ZHRG9jdW1lbnRzOwotICAgICAgICBWZWN0b3I8UmVmUHRyPE1hc2tJbWFnZU9wZXJh
dGlvbj4+IG1fbWFza0ltYWdlc1dpdGhQZW5kaW5nU1ZHRG9jdW1lbnRzOwogCiAgICAgICAgIGJv
b2wgbV9mb250RGlydHk7CiAgICAgICAgIGJvb2wgbV9mb250U2l6ZUhhc1ZpZXdwb3J0VW5pdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MGIyOTEzYWQwZDM4NDgxNjk4YzgwZGQzYjllNTM4
MGNkMzgwYTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1Jlc291cmNlVmFsdWUuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICog
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5oIgotCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NWYWx1ZUxpc3Qu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1XZWJLaXRDU1NSZXNvdXJjZVZhbHVlOjpXZWJLaXRDU1NSZXNvdXJjZVZh
bHVlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHJlc291cmNlVmFsdWUpCi0gICAgOiBDU1NWYWx1ZShX
ZWJLaXRDU1NSZXNvdXJjZUNsYXNzKQotICAgICwgbV9pbm5lclZhbHVlKHJlc291cmNlVmFsdWUp
Ci17Ci19Ci0KLVN0cmluZyBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKLXsKLSAgICBpZiAoaXNDU1NWYWx1ZU5vbmUoKSkKLSAgICAgICAgcmV0dXJuICJub25l
IjsKLQotICAgIGlmIChtX2lubmVyVmFsdWUuZ2V0KCkpIHsKLSAgICAgICAgaWYgKGlzPENTU1By
aW1pdGl2ZVZhbHVlPihtX2lubmVyVmFsdWUuZ2V0KCkpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPihtX2lubmVyVmFsdWUuZ2V0KCkpLT5pc1VSSSgpKSB7Ci0gICAgICAgICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ1cmwo
Iik7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHF1b3RlQ1NTVVJMSWZOZWVkZWQoZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KG1faW5uZXJWYWx1ZS5nZXQoKSktPmdldFN0cmluZ1ZhbHVl
KCkpKTsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IHJldHVybiBtX2lubmVyVmFsdWUtPmNzc1RleHQoKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJu
ICIiOwotfQotCi1ib29sIFdlYktpdENTU1Jlc291cmNlVmFsdWU6OmlzQ1NTVmFsdWVOb25lKCkg
Y29uc3QKLXsKLSAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KG1faW5uZXJWYWx1ZS5nZXQo
KSkpIHsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwcmltaXRpdmVWYWx1ZSA9
IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPihtX2lubmVyVmFsdWUuZ2V0KCkpOwotICAgICAg
ICByZXR1cm4gKHByaW1pdGl2ZVZhbHVlLT5pc1ZhbHVlSUQoKSAmJiBwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVzb3Vy
Y2VWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1Jlc291cmNlVmFsdWUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5ODNkYmI3NjNlYmZjMTU4NDc2NjM4YTc1
OGRlYTYzMDVkZWI3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBT
eXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJ
UyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgot
ICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYktpdENTU1Jlc291
cmNlVmFsdWVfaAotI2RlZmluZSBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlX2gKLQotI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV2ViS2l0Q1NTUmVzb3Vy
Y2VWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJL
aXRDU1NSZXNvdXJjZVZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcmVzb3VyY2VW
YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdENTU1Jlc291
cmNlVmFsdWUocmVzb3VyY2VWYWx1ZSkpOwotICAgIH0KLQotICAgIFN0cmluZyBjdXN0b21DU1NU
ZXh0KCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gaW5uZXJWYWx1ZSgpIHsgcmV0
dXJuIG1faW5uZXJWYWx1ZTsgfTsKLSAgICBib29sIGlzQ1NTVmFsdWVOb25lKCkgY29uc3Q7Ci1w
cml2YXRlOgotICAgIFdlYktpdENTU1Jlc291cmNlVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cmVzb3VyY2VWYWx1ZSk7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBtX2lubmVyVmFsdWU7Ci19Owot
Ci19Ci0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKFdlYktpdENTU1Jlc291cmNl
VmFsdWUsIGlzV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZSgpKQotCi0jZW5kaWYgLy8gV2ViS2l0Q1NT
UmVzb3VyY2VWYWx1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2YzMwZDc0NWJjMDBkNTYzYzhkNTVkZTFhYjA5
ZjFmODE4NjE3OWMwLi4wZWM0NTRhYmFhYWQ5ODIyOGI4NjAzYjI5ZmYzNTllMWU1Y2JiZWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTg4NCwxNCArODg0LDYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVtb3ZlQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgIG1fZG9j
dW1lbnRSZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLnVybCgpKTsKIH0KIAotdm9pZCBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6YWRkQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNl
KQotewotICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLnVybCgpLCAmcmVzb3Vy
Y2UpOwotCi0gICAgaWYgKCFNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkuYWRkKHJlc291cmNlKSkK
LSAgICAgICAgcmVzb3VyY2Uuc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcyk7Ci19
Ci0KIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWREb25lKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSwgYm9vbCBzaG91bGRQZXJmb3JtUG9zdExvYWRBY3Rpb25zKQogewogICAgIFJlZlB0
cjxEb2N1bWVudExvYWRlcj4gcHJvdGVjdERvY3VtZW50TG9hZGVyKG1fZG9jdW1lbnRMb2FkZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCA1NDQ3ZDRmMjExYThlYzI4NDgyNDllOGJjNjlhZmM3MmJiMGNmMWMwLi40M2I5
YmE3NTE2YWVjYWRkMWEyYTAzMDdjMTM4MGU4ODYyYTI1Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMTE1LDcgKzEx
NSw2IEBAIHB1YmxpYzoKICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKICAgICB2
b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlJik7Ci0gICAgdm9pZCBhZGRD
YWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYpOwogCiAgICAgdm9pZCBsb2FkRG9uZShDYWNo
ZWRSZXNvdXJjZSosIGJvb2wgc2hvdWxkUGVyZm9ybVBvc3RMb2FkQWN0aW9ucyA9IHRydWUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNw
cAppbmRleCAzM2UwN2U4NzBmNDBlY2ZiNDc1MThiM2M2NGZkNWU3MTcyNjU0MThjLi5hNTIzMDIw
MWIwZjcxMGQzOWE1YmRiYjFhNmQ2YTJiODUyNjA3ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKQEAgLTIzLDEzICsyMyw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKIAot
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCi0j
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiTWFpbkZyYW1lLmgiCi0jaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCi0jaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzcsOCArMzAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBDYWNoZWRTVkdEb2N1bWVudDo6
Q2FjaGVkU1ZHRG9jdW1lbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgU1ZHRG9jdW1lbnRS
ZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6
OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIikpCi0gICAgLCBtX3Nob3VsZENyZWF0ZUZyYW1lRm9y
RG9jdW1lbnQodHJ1ZSkKLSAgICAsIG1fY2FuUmV1c2VSZXNvdXJjZSh0cnVlKQogewogICAgIHNl
dEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwogfQpAQCAtNjAsMTcgKzUxLDkgQEAgU3RyaW5nIENh
Y2hlZFNWR0RvY3VtZW50OjplbmNvZGluZygpIGNvbnN0CiB2b2lkIENhY2hlZFNWR0RvY3VtZW50
OjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKIHsKICAgICBpZiAoZGF0YSkgewot
ICAgICAgICAvLyBJbiBjZXJ0YWluIHNpdHVhdGlvbnMgKGxpa2UgdGhlIHNjZW5hcmlvIHdoZW4g
dGhpcyBkb2N1bWVudCBiZWxvbmdzIHRvIGFuIFVzZUVsZW1lbnQpIHdlIGRvbid0IG5lZWQgdG8g
Y3JlYXRlIGEgZnJhbWUuCi0gICAgICAgIGlmIChtX3Nob3VsZENyZWF0ZUZyYW1lRm9yRG9jdW1l
bnQpIHsKLSAgICAgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uOwot
ICAgICAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBtX3BhZ2UgPSBQYWdlOjpjcmVhdGVQYWdlRnJvbUJ1ZmZl
cihwYWdlQ29uZmlndXJhdGlvbiwgZGF0YSwgImltYWdlL3N2Zyt4bWwiLCBmYWxzZSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBtX2RvY3VtZW50ID0gZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KG1fcGFnZS0+
bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBt
X2RvY3VtZW50ID0gU1ZHRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCByZXNwb25zZSgpLnVybCgp
KTsKLSAgICAgICAgICAgIG1fZG9jdW1lbnQtPnNldENvbnRlbnQobV9kZWNvZGVyLT5kZWNvZGVB
bmRGbHVzaChkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSkpOwotICAgICAgICB9CisgICAgICAg
IC8vIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgbmV3IGZyYW1lIGJlY2F1c2UgdGhlIG5ldyBk
b2N1bWVudCBiZWxvbmdzIHRvIHRoZSBwYXJlbnQgVXNlRWxlbWVudC4KKyAgICAgICAgbV9kb2N1
bWVudCA9IFNWR0RvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgcmVzcG9uc2UoKS51cmwoKSk7Cisg
ICAgICAgIG1fZG9jdW1lbnQtPnNldENvbnRlbnQobV9kZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChk
YXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSkpOwogICAgIH0KICAgICBDYWNoZWRSZXNvdXJjZTo6
ZmluaXNoTG9hZGluZyhkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50LmgKaW5kZXggNzJiNzg2NDQyMWRjZDUzNWU1NWQ1MmE2YWZmNDJh
M2YyNWI4ZjRhMy4uYTc5MWNkODMxZDM2ZmE1YzhlZmE3NTZjZWUyYmMxYzA3Y2FjZDM3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKQEAg
LTM2LDkgKzM2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7
CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRTaG91bGRDcmVhdGVGcmFtZUZvckRvY3VtZW50KGJvb2wg
c2hvdWxkQ3JlYXRlKSB7IG1fc2hvdWxkQ3JlYXRlRnJhbWVGb3JEb2N1bWVudCA9IHNob3VsZENy
ZWF0ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5SZXVzZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NhblJldXNlUmVzb3VyY2U7IH0KLSAgICB2b2lk
IHNldENhblJldXNlKGJvb2wgY2FuUmV1c2VSZXNvdXJjZSkgeyBtX2NhblJldXNlUmVzb3VyY2Ug
PSBjYW5SZXVzZVJlc291cmNlOyB9OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBtYXlU
cnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBA
IC00OCw5ICs0NSw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8U1ZHRG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGFnZT4gbV9wYWdlOwotICAgIGJvb2wgbV9zaG91bGRDcmVhdGVGcmFt
ZUZvckRvY3VtZW50OwotICAgIGJvb2wgbV9jYW5SZXVzZVJlc291cmNlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHAKaW5kZXggYzYyN2Y0ZWZjMWNiMDFl
NDdhMmY2NGQ1OGY1OWYwNmU3MzQxNzY0OC4uN2NjMWU1Y2YxODBmMTRlOWQzOTI0NGQ4MTk4NWM5
NmYwOTFjZTI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC0zNCwyMyArMzQsMTcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6Q2FjaGVk
U1ZHRG9jdW1lbnRSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiB1cmwsIENhY2hlZFNWR0RvY3VtZW50
Q2xpZW50KiBhZGRpdGlvbmFsRG9jdW1lbnRDbGllbnQsIGJvb2wgY2FuUmV1c2VSZXNvdXJjZSkK
K0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZShj
b25zdCBTdHJpbmcmIHVybCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fZG9jdW1lbnQoMCkK
ICAgICAsIG1fbG9hZFJlcXVlc3RlZChmYWxzZSkKLSAgICAsIG1fYWRkaXRpb25hbERvY3VtZW50
Q2xpZW50KGFkZGl0aW9uYWxEb2N1bWVudENsaWVudCkKLSAgICAsIG1fY2FuUmV1c2VSZXNvdXJj
ZShjYW5SZXVzZVJlc291cmNlKQogewogfQogCiBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6
fkNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKCkKIHsKLSAgICBpZiAobV9kb2N1bWVudCkgewor
ICAgIGlmIChtX2RvY3VtZW50KQogICAgICAgICBtX2RvY3VtZW50LT5yZW1vdmVDbGllbnQodGhp
cyk7Ci0gICAgICAgIAotICAgICAgICBpZiAobV9hZGRpdGlvbmFsRG9jdW1lbnRDbGllbnQpCi0g
ICAgICAgICAgICBtX2RvY3VtZW50LT5yZW1vdmVDbGllbnQobV9hZGRpdGlvbmFsRG9jdW1lbnRD
bGllbnQpOwotICAgIH0KIH0KIAogdm9pZCBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6bG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQpAQCAtNjEsMTMgKzU1LDggQEAgdm9pZCBD
YWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9h
ZGVyKQogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChs
b2FkZXIuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgcmVxdWVzdC5zZXRJ
bml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CiAgICAgbV9k
b2N1bWVudCA9IGxvYWRlci5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7Ci0gICAgaWYgKG1f
ZG9jdW1lbnQpIHsKLSAgICAgICAgbV9kb2N1bWVudC0+c2V0Q2FuUmV1c2UobV9jYW5SZXVzZVJl
c291cmNlKTsKKyAgICBpZiAobV9kb2N1bWVudCkKICAgICAgICAgbV9kb2N1bWVudC0+YWRkQ2xp
ZW50KHRoaXMpOwotICAgICAgICAKLSAgICAgICAgaWYgKG1fYWRkaXRpb25hbERvY3VtZW50Q2xp
ZW50KQotICAgICAgICAgICAgbV9kb2N1bWVudC0+YWRkQ2xpZW50KG1fYWRkaXRpb25hbERvY3Vt
ZW50Q2xpZW50KTsKLSAgICB9CiAKICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVm
ZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRS
ZWZlcmVuY2UuaAppbmRleCA1ZTAzMmFkN2E4YTY4NzRkNmI2Nzg3N2I0ZDQ2YWViZTE2MzQzMzk4
Li41ZDY5MzMyNTBhMjMxZTA2YWUyNGE3NDIwZTdjY2Y1ZWI0OGJiYmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2UuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIAogY2xh
c3MgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UgOiBwdWJsaWMgQ2FjaGVkU1ZHRG9jdW1lbnRD
bGllbnQgewogcHVibGljOgotICAgIENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKGNvbnN0IFN0
cmluZyYgdXJsLCBDYWNoZWRTVkdEb2N1bWVudENsaWVudCogYWRkaXRpb25hbERvY3VtZW50Q2xp
ZW50ID0gbnVsbHB0ciwgYm9vbCBjYW5SZXVzZVJlc291cmNlID0gdHJ1ZSk7CisgICAgQ2FjaGVk
U1ZHRG9jdW1lbnRSZWZlcmVuY2UoY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIH5DYWNo
ZWRTVkdEb2N1bWVudFJlZmVyZW5jZSgpOwogCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fdXJsOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3Vt
ZW50PiBtX2RvY3VtZW50OwogICAgIGJvb2wgbV9sb2FkUmVxdWVzdGVkOwotICAgIENhY2hlZFNW
R0RvY3VtZW50Q2xpZW50KiBtX2FkZGl0aW9uYWxEb2N1bWVudENsaWVudDsKLSAgICBib29sIG1f
Y2FuUmV1c2VSZXNvdXJjZTsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5k
ZXggNWZkMTU1OWFkODc5MWRhMmVmODQxOTkzY2UzY2EyNWEyNjU1MTE3Zi4uYmFjYzNmOGYwNzYz
ODUyMGRhYTY4NjZjNmE5ZjEyNzUxMTYxMjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtNDUwOCwxNCArNDUwOCw2IEBAIGJvb2wgRnJhbWVWaWV3Ojppc0ZsaXBwZWREb2N1bWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlclZpZXctPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKTsKIH0KIAotYm9vbCBGcmFtZVZpZXc6OmNvbnRhaW5zU1ZHRG9jdW1lbnQo
KSBjb25zdAotewotICAgIGlmIChmcmFtZSgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBm
cmFtZSgpLmRvY3VtZW50KCktPmlzU1ZHRG9jdW1lbnQoKTsKLSAgICAKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIHZvaWQgRnJhbWVWaWV3Ojpub3RpZnlXaWRnZXRzSW5BbGxGcmFtZXMoV2lkZ2V0
Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKIHsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gbV9m
cmFtZS5wdHIoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9m
cmFtZS5wdHIoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGFhOWRmZDU4ZDFjOTI3
MWYwZWI3NTU4NTY1MmUwOGJkNjRkOTNkNGMuLjJhZTE2NzRkMGU5M2I3ZWI5NDJjMzgyZGE5ZDY3
ODIyMDk5ZDMyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNTYxLDcgKzU2MSw2IEBA
IHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGbGlwcGVkRG9jdW1lbnQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNTVkdEb2N1bWVudCgpIGNvbnN0IG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEZyYW1lVmlldyhGcmFtZSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MC4uODFiOTA5YmZmMmZmMWIzYmU3NGM2M2U0ZDM2NDhiYTA4ODU4NTM2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEYXRhYmFzZVBy
b3ZpZGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKQEAgLTI4MywzMyArMjgyLDYgQEAg
UGFnZTo6flBhZ2UoKQogICAgIG1fdmlzaXRlZExpbmtTdG9yZS0+cmVtb3ZlUGFnZSgqdGhpcyk7
CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBQYWdlOjpjcmVhdGVQYWdlRnJvbUJ1ZmZlcihQ
YWdlQ29uZmlndXJhdGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNoYXJlZEJ1ZmZlciog
YnVmZmVyLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGNhbkhhdmVTY3JvbGxiYXJzLCBi
b29sIHRyYW5zcGFyZW50KQotewotICAgIEFTU0VSVChidWZmZXIpOwotICAgIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxQYWdlPiBuZXdQYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlPihwYWdlQ29u
ZmlndXJhdGlvbik7Ci0gICAgbmV3UGFnZS0+c2V0dGluZ3MoKS5zZXRNZWRpYUVuYWJsZWQoZmFs
c2UpOwotICAgIG5ld1BhZ2UtPnNldHRpbmdzKCkuc2V0U2NyaXB0RW5hYmxlZChmYWxzZSk7Ci0g
ICAgbmV3UGFnZS0+c2V0dGluZ3MoKS5zZXRQbHVnaW5zRW5hYmxlZChmYWxzZSk7Ci0gICAgCi0g
ICAgRnJhbWUmIGZyYW1lID0gbmV3UGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUuc2V0Vmll
dyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZSkpOwotICAgIGZyYW1lLmluaXQoKTsKLSAgICBGcmFt
ZUxvYWRlciYgbG9hZGVyID0gZnJhbWUubG9hZGVyKCk7Ci0gICAgbG9hZGVyLmZvcmNlU2FuZGJv
eEZsYWdzKFNhbmRib3hBbGwpOwotICAgIAotICAgIGZyYW1lLnZpZXcoKS0+c2V0Q2FuSGF2ZVNj
cm9sbGJhcnMoY2FuSGF2ZVNjcm9sbGJhcnMpOwotICAgIGZyYW1lLnZpZXcoKS0+c2V0VHJhbnNw
YXJlbnQodHJhbnNwYXJlbnQpOwotICAgIAotICAgIEFTU0VSVChsb2FkZXIuYWN0aXZlRG9jdW1l
bnRMb2FkZXIoKSk7IC8vIERvY3VtZW50TG9hZGVyIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBi
eSBmcmFtZS0+aW5pdCgpLgotICAgIGxvYWRlci5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0
ZXIoKS5zZXRNSU1FVHlwZShtaW1lVHlwZSk7Ci0gICAgbG9hZGVyLmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCktPndyaXRlcigpLmJlZ2luKFVSTCgpKTsgLy8gY3JlYXRlIHRoZSBlbXB0eSBkb2N1bWVu
dAotICAgIGxvYWRlci5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS5hZGREYXRhKGJ1
ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7Ci0gICAgbG9hZGVyLmFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPndyaXRlcigpLmVuZCgpOwotICAgIAotICAgIHJldHVybiBuZXdQYWdlOwotfQot
CiB2b2lkIFBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKEhpc3RvcnlJdGVtKiBp
dGVtKQogewogICAgIGlmICghYWxsUGFnZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDI2NGI4ZDRhMGUy
Y2NkYzYxZjI0OWMwMWNjY2U5ZWRlNmU0ZGVjZTcuLjE0MjFmNDliNjg0ODJkNmY5NGU4MTA1MzIy
OWM0OWI0NmIwMGRhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTcsNyArMTE3LDYgQEAgY2xhc3Mg
Vmlld1N0YXRlQ2hhbmdlT2JzZXJ2ZXI7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogCiB0eXBl
ZGVmIHVpbnQ2NF90IExpbmtIYXNoOwotY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBlbnVtIEZpbmRE
aXJlY3Rpb24geyBGaW5kRGlyZWN0aW9uRm9yd2FyZCwgRmluZERpcmVjdGlvbkJhY2t3YXJkIH07
CiAKQEAgLTEzNSw4ICsxMzQsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2Uo
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7
Ci0gICAgCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRnJvbUJ1
ZmZlcihQYWdlQ29uZmlndXJhdGlvbiYsIGNvbnN0IFNoYXJlZEJ1ZmZlciosIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGJvb2wgY2FuSGF2ZVNjcm9sbGJhcnMsIGJvb2wgdHJhbnNwYXJlbnQpOwog
CiAgICAgdm9pZCBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDZlOGRmNzJmNTczYzUzZGFkYWUxNjBjNjZlYWM5
YWFmNTU2NTQ5MjguLmQyZDczMzA1NWEwNmZjNjg0YWY1MDBmZDc2ZDliODBmNTEyYmE2OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTQwOCw3ICs0MDgsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gU3ViY2xhc3NlZCBieSBGcmFtZVZpZXcgdG8gY2hlY2sgdGhlIHdyaXRp
bmctbW9kZSBvZiB0aGUgZG9jdW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzVmVydGljYWxEb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGbGlwcGVk
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjb250
YWluc1NWR0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIENhbGxl
ZCB0byB1cGRhdGUgdGhlIHNjcm9sbGJhcnMgdG8gYWNjdXJhdGVseSByZWZsZWN0IHRoZSBzdGF0
ZSBvZiB0aGUgdmlldy4KICAgICB2b2lkIHVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgSW50U2l6ZSYg
ZGVzaXJlZE9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmMyODNmNGM0NmZjOGQ5NjY2NDQ4OTgxMmNmNDBhY2MzODVmNDBiZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NYXNrSW1hZ2VPcGVyYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjc4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBv
cmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICog
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1hc2tJ
bWFnZU9wZXJhdGlvbi5oIgotCi0jaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCi0jaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJDYWNoZWRTVkdEb2N1bWVudC5oIgotI2luY2x1ZGUg
IlJlbmRlckJveE1vZGVsT2JqZWN0LmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIuaCIKLSNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgotI2luY2x1ZGUgIlNWR01hc2tFbGVtZW50
LmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgotI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1h
Z2UuaCIKLSNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIldlYktpdENT
U1Jlc291cmNlVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPE1h
c2tJbWFnZU9wZXJhdGlvbj4gTWFza0ltYWdlT3BlcmF0aW9uOjpjcmVhdGUoUGFzc1JlZlB0cjxX
ZWJLaXRDU1NSZXNvdXJjZVZhbHVlPiBjc3NWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgZnJhZ21lbnQsIGJvb2wgaXNFeHRlcm5hbERvY3VtZW50LCBQYXNzUmVmUHRyPENh
Y2hlZFJlc291cmNlTG9hZGVyPiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1hc2tJbWFnZU9wZXJhdGlvbihjc3NWYWx1ZSwgdXJsLCBmcmFnbWVudCwg
aXNFeHRlcm5hbERvY3VtZW50LCBjYWNoZWRSZXNvdXJjZUxvYWRlcikpOwotfQotCi1QYXNzUmVm
UHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gTWFza0ltYWdlT3BlcmF0aW9uOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxTdHlsZUltYWdlPiBnZW5lcmF0ZWRJbWFnZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1hc2tJbWFnZU9wZXJhdGlvbihnZW5lcmF0ZWRJbWFnZSkpOwotfQotCi1QYXNzUmVmUHRy
PE1hc2tJbWFnZU9wZXJhdGlvbj4gTWFza0ltYWdlT3BlcmF0aW9uOjpjcmVhdGUoKQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTWFza0ltYWdlT3BlcmF0aW9uKCkpOwotfQotCi1NYXNrSW1h
Z2VPcGVyYXRpb246Ok1hc2tJbWFnZU9wZXJhdGlvbihQYXNzUmVmUHRyPFdlYktpdENTU1Jlc291
cmNlVmFsdWU+IGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFn
bWVudCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFBhc3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VM
b2FkZXI+IGNhY2hlZFJlc291cmNlTG9hZGVyKQotICAgIDogbV91cmwodXJsKQotICAgICwgbV9m
cmFnbWVudChmcmFnbWVudCkKLSAgICAsIG1faXNFeHRlcm5hbERvY3VtZW50KGlzRXh0ZXJuYWxE
b2N1bWVudCkKLSAgICAsIG1fcmVuZGVyTGF5ZXJJbWFnZUNsaWVudChudWxscHRyKQotICAgICwg
bV9jc3NNYXNrSW1hZ2VWYWx1ZShjc3NWYWx1ZSkKLSAgICAsIG1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpCi17Ci0gICAgQVNTRVJUKG1fY3NzTWFza0ltYWdlVmFs
dWUuZ2V0KCkpOwotfQotCi1NYXNrSW1hZ2VPcGVyYXRpb246Ok1hc2tJbWFnZU9wZXJhdGlvbihQ
YXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGdlbmVyYXRlZEltYWdlKQotICAgIDogbV9pc0V4dGVybmFs
RG9jdW1lbnQoZmFsc2UpCi0gICAgLCBtX3N0eWxlSW1hZ2UoZ2VuZXJhdGVkSW1hZ2UpCi0gICAg
LCBtX3JlbmRlckxheWVySW1hZ2VDbGllbnQobnVsbHB0cikKLXsKLX0KLQotTWFza0ltYWdlT3Bl
cmF0aW9uOjpNYXNrSW1hZ2VPcGVyYXRpb24oKQotICAgIDogbV9pc0V4dGVybmFsRG9jdW1lbnQo
ZmFsc2UpCi0gICAgLCBtX3JlbmRlckxheWVySW1hZ2VDbGllbnQobnVsbHB0cikKLXsKLX0KLQot
TWFza0ltYWdlT3BlcmF0aW9uOjp+TWFza0ltYWdlT3BlcmF0aW9uKCkKLXsKLX0KLQotYm9vbCBN
YXNrSW1hZ2VPcGVyYXRpb246OmlzQ1NTVmFsdWVOb25lKCkgY29uc3QKLXsKLSAgICBpZiAoaW1h
Z2UoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuICFtX2Nzc01hc2tJbWFn
ZVZhbHVlIHx8IG1fY3NzTWFza0ltYWdlVmFsdWUtPmlzQ1NTVmFsdWVOb25lKCk7Ci19Ci0KLVBh
c3NSZWZQdHI8Q1NTVmFsdWU+IE1hc2tJbWFnZU9wZXJhdGlvbjo6Y3NzVmFsdWUoKQotewotICAg
IGlmIChpbWFnZSgpKQotICAgICAgICByZXR1cm4gaW1hZ2UoKS0+Y3NzVmFsdWUoKTsKLSAgICAK
LSAgICBpZiAoaXNDU1NWYWx1ZU5vbmUoKSkKLSAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwotCi0gICAgQVNTRVJUKG1fY3Nz
TWFza0ltYWdlVmFsdWUuZ2V0KCkpOwotICAgIHJldHVybiBtX2Nzc01hc2tJbWFnZVZhbHVlLmdl
dCgpOwotfQotCi1ib29sIE1hc2tJbWFnZU9wZXJhdGlvbjo6aXNNYXNrTG9hZGVkKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1faXNFeHRlcm5hbERvY3VtZW50KQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIGlmIChpbWFnZSgpKQotICAgICAgICByZXR1cm4gKGltYWdlKCktPmNhY2hlZEltYWdl
KCkgJiYgaW1hZ2UoKS0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2UoKSk7Ci0gICAgCi0gICAgaWYgKG1f
Y2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCkpIHsKLSAgICAgICAgaWYgKENhY2hlZFNW
R0RvY3VtZW50KiBjYWNoZWRTVkdEb2N1bWVudCA9IG1fY2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2UtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gKGNhY2hlZFNWR0RvY3VtZW50LT5k
b2N1bWVudCgpICE9IG51bGxwdHIpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLXZvaWQgTWFza0ltYWdlT3BlcmF0aW9uOjpzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+IGltYWdlKQotewotICAgIGlmIChtX3N0eWxlSW1hZ2UgPT0gaW1hZ2UpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChtX3N0eWxlSW1hZ2UpIHsKLSAgICAgICAgaWYgKG1fcmVuZGVyTGF5
ZXJJbWFnZUNsaWVudCAmJiBtX3N0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCkpCi0gICAgICAgICAg
ICBtX3N0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCktPnJlbW92ZUNsaWVudChtX3JlbmRlckxheWVy
SW1hZ2VDbGllbnQpOwotICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fcmVuZGVyZXJJbWFn
ZUNsaWVudHMpCi0gICAgICAgICAgICBtX3N0eWxlSW1hZ2UtPnJlbW92ZUNsaWVudChjbGllbnQu
a2V5KTsKLSAgICB9Ci0KLSAgICBtX3N0eWxlSW1hZ2UgPSBpbWFnZTsKLQotICAgIGlmIChtX3N0
eWxlSW1hZ2UpIHsKLSAgICAgICAgaWYgKG1fcmVuZGVyTGF5ZXJJbWFnZUNsaWVudCAmJiBtX3N0
eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCkpCi0gICAgICAgICAgICBtX3N0eWxlSW1hZ2UtPmNhY2hl
ZEltYWdlKCktPmFkZENsaWVudChtX3JlbmRlckxheWVySW1hZ2VDbGllbnQpOwotICAgICAgICBm
b3IgKGF1dG8mIGNsaWVudCA6IG1fcmVuZGVyZXJJbWFnZUNsaWVudHMpCi0gICAgICAgICAgICBt
X3N0eWxlSW1hZ2UtPmFkZENsaWVudChjbGllbnQua2V5KTsKLSAgICB9Ci19Ci0KLXZvaWQgTWFz
a0ltYWdlT3BlcmF0aW9uOjpzZXRSZW5kZXJMYXllckltYWdlQ2xpZW50KENhY2hlZEltYWdlQ2xp
ZW50KiBjbGllbnQpCi17Ci0gICAgaWYgKG1fcmVuZGVyTGF5ZXJJbWFnZUNsaWVudCA9PSBjbGll
bnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2Ug
PSAoaW1hZ2UoKSA/IGltYWdlKCktPmNhY2hlZEltYWdlKCkgOiBudWxscHRyKSkgewotICAgICAg
ICBpZiAobV9yZW5kZXJMYXllckltYWdlQ2xpZW50KQotICAgICAgICAgICAgY2FjaGVkSW1hZ2Ut
PnJlbW92ZUNsaWVudChtX3JlbmRlckxheWVySW1hZ2VDbGllbnQpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKGNsaWVudCkKLSAgICAgICAgICAgIGNhY2hlZEltYWdlLT5hZGRDbGllbnQoY2xpZW50
KTsKLSAgICB9Ci0KLSAgICBtX3JlbmRlckxheWVySW1hZ2VDbGllbnQgPSBjbGllbnQ7Ci19Ci0K
LXZvaWQgTWFza0ltYWdlT3BlcmF0aW9uOjphZGRSZW5kZXJlckltYWdlQ2xpZW50KFJlbmRlckVs
ZW1lbnQqIGNsaWVudCkKLXsKLSAgICBBU1NFUlQoY2xpZW50KTsKLQotICAgIGlmIChtX3N0eWxl
SW1hZ2UuZ2V0KCkpCi0gICAgICAgIG1fc3R5bGVJbWFnZS0+YWRkQ2xpZW50KGNsaWVudCk7Ci0g
ICAgCi0gICAgbV9yZW5kZXJlckltYWdlQ2xpZW50cy5hZGQoY2xpZW50KTsKLX0KLQotdm9pZCBN
YXNrSW1hZ2VPcGVyYXRpb246OnJlbW92ZVJlbmRlcmVySW1hZ2VDbGllbnQoUmVuZGVyRWxlbWVu
dCogY2xpZW50KQotewotICAgIEFTU0VSVChjbGllbnQgJiYgbV9yZW5kZXJlckltYWdlQ2xpZW50
cy5jb250YWlucyhjbGllbnQpKTsKLSAgICAKLSAgICBpZiAobV9zdHlsZUltYWdlLmdldCgpKQot
ICAgICAgICBtX3N0eWxlSW1hZ2UtPnJlbW92ZUNsaWVudChjbGllbnQpOwotICAgIAotICAgIG1f
cmVuZGVyZXJJbWFnZUNsaWVudHMucmVtb3ZlKGNsaWVudCk7Ci19Ci0KLUNhY2hlZFNWR0RvY3Vt
ZW50UmVmZXJlbmNlKiBNYXNrSW1hZ2VPcGVyYXRpb246OmVuc3VyZUNhY2hlZFNWR0RvY3VtZW50
UmVmZXJlbmNlKCkKLXsKLSAgICAvLyBJZiB3ZSBlbmRlZCB1cCBsb2FkaW5nIHRoZSBkYXRhIGlu
dG8gYW4gSW1hZ2UsIHRoZW4gdGhlIFNWRyBkb2N1bWVudCB3YXMgbm90IHZhbGlkLgotICAgIGlm
IChpbWFnZSgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmICghbV9jYWNoZWRT
VkdEb2N1bWVudFJlZmVyZW5jZS5nZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTVkdEb2N1bWVudFJl
ZmVyZW5jZSA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U+KG1f
dXJsLCB0aGlzLCBmYWxzZSk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2UuZ2V0KCk7Ci19Ci0KLXZvaWQgTWFza0ltYWdlT3BlcmF0aW9uOjpub3RpZnlGaW5pc2hlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCi17Ci0gICAgLy8gVGhlIG9ubHkgb25lIG5vdGlmeWlu
ZyB1cyBzaG91bGQgYmUgdGhlIFNWRyBkb2N1bWVudCB3ZSBob2xkLgotICAgIENhY2hlZFNWR0Rv
Y3VtZW50KiBjYWNoZWRTVkdEb2N1bWVudCA9IGVuc3VyZUNhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlKCktPmRvY3VtZW50KCk7Ci0gICAgaWYgKChDYWNoZWRSZXNvdXJjZSopY2FjaGVkU1ZHRG9j
dW1lbnQgIT0gcmVzb3VyY2UgfHwgIXJlc291cmNlKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIC8vIENoZWNrIGlmIHdl
IGZpbmQgYSB2YWxpZCBtYXNraW5nIGVsZW1lbnQgaW4gdGhpcyBTVkcgZG9jdW1lbnQuCi0gICAg
U1ZHRG9jdW1lbnQqIHN2Z0RvY3VtZW50ID0gY2FjaGVkU1ZHRG9jdW1lbnQtPmRvY3VtZW50KCk7
Ci0gICAgYm9vbCB2YWxpZE1hc2tGb3VuZCA9IGZhbHNlOwotICAgIGlmIChzdmdEb2N1bWVudCAm
JiBzdmdEb2N1bWVudC0+cm9vdEVsZW1lbnQoKSkgewotICAgICAgICAvLyBBcmUgd2UgbG9va2lu
ZyBmb3IgYSBzcGVjaWZpYyBlbGVtZW50IGluIHRoZSBTVkcgZG9jdW1lbnQ/Ci0gICAgICAgIGlm
IChmcmFnbWVudCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAoRWxlbWVudCogbWFza2lu
Z0VsZW1lbnQgPSBzdmdEb2N1bWVudC0+cm9vdEVsZW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZnJh
Z21lbnQoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXM8U1ZHTWFza0VsZW1lbnQ+KG1hc2tp
bmdFbGVtZW50KSkKLSAgICAgICAgICAgICAgICAgICAgdmFsaWRNYXNrRm91bmQgPSB0cnVlOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIC8vIElmIG5vIHZhbGlk
IG1hc2sgd2FzIGZvdW5kLCB0aGlzIGlzIG5vdCBhIHZhbGlkIFNWRyBkb2N1bWVudCBvciBpdCBz
cGVjaWZpZWQgYW4gaW52YWxpZCBmcmFnbWVudCBpZGVudGlmaWVyLgotICAgIC8vIEZhbGxiYWNr
IHRvIHRoZSBub3JtYWwgd2F5IG9mIGxvYWRpbmcgdGhlIGRvY3VtZW50IGluIGFuIEltYWdlIG9i
amVjdC4KLSAgICBpZiAoIXZhbGlkTWFza0ZvdW5kKSB7Ci0gICAgICAgIC8vIEdldCB0aGUgcmVz
b3VyY2UgbG9hZGVyLCBhY3F1aXJlIHRoZSByZXNvdXJjZSBidWZmZXIgYW5kIGxvYWQgaXQgaW50
byBhbiBpbWFnZS4KLSAgICAgICAgQVNTRVJUKGNhY2hlZFNWR0RvY3VtZW50LT5sb2FkZXIoKSk7
Ci0gICAgICAgIGlmIChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyID0gY2FjaGVkU1ZHRG9jdW1l
bnQtPmxvYWRlcigpKSB7Ci0gICAgICAgICAgICBpZiAoU2hhcmVkQnVmZmVyKiBkYXRhQnVmZmVy
ID0gbG9hZGVyLT5yZXNvdXJjZURhdGEoKSkgewotICAgICAgICAgICAgICAgIHNldEltYWdlKFN0
eWxlQ2FjaGVkSW1hZ2U6OmNyZWF0ZShuZXcgQ2FjaGVkSW1hZ2UoY2FjaGVkU1ZHRG9jdW1lbnQt
PnJlc291cmNlUmVxdWVzdCgpLCBjYWNoZWRTVkdEb2N1bWVudC0+c2Vzc2lvbklEKCkpKSk7Ci0K
LSAgICAgICAgICAgICAgICBtX3N0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCktPnNldFJlc3BvbnNl
KGNhY2hlZFNWR0RvY3VtZW50LT5yZXNwb25zZSgpKTsKLSAgICAgICAgICAgICAgICBtX3N0eWxl
SW1hZ2UtPmNhY2hlZEltYWdlKCktPmZpbmlzaExvYWRpbmcoZGF0YUJ1ZmZlcik7Ci0KLSAgICAg
ICAgICAgICAgICAvLyBMZXQgdGhlIGNhY2hlZCByZXNvdXJjZSBsb2FkZXIgb2YgdGhlIGRvY3Vt
ZW50IHdoaWNoIHJlcXVlc3RlZCB0aGlzIG1hc2sga2VlcCBhIGhhbmRsZSB0byB0aGlzCi0gICAg
ICAgICAgICAgICAgLy8gY2FjaGVkIGltYWdlIHRvIGVuc3VyZSBpdCBvbmx5IGdldHMgZGVsZXRl
ZCB3aGVuIGl0IHNob3VsZC4KLSAgICAgICAgICAgICAgICBpZiAobV9jYWNoZWRSZXNvdXJjZUxv
YWRlci5nZXQoKSkKLSAgICAgICAgICAgICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+
YWRkQ2FjaGVkUmVzb3VyY2UoKm1fc3R5bGVJbWFnZS0+Y2FjaGVkSW1hZ2UoKSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIERlc3Ryb3kgdGhlIGN1cnJlbnQg
U1ZHIGRvY3VtZW50IGFzIGl0cyBubyBsb25nZXIgbmVlZGVkCi0gICAgICAgICAgICBtX2NhY2hl
ZFNWR0RvY3VtZW50UmVmZXJlbmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQotICAgIH0KLX0KLQot
Ym9vbCBNYXNrSW1hZ2VPcGVyYXRpb246OmRyYXdNYXNrKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSYgZ2VvbWV0cnksIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCi17Ci0gICAgLy8gVGhpcyBtZXRo
b2Qgb25seSBoYW5kbGVzIGN1c3RvbSBtYXNrcy4KLSAgICBpZiAoaW1hZ2UoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKFJlbmRlclNWR1Jlc291cmNlTWFza2VyKiBzdmdNYXNr
ZXIgPSBnZXRTVkdNYXNrZXIocmVuZGVyZXIpKSB7Ci0gICAgICAgIHN2Z01hc2tlci0+ZHJhd01h
c2tGb3JSZW5kZXJlcihyZW5kZXJlciwgZ2VvbWV0cnksIGNvbnRleHQsIGNvbXBvc2l0ZU9wKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlciogTWFza0ltYWdlT3BlcmF0aW9uOjpnZXRTVkdNYXNrZXIo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCi17Ci0gICAgaWYgKGltYWdlKCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgLy8gSWRlbnRpZnkgdGhlIGVsZW1lbnQgcmVmZXJlbmNlZCBi
eSB0aGUgZnJhZ21lbnRJZC4KLSAgICBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSogc3ZnRG9j
dW1lbnRSZWZlcmVuY2UgPSBjYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSgpOwotICAgIEVsZW1l
bnQqIGVsZW1lbnRGb3JNYXNraW5nID0gbnVsbHB0cjsKLSAgICBSZW5kZXJPYmplY3QqIHN2Z1Jl
c291cmNlRm9yTWFza2luZyA9IG51bGxwdHI7Ci0gICAgaWYgKHN2Z0RvY3VtZW50UmVmZXJlbmNl
ICYmIHN2Z0RvY3VtZW50UmVmZXJlbmNlLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIFNWR0RvY3Vt
ZW50KiBzdmdEb2N1bWVudCA9IHN2Z0RvY3VtZW50UmVmZXJlbmNlLT5kb2N1bWVudCgpLT5kb2N1
bWVudCgpOwotICAgICAgICBpZiAoc3ZnRG9jdW1lbnQgJiYgc3ZnRG9jdW1lbnQtPnJvb3RFbGVt
ZW50KCkpCi0gICAgICAgICAgICBlbGVtZW50Rm9yTWFza2luZyA9IHN2Z0RvY3VtZW50LT5yb290
RWxlbWVudCgpLT5nZXRFbGVtZW50QnlJZChmcmFnbWVudCgpKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgZWxlbWVudEZvck1hc2tpbmcgPSByZW5kZXJlci5kb2N1bWVudCgpLmdldEVsZW1lbnRCeUlk
KGZyYWdtZW50KCkpOwotCi0gICAgaWYgKGVsZW1lbnRGb3JNYXNraW5nKQotICAgICAgICBzdmdS
ZXNvdXJjZUZvck1hc2tpbmcgPSBlbGVtZW50Rm9yTWFza2luZy0+cmVuZGVyZXIoKTsKLQotICAg
IC8vIENoZWNrIGlmIGl0J3MgdGhlIGNvcnJlY3QgdHlwZQotICAgIGlmIChzdmdSZXNvdXJjZUZv
ck1hc2tpbmcgJiYgc3ZnUmVzb3VyY2VGb3JNYXNraW5nLT5pc1NWR1Jlc291cmNlQ29udGFpbmVy
KCkgJiYgZG93bmNhc3Q8UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI+KHN2Z1Jlc291cmNlRm9y
TWFza2luZyktPnJlc291cmNlVHlwZSgpID09IE1hc2tlclJlc291cmNlVHlwZSkKLSAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR1Jlc291cmNlTWFza2VyKj4oc3ZnUmVzb3VyY2VG
b3JNYXNraW5nKTsKLQotICAgIHJldHVybiBudWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NYXNr
SW1hZ2VPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01hc2tJ
bWFnZU9wZXJhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzdmMjQ1NDFl
NDZiNjFmYmM2ZjQ3Nzc5M2RlNzdmNGYxNTNhNjQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01h
c2tJbWFnZU9wZXJhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIE1hc2tJbWFnZU9wZXJhdGlvbl9oCi0jZGVmaW5lIE1hc2tJbWFnZU9wZXJh
dGlvbl9oCi0KLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNh
Y2hlZFNWR0RvY3VtZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRSZWZl
cmVuY2UuaCIKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVk
ZSAiTGF5b3V0U2l6ZS5oIgotI2luY2x1ZGUgIkxlbmd0aC5oIgotI2luY2x1ZGUgIlN0eWxlSW1h
Z2UuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeTsKLWNsYXNzIENh
Y2hlZEltYWdlQ2xpZW50OwotY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI7Ci1jbGFzcyBX
ZWJLaXRDU1NSZXNvdXJjZVZhbHVlOwotCi1jbGFzcyBNYXNrSW1hZ2VPcGVyYXRpb24gZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxNYXNrSW1hZ2VPcGVyYXRpb24+LCBwdWJsaWMgQ2FjaGVkU1ZH
RG9jdW1lbnRDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJbWFn
ZU9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4gY3Nz
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50LCBib29sIGlz
RXh0ZXJuYWxEb2N1bWVudCwgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4pOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8
U3R5bGVJbWFnZT4gZ2VuZXJhdGVkSW1hZ2UpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hc2tJ
bWFnZU9wZXJhdGlvbj4gY3JlYXRlKCk7Ci0KLSAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NW
YWx1ZSgpOwotCi0gICAgdmlydHVhbCB+TWFza0ltYWdlT3BlcmF0aW9uKCk7Ci0KLSAgICBjb25z
dCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgY29uc3QgU3RyaW5n
JiBmcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnQ7IH0KLSAgICBTdHlsZUltYWdl
KiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVJbWFnZS5nZXQoKTsgfQotICAgIHZvaWQg
c2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPik7Ci0gICAgdm9pZCBzZXRSZW5kZXJMYXll
ckltYWdlQ2xpZW50KENhY2hlZEltYWdlQ2xpZW50Kik7Ci0gICAgdm9pZCBhZGRSZW5kZXJlcklt
YWdlQ2xpZW50KFJlbmRlckVsZW1lbnQqKTsKLSAgICB2b2lkIHJlbW92ZVJlbmRlcmVySW1hZ2VD
bGllbnQoUmVuZGVyRWxlbWVudCopOwotICAgIGJvb2wgaXNNYXNrTG9hZGVkKCkgY29uc3Q7Ci0g
ICAgYm9vbCBkcmF3TWFzayhSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgQmFja2dyb3VuZEltYWdl
R2VvbWV0cnkmLCBHcmFwaGljc0NvbnRleHQqLCBDb21wb3NpdGVPcGVyYXRvcik7Ci0gICAgYm9v
bCBpc0NTU1ZhbHVlTm9uZSgpIGNvbnN0OwotCi0gICAgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVu
Y2UqIGNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRT
VkdEb2N1bWVudFJlZmVyZW5jZS5nZXQoKTsgfQotICAgIENhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlKiBlbnN1cmVDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSgpOwotICAgIAotICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwotCi1wcml2
YXRlOgotICAgIE1hc2tJbWFnZU9wZXJhdGlvbihQYXNzUmVmUHRyPFdlYktpdENTU1Jlc291cmNl
VmFsdWU+IGNzc1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVu
dCwgYm9vbCBpc0V4dGVybmFsRG9jdW1lbnQsIFBhc3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI+KTsKLSAgICBNYXNrSW1hZ2VPcGVyYXRpb24oUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBnZW5l
cmF0ZWRJbWFnZSk7Ci0gICAgTWFza0ltYWdlT3BlcmF0aW9uKCk7Ci0KLSAgICBSZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlciogZ2V0U1ZHTWFza2VyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKTsKLQot
ICAgIFN0cmluZyBtX3VybDsKLSAgICBTdHJpbmcgbV9mcmFnbWVudDsKLSAgICBib29sIG1faXNF
eHRlcm5hbERvY3VtZW50OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRTVkdEb2N1bWVudFJl
ZmVyZW5jZT4gbV9jYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTsKLSAgICBSZWZQdHI8U3R5bGVJ
bWFnZT4gbV9zdHlsZUltYWdlOwotICAgIENhY2hlZEltYWdlQ2xpZW50KiBtX3JlbmRlckxheWVy
SW1hZ2VDbGllbnQ7Ci0gICAgSGFzaENvdW50ZWRTZXQ8UmVuZGVyRWxlbWVudCo+IG1fcmVuZGVy
ZXJJbWFnZUNsaWVudHM7Ci0gICAgUmVmUHRyPFdlYktpdENTU1Jlc291cmNlVmFsdWU+IG1fY3Nz
TWFza0ltYWdlVmFsdWU7Ci0gICAgUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hl
ZFJlc291cmNlTG9hZGVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gTWFza0ltYWdlT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IGUxZWUwMGM1NWE2NzBlNWU1ZTdjNGIxOWMwNDZiY2RmNzMyMDRiYmQuLmEz
YTYyZWQ0ODMwMGNhNTk1NWJmMDZjNWZiNjQ0ZmU4MGIyMGMwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODksNyArODksNiBAQAogI2luY2x1ZGUgIlJl
bmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVy
TWFza0ltYWdlSW5mby5oIgogI2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dG
cmFnbWVudC5oIgpAQCAtMzAzLDcgKzMwMiw2IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXJlckxheWVyTW9kZWxPYmplY3QpCiAgICAgLCBt
X2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCh0cnVlKQogI2VuZGlmCiAgICAgLCBtX2hhc0ZpbHRl
ckluZm8oZmFsc2UpCi0gICAgLCBtX2hhc01hc2tJbWFnZUluZm8oZmFsc2UpCiAjaWYgRU5BQkxF
KENTU19DT01QT1NJVElORykKICAgICAsIG1fYmxlbmRNb2RlKEJsZW5kTW9kZU5vcm1hbCkKICAg
ICAsIG1faGFzTm90SXNvbGF0ZWRDb21wb3NpdGVkQmxlbmRpbmdEZXNjZW5kYW50cyhmYWxzZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggODUzYTgxYzI5ZjU2MmFj
NzlmMTcyZjIwYTdlNjUzYTg4MGRhNmJmNy4uZDQ3MzZmOGU5ZmViMTg0YzU1OGM4NjgwY2VlMzk2
MDE4YTNjYTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTEw
NjEsNyArMTA2MSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9oYXNGaWx0ZXJJ
bmZvIDogMTsKLSAgICB1bnNpZ25lZCBtX2hhc01hc2tJbWFnZUluZm8gOiAxOwogCiAjaWYgRU5B
QkxFKENTU19DT01QT1NJVElORykKICAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZSA6IDU7CkBAIC0x
MTM4LDcgKzExMzcsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJMYXll
ckJhY2tpbmc+IG1fYmFja2luZzsKIAogICAgIGNsYXNzIEZpbHRlckluZm87Ci0gICAgY2xhc3Mg
TWFza0ltYWdlSW5mbzsKIH07CiAKIGlubGluZSB2b2lkIFJlbmRlckxheWVyOjpjbGVhclpPcmRl
ckxpc3RzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckZpbHRlckluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmls
dGVySW5mby5jcHAKaW5kZXggYjBiZDUxZmFhNDA4MGY1ZGEzZmY3ZGRjYTU2NTNkYzgxNDBiYzQ2
ZC4uNTljYzFhMzQ3ZjdmZmQwMDM3YTdlNTZjNGIzZjM1YzJjYjc3OGIwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckZpbHRlckluZm8uaCIKIAogI2luY2x1
ZGUgIkNhY2hlZFNWR0RvY3VtZW50LmgiCisjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnRSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJ
bmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgK
aW5kZXggMGYyOGY5NDU5MWZjMGJkZjkyOTM2MWNhY2ZkYjc1ZWJlMTcyOWI2OS4uMjFjNDNmMjNm
NDQ2ZDdlMTUwMWM0YmUzZGUzNDU1YzZlZGI3ZjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uaApAQCAtMzcsNiArMzcsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFNWR0RvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKIAogY2xhc3MgUmVuZGVyTGF5ZXI6OkZpbHRlckluZm8gZmluYWwgOiBwcml2YXRlIENh
Y2hlZFNWR0RvY3VtZW50Q2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1hc2tJbWFnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1hc2tJbWFnZUluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmFkY2I1N2IyMTkxOGJjYTE3YTExYTRhNWMzZDNiODMxY2RhZWU5ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvX2gKLSNkZWZp
bmUgUmVuZGVyTGF5ZXJNYXNrSW1hZ2VJbmZvX2gKLQotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
SGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBFbGVtZW50OwotCi1jbGFzcyBSZW5kZXJMYXllcjo6TWFza0ltYWdlSW5mbyBm
aW5hbCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIE1hc2tJbWFnZUluZm8mIGdldChSZW5kZXJMYXll
ciYpOwotICAgIHN0YXRpYyBNYXNrSW1hZ2VJbmZvKiBnZXRJZkV4aXN0cyhjb25zdCBSZW5kZXJM
YXllciYpOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZShSZW5kZXJMYXllciYpOwotCi0gICAgZXhw
bGljaXQgTWFza0ltYWdlSW5mbyhSZW5kZXJMYXllciYpOwotICAgIH5NYXNrSW1hZ2VJbmZvKCk7
Ci0KLSAgICB2b2lkIHVwZGF0ZU1hc2tJbWFnZUNsaWVudHMoKTsKLSAgICB2b2lkIHJlbW92ZU1h
c2tJbWFnZUNsaWVudHMoKTsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgSGFzaE1hcDxjb25zdCBS
ZW5kZXJMYXllciosIHN0ZDo6dW5pcXVlX3B0cjxNYXNrSW1hZ2VJbmZvPj4mIGxheWVyVG9NYXNr
TWFwKCk7Ci0KLSAgICBjbGFzcyBJbWFnZUNsaWVudDsKLSAgICBjbGFzcyBTVkdEb2N1bWVudENs
aWVudDsKLQotICAgIFJlbmRlckxheWVyJiBtX2xheWVyOwotCi0gICAgVmVjdG9yPFJlZlB0cjxF
bGVtZW50Pj4gbV9pbnRlcm5hbFNWR1JlZmVyZW5jZXM7Ci0gICAgVmVjdG9yPENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50Pj4gbV9leHRlcm5hbFNWR1JlZmVyZW5jZXM7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFNWR0RvY3VtZW50Q2xpZW50PiBtX3N2Z0RvY3VtZW50Q2xpZW50
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUNsaWVudD4gbV9pbWFnZUNsaWVudDsKLSAgICBW
ZWN0b3I8UmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4+IG1fbWFza0ltYWdlT3BlcmF0aW9uczsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFJlbmRlckxheWVyTWFz
a0ltYWdlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIu
Y3BwCmluZGV4IDVmMjE5YjA1NmI4NTBjOTc0MmFiMzFkZDgzODA4YzVjNjI0ZjU5ZTkuLjM3ZGFi
NTgwNmYzMzE2NDEwYmM5ZDAwMWYzZTg4YWNjZDkxY2I1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzRmlsbExheWVyIHsKICAgICBGaWxsTGF5ZXIqIG5leHQ7CiAKICAgICBSZWZQdHI8
U3R5bGVJbWFnZT4gaW1hZ2U7Ci0gICAgUmVmUHRyPE1hc2tJbWFnZU9wZXJhdGlvbj4gbWFza0lt
YWdlT3BlcmF0aW9uOwogCiAgICAgTGVuZ3RoIHg7CiAgICAgTGVuZ3RoIHk7CkBAIC03NCw3ICs3
Myw2IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAKIEZpbGxM
YXllcjo6RmlsbExheWVyKGNvbnN0IEZpbGxMYXllciYgbykKICAgICA6IG1fbmV4dChvLm1fbmV4
dCA/IHN0ZDo6bWFrZV91bmlxdWU8RmlsbExheWVyPigqby5tX25leHQpIDogbnVsbHB0cikKLSAg
ICAsIG1fbWFza0ltYWdlT3BlcmF0aW9uKG8ubV9tYXNrSW1hZ2VPcGVyYXRpb24pCiAgICAgLCBt
X2ltYWdlKG8ubV9pbWFnZSkKICAgICAsIG1feFBvc2l0aW9uKG8ubV94UG9zaXRpb24pCiAgICAg
LCBtX3lQb3NpdGlvbihvLm1feVBvc2l0aW9uKQpAQCAtMTE3LDcgKzExNSw2IEBAIEZpbGxMYXll
ciYgRmlsbExheWVyOjpvcGVyYXRvcj0oY29uc3QgRmlsbExheWVyJiBvKQogICAgIG1fbmV4dCA9
IG8ubV9uZXh0ID8gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXI+KCpvLm1fbmV4dCkgOiBudWxs
cHRyOwogCiAgICAgbV9pbWFnZSA9IG8ubV9pbWFnZTsKLSAgICBtX21hc2tJbWFnZU9wZXJhdGlv
biA9IG8ubV9tYXNrSW1hZ2VPcGVyYXRpb247CiAgICAgbV94UG9zaXRpb24gPSBvLm1feFBvc2l0
aW9uOwogICAgIG1feVBvc2l0aW9uID0gby5tX3lQb3NpdGlvbjsKICAgICBtX2JhY2tncm91bmRY
T3JpZ2luID0gby5tX2JhY2tncm91bmRYT3JpZ2luOwpAQCAtMTU1LDggKzE1Miw3IEBAIGJvb2wg
RmlsbExheWVyOjpvcGVyYXRvcj09KGNvbnN0IEZpbGxMYXllciYgbykgY29uc3QKIHsKICAgICAv
LyBXZSBkbyBub3QgY2hlY2sgdGhlICJpc1NldCIgYm9vbGVhbnMgZm9yIGVhY2ggcHJvcGVydHks
IHNpbmNlIHRob3NlIGFyZSBvbmx5IHVzZWQgZHVyaW5nIGluaXRpYWwgY29uc3RydWN0aW9uCiAg
ICAgLy8gdG8gcHJvcGFnYXRlIHBhdHRlcm5zIGludG8gbGF5ZXJzLiBBbGwgbGF5ZXIgY29tcGFy
aXNvbnMgaGFwcGVuIGFmdGVyIHZhbHVlcyBoYXZlIGFsbCBiZWVuIGZpbGxlZCBpbiBhbnl3YXku
Ci0gICAgcmV0dXJuIFN0eWxlSW1hZ2U6OmltYWdlc0VxdWl2YWxlbnQobV9pbWFnZS5nZXQoKSwg
by5tX2ltYWdlLmdldCgpKSAmJiBtX21hc2tJbWFnZU9wZXJhdGlvbiA9PSBvLm1fbWFza0ltYWdl
T3BlcmF0aW9uCi0gICAgICAgICYmIG1feFBvc2l0aW9uID09IG8ubV94UG9zaXRpb24gJiYgbV95
UG9zaXRpb24gPT0gby5tX3lQb3NpdGlvbgorICAgIHJldHVybiBTdHlsZUltYWdlOjppbWFnZXNF
cXVpdmFsZW50KG1faW1hZ2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV94UG9zaXRpb24g
PT0gby5tX3hQb3NpdGlvbiAmJiBtX3lQb3NpdGlvbiA9PSBvLm1feVBvc2l0aW9uCiAgICAgICAg
ICYmIG1fYmFja2dyb3VuZFhPcmlnaW4gPT0gby5tX2JhY2tncm91bmRYT3JpZ2luICYmIG1fYmFj
a2dyb3VuZFlPcmlnaW4gPT0gby5tX2JhY2tncm91bmRZT3JpZ2luCiAgICAgICAgICYmIG1fYXR0
YWNobWVudCA9PSBvLm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21w
b3NpdGUgPT0gby5tX2NvbXBvc2l0ZQogICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxl
bmRNb2RlICYmIG1fb3JpZ2luID09IG8ubV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBl
YXRYCkBAIC0yOTEsMjEgKzI4NywxMyBAQCB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVy
dGllcygpCiB2b2lkIEZpbGxMYXllcjo6Y3VsbEVtcHR5TGF5ZXJzKCkKIHsKICAgICBmb3IgKEZp
bGxMYXllciogbGF5ZXIgPSB0aGlzOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+bV9uZXh0LmdldCgp
KSB7Ci0gICAgICAgIGlmIChsYXllci0+bV9uZXh0ICYmICFsYXllci0+bV9uZXh0LT5pc0ltYWdl
U2V0KCkgJiYgIWxheWVyLT5tX25leHQtPmhhc01hc2tJbWFnZSgpKSB7CisgICAgICAgIGlmIChs
YXllci0+bV9uZXh0ICYmICFsYXllci0+bV9uZXh0LT5pc0ltYWdlU2V0KCkpIHsKICAgICAgICAg
ICAgIGxheWVyLT5tX25leHQgPSBudWxscHRyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICB9CiB9CiAKLWJvb2wgRmlsbExheWVyOjpoYXNOb25FbXB0eU1hc2tJbWFnZSgpIGNv
bnN0Ci17Ci0gICAgaWYgKGhhc01hc2tJbWFnZSgpICYmICFtYXNrSW1hZ2UoKS0+aXNDU1NWYWx1
ZU5vbmUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIChuZXh0KCkg
PyBuZXh0KCktPmhhc05vbkVtcHR5TWFza0ltYWdlKCkgOiBmYWxzZSk7Ci19Ci0KIHN0YXRpYyBp
bmxpbmUgRUZpbGxCb3ggY2xpcE1heChFRmlsbEJveCBjbGlwQSwgRUZpbGxCb3ggY2xpcEIpCiB7
CiAgICAgaWYgKGNsaXBBID09IEJvcmRlckZpbGxCb3ggfHwgY2xpcEIgPT0gQm9yZGVyRmlsbEJv
eCkKQEAgLTM1MSw5ICszMzksNiBAQCBib29sIEZpbGxMYXllcjo6aW1hZ2VzQXJlTG9hZGVkKCkg
Y29uc3QKICAgICBmb3IgKGF1dG8qIGxheWVyID0gdGhpczsgbGF5ZXI7IGxheWVyID0gbGF5ZXIt
Pm1fbmV4dC5nZXQoKSkgewogICAgICAgICBpZiAobGF5ZXItPm1faW1hZ2UgJiYgIWxheWVyLT5t
X2ltYWdlLT5pc0xvYWRlZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAK
LSAgICAgICAgaWYgKGxheWVyLT5oYXNNYXNrSW1hZ2UoKSAmJiAhbGF5ZXItPm1hc2tJbWFnZSgp
LT5pc01hc2tMb2FkZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0zOTUsNyArMzgwLDcgQEAgYm9vbCBGaWxsTGF5ZXI6Omhhc0Zp
eGVkSW1hZ2UoKSBjb25zdAogc3RhdGljIGlubGluZSBib29sIGxheWVySW1hZ2VzSWRlbnRpY2Fs
KGNvbnN0IEZpbGxMYXllciYgbGF5ZXIxLCBjb25zdCBGaWxsTGF5ZXImIGxheWVyMikKIHsKICAg
ICAvLyBXZSBqdXN0IGNhcmUgYWJvdXQgcG9pbnRlciBlcXVpdmFsZW5jeS4KLSAgICByZXR1cm4g
bGF5ZXIxLmhhc01hc2tJbWFnZSgpID09IGxheWVyMi5oYXNNYXNrSW1hZ2UoKSAmJiBsYXllcjEu
aW1hZ2UoKSA9PSBsYXllcjIuaW1hZ2UoKTsKKyAgICByZXR1cm4gbGF5ZXIxLmltYWdlKCkgPT0g
bGF5ZXIyLmltYWdlKCk7CiB9CiAKIGJvb2wgRmlsbExheWVyOjppbWFnZXNJZGVudGljYWwoY29u
c3QgRmlsbExheWVyKiBsYXllcjEsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IGM1ZTEwNmQ4NzU1ZTQ2OTlm
NTEzYjQ4ZDQ2MWU2ZWZhYTk5Y2JhYWUuLjZmZjJiM2EyMDJhZjQ0MjM4ZTJlYTMyNTlhNzc5ZWVk
NmFiYzg3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgK
QEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRl
ICJMZW5ndGhTaXplLmgiCi0jaW5jbHVkZSAiTWFza0ltYWdlT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNjgsOSArNjcsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgRmlsbExheWVyKEVGaWxsTGF5ZXJUeXBlKTsKICAgICB+RmlsbExheWVyKCk7CiAKLSAgICBj
b25zdCBSZWZQdHI8TWFza0ltYWdlT3BlcmF0aW9uPiYgbWFza0ltYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9tYXNrSW1hZ2VPcGVyYXRpb247IH0KICAgICBTdHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KLSAgICBTdHlsZUltYWdlKiBpbWFnZU9yTWFza0lt
YWdlKCkgY29uc3QgeyByZXR1cm4gaGFzTWFza0ltYWdlKCkgPyBtYXNrSW1hZ2UoKS0+aW1hZ2Uo
KSA6IGltYWdlKCk7IH0KICAgICBjb25zdCBMZW5ndGgmIHhQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1feFBvc2l0aW9uOyB9CiAgICAgY29uc3QgTGVuZ3RoJiB5UG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3lQb3NpdGlvbjsgfQogICAgIEJhY2tncm91bmRFZGdlT3JpZ2luIGJhY2tncm91
bmRYT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QmFja2dyb3VuZEVkZ2VPcmln
aW4+KG1fYmFja2dyb3VuZFhPcmlnaW4pOyB9CkBAIC0xMDQsNyArMTAxLDYgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNTaXplU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplVHlwZSAhPSBTaXplTm9u
ZTsgfQogICAgIGJvb2wgaXNNYXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFz
a1NvdXJjZVR5cGVTZXQ7IH0KIAotICAgIHZvaWQgc2V0TWFza0ltYWdlKFBhc3NSZWZQdHI8TWFz
a0ltYWdlT3BlcmF0aW9uPiBtYXNrSW1hZ2UpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24gPSBtYXNr
SW1hZ2U7IH0KICAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2Up
IHsgbV9pbWFnZSA9IGltYWdlOyBtX2ltYWdlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0WFBv
c2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV94UG9zaXRpb24gPSBXVEY6Om1vdmUobGVuZ3RoKTsg
bV94UG9zU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsZW5ndGgp
IHsgbV95UG9zaXRpb24gPSBXVEY6Om1vdmUobGVuZ3RoKTsgbV95UG9zU2V0ID0gdHJ1ZTsgfQpA
QCAtMTIyLDggKzExOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUgZikg
eyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0KICAgICB2b2lk
IHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1NvdXJjZVR5cGUg
PSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBjbGVhck1hc2tJ
bWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24gPSBudWxscHRyOyB9CiAgICAgdm9pZCBjbGVh
ckltYWdlKCkgeyBtX2ltYWdlID0gbnVsbHB0cjsgbV9pbWFnZVNldCA9IGZhbHNlOyB9CisKICAg
ICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5k
T3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBvc2l0aW9uKCkgeyBtX3lQb3NT
ZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KIApAQCAtMTQ4LDgg
KzE0NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zSW1hZ2UoU3R5bGVJbWFnZSYpIGNv
bnN0OwogICAgIGJvb2wgaW1hZ2VzQXJlTG9hZGVkKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNJbWFn
ZSgpIGNvbnN0OwotICAgIGJvb2wgaGFzTWFza0ltYWdlKCkgY29uc3QgeyByZXR1cm4gbWFza0lt
YWdlKCkuZ2V0KCk7IH0KLSAgICBib29sIGhhc05vbkVtcHR5TWFza0ltYWdlKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNGaXhlZEltYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNPcGFxdWVJbWFnZShj
b25zdCBSZW5kZXJFbGVtZW50JikgY29uc3Q7CiAgICAgYm9vbCBoYXNSZXBlYXRYWSgpIGNvbnN0
OwpAQCAtMTgyLDcgKzE3Niw2IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls
bExheWVyPiBtX25leHQ7CiAKLSAgICBSZWZQdHI8TWFza0ltYWdlT3BlcmF0aW9uPiBtX21hc2tJ
bWFnZU9wZXJhdGlvbjsKICAgICBSZWZQdHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKIAogICAgIExl
bmd0aCBtX3hQb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggMjhmMDQ0YzAxY2JkODZjNjc0
MmIyZDMzY2E0OWFiMzA3ZjM0YmQwNC4uNTMwZGEzZDZmYWVkNGM3NWM3YWVmYWFmYjBjNDBlZDE1
ODdjOGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0j
aW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJpbmdD
b250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU0LDkgKzUzLDEwIEBAIHZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OnJlbW92ZUNsaWVudEZyb21DYWNoZShSZW5kZXJFbGVt
ZW50JiBjbGllbnQsIGJvb2wKICAgICBtYXJrQ2xpZW50Rm9ySW52YWxpZGF0aW9uKGNsaWVudCwg
bWFya0ZvckludmFsaWRhdGlvbiA/IEJvdW5kYXJpZXNJbnZhbGlkYXRpb24gOiBQYXJlbnRPbmx5
SW52YWxpZGF0aW9uKTsKIH0KIAotYm9vbCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6YXBwbHlT
VkdNYXNrKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0
LCBib29sIGFwcGx5Q2xpcCkKK2Jvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVz
b3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3JhcGhp
Y3NDb250ZXh0KiYgY29udGV4dCwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKQogewogICAg
IEFTU0VSVChjb250ZXh0KTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlTW9kZSwgcmVzb3Vy
Y2VNb2RlID09IEFwcGx5VG9EZWZhdWx0TW9kZSk7CiAKICAgICBib29sIG1pc3NpbmdNYXNrZXJE
YXRhID0gIW1fbWFza2VyLmNvbnRhaW5zKCZyZW5kZXJlcik7CiAgICAgaWYgKG1pc3NpbmdNYXNr
ZXJEYXRhKQpAQCAtODAsMTggKzgwLDEwIEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6
OmFwcGx5U1ZHTWFzayhSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgR3JhcGhpY3NDb250CiAgICAg
aWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmIChhcHBseUNsaXApCi0gICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNsaXBUb0ltYWdl
QnVmZmVyKGNvbnRleHQsIGFic29sdXRlVHJhbnNmb3JtLCByZXBhaW50UmVjdCwgbWFza2VyRGF0
YS0+bWFza0ltYWdlLCBtaXNzaW5nTWFza2VyRGF0YSk7Ci0KKyAgICBTVkdSZW5kZXJpbmdDb250
ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihjb250ZXh0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgcmVwYWlu
dFJlY3QsIG1hc2tlckRhdGEtPm1hc2tJbWFnZSwgbWlzc2luZ01hc2tlckRhdGEpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291
cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZSYsIEdyYXBoaWNz
Q29udGV4dComIGNvbnRleHQsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSkKLXsKLSAgICBB
U1NFUlRfVU5VU0VEKHJlc291cmNlTW9kZSwgcmVzb3VyY2VNb2RlID09IEFwcGx5VG9EZWZhdWx0
TW9kZSk7Ci0gICAgcmV0dXJuIGFwcGx5U1ZHTWFzayhyZW5kZXJlciwgY29udGV4dCwgdHJ1ZSk7
Ci19Ci0KIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50SW50b01hc2tJ
bWFnZShNYXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRl
ck9iamVjdCogb2JqZWN0KQogewogICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0ltYWdlQ29udGV4
dCA9IG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+Y29udGV4dCgpOwpAQCAtMTMyLDM0ICsxMjQsNiBA
QCBib29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2Uo
TWFza2VyRGF0YSogbWFza2VyRGF0YSwgQwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJl
bmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3TWFza0ZvclJlbmRlcmVyKFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyLCBjb25zdCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSYgZ2VvbWV0cnksIEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCi17Ci0g
ICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKCFhcHBseVNWR01hc2socmVuZGVyZXIsIGNvbnRleHQsIGZhbHNlKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgTWFza2VyRGF0YSogbWFza2VyRGF0YSA9IG1hc2tlckRhdGFGb3JSZW5k
ZXJlcihyZW5kZXJlcik7Ci0gICAgQVNTRVJUKG1hc2tlckRhdGEpOwotCi0gICAgRmxvYXRSZWN0
IG9uZVRpbGVSZWN0OwotICAgIEZsb2F0U2l6ZSBhY3R1YWxUaWxlU2l6ZShnZW9tZXRyeS50aWxl
U2l6ZSgpLndpZHRoKCkgKyBnZW9tZXRyeS5zcGFjZVNpemUoKS53aWR0aCgpLCBnZW9tZXRyeS50
aWxlU2l6ZSgpLmhlaWdodCgpICsgZ2VvbWV0cnkuc3BhY2VTaXplKCkuaGVpZ2h0KCkpOwotICAg
IG9uZVRpbGVSZWN0LnNldFgoZ2VvbWV0cnkuZGVzdFJlY3QoKS54KCkgKyBmbW9kZihmbW9kZigt
Z2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLndpZHRoKCksIGFjdHVhbFRpbGVTaXplLndpZHRoKCkp
IC0gYWN0dWFsVGlsZVNpemUud2lkdGgoKSwgYWN0dWFsVGlsZVNpemUud2lkdGgoKSkpOwotICAg
IG9uZVRpbGVSZWN0LnNldFkoZ2VvbWV0cnkuZGVzdFJlY3QoKS55KCkgKyBmbW9kZihmbW9kZigt
Z2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpLmhlaWdodCgpLCBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQo
KSkgLSBhY3R1YWxUaWxlU2l6ZS5oZWlnaHQoKSwgYWN0dWFsVGlsZVNpemUuaGVpZ2h0KCkpKTsK
LSAgICBvbmVUaWxlUmVjdC5zZXRTaXplKGdlb21ldHJ5LnRpbGVTaXplKCkpOwotICAgIAotICAg
IEZsb2F0U2l6ZSBpbnRyaW5zaWNUaWxlU2l6ZSA9IG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+bG9n
aWNhbFNpemUoKTsKLSAgICBGbG9hdFNpemUgc2NhbGUoZ2VvbWV0cnkudGlsZVNpemUoKS53aWR0
aCgpIC8gaW50cmluc2ljVGlsZVNpemUud2lkdGgoKSwgZ2VvbWV0cnkudGlsZVNpemUoKS5oZWln
aHQoKSAvIGludHJpbnNpY1RpbGVTaXplLmhlaWdodCgpKTsKLSAgICAKLSAgICBGbG9hdFJlY3Qg
dmlzaWJsZVNyY1JlY3Q7Ci0gICAgdmlzaWJsZVNyY1JlY3Quc2V0WCgoZ2VvbWV0cnkuZGVzdFJl
Y3QoKS54KCkgLSBvbmVUaWxlUmVjdC54KCkpIC8gc2NhbGUud2lkdGgoKSk7Ci0gICAgdmlzaWJs
ZVNyY1JlY3Quc2V0WSgoZ2VvbWV0cnkuZGVzdFJlY3QoKS55KCkgLSBvbmVUaWxlUmVjdC55KCkp
IC8gc2NhbGUuaGVpZ2h0KCkpOwotICAgIHZpc2libGVTcmNSZWN0LnNldFdpZHRoKGdlb21ldHJ5
LmRlc3RSZWN0KCkud2lkdGgoKSAvIHNjYWxlLndpZHRoKCkpOwotICAgIHZpc2libGVTcmNSZWN0
LnNldEhlaWdodChnZW9tZXRyeS5kZXN0UmVjdCgpLmhlaWdodCgpIC8gc2NhbGUuaGVpZ2h0KCkp
OwotICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihtYXNrZXJEYXRhLT5tYXNrSW1hZ2UuZ2V0
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHZpc2libGVTcmNS
ZWN0LCBjb21wb3NpdGVPcCk7Ci19Ci0KIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmNh
bGN1bGF0ZU1hc2tDb250ZW50UmVwYWludFJlY3QoKQogewogICAgIGZvciAoTm9kZSogY2hpbGRO
b2RlID0gbWFza0VsZW1lbnQoKS5maXJzdENoaWxkKCk7IGNoaWxkTm9kZTsgY2hpbGROb2RlID0g
Y2hpbGROb2RlLT5uZXh0U2libGluZygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmgKaW5kZXggMTQ4YmRjOWMzZDc2
MjJjYWNlNjhkY2NhOWYyZjI1Yjc2NTg5OGMxZi4uYmVmMjk4NWMzZTY2MGY5NGFiOGNhNjBmNGM3
ZDlhZjZlZGFlOGI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJrRm9ySW52
YWxpZGF0aW9uID0gdHJ1ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVu
dEZyb21DYWNoZShSZW5kZXJFbGVtZW50JiwgYm9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0gdHJ1
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVu
dCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0
IHJlc291cmNlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhcHBseVNWR01hc2soUmVuZGVyRWxl
bWVudCYgcmVuZGVyZXIsIEdyYXBoaWNzQ29udGV4dComLCBib29sIGFwcGx5Q2xpcCk7CiAgICAg
dmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3Qm
KSBvdmVycmlkZTsKIAogICAgIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgbWFza1VuaXRzKCkg
Y29uc3QgeyByZXR1cm4gbWFza0VsZW1lbnQoKS5tYXNrVW5pdHMoKTsgfQpAQCAtNTMsOSArNTIs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNlVHlwZSByZXNvdXJj
ZVR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNYXNrZXJSZXNvdXJjZVR5cGU7IH0KIAot
ICAgIE1hc2tlckRhdGEqIG1hc2tlckRhdGFGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKSB7IHJldHVybiBtX21hc2tlci5nZXQoJnJlbmRlcmVyKTsgfQotICAgIHZvaWQgZHJhd01h
c2tGb3JSZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgQmFja2dyb3VuZElt
YWdlR2VvbWV0cnkmLCBHcmFwaGljc0NvbnRleHQqLCBDb21wb3NpdGVPcGVyYXRvcik7Ci0KIHBy
aXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDA0OWQwNzJmNjZjZDgwYzE1NjU4MWI2NDJjMjQ0
MWIzNmMzMDEwMTYuLjIwNmU0NzVlOTM4ZTQxNTNmM2U0MDY1Y2I4ZjczMjBkNTljZTcwNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtMTU5LDMzICsxNTksNyBAQCB2
b2lkIFNWR01hc2tFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNo
YW5nZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQogewotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBtYXNrUmVuZGVyZXIg
PSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcj4oKnRoaXMsIFdURjo6bW92
ZShzdHlsZSkpOwotICAgIAotICAgIC8vIFBhc3MgYWxvbmcgZXhpc3RpbmcgcmVuZGVyIGxheWVy
IGNsaWVudHMuCi0gICAgZm9yIChhdXRvKiBjbGllbnRMYXllciA6IG1fY2xpZW50TGF5ZXJzKQot
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcio+KG1hc2tSZW5kZXJl
ci5nZXQoKSktPmFkZENsaWVudFJlbmRlckxheWVyKGNsaWVudExheWVyKTsKLSAgICAKLSAgICBy
ZXR1cm4gbWFza1JlbmRlcmVyOwotfQotCi12b2lkIFNWR01hc2tFbGVtZW50OjphZGRDbGllbnRS
ZW5kZXJMYXllcihSZW5kZXJMYXllciogY2xpZW50KQotewotICAgIEFTU0VSVChjbGllbnQpOwot
ICAgIG1fY2xpZW50TGF5ZXJzLmFkZChjbGllbnQpOwotICAgIAotICAgIC8vIFBhc3MgaXQgYWxv
bmcgdG8gdGhlIHJlbmRlcmVyLgotICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICBzdGF0aWNf
Y2FzdDxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcio+KHJlbmRlcmVyKCkpLT5hZGRDbGllbnRSZW5k
ZXJMYXllcihjbGllbnQpOwotfQotCi12b2lkIFNWR01hc2tFbGVtZW50OjpyZW1vdmVDbGllbnRS
ZW5kZXJMYXllcihSZW5kZXJMYXllciogY2xpZW50KQotewotICAgIEFTU0VSVChjbGllbnQpOwot
ICAgIG1fY2xpZW50TGF5ZXJzLnJlbW92ZShjbGllbnQpOwotICAgIAotICAgIC8vIFBhc3MgaXQg
YWxvbmcgdG8gdGhlIHJlbmRlcmVyLgotICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICBzdGF0
aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcio+KHJlbmRlcmVyKCkpLT5yZW1vdmVDbGll
bnRSZW5kZXJMYXllcihjbGllbnQpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IGM3YmFjZWE0YTZiOTQyMTZkNzE2YWFjNjVl
NGQ2MTliNTBiZDRmNGYuLjA4YmZmODE2YmQyMTA5M2M2OTg1NGMzZWFmYmQyY2Y2MzdiMzEyNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBAIC0zMCw4ICszMCw2IEBACiAjaW5j
bHVkZSAiU1ZHVW5pdFR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLWNsYXNz
IFJlbmRlckxheWVyOwogCiBjbGFzcyBTVkdNYXNrRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVGVzdHMsCkBA
IC0zOSw5ICszNyw2IEBAIGNsYXNzIFNWR01hc2tFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0Vs
ZW1lbnQsCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdNYXNrRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdm9pZCBhZGRDbGllbnRSZW5k
ZXJMYXllcihSZW5kZXJMYXllciopOwotICAgIHZvaWQgcmVtb3ZlQ2xpZW50UmVuZGVyTGF5ZXIo
UmVuZGVyTGF5ZXIqKTsKLQogcHJpdmF0ZToKICAgICBTVkdNYXNrRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApAQCAtNTMsOCArNDgsNiBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hh
bmdlJikgb3ZlcnJpZGU7CiAKLSAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV9jbGllbnRMYXll
cnM7Ci0KICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCmluZGV4IDZjYTQzZTY1NDhkYzMwMjg2OTA5YWU2OTZkYjU4YTU2MGVjMWJjYjkuLjY0YTYx
MmFiNGYwNGFjOWE2MjgwNGZmMzhmMDFkNWRmNTc1ZWUxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAKQEAgLTU0NiwxMSArNTQ2LDggQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojp1
cGRhdGVFeHRlcm5hbERvY3VtZW50KCkKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgeyBSZXNvdXJjZVJlcXVlc3QgeyBleHRlcm5hbERvY3VtZW50VVJMIH0gfTsKICAgICAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVu
dCA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U1ZHRG9jdW1lbnQo
cmVxdWVzdCk7Ci0gICAgICAgIGlmIChtX2V4dGVybmFsRG9jdW1lbnQpIHsKLSAgICAgICAgICAg
IC8vIEZJWE1FOiBJcyBpdCByZWFsbHkgT0sgZm9yIHVzIHRvIHNldCB0aGlzIHRvIGZhbHNlIGZv
ciBhIGRvY3VtZW50IHRoYXQgbWlnaHQgYmUgc2hhcmVkIGJ5IGFub3RoZXIgY2xpZW50PwotICAg
ICAgICAgICAgbV9leHRlcm5hbERvY3VtZW50LT5zZXRTaG91bGRDcmVhdGVGcmFtZUZvckRvY3Vt
ZW50KGZhbHNlKTsgLy8gTm8gZnJhbWUgbmVlZGVkLCB3ZSBqdXN0IHdhbnQgdGhlIGVsZW1lbnRz
LgorICAgICAgICBpZiAobV9leHRlcm5hbERvY3VtZW50KQogICAgICAgICAgICAgbV9leHRlcm5h
bERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBpbnZh
bGlkYXRlU2hhZG93VHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKaW5kZXggZGUyYjM5Y2M3MTU1ZTcwN2Q0Y2EwMWFlZTQ5MmIwNTg4MTAyNzAzOS4uNGMwNGM5
ZTUyODczNDAxN2YyMjRkMmFmODM3NjcwYjA3NmM1M2EyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0zNTMsMTYgKzM1MywzMSBAQCBib29sIFNWR0ltYWdl
OjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgbV9sb2FkZXJDbGll
bnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0ZyYW1lTG9hZGVyQ2xpZW50PihtX2RhdGFQcm90b2Nv
bExvYWRlcik7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5G
cmFtZSA9IG1fbG9hZGVyQ2xpZW50LmdldCgpOwogCi0gICAgICAgIGJvb2wgY2FuSGF2ZVNjcm9s
bGJhcnMgPSBmYWxzZTsgLy8gU1ZHIEltYWdlcyB3aWxsIGFsd2F5cyBzeW50aGVzaXplIGEgdmll
d0JveCwgaWYgaXQncyBub3QgYXZhaWxhYmxlLCBhbmQgdGh1cyBuZXZlciBzZWUgc2Nyb2xsYmFy
cy4KLSAgICAgICAgYm9vbCB0cmFuc3BhcmVudCA9IHRydWU7IC8vIFNWRyBJbWFnZXMgYXJlIHRy
YW5zcGFyZW50LgotCiAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRp
bmcgaXRzZWxmLCB3ZSBtaWdodCBsZWFrIHRoZSB3b3JsZC4KICAgICAgICAgLy8gVGhlIENhY2hl
IGNvZGUgZG9lcyBub3Qga25vdyBhYm91dCBDYWNoZWRJbWFnZXMgaG9sZGluZyBGcmFtZXMgYW5k
CiAgICAgICAgIC8vIHdvbid0IGtub3cgdG8gYnJlYWsgdGhlIGN5Y2xlLgogICAgICAgICAvLyBU
aGlzIHdpbGwgYmVjb21lIGFuIGlzc3VlIHdoZW4gU1ZHSW1hZ2Ugd2lsbCBiZSBhYmxlIHRvIGxv
YWQgb3RoZXIKICAgICAgICAgLy8gU1ZHSW1hZ2Ugb2JqZWN0cywgYnV0IHdlJ3JlIHNhZmUgbm93
LCBiZWNhdXNlIFNWR0ltYWdlIGNhbiBvbmx5IGJlCiAgICAgICAgIC8vIGxvYWRlZCBieSBhIHRv
cC1sZXZlbCBkb2N1bWVudC4KLSAgICAgICAgbV9wYWdlID0gUGFnZTo6Y3JlYXRlUGFnZUZyb21C
dWZmZXIocGFnZUNvbmZpZ3VyYXRpb24sIGRhdGEoKSwgImltYWdlL3N2Zyt4bWwiLCBjYW5IYXZl
U2Nyb2xsYmFycywgdHJhbnNwYXJlbnQpOworICAgICAgICBtX3BhZ2UgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBhZ2U+KHBhZ2VDb25maWd1cmF0aW9uKTsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygp
LnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRT
Y3JpcHRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdp
bnNFbmFibGVkKGZhbHNlKTsKKworICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPm1haW5G
cmFtZSgpOworICAgICAgICBmcmFtZS5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lKSk7
CisgICAgICAgIGZyYW1lLmluaXQoKTsKKyAgICAgICAgRnJhbWVMb2FkZXImIGxvYWRlciA9IGZy
YW1lLmxvYWRlcigpOworICAgICAgICBsb2FkZXIuZm9yY2VTYW5kYm94RmxhZ3MoU2FuZGJveEFs
bCk7CisKKyAgICAgICAgZnJhbWUudmlldygpLT5zZXRDYW5IYXZlU2Nyb2xsYmFycyhmYWxzZSk7
IC8vIFNWRyBJbWFnZXMgd2lsbCBhbHdheXMgc3ludGhlc2l6ZSBhIHZpZXdCb3gsIGlmIGl0J3Mg
bm90IGF2YWlsYWJsZSwgYW5kIHRodXMgbmV2ZXIgc2VlIHNjcm9sbGJhcnMuCisgICAgICAgIGZy
YW1lLnZpZXcoKS0+c2V0VHJhbnNwYXJlbnQodHJ1ZSk7IC8vIFNWRyBJbWFnZXMgYXJlIHRyYW5z
cGFyZW50LgorCisgICAgICAgIEFTU0VSVChsb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKSk7
IC8vIERvY3VtZW50TG9hZGVyIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBieSBmcmFtZS0+aW5p
dCgpLgorICAgICAgICBsb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCkuc2V0
TUlNRVR5cGUoImltYWdlL3N2Zyt4bWwiKTsKKyAgICAgICAgbG9hZGVyLmFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPndyaXRlcigpLmJlZ2luKFVSTCgpKTsgLy8gY3JlYXRlIHRoZSBlbXB0eSBkb2N1
bWVudAorICAgICAgICBsb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCkuYWRk
RGF0YShkYXRhKCktPmRhdGEoKSwgZGF0YSgpLT5zaXplKCkpOworICAgICAgICBsb2FkZXIuYWN0
aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCkuZW5kKCk7CiAKICAgICAgICAgLy8gU2V0IHRo
ZSBpbnRyaW5zaWMgc2l6ZSBiZWZvcmUgYSBjb250YWluZXIgc2l6ZSBpcyBhdmFpbGFibGUuCiAg
ICAgICAgIG1faW50cmluc2ljU2l6ZSA9IGNvbnRhaW5lclNpemUoKTsK
</data>
<flag name="review"
          id="281338"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>