<?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>121080</bug_id>
          
          <creation_ts>2013-09-09 23:40:56 -0700</creation_ts>
          <short_desc>Generate more HTML type checks and casting</short_desc>
          <delta_ts>2013-09-11 01:02:06 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>121087</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927166</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-09 23:40:56 -0700</bug_when>
    <thetext>Clean-up remained functions of HTML elements to auto-generated isFooElement() and toFooElement() helpers. Besides this patch clean-up unnecessary checks which are being supported by auto-generated isFooElement().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927169</commentid>
    <comment_count>1</comment_count>
      <attachid>211174</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-09 23:48:22 -0700</bug_when>
    <thetext>Created attachment 211174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927171</commentid>
    <comment_count>2</comment_count>
      <attachid>211175</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-09 23:53:13 -0700</bug_when>
    <thetext>Created attachment 211175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927173</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-09 23:54:56 -0700</bug_when>
    <thetext>CC&apos;ing Kling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927181</commentid>
    <comment_count>4</comment_count>
      <attachid>211175</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-10 00:05:02 -0700</bug_when>
    <thetext>Comment on attachment 211175
Patch

Attachment 211175 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1752009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927182</commentid>
    <comment_count>5</comment_count>
      <attachid>211175</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-10 00:08:04 -0700</bug_when>
    <thetext>Comment on attachment 211175
Patch

Attachment 211175 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1743138</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927188</commentid>
    <comment_count>6</comment_count>
      <attachid>211175</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-10 00:17:44 -0700</bug_when>
    <thetext>Comment on attachment 211175
Patch

Attachment 211175 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1761010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927192</commentid>
    <comment_count>7</comment_count>
      <attachid>211180</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-10 00:30:09 -0700</bug_when>
    <thetext>Created attachment 211180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927194</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-10 00:31:32 -0700</bug_when>
    <thetext>Unfortunately we need to make toFooElement() use static_cast instead of reinterpret_cast as mentioned here:
https://bugs.webkit.org/show_bug.cgi?id=120676#c8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927202</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-10 00:39:25 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Unfortunately we need to make toFooElement() use static_cast instead of reinterpret_cast as mentioned here:
&gt; https://bugs.webkit.org/show_bug.cgi?id=120676#c8

Kling, yes, I talked it with kent on blink. But, it looks it is not easy. I need to have time to change it. *ElementTypeHelper.h may need to include all *Element.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927204</commentid>
    <comment_count>10</comment_count>
      <attachid>211180</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-10 00:44:55 -0700</bug_when>
    <thetext>Comment on attachment 211180
Patch

No request until solving reinterpret_cast&lt;&gt; problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927220</commentid>
    <comment_count>11</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-10 01:46:10 -0700</bug_when>
    <thetext>Sure, I opened bug 121087 with a patch so we can at least have correct C++ until a better solution is found :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927271</commentid>
    <comment_count>12</comment_count>
      <attachid>211180</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-09-10 06:13:19 -0700</bug_when>
    <thetext>Comment on attachment 211180
Patch

Attachment 211180 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1735497</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927616</commentid>
    <comment_count>13</comment_count>
      <attachid>211272</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-09-10 18:24:27 -0700</bug_when>
    <thetext>Created attachment 211272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927676</commentid>
    <comment_count>14</comment_count>
      <attachid>211272</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 01:02:00 -0700</bug_when>
    <thetext>Comment on attachment 211272
Patch

Clearing flags on attachment: 211272

Committed r155507: &lt;http://trac.webkit.org/changeset/155507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927677</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 01:02:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211174</attachid>
            <date>2013-09-09 23:48:22 -0700</date>
            <delta_ts>2013-09-09 23:53:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121080-20130910154819.patch</filename>
            <type>text/plain</type>
            <size>41397</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ5NWNhYmM1OWEyZTgx
ZDA5NTE3ODQyYmNiMmUyYjUzZTk2OGU1OS4uODAwYmJiMDZmYjI4OWExMTNhMDc2OWI4NWY1ZmZi
NDk1MTYzMjgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVu
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxGcmFtZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlTG9hZGVyOjpkaXNwYXRjaExvYWRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW5hZWg6CisgICAgICAgICogaHRtbC9IVE1M
T3B0aW9uc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBo
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6Cisg
ICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVPd25lclVSTEF0dHJpYnV0
ZU5hbWUpOgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFVSTEZvckltYWdlTm9kZSk6
CisgICAgICAgICogcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRQbHVnaW5PY2NsdXNpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRz
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9y
VmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFJc1ZpZGVvKToK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
VmlkZW8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OlJlbmRlckxpc3RCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlz
dDo6UmVuZGVyTWVudUxpc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNTZWxlY3RQb3B1cFZpc2libGUpOgorCiAyMDEz
LTA5LTA5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5l
cmF0ZSBtb3JlIFNWRyB0eXBlIGNoZWNrcyBhbmQgY29udmVyc2lvbnMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwppbmRleCA1MTcwOTdjMzYxZGE0MTdkMDNmMmU4MzI1M2EyOGJmOTk4ZGE2
NjFjLi4zOWVmZGY1ZWVmNmQ4MzNhNzMzNTcyZjE0NzU4YTc2M2MwYjM4NjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wOS0wOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRlIG1v
cmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9mIEhU
TUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAgYW5k
IHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNoIGNs
ZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5Cisg
ICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
YWRqdXN0UmVjdE9mZnNldEZvckZyYW1lT2Zmc2V0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVkKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZh
dGU6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRSYW5nZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNFbGVtZW50VHlwZVBsdWdp
bik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6OndpbGxPcGVuUG9wdXBGb3JOb2RlKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpkaWROb2RlT3BlblBv
cHVwKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25Qb3Np
dGlvbkNoYW5nZWQpOgorCiAyMDEzLTA5LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBXVEY6Om5vdEZvdW5kIHRvIFZlY3Rvci5oIGFuZCBk
ZWxldGUgTm90Rm91bmQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI3NjdmY2IwYzdkOWFjMTBiNjA0
MDE2N2RkYmRjNWQzNzE5ZWE0ZDEuLjZhMjQ2ZDE0NmEyM2QyZWEzYjk4OGNiMGFlYWEyYWMyNzBl
NDJmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wOS0wOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRl
IG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9m
IEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAg
YW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNo
IGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5
CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wOS0wNCAgWmFuIERvYmVyc2VrICA8emRv
YmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIHRoZSBX
YXlsYW5kIGJ1aWxkIHRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRlYjRlMDY5MmI2ZDE3YmY3
MzRiNWVkMzNjZTdlZjdkYzdiZGJlZTIuLjM5YjJkODI4NWJhOTQ5Yzg0OTRmMjc3YWRkM2YzZjc5
OTcwZWRiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0wOS0wOSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVy
YXRlIG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25z
IG9mIEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAg
ICAgYW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBh
dGNoIGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVk
IGJ5CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogUGx1Z2lucy9XZWJQ
bHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9y
Tm9kZSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOldlYkNvcmU6Ol0pOgorCiAyMDEzLTA5LTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRp
dGhyZWFkZWQgT3BlbkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGFiYzg5MzMzN2JkNGE5
OWIyMDIwMTM0ZTk4NjU5YjYwZWNmNGNhNmIuLmQ0Zjc2MDY5NTg4MzAwNTVkZjBkNWQ2OWEzOGUy
ZjFiZjQ3NjM4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDktMDkg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHZW5l
cmF0ZSBtb3JlIEhUTUwgdHlwZSBjaGVja3MgYW5kIGNhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTA4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuLXVwIHJlbWFpbmVkIGZ1bmN0aW9u
cyBvZiBIVE1MIGVsZW1lbnRzIHRvIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpCisgICAg
ICAgIGFuZCB0b0Zvb0VsZW1lbnQoKSBoZWxwZXJzLgorCisgICAgICAgIEJlc2lkZXMgdGhpcyBw
YXRjaCBjbGVhbi11cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRl
ZCBieQorICAgICAgICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKwogMjAxMy0wOS0wMyAgQWxsYW4g
U2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRd
IEltYWdlcyBzY2FsZWQgcG9vcmx5IG9uIGNvbXBvc2l0ZWQgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggNmJjZmQwZGE5OTNjMjVlZTIyZjUzNjdhOTI3YWI0ODBlYjU0NjVkZC4uZTEyOGVmMTkz
NTc3ODFhOWY3NzIwZjgzNDk3NDMxZTk4OWY4YjZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTA5LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgbW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEw
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
bi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2YgSFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRl
ZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBhbmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKwor
ICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2ggY2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdo
aWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkKKyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29F
bGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUpOgorCiAyMDEzLTA5LTA1ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1dpbmRvd3NdIEltcGxlbWVudCB0ZXh0IG9mZnNldCBtZXRob2RzIG9m
IElBY2Nlc3NpYmxlVGV4dCBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDdhY2U1OTZiMjQwYzYy
MDIwMTVkYzYzZjI1ZTk1Y2VmODBhOTdmMS4uMmJlMTRmODY4ZDlkNjgwODNlZmEyZGM5NzRjOWNi
MjQxMjhhYWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
Y29udGFpbnNBbnlGb3JtQ29udHJvbHMpOgorCiAyMDEzLTA5LTA5ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRpdGhyZWFkZWQgT3Bl
bkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDE1NDIzN2RlMGVjNzdlOGVkMTI4ODQ4ZjhiNjIx
MzEyNGFmODM3ODkuLjNjYzk5ODk1OGI1YjMyZWM0NTQ1ZDhmMmVmZGI0ZDBjOGY0ZGI1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2Fj
aGVBdGsuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVuU2Vs
ZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIAogICAgIC8vIE9ubHkg
c3VwcG9ydCBIVE1MIHNlbGVjdCBlbGVtZW50cyBzbyBmYXIgKEFSSUEgc2VsZWN0b3JzIG5vdCBz
dXBwb3J0ZWQpLgogICAgIE5vZGUqIG5vZGUgPSBvYmplY3QtPm5vZGUoKTsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmICgh
bm9kZSB8fCAhaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gRW1pdCBzaWduYWwgZnJvbSB0aGUgbGlzdGJveCdzIHBvaW50IG9mIHZpZXcgZmlyc3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5kZXggNDk5ZjJi
ZDM4MGQzY2NlZmY4YzkzMzgyODgzZjhmNGQyMDRiNWViNi4uMzg4MDYwYWUyODM0YzI4NTZmYzdl
MWI3MmZmOTU1Yjc1OGIyZjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuaApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgSFRNTEZyYW1l
RWxlbWVudEJhc2UqIHRvSFRNTEZyYW1lRWxlbWVudEJhc2UoTm9kZSogbm9kZSkKIHsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZnJhbWVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppZnJh
bWVUYWcpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBp
c0hUTUxGcmFtZUVsZW1lbnQobm9kZSkgfHwgaXNIVE1MSUZyYW1lRWxlbWVudChub2RlKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4obm9kZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCBjODkzNDYyYTNjNzQ2
NTJhZGZlNWUyYzYzNmY0YzUzZGEzMGMwOTAxLi4wMDI0YWQyYTNkOWQzNTFlODRlODMxYWNlMmNj
ZGM2YTJlN2M2YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBA
IC00NywxMiArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHls
ZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKIH07CiAKLWlubGluZSBIVE1MSUZyYW1lRWxlbWVu
dCogdG9IVE1MSUZyYW1lRWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpp
ZnJhbWVUYWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihu
b2RlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFt
ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGQz
NDVmODJhY2MxZTYyOTAwMDcxMzg5MjgxZGU3ZWE5YmIzMGRmZDAuLjdjMGU2Y2I1MzZiOWU0OGEy
NjdkNWRiYWYyYzk2MjdiMjNjOWUwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxv
YWRlci5jcHAKQEAgLTQ5LDEyICs0OSwxMiBAQCBIVE1MSW1hZ2VMb2FkZXI6On5IVE1MSW1hZ2VM
b2FkZXIoKQogdm9pZCBIVE1MSW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAg
ICAvLyBIVE1MVmlkZW9FbGVtZW50IHVzZXMgdGhpcyBjbGFzcyB0byBsb2FkIHRoZSBwb3N0ZXIg
aW1hZ2UsIGJ1dCBpdCBzaG91bGQgbm90IGZpcmUgZXZlbnRzIGZvciBsb2FkaW5nIG9yIGZhaWx1
cmUuCi0gICAgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkK
KyAgICBpZiAoaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCA9IGltYWdlKCktPmVycm9yT2NjdXJyZWQoKTsKICAg
ICBpZiAoIWVycm9yT2NjdXJyZWQgJiYgaW1hZ2UoKS0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29k
ZSgpID49IDQwMCkKLSAgICAgICAgZXJyb3JPY2N1cnJlZCA9IGVsZW1lbnQoKS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6Om9iamVjdFRhZyk7IC8vIEFuIDxvYmplY3Q+IGNvbnNpZGVycyBhIDQwNCB0
byBiZSBhbiBlcnJvciBhbmQgc2hvdWxkIGZpcmUgb25lcnJvci4KKyAgICAgICAgZXJyb3JPY2N1
cnJlZCA9IGlzSFRNTE9iamVjdEVsZW1lbnQoZWxlbWVudCgpKTsgLy8gQW4gPG9iamVjdD4gY29u
c2lkZXJzIGEgNDA0IHRvIGJlIGFuIGVycm9yIGFuZCBzaG91bGQgZmlyZSBvbmVycm9yLgogICAg
IGVsZW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGVycm9yT2NjdXJyZWQgPyBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCA6IGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOwogfQogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSFRNTEltYWdlTG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
bG9hZEVycm9yICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKQor
ICAgIGlmIChsb2FkRXJyb3IgJiYgaXNIVE1MT2JqZWN0RWxlbWVudChlbGVtZW50LmdldCgpKSkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKS0+
cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCAzMWQyZmQwMTk0Yjc0N2VhM2EyZjExMzhiNDM3MTk3MTA5YWM0Mjk2
Li42Zjk1ZWM0OWY5OTJiYmMzY2IxZjg2YmFmZWYyYjVlOTkyNmUwZTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xMDksMTIgKzEwOSw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1pbmxpbmUgSFRNTE9i
amVjdEVsZW1lbnQqIHRvSFRNTE9iamVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6b2JqZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPYmplY3RF
bGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKaW5kZXggZGRjZmNiNDg2OGY5MzU3YjllODI0NmZi
MjkzZWQ5MjQ4ZDNjMTk3MS4uNjUzZmNjZDcwM2M3YzlkOGQyOTBlNjc1MDBjYWUxNzUyMjFmZjI0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcApA
QCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b246OkhUTUxPcHRpb25zQ29sbGVjdGlvbihOb2RlKiBzZWxlY3QpCiAgICAgOiBIVE1MQ29sbGVj
dGlvbihzZWxlY3QsIFNlbGVjdE9wdGlvbnMsIERvZXNOb3RPdmVycmlkZUl0ZW1BZnRlcikKIHsK
LSAgICBBU1NFUlQoc2VsZWN0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Cisg
ICAgQVNTRVJUKGlzSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0KSk7CiB9CiAKIFBhc3NSZWZQdHI8
SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShOb2Rl
KiBzZWxlY3QsIENvbGxlY3Rpb25UeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IDMxNTNhMDY4NjE0Y2JmNmVlNWRmNzRkN2ZlZTUzZWI0YTU2NmI2OGMuLjFh
MDE5ODdmODJjMDgzMzA4YTk0YWNhZDEwZWU5M2EyMDFkMTVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIwMiwxMiArMjAyLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0SXRlbXM7CiB9OwogCi1pbmxpbmUgSFRN
TFNlbGVjdEVsZW1lbnQqIHRvSFRNTFNlbGVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTZWxl
Y3RFbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCBhNTMwMzFlNGRjMTg4YjU5YzQ4YzZiNDBhYmNh
NzRkMzU1MWIzYzAxLi42ZDZmMDI2NTI1ZDA3MzQwNTVlM2NlZjZmN2JlNzk5ZWQwYmIyMDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzEsNyArMzEsNyBAQCBjb2RlIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNvbCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVs
ZW1lbnQKIGNvbGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVudAogY29tbWFu
ZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1jb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENv
bnRlbnRFbGVtZW50LCBjb25kaXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9
c2hhZG93RE9NCitjb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENvbnRlbnRFbGVtZW50LCBjb25k
aXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9c2hhZG93RE9NLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiB3ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQsIG5vQ29uc3RydWN0b3IKIGRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxl
bWVudCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVAogZGQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudApAQCAtNTAsNyArNTAsNyBAQCBmaWd1cmUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogZm9udAogZm9vdGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGZvcm0gZ2VuZXJhdGVU
eXBlSGVscGVycwotZnJhbWUKK2ZyYW1lIGdlbmVyYXRlVHlwZUhlbHBlcnMKIGZyYW1lc2V0IGlu
dGVyZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogaDEg
aW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQKIGgyIGludGVyZmFjZU5hbWU9SFRNTEhl
YWRpbmdFbGVtZW50CkBAIC02NCw3ICs2NCw3IEBAIGhncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiBociBpbnRlcmZhY2VOYW1lPUhUTUxIUkVsZW1lbnQKIGh0bWwKIGkgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAotaWZyYW1lIGludGVyZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQK
K2lmcmFtZSBpbnRlcmZhY2VOYW1lPUhUTUxJRnJhbWVFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCiBpbWFnZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBpbWcgaW50ZXJmYWNlTmFtZT1I
VE1MSW1hZ2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKIGlucHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwpAQCAtOTAsNyArOTAsNyBA
QCBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vZW1iZWQgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbm9mcmFtZXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9sYXllciBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1vYmplY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVt
ZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitvYmplY3QgY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiBvbCBpbnRlcmZhY2VOYW1lPUhUTUxPTGlzdEVsZW1lbnQKIG9wdGdyb3Vw
IGludGVyZmFjZU5hbWU9SFRNTE9wdEdyb3VwRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwog
b3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc2NyaXB0
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHNl
Y3Rpb24gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNG
b3JtRWxlbWVudAorc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVU
eXBlSGVscGVycwogc21hbGwgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc291cmNlIHdyYXBw
ZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgZ2VuZXJhdGVUeXBl
SGVscGVycwogc3BhbgpAQCAtMTMzLDcgKzEzMyw3IEBAIHR0IGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIHUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdWwgaW50ZXJmYWNlTmFtZT1IVE1M
VUxpc3RFbGVtZW50CiB2YXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdmlkZW8gd3JhcHBl
ck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5l
ZWRzQ3JlYXRlZEJ5UGFyc2VyCit2aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwg
Y29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVy
YXRlVHlwZUhlbHBlcnMKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB4bXAgaW50ZXJm
YWNlTmFtZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4NmNkMWRlOTdhMWI1
ODY3NjQ2ODVhYmYzNzIxZjU1N2Q5OWRjNWNkLi5mMmJjZWUwNzY2NDNhOWExNzAwZmY4OTM3MGMy
MTk2ZjFjY2I3OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAt
OTgsMTIgKzk4LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVy
VVJMOwogfTsKIAotaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQqIHRvSFRNTFZpZGVvRWxlbWVudChO
b2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2Rl
IHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy9uYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5oCmluZGV4IDUzODA4ODgzMjZjYTcyOTBiNDA2MTM5MmNhYjg4MDU3MTE1YzFiYmIuLjQx
ZGM2YjNiMjQ3N2Q3MjgzODc1OTk0YjY5ZWQ1YzJhYWZhNjI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC04MCwxOCArODAsNiBA
QCBpbmxpbmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVj
dG9yTGlzdCgpCiAgICAgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OwogfQogCi1pbmxpbmUgYm9vbCBp
c0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2Rl
KTsKLSAgICByZXR1cm4gbm9kZS0+aXNJbnNlcnRpb25Qb2ludCgpICYmIHRvSW5zZXJ0aW9uUG9p
bnQobm9kZSktPmluc2VydGlvblBvaW50VHlwZSgpID09IEluc2VydGlvblBvaW50OjpIVE1MQ29u
dGVudEVsZW1lbnRUeXBlOwotfQotCi1pbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Ci19Ci0KICNlbmRpZiAv
LyBpZiBFTkFCTEUoU0hBRE9XX0RPTSkKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKaW5kZXggNTkzMzhkZmUwMjI2NzhlOGEzMjA2YjU1OWM0MjhjODE3ZjRiN2JmMC4uZDM1
ZDVjOWE0NzRlZWNmYTExOGU1ZDFmOWRkM2YzYjk2NTg3Njc0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00MTYsNyArNDE2LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6
ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkKICAgICBsb2FkRXZlbnRTZW5kZXIoKS5j
YW5jZWxFdmVudCh0aGlzKTsKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAg
ICAKLSAgICBpZiAobV9lbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSkK
KyAgICBpZiAoaXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQogICAgICAgICBzdGF0aWNf
Y2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVu
dCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJvdGVjdGlvbiByZWYt
Y291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVybmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNw
cAppbmRleCA5YTU4ODY0YmEzNTZmMmQ0YTc3YWQ1MDQ0YzAxNzIzZmI2MDBhZDQ1Li45YTRlMzRk
OGMxNjBhNzEzY2NhNDI0YzY1MTUxYzBmYjlmMGRjZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTE4LDgg
KzUxOCw4IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBub2Rlc1NpemU7ICsraSkgewogICAgICAgICBOb2RlKiBub2RlID0gbm9kZXNbaV07CiAg
ICAgICAgIEZyYW1lKiBjaGlsZEZyYW1lOwotICAgICAgICBpZiAoKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpmcmFtZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFt
ZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykpICYmCi0gICAg
ICAgICAgICAoY2hpbGRGcmFtZSA9IHRvRnJhbWVPd25lckVsZW1lbnQobm9kZSktPmNvbnRlbnRG
cmFtZSgpKSkgeworICAgICAgICBpZiAoKGlzSFRNTEZyYW1lRWxlbWVudChub2RlKSB8fCBpc0hU
TUxJRnJhbWVFbGVtZW50KG5vZGUpIHx8IGlzSFRNTE9iamVjdEVsZW1lbnQobm9kZSkKKyAgICAg
ICAgICAgICYmIChjaGlsZEZyYW1lID0gdG9GcmFtZU93bmVyRWxlbWVudChub2RlKS0+Y29udGVu
dEZyYW1lKCkpKSB7CiAgICAgICAgICAgICBpZiAoZnJhbWVGaWx0ZXIgJiYgIWZyYW1lRmlsdGVy
LT5zaG91bGRJbmNsdWRlU3ViZnJhbWUoY2hpbGRGcmFtZSkpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCmluZGV4IDkzZGViOTRlNzljNDdkYjcwYjczNzkyZmE0N2EyZDYyYTUzNzFiMWQuLjAyNGZi
ZjNiMTc4MzNlNjUyMDAxZDhkOGQ0NDQ1N2ZkMjk5NGI2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBib29sIHNob3VsZEln
bm9yZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1l
JiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQm
IGZyYW1lT3duZXIpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IGFsbCBmcmFt
ZSBvd25lcnMgaW5jbHVkaW5nIGFwcGxldHMuCi0gICAgcmV0dXJuIGZyYW1lT3duZXIuaGFzVGFn
TmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykgPyBIVE1MTmFtZXM6OmRhdGFBdHRyIDogSFRNTE5h
bWVzOjpzcmNBdHRyOworICAgIHJldHVybiBpc0hUTUxPYmplY3RFbGVtZW50KGZyYW1lT3duZXIp
ID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxOYW1lczo6c3JjQXR0cjsKIH0KIAogY2xhc3Mg
U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3Vt
dWxhdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXgg
NWYwMDdkNjczYzYxZGQ4NDI2NzJkNWUyYjU3NDRhM2RjZTc1Y2I1Zi4uMGYzMmVmYzI1MzM1OGE1
MWI1MjEzZWJhM2Y5YWViN2ZmNWZkOTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5jcHAKQEAgLTQ0OSw3ICs0NDksNyBAQCBib29sIGNhblNjcm9sbEluRGlyZWN0
aW9uKGNvbnN0IE5vZGUqIGNvbnRhaW5lciwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewog
ICAgIEFTU0VSVChjb250YWluZXIpOwogCi0gICAgaWYgKGNvbnRhaW5lci0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgaWYgKGlzSFRNTFNlbGVjdEVsZW1lbnQoY29udGFp
bmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aXNEb2N1
bWVudE5vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3Rr
LmNwcAppbmRleCAwNDI4ZGIyZjI2YzhjNjRkNzIyMDEyYzY4NDBiYWVlN2U3ZjA0MTZlLi45Nzc1
ODJlNjgzZDcwNDZhN2I4ZjZkMTM4NGVmYTVlMjNlMDQxZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgc3Rh
dGljIEtVUkwgZ2V0VVJMRm9ySW1hZ2VOb2RlKE5vZGUqIG5vZGUpCiAgICAgZWxzZSBpZiAobm9k
ZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKQogICAgICAgICB1cmxTdHJpbmcgPSB0
b0VsZW1lbnQobm9kZSktPmdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAjZW5k
aWYKLSAgICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6ZW1iZWRUYWcpIHx8
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKSB7CisgICAgZWxzZSBpZiAo
bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSB8fCBpc0hUTUxWaWRlb0VsZW1l
bnQobm9kZSkpIHsKICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsK
ICAgICAgICAgdXJsU3RyaW5nID0gZWxlbWVudC0+aW1hZ2VTb3VyY2VVUkwoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwCmluZGV4IGQ5ODcz
Mjk4MDVjZGY4MTRhNzkyZTAzM2I5NjJhNzhlMjcwMzZiM2MuLmExZGIzMDAwZTI2MWFmOGYzMzY5
YzIwODI1NjgyNDdkMDA2ZjQ2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
SUZyYW1lU2hpbVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvSUZyYW1l
U2hpbVN1cHBvcnQuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBnZXRQbHVnaW5PY2NsdXNp
b25zKEVsZW1lbnQqIGVsZW1lbnQsIFdpZGdldCogcGFyZW50V2lkZ2V0LCBjb25zdCBJbnRSZWN0
JgogICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGZyYW1lVmlldy0+ZnJhbWUoKS5vd25l
ckVsZW1lbnQoKTsKICAgICAgICAgUmVuZGVyT2JqZWN0KiBpZnJhbWVSZW5kZXJlciA9IGVsZW1l
bnQtPnJlbmRlcmVyKCk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjppZnJhbWVUYWcpCisgICAgICAgIGlmIChpc0hUTUxJRnJhbWVFbGVtZW50KGVsZW1lbnQp
KQogICAgICAgICAgICAgJiYgaWZyYW1lUmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0
SWdub3JpbmdUcmFuc2Zvcm1zKCkuaW50ZXJzZWN0cyhmcmFtZVJlY3QpCiAgICAgICAgICAgICAm
JiAoIWlmcmFtZVJlbmRlcmVyLT5zdHlsZSgpIHx8IGlmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLT52
aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkpIHsKICAgICAgICAgICAgIGdldE9iamVjdFN0YWNrKGlm
cmFtZVJlbmRlcmVyLCAmaWZyYW1lWnN0YWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0UmVzdWx0LmNwcAppbmRleCAyNjk5NDBjMTI5YmRhMzMxZWJjN2ZkMGJjZTU1NWFjNmM3
NmVlMzk4Li5iMzlhMzgwMzYxOTMxMTYyNDYzZWRlMzA5Y2U5MWVlNmIwYWVmM2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBAIC0zNjgsNyArMzY4LDcg
QEAgYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0CiB7
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlh
RWxlbWVudCgpKTsKLSAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSk7
CisgICAgcmV0dXJuIChtZWRpYUVsdCAmJiBpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFFbHQpICYm
IG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSk7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgpAQCAtMzgzLDcgKzM4Myw3IEBAIEhUTUxNZWRpYUVsZW1lbnQqIEhpdFRlc3RS
ZXN1bHQ6Om1lZGlhRWxlbWVudCgpIGNvbnN0CiAgICAgaWYgKCEobV9pbm5lck5vblNoYXJlZE5v
ZGUtPnJlbmRlcmVyKCkgJiYgbV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCktPmlzTWVk
aWEoKSkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2Rl
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IGlzSFRNTEF1ZGlvRWxlbWVudCht
X2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSkpCisgICAgaWYgKGlzSFRNTFZpZGVvRWxlbWVudCht
X2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSkgfHwgaXNIVE1MQXVkaW9FbGVtZW50KG1faW5uZXJO
b25TaGFyZWROb2RlLmdldCgpKSkKICAgICAgICAgcmV0dXJuIHRvSFRNTE1lZGlhRWxlbWVudCht
X2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MzAsNyAr
NDMwLDcgQEAgdm9pZCBIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0
KG1lZGlhRWxlbWVudCgpKTsKLSAgICBpZiAobWVkaWFFbHQgJiYgbWVkaWFFbHQtPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobWVkaWFFbHQgJiYgaXNIVE1MVmlk
ZW9FbGVtZW50KG1lZGlhRWx0KSkgewogICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0Vs
dCA9IHRvSFRNTFZpZGVvRWxlbWVudChtZWRpYUVsdCk7CiAgICAgICAgIGlmICghdmlkZW9FbHQt
PmlzRnVsbHNjcmVlbigpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSkgewogICAg
ICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNz
aW5nVXNlckdlc3R1cmUpOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6
bWVkaWFJc1ZpZGVvKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBt
ZWRpYUVsdC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsKKyAgICAgICAgcmV0dXJu
IGlzSFRNTFZpZGVvRWxlbWVudChtZWRpYUVsdCk7CiAjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCmluZGV4IGQzOGQyMTE3MWI1MzdjOGQ3ZGRjMGY3MGQ4ZWUzOGJkM2Q2YTAzNGMuLjYy
OGIxZjliZWY4MjBiYmEwYzIwYTFjZmI2NTZkNDZlZTUwNTEyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yMDg2LDcg
KzIwODYsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclZpZGVvKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgTm9kZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCk7Ci0gICAgICAgIGlm
ICghbm9kZSB8fCAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgIWlz
SFRNTEF1ZGlvRWxlbWVudChub2RlKSkpCisgICAgICAgIGlmICghbm9kZSB8fCAoIWlzSFRNTFZp
ZGVvRWxlbWVudChub2RlKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50KG5vZGUpKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKaW5kZXggN2NiMDAyMGU2YWYzOTI5ZGQwMzg2ZjI0ODVjYzBiNTY3
OTAyMzRmNS4uNjUzMmMyMGQ5MjEzYmZiODg3MDQyNmM3OTVhMzMxMjMwZWJiYjQxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtOTIsNyArOTIsNyBA
QCBSZW5kZXJMaXN0Qm94OjpSZW5kZXJMaXN0Qm94KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAg
QVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VSVChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpOwot
ICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Cisg
ICAgQVNTRVJUKGlzSFRNTFNlbGVjdEVsZW1lbnQoZWxlbWVudCkpOwogCiAgICAgdmlldygpLmZy
YW1lVmlldygpLmFkZFNjcm9sbGFibGVBcmVhKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggZTAwYTM5NWQ0M2MzNjBkOWE5Y2JmMTRk
MTdlYTk3YWJhZDYxZjAyNS4uNzM3YWY5YjliMDliOTVmN2RlM2FmZDRhOGU5ODc4ZDFmNjMzZTdj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC02
NSw3ICs2NSw3IEBAIFJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdChFbGVtZW50KiBlbGVt
ZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1M
RWxlbWVudCgpKTsKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNl
bGVjdFRhZykpOworICAgIEFTU0VSVChpc0hUTUxTZWxlY3RFbGVtZW50KGVsZW1lbnQpKTsKIH0K
IAogUmVuZGVyTWVudUxpc3Q6On5SZW5kZXJNZW51TGlzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggOWI0YjFkYTFjZTA0ZmZhYWY1MDc3NzNmZWNiZDhmZWJlZmMwNWUz
NC4uNjgzNGNiNjMwN2YwYmIyOGVlZmZlZmU0N2E2YTVjZDgzYWZkZjk4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgdm9pZCBJbnRlcm5h
bHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oTm9kZSogbm9kZSkKIAogYm9vbCBJbnRlcm5h
bHM6OmlzU2VsZWN0UG9wdXBWaXNpYmxlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlLT5o
YXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICBpZiAoIWlzSFRNTFNlbGVjdEVs
ZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEhUTUxTZWxlY3RFbGVt
ZW50KiBzZWxlY3QgPSB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTU2ZWVlZWVkMWYxODVmNmEwM2QzZDAxNDI3
YTQzNDZjZmFmZDBkMS4uMDBlNjg0MDQwODU2ODJiOWM2MTZmMGQwYTBmYmY4NjY2YWJiMDRkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0yODE5LDcgKzI4
MTksNyBAQCBJbnRSZWN0IFdlYlBhZ2VQcml2YXRlOjphZGp1c3RSZWN0T2Zmc2V0Rm9yRnJhbWVP
ZmZzZXQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29ucwogCiAgICAgICAgIE5vZGUqIG93bmVyTm9k
ZSA9IHN0YXRpY19jYXN0PE5vZGUqPihmcmFtZS0+b3duZXJFbGVtZW50KCkpOwogICAgICAgICB0
bm9kZSA9IG93bmVyTm9kZTsKLSAgICAgICAgaWYgKG93bmVyTm9kZSAmJiAob3duZXJOb2RlLT5o
YXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKSB8fCBvd25lck5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpmcmFtZVRhZykpKSB7CisgICAgICAgIGlmIChvd25lck5vZGUgJiYgKGlzSFRN
TElGcmFtZUVsZW1lbnQob3duZXJOb2RlKSB8fCBpc0hUTUxGcmFtZU5vZGUob3duZXJOb2RlKSkp
IHsKICAgICAgICAgICAgIEludFJlY3QgaUZyYW1lUmVjdDsKICAgICAgICAgICAgIGRvIHsKICAg
ICAgICAgICAgICAgICBpRnJhbWVSZWN0ID0gcmVjdEZvck5vZGUob3duZXJOb2RlKTsKQEAgLTUw
MTUsNyArNTAxNSw3IEBAIHZvaWQgV2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVk
KGJvb2wgZG9uZSkKICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KGQtPm1fZnVsbHNj
cmVlbk5vZGUuZ2V0KCkpOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAg
IGlmIChkLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkKKyAgICBpZiAoZC0+bV93ZWJTZXR0
aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGlzSFRNTFZpZGVvRWxlbWVudChlbGVt
ZW50KSkKICAgICAgICAgdG9IVE1MTWVkaWFFbGVtZW50KGVsZW1lbnQpLT5leGl0RnVsbHNjcmVl
bigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBlbHNlCkBAIC01NjY0LDcgKzU2
NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKQogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9k
ZShOb2RlKiBub2RlKQogewogI2lmIEVOQUJMRShWSURFTykKLSAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisgICAgaWYgKCFub2RlIHx8ICFp
c0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIE1lZGlhUGxh
eWVyKiBwbGF5ZXIgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSktPnBsYXllcigpOwpAQCAtNTY5
Nyw3ICs1Njk3LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2Rl
KE5vZGUqIG5vZGUpCiAgICAgICAgIG1fZnVsbHNjcmVlbk5vZGUgPSAwOwogICAgIH0KIAotICAg
IGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkKKyAg
ICBpZiAoIW5vZGUgfHwgIWlzSFRNTFZpZGVvRWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllciA9IHRvSFRNTE1lZGlhRWxlbWVudChub2RlKS0+
cGxheWVyKCk7CkBAIC01NzE5LDcgKzU3MTksNyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjplbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAjaWYgRU5BQkxFKFZJREVP
KQogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX3dlYlNldHRp
bmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnZpZGVvVGFnKSkgeworICAgIGlmIChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlk
ZW9DYXBhYmxlKCkgJiYgaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQpKSB7CiAgICAgICAgIC8v
IFRoZSBCcm93c2VyIGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBp
dCB3YW50cyB0bwogICAgICAgICAvLyB1c2UsIGFuZCB0aGlzIGlzIGEgdmlkZW8gZWxlbWVudC4g
VGhlIG9ubHkgcmVhc29uIHRoYXQKICAgICAgICAgLy8gd2Via2l0V2lsbEVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoKSBhbmQKQEAgLTU3NjQsNyArNTc2NCw3IEBAIHZvaWQgV2ViUGFnZVByaXZh
dGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogI2lmIEVOQUJM
RShWSURFTykKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV93
ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGVsZW1lbnQtPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobV93ZWJTZXR0aW5ncy0+ZnVsbFNj
cmVlblZpZGVvQ2FwYWJsZSgpICYmIGlzSFRNTFZpZGVvRWxlbWVudChlbGVtZW50KSkgewogICAg
ICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3
aWRnZXQuCiAgICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKICAgICB9IGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDg0NDc2OGM0Mjc2
ZjhmY2RiYTAzZTQ2OTQyODdkODU4YzNjMGRiYTYuLjMyMzkzYTdjMzNkMmRmZjAzZjBjN2JmNmIy
Y2U5OGQ2ODE2YTM5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAg
LTY5Nyw3ICs2OTcsNyBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmNob29zZUljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9vcwogCiBib29sIENocm9tZUNs
aWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9k
ZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsK
KyAgICByZXR1cm4gaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpOwogfQogCiB2b2lkIENocm9tZUNs
aWVudEJsYWNrQmVycnk6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAzYmI3MWRmNGVjNDViNGMzNjRiNmE0
NDE0OTM2MGM1MmQwZjYxMjJlLi4xYTM5YWY1M2E0ZmE1MmYyYWZlMDMzMzFiOGRiMWI0NmNkNzM1
MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xOTEsNyArMTkx
LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJh
bmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKgogICAgIEZyYW1lKiBmcmFtZSA9IG1fd2ViUGFn
ZVByaXZhdGUtPmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
ZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoRWxlbWVudCogZm9jdXNlZEVsZW1lbnQgPSBmcmFt
ZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKGZvY3Vz
ZWRFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICAgICAgICAg
IGlmIChpc0hUTUxTZWxlY3RFbGVtZW50KGZvY3VzZWRFbGVtZW50KSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoRE9NU3VwcG9ydDo6aXNQb3B1cElucHV0
RmllbGQoZm9jdXNlZEVsZW1lbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBv
cnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9y
dC5jcHAKaW5kZXggYTU4MDU1Yzg0ZTZiMzhlNWE2NWIwODU3ZTVkNjlmYWY5OGFlODNmNC4uMWE4
NjlmYWZmOTc4N2U5ZjQwNWM5OTQ4YTUwMDg3Y2U0MjIwZWM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKQEAgLTE0
OSw3ICsxNDksNyBAQCBib29sIGlzRWxlbWVudFR5cGVQbHVnaW4oY29uc3QgRWxlbWVudCogZWxl
bWVudCkKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
IChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKQorICAgIGlmIChpc0hU
TUxWaWRlb0VsZW1lbnQoZWxlbWVudCkKICAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmVtYmVkVGFnKQogICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6YXBwbGV0VGFnKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAppbmRl
eCBjOTcxNmJhNWU3MDNjZTIwN2Q5OWM2NjcyZjU1ZGM4MWUwOWExMmYxLi5jODU4OTAyM2ZhMDI5
OWY4OTQ4YTdjODM3YjIxZWMxZThlMjU3Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKQEAgLTE5ODMsNyAr
MTk4Myw3IEBAIGJvb2wgSW5wdXRIYW5kbGVyOjp3aWxsT3BlblBvcHVwRm9yTm9kZShOb2RlKiBu
b2RlKQogCiAgICAgQVNTRVJUKCFub2RlLT5pc0luU2hhZG93VHJlZSgpKTsKIAotICAgIGlmIChu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSB8fCBpc0hUTUxPcHRpb25FbGVt
ZW50KG5vZGUpKSB7CisgICAgaWYgKGlzSFRNTFNlbGVjdEVsZW1lbnQobm9kZSkgfHwgaXNIVE1M
T3B0aW9uRWxlbWVudChub2RlKSkgewogICAgICAgICAvLyBXZSBvcGVuIGxpc3QgcG9wdXBzIGZv
ciBvcHRpb25zIGFuZCBzZWxlY3RzLgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0y
MDA1LDcgKzIwMDUsNyBAQCBib29sIElucHV0SGFuZGxlcjo6ZGlkTm9kZU9wZW5Qb3B1cChOb2Rl
KiBub2RlKQogCiAgICAgQVNTRVJUKCFub2RlLT5pc0luU2hhZG93VHJlZSgpKTsKIAotICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICBpZiAoaXNIVE1M
U2VsZWN0RWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJuIG9wZW5TZWxlY3RQb3B1cCh0b0hU
TUxTZWxlY3RFbGVtZW50KG5vZGUpKTsKIAogICAgIGlmIChpc0hUTUxPcHRpb25FbGVtZW50KG5v
ZGUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9TZWxlY3Rpb25IYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDZiM2U3ZTg1ODU3ZjdlMzdmOGYzZGJh
ODMwZGM3NjU3NGFmZTFhNDYuLjJiOTJmY2VlZGE1MTQ3NDQ3MzBjYjM1MzdkZjM0MjQ3NTk4OWEw
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwCkBAIC0xMTY4LDcgKzExNjgsNyBAQCB2b2lkIFNl
bGVjdGlvbkhhbmRsZXI6OnNlbGVjdGlvblBvc2l0aW9uQ2hhbmdlZChib29sIGZvcmNlVXBkYXRl
V2l0aG91dENoYW5nZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKE5vZGUqIGZvY3VzZWRO
b2RlID0gZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAgICAgICAgaWYg
KGZvY3VzZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSB8fCAoZm9jdXNl
ZE5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiBET01TdXBwb3J0Ojppc1BvcHVwSW5wdXRGaWVsZCh0
b0VsZW1lbnQoZm9jdXNlZE5vZGUpKSkpIHsKKyAgICAgICAgaWYgKGlzSFRNTFNlbGVjdEVsZW1l
bnQoZm9jdXNlZE5vZGUpIHx8IChmb2N1c2VkTm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIERPTVN1
cHBvcnQ6OmlzUG9wdXBJbnB1dEZpZWxkKHRvRWxlbWVudChmb2N1c2VkTm9kZSkpKSkgewogICAg
ICAgICAgICAgU2VsZWN0aW9uTG9nKFBsYXRmb3JtOjpMb2dMZXZlbEluZm8sICJTZWxlY3Rpb25I
YW5kbGVyOjpzZWxlY3Rpb25Qb3NpdGlvbkNoYW5nZWQgc2VsZWN0aW9uIGlzIG9uIGEgcG9wdXAg
Y29udHJvbCwgc2tpcHBpbmcgcmVuZGVyaW5nLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAppbmRleCA2MjE1NDUwYjE0MWEzZjQ2MTkwOTVmZGIyMGM4NTMzOTMyMDg3
YjlkLi4xYzA5ODVhZGQ4YmZmOTgxODkxYWNhYzY3N2ZhYWNiYTM3ZTAwOWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
QEAgLTkyNyw3ICs5MjcsNyBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZQogI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKE5BVElWRV9GVUxMU0NSRUVOX1ZJREVPKQogYm9vbCBDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1
cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsKKyAgICByZXR1cm4gaXNI
VE1MVmlkZW9FbGVtZW50KG5vZGUpOwogfQogCiB2b2lkIENocm9tZUNsaWVudDo6ZW50ZXJGdWxs
c2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IGYwZTRlN2ZlYTFjZWI1MDQ5Y2ExMzg4ODA4
NzkwZGZmMzg5Y2QwYzUuLmVhOWJhNGQwNDQ2OWE1YjAyYmVlYzM1NTljMDg2MDAzMGFiZDZhMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCog
bWVkaWFQcm94eUNsaWVudChET01FbGVtZW50KiBlbGVtZW50KQogICAgIH0KIAogICAgIEVsZW1l
bnQqIG5vZGUgPSBjb3JlKGVsZW1lbnQpOwotICAgIGlmICghbm9kZSB8fCAoIW5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkp
IHsKKyAgICBpZiAoIW5vZGUgfHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkgJiYgIWlzSFRN
TEF1ZGlvRWxlbWVudChub2RlKSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJpbnZhbGlkIG1lZGlh
IGVsZW1lbnQgcGFzc2VkIik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4
IDljODgyMTllZDY1N2M2ODMxOTdhZGE1MTE0Njg3YzU5MTExNGZiYWMuLjkxYmYzOGY4YjU1NjFm
OGNkMWRhNGVhY2RkM2U3Y2M5ZGFmZGVmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTkwMCw3ICs5MDAsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogCiBi
b29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2Rl
KiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxOYW1l
czo6dmlkZW9UYWcpOworICAgIHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7CiB9CiAK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzQ5MmVmZjg2MDk5OWYxMjAy
MzJkMjg4Mjk4YWQ5NWNkOTMxYWRmYi4uZDZjZjU4ZjQ3YjJkZTI5MjA2ZTllMmQ3NmQ0YmE5MGQ5
MjQ2OWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjQ5Nyw3ICs2
NDk3LDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogCiAtICh2
b2lkKV9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOihXZWJDb3JlOjpOb2RlKilub2RlCiB7Ci0gICAg
QVNTRVJUKG5vZGUtPmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2aWRlb1RhZykpOwor
ICAgIEFTU0VSVChpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpOwogICAgIEhUTUxNZWRpYUVsZW1l
bnQqIHZpZGVvRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChub2RlKTsKIAogICAgIGlmIChf
cHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggNTQ2MjgxYTlkYmVkN2Ey
YWYxZWQxZWI5YzE5ZmQ2NGY1MTBmM2IxOC4uOWJjYmNhYjI4NTM1NmI2OWYzYWNjNDk4Njc5ZmJi
OTU2ZmU5ZGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKQEAgLTY5MCw3ICs2OTAsNyBAQCBGdWxsU2NyZWVuVmlkZW9RdCog
Q2hyb21lQ2xpZW50UXQ6OmZ1bGxTY3JlZW5WaWRlbygpCiBib29sIENocm9tZUNsaWVudFF0Ojpz
dXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJU
KG5vZGUpOwotICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcp
ICYmIGZ1bGxTY3JlZW5WaWRlbygpLT5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVv
RWxlbWVudChub2RlKSAmJiBmdWxsU2NyZWVuVmlkZW8oKS0+aXNWYWxpZCgpOwogfQogCiBib29s
IENocm9tZUNsaWVudFF0OjpyZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKQEAg
LTcwMCwxNCArNzAwLDE0IEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OnJlcXVpcmVzRnVsbHNjcmVl
bkZvclZpZGVvUGxheWJhY2soKQogCiB2b2lkIENocm9tZUNsaWVudFF0OjplbnRlckZ1bGxzY3Jl
ZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSk7CisgICAgQVNTRVJUKG5vZGUgJiYgaXNIVE1MVmlk
ZW9FbGVtZW50KG5vZGUpKTsKIAogICAgIGZ1bGxTY3JlZW5WaWRlbygpLT5lbnRlckZ1bGxTY3Jl
ZW5Gb3JOb2RlKG5vZGUpOwogfQogCiB2b2lkIENocm9tZUNsaWVudFF0OjpleGl0RnVsbHNjcmVl
bkZvck5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZSAmJiBub2RlLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKTsKKyAgICBBU1NFUlQobm9kZSAmJiBpc0hUTUxWaWRl
b0VsZW1lbnQobm9kZSkpOwogCiAgICAgZnVsbFNjcmVlblZpZGVvKCktPmV4aXRGdWxsU2NyZWVu
Rm9yTm9kZShub2RlKTsKIH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA5ZjM3MjY2NDgxOWM3NTQyMTZkM2MxMmVl
MGI0NDJhZmQ4MzJjNGFhLi5kYzViM2Q2ZDM4MDI5MGFmYTU5ZGUzOWY1MGU0NjI3ZWU3YzM3ZmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTc3Niw3ICs3NzYsNyBAQCBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IFdl
YkNocm9tZUNsaWVudDo6dWlEZWxlZ2F0ZSgpCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5v
ZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRNTFZp
ZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNj
cmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZTgyMzkwY2M0
YWYyNmQ4ODc4NzAwNGVkNGI0MjE1OTE4OGZhYjgwOS4uNzhhODNhNDRjYjE5MzRjMDVkYTMzY2Ix
ZDAyNjk2ZDViMTQ0MGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTYyNTgsNyArNjI1OCw3
IEBAIEhSRVNVTFQgV2ViVmlldzo6c2V0Q2FuU3RhcnRQbHVnaW5zKEJPT0wgY2FuU3RhcnRQbHVn
aW5zKQogCiB2b2lkIFdlYlZpZXc6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkK
IHsKLSAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgfHwgIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICBpZiAoIWlzSFRNTFZpZGVvRWxlbWVudChub2RlKSB8
fCAhbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUo
VklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cAppbmRleCAyMjI5YzBjYTZmNDc2MzU4NmEzMzNkYzBhNDBiZjg4MzNhYmE5ZWIxLi43ODU3Zjhh
YjU3Y2ZhZDAzMWM5NmM0NWMzYzEyNjNlNjJiNjJmZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTYwOCw3ICs2MDgsNyBAQCBib29s
IFdlYkZyYW1lOjpjb250YWluc0FueUZvcm1Db250cm9scygpIGNvbnN0CiAgICAgZm9yIChOb2Rl
KiBub2RlID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOyBub2RlOyBub2RlID0gTm9kZVRy
YXZlcnNhbDo6bmV4dChub2RlKSkgewogICAgICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50
KG5vZGUpIHx8IHRvRWxlbWVudChub2RlKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRh
ZykgfHwgaXNIVE1MVGV4dEFyZWFFbGVtZW50KG5vZGUpKQorICAgICAgICBpZiAoaXNIVE1MSW5w
dXRFbGVtZW50KG5vZGUpIHx8IGlzSFRNTFNlbGVjdEVsZW1lbnQobm9kZSkgfHwgaXNIVE1MVGV4
dEFyZWFFbGVtZW50KG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211175</attachid>
            <date>2013-09-09 23:53:13 -0700</date>
            <delta_ts>2013-09-10 00:29:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121080-20130910155310.patch</filename>
            <type>text/plain</type>
            <size>41399</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ5NWNhYmM1OWEyZTgx
ZDA5NTE3ODQyYmNiMmUyYjUzZTk2OGU1OS4uODAwYmJiMDZmYjI4OWExMTNhMDc2OWI4NWY1ZmZi
NDk1MTYzMjgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVu
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxGcmFtZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlTG9hZGVyOjpkaXNwYXRjaExvYWRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW5hZWg6CisgICAgICAgICogaHRtbC9IVE1M
T3B0aW9uc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBo
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6Cisg
ICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVPd25lclVSTEF0dHJpYnV0
ZU5hbWUpOgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFVSTEZvckltYWdlTm9kZSk6
CisgICAgICAgICogcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRQbHVnaW5PY2NsdXNpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRz
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9y
VmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFJc1ZpZGVvKToK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
VmlkZW8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OlJlbmRlckxpc3RCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlz
dDo6UmVuZGVyTWVudUxpc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNTZWxlY3RQb3B1cFZpc2libGUpOgorCiAyMDEz
LTA5LTA5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5l
cmF0ZSBtb3JlIFNWRyB0eXBlIGNoZWNrcyBhbmQgY29udmVyc2lvbnMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwppbmRleCA1MTcwOTdjMzYxZGE0MTdkMDNmMmU4MzI1M2EyOGJmOTk4ZGE2
NjFjLi4zOWVmZGY1ZWVmNmQ4MzNhNzMzNTcyZjE0NzU4YTc2M2MwYjM4NjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wOS0wOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRlIG1v
cmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9mIEhU
TUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAgYW5k
IHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNoIGNs
ZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5Cisg
ICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
YWRqdXN0UmVjdE9mZnNldEZvckZyYW1lT2Zmc2V0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVkKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZh
dGU6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRSYW5nZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNFbGVtZW50VHlwZVBsdWdp
bik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6OndpbGxPcGVuUG9wdXBGb3JOb2RlKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpkaWROb2RlT3BlblBv
cHVwKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25Qb3Np
dGlvbkNoYW5nZWQpOgorCiAyMDEzLTA5LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBXVEY6Om5vdEZvdW5kIHRvIFZlY3Rvci5oIGFuZCBk
ZWxldGUgTm90Rm91bmQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI3NjdmY2IwYzdkOWFjMTBiNjA0
MDE2N2RkYmRjNWQzNzE5ZWE0ZDEuLjZhMjQ2ZDE0NmEyM2QyZWEzYjk4OGNiMGFlYWEyYWMyNzBl
NDJmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wOS0wOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRl
IG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9m
IEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAg
YW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNo
IGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5
CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wOS0wNCAgWmFuIERvYmVyc2VrICA8emRv
YmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIHRoZSBX
YXlsYW5kIGJ1aWxkIHRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRlYjRlMDY5MmI2ZDE3YmY3
MzRiNWVkMzNjZTdlZjdkYzdiZGJlZTIuLjM5YjJkODI4NWJhOTQ5Yzg0OTRmMjc3YWRkM2YzZjc5
OTcwZWRiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0wOS0wOSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVy
YXRlIG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25z
IG9mIEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAg
ICAgYW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBh
dGNoIGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVk
IGJ5CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogUGx1Z2lucy9XZWJQ
bHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9y
Tm9kZSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOldlYkNvcmU6Ol0pOgorCiAyMDEzLTA5LTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRp
dGhyZWFkZWQgT3BlbkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGFiYzg5MzMzN2JkNGE5
OWIyMDIwMTM0ZTk4NjU5YjYwZWNmNGNhNmIuLmQ0Zjc2MDY5NTg4MzAwNTVkZjBkNWQ2OWEzOGUy
ZjFiZjQ3NjM4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDktMDkg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHZW5l
cmF0ZSBtb3JlIEhUTUwgdHlwZSBjaGVja3MgYW5kIGNhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTA4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuLXVwIHJlbWFpbmVkIGZ1bmN0aW9u
cyBvZiBIVE1MIGVsZW1lbnRzIHRvIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpCisgICAg
ICAgIGFuZCB0b0Zvb0VsZW1lbnQoKSBoZWxwZXJzLgorCisgICAgICAgIEJlc2lkZXMgdGhpcyBw
YXRjaCBjbGVhbi11cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRl
ZCBieQorICAgICAgICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKwogMjAxMy0wOS0wMyAgQWxsYW4g
U2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRd
IEltYWdlcyBzY2FsZWQgcG9vcmx5IG9uIGNvbXBvc2l0ZWQgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggNmJjZmQwZGE5OTNjMjVlZTIyZjUzNjdhOTI3YWI0ODBlYjU0NjVkZC4uZTEyOGVmMTkz
NTc3ODFhOWY3NzIwZjgzNDk3NDMxZTk4OWY4YjZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTA5LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgbW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEw
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
bi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2YgSFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRl
ZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBhbmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKwor
ICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2ggY2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdo
aWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkKKyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29F
bGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUpOgorCiAyMDEzLTA5LTA1ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1dpbmRvd3NdIEltcGxlbWVudCB0ZXh0IG9mZnNldCBtZXRob2RzIG9m
IElBY2Nlc3NpYmxlVGV4dCBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDdhY2U1OTZiMjQwYzYy
MDIwMTVkYzYzZjI1ZTk1Y2VmODBhOTdmMS4uMmJlMTRmODY4ZDlkNjgwODNlZmEyZGM5NzRjOWNi
MjQxMjhhYWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
Y29udGFpbnNBbnlGb3JtQ29udHJvbHMpOgorCiAyMDEzLTA5LTA5ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRpdGhyZWFkZWQgT3Bl
bkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDE1NDIzN2RlMGVjNzdlOGVkMTI4ODQ4ZjhiNjIx
MzEyNGFmODM3ODkuLjNjYzk5ODk1OGI1YjMyZWM0NTQ1ZDhmMmVmZGI0ZDBjOGY0ZGI1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2Fj
aGVBdGsuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVuU2Vs
ZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIAogICAgIC8vIE9ubHkg
c3VwcG9ydCBIVE1MIHNlbGVjdCBlbGVtZW50cyBzbyBmYXIgKEFSSUEgc2VsZWN0b3JzIG5vdCBz
dXBwb3J0ZWQpLgogICAgIE5vZGUqIG5vZGUgPSBvYmplY3QtPm5vZGUoKTsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmICgh
bm9kZSB8fCAhaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gRW1pdCBzaWduYWwgZnJvbSB0aGUgbGlzdGJveCdzIHBvaW50IG9mIHZpZXcgZmlyc3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5kZXggNDk5ZjJi
ZDM4MGQzY2NlZmY4YzkzMzgyODgzZjhmNGQyMDRiNWViNi4uMzg4MDYwYWUyODM0YzI4NTZmYzdl
MWI3MmZmOTU1Yjc1OGIyZjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuaApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgSFRNTEZyYW1l
RWxlbWVudEJhc2UqIHRvSFRNTEZyYW1lRWxlbWVudEJhc2UoTm9kZSogbm9kZSkKIHsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZnJhbWVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppZnJh
bWVUYWcpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBp
c0hUTUxGcmFtZUVsZW1lbnQobm9kZSkgfHwgaXNIVE1MSUZyYW1lRWxlbWVudChub2RlKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4obm9kZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCBjODkzNDYyYTNjNzQ2
NTJhZGZlNWUyYzYzNmY0YzUzZGEzMGMwOTAxLi4wMDI0YWQyYTNkOWQzNTFlODRlODMxYWNlMmNj
ZGM2YTJlN2M2YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBA
IC00NywxMiArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHls
ZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKIH07CiAKLWlubGluZSBIVE1MSUZyYW1lRWxlbWVu
dCogdG9IVE1MSUZyYW1lRWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpp
ZnJhbWVUYWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihu
b2RlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFt
ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGQz
NDVmODJhY2MxZTYyOTAwMDcxMzg5MjgxZGU3ZWE5YmIzMGRmZDAuLjdjMGU2Y2I1MzZiOWU0OGEy
NjdkNWRiYWYyYzk2MjdiMjNjOWUwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxv
YWRlci5jcHAKQEAgLTQ5LDEyICs0OSwxMiBAQCBIVE1MSW1hZ2VMb2FkZXI6On5IVE1MSW1hZ2VM
b2FkZXIoKQogdm9pZCBIVE1MSW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAg
ICAvLyBIVE1MVmlkZW9FbGVtZW50IHVzZXMgdGhpcyBjbGFzcyB0byBsb2FkIHRoZSBwb3N0ZXIg
aW1hZ2UsIGJ1dCBpdCBzaG91bGQgbm90IGZpcmUgZXZlbnRzIGZvciBsb2FkaW5nIG9yIGZhaWx1
cmUuCi0gICAgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkK
KyAgICBpZiAoaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCA9IGltYWdlKCktPmVycm9yT2NjdXJyZWQoKTsKICAg
ICBpZiAoIWVycm9yT2NjdXJyZWQgJiYgaW1hZ2UoKS0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29k
ZSgpID49IDQwMCkKLSAgICAgICAgZXJyb3JPY2N1cnJlZCA9IGVsZW1lbnQoKS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6Om9iamVjdFRhZyk7IC8vIEFuIDxvYmplY3Q+IGNvbnNpZGVycyBhIDQwNCB0
byBiZSBhbiBlcnJvciBhbmQgc2hvdWxkIGZpcmUgb25lcnJvci4KKyAgICAgICAgZXJyb3JPY2N1
cnJlZCA9IGlzSFRNTE9iamVjdEVsZW1lbnQoZWxlbWVudCgpKTsgLy8gQW4gPG9iamVjdD4gY29u
c2lkZXJzIGEgNDA0IHRvIGJlIGFuIGVycm9yIGFuZCBzaG91bGQgZmlyZSBvbmVycm9yLgogICAg
IGVsZW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGVycm9yT2NjdXJyZWQgPyBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCA6IGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOwogfQogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSFRNTEltYWdlTG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
bG9hZEVycm9yICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKQor
ICAgIGlmIChsb2FkRXJyb3IgJiYgaXNIVE1MT2JqZWN0RWxlbWVudChlbGVtZW50LmdldCgpKSkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKS0+
cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCAzMWQyZmQwMTk0Yjc0N2VhM2EyZjExMzhiNDM3MTk3MTA5YWM0Mjk2
Li42Zjk1ZWM0OWY5OTJiYmMzY2IxZjg2YmFmZWYyYjVlOTkyNmUwZTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xMDksMTIgKzEwOSw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1pbmxpbmUgSFRNTE9i
amVjdEVsZW1lbnQqIHRvSFRNTE9iamVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6b2JqZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPYmplY3RF
bGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKaW5kZXggZGRjZmNiNDg2OGY5MzU3YjllODI0NmZi
MjkzZWQ5MjQ4ZDNjMTk3MS4uNjUzZmNjZDcwM2M3YzlkOGQyOTBlNjc1MDBjYWUxNzUyMjFmZjI0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcApA
QCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b246OkhUTUxPcHRpb25zQ29sbGVjdGlvbihOb2RlKiBzZWxlY3QpCiAgICAgOiBIVE1MQ29sbGVj
dGlvbihzZWxlY3QsIFNlbGVjdE9wdGlvbnMsIERvZXNOb3RPdmVycmlkZUl0ZW1BZnRlcikKIHsK
LSAgICBBU1NFUlQoc2VsZWN0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Cisg
ICAgQVNTRVJUKGlzSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0KSk7CiB9CiAKIFBhc3NSZWZQdHI8
SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShOb2Rl
KiBzZWxlY3QsIENvbGxlY3Rpb25UeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IDMxNTNhMDY4NjE0Y2JmNmVlNWRmNzRkN2ZlZTUzZWI0YTU2NmI2OGMuLjFh
MDE5ODdmODJjMDgzMzA4YTk0YWNhZDEwZWU5M2EyMDFkMTVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIwMiwxMiArMjAyLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0SXRlbXM7CiB9OwogCi1pbmxpbmUgSFRN
TFNlbGVjdEVsZW1lbnQqIHRvSFRNTFNlbGVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTZWxl
Y3RFbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCBhNTMwMzFlNGRjMTg4YjU5YzQ4YzZiNDBhYmNh
NzRkMzU1MWIzYzAxLi42ZDZmMDI2NTI1ZDA3MzQwNTVlM2NlZjZmN2JlNzk5ZWQwYmIyMDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzEsNyArMzEsNyBAQCBjb2RlIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNvbCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVs
ZW1lbnQKIGNvbGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVudAogY29tbWFu
ZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1jb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENv
bnRlbnRFbGVtZW50LCBjb25kaXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9
c2hhZG93RE9NCitjb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENvbnRlbnRFbGVtZW50LCBjb25k
aXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9c2hhZG93RE9NLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiB3ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQsIG5vQ29uc3RydWN0b3IKIGRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxl
bWVudCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVAogZGQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudApAQCAtNTAsNyArNTAsNyBAQCBmaWd1cmUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogZm9udAogZm9vdGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGZvcm0gZ2VuZXJhdGVU
eXBlSGVscGVycwotZnJhbWUKK2ZyYW1lIGdlbmVyYXRlVHlwZUhlbHBlcnMKIGZyYW1lc2V0IGlu
dGVyZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogaDEg
aW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQKIGgyIGludGVyZmFjZU5hbWU9SFRNTEhl
YWRpbmdFbGVtZW50CkBAIC02NCw3ICs2NCw3IEBAIGhncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiBociBpbnRlcmZhY2VOYW1lPUhUTUxIUkVsZW1lbnQKIGh0bWwKIGkgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAotaWZyYW1lIGludGVyZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQK
K2lmcmFtZSBpbnRlcmZhY2VOYW1lPUhUTUxJRnJhbWVFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCiBpbWFnZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBpbWcgaW50ZXJmYWNlTmFtZT1I
VE1MSW1hZ2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKIGlucHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwpAQCAtOTAsNyArOTAsNyBA
QCBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vZW1iZWQgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbm9mcmFtZXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9sYXllciBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1vYmplY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVt
ZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitvYmplY3QgY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiBvbCBpbnRlcmZhY2VOYW1lPUhUTUxPTGlzdEVsZW1lbnQKIG9wdGdyb3Vw
IGludGVyZmFjZU5hbWU9SFRNTE9wdEdyb3VwRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwog
b3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc2NyaXB0
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHNl
Y3Rpb24gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNG
b3JtRWxlbWVudAorc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVU
eXBlSGVscGVycwogc21hbGwgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc291cmNlIHdyYXBw
ZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgZ2VuZXJhdGVUeXBl
SGVscGVycwogc3BhbgpAQCAtMTMzLDcgKzEzMyw3IEBAIHR0IGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIHUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdWwgaW50ZXJmYWNlTmFtZT1IVE1M
VUxpc3RFbGVtZW50CiB2YXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdmlkZW8gd3JhcHBl
ck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5l
ZWRzQ3JlYXRlZEJ5UGFyc2VyCit2aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwg
Y29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVy
YXRlVHlwZUhlbHBlcnMKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB4bXAgaW50ZXJm
YWNlTmFtZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4NmNkMWRlOTdhMWI1
ODY3NjQ2ODVhYmYzNzIxZjU1N2Q5OWRjNWNkLi5mMmJjZWUwNzY2NDNhOWExNzAwZmY4OTM3MGMy
MTk2ZjFjY2I3OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAt
OTgsMTIgKzk4LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVy
VVJMOwogfTsKIAotaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQqIHRvSFRNTFZpZGVvRWxlbWVudChO
b2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2Rl
IHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy9uYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5oCmluZGV4IDUzODA4ODgzMjZjYTcyOTBiNDA2MTM5MmNhYjg4MDU3MTE1YzFiYmIuLjQx
ZGM2YjNiMjQ3N2Q3MjgzODc1OTk0YjY5ZWQ1YzJhYWZhNjI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC04MCwxOCArODAsNiBA
QCBpbmxpbmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVj
dG9yTGlzdCgpCiAgICAgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OwogfQogCi1pbmxpbmUgYm9vbCBp
c0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2Rl
KTsKLSAgICByZXR1cm4gbm9kZS0+aXNJbnNlcnRpb25Qb2ludCgpICYmIHRvSW5zZXJ0aW9uUG9p
bnQobm9kZSktPmluc2VydGlvblBvaW50VHlwZSgpID09IEluc2VydGlvblBvaW50OjpIVE1MQ29u
dGVudEVsZW1lbnRUeXBlOwotfQotCi1pbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Ci19Ci0KICNlbmRpZiAv
LyBpZiBFTkFCTEUoU0hBRE9XX0RPTSkKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKaW5kZXggNTkzMzhkZmUwMjI2NzhlOGEzMjA2YjU1OWM0MjhjODE3ZjRiN2JmMC4uZDM1
ZDVjOWE0NzRlZWNmYTExOGU1ZDFmOWRkM2YzYjk2NTg3Njc0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00MTYsNyArNDE2LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6
ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkKICAgICBsb2FkRXZlbnRTZW5kZXIoKS5j
YW5jZWxFdmVudCh0aGlzKTsKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAg
ICAKLSAgICBpZiAobV9lbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSkK
KyAgICBpZiAoaXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQogICAgICAgICBzdGF0aWNf
Y2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVu
dCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJvdGVjdGlvbiByZWYt
Y291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVybmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNw
cAppbmRleCA5YTU4ODY0YmEzNTZmMmQ0YTc3YWQ1MDQ0YzAxNzIzZmI2MDBhZDQ1Li45YTRlMzRk
OGMxNjBhNzEzY2NhNDI0YzY1MTUxYzBmYjlmMGRjZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTE4LDgg
KzUxOCw4IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBub2Rlc1NpemU7ICsraSkgewogICAgICAgICBOb2RlKiBub2RlID0gbm9kZXNbaV07CiAg
ICAgICAgIEZyYW1lKiBjaGlsZEZyYW1lOwotICAgICAgICBpZiAoKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpmcmFtZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFt
ZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykpICYmCi0gICAg
ICAgICAgICAoY2hpbGRGcmFtZSA9IHRvRnJhbWVPd25lckVsZW1lbnQobm9kZSktPmNvbnRlbnRG
cmFtZSgpKSkgeworICAgICAgICBpZiAoKGlzSFRNTEZyYW1lRWxlbWVudChub2RlKSB8fCBpc0hU
TUxJRnJhbWVFbGVtZW50KG5vZGUpIHx8IGlzSFRNTE9iamVjdEVsZW1lbnQobm9kZSkKKyAgICAg
ICAgICAgICYmIChjaGlsZEZyYW1lID0gdG9GcmFtZU93bmVyRWxlbWVudChub2RlKS0+Y29udGVu
dEZyYW1lKCkpKSB7CiAgICAgICAgICAgICBpZiAoZnJhbWVGaWx0ZXIgJiYgIWZyYW1lRmlsdGVy
LT5zaG91bGRJbmNsdWRlU3ViZnJhbWUoY2hpbGRGcmFtZSkpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCmluZGV4IDkzZGViOTRlNzljNDdkYjcwYjczNzkyZmE0N2EyZDYyYTUzNzFiMWQuLjAyNGZi
ZjNiMTc4MzNlNjUyMDAxZDhkOGQ0NDQ1N2ZkMjk5NGI2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBib29sIHNob3VsZEln
bm9yZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1l
JiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQm
IGZyYW1lT3duZXIpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IGFsbCBmcmFt
ZSBvd25lcnMgaW5jbHVkaW5nIGFwcGxldHMuCi0gICAgcmV0dXJuIGZyYW1lT3duZXIuaGFzVGFn
TmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykgPyBIVE1MTmFtZXM6OmRhdGFBdHRyIDogSFRNTE5h
bWVzOjpzcmNBdHRyOworICAgIHJldHVybiBpc0hUTUxPYmplY3RFbGVtZW50KGZyYW1lT3duZXIp
ID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxOYW1lczo6c3JjQXR0cjsKIH0KIAogY2xhc3Mg
U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3Vt
dWxhdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKaW5kZXgg
NWYwMDdkNjczYzYxZGQ4NDI2NzJkNWUyYjU3NDRhM2RjZTc1Y2I1Zi4uMGYzMmVmYzI1MzM1OGE1
MWI1MjEzZWJhM2Y5YWViN2ZmNWZkOTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5jcHAKQEAgLTQ0OSw3ICs0NDksNyBAQCBib29sIGNhblNjcm9sbEluRGlyZWN0
aW9uKGNvbnN0IE5vZGUqIGNvbnRhaW5lciwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewog
ICAgIEFTU0VSVChjb250YWluZXIpOwogCi0gICAgaWYgKGNvbnRhaW5lci0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgaWYgKGlzSFRNTFNlbGVjdEVsZW1lbnQoY29udGFp
bmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aXNEb2N1
bWVudE5vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3Rr
LmNwcAppbmRleCAwNDI4ZGIyZjI2YzhjNjRkNzIyMDEyYzY4NDBiYWVlN2U3ZjA0MTZlLi5jYWVl
MzAyNzkzNDdjOTBiMmY5NTI2NmM2Njg0OTAyYjIzMGIyZWViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgc3Rh
dGljIEtVUkwgZ2V0VVJMRm9ySW1hZ2VOb2RlKE5vZGUqIG5vZGUpCiAgICAgZWxzZSBpZiAobm9k
ZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKQogICAgICAgICB1cmxTdHJpbmcgPSB0
b0VsZW1lbnQobm9kZSktPmdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAjZW5k
aWYKLSAgICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6ZW1iZWRUYWcpIHx8
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKSB7CisgICAgZWxzZSBpZiAo
bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSB8fCBpc0hUTUxPYmplY3RFbGVt
ZW50KG5vZGUpKSB7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7
CiAgICAgICAgIHVybFN0cmluZyA9IGVsZW1lbnQtPmltYWdlU291cmNlVVJMKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcAppbmRleCBkOTg3
MzI5ODA1Y2RmODE0YTc5MmUwMzNiOTYyYTc4ZTI3MDM2YjNjLi5hMWRiMzAwMGUyNjFhZjhmMzM2
OWMyMDgyNTY4MjQ3ZDAwNmY0NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0lGcmFtZVNoaW1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFt
ZVNoaW1TdXBwb3J0LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgZ2V0UGx1Z2luT2NjbHVz
aW9ucyhFbGVtZW50KiBlbGVtZW50LCBXaWRnZXQqIHBhcmVudFdpZGdldCwgY29uc3QgSW50UmVj
dCYKICAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBmcmFtZVZpZXctPmZyYW1lKCkub3du
ZXJFbGVtZW50KCk7CiAgICAgICAgIFJlbmRlck9iamVjdCogaWZyYW1lUmVuZGVyZXIgPSBlbGVt
ZW50LT5yZW5kZXJlcigpOwogCi0gICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6aWZyYW1lVGFnKQorICAgICAgICBpZiAoaXNIVE1MSUZyYW1lRWxlbWVudChlbGVtZW50
KSkKICAgICAgICAgICAgICYmIGlmcmFtZVJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dElnbm9yaW5nVHJhbnNmb3JtcygpLmludGVyc2VjdHMoZnJhbWVSZWN0KQogICAgICAgICAgICAg
JiYgKCFpZnJhbWVSZW5kZXJlci0+c3R5bGUoKSB8fCBpZnJhbWVSZW5kZXJlci0+c3R5bGUoKS0+
dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpKSB7CiAgICAgICAgICAgICBnZXRPYmplY3RTdGFjayhp
ZnJhbWVSZW5kZXJlciwgJmlmcmFtZVpzdGFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMjY5OTQwYzEyOWJkYTMzMWViYzdmZDBiY2U1NTVhYzZj
NzZlZTM5OC4uYjM5YTM4MDM2MTkzMTE2MjQ2M2VkZTMwOWNlOTFlZTZiMGFlZjNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtMzY4LDcgKzM2OCw3
IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdAog
ewogI2lmIEVOQUJMRShWSURFTykKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRp
YUVsZW1lbnQoKSk7Ci0gICAgcmV0dXJuIChtZWRpYUVsdCAmJiBtZWRpYUVsdC0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkp
OworICAgIHJldHVybiAobWVkaWFFbHQgJiYgaXNIVE1MVmlkZW9FbGVtZW50KG1lZGlhRWx0KSAm
JiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpOwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKQEAgLTM4Myw3ICszODMsNyBAQCBIVE1MTWVkaWFFbGVtZW50KiBIaXRUZXN0
UmVzdWx0OjptZWRpYUVsZW1lbnQoKSBjb25zdAogICAgIGlmICghKG1faW5uZXJOb25TaGFyZWRO
b2RlLT5yZW5kZXJlcigpICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5kZXJlcigpLT5pc01l
ZGlhKCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChtX2lubmVyTm9uU2hhcmVkTm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBpc0hUTUxBdWRpb0VsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpKQorICAgIGlmIChpc0hUTUxWaWRlb0VsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpIHx8IGlzSFRNTEF1ZGlvRWxlbWVudChtX2lubmVy
Tm9uU2hhcmVkTm9kZS5nZXQoKSkpCiAgICAgICAgIHJldHVybiB0b0hUTUxNZWRpYUVsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgIHJldHVybiAwOwogfQpAQCAtNDMwLDcg
KzQzMCw3IEBAIHZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBj
b25zdAogewogI2lmIEVOQUJMRShWSURFTykKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
dChtZWRpYUVsZW1lbnQoKSk7Ci0gICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgaWYgKG1lZGlhRWx0ICYmIGlzSFRNTFZp
ZGVvRWxlbWVudChtZWRpYUVsdCkpIHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9F
bHQgPSB0b0hUTUxWaWRlb0VsZW1lbnQobWVkaWFFbHQpOwogICAgICAgICBpZiAoIXZpZGVvRWx0
LT5pc0Z1bGxzY3JlZW4oKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpIHsKICAg
ICAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6
Om1lZGlhSXNWaWRlbygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
bWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgICAgIHJldHVy
biBpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFFbHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAppbmRleCBkMzhkMjExNzFiNTM3YzhkN2RkYzBmNzBkOGVlMzhiZDNkNmEwMzRjLi42
MjhiMWY5YmVmODIwYmJhMGMyMGExY2ZiNjU2ZDQ2ZWU1MDUxMmVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjA4Niw3
ICsyMDg2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JWaWRlbyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOwotICAgICAgICBp
ZiAoIW5vZGUgfHwgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmICFp
c0hUTUxBdWRpb0VsZW1lbnQobm9kZSkpKQorICAgICAgICBpZiAoIW5vZGUgfHwgKCFpc0hUTUxW
aWRlb0VsZW1lbnQobm9kZSkgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDdjYjAwMjBlNmFmMzkyOWRkMDM4NmYyNDg1Y2MwYjU2
NzkwMjM0ZjUuLjY1MzJjMjBkOTIxM2JmYjg4NzA0MjZjNzk1YTMzMTIzMGViYmI0MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgUmVuZGVyTGlzdEJveDo6UmVuZGVyTGlzdEJveChFbGVtZW50KiBlbGVtZW50KQogewogICAg
IEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsK
LSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpOwor
ICAgIEFTU0VSVChpc0hUTUxTZWxlY3RFbGVtZW50KGVsZW1lbnQpKTsKIAogICAgIHZpZXcoKS5m
cmFtZVZpZXcoKS5hZGRTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGUwMGEzOTVkNDNjMzYwZDlhOWNiZjE0
ZDE3ZWE5N2FiYWQ2MWYwMjUuLjczN2FmOWI5YjA5Yjk1ZjdkZTNhZmQ0YThlOTg3OGQxZjYzM2U3
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAt
NjUsNyArNjUsNyBAQCBSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoRWxlbWVudCogZWxl
bWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRN
TEVsZW1lbnQoKSk7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpz
ZWxlY3RUYWcpKTsKKyAgICBBU1NFUlQoaXNIVE1MU2VsZWN0RWxlbWVudChlbGVtZW50KSk7CiB9
CiAKIFJlbmRlck1lbnVMaXN0Ojp+UmVuZGVyTWVudUxpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDliNGIxZGExY2UwNGZmYWFmNTA3NzczZmVjYmQ4ZmViZWZjMDVl
MzQuLjY4MzRjYjYzMDdmMGJiMjhlZWZmZWZlNDdhNmE1Y2Q4M2FmZGY5OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE5ODcsNyArMTk4Nyw3IEBAIHZvaWQgSW50ZXJu
YWxzOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKE5vZGUqIG5vZGUpCiAKIGJvb2wgSW50ZXJu
YWxzOjppc1NlbGVjdFBvcHVwVmlzaWJsZShOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgaWYgKCFpc0hUTUxTZWxlY3RF
bGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBIVE1MU2VsZWN0RWxl
bWVudCogc2VsZWN0ID0gdG9IVE1MU2VsZWN0RWxlbWVudChub2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDU1NmVlZWVlZDFmMTg1ZjZhMDNkM2QwMTQy
N2E0MzQ2Y2ZhZmQwZDEuLjAwZTY4NDA0MDg1NjgyYjljNjE2ZjBkMGEwZmJmODY2NmFiYjA0ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMjgxOSw3ICsy
ODE5LDcgQEAgSW50UmVjdCBXZWJQYWdlUHJpdmF0ZTo6YWRqdXN0UmVjdE9mZnNldEZvckZyYW1l
T2Zmc2V0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnMKIAogICAgICAgICBOb2RlKiBvd25lck5v
ZGUgPSBzdGF0aWNfY2FzdDxOb2RlKj4oZnJhbWUtPm93bmVyRWxlbWVudCgpKTsKICAgICAgICAg
dG5vZGUgPSBvd25lck5vZGU7Ci0gICAgICAgIGlmIChvd25lck5vZGUgJiYgKG93bmVyTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFtZVRhZykgfHwgb3duZXJOb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZnJhbWVUYWcpKSkgeworICAgICAgICBpZiAob3duZXJOb2RlICYmIChpc0hU
TUxJRnJhbWVFbGVtZW50KG93bmVyTm9kZSkgfHwgaXNIVE1MRnJhbWVOb2RlKG93bmVyTm9kZSkp
KSB7CiAgICAgICAgICAgICBJbnRSZWN0IGlGcmFtZVJlY3Q7CiAgICAgICAgICAgICBkbyB7CiAg
ICAgICAgICAgICAgICAgaUZyYW1lUmVjdCA9IHJlY3RGb3JOb2RlKG93bmVyTm9kZSk7CkBAIC01
MDE1LDcgKzUwMTUsNyBAQCB2b2lkIFdlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4aXRl
ZChib29sIGRvbmUpCiAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChkLT5tX2Z1bGxz
Y3JlZW5Ob2RlLmdldCgpKTsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAg
ICBpZiAoZC0+bV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGVsZW1l
bnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisgICAgaWYgKGQtPm1fd2ViU2V0
dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQoZWxl
bWVudCkpCiAgICAgICAgIHRvSFRNTE1lZGlhRWxlbWVudChlbGVtZW50KS0+ZXhpdEZ1bGxzY3Jl
ZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgZWxzZQpAQCAtNTY2NCw3ICs1
NjY0LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikKIHZvaWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5v
ZGUoTm9kZSogbm9kZSkKIHsKICNpZiBFTkFCTEUoVklERU8pCi0gICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQorICAgIGlmICghbm9kZSB8fCAh
aXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKICAgICBNZWRpYVBs
YXllciogcGxheWVyID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpLT5wbGF5ZXIoKTsKQEAgLTU2
OTcsNyArNTY5Nyw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsc2NyZWVuRm9yTm9k
ZShOb2RlKiBub2RlKQogICAgICAgICBtX2Z1bGxzY3JlZW5Ob2RlID0gMDsKICAgICB9CiAKLSAg
ICBpZiAoIW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisg
ICAgaWYgKCFub2RlIHx8ICFpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkt
PnBsYXllcigpOwpAQCAtNTcxOSw3ICs1NzE5LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogI2lmIEVOQUJMRShWSURF
TykKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV93ZWJTZXR0
aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZp
ZGVvQ2FwYWJsZSgpICYmIGlzSFRNTFZpZGVvRWxlbWVudChlbGVtZW50KSkgewogICAgICAgICAv
LyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQg
aXQgd2FudHMgdG8KICAgICAgICAgLy8gdXNlLCBhbmQgdGhpcyBpcyBhIHZpZGVvIGVsZW1lbnQu
IFRoZSBvbmx5IHJlYXNvbiB0aGF0CiAgICAgICAgIC8vIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KCkgYW5kCkBAIC01NzY0LDcgKzU3NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcml2
YXRlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICNpZiBFTkFC
TEUoVklERU8pCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1f
d2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSAmJiBlbGVtZW50LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUoKSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQoZWxlbWVudCkpIHsKICAg
ICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8g
d2lkZ2V0LgogICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCk7CiAgICAgfSBl
bHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA4NDQ3NjhjNDI3
NmY4ZmNkYmEwM2U0Njk0Mjg3ZDg1OGMzYzBkYmE2Li4zMjM5M2E3YzMzZDJkZmYwM2YwYzdiZjZi
MmNlOThkNjgxNmEzOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBA
IC02OTcsNyArNjk3LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjaG9vc2VJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3MKIAogYm9vbCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7
CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggM2JiNzFkZjRlYzQ1YjRjMzY0YjZh
NDQxNDkzNjBjNTJkMGY2MTIyZS4uMWEzOWFmNTNhNGZhNTJmMmFmZTAzMzMxYjhkYjFiNDZjZDcz
NTEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTkxLDcgKzE5
MSw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRS
YW5nZShSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSoKICAgICBGcmFtZSogZnJhbWUgPSBtX3dlYlBh
Z2VQcml2YXRlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUt
PmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChmb2N1
c2VkRWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgICAgICAg
ICBpZiAoaXNIVE1MU2VsZWN0RWxlbWVudChmb2N1c2VkRWxlbWVudCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKERPTVN1cHBvcnQ6OmlzUG9wdXBJbnB1
dEZpZWxkKGZvY3VzZWRFbGVtZW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBw
b3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBv
cnQuY3BwCmluZGV4IGE1ODA1NWM4NGU2YjM4ZTVhNjViMDg1N2U1ZDY5ZmFmOThhZTgzZjQuLmYy
ODM2OGJmNDZhYjkxYzRkYjA2ODNmMGZjYmI3YTc5MjJmYjI1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwCkBAIC0x
NDksNyArMTQ5LDcgQEAgYm9vbCBpc0VsZW1lbnRUeXBlUGx1Z2luKGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykKKyAgICBpZiAoaXNI
VE1MT2JqZWN0RWxlbWVudChlbGVtZW50KQogICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZW1iZWRUYWcpCiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjphcHBsZXRUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmlu
ZGV4IGM5NzE2YmE1ZTcwM2NlMjA3ZDk5YzY2NzJmNTVkYzgxZTA5YTEyZjEuLmM4NTg5MDIzZmEw
Mjk5Zjg5NDhhN2M4MzdiMjFlYzFlOGUyNTdjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtMTk4Myw3
ICsxOTgzLDcgQEAgYm9vbCBJbnB1dEhhbmRsZXI6OndpbGxPcGVuUG9wdXBGb3JOb2RlKE5vZGUq
IG5vZGUpCiAKICAgICBBU1NFUlQoIW5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpOwogCi0gICAgaWYg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IGlzSFRNTE9wdGlvbkVs
ZW1lbnQobm9kZSkpIHsKKyAgICBpZiAoaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSB8fCBpc0hU
TUxPcHRpb25FbGVtZW50KG5vZGUpKSB7CiAgICAgICAgIC8vIFdlIG9wZW4gbGlzdCBwb3B1cHMg
Zm9yIG9wdGlvbnMgYW5kIHNlbGVjdHMuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAg
LTIwMDUsNyArMjAwNSw3IEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpkaWROb2RlT3BlblBvcHVwKE5v
ZGUqIG5vZGUpCiAKICAgICBBU1NFUlQoIW5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpOwogCi0gICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmIChpc0hU
TUxTZWxlY3RFbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm4gb3BlblNlbGVjdFBvcHVwKHRv
SFRNTFNlbGVjdEVsZW1lbnQobm9kZSkpOwogCiAgICAgaWYgKGlzSFRNTE9wdGlvbkVsZW1lbnQo
bm9kZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggNmIzZTdlODU4NTdmN2UzN2Y4ZjNk
YmE4MzBkYzc2NTc0YWZlMWE0Ni4uMmI5MmZjZWVkYTUxNDc0NDczMGNiMzUzN2RmMzQyNDc1OTg5
YTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
U2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTExNjgsNyArMTE2OCw3IEBAIHZvaWQg
U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2VkKGJvb2wgZm9yY2VVcGRh
dGVXaXRob3V0Q2hhbmdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoTm9kZSogZm9jdXNl
ZE5vZGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgewotICAgICAgICBp
ZiAoZm9jdXNlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IChmb2N1
c2VkTm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIERPTVN1cHBvcnQ6OmlzUG9wdXBJbnB1dEZpZWxk
KHRvRWxlbWVudChmb2N1c2VkTm9kZSkpKSkgeworICAgICAgICBpZiAoaXNIVE1MU2VsZWN0RWxl
bWVudChmb2N1c2VkTm9kZSkgfHwgKGZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgRE9N
U3VwcG9ydDo6aXNQb3B1cElucHV0RmllbGQodG9FbGVtZW50KGZvY3VzZWROb2RlKSkpKSB7CiAg
ICAgICAgICAgICBTZWxlY3Rpb25Mb2coUGxhdGZvcm06OkxvZ0xldmVsSW5mbywgIlNlbGVjdGlv
bkhhbmRsZXI6OnNlbGVjdGlvblBvc2l0aW9uQ2hhbmdlZCBzZWxlY3Rpb24gaXMgb24gYSBwb3B1
cCBjb250cm9sLCBza2lwcGluZyByZW5kZXJpbmcuIik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCmluZGV4IDYyMTU0NTBiMTQxYTNmNDYxOTA5NWZkYjIwYzg1MzM5MzIw
ODdiOWQuLjFjMDk4NWFkZDhiZmY5ODE4OTFhY2FjNjc3ZmFhY2JhMzdlMDA5YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cApAQCAtOTI3LDcgKzkyNyw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiBib29sIENocm9tZUNsaWVu
dDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQogewotICAgIHJl
dHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpOworICAgIHJldHVybiBp
c0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggZjBlNGU3ZmVhMWNlYjUwNDljYTEzODg4
MDg3OTBkZmYzODljZDBjNS4uZWE5YmE0ZDA0NDY5YTViMDJiZWVjMzU1OWMwODYwMDMwYWJkNmEx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYVByb3h5Q2xpZW50KERPTUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgfQogCiAgICAgRWxl
bWVudCogbm9kZSA9IGNvcmUoZWxlbWVudCk7Ci0gICAgaWYgKCFub2RlIHx8ICghbm9kZS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50KG5vZGUp
KSkgeworICAgIGlmICghbm9kZSB8fCAoIWlzSFRNTFZpZGVvRWxlbWVudChub2RlKSAmJiAhaXNI
VE1MQXVkaW9FbGVtZW50KG5vZGUpKSkgewogICAgICAgICBMT0dfRVJST1IoImludmFsaWQgbWVk
aWEgZWxlbWVudCBwYXNzZWQiKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5k
ZXggOWM4ODIxOWVkNjU3YzY4MzE5N2FkYTUxMTQ2ODdjNTkxMTE0ZmJhYy4uOTFiZjM4ZjhiNTU2
MWY4Y2QxZGE0ZWFjZGQzZTdjYzlkYWZkZWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTAwLDcgKzkwMCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAK
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5v
ZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5h
bWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKTsKIH0K
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjNDkyZWZmODYwOTk5ZjEy
MDIzMmQyODgyOThhZDk1Y2Q5MzFhZGZiLi5kNmNmNThmNDdiMmRlMjkyMDZlOWUyZDc2ZDRiYTkw
ZDkyNDY5ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02NDk3LDcg
KzY0OTcsNyBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAKIC0g
KHZvaWQpX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGUKIHsKLSAg
ICBBU1NFUlQobm9kZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZpZGVvVGFnKSk7
CisgICAgQVNTRVJUKGlzSFRNTFZpZGVvRWxlbWVudChub2RlKSk7CiAgICAgSFRNTE1lZGlhRWxl
bWVudCogdmlkZW9FbGVtZW50ID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpOwogCiAgICAgaWYg
KF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA1NDYyODFhOWRiZWQ3
YTJhZjFlZDFlYjljMTlmZDY0ZjUxMGYzYjE4Li45YmNiY2FiMjg1MzU2YjY5ZjNhY2M0OTg2Nzlm
YmI5NTZmZTlkZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNjkwLDcgKzY5MCw3IEBAIEZ1bGxTY3JlZW5WaWRlb1F0
KiBDaHJvbWVDbGllbnRRdDo6ZnVsbFNjcmVlblZpZGVvKCkKIGJvb2wgQ2hyb21lQ2xpZW50UXQ6
OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBBU1NF
UlQobm9kZSk7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1Rh
ZykgJiYgZnVsbFNjcmVlblZpZGVvKCktPmlzVmFsaWQoKTsKKyAgICByZXR1cm4gaXNIVE1MVmlk
ZW9FbGVtZW50KG5vZGUpICYmIGZ1bGxTY3JlZW5WaWRlbygpLT5pc1ZhbGlkKCk7CiB9CiAKIGJv
b2wgQ2hyb21lQ2xpZW50UXQ6OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQpA
QCAtNzAwLDE0ICs3MDAsMTQgQEAgYm9vbCBDaHJvbWVDbGllbnRRdDo6cmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmVudGVyRnVsbHNj
cmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZSAmJiBub2RlLT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKTsKKyAgICBBU1NFUlQobm9kZSAmJiBpc0hUTUxW
aWRlb0VsZW1lbnQobm9kZSkpOwogCiAgICAgZnVsbFNjcmVlblZpZGVvKCktPmVudGVyRnVsbFNj
cmVlbkZvck5vZGUobm9kZSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmV4aXRGdWxsc2Ny
ZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewotICAgIEFTU0VSVChub2RlICYmIG5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOworICAgIEFTU0VSVChub2RlICYmIGlzSFRNTFZp
ZGVvRWxlbWVudChub2RlKSk7CiAKICAgICBmdWxsU2NyZWVuVmlkZW8oKS0+ZXhpdEZ1bGxTY3Jl
ZW5Gb3JOb2RlKG5vZGUpOwogfSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDlmMzcyNjY0ODE5Yzc1NDIxNmQzYzEy
ZWUwYjQ0MmFmZDgzMmM0YWEuLmRjNWIzZDZkMzgwMjkwYWZhNTlkZTM5ZjUwZTQ2MjdlZTdjMzdm
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtNzc2LDcgKzc3Niw3IEBAIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4g
V2ViQ2hyb21lQ2xpZW50Ojp1aURlbGVnYXRlKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4g
bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsKKyAgICByZXR1cm4gaXNIVE1M
VmlkZW9FbGVtZW50KG5vZGUpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxs
c2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBlODIzOTBj
YzRhZjI2ZDg4Nzg3MDA0ZWQ0YjQyMTU5MTg4ZmFiODA5Li43OGE4M2E0NGNiMTkzNGMwNWRhMzNj
YjFkMDI2OTZkNWIxNDQwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjI1OCw3ICs2MjU4
LDcgQEAgSFJFU1VMVCBXZWJWaWV3OjpzZXRDYW5TdGFydFBsdWdpbnMoQk9PTCBjYW5TdGFydFBs
dWdpbnMpCiAKIHZvaWQgV2ViVmlldzo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2Rl
KQogewotICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCAh
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgIGlmICghaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUp
IHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJM
RShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCmluZGV4IDIyMjljMGNhNmY0NzYzNTg2YTMzM2RjMGE0MGJmODgzM2FiYTllYjEuLjc4NTdm
OGFiNTdjZmFkMDMxYzk2YzQ1YzNjMTI2M2U2MmI2MmZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNjA4LDcgKzYwOCw3IEBAIGJv
b2wgV2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9ybUNvbnRyb2xzKCkgY29uc3QKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7IG5vZGU7IG5vZGUgPSBOb2Rl
VHJhdmVyc2FsOjpuZXh0KG5vZGUpKSB7CiAgICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1l
bnQobm9kZSkgfHwgdG9FbGVtZW50KG5vZGUpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0
VGFnKSB8fCBpc0hUTUxUZXh0QXJlYUVsZW1lbnQobm9kZSkpCisgICAgICAgIGlmIChpc0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSkgfHwgaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSB8fCBpc0hUTUxU
ZXh0QXJlYUVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211180</attachid>
            <date>2013-09-10 00:30:09 -0700</date>
            <delta_ts>2013-09-10 18:24:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121080-20130910163007.patch</filename>
            <type>text/plain</type>
            <size>41399</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ5NWNhYmM1OWEyZTgx
ZDA5NTE3ODQyYmNiMmUyYjUzZTk2OGU1OS4uODAwYmJiMDZmYjI4OWExMTNhMDc2OWI4NWY1ZmZi
NDk1MTYzMjgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVu
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxGcmFtZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlTG9hZGVyOjpkaXNwYXRjaExvYWRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW5hZWg6CisgICAgICAgICogaHRtbC9IVE1M
T3B0aW9uc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBo
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6Cisg
ICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVPd25lclVSTEF0dHJpYnV0
ZU5hbWUpOgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FuU2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFVSTEZvckltYWdlTm9kZSk6
CisgICAgICAgICogcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRQbHVnaW5PY2NsdXNpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRz
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9y
VmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFJc1ZpZGVvKToK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
VmlkZW8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OlJlbmRlckxpc3RCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlz
dDo6UmVuZGVyTWVudUxpc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNTZWxlY3RQb3B1cFZpc2libGUpOgorCiAyMDEz
LTA5LTA5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5l
cmF0ZSBtb3JlIFNWRyB0eXBlIGNoZWNrcyBhbmQgY29udmVyc2lvbnMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwppbmRleCA1MTcwOTdjMzYxZGE0MTdkMDNmMmU4MzI1M2EyOGJmOTk4ZGE2
NjFjLi4zOWVmZGY1ZWVmNmQ4MzNhNzMzNTcyZjE0NzU4YTc2M2MwYjM4NjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wOS0wOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRlIG1v
cmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9mIEhU
TUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAgYW5k
IHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNoIGNs
ZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5Cisg
ICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
YWRqdXN0UmVjdE9mZnNldEZvckZyYW1lT2Zmc2V0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVkKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZh
dGU6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRSYW5nZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNFbGVtZW50VHlwZVBsdWdp
bik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6OndpbGxPcGVuUG9wdXBGb3JOb2RlKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpkaWROb2RlT3BlblBv
cHVwKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25Qb3Np
dGlvbkNoYW5nZWQpOgorCiAyMDEzLTA5LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBXVEY6Om5vdEZvdW5kIHRvIFZlY3Rvci5oIGFuZCBk
ZWxldGUgTm90Rm91bmQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI3NjdmY2IwYzdkOWFjMTBiNjA0
MDE2N2RkYmRjNWQzNzE5ZWE0ZDEuLjZhMjQ2ZDE0NmEyM2QyZWEzYjk4OGNiMGFlYWEyYWMyNzBl
NDJmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wOS0wOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRl
IG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9m
IEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAgICAg
YW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNo
IGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5
CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wOS0wNCAgWmFuIERvYmVyc2VrICA8emRv
YmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIHRoZSBX
YXlsYW5kIGJ1aWxkIHRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRlYjRlMDY5MmI2ZDE3YmY3
MzRiNWVkMzNjZTdlZjdkYzdiZGJlZTIuLjM5YjJkODI4NWJhOTQ5Yzg0OTRmMjc3YWRkM2YzZjc5
OTcwZWRiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0wOS0wOSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVy
YXRlIG1vcmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25z
IG9mIEhUTUwgZWxlbWVudHMgdG8gYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkKKyAgICAg
ICAgYW5kIHRvRm9vRWxlbWVudCgpIGhlbHBlcnMuCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBh
dGNoIGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVk
IGJ5CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogUGx1Z2lucy9XZWJQ
bHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9y
Tm9kZSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOldlYkNvcmU6Ol0pOgorCiAyMDEzLTA5LTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRp
dGhyZWFkZWQgT3BlbkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGFiYzg5MzMzN2JkNGE5
OWIyMDIwMTM0ZTk4NjU5YjYwZWNmNGNhNmIuLmQ0Zjc2MDY5NTg4MzAwNTVkZjBkNWQ2OWEzOGUy
ZjFiZjQ3NjM4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDktMDkg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHZW5l
cmF0ZSBtb3JlIEhUTUwgdHlwZSBjaGVja3MgYW5kIGNhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTA4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuLXVwIHJlbWFpbmVkIGZ1bmN0aW9u
cyBvZiBIVE1MIGVsZW1lbnRzIHRvIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpCisgICAg
ICAgIGFuZCB0b0Zvb0VsZW1lbnQoKSBoZWxwZXJzLgorCisgICAgICAgIEJlc2lkZXMgdGhpcyBw
YXRjaCBjbGVhbi11cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRl
ZCBieQorICAgICAgICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKwogMjAxMy0wOS0wMyAgQWxsYW4g
U2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRd
IEltYWdlcyBzY2FsZWQgcG9vcmx5IG9uIGNvbXBvc2l0ZWQgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggNmJjZmQwZGE5OTNjMjVlZTIyZjUzNjdhOTI3YWI0ODBlYjU0NjVkZC4uZTEyOGVmMTkz
NTc3ODFhOWY3NzIwZjgzNDk3NDMxZTk4OWY4YjZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTA5LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgbW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEw
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
bi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2YgSFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRl
ZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBhbmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKwor
ICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2ggY2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdo
aWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkKKyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29F
bGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUpOgorCiAyMDEzLTA5LTA1ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1dpbmRvd3NdIEltcGxlbWVudCB0ZXh0IG9mZnNldCBtZXRob2RzIG9m
IElBY2Nlc3NpYmxlVGV4dCBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDdhY2U1OTZiMjQwYzYy
MDIwMTVkYzYzZjI1ZTk1Y2VmODBhOTdmMS4uMmJlMTRmODY4ZDlkNjgwODNlZmEyZGM5NzRjOWNi
MjQxMjhhYWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB0byBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKQorICAgICAgICBh
bmQgdG9Gb29FbGVtZW50KCkgaGVscGVycy4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2gg
Y2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkK
KyAgICAgICAgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
Y29udGFpbnNBbnlGb3JtQ29udHJvbHMpOgorCiAyMDEzLTA5LTA5ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFsbG93IG11bHRpdGhyZWFkZWQgT3Bl
bkdMIGNvbnRleHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDE1NDIzN2RlMGVjNzdlOGVkMTI4ODQ4ZjhiNjIx
MzEyNGFmODM3ODkuLjNjYzk5ODk1OGI1YjMyZWM0NTQ1ZDhmMmVmZGI0ZDBjOGY0ZGI1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2Fj
aGVBdGsuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVuU2Vs
ZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIAogICAgIC8vIE9ubHkg
c3VwcG9ydCBIVE1MIHNlbGVjdCBlbGVtZW50cyBzbyBmYXIgKEFSSUEgc2VsZWN0b3JzIG5vdCBz
dXBwb3J0ZWQpLgogICAgIE5vZGUqIG5vZGUgPSBvYmplY3QtPm5vZGUoKTsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmICgh
bm9kZSB8fCAhaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gRW1pdCBzaWduYWwgZnJvbSB0aGUgbGlzdGJveCdzIHBvaW50IG9mIHZpZXcgZmlyc3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5kZXggNDk5ZjJi
ZDM4MGQzY2NlZmY4YzkzMzgyODgzZjhmNGQyMDRiNWViNi4uMzg4MDYwYWUyODM0YzI4NTZmYzdl
MWI3MmZmOTU1Yjc1OGIyZjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuaApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgSFRNTEZyYW1l
RWxlbWVudEJhc2UqIHRvSFRNTEZyYW1lRWxlbWVudEJhc2UoTm9kZSogbm9kZSkKIHsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZnJhbWVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppZnJh
bWVUYWcpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBp
c0hUTUxGcmFtZUVsZW1lbnQobm9kZSkgfHwgaXNIVE1MSUZyYW1lRWxlbWVudChub2RlKSk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnRCYXNlKj4obm9kZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCBjODkzNDYyYTNjNzQ2
NTJhZGZlNWUyYzYzNmY0YzUzZGEzMGMwOTAxLi4wMDI0YWQyYTNkOWQzNTFlODRlODMxYWNlMmNj
ZGM2YTJlN2M2YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBA
IC00NywxMiArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHls
ZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKIH07CiAKLWlubGluZSBIVE1MSUZyYW1lRWxlbWVu
dCogdG9IVE1MSUZyYW1lRWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpp
ZnJhbWVUYWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihu
b2RlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFt
ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGQz
NDVmODJhY2MxZTYyOTAwMDcxMzg5MjgxZGU3ZWE5YmIzMGRmZDAuLjdjMGU2Y2I1MzZiOWU0OGEy
NjdkNWRiYWYyYzk2MjdiMjNjOWUwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxv
YWRlci5jcHAKQEAgLTQ5LDEyICs0OSwxMiBAQCBIVE1MSW1hZ2VMb2FkZXI6On5IVE1MSW1hZ2VM
b2FkZXIoKQogdm9pZCBIVE1MSW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAg
ICAvLyBIVE1MVmlkZW9FbGVtZW50IHVzZXMgdGhpcyBjbGFzcyB0byBsb2FkIHRoZSBwb3N0ZXIg
aW1hZ2UsIGJ1dCBpdCBzaG91bGQgbm90IGZpcmUgZXZlbnRzIGZvciBsb2FkaW5nIG9yIGZhaWx1
cmUuCi0gICAgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkK
KyAgICBpZiAoaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCA9IGltYWdlKCktPmVycm9yT2NjdXJyZWQoKTsKICAg
ICBpZiAoIWVycm9yT2NjdXJyZWQgJiYgaW1hZ2UoKS0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29k
ZSgpID49IDQwMCkKLSAgICAgICAgZXJyb3JPY2N1cnJlZCA9IGVsZW1lbnQoKS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6Om9iamVjdFRhZyk7IC8vIEFuIDxvYmplY3Q+IGNvbnNpZGVycyBhIDQwNCB0
byBiZSBhbiBlcnJvciBhbmQgc2hvdWxkIGZpcmUgb25lcnJvci4KKyAgICAgICAgZXJyb3JPY2N1
cnJlZCA9IGlzSFRNTE9iamVjdEVsZW1lbnQoZWxlbWVudCgpKTsgLy8gQW4gPG9iamVjdD4gY29u
c2lkZXJzIGEgNDA0IHRvIGJlIGFuIGVycm9yIGFuZCBzaG91bGQgZmlyZSBvbmVycm9yLgogICAg
IGVsZW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGVycm9yT2NjdXJyZWQgPyBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCA6IGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOwogfQogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSFRNTEltYWdlTG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
bG9hZEVycm9yICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKQor
ICAgIGlmIChsb2FkRXJyb3IgJiYgaXNIVE1MT2JqZWN0RWxlbWVudChlbGVtZW50LmdldCgpKSkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKS0+
cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCAzMWQyZmQwMTk0Yjc0N2VhM2EyZjExMzhiNDM3MTk3MTA5YWM0Mjk2
Li42Zjk1ZWM0OWY5OTJiYmMzY2IxZjg2YmFmZWYyYjVlOTkyNmUwZTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xMDksMTIgKzEwOSw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1pbmxpbmUgSFRNTE9i
amVjdEVsZW1lbnQqIHRvSFRNTE9iamVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6b2JqZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPYmplY3RF
bGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKaW5kZXggZGRjZmNiNDg2OGY5MzU3YjllODI0NmZi
MjkzZWQ5MjQ4ZDNjMTk3MS4uNjUzZmNjZDcwM2M3YzlkOGQyOTBlNjc1MDBjYWUxNzUyMjFmZjI0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcApA
QCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b246OkhUTUxPcHRpb25zQ29sbGVjdGlvbihOb2RlKiBzZWxlY3QpCiAgICAgOiBIVE1MQ29sbGVj
dGlvbihzZWxlY3QsIFNlbGVjdE9wdGlvbnMsIERvZXNOb3RPdmVycmlkZUl0ZW1BZnRlcikKIHsK
LSAgICBBU1NFUlQoc2VsZWN0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Cisg
ICAgQVNTRVJUKGlzSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0KSk7CiB9CiAKIFBhc3NSZWZQdHI8
SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShOb2Rl
KiBzZWxlY3QsIENvbGxlY3Rpb25UeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IDMxNTNhMDY4NjE0Y2JmNmVlNWRmNzRkN2ZlZTUzZWI0YTU2NmI2OGMuLjFh
MDE5ODdmODJjMDgzMzA4YTk0YWNhZDEwZWU5M2EyMDFkMTVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIwMiwxMiArMjAyLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0SXRlbXM7CiB9OwogCi1pbmxpbmUgSFRN
TFNlbGVjdEVsZW1lbnQqIHRvSFRNTFNlbGVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTZWxl
Y3RFbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCBhNTMwMzFlNGRjMTg4YjU5YzQ4YzZiNDBhYmNh
NzRkMzU1MWIzYzAxLi42ZDZmMDI2NTI1ZDA3MzQwNTVlM2NlZjZmN2JlNzk5ZWQwYmIyMDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzEsNyArMzEsNyBAQCBjb2RlIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNvbCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVs
ZW1lbnQKIGNvbGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVudAogY29tbWFu
ZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1jb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENv
bnRlbnRFbGVtZW50LCBjb25kaXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9
c2hhZG93RE9NCitjb250ZW50IGludGVyZmFjZU5hbWU9SFRNTENvbnRlbnRFbGVtZW50LCBjb25k
aXRpb25hbD1TSEFET1dfRE9NLCBydW50aW1lQ29uZGl0aW9uYWw9c2hhZG93RE9NLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiB3ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQsIG5vQ29uc3RydWN0b3IKIGRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxl
bWVudCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVAogZGQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudApAQCAtNTAsNyArNTAsNyBAQCBmaWd1cmUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogZm9udAogZm9vdGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGZvcm0gZ2VuZXJhdGVU
eXBlSGVscGVycwotZnJhbWUKK2ZyYW1lIGdlbmVyYXRlVHlwZUhlbHBlcnMKIGZyYW1lc2V0IGlu
dGVyZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogaDEg
aW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQKIGgyIGludGVyZmFjZU5hbWU9SFRNTEhl
YWRpbmdFbGVtZW50CkBAIC02NCw3ICs2NCw3IEBAIGhncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiBociBpbnRlcmZhY2VOYW1lPUhUTUxIUkVsZW1lbnQKIGh0bWwKIGkgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAotaWZyYW1lIGludGVyZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQK
K2lmcmFtZSBpbnRlcmZhY2VOYW1lPUhUTUxJRnJhbWVFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCiBpbWFnZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBpbWcgaW50ZXJmYWNlTmFtZT1I
VE1MSW1hZ2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKIGlucHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwpAQCAtOTAsNyArOTAsNyBA
QCBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vZW1iZWQgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbm9mcmFtZXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9sYXllciBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1vYmplY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVt
ZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitvYmplY3QgY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCiBvbCBpbnRlcmZhY2VOYW1lPUhUTUxPTGlzdEVsZW1lbnQKIG9wdGdyb3Vw
IGludGVyZmFjZU5hbWU9SFRNTE9wdEdyb3VwRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwog
b3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc2NyaXB0
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHNl
Y3Rpb24gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNG
b3JtRWxlbWVudAorc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVU
eXBlSGVscGVycwogc21hbGwgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc291cmNlIHdyYXBw
ZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgZ2VuZXJhdGVUeXBl
SGVscGVycwogc3BhbgpAQCAtMTMzLDcgKzEzMyw3IEBAIHR0IGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIHUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdWwgaW50ZXJmYWNlTmFtZT1IVE1M
VUxpc3RFbGVtZW50CiB2YXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdmlkZW8gd3JhcHBl
ck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5l
ZWRzQ3JlYXRlZEJ5UGFyc2VyCit2aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwg
Y29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVy
YXRlVHlwZUhlbHBlcnMKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB4bXAgaW50ZXJm
YWNlTmFtZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4NmNkMWRlOTdhMWI1
ODY3NjQ2ODVhYmYzNzIxZjU1N2Q5OWRjNWNkLi5mMmJjZWUwNzY2NDNhOWExNzAwZmY4OTM3MGMy
MTk2ZjFjY2I3OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAt
OTgsMTIgKzk4LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVy
VVJMOwogfTsKIAotaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQqIHRvSFRNTFZpZGVvRWxlbWVudChO
b2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2Rl
IHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7Ci19Ci0KIH0gLy9uYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5oCmluZGV4IDUzODA4ODgzMjZjYTcyOTBiNDA2MTM5MmNhYjg4MDU3MTE1YzFiYmIuLjQx
ZGM2YjNiMjQ3N2Q3MjgzODc1OTk0YjY5ZWQ1YzJhYWZhNjI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC04MCwxOCArODAsNiBA
QCBpbmxpbmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVj
dG9yTGlzdCgpCiAgICAgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OwogfQogCi1pbmxpbmUgYm9vbCBp
c0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2Rl
KTsKLSAgICByZXR1cm4gbm9kZS0+aXNJbnNlcnRpb25Qb2ludCgpICYmIHRvSW5zZXJ0aW9uUG9p
bnQobm9kZSktPmluc2VydGlvblBvaW50VHlwZSgpID09IEluc2VydGlvblBvaW50OjpIVE1MQ29u
dGVudEVsZW1lbnRUeXBlOwotfQotCi1pbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Ci19Ci0KICNlbmRpZiAv
LyBpZiBFTkFCTEUoU0hBRE9XX0RPTSkKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKaW5kZXggNTkzMzhkZmUwMjI2NzhlOGEzMjA2YjU1OWM0MjhjODE3ZjRiN2JmMC4uZDM1
ZDVjOWE0NzRlZWNmYTExOGU1ZDFmOWRkM2YzYjk2NTg3Njc0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00MTYsNyArNDE2LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6
ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkKICAgICBsb2FkRXZlbnRTZW5kZXIoKS5j
YW5jZWxFdmVudCh0aGlzKTsKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAg
ICAKLSAgICBpZiAobV9lbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSkK
KyAgICBpZiAoaXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQogICAgICAgICBzdGF0aWNf
Y2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVu
dCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJvdGVjdGlvbiByZWYt
Y291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVybmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNw
cAppbmRleCA5YTU4ODY0YmEzNTZmMmQ0YTc3YWQ1MDQ0YzAxNzIzZmI2MDBhZDQ1Li5mZmViZTNk
ZmI3MDJhOGNjZDczNmI5YjhlYWQ0MGIyYjIwYTczZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTE4LDgg
KzUxOCw4IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBub2Rlc1NpemU7ICsraSkgewogICAgICAgICBOb2RlKiBub2RlID0gbm9kZXNbaV07CiAg
ICAgICAgIEZyYW1lKiBjaGlsZEZyYW1lOwotICAgICAgICBpZiAoKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpmcmFtZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFt
ZVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykpICYmCi0gICAg
ICAgICAgICAoY2hpbGRGcmFtZSA9IHRvRnJhbWVPd25lckVsZW1lbnQobm9kZSktPmNvbnRlbnRG
cmFtZSgpKSkgeworICAgICAgICBpZiAoKGlzSFRNTEZyYW1lRWxlbWVudChub2RlKSB8fCBpc0hU
TUxJRnJhbWVFbGVtZW50KG5vZGUpIHx8IGlzSFRNTE9iamVjdEVsZW1lbnQobm9kZSkpCisgICAg
ICAgICAgICAmJiAoY2hpbGRGcmFtZSA9IHRvRnJhbWVPd25lckVsZW1lbnQobm9kZSktPmNvbnRl
bnRGcmFtZSgpKSkgewogICAgICAgICAgICAgaWYgKGZyYW1lRmlsdGVyICYmICFmcmFtZUZpbHRl
ci0+c2hvdWxkSW5jbHVkZVN1YmZyYW1lKGNoaWxkRnJhbWUpKQogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVy
LmNwcAppbmRleCA5M2RlYjk0ZTc5YzQ3ZGI3MGI3Mzc5MmZhNDdhMmQ2MmE1MzcxYjFkLi4wMjRm
YmYzYjE3ODMzZTY1MjAwMWQ4ZDhkNDQ0NTdmZDI5OTRiNmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRJ
Z25vcmVFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgZnJhbWVPd25lclVSTEF0dHJpYnV0ZU5hbWUoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50
JiBmcmFtZU93bmVyKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBhbGwgZnJh
bWUgb3duZXJzIGluY2x1ZGluZyBhcHBsZXRzLgotICAgIHJldHVybiBmcmFtZU93bmVyLmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxO
YW1lczo6c3JjQXR0cjsKKyAgICByZXR1cm4gaXNIVE1MT2JqZWN0RWxlbWVudChmcmFtZU93bmVy
KSA/IEhUTUxOYW1lczo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKIGNsYXNz
IFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1
bXVsYXRvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCmluZGV4
IDVmMDA3ZDY3M2M2MWRkODQyNjcyZDVlMmI1NzQ0YTNkY2U3NWNiNWYuLjBmMzJlZmMyNTMzNThh
NTFiNTIxM2ViYTNmOWFlYjdmZjVmZDk3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCkBAIC00NDksNyArNDQ5LDcgQEAgYm9vbCBjYW5TY3JvbGxJbkRpcmVj
dGlvbihjb25zdCBOb2RlKiBjb250YWluZXIsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
ICAgICBBU1NFUlQoY29udGFpbmVyKTsKIAotICAgIGlmIChjb250YWluZXItPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmIChpc0hUTUxTZWxlY3RFbGVtZW50KGNvbnRh
aW5lcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChjb250YWluZXItPmlzRG9j
dW1lbnROb2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0
ay5jcHAKaW5kZXggMDQyOGRiMmYyNmM4YzY0ZDcyMjAxMmM2ODQwYmFlZTdlN2YwNDE2ZS4uY2Fl
ZTMwMjc5MzQ3YzkwYjJmOTUyNjZjNjY4NDkwMmIyMzBiMmVlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHN0
YXRpYyBLVVJMIGdldFVSTEZvckltYWdlTm9kZShOb2RlKiBub2RlKQogICAgIGVsc2UgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmltYWdlVGFnKSkKICAgICAgICAgdXJsU3RyaW5nID0g
dG9FbGVtZW50KG5vZGUpLT5nZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogI2Vu
ZGlmCi0gICAgZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSkgeworICAgIGVsc2UgaWYg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjplbWJlZFRhZykgfHwgaXNIVE1MT2JqZWN0RWxl
bWVudChub2RlKSkgewogICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUp
OwogICAgICAgICB1cmxTdHJpbmcgPSBlbGVtZW50LT5pbWFnZVNvdXJjZVVSTCgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAKaW5kZXggZDk4
NzMyOTgwNWNkZjgxNGE3OTJlMDMzYjk2MmE3OGUyNzAzNmIzYy4uNGY3ODQwMTY5MGI3MWI1NGYz
NDk1NzQ5M2QwZTA2NjVkNWY3OWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9JRnJhbWVTaGltU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJh
bWVTaGltU3VwcG9ydC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIGdldFBsdWdpbk9jY2x1
c2lvbnMoRWxlbWVudCogZWxlbWVudCwgV2lkZ2V0KiBwYXJlbnRXaWRnZXQsIGNvbnN0IEludFJl
Y3QmCiAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gZnJhbWVWaWV3LT5mcmFtZSgpLm93
bmVyRWxlbWVudCgpOwogICAgICAgICBSZW5kZXJPYmplY3QqIGlmcmFtZVJlbmRlcmVyID0gZWxl
bWVudC0+cmVuZGVyZXIoKTsKIAotICAgICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OmlmcmFtZVRhZykKKyAgICAgICAgaWYgKGlzSFRNTElGcmFtZUVsZW1lbnQoZWxlbWVu
dCkKICAgICAgICAgICAgICYmIGlmcmFtZVJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dElnbm9yaW5nVHJhbnNmb3JtcygpLmludGVyc2VjdHMoZnJhbWVSZWN0KQogICAgICAgICAgICAg
JiYgKCFpZnJhbWVSZW5kZXJlci0+c3R5bGUoKSB8fCBpZnJhbWVSZW5kZXJlci0+c3R5bGUoKS0+
dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpKSB7CiAgICAgICAgICAgICBnZXRPYmplY3RTdGFjayhp
ZnJhbWVSZW5kZXJlciwgJmlmcmFtZVpzdGFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMjY5OTQwYzEyOWJkYTMzMWViYzdmZDBiY2U1NTVhYzZj
NzZlZTM5OC4uYjM5YTM4MDM2MTkzMTE2MjQ2M2VkZTMwOWNlOTFlZTZiMGFlZjNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtMzY4LDcgKzM2OCw3
IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdAog
ewogI2lmIEVOQUJMRShWSURFTykKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRp
YUVsZW1lbnQoKSk7Ci0gICAgcmV0dXJuIChtZWRpYUVsdCAmJiBtZWRpYUVsdC0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkp
OworICAgIHJldHVybiAobWVkaWFFbHQgJiYgaXNIVE1MVmlkZW9FbGVtZW50KG1lZGlhRWx0KSAm
JiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpOwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKQEAgLTM4Myw3ICszODMsNyBAQCBIVE1MTWVkaWFFbGVtZW50KiBIaXRUZXN0
UmVzdWx0OjptZWRpYUVsZW1lbnQoKSBjb25zdAogICAgIGlmICghKG1faW5uZXJOb25TaGFyZWRO
b2RlLT5yZW5kZXJlcigpICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5kZXJlcigpLT5pc01l
ZGlhKCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChtX2lubmVyTm9uU2hhcmVkTm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBpc0hUTUxBdWRpb0VsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpKQorICAgIGlmIChpc0hUTUxWaWRlb0VsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpIHx8IGlzSFRNTEF1ZGlvRWxlbWVudChtX2lubmVy
Tm9uU2hhcmVkTm9kZS5nZXQoKSkpCiAgICAgICAgIHJldHVybiB0b0hUTUxNZWRpYUVsZW1lbnQo
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgIHJldHVybiAwOwogfQpAQCAtNDMwLDcg
KzQzMCw3IEBAIHZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBj
b25zdAogewogI2lmIEVOQUJMRShWSURFTykKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
dChtZWRpYUVsZW1lbnQoKSk7Ci0gICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgaWYgKG1lZGlhRWx0ICYmIGlzSFRNTFZp
ZGVvRWxlbWVudChtZWRpYUVsdCkpIHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9F
bHQgPSB0b0hUTUxWaWRlb0VsZW1lbnQobWVkaWFFbHQpOwogICAgICAgICBpZiAoIXZpZGVvRWx0
LT5pc0Z1bGxzY3JlZW4oKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpIHsKICAg
ICAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6
Om1lZGlhSXNWaWRlbygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
bWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgICAgIHJldHVy
biBpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFFbHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAppbmRleCBkMzhkMjExNzFiNTM3YzhkN2RkYzBmNzBkOGVlMzhiZDNkNmEwMzRjLi42
MjhiMWY5YmVmODIwYmJhMGMyMGExY2ZiNjU2ZDQ2ZWU1MDUxMmVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjA4Niw3
ICsyMDg2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JWaWRlbyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOwotICAgICAgICBp
ZiAoIW5vZGUgfHwgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmICFp
c0hUTUxBdWRpb0VsZW1lbnQobm9kZSkpKQorICAgICAgICBpZiAoIW5vZGUgfHwgKCFpc0hUTUxW
aWRlb0VsZW1lbnQobm9kZSkgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDdjYjAwMjBlNmFmMzkyOWRkMDM4NmYyNDg1Y2MwYjU2
NzkwMjM0ZjUuLjY1MzJjMjBkOTIxM2JmYjg4NzA0MjZjNzk1YTMzMTIzMGViYmI0MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgUmVuZGVyTGlzdEJveDo6UmVuZGVyTGlzdEJveChFbGVtZW50KiBlbGVtZW50KQogewogICAg
IEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsK
LSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpOwor
ICAgIEFTU0VSVChpc0hUTUxTZWxlY3RFbGVtZW50KGVsZW1lbnQpKTsKIAogICAgIHZpZXcoKS5m
cmFtZVZpZXcoKS5hZGRTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGUwMGEzOTVkNDNjMzYwZDlhOWNiZjE0
ZDE3ZWE5N2FiYWQ2MWYwMjUuLjczN2FmOWI5YjA5Yjk1ZjdkZTNhZmQ0YThlOTg3OGQxZjYzM2U3
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAt
NjUsNyArNjUsNyBAQCBSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoRWxlbWVudCogZWxl
bWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRN
TEVsZW1lbnQoKSk7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpz
ZWxlY3RUYWcpKTsKKyAgICBBU1NFUlQoaXNIVE1MU2VsZWN0RWxlbWVudChlbGVtZW50KSk7CiB9
CiAKIFJlbmRlck1lbnVMaXN0Ojp+UmVuZGVyTWVudUxpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDliNGIxZGExY2UwNGZmYWFmNTA3NzczZmVjYmQ4ZmViZWZjMDVl
MzQuLjY4MzRjYjYzMDdmMGJiMjhlZWZmZWZlNDdhNmE1Y2Q4M2FmZGY5OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE5ODcsNyArMTk4Nyw3IEBAIHZvaWQgSW50ZXJu
YWxzOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKE5vZGUqIG5vZGUpCiAKIGJvb2wgSW50ZXJu
YWxzOjppc1NlbGVjdFBvcHVwVmlzaWJsZShOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgaWYgKCFpc0hUTUxTZWxlY3RF
bGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBIVE1MU2VsZWN0RWxl
bWVudCogc2VsZWN0ID0gdG9IVE1MU2VsZWN0RWxlbWVudChub2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDU1NmVlZWVlZDFmMTg1ZjZhMDNkM2QwMTQy
N2E0MzQ2Y2ZhZmQwZDEuLjAwZTY4NDA0MDg1NjgyYjljNjE2ZjBkMGEwZmJmODY2NmFiYjA0ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMjgxOSw3ICsy
ODE5LDcgQEAgSW50UmVjdCBXZWJQYWdlUHJpdmF0ZTo6YWRqdXN0UmVjdE9mZnNldEZvckZyYW1l
T2Zmc2V0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnMKIAogICAgICAgICBOb2RlKiBvd25lck5v
ZGUgPSBzdGF0aWNfY2FzdDxOb2RlKj4oZnJhbWUtPm93bmVyRWxlbWVudCgpKTsKICAgICAgICAg
dG5vZGUgPSBvd25lck5vZGU7Ci0gICAgICAgIGlmIChvd25lck5vZGUgJiYgKG93bmVyTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFtZVRhZykgfHwgb3duZXJOb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZnJhbWVUYWcpKSkgeworICAgICAgICBpZiAob3duZXJOb2RlICYmIChpc0hU
TUxJRnJhbWVFbGVtZW50KG93bmVyTm9kZSkgfHwgaXNIVE1MRnJhbWVOb2RlKG93bmVyTm9kZSkp
KSB7CiAgICAgICAgICAgICBJbnRSZWN0IGlGcmFtZVJlY3Q7CiAgICAgICAgICAgICBkbyB7CiAg
ICAgICAgICAgICAgICAgaUZyYW1lUmVjdCA9IHJlY3RGb3JOb2RlKG93bmVyTm9kZSk7CkBAIC01
MDE1LDcgKzUwMTUsNyBAQCB2b2lkIFdlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4aXRl
ZChib29sIGRvbmUpCiAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChkLT5tX2Z1bGxz
Y3JlZW5Ob2RlLmdldCgpKTsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAg
ICBpZiAoZC0+bV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGVsZW1l
bnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisgICAgaWYgKGQtPm1fd2ViU2V0
dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQoZWxl
bWVudCkpCiAgICAgICAgIHRvSFRNTE1lZGlhRWxlbWVudChlbGVtZW50KS0+ZXhpdEZ1bGxzY3Jl
ZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgZWxzZQpAQCAtNTY2NCw3ICs1
NjY0LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikKIHZvaWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5v
ZGUoTm9kZSogbm9kZSkKIHsKICNpZiBFTkFCTEUoVklERU8pCi0gICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQorICAgIGlmICghbm9kZSB8fCAh
aXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKICAgICBNZWRpYVBs
YXllciogcGxheWVyID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpLT5wbGF5ZXIoKTsKQEAgLTU2
OTcsNyArNTY5Nyw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsc2NyZWVuRm9yTm9k
ZShOb2RlKiBub2RlKQogICAgICAgICBtX2Z1bGxzY3JlZW5Ob2RlID0gMDsKICAgICB9CiAKLSAg
ICBpZiAoIW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisg
ICAgaWYgKCFub2RlIHx8ICFpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkt
PnBsYXllcigpOwpAQCAtNTcxOSw3ICs1NzE5LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogI2lmIEVOQUJMRShWSURF
TykKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV93ZWJTZXR0
aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZp
ZGVvQ2FwYWJsZSgpICYmIGlzSFRNTFZpZGVvRWxlbWVudChlbGVtZW50KSkgewogICAgICAgICAv
LyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQg
aXQgd2FudHMgdG8KICAgICAgICAgLy8gdXNlLCBhbmQgdGhpcyBpcyBhIHZpZGVvIGVsZW1lbnQu
IFRoZSBvbmx5IHJlYXNvbiB0aGF0CiAgICAgICAgIC8vIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KCkgYW5kCkBAIC01NzY0LDcgKzU3NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcml2
YXRlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICNpZiBFTkFC
TEUoVklERU8pCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1f
d2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSAmJiBlbGVtZW50LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUoKSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQoZWxlbWVudCkpIHsKICAg
ICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8g
d2lkZ2V0LgogICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCk7CiAgICAgfSBl
bHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA4NDQ3NjhjNDI3
NmY4ZmNkYmEwM2U0Njk0Mjg3ZDg1OGMzYzBkYmE2Li4zMjM5M2E3YzMzZDJkZmYwM2YwYzdiZjZi
MmNlOThkNjgxNmEzOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBA
IC02OTcsNyArNjk3LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjaG9vc2VJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3MKIAogYm9vbCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7
CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggM2JiNzFkZjRlYzQ1YjRjMzY0YjZh
NDQxNDkzNjBjNTJkMGY2MTIyZS4uMWEzOWFmNTNhNGZhNTJmMmFmZTAzMzMxYjhkYjFiNDZjZDcz
NTEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTkxLDcgKzE5
MSw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRS
YW5nZShSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSoKICAgICBGcmFtZSogZnJhbWUgPSBtX3dlYlBh
Z2VQcml2YXRlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUt
PmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChmb2N1
c2VkRWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgICAgICAg
ICBpZiAoaXNIVE1MU2VsZWN0RWxlbWVudChmb2N1c2VkRWxlbWVudCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKERPTVN1cHBvcnQ6OmlzUG9wdXBJbnB1
dEZpZWxkKGZvY3VzZWRFbGVtZW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBw
b3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBv
cnQuY3BwCmluZGV4IGE1ODA1NWM4NGU2YjM4ZTVhNjViMDg1N2U1ZDY5ZmFmOThhZTgzZjQuLmYy
ODM2OGJmNDZhYjkxYzRkYjA2ODNmMGZjYmI3YTc5MjJmYjI1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwCkBAIC0x
NDksNyArMTQ5LDcgQEAgYm9vbCBpc0VsZW1lbnRUeXBlUGx1Z2luKGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykKKyAgICBpZiAoaXNI
VE1MT2JqZWN0RWxlbWVudChlbGVtZW50KQogICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZW1iZWRUYWcpCiAgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjphcHBsZXRUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmlu
ZGV4IGM5NzE2YmE1ZTcwM2NlMjA3ZDk5YzY2NzJmNTVkYzgxZTA5YTEyZjEuLmM4NTg5MDIzZmEw
Mjk5Zjg5NDhhN2M4MzdiMjFlYzFlOGUyNTdjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtMTk4Myw3
ICsxOTgzLDcgQEAgYm9vbCBJbnB1dEhhbmRsZXI6OndpbGxPcGVuUG9wdXBGb3JOb2RlKE5vZGUq
IG5vZGUpCiAKICAgICBBU1NFUlQoIW5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpOwogCi0gICAgaWYg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IGlzSFRNTE9wdGlvbkVs
ZW1lbnQobm9kZSkpIHsKKyAgICBpZiAoaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSB8fCBpc0hU
TUxPcHRpb25FbGVtZW50KG5vZGUpKSB7CiAgICAgICAgIC8vIFdlIG9wZW4gbGlzdCBwb3B1cHMg
Zm9yIG9wdGlvbnMgYW5kIHNlbGVjdHMuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAg
LTIwMDUsNyArMjAwNSw3IEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpkaWROb2RlT3BlblBvcHVwKE5v
ZGUqIG5vZGUpCiAKICAgICBBU1NFUlQoIW5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpOwogCi0gICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgIGlmIChpc0hU
TUxTZWxlY3RFbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm4gb3BlblNlbGVjdFBvcHVwKHRv
SFRNTFNlbGVjdEVsZW1lbnQobm9kZSkpOwogCiAgICAgaWYgKGlzSFRNTE9wdGlvbkVsZW1lbnQo
bm9kZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggNmIzZTdlODU4NTdmN2UzN2Y4ZjNk
YmE4MzBkYzc2NTc0YWZlMWE0Ni4uMmI5MmZjZWVkYTUxNDc0NDczMGNiMzUzN2RmMzQyNDc1OTg5
YTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
U2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTExNjgsNyArMTE2OCw3IEBAIHZvaWQg
U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2VkKGJvb2wgZm9yY2VVcGRh
dGVXaXRob3V0Q2hhbmdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoTm9kZSogZm9jdXNl
ZE5vZGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgewotICAgICAgICBp
ZiAoZm9jdXNlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IChmb2N1
c2VkTm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIERPTVN1cHBvcnQ6OmlzUG9wdXBJbnB1dEZpZWxk
KHRvRWxlbWVudChmb2N1c2VkTm9kZSkpKSkgeworICAgICAgICBpZiAoaXNIVE1MU2VsZWN0RWxl
bWVudChmb2N1c2VkTm9kZSkgfHwgKGZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgRE9N
U3VwcG9ydDo6aXNQb3B1cElucHV0RmllbGQodG9FbGVtZW50KGZvY3VzZWROb2RlKSkpKSB7CiAg
ICAgICAgICAgICBTZWxlY3Rpb25Mb2coUGxhdGZvcm06OkxvZ0xldmVsSW5mbywgIlNlbGVjdGlv
bkhhbmRsZXI6OnNlbGVjdGlvblBvc2l0aW9uQ2hhbmdlZCBzZWxlY3Rpb24gaXMgb24gYSBwb3B1
cCBjb250cm9sLCBza2lwcGluZyByZW5kZXJpbmcuIik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCmluZGV4IDYyMTU0NTBiMTQxYTNmNDYxOTA5NWZkYjIwYzg1MzM5MzIw
ODdiOWQuLjFjMDk4NWFkZDhiZmY5ODE4OTFhY2FjNjc3ZmFhY2JhMzdlMDA5YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cApAQCAtOTI3LDcgKzkyNyw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiBib29sIENocm9tZUNsaWVu
dDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQogewotICAgIHJl
dHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpOworICAgIHJldHVybiBp
c0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggZjBlNGU3ZmVhMWNlYjUwNDljYTEzODg4
MDg3OTBkZmYzODljZDBjNS4uZWE5YmE0ZDA0NDY5YTViMDJiZWVjMzU1OWMwODYwMDMwYWJkNmEx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYVByb3h5Q2xpZW50KERPTUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgfQogCiAgICAgRWxl
bWVudCogbm9kZSA9IGNvcmUoZWxlbWVudCk7Ci0gICAgaWYgKCFub2RlIHx8ICghbm9kZS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50KG5vZGUp
KSkgeworICAgIGlmICghbm9kZSB8fCAoIWlzSFRNTFZpZGVvRWxlbWVudChub2RlKSAmJiAhaXNI
VE1MQXVkaW9FbGVtZW50KG5vZGUpKSkgewogICAgICAgICBMT0dfRVJST1IoImludmFsaWQgbWVk
aWEgZWxlbWVudCBwYXNzZWQiKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5k
ZXggOWM4ODIxOWVkNjU3YzY4MzE5N2FkYTUxMTQ2ODdjNTkxMTE0ZmJhYy4uOTFiZjM4ZjhiNTU2
MWY4Y2QxZGE0ZWFjZGQzZTdjYzlkYWZkZWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTAwLDcgKzkwMCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAK
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5v
ZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5h
bWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKTsKIH0K
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjNDkyZWZmODYwOTk5ZjEy
MDIzMmQyODgyOThhZDk1Y2Q5MzFhZGZiLi5kNmNmNThmNDdiMmRlMjkyMDZlOWUyZDc2ZDRiYTkw
ZDkyNDY5ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02NDk3LDcg
KzY0OTcsNyBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAKIC0g
KHZvaWQpX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGUKIHsKLSAg
ICBBU1NFUlQobm9kZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZpZGVvVGFnKSk7
CisgICAgQVNTRVJUKGlzSFRNTFZpZGVvRWxlbWVudChub2RlKSk7CiAgICAgSFRNTE1lZGlhRWxl
bWVudCogdmlkZW9FbGVtZW50ID0gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpOwogCiAgICAgaWYg
KF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA1NDYyODFhOWRiZWQ3
YTJhZjFlZDFlYjljMTlmZDY0ZjUxMGYzYjE4Li45YmNiY2FiMjg1MzU2YjY5ZjNhY2M0OTg2Nzlm
YmI5NTZmZTlkZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNjkwLDcgKzY5MCw3IEBAIEZ1bGxTY3JlZW5WaWRlb1F0
KiBDaHJvbWVDbGllbnRRdDo6ZnVsbFNjcmVlblZpZGVvKCkKIGJvb2wgQ2hyb21lQ2xpZW50UXQ6
OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBBU1NF
UlQobm9kZSk7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1Rh
ZykgJiYgZnVsbFNjcmVlblZpZGVvKCktPmlzVmFsaWQoKTsKKyAgICByZXR1cm4gaXNIVE1MVmlk
ZW9FbGVtZW50KG5vZGUpICYmIGZ1bGxTY3JlZW5WaWRlbygpLT5pc1ZhbGlkKCk7CiB9CiAKIGJv
b2wgQ2hyb21lQ2xpZW50UXQ6OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQpA
QCAtNzAwLDE0ICs3MDAsMTQgQEAgYm9vbCBDaHJvbWVDbGllbnRRdDo6cmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmVudGVyRnVsbHNj
cmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQobm9kZSAmJiBub2RlLT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKTsKKyAgICBBU1NFUlQobm9kZSAmJiBpc0hUTUxW
aWRlb0VsZW1lbnQobm9kZSkpOwogCiAgICAgZnVsbFNjcmVlblZpZGVvKCktPmVudGVyRnVsbFNj
cmVlbkZvck5vZGUobm9kZSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmV4aXRGdWxsc2Ny
ZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewotICAgIEFTU0VSVChub2RlICYmIG5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOworICAgIEFTU0VSVChub2RlICYmIGlzSFRNTFZp
ZGVvRWxlbWVudChub2RlKSk7CiAKICAgICBmdWxsU2NyZWVuVmlkZW8oKS0+ZXhpdEZ1bGxTY3Jl
ZW5Gb3JOb2RlKG5vZGUpOwogfSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDlmMzcyNjY0ODE5Yzc1NDIxNmQzYzEy
ZWUwYjQ0MmFmZDgzMmM0YWEuLmRjNWIzZDZkMzgwMjkwYWZhNTlkZTM5ZjUwZTQ2MjdlZTdjMzdm
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtNzc2LDcgKzc3Niw3IEBAIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4g
V2ViQ2hyb21lQ2xpZW50Ojp1aURlbGVnYXRlKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4g
bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsKKyAgICByZXR1cm4gaXNIVE1M
VmlkZW9FbGVtZW50KG5vZGUpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxs
c2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBlODIzOTBj
YzRhZjI2ZDg4Nzg3MDA0ZWQ0YjQyMTU5MTg4ZmFiODA5Li43OGE4M2E0NGNiMTkzNGMwNWRhMzNj
YjFkMDI2OTZkNWIxNDQwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjI1OCw3ICs2MjU4
LDcgQEAgSFJFU1VMVCBXZWJWaWV3OjpzZXRDYW5TdGFydFBsdWdpbnMoQk9PTCBjYW5TdGFydFBs
dWdpbnMpCiAKIHZvaWQgV2ViVmlldzo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2Rl
KQogewotICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCAh
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgIGlmICghaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUp
IHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJM
RShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCmluZGV4IDIyMjljMGNhNmY0NzYzNTg2YTMzM2RjMGE0MGJmODgzM2FiYTllYjEuLjc4NTdm
OGFiNTdjZmFkMDMxYzk2YzQ1YzNjMTI2M2U2MmI2MmZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNjA4LDcgKzYwOCw3IEBAIGJv
b2wgV2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9ybUNvbnRyb2xzKCkgY29uc3QKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7IG5vZGU7IG5vZGUgPSBOb2Rl
VHJhdmVyc2FsOjpuZXh0KG5vZGUpKSB7CiAgICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1l
bnQobm9kZSkgfHwgdG9FbGVtZW50KG5vZGUpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0
VGFnKSB8fCBpc0hUTUxUZXh0QXJlYUVsZW1lbnQobm9kZSkpCisgICAgICAgIGlmIChpc0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSkgfHwgaXNIVE1MU2VsZWN0RWxlbWVudChub2RlKSB8fCBpc0hUTUxU
ZXh0QXJlYUVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211272</attachid>
            <date>2013-09-10 18:24:27 -0700</date>
            <delta_ts>2013-09-11 01:02:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121080-20130911102426.patch</filename>
            <type>text/plain</type>
            <size>41815</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4MTllMjc2MjViN2Fi
NWU4YTA2OTljMzBmZThkMzY5NmQzMjQ1Zi4uNDhiMWJhMWM0MmQ3ODQ4ZmYyNTYyZDA0YmVhZGNh
OTkwZTQ2MjJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA5LTEwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
bW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2Yg
SFRNTCBlbGVtZW50cyB1c2luZyBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKSwKKyAgICAg
ICAgYW5kIHJlcGxhY2UgdG9Gb29FbGVtZW50KCkgd2l0aCBFTEVNRU5UX1RZUEVfQ0FTVFMoKSBt
YWNyby4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2ggY2xlYW4tdXAgdW5uZWNlc3Nhcnkg
Y2hlY2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkKKyAgICAgICAgYXV0by1nZW5lcmF0
ZWQgaXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjp0
b0hUTUxGcmFtZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlTG9hZGVyOjpkaXNwYXRjaExvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxP
YmplY3RFbGVtZW5hZWg6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6
OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudCk6CisgICAgICAgICogbG9hZGVyL2FyY2hp
dmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJB
cmNoaXZlOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZnJhbWVPd25lclVSTEF0dHJpYnV0ZU5hbWUpOgorICAgICAgICAqIHBh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuU2Nyb2xsSW5E
aXJlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmdldFVSTEZvckltYWdlTm9kZSk6CisgICAgICAgICogcGx1Z2lucy9J
RnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQbHVnaW5PY2NsdXNp
b25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbik6CisgICAgICAg
IChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFJc1ZpZGVvKToKKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RC
b3g6OlJlbmRlckxpc3RCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6aXNTZWxlY3RQb3B1cFZpc2libGUpOgorCiAyMDEzLTA5LTEwICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFYVmFsdWUvQVhNZW51SXRl
bU1hcmtDaGFyIG5vdCBkZWZpbmVkIGZvciBtZW51aXRlbXJhZGlvIChzaG91bGQgYmUgZmFsc2Ug
KDApIHdpdGggYXJpYS1jaGVja2VkPW1peGVkIHwgdW5kZWZpbmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKaW5kZXggNTE3MDk3YzM2MWRhNDE3ZDAzZjJlODMyNTNhMjhiZjk5OGRhNjYx
Yy4uNDI0MmJlZmQxM2IxYjJjYjIzYWExNTFiYWE4MzRhMTM4MTM5ZmQxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDktMTAgIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBtb3Jl
IEhUTUwgdHlwZSBjaGVja3MgYW5kIGNhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENsZWFuLXVwIHJlbWFpbmVkIGZ1bmN0aW9ucyBvZiBIVE1M
IGVsZW1lbnRzIHVzaW5nIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLAorICAgICAgICBh
bmQgcmVwbGFjZSB0b0Zvb0VsZW1lbnQoKSB3aXRoIEVMRU1FTlRfVFlQRV9DQVNUUygpIG1hY3Jv
LgorCisgICAgICAgIEJlc2lkZXMgdGhpcyBwYXRjaCBjbGVhbi11cCB1bm5lY2Vzc2FyeSBjaGVj
a3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRlZCBieQorICAgICAgICBhdXRvLWdlbmVyYXRlZCBp
c0Zvb0VsZW1lbnQoKS4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmFkanVzdFJlY3RPZmZzZXRGb3JGcmFt
ZU9mZnNldCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6Om5vdGlmeUZ1
bGxTY3JlZW5WaWRlb0V4aXRlZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2VQcml2YXRlOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudEJsYWNrQmVycnk6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAq
IFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OkRPTVN1cHBvcnQ6OmlzRWxlbWVudFR5cGVQbHVnaW4pOgorICAgICAgICAqIFdlYktpdFN1
cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5w
dXRIYW5kbGVyOjp3aWxsT3BlblBvcHVwRm9yTm9kZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OklucHV0SGFuZGxlcjo6ZGlkTm9kZU9wZW5Qb3B1cCk6CisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2VkKToKKwogMjAxMy0w
OS0wOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1v
dmUgV1RGOjpub3RGb3VuZCB0byBWZWN0b3IuaCBhbmQgZGVsZXRlIE5vdEZvdW5kLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCBiNzY3ZmNiMGM3ZDlhYzEwYjYwNDAxNjdkZGJkYzVkMzcxOWVhNGQxLi5i
NmJiODE4NmU2ZTAyMTRkNzY2M2RiMmVkNDVjMDFiMGE4ZjU4ZDYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDktMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBtb3JlIEhUTUwgdHlwZSBjaGVja3Mg
YW5kIGNhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMTA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENsZWFuLXVwIHJlbWFpbmVkIGZ1bmN0aW9ucyBvZiBIVE1MIGVsZW1lbnRzIHVzaW5nIGF1
dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVudCgpLAorICAgICAgICBhbmQgcmVwbGFjZSB0b0Zvb0Vs
ZW1lbnQoKSB3aXRoIEVMRU1FTlRfVFlQRV9DQVNUUygpIG1hY3JvLgorCisgICAgICAgIEJlc2lk
ZXMgdGhpcyBwYXRjaCBjbGVhbi11cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5n
IHN1cHBvcnRlZCBieQorICAgICAgICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZSk6CisKIDIwMTMtMDktMDQgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBzdXBw
b3J0IGZvciB0aGUgV2F5bGFuZCBidWlsZCB0YXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0ZWI0
ZTA2OTJiNmQxN2JmNzM0YjVlZDMzY2U3ZWY3ZGM3YmRiZWUyLi5iOTFkNjc3MzY2OTA3MzVjODY2
YTE1OTU5OTA3Yzk2MGFhYjA1MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTMtMDktMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBHZW5lcmF0ZSBtb3JlIEhUTUwgdHlwZSBjaGVja3MgYW5kIGNhc3RpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTA4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuLXVwIHJlbWFp
bmVkIGZ1bmN0aW9ucyBvZiBIVE1MIGVsZW1lbnRzIHVzaW5nIGF1dG8tZ2VuZXJhdGVkIGlzRm9v
RWxlbWVudCgpLAorICAgICAgICBhbmQgcmVwbGFjZSB0b0Zvb0VsZW1lbnQoKSB3aXRoIEVMRU1F
TlRfVFlQRV9DQVNUUygpIG1hY3JvLgorCisgICAgICAgIEJlc2lkZXMgdGhpcyBwYXRjaCBjbGVh
bi11cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRlZCBieQorICAg
ICAgICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29u
dHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZW50ZXJG
dWxsc2NyZWVuRm9yTm9kZTpXZWJDb3JlOjpdKToKKwogMjAxMy0wOS0wOSAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBBbGxvdyBtdWx0aXRocmVhZGVk
IE9wZW5HTCBjb250ZXh0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBhYmM4OTMzMzdiZDRhOTliMjAyMDEz
NGU5ODY1OWI2MGVjZjRjYTZiLi5mZWU0YzlmMDAzMDMzOWY3OTk0YmM2YThlMjg4N2M2ZDlmZjUy
NWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA5LTEwICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgbW9y
ZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbi11cCByZW1haW5lZCBmdW5jdGlvbnMgb2YgSFRN
TCBlbGVtZW50cyB1c2luZyBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKSwKKyAgICAgICAg
YW5kIHJlcGxhY2UgdG9Gb29FbGVtZW50KCkgd2l0aCBFTEVNRU5UX1RZUEVfQ0FTVFMoKSBtYWNy
by4KKworICAgICAgICBCZXNpZGVzIHRoaXMgcGF0Y2ggY2xlYW4tdXAgdW5uZWNlc3NhcnkgY2hl
Y2tzIHdoaWNoIGFyZSBiZWluZyBzdXBwb3J0ZWQgYnkKKyAgICAgICAgYXV0by1nZW5lcmF0ZWQg
aXNGb29FbGVtZW50KCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHA6CisKIDIwMTMtMDktMDMgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNl
bkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBJbWFnZXMgc2NhbGVkIHBvb3JseSBvbiBjb21w
b3NpdGVkIGNhbnZhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDkxMTg2YmZhZjc4Mjg1ODZiNDU5MWQ5
NDE2ZTM4NTEzZjYxODg3ZTguLmEyMmNjYTIzYjJhOWM4ZDEwODVmZjU1OWFkMzQ2MjFlYTQwOWQ1
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wOS0xMCAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRlIG1v
cmUgSFRNTCB0eXBlIGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9mIEhU
TUwgZWxlbWVudHMgdXNpbmcgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCksCisgICAgICAg
IGFuZCByZXBsYWNlIHRvRm9vRWxlbWVudCgpIHdpdGggRUxFTUVOVF9UWVBFX0NBU1RTKCkgbWFj
cm8uCisKKyAgICAgICAgQmVzaWRlcyB0aGlzIHBhdGNoIGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNo
ZWNrcyB3aGljaCBhcmUgYmVpbmcgc3VwcG9ydGVkIGJ5CisgICAgICAgIGF1dG8tZ2VuZXJhdGVk
IGlzRm9vRWxlbWVudCgpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9y
Tm9kZSk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjplbnRlckZ1
bGxzY3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wOS0xMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luZG93c10gQ3JlYXRlIFNoYXJlZEdESU9iamVjdCBD
bGFzcyBUZW1wbGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ0NGVhODk3MTk3NTk5ZDQxZTg0NWIzNGRmMTJh
NTc0YmM4MDRjZTIuLmZlNmE1ZjhjMjI1M2ZjN2MwZGIzNDJjMzFmYzMyZTFlMjMxYWNmZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wOS0xMCAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdlbmVyYXRlIG1vcmUgSFRNTCB0eXBl
IGNoZWNrcyBhbmQgY2FzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2xlYW4tdXAgcmVtYWluZWQgZnVuY3Rpb25zIG9mIEhUTUwgZWxlbWVudHMg
dXNpbmcgYXV0by1nZW5lcmF0ZWQgaXNGb29FbGVtZW50KCksCisgICAgICAgIGFuZCByZXBsYWNl
IHRvRm9vRWxlbWVudCgpIHdpdGggRUxFTUVOVF9UWVBFX0NBU1RTKCkgbWFjcm8uCisKKyAgICAg
ICAgQmVzaWRlcyB0aGlzIHBhdGNoIGNsZWFuLXVwIHVubmVjZXNzYXJ5IGNoZWNrcyB3aGljaCBh
cmUgYmVpbmcgc3VwcG9ydGVkIGJ5CisgICAgICAgIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxlbWVu
dCgpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9ybUNvbnRyb2xzKToKKwogMjAxMy0w
OS0xMCAgTWFyY2VsbyBNb3JhaXMgIDxtLm1vcmFpc0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXSBXZWJJbnNwZWN0b3I6IE1vdmUgdG8gbmV3IHdlYmluc3BlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAppbmRl
eCAyY2MwOWJkZTg5ODgyOGEzMjVlOGE3YmU2ZGJiYzFlMTdjYTkyOTZkLi4yNTNiMTJhNjg4Mjcy
MTExNzA0NTRjMzllNGJjMWE2NjU0MTVhZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtODYsNyArODYsNyBA
QCBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCiAKICAgICAvLyBPbmx5IHN1cHBvcnQgSFRNTCBzZWxlY3QgZWxlbWVu
dHMgc28gZmFyIChBUklBIHNlbGVjdG9ycyBub3Qgc3VwcG9ydGVkKS4KICAgICBOb2RlKiBub2Rl
ID0gb2JqZWN0LT5ub2RlKCk7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICBpZiAoIW5vZGUgfHwgIWlzSFRNTFNlbGVjdEVsZW1l
bnQobm9kZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEVtaXQgc2lnbmFsIGZyb20gdGhl
IGxpc3Rib3gncyBwb2ludCBvZiB2aWV3IGZpcnN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50QmFzZS5oCmluZGV4IDQ5OWYyYmQzODBkM2NjZWZmOGM5MzM4Mjg4M2Y4ZjRk
MjA0YjVlYjYuLjM4ODA2MGFlMjgzNGMyODU2ZmM3ZTFiNzJmZjk1NWI3NThiMmYzNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTgzLDcgKzgzLDcg
QEAgcHJpdmF0ZToKIAogaW5saW5lIEhUTUxGcmFtZUVsZW1lbnRCYXNlKiB0b0hUTUxGcmFtZUVs
ZW1lbnRCYXNlKE5vZGUqIG5vZGUpCiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZyYW1lVGFnKSB8fCBu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MRnJhbWVFbGVtZW50KG5vZGUpIHx8
IGlzSFRNTElGcmFtZUVsZW1lbnQobm9kZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1M
RnJhbWVFbGVtZW50QmFzZSo+KG5vZGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmgKaW5kZXggYzg5MzQ2MmEzYzc0NjUyYWRmZTVlMmM2MzZmNGM1M2RhMzBjMDkw
MS4uNjdhNTg4N2VjODdkMTA3MzkwYTAxY2EwN2ZiMjcxNjdlZjZlNjRlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNDcsMTEgKzQ3LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgT1ZFUlJJREU7
CiB9OwogCi1pbmxpbmUgSFRNTElGcmFtZUVsZW1lbnQqIHRvSFRNTElGcmFtZUVsZW1lbnQoTm9k
ZSogbm9kZSkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8
fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4obm9kZSk7Ci19CitFTEVNRU5UX1RZUEVfQ0FT
VFMoSFRNTElGcmFtZUVsZW1lbnQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGQzNDVmODJhY2MxZTYyOTAwMDcx
Mzg5MjgxZGU3ZWE5YmIzMGRmZDAuLjdjMGU2Y2I1MzZiOWU0OGEyNjdkNWRiYWYyYzk2MjdiMjNj
OWUwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxvYWRlci5jcHAKQEAgLTQ5LDEy
ICs0OSwxMiBAQCBIVE1MSW1hZ2VMb2FkZXI6On5IVE1MSW1hZ2VMb2FkZXIoKQogdm9pZCBIVE1M
SW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICAvLyBIVE1MVmlkZW9FbGVt
ZW50IHVzZXMgdGhpcyBjbGFzcyB0byBsb2FkIHRoZSBwb3N0ZXIgaW1hZ2UsIGJ1dCBpdCBzaG91
bGQgbm90IGZpcmUgZXZlbnRzIGZvciBsb2FkaW5nIG9yIGZhaWx1cmUuCi0gICAgaWYgKGVsZW1l
bnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkKKyAgICBpZiAoaXNIVE1MVmlk
ZW9FbGVtZW50KGVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgZXJyb3JP
Y2N1cnJlZCA9IGltYWdlKCktPmVycm9yT2NjdXJyZWQoKTsKICAgICBpZiAoIWVycm9yT2NjdXJy
ZWQgJiYgaW1hZ2UoKS0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkKLSAgICAg
ICAgZXJyb3JPY2N1cnJlZCA9IGVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVj
dFRhZyk7IC8vIEFuIDxvYmplY3Q+IGNvbnNpZGVycyBhIDQwNCB0byBiZSBhbiBlcnJvciBhbmQg
c2hvdWxkIGZpcmUgb25lcnJvci4KKyAgICAgICAgZXJyb3JPY2N1cnJlZCA9IGlzSFRNTE9iamVj
dEVsZW1lbnQoZWxlbWVudCgpKTsgLy8gQW4gPG9iamVjdD4gY29uc2lkZXJzIGEgNDA0IHRvIGJl
IGFuIGVycm9yIGFuZCBzaG91bGQgZmlyZSBvbmVycm9yLgogICAgIGVsZW1lbnQoKS0+ZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGVycm9yT2NjdXJyZWQgPyBldmVudE5hbWVzKCkuZXJyb3JF
dmVudCA6IGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCkBAIC04
NSw3ICs4NSw3IEBAIHZvaWQgSFRNTEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSopCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobG9hZEVycm9yICYmIGVsZW1l
bnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcpKQorICAgIGlmIChsb2FkRXJyb3Ig
JiYgaXNIVE1MT2JqZWN0RWxlbWVudChlbGVtZW50LmdldCgpKSkKICAgICAgICAgc3RhdGljX2Nh
c3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKS0+cmVuZGVyRmFsbGJhY2tDb250
ZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCAz
MWQyZmQwMTk0Yjc0N2VhM2EyZjExMzhiNDM3MTk3MTA5YWM0Mjk2Li4wNDJiMzI5ZTAxODhlZDk2
NThmNmI4NGQxOTM0MzEwNjc0MDUyMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oCkBAIC0xMDksMTEgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUZh
bGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1pbmxpbmUgSFRNTE9iamVjdEVsZW1lbnQqIHRvSFRN
TE9iamVjdEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFn
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4obm9kZSk7Ci19
CitFTEVNRU5UX1RZUEVfQ0FTVFMoSFRNTE9iamVjdEVsZW1lbnQpCiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IGRkY2ZjYjQ4Njhm
OTM1N2I5ZTgyNDZmYjI5M2VkOTI0OGQzYzE5NzEuLjY1M2ZjY2Q3MDNjN2M5ZDhkMjkwZTY3NTAw
Y2FlMTc1MjIxZmYyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29s
bGVjdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSFRNTE9w
dGlvbnNDb2xsZWN0aW9uOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24oTm9kZSogc2VsZWN0KQogICAg
IDogSFRNTENvbGxlY3Rpb24oc2VsZWN0LCBTZWxlY3RPcHRpb25zLCBEb2VzTm90T3ZlcnJpZGVJ
dGVtQWZ0ZXIpCiB7Ci0gICAgQVNTRVJUKHNlbGVjdC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNl
bGVjdFRhZykpOworICAgIEFTU0VSVChpc0hUTUxTZWxlY3RFbGVtZW50KHNlbGVjdCkpOwogfQog
CiBQYXNzUmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gSFRNTE9wdGlvbnNDb2xsZWN0aW9u
OjpjcmVhdGUoTm9kZSogc2VsZWN0LCBDb2xsZWN0aW9uVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCAzMTUzYTA2ODYxNGNiZjZlZTVkZjc0ZDdmZWU1M2Vi
NGE1NjZiNjhjLi41MTQwYTY2N2NhMjUyMWRiNWUxZDc2ZWNjNTFlOTRjMTU2NjhjZTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yMDIsMTEgKzIwMiw3IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fc2hvdWxkUmVjYWxjTGlzdEl0ZW1zOwogfTsK
IAotaW5saW5lIEhUTUxTZWxlY3RFbGVtZW50KiB0b0hUTUxTZWxlY3RFbGVtZW50KE5vZGUqIG5v
ZGUpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KG5vZGUpOwotfQorRUxFTUVOVF9UWVBFX0NBU1RTKEhU
TUxTZWxlY3RFbGVtZW50KQogCiB9IC8vIG5hbWVzcGFjZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
Z05hbWVzLmluCmluZGV4IGE1MzAzMWU0ZGMxODhiNTljNDhjNmI0MGFiY2E3NGQzNTUxYjNjMDEu
LjZkNmYwMjY1MjVkMDczNDA1NWUzY2VmNmY3YmU3OTllZDBiYjIwNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0zMSw3ICszMSw3IEBAIGNvZGUgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogY29sIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVudAogY29sZ3Jv
dXAgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDb2xFbGVtZW50CiBjb21tYW5kIGludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKLWNvbnRlbnQgaW50ZXJmYWNlTmFtZT1IVE1MQ29udGVudEVsZW1lbnQs
IGNvbmRpdGlvbmFsPVNIQURPV19ET00sIHJ1bnRpbWVDb25kaXRpb25hbD1zaGFkb3dET00KK2Nv
bnRlbnQgaW50ZXJmYWNlTmFtZT1IVE1MQ29udGVudEVsZW1lbnQsIGNvbmRpdGlvbmFsPVNIQURP
V19ET00sIHJ1bnRpbWVDb25kaXRpb25hbD1zaGFkb3dET00sIGdlbmVyYXRlVHlwZUhlbHBlcnMK
IHdlYmtpdFNoYWRvd0NvbnRlbnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1
Y3RvcgogZGF0YWxpc3QgaW50ZXJmYWNlTmFtZT1IVE1MRGF0YUxpc3RFbGVtZW50LCBjb25kaXRp
b25hbD1EQVRBTElTVF9FTEVNRU5UCiBkZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkBAIC01
MCw3ICs1MCw3IEBAIGZpZ3VyZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBmb250CiBmb290
ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZm9ybSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1m
cmFtZQorZnJhbWUgZ2VuZXJhdGVUeXBlSGVscGVycwogZnJhbWVzZXQgaW50ZXJmYWNlTmFtZT1I
VE1MRnJhbWVTZXRFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBoMSBpbnRlcmZhY2VOYW1l
PUhUTUxIZWFkaW5nRWxlbWVudAogaDIgaW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQK
QEAgLTY0LDcgKzY0LDcgQEAgaGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGhyIGlu
dGVyZmFjZU5hbWU9SFRNTEhSRWxlbWVudAogaHRtbAogaSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50Ci1pZnJhbWUgaW50ZXJmYWNlTmFtZT1IVE1MSUZyYW1lRWxlbWVudAoraWZyYW1lIGludGVy
ZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIGltYWdlIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGltZyBpbnRlcmZhY2VOYW1lPUhUTUxJbWFnZUVsZW1l
bnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogaW5w
dXQgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5
UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCkBAIC05MCw3ICs5MCw3IEBAIG5vYnIgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBu
b2ZyYW1lcyBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2xheWVyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKLW9iamVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVj
dG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK29iamVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQsIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMK
IG9sIGludGVyZmFjZU5hbWU9SFRNTE9MaXN0RWxlbWVudAogb3B0Z3JvdXAgaW50ZXJmYWNlTmFt
ZT1IVE1MT3B0R3JvdXBFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBvcHRpb24gZ2VuZXJh
dGVUeXBlSGVscGVycwpAQCAtMTA4LDcgKzEwOCw3IEBAIHMgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAogc2FtcCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzY3JpcHQgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwogc2VjdGlvbiBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50Ci1zZWxlY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50Citz
ZWxlY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBz
bWFsbCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzb3VyY2Ugd3JhcHBlck9ubHlJZk1lZGlh
SXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBzcGFu
CkBAIC0xMzMsNyArMTMzLDcgQEAgdHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdSBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50CiB1bCBpbnRlcmZhY2VOYW1lPUhUTUxVTGlzdEVsZW1lbnQK
IHZhciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci12aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJ
c0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQ
YXJzZXIKK3ZpZGVvIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1W
SURFTywgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVy
cwogd2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHhtcCBpbnRlcmZhY2VOYW1lPUhUTUxQ
cmVFbGVtZW50CiBub3NjcmlwdCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IDg2Y2QxZGU5N2ExYjU4Njc2NDY4NWFiZjM3
MjFmNTU3ZDk5ZGM1Y2QuLmNkZDY5YmZiYzA1MGY2NzhhNzExMzM2MDA3OTEyOTQ5NzllYzc2Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC05OCwxMSArOTgsNyBA
QCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX2RlZmF1bHRQb3N0ZXJVUkw7CiB9OwogCi1p
bmxpbmUgSFRNTFZpZGVvRWxlbWVudCogdG9IVE1MVmlkZW9FbGVtZW50KE5vZGUqIG5vZGUpCi17
Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9kZS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhU
TUxWaWRlb0VsZW1lbnQqPihub2RlKTsKLX0KK0VMRU1FTlRfVFlQRV9DQVNUUyhIVE1MVmlkZW9F
bGVtZW50KQogCiB9IC8vbmFtZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5kZXggNTM4MDg4ODMyNmNhNzI5MGI0MDYxMzkyY2Fi
ODgwNTcxMTVjMWJiYi4uNDFkYzZiM2IyNDc3ZDcyODM4NzU5OTRiNjllZDVjMmFhZmE2MjRlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgK
QEAgLTgwLDE4ICs4MCw2IEBAIGlubGluZSBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIEhUTUxDb250
ZW50RWxlbWVudDo6c2VsZWN0b3JMaXN0KCkKICAgICByZXR1cm4gbV9zZWxlY3Rvckxpc3Q7CiB9
CiAKLWlubGluZSBib29sIGlzSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCi17
Ci0gICAgQVNTRVJUKG5vZGUpOwotICAgIHJldHVybiBub2RlLT5pc0luc2VydGlvblBvaW50KCkg
JiYgdG9JbnNlcnRpb25Qb2ludChub2RlKS0+aW5zZXJ0aW9uUG9pbnRUeXBlKCkgPT0gSW5zZXJ0
aW9uUG9pbnQ6OkhUTUxDb250ZW50RWxlbWVudFR5cGU7Ci19Ci0KLWlubGluZSBIVE1MQ29udGVu
dEVsZW1lbnQqIHRvSFRNTENvbnRlbnRFbGVtZW50KE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MQ29udGVudEVsZW1lbnQo
bm9kZSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ29udGVudEVsZW1lbnQqPihub2Rl
KTsKLX0KLQogI2VuZGlmIC8vIGlmIEVOQUJMRShTSEFET1dfRE9NKQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCA1OTMzOGRmZTAyMjY3OGU4YTMyMDZiNTU5YzQy
OGM4MTdmNGI3YmYwLi5kMzVkNWM5YTQ3NGVlY2ZhMTE4ZTVkMWY5ZGQzZjNiOTY1ODc2NzQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTQxNiw3ICs0MTYsNyBAQCB2
b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKQogICAgIGxv
YWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KHRoaXMpOwogICAgIG1faGFzUGVuZGluZ0xvYWRF
dmVudCA9IGZhbHNlOwogICAgIAotICAgIGlmIChtX2VsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjpvYmplY3RUYWcpKQorICAgIGlmIChpc0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCkp
CiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4obV9lbGVtZW50KS0+cmVu
ZGVyRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICAvLyBPbmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRo
ZSBwcm90ZWN0aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1lZGlhdGVseSBiZWZvcmUg
cmV0dXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9M
ZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xl
Z2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDlhNTg4NjRiYTM1NmYyZDRhNzdhZDUwNDRjMDE3MjNm
YjYwMGFkNDUuLmZmZWJlM2RmYjcwMmE4Y2NkNzM2YjliOGVhZDQwYjJiMjBhNzNlYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hp
dmUuY3BwCkBAIC01MTgsOCArNTE4LDggQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBM
ZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJpbmcKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG5vZGVzU2l6ZTsgKytpKSB7CiAgICAgICAgIE5vZGUqIG5v
ZGUgPSBub2Rlc1tpXTsKICAgICAgICAgRnJhbWUqIGNoaWxkRnJhbWU7Ci0gICAgICAgIGlmICgo
bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZyYW1lVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6aWZyYW1lVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2Jq
ZWN0VGFnKSkgJiYKLSAgICAgICAgICAgIChjaGlsZEZyYW1lID0gdG9GcmFtZU93bmVyRWxlbWVu
dChub2RlKS0+Y29udGVudEZyYW1lKCkpKSB7CisgICAgICAgIGlmICgoaXNIVE1MRnJhbWVFbGVt
ZW50KG5vZGUpIHx8IGlzSFRNTElGcmFtZUVsZW1lbnQobm9kZSkgfHwgaXNIVE1MT2JqZWN0RWxl
bWVudChub2RlKSkKKyAgICAgICAgICAgICYmIChjaGlsZEZyYW1lID0gdG9GcmFtZU93bmVyRWxl
bWVudChub2RlKS0+Y29udGVudEZyYW1lKCkpKSB7CiAgICAgICAgICAgICBpZiAoZnJhbWVGaWx0
ZXIgJiYgIWZyYW1lRmlsdGVyLT5zaG91bGRJbmNsdWRlU3ViZnJhbWUoY2hpbGRGcmFtZSkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDkzZGViOTRlNzljNDdkYjcwYjczNzkyZmE0N2Ey
ZDYyYTUzNzFiMWQuLjAyNGZiZjNiMTc4MzNlNjUyMDAxZDhkOGQ0NDQ1N2ZkMjk5NGI2ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHN0
YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHN0YXRpYyBj
b25zdCBRdWFsaWZpZWROYW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmIGZyYW1lT3duZXIpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBzdXBwb3J0IGFsbCBmcmFtZSBvd25lcnMgaW5jbHVkaW5nIGFwcGxldHMuCi0gICAgcmV0dXJu
IGZyYW1lT3duZXIuaGFzVGFnTmFtZShIVE1MTmFtZXM6Om9iamVjdFRhZykgPyBIVE1MTmFtZXM6
OmRhdGFBdHRyIDogSFRNTE5hbWVzOjpzcmNBdHRyOworICAgIHJldHVybiBpc0hUTUxPYmplY3RF
bGVtZW50KGZyYW1lT3duZXIpID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxOYW1lczo6c3Jj
QXR0cjsKIH0KIAogY2xhc3MgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIDogcHVibGljIFdl
YkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAKaW5kZXggNWYwMDdkNjczYzYxZGQ4NDI2NzJkNWUyYjU3NDRhM2RjZTc1Y2I1
Zi4uMGYzMmVmYzI1MzM1OGE1MWI1MjEzZWJhM2Y5YWViN2ZmNWZkOTczNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTQ0OSw3ICs0NDksNyBAQCBib29s
IGNhblNjcm9sbEluRGlyZWN0aW9uKGNvbnN0IE5vZGUqIGNvbnRhaW5lciwgRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChjb250YWluZXIpOwogCi0gICAgaWYgKGNvbnRh
aW5lci0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisgICAgaWYgKGlzSFRNTFNl
bGVjdEVsZW1lbnQoY29udGFpbmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KGNvbnRhaW5lci0+aXNEb2N1bWVudE5vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCAwNDI4ZGIyZjI2YzhjNjRkNzIyMDEyYzY4NDBi
YWVlN2U3ZjA0MTZlLi5jYWVlMzAyNzkzNDdjOTBiMmY5NTI2NmM2Njg0OTAyYjIzMGIyZWViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0x
OTQsNyArMTk0LDcgQEAgc3RhdGljIEtVUkwgZ2V0VVJMRm9ySW1hZ2VOb2RlKE5vZGUqIG5vZGUp
CiAgICAgZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKQogICAg
ICAgICB1cmxTdHJpbmcgPSB0b0VsZW1lbnQobm9kZSktPmdldEF0dHJpYnV0ZShYTGlua05hbWVz
OjpocmVmQXR0cik7CiAjZW5kaWYKLSAgICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6ZW1iZWRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvYmplY3RUYWcp
KSB7CisgICAgZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFnKSB8
fCBpc0hUTUxPYmplY3RFbGVtZW50KG5vZGUpKSB7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQobm9kZSk7CiAgICAgICAgIHVybFN0cmluZyA9IGVsZW1lbnQtPmltYWdlU291
cmNlVVJMKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJh
bWVTaGltU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBw
b3J0LmNwcAppbmRleCBkOTg3MzI5ODA1Y2RmODE0YTc5MmUwMzNiOTYyYTc4ZTI3MDM2YjNjLi40
Zjc4NDAxNjkwYjcxYjU0ZjM0OTU3NDkzZDBlMDY2NWQ1Zjc5ZjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHZv
aWQgZ2V0UGx1Z2luT2NjbHVzaW9ucyhFbGVtZW50KiBlbGVtZW50LCBXaWRnZXQqIHBhcmVudFdp
ZGdldCwgY29uc3QgSW50UmVjdCYKICAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBmcmFt
ZVZpZXctPmZyYW1lKCkub3duZXJFbGVtZW50KCk7CiAgICAgICAgIFJlbmRlck9iamVjdCogaWZy
YW1lUmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOwogCi0gICAgICAgIGlmIChlbGVtZW50
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKQorICAgICAgICBpZiAoaXNIVE1MSUZy
YW1lRWxlbWVudChlbGVtZW50KQogICAgICAgICAgICAgJiYgaWZyYW1lUmVuZGVyZXItPmFic29s
dXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCkuaW50ZXJzZWN0cyhmcmFtZVJl
Y3QpCiAgICAgICAgICAgICAmJiAoIWlmcmFtZVJlbmRlcmVyLT5zdHlsZSgpIHx8IGlmcmFtZVJl
bmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkpIHsKICAgICAgICAgICAg
IGdldE9iamVjdFN0YWNrKGlmcmFtZVJlbmRlcmVyLCAmaWZyYW1lWnN0YWNrKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCAyNjk5NDBjMTI5YmRhMzMx
ZWJjN2ZkMGJjZTU1NWFjNmM3NmVlMzk4Li5iMzlhMzgwMzYxOTMxMTYyNDYzZWRlMzA5Y2U5MWVl
NmIwYWVmM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3Bw
CkBAIC0zNjgsNyArMzY4LDcgQEAgYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVs
bHNjcmVlbigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIEhUTUxNZWRpYUVsZW1l
bnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKLSAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1l
ZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBw
b3J0c0Z1bGxzY3JlZW4oKSk7CisgICAgcmV0dXJuIChtZWRpYUVsdCAmJiBpc0hUTUxWaWRlb0Vs
ZW1lbnQobWVkaWFFbHQpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSk7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtMzgzLDcgKzM4Myw3IEBAIEhUTUxNZWRp
YUVsZW1lbnQqIEhpdFRlc3RSZXN1bHQ6Om1lZGlhRWxlbWVudCgpIGNvbnN0CiAgICAgaWYgKCEo
bV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9pbm5lck5vblNoYXJlZE5vZGUt
PnJlbmRlcmVyKCktPmlzTWVkaWEoKSkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG1f
aW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IGlz
SFRNTEF1ZGlvRWxlbWVudChtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSkpCisgICAgaWYgKGlz
SFRNTFZpZGVvRWxlbWVudChtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSkgfHwgaXNIVE1MQXVk
aW9FbGVtZW50KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKSkKICAgICAgICAgcmV0dXJuIHRv
SFRNTE1lZGlhRWxlbWVudChtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSk7CiAgICAgcmV0dXJu
IDA7CiB9CkBAIC00MzAsNyArNDMwLDcgQEAgdm9pZCBIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxz
Y3JlZW5Gb3JWaWRlbygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIEhUTUxNZWRp
YUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKLSAgICBpZiAobWVkaWFFbHQgJiYg
bWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobWVk
aWFFbHQgJiYgaXNIVE1MVmlkZW9FbGVtZW50KG1lZGlhRWx0KSkgewogICAgICAgICBIVE1MVmlk
ZW9FbGVtZW50KiB2aWRlb0VsdCA9IHRvSFRNTFZpZGVvRWxlbWVudChtZWRpYUVsdCk7CiAgICAg
ICAgIGlmICghdmlkZW9FbHQtPmlzRnVsbHNjcmVlbigpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1
bGxzY3JlZW4oKSkgewogICAgICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9y
KERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIGJv
b2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFJc1ZpZGVvKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklE
RU8pCiAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkp
Ci0gICAgICAgIHJldHVybiBtZWRpYUVsdC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFn
KTsKKyAgICAgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChtZWRpYUVsdCk7CiAjZW5kaWYK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGQzOGQyMTE3MWI1MzdjOGQ3ZGRjMGY3MGQ4
ZWUzOGJkM2Q2YTAzNGMuLjYyOGIxZjliZWY4MjBiYmEwYzIwYTFjZmI2NTZkNDZlZTUwNTEyZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0yMDg2LDcgKzIwODYsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgTm9kZSogbm9kZSA9IHJlbmRlcmVyLT5u
b2RlKCk7Ci0gICAgICAgIGlmICghbm9kZSB8fCAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
Ojp2aWRlb1RhZykgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkpCisgICAgICAgIGlmICgh
bm9kZSB8fCAoIWlzSFRNTFZpZGVvRWxlbWVudChub2RlKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50
KG5vZGUpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggN2NiMDAyMGU2YWYzOTI5
ZGQwMzg2ZjI0ODVjYzBiNTY3OTAyMzRmNS4uNjUzMmMyMGQ5MjEzYmZiODg3MDQyNmM3OTVhMzMx
MjMwZWJiYjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtOTIsNyArOTIsNyBAQCBSZW5kZXJMaXN0Qm94OjpSZW5kZXJMaXN0Qm94KEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VSVChlbGVtZW50LT5p
c0hUTUxFbGVtZW50KCkpOwotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6c2VsZWN0VGFnKSk7CisgICAgQVNTRVJUKGlzSFRNTFNlbGVjdEVsZW1lbnQoZWxlbWVudCkp
OwogCiAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZFNjcm9sbGFibGVBcmVhKHRoaXMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggZTAwYTM5
NWQ0M2MzNjBkOWE5Y2JmMTRkMTdlYTk3YWJhZDYxZjAyNS4uNzM3YWY5YjliMDliOTVmN2RlM2Fm
ZDRhOGU5ODc4ZDFmNjMzZTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51
TGlzdChFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NF
UlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpOworICAgIEFTU0VSVChpc0hUTUxTZWxlY3RFbGVt
ZW50KGVsZW1lbnQpKTsKIH0KIAogUmVuZGVyTWVudUxpc3Q6On5SZW5kZXJNZW51TGlzdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOWI0YjFkYTFjZTA0ZmZhYWY1MDc3
NzNmZWNiZDhmZWJlZmMwNWUzNC4uNjgzNGNiNjMwN2YwYmIyOGVlZmZlZmU0N2E2YTVjZDgzYWZk
Zjk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTk4Nyw3ICsxOTg3
LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oTm9kZSogbm9k
ZSkKIAogYm9vbCBJbnRlcm5hbHM6OmlzU2VsZWN0UG9wdXBWaXNpYmxlKE5vZGUqIG5vZGUpCiB7
Ci0gICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICBp
ZiAoIWlzSFRNTFNlbGVjdEVsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTU2ZWVlZWVk
MWYxODVmNmEwM2QzZDAxNDI3YTQzNDZjZmFmZDBkMS4uMDBlNjg0MDQwODU2ODJiOWM2MTZmMGQw
YTBmYmY4NjY2YWJiMDRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Uu
Y3BwCkBAIC0yODE5LDcgKzI4MTksNyBAQCBJbnRSZWN0IFdlYlBhZ2VQcml2YXRlOjphZGp1c3RS
ZWN0T2Zmc2V0Rm9yRnJhbWVPZmZzZXQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29ucwogCiAgICAg
ICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0YXRpY19jYXN0PE5vZGUqPihmcmFtZS0+b3duZXJFbGVt
ZW50KCkpOwogICAgICAgICB0bm9kZSA9IG93bmVyTm9kZTsKLSAgICAgICAgaWYgKG93bmVyTm9k
ZSAmJiAob3duZXJOb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKSB8fCBvd25l
ck5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpmcmFtZVRhZykpKSB7CisgICAgICAgIGlmIChv
d25lck5vZGUgJiYgKGlzSFRNTElGcmFtZUVsZW1lbnQob3duZXJOb2RlKSB8fCBpc0hUTUxGcmFt
ZU5vZGUob3duZXJOb2RlKSkpIHsKICAgICAgICAgICAgIEludFJlY3QgaUZyYW1lUmVjdDsKICAg
ICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICBpRnJhbWVSZWN0ID0gcmVjdEZvck5vZGUo
b3duZXJOb2RlKTsKQEAgLTUwMTUsNyArNTAxNSw3IEBAIHZvaWQgV2ViUGFnZTo6bm90aWZ5RnVs
bFNjcmVlblZpZGVvRXhpdGVkKGJvb2wgZG9uZSkKICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9F
bGVtZW50KGQtPm1fZnVsbHNjcmVlbk5vZGUuZ2V0KCkpOwogICAgIGlmICghZWxlbWVudCkKICAg
ICAgICAgcmV0dXJuOwotICAgIGlmIChkLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9D
YXBhYmxlKCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkKKyAg
ICBpZiAoZC0+bV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGlzSFRN
TFZpZGVvRWxlbWVudChlbGVtZW50KSkKICAgICAgICAgdG9IVE1MTWVkaWFFbGVtZW50KGVsZW1l
bnQpLT5leGl0RnVsbHNjcmVlbigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBl
bHNlCkBAIC01NjY0LDcgKzU2NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50
ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewogI2lmIEVOQUJMRShWSURFTykKLSAg
ICBpZiAoIW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisg
ICAgaWYgKCFub2RlIHx8ICFpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkt
PnBsYXllcigpOwpAQCAtNTY5Nyw3ICs1Njk3LDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhp
dEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgICAgIG1fZnVsbHNjcmVlbk5vZGUg
PSAwOwogICAgIH0KIAotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnZpZGVvVGFnKSkKKyAgICBpZiAoIW5vZGUgfHwgIWlzSFRNTFZpZGVvRWxlbWVudChub2Rl
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllciA9IHRvSFRNTE1l
ZGlhRWxlbWVudChub2RlKS0+cGxheWVyKCk7CkBAIC01NzE5LDcgKzU3MTksNyBAQCB2b2lkIFdl
YlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkgeworICAgIGlmIChtX3dlYlNldHRp
bmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1l
bnQpKSB7CiAgICAgICAgIC8vIFRoZSBCcm93c2VyIGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2Ny
ZWVuIHZpZGVvIHdpZGdldCBpdCB3YW50cyB0bwogICAgICAgICAvLyB1c2UsIGFuZCB0aGlzIGlz
IGEgdmlkZW8gZWxlbWVudC4gVGhlIG9ubHkgcmVhc29uIHRoYXQKICAgICAgICAgLy8gd2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKSBhbmQKQEAgLTU3NjQsNyArNTc2NCw3IEBA
IHZvaWQgV2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KQogI2lmIEVOQUJMRShWSURFTykKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAobV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYm
IGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICBpZiAobV93
ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpICYmIGlzSFRNTFZpZGVvRWxlbWVu
dChlbGVtZW50KSkgewogICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24g
ZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCiAgICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IDg0NDc2OGM0Mjc2ZjhmY2RiYTAzZTQ2OTQyODdkODU4YzNjMGRiYTYuLjMyMzkzYTdj
MzNkMmRmZjAzZjBjN2JmNmIyY2U5OGQ2ODE2YTM5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHAKQEAgLTY5Nyw3ICs2OTcsNyBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNr
QmVycnk6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVDaG9v
cwogCiBib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5v
ZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnZpZGVvVGFnKTsKKyAgICByZXR1cm4gaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpOwog
fQogCiB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUo
Tm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAzYmI3
MWRmNGVjNDViNGMzNjRiNmE0NDE0OTM2MGM1MmQwZjYxMjJlLi4xYTM5YWY1M2E0ZmE1MmYyYWZl
MDMzMzFiOGRiMWI0NmNkNzM1MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnku
Y3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzaG91
bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fd2ViUGFnZVByaXZhdGUtPmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGlm
IChmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoRWxlbWVudCogZm9j
dXNlZEVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0
VGFnKSkKKyAgICAgICAgICAgIGlmIChpc0hUTUxTZWxlY3RFbGVtZW50KGZvY3VzZWRFbGVtZW50
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoRE9NU3Vw
cG9ydDo6aXNQb3B1cElucHV0RmllbGQoZm9jdXNlZEVsZW1lbnQpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKaW5kZXggYTU4MDU1Yzg0ZTZiMzhlNWE2NWIwODU3ZTVk
NjlmYWY5OGFlODNmNC4uZjI4MzY4YmY0NmFiOTFjNGRiMDY4M2YwZmNiYjdhNzkyMmZiMjVkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3Vw
cG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBib29sIGlzRWxlbWVudFR5cGVQbHVnaW4o
Y29uc3QgRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0
VGFnKQorICAgIGlmIChpc0hUTUxPYmplY3RFbGVtZW50KGVsZW1lbnQpCiAgICAgICAgIHx8IGVs
ZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjplbWJlZFRhZykKICAgICAgICAgfHwgZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFwcGxldFRhZykpCiAgICAgICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lu
cHV0SGFuZGxlci5jcHAKaW5kZXggYzk3MTZiYTVlNzAzY2UyMDdkOTljNjY3MmY1NWRjODFlMDlh
MTJmMS4uYzg1ODkwMjNmYTAyOTlmODk0OGE3YzgzN2IyMWVjMWU4ZTI1N2M5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRs
ZXIuY3BwCkBAIC0xOTgzLDcgKzE5ODMsNyBAQCBib29sIElucHV0SGFuZGxlcjo6d2lsbE9wZW5Q
b3B1cEZvck5vZGUoTm9kZSogbm9kZSkKIAogICAgIEFTU0VSVCghbm9kZS0+aXNJblNoYWRvd1Ry
ZWUoKSk7CiAKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykg
fHwgaXNIVE1MT3B0aW9uRWxlbWVudChub2RlKSkgeworICAgIGlmIChpc0hUTUxTZWxlY3RFbGVt
ZW50KG5vZGUpIHx8IGlzSFRNTE9wdGlvbkVsZW1lbnQobm9kZSkpIHsKICAgICAgICAgLy8gV2Ug
b3BlbiBsaXN0IHBvcHVwcyBmb3Igb3B0aW9ucyBhbmQgc2VsZWN0cy4KICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpAQCAtMjAwNSw3ICsyMDA1LDcgQEAgYm9vbCBJbnB1dEhhbmRsZXI6OmRp
ZE5vZGVPcGVuUG9wdXAoTm9kZSogbm9kZSkKIAogICAgIEFTU0VSVCghbm9kZS0+aXNJblNoYWRv
d1RyZWUoKSk7CiAKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRh
ZykpCisgICAgaWYgKGlzSFRNTFNlbGVjdEVsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybiBv
cGVuU2VsZWN0UG9wdXAodG9IVE1MU2VsZWN0RWxlbWVudChub2RlKSk7CiAKICAgICBpZiAoaXNI
VE1MT3B0aW9uRWxlbWVudChub2RlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAppbmRleCA2YjNl
N2U4NTg1N2Y3ZTM3ZjhmM2RiYTgzMGRjNzY1NzRhZmUxYTQ2Li4yYjkyZmNlZWRhNTE0NzQ0NzMw
Y2IzNTM3ZGYzNDI0NzU5ODlhMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcApAQCAtMTE2OCw3
ICsxMTY4LDcgQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25Qb3NpdGlvbkNoYW5n
ZWQoYm9vbCBmb3JjZVVwZGF0ZVdpdGhvdXRDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChOb2RlKiBmb2N1c2VkTm9kZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVu
dCgpKSB7Ci0gICAgICAgIGlmIChmb2N1c2VkTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNl
bGVjdFRhZykgfHwgKGZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgRE9NU3VwcG9ydDo6
aXNQb3B1cElucHV0RmllbGQodG9FbGVtZW50KGZvY3VzZWROb2RlKSkpKSB7CisgICAgICAgIGlm
IChpc0hUTUxTZWxlY3RFbGVtZW50KGZvY3VzZWROb2RlKSB8fCAoZm9jdXNlZE5vZGUtPmlzRWxl
bWVudE5vZGUoKSAmJiBET01TdXBwb3J0Ojppc1BvcHVwSW5wdXRGaWVsZCh0b0VsZW1lbnQoZm9j
dXNlZE5vZGUpKSkpIHsKICAgICAgICAgICAgIFNlbGVjdGlvbkxvZyhQbGF0Zm9ybTo6TG9nTGV2
ZWxJbmZvLCAiU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2VkIHNlbGVj
dGlvbiBpcyBvbiBhIHBvcHVwIGNvbnRyb2wsIHNraXBwaW5nIHJlbmRlcmluZy4iKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggNjIxNTQ1MGIxNDFhM2Y0NjE5
MDk1ZmRiMjBjODUzMzkzMjA4N2I5ZC4uMWMwOTg1YWRkOGJmZjk4MTg5MWFjYWM2NzdmYWFjYmEz
N2UwMDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwCkBAIC05MjcsNyArOTI3LDcgQEAgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdl
YkNvcmUKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykK
IGJvb2wgQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUq
IG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1Rh
Zyk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCBmMGU0ZTdm
ZWExY2ViNTA0OWNhMTM4ODgwODc5MGRmZjM4OWNkMGM1Li5lYTliYTRkMDQ0NjlhNWIwMmJlZWMz
NTU5YzA4NjAwMzBhYmQ2YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhUHJveHlDbGllbnQoRE9NRWxlbWVudCogZWxlbWVudCkK
ICAgICB9CiAKICAgICBFbGVtZW50KiBub2RlID0gY29yZShlbGVtZW50KTsKLSAgICBpZiAoIW5v
ZGUgfHwgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmICFpc0hUTUxB
dWRpb0VsZW1lbnQobm9kZSkpKSB7CisgICAgaWYgKCFub2RlIHx8ICghaXNIVE1MVmlkZW9FbGVt
ZW50KG5vZGUpICYmICFpc0hUTUxBdWRpb0VsZW1lbnQobm9kZSkpKSB7CiAgICAgICAgIExPR19F
UlJPUigiaW52YWxpZCBtZWRpYSBlbGVtZW50IHBhc3NlZCIpOwogICAgICAgICByZXR1cm4gbmls
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCA5Yzg4MjE5ZWQ2NTdjNjgzMTk3YWRhNTExNDY4N2M1OTExMTRm
YmFjLi45MWJmMzhmOGI1NTYxZjhjZDFkYTRlYWNkZDNlN2NjOWRhZmRlZjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBA
IC05MDAsNyArOTAwLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVl
bkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFt
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZpZGVvVGFnKTsKKyAgICByZXR1cm4gaXNIVE1MVmlkZW9F
bGVtZW50KG5vZGUpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVu
Rm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IGM0OTJlZmY4NjA5OTlmMTIwMjMyZDI4ODI5OGFkOTVjZDkzMWFkZmIuLmQ2Y2Y1OGY0N2IyZGUy
OTIwNmU5ZTJkNzZkNGJhOTBkOTI0NjlkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTY0OTcsNyArNjQ5Nyw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZs
dXNoTGF5ZXJzKCkKIAogLSAodm9pZClfZW50ZXJGdWxsc2NyZWVuRm9yTm9kZTooV2ViQ29yZTo6
Tm9kZSopbm9kZQogewotICAgIEFTU0VSVChub2RlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxO
YW1lczo6dmlkZW9UYWcpKTsKKyAgICBBU1NFUlQoaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKTsK
ICAgICBIVE1MTWVkaWFFbGVtZW50KiB2aWRlb0VsZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQo
bm9kZSk7CiAKICAgICBpZiAoX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmlu
ZGV4IDU0NjI4MWE5ZGJlZDdhMmFmMWVkMWViOWMxOWZkNjRmNTEwZjNiMTguLjliY2JjYWIyODUz
NTZiNjlmM2FjYzQ5ODY3OWZiYjk1NmZlOWRmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC02OTAsNyArNjkwLDcgQEAg
RnVsbFNjcmVlblZpZGVvUXQqIENocm9tZUNsaWVudFF0OjpmdWxsU2NyZWVuVmlkZW8oKQogYm9v
bCBDaHJvbWVDbGllbnRRdDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OnZpZGVvVGFnKSAmJiBmdWxsU2NyZWVuVmlkZW8oKS0+aXNWYWxpZCgpOworICAg
IHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkgJiYgZnVsbFNjcmVlblZpZGVvKCktPmlz
VmFsaWQoKTsKIH0KIAogYm9vbCBDaHJvbWVDbGllbnRRdDo6cmVxdWlyZXNGdWxsc2NyZWVuRm9y
VmlkZW9QbGF5YmFjaygpCkBAIC03MDAsMTQgKzcwMCwxNCBAQCBib29sIENocm9tZUNsaWVudFF0
OjpyZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKIAogdm9pZCBDaHJvbWVDbGll
bnRRdDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewotICAgIEFTU0VSVChu
b2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOworICAgIEFTU0VS
VChub2RlICYmIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKSk7CiAKICAgICBmdWxsU2NyZWVuVmlk
ZW8oKS0+ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZShub2RlKTsKIH0KIAogdm9pZCBDaHJvbWVDbGll
bnRRdDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgQVNTRVJUKG5v
ZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSk7CisgICAgQVNTRVJU
KG5vZGUgJiYgaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKTsKIAogICAgIGZ1bGxTY3JlZW5WaWRl
bygpLT5leGl0RnVsbFNjcmVlbkZvck5vZGUobm9kZSk7CiB9IApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOWYzNzI2
NjQ4MTljNzU0MjE2ZDNjMTJlZTBiNDQyYWZkODMyYzRhYS4uZGM1YjNkNmQzODAyOTBhZmE1OWRl
MzlmNTBlNDYyN2VlN2MzN2ZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NzYsNyArNzc2LDcgQEAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiBXZWJDaHJvbWVDbGllbnQ6OnVpRGVsZWdhdGUoKQogCiBib29sIFdl
YkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2Rl
KQogewotICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpOwor
ICAgIHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDVkN2FmYTJmY2FkNTc1ODcyZWMzYTQzZjUyODk5N2QzMmVjYjFjMjMuLjBlZTdh
MmYxNWNiOTUyZTVmYjdiYWI3ZTQ3YjgzMzg5YmExNTY0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CkBAIC02MjU3LDcgKzYyNTcsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OnNldENhblN0YXJ0UGx1Z2lu
cyhCT09MIGNhblN0YXJ0UGx1Z2lucykKIAogdm9pZCBXZWJWaWV3OjplbnRlckZ1bGxzY3JlZW5G
b3JOb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6dmlkZW9UYWcpIHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgaWYgKCFpc0hUTUxW
aWRlb0VsZW1lbnQobm9kZSkgfHwgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0
dXJuOwogCiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggMjIyOWMwY2E2ZjQ3NjM1ODZhMzMzZGMwYTQwYmY4
ODMzYWJhOWViMS4uNzg1N2Y4YWI1N2NmYWQwMzFjOTZjNDVjM2MxMjYzZTYyYjYyZmYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC02
MDgsNyArNjA4LDcgQEAgYm9vbCBXZWJGcmFtZTo6Y29udGFpbnNBbnlGb3JtQ29udHJvbHMoKSBj
b25zdAogICAgIGZvciAoTm9kZSogbm9kZSA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsg
bm9kZTsgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQobm9kZSkpIHsKICAgICAgICAgaWYgKCFu
b2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYg
KGlzSFRNTElucHV0RWxlbWVudChub2RlKSB8fCB0b0VsZW1lbnQobm9kZSktPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IGlzSFRNTFRleHRBcmVhRWxlbWVudChub2RlKSkKKyAg
ICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChub2RlKSB8fCBpc0hUTUxTZWxlY3RFbGVtZW50
KG5vZGUpIHx8IGlzSFRNTFRleHRBcmVhRWxlbWVudChub2RlKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>